@djb25/digit-ui-module-ekyc 1.0.75 → 1.0.76
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/dist/index.js +678 -1390
- package/dist/index.js.map +1 -1
- package/dist/index.modern.js +680 -1393
- package/dist/index.modern.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/components/EKYCCard.js","../node_modules/babel-plugin-transform-async-to-promises/helpers.mjs","../src/utils/ekycExcelData.js","../src/components/StatusCards.js","../src/components/Dashboard.js","../src/components/DesktopInbox.js","../src/components/SearchConsumer.js","../src/components/MobileInbox.js","../src/components/Filter.js","../src/utils/reportDownloader.js","../src/components/VendorDetailsCard.js","../src/hook/useInboxTableConfig.js","../node_modules/react-hook-form/dist/index.esm.js","../src/components/SearchFormFieldsComponent.js","../src/hook/useInboxMobileCardsData.js","../src/pages/employee/Inbox.js","../src/components/Review.js","../src/config/AadhaarVerificationConfig.js","../src/components/AadhaarVerification.js","../src/config/config.js","../src/pages/employee/EKYCForm.js","../src/components/AdminDashboard.js","../src/components/SupervisorDetailsCard.js","../src/components/AssignEkycModal.js","../src/components/SurveyorDetailsCard.js","../src/pages/employee/WorkOrder.js","../../vendor/src/config/tableConfig.js","../src/hook/SupervisorInboxTableConfig.js","../src/components/AssignEkyc.js","../src/config/Routes.js","../src/pages/employee/index.js","../src/config/PropertyInfoConfig.js","../src/components/PropertyInfo.js","../src/config/MeterDetailsConfig.js","../src/components/MeterDetails.js","../src/pages/citizen/Inbox.js","../src/pages/citizen/EkycStatus.js","../src/pages/citizen/index.js","../src/Module.js"],"sourcesContent":["import { PersonIcon, EmployeeModuleCard } from \"@djb25/digit-ui-react-components\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nconst EKYCCard = () => {\n const { t } = useTranslation();\n if (!Digit.Utils.ekycAccess()) {\n return null;\n }\n const tenantId = Digit.ULBService.getCurrentTenantId();\n const citizenInfo = Digit.SessionStorage.get(\"User\")?.info?.roles;\n const roles = Array.isArray(citizenInfo) ? citizenInfo.map((ele) => ele.code || ele) : [];\n\n const { data: listData, isLoading } = Digit.Hooks.ekyc.useEkycApplicationList({}, { tenantId, offset: 0, limit: 1 }, { enabled: !!tenantId });\n\n const totalCount = isLoading ? \"-\" : listData?.totalCount || 0;\n\n const isCitizen = window.location.pathname.includes(\"/citizen\");\n const prefix = isCitizen ? \"/digit-ui/citizen/ekyc\" : \"/digit-ui/employee/ekyc\";\n\n let links = [];\n if (isCitizen) {\n if (roles.includes(\"EKYC_SURVEYOR\")) {\n links.push({\n label: t(\"SURVEYOR_DASHBOARD\"),\n link: `${prefix}/surveyor-dashboard`,\n });\n }\n if (roles.includes(\"EKYC_SUPERVISOR\") || roles.includes(\"EKYC_VENDOR\")) {\n links.push({\n count: totalCount,\n label: t(\"EKYC_INBOX\"),\n link: `${prefix}/inbox`,\n });\n }\n if (roles.includes(\"EKYC_SUPERVISOR\")) {\n links.push(\n {\n label: t(\"EKYC_SUPERVISOR_DASHBOARD\"),\n link: `${prefix}/supervisor-dashboard`,\n },\n {\n label: t(\"EKYC_ASSIGN\"),\n link: `${prefix}/assign`,\n }\n );\n }\n if (roles.includes(\"EKYC_VENDOR\")) {\n links.push({\n label: t(\"EKYC_VENDOR_DASHBOARD\"),\n link: `${prefix}/vendor-dashboard`,\n });\n }\n if (roles.includes(\"EKYC_SUPERVISOR\") || roles.includes(\"EKYC_VENDOR\")) {\n links.push({\n label: t(\"TITLE_VENDOR_MANAGEMENT\"),\n link: `/digit-ui/citizen/vendor/search-vendor`,\n });\n }\n if (links.length === 0 || (roles.length === 1 && roles.includes(\"CITIZEN\"))) {\n links.push({\n label: t(\"EKYC_STATUS\"),\n link: `${prefix}/:id`,\n });\n }\n } else {\n // Employee links\n links = [\n // {\n // label: t(\"CEO_M.F_DOR_FINANCE_VIEW\"),\n // link: `${prefix}/ceo-dashboard`,\n // },\n {\n label: t(\"EKYC_ADMIN_DASHBOARD\") || \"Admin Dashboard\",\n link: `${prefix}/admin-dashboard`,\n },\n {\n count: totalCount,\n label: t(\"EKYC_INBOX\"),\n link: `${prefix}/inbox`,\n },\n {\n label: t(\"EKYC_WORK_ORDER\"),\n link: `${prefix}/work-order`,\n },\n ...(!roles.includes(\"EMPLOYEE\")\n ? [\n {\n label: t(\"EKYC_ASSIGN\"),\n link: `${prefix}/assign`,\n },\n ]\n : []),\n ];\n }\n\n const propsForModuleCard = {\n Icon: <PersonIcon />,\n moduleName: t(\"ACTION_TEST_EKYC\"),\n kpis: isCitizen\n ? []\n : [\n {\n count: totalCount,\n label: t(\"TOTAL_EKYC\"),\n link: `${prefix}/admin-dashboard`,\n },\n ],\n links: links,\n };\n\n return <EmployeeModuleCard {...propsForModuleCard} />;\n};\n\nexport default EKYCCard;\n","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","const excludedKeys = [\n \"status\",\n \"source\",\n \"assignedAt\",\n \"connectionType\",\n \"approvedAt\",\n \"alternateMobileNo\",\n \"city\",\n \"state\",\n \"addressType\",\n \"addressProofType\",\n \"mrcode\",\n \"areacode\",\n \"verificationStatus\",\n \"surveyorId\",\n \"supervisorId\",\n \"vendorId\",\n \"assignmentType\",\n \"assignmentValue\",\n \"assignedTime\",\n \"isSelfAssigned\",\n \"userType\",\n \"tenantName\",\n \"tenantMobile\",\n \"doorPhotoFilestoreId\",\n \"panFilestoreId\",\n \"documentProofFilestoreId\",\n \"buildingImageFileStoreId\",\n \"propertyDocumentFileStoreId\",\n \"meterPhotoFileStoreId\",\n \"modifiedBy\",\n \"zoneCode\",\n \"propertyType\",\n \"subPropertyCategory\",\n];\n\nconst createHeaderMapping = (t) => ({\n kno: t(\"KNO\"),\n firstName: t(\"FIRST_NAME\"),\n middleName: t(\"MIDDLE_NAME\"),\n lastName: t(\"LAST_NAME\"),\n status: t(\"STATUS\"),\n ekycStatus: t(\"EKYC_STATUS\"),\n zoneName: t(\"ZONE\"),\n zoneCode: t(\"ZONE_CODE\"),\n assembly: t(\"EKYC_ASSEMBLY\"),\n ward: t(\"WARD\"),\n pincode: t(\"EKYC_PINCODE\"),\n addressRaw: t(\"ADDRESS_RAW\"),\n locality: t(\"EKYC_LOCALITY\"),\n subLocality: t(\"SUB_LOCALITY\"),\n flatHouseNumber: t(\"FLAT_HOUSE_NUMBER\"),\n streetName: t(\"STREET_NAME\"),\n landmark: t(\"EKYC_LANDMARK\"),\n city: t(\"CITY\"),\n state: t(\"STATE\"),\n addressType: t(\"ADDRESS_TYPE\"),\n addressProofType: t(\"ADDRESS_PROOF_TYPE\"),\n mobileNo: t(\"MOBILE_NUMBER\"),\n alternateMobileNo: t(\"ALTERNATE_MOBILE_NUMBER\"),\n whatsappNo: t(\"WHATSAPP_NO\"),\n email: t(\"EMAIL\"),\n landlineNo: t(\"LANDLINE_NO\"),\n mrkey: t(\"MR_KEY\"),\n mrcode: t(\"MR_CODE\"),\n areacode: t(\"AREA_CODE\"),\n source: t(\"SOURCE\"),\n submittedAt: t(\"SUBMITTED_AT\"),\n assignedAt: t(\"ASSIGNED_AT\"),\n connectionType: t(\"CONNECTION_TYPE\"),\n Type: t(\"CONSUMER_TYPE\"),\n occupantType: t(\"OCCUPANT_TYPE\"),\n knoCategory: t(\"KNO_CATEGORY\"),\n approvedAt: t(\"APPROVED_AT\"),\n gender: t(\"GENDER\"),\n parentSpouse: t(\"PARENT_SPOUSE\"),\n fatherOrHusbandName: t(\"FATHER_HUSBUND_NAME\"),\n relationship: t(\"RELATIONSHIP\"),\n informantName: t(\"INFORMANT_NAME\"),\n informantRelation: t(\"INFORMANT_RELATION\"),\n informantIs: t(\"INFORMANT_IS\"),\n contactPerson: t(\"CONTACT_PERSON\"),\n relation: t(\"RELATION\"),\n entityName: t(\"ENTITY_NAME\"),\n designation: t(\"DESIGNATION\"),\n department: t(\"DEPARTMENT\"),\n employeeId: t(\"EMPLOYEE_ID\"),\n ownerMobile: t(\"OWNER_MOBILE\"),\n ownerVerificationDone: t(\"OWNER_VERIFICATION_DONE\"),\n consentGiven: t(\"CONSENT_GIVEN\"),\n proofOfIdentityType: t(\"PROOF_OF_IDENTITY_TYPE\"),\n documentNumber: t(\"DOCUMENT_NUMBER\"),\n noOfPerson: t(\"NUMBER_OF_PERSON\"),\n latitude: t(\"LATITUDE\"),\n longitude: t(\"LONGITUDE\"),\n gpsValid: t(\"GPS_VALID\"),\n meterNumber: t(\"METER_NUMBER\"),\n meterMake: t(\"METER_MAKE\"),\n meterStatus: t(\"METER_STATUS\"),\n meterCondition: t(\"METER_CONDITION\"),\n meterLocation: t(\"METER_LOCATION\"),\n meterLocationAddress: t(\"METER_LOCATION_ADDRESS\"),\n workingStatus: t(\"WORKING_STATUS\"),\n sewerConnection: t(\"SEWER_CONNECTION\"),\n septicTank: t(\"SEPTIC_TANK\"),\n lastBillRaised: t(\"LAST_BILL_RAISED\"),\n lastBillReceivedDate: t(\"LAST_BILL_RECEIVED_DATE\"),\n accessToMeter: t(\"ACCESS_TO_METER\"),\n systemMeterId: t(\"SYSTEM_METER_ID\"),\n lastBillNotRaisedReason: t(\"LAST_BILL_NOT_RAISED_REASON\"),\n waterConnectionYears: t(\"WATER_CONNECTION_YEARS\"),\n sewerConnectionYears: t(\"SEWER_CONNECTION_YEARS\"),\n pidNumber: t(\"PID_NUMBER\"),\n propertyType: t(\"PROPERTY_TYPE\"),\n subPropertyCategory: t(\"SUB_PROPERTY_CATEGORY\"),\n noOfFloor: t(\"NO_OF_FLOOR\"),\n noOfRooms: t(\"NO_OF_ROOMS\"),\n noOfBeds: t(\"NO_OF_BEDS\"),\n numberOfDwellingUnits: t(\"NUMBER_OF_DWELLING_UNITS\"),\n floorNo: t(\"FLOOR_NO\"),\n userType: t(\"USER_TYPE\"),\n tenantName: t(\"TENANT_NAME\"),\n tenantMobile: t(\"TENANT_MOBILE\"),\n verificationStatus: t(\"VERIFICATION_STATUS\"),\n houseBuiltDuration: t(\"HOUSE_BUILT_DURATION\"),\n surveyorId: t(\"SURVEYOR_ID\"),\n supervisorId: t(\"SUPERVISOR_ID\"),\n vendorId: t(\"VENDOR_ID\"),\n assignmentType: t(\"ASSIGNMENT_TYPE\"),\n assignmentValue: t(\"ASSIGNMENT_VALUE\"),\n assignedTime: t(\"ASSIGNED_TIME\"),\n isSelfAssigned: t(\"IS_SELF_ASSIGNED\"),\n doorPhotoFilestoreId: t(\"DOOR_PHOTO_FILESTORE_ID\"),\n panFilestoreId: t(\"PAN_FILESTORE_ID\"),\n documentProofFilestoreId: t(\"DOCUMENT_PROOF_FILESTORE_ID\"),\n buildingImageFileStoreId: t(\"BUILDING_IMAGE_FILESTORE_ID\"),\n propertyDocumentFileStoreId: t(\"PROPERTY_DOCUMENT_FILESTORE_ID\"),\n meterPhotoFileStoreId: t(\"METER_PHOTO_FILESTORE_ID\"),\n modifiedBy: t(\"MODIFIED_BY\"),\n emailId: t(\"EMAIL_ID\"),\n dob: t(\"DOB\"),\n consumerType: t(\"CONSUMER_TYPE\"),\n createdTime: t(\"CREATED_TIME\"),\n lastModifiedTime: t(\"LAST_MODIFIED_TIME\"),\n meterLatitude: t(\"EKYC_METER_LATITUDE1\"),\n meterLongitude: t(\"EKYC_METER_LONGITUDE1\"),\n});\n\nconst toTitleCase = (str) => {\n if (!str) return \"\";\n // Handle dot-notation values like \"CONSUMERTYPE.INDIVIDUAL\" → \"Individual\"\n let cleanStr = String(str);\n if (cleanStr.includes(\".\") && !cleanStr.includes(\"@\") && isNaN(Number(cleanStr))) {\n cleanStr = cleanStr.split(\".\").pop();\n }\n return cleanStr\n .toLowerCase()\n .replace(/_/g, \" \")\n .replace(/\\b\\w/g, (c) => c.toUpperCase());\n};\n\nconst skipTitleCase = [\n \"kno\",\n \"mobileNumber\",\n \"emailId\",\n \"email\",\n \"pincode\",\n \"mrkey\",\n \"dob\",\n \"createdTime\",\n \"lastModifiedTime\",\n \"meterLatitude\",\n \"meterLongitude\",\n];\n\nconst translatedFields = [\"meterMake\", \"meterLocation\"];\n\nexport const getEkycExcelData = (consumerList = [], t = (k) => k) => {\n const headerMapping = createHeaderMapping(t);\n\n const excelData = consumerList.map((item) => {\n const cleanObj = {};\n\n const fullName = [item.firstName, item.middleName, item.lastName].filter(Boolean).join(\" \");\n if (fullName) {\n cleanObj[t(\"CONSUMER_NAME\") || \"Consumer Name\"] = toTitleCase(fullName);\n }\n\n Object.keys(item).forEach((key) => {\n if (excludedKeys.includes(key)) return;\n\n let val = item[key];\n if (typeof val === \"object\" && val !== null) {\n return;\n }\n\n if (String(val).toLowerCase() === \"true\") {\n val = t(\"CS_YES\");\n } else if (String(val).toLowerCase() === \"false\") {\n val = t(\"CS_NO\");\n }\n\n const friendlyHeader = headerMapping[key] || t(key.toUpperCase()) || key;\n\n if (typeof val === \"string\" && translatedFields.includes(key)) {\n cleanObj[friendlyHeader] = t(val);\n } else if (typeof val === \"string\" && !skipTitleCase.includes(key)) {\n cleanObj[friendlyHeader] = toTitleCase(val);\n } else {\n cleanObj[friendlyHeader] = val;\n }\n });\n\n return cleanObj;\n });\n\n return excelData;\n};\n\nexport const downloadEkycExcel = (consumerList = [], { fileName = \"eKYC_Data\", vendorName = \"\" } = {}, t = (k) => k) => {\n const excelData = getEkycExcelData(consumerList, t);\n const cleanFileName = vendorName ? `${fileName}_${vendorName.replace(/[^a-zA-Z0-9]/g, \"_\")}` : fileName;\n Digit.Download.Excel(excelData, cleanFileName);\n};\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport * as Chartjs from \"chart.js/auto\";\nimport { FaChartBar, MdDownloadIcon } from \"@djb25/digit-ui-react-components\";\nimport { getEkycExcelData } from \"../utils/ekycExcelData\";\n\nconst getChartConstructor = () => {\n const C = Chartjs.Chart || Chartjs.default || Chartjs;\n return C;\n};\n\nconst StatusCards = ({ countData }) => {\n const { t } = useTranslation();\n const [ekycDownloadLoading, setEkycDownloadLoading] = useState(false);\n\n const [showReportMenu, setShowReportMenu] = useState(false);\n const [customDate, setCustomDate] = useState({ from: \"\", to: \"\" });\n const [showCustomPicker, setShowCustomPicker] = useState(false);\n const reportMenuRef = useRef(null);\n\n useEffect(() => {\n const handler = (e) => {\n if (reportMenuRef.current && !reportMenuRef.current.contains(e.target)) {\n setShowReportMenu(false);\n setShowCustomPicker(false);\n }\n };\n document.addEventListener(\"mousedown\", handler);\n return () => document.removeEventListener(\"mousedown\", handler);\n }, []);\n\n let tenantId = Digit.ULBService.getCurrentTenantId();\n if (!tenantId || tenantId === \"dl\") {\n tenantId = \"dl.djb\";\n }\n const loggedInUser = Digit.SessionStorage.get(\"User\")?.info;\n const fullName = loggedInUser?.name || \"Admin\";\n\n const handleDownloadEkycData = async (fromDate, toDate) => {\n setEkycDownloadLoading(true);\n try {\n const response = await Digit.EkycService.application_list({\n tenantId: tenantId,\n offset: 0,\n limit: 10000,\n reportDownload: true,\n ...(fromDate && { fromDate }),\n ...(toDate && { toDate }),\n });\n\n const consumerList = response?.consumerList || [];\n if (consumerList.length === 0) {\n alert(t(\"NO_DATA_FOUND\") || \"No data found for download.\");\n return;\n }\n\n const excelData = getEkycExcelData(consumerList, t);\n const cleanFileName = `eKYC_All_Data_Admin_${fullName.replace(/[^a-zA-Z0-9]/g, \"_\")}`;\n Digit.Download.Excel(excelData, cleanFileName);\n } catch (error) {\n console.error(\"Error downloading eKYC Excel:\", error);\n } finally {\n setEkycDownloadLoading(false);\n }\n };\n\n const getDateRange = (filter) => {\n const now = new Date();\n const start = new Date(now);\n if (filter === \"today\") {\n start.setHours(0, 0, 0, 0);\n return { from: start, to: now };\n }\n if (filter === \"week\") {\n start.setDate(now.getDate() - now.getDay());\n start.setHours(0, 0, 0, 0);\n return { from: start, to: now };\n }\n if (filter === \"month\") {\n start.setDate(1);\n start.setHours(0, 0, 0, 0);\n return { from: start, to: now };\n }\n return null;\n };\n\n const handlePresetDownload = async (filter) => {\n const range = getDateRange(filter);\n if (!range) return;\n setShowReportMenu(false);\n setShowCustomPicker(false);\n await handleDownloadEkycData(range.from.getTime(), range.to.getTime());\n };\n\n const handleCustomDownload = async () => {\n if (!customDate.from || !customDate.to) {\n alert(t(\"SELECT_DATE_RANGE\") || \"Please select both From and To dates.\");\n return;\n }\n const from = new Date(customDate.from);\n from.setHours(0, 0, 0, 0);\n const to = new Date(customDate.to);\n to.setHours(23, 59, 59, 999);\n setShowReportMenu(false);\n setShowCustomPicker(false);\n await handleDownloadEkycData(from.getTime(), to.getTime());\n };\n\n const chartRef1 = useRef(null);\n const chartInstance1 = useRef(null);\n\n const efficiency = countData?.total > 0 ? Math.round(((countData?.submittedCount + countData?.completed) / countData?.total) * 100) : 0;\n const formatNumber = (num) => new Intl.NumberFormat(\"en-IN\").format(num || 0);\n\n useEffect(() => {\n if (chartRef1.current) {\n if (chartInstance1.current) chartInstance1.current.destroy();\n const ctx1 = chartRef1.current.getContext(\"2d\");\n const ChartConstructor = getChartConstructor();\n chartInstance1.current = new ChartConstructor(ctx1, {\n type: \"doughnut\",\n data: {\n labels: [t(\"EKYC_PENDING\"), t(\"EKYC_COMPLETED\"), t(\"EKYC_SUBMITTED\"), t(\"EKYC_INPROCESS\")],\n datasets: [\n {\n data: [countData?.pending, countData?.completed, countData?.submitted, countData?.inprocess],\n backgroundColor: [\"#0c2a52\", \"#77B6EA\", \"#c8ddf5\", \"#49a3fb\"],\n borderColor: [\"#ffffff\", \"#ffffff\", \"#ffffff\", \"#ffffff\"],\n borderWidth: 2,\n hoverOffset: 4,\n },\n ],\n },\n options: {\n cutout: \"75%\",\n plugins: { legend: { display: false } },\n maintainAspectRatio: false,\n responsive: true,\n },\n });\n }\n\n return () => {\n if (chartInstance1.current) chartInstance1.current.destroy();\n };\n }, [countData, t]);\n\n const legendItems = [\n {\n color: \"#77B6EA\",\n label: t(\"EKYC_TOTAL\"),\n value: countData?.total || 0,\n },\n {\n color: \"#0c2a52\",\n label: t(\"EKYC_PENDING\"),\n value: countData?.pending || 0,\n },\n {\n color: \"#2E8B57\",\n label: t(\"EKYC_COMPLETED\"),\n value: countData?.completed || 0,\n },\n // {\n // color: \"#4C8BF5\",\n // label: t(\"EKYC_ASSIGNED\"),\n // value: countData?.totalAssignments || 0,\n // },\n\n {\n color: \"#8B5CF6\",\n label: t(\"EKYC_SUBMITTED_BY_VENDORS\"),\n value: countData?.submittedCount || 0,\n },\n {\n color: \"#F59E0B\",\n label: t(\"EKYC_SUBMITTED_BY_CITIZEN\"),\n value: countData?.selfEkycCount || 0,\n },\n {\n color: \"#DC3545\",\n label: t(\"EKYC_REJECTED\"),\n value: countData?.rejected || 0,\n },\n ];\n\n return (\n <div className=\"ekyc-employee-container\">\n <div className=\"status-panel\">\n <div className=\"status-cards-header\">\n <div className=\"status-card-title\">\n <FaChartBar size={32} color=\"#fff\" backgroundColor=\"#065297\" style={{ paddingInline: \"4px\", borderRadius: \"4px \" }} />\n\n <h1 className=\"status-cards-h1\">{t(\"EKYC_DASHBOARD_TITLE\") || \"eKYC Verification Dashboard\"}</h1>\n </div>\n <div className=\"report-download\" ref={reportMenuRef}>\n <button\n className=\"total-applications-card download-btn\"\n disabled={ekycDownloadLoading}\n onClick={() => {\n setShowReportMenu((p) => !p);\n setShowCustomPicker(false);\n }}\n >\n {t(\"DOWNLOAD_REPORT\") || \"Download Report\"}\n\n <MdDownloadIcon />\n </button>\n\n {showReportMenu && (\n <div className=\"report-menu\">\n {[\n { label: t(\"TODAY\") || \"Today\", key: \"today\" },\n { label: t(\"THIS_WEEK\") || \"This Week\", key: \"week\" },\n { label: t(\"THIS_MONTH\") || \"This Month\", key: \"month\" },\n ].map(({ label, key }) => (\n <div key={key} className=\"menu-item\" onClick={() => handlePresetDownload(key)}>\n {label}\n </div>\n ))}\n\n <div className=\"custom-date-trigger\" onClick={() => setShowCustomPicker((p) => !p)}>\n {t(\"CUSTOM_DATE\") || \"Custom Date\"}\n </div>\n\n {showCustomPicker && (\n <div className=\"custom-picker\">\n <div className=\"date-inputs\">\n <label>\n <span>From</span>\n <input type=\"date\" value={customDate.from} onChange={(e) => setCustomDate({ ...customDate, from: e.target.value })} />\n </label>\n <label>\n <span>To</span>\n <input type=\"date\" value={customDate.to} onChange={(e) => setCustomDate({ ...customDate, to: e.target.value })} />\n </label>\n </div>\n <div style={{ display: \"flex\", gap: \"10px\", marginTop: \"10px\" }}>\n <button\n className=\"picker-cancel-btn\"\n onClick={(e) => {\n e.stopPropagation();\n setShowCustomPicker(false);\n setCustomDate({ from: \"\", to: \"\" });\n }}\n >\n {t(\"CANCEL\") || \"Cancel\"}\n </button>\n <button\n className=\"picker-apply-btn\"\n onClick={(e) => {\n e.stopPropagation();\n handleCustomDownload();\n }}\n >\n {t(\"APPLY\") || \"Apply\"}\n </button>\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n\n <div className=\"status-breakdown-content\">\n {/* Chart */}\n <div className=\"chart-wrapper\">\n <canvas ref={chartRef1} style={{ width: \"100%\", height: \"100%\" }} />\n\n <div className=\"chart-center\">\n <div className=\"chart-percentage\">{efficiency}%</div>\n <div className=\"chart-label\">{t(\"EKYC_COMPLETE\") || \"Complete\"}</div>\n </div>\n </div>\n\n {/* Status Boxes */}\n <div className=\"status-boxes\">\n {legendItems.map((item) => (\n <div className=\"status-box\" key={item.label} style={{ \"--status-color\": item.color }}>\n <div className=\"status-box-top\">\n <span className=\"status-indicator\" style={{ backgroundColor: item.color }} />\n\n <span className=\"status-name\">{item.label}</span>\n </div>\n\n <div className=\"status-box-value\">{formatNumber(item.value)}</div>\n </div>\n ))}\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default StatusCards;\n","import React from \"react\";\nimport StatusCards from \"./StatusCards\";\n\nconst Dashboard = ({ progressData, isProgressLoading }) => {\n const countData = {\n total: progressData?.totalKnosInSystem || 0,\n completed: progressData?.completedKnosInZones || 0,\n pending: progressData?.pendingKnosInZones || 0,\n rejected: progressData?.rejectedKnosInZones || 0,\n totalAssignments: progressData?.totalAssignments || 0,\n submittedCount: progressData?.submittedKnosInZones || 0,\n selfEkycCount: progressData?.selfEkycCountInZones || 0,\n overallProgressPercent: progressData?.overallProgressPercent || 0,\n };\n\n return isProgressLoading ? <EkycDashboardSkeleton /> : <StatusCards countData={countData} />;\n};\n\nexport default Dashboard;\n\nconst EkycDashboardSkeleton = () => {\n return (\n <div className=\"ekyc-employee-container\">\n <div className=\"status-panel ekyc-skel-panel\">\n <div className=\"status-cards-header\">\n <div className=\"status-card-title\">\n <div className=\"ekyc-skel ekyc-skel-icon\" />\n <div className=\"ekyc-skel ekyc-skel-title\" />\n </div>\n\n <div className=\"ekyc-skel ekyc-skel-download-btn\" />\n </div>\n\n <div className=\"status-breakdown-content\">\n {/* Chart */}\n <div className=\"chart-wrapper\">\n <div className=\"ekyc-skel ekyc-skel-donut\" />\n </div>\n\n {/* Status Boxes */}\n <div className=\"status-boxes\">\n {[1, 2, 3, 4].map((item) => (\n <div className=\"status-box\" key={item}>\n <div className=\"status-box-top\">\n <div className=\"ekyc-skel ekyc-skel-dot\" />\n <div className=\"ekyc-skel ekyc-skel-name\" />\n </div>\n <div className=\"ekyc-skel ekyc-skel-value\" />\n </div>\n ))}\n </div>\n </div>\n </div>\n </div>\n );\n};\n","import React, { useMemo, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Table, Card, Loader, InboxLinks } from \"@djb25/digit-ui-react-components\";\nimport { useHistory } from \"react-router-dom\";\nimport StatusCards from \"./StatusCards\";\n\nconst DesktopInbox = ({ tableConfig, filterComponent, ...props }) => {\n const {\n data,\n isLoading,\n onSort,\n onNextPage,\n onPrevPage,\n currentPage,\n pageSizeLimit,\n onPageSizeChange,\n parentRoute,\n searchParams,\n sortParams,\n totalRecords,\n countData,\n } = props;\n const { t } = useTranslation();\n\n const toTitleCase = (str) => {\n if (!str) return \"\";\n return String(str)\n .toLowerCase()\n .replace(/_/g, \" \")\n .replace(/\\b\\w/g, (c) => c.toUpperCase());\n };\n const history = useHistory();\n const tenantId = Digit.ULBService.getCurrentTenantId();\n const FilterComponent = Digit.ComponentRegistryService?.getComponent(filterComponent);\n\n // State for Review Modal\n const [selectedKno, setSelectedKno] = useState(\"\");\n const { data: reviewData, getReview } = Digit.Hooks.ekyc.useEkycAPI(\"review\", tenantId);\n const handleReview = (kno) => {\n setSelectedKno(kno);\n getReview({ kno });\n };\n\n React.useEffect(() => {\n if (reviewData) {\n history.push(\"/digit-ui/employee/ekyc/review\", { kNumber: selectedKno, aadhaarData: reviewData?.aadhaarData, reviewData });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [reviewData]);\n\n const columns = useMemo(\n () => [\n {\n Header: t(\"EKYC_APPLICATION_NO\"),\n accessor: \"applicationNumber\",\n Cell: ({ row }) => {\n const kno = row.original?.kno || row.original?.applicationNumber || \"NA\";\n return (\n <span className=\"link\" onClick={() => handleReview(kno)}>\n {kno}\n </span>\n );\n },\n },\n {\n Header: t(\"EKYC_CITIZEN_NAME\"),\n accessor: \"citizenName\",\n Cell: ({ row }) => <span>{toTitleCase(row.original?.citizenName) || \"NA\"}</span>,\n },\n // {\n // Header: t(\"EKYC_MOBILE_NO\"),\n // accessor: \"mobileNumber\",\n // Cell: ({ row }) => <span>{row.original?.mobileNumber || \"NA\"}</span>,\n // },\n {\n Header: t(\"EKYC_STATUS\"),\n accessor: \"actionStatus\",\n Cell: ({ row }) => {\n const status = (row.original?.status || \"DEFAULT\").toUpperCase();\n return <span className={`ekyc-status-tag ${status}`}>{toTitleCase(row.original?.status || \"DEFAULT\")}</span>;\n },\n },\n {\n Header: t(\"EKYC_EKYC_STATUS\"),\n accessor: \"ekycStatus\",\n Cell: ({ row }) => {\n const raw = row.original?.ekycStatus || row.original?.ekycstatus || \"NA\";\n const ekycStatus = raw.toUpperCase();\n return <span className={`ekyc-status-tag ${ekycStatus}`}>{toTitleCase(raw)}</span>;\n },\n },\n {\n Header: t(\"EKYC_ACTION\"),\n accessor: \"status\",\n Cell: ({ row }) => {\n const kno = row.original?.kno || row.original?.applicationNumber || \"NA\";\n return (\n <span className=\"link\" onClick={() => handleReview(kno)}>\n {t(\"EKYC_REVIEW\")}\n </span>\n );\n },\n },\n ],\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [t, parentRoute]\n );\n\n const tableData = useMemo(() => {\n return data?.items || (Array.isArray(data) ? data : []);\n }, [data]);\n\n return (\n <div className=\"app-container\">\n <div className=\"inbox-container\">\n {isLoading && <Loader />}\n <div className=\"side-panel-item\">\n {/* Sidebar Title Card */}\n\n <InboxLinks headerText={props.moduleCode} />\n\n {FilterComponent && (\n <FilterComponent\n defaultSearchParams={props.defaultSearchParams}\n onFilterChange={props.onSearch}\n searchParams={searchParams}\n type=\"desktop\"\n moduleCode=\"EKYC\"\n />\n )}\n </div>\n\n <div className=\"employee-form-content\" style={{ flex: 1 }}>\n {/* Header Section (retaining for context/actions) */}\n {/* <div className=\"ekyc-header-container module-header\" style={{ marginBottom: \"16px\", display: \"flex\", justifyContent: \"space-between\", alignItems: \"center\" }}>\n <Header className=\"title\" style={{ margin: 0 }}>{t(\"EKYC_INBOX_HEADER\")}</Header>\n <Link to={`${parentRoute}/create-kyc`}>\n <SubmitBar label={t(\"EKYC_CREATE_KYC\")} style={{ borderRadius: \"8px\" }} />\n </Link>\n </div> */}\n\n {/* Metrics Section (The Card) */}\n <Card className=\"ekyc-metrics-card\">\n <StatusCards countData={countData} />\n </Card>\n\n {/* Table Section */}\n <div className=\"result\" style={{ flex: 1 }}>\n <Card className=\"ekyc-table-card\" style={{ padding: 0 }}>\n <Table\n t={t}\n data={tableData}\n columns={columns}\n isLoading={isLoading}\n onSort={onSort}\n sortParams={sortParams}\n totalRecords={totalRecords}\n onNextPage={onNextPage}\n onPrevPage={onPrevPage}\n currentPage={currentPage}\n pageSizeLimit={pageSizeLimit}\n onPageSizeChange={onPageSizeChange}\n getCellProps={(cellInfo) => {\n return {\n className: \"ekyc-table-cell\",\n };\n }}\n />\n </Card>\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default DesktopInbox;\n","import React, { useState } from \"react\";\nimport { TextInput, Card, HomeIcon } from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\n\nconst SearchConsumer = ({ onSearch, searchParams, FilterComponent, children, ...props }) => {\n const { t } = useTranslation();\n const [_searchParams, setSearchParams] = useState(() => ({ ...searchParams }));\n\n const onChange = (key, value) => {\n setSearchParams((prev) => ({ ...prev, [key]: value }));\n };\n\n const onSubmit = (e) => {\n if (e && e.preventDefault) e.preventDefault();\n onSearch(_searchParams);\n };\n\n const onClear = () => {\n const cleared = { kNumber: \"\", kName: \"\" };\n setSearchParams(cleared);\n onSearch(cleared);\n };\n\n return (\n <div className=\"ekyc-employee-container\">\n <div className=\"search-consumer-wrapper\">\n <div className=\"header-wrapper\">\n {/* Sidebar Title Card — flush top, full width */}\n <Card className=\"sidebar-title-card\">\n <div className=\"icon-container\">\n <HomeIcon />\n </div>\n <div className=\"title-text\">\n {t(\"EKYC_SEARCH_CONSUMER_HEADER\")}\n </div>\n </Card>\n </div>\n\n {/* Main Content */}\n <div className=\"main-content-wrapper\">\n {/* Top Row: Search Card + Stats Cards */}\n <div className=\"search-stats-row\">\n {/* Identity Lookup Card */}\n <div className=\"identity-lookup-card\">\n {/* Card Title */}\n <div className=\"lookup-card-title\">\n <div className=\"lookup-icon-bg\">\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#3A7BD5\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" />\n </svg>\n </div>\n <span className=\"lookup-title-text\">\n {t(\"EKYC_IDENTITY_LOOKUP\") || \"Identity Lookup\"}\n </span>\n </div>\n\n {/* Inputs Row */}\n <form onSubmit={onSubmit}>\n <div className=\"inputs-row\">\n <div className=\"input-group\">\n <label>\n {t(\"EKYC_K_NUMBER\") || \"K Number\"}\n <span className=\"info-badge\">i</span>\n </label>\n <TextInput\n value={_searchParams?.kNumber}\n onChange={(e) => onChange(\"kNumber\", e.target.value)}\n placeholder={t(\"EKYC_K_NUMBER_PLACEHOLDER\") || \"e.g. 8234910234\"}\n />\n </div>\n\n <div className=\"input-group\">\n <label>\n {t(\"EKYC_K_NAME\") || \"K Name\"}\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#3A7BD5\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\" />\n <circle cx=\"12\" cy=\"7\" r=\"4\" />\n </svg>\n </label>\n <TextInput\n value={_searchParams?.kName}\n onChange={(e) => onChange(\"kName\", e.target.value)}\n placeholder={t(\"EKYC_K_NAME_PLACEHOLDER\") || \"Consumer name search\"}\n />\n </div>\n </div>\n\n {/* Actions Row */}\n <div className=\"actions-row\">\n <button type=\"button\" onClick={onClear} className=\"clear-btn\">\n {t(\"ES_COMMON_CLEAR\") || \"Clear\"}\n </button>\n <button type=\"submit\" className=\"search-btn\">\n {t(\"ES_COMMON_SEARCH\") || \"Execute Search\"}\n </button>\n </div>\n </form>\n </div>\n\n {/* Right Stats Column */}\n <div className=\"stats-column\">\n {/* Today's Audits Card */}\n <div className=\"audits-card\">\n <div className=\"audits-label\">{t(\"EKYC_TODAYS_AUDITS\") || \"Today's Audits\"}</div>\n <div className=\"audits-count\">{props.countData?.todaysAudits || 24}</div>\n <div className=\"audits-change\">\n <span>↗</span>\n {props.countData?.auditChange || \"12% increase from yesterday\"}\n </div>\n <div className=\"audits-watermark\">M</div>\n </div>\n\n {/* Queue Status Card */}\n <div className=\"queue-card\">\n <div className=\"queue-label\">{t(\"EKYC_QUEUE_STATUS\") || \"Queue Status\"}</div>\n <div className=\"queue-content\">\n <div className=\"queue-status-text\">\n {props.countData?.pendingCount || 3} Pending\n </div>\n <div className=\"avatar-group\">\n {[0, 1].map((i) => (\n <div key={i} className=\"avatar-item\">\n {String.fromCharCode(65 + i)}\n </div>\n ))}\n <div className=\"avatar-more\">+1</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {/* Children (ConnectionDetailsView or placeholder) */}\n {children}\n </div>\n </div>\n </div>\n );\n};\n\nexport default SearchConsumer;","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Header, Card, SubmitBar, DetailsCard, Loader } from \"@djb25/digit-ui-react-components\";\nimport { Link } from \"react-router-dom\";\nimport SearchConsumer from \"./SearchConsumer\";\nimport StatusCards from \"./StatusCards\";\n\nconst MobileInbox = ({\n data,\n isLoading,\n onSearch,\n searchParams,\n parentRoute,\n countData,\n}) => {\n const { t } = useTranslation();\n\n const mobileData = data?.items?.map((item) => ({\n [t(\"EKYC_APPLICATION_NO\")]: item.applicationNumber,\n [t(\"EKYC_CITIZEN_NAME\")]: item.citizenName,\n [t(\"EKYC_MOBILE_NO\")]: item.mobileNumber,\n [t(\"EKYC_STATUS\")]: (\n <span className={`ekyc-status-tag ${item.status}`}>\n {t(`EKYC_STATUS_${item.status}`)}\n </span>\n ),\n })) || [];\n\n return (\n <div className=\"inbox-wrapper\">\n <div className=\"ekyc-header-container module-header\">\n <Header className=\"title\">{t(\"EKYC_INBOX_HEADER\")}</Header>\n <Link to={`${parentRoute}/create-kyc`}>\n <SubmitBar label={t(\"EKYC_CREATE_KYC\")} />\n </Link>\n </div>\n\n <div className=\"ekyc-metrics-section\">\n <StatusCards countData={countData} />\n </div>\n\n <SearchConsumer\n onSearch={onSearch}\n searchParams={searchParams}\n />\n\n <div className=\"mobile-data-container\">\n {isLoading ? (\n <Loader />\n ) : mobileData?.length > 0 ? (\n <DetailsCard\n data={mobileData}\n t={t}\n serviceRequestIdKey={t(\"EKYC_APPLICATION_NO\")}\n linkPrefix={`${parentRoute}/application-details/`}\n />\n ) : (\n <Card>\n {t(\"ES_COMMON_NO_DATA\")\n .split(\"\\\\n\")\n .map((text, index) => (\n <p key={index} style={{ textAlign: \"center\" }}>\n {text}\n </p>\n ))}\n </Card>\n )}\n </div>\n </div>\n );\n};\n\nexport default MobileInbox;\n","import React, { useState } from \"react\";\nimport { Dropdown, FilterForm, FilterFormField } from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\n\nconst Filter = ({ searchParams, onFilterChange, defaultSearchParams, statusMap, moduleCode, ...props }) => {\n const { t } = useTranslation();\n\n const [_searchParams, setSearchParams] = useState(() => ({ ...searchParams }));\n\n const applyLocalFilters = () => {\n onFilterChange(_searchParams);\n };\n\n const clearAll = () => {\n setSearchParams({ ...defaultSearchParams });\n onFilterChange({ ...defaultSearchParams });\n };\n\n const onStatusChange = (value) => {\n const newParams = { ..._searchParams, status: value };\n setSearchParams(newParams);\n onFilterChange(newParams);\n };\n\n return (\n <FilterForm\n onSubmit={applyLocalFilters}\n handleSubmit={(fn) => (e) => {\n e && e.preventDefault();\n fn();\n }}\n onResetFilterForm={clearAll}\n id=\"ekyc-filter-form\"\n onMobileExclusiveFilterPopupFormClose={props.onClose}\n >\n <FilterFormField>\n <div className=\"filter-label\" style={{ fontWeight: \"normal\" }}>\n {t(\"EKYC_STATUS\")}:\n </div>\n <Dropdown\n option={[\n { label: t(\"EKYC_STATUS_ALL\"), value: \"\" },\n { label: t(\"EKYC_STATUS_ACTIVE\"), value: \"ACTIVE\" },\n { label: t(\"EKYC_STATUS_PENDING\"), value: \"PENDING START\" },\n ]}\n optionKey=\"label\"\n select={onStatusChange}\n selected={_searchParams?.status || { label: t(\"EKYC_STATUS_ALL\"), value: \"\" }}\n />\n </FilterFormField>\n </FilterForm>\n );\n};\n\nexport default Filter;\n","import { getEkycExcelData } from \"./ekycExcelData\";\n\nexport const downloadSurveyorPDF = async ({ rows, surveyorName, employeeId, mobileNumber, vendorName, supervisorName, dashboardInfo, t }) => {\n const tenantId = Digit.ULBService.getCurrentTenantId();\n // const initData = Digit.SessionStorage.get(\"initData\");\n // const tenants = initData?.tenants || [];\n // const tenantInfo = tenants.find((tenant) => tenant.code === tenantId);\n\n // const capitalize = (text) => text && text.substr(0, 1).toUpperCase() + text.substr(1);\n // const ulbCamel = (ulb) => ulb && ulb.toLowerCase().split(\" \").map(capitalize).join(\" \");\n\n const name = \"Delhi Jal Board\";\n const email = \"contact@delhijalboard.nic.in\";\n const phoneNumber = \"+91-11-23538416\";\n\n const currentDate = new Date();\n const formattedDate = currentDate.toLocaleDateString(\"en-IN\", {\n day: \"2-digit\",\n month: \"2-digit\",\n year: \"numeric\",\n });\n const formattedTime = currentDate.toLocaleTimeString(\"en-IN\", {\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n hour12: false,\n });\n const downloadDateTime = `${formattedDate} ${formattedTime}`;\n\n const isValDefined = (val) => val !== undefined && val !== null && val !== \"\";\n\n const details = [\n {\n title: t(\"SURVEYOR_DETAILS\"),\n asSectionHeader: true,\n values: [\n { title: t(\"SURVEYOR_NAME\"), value: surveyorName },\n { title: t(\"MOBILE_NUMBER\"), value: mobileNumber },\n { title: t(\"VENDOR_NAME\"), value: vendorName },\n { title: t(\"SUPERVISOR_NAME\"), value: supervisorName },\n ].filter((item) => isValDefined(item.value)),\n },\n {\n title: t(\"SUMMARY_STATISTICS\"),\n asSectionHeader: true,\n values: [\n { title: t(\"TOTAL_ASSIGNED\"), value: dashboardInfo?.total || 0 },\n { title: t(\"COMPLETED\"), value: dashboardInfo?.completed || 0 },\n { title: t(\"PENDING\"), value: dashboardInfo?.pending || 0 },\n { title: t(\"SUBMITTED\"), value: dashboardInfo?.submittedCount || 0 },\n ].filter((item) => isValDefined(item.value)),\n },\n ];\n\n if (window.Digit && window.Digit.Utils && window.Digit.Utils.pdf && window.Digit.Utils.pdf.generateSurveyorReport) {\n window.Digit.Utils.pdf.generateSurveyorReport({\n tenantId,\n logo: null,\n name,\n email,\n phoneNumber,\n heading: t(\"EKYC_SURVEYOR_REPORT\"),\n details,\n applicationNumber: employeeId,\n rows,\n t,\n hideApplicationNumber: true,\n downloadTime: downloadDateTime,\n });\n } else {\n console.error(\"Digit.Utils.pdf.generateSurveyorReport is not available\");\n }\n};\n\nexport const downloadSupervisorPDF = async ({ rows, supervisorName, mobileNumber, vendorName, dashboardInfo, t }) => {\n const tenantId = Digit.ULBService.getCurrentTenantId();\n\n const name = \"Delhi Jal Board\";\n const email = \"contact@delhijalboard.nic.in\";\n const phoneNumber = \"+91-11-23538416\";\n\n const currentDate = new Date();\n const formattedDate = currentDate.toLocaleDateString(\"en-IN\", {\n day: \"2-digit\",\n month: \"2-digit\",\n year: \"numeric\",\n });\n const formattedTime = currentDate.toLocaleTimeString(\"en-IN\", {\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n hour12: false,\n });\n const downloadDateTime = `${formattedDate} ${formattedTime}`;\n\n const isValDefined = (val) => val !== undefined && val !== null && val !== \"\";\n\n const details = [\n {\n title: t(\"SUPERVISOR_DETAILS\") || \"Supervisor Details\",\n asSectionHeader: true,\n values: [\n { title: t(\"SUPERVISOR_NAME\") || \"Supervisor Name\", value: supervisorName },\n { title: t(\"MOBILE_NUMBER\") || \"Mobile Number\", value: mobileNumber },\n { title: t(\"VENDOR_NAME\") || \"Vendor Name\", value: vendorName },\n ].filter((item) => isValDefined(item.value)),\n },\n {\n title: t(\"SUMMARY_STATISTICS\") || \"Summary Statistics\",\n asSectionHeader: true,\n values: [\n { title: t(\"TOTAL_ASSIGNED\") || \"Total Assigned\", value: dashboardInfo?.total || 0 },\n { title: t(\"COMPLETED\") || \"Completed\", value: dashboardInfo?.completed || 0 },\n { title: t(\"PENDING\") || \"Pending\", value: dashboardInfo?.pending || 0 },\n { title: t(\"SUBMITTED\") || \"Submitted\", value: dashboardInfo?.submittedCount || 0 },\n ].filter((item) => isValDefined(item.value)),\n },\n ];\n\n // Map rows from surveyors format to the table template format\n const mappedRows = rows.map((row) => ({\n kno: row.name || row.owner?.name || \"N/A\",\n firstName: row.owner?.mobileNumber || row.mobileNo || \"N/A\",\n lastName: \"\",\n mobileNo: row.status || \"N/A\",\n zoneName: String(row.total || 0),\n ekycStatus: `${row.completed || 0} / ${row.pending || 0}`,\n progress: row.progress || \"0%\",\n submittedAt: null,\n}));\n\n // Custom translator to rewrite headers\n const customT = (key) => {\n if (key === \"KNO\") return t(\"SURVEYOR_NAME\") || \"Surveyor Name\";\n if (key === \"CONSUMER\") return t(\"MOBILE_NUMBER\") || \"Mobile Number\";\n if (key === \"MOBILE\") return t(\"STATUS\") || \"Status\";\n if (key === \"ZONE\") return t(\"TOTAL_EKYC_APPLICATIONS\") || \"Total eKYC Applications\";\n if (key === \"EKYC_STATUS\") return t(\"COMPLETED_PENDING\") || \"Completed / Pending\";\n if (key === \"SUBMITTED_DATE\") return t(\"OVERALL_PROGRESS\") || \"Overall Progress\";\n if (key === \"CONSUMER_LIST\") return t(\"CONNECTED_SURVEYORS\") || \"Connected Surveyors\";\n return t(key);\n };\n\n try {\n if (window.Digit && window.Digit.Utils && window.Digit.Utils.pdf && window.Digit.Utils.pdf.generateSurveyorReport) {\n window.Digit.Utils.pdf.generateSurveyorReport({\n tenantId,\n logo: null,\n name,\n email,\n phoneNumber,\n heading: t(\"EKYC_SUPERVISOR_REPORT\") || \"eKYC Supervisor Report\",\n details,\n applicationNumber: mobileNumber,\n rows: mappedRows,\n t: customT,\n hideApplicationNumber: true,\n downloadTime: downloadDateTime,\n });\n } else {\n console.error(\"Digit.Utils.pdf.generateSurveyorReport is not available\");\n }\n }catch{\n\n }\n};\n\nexport const downloadVendorPDF = async ({ rows, vendorName, mobileNumber, email, dashboardInfo, t }) => {\n const tenantId = Digit.ULBService.getCurrentTenantId();\n\n const name = \"Delhi Jal Board\";\n const emailContact = \"contact@delhijalboard.nic.in\";\n const phoneNumber = \"+91-11-23538416\";\n\n const currentDate = new Date();\n const formattedDate = currentDate.toLocaleDateString(\"en-IN\", {\n day: \"2-digit\",\n month: \"2-digit\",\n year: \"numeric\",\n });\n const formattedTime = currentDate.toLocaleTimeString(\"en-IN\", {\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n hour12: false,\n });\n const downloadDateTime = `${formattedDate} ${formattedTime}`;\n\n const isValDefined = (val) => val !== undefined && val !== null && val !== \"\";\n\n const details = [\n {\n title: t(\"VENDOR_DETAILS\") || \"Vendor Details\",\n asSectionHeader: true,\n values: [\n { title: t(\"VENDOR_NAME\") || \"Vendor Name\", value: vendorName },\n { title: t(\"MOBILE_NUMBER\") || \"Mobile Number\", value: mobileNumber },\n { title: t(\"EMAIL\") || \"Email\", value: email },\n ].filter((item) => isValDefined(item.value)),\n },\n {\n title: t(\"SUMMARY_STATISTICS\") || \"Summary Statistics\",\n asSectionHeader: true,\n values: [\n { title: t(\"TOTAL_ASSIGNED\") || \"Total Assigned\", value: dashboardInfo?.total || 0 },\n { title: t(\"TOTAL_EKYC_APPLICATIONS\") || \"Completed\", value: dashboardInfo?.completed || 0 },\n { title: t(\"PENDING\") || \"Pending\", value: dashboardInfo?.pending || 0 },\n { title: t(\"SUBMITTED\") || \"Submitted\", value: dashboardInfo?.submittedCount || 0 },\n ].filter((item) => isValDefined(item.value)),\n },\n ];\n\n // Map rows from supervisors format to the table template format\n const mappedRows = rows.map((row) => ({\n kno: row.name || \"N/A\",\n firstName: row.mobileNo || \"N/A\",\n lastName: \"\",\n mobileNo: row.status || \"N/A\",\n zoneName: String(row.total || 0),\n ekycStatus: `${row.completed || 0} / ${row.pending || 0}`,\n progress: row.progress || \"0%\",\n }));\n\n // Custom translator to rewrite headers\n const customT = (key) => {\n if (key === \"KNO\") return t(\"SUPERVISOR_NAME\") || \"Supervisor Name\";\n if (key === \"CONSUMER\") return t(\"MOBILE_NUMBER\") || \"Mobile Number\";\n if (key === \"MOBILE\") return t(\"STATUS\") || \"Status\";\n if (key === \"ZONE\") return t(\"TOTAL_EKYC_APPLICATIONS\") || \"Total eKYC Applications\";\n if (key === \"SUBMITTED_DATE\") return t(\"OVERALL_PROGRESS\") || \"Overall Progress\";\n if (key === \"CONSUMER_LIST\") return t(\"CONNECTED_SUPERVISORS\") || \"Connected Supervisors\";\n return t(key);\n };\n\n try {\n if (window.Digit && window.Digit.Utils && window.Digit.Utils.pdf && window.Digit.Utils.pdf.generateSurveyorReport) {\n window.Digit.Utils.pdf.generateSurveyorReport({\n tenantId,\n logo: null,\n name,\n email: emailContact,\n phoneNumber,\n heading: t(\"EKYC_VENDOR_REPORT\") || \"eKYC Vendor Report\",\n details,\n applicationNumber: mobileNumber,\n rows: mappedRows,\n t: customT,\n hideApplicationNumber: true,\n downloadTime: downloadDateTime,\n });\n } else {\n console.error(\"Digit.Utils.pdf.generateSurveyorReport is not available\");\n }\n } catch {\n \n }\n};\n\nexport const downloadEkycExcel = async ({ tenantId, vendorId, fromDate, toDate, fileName = \"eKYC_Data\", t }) => {\n try {\n const response = await Digit.EkycService.application_list({\n tenantId,\n offset: 0,\n limit: 10000,\n vendorId,\n reportDownload: true,\n ...(fromDate && { fromDate }),\n ...(toDate && { toDate }),\n });\n\n const consumerList = response?.consumerList || [];\n\n if (!consumerList.length) {\n alert(t(\"NO_EKYC_DATA_FOUND\") || \"No eKYC data found to download.\");\n return false;\n }\n\n const excelData = getEkycExcelData(consumerList, t);\n\n Digit.Download.Excel(excelData, fileName);\n\n return true;\n } catch (error) {\n console.error(\"Failed to download eKYC data:\", error);\n\n alert(t(\"EKYC_DOWNLOAD_FAILED\") || \"Failed to download eKYC data. Please try again.\");\n\n return false;\n }\n};\n","import React, { useMemo, useState, useRef, useEffect } from \"react\";\nimport { Card, Loader, Table, MdDownloadIcon, FaDatabase, FaFileAlt } from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { useParams, useHistory } from \"react-router-dom\";\nimport { downloadVendorPDF } from \"../utils/reportDownloader\";\nimport { FaBuilding, FaUser, FaClock, FaChartLine } from \"react-icons/fa\";\nimport { getEkycExcelData } from \"../utils/ekycExcelData\";\n\nconst VendorDetailsCard = () => {\n const { t } = useTranslation();\n const history = useHistory();\n const tenantId = Digit.ULBService.getCurrentTenantId() || \"dl.djb\";\n const { vendorId } = useParams();\n\n const { data: { vendor: [vendor] = [] } = {}, isLoading: isVendorSearchLoading } = Digit.Hooks.fsm.useVendorSearch({\n tenantId,\n filters: {\n status: \"ACTIVE\",\n ids: vendorId,\n },\n config: {\n enabled: !!tenantId,\n staleTime: 300000,\n },\n });\n\n // Match vendor details\n\n const targetVendorId = vendorId || vendor?.id || vendor?.vendorId;\n\n // Fetch assignment progress with hierarchy (supervisor and surveyor details) for target vendor\n const { isLoading: isProgressLoading, data: progressData } = Digit.Hooks.ekyc.useEkycAssignmentProgress(\n targetVendorId ? { vendorId: targetVendorId } : {},\n {\n enabled: !!tenantId,\n keepPreviousData: true,\n }\n );\n\n const vendorName = vendor?.name || \"N/A\";\n const mobileNumber = vendor?.mobileNumber || vendor?.owner?.mobileNumber || \"N/A\";\n const email = vendor?.owner?.emailId || \"N/A\";\n // const status = vendor ? \"ACTIVE\" : \"N/A\";\n // const jurisdictions = useMemo(() => {\n // if (Array.isArray(vendor?.jurisdictions)) {\n // return vendor.jurisdictions.join(\", \");\n // }\n // return \"N/A\";\n // }, [vendor]);\n const zoneIds = useMemo(() => {\n return vendor?.zoneIds?.length ? vendor.zoneIds.filter(Boolean).map((zone) => String(zone).trim().toUpperCase()) : [];\n }, [vendor]);\n\n // KPI stats calculation\n const cards = [\n {\n label: \"TOTAL_KNOS\",\n count: progressData?.totalKnosInZones || 0,\n color: \"#2563EB\", // Blue\n type: \"today\",\n icon: <FaDatabase />,\n },\n {\n label: \"TOTAL_EKYC_APPLICATIONS\",\n count: progressData?.totalAssignments || 0,\n color: \"#0891B2\", // Cyan\n type: \"today\",\n icon: <FaFileAlt />,\n },\n // {\n // label: \"EKYC_SUBMITTED\",\n // count: progressData?.submittedKnos || 0,\n // color: \"#10B981\",\n // type: \"month\",\n // icon: <FaCheckCircle />,\n // },\n {\n label: \"EKYC_SUBMITTED_BY_VENDORS\",\n count: progressData?.submittedKnosInZones || 0,\n color: \"#0D9488\", // Teal\n type: \"month\",\n icon: <FaBuilding />,\n },\n {\n label: \"EKYC_SUBMITTED_BY_CITIZEN\",\n count: progressData?.selfEkycCountInZones || 0,\n color: \"#7C3AED\", // Purple\n type: \"month\",\n icon: <FaUser />,\n },\n {\n label: \"PENDING_APPLICATIONS\",\n count: progressData?.pendingKnosInZones || 0,\n color: \"#EA580C\", // Orange\n type: \"pending\",\n icon: <FaClock />,\n },\n {\n label: \"OVERALL_PROGRESS\",\n count: `${progressData?.overallProgressPercent || 0}%`,\n color: \"#DB2777\", // Pink\n type: \"progress\",\n icon: <FaChartLine />,\n },\n ];\n\n const [currentPage, setCurrentPage] = useState(0);\n const [pageSize, setPageSize] = useState(20);\n\n const [ekycDownloadLoading, setEkycDownloadLoading] = useState(false);\n\n const handleDownloadEkycData = async (fromDate, toDate) => {\n setEkycDownloadLoading(true);\n try {\n const response = await Digit.EkycService.application_list({\n tenantId: tenantId,\n offset: 0,\n limit: 10000,\n // Vendor-specific filter\n vendorId: targetVendorId,\n reportDownload: true,\n ...(fromDate && { fromDate }),\n ...(toDate && { toDate }),\n });\n\n const consumerList = response?.consumerList || [];\n\n if (!consumerList || consumerList.length === 0) {\n alert(t(\"NO_EKYC_DATA_FOUND\") || \"No eKYC data found to download.\");\n return;\n }\n const excelData = getEkycExcelData(consumerList, t);\n const cleanFileName = `eKYC_Data_${vendorName.replace(/[^a-zA-Z0-9]/g, \"_\")}`;\n Digit.Download.Excel(excelData, cleanFileName);\n } catch (error) {\n console.error(\"Failed to download eKYC data:\", error);\n alert(t(\"EKYC_DOWNLOAD_FAILED\") || \"Failed to download eKYC data. Please try again.\");\n } finally {\n setEkycDownloadLoading(false);\n }\n };\n\n const getDateRange = (filter) => {\n const now = new Date();\n const start = new Date(now);\n if (filter === \"today\") {\n start.setHours(0, 0, 0, 0);\n return { from: start, to: now };\n }\n if (filter === \"week\") {\n start.setDate(now.getDate() - now.getDay());\n start.setHours(0, 0, 0, 0);\n return { from: start, to: now };\n }\n if (filter === \"month\") {\n start.setDate(1);\n start.setHours(0, 0, 0, 0);\n return { from: start, to: now };\n }\n return null;\n };\n\n const supervisorColumns = useMemo(\n () => [\n {\n Header: t(\"SUPERVISOR_NAME\") || \"Supervisor Name\",\n accessor: (row) => row?.original?.supervisorName || \"N/A\",\n Cell: ({ row }) => {\n const userType = Digit.SessionStorage.get(\"User\")?.info?.type?.toLowerCase() || \"citizen\";\n const targetPath = `/digit-ui/${userType}/ekyc/supervisor-dashboard/${row?.original?.supervisorId}`;\n\n return (\n <a\n href={targetPath}\n style={{ color: \"#1D70B8\", fontWeight: \"600\", textDecoration: \"none\" }}\n onClick={(e) => {\n e.preventDefault();\n history.push(targetPath);\n }}\n >\n {row?.original?.supervisorName || \"N/A\"}\n </a>\n );\n },\n },\n {\n Header: t(\"MOBILE_NUMBER\") || \"Mobile Number\",\n accessor: (row) => row?.mobileNo || \"N/A\",\n id: \"mobileNo\",\n },\n {\n Header: t(\"STATUS\") || \"Status\",\n accessor: (row) => row?.status || \"ACTIVE\",\n id: \"status\",\n Cell: ({ value }) => <span className={`status-badge verified`}>{t(value) || value}</span>,\n },\n {\n Header: t(\"TOTAL_EKYC_APPLICATIONS\") || \"Total eKYC Applications\",\n accessor: (row) => row?.totalKnos || 0,\n id: \"totalEkycApplications\",\n },\n {\n Header: t(\"EKYC_SUBMITTED\") || \"eKYC Completed\",\n accessor: (row) => row?.submittedKnos || 0,\n id: \"ekycCompleted\",\n },\n {\n Header: t(\"PENDING_APPLICATIONS\") || \"Pending Applications\",\n accessor: (row) => row?.pendingKnos || 0,\n id: \"pendingApplications\",\n },\n {\n Header: t(\"OVERALL_PROGRESS\") || \"Overall Progress\",\n accessor: (row) => `${row?.progressPercent || 0}%`,\n id: \"overallProgress\",\n },\n ],\n [t, history]\n );\n\n // Report Download logic\n const [showReportMenu, setShowReportMenu] = useState(false);\n const [customDate, setCustomDate] = useState({ from: \"\", to: \"\" });\n const [showCustomPicker, setShowCustomPicker] = useState(false);\n const [reportLoading, setReportLoading] = useState(false);\n const reportMenuRef = useRef(null);\n\n useEffect(() => {\n const handler = (e) => {\n if (reportMenuRef.current && !reportMenuRef.current.contains(e.target)) {\n setShowReportMenu(false);\n setShowCustomPicker(false);\n }\n };\n document.addEventListener(\"mousedown\", handler);\n return () => document.removeEventListener(\"mousedown\", handler);\n }, []);\n\n const handleDownload = () => {\n setReportLoading(true);\n try {\n const rowsWithStats = progressData?.supervisorReport.map((s) => ({\n name: s.supervisorName,\n mobileNo: s.mobileNo,\n total: s.totalKnos,\n completed: s.submittedKnos,\n pending: s.pendingKnos,\n progress: `${s.progressPercent || 0}%`,\n }));\n\n downloadVendorPDF({\n rows: rowsWithStats,\n vendorName,\n mobileNumber,\n email,\n dashboardInfo: {\n total: progressData?.totalKnosInZones,\n completed: progressData?.submittedKnosInZones + progressData?.selfEkycCountInZones,\n pending: progressData?.pendingKnosInZones,\n submittedCount: progressData?.submittedKnosInZones,\n },\n t,\n });\n } catch (err) {\n console.error(\"Failed to generate report:\", err);\n } finally {\n setReportLoading(false);\n }\n };\n\n const handlePresetDownload = async (filter) => {\n const range = getDateRange(filter);\n if (!range) return;\n setShowReportMenu(false);\n setShowCustomPicker(false);\n await handleDownloadEkycData(range.from.getTime(), range.to.getTime());\n };\n\n const handleCustomDownload = async () => {\n if (!customDate.from || !customDate.to) {\n alert(t(\"SELECT_DATE_RANGE\") || \"Please select both From and To dates.\");\n return;\n }\n const from = new Date(customDate.from);\n from.setHours(0, 0, 0, 0);\n const to = new Date(customDate.to);\n to.setHours(23, 59, 59, 999);\n setShowReportMenu(false);\n setShowCustomPicker(false);\n await handleDownloadEkycData(from.getTime(), to.getTime());\n };\n\n const StatCard = ({ title, value, type, isLoading, icon }) => (\n <div className={`stat-card ${type}`}>\n {isLoading ? (\n <React.Fragment>\n <div className=\"stat-title skeleton skeleton-text\"></div>\n <div className=\"stat-value skeleton skeleton-number\"></div>\n </React.Fragment>\n ) : (\n <React.Fragment>\n <div className=\"stat-title\">{title}</div>\n <div className=\"stat-value\">{value}</div>\n {icon && <div className=\"stat-icon\">{icon}</div>}\n </React.Fragment>\n )}\n </div>\n );\n\n const isPageLoading = isProgressLoading || isVendorSearchLoading;\n\n if (isPageLoading && !vendor) {\n return <Loader />;\n }\n\n if (!vendor) {\n return (\n <Card>\n <div style={{ padding: \"24px\" }}>{t(\"NO_VENDOR_FOUND\") || \"No Vendor Found\"}</div>\n </Card>\n );\n }\n\n return (\n <Card className=\"surveyor-dashboard\">\n {/* Header + Download Report */}\n <div className=\"ekyc-dashboard-section\">\n <div className=\"ekyc-dashboard-header\">\n <div className=\"avatar\">{vendorName?.charAt(0)?.toUpperCase()}</div>\n\n <div className=\"header-content\">\n <h2 className=\"name\">{vendorName}</h2>\n <div className=\"designation\">{t(\"VENDOR_AGENCY\") || \"Agency / Vendor\"}</div>\n </div>\n </div>\n\n {/* Download Report — far right */}\n <div className=\"report-download\">\n <button className=\"download-btn\" disabled={reportLoading} onClick={handleDownload}>\n {reportLoading ? t(\"DOWNLOADING\") || \"Downloading...\" : t(\"DOWNLOAD_REPORT\") || \"Download Report\"}\n </button>\n </div>\n </div>\n\n {/* Stats */}\n <div className=\"stats-wrapper\">\n {cards.map((card, idx) => (\n <StatCard key={idx} title={t(card.label)} value={card.count} type={card.type} isLoading={isPageLoading} icon={card.icon} />\n ))}\n </div>\n\n {/* Details */}\n <div className=\"ekyc-dashboard-section\">\n <div className=\"ekyc-details-wrapper\">\n {/* Top Row: Mobile, Email, and Download eKYC Data */}\n <div className=\"details-top-row\">\n <div className=\"detail-item\">\n <span className=\"label\">{t(\"MOBILE\")}</span>\n <span className=\"value\">{mobileNumber}</span>\n </div>\n\n <div className=\"detail-item\">\n <span className=\"label\">{t(\"EMAIL\")}</span>\n <span className=\"value\">{email}</span>\n </div>\n\n <div className=\"download-card\">\n <div>\n <h4>{t(\"DOWNLOAD_EKYC_DATA\") || \"Download eKYC Data\"}</h4>\n <p>\n {t(\"DOWNLOAD_EKYC_DATA_DESC\") || \"Export the complete eKYC verification records for your assigned jurisdiction into Excel format.\"}\n </p>\n </div>\n <div className=\"report-download\" ref={reportMenuRef}>\n <button\n className=\"download-excel-btn\"\n disabled={ekycDownloadLoading}\n onClick={() => {\n setShowReportMenu((p) => !p);\n setShowCustomPicker(false);\n }}\n >\n <MdDownloadIcon />\n {ekycDownloadLoading ? t(\"DOWNLOADING\") || \"Downloading...\" : t(\"DOWNLOAD_EXCEL\") || \"Download Excel\"}\n </button>\n\n {showReportMenu && (\n <div className=\"report-menu\">\n {[\n { label: t(\"TODAY\") || \"Today\", key: \"today\" },\n { label: t(\"THIS_WEEK\") || \"This Week\", key: \"week\" },\n { label: t(\"THIS_MONTH\") || \"This Month\", key: \"month\" },\n ].map(({ label, key }) => (\n <div key={key} className=\"menu-item\" onClick={() => handlePresetDownload(key)}>\n {label}\n </div>\n ))}\n\n <div className=\"custom-date-trigger\" onClick={() => setShowCustomPicker((p) => !p)}>\n {t(\"CUSTOM_DATE\") || \"Custom Date\"}\n </div>\n\n {showCustomPicker && (\n <div className=\"custom-picker\">\n <div className=\"date-inputs\">\n <label>\n <span>From</span>\n <input type=\"date\" value={customDate.from} onChange={(e) => setCustomDate({ ...customDate, from: e.target.value })} />\n </label>\n <label>\n <span>To</span>\n <input type=\"date\" value={customDate.to} onChange={(e) => setCustomDate({ ...customDate, to: e.target.value })} />\n </label>\n </div>\n <div style={{ display: \"flex\", gap: \"10px\", marginTop: \"10px\" }}>\n <button\n className=\"picker-cancel-btn\"\n onClick={() => {\n setShowCustomPicker(false);\n setCustomDate({ from: \"\", to: \"\" });\n }}\n >\n {t(\"CANCEL\") || \"Cancel\"}\n </button>\n <button className=\"picker-apply-btn\" onClick={handleCustomDownload}>\n {t(\"APPLY\") || \"Apply\"}\n </button>\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n </div>\n\n {/* Bottom Row: Assigned Zones Full Width */}\n <div className=\"full-width-item\">\n <span className=\"label\">{t(\"ASSIGNED_ZONES\") || \"Assigned Zones\"}</span>\n <span className=\"value\">\n {zoneIds.length > 0 ? (\n <div className=\"selected-zones\" style={{ marginTop: \"4px\", width: \"100%\", display: \"flex\", flexWrap: \"wrap\", gap: \"8px\" }}>\n {zoneIds.map((zone) => (\n <span key={zone} className=\"selected-zone-chip\">\n {t(zone) || zone}\n </span>\n ))}\n </div>\n ) : (\n \"N/A\"\n )}\n </span>\n </div>\n </div>\n </div>\n\n <div>\n <Table\n t={t}\n tableTitle={t(\"CONNECTED_SUPERVISORS\") || \"Connected Supervisors\"}\n tableClass=\"ekycTable\"\n isTableScrollable={true}\n data={progressData?.supervisorReport}\n columns={supervisorColumns}\n isLoading={isProgressLoading}\n totalRecords={progressData?.supervisorReport?.length}\n currentPage={currentPage}\n pageSizeLimit={pageSize}\n isPaginationRequired={true}\n onNextPage={() => {\n if (currentPage < Math.ceil(progressData?.supervisorReport?.length / pageSize) - 1) {\n setCurrentPage((prev) => prev + 1);\n }\n }}\n onPrevPage={() => {\n if (currentPage > 0) {\n setCurrentPage((prev) => prev - 1);\n }\n }}\n onFirstPage={() => setCurrentPage(0)}\n onLastPage={() => setCurrentPage(Math.max(Math.ceil(progressData?.supervisorReport?.length / pageSize) - 1, 0))}\n onPageSizeChange={(e) => {\n setPageSize(Number(e.target.value));\n setCurrentPage(0);\n }}\n />\n </div>\n </Card>\n );\n};\n\nexport default VendorDetailsCard;\n","import React, { useState } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport { Header } from \"@djb25/digit-ui-react-components\";\n\nconst useInboxTableConfig = ({\n parentRoute,\n onPageSizeChange,\n formState,\n totalCount,\n table,\n dispatch,\n checkPathName,\n onSortingByData,\n tenantId,\n inboxStyles = {},\n tableStyle = {},\n}) => {\n const { t } = useTranslation();\n\n const toTitleCase = (str) => {\n if (!str) return \"\";\n return String(str)\n .toLowerCase()\n .replace(/_/g, \" \")\n .replace(/\\b\\w/g, (c) => c.toUpperCase());\n };\n const history = useHistory();\n const [selectedKno, setSelectedKno] = useState(\"\");\n const { data: reviewData, getReview } = Digit.Hooks.ekyc.useEkycAPI(\"review\", tenantId);\n const handleReview = (kno) => {\n setSelectedKno(kno);\n getReview({ kno });\n };\n\n const limit = formState?.tableForm?.limit || 10;\n const offset = formState?.tableForm?.offset || 0;\n const userType = Digit.SessionStorage.get(\"User\")?.info?.type?.toLowerCase() || \"citizen\";\n\n React.useEffect(() => {\n if (reviewData) {\n history.push(`/digit-ui/${userType}/ekyc/review/${selectedKno}`, { aadhaarData: reviewData?.aadhaarData, reviewData });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [reviewData]);\n\n const tableColumnConfig = [\n {\n Header: t(\"EKYC_APPLICATION_NO\"),\n accessor: \"applicationNumber\",\n disableSortBy: true,\n Cell: ({ row }) => {\n const kno = row.original?.kno || row.original?.applicationNumber || \"NA\";\n return (\n <span className=\"link\" onClick={() => handleReview(kno)}>\n {kno}\n </span>\n );\n },\n },\n {\n Header: t(\"EKYC_CITIZEN_NAME\"),\n accessor: \"citizenName\",\n Cell: ({ row }) => <span>{toTitleCase(row.original?.citizenName) || \"NA\"}</span>,\n },\n {\n Header: t(\"EKYC_STATUS\"),\n accessor: \"actionStatus\",\n Cell: ({ row }) => {\n const status = (row.original?.status || \"DEFAULT\").toUpperCase();\n return <span className={`ekyc-status-tag ${status}`}>{toTitleCase(row.original?.status || \"DEFAULT\")}</span>;\n },\n },\n {\n Header: t(\"SUBMITTED_AT\") || \"Submitted At\",\n accessor: \"submittedAt\",\n Cell: ({ value }) => (value ? Digit.DateUtils.ConvertEpochToDate(value) : \"-\"),\n },\n {\n Header: t(\"ASSIGNED_AT\") || \"Assigned At\",\n accessor: \"assignedAt\",\n Cell: ({ value }) => (value ? Digit.DateUtils.ConvertEpochToDate(value) : \"-\"),\n },\n {\n Header: t(\"EKYC_EKYC_STATUS\"),\n accessor: \"ekycStatus\",\n Cell: ({ row }) => {\n const raw = row.original?.ekycStatus || row.original?.ekycstatus || \"NA\";\n const ekycStatus = raw.toUpperCase();\n return <span className={`ekyc-status-tag ${ekycStatus}`}>{toTitleCase(raw)}</span>;\n },\n },\n ];\n\n return {\n disableSort: false,\n autoSort: false,\n manualPagination: true,\n initSortId: \"applicationDate\",\n onPageSizeChange: onPageSizeChange,\n currentPage: Math.floor(offset / limit),\n onNextPage: () =>\n dispatch({\n action: \"mutateTableForm\",\n data: { ...formState.tableForm, offset: parseInt(formState.tableForm?.offset) + limit },\n checkPathName,\n }),\n onPrevPage: () =>\n dispatch({\n action: \"mutateTableForm\",\n data: { ...formState.tableForm, offset: parseInt(formState.tableForm?.offset) - limit },\n checkPathName,\n }),\n pageSizeLimit: limit,\n onSort: onSortingByData,\n // sortParams: [{id: getValues(\"sortBy\"), desc: getValues(\"sortOrder\") === \"DESC\" ? true : false}],\n totalRecords: totalCount,\n onSearch: formState?.searchForm?.message,\n onLastPage: () =>\n dispatch({\n action: \"mutateTableForm\",\n data: { ...formState.tableForm, offset: Math.max(0, Math.floor((totalCount - 1) / limit) * limit) },\n checkPathName,\n }),\n onFirstPage: () => dispatch({ action: \"mutateTableForm\", data: { ...formState.tableForm, offset: 0 }, checkPathName }),\n // globalSearch: {searchForItemsInTable},\n // searchQueryForTable,\n data: table,\n columns: tableColumnConfig,\n inboxStyles: { ...inboxStyles },\n tableStyle: { ...tableStyle },\n };\n};\n\nexport default useInboxTableConfig;\n","import { isValidElement, useRef, useState, useCallback, useEffect, useMemo, createContext, useContext, createElement, cloneElement } from 'react';\n\nvar isHTMLElement = (value) => value instanceof HTMLElement;\n\nconst EVENTS = {\r\n BLUR: 'blur',\r\n CHANGE: 'change',\r\n INPUT: 'input',\r\n};\r\nconst VALIDATION_MODE = {\r\n onBlur: 'onBlur',\r\n onChange: 'onChange',\r\n onSubmit: 'onSubmit',\r\n onTouched: 'onTouched',\r\n all: 'all',\r\n};\r\nconst SELECT = 'select';\r\nconst UNDEFINED = 'undefined';\r\nconst INPUT_VALIDATION_RULES = {\r\n max: 'max',\r\n min: 'min',\r\n maxLength: 'maxLength',\r\n minLength: 'minLength',\r\n pattern: 'pattern',\r\n required: 'required',\r\n validate: 'validate',\r\n};\n\nfunction attachEventListeners({ ref }, shouldAttachChangeEvent, handleChange) {\r\n if (isHTMLElement(ref) && handleChange) {\r\n ref.addEventListener(shouldAttachChangeEvent ? EVENTS.CHANGE : EVENTS.INPUT, handleChange);\r\n ref.addEventListener(EVENTS.BLUR, handleChange);\r\n }\r\n}\n\nvar isNullOrUndefined = (value) => value == null;\n\nconst isObjectType = (value) => typeof value === 'object';\r\nvar isObject = (value) => !isNullOrUndefined(value) &&\r\n !Array.isArray(value) &&\r\n isObjectType(value) &&\r\n !(value instanceof Date);\n\nvar isKey = (value) => /^\\w*$/.test(value);\n\nvar compact = (value) => value.filter(Boolean);\n\nvar stringToPath = (input) => compact(input\r\n .replace(/[\"|']/g, '')\r\n .replace(/\\[/g, '.')\r\n .replace(/\\]/g, '')\r\n .split('.'));\n\nfunction set(object, path, value) {\r\n let index = -1;\r\n const tempPath = isKey(path) ? [path] : stringToPath(path);\r\n const length = tempPath.length;\r\n const lastIndex = length - 1;\r\n while (++index < length) {\r\n const key = tempPath[index];\r\n let newValue = value;\r\n if (index !== lastIndex) {\r\n const objValue = object[key];\r\n newValue =\r\n isObject(objValue) || Array.isArray(objValue)\r\n ? objValue\r\n : !isNaN(+tempPath[index + 1])\r\n ? []\r\n : {};\r\n }\r\n object[key] = newValue;\r\n object = object[key];\r\n }\r\n return object;\r\n}\n\nvar transformToNestObject = (data, value = {}) => {\r\n for (const key in data) {\r\n !isKey(key) ? set(value, key, data[key]) : (value[key] = data[key]);\r\n }\r\n return value;\r\n};\n\nvar isUndefined = (val) => val === undefined;\n\nvar get = (obj = {}, path, defaultValue) => {\r\n const result = compact(path.split(/[,[\\].]+?/)).reduce((result, key) => (isNullOrUndefined(result) ? result : result[key]), obj);\r\n return isUndefined(result) || result === obj\r\n ? isUndefined(obj[path])\r\n ? defaultValue\r\n : obj[path]\r\n : result;\r\n};\n\nvar focusOnErrorField = (fields, fieldErrors) => {\r\n for (const key in fields) {\r\n if (get(fieldErrors, key)) {\r\n const field = fields[key];\r\n if (field) {\r\n if (field.ref.focus && isUndefined(field.ref.focus())) {\r\n break;\r\n }\r\n else if (field.options) {\r\n field.options[0].ref.focus();\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n};\n\nvar removeAllEventListeners = (ref, validateWithStateUpdate) => {\r\n if (isHTMLElement(ref) && ref.removeEventListener) {\r\n ref.removeEventListener(EVENTS.INPUT, validateWithStateUpdate);\r\n ref.removeEventListener(EVENTS.CHANGE, validateWithStateUpdate);\r\n ref.removeEventListener(EVENTS.BLUR, validateWithStateUpdate);\r\n }\r\n};\n\nconst defaultReturn = {\r\n isValid: false,\r\n value: null,\r\n};\r\nvar getRadioValue = (options) => Array.isArray(options)\r\n ? options.reduce((previous, option) => option && option.ref.checked\r\n ? {\r\n isValid: true,\r\n value: option.ref.value,\r\n }\r\n : previous, defaultReturn)\r\n : defaultReturn;\n\nvar getMultipleSelectValue = (options) => [...options]\r\n .filter(({ selected }) => selected)\r\n .map(({ value }) => value);\n\nvar isRadioInput = (element) => element.type === 'radio';\n\nvar isFileInput = (element) => element.type === 'file';\n\nvar isCheckBoxInput = (element) => element.type === 'checkbox';\n\nvar isMultipleSelect = (element) => element.type === `${SELECT}-multiple`;\n\nconst defaultResult = {\r\n value: false,\r\n isValid: false,\r\n};\r\nconst validResult = { value: true, isValid: true };\r\nvar getCheckboxValue = (options) => {\r\n if (Array.isArray(options)) {\r\n if (options.length > 1) {\r\n const values = options\r\n .filter((option) => option && option.ref.checked)\r\n .map(({ ref: { value } }) => value);\r\n return { value: values, isValid: !!values.length };\r\n }\r\n const { checked, value, attributes } = options[0].ref;\r\n return checked\r\n ? attributes && !isUndefined(attributes.value)\r\n ? isUndefined(value) || value === ''\r\n ? validResult\r\n : { value: value, isValid: true }\r\n : validResult\r\n : defaultResult;\r\n }\r\n return defaultResult;\r\n};\n\nfunction getFieldValue(fieldsRef, name, shallowFieldsStateRef, excludeDisabled, shouldKeepRawValue) {\r\n const field = fieldsRef.current[name];\r\n if (field) {\r\n const { ref: { value, disabled }, ref, valueAsNumber, valueAsDate, setValueAs, } = field;\r\n if (disabled && excludeDisabled) {\r\n return;\r\n }\r\n if (isFileInput(ref)) {\r\n return ref.files;\r\n }\r\n if (isRadioInput(ref)) {\r\n return getRadioValue(field.options).value;\r\n }\r\n if (isMultipleSelect(ref)) {\r\n return getMultipleSelectValue(ref.options);\r\n }\r\n if (isCheckBoxInput(ref)) {\r\n return getCheckboxValue(field.options).value;\r\n }\r\n return shouldKeepRawValue\r\n ? value\r\n : valueAsNumber\r\n ? value === ''\r\n ? NaN\r\n : +value\r\n : valueAsDate\r\n ? ref.valueAsDate\r\n : setValueAs\r\n ? setValueAs(value)\r\n : value;\r\n }\r\n if (shallowFieldsStateRef) {\r\n return get(shallowFieldsStateRef.current, name);\r\n }\r\n}\n\nfunction isDetached(element) {\r\n if (!element) {\r\n return true;\r\n }\r\n if (!(element instanceof HTMLElement) ||\r\n element.nodeType === Node.DOCUMENT_NODE) {\r\n return false;\r\n }\r\n return isDetached(element.parentNode);\r\n}\n\nvar isEmptyObject = (value) => isObject(value) && !Object.keys(value).length;\n\nvar isBoolean = (value) => typeof value === 'boolean';\n\nfunction baseGet(object, updatePath) {\r\n const length = updatePath.slice(0, -1).length;\r\n let index = 0;\r\n while (index < length) {\r\n object = isUndefined(object) ? index++ : object[updatePath[index++]];\r\n }\r\n return object;\r\n}\r\nfunction unset(object, path) {\r\n const updatePath = isKey(path) ? [path] : stringToPath(path);\r\n const childObject = updatePath.length == 1 ? object : baseGet(object, updatePath);\r\n const key = updatePath[updatePath.length - 1];\r\n let previousObjRef;\r\n if (childObject) {\r\n delete childObject[key];\r\n }\r\n for (let k = 0; k < updatePath.slice(0, -1).length; k++) {\r\n let index = -1;\r\n let objectRef;\r\n const currentPaths = updatePath.slice(0, -(k + 1));\r\n const currentPathsLength = currentPaths.length - 1;\r\n if (k > 0) {\r\n previousObjRef = object;\r\n }\r\n while (++index < currentPaths.length) {\r\n const item = currentPaths[index];\r\n objectRef = objectRef ? objectRef[item] : object[item];\r\n if (currentPathsLength === index &&\r\n ((isObject(objectRef) && isEmptyObject(objectRef)) ||\r\n (Array.isArray(objectRef) &&\r\n !objectRef.filter((data) => (isObject(data) && !isEmptyObject(data)) || isBoolean(data)).length))) {\r\n previousObjRef ? delete previousObjRef[item] : delete object[item];\r\n }\r\n previousObjRef = objectRef;\r\n }\r\n }\r\n return object;\r\n}\n\nconst isSameRef = (fieldValue, ref) => fieldValue && fieldValue.ref === ref;\r\nfunction findRemovedFieldAndRemoveListener(fieldsRef, handleChange, field, shallowFieldsStateRef, shouldUnregister, forceDelete) {\r\n const { ref, ref: { name }, } = field;\r\n const fieldRef = fieldsRef.current[name];\r\n if (!shouldUnregister) {\r\n const value = getFieldValue(fieldsRef, name, shallowFieldsStateRef);\r\n !isUndefined(value) && set(shallowFieldsStateRef.current, name, value);\r\n }\r\n if (!ref.type || !fieldRef) {\r\n delete fieldsRef.current[name];\r\n return;\r\n }\r\n if (isRadioInput(ref) || isCheckBoxInput(ref)) {\r\n if (Array.isArray(fieldRef.options) && fieldRef.options.length) {\r\n compact(fieldRef.options).forEach((option = {}, index) => {\r\n if ((isDetached(option.ref) && isSameRef(option, option.ref)) ||\r\n forceDelete) {\r\n removeAllEventListeners(option.ref, handleChange);\r\n unset(fieldRef.options, `[${index}]`);\r\n }\r\n });\r\n if (fieldRef.options && !compact(fieldRef.options).length) {\r\n delete fieldsRef.current[name];\r\n }\r\n }\r\n else {\r\n delete fieldsRef.current[name];\r\n }\r\n }\r\n else if ((isDetached(ref) && isSameRef(fieldRef, ref)) || forceDelete) {\r\n removeAllEventListeners(ref, handleChange);\r\n delete fieldsRef.current[name];\r\n }\r\n}\n\nvar isPrimitive = (value) => isNullOrUndefined(value) || !isObjectType(value);\n\nfunction deepMerge(target, source) {\r\n if (isPrimitive(target) || isPrimitive(source)) {\r\n return source;\r\n }\r\n for (const key in source) {\r\n const targetValue = target[key];\r\n const sourceValue = source[key];\r\n try {\r\n target[key] =\r\n (isObject(targetValue) && isObject(sourceValue)) ||\r\n (Array.isArray(targetValue) && Array.isArray(sourceValue))\r\n ? deepMerge(targetValue, sourceValue)\r\n : sourceValue;\r\n }\r\n catch (_a) { }\r\n }\r\n return target;\r\n}\n\nfunction deepEqual(object1, object2, isErrorObject) {\r\n if (isPrimitive(object1) ||\r\n isPrimitive(object2) ||\r\n object1 instanceof Date ||\r\n object2 instanceof Date) {\r\n return object1 === object2;\r\n }\r\n if (!isValidElement(object1)) {\r\n const keys1 = Object.keys(object1);\r\n const keys2 = Object.keys(object2);\r\n if (keys1.length !== keys2.length) {\r\n return false;\r\n }\r\n for (const key of keys1) {\r\n const val1 = object1[key];\r\n if (!(isErrorObject && key === 'ref')) {\r\n const val2 = object2[key];\r\n if ((isObject(val1) || Array.isArray(val1)) &&\r\n (isObject(val2) || Array.isArray(val2))\r\n ? !deepEqual(val1, val2, isErrorObject)\r\n : val1 !== val2) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n}\n\nfunction setDirtyFields(values, defaultValues, dirtyFields, parentNode, parentName) {\r\n let index = -1;\r\n while (++index < values.length) {\r\n for (const key in values[index]) {\r\n if (Array.isArray(values[index][key])) {\r\n !dirtyFields[index] && (dirtyFields[index] = {});\r\n dirtyFields[index][key] = [];\r\n setDirtyFields(values[index][key], get(defaultValues[index] || {}, key, []), dirtyFields[index][key], dirtyFields[index], key);\r\n }\r\n else {\r\n deepEqual(get(defaultValues[index] || {}, key), values[index][key])\r\n ? set(dirtyFields[index] || {}, key)\r\n : (dirtyFields[index] = Object.assign(Object.assign({}, dirtyFields[index]), { [key]: true }));\r\n }\r\n }\r\n parentNode &&\r\n !dirtyFields.length &&\r\n delete parentNode[parentName];\r\n }\r\n return dirtyFields;\r\n}\r\nvar setFieldArrayDirtyFields = (values, defaultValues, dirtyFields) => deepMerge(setDirtyFields(values, defaultValues, dirtyFields.slice(0, values.length)), setDirtyFields(defaultValues, values, dirtyFields.slice(0, values.length)));\n\nvar isString = (value) => typeof value === 'string';\n\nvar getFieldsValues = (fieldsRef, shallowFieldsState, shouldUnregister, excludeDisabled, search) => {\r\n const output = {};\r\n for (const name in fieldsRef.current) {\r\n if (isUndefined(search) ||\r\n (isString(search)\r\n ? name.startsWith(search)\r\n : Array.isArray(search) && search.find((data) => name.startsWith(data)))) {\r\n output[name] = getFieldValue(fieldsRef, name, undefined, excludeDisabled);\r\n }\r\n }\r\n return shouldUnregister\r\n ? transformToNestObject(output)\r\n : deepMerge(shallowFieldsState, transformToNestObject(output));\r\n};\n\nvar isErrorStateChanged = ({ errors, name, error, validFields, fieldsWithValidation, }) => {\r\n const isValid = isUndefined(error);\r\n const previousError = get(errors, name);\r\n return ((isValid && !!previousError) ||\r\n (!isValid && !deepEqual(previousError, error, true)) ||\r\n (isValid && get(fieldsWithValidation, name) && !get(validFields, name)));\r\n};\n\nvar isRegex = (value) => value instanceof RegExp;\n\nvar getValueAndMessage = (validationData) => isObject(validationData) && !isRegex(validationData)\r\n ? validationData\r\n : {\r\n value: validationData,\r\n message: '',\r\n };\n\nvar isFunction = (value) => typeof value === 'function';\n\nvar isMessage = (value) => isString(value) || isValidElement(value);\n\nfunction getValidateError(result, ref, type = 'validate') {\r\n if (isMessage(result) || (isBoolean(result) && !result)) {\r\n return {\r\n type,\r\n message: isMessage(result) ? result : '',\r\n ref,\r\n };\r\n }\r\n}\n\nvar appendErrors = (name, validateAllFieldCriteria, errors, type, message) => validateAllFieldCriteria\r\n ? Object.assign(Object.assign({}, errors[name]), { types: Object.assign(Object.assign({}, (errors[name] && errors[name].types ? errors[name].types : {})), { [type]: message || true }) }) : {};\n\nvar validateField = async (fieldsRef, validateAllFieldCriteria, { ref, ref: { value }, options, required, maxLength, minLength, min, max, pattern, validate, }, shallowFieldsStateRef) => {\r\n const name = ref.name;\r\n const error = {};\r\n const isRadio = isRadioInput(ref);\r\n const isCheckBox = isCheckBoxInput(ref);\r\n const isRadioOrCheckbox = isRadio || isCheckBox;\r\n const isEmpty = value === '';\r\n const appendErrorsCurry = appendErrors.bind(null, name, validateAllFieldCriteria, error);\r\n const getMinMaxMessage = (exceedMax, maxLengthMessage, minLengthMessage, maxType = INPUT_VALIDATION_RULES.maxLength, minType = INPUT_VALIDATION_RULES.minLength) => {\r\n const message = exceedMax ? maxLengthMessage : minLengthMessage;\r\n error[name] = Object.assign({ type: exceedMax ? maxType : minType, message,\r\n ref }, (exceedMax\r\n ? appendErrorsCurry(maxType, message)\r\n : appendErrorsCurry(minType, message)));\r\n };\r\n if (required &&\r\n ((!isRadio && !isCheckBox && (isEmpty || isNullOrUndefined(value))) ||\r\n (isBoolean(value) && !value) ||\r\n (isCheckBox && !getCheckboxValue(options).isValid) ||\r\n (isRadio && !getRadioValue(options).isValid))) {\r\n const { value, message } = isMessage(required)\r\n ? { value: !!required, message: required }\r\n : getValueAndMessage(required);\r\n if (value) {\r\n error[name] = Object.assign({ type: INPUT_VALIDATION_RULES.required, message, ref: isRadioOrCheckbox\r\n ? ((fieldsRef.current[name].options || [])[0] || {}).ref\r\n : ref }, appendErrorsCurry(INPUT_VALIDATION_RULES.required, message));\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n if ((!isNullOrUndefined(min) || !isNullOrUndefined(max)) && value !== '') {\r\n let exceedMax;\r\n let exceedMin;\r\n const maxOutput = getValueAndMessage(max);\r\n const minOutput = getValueAndMessage(min);\r\n if (!isNaN(value)) {\r\n const valueNumber = ref.valueAsNumber || parseFloat(value);\r\n if (!isNullOrUndefined(maxOutput.value)) {\r\n exceedMax = valueNumber > maxOutput.value;\r\n }\r\n if (!isNullOrUndefined(minOutput.value)) {\r\n exceedMin = valueNumber < minOutput.value;\r\n }\r\n }\r\n else {\r\n const valueDate = ref.valueAsDate || new Date(value);\r\n if (isString(maxOutput.value)) {\r\n exceedMax = valueDate > new Date(maxOutput.value);\r\n }\r\n if (isString(minOutput.value)) {\r\n exceedMin = valueDate < new Date(minOutput.value);\r\n }\r\n }\r\n if (exceedMax || exceedMin) {\r\n getMinMaxMessage(!!exceedMax, maxOutput.message, minOutput.message, INPUT_VALIDATION_RULES.max, INPUT_VALIDATION_RULES.min);\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n if (isString(value) && !isEmpty && (maxLength || minLength)) {\r\n const maxLengthOutput = getValueAndMessage(maxLength);\r\n const minLengthOutput = getValueAndMessage(minLength);\r\n const exceedMax = !isNullOrUndefined(maxLengthOutput.value) &&\r\n value.length > maxLengthOutput.value;\r\n const exceedMin = !isNullOrUndefined(minLengthOutput.value) &&\r\n value.length < minLengthOutput.value;\r\n if (exceedMax || exceedMin) {\r\n getMinMaxMessage(exceedMax, maxLengthOutput.message, minLengthOutput.message);\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n if (isString(value) && pattern && !isEmpty) {\r\n const { value: patternValue, message } = getValueAndMessage(pattern);\r\n if (isRegex(patternValue) && !patternValue.test(value)) {\r\n error[name] = Object.assign({ type: INPUT_VALIDATION_RULES.pattern, message,\r\n ref }, appendErrorsCurry(INPUT_VALIDATION_RULES.pattern, message));\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n if (validate) {\r\n const fieldValue = getFieldValue(fieldsRef, name, shallowFieldsStateRef, false, true);\r\n const validateRef = isRadioOrCheckbox && options ? options[0].ref : ref;\r\n if (isFunction(validate)) {\r\n const result = await validate(fieldValue);\r\n const validateError = getValidateError(result, validateRef);\r\n if (validateError) {\r\n error[name] = Object.assign(Object.assign({}, validateError), appendErrorsCurry(INPUT_VALIDATION_RULES.validate, validateError.message));\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n else if (isObject(validate)) {\r\n let validationResult = {};\r\n for (const [key, validateFunction] of Object.entries(validate)) {\r\n if (!isEmptyObject(validationResult) && !validateAllFieldCriteria) {\r\n break;\r\n }\r\n const validateResult = await validateFunction(fieldValue);\r\n const validateError = getValidateError(validateResult, validateRef, key);\r\n if (validateError) {\r\n validationResult = Object.assign(Object.assign({}, validateError), appendErrorsCurry(key, validateError.message));\r\n if (validateAllFieldCriteria) {\r\n error[name] = validationResult;\r\n }\r\n }\r\n }\r\n if (!isEmptyObject(validationResult)) {\r\n error[name] = Object.assign({ ref: validateRef }, validationResult);\r\n if (!validateAllFieldCriteria) {\r\n return error;\r\n }\r\n }\r\n }\r\n }\r\n return error;\r\n};\n\nconst getPath = (rootPath, values, paths = []) => {\r\n for (const property in values) {\r\n const rootName = (rootPath +\r\n (isObject(values)\r\n ? `.${property}`\r\n : `[${property}]`));\r\n isPrimitive(values[property])\r\n ? paths.push(rootName)\r\n : getPath(rootName, values[property], paths);\r\n }\r\n return paths;\r\n};\n\nvar assignWatchFields = (fieldValues, fieldName, watchFields, inputValue, isSingleField) => {\r\n let value = undefined;\r\n watchFields.add(fieldName);\r\n if (!isEmptyObject(fieldValues)) {\r\n value = get(fieldValues, fieldName);\r\n if (isObject(value) || Array.isArray(value)) {\r\n getPath(fieldName, value).forEach((name) => watchFields.add(name));\r\n }\r\n }\r\n return isUndefined(value)\r\n ? isSingleField\r\n ? inputValue\r\n : get(inputValue, fieldName)\r\n : value;\r\n};\n\nvar skipValidation = ({ isOnBlur, isOnChange, isOnTouch, isTouched, isReValidateOnBlur, isReValidateOnChange, isBlurEvent, isSubmitted, isOnAll, }) => {\r\n if (isOnAll) {\r\n return false;\r\n }\r\n else if (!isSubmitted && isOnTouch) {\r\n return !(isTouched || isBlurEvent);\r\n }\r\n else if (isSubmitted ? isReValidateOnBlur : isOnBlur) {\r\n return !isBlurEvent;\r\n }\r\n else if (isSubmitted ? isReValidateOnChange : isOnChange) {\r\n return isBlurEvent;\r\n }\r\n return true;\r\n};\n\nvar getFieldArrayParentName = (name) => name.substring(0, name.indexOf('['));\n\nconst isMatchFieldArrayName = (name, searchName) => RegExp(`^${searchName}([|.)\\\\d+`.replace(/\\[/g, '\\\\[').replace(/\\]/g, '\\\\]')).test(name);\r\nvar isNameInFieldArray = (names, name) => [...names].some((current) => isMatchFieldArrayName(name, current));\n\nvar isSelectInput = (element) => element.type === `${SELECT}-one`;\n\nfunction onDomRemove(fieldsRef, removeFieldEventListenerAndRef) {\r\n const observer = new MutationObserver(() => {\r\n for (const field of Object.values(fieldsRef.current)) {\r\n if (field && field.options) {\r\n for (const option of field.options) {\r\n if (option && option.ref && isDetached(option.ref)) {\r\n removeFieldEventListenerAndRef(field);\r\n }\r\n }\r\n }\r\n else if (field && isDetached(field.ref)) {\r\n removeFieldEventListenerAndRef(field);\r\n }\r\n }\r\n });\r\n observer.observe(window.document, {\r\n childList: true,\r\n subtree: true,\r\n });\r\n return observer;\r\n}\n\nvar isWeb = typeof window !== UNDEFINED && typeof document !== UNDEFINED;\n\nfunction cloneObject(data) {\r\n var _a;\r\n let copy;\r\n if (isPrimitive(data) ||\r\n (isWeb && (data instanceof File || isHTMLElement(data)))) {\r\n return data;\r\n }\r\n if (!['Set', 'Map', 'Object', 'Date', 'Array'].includes((_a = data.constructor) === null || _a === void 0 ? void 0 : _a.name)) {\r\n return data;\r\n }\r\n if (data instanceof Date) {\r\n copy = new Date(data.getTime());\r\n return copy;\r\n }\r\n if (data instanceof Set) {\r\n copy = new Set();\r\n for (const item of data) {\r\n copy.add(item);\r\n }\r\n return copy;\r\n }\r\n if (data instanceof Map) {\r\n copy = new Map();\r\n for (const key of data.keys()) {\r\n copy.set(key, cloneObject(data.get(key)));\r\n }\r\n return copy;\r\n }\r\n copy = Array.isArray(data) ? [] : {};\r\n for (const key in data) {\r\n copy[key] = cloneObject(data[key]);\r\n }\r\n return copy;\r\n}\n\nvar modeChecker = (mode) => ({\r\n isOnSubmit: !mode || mode === VALIDATION_MODE.onSubmit,\r\n isOnBlur: mode === VALIDATION_MODE.onBlur,\r\n isOnChange: mode === VALIDATION_MODE.onChange,\r\n isOnAll: mode === VALIDATION_MODE.all,\r\n isOnTouch: mode === VALIDATION_MODE.onTouched,\r\n});\n\nvar isRadioOrCheckboxFunction = (ref) => isRadioInput(ref) || isCheckBoxInput(ref);\n\nconst isWindowUndefined = typeof window === UNDEFINED;\r\nconst isProxyEnabled = isWeb ? 'Proxy' in window : typeof Proxy !== UNDEFINED;\r\nfunction useForm({ mode = VALIDATION_MODE.onSubmit, reValidateMode = VALIDATION_MODE.onChange, resolver, context, defaultValues = {}, shouldFocusError = true, shouldUnregister = true, criteriaMode, } = {}) {\r\n const fieldsRef = useRef({});\r\n const fieldArrayDefaultValuesRef = useRef({});\r\n const fieldArrayValuesRef = useRef({});\r\n const watchFieldsRef = useRef(new Set());\r\n const useWatchFieldsRef = useRef({});\r\n const useWatchRenderFunctionsRef = useRef({});\r\n const fieldsWithValidationRef = useRef({});\r\n const validFieldsRef = useRef({});\r\n const defaultValuesRef = useRef(defaultValues);\r\n const isUnMount = useRef(false);\r\n const isWatchAllRef = useRef(false);\r\n const handleChangeRef = useRef();\r\n const shallowFieldsStateRef = useRef({});\r\n const resetFieldArrayFunctionRef = useRef({});\r\n const contextRef = useRef(context);\r\n const resolverRef = useRef(resolver);\r\n const fieldArrayNamesRef = useRef(new Set());\r\n const modeRef = useRef(modeChecker(mode));\r\n const { isOnSubmit, isOnTouch } = modeRef.current;\r\n const isValidateAllFieldCriteria = criteriaMode === VALIDATION_MODE.all;\r\n const [formState, setFormState] = useState({\r\n isDirty: false,\r\n isValidating: false,\r\n dirtyFields: {},\r\n isSubmitted: false,\r\n submitCount: 0,\r\n touched: {},\r\n isSubmitting: false,\r\n isSubmitSuccessful: false,\r\n isValid: !isOnSubmit,\r\n errors: {},\r\n });\r\n const readFormStateRef = useRef({\r\n isDirty: !isProxyEnabled,\r\n dirtyFields: !isProxyEnabled,\r\n touched: !isProxyEnabled || isOnTouch,\r\n isValidating: !isProxyEnabled,\r\n isSubmitting: !isProxyEnabled,\r\n isValid: !isProxyEnabled,\r\n });\r\n const formStateRef = useRef(formState);\r\n const observerRef = useRef();\r\n const { isOnBlur: isReValidateOnBlur, isOnChange: isReValidateOnChange, } = useRef(modeChecker(reValidateMode)).current;\r\n contextRef.current = context;\r\n resolverRef.current = resolver;\r\n formStateRef.current = formState;\r\n shallowFieldsStateRef.current = shouldUnregister\r\n ? {}\r\n : isEmptyObject(shallowFieldsStateRef.current)\r\n ? cloneObject(defaultValues)\r\n : shallowFieldsStateRef.current;\r\n const updateFormState = useCallback((state = {}) => {\r\n if (!isUnMount.current) {\r\n formStateRef.current = Object.assign(Object.assign({}, formStateRef.current), state);\r\n setFormState(formStateRef.current);\r\n }\r\n }, []);\r\n const updateIsValidating = () => readFormStateRef.current.isValidating &&\r\n updateFormState({\r\n isValidating: true,\r\n });\r\n const shouldRenderBaseOnError = useCallback((name, error, shouldRender = false, state = {}, isValid) => {\r\n let shouldReRender = shouldRender ||\r\n isErrorStateChanged({\r\n errors: formStateRef.current.errors,\r\n error,\r\n name,\r\n validFields: validFieldsRef.current,\r\n fieldsWithValidation: fieldsWithValidationRef.current,\r\n });\r\n const previousError = get(formStateRef.current.errors, name);\r\n if (error) {\r\n unset(validFieldsRef.current, name);\r\n shouldReRender =\r\n shouldReRender ||\r\n !previousError ||\r\n !deepEqual(previousError, error, true);\r\n set(formStateRef.current.errors, name, error);\r\n }\r\n else {\r\n if (get(fieldsWithValidationRef.current, name) || resolverRef.current) {\r\n set(validFieldsRef.current, name, true);\r\n shouldReRender = shouldReRender || previousError;\r\n }\r\n unset(formStateRef.current.errors, name);\r\n }\r\n if ((shouldReRender && !isNullOrUndefined(shouldRender)) ||\r\n !isEmptyObject(state) ||\r\n readFormStateRef.current.isValidating) {\r\n updateFormState(Object.assign(Object.assign(Object.assign({}, state), (resolverRef.current ? { isValid: !!isValid } : {})), { isValidating: false }));\r\n }\r\n }, []);\r\n const setFieldValue = useCallback((name, rawValue) => {\r\n const { ref, options } = fieldsRef.current[name];\r\n const value = isWeb && isHTMLElement(ref) && isNullOrUndefined(rawValue)\r\n ? ''\r\n : rawValue;\r\n if (isRadioInput(ref)) {\r\n (options || []).forEach(({ ref: radioRef }) => (radioRef.checked = radioRef.value === value));\r\n }\r\n else if (isFileInput(ref) && !isString(value)) {\r\n ref.files = value;\r\n }\r\n else if (isMultipleSelect(ref)) {\r\n [...ref.options].forEach((selectRef) => (selectRef.selected = value.includes(selectRef.value)));\r\n }\r\n else if (isCheckBoxInput(ref) && options) {\r\n options.length > 1\r\n ? options.forEach(({ ref: checkboxRef }) => (checkboxRef.checked = Array.isArray(value)\r\n ? !!value.find((data) => data === checkboxRef.value)\r\n : value === checkboxRef.value))\r\n : (options[0].ref.checked = !!value);\r\n }\r\n else {\r\n ref.value = value;\r\n }\r\n }, []);\r\n const isFormDirty = useCallback((name, data) => {\r\n if (readFormStateRef.current.isDirty) {\r\n const formValues = getValues();\r\n name && data && set(formValues, name, data);\r\n return !deepEqual(formValues, defaultValuesRef.current);\r\n }\r\n return false;\r\n }, []);\r\n const updateAndGetDirtyState = useCallback((name, shouldRender = true) => {\r\n if (readFormStateRef.current.isDirty ||\r\n readFormStateRef.current.dirtyFields) {\r\n const isFieldDirty = !deepEqual(get(defaultValuesRef.current, name), getFieldValue(fieldsRef, name, shallowFieldsStateRef));\r\n const isDirtyFieldExist = get(formStateRef.current.dirtyFields, name);\r\n const previousIsDirty = formStateRef.current.isDirty;\r\n isFieldDirty\r\n ? set(formStateRef.current.dirtyFields, name, true)\r\n : unset(formStateRef.current.dirtyFields, name);\r\n const state = {\r\n isDirty: isFormDirty(),\r\n dirtyFields: formStateRef.current.dirtyFields,\r\n };\r\n const isChanged = (readFormStateRef.current.isDirty &&\r\n previousIsDirty !== state.isDirty) ||\r\n (readFormStateRef.current.dirtyFields &&\r\n isDirtyFieldExist !== get(formStateRef.current.dirtyFields, name));\r\n isChanged && shouldRender && updateFormState(state);\r\n return isChanged ? state : {};\r\n }\r\n return {};\r\n }, []);\r\n const executeValidation = useCallback(async (name, skipReRender) => {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!fieldsRef.current[name]) {\r\n console.warn('📋 Field is missing with `name` attribute: ', name);\r\n return false;\r\n }\r\n }\r\n const error = (await validateField(fieldsRef, isValidateAllFieldCriteria, fieldsRef.current[name], shallowFieldsStateRef))[name];\r\n shouldRenderBaseOnError(name, error, skipReRender);\r\n return isUndefined(error);\r\n }, [shouldRenderBaseOnError, isValidateAllFieldCriteria]);\r\n const executeSchemaOrResolverValidation = useCallback(async (names) => {\r\n const { errors } = await resolverRef.current(getValues(), contextRef.current, isValidateAllFieldCriteria);\r\n const previousFormIsValid = formStateRef.current.isValid;\r\n if (Array.isArray(names)) {\r\n const isInputsValid = names\r\n .map((name) => {\r\n const error = get(errors, name);\r\n error\r\n ? set(formStateRef.current.errors, name, error)\r\n : unset(formStateRef.current.errors, name);\r\n return !error;\r\n })\r\n .every(Boolean);\r\n updateFormState({\r\n isValid: isEmptyObject(errors),\r\n isValidating: false,\r\n });\r\n return isInputsValid;\r\n }\r\n else {\r\n const error = get(errors, names);\r\n shouldRenderBaseOnError(names, error, previousFormIsValid !== isEmptyObject(errors), {}, isEmptyObject(errors));\r\n return !error;\r\n }\r\n }, [shouldRenderBaseOnError, isValidateAllFieldCriteria]);\r\n const trigger = useCallback(async (name) => {\r\n const fields = name || Object.keys(fieldsRef.current);\r\n updateIsValidating();\r\n if (resolverRef.current) {\r\n return executeSchemaOrResolverValidation(fields);\r\n }\r\n if (Array.isArray(fields)) {\r\n !name && (formStateRef.current.errors = {});\r\n const result = await Promise.all(fields.map(async (data) => await executeValidation(data, null)));\r\n updateFormState({\r\n isValidating: false,\r\n });\r\n return result.every(Boolean);\r\n }\r\n return await executeValidation(fields);\r\n }, [executeSchemaOrResolverValidation, executeValidation]);\r\n const setInternalValues = useCallback((name, value, { shouldDirty, shouldValidate }) => {\r\n const data = {};\r\n set(data, name, value);\r\n for (const fieldName of getPath(name, value)) {\r\n if (fieldsRef.current[fieldName]) {\r\n setFieldValue(fieldName, get(data, fieldName));\r\n shouldDirty && updateAndGetDirtyState(fieldName);\r\n shouldValidate && trigger(fieldName);\r\n }\r\n }\r\n }, [trigger, setFieldValue, updateAndGetDirtyState]);\r\n const setInternalValue = useCallback((name, value, config) => {\r\n !shouldUnregister &&\r\n !isPrimitive(value) &&\r\n set(shallowFieldsStateRef.current, name, Array.isArray(value) ? [...value] : Object.assign({}, value));\r\n if (fieldsRef.current[name]) {\r\n setFieldValue(name, value);\r\n config.shouldDirty && updateAndGetDirtyState(name);\r\n config.shouldValidate && trigger(name);\r\n }\r\n else if (!isPrimitive(value)) {\r\n setInternalValues(name, value, config);\r\n if (fieldArrayNamesRef.current.has(name)) {\r\n const parentName = getFieldArrayParentName(name) || name;\r\n set(fieldArrayDefaultValuesRef.current, name, value);\r\n resetFieldArrayFunctionRef.current[parentName]({\r\n [parentName]: get(fieldArrayDefaultValuesRef.current, parentName),\r\n });\r\n if ((readFormStateRef.current.isDirty ||\r\n readFormStateRef.current.dirtyFields) &&\r\n config.shouldDirty) {\r\n set(formStateRef.current.dirtyFields, name, setFieldArrayDirtyFields(value, get(defaultValuesRef.current, name, []), get(formStateRef.current.dirtyFields, name, [])));\r\n updateFormState({\r\n isDirty: !deepEqual(Object.assign(Object.assign({}, getValues()), { [name]: value }), defaultValuesRef.current),\r\n });\r\n }\r\n }\r\n }\r\n !shouldUnregister && set(shallowFieldsStateRef.current, name, value);\r\n }, [updateAndGetDirtyState, setFieldValue, setInternalValues]);\r\n const isFieldWatched = (name) => isWatchAllRef.current ||\r\n watchFieldsRef.current.has(name) ||\r\n watchFieldsRef.current.has((name.match(/\\w+/) || [])[0]);\r\n const renderWatchedInputs = (name) => {\r\n let found = true;\r\n if (!isEmptyObject(useWatchFieldsRef.current)) {\r\n for (const key in useWatchFieldsRef.current) {\r\n if (!name ||\r\n !useWatchFieldsRef.current[key].size ||\r\n useWatchFieldsRef.current[key].has(name) ||\r\n useWatchFieldsRef.current[key].has(getFieldArrayParentName(name))) {\r\n useWatchRenderFunctionsRef.current[key]();\r\n found = false;\r\n }\r\n }\r\n }\r\n return found;\r\n };\r\n function setValue(name, value, config) {\r\n setInternalValue(name, value, config || {});\r\n isFieldWatched(name) && updateFormState();\r\n renderWatchedInputs(name);\r\n }\r\n handleChangeRef.current = handleChangeRef.current\r\n ? handleChangeRef.current\r\n : async ({ type, target }) => {\r\n let name = target.name;\r\n const field = fieldsRef.current[name];\r\n let error;\r\n let isValid;\r\n if (field) {\r\n const isBlurEvent = type === EVENTS.BLUR;\r\n const shouldSkipValidation = skipValidation(Object.assign({ isBlurEvent,\r\n isReValidateOnChange,\r\n isReValidateOnBlur, isTouched: !!get(formStateRef.current.touched, name), isSubmitted: formStateRef.current.isSubmitted }, modeRef.current));\r\n let state = updateAndGetDirtyState(name, false);\r\n let shouldRender = !isEmptyObject(state) ||\r\n (!isBlurEvent && isFieldWatched(name));\r\n if (isBlurEvent &&\r\n !get(formStateRef.current.touched, name) &&\r\n readFormStateRef.current.touched) {\r\n set(formStateRef.current.touched, name, true);\r\n state = Object.assign(Object.assign({}, state), { touched: formStateRef.current.touched });\r\n }\r\n if (!shouldUnregister && isCheckBoxInput(target)) {\r\n set(shallowFieldsStateRef.current, name, getFieldValue(fieldsRef, name));\r\n }\r\n if (shouldSkipValidation) {\r\n !isBlurEvent && renderWatchedInputs(name);\r\n return ((!isEmptyObject(state) ||\r\n (shouldRender && isEmptyObject(state))) &&\r\n updateFormState(state));\r\n }\r\n updateIsValidating();\r\n if (resolverRef.current) {\r\n const { errors } = await resolverRef.current(getValues(), contextRef.current, isValidateAllFieldCriteria);\r\n const previousFormIsValid = formStateRef.current.isValid;\r\n error = get(errors, name);\r\n if (isCheckBoxInput(target) &&\r\n !error &&\r\n resolverRef.current) {\r\n const parentNodeName = getFieldArrayParentName(name);\r\n const currentError = get(errors, parentNodeName, {});\r\n currentError.type &&\r\n currentError.message &&\r\n (error = currentError);\r\n if (parentNodeName &&\r\n (currentError ||\r\n get(formStateRef.current.errors, parentNodeName))) {\r\n name = parentNodeName;\r\n }\r\n }\r\n isValid = isEmptyObject(errors);\r\n previousFormIsValid !== isValid && (shouldRender = true);\r\n }\r\n else {\r\n error = (await validateField(fieldsRef, isValidateAllFieldCriteria, field, shallowFieldsStateRef))[name];\r\n }\r\n !isBlurEvent && renderWatchedInputs(name);\r\n shouldRenderBaseOnError(name, error, shouldRender, state, isValid);\r\n }\r\n };\r\n function setFieldArrayDefaultValues(data) {\r\n if (!shouldUnregister) {\r\n let copy = cloneObject(data);\r\n for (const value of fieldArrayNamesRef.current) {\r\n if (isKey(value) && !copy[value]) {\r\n copy = Object.assign(Object.assign({}, copy), { [value]: [] });\r\n }\r\n }\r\n return copy;\r\n }\r\n return data;\r\n }\r\n function getValues(payload) {\r\n if (isString(payload)) {\r\n return getFieldValue(fieldsRef, payload, shallowFieldsStateRef);\r\n }\r\n if (Array.isArray(payload)) {\r\n const data = {};\r\n for (const name of payload) {\r\n set(data, name, getFieldValue(fieldsRef, name, shallowFieldsStateRef));\r\n }\r\n return data;\r\n }\r\n return setFieldArrayDefaultValues(getFieldsValues(fieldsRef, cloneObject(shallowFieldsStateRef.current), shouldUnregister));\r\n }\r\n const validateResolver = useCallback(async (values = {}) => {\r\n const newDefaultValues = isEmptyObject(fieldsRef.current)\r\n ? defaultValuesRef.current\r\n : {};\r\n const { errors } = (await resolverRef.current(Object.assign(Object.assign(Object.assign({}, newDefaultValues), getValues()), values), contextRef.current, isValidateAllFieldCriteria)) || {};\r\n const isValid = isEmptyObject(errors);\r\n formStateRef.current.isValid !== isValid &&\r\n updateFormState({\r\n isValid,\r\n });\r\n }, [isValidateAllFieldCriteria]);\r\n const removeFieldEventListener = useCallback((field, forceDelete) => {\r\n findRemovedFieldAndRemoveListener(fieldsRef, handleChangeRef.current, field, shallowFieldsStateRef, shouldUnregister, forceDelete);\r\n if (shouldUnregister) {\r\n unset(validFieldsRef.current, field.ref.name);\r\n unset(fieldsWithValidationRef.current, field.ref.name);\r\n }\r\n }, [shouldUnregister]);\r\n const updateWatchedValue = useCallback((name) => {\r\n if (isWatchAllRef.current) {\r\n updateFormState();\r\n }\r\n else {\r\n for (const watchField of watchFieldsRef.current) {\r\n if (watchField.startsWith(name)) {\r\n updateFormState();\r\n break;\r\n }\r\n }\r\n renderWatchedInputs(name);\r\n }\r\n }, []);\r\n const removeFieldEventListenerAndRef = useCallback((field, forceDelete) => {\r\n if (field) {\r\n removeFieldEventListener(field, forceDelete);\r\n if (shouldUnregister && !compact(field.options || []).length) {\r\n unset(formStateRef.current.errors, field.ref.name);\r\n set(formStateRef.current.dirtyFields, field.ref.name, true);\r\n updateFormState({\r\n isDirty: isFormDirty(),\r\n });\r\n readFormStateRef.current.isValid &&\r\n resolverRef.current &&\r\n validateResolver();\r\n updateWatchedValue(field.ref.name);\r\n }\r\n }\r\n }, [validateResolver, removeFieldEventListener]);\r\n function clearErrors(name) {\r\n name &&\r\n (Array.isArray(name) ? name : [name]).forEach((inputName) => fieldsRef.current[inputName] && isKey(inputName)\r\n ? delete formStateRef.current.errors[inputName]\r\n : unset(formStateRef.current.errors, inputName));\r\n updateFormState({\r\n errors: name ? formStateRef.current.errors : {},\r\n });\r\n }\r\n function setError(name, error) {\r\n const ref = (fieldsRef.current[name] || {}).ref;\r\n set(formStateRef.current.errors, name, Object.assign(Object.assign({}, error), { ref }));\r\n updateFormState({\r\n isValid: false,\r\n });\r\n error.shouldFocus && ref && ref.focus && ref.focus();\r\n }\r\n const watchInternal = useCallback((fieldNames, defaultValue, watchId) => {\r\n const watchFields = watchId\r\n ? useWatchFieldsRef.current[watchId]\r\n : watchFieldsRef.current;\r\n let fieldValues = getFieldsValues(fieldsRef, cloneObject(shallowFieldsStateRef.current), shouldUnregister, false, fieldNames);\r\n if (isString(fieldNames)) {\r\n const parentNodeName = getFieldArrayParentName(fieldNames) || fieldNames;\r\n if (fieldArrayNamesRef.current.has(parentNodeName)) {\r\n fieldValues = Object.assign(Object.assign({}, fieldArrayValuesRef.current), fieldValues);\r\n }\r\n return assignWatchFields(fieldValues, fieldNames, watchFields, isUndefined(get(defaultValuesRef.current, fieldNames))\r\n ? defaultValue\r\n : get(defaultValuesRef.current, fieldNames), true);\r\n }\r\n const combinedDefaultValues = isUndefined(defaultValue)\r\n ? defaultValuesRef.current\r\n : defaultValue;\r\n if (Array.isArray(fieldNames)) {\r\n return fieldNames.reduce((previous, name) => (Object.assign(Object.assign({}, previous), { [name]: assignWatchFields(fieldValues, name, watchFields, combinedDefaultValues) })), {});\r\n }\r\n isWatchAllRef.current = isUndefined(watchId);\r\n return transformToNestObject((!isEmptyObject(fieldValues) && fieldValues) ||\r\n combinedDefaultValues);\r\n }, []);\r\n function watch(fieldNames, defaultValue) {\r\n return watchInternal(fieldNames, defaultValue);\r\n }\r\n function unregister(name) {\r\n for (const fieldName of Array.isArray(name) ? name : [name]) {\r\n removeFieldEventListenerAndRef(fieldsRef.current[fieldName], true);\r\n }\r\n }\r\n function registerFieldRef(ref, options = {}) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!ref.name) {\r\n return console.warn('📋 Field is missing `name` attribute', ref, `https://react-hook-form.com/api#useForm`);\r\n }\r\n if (fieldArrayNamesRef.current.has(ref.name.split(/\\[\\d+\\]$/)[0]) &&\r\n !RegExp(`^${ref.name.split(/\\[\\d+\\]$/)[0]}[\\\\d+].\\\\w+`\r\n .replace(/\\[/g, '\\\\[')\r\n .replace(/\\]/g, '\\\\]')).test(ref.name)) {\r\n return console.warn('📋 `name` prop should be in object shape: name=\"test[index].name\"', ref, 'https://react-hook-form.com/api#useFieldArray');\r\n }\r\n }\r\n const { name, type, value } = ref;\r\n const fieldRefAndValidationOptions = Object.assign({ ref }, options);\r\n const fields = fieldsRef.current;\r\n const isRadioOrCheckbox = isRadioOrCheckboxFunction(ref);\r\n const isFieldArray = isNameInFieldArray(fieldArrayNamesRef.current, name);\r\n const compareRef = (currentRef) => isWeb && (!isHTMLElement(ref) || currentRef === ref);\r\n let field = fields[name];\r\n let isEmptyDefaultValue = true;\r\n let defaultValue;\r\n if (field &&\r\n (isRadioOrCheckbox\r\n ? Array.isArray(field.options) &&\r\n compact(field.options).find((option) => {\r\n return value === option.ref.value && compareRef(option.ref);\r\n })\r\n : compareRef(field.ref))) {\r\n fields[name] = Object.assign(Object.assign({}, field), options);\r\n return;\r\n }\r\n if (type) {\r\n field = isRadioOrCheckbox\r\n ? Object.assign({ options: [\r\n ...compact((field && field.options) || []),\r\n {\r\n ref,\r\n },\r\n ], ref: { type, name } }, options) : Object.assign({}, fieldRefAndValidationOptions);\r\n }\r\n else {\r\n field = fieldRefAndValidationOptions;\r\n }\r\n fields[name] = field;\r\n const isEmptyUnmountFields = isUndefined(get(shallowFieldsStateRef.current, name));\r\n if (!isEmptyObject(defaultValuesRef.current) || !isEmptyUnmountFields) {\r\n defaultValue = get(isEmptyUnmountFields\r\n ? defaultValuesRef.current\r\n : shallowFieldsStateRef.current, name);\r\n isEmptyDefaultValue = isUndefined(defaultValue);\r\n if (!isEmptyDefaultValue && !isFieldArray) {\r\n setFieldValue(name, defaultValue);\r\n }\r\n }\r\n if (!isEmptyObject(options)) {\r\n set(fieldsWithValidationRef.current, name, true);\r\n if (!isOnSubmit && readFormStateRef.current.isValid) {\r\n validateField(fieldsRef, isValidateAllFieldCriteria, field, shallowFieldsStateRef).then((error) => {\r\n const previousFormIsValid = formStateRef.current.isValid;\r\n isEmptyObject(error)\r\n ? set(validFieldsRef.current, name, true)\r\n : unset(validFieldsRef.current, name);\r\n previousFormIsValid !== isEmptyObject(error) && updateFormState();\r\n });\r\n }\r\n }\r\n if (shouldUnregister && !(isFieldArray && isEmptyDefaultValue)) {\r\n !isFieldArray && unset(formStateRef.current.dirtyFields, name);\r\n }\r\n if (type) {\r\n attachEventListeners(isRadioOrCheckbox && field.options\r\n ? field.options[field.options.length - 1]\r\n : field, isRadioOrCheckbox || isSelectInput(ref), handleChangeRef.current);\r\n }\r\n }\r\n function register(refOrRegisterOptions, options) {\r\n if (!isWindowUndefined) {\r\n if (isString(refOrRegisterOptions)) {\r\n registerFieldRef({ name: refOrRegisterOptions }, options);\r\n }\r\n else if (isObject(refOrRegisterOptions) &&\r\n 'name' in refOrRegisterOptions) {\r\n registerFieldRef(refOrRegisterOptions, options);\r\n }\r\n else {\r\n return (ref) => ref && registerFieldRef(ref, refOrRegisterOptions);\r\n }\r\n }\r\n }\r\n const handleSubmit = useCallback((onValid, onInvalid) => async (e) => {\r\n if (e && e.preventDefault) {\r\n e.preventDefault();\r\n e.persist();\r\n }\r\n let fieldErrors = {};\r\n let fieldValues = setFieldArrayDefaultValues(getFieldsValues(fieldsRef, cloneObject(shallowFieldsStateRef.current), shouldUnregister, true));\r\n readFormStateRef.current.isSubmitting &&\r\n updateFormState({\r\n isSubmitting: true,\r\n });\r\n try {\r\n if (resolverRef.current) {\r\n const { errors, values } = await resolverRef.current(fieldValues, contextRef.current, isValidateAllFieldCriteria);\r\n formStateRef.current.errors = fieldErrors = errors;\r\n fieldValues = values;\r\n }\r\n else {\r\n for (const field of Object.values(fieldsRef.current)) {\r\n if (field) {\r\n const { name } = field.ref;\r\n const fieldError = await validateField(fieldsRef, isValidateAllFieldCriteria, field, shallowFieldsStateRef);\r\n if (fieldError[name]) {\r\n set(fieldErrors, name, fieldError[name]);\r\n unset(validFieldsRef.current, name);\r\n }\r\n else if (get(fieldsWithValidationRef.current, name)) {\r\n unset(formStateRef.current.errors, name);\r\n set(validFieldsRef.current, name, true);\r\n }\r\n }\r\n }\r\n }\r\n if (isEmptyObject(fieldErrors) &&\r\n Object.keys(formStateRef.current.errors).every((name) => name in fieldsRef.current)) {\r\n updateFormState({\r\n errors: {},\r\n isSubmitting: true,\r\n });\r\n await onValid(fieldValues, e);\r\n }\r\n else {\r\n formStateRef.current.errors = Object.assign(Object.assign({}, formStateRef.current.errors), fieldErrors);\r\n onInvalid && (await onInvalid(formStateRef.current.errors, e));\r\n shouldFocusError &&\r\n focusOnErrorField(fieldsRef.current, formStateRef.current.errors);\r\n }\r\n }\r\n finally {\r\n formStateRef.current.isSubmitting = false;\r\n updateFormState({\r\n isSubmitted: true,\r\n isSubmitting: false,\r\n isSubmitSuccessful: isEmptyObject(formStateRef.current.errors),\r\n submitCount: formStateRef.current.submitCount + 1,\r\n });\r\n }\r\n }, [shouldFocusError, isValidateAllFieldCriteria]);\r\n const resetRefs = ({ errors, isDirty, isSubmitted, touched, isValid, submitCount, dirtyFields, }) => {\r\n if (!isValid) {\r\n validFieldsRef.current = {};\r\n fieldsWithValidationRef.current = {};\r\n }\r\n fieldArrayDefaultValuesRef.current = {};\r\n watchFieldsRef.current = new Set();\r\n isWatchAllRef.current = false;\r\n updateFormState({\r\n submitCount: submitCount ? formStateRef.current.submitCount : 0,\r\n isDirty: isDirty ? formStateRef.current.isDirty : false,\r\n isSubmitted: isSubmitted ? formStateRef.current.isSubmitted : false,\r\n isValid: isValid ? formStateRef.current.isValid : false,\r\n dirtyFields: dirtyFields ? formStateRef.current.dirtyFields : {},\r\n touched: touched ? formStateRef.current.touched : {},\r\n errors: errors ? formStateRef.current.errors : {},\r\n isSubmitting: false,\r\n isSubmitSuccessful: false,\r\n });\r\n };\r\n const reset = (values, omitResetState = {}) => {\r\n if (isWeb) {\r\n for (const field of Object.values(fieldsRef.current)) {\r\n if (field) {\r\n const { ref, options } = field;\r\n const inputRef = isRadioOrCheckboxFunction(ref) && Array.isArray(options)\r\n ? options[0].ref\r\n : ref;\r\n if (isHTMLElement(inputRef)) {\r\n try {\r\n inputRef.closest('form').reset();\r\n break;\r\n }\r\n catch (_a) { }\r\n }\r\n }\r\n }\r\n }\r\n fieldsRef.current = {};\r\n defaultValuesRef.current = Object.assign({}, (values || defaultValuesRef.current));\r\n values && renderWatchedInputs('');\r\n Object.values(resetFieldArrayFunctionRef.current).forEach((resetFieldArray) => isFunction(resetFieldArray) && resetFieldArray());\r\n shallowFieldsStateRef.current = shouldUnregister\r\n ? {}\r\n : cloneObject(values || defaultValuesRef.current);\r\n resetRefs(omitResetState);\r\n };\r\n useEffect(() => {\r\n resolver && readFormStateRef.current.isValid && validateResolver();\r\n observerRef.current =\r\n observerRef.current || !isWeb\r\n ? observerRef.current\r\n : onDomRemove(fieldsRef, removeFieldEventListenerAndRef);\r\n }, [removeFieldEventListenerAndRef, defaultValuesRef.current]);\r\n useEffect(() => () => {\r\n observerRef.current && observerRef.current.disconnect();\r\n isUnMount.current = true;\r\n if (process.env.NODE_ENV !== 'production') {\r\n return;\r\n }\r\n Object.values(fieldsRef.current).forEach((field) => removeFieldEventListenerAndRef(field, true));\r\n }, []);\r\n if (!resolver && readFormStateRef.current.isValid) {\r\n formState.isValid =\r\n deepEqual(validFieldsRef.current, fieldsWithValidationRef.current) &&\r\n isEmptyObject(formStateRef.current.errors);\r\n }\r\n const commonProps = {\r\n trigger,\r\n setValue: useCallback(setValue, [setInternalValue, trigger]),\r\n getValues: useCallback(getValues, []),\r\n register: useCallback(register, [defaultValuesRef.current]),\r\n unregister: useCallback(unregister, []),\r\n formState: isProxyEnabled\r\n ? new Proxy(formState, {\r\n get: (obj, prop) => {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (prop === 'isValid' && isOnSubmit) {\r\n console.warn('📋 `formState.isValid` is applicable with `onTouched`, `onChange` or `onBlur` mode. https://react-hook-form.com/api#formState');\r\n }\r\n }\r\n if (prop in obj) {\r\n readFormStateRef.current[prop] = true;\r\n return obj[prop];\r\n }\r\n return undefined;\r\n },\r\n })\r\n : formState,\r\n };\r\n const control = useMemo(() => (Object.assign({ isFormDirty,\r\n updateWatchedValue,\r\n shouldUnregister,\r\n updateFormState,\r\n removeFieldEventListener,\r\n watchInternal, mode: modeRef.current, reValidateMode: {\r\n isReValidateOnBlur,\r\n isReValidateOnChange,\r\n }, validateResolver: resolver ? validateResolver : undefined, fieldsRef,\r\n resetFieldArrayFunctionRef,\r\n useWatchFieldsRef,\r\n useWatchRenderFunctionsRef,\r\n fieldArrayDefaultValuesRef,\r\n validFieldsRef,\r\n fieldsWithValidationRef,\r\n fieldArrayNamesRef,\r\n readFormStateRef,\r\n formStateRef,\r\n defaultValuesRef,\r\n shallowFieldsStateRef,\r\n fieldArrayValuesRef }, commonProps)), [\r\n defaultValuesRef.current,\r\n updateWatchedValue,\r\n shouldUnregister,\r\n removeFieldEventListener,\r\n watchInternal,\r\n ]);\r\n return Object.assign({ watch,\r\n control,\r\n handleSubmit, reset: useCallback(reset, []), clearErrors: useCallback(clearErrors, []), setError: useCallback(setError, []), errors: formState.errors }, commonProps);\r\n}\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nconst FormContext = createContext(null);\r\nFormContext.displayName = 'RHFContext';\r\nconst useFormContext = () => useContext(FormContext);\r\nconst FormProvider = (_a) => {\r\n var { children } = _a, props = __rest(_a, [\"children\"]);\r\n return (createElement(FormContext.Provider, { value: Object.assign({}, props) }, children));\r\n};\n\nvar generateId = () => {\r\n const d = typeof performance === UNDEFINED ? Date.now() : performance.now() * 1000;\r\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\r\n const r = (Math.random() * 16 + d) % 16 | 0;\r\n return (c == 'x' ? r : (r & 0x3) | 0x8).toString(16);\r\n });\r\n};\n\nfunction removeAtIndexes(data, indexes) {\r\n let i = 0;\r\n const temp = [...data];\r\n for (const index of indexes) {\r\n temp.splice(index - i, 1);\r\n i++;\r\n }\r\n return compact(temp).length ? temp : [];\r\n}\r\nvar removeArrayAt = (data, index) => isUndefined(index)\r\n ? []\r\n : removeAtIndexes(data, (Array.isArray(index) ? index : [index]).sort((a, b) => a - b));\n\nvar moveArrayAt = (data, from, to) => {\r\n if (Array.isArray(data)) {\r\n if (isUndefined(data[to])) {\r\n data[to] = undefined;\r\n }\r\n data.splice(to, 0, data.splice(from, 1)[0]);\r\n return data;\r\n }\r\n return [];\r\n};\n\nvar swapArrayAt = (data, indexA, indexB) => {\r\n const temp = [data[indexB], data[indexA]];\r\n data[indexA] = temp[0];\r\n data[indexB] = temp[1];\r\n};\n\nfunction prepend(data, value) {\r\n return [...(Array.isArray(value) ? value : [value || undefined]), ...data];\r\n}\n\nfunction insert(data, index, value) {\r\n return [\r\n ...data.slice(0, index),\r\n ...(Array.isArray(value) ? value : [value || undefined]),\r\n ...data.slice(index),\r\n ];\r\n}\n\nvar fillEmptyArray = (value) => Array.isArray(value) ? Array(value.length).fill(undefined) : undefined;\n\nvar fillBooleanArray = (value) => (Array.isArray(value) ? value : [value]).map((data) => {\r\n if (isObject(data)) {\r\n const object = {};\r\n for (const key in data) {\r\n object[key] = true;\r\n }\r\n return object;\r\n }\r\n return true;\r\n});\n\nconst mapIds = (values = [], keyName, skipWarn) => {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!skipWarn) {\r\n for (const value of values) {\r\n if (typeof value === 'object') {\r\n if (keyName in value) {\r\n console.warn(`📋 useFieldArray fieldValues contain the keyName \\`${keyName}\\` which is reserved for use by useFieldArray. https://react-hook-form.com/api#useFieldArray`);\r\n break;\r\n }\r\n }\r\n else {\r\n console.warn(`📋 useFieldArray input's name should be in object shape instead of flat array. https://react-hook-form.com/api#useFieldArray`);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n return values.map((value) => (Object.assign({ [keyName]: value[keyName] || generateId() }, value)));\r\n};\r\nconst useFieldArray = ({ control, name, keyName = 'id', }) => {\r\n const methods = useFormContext();\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!control && !methods) {\r\n throw new Error('📋 useFieldArray is missing `control` prop. https://react-hook-form.com/api#useFieldArray');\r\n }\r\n }\r\n const focusIndexRef = useRef(-1);\r\n const isUnMount = useRef(false);\r\n const { isFormDirty, updateWatchedValue, resetFieldArrayFunctionRef, fieldArrayNamesRef, fieldsRef, defaultValuesRef, removeFieldEventListener, formStateRef, shallowFieldsStateRef, updateFormState, readFormStateRef, validFieldsRef, fieldsWithValidationRef, fieldArrayDefaultValuesRef, validateResolver, getValues, shouldUnregister, fieldArrayValuesRef, } = control || methods.control;\r\n const getDefaultValues = (values) => get(shouldUnregister ? values : shallowFieldsStateRef.current, name, []);\r\n const fieldArrayParentName = getFieldArrayParentName(name);\r\n const memoizedDefaultValues = useRef([\r\n ...(get(fieldArrayDefaultValuesRef.current, fieldArrayParentName)\r\n ? getDefaultValues(fieldArrayDefaultValuesRef.current)\r\n : getDefaultValues(defaultValuesRef.current)),\r\n ]);\r\n const [fields, setFields] = useState(mapIds(memoizedDefaultValues.current, keyName));\r\n set(fieldArrayValuesRef.current, name, compact(fields));\r\n const omitKey = (fields) => fields.map((_a = {}) => {\r\n var _b = keyName, omitted = _a[_b], rest = __rest(_a, [typeof _b === \"symbol\" ? _b : _b + \"\"]);\r\n return rest;\r\n });\r\n fieldArrayNamesRef.current.add(name);\r\n const getFieldArrayValue = useCallback(() => get(fieldArrayValuesRef.current, name, []), [name]);\r\n const getCurrentFieldsValues = () => mapIds(get(getValues(), name, getFieldArrayValue()).map((item, index) => (Object.assign(Object.assign({}, getFieldArrayValue()[index]), item))), keyName, true);\r\n fieldArrayNamesRef.current.add(name);\r\n if (fieldArrayParentName &&\r\n !get(fieldArrayDefaultValuesRef.current, fieldArrayParentName)) {\r\n set(fieldArrayDefaultValuesRef.current, fieldArrayParentName, cloneObject(get(defaultValuesRef.current, fieldArrayParentName)));\r\n }\r\n const setFieldAndValidState = (fieldsValues) => {\r\n setFields(fieldsValues);\r\n set(fieldArrayValuesRef.current, name, fieldsValues);\r\n if (readFormStateRef.current.isValid && validateResolver) {\r\n const values = getValues();\r\n set(values, name, fieldsValues);\r\n validateResolver(values);\r\n }\r\n };\r\n const resetFields = () => {\r\n for (const key in fieldsRef.current) {\r\n if (isMatchFieldArrayName(key, name)) {\r\n removeFieldEventListener(fieldsRef.current[key], true);\r\n delete fieldsRef.current[key];\r\n }\r\n }\r\n };\r\n const cleanup = (ref) => !compact(get(ref, name, [])).length && unset(ref, name);\r\n const updateDirtyFieldsWithDefaultValues = (updatedFieldArrayValues) => {\r\n if (updatedFieldArrayValues) {\r\n set(formStateRef.current.dirtyFields, name, setFieldArrayDirtyFields(omitKey(updatedFieldArrayValues), get(defaultValuesRef.current, name, []), get(formStateRef.current.dirtyFields, name, [])));\r\n }\r\n };\r\n const batchStateUpdate = (method, args, updatedFieldValues, updatedFormValues = [], shouldSet = true, shouldUpdateValid = false) => {\r\n if (get(shallowFieldsStateRef.current, name)) {\r\n const output = method(get(shallowFieldsStateRef.current, name), args.argA, args.argB);\r\n shouldSet && set(shallowFieldsStateRef.current, name, output);\r\n }\r\n if (get(fieldArrayDefaultValuesRef.current, name)) {\r\n const output = method(get(fieldArrayDefaultValuesRef.current, name), args.argA, args.argB);\r\n shouldSet && set(fieldArrayDefaultValuesRef.current, name, output);\r\n }\r\n if (Array.isArray(get(formStateRef.current.errors, name))) {\r\n const output = method(get(formStateRef.current.errors, name), args.argA, args.argB);\r\n shouldSet && set(formStateRef.current.errors, name, output);\r\n cleanup(formStateRef.current.errors);\r\n }\r\n if (readFormStateRef.current.touched &&\r\n get(formStateRef.current.touched, name)) {\r\n const output = method(get(formStateRef.current.touched, name), args.argA, args.argB);\r\n shouldSet && set(formStateRef.current.touched, name, output);\r\n cleanup(formStateRef.current.touched);\r\n }\r\n if (readFormStateRef.current.dirtyFields ||\r\n readFormStateRef.current.isDirty) {\r\n set(formStateRef.current.dirtyFields, name, setFieldArrayDirtyFields(omitKey(updatedFormValues), get(defaultValuesRef.current, name, []), get(formStateRef.current.dirtyFields, name, [])));\r\n updateDirtyFieldsWithDefaultValues(updatedFieldValues);\r\n cleanup(formStateRef.current.dirtyFields);\r\n }\r\n if (shouldUpdateValid &&\r\n readFormStateRef.current.isValid &&\r\n !validateResolver) {\r\n set(validFieldsRef.current, name, method(get(validFieldsRef.current, name, []), args.argA));\r\n cleanup(validFieldsRef.current);\r\n set(fieldsWithValidationRef.current, name, method(get(fieldsWithValidationRef.current, name, []), args.argA));\r\n cleanup(fieldsWithValidationRef.current);\r\n }\r\n if (!isUnMount.current && readFormStateRef.current.isDirty) {\r\n updateFormState({\r\n isDirty: isFormDirty(name, omitKey(updatedFormValues)),\r\n });\r\n }\r\n };\r\n const append = (value, shouldFocus = true) => {\r\n const appendValue = Array.isArray(value) ? value : [value];\r\n const updateFormValues = [\r\n ...getCurrentFieldsValues(),\r\n ...mapIds(appendValue, keyName),\r\n ];\r\n setFieldAndValidState(updateFormValues);\r\n if (readFormStateRef.current.dirtyFields ||\r\n readFormStateRef.current.isDirty) {\r\n updateDirtyFieldsWithDefaultValues(updateFormValues);\r\n updateFormState({\r\n isDirty: true,\r\n dirtyFields: formStateRef.current.dirtyFields,\r\n });\r\n }\r\n !shouldUnregister &&\r\n set(shallowFieldsStateRef.current, name, [\r\n ...(get(shallowFieldsStateRef.current, name) || []),\r\n ...cloneObject(appendValue),\r\n ]);\r\n focusIndexRef.current = shouldFocus\r\n ? get(fieldArrayValuesRef.current, name).length - 1\r\n : -1;\r\n };\r\n const prepend$1 = (value, shouldFocus = true) => {\r\n const emptyArray = fillEmptyArray(value);\r\n const updatedFieldArrayValues = prepend(getCurrentFieldsValues(), mapIds(Array.isArray(value) ? value : [value], keyName));\r\n setFieldAndValidState(updatedFieldArrayValues);\r\n resetFields();\r\n batchStateUpdate(prepend, {\r\n argA: emptyArray,\r\n argC: fillBooleanArray(value),\r\n }, updatedFieldArrayValues);\r\n focusIndexRef.current = shouldFocus ? 0 : -1;\r\n };\r\n const remove = (index) => {\r\n const fieldValues = getCurrentFieldsValues();\r\n const updatedFieldValues = removeArrayAt(fieldValues, index);\r\n setFieldAndValidState(updatedFieldValues);\r\n resetFields();\r\n batchStateUpdate(removeArrayAt, {\r\n argA: index,\r\n argC: index,\r\n }, updatedFieldValues, removeArrayAt(fieldValues, index), true, true);\r\n };\r\n const insert$1 = (index, value, shouldFocus = true) => {\r\n const emptyArray = fillEmptyArray(value);\r\n const fieldValues = getCurrentFieldsValues();\r\n const updatedFieldArrayValues = insert(fieldValues, index, mapIds(Array.isArray(value) ? value : [value], keyName));\r\n setFieldAndValidState(updatedFieldArrayValues);\r\n resetFields();\r\n batchStateUpdate(insert, {\r\n argA: index,\r\n argB: emptyArray,\r\n argC: index,\r\n argD: fillBooleanArray(value),\r\n }, updatedFieldArrayValues, insert(fieldValues, index));\r\n focusIndexRef.current = shouldFocus ? index : -1;\r\n };\r\n const swap = (indexA, indexB) => {\r\n const fieldValues = getCurrentFieldsValues();\r\n swapArrayAt(fieldValues, indexA, indexB);\r\n resetFields();\r\n setFieldAndValidState([...fieldValues]);\r\n batchStateUpdate(swapArrayAt, {\r\n argA: indexA,\r\n argB: indexB,\r\n argC: indexA,\r\n argD: indexB,\r\n }, undefined, fieldValues, false);\r\n };\r\n const move = (from, to) => {\r\n const fieldValues = getCurrentFieldsValues();\r\n moveArrayAt(fieldValues, from, to);\r\n resetFields();\r\n setFieldAndValidState([...fieldValues]);\r\n batchStateUpdate(moveArrayAt, {\r\n argA: from,\r\n argB: to,\r\n argC: from,\r\n argD: to,\r\n }, undefined, fieldValues, false);\r\n };\r\n useEffect(() => {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!name) {\r\n console.warn('📋 useFieldArray is missing `name` attribute. https://react-hook-form.com/api#useFieldArray');\r\n }\r\n }\r\n const defaultValues = get(fieldArrayDefaultValuesRef.current, name);\r\n if (defaultValues && fields.length < defaultValues.length) {\r\n set(fieldArrayDefaultValuesRef.current, name, defaultValues.slice(1));\r\n }\r\n updateWatchedValue(name);\r\n if (focusIndexRef.current > -1) {\r\n for (const key in fieldsRef.current) {\r\n const field = fieldsRef.current[key];\r\n if (key.startsWith(`${name}[${focusIndexRef.current}]`) &&\r\n field.ref.focus) {\r\n field.ref.focus();\r\n break;\r\n }\r\n }\r\n }\r\n focusIndexRef.current = -1;\r\n }, [fields, name]);\r\n useEffect(() => {\r\n const resetFunctions = resetFieldArrayFunctionRef.current;\r\n const fieldArrayNames = fieldArrayNamesRef.current;\r\n if (!getFieldArrayParentName(name)) {\r\n resetFunctions[name] = (data) => {\r\n resetFields();\r\n !data && unset(fieldArrayDefaultValuesRef.current, name);\r\n unset(shallowFieldsStateRef.current, name);\r\n memoizedDefaultValues.current = get(data || defaultValuesRef.current, name);\r\n if (!isUnMount.current) {\r\n setFields(mapIds(memoizedDefaultValues.current, keyName));\r\n }\r\n };\r\n }\r\n return () => {\r\n isUnMount.current = true;\r\n shouldUnregister && remove();\r\n resetFields();\r\n delete resetFunctions[name];\r\n unset(fieldArrayValuesRef.current, name);\r\n fieldArrayNames.delete(name);\r\n };\r\n }, []);\r\n return {\r\n swap: useCallback(swap, [name]),\r\n move: useCallback(move, [name]),\r\n prepend: useCallback(prepend$1, [name]),\r\n append: useCallback(append, [name]),\r\n remove: useCallback(remove, [name]),\r\n insert: useCallback(insert$1, [name]),\r\n fields: compact(fields),\r\n };\r\n};\n\nvar getInputValue = (event) => isPrimitive(event) ||\r\n !isObject(event.target) ||\r\n (isObject(event.target) && !event.type)\r\n ? event\r\n : isUndefined(event.target.value)\r\n ? event.target.checked\r\n : event.target.value;\n\nfunction useController({ name, rules, defaultValue, control, onFocus, }) {\r\n const methods = useFormContext();\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!control && !methods) {\r\n throw new Error('📋 Controller is missing `control` prop. https://react-hook-form.com/api#Controller');\r\n }\r\n }\r\n const { defaultValuesRef, setValue, register, unregister, trigger, mode, reValidateMode: { isReValidateOnBlur, isReValidateOnChange }, formState, formStateRef: { current: { isSubmitted, touched, errors }, }, updateFormState, readFormStateRef, fieldsRef, fieldArrayNamesRef, shallowFieldsStateRef, } = control || methods.control;\r\n const isNotFieldArray = !isNameInFieldArray(fieldArrayNamesRef.current, name);\r\n const getInitialValue = () => !isUndefined(get(shallowFieldsStateRef.current, name)) && isNotFieldArray\r\n ? get(shallowFieldsStateRef.current, name)\r\n : isUndefined(defaultValue)\r\n ? get(defaultValuesRef.current, name)\r\n : defaultValue;\r\n const [value, setInputStateValue] = useState(getInitialValue());\r\n const valueRef = useRef(value);\r\n const ref = useRef({\r\n focus: () => null,\r\n });\r\n const onFocusRef = useRef(onFocus ||\r\n (() => {\r\n if (isFunction(ref.current.focus)) {\r\n ref.current.focus();\r\n }\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!isFunction(ref.current.focus)) {\r\n console.warn(`📋 'ref' from Controller render prop must be attached to a React component or a DOM Element whose ref provides a 'focus()' method`);\r\n }\r\n }\r\n }));\r\n const shouldValidate = useCallback((isBlurEvent) => !skipValidation(Object.assign({ isBlurEvent,\r\n isReValidateOnBlur,\r\n isReValidateOnChange,\r\n isSubmitted, isTouched: !!get(touched, name) }, mode)), [\r\n isReValidateOnBlur,\r\n isReValidateOnChange,\r\n isSubmitted,\r\n touched,\r\n name,\r\n mode,\r\n ]);\r\n const commonTask = useCallback(([event]) => {\r\n const data = getInputValue(event);\r\n setInputStateValue(data);\r\n valueRef.current = data;\r\n return data;\r\n }, []);\r\n const registerField = useCallback((shouldUpdateValue) => {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!name) {\r\n return console.warn('📋 Field is missing `name` prop. https://react-hook-form.com/api#Controller');\r\n }\r\n }\r\n if (fieldsRef.current[name]) {\r\n fieldsRef.current[name] = Object.assign({ ref: fieldsRef.current[name].ref }, rules);\r\n }\r\n else {\r\n register(Object.defineProperties({\r\n name,\r\n focus: onFocusRef.current,\r\n }, {\r\n value: {\r\n set(data) {\r\n setInputStateValue(data);\r\n valueRef.current = data;\r\n },\r\n get() {\r\n return valueRef.current;\r\n },\r\n },\r\n }), rules);\r\n shouldUpdateValue = isUndefined(get(defaultValuesRef.current, name));\r\n }\r\n shouldUpdateValue &&\r\n isNotFieldArray &&\r\n setInputStateValue(getInitialValue());\r\n }, [rules, name, register]);\r\n useEffect(() => () => unregister(name), [name]);\r\n useEffect(() => {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (isUndefined(value)) {\r\n console.warn(`📋 ${name} is missing in the 'defaultValue' prop of either its Controller (https://react-hook-form.com/api#Controller) or useForm (https://react-hook-form.com/api#useForm)`);\r\n }\r\n if (!isNotFieldArray && isUndefined(defaultValue)) {\r\n console.warn('📋 Controller is missing `defaultValue` prop when using `useFieldArray`. https://react-hook-form.com/api#Controller');\r\n }\r\n }\r\n registerField();\r\n }, [registerField]);\r\n useEffect(() => {\r\n !fieldsRef.current[name] && registerField(true);\r\n });\r\n const onBlur = useCallback(() => {\r\n if (readFormStateRef.current.touched && !get(touched, name)) {\r\n set(touched, name, true);\r\n updateFormState({\r\n touched,\r\n });\r\n }\r\n shouldValidate(true) && trigger(name);\r\n }, [name, updateFormState, shouldValidate, trigger, readFormStateRef]);\r\n const onChange = useCallback((...event) => setValue(name, commonTask(event), {\r\n shouldValidate: shouldValidate(),\r\n shouldDirty: true,\r\n }), [setValue, name, shouldValidate]);\r\n return {\r\n field: {\r\n onChange,\r\n onBlur,\r\n name,\r\n value,\r\n ref,\r\n },\r\n meta: Object.defineProperties({\r\n invalid: !!get(errors, name),\r\n }, {\r\n isDirty: {\r\n get() {\r\n return !!get(formState.dirtyFields, name);\r\n },\r\n },\r\n isTouched: {\r\n get() {\r\n return !!get(formState.touched, name);\r\n },\r\n },\r\n }),\r\n };\r\n}\n\nfunction useWatch({ control, name, defaultValue, }) {\r\n const methods = useFormContext();\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!control && !methods) {\r\n throw new Error('📋 useWatch is missing `control` prop. https://react-hook-form.com/api#useWatch');\r\n }\r\n }\r\n const { useWatchFieldsRef, useWatchRenderFunctionsRef, watchInternal, defaultValuesRef, } = control || methods.control;\r\n const updateValue = useState()[1];\r\n const idRef = useRef();\r\n const defaultValueRef = useRef(defaultValue);\r\n useEffect(() => {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (name === '') {\r\n console.warn('📋 useWatch is missing `name` attribute. https://react-hook-form.com/api#useWatch');\r\n }\r\n }\r\n const id = (idRef.current = generateId());\r\n const watchFieldsHookRender = useWatchRenderFunctionsRef.current;\r\n const watchFieldsHook = useWatchFieldsRef.current;\r\n watchFieldsHook[id] = new Set();\r\n watchFieldsHookRender[id] = () => updateValue({});\r\n watchInternal(name, defaultValueRef.current, id);\r\n return () => {\r\n delete watchFieldsHook[id];\r\n delete watchFieldsHookRender[id];\r\n };\r\n }, [\r\n name,\r\n useWatchRenderFunctionsRef,\r\n useWatchFieldsRef,\r\n watchInternal,\r\n defaultValueRef,\r\n ]);\r\n return idRef.current\r\n ? watchInternal(name, defaultValueRef.current, idRef.current)\r\n : isUndefined(defaultValue)\r\n ? isString(name)\r\n ? get(defaultValuesRef.current, name)\r\n : Array.isArray(name)\r\n ? name.reduce((previous, inputName) => (Object.assign(Object.assign({}, previous), { [inputName]: get(defaultValuesRef.current, inputName) })), {})\r\n : defaultValuesRef.current\r\n : defaultValue;\r\n}\n\nconst Controller = (props) => {\r\n const { rules, as, render, defaultValue, control, onFocus } = props, rest = __rest(props, [\"rules\", \"as\", \"render\", \"defaultValue\", \"control\", \"onFocus\"]);\r\n const { field, meta } = useController(props);\r\n const componentProps = Object.assign(Object.assign({}, rest), field);\r\n return as\r\n ? isValidElement(as)\r\n ? cloneElement(as, componentProps)\r\n : createElement(as, componentProps)\r\n : render\r\n ? render(field, meta)\r\n : null;\r\n};\n\nexport { Controller, FormProvider, appendErrors, get, transformToNestObject, useController, useFieldArray, useForm, useFormContext, useWatch };\n//# sourceMappingURL=index.esm.js.map\n","import React from \"react\";\nimport { Controller } from \"react-hook-form\";\nimport { CardLabelError, TextInput, CustomTooltip, Label } from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\n\nconst SearchFormFieldsComponents = ({ searchFormState, controlSearchForm, searchType }) => {\n const { t } = useTranslation();\n const { errors } = searchFormState;\n\n if (searchType === \"mobile\") {\n return (\n <React.Fragment>\n {/* MOBILE NUMBER */}\n <span className=\"mobile-input\">\n <Label className=\"flex-roww flex-gap-2\">\n {t(\"ES_COMMON_MOBILE_NUM\") || \"Mobile Number\"}\n <CustomTooltip message={t(\"EKYC_MOBILE_NUMBER_MESSAGE\")} />\n </Label>\n\n <Controller\n name=\"mobileNumber\"\n control={controlSearchForm}\n defaultValue=\"\"\n rules={{\n pattern: {\n value: /^[6-9]\\d{9}$/,\n message: t(\"ERR_INVALID_MOBILE_NUMBER\"),\n },\n }}\n render={({ onChange, value }) => <TextInput value={value || \"\"} onChange={(e) => onChange(e.target.value)} />}\n />\n\n {errors?.mobileNumber && <CardLabelError>{errors.mobileNumber.message}</CardLabelError>}\n </span>\n </React.Fragment>\n );\n }\n\n return (\n <React.Fragment>\n {/* K NUMBER (KNO) */}\n <span className=\"mobile-input\">\n <Label className=\"flex-roww flex-gap-2\">\n {t(\"EKYC_K.NUMBER\") || \"K Number\"}\n <CustomTooltip message={t(\"EKYC_K.NUMBER_MESSAGE\")} />\n </Label>\n\n <Controller\n name=\"kNumber\"\n control={controlSearchForm}\n defaultValue=\"\"\n rules={{\n pattern: {\n value: /^[0-9]{10}$/,\n message: t(\"ERR_INVALID_KNO\"),\n },\n }}\n render={({ onChange, value }) => <TextInput value={value || \"\"} onChange={(e) => onChange(e.target.value)} />}\n />\n\n {errors?.kNumber && <CardLabelError>{errors.kNumber.message}</CardLabelError>}\n </span>\n </React.Fragment>\n );\n};\n\nexport default SearchFormFieldsComponents;\n","import { RadioButtons, SearchField } from \"@djb25/digit-ui-react-components\";\nimport React, { useState } from \"react\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nconst useInboxMobileCardsData = ({ table, tenantId, isSupervisor = false }) => {\n const { t } = useTranslation();\n const history = useHistory();\n const [selectedKno, setSelectedKno] = useState(\"\");\n const { data: reviewData, getReview } = Digit.Hooks.ekyc.useEkycAPI(\"review\", tenantId);\n const userType = Digit.SessionStorage.get(\"User\")?.info?.type?.toLowerCase() || \"citizen\";\n\n React.useEffect(() => {\n if (!isSupervisor && reviewData) {\n history.push(`/digit-ui/${userType}/ekyc/review/${selectedKno}`, { aadhaarData: reviewData?.aadhaarData, reviewData });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [reviewData, isSupervisor]);\n\n const handleReview = (kno) => {\n setSelectedKno(kno);\n getReview({ kno });\n };\n\n const handleSupervisorReview = (id) => {\n history.push(`/digit-ui/${userType}/ekyc/assign/surveyor-details/${id}`);\n };\n\n const dataForMobileInboxCards = table?.map((item) => {\n if (isSupervisor) {\n const id = item.id;\n const status = item.status || \"DEFAULT\";\n\n return {\n [t(\"SURVEYOR_NAME\")]: (\n <span className=\"link\" onClick={() => handleSupervisorReview(id)}>\n {item.surveyorName || item.name || \"NA\"}\n </span>\n ),\n [t(\"MOBILE_NUMBER\")]: item.mobileNo || item.owner?.mobileNumber || \"NA\",\n [t(\"STATUS\")]: <span className={`ekyc-status-tag ${status}`}>{t(status)}</span>,\n [t(\"SERVICE_TYPE\")]: item.serviceType || \"NA\",\n };\n } else {\n const kno = item.kno || item.applicationNumber || \"NA\";\n const status = (item.status || \"DEFAULT\").toUpperCase();\n const ekycStatus = (item.ekycStatus || item.ekycstatus || \"NA\").toUpperCase();\n\n return {\n [t(\"EKYC_APPLICATION_NO\")]: (\n <span className=\"link\" onClick={() => handleReview(kno)}>\n {kno}\n </span>\n ),\n [t(\"EKYC_CITIZEN_NAME\")]: item.citizenName || \"NA\",\n [t(\"EKYC_STATUS\")]: <span className={`ekyc-status-tag ${status}`}>{t(`${status}`)}</span>,\n [t(\"SUBMITTED_AT\")]: item.submittedAt ? Digit.DateUtils.ConvertEpochToDate(item.submittedAt) : \"-\",\n [t(\"ASSIGNED_AT\")]: item.assignedAt ? Digit.DateUtils.ConvertEpochToDate(item.assignedAt) : \"-\",\n [t(\"EKYC_EKYC_STATUS\")]: <span className={`ekyc-status-tag ${ekycStatus}`}>{t(`${ekycStatus}`)}</span>,\n };\n }\n });\n\n const MobileSortFormValues = () => {\n const sortOrderOptions = [\n {\n code: \"DESC\",\n i18nKey: \"ES_INBOX_DATE_LATEST_FIRST\",\n },\n {\n code: \"ASC\",\n i18nKey: \"ES_INBOX_DATE_LATEST_LAST\",\n },\n ];\n const { control: controlSortForm } = useFormContext();\n return (\n <SearchField>\n <Controller\n name=\"sortOrder\"\n control={controlSortForm}\n render={({ onChange, value }) => (\n <RadioButtons\n onSelect={(e) => {\n onChange(e.code);\n }}\n selectedOption={sortOrderOptions.filter((option) => option.code === value)[0]}\n optionsKey=\"i18nKey\"\n name=\"sortOrder\"\n options={sortOrderOptions}\n />\n )}\n />\n </SearchField>\n );\n };\n\n return {\n data: dataForMobileInboxCards,\n isTwoDynamicPrefix: true,\n getRedirectionLink: () => {},\n handleClickEnabled: false,\n serviceRequestIdKey: isSupervisor ? \"id\" : \"applicationNo\",\n MobileSortFormValues,\n };\n};\n\nexport default useInboxMobileCardsData;\n","import React, { useMemo, useCallback, useReducer } from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport { InboxComposer } from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { FaUsers, FaCheckCircle, FaClock, FaChartLine } from \"react-icons/fa\";\nimport useInboxTableConfig from \"../../hook/useInboxTableConfig\";\nimport SearchFormFieldsComponents from \"../../components/SearchFormFieldsComponent\";\nimport useInboxMobileCardsData from \"../../hook/useInboxMobileCardsData\";\n\nconst StatCard = ({ title, value, type, isLoading, icon }) => (\n <div className={`stat-card ${type}`}>\n {isLoading ? (\n <React.Fragment>\n <div className=\"stat-title skeleton skeleton-text\"></div>\n <div className=\"stat-value skeleton skeleton-number\"></div>\n </React.Fragment>\n ) : (\n <React.Fragment>\n <div className=\"stat-title\">{title}</div>\n <div className=\"stat-value\">{value}</div>\n {icon && <div className=\"stat-icon\">{icon}</div>}\n </React.Fragment>\n )}\n </div>\n);\n\nconst Inbox = ({ parentRoute }) => {\n const tenantId = Digit.ULBService.getCurrentTenantId();\n const location = useLocation();\n\n const formInitValue = {\n filterForm: {},\n searchForm: {},\n tableForm: {\n limit: 10,\n offset: 0,\n sortBy: \"createdTime\",\n sortOrder: \"DESC\",\n },\n };\n\n const [formState, dispatch] = useReducer(formReducer, formInitValue);\n\n const filters = useMemo(() => {\n const searchForm = formState?.searchForm || {};\n return {\n ...searchForm,\n ...(searchForm.kNumber && { kno: searchForm.kNumber }),\n };\n }, [formState?.searchForm]);\n\n const queryParams = useMemo(() => {\n return {\n tenantId,\n offset: formState?.tableForm?.offset || 0,\n limit: formState?.tableForm?.limit || 10,\n };\n }, [tenantId, formState?.tableForm?.offset, formState?.tableForm?.limit]);\n\n const { isLoading: isListLoading, data: listData = {} } = Digit.Hooks.ekyc.useEkycApplicationList(filters, queryParams, {\n enabled: !!tenantId,\n keepPreviousData: true,\n });\n\n // Fetch vendors from DSO search to get vendor ID for progress API\n // const { data: vendorSearchResponse } = Digit.Hooks.fsm.useDsoSearch(\n // tenantId,\n // { status: \"ACTIVE\" },\n // { enabled: !!tenantId, staleTime: 300000 }\n // );\n\n // const { targetVendorId, allVendorIds } = useMemo(() => {\n // if (!vendorSearchResponse || vendorSearchResponse.length === 0) {\n // return { targetVendorId: null, allVendorIds: [] };\n // }\n // const loggedInUser = Digit.SessionStorage.get(\"User\")?.info;\n // const userUuid = loggedInUser?.uuid;\n // const userMobile = loggedInUser?.mobileNumber;\n // const matchesUser = (v) => {\n // const ownerUuid = v.owner?.uuid || v.owner?.id;\n // const ownerMobile = v.owner?.mobileNumber || v.mobileNumber;\n // return (userUuid && ownerUuid === userUuid) || (userMobile && ownerMobile === userMobile);\n // };\n\n // const allIds = vendorSearchResponse\n // .map((v) => {\n // const dso = v.dsoDetails || v;\n // return dso.id || dso.vendorId || v.id || v.vendorId;\n // })\n // .filter(Boolean);\n\n // const matched = vendorSearchResponse.find((v) => matchesUser(v.dsoDetails || v));\n // let matchedId = null;\n // if (matched) {\n // const dso = matched.dsoDetails || matched;\n // matchedId = dso.id || dso.vendorId || matched.id || matched.vendorId;\n // }\n\n // return { targetVendorId: matchedId, allVendorIds: allIds };\n // }, [vendorSearchResponse]);\n\n const { isLoading: isProgressLoading, data: progressData } = Digit.Hooks.ekyc.useEkycAssignmentProgress(\n { tenantId, allVendorsDetailed: true },\n {\n enabled: !!tenantId,\n keepPreviousData: true,\n }\n );\n\n const searchDetails = useMemo(\n () => ({\n kno: formState?.searchForm?.kNumber || \"\",\n name: formState?.searchForm?.kName || \"\",\n }),\n [formState?.searchForm?.kNumber, formState?.searchForm?.kName]\n );\n\n const isSearchActive = !!(searchDetails.kno || searchDetails.name);\n\n const { isLoading: isSearchLoading, data: searchData } = Digit.Hooks.ekyc.useSearchConnection(\n {\n tenantId,\n details: searchDetails,\n },\n {\n enabled: !!tenantId && !!searchDetails.kno, // 🔥 important\n keepPreviousData: true,\n }\n );\n\n const sourceData = useMemo(() => {\n if (isSearchActive) {\n if (!searchData) return [];\n return [searchData];\n }\n\n return listData?.consumerList || [];\n }, [isSearchActive, searchData, listData]);\n\n const filteredData = useMemo(() => {\n return (sourceData || []).map((item) => {\n // ✅ detect search response\n const isSearchItem = !!item.connectionDetails;\n\n if (isSearchItem) {\n return {\n applicationNo: item.propertyInfo?.kno || \"\",\n connectionNo: item.propertyInfo?.kno || \"\",\n owner: item.connectionDetails?.consumerName || \"\",\n applicationNumber: item.propertyInfo?.kno || \"\",\n citizenName: item.connectionDetails?.consumerName || \"\",\n status: item.connectionDetails?.statusflag || \"\",\n ekycStatus: (\n item.connectionDetails?.ekycStatus ||\n item.connectionDetails?.ekycstatus ||\n item.ekycStatus ||\n item.ekycstatus ||\n \"NA\"\n ).toUpperCase(),\n sla: 0,\n };\n }\n\n // ✅ dashboard mapping\n const fullName = [item.firstName, item.middleName, item.lastName].filter(Boolean).join(\" \");\n return {\n ...item,\n applicationNo: item.kno || item.applicationNumber || \"\",\n connectionNo: item.kno || \"\",\n owner: fullName || item.consumerName || item.citizenName || \"\",\n applicationNumber: item.kno || item.applicationNumber || \"\",\n citizenName: fullName || item.consumerName || item.citizenName || \"\",\n status: item.status || \"\",\n ekycStatus: (item.ekycStatus || item.ekycstatus || \"NA\").toUpperCase(),\n sla: item.sla ?? 0,\n };\n });\n }, [sourceData]);\n\n const { t } = useTranslation();\n\n const progressMetrics = useMemo(() => {\n if (!progressData) return { totalKnos: 0, submittedKnos: 0, pendingKnos: 0, progressPercent: 0 };\n\n const totalKnos = progressData?.totalKnos ?? progressData?.totalAssignments ?? 0;\n const submittedKnos = progressData?.submittedKnos ?? 0;\n const pendingKnos = progressData?.pendingKnos ?? (totalKnos >= submittedKnos ? totalKnos - submittedKnos : 0);\n const progressPercent =\n progressData?.overallProgressPercent ?? progressData?.progressPercent ?? (totalKnos > 0 ? ((submittedKnos / totalKnos) * 100).toFixed(1) : 0);\n\n return {\n totalKnos,\n submittedKnos,\n pendingKnos,\n progressPercent,\n };\n }, [progressData]);\n\n const cards = useMemo(\n () => [\n {\n label: t(\"TOTAL_EKYC_APPLICATIONS\"),\n count: progressMetrics?.totalKnos || 0,\n color: \"#0B2559\",\n type: \"today\",\n icon: <FaUsers />,\n },\n {\n label: t(\"EKYC_SUBMITTED_TITLE\"),\n count: progressMetrics?.submittedKnos || 0,\n color: \"#10B981\",\n type: \"month\",\n icon: <FaCheckCircle />,\n },\n {\n label: t(\"PENDING_APPLICATIONS\"),\n count: progressMetrics?.pendingKnos || 0,\n color: \"#F59E0B\",\n type: \"pending\",\n icon: <FaClock />,\n },\n {\n label: t(\"OVERALL_PROGRESS\"),\n count: `${progressMetrics?.progressPercent || 0}%`,\n color: \"#A855F7\",\n type: \"progress\",\n icon: <FaChartLine />,\n },\n ],\n [progressMetrics, t]\n );\n const totalRecords = listData?.totalCount || 0;\n\n const checkPathName = location.pathname.includes(\"ekyc/inbox\");\n\n const SearchFormFields = useCallback(\n ({ registerRef, searchFormState, controlSearchForm }) => (\n <SearchFormFieldsComponents {...{ registerRef, searchFormState, controlSearchForm }} searchType=\"kno\" className=\"search\" />\n ),\n []\n );\n\n const tableOrderFormDefaultValues = {\n sortBy: \"createdTime\",\n limit: window.Digit.Utils.browser.isMobile() ? 50 : 10,\n offset: 0,\n sortOrder: \"DESC\",\n };\n\n const onSearchFormSubmit = (data) => {\n data.hasOwnProperty(\"\") && delete data?.[\"\"];\n dispatch({ action: \"mutateTableForm\", data: { ...tableOrderFormDefaultValues }, checkPathName });\n dispatch({ action: \"mutateSearchForm\", data, checkPathName });\n };\n\n const searchFormDefaultValues = {\n kNumber: \"\",\n applicationNumber: \"\",\n consumerNo: \"\",\n };\n\n const onSearchFormReset = (setSearchFormValue) => {\n setSearchFormValue(\"kNumber\", null);\n setSearchFormValue(\"applicationNumber\", null);\n setSearchFormValue(\"consumerNo\", null);\n dispatch({ action: \"mutateSearchForm\", data: searchFormDefaultValues });\n };\n\n const propsForSearchForm = {\n SearchFormFields,\n onSearchFormSubmit,\n searchFormDefaultValues: formState?.searchForm,\n resetSearchFormDefaultValues: searchFormDefaultValues,\n onSearchFormReset,\n className: \"search-form-wns-inbox\",\n };\n\n function formReducer(state, payload) {\n // ✅ safety for SLA\n switch (payload.action) {\n case \"mutateSearchForm\":\n Digit.SessionStorage.set(\"EKYC.INBOX\", { ...state, searchForm: payload.data });\n return { ...state, searchForm: payload.data };\n\n case \"mutateFilterForm\":\n Digit.SessionStorage.set(\"EKYC.INBOX\", { ...state, filterForm: payload.data });\n return { ...state, filterForm: payload.data };\n\n case \"mutateTableForm\":\n Digit.SessionStorage.set(\"EKYC.INBOX\", { ...state, tableForm: payload.data });\n return { ...state, tableForm: payload.data };\n\n default:\n return state; // ✅ IMPORTANT\n }\n }\n\n const onPageSizeChange = (e) => {\n const newLimit = Number(e.target.value);\n\n dispatch({\n action: \"mutateTableForm\",\n data: {\n ...formState.tableForm,\n limit: newLimit,\n offset: 0, // reset page\n },\n checkPathName,\n });\n };\n\n const onSortingByData = (e) => {\n if (e.length > 0) {\n const [{ id, desc }] = e;\n const sortOrder = desc ? \"DESC\" : \"ASC\";\n const sortBy = id;\n\n if (!(formState.tableForm.sortBy === sortBy && formState.tableForm.sortOrder === sortOrder)) {\n dispatch({\n action: \"mutateTableForm\",\n data: {\n ...formState.tableForm,\n sortBy: id,\n sortOrder: desc ? \"DESC\" : \"ASC\",\n },\n checkPathName,\n });\n }\n }\n };\n\n const propsForInboxTable = useInboxTableConfig({\n ...{\n parentRoute,\n onPageSizeChange,\n formState,\n totalCount: totalRecords,\n table: filteredData,\n dispatch,\n onSortingByData,\n tenantId,\n checkPathName,\n inboxStyles: { overflowX: \"scroll\", overflowY: \"hidden\" },\n tableStyle: { width: \"70%\" },\n },\n });\n\n const onMobileSortOrderData = (data) => {\n const { sortOrder } = data;\n dispatch({ action: \"mutateTableForm\", data: { ...formState.tableForm, sortOrder } });\n };\n\n const onSortFormReset = (setSortFormValue) => {\n setSortFormValue(\"sortOrder\", \"DESC\");\n dispatch({ action: \"mutateTableForm\", data: tableOrderFormDefaultValues });\n };\n\n const propsForMobileSortForm = { onMobileSortOrderData, sortFormDefaultValues: formState?.tableForm, onSortFormReset };\n const propsForInboxMobileCards = useInboxMobileCardsData({ table: filteredData, tenantId });\n\n const isInboxLoading = isListLoading || isSearchLoading;\n\n return (\n <div className=\"app-container\">\n {/* Stats */}\n <div className=\"surveyor-dashboard\" style={{ overflowY: \"visible\", marginBottom: \"24px\" }}>\n <div className=\"stats-wrapper\">\n {cards.map((card, idx) => (\n <StatCard key={idx} title={t(card.label)} value={card.count} type={card.type} isLoading={isProgressLoading} icon={card.icon} />\n ))}\n </div>\n </div>\n\n <InboxComposer\n {...{\n isInboxLoading,\n // PropsForInboxLinks,\n ...propsForSearchForm,\n // ...propsForFilterForm,\n ...propsForMobileSortForm,\n propsForInboxTable,\n propsForInboxMobileCards,\n formState,\n countData: listData,\n forceTable: true,\n showSearchOnMobile: true,\n }}\n />\n </div>\n );\n};\n\nexport default Inbox;\n","import React, { Fragment, useState } from \"react\";\nimport {\n Card,\n CardSubHeader,\n StatusTable,\n Row,\n SubmitBar,\n Loader,\n ActionBar,\n CheckBox,\n LinkButton,\n EditIcon,\n GenericFileIcon,\n Menu,\n Toast,\n} from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory, useLocation, useParams } from \"react-router-dom\";\n\n// ─── Constants ───────────────────────────────────────────────────────────────\n\nconst ActionButton = ({ jumpTo, state }) => {\n const history = useHistory();\n function routeTo() {\n history.push(jumpTo, { ...state, isEditing: true });\n }\n return (\n <LinkButton label={<EditIcon style={{ width: \"20px\", height: \"20px\", fill: \"#F47738\" }} />} style={{ margin: 0, padding: 0 }} onClick={routeTo} />\n );\n};\n\nconst checkForNA = (value) => (value !== null && value !== undefined && value !== \"\" ? value : \"N/A\");\n\nconst boolToYesNo = (value, t) => {\n if (value === true || value === \"true\" || String(value).toLowerCase() === \"yes\") return t(\"CORE_COMMON_YES\");\n if (value === false || value === \"false\" || String(value).toLowerCase() === \"no\") return t(\"CORE_COMMON_NO\");\n if (value === \"true\") return t(\"CORE_COMMON_YES\");\n if (value === \"false\") return t(\"CORE_COMMON_NO\");\n};\n/**\n * Robust data extraction for comparison.\n * The API returns { applicationReviewInfo: { newData: { ... }, oldData: { ... } } }\n */\nconst extractReviewData = (searchData, flowState) => {\n const rawData = searchData && Object.keys(searchData).length > 0 ? searchData : flowState?.reviewData || {};\n\n // Navigate through applicationReviewInfo -> newData/oldData\n const reviewWrapper = rawData?.applicationReviewInfo || rawData?.applicationReview || rawData;\n const applicationData = (Array.isArray(reviewWrapper) ? reviewWrapper[0] : reviewWrapper) || {};\n\n return {\n newData: applicationData?.newData || applicationData,\n oldData: applicationData?.oldData || null,\n };\n};\n\nconst ReviewSection = ({ title, fields, newData, oldData, t, jumpTo, state, hideEditButton }) => {\n return (\n <div\n className=\"review-section-wrapper\"\n style={{ marginBottom: \"48px\", background: \"#fff\", borderRadius: \"12px\", border: \"1px solid #EAECF0\", overflow: \"hidden\" }}\n >\n <div\n style={{\n padding: \"20px 24px\",\n background: \"#F9FAFB\",\n borderBottom: \"1px solid #EAECF0\",\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n }}\n >\n <CardSubHeader style={{ margin: 0, fontSize: \"18px\", color: \"#101828\", fontWeight: \"700\" }}>{title}</CardSubHeader>\n {jumpTo && !hideEditButton && <ActionButton jumpTo={jumpTo} state={state} />}\n </div>\n\n <div style={{ padding: \"0 24px\" }}>\n <table style={{ width: \"100%\", borderCollapse: \"collapse\", tableLayout: \"fixed\" }}>\n <thead>\n <tr>\n <th\n style={{\n padding: \"16px 0\",\n textAlign: \"left\",\n color: \"#667085\",\n fontSize: \"12px\",\n fontWeight: \"600\",\n textTransform: \"uppercase\",\n width: \"30%\",\n }}\n >\n {t(\"EKYC_FIELD_NAME\")}\n </th>\n <th\n style={{\n padding: \"16px 0\",\n textAlign: \"left\",\n color: \"#667085\",\n fontSize: \"12px\",\n fontWeight: \"600\",\n textTransform: \"uppercase\",\n width: \"35%\",\n }}\n >\n {t(\"EKYC_EXISTING_INFORMATION\")}\n </th>\n <th\n style={{\n padding: \"16px 0\",\n textAlign: \"left\",\n color: \"#667085\",\n fontSize: \"12px\",\n fontWeight: \"600\",\n textTransform: \"uppercase\",\n width: \"35%\",\n }}\n >\n {t(\"EKYC_PROPOSED_UPDATES\")}\n </th>\n </tr>\n </thead>\n <tbody>\n {fields.map((field, idx) => {\n const valNew = newData?.[field.key];\n const valOld = oldData?.[field.key];\n const normalizeVal = (v) => (v === null || v === undefined || v === \"\" ? \"\" : String(v));\n const isChanged = oldData && valOld !== undefined && normalizeVal(valNew) !== normalizeVal(valOld);\n\n return (\n <tr key={idx} style={{ borderTop: \"1px solid #F2F4F7\" }}>\n <td style={{ padding: \"16px 0\", fontSize: \"14px\", color: \"#344054\", fontWeight: \"500\" }}>{field.preTranslated ? field.label : t(field.label)}</td>\n <td style={{ padding: \"16px 0\", fontSize: \"14px\", color: \"#667085\" }}>\n {field.isBool ? boolToYesNo(valOld, t) : checkForNA(valOld)}\n </td>\n <td\n style={{ padding: \"16px 0\", fontSize: \"14px\", color: isChanged ? \"#1B8B32\" : \"#101828\", fontWeight: isChanged ? \"700\" : \"400\" }}\n >\n <div style={{ display: \"flex\", alignItems: \"center\", gap: \"8px\" }}>\n {field.isBool ? boolToYesNo(valNew, t) : checkForNA(valNew)}\n {isChanged && (\n <span\n style={{\n background: \"#ECFDF3\",\n color: \"#067647\",\n padding: \"2px 8px\",\n borderRadius: \"12px\",\n fontSize: \"10px\",\n fontWeight: \"600\",\n }}\n >\n {t(\"EKYC_CHANGED\")}\n </span>\n )}\n </div>\n </td>\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n </div>\n );\n};\n\nconst Review = () => {\n const { t } = useTranslation();\n const history = useHistory();\n const location = useLocation();\n let { kno, applicationId } = useParams();\n\n const [agree, setAgree] = useState(false);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [showPreview, setShowPreview] = useState(false);\n const [previewUrl, setPreviewUrl] = useState(\"\");\n const [showOptions, setShowOptions] = useState(false);\n const [showToast, setShowToast] = useState(false);\n const [toastData, setToastData] = useState({ error: false, label: \"\" });\n\n const options = [\n { action: t(\"APPROVE\") },\n { action: t(\"REJECT\") }\n ];\n\n const flowState = location.state || {};\n const { edits = {} } = flowState;\n const activeKno = kno || applicationId;\n\n const { aadhaarData = {}, addressDetails: editedAddress = {}, propertyDetails: editedProperty = {}, meterDetails: editedMeter = {} } = edits;\n\n const tenantId = Digit.ULBService.getCurrentTenantId();\n const workflowMutation = Digit.Hooks.ekyc.useEkycWorkflow(tenantId);\n const updateMutation = Digit.Hooks.ekyc.useEkycUpdate(tenantId);\n\n const { data: searchData, isLoading: isSearchLoading } = Digit.Hooks.ekyc.useEkycSearchReview({ kno: activeKno, fetchType: \"REVIEW\" }, tenantId, {\n enabled: !!activeKno,\n });\n\n const userRoles = Digit.SessionStorage.get(\"User\")?.info?.roles?.map((ele) => ele.code) || [];\n const isZRO = userRoles.includes(\"EKYC_ZRO\") || userRoles.includes(\"ZRO\");\n // const isSupervisorOrSurveyorOrVendor = userRoles.includes(\"EKYC_SUPERVISOR\") || userRoles.includes(\"EKYC_SURVEYOR\") || userRoles.includes(\"EKYC_VENDOR\");\n const isSupervisorOrSurveyorOrVendor = userRoles.includes(\"EKYC_SURVEYOR\") || userRoles.includes(\"EKYC_VENDOR\");\n\n // Dynamically resolve the primary EKYC role of the logged-in user\n // const EKYC_ROLE_PRIORITY = [\"EKYC_ZRO\", \"ZRO\", \"EKYC_SUPERVISOR\", \"EKYC_SURVEYOR\", \"EKYC_VENDOR\"];\n // const currentUserRole = EKYC_ROLE_PRIORITY.find((r) => userRoles.includes(r)) || userRoles[0] || \"EMPLOYEE\";\n\n const isStatusView = location.pathname.includes(\"/status/\");\n const hideEditButton = (isSupervisorOrSurveyorOrVendor && !isZRO) || isStatusView;\n\n // ── Data Consolidation (kept for approve/reject submit payloads) ──────────\n const { newData: apiNewData, oldData: apiOldData } = extractReviewData(searchData, flowState);\n\n // Flatten all sub-objects so headerMapping flat keys (kno, mobileNo, meterNumber etc.) are accessible\n const flatNewData = apiNewData ? {\n ...(apiNewData || {}),\n ...(apiNewData?.connectionDetails || {}),\n ...(apiNewData?.addressDetails || {}),\n ...(apiNewData?.propertyInfo || {}),\n ...(apiNewData?.meterDetails || {}),\n } : null;\n const flatOldData = apiOldData ? {\n ...(apiOldData || {}),\n ...(apiOldData?.connectionDetails || {}),\n ...(apiOldData?.addressDetails || {}),\n ...(apiOldData?.propertyInfo || {}),\n ...(apiOldData?.meterDetails || {}),\n } : null;\n\n const prepareConsolidatedData = (data) => {\n if (!data) return null;\n const apiConn = data?.connectionDetails || data || {};\n const apiAddr = data?.addressDetails || data || {};\n const apiProp = data?.propertyInfo || data || {};\n const apiMeter = data?.meterDetails || data || {};\n\n return {\n connection: {\n consumerName:\n apiConn?.consumerName || (apiConn?.firstName ? [apiConn.firstName, apiConn.middleName, apiConn.lastName].filter(Boolean).join(\" \") : null),\n address: apiConn?.address || apiConn?.addressRaw,\n connectionType: apiConn?.connectionType || apiConn?.connectionCategory,\n meterNumber: apiConn?.meterNumber || apiConn?.meterNo,\n phoneNumber: apiConn?.phoneNumber || apiConn?.mobileNo || apiConn?.mobileNumber,\n email: apiConn?.email,\n statusflag: apiConn?.statusflag || apiConn?.statusFlag,\n ekycStatus: apiConn?.ekycStatus,\n knumber: apiConn?.knumber || apiConn?.kno,\n },\n address: {\n fullAddress: apiAddr?.fullAddress || apiAddr?.addressRaw,\n flatHouseNumber: apiAddr?.flatHouseNumber || apiAddr?.flatNo,\n buildingTower: apiAddr?.buildingTower || apiAddr?.building,\n landmark: apiAddr?.landmark,\n pinCode: apiAddr?.pinCode || apiAddr?.pincode,\n ward: apiAddr?.ward || apiAddr?.locality,\n assembly: apiAddr?.assembly,\n gpsValid: apiAddr?.gpsValid,\n latitude: apiAddr?.latitude,\n longitude: apiAddr?.longitude,\n mobileNo: apiAddr?.mobileNo || apiAddr?.mobileNumber,\n whatsappNo: apiAddr?.whatsappNo,\n email: apiAddr?.email,\n noOfPerson: apiAddr?.noOfPerson || apiAddr?.noOfPersons,\n knumber: apiAddr?.knumber || apiAddr?.kno,\n doorPhotoFilestoreId: apiAddr?.doorPhotoFileStoreId || apiAddr?.doorPhotoFilestoreId,\n },\n property: {\n kno: apiProp?.kno,\n pidNumber: apiProp?.pidNumber,\n typeOfConnection: apiProp?.typeOfConnection,\n connectionCategory: apiProp?.connectionCategory,\n userType: apiProp?.userType,\n numberOfFloors: apiProp?.numberOfFloors || apiProp?.noOfFloor,\n tenantName: apiProp?.tenantName,\n tenantMobile: apiProp?.tenantMobile,\n ekycStatus: apiProp?.ekycStatus,\n propertyDocumentFileStoreId: apiProp?.propertyDocumentFileStoreId,\n buildingImageFileStoreId: apiProp?.buildingImageFileStoreId || apiProp?.buildingImageFilestoreId,\n },\n meter: {\n kno: apiMeter?.kno,\n metered: apiMeter?.meterStatus === \"METERED\" || apiMeter?.metered,\n meterNumber: apiMeter?.meterNumber || apiMeter?.meterNo,\n meterMake: apiMeter?.meterMake,\n meterLocationAddress: apiMeter?.meterLocationAddress,\n meterLatitude: apiMeter?.meterLatitude,\n meterLongitude: apiMeter?.meterLongitude,\n workingStatus: apiMeter?.workingStatus,\n lastBillRaised: apiMeter?.lastBillRaised,\n systemMeterId: apiMeter?.systemMeterId,\n meterPhotoFileStoreId: apiMeter?.meterPhotoFileStoreId || apiMeter?.meterPhotoFilestoreId,\n },\n };\n };\n\n const newDataRaw = prepareConsolidatedData(apiNewData);\n const oldDataRaw = prepareConsolidatedData(apiOldData);\n\n\n // Apply edits to newData if present\n const connectionData = {\n ...newDataRaw?.connection,\n consumerName: aadhaarData?.name || newDataRaw?.connection?.consumerName,\n phoneNumber: aadhaarData?.mobileNumber || newDataRaw?.connection?.phoneNumber,\n knumber: newDataRaw?.connection?.knumber || activeKno,\n };\n\n const addressData = {\n ...newDataRaw?.address,\n fullAddress: editedAddress?.fullAddress || newDataRaw?.address?.fullAddress,\n flatHouseNumber: editedAddress?.flatHouseNumber || editedAddress?.flatNo || newDataRaw?.address?.flatHouseNumber,\n buildingTower: editedAddress?.buildingTower || editedAddress?.building || newDataRaw?.address?.buildingTower,\n landmark: editedAddress?.landmark || newDataRaw?.address?.landmark,\n pinCode: editedAddress?.pinCode || editedAddress?.pincode || newDataRaw?.address?.pinCode,\n ward: editedAddress?.ward || newDataRaw?.address?.ward,\n assembly: editedAddress?.assembly || newDataRaw?.address?.assembly,\n gpsValid: editedAddress?.gpsValid !== undefined ? editedAddress.gpsValid : newDataRaw?.address?.gpsValid,\n latitude: editedAddress?.latitude || newDataRaw?.address?.latitude,\n longitude: editedAddress?.longitude || newDataRaw?.address?.longitude,\n mobileNo: editedAddress?.mobileNo || aadhaarData?.mobileNumber || newDataRaw?.address?.mobileNo,\n whatsappNo: editedAddress?.whatsappNo || aadhaarData?.whatsappNumber || newDataRaw?.address?.whatsappNo,\n email: editedAddress?.email || newDataRaw?.address?.email,\n noOfPerson: editedAddress?.noOfPerson || aadhaarData?.noOfPersons || newDataRaw?.address?.noOfPerson,\n knumber: editedAddress?.knumber || newDataRaw?.address?.knumber || activeKno,\n doorPhotoFilestoreId: editedAddress?.doorPhotoFilestoreId || newDataRaw?.address?.doorPhotoFilestoreId,\n };\n\n\n const propertyData = {\n ...newDataRaw?.property,\n kno: newDataRaw?.property?.kno || activeKno,\n pidNumber: editedProperty?.pidNumber || newDataRaw?.property?.pidNumber,\n typeOfConnection: editedProperty?.connectionTypeData?.label || newDataRaw?.property?.typeOfConnection,\n connectionCategory: editedProperty?.connectionCategoryData?.label || newDataRaw?.property?.connectionCategory,\n userType: editedProperty?.userTypeData?.label || newDataRaw?.property?.userType,\n numberOfFloors: editedProperty?.noOfFloorsData?.label || newDataRaw?.property?.numberOfFloors,\n propertyDocumentFileStoreId: editedProperty?.propertyDocumentFileStoreId || newDataRaw?.property?.propertyDocumentFileStoreId,\n };\n\n const meterData = {\n ...newDataRaw?.meter,\n kno: editedMeter?.kno || newDataRaw?.meter?.kno || activeKno,\n metered: editedMeter?.meterStatusData?.value === \"Metered\" || newDataRaw?.meter?.metered,\n meterNumber: newDataRaw?.meter?.meterNumber,\n meterMake: editedMeter?.meterMake || newDataRaw?.meter?.meterMake,\n meterLocationAddress: editedMeter?.meterLocation || newDataRaw?.meter?.meterLocationAddress,\n workingStatus: editedMeter?.workingStatusData?.value === \"Working\" || newDataRaw?.meter?.workingStatus,\n lastBillRaised: editedMeter?.lastBillRaisedData?.value === \"Yes\" || newDataRaw?.meter?.lastBillRaised,\n meterPhotoFileStoreId: editedMeter?.meterPhotoFileStoreId || newDataRaw?.meter?.meterPhotoFileStoreId,\n };\n\n // ── All-fields mapping (headerMapping keys match flat API response keys) ──\n const headerMapping = [\n { key: \"kno\", label: \"KNO\" },\n { key: \"firstName\", label: \"FIRST_NAME\" },\n { key: \"middleName\", label: \"MIDDLE_NAME\" },\n { key: \"lastName\", label: \"LAST_NAME\" },\n { key: \"status\", label: \"STATUS\" },\n { key: \"ekycStatus\", label: \"EKYC_STATUS\" },\n { key: \"zoneName\", label: \"ZONE\" },\n { key: \"zoneCode\", label: \"ZONE_CODE\" },\n { key: \"assembly\", label: \"EKYC_ASSEMBLY\" },\n { key: \"ward\", label: \"WARD\" },\n { key: \"pincode\", label: \"EKYC_PINCODE\" },\n { key: \"addressRaw\", label: \"ADDRESS_RAW\" },\n { key: \"locality\", label: \"EKYC_LOCALITY\" },\n { key: \"subLocality\", label: \"SUB_LOCALITY\" },\n { key: \"flatHouseNumber\", label: \"FLAT_HOUSE_NUMBER\" },\n { key: \"streetName\", label: \"STREET_NAME\" },\n { key: \"landmark\", label: \"EKYC_LANDMARK\" },\n { key: \"city\", label: \"CITY\" },\n { key: \"state\", label: \"STATE\" },\n { key: \"addressType\", label: \"ADDRESS_TYPE\" },\n { key: \"addressProofType\", label: \"ADDRESS_PROOF_TYPE\" },\n { key: \"mobileNo\", label: \"MOBILE_NUMBER\" },\n { key: \"alternateMobileNo\", label: \"ALTERNATE_MOBILE_NUMBER\" },\n { key: \"whatsappNo\", label: \"WHATSAPP_NO\" },\n { key: \"email\", label: \"EMAIL\" },\n { key: \"landlineNo\", label: \"LANDLINE_NO\" },\n { key: \"mrkey\", label: \"MR_KEY\" },\n { key: \"mrcode\", label: \"MR_CODE\" },\n { key: \"areacode\", label: \"AREA_CODE\" },\n { key: \"source\", label: \"SOURCE\" },\n { key: \"submittedAt\", label: \"SUBMITTED_AT\" },\n { key: \"assignedAt\", label: \"ASSIGNED_AT\" },\n { key: \"connectionType\", label: \"CONNECTION_TYPE\" },\n { key: \"Type\", label: \"CONSUMER_TYPE\" },\n { key: \"occupantType\", label: \"OCCUPANT_TYPE\" },\n { key: \"knoCategory\", label: \"KNO_CATEGORY\" },\n { key: \"approvedAt\", label: \"APPROVED_AT\" },\n { key: \"gender\", label: \"GENDER\" },\n { key: \"parentSpouse\", label: \"PARENT_SPOUSE\" },\n { key: \"fatherOrHusbandName\", label: \"FATHER_HUSBUND_NAME\" },\n { key: \"relationship\", label: \"RELATIONSHIP\" },\n { key: \"informantName\", label: \"INFORMANT_NAME\" },\n { key: \"informantRelation\", label: \"INFORMANT_RELATION\" },\n { key: \"informantIs\", label: \"INFORMANT_IS\" },\n { key: \"contactPerson\", label: \"CONTACT_PERSON\" },\n { key: \"relation\", label: \"RELATION\" },\n { key: \"entityName\", label: \"ENTITY_NAME\" },\n { key: \"designation\", label: \"DESIGNATION\" },\n { key: \"department\", label: \"DEPARTMENT\" },\n { key: \"employeeId\", label: \"EMPLOYEE_ID\" },\n { key: \"ownerMobile\", label: \"OWNER_MOBILE\" },\n { key: \"ownerVerificationDone\", label: \"OWNER_VERIFICATION_DONE\", isBool: true },\n { key: \"consentGiven\", label: \"CONSENT_GIVEN\", isBool: true },\n { key: \"proofOfIdentityType\", label: \"PROOF_OF_IDENTITY_TYPE\" },\n { key: \"documentNumber\", label: \"DOCUMENT_NUMBER\" },\n { key: \"noOfPerson\", label: \"NUMBER_OF_PERSON\" },\n { key: \"latitude\", label: \"LATITUDE\" },\n { key: \"longitude\", label: \"LONGITUDE\" },\n { key: \"gpsValid\", label: \"GPS_VALID\", isBool: true },\n { key: \"meterNumber\", label: \"METER_NUMBER\" },\n { key: \"meterMake\", label: \"METER_MAKE\" },\n { key: \"meterStatus\", label: \"METER_STATUS\" },\n { key: \"meterCondition\", label: \"METER_CONDITION\" },\n { key: \"meterLocation\", label: \"METER_LOCATION\" },\n { key: \"meterLocationAddress\", label: \"METER_LOCATION_ADDRESS\" },\n { key: \"workingStatus\", label: \"WORKING_STATUS\" },\n { key: \"sewerConnection\", label: \"SEWER_CONNECTION\", isBool: true },\n { key: \"septicTank\", label: \"SEPTIC_TANK\", isBool: true },\n { key: \"lastBillRaised\", label: \"LAST_BILL_RAISED\", isBool: true },\n { key: \"lastBillReceivedDate\", label: \"LAST_BILL_RECEIVED_DATE\" },\n { key: \"accessToMeter\", label: \"ACCESS_TO_METER\", isBool: true },\n { key: \"systemMeterId\", label: \"SYSTEM_METER_ID\" },\n { key: \"lastBillNotRaisedReason\", label: \"LAST_BILL_NOT_RAISED_REASON\" },\n { key: \"waterConnectionYears\", label: \"WATER_CONNECTION_YEARS\" },\n { key: \"sewerConnectionYears\", label: \"SEWER_CONNECTION_YEARS\" },\n { key: \"pidNumber\", label: \"PID_NUMBER\" },\n { key: \"propertyType\", label: \"PROPERTY_TYPE\" },\n { key: \"subPropertyCategory\", label: \"SUB_PROPERTY_CATEGORY\" },\n { key: \"noOfFloor\", label: \"NO_OF_FLOOR\" },\n { key: \"noOfRooms\", label: \"NO_OF_ROOMS\" },\n { key: \"noOfBeds\", label: \"NO_OF_BEDS\" },\n { key: \"numberOfDwellingUnits\", label: \"NUMBER_OF_DWELLING_UNITS\" },\n { key: \"floorNo\", label: \"FLOOR_NO\" },\n { key: \"userType\", label: \"USER_TYPE\" },\n { key: \"tenantName\", label: \"TENANT_NAME\" },\n { key: \"tenantMobile\", label: \"TENANT_MOBILE\" },\n { key: \"verificationStatus\", label: \"VERIFICATION_STATUS\" },\n { key: \"houseBuiltDuration\", label: \"HOUSE_BUILT_DURATION\" },\n { key: \"surveyorId\", label: \"SURVEYOR_ID\" },\n { key: \"supervisorId\", label: \"SUPERVISOR_ID\" },\n { key: \"vendorId\", label: \"VENDOR_ID\" },\n { key: \"assignmentType\", label: \"ASSIGNMENT_TYPE\" },\n { key: \"assignmentValue\", label: \"ASSIGNMENT_VALUE\" },\n { key: \"assignedTime\", label: \"ASSIGNED_TIME\" },\n { key: \"isSelfAssigned\", label: \"IS_SELF_ASSIGNED\", isBool: true },\n { key: \"modifiedBy\", label: \"MODIFIED_BY\" },\n { key: \"emailId\", label: \"EMAIL_ID\" },\n { key: \"dob\", label: \"DOB\" },\n { key: \"consumerType\", label: \"CONSUMER_TYPE\" },\n { key: \"createdTime\", label: \"CREATED_TIME\" },\n { key: \"lastModifiedTime\", label: \"LAST_MODIFIED_TIME\" },\n { key: \"meterLatitude\", label: \"EKYC_METER_LATITUDE1\" },\n { key: \"meterLongitude\", label: \"EKYC_METER_LONGITUDE1\" },\n ];\n\n const handleDeclaration = () => setAgree(!agree);\n\n const loggedInUserInfo = Digit.UserService.getUser()?.info;\n\n const { data: userData } = Digit.Hooks.useUserSearch(\n tenantId,\n { uuid: [loggedInUserInfo?.uuid] },\n {},\n { enabled: !!loggedInUserInfo?.uuid }\n );\n const supervisorData = userData?.user || [];\n\n const matchedSupervisor = supervisorData?.find(\n (s) => s?.uuid === loggedInUserInfo?.uuid || s?.userName === loggedInUserInfo?.userName\n );\n const supervisorId = matchedSupervisor?.uuid || loggedInUserInfo?.uuid;\n\n const handleReject = async () => {\n const payload = {\n RequestInfo: {\n apiId: \"Rainmaker\",\n ver: \"1.0\",\n msgId: \"message-id\",\n tenantId: tenantId,\n authToken: Digit.UserService.getUser()?.access_token,\n },\n kno: activeKno,\n action: \"REJECTED\",\n remarks: \"Application rejected by reviewer\",\n reviewedBy: supervisorId,\n // role: currentUserRole,\n role: \"ZRO\"\n };\n try {\n const result = await workflowMutation.mutateAsync(payload);\n if (result) {\n setToastData({\n error: true,\n label: t(\"EKYC_APPLICATION_REJECT_SUCCESSFUL\") || \"Application Rejected Successfully\",\n });\n setShowToast(true);\n setTimeout(() => {\n history.push(\"/digit-ui/employee/ekyc/inbox\");\n }, 2000);\n }\n } catch (err) {\n console.error(\"Reject Error:\", err);\n const errMsg =\n err?.message ||\n err?.response?.data?.message ||\n err?.response?.data?.Errors?.[0]?.message ||\n err?.Errors?.[0]?.message ||\n t(\"EKYC_REJECT_ERROR\") || \"Reject failed. Please try again.\";\n setToastData({ error: true, label: errMsg });\n setShowToast(true);\n }\n };\n\n const handleApprove = async () => {\n const payload = {\n RequestInfo: {\n apiId: \"Rainmaker\",\n ver: \"1.0\",\n msgId: \"message-id\",\n tenantId: tenantId,\n authToken: Digit.UserService.getUser()?.access_token,\n },\n kno: activeKno,\n action: \"APPROVED\",\n remarks: \"All documents verified\",\n reviewedBy: supervisorId,\n // role: currentUserRole,\n role: \"ZRO\"\n };\n try {\n const result = await workflowMutation.mutateAsync(payload);\n if (result) {\n setToastData({\n error: false,\n label: t(\"EKYC_APPLICATION_APPROVE_SUCCESSFUL\") || \"Application Approved Successfully\",\n });\n setShowToast(true);\n setTimeout(() => {\n history.push(\"/digit-ui/employee/ekyc/inbox\");\n }, 2000);\n }\n } catch (err) {\n console.error(\"Approve Error:\", err);\n const errMsg =\n err?.response?.data?.Errors?.[0]?.message ||\n err?.Errors?.[0]?.message ||\n err?.message ||\n t(\"EKYC_APPROVE_ERROR\") || \"Approve failed. Please try again.\";\n setToastData({ error: true, label: errMsg });\n setShowToast(true);\n }\n };\n\n const handleFinalSubmit = async () => {\n setIsSubmitting(true);\n try {\n const payload = {\n kno: activeKno,\n tenantId: tenantId,\n newData: {\n connectionDetails: connectionData,\n addressDetails: addressData,\n propertyInfo: propertyData,\n meterDetails: meterData,\n },\n };\n\n const result = await updateMutation.mutateAsync(payload);\n if (result) {\n history.push(\"/digit-ui/employee/ekyc/response\", { success: true, result });\n }\n } catch (err) {\n console.error(\"Submit Error:\", err);\n } finally {\n setIsSubmitting(false);\n }\n };\n\n const handleViewDocument = async (fileStoreId) => {\n if (!fileStoreId) return;\n try {\n const response = await Digit.UploadServices.FileFetchbyid(fileStoreId, tenantId);\n if (response?.data) {\n const blobUrl = URL.createObjectURL(response.data);\n setPreviewUrl(blobUrl);\n setShowPreview(true);\n }\n } catch (error) {\n console.error(\"Error fetching document:\", error);\n }\n };\n\n const handleMenuSelect = (option) => {\n setShowOptions(false); // close menu\n if (option.action === t(\"APPROVE\")) {\n handleApprove();\n } else if (option.action === t(\"REJECT\")) {\n handleReject();\n }\n };\n\n if (isSearchLoading || isSubmitting) return <Loader />;\n\n\n return (\n <Fragment>\n <Card className=\"overflow-y-scroll\">\n {/* ── All Details (from headerMapping) ──────────────────────── */}\n <ReviewSection\n title={t(\"EKYC_ALL_DETAILS\") || \"All Details\"}\n fields={headerMapping}\n newData={flatNewData}\n oldData={flatOldData}\n t={t}\n hideEditButton={true}\n />\n\n {/* ── 5. Documents ────────────────────────────────────────────── */}\n <div style={{ marginTop: \"40px\" }}>\n <CardSubHeader style={{ marginBottom: \"20px\" }}>{t(\"EKYC_DOCUMENTS\")}</CardSubHeader>\n <StatusTable style={{ maxWidth: \"600px\" }}>\n <Row\n label={t(\"EKYC_DOOR_PHOTO\")}\n text={addressData.doorPhotoFilestoreId ? t(\"EKYC_PHOTO_AVAILABLE\") : t(\"CS_NA\")}\n actionButton={\n addressData.doorPhotoFilestoreId && (\n <div onClick={() => handleViewDocument(addressData.doorPhotoFilestoreId)}>\n <GenericFileIcon style={{ cursor: \"pointer\", fill: \"#F47738\" }} />\n </div>\n )\n }\n />\n <Row\n label={t(\"EKYC_METER_PHOTO\")}\n text={meterData.meterPhotoFileStoreId ? t(\"EKYC_PHOTO_AVAILABLE\") : t(\"CS_NA\")}\n actionButton={\n meterData.meterPhotoFileStoreId && (\n <div onClick={() => handleViewDocument(meterData.meterPhotoFileStoreId)}>\n <GenericFileIcon style={{ cursor: \"pointer\", fill: \"#F47738\" }} />\n </div>\n )\n }\n />\n <Row\n label={t(\"EKYC_BUILDING_IMAGE\")}\n text={propertyData.buildingImageFileStoreId ? t(\"EKYC_PHOTO_AVAILABLE\") : t(\"CS_NA\")}\n actionButton={\n propertyData.buildingImageFileStoreId && (\n <div onClick={() => handleViewDocument(propertyData.buildingImageFileStoreId)}>\n <GenericFileIcon style={{ cursor: \"pointer\", fill: \"#F47738\" }} />\n </div>\n )\n }\n />\n <Row\n label={t(\"EKYC_PROPERTY_DOCUMENTS\")}\n text={propertyData.propertyDocumentFileStoreId ? t(\"EKYC_DOCS_AVAILABLE\") : t(\"CS_NA\")}\n actionButton={\n propertyData.propertyDocumentFileStoreId && (\n <div onClick={() => handleViewDocument(propertyData.propertyDocumentFileStoreId)}>\n <GenericFileIcon style={{ cursor: \"pointer\", fill: \"#F47738\" }} />\n </div>\n )\n }\n />\n </StatusTable>\n </div>\n\n {!hideEditButton && (\n <div style={{ marginTop: \"40px\", paddingTop: \"30px\", borderTop: \"1px solid #EAECF0\" }}>\n <CheckBox\n id=\"agreeDeclaration\"\n name=\"agreeDeclaration\"\n label={<span style={{ fontSize: \"16px\", color: \"#344054\" }}>{t(\"EKYC_FINAL_DECLARATION\")}</span>}\n onChange={handleDeclaration}\n checked={agree}\n />\n </div>\n )}\n\n {/* <ActionBar>\n <SubmitBar label={t(\"EKYC_REJECT\")} onSubmit={handleReject} disabled={!agree} />\n <SubmitBar label={t(\"EKYC_APPROVE\")} onSubmit={handleApprove} disabled={!agree} />\n <SubmitBar label={t(\"EKYC_SUBMIT_APPLICATION\")} onSubmit={handleFinalSubmit} disabled={!agree} />\n </ActionBar> */}\n {!hideEditButton && (\n <ActionBar>\n <SubmitBar\n label={t(\"TAKE_ACTION_FOR_APPROVE_REJECT\")}\n onSubmit={() => setShowOptions((prev) => !prev)}\n disabled={!agree}\n />\n {showOptions && (\n <Menu\n options={options}\n optionKey={\"action\"}\n t={t}\n onSelect={handleMenuSelect}\n style={{\n color: \"#FFFFFF\",\n fontSize: \"18px\",\n }}\n />\n )}\n </ActionBar>\n )}\n </Card>\n\n {/* ── Document Preview Modal ────────────────────────────────────── */}\n {showPreview && (\n <div\n style={{\n position: \"fixed\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n backgroundColor: \"rgba(0,0,0,0.7)\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n zIndex: 10000,\n }}\n >\n <div\n style={{\n position: \"relative\",\n backgroundColor: \"#fff\",\n padding: \"30px\",\n borderRadius: \"12px\",\n maxWidth: \"600px\",\n width: \"100%\",\n maxHeight: \"70vh\",\n overflow: \"auto\",\n boxShadow: \"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)\",\n }}\n >\n <div\n onClick={() => setShowPreview(false)}\n style={{\n position: \"absolute\",\n top: \"10px\",\n right: \"10px\",\n cursor: \"pointer\",\n fontWeight: \"bold\",\n fontSize: \"20px\",\n color: \"#333\",\n background: \"#eee\",\n width: \"30px\",\n height: \"30px\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n borderRadius: \"50%\",\n }}\n >\n ×\n </div>\n <img\n src={previewUrl}\n alt=\"Document Preview\"\n style={{ maxWidth: \"100%\", height: \"auto\", display: \"block\" }}\n onError={(e) => {\n e.target.style.display = \"none\";\n e.target.nextSibling.style.display = \"block\";\n }}\n />\n <div style={{ display: \"none\", padding: \"40px\", textAlign: \"center\" }}>\n <p>{t(\"EKYC_DOCUMENT_PREVIEW_NOT_AVAILABLE\")}</p>\n <LinkButton label={t(\"EKYC_OPEN_IN_NEW_TAB\")} onClick={() => window.open(previewUrl, \"_blank\")} />\n </div>\n </div>\n </div>\n )}\n {showToast && (\n <Toast\n error={toastData.error}\n label={toastData.label}\n onClose={() => setShowToast(false)}\n />\n )}\n </Fragment>\n );\n};\n\nexport default Review;\n\n\n","import React from \"react\";\nimport { UploadFile, CheckBox, Dropdown } from \"@djb25/digit-ui-react-components\";\n\nconst AadhaarVerificationConfig = (t, formData = {}, uploadFile, setDocumentId, documentId) => {\n const consumerType = formData?.consumerType?.name || formData?.consumerType;\n const occupantType = formData?.occupantType?.name || formData?.occupantType;\n const informantIsConsumer = formData?.informantIsConsumer ?? true;\n\n const fields = [\n {\n label: t(\"Consumer Type\"),\n isMandatory: true,\n type: \"custom\",\n key: \"consumerType\",\n populators: {\n name: \"consumerType\",\n component: (props) => (\n <Dropdown\n option={[{ name: \"Individual\" }, { name: \"Govt\" }, { name: \"Company_Society_Org\" }]}\n optionKey=\"name\"\n selected={props.value}\n select={props.onChange}\n />\n ),\n },\n },\n {\n label: t(\"Occupant Type\"),\n isMandatory: true,\n type: \"custom\",\n key: \"occupantType\",\n populators: {\n name: \"occupantType\",\n component: (props) => (\n <Dropdown\n option={[{ name: \"Self\" }, { name: \"Tenanted\" }]}\n optionKey=\"name\"\n selected={props.value}\n select={props.onChange}\n />\n ),\n },\n },\n {\n label: t(\"Category Type\"),\n isMandatory: true,\n type: \"custom\",\n key: \"categoryType\",\n populators: {\n name: \"categoryType\",\n component: (props) => (\n <Dropdown\n option={[{ name: \"Bulk\" }, { name: \"Non-Bulk\" }]}\n optionKey=\"name\"\n selected={props.value}\n select={props.onChange}\n />\n ),\n },\n },\n {\n label: t(\"First Name\"),\n isMandatory: true,\n type: \"text\",\n populators: {\n name: \"firstName\",\n validation: { required: true },\n },\n },\n {\n label: t(\"Middle Name\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"middleName\",\n },\n },\n {\n label: t(\"Last Name\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"lastName\",\n },\n },\n {\n label: t(\"Gender\"),\n isMandatory: false,\n type: \"custom\",\n key: \"gender\",\n populators: {\n name: \"gender\",\n component: (props) => (\n <Dropdown\n option={[{ name: \"Male\" }, { name: \"Female\" }, { name: \"Others\" }, { name: \"Not prefer to say\" }]}\n optionKey=\"name\"\n selected={props.value}\n select={props.onChange}\n />\n ),\n },\n },\n {\n label: t(\"Parent/Spouse Name\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"parentSpouseName\",\n },\n },\n {\n label: t(\"Mobile\"),\n isMandatory: true,\n type: \"text\",\n populators: {\n name: \"mobile\",\n validation: {\n required: true,\n pattern: /^[6-9]\\d{9}$/,\n },\n error: t(\"Invalid mobile number\"),\n },\n },\n {\n label: t(\"WhatsApp\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"whatsapp\",\n },\n },\n {\n label: t(\"Email\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"email\",\n validation: {\n pattern: /^[a-zA-Z0-9+_.-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z0-9.-]+$/,\n },\n error: t(\"Invalid email address\"),\n },\n },\n {\n label: t(\"No. of Residents\"),\n isMandatory: true,\n type: \"text\",\n populators: {\n name: \"residents\",\n validation: {\n required: true,\n min: 1,\n },\n },\n },\n {\n label: t(\"Type of Identity\"),\n isMandatory: true,\n type: \"custom\",\n key: \"identityType\",\n populators: {\n name: \"identityType\",\n component: (props) => (\n <Dropdown\n option={[{ name: \"Aadhaar Card\" }, { name: \"Driving License\" }, { name: \"Passport\" }, { name: \"Voter ID\" }]}\n optionKey=\"name\"\n selected={props.value}\n select={props.onChange}\n />\n ),\n },\n },\n {\n label: t(\"Proof of Identity\"),\n isMandatory: false,\n type: \"custom\",\n key: \"idFile\",\n populators: {\n name: \"idFile\",\n component: (props) => (\n <UploadFile\n onUpload={(e) => uploadFile(e, props.onChange)}\n onDelete={() => {\n props.onChange(null);\n setDocumentId(null);\n }}\n message={props.value ? t(\"Uploaded\") : t(\"No file selected\")}\n />\n ),\n },\n },\n {\n label: t(\"Document Number\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"documentNumber\",\n },\n },\n {\n label: t(\"Informant Is Consumer\"),\n isMandatory: false,\n type: \"custom\",\n key: \"informantIsConsumer\",\n populators: {\n name: \"informantIsConsumer\",\n component: (props) => (\n <CheckBox\n label={t(\"Yes, the informant is the consumer\")}\n checked={props.value ?? true}\n onChange={(e) => props.onChange(e.target.checked)}\n />\n ),\n },\n },\n ];\n\n // Informant conditional fields\n if (!informantIsConsumer) {\n fields.push(\n {\n label: t(\"Informant Name\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"informantName\",\n },\n },\n {\n label: t(\"Informant Relation\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"informantRelation\",\n },\n }\n );\n }\n\n // Tenant conditional fields\n if (occupantType === \"Tenanted\") {\n fields.push({\n label: t(\"Document Proof\"),\n isMandatory: false,\n type: \"custom\",\n key: \"documentProof\",\n populators: {\n name: \"documentProof\",\n component: (props) => (\n <UploadFile\n onUpload={(e) => uploadFile(e, props.onChange)}\n onDelete={() => {\n props.onChange(null);\n setDocumentId(null);\n }}\n message={props.value ? t(\"Uploaded\") : t(\"No file selected\")}\n />\n ),\n },\n });\n\n if (!documentId) {\n fields.push(\n {\n label: t(\"Owner Mobile\"),\n isMandatory: true,\n type: \"text\",\n populators: {\n name: \"ownerMobile\",\n validation: {\n required: true,\n pattern: /^[6-9]\\d{9}$/,\n },\n },\n },\n {\n label: t(\"Tenant Verification\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"tenantVerification\",\n },\n }\n );\n }\n }\n\n // Govt conditional fields\n if (consumerType === \"Govt\") {\n fields.push(\n {\n label: t(\"Designation\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"designation\",\n },\n },\n {\n label: t(\"Department\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"department\",\n },\n },\n {\n label: t(\"Employee ID\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"employeeId\",\n },\n }\n );\n }\n\n // Company / Society / Org conditional fields\n if (consumerType === \"Company_Society_Org\") {\n fields.push(\n {\n label: t(\"Entity Name\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"entityName\",\n },\n },\n {\n label: t(\"Contact Person\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"contactPerson\",\n },\n }\n );\n }\n\n // Consent checkbox field\n fields.push({\n label: t(\"Consent\"),\n isMandatory: true,\n type: \"custom\",\n key: \"consent\",\n populators: {\n name: \"consent\",\n validation: { required: true },\n component: (props) => (\n <CheckBox\n label={t(\"I hereby consent to verify my Aadhaar details.\")}\n checked={props.value ?? false}\n onChange={(e) => props.onChange(e.target.checked)}\n />\n ),\n },\n });\n\n return [\n {\n head: t(\"EKYC_CONSUMER_CONNECTION\"),\n body: fields,\n },\n ];\n};\n\nexport default AadhaarVerificationConfig;\n","import React, { useState, Fragment, useEffect } from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport { Toast, Loader, FormComposer } from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\nimport AadhaarVerificationConfig from \"../config/AadhaarVerificationConfig\";\n\nconst AadhaarVerification = ({ config, onSelect, formData }) => {\n const { t } = useTranslation();\n const location = useLocation();\n const flowState = location.state || {};\n\n const tenantId = Digit.ULBService.getCurrentTenantId();\n const queryParams = new URLSearchParams(location.search);\n const urlKno = queryParams.get(\"kno\");\n const searchKno =\n urlKno ||\n flowState?.kNumber ||\n flowState?.kno ||\n formData?.kNumber ||\n formData?.kno ||\n sessionStorage.getItem(\"EKYC_K_NUMBER\") ||\n \"\";\n\n const { isLoading, data: searchData } = Digit.Hooks.ekyc.useSearchConnection(\n { tenantId, details: { kno: searchKno, fetchType: \"CONNECTION\" } },\n { enabled: !!searchKno, cacheTime: 0 }\n );\n\n const updateMutation = Digit.Hooks.ekyc.useEkycUpdate(tenantId);\n\n const savedData = formData?.aadhaarVerification || {};\n\n // 🔹 STATES\n const [documentId, setDocumentId] = useState(savedData.documentId || null);\n const [documentProof, setDocumentProof] = useState(savedData.documentProof || null);\n const [toast, setToast] = useState(null);\n const [isDataLoaded, setIsDataLoaded] = useState(false);\n const [canSubmit, setCanSubmit] = useState(false);\n\n const [defaultValues, setDefaultValues] = useState(() => ({\n kno: savedData.kno || searchKno || \"\",\n consumerType: savedData.consumerType ? { name: savedData.consumerType } : null,\n occupantType: savedData.occupantType ? { name: savedData.occupantType } : null,\n categoryType: savedData.categoryType ? { name: savedData.categoryType } : null,\n firstName: savedData.firstName || \"\",\n middleName: savedData.middleName || \"\",\n lastName: savedData.lastName || \"\",\n gender: savedData.gender ? { name: savedData.gender } : null,\n parentSpouseName: savedData.parentSpouseName || \"\",\n mobile: savedData.mobile || \"\",\n whatsapp: savedData.whatsapp || \"\",\n email: savedData.email || \"\",\n residents: savedData.residents || \"\",\n identityType: savedData.identityType ? { name: savedData.identityType } : null,\n documentNumber: savedData.documentNumber || \"\",\n informantIsConsumer: savedData.informantIsConsumer ?? true,\n informantName: savedData.informantName || \"\",\n informantRelation: savedData.informantRelation || \"\",\n documentId: savedData.documentId || null,\n documentProof: savedData.documentProof || null,\n idFile: savedData.idFile || null,\n ownerMobile: savedData.ownerMobile || \"\",\n tenantVerification: savedData.tenantVerification || \"\",\n designation: savedData.designation || \"\",\n department: savedData.department || \"\",\n employeeId: savedData.employeeId || \"\",\n entityName: savedData.entityName || \"\",\n contactPerson: savedData.contactPerson || \"\",\n consent: savedData.consent || false,\n }));\n\n const [localFormData, setLocalFormData] = useState(defaultValues);\n\n const extractApplicationData = (searchData) => {\n if (!searchData) return null;\n const reviewWrapper =\n searchData?.applicationReviewInfo || searchData?.applicationReview || searchData;\n const applicationData = (Array.isArray(reviewWrapper) ? reviewWrapper[0] : reviewWrapper) || {};\n return applicationData?.newData || applicationData;\n };\n\n useEffect(() => {\n const appData = extractApplicationData(searchData);\n const rawData = appData || formData?.connectionDetails;\n const details = rawData?.connectionDetails || rawData || {};\n const addrDetails = rawData?.addressDetails || {};\n\n if (details && Object.keys(details).length > 0 && !isDataLoaded) {\n let fName = \"\";\n let mName = \"\";\n let lName = \"\";\n\n if (details.firstName) {\n fName = details.firstName;\n mName = details.middleName || \"\";\n lName = details.lastName || \"\";\n } else if (details.consumerName) {\n const parts = details.consumerName.trim().split(/\\s+/);\n fName = parts[0] || \"\";\n if (parts.length === 2) lName = parts[1];\n if (parts.length > 2) {\n mName = parts.slice(1, -1).join(\" \");\n lName = parts[parts.length - 1];\n }\n }\n\n const updatedDefaults = {\n kno: savedData.kno || searchKno || \"\",\n consumerType: savedData.consumerType\n ? { name: savedData.consumerType }\n : details.consumerType\n ? { name: details.consumerType }\n : null,\n occupantType: savedData.occupantType\n ? { name: savedData.occupantType }\n : details.occupantType\n ? { name: details.occupantType }\n : null,\n categoryType: savedData.categoryType ? { name: savedData.categoryType } : null,\n firstName: savedData.firstName || fName,\n middleName: savedData.middleName || mName,\n lastName: savedData.lastName || lName,\n gender: savedData.gender\n ? { name: savedData.gender }\n : details.gender\n ? { name: details.gender }\n : null,\n parentSpouseName: savedData.parentSpouseName || details.parentSpouse || \"\",\n mobile: savedData.mobile || details.phoneNumber || addrDetails.mobileNo || \"\",\n whatsapp: savedData.whatsapp || addrDetails.whatsappNo || \"\",\n email: savedData.email || details.email || addrDetails.email || \"\",\n residents: savedData.residents || (addrDetails.noOfPerson ? String(addrDetails.noOfPerson) : \"\"),\n identityType: savedData.identityType ? { name: savedData.identityType } : null,\n documentNumber: savedData.documentNumber || \"\",\n informantIsConsumer: savedData.informantIsConsumer ?? true,\n informantName: savedData.informantName || details.informantName || \"\",\n informantRelation: savedData.informantRelation || details.informantRelation || \"\",\n documentId: savedData.documentId || details.documentNumber || null,\n documentProof: savedData.documentProof || null,\n idFile: savedData.idFile || null,\n ownerMobile: savedData.ownerMobile || \"\",\n tenantVerification: savedData.tenantVerification || \"\",\n designation: savedData.designation || \"\",\n department: savedData.department || \"\",\n employeeId: savedData.employeeId || \"\",\n entityName: savedData.entityName || \"\",\n contactPerson: savedData.contactPerson || \"\",\n consent: savedData.consent || false,\n };\n\n setDefaultValues(updatedDefaults);\n setLocalFormData(updatedDefaults);\n if (updatedDefaults.documentId) {\n setDocumentId(updatedDefaults.documentId);\n }\n if (updatedDefaults.documentProof) {\n setDocumentProof(updatedDefaults.documentProof);\n }\n setIsDataLoaded(true);\n }\n }, [searchData, formData?.connectionDetails, isDataLoaded]);\n\n // 🔹 FILE UPLOAD\n const handleUploadProof = async (e, onChange) => {\n const file = e.target.files[0];\n if (!file) return;\n\n if (file.size > 2000000) {\n setToast({ type: \"error\", message: t(\"Max size 2MB exceeded\") });\n return;\n }\n\n try {\n const res = await Digit.UploadServices.Filestorage(\"EKYC\", file, tenantId);\n const fileStoreId = res?.data?.files?.[0]?.fileStoreId;\n if (fileStoreId) {\n onChange(file.name);\n setDocumentProof(file.name);\n setDocumentId(fileStoreId);\n setToast({ type: \"success\", message: t(\"Upload successful\") });\n }\n } catch {\n setToast({ type: \"error\", message: t(\"Upload failed\") });\n }\n };\n\n const onFormValueChange = (setValue, data) => {\n // Avoid updating states on every keypress unless they affect conditional visibility\n const consumerTypeChanged =\n (data?.consumerType?.name || data?.consumerType) !==\n (localFormData?.consumerType?.name || localFormData?.consumerType);\n const occupantTypeChanged =\n (data?.occupantType?.name || data?.occupantType) !==\n (localFormData?.occupantType?.name || localFormData?.occupantType);\n const informantIsConsumerChanged = data?.informantIsConsumer !== localFormData?.informantIsConsumer;\n\n if (consumerTypeChanged || occupantTypeChanged || informantIsConsumerChanged) {\n setLocalFormData((prev) => ({\n ...prev,\n ...data,\n }));\n }\n\n // Determine validation\n const knoVal = data?.kno || searchKno;\n const consumerTypeVal = data?.consumerType;\n const occupantTypeVal = data?.occupantType;\n const categoryTypeVal = data?.categoryType;\n const firstNameVal = data?.firstName;\n const mobileVal = data?.mobile;\n const residentsVal = data?.residents;\n const consentVal = data?.consent;\n const docId = data?.documentId || documentId;\n const ownerMobileVal = data?.ownerMobile;\n\n let valid = true;\n if (!knoVal) valid = false;\n if (!consumerTypeVal) valid = false;\n if (!occupantTypeVal) valid = false;\n if (!categoryTypeVal) valid = false;\n if (!firstNameVal) valid = false;\n if (!mobileVal || !/^[6-9]\\d{9}$/.test(mobileVal)) valid = false;\n if (!residentsVal || Number(residentsVal) <= 0) valid = false;\n if (occupantTypeVal?.name === \"Tenanted\" && !docId && !ownerMobileVal) valid = false;\n if (!consentVal) valid = false;\n\n if (valid !== canSubmit) {\n setCanSubmit(valid);\n }\n };\n\n const onSubmit = async (data) => {\n const submitData = {\n kno: data.kno || searchKno,\n consumerType: data.consumerType?.name || data.consumerType,\n occupantType: data.occupantType?.name || data.occupantType,\n categoryType: data.categoryType?.name || data.categoryType,\n consumerName: data.consumerName || `${data.firstName || \"\"} ${data.middleName || \"\"} ${data.lastName || \"\"}`.trim(),\n firstName: data.firstName,\n middleName: data.middleName,\n lastName: data.lastName,\n gender: data.gender?.name || data.gender,\n parentSpouseName: data.parentSpouseName,\n relation: data.relation || savedData.relation || \"\",\n mobile: data.mobile,\n whatsapp: data.whatsapp,\n email: data.email,\n residents: data.residents,\n documentId: documentId,\n documentProof: documentProof,\n ownerMobile: data.ownerMobile,\n tenantVerification: data.tenantVerification,\n designation: data.designation,\n department: data.department,\n employeeId: data.employeeId,\n landline: data.landline || savedData.landline || \"\",\n entityRelation: data.entityRelation || savedData.entityRelation || \"\",\n contactPerson: data.contactPerson,\n entityName: data.entityName,\n idProof: data.identityType?.name || data.identityType,\n idNumber: data.documentNumber,\n consent: data.consent,\n informantIsConsumer: data.informantIsConsumer ?? true,\n informantName: data.informantName,\n informantRelation: data.informantRelation,\n };\n\n try {\n await updateMutation.mutateAsync({\n RequestInfo: {},\n updateType: \"CONSUMER\",\n ...submitData,\n });\n setToast({ type: \"success\", message: t(\"Data updated successfully!\") });\n onSelect(config.key, submitData);\n } catch (error) {\n setToast({ type: \"error\", message: t(\"Failed to update consumer details\") });\n }\n };\n\n if (isLoading) {\n return <Loader />;\n }\n\n const Config = AadhaarVerificationConfig(t, localFormData, handleUploadProof, setDocumentId, documentId);\n\n return (\n <Fragment>\n <FormComposer\n key={isDataLoaded ? \"loaded\" : \"loading\"}\n isDisabled={!canSubmit}\n label={t(\"ES_COMMON_CONTINUE\")}\n config={Config.map((item) => ({\n ...item,\n isCollapsible: true,\n isDefaultOpen: true,\n }))}\n onSubmit={onSubmit}\n defaultValues={defaultValues}\n onFormValueChange={onFormValueChange}\n noCard={false}\n submitInForm={true}\n />\n {toast && (\n <Toast\n error={toast.type === \"error\"}\n label={toast.message}\n onClose={() => setToast(null)}\n />\n )}\n </Fragment>\n );\n};\n\nexport default AadhaarVerification;\n","import AadhaarVerification from \"../components/AadhaarVerification\";\n\nexport const ekycConfig = [\n {\n body: [\n {\n route: \"consumer-details\",\n component: AadhaarVerification,\n key: \"aadhaarVerification\",\n texts: {\n header: \"EKYC_CONSUMER_CONNECTION\",\n submitBarLabel: \"COMMON_SAVE_NEXT\",\n },\n timeLine: [\n {\n currentStep: 1,\n actions: \"EKYC_CONSUMER_CONNECTION\",\n },\n ],\n },\n {\n route: \"address-details\",\n component: \"AddressDetails\",\n key: \"addressDetails\",\n doorImage: true,\n showMapActualLocation: false,\n texts: {\n header: \"EKYC_ADDRESS_DETAILS\",\n submitBarLabel: \"COMMON_SAVE_NEXT\",\n },\n timeLine: [\n {\n currentStep: 2,\n actions: \"EKYC_ADDRESS_DETAILS\",\n },\n ],\n },\n {\n route: \"property-info\",\n component: \"PropertyInfo\",\n key: \"propertyDetails\",\n texts: {\n header: \"EKYC_PROPERTY_INFO\",\n submitBarLabel: \"COMMON_SAVE_NEXT\",\n },\n timeLine: [\n {\n currentStep: 3,\n actions: \"EKYC_PROPERTY_INFO\",\n },\n ],\n },\n {\n route: \"meter-details\",\n component: \"MeterDetails\",\n key: \"meterDetails\",\n texts: {\n header: \"EKYC_METER_DETAILS\",\n submitBarLabel: \"COMMON_SAVE_NEXT\",\n },\n timeLine: [\n {\n currentStep: 4,\n actions: \"EKYC_METER_DETAILS\",\n },\n ],\n },\n ],\n },\n];\n","import React, { useEffect, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n// import { useQueryClient } from \"react-query\";\nimport { Redirect, Route, Switch, useHistory, useLocation, useRouteMatch } from \"react-router-dom\";\nimport { VerticalTimeline } from \"@djb25/digit-ui-react-components\";\nimport { ekycConfig } from \"../../config/config\";\n\nconst EKYCForm = ({ path: passedPath }) => {\n // const queryClient = useQueryClient();\n const match = useRouteMatch();\n const { t } = useTranslation();\n const location = useLocation();\n const { pathname } = location;\n const history = useHistory();\n\n let config = [];\n const [params, setParams] = Digit.Hooks.useSessionStorage(\"EKYC_CREATE\", {});\n\n useEffect(() => {\n if (location.state && Object.keys(location.state).length > 0) {\n const { edits, ...rest } = location.state;\n setParams({ ...params, ...rest, ...edits });\n }\n }, [location.state]);\n\n const goNext = (skipStep, index, isAddMultiple, key) => {\n let currentPath = pathname.split(\"/\").pop();\n let routeObj = config.find((routeObj) => (key ? routeObj.key === key : routeObj.route === currentPath));\n if (!routeObj) routeObj = config.find((routeObj) => routeObj.route === currentPath);\n\n let nextStep = null;\n const currentIndex = config.findIndex((c) => c.route === routeObj.route);\n if (currentIndex > -1 && currentIndex < config.length - 1) {\n nextStep = config[currentIndex + 1].route;\n }\n\n let redirectWithHistory = history.push;\n if (skipStep) {\n redirectWithHistory = history.replace;\n }\n\n const base = passedPath || match.path.split(\"/\").slice(0, -1).join(\"/\");\n if (nextStep === null) {\n return redirectWithHistory(`${base}/review`, { ...params, edits: params });\n }\n\n redirectWithHistory(`${base}/${nextStep}`, { ...params });\n };\n\n function handleSelect(key, data, skipStep, index, isAddMultiple = false, silent = false) {\n setParams((prev) => ({ ...prev, [key]: { ...params[key], ...data } }));\n if (!silent) {\n goNext(skipStep, index, isAddMultiple, key);\n }\n }\n\n // const onSuccess = () => {\n // clearParams();\n // queryClient.invalidateQueries(\"EKYC_CREATE\");\n // };\n\n ekycConfig.forEach((obj) => {\n config = config.concat(obj.body);\n });\n\n config.indexRoute = \"consumer-details\";\n\n const formStepRoutes = config.map((c) => c.route);\n const isFormStep = formStepRoutes.some((route) => pathname.includes(route));\n\n const sectionRefs = useRef({});\n\n useEffect(() => {\n if (isFormStep) {\n const currentRoute = pathname.split(\"/\").pop();\n if (sectionRefs.current[currentRoute]) {\n sectionRefs.current[currentRoute].scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n }\n }\n }, [pathname, isFormStep]);\n\n return (\n <React.Fragment>\n <div className=\"employee-form-section-wrapper\">\n <VerticalTimeline config={config} showFinalStep={true} />\n <div className=\"employee-form-section\">\n <Switch>\n <Route path={formStepRoutes.map((route) => `${passedPath || match.path.split(\"/\").slice(0, -1).join(\"/\")}/${route}`)}>\n <div className=\"single-page-form-container\">\n {config.map((routeObj, index) => {\n const { component } = routeObj;\n const Component = typeof component === \"string\" ? Digit.ComponentRegistryService.getComponent(component) : component;\n\n return (\n <div key={index} ref={(el) => (sectionRefs.current[routeObj.route] = el)} className=\"form-section-unit\">\n <Component\n config={{ ...routeObj, isCollapsible: true, defaultOpen: true }}\n onSelect={handleSelect}\n t={t}\n formData={params}\n // formData={{ ...params, address: params.addressDetails }}\n />\n </div>\n );\n })}\n </div>\n </Route>\n <Route>\n <Redirect to={`${passedPath || match.path.split(\"/\").slice(0, -1).join(\"/\")}/${config.indexRoute}`} />\n </Route>\n </Switch>\n </div>\n </div>\n </React.Fragment>\n );\n};\n\nexport default EKYCForm;\n","import React from \"react\";\nimport { Card } from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\nimport Dashboard from \"./Dashboard\";\n\nconst VendorCardSkeleton = () => {\n return (\n <div className=\"vendor-perf-card vendor-perf-card-skeleton\">\n {/* Header */}\n <div className=\"vendor-card-header\">\n <div className=\"vendor-title\">\n <div className=\"skeleton skeleton-icon\" />\n\n <div className=\"skeleton-title-wrapper\">\n <div className=\"skeleton skeleton-title\" />\n <div className=\"skeleton skeleton-subtitle\" />\n </div>\n </div>\n\n <div className=\"skeleton skeleton-kno-badge\" />\n </div>\n\n {/* Progress */}\n <div className=\"progress-section\">\n <div className=\"skeleton skeleton-progress-bar\" />\n\n <div className=\"progress-label\">\n <div className=\"skeleton skeleton-progress-label\" />\n <div className=\"skeleton skeleton-progress-value\" />\n </div>\n </div>\n\n {/* Team Stats */}\n <div className=\"stats-grid\">\n {[1, 2, 3].map((item) => (\n <div className=\"stat-item\" key={item}>\n <div className=\"skeleton skeleton-stat-value\" />\n <div className=\"skeleton skeleton-stat-label\" />\n </div>\n ))}\n </div>\n\n {/* Status */}\n <div className=\"knos-summary\">\n {[1, 2, 3].map((item) => (\n <div className=\"kno-stat\" key={item}>\n <div className=\"skeleton skeleton-status-label\" />\n <div className=\"skeleton skeleton-status-value\" />\n </div>\n ))}\n </div>\n </div>\n );\n};\n\nconst VendorPerformanceSkeleton = () => {\n return (\n <div className=\"vendors-grid\">\n {[1, 2, 3].map((item) => (\n <VendorCardSkeleton key={item} />\n ))}\n </div>\n );\n};\n\nconst AdminDashboard = () => {\n const { t } = useTranslation();\n const history = useHistory();\n\n // Fetch assignment progress with hierarchy (supervisor and surveyor details)\n const { data: progressData, isLoading: isProgressLoading } = Digit.Hooks.ekyc.useEkycAssignmentProgress(\n {\n tenantId: \"dl.djb\",\n allVendorsDetailed: true,\n },\n {\n enabled: true,\n keepPreviousData: true,\n }\n );\n\n return (\n <Card className=\"surveyor-dashboard\">\n <Dashboard isProgressLoading={isProgressLoading} progressData={progressData} />\n <div className=\"admin-performance-section\">\n <h3 className=\"section-title\">{t(\"EKYC_VENDORS_PERFORMANCE\") || \"eKYC Vendors Performance\"}</h3>\n\n {isProgressLoading ? (\n <VendorPerformanceSkeleton />\n ) : (\n <div className=\"vendors-grid\">\n {/* Self eKYC */}\n {/* Commented by Avinash This part will be uncommented when this part will be developed from backend in future */}\n {/* <div className=\"vendor-perf-card self-ekyc-card\" onClick={() => history.push(`/digit-ui/employee/ekyc/self`)}>\n <div className=\"card-header\">\n <div className=\"vendor-info\">\n <h4>{t(\"SELF_EKYC\") || \"Self eKYC\"}</h4>\n <p>{t(\"SELF_EKYC_BY_USERS\") || \"eKYC completed directly by users\"}</p>\n </div>\n\n <span className=\"kno-count-badge\">{11111 || 0}%</span>\n </div>\n\n <div className=\"progress-bar-container\">\n <div className=\"progress-bar-fill\" style={{ width: `${11111 || 0}%` }} />\n </div>\n\n <div className=\"stats-grid\">\n <div className=\"stat-item\">\n <div className=\"value completed-val\">{11111 || 0}</div>\n <div className=\"label\">{t(\"COMPLETED\") || \"Completed\"}</div>\n </div>\n\n <div className=\"stat-item\">\n <div className=\"value\">{11111 || 0}</div>\n <div className=\"label\">{t(\"PENDING\") || \"Pending\"}</div>\n </div>\n\n <div className=\"stat-item\">\n <div className=\"value\">{11111 || 0}</div>\n <div className=\"label\">{t(\"TOTAL\") || \"Total\"}</div>\n </div>\n </div>\n\n <div className=\"card-footer\">\n <span>{t(\"SELF_EKYC\") || \"Self eKYC\"}</span>\n\n <span>{t(\"USERS\") || \"Users\"}</span>\n </div>\n </div> */}\n\n {/* Vendors */}\n {Array.isArray(progressData?.vendorReports) &&\n progressData?.vendorReports.length &&\n progressData?.vendorReports.map((vendor) => (\n <div\n key={vendor.vendorId}\n className=\"vendor-perf-card\"\n onClick={() => history.push(`/digit-ui/employee/ekyc/vendors/${vendor.vendorId}`)}\n >\n {/* Header */}\n <div className=\"vendor-card-header\">\n <div className=\"vendor-title\">\n <div className=\"vendor-icon\">\n <span>{vendor.vendorName?.[0]?.toUpperCase()}</span>\n </div>\n\n <div>\n <h4>{vendor.vendorName}</h4>\n <span className=\"vendor-subtitle\">{t(\"EKYC_VENDOR\") || \"eKYC Vendor\"}</span>\n </div>\n </div>\n\n <div className=\"kno-count-badge\">\n <span className=\"kno-count-label\">{t(\"TOTAL_KNOS\") || \"Total KNOs\"} -</span>\n <span className=\"kno-count-value\">{vendor.totalKnosInZones}</span>\n </div>\n </div>\n\n {/* Progress */}\n <div className=\"progress-section\">\n <div className=\"progress-bar-container\">\n <div className=\"progress-bar-fill\" style={{ width: `${vendor.progressPercent}%` }} />\n </div>\n\n <div className=\"progress-label\">\n <span>{t(\"PROGRESS\") || \"Progress\"}</span>\n <span>{vendor.progressPercent}%</span>\n </div>\n </div>\n\n {/* Team */}\n <div className=\"stats-grid\">\n <div className=\"stat-item\">\n <span className=\"stat-value\">{vendor.totalSupervisors}</span>\n <span className=\"stat-label\">{t(\"SUPERVISORS\") || \"Supervisors\"}</span>\n </div>\n\n <div className=\"stat-item\">\n <span className=\"stat-value\">{vendor.totalSurveyors}</span>\n <span className=\"stat-label\">{t(\"SURVEYORS\") || \"Surveyors\"}</span>\n </div>\n\n <div className=\"stat-item\">\n <span className=\"stat-value\">{vendor.totalAssignments}</span>\n <span className=\"stat-label\">{t(\"TOTAL_EKYC_APPLICATIONS\") || \"Total KNOs\"}</span>\n </div>\n </div>\n\n {/* Status */}\n <div className=\"knos-summary\">\n <div className=\"kno-stat\">\n <span className=\"kno-label\">{t(\"SUBMITTED\") || \"Submitted\"}</span>\n <strong>{vendor.submittedKnosInZones}</strong>\n </div>\n\n <div className=\"kno-stat pending\">\n <span className=\"kno-label\">{t(\"PENDING\") || \"Pending\"}</span>\n <strong>{vendor.pendingKnosInZones}</strong>\n </div>\n\n <div className=\"kno-stat rejected\">\n <span className=\"kno-label\">{t(\"EKYC_SUBMITTED_BY_CITIZENS\").toLowerCase() || \"Submitted by citizen\"}</span>\n <strong>{vendor.selfEkycCountInZones}</strong>\n </div>\n </div>\n </div>\n ))}\n </div>\n )}\n </div>\n </Card>\n );\n};\n\nexport default AdminDashboard;\n","import React, { useMemo, useState, useRef, useEffect } from \"react\";\nimport { Card, Loader, Table } from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { useParams, useHistory } from \"react-router-dom\";\nimport { downloadSupervisorPDF } from \"../utils/reportDownloader\";\nimport { getEkycExcelData } from \"../utils/ekycExcelData\";\nimport { FaUsers, FaCheckCircle, FaClock, FaChartLine } from \"react-icons/fa\";\n\nconst SupervisorDetailsCard = () => {\n const { t } = useTranslation();\n const history = useHistory();\n const tenantId = Digit.ULBService.getCurrentTenantId() || \"dl.djb\";\n const { id: supervisorId } = useParams();\n const loggedInUser = Digit.SessionStorage.get(\"User\")?.info;\n const [ekycDownloadLoading, setEkycDownloadLoading] = useState(false);\n\n // Fetch all supervisors to get details if assignment progress fails\n const { data: supervisorSearchResponse, isLoading: isSupervisorSearchLoading } = Digit.Hooks.fsm.useSupervisorSearch(\n tenantId,\n { status: \"ACTIVE\" },\n { enabled: !!tenantId, staleTime: 300000 }\n );\n\n // Resolve vendorId of this supervisor if available\n const targetVendorId = useMemo(() => {\n const targetId = supervisorId || loggedInUser?.uuid;\n if (!targetId || !supervisorSearchResponse?.supervisors) return null;\n const matchedSup = supervisorSearchResponse.supervisors.find(\n (s) => s.id?.toLowerCase() === targetId?.toLowerCase() || s.owner?.uuid?.toLowerCase() === targetId?.toLowerCase()\n );\n return matchedSup?.vendorId || null;\n }, [supervisorId, loggedInUser, supervisorSearchResponse]);\n\n // Fetch assignment progress with hierarchy (supervisor and surveyor details)\n const { isLoading: isProgressLoading, data: progressData } = Digit.Hooks.ekyc.useEkycAssignmentProgress(\n { vendorId: targetVendorId },\n {\n enabled: !!tenantId,\n keepPreviousData: true,\n }\n );\n\n // Fetch all surveyors to get details of connected surveyors if assignment progress fails\n const { data: surveyorSearchResponse, isLoading: isSurveyorSearchLoading } = Digit.Hooks.fsm.useSurveyorSearch(\n tenantId,\n { status: \"ACTIVE\" },\n { enabled: !!tenantId, staleTime: 300000 }\n );\n\n // Fetch all vendors from DSO search\n const { data: vendorSearchResponse, isLoading: isVendorSearchLoading } = Digit.Hooks.fsm.useDsoSearch(\n tenantId,\n { status: \"ACTIVE\" },\n { enabled: !!tenantId, staleTime: 300000 }\n );\n\n const supervisor = useMemo(() => {\n const targetOwnerOrId = supervisorId || loggedInUser?.uuid;\n if (!targetOwnerOrId) return null;\n\n // Step 0: resolve real supervisor entity id (handles self-login case\n // where we only have the owner/auth uuid, not the supervisor record id)\n let resolvedSupervisorId = supervisorId; // if URL already has entity id, trust it\n if (!resolvedSupervisorId && supervisorSearchResponse?.supervisors && targetOwnerOrId) {\n const selfSup = supervisorSearchResponse.supervisors.find(\n (s) => s.owner?.uuid?.toLowerCase() === targetOwnerOrId?.toLowerCase() || s.id?.toLowerCase() === targetOwnerOrId?.toLowerCase()\n );\n resolvedSupervisorId = selfSup?.id;\n }\n\n const targetId = resolvedSupervisorId || targetOwnerOrId;\n\n // 1. Find the supervisor profile from search response\n let matchedSup = null;\n if (supervisorSearchResponse?.supervisors) {\n matchedSup = supervisorSearchResponse.supervisors.find(\n (s) => s.id?.toLowerCase() === targetId?.toLowerCase() || s.owner?.uuid?.toLowerCase() === targetId?.toLowerCase()\n );\n }\n\n // 2. Find progress report for this supervisor from progressData\n let progressReport = null;\n if (progressData?.supervisorReport && targetId) {\n progressReport = progressData.supervisorReport.find(\n (s) => s.supervisorId?.toLowerCase() === targetId?.toLowerCase() || s.id?.toLowerCase() === targetId?.toLowerCase()\n );\n }\n\n // 3. If we found the supervisor in search response, enrich and return\n if (matchedSup) {\n const matchedSurveyors = surveyorSearchResponse?.surveyors\n ? surveyorSearchResponse.surveyors\n .filter((surv) => surv.supervisorId === (matchedSup.id || matchedSup.owner?.uuid))\n .map((surv) => {\n let realStats = null;\n if (progressData?.supervisorReport) {\n for (const report of progressData.supervisorReport) {\n if (\n report.supervisorId?.toLowerCase() !== matchedSup.id?.toLowerCase() &&\n report.id?.toLowerCase() !== matchedSup.id?.toLowerCase()\n )\n continue;\n const matchedSurv = report.surveyors?.find(\n (s) =>\n (s.surveyorId &&\n (s.surveyorId?.toLowerCase() === surv.id?.toLowerCase() ||\n s.surveyorId?.toLowerCase() === surv.owner?.uuid?.toLowerCase())) ||\n (s.id && (s.id?.toLowerCase() === surv.id?.toLowerCase() || s.id?.toLowerCase() === surv.owner?.uuid?.toLowerCase()))\n );\n if (matchedSurv) {\n realStats = matchedSurv;\n break;\n }\n }\n }\n\n return {\n surveyorId: surv.id || surv.owner?.uuid,\n surveyorName: surv.name || surv.owner?.name || \"N/A\",\n mobileNo: surv.owner?.mobileNumber || surv.mobileNo || \"N/A\",\n email: surv.owner?.emailId || \"N/A\",\n gender: surv.owner?.gender || \"N/A\",\n status: surv.status || \"ACTIVE\",\n totalKnos: realStats?.totalKnos || 0,\n submittedKnos: realStats?.submittedKnos || 0,\n pendingKnos: realStats?.pendingKnos || 0,\n progressPercent: realStats?.progressPercent || 0,\n };\n })\n : [];\n\n const totalKnos = progressReport?.totalKnos || matchedSurveyors.reduce((acc, s) => acc + (s.totalKnos || 0), 0);\n const submittedKnos = progressReport?.submittedKnos || matchedSurveyors.reduce((acc, s) => acc + (s.submittedKnos || 0), 0);\n const pendingKnos = progressReport?.pendingKnos || matchedSurveyors.reduce((acc, s) => acc + (s.pendingKnos || 0), 0);\n const progressPercent = progressReport ? progressReport.progressPercent : totalKnos > 0 ? Math.round((submittedKnos / totalKnos) * 100) : 0;\n\n return {\n supervisorId: matchedSup.id || matchedSup.owner?.uuid,\n supervisorName: matchedSup.name || matchedSup.owner?.name || \"N/A\",\n mobileNo: matchedSup.owner?.mobileNumber || matchedSup.mobileNo || \"N/A\",\n email: matchedSup.owner?.emailId || matchedSup.owner?.email || matchedSup.email || matchedSup.emailId || \"N/A\",\n gender: matchedSup.owner?.gender || matchedSup.gender || \"N/A\",\n status: matchedSup.status || \"ACTIVE\",\n assignedZoneId: matchedSup.assignedZoneId || \"N/A\",\n vendorId: matchedSup.vendorId,\n surveyors: matchedSurveyors,\n totalKnos,\n submittedKnos,\n pendingKnos,\n progressPercent,\n };\n }\n\n // 4. Fallback: If not found in search response, but we have progressData report, return it and enrich with loggedInUser details\n if (progressReport) {\n const isSelf = targetId?.toLowerCase() === loggedInUser?.uuid?.toLowerCase();\n const supervisorName = isSelf ? loggedInUser?.name || progressReport.supervisorName || \"N/A\" : progressReport.supervisorName || \"N/A\";\n const mobileNo = isSelf ? loggedInUser?.mobileNumber || progressReport.mobileNo || \"N/A\" : progressReport.mobileNo || \"N/A\";\n\n const matchedSupForFallback = supervisorSearchResponse?.supervisors?.find(\n (s) =>\n s.id?.toLowerCase() === (progressReport.supervisorId || progressReport.id)?.toLowerCase() ||\n s.owner?.uuid?.toLowerCase() === (progressReport.supervisorId || progressReport.id)?.toLowerCase()\n );\n\n const email =\n matchedSupForFallback?.owner?.emailId ||\n matchedSupForFallback?.owner?.email ||\n matchedSupForFallback?.email ||\n (isSelf ? loggedInUser?.emailId : null) ||\n progressReport.email ||\n \"N/A\";\n const gender =\n matchedSupForFallback?.owner?.gender ||\n matchedSupForFallback?.gender ||\n (isSelf ? loggedInUser?.gender : null) ||\n progressReport.gender ||\n \"N/A\";\n\n const surveyorsMapped = progressReport.surveyors\n ? progressReport.surveyors.map((surv) => {\n const matchedSurv = surveyorSearchResponse?.surveyors?.find(\n (s) => s.id?.toLowerCase() === surv.surveyorId?.toLowerCase() || s.owner?.uuid?.toLowerCase() === surv.surveyorId?.toLowerCase()\n );\n\n return {\n surveyorId: surv.surveyorId || surv.id,\n surveyorName: matchedSurv?.name || matchedSurv?.owner?.name || surv.surveyorName || \"N/A\",\n mobileNo: matchedSurv?.owner?.mobileNumber || matchedSurv?.mobileNo || surv.mobileNo || \"N/A\",\n email: matchedSurv?.owner?.emailId || matchedSurv?.owner?.email || matchedSurv?.email || surv.email || \"N/A\",\n gender: matchedSurv?.owner?.gender || matchedSurv?.gender || surv.gender || \"N/A\",\n status: matchedSurv?.status || surv.status || \"ACTIVE\",\n totalKnos: surv.totalKnos || 0,\n submittedKnos: surv.submittedKnos || 0,\n pendingKnos: surv.pendingKnos || 0,\n progressPercent: surv.progressPercent || 0,\n };\n })\n : [];\n\n return {\n supervisorId: progressReport.supervisorId || progressReport.id,\n supervisorName,\n mobileNo,\n email,\n gender,\n status: progressReport.status || \"ACTIVE\",\n assignedZoneId: progressReport.assignedZoneId || \"N/A\",\n vendorId: progressReport.vendorId,\n surveyors: surveyorsMapped,\n totalKnos: progressReport.totalKnos || 0,\n submittedKnos: progressReport.submittedKnos || 0,\n pendingKnos: progressReport.pendingKnos || 0,\n progressPercent: progressReport.progressPercent || 0,\n };\n }\n\n return null;\n }, [progressData, supervisorSearchResponse, surveyorSearchResponse, supervisorId, loggedInUser]);\n\n const fullName = supervisor?.supervisorName || \"N/A\";\n const mobileNumber = supervisor?.mobileNo || \"N/A\";\n const email = supervisor?.email || (supervisor?.supervisorId === loggedInUser?.uuid ? loggedInUser?.emailId : null) || \"N/A\";\n const gender = supervisor?.gender || (supervisor?.supervisorId === loggedInUser?.uuid ? loggedInUser?.gender : null) || \"N/A\";\n const status = supervisor?.status || \"N/A\";\n const assignedZone = supervisor?.assignedZoneId || \"N/A\";\n\n const vendorName = useMemo(() => {\n if (!vendorSearchResponse || !supervisor) return \"N/A\";\n const targetVendorId = supervisor.vendorId;\n if (!targetVendorId) return \"N/A\";\n const matchedVendor = vendorSearchResponse.find(\n (v) =>\n v.dsoDetails?.id === targetVendorId || v.dsoDetails?.vendorId === targetVendorId || v.id === targetVendorId || v.vendorId === targetVendorId\n );\n return matchedVendor?.dsoDetails?.name || matchedVendor?.name || \"N/A\";\n }, [vendorSearchResponse, supervisor]);\n\n const surveyors = useMemo(() => {\n return supervisor?.surveyors || [];\n }, [supervisor]);\n\n const [currentPage, setCurrentPage] = useState(0);\n const [pageSize, setPageSize] = useState(20);\n\n const userRoles = Digit.UserService.getUser()?.info?.roles;\n\n const isSupervisor = userRoles?.some((role) => role.code === \"EKYC_SUPERVISOR\");\n \n const currentSupervisor = isSupervisor\n ? progressData?.supervisorReport[0] || []\n : progressData?.supervisorReport?.find((ele) => ele.supervisorId === supervisorId);\n \n const surveyorsData = currentSupervisor?.surveyors || [];\n\n const cards = useMemo(\n () => [\n {\n label: \"TOTAL_EKYC_APPLICATIONS\",\n count: supervisor?.totalKnos || 0,\n color: \"#0B2559\",\n type: \"today\",\n icon: <FaUsers />,\n },\n {\n label: \"EKYC_SUBMITTED_TITLE\",\n count: supervisor?.submittedKnos || 0,\n color: \"#10B981\",\n type: \"month\",\n icon: <FaCheckCircle />,\n },\n {\n label: \"PENDING_APPLICATIONS\",\n count: supervisor?.pendingKnos || 0,\n color: \"#F59E0B\",\n type: \"pending\",\n icon: <FaClock />,\n },\n {\n label: \"OVERALL_PROGRESS\",\n count: `${supervisor?.progressPercent || 0}%`,\n color: \"#A855F7\",\n type: \"progress\",\n icon: <FaChartLine />,\n },\n ],\n [supervisor]\n );\n const surveyorColumns = useMemo(\n () => [\n {\n Header: t(\"SURVEYOR_NAME\") || \"Surveyor Name\",\n accessor: (row) => row?.surveyorName || \"N/A\",\n Cell: ({ row }) => {\n const userType = Digit.SessionStorage.get(\"User\")?.info?.type?.toLowerCase() || \"citizen\";\n const targetPath = `/digit-ui/${userType}/ekyc/surveyor-dashboard/${row.original.surveyorId}`;\n return (\n <a\n href={targetPath}\n style={{ color: \"#1D70B8\", fontWeight: \"600\", textDecoration: \"none\" }}\n onClick={(e) => {\n e.preventDefault();\n history.push(targetPath);\n }}\n >\n {row.original?.surveyorName || \"N/A\"}\n </a>\n );\n },\n },\n {\n Header: t(\"MOBILE_NUMBER\") || \"Mobile Number\",\n accessor: (row) => row?.mobileNo || \"N/A\",\n id: \"mobileNumber\",\n },\n {\n Header: t(\"STATUS\") || \"Status\",\n accessor: () => \"ACTIVE\",\n id: \"status\",\n Cell: ({ value }) => <span className={`status-badge verified`}>{t(value) || value}</span>,\n },\n {\n Header: t(\"TOTAL_EKYC_APPLICATIONS\") || \"Total eKYC Applications\",\n accessor: (row) => row?.totalKnos || 0,\n id: \"totalEkycApplications\",\n },\n {\n Header: t(\"EKYC_SUBMITTED\") || \"eKYC Completed\",\n accessor: (row) => row?.submittedKnos || 0,\n id: \"ekycCompleted\",\n },\n {\n Header: t(\"PENDING_APPLICATIONS\") || \"Pending Applications\",\n accessor: (row) => row?.pendingKnos || 0,\n id: \"pendingApplications\",\n },\n {\n Header: t(\"OVERALL_PROGRESS\") || \"Overall Progress\",\n accessor: (row) => `${row?.progressPercent || 0}%`,\n id: \"overallProgress\",\n },\n ],\n [t, history]\n );\n\n // Report Download logic\n const [showReportMenu, setShowReportMenu] = useState(false);\n const [customDate, setCustomDate] = useState({ from: \"\", to: \"\" });\n const [showCustomPicker, setShowCustomPicker] = useState(false);\n const [reportLoading, setReportLoading] = useState(false);\n const reportMenuRef = useRef(null);\n\n useEffect(() => {\n const handler = (e) => {\n if (reportMenuRef.current && !reportMenuRef.current.contains(e.target)) {\n setShowReportMenu(false);\n setShowCustomPicker(false);\n }\n };\n document.addEventListener(\"mousedown\", handler);\n return () => document.removeEventListener(\"mousedown\", handler);\n }, []);\n\n const handleDownload = () => {\n setReportLoading(true);\n try {\n const rowsWithStats = surveyors.map((s) => ({\n name: s.surveyorName,\n mobileNo: s.mobileNo,\n status: s.status,\n total: s.totalKnos,\n completed: s.submittedKnos,\n pending: s.pendingKnos,\n progress: `${s.progressPercent}%`,\n }));\n\n const totalKnos = supervisor?.totalKnos || 0;\n const completedKnos = supervisor?.submittedKnos || 0;\n\n downloadSupervisorPDF({\n rows: rowsWithStats,\n supervisorName: fullName,\n vendorName,\n mobileNumber,\n email,\n dashboardInfo: {\n total: totalKnos,\n completed: completedKnos,\n pending: totalKnos - completedKnos,\n submittedCount: completedKnos,\n },\n t,\n });\n } catch (err) {\n console.error(\"Failed to generate supervisor report:\", err);\n } finally {\n setReportLoading(false);\n }\n };\n\n const handlePresetDownload = async (filter) => {\n const range = getDateRange(filter);\n if (!range) return;\n setShowReportMenu(false);\n setShowCustomPicker(false);\n await handleDownloadEkycData(range.from.getTime(), range.to.getTime());\n };\n\n const handleCustomDownload = async () => {\n if (!customDate.from || !customDate.to) {\n alert(t(\"SELECT_DATE_RANGE\") || \"Please select both From and To dates.\");\n return;\n }\n const from = new Date(customDate.from);\n from.setHours(0, 0, 0, 0);\n const to = new Date(customDate.to);\n to.setHours(23, 59, 59, 999);\n setShowReportMenu(false);\n setShowCustomPicker(false);\n await handleDownloadEkycData(from.getTime(), to.getTime());\n };\n\n const handleDownloadEkycData = async (fromDate, toDate) => {\n if (!surveyors || surveyors.length === 0) {\n alert(t(\"NO_SURVEYORS_ASSIGNED\") || \"No surveyors assigned to this supervisor.\");\n return;\n }\n\n setEkycDownloadLoading(true);\n try {\n const response = await Digit.EkycService.application_list({\n tenantId: tenantId || \"dl.djb\",\n offset: 0,\n limit: 10000,\n supervisorId: supervisor?.supervisorId || supervisorId,\n reportDownload: true,\n ...(fromDate && { fromDate }),\n ...(toDate && { toDate }),\n });\n\n const consumerList = response?.consumerList || [];\n\n if (consumerList.length === 0) {\n alert(t(\"NO_DATA_FOUND\") || \"No data found for download.\");\n return;\n }\n\n const excelData = getEkycExcelData(consumerList, t);\n const cleanFileName = `eKYC_Data_Supervisor_${fullName.replace(/[^a-zA-Z0-9]/g, \"_\")}`;\n Digit.Download.Excel(excelData, cleanFileName);\n } catch (error) {\n console.error(\"Error downloading eKYC Excel:\", error);\n } finally {\n setEkycDownloadLoading(false);\n }\n };\n\n const getDateRange = (filter) => {\n const now = new Date();\n const start = new Date(now);\n if (filter === \"today\") {\n start.setHours(0, 0, 0, 0);\n return { from: start, to: now };\n }\n if (filter === \"week\") {\n start.setDate(now.getDate() - now.getDay());\n start.setHours(0, 0, 0, 0);\n return { from: start, to: now };\n }\n if (filter === \"month\") {\n start.setDate(1);\n start.setHours(0, 0, 0, 0);\n return { from: start, to: now };\n }\n return null;\n };\n\n const StatCard = ({ title, value, type, isLoading, icon }) => (\n <div className={`stat-card ${type}`}>\n {isLoading ? (\n <React.Fragment>\n <div className=\"stat-title skeleton skeleton-text\"></div>\n <div className=\"stat-value skeleton skeleton-number\"></div>\n </React.Fragment>\n ) : (\n <React.Fragment>\n <div className=\"stat-title\">{title}</div>\n <div className=\"stat-value\">{value}</div>\n {icon && <div className=\"stat-icon\">{icon}</div>}\n </React.Fragment>\n )}\n </div>\n );\n\n const isPageLoading = isProgressLoading || isSupervisorSearchLoading || isSurveyorSearchLoading || isVendorSearchLoading;\n\n if (isPageLoading && !supervisor) {\n return <Loader />;\n }\n\n if (!supervisor) {\n return (\n <Card>\n <div style={{ padding: \"24px\" }}>{t(\"NO_SUPERVISOR_FOUND\")}</div>\n </Card>\n );\n }\n\n return (\n <Card className=\"surveyor-dashboard\">\n {/* Header + Download Report */}\n <div className=\"ekyc-dashboard-section\">\n <div className=\"ekyc-dashboard-header\">\n <div className=\"avatar\">{fullName?.charAt(0)?.toUpperCase()}</div>\n\n <div className=\"header-content\">\n <h2 className=\"name\">{fullName}</h2>\n <div className=\"designation\">{t(\"FIELD_SUPERVISOR\") || \"Field Supervisor\"}</div>\n </div>\n </div>\n\n {/* Download Report — far right */}\n <div className=\"report-download\">\n <button className=\"download-btn\" disabled={reportLoading} onClick={handleDownload}>\n {reportLoading ? t(\"DOWNLOADING\") || \"Downloading...\" : t(\"DOWNLOAD_REPORT\") || \"Download Report\"}\n </button>\n </div>\n </div>\n\n {/* Stats */}\n <div className=\"stats-wrapper\">\n {cards.map((card, idx) => (\n <StatCard key={idx} title={t(card.label)} value={card.count} type={card.type} isLoading={isProgressLoading} icon={card.icon} />\n ))}\n </div>\n\n {/* Details */}\n <div className=\"ekyc-dashboard-section\">\n <div className=\"ekyc-details-wrapper\">\n {/* Top Row: Mobile, Email, and Download eKYC Data */}\n <div className=\"details-top-row\">\n <div className=\"detail-item\">\n <span className=\"label\">{t(\"MOBILE\")}</span>\n <span className=\"value\">{mobileNumber}</span>\n </div>\n\n <div className=\"detail-item\">\n <span className=\"label\">{t(\"EMAIL\")}</span>\n <span className=\"value\">{email}</span>\n </div>\n\n <div className=\"download-card\">\n <div>\n <h4>{t(\"DOWNLOAD_EKYC_DATA\") || \"Download eKYC Data\"}</h4>\n <p>\n {t(\"DOWNLOAD_EKYC_DATA_DESC\") || \"Export the complete eKYC verification records for your assigned jurisdiction into Excel format.\"}\n </p>\n </div>\n <div className=\"report-download\" ref={reportMenuRef}>\n <button\n className=\"download-excel-btn\"\n disabled={ekycDownloadLoading}\n onClick={() => {\n setShowReportMenu((p) => !p);\n setShowCustomPicker(false);\n }}\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\" />\n <polyline points=\"7 10 12 15 17 10\" />\n <line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\" />\n </svg>\n {ekycDownloadLoading ? t(\"DOWNLOADING\") || \"Downloading...\" : t(\"DOWNLOAD_EXCEL\") || \"Download Excel\"}\n </button>\n\n {showReportMenu && (\n <div className=\"report-menu\">\n {[\n { label: t(\"TODAY\") || \"Today\", key: \"today\" },\n { label: t(\"THIS_WEEK\") || \"This Week\", key: \"week\" },\n { label: t(\"THIS_MONTH\") || \"This Month\", key: \"month\" },\n ].map(({ label, key }) => (\n <div key={key} className=\"menu-item\" onClick={() => handlePresetDownload(key)}>\n {label}\n </div>\n ))}\n\n <div className=\"custom-date-trigger\" onClick={() => setShowCustomPicker((p) => !p)}>\n {t(\"CUSTOM_DATE\") || \"Custom Date\"}\n </div>\n\n {showCustomPicker && (\n <div className=\"custom-picker\">\n <div className=\"date-inputs\">\n <label>\n <span>From</span>\n <input type=\"date\" value={customDate.from} onChange={(e) => setCustomDate({ ...customDate, from: e.target.value })} />\n </label>\n <label>\n <span>To</span>\n <input type=\"date\" value={customDate.to} onChange={(e) => setCustomDate({ ...customDate, to: e.target.value })} />\n </label>\n </div>\n <div style={{ display: \"flex\", gap: \"10px\", marginTop: \"10px\" }}>\n <button\n className=\"picker-cancel-btn\"\n onClick={() => {\n setShowCustomPicker(false);\n setCustomDate({ from: \"\", to: \"\" });\n }}\n >\n {t(\"CANCEL\") || \"Cancel\"}\n </button>\n <button className=\"picker-apply-btn\" onClick={handleCustomDownload}>\n {t(\"APPLY\") || \"Apply\"}\n </button>\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n </div>\n\n {/* Bottom Row: Remaining Details */}\n <div className=\"details-grid-row\">\n <div className=\"detail-item\">\n <span className=\"label\">{t(\"GENDER\")}</span>\n <span className=\"value\">{t(gender) || gender}</span>\n </div>\n\n <div className=\"detail-item\">\n <span className=\"label\">{t(\"STATUS\")}</span>\n <span className=\"value\">{status}</span>\n </div>\n\n <div className=\"detail-item\">\n <span className=\"label\">{t(\"ASSIGNED_ZONE\") || \"Assigned Zone\"}</span>\n <span className=\"value\">\n {assignedZone && assignedZone !== \"N/A\" ? (\n <div className=\"selected-zones\" style={{ marginTop: \"4px\" }}>\n <span className=\"selected-zone-chip\">{t(assignedZone.trim().toUpperCase()) || assignedZone}</span>\n </div>\n ) : (\n assignedZone\n )}\n </span>\n </div>\n\n <div className=\"detail-item\">\n <span className=\"label\">{t(\"VENDOR_NAME\") || \"Vendor Name\"}</span>\n <span className=\"value\">{vendorName}</span>\n </div>\n </div>\n </div>\n </div>\n\n <div>\n <Table\n t={t}\n tableTitle={t(\"CONNECTED_SURVEYORS\") || \"Connected Surveyors\"}\n tableClass=\"ekycTable\"\n isTableScrollable={true}\n data={surveyorsData}\n columns={surveyorColumns}\n isLoading={isProgressLoading}\n totalRecords={surveyors.length}\n currentPage={currentPage}\n pageSizeLimit={pageSize}\n isPaginationRequired={true}\n onNextPage={() => {\n if (currentPage < Math.ceil(surveyors.length / pageSize) - 1) {\n setCurrentPage((prev) => prev + 1);\n }\n }}\n onPrevPage={() => {\n if (currentPage > 0) {\n setCurrentPage((prev) => prev - 1);\n }\n }}\n onFirstPage={() => {\n setCurrentPage(0);\n }}\n onLastPage={() => {\n setCurrentPage(Math.max(Math.ceil(surveyors.length / pageSize) - 1, 0));\n }}\n onPageSizeChange={(e) => {\n setPageSize(Number(e.target.value));\n setCurrentPage(0);\n }}\n />\n </div>\n </Card>\n );\n};\n\nexport default SupervisorDetailsCard;\n","import React, { useMemo, useState, useEffect } from \"react\";\nimport { Modal, Close, Table, Toast } from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\n\nconst AssignEkycModal = ({ surveyor, isReassign, closeModal, refetchDashboard, tenantId: propsTenantId }) => {\n const { t } = useTranslation();\n const tenantId = propsTenantId || Digit.ULBService.getCurrentTenantId();\n const [selectedKnos, setSelectedKnos] = useState([]);\n const [currentPage, setCurrentPage] = useState(0);\n const [pageSize, setPageSize] = useState(20);\n const [showToast, setShowToast] = useState(false);\n const [toastData, setToastData] = useState({\n error: false,\n label: \"\",\n });\n const [filters, setFilters] = useState({\n kno: \"\", // search value\n pincode: \"\",\n zoneCode: \"\",\n zoneName: \"\",\n ward: \"\",\n assembly: \"\",\n mrkey: \"\",\n ekycStatus: \"\",\n });\n\n const [debouncedFilters, setDebouncedFilters] = useState(filters);\n\n // const { data: zroLocationsData, isLoading: isZroLoading } = Digit.Hooks.ws.useWSConfigMDMS.ZROLocation(tenantId);\n // const mappedZROLocation = useMemo(() => {\n // return (zroLocationsData || []).map((item) => ({\n // code: item.code,\n // name: item.name,\n // }));\n // }, [zroLocationsData]);\n\n const { data: egovLocationData } = Digit.Hooks.useCommonMDMS(tenantId, \"egov-location\", [\"TenantBoundary\"]);\n\n const boundaryData = useMemo(() => {\n const tenantBoundary = egovLocationData?.[\"egov-location\"]?.TenantBoundary || [];\n const revenueData = tenantBoundary.find((item) => item?.hierarchyType?.code === \"REVENUE\");\n const boundary = revenueData?.boundary || [];\n return Array.isArray(boundary) ? boundary : [boundary];\n }, [egovLocationData]);\n\n // const { assemblyOptions, wardOptions } = useMemo(() => {\n // const assemblies = new Map();\n // const wards = new Map();\n\n // const boundaries = Array.isArray(boundaryData) ? boundaryData : boundaryData ? [boundaryData] : [];\n\n // const traverse = (node) => {\n // if (!node) return;\n // if (node.label === \"Ward\" || node.label === \"WARD\" || node.label === \"Block\" || node.label === \"BLOCK\") {\n // const code = node.code || node.localname || node.name;\n // const name = node.name || node.localname || code;\n // if (code) wards.set(code, { code, name: name });\n // }\n // if (node.label === \"Assembly Constituency\" || node.label === \"ASSEMBLY_CONSTITUENCY\") {\n // const code = node.code || node.localname || node.name;\n // const name = node.name || node.localname || code;\n // if (code) assemblies.set(code, { code, name: name });\n // }\n // if (node.children && node.children.length > 0) {\n // node.children.forEach(traverse);\n // }\n // };\n\n // boundaries.forEach(traverse);\n\n // return {\n // assemblyOptions: Array.from(assemblies.values()).sort((a, b) => a.name.localeCompare(b.name)),\n // wardOptions: Array.from(wards.values()).sort((a, b) => a.name.localeCompare(b.name)),\n // };\n // }, [boundaryData]);\n\n const structuredLocalityData = useMemo(() => {\n let localities = [];\n const boundaries = Array.isArray(boundaryData) ? boundaryData : boundaryData ? [boundaryData] : [];\n\n const extractLocalities = (node) => {\n if (!node) return;\n\n if (node.label === \"Locality\" || node.label === \"LOCALITY\") {\n localities.push({\n ...node,\n name: node.localname || node.name || node.code,\n });\n }\n if (node.children && node.children.length > 0) {\n node.children.forEach((child) => extractLocalities(child));\n }\n };\n\n boundaries.forEach((rootNode) => extractLocalities(rootNode));\n\n return localities;\n }, [boundaryData]);\n\n const fetchedPincodes = useMemo(() => {\n const pinSet = new Set();\n\n structuredLocalityData.forEach((loc) => {\n if (loc.pincode) {\n const pins = Array.isArray(loc.pincode) ? loc.pincode : [loc.pincode];\n pins.forEach((p) => {\n if (p) {\n const sanitizedPin = p.toString().split(\".\")[0];\n pinSet.add(sanitizedPin);\n }\n });\n }\n });\n\n return Array.from(pinSet).sort();\n }, [structuredLocalityData]);\n\n const { data: filterOptionsData } = Digit.Hooks.ekyc.useEkycApplicationList(\n {\n unassignedOnly: !isReassign,\n fetchFilterOptions: true,\n },\n {\n tenantId: tenantId,\n offset: 0,\n limit: 1000,\n },\n {\n staleTime: Infinity,\n }\n );\n\n const pincodeOptions = useMemo(() => {\n if (!filterOptionsData) return fetchedPincodes || [];\n const pins = filterOptionsData.pincodeOptions || [];\n return Array.isArray(pins) ? pins.filter(Boolean).map(String).sort() : [];\n }, [filterOptionsData, fetchedPincodes]);\n\n const mrkeyOptions = useMemo(() => {\n if (!filterOptionsData) return [];\n const keys = filterOptionsData.mrkeyOptions || [];\n return Array.isArray(keys) ? keys.filter(Boolean).map(String).sort() : [];\n }, [filterOptionsData]);\n\n useEffect(() => {\n const timer = setTimeout(() => {\n setDebouncedFilters(filters);\n }, 500);\n\n return () => clearTimeout(timer);\n }, [filters]);\n\n useEffect(() => {\n setCurrentPage(0);\n }, [debouncedFilters, filters.kno]);\n\n const { data: applicationData, isFetching: isLoading, refetch: refetchApplicationList } = Digit.Hooks.ekyc.useEkycApplicationList(\n {\n assignedOnly: isReassign,\n /*\n ...(debouncedFilters.kno && {\n kno: debouncedFilters.kno,\n }),\n */\n ...(filters.kno && {\n kno: filters.kno,\n }),\n\n ...(debouncedFilters.ekycStatus && {\n ekycStatus: debouncedFilters.ekycStatus,\n }),\n\n ...(debouncedFilters.zoneName && {\n zoneName: debouncedFilters.zoneName,\n }),\n\n ...(debouncedFilters.assembly && {\n assembly: debouncedFilters.assembly,\n }),\n\n ...(debouncedFilters.ward && {\n ward: debouncedFilters.ward,\n }),\n\n ...(debouncedFilters.mrkey && {\n mrkey: debouncedFilters.mrkey,\n }),\n\n ...(debouncedFilters.pincode && {\n pincode: debouncedFilters.pincode,\n }),\n },\n {\n tenantId: tenantId,\n offset: 0,\n limit: 5000,\n },\n {\n keepPreviousData: true,\n }\n );\n\n const handleAssignmentError = (errMsg) => {\n const isAlreadyAssigned =\n errMsg.toLowerCase().includes(\"already assigned\") ||\n errMsg.toLowerCase().includes(\"already assign\") ||\n errMsg.toLowerCase().includes(\"active assignment\") ||\n errMsg.toLowerCase().includes(\"mrkey\") ||\n errMsg.toLowerCase().includes(\"mr key\") ||\n errMsg.toLowerCase().includes(\"kno\") ||\n errMsg.toLowerCase().includes(\"already exists\");\n\n if (isAlreadyAssigned) {\n setToastData({\n error: true,\n label: t(\"EKYC_KNO_ALREADY_ASSIGNED_WITH_ANOTHER_SURVEYOR\") || \"kno is already assign with another surveyor\",\n });\n } else {\n setToastData({\n error: true,\n label: t(errMsg) || errMsg || t(\"EKYC_SOMETHING_WENT_WRONG\") || \"Something went wrong\",\n });\n }\n setShowToast(true);\n };\n\n const assignmentMutation = Digit.Hooks.ekyc.useEkycAssignmentCreate({\n onSuccess: (response, variables) => {\n if (response?.error) {\n const errMsg = response?.data?.message || \"\";\n handleAssignmentError(errMsg, variables);\n return;\n }\n\n // Check for skipped assignments (e.g. 200 OK but skipped)\n if (response?.skipped && response.skipped.length > 0) {\n const reason = response.skipped[0]?.reason || \"\";\n handleAssignmentError(reason, variables);\n return;\n }\n\n setToastData({\n error: false,\n label: t(\"EKYC_ASSIGNMENT_SUCCESSFUL\") || \"Assignment successful\",\n });\n\n setShowToast(true);\n\n // optional delay so user can see the success toast\n setTimeout(async () => {\n if (refetchDashboard) {\n await refetchDashboard();\n }\n if (refetchApplicationList) {\n await refetchApplicationList();\n }\n closeModal();\n }, 1000);\n },\n\n onError: (error, variables) => {\n const errMsg = error?.data?.message || error?.response?.data?.message || \"\";\n handleAssignmentError(errMsg, variables);\n },\n });\n\n const reassignMutation = Digit.Hooks.ekyc.useEkycAssignmentReassign({\n onSuccess: (response, variables) => {\n if (response?.error) {\n const errMsg = response?.data?.message || \"\";\n handleAssignmentError(errMsg, variables);\n return;\n }\n\n if (response?.skipped && response.skipped.length > 0) {\n const reason = response.skipped[0]?.reason || \"\";\n handleAssignmentError(reason, variables);\n return;\n }\n\n setToastData({\n error: false,\n label: t(\"EKYC_REASSIGNMENT_SUCCESSFUL\") || \"Reassignment successful\",\n });\n\n setShowToast(true);\n\n setTimeout(async () => {\n if (refetchDashboard) {\n await refetchDashboard();\n }\n if (refetchApplicationList) {\n await refetchApplicationList();\n }\n closeModal();\n }, 1000);\n },\n onError: (error, variables) => {\n const errMsg = error?.data?.message || error?.response?.data?.message || \"\";\n handleAssignmentError(errMsg, variables);\n },\n });\n\n const activeMutation = isReassign ? reassignMutation : assignmentMutation;\n\n const allData = useMemo(() => applicationData?.consumerList || [], [applicationData]);\n const totalRecords = allData.length;\n const totalPages = useMemo(() => Math.ceil(totalRecords / pageSize) || 1, [totalRecords, pageSize]);\n\n const paginatedData = useMemo(() => {\n const start = currentPage * pageSize;\n return allData.slice(start, start + pageSize);\n }, [allData, currentPage, pageSize]);\n\n const handleAssign = () => {\n const payload = {\n tenantId: tenantId,\n assignmentType: \"KNO\",\n assignmentValue: selectedKnos,\n };\n\n if (isReassign) {\n payload.newSurveyorId = surveyor?.owner?.uuid;\n } else {\n payload.surveyorId = surveyor?.owner?.uuid;\n }\n\n activeMutation.mutate(payload);\n };\n\n const handleSelect = (kno) => {\n setSelectedKnos((prev) => (prev.includes(kno) ? prev.filter((item) => item !== kno) : [...prev, kno]));\n };\n\n const handleSelectAll = (e) => {\n e?.stopPropagation();\n const allMatchingKnos = allData.map((item) => item.kno).filter(Boolean);\n if (allMatchingKnos.length === 0) return;\n\n const isAllSelected = allMatchingKnos.length > 0 && allMatchingKnos.every((kno) => selectedKnos.includes(kno));\n\n setSelectedKnos(isAllSelected ? [] : allMatchingKnos);\n };\n\n const handleFilterChange = (key, value) => {\n setFilters((prev) => ({\n ...prev,\n [key]: value,\n }));\n setCurrentPage(0);\n };\n\n const columns = useMemo(\n () => [\n {\n Header: () => {\n const allMatchingKnos = allData.map((item) => item.kno).filter(Boolean);\n const isAllChecked = allMatchingKnos.length > 0 && allMatchingKnos.every((kno) => selectedKnos.includes(kno));\n return (\n <input\n type=\"checkbox\"\n checked={isAllChecked}\n onChange={(e) => {\n e.stopPropagation();\n handleSelectAll(e);\n }}\n onClick={(e) => e.stopPropagation()}\n />\n );\n },\n id: \"selection\",\n Cell: ({ row }) => {\n const kno = row.original.kno;\n\n return (\n <input\n type=\"checkbox\"\n checked={selectedKnos.includes(kno)}\n onChange={(e) => {\n e.stopPropagation();\n handleSelect(kno);\n }}\n onClick={(e) => e.stopPropagation()}\n />\n );\n },\n },\n {\n Header: \"KNO\",\n accessor: \"kno\",\n },\n {\n Header: \"Consumer Name\",\n accessor: (row) => `${row.firstName || \"\"} ${row.middleName || \"\"} ${row.lastName || \"\"}`.trim(),\n id: \"consumerName\",\n },\n {\n Header: \"Zone\",\n accessor: \"zoneName\",\n },\n {\n Header: \"Pincode\",\n accessor: \"pincode\",\n },\n {\n Header: \"Status\",\n accessor: \"status\",\n Cell: ({ value }) => (\n <span className={`status-badge ${value === \"ACTIVE\" ? \"verified\" : value === \"PENDING\" ? \"pending\" : \"assigned\"}`}>{value}</span>\n ),\n },\n {\n Header: \"eKYC Status\",\n accessor: \"ekycStatus\",\n Cell: ({ value }) => {\n const status = (value || \"NA\").toUpperCase();\n return value ? <span className={`ekyc-status-tag ${status}`}>{t(status)}</span> : \"-\";\n },\n },\n ],\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [selectedKnos, paginatedData, allData]\n );\n\n return (\n <Modal\n headerBarMain={isReassign ? `Reassign KNOs to ${surveyor?.name}` : `Assign KNOs to ${surveyor?.name}`}\n headerBarEnd={<Close onClick={closeModal} />}\n actionCancelLabel=\"Cancel\"\n actionCancelOnSubmit={closeModal}\n actionSaveLabel={isReassign ? t(\"EKYC_REASSIGN_KNOS\") || \"Reassign KNOs\" : t(\"EKYC_ASSIGN_KNOS\") || \"Assign KNOs\"}\n actionSaveOnSubmit={handleAssign}\n isDisabled={!selectedKnos?.length}\n >\n <div className=\"assign-knos-modal\">\n {/* Filters */}\n <div className=\"filters-grid\">\n <input className=\"form-control\" placeholder=\"KNO\" value={filters.kno} onChange={(e) => handleFilterChange(\"kno\", e.target.value)} />\n\n <select className=\"form-control disabled\" value={filters.pincode} onChange={(e) => handleFilterChange(\"pincode\", e.target.value)} disabled>\n <option value=\"\">Select Pincode</option>\n {pincodeOptions.map((pin) => (\n <option key={pin} value={pin}>\n {pin}\n </option>\n ))}\n </select>\n\n {/* <select\n className=\"form-control\"\n value={filters.zoneName}\n onChange={(e) => {\n const val = e.target.value;\n setFilters((prev) => ({\n ...prev,\n zoneCode: val,\n zoneName: val,\n }));\n }}\n disabled={isZroLoading}\n >\n <option value=\"\">{isZroLoading ? \"Loading ZRO Locations...\" : \"Select ZRO Location\"}</option>\n {mappedZROLocation.map((loc) => (\n <option key={loc.code} value={loc.name}>\n {loc.name}\n </option>\n ))}\n </select> */}\n\n {/* <select className=\"form-control\" value={filters.ward} onChange={(e) => handleFilterChange(\"ward\", e.target.value)}>\n <option value=\"\">Select Ward</option>\n {wardOptions\n .filter((ward) => {\n const stripped = ward.name.replace(/[0-9]/g, \"\").replace(/^[-\\s]+|[-\\s]+$/g, \"\");\n return stripped.trim().length > 0;\n })\n .map((ward) => {\n const displayName = ward.name.replace(/[0-9]/g, \"\").replace(/^[-\\s]+|[-\\s]+$/g, \"\");\n return (\n <option key={ward.code} value={ward.name}>\n {displayName}\n </option>\n );\n })}\n </select> */}\n {/* \n <select className=\"form-control\" value={filters.assembly} onChange={(e) => handleFilterChange(\"assembly\", e.target.value)}>\n <option value=\"\">Select Assembly</option>\n {assemblyOptions.map((assembly) => (\n <option key={assembly.code} value={assembly.name}>\n {assembly.name}\n </option>\n ))}\n </select> */}\n\n <select className=\"form-control\" value={filters.mrkey} onChange={(e) => handleFilterChange(\"mrkey\", e.target.value)}>\n <option value=\"\">Select MR Key</option>\n {mrkeyOptions.map((key) => (\n <option key={key} value={key}>\n {key}\n </option>\n ))}\n </select>\n\n {selectedKnos.length > 0 && (\n <button className=\"clear-selected-btn\" type=\"button\" onClick={() => setSelectedKnos([])}>\n {t(\"EKYC_CLEAR_SELECTION\") || \"Clear Selected\"}\n </button>\n )}\n\n {/* <select className=\"form-control\" value={filters.ekycStatus} onChange={(e) => handleFilterChange(\"ekycStatus\", e.target.value)}>\n <option value=\"\">All eKYC Status</option>\n <option value=\"PENDING\">Pending</option>\n <option value=\"APPROVED\">Approved</option>\n <option value=\"REJECTED\">Rejected</option>\n </select> */}\n </div>\n\n {/* Table */}\n <Table\n tableTitle=\"eKYC Applications\"\n tableClass=\"ekycTable\"\n isTableScrollable={true}\n data={paginatedData}\n columns={columns}\n isLoading={isLoading}\n totalRecords={applicationData?.totalCount || 0}\n currentPage={currentPage}\n pageSizeLimit={pageSize}\n manualPagination={true}\n isPaginationRequired={true}\n onNextPage={() => {\n if (currentPage < totalPages - 1) {\n setCurrentPage((prev) => prev + 1);\n }\n }}\n onPrevPage={() => {\n if (currentPage > 0) {\n setCurrentPage((prev) => prev - 1);\n }\n }}\n onFirstPage={() => {\n setCurrentPage(0);\n }}\n onLastPage={() => {\n setCurrentPage(Math.max(totalPages - 1, 0));\n }}\n onPageSizeChange={(e) => {\n setPageSize(Number(e.target.value));\n setCurrentPage(0);\n }}\n />\n </div>\n {showToast && <Toast error={toastData.error} label={toastData.label} onClose={() => setShowToast(false)} />}\n </Modal>\n );\n};\n\nexport default AssignEkycModal;\n","import React, { useMemo, useState, useRef, useEffect } from \"react\";\n// import { ResponsiveContainer, BarChart, Bar, XAxis, YAxis, Tooltip, CartesianGrid, PieChart, Pie, Cell, Legend } from \"recharts\";\n\nimport { Card, SubmitBar, ActionBar, Menu, Loader, Table } from \"@djb25/digit-ui-react-components\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useParams } from \"react-router-dom\";\n\nimport AssignEkycModal from \"./AssignEkycModal\";\nimport { downloadSurveyorPDF } from \"../utils/reportDownloader\";\nimport { getEkycExcelData } from \"../utils/ekycExcelData\";\nimport { FaUsers, FaCheckCircle, FaClock, FaChartLine } from \"react-icons/fa\";\n\nconst SurveyorDetailsCard = () => {\n const tenantId = Digit.ULBService.getCurrentTenantId();\n\n const [showModal, setShowModal] = useState(null);\n const [showOptions, setShowOptions] = useState(false);\n const [ekycDownloadLoading, setEkycDownloadLoading] = useState(false);\n\n const { id: surveyorId } = useParams();\n const ownerIds = Digit.SessionStorage.get(\"User\")?.info?.uuid;\n\n const { t } = useTranslation();\n\n const { data: surveyorSearchById, isLoading: isLoadingId } = Digit.Hooks.fsm.useSurveyorSearch(\n tenantId,\n { ids: surveyorId },\n { enabled: !!surveyorId, staleTime: Infinity }\n );\n\n const hasFoundById = !!surveyorSearchById?.surveyors?.length;\n\n const { data: surveyorSearchByOwner, isLoading: isLoadingOwner } = Digit.Hooks.fsm.useSurveyorSearch(\n tenantId,\n surveyorId ? { ownerIds: surveyorId } : { ownerIds },\n { enabled: !surveyorId || (!isLoadingId && !hasFoundById), staleTime: Infinity }\n );\n\n const surveyorSearchResponse = useMemo(() => {\n if (surveyorId && hasFoundById) {\n return surveyorSearchById;\n }\n return surveyorSearchByOwner;\n }, [surveyorId, hasFoundById, surveyorSearchById, surveyorSearchByOwner]);\n\n const isLoading = surveyorId ? isLoadingId || (isLoadingOwner && !hasFoundById) : isLoadingOwner;\n\n const roles = Digit.SessionStorage.get(\"User\")?.info?.roles.map((ele) => ele.code);\n\n const surveyor = useMemo(() => {\n return surveyorSearchResponse?.surveyors?.[0] || null;\n }, [surveyorSearchResponse]);\n\n const { data: vendorData, isLoading: isVendorLoading } = Digit.Hooks.fsm.useDsoSearch(\n tenantId,\n { status: \"ACTIVE\" },\n { enabled: !!tenantId, staleTime: 300000 }\n );\n const { data: supervisorSearchResponse, isLoading: isSupervisorSearchLoading } = Digit.Hooks.fsm.useSupervisorSearch(\n tenantId,\n { status: \"ACTIVE\" },\n { enabled: !!tenantId, staleTime: 300000 }\n );\n const vendorName = useMemo(() => {\n if (surveyor?.vendorName) return surveyor.vendorName;\n if (!vendorData || !surveyor?.vendorId) return \"N/A\";\n const mappedVendor = vendorData.find((v) => v.dsoDetails?.id === surveyor.vendorId || v.dsoDetails?.vendorId === surveyor.vendorId);\n return mappedVendor?.dsoDetails?.name || surveyor.vendorId || \"N/A\";\n }, [vendorData, surveyor?.vendorId, surveyor?.vendorName]);\n\n const supervisorName = useMemo(() => {\n if (surveyor?.supervisorName) return surveyor.supervisorName;\n if (!supervisorSearchResponse?.supervisors || !surveyor?.supervisorId) return \"N/A\";\n const mappedSupervisor = supervisorSearchResponse.supervisors.find(\n (s) => s.id === surveyor.supervisorId || s.owner?.uuid === surveyor.supervisorId\n );\n return mappedSupervisor?.name || mappedSupervisor?.owner?.name || surveyor.supervisorId || \"N/A\";\n }, [supervisorSearchResponse, surveyor?.supervisorId, surveyor?.supervisorName]);\n const fullName = surveyor?.owner?.name || surveyor?.name || \"N/A\";\n const employeeId = surveyor?.employeeId || surveyor?.owner?.uuid || surveyor?.id;\n const mobileNumber = surveyor?.owner?.mobileNumber || surveyor?.mobileNo || \"N/A\";\n\n const [currentPage, setCurrentPage] = useState(0);\n const [pageSize, setPageSize] = useState(20);\n const queryParams = {\n tenantId: \"dl.djb\",\n offset: currentPage * pageSize,\n limit: pageSize,\n surveyorId: surveyor?.owner?.uuid,\n };\n\n const { isFetching: isDashboardLoading, data: dashboardData = {}, refetch: refetchDashboard } = Digit.Hooks.ekyc.useEkycSurveyorDashboard(\n {},\n queryParams,\n {\n enabled: !!queryParams.tenantId && !!queryParams.surveyorId,\n keepPreviousData: true,\n }\n );\n\n const toTitleCase = (str) => {\n if (!str) return \"\";\n // Handle dot-notation values like \"CONSUMERTYPE.INDIVIDUAL\" → \"Individual\"\n const cleanStr = String(str).includes(\".\") ? String(str).split(\".\").pop() : String(str);\n return cleanStr\n .toLowerCase()\n .replace(/_/g, \" \")\n .replace(/\\b\\w/g, (c) => c.toUpperCase());\n };\n\n const knoColumns = useMemo(\n () => [\n {\n Header: t(\"KNO\") || \"KNO\",\n accessor: \"kno\",\n },\n {\n Header: t(\"CONSUMER_NAME\") || \"Consumer Name\",\n accessor: (row) => toTitleCase(`${row.firstName || \"\"} ${row.middleName || \"\"} ${row.lastName || \"\"}`.trim()),\n id: \"consumerName\",\n },\n {\n Header: t(\"ZONE\") || \"Zone\",\n accessor: (row) => toTitleCase(row.zoneName),\n id: \"zoneName\",\n },\n {\n Header: t(\"EKYC_STATUS\") || \"eKYC Status\",\n accessor: \"ekycStatus\",\n Cell: ({ value }) => {\n const status = (value || \"NA\").toUpperCase();\n return value ? <span className={`ekyc-status-tag ${status}`}>{toTitleCase(value)}</span> : \"-\";\n },\n },\n {\n Header: t(\"SUBMITTED_AT\") || \"Submitted At\",\n accessor: \"submittedAt\",\n Cell: ({ value }) => (value ? Digit.DateUtils.ConvertEpochToDate(value) : \"-\"),\n },\n {\n Header: t(\"ASSIGNED_AT\") || \"Assigned At\",\n accessor: \"assignedAt\",\n Cell: ({ value }) => (value ? Digit.DateUtils.ConvertEpochToDate(value) : \"-\"),\n },\n ],\n [t]\n );\n\n // ─── Download Report hooks (must be before any early returns) ───────\n\n const [showReportMenu, setShowReportMenu] = useState(false);\n const [customDate, setCustomDate] = useState({ from: \"\", to: \"\" });\n const [showCustomPicker, setShowCustomPicker] = useState(false);\n const [reportLoading, setReportLoading] = useState(false);\n const reportMenuRef = useRef(null);\n\n useEffect(() => {\n const handler = (e) => {\n if (reportMenuRef.current && !reportMenuRef.current.contains(e.target)) {\n setShowReportMenu(false);\n setShowCustomPicker(false);\n }\n };\n document.addEventListener(\"mousedown\", handler);\n return () => document.removeEventListener(\"mousedown\", handler);\n }, []);\n\n const isPageLoading = isLoading || isVendorLoading || isSupervisorSearchLoading;\n\n if (isPageLoading && !surveyor) {\n return <Loader />;\n }\n\n if (!surveyor) {\n return (\n <Card>\n <div style={{ padding: \"24px\" }}>{t(\"NO_SURVEYOR_FOUND\")}</div>\n </Card>\n );\n }\n\n const getDateRange = (filter) => {\n const now = new Date();\n const start = new Date(now);\n if (filter === \"today\") {\n start.setHours(0, 0, 0, 0);\n return { from: start, to: now };\n }\n if (filter === \"week\") {\n start.setDate(now.getDate() - now.getDay());\n start.setHours(0, 0, 0, 0);\n return { from: start, to: now };\n }\n if (filter === \"month\") {\n start.setDate(1);\n start.setHours(0, 0, 0, 0);\n return { from: start, to: now };\n }\n return null;\n };\n\n const handleDownload = async () => {\n setReportLoading(true);\n try {\n const response = await Digit.EkycService.dashboard(\n {},\n {\n tenantId: \"dl.djb\",\n offset: 0,\n limit: 1000,\n surveyorId: surveyor?.owner?.uuid,\n }\n );\n\n const rows = response?.dashboardInfo?.consumerList || [];\n\n downloadSurveyorPDF({\n rows: rows,\n surveyorName: fullName,\n vendorName,\n supervisorName,\n employeeId,\n mobileNumber,\n dashboardInfo: response?.dashboardInfo || {},\n t,\n });\n } catch (err) {\n console.error(\"Failed to fetch dashboard data for report download:\", err);\n } finally {\n setReportLoading(false);\n }\n };\n\n const handlePresetDownload = async (filter) => {\n const range = getDateRange(filter);\n if (!range) return;\n setShowReportMenu(false);\n setShowCustomPicker(false);\n await handleDownloadEkycData(range.from.getTime(), range.to.getTime());\n };\n\n const handleCustomDownload = async () => {\n if (!customDate.from || !customDate.to) {\n alert(t(\"SELECT_DATE_RANGE\") || \"Please select both From and To dates.\");\n return;\n }\n const from = new Date(customDate.from);\n from.setHours(0, 0, 0, 0);\n const to = new Date(customDate.to);\n to.setHours(23, 59, 59, 999);\n setShowReportMenu(false);\n setShowCustomPicker(false);\n await handleDownloadEkycData(from.getTime(), to.getTime());\n };\n\n const StatCard = ({ title, value, type, isLoading, icon }) => (\n <div className={`stat-card ${type}`}>\n {isLoading ? (\n <React.Fragment>\n <div className=\"stat-title skeleton skeleton-text\"></div>\n <div className=\"stat-value skeleton skeleton-number\"></div>\n </React.Fragment>\n ) : (\n <React.Fragment>\n <div className=\"stat-title\">{title}</div>\n <div className=\"stat-value\">{value}</div>\n {icon && <div className=\"stat-icon\">{icon}</div>}\n </React.Fragment>\n )}\n </div>\n );\n\n const options = [{ action: \"Assign\" }, { action: \"EKYC_REASSIGN\" }];\n\n const handleMenuSelect = (option) => {\n setShowOptions(false); // close menu\n setShowModal(option.action);\n };\n\n const handleDownloadEkycData = async (fromDate, toDate) => {\n setEkycDownloadLoading(true);\n try {\n const response = await Digit.EkycService.application_list({\n tenantId: tenantId || \"dl.djb\",\n offset: 0,\n limit: 10000,\n surveyorId: surveyor?.owner?.uuid,\n reportDownload: true,\n ...(fromDate && { fromDate }),\n ...(toDate && { toDate }),\n });\n\n const consumerList = response?.consumerList || [];\n if (consumerList.length === 0) {\n alert(t(\"NO_DATA_FOUND\") || \"No data found for download.\");\n return;\n }\n\n const excelData = getEkycExcelData(consumerList, t);\n const cleanFileName = `eKYC_Data_${fullName.replace(/[^a-zA-Z0-9]/g, \"_\")}`;\n Digit.Download.Excel(excelData, cleanFileName);\n } catch (error) {\n console.error(\"Error downloading eKYC Excel:\", error);\n } finally {\n setEkycDownloadLoading(false);\n }\n };\n\n const closeModal = async () => {\n setShowModal(null);\n };\n\n return (\n <Card className=\"surveyor-dashboard\">\n {/* Header + Download Report */}\n\n {/* Charts */}\n {/* <div className=\"charts-wrapper\"> */}\n {/* Weekly Chart */}\n {/* <div className=\"chart-card\">\n <h3 className=\"chart-title\">{t(\"WEEKLY_SURVEY_PROGRESS\")}</h3>\n\n <ResponsiveContainer width=\"100%\" height={300}>\n <BarChart data={weeklyData}>\n <CartesianGrid strokeDasharray=\"3 3\" />\n\n <XAxis dataKey=\"day\" />\n\n <YAxis />\n\n <Tooltip />\n\n <Bar dataKey=\"completed\" fill=\"#0B2559\" radius={[6, 6, 0, 0]} />\n </BarChart>\n </ResponsiveContainer>\n </div> */}\n\n {/* Pie Chart */}\n {/* <div className=\"chart-card\">\n <h3 className=\"chart-title\">{t(\"CASE_DISTRIBUTION\")}</h3>\n\n <ResponsiveContainer width=\"100%\" height={300}>\n <PieChart>\n <Pie data={statusData} dataKey=\"value\" nameKey=\"name\" outerRadius={90} label>\n {statusData.map((entry, index) => (\n <Cell key={index} fill={entry.color} />\n ))}\n </Pie>\n\n <Tooltip />\n\n <Legend />\n </PieChart>\n </ResponsiveContainer>\n </div> */}\n {/* </div> */}\n\n {/* Details */}\n <div className=\"ekyc-dashboard-section\">\n <div className=\"ekyc-details-wrapper\">\n {/* Top Row: Mobile, Email, and Download eKYC Data */}\n <div className=\"details-top-row\">\n <div className=\"detail-item first-row\">\n <div className=\"ekyc-dashboard-header\">\n <div className=\"header-content\">\n <h2 className=\"name\">{fullName}</h2>\n <div className=\"designation\">({surveyor?.description || t(\"FIELD_SURVEYOR\")})</div>\n {/* <div className=\"employee-id\">\n {t(\"EMPLOYEE_ID\")}: {employeeId}\n </div> */}\n </div>\n </div>\n\n {/* Download Report — far right */}\n <div className=\"report-download\">\n <button className=\"download-btn\" disabled={reportLoading} onClick={handleDownload}>\n {reportLoading ? t(\"DOWNLOADING\") || \"Downloading...\" : t(\"DOWNLOAD_REPORT\") || \"Download Report\"}\n </button>\n </div>\n </div>\n </div>\n <div className=\"details-top-row\">\n <div className=\"detail-item\">\n <span className=\"label\">{t(\"MOBILE\")}</span>\n <span className=\"value\">{surveyor?.owner?.mobileNumber || surveyor?.mobileNo || \"N/A\"}</span>\n </div>\n\n <div className=\"detail-item\">\n <span className=\"label\">{t(\"EMAIL\")}</span>\n <span className=\"value\">{surveyor?.owner?.emailId || \"N/A\"}</span>\n </div>\n\n <div className=\"download-card\">\n <div>\n <h4>{t(\"DOWNLOAD_EKYC_DATA\") || \"Download eKYC Data\"}</h4>\n <p>\n {t(\"DOWNLOAD_EKYC_DATA_DESC\") || \"Export the complete eKYC verification records for your assigned jurisdiction into Excel format.\"}\n </p>\n </div>\n <div className=\"report-download\" ref={reportMenuRef}>\n <button\n className=\"download-excel-btn\"\n disabled={ekycDownloadLoading}\n onClick={() => {\n setShowReportMenu((p) => !p);\n setShowCustomPicker(false);\n }}\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\" />\n <polyline points=\"7 10 12 15 17 10\" />\n <line x1=\"12\" y1=\"15\" x2=\"12\" y2=\"3\" />\n </svg>\n {ekycDownloadLoading ? t(\"DOWNLOADING\") || \"Downloading...\" : t(\"DOWNLOAD_EXCEL\") || \"Download Excel\"}\n </button>\n\n {showReportMenu && (\n <div className=\"report-menu\">\n {[\n { label: t(\"TODAY\") || \"Today\", key: \"today\" },\n { label: t(\"THIS_WEEK\") || \"This Week\", key: \"week\" },\n { label: t(\"THIS_MONTH\") || \"This Month\", key: \"month\" },\n ].map(({ label, key }) => (\n <div key={key} className=\"menu-item\" onClick={() => handlePresetDownload(key)}>\n {label}\n </div>\n ))}\n\n <div className=\"custom-date-trigger\" onClick={() => setShowCustomPicker((p) => !p)}>\n {t(\"CUSTOM_DATE\") || \"Custom Date\"}\n </div>\n\n {showCustomPicker && (\n <div className=\"custom-picker\">\n <div className=\"date-inputs\">\n <label>\n <span>From</span>\n <input type=\"date\" value={customDate.from} onChange={(e) => setCustomDate({ ...customDate, from: e.target.value })} />\n </label>\n <label>\n <span>To</span>\n <input type=\"date\" value={customDate.to} onChange={(e) => setCustomDate({ ...customDate, to: e.target.value })} />\n </label>\n </div>\n <div style={{ display: \"flex\", gap: \"10px\", marginTop: \"10px\" }}>\n <button\n className=\"picker-cancel-btn\"\n onClick={() => {\n setShowCustomPicker(false);\n setCustomDate({ from: \"\", to: \"\" });\n }}\n >\n {t(\"CANCEL\") || \"Cancel\"}\n </button>\n <button className=\"picker-apply-btn\" onClick={handleCustomDownload}>\n {t(\"APPLY\") || \"Apply\"}\n </button>\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n </div>\n\n {/* Bottom Row: Remaining Details */}\n <div className=\"details-grid-row\">\n <div className=\"detail-item\">\n <span className=\"label\">{t(\"GENDER\")}</span>\n <span className=\"value\">{surveyor?.owner?.gender || \"N/A\"}</span>\n </div>\n\n <div className=\"detail-item\">\n <span className=\"label\">{t(\"STATUS\")}</span>\n <span className=\"value\">{surveyor?.status || \"N/A\"}</span>\n </div>\n\n <div className=\"detail-item\">\n <span className=\"label\">{t(\"VENDOR_NAME\") || \"Vendor Name\"}</span>\n <span className=\"value\">{vendorName}</span>\n </div>\n\n <div className=\"detail-item\">\n <span className=\"label\">{t(\"SUPERVISOR_NAME\") || \"Supervisor Name\"}</span>\n <span className=\"value\">{supervisorName}</span>\n </div>\n </div>\n </div>\n </div>\n\n {/* Stats */}\n <div className=\"stats-wrapper\">\n <StatCard\n title={t(\"TOTAL_ASSIGNED\")}\n value={dashboardData?.dashboardInfo?.total || 0}\n type=\"today\"\n isLoading={isDashboardLoading}\n icon={<FaUsers />}\n />\n <StatCard\n title={t(\"IN_PROGRESS\")}\n value={dashboardData?.dashboardInfo?.inProgressCount || 0}\n type=\"week\"\n isLoading={isDashboardLoading}\n icon={<FaCheckCircle />}\n />\n <StatCard\n title={t(\"PENDING\")}\n value={dashboardData?.dashboardInfo?.pending || 0}\n type=\"pending\"\n isLoading={isDashboardLoading}\n icon={<FaClock />}\n />\n <StatCard\n title={t(\"SUBMITTED\")}\n value={dashboardData?.dashboardInfo?.submittedCount || 0}\n type=\"month\"\n isLoading={isDashboardLoading}\n icon={<FaChartLine />}\n />\n </div>\n\n <div>\n <Table\n t={t}\n tableTitle={t(\"ASSIGNED_KNOS\")}\n tableClass=\"ekycTable\"\n isTableScrollable={true}\n data={dashboardData?.dashboardInfo?.consumerList || []}\n columns={knoColumns}\n isLoading={isDashboardLoading}\n totalRecords={dashboardData?.dashboardInfo?.total}\n currentPage={currentPage}\n pageSizeLimit={pageSize}\n showAutoSerialNo={true}\n isPaginationRequired={true}\n onNextPage={() => {\n const total = dashboardData?.dashboardInfo?.total || 0;\n if (currentPage < Math.ceil(total / pageSize) - 1) {\n setCurrentPage((prev) => prev + 1);\n }\n }}\n onPrevPage={() => {\n if (currentPage > 0) {\n setCurrentPage((prev) => prev - 1);\n }\n }}\n onFirstPage={() => {\n setCurrentPage(0);\n }}\n onLastPage={() => {\n const total = dashboardData?.dashboardInfo?.total || 0;\n setCurrentPage(Math.max(Math.ceil(total / pageSize) - 1, 0));\n }}\n onPageSizeChange={(e) => {\n setPageSize(Number(e.target.value));\n setCurrentPage(0);\n }}\n />\n </div>\n {/* Actions */}\n {roles.includes(\"EKYC_SUPERVISOR\") && (\n <ActionBar>\n <SubmitBar label={t(\"EKYC_ASSIGN_KNOS\")} onSubmit={() => setShowOptions((prev) => !prev)} />\n\n {showOptions && (\n <Menu\n options={options}\n optionKey={\"action\"}\n t={t}\n onSelect={handleMenuSelect}\n style={{\n color: \"#FFFFFF\",\n fontSize: \"18px\",\n }}\n />\n )}\n </ActionBar>\n )}\n\n {showModal && (\n <AssignEkycModal surveyor={surveyor} isReassign={showModal === \"EKYC_REASSIGN\"} closeModal={closeModal} refetchDashboard={refetchDashboard} />\n )}\n </Card>\n );\n};\n\nexport default SurveyorDetailsCard;\n","import React, { useState, useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\nimport { Label, DatePicker, SubmitBar, Toast, Dropdown, UploadFile, CollapsibleCardPage, VerticalTimeline } from \"@djb25/digit-ui-react-components\";\n\nconst WorkOrder = () => {\n const tenantId = Digit.ULBService.getCurrentTenantId();\n const { t } = useTranslation();\n const history = useHistory();\n\n const [showToast, setShowToast] = useState(null);\n const [vendor, setVendor] = useState(null);\n const [validFrom, setValidFrom] = useState(\"\");\n const [validTo, setValidTo] = useState(\"\");\n const [uploadedFile, setUploadedFile] = useState(null);\n const [file, setFile] = useState(null);\n const [error, setError] = useState(null);\n\n const { data: vendorOptions, isLoading: isVendorLoading } = Digit.Hooks.fsm.useVendorSearch({\n tenantId,\n filters: { status: \"ACTIVE\" },\n config: {\n select: (data) => data?.vendor || [],\n },\n });\n\n const { mutate: createWorkOrder } = Digit.Hooks.wt.useVendorWorkOrderCreate(tenantId);\n\n useEffect(() => {\n (async () => {\n setError(null);\n if (file) {\n if (file.size >= 10000000) {\n setError(t(\"EKYC_MAXIMUM_UPLOAD_SIZE_EXCEEDED\") || \"File size exceeds 10MB\");\n } else {\n try {\n const response = await Digit.UploadServices.Filestorage(\"EKYC\", file, Digit.ULBService.getStateId());\n if (response?.data?.files?.length > 0) {\n setUploadedFile(response?.data?.files[0]?.fileStoreId);\n } else {\n setError(t(\"EKYC_FILE_UPLOAD_ERROR\"));\n }\n } catch (err) {\n setError(t(\"EKYC_FILE_UPLOAD_ERROR\"));\n }\n }\n }\n })();\n }, [file]);\n\n const handleSubmit = () => {\n const payload = {\n vendorWorkOrder: {\n tenantId,\n name: vendor?.name,\n mobileNumber: vendor?.owner?.mobileNumber,\n emailId: vendor?.owner?.emailId,\n vendorId: vendor?.code || vendor?.id,\n validFrom: new Date(validFrom).getTime(),\n validTo: new Date(validTo).getTime(),\n serviceType: \"EKYC\",\n fileStoreId: uploadedFile,\n },\n };\n\n createWorkOrder(payload, {\n onSuccess: (result) => {\n setShowToast({ isError: false, label: t(\"EKYC_WORK_ORDER_SAVE_SUCCESS\") });\n setTimeout(() => {\n history.push(\"/digit-ui/employee/module/details\");\n }, 3000);\n },\n onError: (err) => {\n setShowToast({ isError: true, label: err?.response?.data?.Errors?.[0]?.message || t(\"EKYC_WORK_ORDER_SAVE_ERROR\") });\n },\n });\n };\n\n function selectfile(e) {\n setUploadedFile(null);\n setFile(e.target.files[0]);\n }\n\n const isFormDisabled = !vendor || !validFrom || !validTo || !uploadedFile;\n const isMobile = window.Digit.Utils.browser.isMobile();\n\n return (\n <div className=\"employee-form-section-wrapper\">\n <VerticalTimeline config={[{ timeLine: [{ actions: t(\"EKYC_WORK_ORDER_ASSIGN\"), currentStep: 1 }] }]} showFinalStep={false} />\n\n <div style={{ flex: 1 }}>\n <CollapsibleCardPage title={t(\"EKYC_UPLOAD_WORK_ORDER\")} defaultOpen={true}>\n <div className=\"formcomposer-section-grid\">\n <div style={{ display: \"flex\", flexDirection: \"column\" }}>\n <Label>\n {`${t(\"EKYC_VENDOR_NAME\")}`} <span className=\"check-page-link-button\">*</span>\n </Label>\n <Dropdown t={t} option={vendorOptions} optionKey=\"name\" select={setVendor} selected={vendor} placeholder={t(\"EKYC_SELECT_VENDOR\")} />\n </div>\n\n <div style={{ display: \"flex\", flexDirection: \"column\" }}>\n <Label>\n {`${t(\"COMMON_VALID_FROM_DATE\")}`} <span className=\"check-page-link-button\">*</span>\n </Label>\n <DatePicker date={validFrom} onChange={(date) => setValidFrom(date)} style={{ width: \"100%\" }} />\n </div>\n\n <div style={{ display: \"flex\", flexDirection: \"column\" }}>\n <Label>\n {`${t(\"COMMON_VALID_TO_DATE\")}`} <span className=\"check-page-link-button\">*</span>\n </Label>\n <DatePicker date={validTo} min={validFrom} onChange={(date) => setValidTo(date)} style={{ width: \"100%\" }} />\n </div>\n\n <div style={{ display: \"flex\", flexDirection: \"column\" }}>\n <Label>{`${t(\"EKYC_UPLOAD_DOCUMENT\")}`} <span className=\"check-page-link-button\">*</span></Label>\n <UploadFile\n id={\"ekyc-doc\"}\n extraStyleName={\"propertyCreate\"}\n accept=\"image/*, .pdf, .png, .jpeg, .jpg\"\n onUpload={selectfile}\n onDelete={() => setUploadedFile(null)}\n message={uploadedFile ? `1 ${t(`EKYC_ACTION_FILEUPLOADED`)}` : t(`EKYC_ACTION_NO_FILEUPLOADED`)}\n error={error}\n />\n </div>\n </div>\n </CollapsibleCardPage>\n\n <div style={{ display: \"flex\", marginTop: \"24px\", justifyContent: isMobile ? \"center\" : \"flex-end\" }}>\n <SubmitBar label={t(\"ES_COMMON_SAVE\")} onSubmit={isFormDisabled ? null : handleSubmit} disabled={isFormDisabled} />\n </div>\n </div>\n\n {showToast && <Toast error={showToast.isError} label={showToast.label} onClose={() => setShowToast(null)} />}\n </div>\n );\n};\n\nexport default WorkOrder;\n","import React from \"react\";\nexport function formReducer(state, payload) {\n const storageKey = \"EKYC.SW.INBOX\";\n\n // ✅ safety for SLA\n switch (payload.action) {\n case \"mutateSearchForm\":\n Digit.SessionStorage.set(storageKey, { ...state, searchForm: payload.data });\n return { ...state, searchForm: payload.data };\n\n case \"mutateFilterForm\":\n Digit.SessionStorage.set(storageKey, { ...state, filterForm: payload.data });\n return { ...state, filterForm: payload.data };\n\n case \"mutateTableForm\":\n Digit.SessionStorage.set(storageKey, { ...state, tableForm: payload.data });\n return { ...state, tableForm: payload.data };\n\n default:\n return state; // ✅ IMPORTANT\n }\n}\n\nexport const formInitValue = {\n filterForm: {},\n searchForm: {},\n tableForm: {\n limit: 10,\n offset: 0,\n sortBy: \"createdTime\",\n sortOrder: \"DESC\",\n },\n};\n\nexport const tableColumnConfig = (t, handleReview) => [\n {\n Header: t(\"SURVEYOR_NAME\"),\n accessor: \"surveyorName\",\n Cell: ({ row }) => {\n const id = row.original?.id;\n return (\n <span className=\"link\" onClick={() => handleReview(id)}>\n {row.original?.surveyorName || row.original?.name || \"NA\"}\n </span>\n );\n },\n },\n // {\n // Header: t(\"SURVEYOR_NAME\"),\n // accessor: \"surveyorName\",\n // Cell: ({ row }) => <span>{row.original?.surveyorName || row.original?.name || \"NA\"}</span>,\n // },\n {\n Header: t(\"MOBILE_NUMBER\"),\n accessor: \"mobileNo\",\n Cell: ({ row }) => <span>{row.original?.mobileNo || row.original?.owner?.mobileNumber || \"NA\"}</span>,\n },\n {\n Header: t(\"STATUS\"),\n accessor: \"status\",\n Cell: ({ row }) => {\n const status = row.original?.status || \"DEFAULT\";\n return <span className={`ekyc-status-tag ${status}`}>{t(status)}</span>;\n },\n },\n {\n Header: t(\"SERVICE_TYPE\"),\n accessor: \"serviceType\",\n Cell: ({ row }) => <span>{row.original?.serviceType || \"NA\"}</span>,\n },\n];\n","import { useHistory } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport { tableColumnConfig } from \"../../../vendor/src/config/tableConfig\";\n\nconst SupervisorInboxTableConfig = ({\n onPageSizeChange,\n formState,\n totalCount,\n table,\n dispatch,\n onSortingByData,\n inboxStyles = {},\n tableStyle = {},\n}) => {\n const { t } = useTranslation();\n const history = useHistory();\n\n const userType = Digit.SessionStorage.get(\"User\")?.info?.type?.toLowerCase() || \"citizen\";\n\n const handleReview = (id) => {\n history.push(`/digit-ui/${userType}/ekyc/assign/surveyor-details/${id}`);\n };\n\n const limit = formState?.tableForm?.limit || 10;\n const offset = formState?.tableForm?.offset || 0;\n\n return {\n disableSort: false,\n autoSort: false,\n manualPagination: true,\n\n currentPage: Math.floor(offset / limit),\n\n onPageSizeChange,\n\n onNextPage: () =>\n dispatch({\n action: \"mutateTableForm\",\n data: {\n ...formState.tableForm,\n offset: Number(offset) + Number(limit),\n },\n }),\n\n onPrevPage: () =>\n dispatch({\n action: \"mutateTableForm\",\n data: {\n ...formState.tableForm,\n offset: Number(offset) - Number(limit),\n },\n }),\n\n onLastPage: () =>\n dispatch({\n action: \"mutateTableForm\",\n data: {\n ...formState.tableForm,\n offset: Math.ceil(totalCount / limit) * limit - Number(limit),\n },\n }),\n\n onFirstPage: () =>\n dispatch({\n action: \"mutateTableForm\",\n data: { ...formState.tableForm, offset: 0 },\n }),\n\n totalRecords: totalCount,\n onSort: onSortingByData,\n\n data: table,\n columns: tableColumnConfig(t, handleReview),\n\n inboxStyles: { ...inboxStyles },\n tableStyle: { ...tableStyle },\n };\n};\n\nexport default SupervisorInboxTableConfig;\n","import React, { useMemo, useCallback, useReducer } from \"react\";\nimport { InboxComposer } from \"@djb25/digit-ui-react-components\";\nimport SupervisorInboxTableConfig from \"../hook/SupervisorInboxTableConfig\";\nimport SearchFormFieldsComponents from \"./SearchFormFieldsComponent\";\nimport { formInitValue, formReducer } from \"../../../vendor/src/config/tableConfig\";\nimport useInboxMobileCardsData from \"../hook/useInboxMobileCardsData\";\n\n// Mock data removed in favor of API integration\n\nconst AssignEkyc = () => {\n const [formState, dispatch] = useReducer(formReducer, formInitValue);\n\n let paginationParms = {\n limit: formState?.tableForm?.limit || 10,\n offset: formState?.tableForm?.offset || 0,\n sortBy: formState?.tableForm?.sortBy || \"createdTime\",\n sortOrder: formState?.tableForm?.sortOrder || \"DESC\",\n };\n\n const mobileNumber = formState?.searchForm?.mobileNumber || \"\";\n const isSearchActive = !!mobileNumber;\n\n const filters = {\n ...paginationParms,\n status: \"ACTIVE,DISABLED\",\n };\n\n if (isSearchActive) {\n filters.mobileNumber = mobileNumber;\n }\n\n const { data: dashboardData, isLoading } = Digit.Hooks.fsm.useSurveyorSearch(\"dl.djb\", filters, { enabled: true, keepPreviousData: true });\n\n const sourceData = useMemo(() => {\n return dashboardData?.surveyors || [];\n }, [dashboardData]);\n\n const filteredData = useMemo(() => {\n return (sourceData || []).map((item) => {\n const owner = item?.owner || {};\n const roleCodes = owner?.roles?.map((role) => role.code)?.join(\", \") || \"\";\n\n return {\n ...item,\n id: item?.id || \"\",\n surveyorName: item?.name || owner?.name || \"\",\n mobileNo: item?.mobileNo || owner?.mobileNumber || \"\",\n email: owner?.emailId || \"\",\n vendorId: item?.vendorId || \"\",\n tenantId: item?.tenantId || \"\",\n supervisorId: item?.supervisorId || \"\",\n status: item?.status || \"\",\n roleCodes,\n userName: owner?.userName || \"\",\n gender: owner?.gender || \"\",\n serviceType: item?.additionalDetails?.serviceType || \"\",\n createdTime: item?.auditDetails?.createdTime || 0,\n lastModifiedTime: item?.auditDetails?.lastModifiedTime || 0,\n };\n });\n }, [sourceData]);\n\n const totalRecords = dashboardData?.dashboardInfo?.totalRecords || dashboardData?.totalCount || 0;\n\n // const PropsForInboxLinks = {\n // headerText: \"EKYC_MODULE\",\n // };\n\n const SearchFormFields = useCallback(\n ({ registerRef, searchFormState, controlSearchForm }) => (\n <SearchFormFieldsComponents {...{ registerRef, searchFormState, controlSearchForm }} searchType=\"mobile\" className=\"search\" />\n ),\n []\n );\n\n const tableOrderFormDefaultValues = {\n sortBy: \"createdTime\",\n limit: window.Digit.Utils.browser.isMobile() ? 50 : 10,\n offset: 0,\n sortOrder: \"DESC\",\n };\n\n const onSearchFormSubmit = (data) => {\n data.hasOwnProperty(\"\") && delete data?.[\"\"];\n dispatch({ action: \"mutateTableForm\", data: { ...tableOrderFormDefaultValues } });\n dispatch({ action: \"mutateSearchForm\", data });\n };\n\n const searchFormDefaultValues = {\n mobileNumber: \"\",\n applicationNumber: \"\",\n consumerNo: \"\",\n };\n\n const onSearchFormReset = (setSearchFormValue) => {\n setSearchFormValue(\"mobileNumber\", null);\n setSearchFormValue(\"applicationNumber\", null);\n setSearchFormValue(\"consumerNo\", null);\n dispatch({ action: \"mutateSearchForm\", data: searchFormDefaultValues });\n };\n\n const propsForSearchForm = {\n SearchFormFields,\n onSearchFormSubmit,\n searchFormDefaultValues: formState?.searchForm,\n resetSearchFormDefaultValues: searchFormDefaultValues,\n onSearchFormReset,\n className: \"search-form-wns-inbox\",\n };\n\n // const FilterFormFields = useCallback(\n // ({ registerRef, controlFilterForm, setFilterFormValue, getFilterFormValue }) => <React.Fragment></React.Fragment>,\n // []\n // );\n\n // const propsForFilterForm = {\n // FilterFormFields,\n // onFilterFormSubmit: () => { },\n // filterFormDefaultValues: \"\",\n // resetFilterFormDefaultValues: \"\",\n // onFilterFormReset: () => { },\n // };\n\n const onPageSizeChange = (e) => {\n const newLimit = Number(e.target.value);\n\n dispatch({\n action: \"mutateTableForm\",\n data: {\n ...formState.tableForm,\n limit: newLimit,\n offset: 0, // reset page\n },\n });\n };\n\n const onSortingByData = (e) => {\n if (e.length > 0) {\n const [{ id, desc }] = e;\n const sortOrder = desc ? \"DESC\" : \"ASC\";\n const sortBy = id;\n\n if (!(formState.tableForm.sortBy === sortBy && formState.tableForm.sortOrder === sortOrder)) {\n dispatch({\n action: \"mutateTableForm\",\n data: {\n ...formState.tableForm,\n sortBy: id,\n sortOrder: desc ? \"DESC\" : \"ASC\",\n },\n });\n }\n }\n };\n\n const propsForInboxTable = SupervisorInboxTableConfig({\n ...{\n onPageSizeChange,\n formState,\n totalCount: totalRecords,\n table: filteredData,\n dispatch,\n onSortingByData,\n tenantId: \"dl.djb\",\n inboxStyles: { overflowX: \"scroll\", overflowY: \"hidden\" },\n tableStyle: { width: \"70%\" },\n },\n });\n\n const isInboxLoading = isLoading;\n\n const onMobileSortOrderData = (data) => {\n const { sortOrder } = data;\n dispatch({ action: \"mutateTableForm\", data: { ...formState.tableForm, sortOrder } });\n };\n\n const onSortFormReset = (setSortFormValue) => {\n setSortFormValue(\"sortOrder\", \"DESC\");\n dispatch({ action: \"mutateTableForm\", data: tableOrderFormDefaultValues });\n };\n\n const propsForMobileSortForm = { onMobileSortOrderData, sortFormDefaultValues: formState?.tableForm, onSortFormReset };\n const propsForInboxMobileCards = useInboxMobileCardsData({ table: filteredData, isSupervisor: true });\n\n return (\n <div className=\"app-container\">\n <InboxComposer\n {...{\n isInboxLoading,\n // PropsForInboxLinks,\n ...propsForSearchForm,\n // ...propsForFilterForm,\n ...propsForMobileSortForm,\n propsForInboxTable,\n propsForInboxMobileCards,\n formState,\n countData: dashboardData?.dashboardInfo,\n // cards,\n isCardLoading: false,\n showSearchOnMobile: true,\n forceTable: true,\n }}\n />\n </div>\n );\n};\n\nexport default AssignEkyc;\n","import Dashboard from \"../components/Dashboard\";\nimport Inbox from \"../pages/employee/Inbox\";\n// import Create from \"../pages/employee/Create\";\n// import Mapping from \"../pages/employee/Mapping\";\nimport EKYCForm from \"../pages/employee/EKYCForm\";\nimport Review from \"../components/Review\";\nimport AssignEkyc from \"../components/AssignEkyc\";\nimport AdminDashboard from \"../components/AdminDashboard\";\n// import CeoDashboard from \"../components/CeoDashboard\";\nimport VendorDetailsCard from \"../components/VendorDetailsCard\";\nimport SupervisorDetailsCard from \"../components/SupervisorDetailsCard\";\nimport SurveyorDetailsCard from \"../components/SurveyorDetailsCard\";\nimport WorkOrder from \"../pages/employee/WorkOrder\";\n\n// yeh function role (employee/citizen) leta hai aur uske hisaab se\n// breadcrumb ka URL bana deta hai. Baaki sab kuch same rehta hai.\nconst breadcrumb = (userType, listLabel, listPath, detailLabel) => [\n { label: listLabel, path: `/digit-ui/${userType}/ekyc/${listPath}` },\n { label: detailLabel },\n];\n\n// 👇 isi function ko employee ke liye bhi call karenge, citizen ke liye bhi\nexport const getEkycRoutes = (userType, t) => [\n // ---- simple pages ----\n { path: \"/dashboard\", component: Dashboard, layout: \"normal\", breadcrumb: \"EKYC_DASHBOARD\" },\n { path: \"/inbox\", component: Inbox, layout: \"normal\", breadcrumb: \"EKYC_INBOX\" },\n { path: \"/review/:kno\", component: Review, layout: \"normal\", breadcrumb: \"EKYC_REVIEW\" },\n // { path: \"/create-kyc\", component: Create, layout: \"normal\", breadcrumb: \"EKYC_CREATE_KYC\" },\n // { path: \"/mapping\", component: Mapping, layout: \"normal\", breadcrumb: \"EKYC_MAPPING\" },\n { path: \"/admin-dashboard\", component: AdminDashboard, layout: \"normal\", breadcrumb: \"EKYC_ADMIN_DASHBOARD\" },\n // { path: \"/work-order\", component: WorkOrder, layout: \"normal\", breadcrumb: \"EKYC_WORK_ORDER\" },\n { path: \"/work-order\", component: WorkOrder, layout: \"normal\", breadcrumb: \"EKYC_WORK_ORDER\" },\n // { path: \"/ceo-dashboard\", component: CeoDashboard, layout: \"normal\", breadcrumb: \"CEO_M.F_DOR_FINANCE_VIEW\" },\n\n // ---- EKYC form ke 4 steps ----\n { path: \"/consumer-details\", component: EKYCForm, layout: \"normal\", breadcrumb: \"EKYC_CONSUMER_DETAILS\" },\n { path: \"/address-details\", component: EKYCForm, layout: \"normal\", breadcrumb: \"EKYC_ADDRESS_DETAILS\" },\n { path: \"/property-info\", component: EKYCForm, layout: \"normal\", breadcrumb: \"EKYC_PROPERTY_INFO\" },\n { path: \"/meter-details\", component: EKYCForm, layout: \"normal\", breadcrumb: \"EKYC_METER_DETAILS\" },\n\n // ---- assign ----\n {\n path: [\"/assign\"],\n component: AssignEkyc,\n layout: \"normal\",\n breadcrumb: [{ label: \"EKYC_ASSIGN\", path: `/digit-ui/${userType}/ekyc/assign` }],\n },\n\n // ---- detail-card wale routes ----\n // {\n // path: [\"/review/:kno\", \"/review\"],\n // component: Review,\n // layout: \"action\",\n // breadcrumb: breadcrumb(userType, \"EKYC_INBOX\", \"inbox:kno\", \"EKYC_REVIEW\"),\n // },\n {\n path: [\"/vendors/:vendorId\", \"/vendors\"],\n component: VendorDetailsCard,\n layout: \"normal\",\n breadcrumb: breadcrumb(userType, \"EKYC_VENDORS\", \"admin-dashboard\", \"EKYC_VENDOR_DETAILS\"),\n },\n {\n path: [\"/supervisor-dashboard/:id\", \"/supervisor-dashboard\"],\n component: SupervisorDetailsCard,\n layout: \"action\",\n breadcrumb: breadcrumb(userType, \"EKYC_SUPERVISOR_DASHBOARD\", \"supervisor-dashboard:id\", \"EKYC_SUPERVISOR_DETAILS\"),\n },\n {\n path: [\"/surveyor-dashboard/:id\", \"/surveyor-dashboard\"],\n component: SurveyorDetailsCard,\n layout: \"action\",\n breadcrumb: breadcrumb(userType, \"EKYC_SURVEYOR_DASHBOARD\", \"surveyor-dashboard/:id\", \"EKYC_SURVEYOR_DETAILS\"),\n },\n];\n\n// dono role ke liye ready-made arrays — jaha jaruratho wahi import karo\nexport const ekycRoutes = getEkycRoutes(\"employee\"); // employee ke liye\nexport const citizenEkycRoutes = getEkycRoutes(\"citizen\"); // citizen ke liye\n","import { AppContainer, PrivateRoute, ModuleHeader, ArrowLeft, HomeIcon, LayoutWrapper } from \"@djb25/digit-ui-react-components\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Switch, useLocation } from \"react-router-dom\";\nimport Dashboard from \"../../components/Dashboard\";\n// import CeoDashboard from \"../../components/CeoDashboard.jsx\";\nimport VendorDetailsCard from \"../../components/VendorDetailsCard.js\";\nimport Inbox from \"./Inbox\";\n// import Mapping from \"./Mapping\";\n// import Create from \"./Create\";\nimport Review from \"../../components/Review\";\nimport EKYCForm from \"./EKYCForm\";\n// import AssignEkyc from \"../../components/AssignEkyc.js\";\nimport AdminDashboard from \"../../components/AdminDashboard.js\";\nimport SupervisorDetailsCard from \"../../components/SupervisorDetailsCard.js\";\nimport SurveyorDetailsCard from \"../../components/SurveyorDetailsCard.js\"\nimport WorkOrder from \"./WorkOrder\";\nimport { ekycRoutes } from \"../../config/Routes\";\n\nconst EmployeeApp = ({ path }) => {\n const { t } = useTranslation();\n const location = useLocation();\n\n sessionStorage.removeItem(\"revalidateddone\");\n\n // const getDynamicBreadcrumbs = () => {\n // const pathname = location.pathname;\n\n // // Parent crumb — always present and clickable → redirects to eKYC inbox\n // const crumbs = [\n // { icon: HomeIcon, path: \"/digit-ui/employee\" },\n // { label: t(\"ACTION_TEST_EKYC\"), path: `/digit-ui/employee/module/details` },\n // ];\n\n // // Child crumb — only appended when on a sub-page (not inbox/dashboard itself)\n // if (pathname.includes(\"/create-kyc\")) {\n // crumbs.push({ label: t(\"EKYC_CREATE_KYC\") });\n // } else if (pathname.includes(\"/consumer-details\")) {\n // crumbs.push({ label: t(\"EKYC_CONSUMER_DETAILS\") });\n // } else if (pathname.includes(\"/address-details\")) {\n // crumbs.push({ label: t(\"EKYC_ADDRESS_DETAILS\") });\n // } else if (pathname.includes(\"/property-info\")) {\n // crumbs.push({ label: t(\"EKYC_PROPERTY_INFO\") });\n // } else if (pathname.includes(\"/meter-details\")) {\n // crumbs.push({ label: t(\"EKYC_METER_DETAILS\") });\n // } else if (pathname.includes(\"/review\")) {\n // crumbs.push({ label: t(\"EKYC_INBOX\"), path: `/digit-ui/employee/ekyc/inbox` });\n // crumbs.push({ label: t(\"EKYC_REVIEW\") });\n // } else if (pathname.includes(\"/surveyor-dashboard\") || pathname.includes(\"/assign/surveyor-details\")) {\n // crumbs.push({ label: t(\"EKYC_SURVEYOR_DASHBOARD\") || \"Surveyor Dashboard\" });\n // } else if (pathname.includes(\"/assign\")) {\n // crumbs.push({ label: t(\"EKYC_ASSIGN\") });\n // } else if (pathname.includes(\"/ceo-dashboard\")) {\n // crumbs.push({ label: t(\"CEO_M.F_DOR_FINANCE_VIEW\") });\n // } else if (pathname.includes(\"/admin-dashboard\")) {\n // crumbs.push({ label: t(\"EKYC_ADMIN_DASHBOARD\") || \"Admin Dashboard\" });\n // } else if (pathname.includes(\"/supervisor-dashboard\")) {\n // crumbs.push({ label: t(\"EKYC_SUPERVISOR_DASHBOARD\") || \"Supervisor Dashboard\" });\n // } else if (pathname.includes(\"/surveyor-dashboard\")) {\n // crumbs.push({ label: t(\"EKYC_SURVEYOR_DASHBOARD\") });\n // } else if (pathname.includes(\"/vendors/\")) {\n // crumbs.push({ label: t(\"EKYC_VENDOR_DETAILS\") });\n // } else if (pathname.includes(\"/mapping\")) {\n // crumbs.push({ label: t(\"EKYC_MAPPING\") });\n // } else if (pathname.includes(\"/dashboard\")) {\n // crumbs.push({ label: t(\"EKYC_DASHBOARD\") });\n // } else if (pathname.includes(\"/inbox\")) {\n // crumbs.push({ label: t(\"EKYC_INBOX\") });\n // }\n // // dashboard & inbox → no child crumb (only \"eKYC Admin\" shown)\n\n // return crumbs;\n // };\n\n const getDynamicBreadcrumbs = () => {\n const crumbs = [\n { icon: HomeIcon, path: \"/digit-ui/employee\" },\n { label: t(\"ACTION_TEST_EKYC\"), path: \"/digit-ui/employee/module/details\" },\n ];\n const pathSegments = location.pathname.split(\"/\").filter(Boolean);\n const ekycIndex = pathSegments.indexOf(\"ekyc\");\n const relativeSegments = ekycIndex !== -1 ? pathSegments.slice(ekycIndex + 1) : [];\n\n let matchedPath = \"\";\n const currentRoute = ekycRoutes.find((route) => {\n const paths = Array.isArray(route.path) ? route.path : [route.path];\n return paths.some((singlePath) => {\n const routeSegments = singlePath.split(\"/\").filter(Boolean);\n if (routeSegments.length === relativeSegments.length && routeSegments.every((seg, i) => seg.startsWith(\":\") || seg === relativeSegments[i])) {\n matchedPath = singlePath;\n return true;\n }\n return false;\n });\n });\n\n if (currentRoute) {\n if (Array.isArray(currentRoute.breadcrumb)) {\n currentRoute.breadcrumb.forEach((crumb) => {\n let crumbPath = crumb.path;\n if (crumbPath && matchedPath) {\n matchedPath.split(\"/\").filter(Boolean).forEach((segment, idx) => {\n if (segment.startsWith(\":\")) {\n const val = relativeSegments[idx];\n crumbPath = crumbPath.replace(new RegExp(`\\\\/${segment}`, \"g\"), `/${val}`)\n .replace(new RegExp(`(\\\\w+)${segment}`, \"g\"), `$1/${val}`)\n .replace(new RegExp(segment, \"g\"), val);\n }\n });\n }\n crumbs.push({ label: t(crumb.label), ...(crumbPath ? { path: crumbPath } : {}) });\n });\n } else {\n crumbs.push({ label: t(currentRoute.breadcrumb) });\n }\n }\n return crumbs;\n };\n const formStepRoutes = [\"consumer-details\", \"address-details\", \"property-info\", \"meter-details\"];\n\n return (\n <AppContainer>\n <div className=\"ground-container employee-app-container form-container\">\n <ModuleHeader\n leftContent={\n <React.Fragment>\n <ArrowLeft className=\"icon\" />\n Back\n </React.Fragment>\n }\n onLeftClick={() => window.history.back()}\n breadcrumbs={getDynamicBreadcrumbs()}\n />\n\n <div className=\"employee-form\">\n <Switch>\n <PrivateRoute\n path={`${path}/dashboard`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <Dashboard parentRoute={path} businessService=\"EKYC\" moduleCode=\"EKYC\" isInbox={true} />\n </LayoutWrapper>\n )}\n />\n <PrivateRoute\n path={`${path}/inbox`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <Inbox parentRoute={path} businessService=\"EKYC\" moduleCode=\"EKYC\" isInbox={true} />\n </LayoutWrapper>\n )}\n />\n\n {/* <PrivateRoute\n path={`${path}/create-kyc`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <Create />\n </LayoutWrapper>\n )}\n /> */}\n\n {/* <PrivateRoute\n path={`${path}/mapping`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <Mapping />\n </LayoutWrapper>\n )}\n /> */}\n {/* <PrivateRoute\n path={`${path}/assign`}\n exact\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <AssignEkyc />\n </LayoutWrapper>\n )}\n /> */}\n <PrivateRoute\n path={`${path}/assign/surveyor-details/:id`}\n exact\n component={() => (\n <LayoutWrapper layoutClass=\"action\">\n <SurveyorDetailsCard />\n </LayoutWrapper>\n )}\n />\n\n <PrivateRoute\n path={formStepRoutes.map((route) => `${path}/${route}`)}\n component={(props) => (\n <LayoutWrapper layoutClass=\"normal\">\n <EKYCForm {...props} path={path} />\n </LayoutWrapper>\n )}\n />\n\n <PrivateRoute\n path={`${path}/review/:kno`}\n component={() => (\n <LayoutWrapper layoutClass=\"action\">\n <Review />\n </LayoutWrapper>\n )}\n />\n\n {/* <PrivateRoute\n path={`${path}/ceo-dashboard`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <CeoDashboard />\n </LayoutWrapper>\n )}\n /> */}\n\n <PrivateRoute\n path={`${path}/admin-dashboard`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <AdminDashboard />\n </LayoutWrapper>\n )}\n />\n\n <PrivateRoute\n path={`${path}/vendors/:vendorId`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <VendorDetailsCard />\n </LayoutWrapper>\n )}\n />\n\n <PrivateRoute\n path={[`${path}/supervisor-dashboard/:id`, `${path}/supervisor-dashboard`]}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <SupervisorDetailsCard />\n </LayoutWrapper>\n )}\n />\n\n <PrivateRoute\n path={[`${path}/surveyor-dashboard/:id`, `${path}/surveyor-dashboard`]}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <SurveyorDetailsCard />\n </LayoutWrapper>\n )}\n />\n\n <PrivateRoute\n path={`${path}/work-order`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <WorkOrder />\n </LayoutWrapper>\n )}\n />\n\n {/* <PrivateRoute\n path={`${path}/`}\n component={() => <Inbox parentRoute={path} businessService=\"EKYC\" moduleCode=\"EKYC\" isInbox={true} />}\n /> */}\n </Switch>\n </div>\n </div>\n </AppContainer>\n );\n};\n\nexport default EmployeeApp;\n","import React from \"react\";\nimport { UploadFile, Dropdown } from \"@djb25/digit-ui-react-components\";\n\nconst PropertyInfoConfig = (t, formData = {}, uploadFile, buildingImage, buildingImageId, setBuildingImage, setBuildingImageId) => {\n const propertyType = formData?.propertyType?.name || formData?.propertyType;\n const isHotel = propertyType === \"Hotel\";\n const isHospitalOrNursing = propertyType === \"Hospital\" || propertyType === \"Nursing Home\";\n\n const fields = [\n {\n label: t(\"PID Number\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"pidNumber\",\n },\n },\n {\n label: t(\"Property Type\"),\n isMandatory: false,\n type: \"custom\",\n key: \"propertyType\",\n populators: {\n name: \"propertyType\",\n component: (props) => (\n <Dropdown\n option={[\n { name: \"Residential\" },\n { name: \"Commercial\" },\n { name: \"Hotel\" },\n { name: \"Hospital\" },\n { name: \"Nursing Home\" },\n ]}\n optionKey=\"name\"\n selected={props.value}\n select={props.onChange}\n />\n ),\n },\n },\n {\n label: t(\"Sub Property Category\"),\n isMandatory: false,\n type: \"custom\",\n key: \"subPropertyCategory\",\n populators: {\n name: \"subPropertyCategory\",\n component: (props) => (\n <Dropdown\n option={[]}\n optionKey=\"name\"\n selected={props.value}\n select={props.onChange}\n />\n ),\n },\n },\n {\n label: t(\"No. of Floors\"),\n isMandatory: true,\n type: \"number\",\n populators: {\n name: \"noOfFloors\",\n validation: {\n required: true,\n min: 1,\n },\n },\n },\n {\n label: t(\"Floor No. of this KNO\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"floorNo\",\n },\n },\n {\n label: isHospitalOrNursing ? t(\"No of Beds\") : t(\"No of Beds\"),\n isMandatory: isHospitalOrNursing,\n type: \"number\",\n populators: {\n name: \"noOfBeds\",\n validation: isHospitalOrNursing ? { required: true, min: 1 } : {},\n },\n },\n {\n label: isHotel ? t(\"No. of Rooms\") : t(\"No. of Rooms\"),\n isMandatory: isHotel,\n type: \"number\",\n populators: {\n name: \"noOfRooms\",\n validation: isHotel ? { required: true, min: 1 } : {},\n },\n },\n {\n label: t(\"Number of Dwelling Units\"),\n isMandatory: false,\n type: \"number\",\n populators: {\n name: \"dwellingUnits\",\n },\n },\n {\n label: t(\"Building Image\"),\n isMandatory: true,\n type: \"custom\",\n key: \"buildingImage\",\n populators: {\n name: \"buildingImage\",\n component: (props) => (\n <div>\n <UploadFile\n onUpload={(e) => uploadFile(e, props.onChange)}\n onDelete={() => {\n props.onChange(null);\n setBuildingImage(null);\n setBuildingImageId(null);\n }}\n message={buildingImageId ? t(\"Uploaded\") : t(\"No file selected\")}\n />\n {buildingImage && (\n <div style={{ marginTop: \"10px\" }}>\n <img\n src={buildingImage}\n alt=\"preview\"\n style={{ maxWidth: \"100%\", maxHeight: \"200px\", objectFit: \"contain\" }}\n />\n </div>\n )}\n </div>\n ),\n },\n },\n ];\n\n return [\n {\n head: t(\"EKYC_PROPERTY_DETAILS\"),\n body: fields,\n },\n ];\n};\n\nexport default PropertyInfoConfig;\n","import React, { useState, Fragment, useEffect } from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport { Toast, Loader, FormComposer } from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\nimport PropertyInfoConfig from \"../config/PropertyInfoConfig\";\n\nconst PropertyInfo = ({ config, onSelect, formData }) => {\n const { t } = useTranslation();\n const location = useLocation();\n const flowState = location.state || {};\n const tenantId = Digit.ULBService.getCurrentTenantId();\n\n const queryParams = new URLSearchParams(location.search);\n const urlKno = queryParams.get(\"kno\");\n const searchKno =\n urlKno ||\n flowState?.kNumber ||\n flowState?.kno ||\n formData?.kNumber ||\n formData?.kno ||\n sessionStorage.getItem(\"EKYC_K_NUMBER\");\n\n const { isLoading, data: searchData } = Digit.Hooks.ekyc.useSearchConnection(\n { tenantId, details: { kno: searchKno, fetchType: \"PROPERTY\" } },\n { enabled: !!searchKno, cacheTime: 0 }\n );\n\n const updateMutation = Digit.Hooks.ekyc.useEkycUpdate(tenantId);\n\n const savedData = formData?.propertyDetails || {};\n\n // 🔹 STATES\n const [buildingImage, setBuildingImage] = useState(null);\n const [buildingImageId, setBuildingImageId] = useState(savedData.buildingImageId || null);\n const [toast, setToast] = useState(null);\n const [isDataLoaded, setIsDataLoaded] = useState(false);\n const [canSubmit, setCanSubmit] = useState(false);\n\n const [defaultValues, setDefaultValues] = useState(() => ({\n pidNumber: savedData.pidNumber || \"\",\n propertyType: savedData.propertyType ? { name: savedData.propertyType } : null,\n subPropertyCategory: savedData.subPropertyCategory ? { name: savedData.subPropertyCategory } : null,\n noOfFloors: savedData.noOfFloors || \"\",\n floorNo: savedData.floorNo || \"\",\n noOfRooms: savedData.noOfRooms || \"\",\n noOfBeds: savedData.noOfBeds || \"\",\n dwellingUnits: savedData.dwellingUnits || \"\",\n buildingImage: savedData.buildingImageId ? \"Uploaded\" : null,\n }));\n\n const [localFormData, setLocalFormData] = useState(defaultValues);\n\n const extractApplicationData = (searchData) => {\n if (!searchData) return null;\n const reviewWrapper =\n searchData?.applicationReviewInfo || searchData?.applicationReview || searchData;\n const applicationData = (Array.isArray(reviewWrapper) ? reviewWrapper[0] : reviewWrapper) || {};\n return applicationData?.newData || applicationData;\n };\n\n useEffect(() => {\n const appData = extractApplicationData(searchData);\n const rawData = appData || formData?.connectionDetails;\n const propertyInfo = rawData?.propertyInfo || rawData?.propertyDetails || rawData || {};\n\n if (propertyInfo && Object.keys(propertyInfo).length > 0 && !isDataLoaded) {\n let propType = null;\n let subPropCat = null;\n\n if (propertyInfo.subPropertyCategory) {\n const matchingType = [\n { name: \"Residential\" },\n { name: \"Commercial\" },\n { name: \"Hotel\" },\n { name: \"Hospital\" },\n { name: \"Nursing Home\" },\n ].find((type) => type.name.toLowerCase() === propertyInfo.subPropertyCategory.toLowerCase());\n if (matchingType) propType = matchingType;\n else propType = { name: propertyInfo.subPropertyCategory };\n subPropCat = { name: propertyInfo.subPropertyCategory };\n }\n\n if (propertyInfo.propertyType) {\n subPropCat = { name: propertyInfo.propertyType };\n if (!propertyInfo.subPropertyCategory) propType = { name: propertyInfo.propertyType };\n }\n\n const updatedDefaults = {\n pidNumber: savedData.pidNumber || propertyInfo.pidNumber || \"\",\n propertyType: savedData.propertyType ? { name: savedData.propertyType } : propType,\n subPropertyCategory: savedData.subPropertyCategory\n ? { name: savedData.subPropertyCategory }\n : subPropCat,\n noOfFloors:\n savedData.noOfFloors ||\n (propertyInfo.numberOfFloors || propertyInfo.noOfFloor\n ? String(propertyInfo.numberOfFloors || propertyInfo.noOfFloor)\n : \"\"),\n floorNo: savedData.floorNo || propertyInfo.floorNo || \"\",\n noOfRooms:\n savedData.noOfRooms ||\n (propertyInfo.numberOfRooms !== null && propertyInfo.numberOfRooms !== undefined\n ? String(propertyInfo.numberOfRooms)\n : \"\"),\n noOfBeds:\n savedData.noOfBeds ||\n (propertyInfo.numberOfBeds !== null && propertyInfo.numberOfBeds !== undefined\n ? String(propertyInfo.numberOfBeds)\n : \"\"),\n dwellingUnits:\n savedData.dwellingUnits ||\n (propertyInfo.numberOfDwellingUnits !== null && propertyInfo.numberOfDwellingUnits !== undefined\n ? String(propertyInfo.numberOfDwellingUnits)\n : \"\"),\n buildingImage: savedData.buildingImageId || propertyInfo.buildingImageFileStoreId || null,\n };\n\n setDefaultValues(updatedDefaults);\n setLocalFormData(updatedDefaults);\n if (updatedDefaults.buildingImage) {\n setBuildingImageId(updatedDefaults.buildingImage);\n }\n setIsDataLoaded(true);\n }\n }, [searchData, formData?.connectionDetails, isDataLoaded]);\n\n // 🔹 FILE UPLOAD\n const handleUpload = async (e, onChange) => {\n const file = e.target.files[0];\n if (!file) return;\n\n if (file.size > 2000000) {\n setToast({ type: \"error\", message: t(\"Max size 2MB exceeded\") });\n return;\n }\n\n try {\n const res = await Digit.UploadServices.Filestorage(\"EKYC\", file, tenantId);\n const fileStoreId = res?.data?.files?.[0]?.fileStoreId;\n\n if (fileStoreId) {\n onChange(file.name);\n setBuildingImageId(fileStoreId);\n\n const reader = new FileReader();\n reader.onloadend = () => setBuildingImage(reader.result);\n reader.readAsDataURL(file);\n\n setToast({ type: \"success\", message: t(\"Upload successful\") });\n }\n } catch {\n setToast({ type: \"error\", message: t(\"Upload failed\") });\n }\n };\n\n const onFormValueChange = (setValue, data) => {\n // Check if propertyType changed to re-evaluate mandatory validation or conditional visibility\n const propertyTypeChanged =\n (data?.propertyType?.name || data?.propertyType) !==\n (localFormData?.propertyType?.name || localFormData?.propertyType);\n\n if (propertyTypeChanged) {\n setLocalFormData((prev) => ({\n ...prev,\n ...data,\n }));\n }\n\n // Determine validation\n const propTypeVal = data?.propertyType;\n const subPropCatVal = data?.subPropertyCategory;\n const noOfFloorsVal = data?.noOfFloors;\n const buildingImgId = buildingImageId || data?.buildingImage;\n const noOfRoomsVal = data?.noOfRooms;\n const noOfBedsVal = data?.noOfBeds;\n\n let valid = true;\n if (!propTypeVal) valid = false;\n if (!subPropCatVal) valid = false;\n if (!noOfFloorsVal || Number(noOfFloorsVal) < 1) valid = false;\n if (!buildingImgId) valid = false;\n\n if (propTypeVal?.name === \"Hotel\" && !noOfRoomsVal) valid = false;\n if (\n (propTypeVal?.name === \"Hospital\" || propTypeVal?.name === \"Nursing Home\") &&\n !noOfBedsVal\n )\n valid = false;\n\n if (valid !== canSubmit) {\n setCanSubmit(valid);\n }\n };\n\n const onSubmit = async (data) => {\n const submitData = {\n pidNumber: data.pidNumber,\n propertyType: data.propertyType?.name || data.propertyType,\n subPropertyCategory: data.subPropertyCategory?.name || data.subPropertyCategory,\n noOfFloors: data.noOfFloors,\n floorNo: data.floorNo,\n noOfRooms: data.noOfRooms,\n noOfBeds: data.noOfBeds,\n dwellingUnits: data.dwellingUnits,\n buildingImageId: buildingImageId,\n };\n\n try {\n await updateMutation.mutateAsync({\n RequestInfo: {},\n updateType: \"PROPERTY\",\n kno: searchKno,\n ...submitData,\n });\n setToast({ type: \"success\", message: t(\"Property details updated successfully!\") });\n onSelect(config.key, submitData);\n } catch (error) {\n setToast({ type: \"error\", message: t(\"Failed to update property details\") });\n }\n };\n\n if (isLoading) {\n return <Loader />;\n }\n\n const Config = PropertyInfoConfig(\n t,\n localFormData,\n handleUpload,\n buildingImage,\n buildingImageId,\n setBuildingImage,\n setBuildingImageId\n );\n\n return (\n <Fragment>\n <FormComposer\n key={isDataLoaded ? \"loaded\" : \"loading\"}\n isDisabled={!canSubmit}\n label={t(\"ES_COMMON_CONTINUE\")}\n config={Config.map((item) => ({\n ...item,\n isCollapsible: true,\n isDefaultOpen: true,\n }))}\n onSubmit={onSubmit}\n defaultValues={defaultValues}\n onFormValueChange={onFormValueChange}\n noCard={false}\n submitInForm={true}\n />\n {toast && (\n <Toast\n error={toast.type === \"error\"}\n label={toast.message}\n onClose={() => setToast(null)}\n />\n )}\n </Fragment>\n );\n};\n\nexport default PropertyInfo;","import React from \"react\";\nimport { UploadFile, Dropdown } from \"@djb25/digit-ui-react-components\";\n\nconst MeterDetailsConfig = (t, formData = {}, uploadPhoto, meterPhoto, meterPhotoId, setMeterPhoto, setMeterPhotoId) => {\n const meterStatus = formData?.meterStatus?.name || formData?.meterStatus;\n const lastBillReceived = formData?.lastBillReceived?.name || formData?.lastBillReceived;\n const sewerConnection = formData?.sewerConnection?.name || formData?.sewerConnection;\n\n const isFrozen = meterStatus === \"Can not be identified\";\n\n // Generate Month-Year Options (1998–2026)\n const monthYearOptions = [];\n for (let y = 1998; y <= 2026; y++) {\n for (let m = 1; m <= 12; m++) {\n monthYearOptions.push({ name: `${m}/${y}` });\n }\n }\n\n const yesNo = [{ name: \"Yes\" }, { name: \"No\" }];\n\n const fields = [\n {\n label: t(\"Connection Category\"),\n isMandatory: true,\n type: \"text\",\n populators: {\n name: \"connectionCategory\",\n validation: { required: true },\n },\n },\n {\n label: t(\"SA Type\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"saType\",\n },\n },\n {\n label: t(\"Status\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"status\",\n },\n },\n {\n label: t(\"MR Code\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"mrCode\",\n },\n },\n {\n label: t(\"Area Code\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"areaCode\",\n },\n },\n {\n label: t(\"MR Key\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"mrKey\",\n },\n },\n ];\n\n // 🔹 Non-frozen fields\n if (!isFrozen) {\n fields.push(\n {\n label: t(\"Meter Number\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"meterNumber\",\n },\n },\n {\n label: t(\"Meter Maker\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"meterMaker\",\n },\n },\n {\n label: t(\"Meter Condition\"),\n isMandatory: false,\n type: \"custom\",\n key: \"meterCondition\",\n populators: {\n name: \"meterCondition\",\n component: (props) => (\n <Dropdown\n option={[{ name: \"Damaged\" }, { name: \"Not-Damaged\" }]}\n optionKey=\"name\"\n selected={props.value}\n select={props.onChange}\n />\n ),\n },\n }\n );\n\n if (meterStatus === \"Metered\") {\n fields.push({\n label: t(\"Meter Photo\"),\n isMandatory: true,\n type: \"custom\",\n key: \"meterPhoto\",\n populators: {\n name: \"meterPhoto\",\n component: (props) => (\n <div>\n <UploadFile\n onUpload={(e) => uploadPhoto(e, props.onChange)}\n onDelete={() => {\n props.onChange(null);\n setMeterPhoto(null);\n setMeterPhotoId(null);\n }}\n message={meterPhotoId ? t(\"Uploaded\") : t(\"No file selected\")}\n />\n {meterPhoto && (\n <div style={{ marginTop: \"10px\" }}>\n <img\n src={meterPhoto}\n alt=\"preview\"\n style={{ maxWidth: \"100%\", maxHeight: \"200px\", objectFit: \"contain\" }}\n />\n </div>\n )}\n </div>\n ),\n },\n });\n }\n }\n\n // 🔹 Standard fields after the conditional section\n fields.push(\n {\n label: t(\"Meter Status\"),\n isMandatory: true,\n type: \"custom\",\n key: \"meterStatus\",\n populators: {\n name: \"meterStatus\",\n component: (props) => (\n <Dropdown\n option={[{ name: \"Metered\" }, { name: \"Unmetered\" }, { name: \"Can not be identified\" }]}\n optionKey=\"name\"\n selected={props.value}\n select={props.onChange}\n />\n ),\n },\n },\n {\n label: t(\"Meter Location\"),\n isMandatory: true,\n type: \"custom\",\n key: \"meterLocation\",\n populators: {\n name: \"meterLocation\",\n component: (props) => (\n <Dropdown\n option={[{ name: \"Inside\" }, { name: \"Outside\" }]}\n optionKey=\"name\"\n selected={props.value}\n select={props.onChange}\n />\n ),\n },\n },\n {\n label: t(\"Last Bill Received\"),\n isMandatory: true,\n type: \"custom\",\n key: \"lastBillReceived\",\n populators: {\n name: \"lastBillReceived\",\n component: (props) => (\n <Dropdown\n option={yesNo}\n optionKey=\"name\"\n selected={props.value}\n select={props.onChange}\n />\n ),\n },\n }\n );\n\n // 🔹 Bill-received fields\n if (lastBillReceived === \"Yes\") {\n fields.push({\n label: t(\"When was the last bill received\"),\n isMandatory: true,\n type: \"custom\",\n key: \"billMonthYear\",\n populators: {\n name: \"billMonthYear\",\n component: (props) => (\n <Dropdown\n option={monthYearOptions}\n optionKey=\"name\"\n selected={props.value}\n select={props.onChange}\n />\n ),\n },\n });\n } else if (lastBillReceived === \"No\") {\n fields.push({\n label: t(\"Reason *\"),\n isMandatory: true,\n type: \"text\",\n populators: {\n name: \"reason\",\n validation: { required: true },\n },\n });\n }\n\n fields.push(\n {\n label: t(\"Access to Meter\"),\n isMandatory: false,\n type: \"custom\",\n key: \"accessToMeter\",\n populators: {\n name: \"accessToMeter\",\n component: (props) => (\n <Dropdown\n option={yesNo}\n optionKey=\"name\"\n selected={props.value}\n select={props.onChange}\n />\n ),\n },\n },\n {\n label: t(\"Sewer Connection\"),\n isMandatory: true,\n type: \"custom\",\n key: \"sewerConnection\",\n populators: {\n name: \"sewerConnection\",\n component: (props) => (\n <Dropdown\n option={yesNo}\n optionKey=\"name\"\n selected={props.value}\n select={props.onChange}\n />\n ),\n },\n }\n );\n\n if (sewerConnection === \"No\") {\n fields.push({\n label: t(\"Septic Tank\"),\n isMandatory: true,\n type: \"custom\",\n key: \"septicTank\",\n populators: {\n name: \"septicTank\",\n component: (props) => (\n <Dropdown\n option={yesNo}\n optionKey=\"name\"\n selected={props.value}\n select={props.onChange}\n />\n ),\n },\n });\n }\n\n return [\n {\n head: t(\"EKYC_METER_DETAILS\"),\n body: fields,\n },\n ];\n};\n\nexport default MeterDetailsConfig;\n","import React, { useState, Fragment, useEffect } from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport { Toast, Loader, FormComposer } from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\nimport MeterDetailsConfig from \"../config/MeterDetailsConfig\";\n\nconst MeterDetails = ({ config, onSelect, formData }) => {\n const { t } = useTranslation();\n const location = useLocation();\n const flowState = location.state || {};\n const tenantId = Digit.ULBService.getCurrentTenantId();\n\n const queryParams = new URLSearchParams(location.search);\n const urlKno = queryParams.get(\"kno\");\n const searchKno =\n urlKno ||\n flowState?.kNumber ||\n flowState?.kno ||\n formData?.kNumber ||\n formData?.kno ||\n sessionStorage.getItem(\"EKYC_K_NUMBER\");\n\n const { isLoading, data: searchData } = Digit.Hooks.ekyc.useSearchConnection(\n { tenantId, details: { kno: searchKno, fetchType: \"METER\" } },\n { enabled: !!searchKno, cacheTime: 0 }\n );\n\n const updateMutation = Digit.Hooks.ekyc.useEkycUpdate(tenantId);\n\n const savedData = formData?.meterDetails || {};\n\n // 🔹 STATES\n const [meterPhoto, setMeterPhoto] = useState(null);\n const [meterPhotoId, setMeterPhotoId] = useState(savedData.meterPhotoId || null);\n const [toast, setToast] = useState(null);\n const [isDataLoaded, setIsDataLoaded] = useState(false);\n const [canSubmit, setCanSubmit] = useState(false);\n\n const [defaultValues, setDefaultValues] = useState(() => ({\n connectionCategory: savedData.connectionCategory || \"\",\n saType: savedData.saType || \"\",\n status: savedData.status || \"\",\n mrCode: savedData.mrCode || \"\",\n areaCode: savedData.areaCode || \"\",\n mrKey: savedData.mrKey || \"\",\n meterNumber: savedData.meterNumber || \"\",\n meterMaker: savedData.meterMaker || \"\",\n meterStatus: savedData.meterStatus ? { name: savedData.meterStatus } : null,\n meterCondition: savedData.meterCondition ? { name: savedData.meterCondition } : null,\n meterLocation: savedData.meterLocation ? { name: savedData.meterLocation } : null,\n lastBillReceived: savedData.lastBillReceived ? { name: savedData.lastBillReceived } : null,\n billMonthYear: savedData.billMonthYear ? { name: savedData.billMonthYear } : null,\n reason: savedData.reason || \"\",\n accessToMeter: savedData.accessToMeter ? { name: savedData.accessToMeter } : null,\n sewerConnection: savedData.sewerConnection ? { name: savedData.sewerConnection } : null,\n septicTank: savedData.septicTank ? { name: savedData.septicTank } : null,\n meterPhoto: savedData.meterPhotoId ? \"Uploaded\" : null,\n }));\n\n const [localFormData, setLocalFormData] = useState(defaultValues);\n\n const extractApplicationData = (searchData) => {\n if (!searchData) return null;\n const reviewWrapper =\n searchData?.applicationReviewInfo || searchData?.applicationReview || searchData;\n const applicationData = (Array.isArray(reviewWrapper) ? reviewWrapper[0] : reviewWrapper) || {};\n return applicationData?.newData || applicationData;\n };\n\n useEffect(() => {\n const appData = extractApplicationData(searchData);\n const rawData = appData || formData?.connectionDetails;\n const apiMeter = rawData?.meterDetails || rawData || {};\n\n if (apiMeter && Object.keys(apiMeter).length > 0 && !isDataLoaded) {\n let mStatus = null;\n let mCondition = null;\n let mLoc = null;\n let billRec = null;\n let billMonYr = null;\n let accToMeter = null;\n let sewerConn = null;\n let sepTank = null;\n\n if (apiMeter.meterStatus) {\n const matchingStatus = [\n { name: \"Metered\" },\n { name: \"Unmetered\" },\n { name: \"Can not be identified\" },\n ].find((o) => o.name.toLowerCase() === apiMeter.meterStatus.toLowerCase());\n if (matchingStatus) mStatus = matchingStatus;\n else mStatus = { name: apiMeter.meterStatus };\n } else if (apiMeter.metered !== undefined) {\n mStatus = { name: apiMeter.metered ? \"Metered\" : \"Unmetered\" };\n }\n\n if (apiMeter.meterCondition) {\n const matchingCond = [{ name: \"Damaged\" }, { name: \"Not-Damaged\" }].find(\n (o) => o.name.toLowerCase() === apiMeter.meterCondition.toLowerCase()\n );\n if (matchingCond) mCondition = matchingCond;\n else mCondition = { name: apiMeter.meterCondition };\n }\n\n if (apiMeter.meterLocation) {\n const matchingLoc = [{ name: \"Inside\" }, { name: \"Outside\" }].find(\n (o) =>\n o.name.toLowerCase() === apiMeter.meterLocation.toLowerCase() ||\n apiMeter.meterLocation.toLowerCase().includes(o.name.toLowerCase())\n );\n if (matchingLoc) mLoc = matchingLoc;\n else mLoc = { name: apiMeter.meterLocation };\n }\n\n if (apiMeter.lastBillRaised !== undefined && apiMeter.lastBillRaised !== null) {\n const strVal = String(apiMeter.lastBillRaised).toLowerCase();\n if (strVal === \"true\" || strVal === \"yes\") billRec = { name: \"Yes\" };\n else billRec = { name: \"No\" };\n }\n\n if (apiMeter.lastBillReceivedDate) {\n const formatted = apiMeter.lastBillReceivedDate.replace(\"-\", \"/\");\n const parsedParts = formatted.split(\"/\");\n if (parsedParts.length === 2) {\n const mon = parseInt(parsedParts[0], 10);\n const yr = parseInt(parsedParts[1], 10);\n billMonYr = { name: `${mon}/${yr}` };\n } else {\n billMonYr = { name: apiMeter.lastBillReceivedDate };\n }\n }\n\n if (apiMeter.accessToMeter !== undefined && apiMeter.accessToMeter !== null) {\n const strVal = String(apiMeter.accessToMeter).toLowerCase();\n if (strVal === \"true\" || strVal === \"yes\") accToMeter = { name: \"Yes\" };\n else accToMeter = { name: \"No\" };\n }\n\n if (apiMeter.sewerConnection !== undefined && apiMeter.sewerConnection !== null) {\n const strVal = String(apiMeter.sewerConnection).toLowerCase();\n if (strVal === \"true\" || strVal === \"yes\") sewerConn = { name: \"Yes\" };\n else sewerConn = { name: \"No\" };\n }\n\n if (apiMeter.septicTank !== undefined && apiMeter.septicTank !== null) {\n const strVal = String(apiMeter.septicTank).toLowerCase();\n if (strVal === \"true\" || strVal === \"yes\") sepTank = { name: \"Yes\" };\n else sepTank = { name: \"No\" };\n }\n\n const updatedDefaults = {\n connectionCategory: savedData.connectionCategory || apiMeter.connectionCategory || \"\",\n saType: savedData.saType || apiMeter.saType || \"\",\n status: savedData.status || apiMeter.statusFlag || \"\",\n mrCode: savedData.mrCode || (apiMeter.mrcode ? String(apiMeter.mrcode) : \"\"),\n areaCode: savedData.areaCode || (apiMeter.areacode ? String(apiMeter.areacode) : \"\"),\n mrKey: savedData.mrKey || (apiMeter.mrkey ? String(apiMeter.mrkey) : \"\"),\n meterNumber: savedData.meterNumber || apiMeter.meterNumber || \"\",\n meterMaker: savedData.meterMaker || apiMeter.meterMake || \"\",\n meterStatus: savedData.meterStatus ? { name: savedData.meterStatus } : mStatus,\n meterCondition: savedData.meterCondition ? { name: savedData.meterCondition } : mCondition,\n meterLocation: savedData.meterLocation ? { name: savedData.meterLocation } : mLoc,\n lastBillReceived: savedData.lastBillReceived ? { name: savedData.lastBillReceived } : billRec,\n billMonthYear: savedData.billMonthYear ? { name: savedData.billMonthYear } : billMonYr,\n reason: savedData.reason || apiMeter.lastBillNotRaisedReason || \"\",\n accessToMeter: savedData.accessToMeter ? { name: savedData.accessToMeter } : accToMeter,\n sewerConnection: savedData.sewerConnection ? { name: savedData.sewerConnection } : sewerConn,\n septicTank: savedData.septicTank ? { name: savedData.septicTank } : sepTank,\n meterPhoto: savedData.meterPhotoId || apiMeter.meterPhotoFileStoreId || null,\n };\n\n setDefaultValues(updatedDefaults);\n setLocalFormData(updatedDefaults);\n if (updatedDefaults.meterPhoto) {\n setMeterPhotoId(updatedDefaults.meterPhoto);\n }\n setIsDataLoaded(true);\n }\n }, [searchData, formData?.connectionDetails, isDataLoaded]);\n\n // 🔹 FILE UPLOAD\n const handleUpload = async (e, onChange) => {\n const file = e.target.files[0];\n if (!file) return;\n\n if (file.size > 2000000) {\n setToast({ type: \"error\", message: t(\"Max size 2MB exceeded\") });\n return;\n }\n\n try {\n const res = await Digit.UploadServices.Filestorage(\"EKYC\", file, tenantId);\n const fileStoreId = res?.data?.files?.[0]?.fileStoreId;\n\n if (fileStoreId) {\n onChange(file.name);\n setMeterPhotoId(fileStoreId);\n\n const reader = new FileReader();\n reader.onloadend = () => setMeterPhoto(reader.result);\n reader.readAsDataURL(file);\n\n setToast({ type: \"success\", message: t(\"Upload successful\") });\n }\n } catch {\n setToast({ type: \"error\", message: t(\"Upload failed\") });\n }\n };\n\n const onFormValueChange = (setValue, data) => {\n const meterStatusChanged =\n (data?.meterStatus?.name || data?.meterStatus) !==\n (localFormData?.meterStatus?.name || localFormData?.meterStatus);\n\n const lastBillReceivedChanged =\n (data?.lastBillReceived?.name || data?.lastBillReceived) !==\n (localFormData?.lastBillReceived?.name || localFormData?.lastBillReceived);\n\n const sewerConnectionChanged =\n (data?.sewerConnection?.name || data?.sewerConnection) !==\n (localFormData?.sewerConnection?.name || localFormData?.sewerConnection);\n\n if (meterStatusChanged || lastBillReceivedChanged || sewerConnectionChanged) {\n setLocalFormData((prev) => ({\n ...prev,\n ...data,\n }));\n }\n\n // Determine validation\n const connCatVal = data?.connectionCategory;\n const mStatusVal = data?.meterStatus;\n const mLocVal = data?.meterLocation;\n const billRecVal = data?.lastBillReceived;\n const sewerConnVal = data?.sewerConnection;\n const mPhotoId = meterPhotoId || data?.meterPhoto;\n const reasonVal = data?.reason;\n const billMonYrVal = data?.billMonthYear;\n const sepTankVal = data?.septicTank;\n\n let valid = true;\n if (!connCatVal) valid = false;\n if (!mStatusVal) valid = false;\n if (!mLocVal) valid = false;\n if (!billRecVal) valid = false;\n if (!sewerConnVal) valid = false;\n\n if (mStatusVal?.name === \"Metered\" && !mPhotoId) valid = false;\n if (billRecVal?.name === \"No\" && !reasonVal) valid = false;\n if (billRecVal?.name === \"Yes\" && !billMonYrVal) valid = false;\n if (sewerConnVal?.name === \"No\" && !sepTankVal) valid = false;\n\n if (valid !== canSubmit) {\n setCanSubmit(valid);\n }\n };\n\n const onSubmit = async (data) => {\n const submitData = {\n connectionCategory: data.connectionCategory,\n saType: data.saType,\n status: data.status,\n mrCode: data.mrCode,\n areaCode: data.areaCode,\n mrKey: data.mrKey,\n meterNumber: data.meterNumber,\n meterMaker: data.meterMaker,\n meterStatus: data.meterStatus?.name || data.meterStatus,\n meterCondition: data.meterCondition?.name || data.meterCondition,\n meterLocation: data.meterLocation?.name || data.meterLocation,\n lastBillReceived: data.lastBillReceived?.name || data.lastBillReceived,\n billMonthYear: data.billMonthYear?.name || data.billMonthYear,\n reason: data.reason,\n accessToMeter: data.accessToMeter?.name || data.accessToMeter,\n sewerConnection: data.sewerConnection?.name || data.sewerConnection,\n septicTank: data.septicTank?.name || data.septicTank,\n meterPhotoId: meterPhotoId,\n };\n\n try {\n await updateMutation.mutateAsync({\n RequestInfo: {},\n updateType: \"METER\",\n kno: searchKno,\n ...submitData,\n });\n setToast({ type: \"success\", message: t(\"Meter details updated successfully!\") });\n onSelect(config.key, submitData);\n } catch (error) {\n setToast({ type: \"error\", message: t(\"Failed to update meter details\") });\n }\n };\n\n if (isLoading) {\n return <Loader />;\n }\n\n const Config = MeterDetailsConfig(\n t,\n localFormData,\n handleUpload,\n meterPhoto,\n meterPhotoId,\n setMeterPhoto,\n setMeterPhotoId\n );\n\n return (\n <Fragment>\n <FormComposer\n key={isDataLoaded ? \"loaded\" : \"loading\"}\n isDisabled={!canSubmit}\n label={t(\"ES_COMMON_CONTINUE\")}\n config={Config.map((item) => ({\n ...item,\n isCollapsible: true,\n isDefaultOpen: true,\n }))}\n onSubmit={onSubmit}\n defaultValues={defaultValues}\n onFormValueChange={onFormValueChange}\n noCard={false}\n submitInForm={true}\n />\n {toast && (\n <Toast\n error={toast.type === \"error\"}\n label={toast.message}\n onClose={() => setToast(null)}\n />\n )}\n </Fragment>\n );\n};\n\nexport default MeterDetails;","import React, { useMemo, useCallback, useReducer } from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport { InboxComposer } from \"@djb25/digit-ui-react-components\";\nimport useInboxTableConfig from \"../../hook/useInboxTableConfig\";\nimport SearchFormFieldsComponents from \"../../components/SearchFormFieldsComponent\";\nimport useInboxMobileCardsData from \"../../hook/useInboxMobileCardsData\";\n\n// Mock data removed in favor of API integration\n\nconst Inbox = ({ parentRoute }) => {\n const tenantId = Digit.ULBService.getCurrentTenantId();\n const location = useLocation();\n\n const formInitValue = {\n filterForm: {},\n searchForm: {},\n tableForm: {\n limit: 20,\n offset: 0,\n sortBy: \"createdTime\",\n sortOrder: \"DESC\",\n },\n };\n\n const [formState, dispatch] = useReducer(formReducer, formInitValue);\n\n const queryParams = useMemo(() => {\n return {\n tenantId,\n offset: formState?.tableForm?.offset || 0,\n limit: formState?.tableForm?.limit || 20,\n search: formState?.searchForm || {},\n };\n }, [tenantId, formState?.tableForm?.offset, formState?.tableForm?.limit, formState?.searchForm]);\n\n const filters = useMemo(() => {\n const searchForm = formState?.searchForm || {};\n return {\n ...searchForm,\n ...(searchForm.kNumber && { kno: searchForm.kNumber }),\n };\n }, [formState?.searchForm]);\n\n const { isLoading, data: dashboardData = {} } = Digit.Hooks.ekyc.useEkycApplicationList(filters, queryParams, {\n enabled: !!tenantId,\n keepPreviousData: true,\n });\n\n const searchDetails = useMemo(\n () => ({\n kno: formState?.searchForm?.kNumber || \"\",\n name: formState?.searchForm?.kName || \"\",\n }),\n [formState?.searchForm?.kNumber, formState?.searchForm?.kName]\n );\n\n const isSearchActive = !!(searchDetails.kno || searchDetails.name);\n\n const { isLoading: isSearchLoading, data: searchData } = Digit.Hooks.ekyc.useSearchConnection(\n {\n tenantId,\n details: searchDetails,\n },\n {\n enabled: !!tenantId && !!searchDetails.kno, // 🔥 important\n keepPreviousData: true,\n }\n );\n\n const sourceData = useMemo(() => {\n if (isSearchActive) {\n if (!searchData) return [];\n return [searchData];\n }\n\n return dashboardData?.consumerList || [];\n }, [isSearchActive, searchData, dashboardData]);\n\n const filteredData = useMemo(() => {\n return (sourceData || []).map((item) => {\n // ✅ detect search response\n const isSearchItem = !!item.connectionDetails;\n\n if (isSearchItem) {\n const searchDetails = item.connectionDetails || {};\n const fullName = (searchDetails.firstName || searchDetails.middleName || searchDetails.lastName)\n ? `${searchDetails.firstName || \"\"} ${searchDetails.middleName || \"\"} ${searchDetails.lastName || \"\"}`.trim().replace(/\\s+/g, \" \")\n : searchDetails.consumerName || \"\";\n\n return {\n applicationNo: item.propertyInfo?.kno || \"\",\n connectionNo: item.propertyInfo?.kno || \"\",\n owner: fullName,\n applicationNumber: item.propertyInfo?.kno || \"\",\n citizenName: fullName,\n status: item.connectionDetails?.statusflag || \"\",\n ekycStatus: (item.connectionDetails?.ekycStatus || item.connectionDetails?.ekycstatus || item.ekycStatus || item.ekycstatus || \"NA\").toUpperCase(),\n sla: 0,\n };\n }\n\n // ✅ dashboard mapping\n const fullName = (item.firstName || item.middleName || item.lastName)\n ? `${item.firstName || \"\"} ${item.middleName || \"\"} ${item.lastName || \"\"}`.trim().replace(/\\s+/g, \" \")\n : item.consumerName || item.citizenName || \"\";\n\n return {\n ...item,\n applicationNo: item.kno || item.applicationNumber || \"\",\n connectionNo: item.connectionNo || \"\",\n owner: fullName,\n applicationNumber: item.kno || item.applicationNumber || \"\",\n citizenName: fullName,\n status: item.status || \"\",\n ekycStatus: (item.ekycStatus || item.ekycstatus || \"NA\").toUpperCase(),\n sla: item.sla ?? 0,\n };\n });\n }, [sourceData]);\n\n const totalRecords = dashboardData?.dashboardInfo?.totalRecords || dashboardData?.totalCount || 0;\n\n const checkPathName = location.pathname.includes(\"ekyc/inbox\");\n // const PropsForInboxLinks = {\n // headerText: \"EKYC_MODULE\",\n // };\n\n const SearchFormFields = useCallback(\n ({ registerRef, searchFormState, controlSearchForm }) => (\n <SearchFormFieldsComponents {...{ registerRef, searchFormState, controlSearchForm }} searchType=\"kno\" className=\"search\" />\n ),\n []\n );\n\n const tableOrderFormDefaultValues = {\n sortBy: \"createdTime\",\n limit: window.Digit.Utils.browser.isMobile() ? 50 : 20,\n offset: 0,\n sortOrder: \"DESC\",\n };\n\n const onSearchFormSubmit = (data) => {\n data.hasOwnProperty(\"\") && delete data?.[\"\"];\n dispatch({ action: \"mutateTableForm\", data: { ...tableOrderFormDefaultValues }, checkPathName });\n dispatch({ action: \"mutateSearchForm\", data, checkPathName });\n };\n\n const searchFormDefaultValues = {\n kNumber: \"\",\n applicationNumber: \"\",\n consumerNo: \"\",\n };\n\n const onSearchFormReset = (setSearchFormValue) => {\n setSearchFormValue(\"kNumber\", null);\n setSearchFormValue(\"applicationNumber\", null);\n setSearchFormValue(\"consumerNo\", null);\n dispatch({ action: \"mutateSearchForm\", data: searchFormDefaultValues });\n };\n\n const propsForSearchForm = {\n SearchFormFields,\n onSearchFormSubmit,\n searchFormDefaultValues: formState?.searchForm,\n resetSearchFormDefaultValues: searchFormDefaultValues,\n onSearchFormReset,\n className: \"search-form-wns-inbox\",\n };\n\n // const FilterFormFields = useCallback(\n // ({ registerRef, controlFilterForm, setFilterFormValue, getFilterFormValue }) => <React.Fragment></React.Fragment>,\n // []\n // );\n\n // const propsForFilterForm = {\n // FilterFormFields,\n // onFilterFormSubmit: () => { },\n // filterFormDefaultValues: \"\",\n // resetFilterFormDefaultValues: \"\",\n // onFilterFormReset: () => { },\n // };\n\n function formReducer(state, payload) {\n const storageKey = payload.checkPathName ? \"EKYC.INBOX\" : \"EKYC.SW.INBOX\";\n\n // ✅ safety for SLA\n switch (payload.action) {\n case \"mutateSearchForm\":\n Digit.SessionStorage.set(storageKey, { ...state, searchForm: payload.data });\n return { ...state, searchForm: payload.data };\n\n case \"mutateFilterForm\":\n Digit.SessionStorage.set(storageKey, { ...state, filterForm: payload.data });\n return { ...state, filterForm: payload.data };\n\n case \"mutateTableForm\":\n Digit.SessionStorage.set(storageKey, { ...state, tableForm: payload.data });\n return { ...state, tableForm: payload.data };\n\n default:\n return state; // ✅ IMPORTANT\n }\n }\n\n const onPageSizeChange = (e) => {\n const newLimit = Number(e.target.value);\n\n dispatch({\n action: \"mutateTableForm\",\n data: {\n ...formState.tableForm,\n limit: newLimit,\n offset: 0, // reset page\n },\n checkPathName,\n });\n };\n\n const onSortingByData = (e) => {\n if (e.length > 0) {\n const [{ id, desc }] = e;\n const sortOrder = desc ? \"DESC\" : \"ASC\";\n const sortBy = id;\n\n if (!(formState.tableForm.sortBy === sortBy && formState.tableForm.sortOrder === sortOrder)) {\n dispatch({\n action: \"mutateTableForm\",\n data: {\n ...formState.tableForm,\n sortBy: id,\n sortOrder: desc ? \"DESC\" : \"ASC\",\n },\n checkPathName,\n });\n }\n }\n };\n\n const propsForInboxTable = useInboxTableConfig({\n ...{\n parentRoute,\n onPageSizeChange,\n formState,\n totalCount: totalRecords,\n table: filteredData,\n dispatch,\n onSortingByData,\n tenantId,\n checkPathName,\n inboxStyles: { overflowX: \"scroll\", overflowY: \"hidden\" },\n tableStyle: { width: \"70%\" },\n },\n });\n\n const onMobileSortOrderData = (data) => {\n const { sortOrder } = data;\n dispatch({ action: \"mutateTableForm\", data: { ...formState.tableForm, sortOrder } });\n };\n\n const onSortFormReset = (setSortFormValue) => {\n setSortFormValue(\"sortOrder\", \"DESC\");\n dispatch({ action: \"mutateTableForm\", data: tableOrderFormDefaultValues });\n };\n\n const propsForMobileSortForm = { onMobileSortOrderData, sortFormDefaultValues: formState?.tableForm, onSortFormReset };\n const propsForInboxMobileCards = useInboxMobileCardsData({ table: filteredData, tenantId });\n\n const isInboxLoading = isLoading || isSearchLoading;\n\n return (\n <div className=\"app-container\">\n <InboxComposer\n {...{\n isInboxLoading,\n // PropsForInboxLinks,\n ...propsForSearchForm,\n // ...propsForFilterForm,\n ...propsForMobileSortForm,\n propsForInboxTable,\n propsForInboxMobileCards,\n formState,\n forceTable: true,\n showSearchOnMobile: true,\n }}\n />\n </div>\n );\n};\n\nexport default Inbox;\n","import React, { useState, useEffect, useCallback } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useParams, useHistory } from \"react-router-dom\";\nimport {\n Card,\n CardHeader,\n CardText,\n Loader,\n StatusTable,\n Row,\n InboxComposer,\n VerticalTimeline,\n SubmitBar,\n} from \"@djb25/digit-ui-react-components\";\nimport SearchFormFieldsComponents from \"../../components/SearchFormFieldsComponent\";\n\nconst EkycStatus = () => {\n const { t } = useTranslation();\n const { id } = useParams();\n const history = useHistory();\n\n // Separate states for the input form state and the triggered search query\n const [formState, setFormState] = useState({\n searchForm: {\n kNumber: id && id !== \":id\" ? id : \"\",\n },\n filterForm: {},\n });\n const [searchQuery, setSearchQuery] = useState(id && id !== \":id\" ? id : \"\");\n const [errorMsg, setErrorMsg] = useState(\"\");\n\n const tenantId = Digit.ULBService.getCurrentTenantId();\n\n // Sync states with URL id parameter change (e.g. back navigation or page load)\n // Added strict equality check to prevent infinite re-render loop\n useEffect(() => {\n const currentKNumber = formState?.searchForm?.kNumber || \"\";\n const targetKNumber = id && id !== \":id\" ? id : \"\";\n if (currentKNumber !== targetKNumber) {\n setFormState({\n searchForm: { kNumber: targetKNumber },\n filterForm: {},\n });\n setSearchQuery(targetKNumber);\n }\n }, [id]);\n\n // Fetch eKYC review/status data - only triggers on 'searchQuery' state\n const { data: searchData, isLoading: isReviewLoading } = Digit.Hooks.ekyc.useEkycSearchReview(\n { kno: searchQuery, fetchType: \"REVIEW\" },\n tenantId,\n {\n enabled: !!searchQuery,\n retry: false,\n onError: (err) => {\n setErrorMsg(err?.message || t(\"EKYC_STATUS_NOT_FOUND\", \"eKYC Application not found.\"));\n },\n }\n );\n\n // Fetch connection/application details via useSearchConnection\n const { data: connectionSearchData, isLoading: isConnectionLoading } = Digit.Hooks.ekyc.useSearchConnection(\n { tenantId, details: { kno: searchQuery } },\n { enabled: !!searchQuery, retry: false }\n );\n\n const isLoading = isReviewLoading || isConnectionLoading;\n\n const onSearchFormSubmit = (data) => {\n const val = data?.kNumber?.trim();\n if (!val) {\n setErrorMsg(t(\"EKYC_PLEASE_ENTER_KNO\", \"Please enter a valid K-Number.\"));\n return;\n }\n setErrorMsg(\"\");\n setFormState({\n searchForm: data,\n filterForm: {},\n });\n setSearchQuery(val);\n history.push(`/digit-ui/citizen/ekyc/${val}`);\n };\n\n const searchFormDefaultValues = {\n kNumber: \"\",\n };\n\n const onSearchFormReset = (setSearchFormValue) => {\n setSearchFormValue(\"kNumber\", \"\");\n setErrorMsg(\"\");\n setFormState({\n searchForm: { kNumber: \"\" },\n filterForm: {},\n });\n setSearchQuery(\"\");\n history.push(\"/digit-ui/citizen/ekyc/:id\");\n };\n\n const SearchFormFields = useCallback(\n ({ registerRef, searchFormState, controlSearchForm }) => (\n <SearchFormFieldsComponents {...{ registerRef, searchFormState, controlSearchForm }} searchType=\"kno\" className=\"search\" />\n ),\n []\n );\n\n const propsForSearchForm = {\n SearchFormFields,\n onSearchFormSubmit,\n searchFormDefaultValues: formState?.searchForm,\n resetSearchFormDefaultValues: searchFormDefaultValues,\n onSearchFormReset,\n className: \"search-form-wns-inbox\",\n };\n\n const propsForInboxTable = {\n columns: [],\n data: [],\n limit: 10,\n offset: 0,\n };\n\n const propsForInboxMobileCards = {\n data: [],\n };\n\n const getStatusDetails = () => {\n if (!searchData) return null;\n const reviewWrapper = searchData?.applicationReviewInfo || searchData?.applicationReview || searchData;\n const appData = (Array.isArray(reviewWrapper) ? reviewWrapper[0] : reviewWrapper) || {};\n const newData = appData?.newData || appData;\n const connection = newData?.connectionDetails || newData || {};\n\n const naText = t(\"CS_NA\", \"N/A\");\n const connRaw = connectionSearchData?.connectionDetails || connectionSearchData || {};\n const addrRaw = connectionSearchData?.addressDetails || {};\n const propRaw = connectionSearchData?.propertyInfo || {};\n const meterRaw = connectionSearchData?.meterDetails || {};\n\n const rawStatus = (connection?.ekycStatus || connection?.ekycstatus || connRaw?.ekycStatus || propRaw?.ekycStatus || meterRaw?.ekycStatus || \"NA\").toUpperCase();\n\n const reviewName = connection?.consumerName || [newData?.firstName, newData?.middleName, newData?.lastName].filter(Boolean).join(\" \");\n const connName = connRaw?.consumerName || [connRaw?.firstName, connRaw?.middleName, connRaw?.lastName].filter(Boolean).join(\" \");\n\n const reviewPhone = connection?.phoneNumber || connection?.mobileNo || connection?.mobileNumber;\n const connPhone = connRaw?.phoneNumber || connRaw?.mobileNo || connRaw?.mobileNumber || addrRaw?.mobileNo || addrRaw?.phoneNumber || addrRaw?.mobileNumber;\n\n const reviewType = connection?.connectionType || connection?.connectionCategory;\n const connType = connRaw?.connectionType || connRaw?.connectionCategory || connRaw?.knoCategory || propRaw?.connectionType || propRaw?.connectionCategory || meterRaw?.connectionCategory;\n\n return {\n kno: connection?.knumber || connection?.kno || connRaw?.knumber || connRaw?.kno || searchQuery,\n consumerName: (reviewName && reviewName !== naText && reviewName !== \"\") ? reviewName : (connName || naText),\n phoneNumber: (reviewPhone && reviewPhone !== naText && reviewPhone !== \"\") ? reviewPhone : (connPhone || naText),\n connectionType: (reviewType && reviewType !== naText && reviewType !== \"\") ? reviewType : (connType || naText),\n status: rawStatus,\n };\n };\n\n const details = getStatusDetails();\n\n // Visual Stepper configuration for VerticalTimeline\n const timelineConfig = [\n {\n route: \"submitted\",\n timeLine: [\n {\n currentStep: 1,\n actions: t(\"EKYC_STEP_SUBMITTED\", \"eKYC Survey Submitted\"),\n },\n ],\n },\n {\n route: \"verification\",\n timeLine: [\n {\n currentStep: 2,\n actions: t(\"EKYC_STEP_UNDER_VERIFICATION\", \"Under Verification\"),\n },\n ],\n },\n {\n route: \"zro-decision\",\n timeLine: [\n {\n currentStep: 3,\n actions: t(\"EKYC_STEP_ZRO_DECISION\", \"ZRO Decision\"),\n },\n ],\n },\n ];\n\n let activeStepIndex = 0;\n if (details) {\n if (details.status === \"APPROVED\") {\n activeStepIndex = 3;\n } else if (details.status === \"REJECTED\") {\n activeStepIndex = 2;\n } else if (details.status === \"PENDING_FOR_VERIFICATION\") {\n activeStepIndex = 1;\n } else {\n activeStepIndex = 1;\n }\n }\n\n const getStatusText = (status) => {\n const key = `EKYC_STATUS_${status}`;\n const val = t(key);\n if (val === key) {\n if (status === \"APPROVED\") return \"Approved\";\n if (status === \"REJECTED\") return \"Rejected\";\n if (status === \"PENDING_FOR_VERIFICATION\") return \"Pending For Verification\";\n return status;\n }\n return val;\n };\n\n return (\n <React.Fragment>\n <div className=\"employee-form-section-wrapper\">\n {!isLoading && details && (\n <VerticalTimeline config={timelineConfig} currentActiveIndex={activeStepIndex} />\n )}\n <div className=\"employee-form-section\">\n <div className=\"single-page-form-container\">\n {/* 1. Search Form Card rendered with InboxComposer */}\n <Card className=\"ekyc-status-search-card\">\n <CardHeader className=\"ekyc-status-card-header\">\n {t(\"EKYC_APPLICATION_STATUS_TRACKER\", \"eKYC Application Status\")}\n </CardHeader>\n <CardText className=\"ekyc-status-card-text\">\n {t(\"EKYC_STATUS_TRACKER_SUBHEADER\", \"Enter your K-Number below to track the real-time status of your eKYC application.\")}\n </CardText>\n\n <div className=\"status-search-composer-wrapper\">\n <InboxComposer\n {...{\n isInboxLoading: false,\n ...propsForSearchForm,\n propsForInboxTable,\n propsForInboxMobileCards,\n formState,\n showSearchOnMobile: true,\n }}\n />\n </div>\n </Card>\n\n {errorMsg && (\n <div className=\"ekyc-status-error-msg\">\n {errorMsg}\n </div>\n )}\n\n {/* 2. Results Card */}\n {isLoading && <Loader />}\n\n {!isLoading && details && (\n <Card className=\"ekyc-status-results-card\">\n {/* Status overview and badge */}\n <div className=\"ekyc-status-overview-header\">\n <div>\n <span className=\"ekyc-status-label-title\">\n {t(\"EKYC_CURRENT_STATUS\", \"Current Status\")}\n </span>\n <div className=\"ekyc-status-value-text\">\n {getStatusText(details.status)}\n </div>\n </div>\n <span className={`ekyc-status-badge ${details.status.toLowerCase()}`}>\n {details.status}\n </span>\n </div>\n\n {/* Details Table */}\n <div className=\"ekyc-status-details-section\">\n <h3 className=\"ekyc-status-details-title\">\n {t(\"EKYC_CONNECTION_SUMMARY\", \"Connection Summary\")}\n </h3>\n <StatusTable>\n <Row label={t(\"EKYC_K_NUMBER\", \"K-Number\")} text={details.kno} />\n <Row label={t(\"EKYC_CONSUMER_NAME\", \"Consumer Name\")} text={details.consumerName} />\n <Row label={t(\"EKYC_MOBILE_NO\", \"Mobile Number\")} text={details.phoneNumber} />\n <Row label={t(\"EKYC_CONNECTION_TYPE\", \"Connection Type\")} text={details.connectionType} />\n </StatusTable>\n </div>\n\n {/* View Application button */}\n <div className=\"ekyc-status-action-section\" style={{ marginTop: \"24px\", display: \"flex\", justifyContent: \"flex-end\" }}>\n <SubmitBar\n label={t(\"EKYC_VIEW_APPLICATION\", \"View Application\")}\n onSubmit={() => history.push(`/digit-ui/citizen/ekyc/status/${details.kno}`)}\n />\n </div>\n </Card>\n )}\n </div>\n </div>\n </div>\n </React.Fragment>\n );\n\n \n};\n\nexport default EkycStatus;\n","import React from \"react\";\nimport { AppContainer, PrivateRoute, ModuleHeader, ArrowLeft, HomeIcon, LayoutWrapper } from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { Switch, useLocation, useRouteMatch, Redirect, Route } from \"react-router-dom\";\nimport AadhaarVerification from \"../../components/AadhaarVerification\";\nimport PropertyInfo from \"../../components/PropertyInfo\";\nimport MeterDetails from \"../../components/MeterDetails\";\nimport Review from \"../../components/Review\";\nimport Inbox from \"./Inbox\";\nimport AssignEkyc from \"../../components/AssignEkyc\";\nimport SurveyorDetailsCard from \"../../components/SurveyorDetailsCard\";\nimport SupervisorDetailsCard from \"../../components/SupervisorDetailsCard\";\nimport VendorDetailsCard from \"../../components/VendorDetailsCard\";\nimport EkycStatus from \"./EkycStatus\";\n\nconst CitizenApp = () => {\n const { t } = useTranslation();\n const location = useLocation();\n const { path } = useRouteMatch();\n const roles = Digit.SessionStorage.get(\"User\")?.info?.roles.map((ele) => ele.code);\n // Digit.Hooks.useStore.getInitData();\n\n sessionStorage.removeItem(\"revalidateddone\");\n\n const getDynamicBreadcrumbs = () => {\n const pathname = location.pathname;\n\n // Parent crumb — always present and clickable → redirects to eKYC citizen home\n const crumbs = [\n { icon: HomeIcon, path: \"/digit-ui/citizen\" },\n { label: t(\"EKYC_MODULE_NAME\"), path: `/digit-ui/citizen/ekyc` },\n ];\n\n // Child crumb — only appended when on a sub-page\n if (pathname.includes(\"/create-kyc\")) {\n crumbs.push({ label: t(\"EKYC_CREATE_KYC\") });\n } else if (pathname.includes(\"/aadhaar-verification\")) {\n crumbs.push({ label: t(\"EKYC_AADHAAR_VERIFICATION\") });\n } else if (pathname.includes(\"/address-details\")) {\n crumbs.push({ label: t(\"EKYC_ADDRESS_DETAILS\") });\n } else if (pathname.includes(\"/property-info\")) {\n crumbs.push({ label: t(\"EKYC_PROPERTY_INFO\") });\n } else if (pathname.includes(\"/meter-details\")) {\n crumbs.push({ label: t(\"EKYC_METER_DETAILS\") });\n } else if (pathname.includes(\"/review\")) {\n crumbs.push({ label: t(\"EKYC_INBOX\"), path: `/digit-ui/citizen/ekyc/inbox` });\n crumbs.push({ label: t(\"EKYC_REVIEW\") });\n } else if (pathname.includes(\"/assign/surveyor-details\")) {\n crumbs.push({ label: t(\"EKYC_ASSIGN\"), path: `/digit-ui/citizen/ekyc/assign` });\n crumbs.push({ label: t(\"EKYC_SURVEYOR_DETAILS\") });\n } else if (pathname.includes(\"/inbox\")) {\n crumbs.push({ label: t(\"EKYC_INBOX\") });\n } else if (pathname.includes(\"/supervisor-dashboard\")) {\n crumbs.push({ label: t(\"EKYC_SUPERVISOR_DASHBOARD\") });\n } else if (pathname.includes(\"/surveyor-dashboard\")) {\n crumbs.push({ label: t(\"EKYC_SURVEYOR_DASHBOARD\") });\n } else if (pathname.includes(\"/vendor-dashboard\")) {\n crumbs.push({ label: t(\"EKYC_VENDOR_DASHBOARD\") || \"Vendor Dashboard\" });\n } else if (pathname.includes(\"/dashboard\")) {\n crumbs.push({ label: t(\"EKYC_DASHBOARD\") });\n } else if (pathname.includes(\"/assign\")) {\n crumbs.push({ label: t(\"EKYC_ASSIGN\") });\n } else if (pathname.includes(\"/status/\") || /^\\/digit-ui\\/citizen\\/ekyc\\/[^/]+$/.test(pathname)) {\n const statusLabel = t(\"EKYC_STATUS\");\n crumbs.push({ label: statusLabel === \"EKYC_STATUS\" || statusLabel === \"STATUS\" ? \"eKYC Status\" : statusLabel });\n }\n // home (exact path) → no child crumb\n\n return crumbs;\n };\n\n // const roles = Digit.SessionStorage.get(\"User\")?.info?.roles.map((ele) => ele.code);\n // const isEkyAction = (!roles?.includes(\"EKYC_SURVEYOR\") || roles?.includes(\"EMPLOYEE\"))\n\n return (\n <AppContainer>\n <div className=\"ground-container form-container\" style={{ flex: 1 }}>\n <ModuleHeader\n leftContent={\n <React.Fragment>\n <ArrowLeft className=\"icon\" />\n {t(\"CS_COMMON_BACK\")}\n </React.Fragment>\n }\n onLeftClick={() => window.history.back()}\n breadcrumbs={getDynamicBreadcrumbs()}\n />\n\n <Switch>\n <Route exact path={`${path}`}>\n <Redirect to=\"/digit-ui/citizen/ekyc-home\" />\n </Route>\n <PrivateRoute\n path={`${path}/inbox`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <Inbox />\n </LayoutWrapper>\n )}\n />\n <PrivateRoute\n path={`${path}/aadhaar-verification`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <AadhaarVerification />\n </LayoutWrapper>\n )}\n />\n\n {/* <PrivateRoute\n path={`${path}/address-details`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <AddressDetails />\n </LayoutWrapper>\n )}\n /> */}\n\n <PrivateRoute\n path={`${path}/property-info`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <PropertyInfo />\n </LayoutWrapper>\n )}\n />\n\n <PrivateRoute\n path={`${path}/meter-details`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <MeterDetails />\n </LayoutWrapper>\n )}\n />\n\n <PrivateRoute\n path={`${path}/review`}\n component={() => (\n <LayoutWrapper layoutClass=\"action\">\n <Review />\n </LayoutWrapper>\n )}\n />\n <PrivateRoute\n path={`${path}/assign`}\n exact\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <AssignEkyc />\n </LayoutWrapper>\n )}\n />\n <PrivateRoute\n path={`${path}/assign/surveyor-details/:id`}\n exact\n component={() => (\n <LayoutWrapper layoutClass=\"action\">\n <SurveyorDetailsCard />\n </LayoutWrapper>\n )}\n />\n <PrivateRoute\n path={`${path}/status/:applicationId`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <Review />\n </LayoutWrapper>\n )}\n />\n <PrivateRoute\n path={[`${path}/vendor-dashboard/:vendorId`, `${path}/vendor-dashboard`]}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <VendorDetailsCard />\n </LayoutWrapper>\n )}\n />\n <PrivateRoute\n path={`${path}/supervisor-dashboard/:id`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <SupervisorDetailsCard />\n </LayoutWrapper>\n )}\n />\n <PrivateRoute\n path={`${path}/supervisor-dashboard`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <SupervisorDetailsCard />\n </LayoutWrapper>\n )}\n />\n <PrivateRoute\n path={`${path}/surveyor-dashboard/:id`}\n component={() => (\n <LayoutWrapper layoutClass={roles.includes(\"EKYC_SUPERVISOR\") ? \"action\" : \"normal\"}>\n <SurveyorDetailsCard />\n </LayoutWrapper>\n )}\n />\n <PrivateRoute\n path={`${path}/surveyor-dashboard`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <SurveyorDetailsCard />\n </LayoutWrapper>\n )}\n />\n <PrivateRoute\n path={`${path}/:id`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <EkycStatus />\n </LayoutWrapper>\n )}\n />\n </Switch>\n </div>\n </AppContainer>\n );\n};\n\nexport default CitizenApp;\n","import React, { useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useRouteMatch } from \"react-router-dom\";\nimport { CitizenHomeCard, DocumentIcon, Loader } from \"@djb25/digit-ui-react-components\";\nimport EKYCCard from \"./components/EKYCCard\";\nimport Inbox from \"./components/Dashboard\";\nimport DesktopInbox from \"./components/DesktopInbox\";\nimport MobileInbox from \"./components/MobileInbox\";\nimport Filter from \"./components/Filter\";\nimport EmployeeApp from \"./pages/employee\";\nimport CitizenApp from \"./pages/citizen\";\nimport PropertyInfo from \"./components/PropertyInfo\";\nimport MeterDetails from \"./components/MeterDetails\";\nimport AadhaarVerification from \"./components/AadhaarVerification\";\n\nexport const EkycModule = ({ stateCode, userType, tenants }) => {\n const { path, url } = useRouteMatch();\n const moduleCode = \"EKYC\";\n const language = Digit.StoreData.getCurrentLanguage();\n const { isLoading } = Digit.Services.useStore({ stateCode, moduleCode, language });\n\n Digit.SessionStorage.set(\"EKYC_TENANTS\", tenants);\n\n useEffect(\n () =>\n Digit.LocalizationService.getLocale({\n modules: [`rainmaker-${Digit.ULBService.getCurrentTenantId()}`],\n locale: Digit.StoreData.getCurrentLanguage(),\n tenantId: Digit.ULBService.getCurrentTenantId(),\n }),\n []\n );\n\n if (isLoading) {\n return <Loader page={true} />;\n }\n\n if (userType === \"employee\") {\n return <EmployeeApp path={path} url={url} userType={userType} tenants={tenants} />;\n } else return <CitizenApp />;\n};\n\nexport const EkycLinks = ({ matchPath, userType }) => {\n const { t } = useTranslation();\n const propsForModuleCard = {\n links: [],\n };\n const citizenInfo = Digit.SessionStorage.get(\"User\")?.info?.roles;\n const roles = Array.isArray(citizenInfo) ? citizenInfo.map((ele) => ele.code) : [];\n\n if (roles.includes(\"EKYC_SURVEYOR\")) {\n propsForModuleCard.links.push({\n label: t(\"SURVEYOR_DASHBOARD\"),\n link: `/digit-ui/citizen/ekyc/surveyor-dashboard`,\n });\n }\n\n if (roles.includes(\"EKYC_SUPERVISOR\") || roles.includes(\"EKYC_VENDOR\")) {\n propsForModuleCard.links.push({\n label: t(\"EKYC_INBOX\"),\n link: `/digit-ui/citizen/ekyc/inbox`,\n });\n }\n\n if (roles.includes(\"EKYC_SUPERVISOR\")) {\n propsForModuleCard.links.push(\n {\n label: t(\"EKYC_SUPERVISOR_DASHBOARD\"),\n link: `/digit-ui/citizen/ekyc/supervisor-dashboard`,\n },\n {\n label: t(\"EKYC_ASSIGN\"),\n link: `/digit-ui/citizen/ekyc/assign`,\n }\n );\n }\n\n if (roles.includes(\"EKYC_VENDOR\")) {\n propsForModuleCard.links.push({\n label: t(\"EKYC_VENDOR_DASHBOARD\"),\n link: `/digit-ui/citizen/ekyc/vendor-dashboard`,\n });\n }\n\n if (roles.includes(\"EKYC_SUPERVISOR\") || roles.includes(\"EKYC_VENDOR\")) {\n propsForModuleCard.links.push({\n label: t(\"TITLE_VENDOR_MANAGEMENT\"),\n link: `/digit-ui/citizen/vendor/search-vendor`,\n });\n }\n\n if (roles.length === 1 && roles.includes(\"CITIZEN\")) {\n propsForModuleCard.links.push({\n label: t(\"EKYC_STATUS\"),\n link: `/digit-ui/citizen/ekyc/:id`,\n });\n }\n\n const formattedLinks = propsForModuleCard.links.map((l) => ({\n i18nKey: l.label,\n link: l.link,\n count: l.count,\n }));\n\n return (\n <CitizenHomeCard\n header={t(\"EKYC_MODULE_NAME\")}\n links={formattedLinks}\n Icon={() => <DocumentIcon className=\"fill-path-primary-main\" />}\n />\n );\n};\n\nconst componentsToRegister = {\n EKYCModule: EkycModule,\n EKYCCard,\n EKYCInbox: Inbox,\n EKYCDesktopInbox: DesktopInbox,\n EKYCMobileInbox: MobileInbox,\n EKYC_INBOX_FILTER: (props) => <Filter {...props} />,\n EkycLinks,\n AadhaarVerification,\n PropertyInfo,\n MeterDetails,\n};\n\nexport const initEkycComponents = () => {\n Object.entries(componentsToRegister).forEach(([key, value]) => {\n Digit.ComponentRegistryService.setComponent(key, value);\n });\n};\n\nexport default EkycModule;\n"],"names":["EKYCCard","_Digit$SessionStorage","_Digit$SessionStorage2","t","useTranslation","Digit","Utils","ekycAccess","tenantId","ULBService","getCurrentTenantId","citizenInfo","SessionStorage","get","info","roles","Array","isArray","map","ele","code","data","listData","isLoading","Hooks","ekyc","useEkycApplicationList","offset","limit","enabled","totalCount","isCitizen","window","location","pathname","includes","prefix","links","push","label","link","count","length","propsForModuleCard","Icon","React","createElement","PersonIcon","moduleName","kpis","EmployeeModuleCard","excludedKeys","createHeaderMapping","kno","firstName","middleName","lastName","status","ekycStatus","zoneName","zoneCode","assembly","ward","pincode","addressRaw","locality","subLocality","flatHouseNumber","streetName","landmark","city","state","addressType","addressProofType","mobileNo","alternateMobileNo","whatsappNo","email","landlineNo","mrkey","mrcode","areacode","source","submittedAt","assignedAt","connectionType","Type","occupantType","knoCategory","approvedAt","gender","parentSpouse","fatherOrHusbandName","relationship","informantName","informantRelation","informantIs","contactPerson","relation","entityName","designation","department","employeeId","ownerMobile","ownerVerificationDone","consentGiven","proofOfIdentityType","documentNumber","noOfPerson","latitude","longitude","gpsValid","meterNumber","meterMake","meterStatus","meterCondition","meterLocation","meterLocationAddress","workingStatus","sewerConnection","septicTank","lastBillRaised","lastBillReceivedDate","accessToMeter","systemMeterId","lastBillNotRaisedReason","waterConnectionYears","sewerConnectionYears","pidNumber","propertyType","subPropertyCategory","noOfFloor","noOfRooms","noOfBeds","numberOfDwellingUnits","floorNo","userType","tenantName","tenantMobile","verificationStatus","houseBuiltDuration","surveyorId","supervisorId","vendorId","assignmentType","assignmentValue","assignedTime","isSelfAssigned","doorPhotoFilestoreId","panFilestoreId","documentProofFilestoreId","buildingImageFileStoreId","propertyDocumentFileStoreId","meterPhotoFileStoreId","modifiedBy","emailId","dob","consumerType","createdTime","lastModifiedTime","meterLatitude","meterLongitude","toTitleCase","str","cleanStr","String","isNaN","Number","split","pop","toLowerCase","replace","c","toUpperCase","skipTitleCase","translatedFields","getEkycExcelData","consumerList","k","headerMapping","excelData","item","cleanObj","fullName","filter","Boolean","join","Object","keys","forEach","key","val","friendlyHeader","getChartConstructor","C","Chartjs","StatusCards","_ref","countData","ekycDownloadLoading","setEkycDownloadLoading","useState","showReportMenu","setShowReportMenu","customDate","setCustomDate","from","to","showCustomPicker","setShowCustomPicker","reportMenuRef","useRef","useEffect","handler","e","current","contains","target","document","addEventListener","removeEventListener","loggedInUser","name","handleDownloadEkycData","fromDate","toDate","Promise","resolve","_finallyRethrows","_catch","EkycService","application_list","reportDownload","then","response","alert","cleanFileName","Download","Excel","error","console","_wasThrown","_result","reject","getDateRange","now","Date","start","setHours","setDate","getDate","getDay","handlePresetDownload","range","getTime","handleCustomDownload","chartRef1","chartInstance1","efficiency","total","Math","round","submittedCount","completed","formatNumber","num","Intl","NumberFormat","format","destroy","ctx1","getContext","ChartConstructor","type","labels","datasets","pending","submitted","inprocess","backgroundColor","borderColor","borderWidth","hoverOffset","options","cutout","plugins","legend","display","maintainAspectRatio","responsive","legendItems","color","value","selfEkycCount","rejected","className","FaChartBar","size","style","paddingInline","borderRadius","ref","disabled","onClick","p","MdDownloadIcon","_ref2","onChange","gap","marginTop","stopPropagation","width","height","Dashboard","progressData","isProgressLoading","totalKnosInSystem","completedKnosInZones","pendingKnosInZones","rejectedKnosInZones","totalAssignments","submittedKnosInZones","selfEkycCountInZones","overallProgressPercent","EkycDashboardSkeleton","DesktopInbox","_Digit$ComponentRegis","tableConfig","filterComponent","props","onSort","onNextPage","onPrevPage","currentPage","pageSizeLimit","onPageSizeChange","parentRoute","searchParams","sortParams","totalRecords","history","useHistory","FilterComponent","ComponentRegistryService","getComponent","selectedKno","setSelectedKno","reviewData","getReview","useEkycAPI","handleReview","kNumber","aadhaarData","columns","useMemo","Header","accessor","Cell","_row$original","_row$original2","row","original","applicationNumber","_ref3","_row$original3","citizenName","_ref4","_row$original4","_row$original5","_ref5","_row$original6","_row$original7","raw","ekycstatus","_ref6","_row$original8","_row$original9","tableData","items","Loader","InboxLinks","headerText","moduleCode","defaultSearchParams","onFilterChange","onSearch","flex","Card","padding","Table","getCellProps","cellInfo","SearchConsumer","_props$countData","_props$countData2","_props$countData3","children","_searchParams","setSearchParams","prev","onSubmit","preventDefault","onClear","cleared","kName","HomeIcon","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","cx","cy","r","x1","y1","x2","y2","TextInput","placeholder","d","todaysAudits","auditChange","pendingCount","i","fromCharCode","MobileInbox","_data$items","mobileData","mobileNumber","Link","SubmitBar","DetailsCard","serviceRequestIdKey","linkPrefix","text","index","textAlign","Filter","statusMap","applyLocalFilters","clearAll","onStatusChange","newParams","FilterForm","handleSubmit","fn","onResetFilterForm","id","onMobileExclusiveFilterPopupFormClose","onClose","FilterFormField","fontWeight","Dropdown","option","optionKey","select","selected","downloadSurveyorPDF","rows","surveyorName","vendorName","supervisorName","dashboardInfo","phoneNumber","currentDate","formattedDate","toLocaleDateString","day","month","year","formattedTime","toLocaleTimeString","hour","minute","second","hour12","downloadDateTime","isValDefined","undefined","details","title","asSectionHeader","values","pdf","generateSurveyorReport","logo","heading","hideApplicationNumber","downloadTime","downloadSupervisorPDF","mappedRows","_row$owner","_row$owner2","owner","progress","customT","downloadVendorPDF","emailContact","VendorDetailsCard","_vendor$owner","_vendor$owner2","_vendorName$charAt","_progressData$supervi","useParams","vendor","isVendorSearchLoading","fsm","useVendorSearch","filters","ids","config","staleTime","targetVendorId","useEkycAssignmentProgress","keepPreviousData","zoneIds","_vendor$zoneIds","zone","trim","cards","totalKnosInZones","icon","FaDatabase","FaFileAlt","FaBuilding","FaUser","FaClock","FaChartLine","setCurrentPage","pageSize","setPageSize","supervisorColumns","_Digit$SessionStorage3","targetPath","href","textDecoration","totalKnos","submittedKnos","pendingKnos","progressPercent","reportLoading","setReportLoading","handleDownload","rowsWithStats","supervisorReport","s","err","StatCard","Fragment","isPageLoading","charAt","card","idx","flexWrap","tableTitle","tableClass","isTableScrollable","isPaginationRequired","_progressData$supervi2","ceil","onFirstPage","onLastPage","_progressData$supervi3","max","useInboxTableConfig","_formState$tableForm","_formState$tableForm2","_formState$searchForm","formState","table","dispatch","checkPathName","onSortingByData","inboxStyles","tableStyle","tableForm","tableColumnConfig","disableSortBy","DateUtils","ConvertEpochToDate","_ref7","disableSort","autoSort","manualPagination","initSortId","floor","_formState$tableForm3","action","parseInt","_formState$tableForm4","searchForm","message","createContext","useContext","useCallback","isValidElement","cloneElement","SearchFormFieldsComponents","searchFormState","controlSearchForm","searchType","errors","Label","CustomTooltip","Controller","control","defaultValue","rules","pattern","render","CardLabelError","useInboxMobileCardsData","isSupervisor","handleSupervisorReview","dataForMobileInboxCards","_item$owner","serviceType","MobileSortFormValues","sortOrderOptions","i18nKey","controlSortForm","useFormContext","SearchField","RadioButtons","onSelect","selectedOption","optionsKey","isTwoDynamicPrefix","getRedirectionLink","handleClickEnabled","Inbox","_formState$searchForm3","_formState$searchForm4","useLocation","formInitValue","filterForm","sortBy","sortOrder","useReducer","formReducer","queryParams","isListLoading","allVendorsDetailed","searchDetails","_formState$searchForm2","isSearchActive","isSearchLoading","searchData","useSearchConnection","sourceData","filteredData","isSearchItem","connectionDetails","_item$propertyInfo","_item$propertyInfo2","_item$connectionDetai","_item$propertyInfo3","_item$connectionDetai2","_item$connectionDetai3","_item$connectionDetai4","_item$connectionDetai5","applicationNo","propertyInfo","connectionNo","consumerName","statusflag","sla","progressMetrics","toFixed","FaUsers","FaCheckCircle","SearchFormFields","registerRef","tableOrderFormDefaultValues","browser","isMobile","onSearchFormSubmit","hasOwnProperty","searchFormDefaultValues","consumerNo","onSearchFormReset","setSearchFormValue","propsForSearchForm","resetSearchFormDefaultValues","payload","set","newLimit","desc","propsForInboxTable","overflowX","overflowY","onMobileSortOrderData","onSortFormReset","setSortFormValue","propsForMobileSortForm","sortFormDefaultValues","propsForInboxMobileCards","isInboxLoading","marginBottom","InboxComposer","_extends","forceTable","showSearchOnMobile","ActionButton","jumpTo","routeTo","isEditing","LinkButton","EditIcon","margin","checkForNA","boolToYesNo","extractReviewData","flowState","rawData","reviewWrapper","applicationReviewInfo","applicationReview","applicationData","newData","oldData","ReviewSection","fields","hideEditButton","background","border","overflow","borderBottom","justifyContent","alignItems","CardSubHeader","fontSize","borderCollapse","tableLayout","textTransform","field","valNew","valOld","normalizeVal","v","isChanged","borderTop","preTranslated","isBool","Review","_newDataRaw$connectio","_newDataRaw$address","_newDataRaw$address2","_newDataRaw$address3","_newDataRaw$address4","_newDataRaw$address5","_newDataRaw$address6","_newDataRaw$address7","_newDataRaw$address8","_newDataRaw$address9","_newDataRaw$address0","_newDataRaw$address1","_newDataRaw$address10","_newDataRaw$address11","_newDataRaw$address12","_newDataRaw$address13","_newDataRaw$address14","_newDataRaw$property","_newDataRaw$property2","_editedProperty$conne","_newDataRaw$property3","_editedProperty$conne2","_newDataRaw$property4","_editedProperty$userT","_newDataRaw$property5","_editedProperty$noOfF","_newDataRaw$property6","_newDataRaw$property7","_newDataRaw$meter","_editedMeter$meterSta","_newDataRaw$meter2","_newDataRaw$meter3","_newDataRaw$meter4","_newDataRaw$meter5","_editedMeter$workingS","_newDataRaw$meter6","_editedMeter$lastBill","_newDataRaw$meter7","_newDataRaw$meter8","_Digit$UserService$ge","applicationId","agree","setAgree","isSubmitting","setIsSubmitting","showPreview","setShowPreview","previewUrl","setPreviewUrl","showOptions","setShowOptions","showToast","setShowToast","toastData","setToastData","edits","activeKno","addressDetails","editedAddress","propertyDetails","editedProperty","meterDetails","editedMeter","workflowMutation","useEkycWorkflow","updateMutation","useEkycUpdate","useEkycSearchReview","fetchType","userRoles","isZRO","isSupervisorOrSurveyorOrVendor","isStatusView","apiNewData","apiOldData","flatNewData","flatOldData","prepareConsolidatedData","apiConn","apiAddr","apiProp","apiMeter","connection","address","connectionCategory","meterNo","statusFlag","knumber","fullAddress","flatNo","buildingTower","building","pinCode","noOfPersons","doorPhotoFileStoreId","property","typeOfConnection","numberOfFloors","buildingImageFilestoreId","meter","metered","meterPhotoFilestoreId","newDataRaw","addressData","whatsappNumber","propertyData","connectionTypeData","connectionCategoryData","userTypeData","noOfFloorsData","meterData","meterStatusData","workingStatusData","lastBillRaisedData","handleDeclaration","loggedInUserInfo","UserService","getUser","userData","useUserSearch","uuid","supervisorData","user","matchedSupervisor","find","userName","handleReject","_Digit$UserService$ge2","RequestInfo","apiId","ver","msgId","authToken","access_token","remarks","reviewedBy","role","_temp","mutateAsync","result","setTimeout","_err$response","_err$response$data","_err$response2","_err$response2$data","_err$response2$data$E","_err$response2$data$E2","_err$Errors","_err$Errors$","errMsg","Errors","handleApprove","_Digit$UserService$ge3","_temp2","_err$response3","_err$response3$data","_err$response3$data$E","_err$response3$data$E2","_err$Errors2","_err$Errors2$","handleViewDocument","fileStoreId","_temp4","UploadServices","FileFetchbyid","blobUrl","URL","createObjectURL","handleMenuSelect","StatusTable","maxWidth","Row","actionButton","GenericFileIcon","cursor","paddingTop","CheckBox","checked","ActionBar","Menu","position","top","left","zIndex","maxHeight","boxShadow","right","src","alt","onError","nextSibling","open","Toast","AadhaarVerificationConfig","formData","uploadFile","setDocumentId","documentId","_formData","_formData$consumerTyp","_formData2","_formData3","_formData3$occupantTy","_formData4","_formData5","informantIsConsumer","isMandatory","populators","component","validation","required","min","UploadFile","onUpload","onDelete","head","body","AadhaarVerification","URLSearchParams","search","urlKno","searchKno","sessionStorage","getItem","cacheTime","savedData","aadhaarVerification","documentProof","setDocumentProof","toast","setToast","isDataLoaded","setIsDataLoaded","canSubmit","setCanSubmit","defaultValues","setDefaultValues","categoryType","parentSpouseName","mobile","whatsapp","residents","identityType","idFile","tenantVerification","consent","localFormData","setLocalFormData","extractApplicationData","appData","addrDetails","fName","mName","lName","parts","slice","updatedDefaults","handleUploadProof","file","files","Filestorage","res","_res$data","_res$data$files","_res$data$files$","onFormValueChange","setValue","_data$consumerType","_localFormData$consum","_data$occupantType","_localFormData$occupa","consumerTypeChanged","occupantTypeChanged","informantIsConsumerChanged","knoVal","consumerTypeVal","occupantTypeVal","categoryTypeVal","firstNameVal","mobileVal","residentsVal","consentVal","docId","ownerMobileVal","valid","test","_data$consumerType2","_data$occupantType2","_data$categoryType","_data$gender","_data$identityType","submitData","landline","entityRelation","idProof","idNumber","updateType","Config","FormComposer","isDisabled","isCollapsible","isDefaultOpen","noCard","submitInForm","ekycConfig","route","texts","header","submitBarLabel","timeLine","currentStep","actions","doorImage","showMapActualLocation","EKYCForm","path","passedPath","match","useRouteMatch","params","setParams","useSessionStorage","rest","goNext","skipStep","isAddMultiple","currentPath","routeObj","nextStep","currentIndex","findIndex","redirectWithHistory","base","handleSelect","silent","obj","concat","indexRoute","formStepRoutes","isFormStep","some","sectionRefs","currentRoute","scrollIntoView","behavior","block","VerticalTimeline","showFinalStep","Switch","Route","Component","el","defaultOpen","Redirect","VendorCardSkeleton","VendorPerformanceSkeleton","AdminDashboard","vendorReports","_vendor$vendorName","_vendor$vendorName$","totalSupervisors","totalSurveyors","SupervisorDetailsCard","_fullName$charAt","supervisorSearchResponse","isSupervisorSearchLoading","useSupervisorSearch","targetId","supervisors","matchedSup","_s$id","_s$owner","_s$owner$uuid","surveyorSearchResponse","isSurveyorSearchLoading","useSurveyorSearch","vendorSearchResponse","useDsoSearch","supervisor","targetOwnerOrId","resolvedSupervisorId","selfSup","_s$owner2","_s$owner2$uuid","_s$id2","_s$id3","_s$owner3","_s$owner3$uuid","progressReport","_s$supervisorId","_s$id4","_progressReport","_progressReport2","_progressReport3","_matchedSup$owner2","_matchedSup$owner3","_matchedSup$owner4","_matchedSup$owner5","_matchedSup$owner6","_matchedSup$owner7","matchedSurveyors","surveyors","surv","_matchedSup$owner","_surv$owner3","_surv$owner4","_surv$owner5","_surv$owner6","_surv$owner7","_realStats","_realStats2","_realStats3","_realStats4","realStats","report","_report$supervisorId","_matchedSup$id","_report$id","_matchedSup$id2","_report$surveyors","matchedSurv","_s$surveyorId","_surv$id","_s$surveyorId2","_surv$owner","_surv$owner$uuid","_s$id5","_surv$id2","_s$id6","_surv$owner2","_surv$owner2$uuid","reduce","acc","assignedZoneId","_loggedInUser$uuid","_supervisorSearchResp","_matchedSupForFallbac","_matchedSupForFallbac2","_matchedSupForFallbac3","isSelf","matchedSupForFallback","_s$id7","_s$owner4","_s$owner4$uuid","surveyorsMapped","_surveyorSearchRespon","_matchedSurv$owner","_matchedSurv$owner2","_matchedSurv$owner3","_matchedSurv$owner4","_matchedSurv$owner5","_s$id8","_surv$surveyorId","_s$owner5","_s$owner5$uuid","_surv$surveyorId2","assignedZone","_matchedVendor$dsoDet","matchedVendor","_v$dsoDetails","_v$dsoDetails2","dsoDetails","currentSupervisor","surveyorsData","surveyorColumns","_Digit$SessionStorage4","completedKnos","points","AssignEkycModal","surveyor","isReassign","closeModal","refetchDashboard","propsTenantId","selectedKnos","setSelectedKnos","setFilters","debouncedFilters","setDebouncedFilters","egovLocationData","useCommonMDMS","boundaryData","_egovLocationData$ego","tenantBoundary","TenantBoundary","revenueData","_item$hierarchyType","hierarchyType","boundary","structuredLocalityData","localities","boundaries","extractLocalities","node","localname","child","rootNode","fetchedPincodes","pinSet","Set","loc","pins","sanitizedPin","toString","add","sort","filterOptionsData","unassignedOnly","fetchFilterOptions","Infinity","pincodeOptions","mrkeyOptions","timer","clearTimeout","isFetching","refetch","refetchApplicationList","assignedOnly","handleAssignmentError","isAlreadyAssigned","assignmentMutation","useEkycAssignmentCreate","onSuccess","variables","_response$data","skipped","_response$skipped$","reason","_temp3","_error$data","_error$response","_error$response$data","reassignMutation","useEkycAssignmentReassign","_response$data2","_response$skipped$2","_temp8","_temp6","_temp5","_temp7","_error$data2","_error$response2","_error$response2$data","activeMutation","allData","totalPages","paginatedData","handleAssign","_surveyor$owner","newSurveyorId","_surveyor$owner2","mutate","handleSelectAll","allMatchingKnos","isAllSelected","every","handleFilterChange","isAllChecked","Modal","headerBarMain","headerBarEnd","Close","actionCancelLabel","actionCancelOnSubmit","actionSaveLabel","actionSaveOnSubmit","pin","SurveyorDetailsCard","_surveyorSearchById$s","_surveyor$owner3","_surveyor$owner4","_surveyor$owner7","_surveyor$owner8","_surveyor$owner9","_dashboardData$dashbo","_dashboardData$dashbo2","_dashboardData$dashbo3","_dashboardData$dashbo4","_dashboardData$dashbo5","_dashboardData$dashbo6","showModal","setShowModal","ownerIds","surveyorSearchById","isLoadingId","hasFoundById","surveyorSearchByOwner","isLoadingOwner","vendorData","isVendorLoading","_mappedVendor$dsoDeta","mappedVendor","_mappedSupervisor$own","mappedSupervisor","isDashboardLoading","dashboardData","useEkycSurveyorDashboard","knoColumns","_surveyor$owner5","dashboard","_response$dashboardIn","_surveyor$owner6","_wasThrown2","_result2","description","inProgressCount","showAutoSerialNo","_dashboardData$dashbo7","_dashboardData$dashbo8","WorkOrder","setVendor","validFrom","setValidFrom","validTo","setValidTo","uploadedFile","setUploadedFile","setFile","setError","vendorOptions","createWorkOrder","wt","useVendorWorkOrderCreate","getStateId","_response$data$files","_response$data2$files","vendorWorkOrder","isError","_err$response$data$Er","_err$response$data$Er2","selectfile","isFormDisabled","CollapsibleCardPage","flexDirection","DatePicker","date","extraStyleName","accept","storageKey","_row$original5$owner","SupervisorInboxTableConfig","AssignEkyc","paginationParms","_owner$roles","_owner$roles$map","_item$additionalDetai","_item$auditDetails","_item$auditDetails2","roleCodes","additionalDetails","auditDetails","isCardLoading","breadcrumb","listLabel","listPath","detailLabel","getEkycRoutes","layout","ekycRoutes","EmployeeApp","removeItem","getDynamicBreadcrumbs","crumbs","pathSegments","ekycIndex","indexOf","relativeSegments","matchedPath","paths","singlePath","routeSegments","seg","startsWith","crumb","crumbPath","segment","RegExp","AppContainer","ModuleHeader","leftContent","ArrowLeft","onLeftClick","back","breadcrumbs","PrivateRoute","LayoutWrapper","layoutClass","businessService","isInbox","exact","PropertyInfoConfig","buildingImage","buildingImageId","setBuildingImage","setBuildingImageId","_formData$propertyTyp","isHotel","isHospitalOrNursing","objectFit","PropertyInfo","noOfFloors","dwellingUnits","propType","subPropCat","matchingType","numberOfRooms","numberOfBeds","handleUpload","reader","FileReader","onloadend","readAsDataURL","_data$propertyType","_localFormData$proper","propertyTypeChanged","propTypeVal","subPropCatVal","noOfFloorsVal","buildingImgId","noOfRoomsVal","noOfBedsVal","_data$propertyType2","_data$subPropertyCate","MeterDetailsConfig","uploadPhoto","meterPhoto","meterPhotoId","setMeterPhoto","setMeterPhotoId","_formData$meterStatus","_formData3$lastBillRe","_formData5$sewerConne","_formData6","lastBillReceived","isFrozen","monthYearOptions","y","m","yesNo","MeterDetails","saType","mrCode","areaCode","mrKey","meterMaker","billMonthYear","mStatus","mCondition","mLoc","billRec","billMonYr","accToMeter","sewerConn","sepTank","matchingStatus","o","matchingCond","matchingLoc","strVal","formatted","parsedParts","mon","yr","_data$meterStatus","_localFormData$meterS","_data$lastBillReceive","_localFormData$lastBi","_data$sewerConnection","_localFormData$sewerC","meterStatusChanged","lastBillReceivedChanged","sewerConnectionChanged","connCatVal","mStatusVal","mLocVal","billRecVal","sewerConnVal","mPhotoId","reasonVal","billMonYrVal","sepTankVal","_data$meterStatus2","_data$meterCondition","_data$meterLocation","_data$lastBillReceive2","_data$billMonthYear","_data$accessToMeter","_data$sewerConnection2","_data$septicTank","EkycStatus","setFormState","searchQuery","setSearchQuery","errorMsg","setErrorMsg","currentKNumber","targetKNumber","isReviewLoading","retry","connectionSearchData","isConnectionLoading","_data$kNumber","getStatusDetails","naText","connRaw","addrRaw","propRaw","meterRaw","rawStatus","reviewName","connName","reviewPhone","connPhone","reviewType","connType","timelineConfig","activeStepIndex","getStatusText","currentActiveIndex","CardHeader","CardText","CitizenApp","statusLabel","EkycModule","stateCode","tenants","url","language","StoreData","getCurrentLanguage","Services","useStore","LocalizationService","getLocale","modules","locale","page","EkycLinks","formattedLinks","l","CitizenHomeCard","DocumentIcon","componentsToRegister","EKYCModule","EKYCInbox","EKYCDesktopInbox","EKYCMobileInbox","EKYC_INBOX_FILTER","initEkycComponents","entries","setComponent"],"mappings":";;;;;;;;;;;AAIA,MAAMA,QAAQ,GAAGA,MAAM;EAAA,IAAAC,qBAAA,EAAAC,sBAAA;EACrB,MAAM;IAAEC;GAAG,GAAGC,2BAAc,EAAE;EAC9B,IAAI,CAACC,KAAK,CAACC,KAAK,CAACC,UAAU,EAAE,EAAE;IAC7B,OAAO,IAAI;;EAEb,MAAMC,QAAQ,GAAGH,KAAK,CAACI,UAAU,CAACC,kBAAkB,EAAE;EACtD,MAAMC,WAAW,IAAAV,qBAAA,GAAGI,KAAK,CAACO,cAAc,CAACC,GAAG,CAAC,MAAM,CAAC,cAAAZ,qBAAA,wBAAAC,sBAAA,GAAhCD,qBAAA,CAAkCa,IAAI,cAAAZ,sBAAA,uBAAtCA,sBAAA,CAAwCa,KAAK;EACjE,MAAMA,KAAK,GAAGC,KAAK,CAACC,OAAO,CAACN,WAAW,CAAC,GAAGA,WAAW,CAACO,GAAG,CAAEC,GAAG,IAAKA,GAAG,CAACC,IAAI,IAAID,GAAG,CAAC,GAAG,EAAE;EAEzF,MAAM;IAAEE,IAAI,EAAEC,QAAQ;IAAEC;GAAW,GAAGlB,KAAK,CAACmB,KAAK,CAACC,IAAI,CAACC,sBAAsB,CAAC,EAAE,EAAE;IAAElB,QAAQ;IAAEmB,MAAM,EAAE,CAAC;IAAEC,KAAK,EAAE;GAAG,EAAE;IAAEC,OAAO,EAAE,CAAC,CAACrB;GAAU,CAAC;EAE7I,MAAMsB,UAAU,GAAGP,SAAS,GAAG,GAAG,GAAG,CAAAD,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEQ,UAAU,KAAI,CAAC;EAE9D,MAAMC,SAAS,GAAGC,MAAM,CAACC,QAAQ,CAACC,QAAQ,CAACC,QAAQ,CAAC,UAAU,CAAC;EAC/D,MAAMC,MAAM,GAAGL,SAAS,GAAG,wBAAwB,GAAG,yBAAyB;EAE/E,IAAIM,KAAK,GAAG,EAAE;EACd,IAAIN,SAAS,EAAE;IACb,IAAIhB,KAAK,CAACoB,QAAQ,CAAC,eAAe,CAAC,EAAE;MACnCE,KAAK,CAACC,IAAI,CAAC;QACTC,KAAK,EAAEpC,CAAC,CAAC,oBAAoB,CAAC;QAC9BqC,IAAI,EAAE,GAAGJ,MAAM;OAChB,CAAC;;IAEJ,IAAIrB,KAAK,CAACoB,QAAQ,CAAC,iBAAiB,CAAC,IAAIpB,KAAK,CAACoB,QAAQ,CAAC,aAAa,CAAC,EAAE;MACtEE,KAAK,CAACC,IAAI,CAAC;QACTG,KAAK,EAAEX,UAAU;QACjBS,KAAK,EAAEpC,CAAC,CAAC,YAAY,CAAC;QACtBqC,IAAI,EAAE,GAAGJ,MAAM;OAChB,CAAC;;IAEJ,IAAIrB,KAAK,CAACoB,QAAQ,CAAC,iBAAiB,CAAC,EAAE;MACrCE,KAAK,CAACC,IAAI,CACR;QACEC,KAAK,EAAEpC,CAAC,CAAC,2BAA2B,CAAC;QACrCqC,IAAI,EAAE,GAAGJ,MAAM;OAChB,EACD;QACEG,KAAK,EAAEpC,CAAC,CAAC,aAAa,CAAC;QACvBqC,IAAI,EAAE,GAAGJ,MAAM;OAEnB,CAAC;;IAEH,IAAIrB,KAAK,CAACoB,QAAQ,CAAC,aAAa,CAAC,EAAE;MACjCE,KAAK,CAACC,IAAI,CAAC;QACTC,KAAK,EAAEpC,CAAC,CAAC,uBAAuB,CAAC;QACjCqC,IAAI,EAAE,GAAGJ,MAAM;OAChB,CAAC;;IAEJ,IAAIrB,KAAK,CAACoB,QAAQ,CAAC,iBAAiB,CAAC,IAAIpB,KAAK,CAACoB,QAAQ,CAAC,aAAa,CAAC,EAAE;MACtEE,KAAK,CAACC,IAAI,CAAC;QACTC,KAAK,EAAEpC,CAAC,CAAC,yBAAyB,CAAC;QACnCqC,IAAI,EAAE;OACP,CAAC;;IAEJ,IAAIH,KAAK,CAACK,MAAM,KAAK,CAAC,IAAK3B,KAAK,CAAC2B,MAAM,KAAK,CAAC,IAAI3B,KAAK,CAACoB,QAAQ,CAAC,SAAS,CAAE,EAAE;MAC3EE,KAAK,CAACC,IAAI,CAAC;QACTC,KAAK,EAAEpC,CAAC,CAAC,aAAa,CAAC;QACvBqC,IAAI,EAAE,GAAGJ,MAAM;OAChB,CAAC;;GAEL,MAAM;IAELC,KAAK,GAAG,CAKN;MACEE,KAAK,EAAEpC,CAAC,CAAC,sBAAsB,CAAC,IAAI,iBAAiB;MACrDqC,IAAI,EAAE,GAAGJ,MAAM;KAChB,EACD;MACEK,KAAK,EAAEX,UAAU;MACjBS,KAAK,EAAEpC,CAAC,CAAC,YAAY,CAAC;MACtBqC,IAAI,EAAE,GAAGJ,MAAM;KAChB,EACD;MACEG,KAAK,EAAEpC,CAAC,CAAC,iBAAiB,CAAC;MAC3BqC,IAAI,EAAE,GAAGJ,MAAM;KAChB,EACD,IAAI,CAACrB,KAAK,CAACoB,QAAQ,CAAC,UAAU,CAAC,GAC3B,CACE;MACEI,KAAK,EAAEpC,CAAC,CAAC,aAAa,CAAC;MACvBqC,IAAI,EAAE,GAAGJ,MAAM;KAChB,CACF,GACD,EAAE,CAAC,CACR;;EAGH,MAAMO,kBAAkB,GAAG;IACzBC,IAAI,eAAEC,cAAA,CAAAC,aAAA,CAACC,iCAAU,MAAE,CAAC;IACpBC,UAAU,EAAE7C,CAAC,CAAC,kBAAkB,CAAC;IACjC8C,IAAI,EAAElB,SAAS,GACX,EAAE,GACF,CACE;MACEU,KAAK,EAAEX,UAAU;MACjBS,KAAK,EAAEpC,CAAC,CAAC,YAAY,CAAC;MACtBqC,IAAI,EAAE,GAAGJ,MAAM;KAChB,CACF;IACLC,KAAK,EAAEA;GACR;EAED,oBAAOQ,cAAA,CAAAC,aAAA,CAACI,yCAAkB,EAAKP,kBAAqB,CAAC;AACvD,CAAC;;AChHD;AACA,AAkKA;AACA,AAAO,MAAM,eAAe,iBAAiB,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC,IAAI,YAAY,CAAC;AAC/J,AA2DA;AACA,AAAO,MAAM,oBAAoB,iBAAiB,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,aAAa,KAAK,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC,IAAI,iBAAiB,CAAC;AACxL,AA8UA;AACA;AACA,AAAO,SAAS,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE;AACtC,CAAC,IAAI;AACL,EAAE,IAAI,MAAM,GAAG,IAAI,EAAE,CAAC;AACtB,EAAE,CAAC,MAAM,CAAC,EAAE;AACZ,EAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;AACpB,EAAE;AACF,CAAC,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE;AAC5B,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC;AACtC,EAAE;AACF,CAAC,OAAO,MAAM,CAAC;AACf,CAAC;AACD;AACA;AACA,AAAO,SAAS,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE;AAClD,CAAC,IAAI;AACL,EAAE,IAAI,MAAM,GAAG,IAAI,EAAE,CAAC;AACtB,EAAE,CAAC,OAAO,CAAC,EAAE;AACb,EAAE,OAAO,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAC5B,EAAE;AACF,CAAC,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE;AAC5B,EAAE,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AAC9E,EAAE;AACF,CAAC,OAAO,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACjC,CAAC;;ACzkBD,MAAMQ,YAAY,GAAG,CACjB,QAAQ,EACR,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,mBAAmB,EACnB,MAAM,EACN,OAAO,EACP,aAAa,EACb,kBAAkB,EAClB,QAAQ,EACR,UAAU,EACV,oBAAoB,EACpB,YAAY,EACZ,cAAc,EACd,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,cAAc,EACd,sBAAsB,EACtB,gBAAgB,EAChB,0BAA0B,EAC1B,0BAA0B,EAC1B,6BAA6B,EAC7B,uBAAuB,EACvB,YAAY,EACZ,UAAU,EACV,cAAc,EACd,qBAAqB,CACxB;AAED,MAAMC,mBAAmB,GAAIjD,CAAC,KAAM;EAChCkD,GAAG,EAAElD,CAAC,CAAC,KAAK,CAAC;EACbmD,SAAS,EAAEnD,CAAC,CAAC,YAAY,CAAC;EAC1BoD,UAAU,EAAEpD,CAAC,CAAC,aAAa,CAAC;EAC5BqD,QAAQ,EAAErD,CAAC,CAAC,WAAW,CAAC;EACxBsD,MAAM,EAAEtD,CAAC,CAAC,QAAQ,CAAC;EACnBuD,UAAU,EAAEvD,CAAC,CAAC,aAAa,CAAC;EAC5BwD,QAAQ,EAAExD,CAAC,CAAC,MAAM,CAAC;EACnByD,QAAQ,EAAEzD,CAAC,CAAC,WAAW,CAAC;EACxB0D,QAAQ,EAAE1D,CAAC,CAAC,eAAe,CAAC;EAC5B2D,IAAI,EAAE3D,CAAC,CAAC,MAAM,CAAC;EACf4D,OAAO,EAAE5D,CAAC,CAAC,cAAc,CAAC;EAC1B6D,UAAU,EAAE7D,CAAC,CAAC,aAAa,CAAC;EAC5B8D,QAAQ,EAAE9D,CAAC,CAAC,eAAe,CAAC;EAC5B+D,WAAW,EAAE/D,CAAC,CAAC,cAAc,CAAC;EAC9BgE,eAAe,EAAEhE,CAAC,CAAC,mBAAmB,CAAC;EACvCiE,UAAU,EAAEjE,CAAC,CAAC,aAAa,CAAC;EAC5BkE,QAAQ,EAAElE,CAAC,CAAC,eAAe,CAAC;EAC5BmE,IAAI,EAAEnE,CAAC,CAAC,MAAM,CAAC;EACfoE,KAAK,EAAEpE,CAAC,CAAC,OAAO,CAAC;EACjBqE,WAAW,EAAErE,CAAC,CAAC,cAAc,CAAC;EAC9BsE,gBAAgB,EAAEtE,CAAC,CAAC,oBAAoB,CAAC;EACzCuE,QAAQ,EAAEvE,CAAC,CAAC,eAAe,CAAC;EAC5BwE,iBAAiB,EAAExE,CAAC,CAAC,yBAAyB,CAAC;EAC/CyE,UAAU,EAAEzE,CAAC,CAAC,aAAa,CAAC;EAC5B0E,KAAK,EAAE1E,CAAC,CAAC,OAAO,CAAC;EACjB2E,UAAU,EAAE3E,CAAC,CAAC,aAAa,CAAC;EAC5B4E,KAAK,EAAE5E,CAAC,CAAC,QAAQ,CAAC;EAClB6E,MAAM,EAAE7E,CAAC,CAAC,SAAS,CAAC;EACpB8E,QAAQ,EAAE9E,CAAC,CAAC,WAAW,CAAC;EACxB+E,MAAM,EAAE/E,CAAC,CAAC,QAAQ,CAAC;EACnBgF,WAAW,EAAEhF,CAAC,CAAC,cAAc,CAAC;EAC9BiF,UAAU,EAAEjF,CAAC,CAAC,aAAa,CAAC;EAC5BkF,cAAc,EAAElF,CAAC,CAAC,iBAAiB,CAAC;EACpCmF,IAAI,EAAEnF,CAAC,CAAC,eAAe,CAAC;EACxBoF,YAAY,EAAEpF,CAAC,CAAC,eAAe,CAAC;EAChCqF,WAAW,EAAErF,CAAC,CAAC,cAAc,CAAC;EAC9BsF,UAAU,EAAEtF,CAAC,CAAC,aAAa,CAAC;EAC5BuF,MAAM,EAAEvF,CAAC,CAAC,QAAQ,CAAC;EACnBwF,YAAY,EAAExF,CAAC,CAAC,eAAe,CAAC;EAChCyF,mBAAmB,EAAEzF,CAAC,CAAC,qBAAqB,CAAC;EAC7C0F,YAAY,EAAE1F,CAAC,CAAC,cAAc,CAAC;EAC/B2F,aAAa,EAAE3F,CAAC,CAAC,gBAAgB,CAAC;EAClC4F,iBAAiB,EAAE5F,CAAC,CAAC,oBAAoB,CAAC;EAC1C6F,WAAW,EAAE7F,CAAC,CAAC,cAAc,CAAC;EAC9B8F,aAAa,EAAE9F,CAAC,CAAC,gBAAgB,CAAC;EAClC+F,QAAQ,EAAE/F,CAAC,CAAC,UAAU,CAAC;EACvBgG,UAAU,EAAEhG,CAAC,CAAC,aAAa,CAAC;EAC5BiG,WAAW,EAAEjG,CAAC,CAAC,aAAa,CAAC;EAC7BkG,UAAU,EAAElG,CAAC,CAAC,YAAY,CAAC;EAC3BmG,UAAU,EAAEnG,CAAC,CAAC,aAAa,CAAC;EAC5BoG,WAAW,EAAEpG,CAAC,CAAC,cAAc,CAAC;EAC9BqG,qBAAqB,EAAErG,CAAC,CAAC,yBAAyB,CAAC;EACnDsG,YAAY,EAAEtG,CAAC,CAAC,eAAe,CAAC;EAChCuG,mBAAmB,EAAEvG,CAAC,CAAC,wBAAwB,CAAC;EAChDwG,cAAc,EAAExG,CAAC,CAAC,iBAAiB,CAAC;EACpCyG,UAAU,EAAEzG,CAAC,CAAC,kBAAkB,CAAC;EACjC0G,QAAQ,EAAE1G,CAAC,CAAC,UAAU,CAAC;EACvB2G,SAAS,EAAE3G,CAAC,CAAC,WAAW,CAAC;EACzB4G,QAAQ,EAAE5G,CAAC,CAAC,WAAW,CAAC;EACxB6G,WAAW,EAAE7G,CAAC,CAAC,cAAc,CAAC;EAC9B8G,SAAS,EAAE9G,CAAC,CAAC,YAAY,CAAC;EAC1B+G,WAAW,EAAE/G,CAAC,CAAC,cAAc,CAAC;EAC9BgH,cAAc,EAAEhH,CAAC,CAAC,iBAAiB,CAAC;EACpCiH,aAAa,EAAEjH,CAAC,CAAC,gBAAgB,CAAC;EAClCkH,oBAAoB,EAAElH,CAAC,CAAC,wBAAwB,CAAC;EACjDmH,aAAa,EAAEnH,CAAC,CAAC,gBAAgB,CAAC;EAClCoH,eAAe,EAAEpH,CAAC,CAAC,kBAAkB,CAAC;EACtCqH,UAAU,EAAErH,CAAC,CAAC,aAAa,CAAC;EAC5BsH,cAAc,EAAEtH,CAAC,CAAC,kBAAkB,CAAC;EACrCuH,oBAAoB,EAAEvH,CAAC,CAAC,yBAAyB,CAAC;EAClDwH,aAAa,EAAExH,CAAC,CAAC,iBAAiB,CAAC;EACnCyH,aAAa,EAAEzH,CAAC,CAAC,iBAAiB,CAAC;EACnC0H,uBAAuB,EAAE1H,CAAC,CAAC,6BAA6B,CAAC;EACzD2H,oBAAoB,EAAE3H,CAAC,CAAC,wBAAwB,CAAC;EACjD4H,oBAAoB,EAAE5H,CAAC,CAAC,wBAAwB,CAAC;EACjD6H,SAAS,EAAE7H,CAAC,CAAC,YAAY,CAAC;EAC1B8H,YAAY,EAAE9H,CAAC,CAAC,eAAe,CAAC;EAChC+H,mBAAmB,EAAE/H,CAAC,CAAC,uBAAuB,CAAC;EAC/CgI,SAAS,EAAEhI,CAAC,CAAC,aAAa,CAAC;EAC3BiI,SAAS,EAAEjI,CAAC,CAAC,aAAa,CAAC;EAC3BkI,QAAQ,EAAElI,CAAC,CAAC,YAAY,CAAC;EACzBmI,qBAAqB,EAAEnI,CAAC,CAAC,0BAA0B,CAAC;EACpDoI,OAAO,EAAEpI,CAAC,CAAC,UAAU,CAAC;EACtBqI,QAAQ,EAAErI,CAAC,CAAC,WAAW,CAAC;EACxBsI,UAAU,EAAEtI,CAAC,CAAC,aAAa,CAAC;EAC5BuI,YAAY,EAAEvI,CAAC,CAAC,eAAe,CAAC;EAChCwI,kBAAkB,EAAExI,CAAC,CAAC,qBAAqB,CAAC;EAC5CyI,kBAAkB,EAAEzI,CAAC,CAAC,sBAAsB,CAAC;EAC7C0I,UAAU,EAAE1I,CAAC,CAAC,aAAa,CAAC;EAC5B2I,YAAY,EAAE3I,CAAC,CAAC,eAAe,CAAC;EAChC4I,QAAQ,EAAE5I,CAAC,CAAC,WAAW,CAAC;EACxB6I,cAAc,EAAE7I,CAAC,CAAC,iBAAiB,CAAC;EACpC8I,eAAe,EAAE9I,CAAC,CAAC,kBAAkB,CAAC;EACtC+I,YAAY,EAAE/I,CAAC,CAAC,eAAe,CAAC;EAChCgJ,cAAc,EAAEhJ,CAAC,CAAC,kBAAkB,CAAC;EACrCiJ,oBAAoB,EAAEjJ,CAAC,CAAC,yBAAyB,CAAC;EAClDkJ,cAAc,EAAElJ,CAAC,CAAC,kBAAkB,CAAC;EACrCmJ,wBAAwB,EAAEnJ,CAAC,CAAC,6BAA6B,CAAC;EAC1DoJ,wBAAwB,EAAEpJ,CAAC,CAAC,6BAA6B,CAAC;EAC1DqJ,2BAA2B,EAAErJ,CAAC,CAAC,gCAAgC,CAAC;EAChEsJ,qBAAqB,EAAEtJ,CAAC,CAAC,0BAA0B,CAAC;EACpDuJ,UAAU,EAAEvJ,CAAC,CAAC,aAAa,CAAC;EAC5BwJ,OAAO,EAAExJ,CAAC,CAAC,UAAU,CAAC;EACtByJ,GAAG,EAAEzJ,CAAC,CAAC,KAAK,CAAC;EACb0J,YAAY,EAAE1J,CAAC,CAAC,eAAe,CAAC;EAChC2J,WAAW,EAAE3J,CAAC,CAAC,cAAc,CAAC;EAC9B4J,gBAAgB,EAAE5J,CAAC,CAAC,oBAAoB,CAAC;EACzC6J,aAAa,EAAE7J,CAAC,CAAC,sBAAsB,CAAC;EACxC8J,cAAc,EAAE9J,CAAC,CAAC,uBAAuB;AAC7C,CAAC,CAAC;AAEF,MAAM+J,WAAW,GAAIC,GAAG,IAAK;EACzB,IAAI,CAACA,GAAG,EAAE,OAAO,EAAE;EAEnB,IAAIC,QAAQ,GAAGC,MAAM,CAACF,GAAG,CAAC;EAC1B,IAAIC,QAAQ,CAACjI,QAAQ,CAAC,GAAG,CAAC,IAAI,CAACiI,QAAQ,CAACjI,QAAQ,CAAC,GAAG,CAAC,IAAImI,KAAK,CAACC,MAAM,CAACH,QAAQ,CAAC,CAAC,EAAE;IAC9EA,QAAQ,GAAGA,QAAQ,CAACI,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,EAAE;;EAExC,OAAOL,QAAQ,CACVM,WAAW,EAAE,CACbC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAClBA,OAAO,CAAC,OAAO,EAAGC,CAAC,IAAKA,CAAC,CAACC,WAAW,EAAE,CAAC;AACjD,CAAC;AAED,MAAMC,aAAa,GAAG,CAClB,KAAK,EACL,cAAc,EACd,SAAS,EACT,OAAO,EACP,SAAS,EACT,OAAO,EACP,KAAK,EACL,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,gBAAgB,CACnB;AAED,MAAMC,gBAAgB,GAAG,CAAC,WAAW,EAAE,eAAe,CAAC;AAEvD,AAAO,MAAMC,gBAAgB,GAAG,UAACC,YAAY,EAAO9K,CAAC,EAAgB;EAAA,IAApC8K,YAAY;IAAZA,YAAY,GAAG,EAAE;;EAAA,IAAE9K,CAAC;IAADA,CAAC,GAAI+K,CAAC,IAAKA,CAAC;;EAC5D,MAAMC,aAAa,GAAG/H,mBAAmB,CAACjD,CAAC,CAAC;EAE5C,MAAMiL,SAAS,GAAGH,YAAY,CAAC/J,GAAG,CAAEmK,IAAI,IAAK;IACzC,MAAMC,QAAQ,GAAG,EAAE;IAEnB,MAAMC,QAAQ,GAAG,CAACF,IAAI,CAAC/H,SAAS,EAAE+H,IAAI,CAAC9H,UAAU,EAAE8H,IAAI,CAAC7H,QAAQ,CAAC,CAACgI,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;IAC3F,IAAIH,QAAQ,EAAE;MACVD,QAAQ,CAACnL,CAAC,CAAC,eAAe,CAAC,IAAI,eAAe,CAAC,GAAG+J,WAAW,CAACqB,QAAQ,CAAC;;IAG3EI,MAAM,CAACC,IAAI,CAACP,IAAI,CAAC,CAACQ,OAAO,CAAEC,GAAG,IAAK;MAC/B,IAAI3I,YAAY,CAAChB,QAAQ,CAAC2J,GAAG,CAAC,EAAE;MAEhC,IAAIC,GAAG,GAAGV,IAAI,CAACS,GAAG,CAAC;MACnB,IAAI,OAAOC,GAAG,KAAK,QAAQ,IAAIA,GAAG,KAAK,IAAI,EAAE;QACzC;;MAGJ,IAAI1B,MAAM,CAAC0B,GAAG,CAAC,CAACrB,WAAW,EAAE,KAAK,MAAM,EAAE;QACtCqB,GAAG,GAAG5L,CAAC,CAAC,QAAQ,CAAC;OACpB,MAAM,IAAIkK,MAAM,CAAC0B,GAAG,CAAC,CAACrB,WAAW,EAAE,KAAK,OAAO,EAAE;QAC9CqB,GAAG,GAAG5L,CAAC,CAAC,OAAO,CAAC;;MAGpB,MAAM6L,cAAc,GAAGb,aAAa,CAACW,GAAG,CAAC,IAAI3L,CAAC,CAAC2L,GAAG,CAACjB,WAAW,EAAE,CAAC,IAAIiB,GAAG;MAExE,IAAI,OAAOC,GAAG,KAAK,QAAQ,IAAIhB,gBAAgB,CAAC5I,QAAQ,CAAC2J,GAAG,CAAC,EAAE;QAC3DR,QAAQ,CAACU,cAAc,CAAC,GAAG7L,CAAC,CAAC4L,GAAG,CAAC;OACpC,MAAM,IAAI,OAAOA,GAAG,KAAK,QAAQ,IAAI,CAACjB,aAAa,CAAC3I,QAAQ,CAAC2J,GAAG,CAAC,EAAE;QAChER,QAAQ,CAACU,cAAc,CAAC,GAAG9B,WAAW,CAAC6B,GAAG,CAAC;OAC9C,MAAM;QACHT,QAAQ,CAACU,cAAc,CAAC,GAAGD,GAAG;;KAErC,CAAC;IAEF,OAAOT,QAAQ;GAClB,CAAC;EAEF,OAAOF,SAAS;AACpB,CAAC;;ACnND,MAAMa,mBAAmB,GAAGA,MAAM;EAChC,MAAMC,CAAC,GAAGC,aAAa,IAAIA,gBAAe,IAAIA,OAAO;EACrD,OAAOD,CAAC;AACV,CAAC;AAED,MAAME,WAAW,GAAGC,IAAA,IAAmB;EAAA,IAAApM,qBAAA;EAAA,IAAlB;IAAEqM;GAAW,GAAAD,IAAA;EAChC,MAAM;IAAElM;GAAG,GAAGC,2BAAc,EAAE;EAC9B,MAAM,CAACmM,mBAAmB,EAAEC,sBAAsB,CAAC,GAAGC,cAAQ,CAAC,KAAK,CAAC;EAErE,MAAM,CAACC,cAAc,EAAEC,iBAAiB,CAAC,GAAGF,cAAQ,CAAC,KAAK,CAAC;EAC3D,MAAM,CAACG,UAAU,EAAEC,aAAa,CAAC,GAAGJ,cAAQ,CAAC;IAAEK,IAAI,EAAE,EAAE;IAAEC,EAAE,EAAE;GAAI,CAAC;EAClE,MAAM,CAACC,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGR,cAAQ,CAAC,KAAK,CAAC;EAC/D,MAAMS,aAAa,GAAGC,YAAM,CAAC,IAAI,CAAC;EAElCC,eAAS,CAAC,MAAM;IACd,MAAMC,OAAO,GAAIC,CAAC,IAAK;MACrB,IAAIJ,aAAa,CAACK,OAAO,IAAI,CAACL,aAAa,CAACK,OAAO,CAACC,QAAQ,CAACF,CAAC,CAACG,MAAM,CAAC,EAAE;QACtEd,iBAAiB,CAAC,KAAK,CAAC;QACxBM,mBAAmB,CAAC,KAAK,CAAC;;KAE7B;IACDS,QAAQ,CAACC,gBAAgB,CAAC,WAAW,EAAEN,OAAO,CAAC;IAC/C,OAAO,MAAMK,QAAQ,CAACE,mBAAmB,CAAC,WAAW,EAAEP,OAAO,CAAC;GAChE,EAAE,EAAE,CAAC;EAEN,IAAI7M,QAAQ,GAAGH,KAAK,CAACI,UAAU,CAACC,kBAAkB,EAAE;EACpD,IAAI,CAACF,QAAQ,IAAIA,QAAQ,KAAK,IAAI,EAAE;IAClCA,QAAQ,GAAG,QAAQ;;EAErB,MAAMqN,YAAY,IAAA5N,qBAAA,GAAGI,KAAK,CAACO,cAAc,CAACC,GAAG,CAAC,MAAM,CAAC,cAAAZ,qBAAA,uBAAhCA,qBAAA,CAAkCa,IAAI;EAC3D,MAAMyK,QAAQ,GAAG,CAAAsC,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEC,IAAI,KAAI,OAAO;EAE9C,MAAMC,sBAAsB,aAAUC,QAAQ,EAAEC,MAAM;IAAA,IAAK;MACzDzB,sBAAsB,CAAC,IAAI,CAAC;MAAC,OAAA0B,OAAA,CAAAC,OAAA,CAAAC,gBAAA;QAAA,OAAAC,MAAA,aACzB;UAAA,OAAAH,OAAA,CAAAC,OAAA,CACqB9N,KAAK,CAACiO,WAAW,CAACC,gBAAgB,CAAC;YACxD/N,QAAQ,EAAEA,QAAQ;YAClBmB,MAAM,EAAE,CAAC;YACTC,KAAK,EAAE,KAAK;YACZ4M,cAAc,EAAE,IAAI;YACpB,IAAIR,QAAQ,IAAI;cAAEA;aAAU,CAAC;YAC7B,IAAIC,MAAM,IAAI;cAAEA;aAAQ;WACzB,CAAC,EAAAQ,IAAA,WAPIC,QAAQ;YASd,MAAMzD,YAAY,GAAG,CAAAyD,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEzD,YAAY,KAAI,EAAE;YACjD,IAAIA,YAAY,CAACvI,MAAM,KAAK,CAAC,EAAE;cAC7BiM,KAAK,CAACxO,CAAC,CAAC,eAAe,CAAC,IAAI,6BAA6B,CAAC;cAC1D;;YAGF,MAAMiL,SAAS,GAAGJ,gBAAgB,CAACC,YAAY,EAAE9K,CAAC,CAAC;YACnD,MAAMyO,aAAa,GAAG,uBAAuBrD,QAAQ,CAACZ,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,EAAE;YACrFtK,KAAK,CAACwO,QAAQ,CAACC,KAAK,CAAC1D,SAAS,EAAEwD,aAAa,CAAC;;SAC/C,YAAQG,KAAK,EAAE;UACdC,OAAO,CAACD,KAAK,CAAC,+BAA+B,EAAEA,KAAK,CAAC;SACtD;mBAAAE,UAAA,EAAAC,OAAA;QACC1C,sBAAsB,CAAC,KAAK,CAAC;QAAC,IAAAyC,UAAA,QAAAC,OAAA;QAAA,OAAAA,OAAA;;KAEjC,QAAA5B,CAAA;MAAA,OAAAY,OAAA,CAAAiB,MAAA,CAAA7B,CAAA;;;EAED,MAAM8B,YAAY,GAAI5D,MAAM,IAAK;IAC/B,MAAM6D,GAAG,GAAG,IAAIC,IAAI,EAAE;IACtB,MAAMC,KAAK,GAAG,IAAID,IAAI,CAACD,GAAG,CAAC;IAC3B,IAAI7D,MAAM,KAAK,OAAO,EAAE;MACtB+D,KAAK,CAACC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MAC1B,OAAO;QAAE1C,IAAI,EAAEyC,KAAK;QAAExC,EAAE,EAAEsC;OAAK;;IAEjC,IAAI7D,MAAM,KAAK,MAAM,EAAE;MACrB+D,KAAK,CAACE,OAAO,CAACJ,GAAG,CAACK,OAAO,EAAE,GAAGL,GAAG,CAACM,MAAM,EAAE,CAAC;MAC3CJ,KAAK,CAACC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MAC1B,OAAO;QAAE1C,IAAI,EAAEyC,KAAK;QAAExC,EAAE,EAAEsC;OAAK;;IAEjC,IAAI7D,MAAM,KAAK,OAAO,EAAE;MACtB+D,KAAK,CAACE,OAAO,CAAC,CAAC,CAAC;MAChBF,KAAK,CAACC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MAC1B,OAAO;QAAE1C,IAAI,EAAEyC,KAAK;QAAExC,EAAE,EAAEsC;OAAK;;IAEjC,OAAO,IAAI;GACZ;EAED,MAAMO,oBAAoB,aAAUpE,MAAM;IAAA,IAAK;MAC7C,MAAMqE,KAAK,GAAGT,YAAY,CAAC5D,MAAM,CAAC;MAClC,IAAI,CAACqE,KAAK,EAAE,OAAA3B,OAAA,CAAAC,OAAA;MACZxB,iBAAiB,CAAC,KAAK,CAAC;MACxBM,mBAAmB,CAAC,KAAK,CAAC;MAAC,OAAAiB,OAAA,CAAAC,OAAA,CACrBJ,sBAAsB,CAAC8B,KAAK,CAAC/C,IAAI,CAACgD,OAAO,EAAE,EAAED,KAAK,CAAC9C,EAAE,CAAC+C,OAAO,EAAE,CAAC,EAAArB,IAAA;KACvE,QAAAnB,CAAA;MAAA,OAAAY,OAAA,CAAAiB,MAAA,CAAA7B,CAAA;;;EAED,MAAMyC,oBAAoB;IAAA,IAAe;MACvC,IAAI,CAACnD,UAAU,CAACE,IAAI,IAAI,CAACF,UAAU,CAACG,EAAE,EAAE;QACtC4B,KAAK,CAACxO,CAAC,CAAC,mBAAmB,CAAC,IAAI,uCAAuC,CAAC;QACxE,OAAA+N,OAAA,CAAAC,OAAA;;MAEF,MAAMrB,IAAI,GAAG,IAAIwC,IAAI,CAAC1C,UAAU,CAACE,IAAI,CAAC;MACtCA,IAAI,CAAC0C,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MACzB,MAAMzC,EAAE,GAAG,IAAIuC,IAAI,CAAC1C,UAAU,CAACG,EAAE,CAAC;MAClCA,EAAE,CAACyC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;MAC5B7C,iBAAiB,CAAC,KAAK,CAAC;MACxBM,mBAAmB,CAAC,KAAK,CAAC;MAAC,OAAAiB,OAAA,CAAAC,OAAA,CACrBJ,sBAAsB,CAACjB,IAAI,CAACgD,OAAO,EAAE,EAAE/C,EAAE,CAAC+C,OAAO,EAAE,CAAC,EAAArB,IAAA;KAC3D,QAAAnB,CAAA;MAAA,OAAAY,OAAA,CAAAiB,MAAA,CAAA7B,CAAA;;;EAED,MAAM0C,SAAS,GAAG7C,YAAM,CAAC,IAAI,CAAC;EAC9B,MAAM8C,cAAc,GAAG9C,YAAM,CAAC,IAAI,CAAC;EAEnC,MAAM+C,UAAU,GAAG,CAAA5D,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAE6D,KAAK,IAAG,CAAC,GAAGC,IAAI,CAACC,KAAK,CAAE,CAAC,CAAA/D,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEgE,cAAc,KAAGhE,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEiE,SAAS,MAAIjE,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAE6D,KAAK,IAAI,GAAG,CAAC,GAAG,CAAC;EACvI,MAAMK,YAAY,GAAIC,GAAG,IAAK,IAAIC,IAAI,CAACC,YAAY,CAAC,OAAO,CAAC,CAACC,MAAM,CAACH,GAAG,IAAI,CAAC,CAAC;EAE7ErD,eAAS,CAAC,MAAM;IACd,IAAI4C,SAAS,CAACzC,OAAO,EAAE;MACrB,IAAI0C,cAAc,CAAC1C,OAAO,EAAE0C,cAAc,CAAC1C,OAAO,CAACsD,OAAO,EAAE;MAC5D,MAAMC,IAAI,GAAGd,SAAS,CAACzC,OAAO,CAACwD,UAAU,CAAC,IAAI,CAAC;MAC/C,MAAMC,gBAAgB,GAAG/E,mBAAmB,EAAE;MAC9CgE,cAAc,CAAC1C,OAAO,GAAG,IAAIyD,gBAAgB,CAACF,IAAI,EAAE;QAClDG,IAAI,EAAE,UAAU;QAChB5P,IAAI,EAAE;UACJ6P,MAAM,EAAE,CAAC/Q,CAAC,CAAC,cAAc,CAAC,EAAEA,CAAC,CAAC,gBAAgB,CAAC,EAAEA,CAAC,CAAC,gBAAgB,CAAC,EAAEA,CAAC,CAAC,gBAAgB,CAAC,CAAC;UAC1FgR,QAAQ,EAAE,CACR;YACE9P,IAAI,EAAE,CAACiL,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAE8E,OAAO,EAAE9E,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEiE,SAAS,EAAEjE,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAE+E,SAAS,EAAE/E,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEgF,SAAS,CAAC;YAC5FC,eAAe,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;YAC7DC,WAAW,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC;YACzDC,WAAW,EAAE,CAAC;YACdC,WAAW,EAAE;WACd;SAEJ;QACDC,OAAO,EAAE;UACPC,MAAM,EAAE,KAAK;UACbC,OAAO,EAAE;YAAEC,MAAM,EAAE;cAAEC,OAAO,EAAE;;WAAS;UACvCC,mBAAmB,EAAE,KAAK;UAC1BC,UAAU,EAAE;;OAEf,CAAC;;IAGJ,OAAO,MAAM;MACX,IAAIhC,cAAc,CAAC1C,OAAO,EAAE0C,cAAc,CAAC1C,OAAO,CAACsD,OAAO,EAAE;KAC7D;GACF,EAAE,CAACvE,SAAS,EAAEnM,CAAC,CAAC,CAAC;EAElB,MAAM+R,WAAW,GAAG,CAClB;IACEC,KAAK,EAAE,SAAS;IAChB5P,KAAK,EAAEpC,CAAC,CAAC,YAAY,CAAC;IACtBiS,KAAK,EAAE,CAAA9F,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAE6D,KAAK,KAAI;GAC5B,EACD;IACEgC,KAAK,EAAE,SAAS;IAChB5P,KAAK,EAAEpC,CAAC,CAAC,cAAc,CAAC;IACxBiS,KAAK,EAAE,CAAA9F,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAE8E,OAAO,KAAI;GAC9B,EACD;IACEe,KAAK,EAAE,SAAS;IAChB5P,KAAK,EAAEpC,CAAC,CAAC,gBAAgB,CAAC;IAC1BiS,KAAK,EAAE,CAAA9F,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEiE,SAAS,KAAI;GAChC,EAOD;IACE4B,KAAK,EAAE,SAAS;IAChB5P,KAAK,EAAEpC,CAAC,CAAC,2BAA2B,CAAC;IACrCiS,KAAK,EAAE,CAAA9F,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEgE,cAAc,KAAI;GACrC,EACD;IACE6B,KAAK,EAAE,SAAS;IAChB5P,KAAK,EAAEpC,CAAC,CAAC,2BAA2B,CAAC;IACrCiS,KAAK,EAAE,CAAA9F,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAE+F,aAAa,KAAI;GACpC,EACD;IACEF,KAAK,EAAE,SAAS;IAChB5P,KAAK,EAAEpC,CAAC,CAAC,eAAe,CAAC;IACzBiS,KAAK,EAAE,CAAA9F,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEgG,QAAQ,KAAI;GAC/B,CACF;EAED,oBACEzP,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA,CAAC0P,iCAAU;IAACC,IAAI,EAAE,EAAG;IAACN,KAAK,EAAC,MAAM;IAACZ,eAAe,EAAC,SAAS;IAACmB,KAAK,EAAE;MAAEC,aAAa,EAAE,KAAK;MAAEC,YAAY,EAAE;;GAAY,CAAC,eAEvH/P,cAAA,CAAAC,aAAA;IAAIyP,SAAS,EAAC;KAAmBpS,CAAC,CAAC,sBAAsB,CAAC,IAAI,6BAAkC,CAC7F,CAAC,eACN0C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC,iBAAiB;IAACM,GAAG,EAAE3F;kBACpCrK,cAAA,CAAAC,aAAA;IACEyP,SAAS,EAAC,sCAAsC;IAChDO,QAAQ,EAAEvG,mBAAoB;IAC9BwG,OAAO,EAAEA,MAAM;MACbpG,iBAAiB,CAAEqG,CAAC,IAAK,CAACA,CAAC,CAAC;MAC5B/F,mBAAmB,CAAC,KAAK,CAAC;;KAG3B9M,CAAC,CAAC,iBAAiB,CAAC,IAAI,iBAAiB,eAE1C0C,cAAA,CAAAC,aAAA,CAACmQ,qCAAc,MAAE,CACX,CAAC,EAERvG,cAAc,iBACb7J,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KACZ,CACC;IAAEhQ,KAAK,EAAEpC,CAAC,CAAC,OAAO,CAAC,IAAI,OAAO;IAAE2L,GAAG,EAAE;GAAS,EAC9C;IAAEvJ,KAAK,EAAEpC,CAAC,CAAC,WAAW,CAAC,IAAI,WAAW;IAAE2L,GAAG,EAAE;GAAQ,EACrD;IAAEvJ,KAAK,EAAEpC,CAAC,CAAC,YAAY,CAAC,IAAI,YAAY;IAAE2L,GAAG,EAAE;GAAS,CACzD,CAAC5K,GAAG,CAACgS,KAAA;IAAA,IAAC;MAAE3Q,KAAK;MAAEuJ;KAAK,GAAAoH,KAAA;IAAA,oBACnBrQ,cAAA,CAAAC,aAAA;MAAKgJ,GAAG,EAAEA,GAAI;MAACyG,SAAS,EAAC,WAAW;MAACQ,OAAO,EAAEA,MAAMnD,oBAAoB,CAAC9D,GAAG;OACzEvJ,KACE,CAAC;GACP,CAAC,eAEFM,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC,qBAAqB;IAACQ,OAAO,EAAEA,MAAM9F,mBAAmB,CAAE+F,CAAC,IAAK,CAACA,CAAC;KAC9E7S,CAAC,CAAC,aAAa,CAAC,IAAI,aAClB,CAAC,EAEL6M,gBAAgB,iBACfnK,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA,6BACED,cAAA,CAAAC,aAAA,eAAM,MAAU,CAAC,eACjBD,cAAA,CAAAC,aAAA;IAAOmO,IAAI,EAAC,MAAM;IAACmB,KAAK,EAAExF,UAAU,CAACE,IAAK;IAACqG,QAAQ,EAAG7F,CAAC,IAAKT,aAAa,CAAC;MAAE,GAAGD,UAAU;MAAEE,IAAI,EAAEQ,CAAC,CAACG,MAAM,CAAC2E;KAAO;GAAI,CAChH,CAAC,eACRvP,cAAA,CAAAC,aAAA,6BACED,cAAA,CAAAC,aAAA,eAAM,IAAQ,CAAC,eACfD,cAAA,CAAAC,aAAA;IAAOmO,IAAI,EAAC,MAAM;IAACmB,KAAK,EAAExF,UAAU,CAACG,EAAG;IAACoG,QAAQ,EAAG7F,CAAC,IAAKT,aAAa,CAAC;MAAE,GAAGD,UAAU;MAAEG,EAAE,EAAEO,CAAC,CAACG,MAAM,CAAC2E;KAAO;GAAI,CAC5G,CACJ,CAAC,eACNvP,cAAA,CAAAC,aAAA;IAAK4P,KAAK,EAAE;MAAEX,OAAO,EAAE,MAAM;MAAEqB,GAAG,EAAE,MAAM;MAAEC,SAAS,EAAE;;kBACrDxQ,cAAA,CAAAC,aAAA;IACEyP,SAAS,EAAC,mBAAmB;IAC7BQ,OAAO,EAAGzF,CAAC,IAAK;MACdA,CAAC,CAACgG,eAAe,EAAE;MACnBrG,mBAAmB,CAAC,KAAK,CAAC;MAC1BJ,aAAa,CAAC;QAAEC,IAAI,EAAE,EAAE;QAAEC,EAAE,EAAE;OAAI,CAAC;;KAGpC5M,CAAC,CAAC,QAAQ,CAAC,IAAI,QACV,CAAC,eACT0C,cAAA,CAAAC,aAAA;IACEyP,SAAS,EAAC,kBAAkB;IAC5BQ,OAAO,EAAGzF,CAAC,IAAK;MACdA,CAAC,CAACgG,eAAe,EAAE;MACnBvD,oBAAoB,EAAE;;KAGvB5P,CAAC,CAAC,OAAO,CAAC,IAAI,OACT,CACL,CACF,CAEJ,CAEJ,CACF,CAAC,eAEN0C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBAEb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAQ+P,GAAG,EAAE7C,SAAU;IAAC0C,KAAK,EAAE;MAAEa,KAAK,EAAE,MAAM;MAAEC,MAAM,EAAE;;GAAW,CAAC,eAEpE3Q,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KAAoBrC,UAAU,EAAC,GAAM,CAAC,eACrDrN,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KAAepS,CAAC,CAAC,eAAe,CAAC,IAAI,UAAgB,CACjE,CACF,CAAC,eAGN0C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KACZL,WAAW,CAAChR,GAAG,CAAEmK,IAAI,iBACpBxI,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC,YAAY;IAACzG,GAAG,EAAET,IAAI,CAAC9I,KAAM;IAACmQ,KAAK,EAAE;MAAE,gBAAgB,EAAErH,IAAI,CAAC8G;;kBAC3EtP,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC,kBAAkB;IAACG,KAAK,EAAE;MAAEnB,eAAe,EAAElG,IAAI,CAAC8G;;GAAU,CAAC,eAE7EtP,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAAelH,IAAI,CAAC9I,KAAY,CAC7C,CAAC,eAENM,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KAAoB/B,YAAY,CAACnF,IAAI,CAAC+G,KAAK,CAAO,CAC9D,CACN,CACE,CACF,CACF,CACF,CAAC;AAEV,CAAC;;ACnSD,MAAMqB,SAAS,GAAGpH,IAAA,IAAyC;EAAA,IAAxC;IAAEqH,YAAY;IAAEC;GAAmB,GAAAtH,IAAA;EACpD,MAAMC,SAAS,GAAG;IAChB6D,KAAK,EAAE,CAAAuD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEE,iBAAiB,KAAI,CAAC;IAC3CrD,SAAS,EAAE,CAAAmD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEG,oBAAoB,KAAI,CAAC;IAClDzC,OAAO,EAAE,CAAAsC,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEI,kBAAkB,KAAI,CAAC;IAC9CxB,QAAQ,EAAE,CAAAoB,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEK,mBAAmB,KAAI,CAAC;IAChDC,gBAAgB,EAAE,CAAAN,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEM,gBAAgB,KAAI,CAAC;IACrD1D,cAAc,EAAE,CAAAoD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEO,oBAAoB,KAAI,CAAC;IACvD5B,aAAa,EAAE,CAAAqB,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEQ,oBAAoB,KAAI,CAAC;IACtDC,sBAAsB,EAAE,CAAAT,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAES,sBAAsB,KAAI;GACjE;EAED,OAAOR,iBAAiB,gBAAG9Q,cAAA,CAAAC,aAAA,CAACsR,qBAAqB,MAAE,CAAC,gBAAGvR,cAAA,CAAAC,aAAA,CAACsJ,WAAW;IAACE,SAAS,EAAEA;GAAY,CAAC;AAC9F,CAAC;AAED,AAEA,MAAM8H,qBAAqB,GAAGA,MAAM;EAClC,oBACEvR,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;GAA4B,CAAC,eAC5C1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;GAA6B,CACzC,CAAC,eAEN1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;GAAoC,CAChD,CAAC,eAEN1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBAEb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;GAA6B,CACzC,CAAC,eAGN1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KACZ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAACrR,GAAG,CAAEmK,IAAI,iBACrBxI,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC,YAAY;IAACzG,GAAG,EAAET;kBAC/BxI,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;GAA2B,CAAC,eAC3C1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;GAA4B,CACxC,CAAC,eACN1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;GAA6B,CACzC,CACN,CACE,CACF,CACF,CACF,CAAC;AAEV,CAAC;;ACjDD,MAAM8B,YAAY,GAAGhI,IAAA,IAAgD;EAAA,IAAAiI,qBAAA;EAAA,IAA/C;IAAEC,WAAW;IAAEC,eAAe;IAAE,GAAGC;GAAO,GAAApI,IAAA;EAC9D,MAAM;IACJhL,IAAI;IACJE,SAAS;IACTmT,MAAM;IACNC,UAAU;IACVC,UAAU;IACVC,WAAW;IACXC,aAAa;IACbC,gBAAgB;IAChBC,WAAW;IACXC,YAAY;IACZC,UAAU;IACVC,YAAY;IACZ7I;GACD,GAAGmI,KAAK;EACT,MAAM;IAAEtU;GAAG,GAAGC,2BAAc,EAAE;EAE9B,MAAM8J,WAAW,GAAIC,GAAG,IAAK;IAC3B,IAAI,CAACA,GAAG,EAAE,OAAO,EAAE;IACnB,OAAOE,MAAM,CAACF,GAAG,CAAC,CACfO,WAAW,EAAE,CACbC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAClBA,OAAO,CAAC,OAAO,EAAGC,CAAC,IAAKA,CAAC,CAACC,WAAW,EAAE,CAAC;GAC5C;EACD,MAAMuK,OAAO,GAAGC,yBAAU,EAAE;EAC5B,MAAM7U,QAAQ,GAAGH,KAAK,CAACI,UAAU,CAACC,kBAAkB,EAAE;EACtD,MAAM4U,eAAe,IAAAhB,qBAAA,GAAGjU,KAAK,CAACkV,wBAAwB,cAAAjB,qBAAA,uBAA9BA,qBAAA,CAAgCkB,YAAY,CAAChB,eAAe,CAAC;EAGrF,MAAM,CAACiB,WAAW,EAAEC,cAAc,CAAC,GAAGjJ,cAAQ,CAAC,EAAE,CAAC;EAClD,MAAM;IAAEpL,IAAI,EAAEsU,UAAU;IAAEC;GAAW,GAAGvV,KAAK,CAACmB,KAAK,CAACC,IAAI,CAACoU,UAAU,CAAC,QAAQ,EAAErV,QAAQ,CAAC;EACvF,MAAMsV,YAAY,GAAIzS,GAAG,IAAK;IAC5BqS,cAAc,CAACrS,GAAG,CAAC;IACnBuS,SAAS,CAAC;MAAEvS;KAAK,CAAC;GACnB;EAEDR,cAAK,CAACuK,SAAS,CAAC,MAAM;IACpB,IAAIuI,UAAU,EAAE;MACdP,OAAO,CAAC9S,IAAI,CAAC,gCAAgC,EAAE;QAAEyT,OAAO,EAAEN,WAAW;QAAEO,WAAW,EAAEL,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEK,WAAW;QAAEL;OAAY,CAAC;;GAG7H,EAAE,CAACA,UAAU,CAAC,CAAC;EAEhB,MAAMM,OAAO,GAAGC,aAAO,CACrB,MAAM,CACJ;IACEC,MAAM,EAAEhW,CAAC,CAAC,qBAAqB,CAAC;IAChCiW,QAAQ,EAAE,mBAAmB;IAC7BC,IAAI,EAAEnD,KAAA,IAAa;MAAA,IAAAoD,aAAA,EAAAC,cAAA;MAAA,IAAZ;QAAEC;OAAK,GAAAtD,KAAA;MACZ,MAAM7P,GAAG,GAAG,EAAAiT,aAAA,GAAAE,GAAG,CAACC,QAAQ,cAAAH,aAAA,uBAAZA,aAAA,CAAcjT,GAAG,OAAAkT,cAAA,GAAIC,GAAG,CAACC,QAAQ,cAAAF,cAAA,uBAAZA,cAAA,CAAcG,iBAAiB,KAAI,IAAI;MACxE,oBACE7T,cAAA,CAAAC,aAAA;QAAMyP,SAAS,EAAC,MAAM;QAACQ,OAAO,EAAEA,MAAM+C,YAAY,CAACzS,GAAG;SACnDA,GACG,CAAC;;GAGZ,EACD;IACE8S,MAAM,EAAEhW,CAAC,CAAC,mBAAmB,CAAC;IAC9BiW,QAAQ,EAAE,aAAa;IACvBC,IAAI,EAAEM,KAAA;MAAA,IAAAC,cAAA;MAAA,IAAC;QAAEJ;OAAK,GAAAG,KAAA;MAAA,oBAAK9T,cAAA,CAAAC,aAAA,eAAOoH,WAAW,EAAA0M,cAAA,GAACJ,GAAG,CAACC,QAAQ,cAAAG,cAAA,uBAAZA,cAAA,CAAcC,WAAW,CAAC,IAAI,IAAW,CAAC;;GACjF,EAMD;IACEV,MAAM,EAAEhW,CAAC,CAAC,aAAa,CAAC;IACxBiW,QAAQ,EAAE,cAAc;IACxBC,IAAI,EAAES,KAAA,IAAa;MAAA,IAAAC,cAAA,EAAAC,cAAA;MAAA,IAAZ;QAAER;OAAK,GAAAM,KAAA;MACZ,MAAMrT,MAAM,GAAG,CAAC,EAAAsT,cAAA,GAAAP,GAAG,CAACC,QAAQ,cAAAM,cAAA,uBAAZA,cAAA,CAActT,MAAM,KAAI,SAAS,EAAEoH,WAAW,EAAE;MAChE,oBAAOhI,cAAA,CAAAC,aAAA;QAAMyP,SAAS,EAAE,mBAAmB9O,MAAM;SAAKyG,WAAW,CAAC,EAAA8M,cAAA,GAAAR,GAAG,CAACC,QAAQ,cAAAO,cAAA,uBAAZA,cAAA,CAAcvT,MAAM,KAAI,SAAS,CAAQ,CAAC;;GAE/G,EACD;IACE0S,MAAM,EAAEhW,CAAC,CAAC,kBAAkB,CAAC;IAC7BiW,QAAQ,EAAE,YAAY;IACtBC,IAAI,EAAEY,KAAA,IAAa;MAAA,IAAAC,cAAA,EAAAC,cAAA;MAAA,IAAZ;QAAEX;OAAK,GAAAS,KAAA;MACZ,MAAMG,GAAG,GAAG,EAAAF,cAAA,GAAAV,GAAG,CAACC,QAAQ,cAAAS,cAAA,uBAAZA,cAAA,CAAcxT,UAAU,OAAAyT,cAAA,GAAIX,GAAG,CAACC,QAAQ,cAAAU,cAAA,uBAAZA,cAAA,CAAcE,UAAU,KAAI,IAAI;MACxE,MAAM3T,UAAU,GAAG0T,GAAG,CAACvM,WAAW,EAAE;MACpC,oBAAOhI,cAAA,CAAAC,aAAA;QAAMyP,SAAS,EAAE,mBAAmB7O,UAAU;SAAKwG,WAAW,CAACkN,GAAG,CAAQ,CAAC;;GAErF,EACD;IACEjB,MAAM,EAAEhW,CAAC,CAAC,aAAa,CAAC;IACxBiW,QAAQ,EAAE,QAAQ;IAClBC,IAAI,EAAEiB,KAAA,IAAa;MAAA,IAAAC,cAAA,EAAAC,cAAA;MAAA,IAAZ;QAAEhB;OAAK,GAAAc,KAAA;MACZ,MAAMjU,GAAG,GAAG,EAAAkU,cAAA,GAAAf,GAAG,CAACC,QAAQ,cAAAc,cAAA,uBAAZA,cAAA,CAAclU,GAAG,OAAAmU,cAAA,GAAIhB,GAAG,CAACC,QAAQ,cAAAe,cAAA,uBAAZA,cAAA,CAAcd,iBAAiB,KAAI,IAAI;MACxE,oBACE7T,cAAA,CAAAC,aAAA;QAAMyP,SAAS,EAAC,MAAM;QAACQ,OAAO,EAAEA,MAAM+C,YAAY,CAACzS,GAAG;SACnDlD,CAAC,CAAC,aAAa,CACZ,CAAC;;GAGZ,CACF,EAED,CAACA,CAAC,EAAE6U,WAAW,CACjB,CAAC;EAED,MAAMyC,SAAS,GAAGvB,aAAO,CAAC,MAAM;IAC9B,OAAO,CAAA7U,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEqW,KAAK,MAAK1W,KAAK,CAACC,OAAO,CAACI,IAAI,CAAC,GAAGA,IAAI,GAAG,EAAE,CAAC;GACxD,EAAE,CAACA,IAAI,CAAC,CAAC;EAEV,oBACEwB,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KACZhR,SAAS,iBAAIsB,cAAA,CAAAC,aAAA,CAAC6U,6BAAM,MAAE,CAAC,eACxB9U,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBAGb1P,cAAA,CAAAC,aAAA,CAAC8U,iCAAU;IAACC,UAAU,EAAEpD,KAAK,CAACqD;GAAa,CAAC,EAE3CxC,eAAe,iBACdzS,cAAA,CAAAC,aAAA,CAACwS,eAAe;IACdyC,mBAAmB,EAAEtD,KAAK,CAACsD,mBAAoB;IAC/CC,cAAc,EAAEvD,KAAK,CAACwD,QAAS;IAC/BhD,YAAY,EAAEA,YAAa;IAC3BhE,IAAI,EAAC,SAAS;IACd6G,UAAU,EAAC;GACZ,CAEA,CAAC,eAENjV,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC,uBAAuB;IAACG,KAAK,EAAE;MAAEwF,IAAI,EAAE;;kBAUpDrV,cAAA,CAAAC,aAAA,CAACqV,2BAAI;IAAC5F,SAAS,EAAC;kBACd1P,cAAA,CAAAC,aAAA,CAACsJ,WAAW;IAACE,SAAS,EAAEA;GAAY,CAChC,CAAC,eAGPzJ,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC,QAAQ;IAACG,KAAK,EAAE;MAAEwF,IAAI,EAAE;;kBACrCrV,cAAA,CAAAC,aAAA,CAACqV,2BAAI;IAAC5F,SAAS,EAAC,iBAAiB;IAACG,KAAK,EAAE;MAAE0F,OAAO,EAAE;;kBAClDvV,cAAA,CAAAC,aAAA,CAACuV,4BAAK;IACJlY,CAAC,EAAEA,CAAE;IACLkB,IAAI,EAAEoW,SAAU;IAChBxB,OAAO,EAAEA,OAAQ;IACjB1U,SAAS,EAAEA,SAAU;IACrBmT,MAAM,EAAEA,MAAO;IACfQ,UAAU,EAAEA,UAAW;IACvBC,YAAY,EAAEA,YAAa;IAC3BR,UAAU,EAAEA,UAAW;IACvBC,UAAU,EAAEA,UAAW;IACvBC,WAAW,EAAEA,WAAY;IACzBC,aAAa,EAAEA,aAAc;IAC7BC,gBAAgB,EAAEA,gBAAiB;IACnCuD,YAAY,EAAGC,QAAQ,IAAK;MAC1B,OAAO;QACLhG,SAAS,EAAE;OACZ;;GAEJ,CACG,CACH,CACF,CACF,CACF,CAAC;AAEV,CAAC;;AC1KD,MAAMiG,cAAc,GAAGnM,IAAA,IAAqE;EAAA,IAAAoM,gBAAA,EAAAC,iBAAA,EAAAC,iBAAA;EAAA,IAApE;IAAEV,QAAQ;IAAEhD,YAAY;IAAEK,eAAe;IAAEsD,QAAQ;IAAE,GAAGnE;GAAO,GAAApI,IAAA;EACrF,MAAM;IAAElM;GAAG,GAAGC,2BAAc,EAAE;EAC9B,MAAM,CAACyY,aAAa,EAAEC,eAAe,CAAC,GAAGrM,cAAQ,CAAC,OAAO;IAAE,GAAGwI;GAAc,CAAC,CAAC;EAE9E,MAAM9B,QAAQ,GAAGA,CAACrH,GAAG,EAAEsG,KAAK,KAAK;IAC/B0G,eAAe,CAAEC,IAAI,KAAM;MAAE,GAAGA,IAAI;MAAE,CAACjN,GAAG,GAAGsG;KAAO,CAAC,CAAC;GACvD;EAED,MAAM4G,QAAQ,GAAI1L,CAAC,IAAK;IACtB,IAAIA,CAAC,IAAIA,CAAC,CAAC2L,cAAc,EAAE3L,CAAC,CAAC2L,cAAc,EAAE;IAC7ChB,QAAQ,CAACY,aAAa,CAAC;GACxB;EAED,MAAMK,OAAO,GAAGA,MAAM;IACpB,MAAMC,OAAO,GAAG;MAAEpD,OAAO,EAAE,EAAE;MAAEqD,KAAK,EAAE;KAAI;IAC1CN,eAAe,CAACK,OAAO,CAAC;IACxBlB,QAAQ,CAACkB,OAAO,CAAC;GAClB;EAED,oBACEtW,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBAEb1P,cAAA,CAAAC,aAAA,CAACqV,2BAAI;IAAC5F,SAAS,EAAC;kBACd1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA,CAACuW,+BAAQ,MAAE,CACR,CAAC,eACNxW,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KACZpS,CAAC,CAAC,6BAA6B,CAC7B,CACD,CACH,CAAC,eAGN0C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBAEb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBAEb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBAEb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyQ,KAAK,EAAC,IAAI;IAACC,MAAM,EAAC,IAAI;IAAC8F,OAAO,EAAC,WAAW;IAACC,IAAI,EAAC,MAAM;IAACC,MAAM,EAAC,SAAS;IAACC,WAAW,EAAC,GAAG;IAACC,aAAa,EAAC,OAAO;IAACC,cAAc,EAAC;kBAChI9W,cAAA,CAAAC,aAAA;IAAQ8W,EAAE,EAAC,IAAI;IAACC,EAAE,EAAC,IAAI;IAACC,CAAC,EAAC;GAAK,CAAC,eAChCjX,cAAA,CAAAC,aAAA;IAAMiX,EAAE,EAAC,IAAI;IAACC,EAAE,EAAC,IAAI;IAACC,EAAE,EAAC,OAAO;IAACC,EAAE,EAAC;GAAS,CAC1C,CACF,CAAC,eACNrX,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KACbpS,CAAC,CAAC,sBAAsB,CAAC,IAAI,iBAC1B,CACH,CAAC,eAGN0C,cAAA,CAAAC,aAAA;IAAMkW,QAAQ,EAAEA;kBACdnW,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA,gBACG3C,CAAC,CAAC,eAAe,CAAC,IAAI,UAAU,eACjC0C,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAAa,GAAO,CAC/B,CAAC,eACR1P,cAAA,CAAAC,aAAA,CAACqX,gCAAS;IACR/H,KAAK,EAAEyG,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAE9C,OAAQ;IAC9B5C,QAAQ,EAAG7F,CAAC,IAAK6F,QAAQ,CAAC,SAAS,EAAE7F,CAAC,CAACG,MAAM,CAAC2E,KAAK,CAAE;IACrDgI,WAAW,EAAEja,CAAC,CAAC,2BAA2B,CAAC,IAAI;GAChD,CACE,CAAC,eAEN0C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA,gBACG3C,CAAC,CAAC,aAAa,CAAC,IAAI,QAAQ,eAC7B0C,cAAA,CAAAC,aAAA;IAAKyQ,KAAK,EAAC,IAAI;IAACC,MAAM,EAAC,IAAI;IAAC8F,OAAO,EAAC,WAAW;IAACC,IAAI,EAAC,MAAM;IAACC,MAAM,EAAC,SAAS;IAACC,WAAW,EAAC,GAAG;IAACC,aAAa,EAAC,OAAO;IAACC,cAAc,EAAC;kBAChI9W,cAAA,CAAAC,aAAA;IAAMuX,CAAC,EAAC;GAA6C,CAAC,eACtDxX,cAAA,CAAAC,aAAA;IAAQ8W,EAAE,EAAC,IAAI;IAACC,EAAE,EAAC,GAAG;IAACC,CAAC,EAAC;GAAK,CAC3B,CACA,CAAC,eACRjX,cAAA,CAAAC,aAAA,CAACqX,gCAAS;IACR/H,KAAK,EAAEyG,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEO,KAAM;IAC5BjG,QAAQ,EAAG7F,CAAC,IAAK6F,QAAQ,CAAC,OAAO,EAAE7F,CAAC,CAACG,MAAM,CAAC2E,KAAK,CAAE;IACnDgI,WAAW,EAAEja,CAAC,CAAC,yBAAyB,CAAC,IAAI;GAC9C,CACE,CACF,CAAC,eAGN0C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAQmO,IAAI,EAAC,QAAQ;IAAC8B,OAAO,EAAEmG,OAAQ;IAAC3G,SAAS,EAAC;KAC/CpS,CAAC,CAAC,iBAAiB,CAAC,IAAI,OACnB,CAAC,eACT0C,cAAA,CAAAC,aAAA;IAAQmO,IAAI,EAAC,QAAQ;IAACsB,SAAS,EAAC;KAC7BpS,CAAC,CAAC,kBAAkB,CAAC,IAAI,gBACpB,CACL,CACD,CACH,CAAC,eAGN0C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBAEb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KAAgBpS,CAAC,CAAC,oBAAoB,CAAC,IAAI,gBAAsB,CAAC,eACjF0C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KAAgB,EAAAkG,gBAAA,GAAAhE,KAAK,CAACnI,SAAS,cAAAmM,gBAAA,uBAAfA,gBAAA,CAAiB6B,YAAY,KAAI,EAAQ,CAAC,eACzEzX,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA,eAAM,QAAO,CAAC,EACb,EAAA4V,iBAAA,GAAAjE,KAAK,CAACnI,SAAS,cAAAoM,iBAAA,uBAAfA,iBAAA,CAAiB6B,WAAW,KAAI,6BAC9B,CAAC,eACN1X,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KAAmB,GAAM,CACrC,CAAC,eAGN1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KAAepS,CAAC,CAAC,mBAAmB,CAAC,IAAI,cAAoB,CAAC,eAC7E0C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KACZ,EAAAoG,iBAAA,GAAAlE,KAAK,CAACnI,SAAS,cAAAqM,iBAAA,uBAAfA,iBAAA,CAAiB6B,YAAY,KAAI,CAAC,EAAC,UACjC,CAAC,eACN3X,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KACZ,CAAC,CAAC,EAAE,CAAC,CAAC,CAACrR,GAAG,CAAEuZ,CAAC,iBACZ5X,cAAA,CAAAC,aAAA;IAAKgJ,GAAG,EAAE2O,CAAE;IAAClI,SAAS,EAAC;KACpBlI,MAAM,CAACqQ,YAAY,CAAC,EAAE,GAAGD,CAAC,CACxB,CACN,CAAC,eACF5X,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KAAc,IAAO,CACjC,CACF,CACF,CACF,CACF,CAAC,EAGLqG,QACE,CACF,CACF,CAAC;AAEV,CAAC;;ACpID,MAAM+B,WAAW,GAAGtO,IAAA,IAOd;EAAA,IAAAuO,WAAA;EAAA,IAPe;IACjBvZ,IAAI;IACJE,SAAS;IACT0W,QAAQ;IACRhD,YAAY;IACZD,WAAW;IACX1I;GACH,GAAAD,IAAA;EACG,MAAM;IAAElM;GAAG,GAAGC,2BAAc,EAAE;EAE9B,MAAMya,UAAU,GAAG,CAAAxZ,IAAI,aAAJA,IAAI,wBAAAuZ,WAAA,GAAJvZ,IAAI,CAAEqW,KAAK,cAAAkD,WAAA,uBAAXA,WAAA,CAAa1Z,GAAG,CAAEmK,IAAI,KAAM;IAC3C,CAAClL,CAAC,CAAC,qBAAqB,CAAC,GAAGkL,IAAI,CAACqL,iBAAiB;IAClD,CAACvW,CAAC,CAAC,mBAAmB,CAAC,GAAGkL,IAAI,CAACwL,WAAW;IAC1C,CAAC1W,CAAC,CAAC,gBAAgB,CAAC,GAAGkL,IAAI,CAACyP,YAAY;IACxC,CAAC3a,CAAC,CAAC,aAAa,CAAC,gBACb0C,cAAA,CAAAC,aAAA;MAAMyP,SAAS,EAAE,mBAAmBlH,IAAI,CAAC5H,MAAM;OAC1CtD,CAAC,CAAC,eAAekL,IAAI,CAAC5H,MAAM,EAAE,CAC7B;GAEb,CAAC,CAAC,KAAI,EAAE;EAET,oBACIZ,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACX1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACX1P,cAAA,CAAAC,aAAA,CAACqT,6BAAM;IAAC5D,SAAS,EAAC;KAASpS,CAAC,CAAC,mBAAmB,CAAU,CAAC,eAC3D0C,cAAA,CAAAC,aAAA,CAACiY,mBAAI;IAAChO,EAAE,EAAE,GAAGiI,WAAW;kBACpBnS,cAAA,CAAAC,aAAA,CAACkY,gCAAS;IAACzY,KAAK,EAAEpC,CAAC,CAAC,iBAAiB;GAAI,CACvC,CACL,CAAC,eAEN0C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACX1P,cAAA,CAAAC,aAAA,CAACsJ,WAAW;IAACE,SAAS,EAAEA;GAAY,CACnC,CAAC,eAENzJ,cAAA,CAAAC,aAAA,CAAC0V,cAAc;IACXP,QAAQ,EAAEA,QAAS;IACnBhD,YAAY,EAAEA;GACjB,CAAC,eAEFpS,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KACVhR,SAAS,gBACNsB,cAAA,CAAAC,aAAA,CAAC6U,6BAAM,MAAE,CAAC,GACV,CAAAkD,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEnY,MAAM,IAAG,CAAC,gBACtBG,cAAA,CAAAC,aAAA,CAACmY,kCAAW;IACR5Z,IAAI,EAAEwZ,UAAW;IACjB1a,CAAC,EAAEA,CAAE;IACL+a,mBAAmB,EAAE/a,CAAC,CAAC,qBAAqB,CAAE;IAC9Cgb,UAAU,EAAE,GAAGnG,WAAW;GAC7B,CAAC,gBAEFnS,cAAA,CAAAC,aAAA,CAACqV,2BAAI,QACAhY,CAAC,CAAC,mBAAmB,CAAC,CAClBqK,KAAK,CAAC,KAAK,CAAC,CACZtJ,GAAG,CAAC,CAACka,IAAI,EAAEC,KAAK,kBACbxY,cAAA,CAAAC,aAAA;IAAGgJ,GAAG,EAAEuP,KAAM;IAAC3I,KAAK,EAAE;MAAE4I,SAAS,EAAE;;KAC9BF,IACF,CACN,CACH,CAET,CACJ,CAAC;AAEd,CAAC;;AClED,MAAMG,MAAM,GAAGlP,IAAA,IAA4F;EAAA,IAA3F;IAAE4I,YAAY;IAAE+C,cAAc;IAAED,mBAAmB;IAAEyD,SAAS;IAAE1D,UAAU;IAAE,GAAGrD;GAAO,GAAApI,IAAA;EACpG,MAAM;IAAElM;GAAG,GAAGC,2BAAc,EAAE;EAE9B,MAAM,CAACyY,aAAa,EAAEC,eAAe,CAAC,GAAGrM,cAAQ,CAAC,OAAO;IAAE,GAAGwI;GAAc,CAAC,CAAC;EAE9E,MAAMwG,iBAAiB,GAAGA,MAAM;IAC9BzD,cAAc,CAACa,aAAa,CAAC;GAC9B;EAED,MAAM6C,QAAQ,GAAGA,MAAM;IACrB5C,eAAe,CAAC;MAAE,GAAGf;KAAqB,CAAC;IAC3CC,cAAc,CAAC;MAAE,GAAGD;KAAqB,CAAC;GAC3C;EAED,MAAM4D,cAAc,GAAIvJ,KAAK,IAAK;IAChC,MAAMwJ,SAAS,GAAG;MAAE,GAAG/C,aAAa;MAAEpV,MAAM,EAAE2O;KAAO;IACrD0G,eAAe,CAAC8C,SAAS,CAAC;IAC1B5D,cAAc,CAAC4D,SAAS,CAAC;GAC1B;EAED,oBACE/Y,cAAA,CAAAC,aAAA,CAAC+Y,iCAAU;IACT7C,QAAQ,EAAEyC,iBAAkB;IAC5BK,YAAY,EAAGC,EAAE,IAAMzO,CAAC,IAAK;MAC3BA,CAAC,IAAIA,CAAC,CAAC2L,cAAc,EAAE;MACvB8C,EAAE,EAAE;KACJ;IACFC,iBAAiB,EAAEN,QAAS;IAC5BO,EAAE,EAAC,kBAAkB;IACrBC,qCAAqC,EAAEzH,KAAK,CAAC0H;kBAE7CtZ,cAAA,CAAAC,aAAA,CAACsZ,sCAAe,qBACdvZ,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC,cAAc;IAACG,KAAK,EAAE;MAAE2J,UAAU,EAAE;;KAChDlc,CAAC,CAAC,aAAa,CAAC,EAAC,GACf,CAAC,eACN0C,cAAA,CAAAC,aAAA,CAACwZ,+BAAQ;IACPC,MAAM,EAAE,CACN;MAAEha,KAAK,EAAEpC,CAAC,CAAC,iBAAiB,CAAC;MAAEiS,KAAK,EAAE;KAAI,EAC1C;MAAE7P,KAAK,EAAEpC,CAAC,CAAC,oBAAoB,CAAC;MAAEiS,KAAK,EAAE;KAAU,EACnD;MAAE7P,KAAK,EAAEpC,CAAC,CAAC,qBAAqB,CAAC;MAAEiS,KAAK,EAAE;KAAiB,CAC3D;IACFoK,SAAS,EAAC,OAAO;IACjBC,MAAM,EAAEd,cAAe;IACvBe,QAAQ,EAAE,CAAA7D,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEpV,MAAM,KAAI;MAAElB,KAAK,EAAEpC,CAAC,CAAC,iBAAiB,CAAC;MAAEiS,KAAK,EAAE;;GAC1E,CACc,CACP,CAAC;AAEjB,CAAC;;;;;;;;;;;;AClDM,MAAMuK,mBAAmB,aAAAtQ,IAAA;EAAA,IAAU;IAAEuQ,IAAI;IAAEC,YAAY;IAAEvW,UAAU;IAAEwU,YAAY;IAAEgC,UAAU;IAAEC,cAAc;IAAEC,aAAa;IAAE7c;GAAG,GAAAkM,IAAA;EAAA,IAAK;IAC3I,MAAM7L,QAAQ,GAAGH,KAAK,CAACI,UAAU,CAACC,kBAAkB,EAAE;IAQtD,MAAMoN,IAAI,GAAG,iBAAiB;IAC9B,MAAMjJ,KAAK,GAAG,8BAA8B;IAC5C,MAAMoY,WAAW,GAAG,iBAAiB;IAErC,MAAMC,WAAW,GAAG,IAAI5N,IAAI,EAAE;IAC9B,MAAM6N,aAAa,GAAGD,WAAW,CAACE,kBAAkB,CAAC,OAAO,EAAE;MAC5DC,GAAG,EAAE,SAAS;MACdC,KAAK,EAAE,SAAS;MAChBC,IAAI,EAAE;KACP,CAAC;IACF,MAAMC,aAAa,GAAGN,WAAW,CAACO,kBAAkB,CAAC,OAAO,EAAE;MAC5DC,IAAI,EAAE,SAAS;MACfC,MAAM,EAAE,SAAS;MACjBC,MAAM,EAAE,SAAS;MACjBC,MAAM,EAAE;KACT,CAAC;IACF,MAAMC,gBAAgB,GAAG,GAAGX,aAAa,IAAIK,aAAa,EAAE;IAE5D,MAAMO,YAAY,GAAIhS,GAAG,IAAKA,GAAG,KAAKiS,SAAS,IAAIjS,GAAG,KAAK,IAAI,IAAIA,GAAG,KAAK,EAAE;IAE7E,MAAMkS,OAAO,GAAG,CACd;MACEC,KAAK,EAAE/d,CAAC,CAAC,kBAAkB,CAAC;MAC5Bge,eAAe,EAAE,IAAI;MACrBC,MAAM,EAAE,CACN;QAAEF,KAAK,EAAE/d,CAAC,CAAC,eAAe,CAAC;QAAEiS,KAAK,EAAEyK;OAAc,EAClD;QAAEqB,KAAK,EAAE/d,CAAC,CAAC,eAAe,CAAC;QAAEiS,KAAK,EAAE0I;OAAc,EAClD;QAAEoD,KAAK,EAAE/d,CAAC,CAAC,aAAa,CAAC;QAAEiS,KAAK,EAAE0K;OAAY,EAC9C;QAAEoB,KAAK,EAAE/d,CAAC,CAAC,iBAAiB,CAAC;QAAEiS,KAAK,EAAE2K;OAAgB,CACvD,CAACvR,MAAM,CAAEH,IAAI,IAAK0S,YAAY,CAAC1S,IAAI,CAAC+G,KAAK,CAAC;KAC5C,EACD;MACE8L,KAAK,EAAE/d,CAAC,CAAC,oBAAoB,CAAC;MAC9Bge,eAAe,EAAE,IAAI;MACrBC,MAAM,EAAE,CACN;QAAEF,KAAK,EAAE/d,CAAC,CAAC,gBAAgB,CAAC;QAAEiS,KAAK,EAAE,CAAA4K,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAE7M,KAAK,KAAI;OAAG,EAChE;QAAE+N,KAAK,EAAE/d,CAAC,CAAC,WAAW,CAAC;QAAEiS,KAAK,EAAE,CAAA4K,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEzM,SAAS,KAAI;OAAG,EAC/D;QAAE2N,KAAK,EAAE/d,CAAC,CAAC,SAAS,CAAC;QAAEiS,KAAK,EAAE,CAAA4K,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAE5L,OAAO,KAAI;OAAG,EAC3D;QAAE8M,KAAK,EAAE/d,CAAC,CAAC,WAAW,CAAC;QAAEiS,KAAK,EAAE,CAAA4K,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAE1M,cAAc,KAAI;OAAG,CACrE,CAAC9E,MAAM,CAAEH,IAAI,IAAK0S,YAAY,CAAC1S,IAAI,CAAC+G,KAAK,CAAC;KAC5C,CACF;IAED,IAAIpQ,MAAM,CAAC3B,KAAK,IAAI2B,MAAM,CAAC3B,KAAK,CAACC,KAAK,IAAI0B,MAAM,CAAC3B,KAAK,CAACC,KAAK,CAAC+d,GAAG,IAAIrc,MAAM,CAAC3B,KAAK,CAACC,KAAK,CAAC+d,GAAG,CAACC,sBAAsB,EAAE;MACjHtc,MAAM,CAAC3B,KAAK,CAACC,KAAK,CAAC+d,GAAG,CAACC,sBAAsB,CAAC;QAC5C9d,QAAQ;QACR+d,IAAI,EAAE,IAAI;QACVzQ,IAAI;QACJjJ,KAAK;QACLoY,WAAW;QACXuB,OAAO,EAAEre,CAAC,CAAC,sBAAsB,CAAC;QAClC8d,OAAO;QACPvH,iBAAiB,EAAEpQ,UAAU;QAC7BsW,IAAI;QACJzc,CAAC;QACDse,qBAAqB,EAAE,IAAI;QAC3BC,YAAY,EAAEZ;OACf,CAAC;KACH,MAAM;MACL9O,OAAO,CAACD,KAAK,CAAC,yDAAyD,CAAC;;IACzE,OAAAb,OAAA,CAAAC,OAAA;GACF,QAAAb,CAAA;IAAA,OAAAY,OAAA,CAAAiB,MAAA,CAAA7B,CAAA;;AAAA;AAED,AAAO,MAAMqR,qBAAqB,aAAAzL,KAAA;EAAA,IAAU;IAAE0J,IAAI;IAAEG,cAAc;IAAEjC,YAAY;IAAEgC,UAAU;IAAEE,aAAa;IAAE7c;GAAG,GAAA+S,KAAA;EAAA,IAAK;IACnH,MAAM1S,QAAQ,GAAGH,KAAK,CAACI,UAAU,CAACC,kBAAkB,EAAE;IAEtD,MAAMoN,IAAI,GAAG,iBAAiB;IAC9B,MAAMjJ,KAAK,GAAG,8BAA8B;IAC5C,MAAMoY,WAAW,GAAG,iBAAiB;IAErC,MAAMC,WAAW,GAAG,IAAI5N,IAAI,EAAE;IAC9B,MAAM6N,aAAa,GAAGD,WAAW,CAACE,kBAAkB,CAAC,OAAO,EAAE;MAC5DC,GAAG,EAAE,SAAS;MACdC,KAAK,EAAE,SAAS;MAChBC,IAAI,EAAE;KACP,CAAC;IACF,MAAMC,aAAa,GAAGN,WAAW,CAACO,kBAAkB,CAAC,OAAO,EAAE;MAC5DC,IAAI,EAAE,SAAS;MACfC,MAAM,EAAE,SAAS;MACjBC,MAAM,EAAE,SAAS;MACjBC,MAAM,EAAE;KACT,CAAC;IACF,MAAMC,gBAAgB,GAAG,GAAGX,aAAa,IAAIK,aAAa,EAAE;IAE5D,MAAMO,YAAY,GAAIhS,GAAG,IAAKA,GAAG,KAAKiS,SAAS,IAAIjS,GAAG,KAAK,IAAI,IAAIA,GAAG,KAAK,EAAE;IAE7E,MAAMkS,OAAO,GAAG,CACd;MACEC,KAAK,EAAE/d,CAAC,CAAC,oBAAoB,CAAC,IAAI,oBAAoB;MACtDge,eAAe,EAAE,IAAI;MACrBC,MAAM,EAAE,CACN;QAAEF,KAAK,EAAE/d,CAAC,CAAC,iBAAiB,CAAC,IAAI,iBAAiB;QAAEiS,KAAK,EAAE2K;OAAgB,EAC3E;QAAEmB,KAAK,EAAE/d,CAAC,CAAC,eAAe,CAAC,IAAI,eAAe;QAAEiS,KAAK,EAAE0I;OAAc,EACrE;QAAEoD,KAAK,EAAE/d,CAAC,CAAC,aAAa,CAAC,IAAI,aAAa;QAAEiS,KAAK,EAAE0K;OAAY,CAChE,CAACtR,MAAM,CAAEH,IAAI,IAAK0S,YAAY,CAAC1S,IAAI,CAAC+G,KAAK,CAAC;KAC5C,EACD;MACE8L,KAAK,EAAE/d,CAAC,CAAC,oBAAoB,CAAC,IAAI,oBAAoB;MACtDge,eAAe,EAAE,IAAI;MACrBC,MAAM,EAAE,CACN;QAAEF,KAAK,EAAE/d,CAAC,CAAC,gBAAgB,CAAC,IAAI,gBAAgB;QAAEiS,KAAK,EAAE,CAAA4K,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAE7M,KAAK,KAAI;OAAG,EACpF;QAAE+N,KAAK,EAAE/d,CAAC,CAAC,WAAW,CAAC,IAAI,WAAW;QAAEiS,KAAK,EAAE,CAAA4K,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEzM,SAAS,KAAI;OAAG,EAC9E;QAAE2N,KAAK,EAAE/d,CAAC,CAAC,SAAS,CAAC,IAAI,SAAS;QAAEiS,KAAK,EAAE,CAAA4K,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAE5L,OAAO,KAAI;OAAG,EACxE;QAAE8M,KAAK,EAAE/d,CAAC,CAAC,WAAW,CAAC,IAAI,WAAW;QAAEiS,KAAK,EAAE,CAAA4K,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAE1M,cAAc,KAAI;OAAG,CACpF,CAAC9E,MAAM,CAAEH,IAAI,IAAK0S,YAAY,CAAC1S,IAAI,CAAC+G,KAAK,CAAC;KAC5C,CACF;IAGD,MAAMwM,UAAU,GAAGhC,IAAI,CAAC1b,GAAG,CAAEsV,GAAG;MAAA,IAAAqI,UAAA,EAAAC,WAAA;MAAA,OAAM;QACtCzb,GAAG,EAAEmT,GAAG,CAAC1I,IAAI,MAAA+Q,UAAA,GAAIrI,GAAG,CAACuI,KAAK,cAAAF,UAAA,uBAATA,UAAA,CAAW/Q,IAAI,KAAI,KAAK;QACzCxK,SAAS,EAAE,EAAAwb,WAAA,GAAAtI,GAAG,CAACuI,KAAK,cAAAD,WAAA,uBAATA,WAAA,CAAWhE,YAAY,KAAItE,GAAG,CAAC9R,QAAQ,IAAI,KAAK;QAC3DlB,QAAQ,EAAE,EAAE;QACZkB,QAAQ,EAAE8R,GAAG,CAAC/S,MAAM,IAAI,KAAK;QAC7BE,QAAQ,EAAE0G,MAAM,CAACmM,GAAG,CAACrG,KAAK,IAAI,CAAC,CAAC;QAChCzM,UAAU,EAAE,GAAG8S,GAAG,CAACjG,SAAS,IAAI,CAAC,MAAMiG,GAAG,CAACpF,OAAO,IAAI,CAAC,EAAE;QACzD4N,QAAQ,EAAExI,GAAG,CAACwI,QAAQ,IAAI,IAAI;QAC9B7Z,WAAW,EAAE;OACd;KAAC,CAAC;IAGD,MAAM8Z,OAAO,GAAInT,GAAG,IAAK;MACvB,IAAIA,GAAG,KAAK,KAAK,EAAE,OAAO3L,CAAC,CAAC,eAAe,CAAC,IAAI,eAAe;MAC/D,IAAI2L,GAAG,KAAK,UAAU,EAAE,OAAO3L,CAAC,CAAC,eAAe,CAAC,IAAI,eAAe;MACpE,IAAI2L,GAAG,KAAK,QAAQ,EAAE,OAAO3L,CAAC,CAAC,QAAQ,CAAC,IAAI,QAAQ;MACpD,IAAI2L,GAAG,KAAK,MAAM,EAAE,OAAO3L,CAAC,CAAC,yBAAyB,CAAC,IAAI,yBAAyB;MACpF,IAAI2L,GAAG,KAAK,aAAa,EAAE,OAAO3L,CAAC,CAAC,mBAAmB,CAAC,IAAI,qBAAqB;MACjF,IAAI2L,GAAG,KAAK,gBAAgB,EAAE,OAAO3L,CAAC,CAAC,kBAAkB,CAAC,IAAI,kBAAkB;MAChF,IAAI2L,GAAG,KAAK,eAAe,EAAE,OAAO3L,CAAC,CAAC,qBAAqB,CAAC,IAAI,qBAAqB;MACrF,OAAOA,CAAC,CAAC2L,GAAG,CAAC;KACd;IAED,IAAI;MACF,IAAI9J,MAAM,CAAC3B,KAAK,IAAI2B,MAAM,CAAC3B,KAAK,CAACC,KAAK,IAAI0B,MAAM,CAAC3B,KAAK,CAACC,KAAK,CAAC+d,GAAG,IAAIrc,MAAM,CAAC3B,KAAK,CAACC,KAAK,CAAC+d,GAAG,CAACC,sBAAsB,EAAE;QACjHtc,MAAM,CAAC3B,KAAK,CAACC,KAAK,CAAC+d,GAAG,CAACC,sBAAsB,CAAC;UAC5C9d,QAAQ;UACR+d,IAAI,EAAE,IAAI;UACVzQ,IAAI;UACJjJ,KAAK;UACLoY,WAAW;UACXuB,OAAO,EAAEre,CAAC,CAAC,wBAAwB,CAAC,IAAI,wBAAwB;UAChE8d,OAAO;UACPvH,iBAAiB,EAAEoE,YAAY;UAC/B8B,IAAI,EAAEgC,UAAU;UAChBze,CAAC,EAAE8e,OAAO;UACVR,qBAAqB,EAAE,IAAI;UAC3BC,YAAY,EAAEZ;SACf,CAAC;OACH,MAAM;QACL9O,OAAO,CAACD,KAAK,CAAC,yDAAyD,CAAC;;KAE3E,OAAK;IAEL,OAAAb,OAAA,CAAAC,OAAA;GACF,QAAAb,CAAA;IAAA,OAAAY,OAAA,CAAAiB,MAAA,CAAA7B,CAAA;;AAAA;AAED,AAAO,MAAM4R,iBAAiB,aAAAvI,KAAA;EAAA,IAAU;IAAEiG,IAAI;IAAEE,UAAU;IAAEhC,YAAY;IAAEjW,KAAK;IAAEmY,aAAa;IAAE7c;GAAG,GAAAwW,KAAA;EAAA,IAAK;IACtG,MAAMnW,QAAQ,GAAGH,KAAK,CAACI,UAAU,CAACC,kBAAkB,EAAE;IAEtD,MAAMoN,IAAI,GAAG,iBAAiB;IAC9B,MAAMqR,YAAY,GAAG,8BAA8B;IACnD,MAAMlC,WAAW,GAAG,iBAAiB;IAErC,MAAMC,WAAW,GAAG,IAAI5N,IAAI,EAAE;IAC9B,MAAM6N,aAAa,GAAGD,WAAW,CAACE,kBAAkB,CAAC,OAAO,EAAE;MAC5DC,GAAG,EAAE,SAAS;MACdC,KAAK,EAAE,SAAS;MAChBC,IAAI,EAAE;KACP,CAAC;IACF,MAAMC,aAAa,GAAGN,WAAW,CAACO,kBAAkB,CAAC,OAAO,EAAE;MAC5DC,IAAI,EAAE,SAAS;MACfC,MAAM,EAAE,SAAS;MACjBC,MAAM,EAAE,SAAS;MACjBC,MAAM,EAAE;KACT,CAAC;IACF,MAAMC,gBAAgB,GAAG,GAAGX,aAAa,IAAIK,aAAa,EAAE;IAE5D,MAAMO,YAAY,GAAIhS,GAAG,IAAKA,GAAG,KAAKiS,SAAS,IAAIjS,GAAG,KAAK,IAAI,IAAIA,GAAG,KAAK,EAAE;IAE7E,MAAMkS,OAAO,GAAG,CACd;MACEC,KAAK,EAAE/d,CAAC,CAAC,gBAAgB,CAAC,IAAI,gBAAgB;MAC9Cge,eAAe,EAAE,IAAI;MACrBC,MAAM,EAAE,CACN;QAAEF,KAAK,EAAE/d,CAAC,CAAC,aAAa,CAAC,IAAI,aAAa;QAAEiS,KAAK,EAAE0K;OAAY,EAC/D;QAAEoB,KAAK,EAAE/d,CAAC,CAAC,eAAe,CAAC,IAAI,eAAe;QAAEiS,KAAK,EAAE0I;OAAc,EACrE;QAAEoD,KAAK,EAAE/d,CAAC,CAAC,OAAO,CAAC,IAAI,OAAO;QAAEiS,KAAK,EAAEvN;OAAO,CAC/C,CAAC2G,MAAM,CAAEH,IAAI,IAAK0S,YAAY,CAAC1S,IAAI,CAAC+G,KAAK,CAAC;KAC5C,EACD;MACE8L,KAAK,EAAE/d,CAAC,CAAC,oBAAoB,CAAC,IAAI,oBAAoB;MACtDge,eAAe,EAAE,IAAI;MACrBC,MAAM,EAAE,CACN;QAAEF,KAAK,EAAE/d,CAAC,CAAC,gBAAgB,CAAC,IAAI,gBAAgB;QAAEiS,KAAK,EAAE,CAAA4K,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAE7M,KAAK,KAAI;OAAG,EACpF;QAAE+N,KAAK,EAAE/d,CAAC,CAAC,yBAAyB,CAAC,IAAI,WAAW;QAAEiS,KAAK,EAAE,CAAA4K,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEzM,SAAS,KAAI;OAAG,EAC5F;QAAE2N,KAAK,EAAE/d,CAAC,CAAC,SAAS,CAAC,IAAI,SAAS;QAAEiS,KAAK,EAAE,CAAA4K,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAE5L,OAAO,KAAI;OAAG,EACxE;QAAE8M,KAAK,EAAE/d,CAAC,CAAC,WAAW,CAAC,IAAI,WAAW;QAAEiS,KAAK,EAAE,CAAA4K,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAE1M,cAAc,KAAI;OAAG,CACpF,CAAC9E,MAAM,CAAEH,IAAI,IAAK0S,YAAY,CAAC1S,IAAI,CAAC+G,KAAK,CAAC;KAC5C,CACF;IAGD,MAAMwM,UAAU,GAAGhC,IAAI,CAAC1b,GAAG,CAAEsV,GAAG,KAAM;MACpCnT,GAAG,EAAEmT,GAAG,CAAC1I,IAAI,IAAI,KAAK;MACtBxK,SAAS,EAAEkT,GAAG,CAAC9R,QAAQ,IAAI,KAAK;MAChClB,QAAQ,EAAE,EAAE;MACZkB,QAAQ,EAAE8R,GAAG,CAAC/S,MAAM,IAAI,KAAK;MAC7BE,QAAQ,EAAE0G,MAAM,CAACmM,GAAG,CAACrG,KAAK,IAAI,CAAC,CAAC;MAChCzM,UAAU,EAAE,GAAG8S,GAAG,CAACjG,SAAS,IAAI,CAAC,MAAMiG,GAAG,CAACpF,OAAO,IAAI,CAAC,EAAE;MACzD4N,QAAQ,EAAExI,GAAG,CAACwI,QAAQ,IAAI;KAC3B,CAAC,CAAC;IAGH,MAAMC,OAAO,GAAInT,GAAG,IAAK;MACvB,IAAIA,GAAG,KAAK,KAAK,EAAE,OAAO3L,CAAC,CAAC,iBAAiB,CAAC,IAAI,iBAAiB;MACnE,IAAI2L,GAAG,KAAK,UAAU,EAAE,OAAO3L,CAAC,CAAC,eAAe,CAAC,IAAI,eAAe;MACpE,IAAI2L,GAAG,KAAK,QAAQ,EAAE,OAAO3L,CAAC,CAAC,QAAQ,CAAC,IAAI,QAAQ;MACpD,IAAI2L,GAAG,KAAK,MAAM,EAAE,OAAO3L,CAAC,CAAC,yBAAyB,CAAC,IAAI,yBAAyB;MACpF,IAAI2L,GAAG,KAAK,gBAAgB,EAAE,OAAO3L,CAAC,CAAC,kBAAkB,CAAC,IAAI,kBAAkB;MAChF,IAAI2L,GAAG,KAAK,eAAe,EAAE,OAAO3L,CAAC,CAAC,uBAAuB,CAAC,IAAI,uBAAuB;MACzF,OAAOA,CAAC,CAAC2L,GAAG,CAAC;KACd;IAED,IAAI;MACF,IAAI9J,MAAM,CAAC3B,KAAK,IAAI2B,MAAM,CAAC3B,KAAK,CAACC,KAAK,IAAI0B,MAAM,CAAC3B,KAAK,CAACC,KAAK,CAAC+d,GAAG,IAAIrc,MAAM,CAAC3B,KAAK,CAACC,KAAK,CAAC+d,GAAG,CAACC,sBAAsB,EAAE;QACjHtc,MAAM,CAAC3B,KAAK,CAACC,KAAK,CAAC+d,GAAG,CAACC,sBAAsB,CAAC;UAC5C9d,QAAQ;UACR+d,IAAI,EAAE,IAAI;UACVzQ,IAAI;UACJjJ,KAAK,EAAEsa,YAAY;UACnBlC,WAAW;UACXuB,OAAO,EAAEre,CAAC,CAAC,oBAAoB,CAAC,IAAI,oBAAoB;UACxD8d,OAAO;UACPvH,iBAAiB,EAAEoE,YAAY;UAC/B8B,IAAI,EAAEgC,UAAU;UAChBze,CAAC,EAAE8e,OAAO;UACVR,qBAAqB,EAAE,IAAI;UAC3BC,YAAY,EAAEZ;SACf,CAAC;OACH,MAAM;QACL9O,OAAO,CAACD,KAAK,CAAC,yDAAyD,CAAC;;KAE3E,CAAC,MAAM;IAEP,OAAAb,OAAA,CAAAC,OAAA;GACF,QAAAb,CAAA;IAAA,OAAAY,OAAA,CAAAiB,MAAA,CAAA7B,CAAA;;AAAA;;ACxPD,MAAM8R,iBAAiB,GAAGA,MAAM;EAAA,IAAAC,aAAA,EAAAC,cAAA,EAAAC,kBAAA,EAAAC,qBAAA;EAC9B,MAAM;IAAErf;GAAG,GAAGC,2BAAc,EAAE;EAC9B,MAAMgV,OAAO,GAAGC,yBAAU,EAAE;EAC5B,MAAM7U,QAAQ,GAAGH,KAAK,CAACI,UAAU,CAACC,kBAAkB,EAAE,IAAI,QAAQ;EAClE,MAAM;IAAEqI;GAAU,GAAG0W,wBAAS,EAAE;EAEhC,MAAM;IAAEpe,IAAI,EAAE;MAAEqe,MAAM,EAAE,CAACA,MAAM,CAAC,GAAG;KAAI,GAAG,EAAE;IAAEne,SAAS,EAAEoe;GAAuB,GAAGtf,KAAK,CAACmB,KAAK,CAACoe,GAAG,CAACC,eAAe,CAAC;IACjHrf,QAAQ;IACRsf,OAAO,EAAE;MACPrc,MAAM,EAAE,QAAQ;MAChBsc,GAAG,EAAEhX;KACN;IACDiX,MAAM,EAAE;MACNne,OAAO,EAAE,CAAC,CAACrB,QAAQ;MACnByf,SAAS,EAAE;;GAEd,CAAC;EAIF,MAAMC,cAAc,GAAGnX,QAAQ,KAAI2W,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEzD,EAAE,MAAIyD,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAE3W,QAAQ;EAGjE,MAAM;IAAExH,SAAS,EAAEoS,iBAAiB;IAAEtS,IAAI,EAAEqS;GAAc,GAAGrT,KAAK,CAACmB,KAAK,CAACC,IAAI,CAAC0e,yBAAyB,CACrGD,cAAc,GAAG;IAAEnX,QAAQ,EAAEmX;GAAgB,GAAG,EAAE,EAClD;IACEre,OAAO,EAAE,CAAC,CAACrB,QAAQ;IACnB4f,gBAAgB,EAAE;GAEtB,CAAC;EAED,MAAMtD,UAAU,GAAG,CAAA4C,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAE5R,IAAI,KAAI,KAAK;EACxC,MAAMgN,YAAY,GAAG,CAAA4E,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAE5E,YAAY,MAAI4E,MAAM,aAANA,MAAM,wBAAAL,aAAA,GAANK,MAAM,CAAEX,KAAK,cAAAM,aAAA,uBAAbA,aAAA,CAAevE,YAAY,KAAI,KAAK;EACjF,MAAMjW,KAAK,GAAG,CAAA6a,MAAM,aAANA,MAAM,wBAAAJ,cAAA,GAANI,MAAM,CAAEX,KAAK,cAAAO,cAAA,uBAAbA,cAAA,CAAe3V,OAAO,KAAI,KAAK;EAQ7C,MAAM0W,OAAO,GAAGnK,aAAO,CAAC,MAAM;IAAA,IAAAoK,eAAA;IAC5B,OAAOZ,MAAM,aAANA,MAAM,gBAAAY,eAAA,GAANZ,MAAM,CAAEW,OAAO,cAAAC,eAAA,eAAfA,eAAA,CAAiB5d,MAAM,GAAGgd,MAAM,CAACW,OAAO,CAAC7U,MAAM,CAACC,OAAO,CAAC,CAACvK,GAAG,CAAEqf,IAAI,IAAKlW,MAAM,CAACkW,IAAI,CAAC,CAACC,IAAI,EAAE,CAAC3V,WAAW,EAAE,CAAC,GAAG,EAAE;GACtH,EAAE,CAAC6U,MAAM,CAAC,CAAC;EAGZ,MAAMe,KAAK,GAAG,CACZ;IACEle,KAAK,EAAE,YAAY;IACnBE,KAAK,EAAE,CAAAiR,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEgN,gBAAgB,KAAI,CAAC;IAC1CvO,KAAK,EAAE,SAAS;IAChBlB,IAAI,EAAE,OAAO;IACb0P,IAAI,eAAE9d,cAAA,CAAAC,aAAA,CAAC8d,iCAAU,MAAE;GACpB,EACD;IACEre,KAAK,EAAE,yBAAyB;IAChCE,KAAK,EAAE,CAAAiR,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEM,gBAAgB,KAAI,CAAC;IAC1C7B,KAAK,EAAE,SAAS;IAChBlB,IAAI,EAAE,OAAO;IACb0P,IAAI,eAAE9d,cAAA,CAAAC,aAAA,CAAC+d,gCAAS,MAAE;GACnB,EAQD;IACEte,KAAK,EAAE,2BAA2B;IAClCE,KAAK,EAAE,CAAAiR,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEO,oBAAoB,KAAI,CAAC;IAC9C9B,KAAK,EAAE,SAAS;IAChBlB,IAAI,EAAE,OAAO;IACb0P,IAAI,eAAE9d,cAAA,CAAAC,aAAA,CAACge,aAAU,MAAE;GACpB,EACD;IACEve,KAAK,EAAE,2BAA2B;IAClCE,KAAK,EAAE,CAAAiR,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEQ,oBAAoB,KAAI,CAAC;IAC9C/B,KAAK,EAAE,SAAS;IAChBlB,IAAI,EAAE,OAAO;IACb0P,IAAI,eAAE9d,cAAA,CAAAC,aAAA,CAACie,SAAM,MAAE;GAChB,EACD;IACExe,KAAK,EAAE,sBAAsB;IAC7BE,KAAK,EAAE,CAAAiR,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEI,kBAAkB,KAAI,CAAC;IAC5C3B,KAAK,EAAE,SAAS;IAChBlB,IAAI,EAAE,SAAS;IACf0P,IAAI,eAAE9d,cAAA,CAAAC,aAAA,CAACke,UAAO,MAAE;GACjB,EACD;IACEze,KAAK,EAAE,kBAAkB;IACzBE,KAAK,EAAE,GAAG,CAAAiR,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAES,sBAAsB,KAAI,CAAC,GAAG;IACtDhC,KAAK,EAAE,SAAS;IAChBlB,IAAI,EAAE,UAAU;IAChB0P,IAAI,eAAE9d,cAAA,CAAAC,aAAA,CAACme,cAAW,MAAE;GACrB,CACF;EAED,MAAM,CAACpM,WAAW,EAAEqM,cAAc,CAAC,GAAGzU,cAAQ,CAAC,CAAC,CAAC;EACjD,MAAM,CAAC0U,QAAQ,EAAEC,WAAW,CAAC,GAAG3U,cAAQ,CAAC,EAAE,CAAC;EAE5C,MAAM,CAACF,mBAAmB,EAAEC,sBAAsB,CAAC,GAAGC,cAAQ,CAAC,KAAK,CAAC;EAErE,MAAMsB,sBAAsB,aAAUC,QAAQ,EAAEC,MAAM;IAAA,IAAK;MACzDzB,sBAAsB,CAAC,IAAI,CAAC;MAAC,OAAA0B,OAAA,CAAAC,OAAA,CAAAC,gBAAA;QAAA,OAAAC,MAAA,aACzB;UAAA,OAAAH,OAAA,CAAAC,OAAA,CACqB9N,KAAK,CAACiO,WAAW,CAACC,gBAAgB,CAAC;YACxD/N,QAAQ,EAAEA,QAAQ;YAClBmB,MAAM,EAAE,CAAC;YACTC,KAAK,EAAE,KAAK;YAEZmH,QAAQ,EAAEmX,cAAc;YACxB1R,cAAc,EAAE,IAAI;YACpB,IAAIR,QAAQ,IAAI;cAAEA;aAAU,CAAC;YAC7B,IAAIC,MAAM,IAAI;cAAEA;aAAQ;WACzB,CAAC,EAAAQ,IAAA,WATIC,QAAQ;YAWd,MAAMzD,YAAY,GAAG,CAAAyD,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEzD,YAAY,KAAI,EAAE;YAEjD,IAAI,CAACA,YAAY,IAAIA,YAAY,CAACvI,MAAM,KAAK,CAAC,EAAE;cAC9CiM,KAAK,CAACxO,CAAC,CAAC,oBAAoB,CAAC,IAAI,iCAAiC,CAAC;cACnE;;YAEF,MAAMiL,SAAS,GAAGJ,gBAAgB,CAACC,YAAY,EAAE9K,CAAC,CAAC;YACnD,MAAMyO,aAAa,GAAG,aAAakO,UAAU,CAACnS,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,EAAE;YAC7EtK,KAAK,CAACwO,QAAQ,CAACC,KAAK,CAAC1D,SAAS,EAAEwD,aAAa,CAAC;;SAC/C,YAAQG,KAAK,EAAE;UACdC,OAAO,CAACD,KAAK,CAAC,+BAA+B,EAAEA,KAAK,CAAC;UACrDJ,KAAK,CAACxO,CAAC,CAAC,sBAAsB,CAAC,IAAI,iDAAiD,CAAC;SACtF;mBAAA8O,UAAA,EAAAC,OAAA;QACC1C,sBAAsB,CAAC,KAAK,CAAC;QAAC,IAAAyC,UAAA,QAAAC,OAAA;QAAA,OAAAA,OAAA;;KAEjC,QAAA5B,CAAA;MAAA,OAAAY,OAAA,CAAAiB,MAAA,CAAA7B,CAAA;;;EAED,MAAM8B,YAAY,GAAI5D,MAAM,IAAK;IAC/B,MAAM6D,GAAG,GAAG,IAAIC,IAAI,EAAE;IACtB,MAAMC,KAAK,GAAG,IAAID,IAAI,CAACD,GAAG,CAAC;IAC3B,IAAI7D,MAAM,KAAK,OAAO,EAAE;MACtB+D,KAAK,CAACC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MAC1B,OAAO;QAAE1C,IAAI,EAAEyC,KAAK;QAAExC,EAAE,EAAEsC;OAAK;;IAEjC,IAAI7D,MAAM,KAAK,MAAM,EAAE;MACrB+D,KAAK,CAACE,OAAO,CAACJ,GAAG,CAACK,OAAO,EAAE,GAAGL,GAAG,CAACM,MAAM,EAAE,CAAC;MAC3CJ,KAAK,CAACC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MAC1B,OAAO;QAAE1C,IAAI,EAAEyC,KAAK;QAAExC,EAAE,EAAEsC;OAAK;;IAEjC,IAAI7D,MAAM,KAAK,OAAO,EAAE;MACtB+D,KAAK,CAACE,OAAO,CAAC,CAAC,CAAC;MAChBF,KAAK,CAACC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MAC1B,OAAO;QAAE1C,IAAI,EAAEyC,KAAK;QAAExC,EAAE,EAAEsC;OAAK;;IAEjC,OAAO,IAAI;GACZ;EAED,MAAMgS,iBAAiB,GAAGnL,aAAO,CAC/B,MAAM,CACJ;IACEC,MAAM,EAAEhW,CAAC,CAAC,iBAAiB,CAAC,IAAI,iBAAiB;IACjDiW,QAAQ,EAAGI,GAAG;MAAA,IAAAF,aAAA;MAAA,OAAK,CAAAE,GAAG,aAAHA,GAAG,wBAAAF,aAAA,GAAHE,GAAG,CAAEC,QAAQ,cAAAH,aAAA,uBAAbA,aAAA,CAAeyG,cAAc,KAAI,KAAK;;IACzD1G,IAAI,EAAEhK,IAAA,IAAa;MAAA,IAAApM,qBAAA,EAAAC,sBAAA,EAAAohB,sBAAA,EAAA/K,cAAA,EAAAK,cAAA;MAAA,IAAZ;QAAEJ;OAAK,GAAAnK,IAAA;MACZ,MAAM7D,QAAQ,GAAG,EAAAvI,qBAAA,GAAAI,KAAK,CAACO,cAAc,CAACC,GAAG,CAAC,MAAM,CAAC,cAAAZ,qBAAA,wBAAAC,sBAAA,GAAhCD,qBAAA,CAAkCa,IAAI,cAAAZ,sBAAA,wBAAAohB,sBAAA,GAAtCphB,sBAAA,CAAwC+Q,IAAI,cAAAqQ,sBAAA,uBAA5CA,sBAAA,CAA8C5W,WAAW,EAAE,KAAI,SAAS;MACzF,MAAM6W,UAAU,GAAG,aAAa/Y,QAAQ,8BAA8BgO,GAAG,aAAHA,GAAG,wBAAAD,cAAA,GAAHC,GAAG,CAAEC,QAAQ,cAAAF,cAAA,uBAAbA,cAAA,CAAezN,YAAY,EAAE;MAEnG,oBACEjG,cAAA,CAAAC,aAAA;QACE0e,IAAI,EAAED,UAAW;QACjB7O,KAAK,EAAE;UAAEP,KAAK,EAAE,SAAS;UAAEkK,UAAU,EAAE,KAAK;UAAEoF,cAAc,EAAE;SAAS;QACvE1O,OAAO,EAAGzF,CAAC,IAAK;UACdA,CAAC,CAAC2L,cAAc,EAAE;UAClB7D,OAAO,CAAC9S,IAAI,CAACif,UAAU,CAAC;;SAGzB,CAAA/K,GAAG,aAAHA,GAAG,wBAAAI,cAAA,GAAHJ,GAAG,CAAEC,QAAQ,cAAAG,cAAA,uBAAbA,cAAA,CAAemG,cAAc,KAAI,KACjC,CAAC;;GAGT,EACD;IACE5G,MAAM,EAAEhW,CAAC,CAAC,eAAe,CAAC,IAAI,eAAe;IAC7CiW,QAAQ,EAAGI,GAAG,IAAK,CAAAA,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAE9R,QAAQ,KAAI,KAAK;IACzCuX,EAAE,EAAE;GACL,EACD;IACE9F,MAAM,EAAEhW,CAAC,CAAC,QAAQ,CAAC,IAAI,QAAQ;IAC/BiW,QAAQ,EAAGI,GAAG,IAAK,CAAAA,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAE/S,MAAM,KAAI,QAAQ;IAC1CwY,EAAE,EAAE,QAAQ;IACZ5F,IAAI,EAAEnD,KAAA;MAAA,IAAC;QAAEd;OAAO,GAAAc,KAAA;MAAA,oBAAKrQ,cAAA,CAAAC,aAAA;QAAMyP,SAAS,EAAE;SAA0BpS,CAAC,CAACiS,KAAK,CAAC,IAAIA,KAAY,CAAC;;GAC1F,EACD;IACE+D,MAAM,EAAEhW,CAAC,CAAC,yBAAyB,CAAC,IAAI,yBAAyB;IACjEiW,QAAQ,EAAGI,GAAG,IAAK,CAAAA,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEkL,SAAS,KAAI,CAAC;IACtCzF,EAAE,EAAE;GACL,EACD;IACE9F,MAAM,EAAEhW,CAAC,CAAC,gBAAgB,CAAC,IAAI,gBAAgB;IAC/CiW,QAAQ,EAAGI,GAAG,IAAK,CAAAA,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEmL,aAAa,KAAI,CAAC;IAC1C1F,EAAE,EAAE;GACL,EACD;IACE9F,MAAM,EAAEhW,CAAC,CAAC,sBAAsB,CAAC,IAAI,sBAAsB;IAC3DiW,QAAQ,EAAGI,GAAG,IAAK,CAAAA,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEoL,WAAW,KAAI,CAAC;IACxC3F,EAAE,EAAE;GACL,EACD;IACE9F,MAAM,EAAEhW,CAAC,CAAC,kBAAkB,CAAC,IAAI,kBAAkB;IACnDiW,QAAQ,EAAGI,GAAG,IAAK,GAAG,CAAAA,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEqL,eAAe,KAAI,CAAC,GAAG;IAClD5F,EAAE,EAAE;GACL,CACF,EACD,CAAC9b,CAAC,EAAEiV,OAAO,CACb,CAAC;EAGD,MAAM,CAAC1I,cAAc,EAAEC,iBAAiB,CAAC,GAAGF,cAAQ,CAAC,KAAK,CAAC;EAC3D,MAAM,CAACG,UAAU,EAAEC,aAAa,CAAC,GAAGJ,cAAQ,CAAC;IAAEK,IAAI,EAAE,EAAE;IAAEC,EAAE,EAAE;GAAI,CAAC;EAClE,MAAM,CAACC,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGR,cAAQ,CAAC,KAAK,CAAC;EAC/D,MAAM,CAACqV,aAAa,EAAEC,gBAAgB,CAAC,GAAGtV,cAAQ,CAAC,KAAK,CAAC;EACzD,MAAMS,aAAa,GAAGC,YAAM,CAAC,IAAI,CAAC;EAElCC,eAAS,CAAC,MAAM;IACd,MAAMC,OAAO,GAAIC,CAAC,IAAK;MACrB,IAAIJ,aAAa,CAACK,OAAO,IAAI,CAACL,aAAa,CAACK,OAAO,CAACC,QAAQ,CAACF,CAAC,CAACG,MAAM,CAAC,EAAE;QACtEd,iBAAiB,CAAC,KAAK,CAAC;QACxBM,mBAAmB,CAAC,KAAK,CAAC;;KAE7B;IACDS,QAAQ,CAACC,gBAAgB,CAAC,WAAW,EAAEN,OAAO,CAAC;IAC/C,OAAO,MAAMK,QAAQ,CAACE,mBAAmB,CAAC,WAAW,EAAEP,OAAO,CAAC;GAChE,EAAE,EAAE,CAAC;EAEN,MAAM2U,cAAc,GAAGA,MAAM;IAC3BD,gBAAgB,CAAC,IAAI,CAAC;IACtB,IAAI;MACF,MAAME,aAAa,GAAGvO,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEwO,gBAAgB,CAAChhB,GAAG,CAAEihB,CAAC,KAAM;QAC/DrU,IAAI,EAAEqU,CAAC,CAACpF,cAAc;QACtBrY,QAAQ,EAAEyd,CAAC,CAACzd,QAAQ;QACpByL,KAAK,EAAEgS,CAAC,CAACT,SAAS;QAClBnR,SAAS,EAAE4R,CAAC,CAACR,aAAa;QAC1BvQ,OAAO,EAAE+Q,CAAC,CAACP,WAAW;QACtB5C,QAAQ,EAAE,GAAGmD,CAAC,CAACN,eAAe,IAAI,CAAC;OACpC,CAAC,CAAC;MAEH3C,iBAAiB,CAAC;QAChBtC,IAAI,EAAEqF,aAAa;QACnBnF,UAAU;QACVhC,YAAY;QACZjW,KAAK;QACLmY,aAAa,EAAE;UACb7M,KAAK,EAAEuD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEgN,gBAAgB;UACrCnQ,SAAS,EAAE,CAAAmD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEO,oBAAoB,KAAGP,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEQ,oBAAoB;UAClF9C,OAAO,EAAEsC,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEI,kBAAkB;UACzCxD,cAAc,EAAEoD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEO;SAC/B;QACD9T;OACD,CAAC;KACH,CAAC,OAAOiiB,GAAG,EAAE;MACZpT,OAAO,CAACD,KAAK,CAAC,4BAA4B,EAAEqT,GAAG,CAAC;KACjD,SAAS;MACRL,gBAAgB,CAAC,KAAK,CAAC;;GAE1B;EAED,MAAMnS,oBAAoB,aAAUpE,MAAM;IAAA,IAAK;MAC7C,MAAMqE,KAAK,GAAGT,YAAY,CAAC5D,MAAM,CAAC;MAClC,IAAI,CAACqE,KAAK,EAAE,OAAA3B,OAAA,CAAAC,OAAA;MACZxB,iBAAiB,CAAC,KAAK,CAAC;MACxBM,mBAAmB,CAAC,KAAK,CAAC;MAAC,OAAAiB,OAAA,CAAAC,OAAA,CACrBJ,sBAAsB,CAAC8B,KAAK,CAAC/C,IAAI,CAACgD,OAAO,EAAE,EAAED,KAAK,CAAC9C,EAAE,CAAC+C,OAAO,EAAE,CAAC,EAAArB,IAAA;KACvE,QAAAnB,CAAA;MAAA,OAAAY,OAAA,CAAAiB,MAAA,CAAA7B,CAAA;;;EAED,MAAMyC,oBAAoB;IAAA,IAAe;MACvC,IAAI,CAACnD,UAAU,CAACE,IAAI,IAAI,CAACF,UAAU,CAACG,EAAE,EAAE;QACtC4B,KAAK,CAACxO,CAAC,CAAC,mBAAmB,CAAC,IAAI,uCAAuC,CAAC;QACxE,OAAA+N,OAAA,CAAAC,OAAA;;MAEF,MAAMrB,IAAI,GAAG,IAAIwC,IAAI,CAAC1C,UAAU,CAACE,IAAI,CAAC;MACtCA,IAAI,CAAC0C,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MACzB,MAAMzC,EAAE,GAAG,IAAIuC,IAAI,CAAC1C,UAAU,CAACG,EAAE,CAAC;MAClCA,EAAE,CAACyC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;MAC5B7C,iBAAiB,CAAC,KAAK,CAAC;MACxBM,mBAAmB,CAAC,KAAK,CAAC;MAAC,OAAAiB,OAAA,CAAAC,OAAA,CACrBJ,sBAAsB,CAACjB,IAAI,CAACgD,OAAO,EAAE,EAAE/C,EAAE,CAAC+C,OAAO,EAAE,CAAC,EAAArB,IAAA;KAC3D,QAAAnB,CAAA;MAAA,OAAAY,OAAA,CAAAiB,MAAA,CAAA7B,CAAA;;;EAED,MAAM+U,QAAQ,GAAG1L,KAAA;IAAA,IAAC;MAAEuH,KAAK;MAAE9L,KAAK;MAAEnB,IAAI;MAAE1P,SAAS;MAAEof;KAAM,GAAAhK,KAAA;IAAA,oBACvD9T,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAE,aAAatB,IAAI;OAC9B1P,SAAS,gBACRsB,cAAA,CAAAC,aAAA,CAACD,cAAK,CAACyf,QAAQ,qBACbzf,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC;KAAyC,CAAC,eACzD1P,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC;KAA2C,CAC5C,CAAC,gBAEjB1P,cAAA,CAAAC,aAAA,CAACD,cAAK,CAACyf,QAAQ,qBACbzf,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC;OAAc2L,KAAW,CAAC,eACzCrb,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC;OAAcH,KAAW,CAAC,EACxCuO,IAAI,iBAAI9d,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC;OAAaoO,IAAU,CACjC,CAEf,CAAC;GACP;EAED,MAAM4B,aAAa,GAAG5O,iBAAiB,IAAIgM,qBAAqB;EAEhE,IAAI4C,aAAa,IAAI,CAAC7C,MAAM,EAAE;IAC5B,oBAAO7c,cAAA,CAAAC,aAAA,CAAC6U,6BAAM,MAAE,CAAC;;EAGnB,IAAI,CAAC+H,MAAM,EAAE;IACX,oBACE7c,cAAA,CAAAC,aAAA,CAACqV,2BAAI,qBACHtV,cAAA,CAAAC,aAAA;MAAK4P,KAAK,EAAE;QAAE0F,OAAO,EAAE;;OAAWjY,CAAC,CAAC,iBAAiB,CAAC,IAAI,iBAAuB,CAC7E,CAAC;;EAIX,oBACE0C,cAAA,CAAAC,aAAA,CAACqV,2BAAI;IAAC5F,SAAS,EAAC;kBAEd1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KAAUuK,UAAU,aAAVA,UAAU,wBAAAyC,kBAAA,GAAVzC,UAAU,CAAE0F,MAAM,CAAC,CAAC,CAAC,cAAAjD,kBAAA,uBAArBA,kBAAA,CAAuB1U,WAAW,EAAQ,CAAC,eAEpEhI,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAIyP,SAAS,EAAC;KAAQuK,UAAe,CAAC,eACtCja,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KAAepS,CAAC,CAAC,eAAe,CAAC,IAAI,iBAAuB,CACxE,CACF,CAAC,eAGN0C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAQyP,SAAS,EAAC,cAAc;IAACO,QAAQ,EAAEgP,aAAc;IAAC/O,OAAO,EAAEiP;KAChEF,aAAa,GAAG3hB,CAAC,CAAC,aAAa,CAAC,IAAI,gBAAgB,GAAGA,CAAC,CAAC,iBAAiB,CAAC,IAAI,iBAC1E,CACL,CACF,CAAC,eAGN0C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KACZkO,KAAK,CAACvf,GAAG,CAAC,CAACuhB,IAAI,EAAEC,GAAG,kBACnB7f,cAAA,CAAAC,aAAA,CAACuf,QAAQ;IAACvW,GAAG,EAAE4W,GAAI;IAACxE,KAAK,EAAE/d,CAAC,CAACsiB,IAAI,CAAClgB,KAAK,CAAE;IAAC6P,KAAK,EAAEqQ,IAAI,CAAChgB,KAAM;IAACwO,IAAI,EAAEwR,IAAI,CAACxR,IAAK;IAAC1P,SAAS,EAAEghB,aAAc;IAAC5B,IAAI,EAAE8B,IAAI,CAAC9B;GAAO,CAC3H,CACE,CAAC,eAGN9d,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBAEb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAASpS,CAAC,CAAC,QAAQ,CAAQ,CAAC,eAC5C0C,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAASuI,YAAmB,CACzC,CAAC,eAENjY,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAASpS,CAAC,CAAC,OAAO,CAAQ,CAAC,eAC3C0C,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAAS1N,KAAY,CAClC,CAAC,eAENhC,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA,2BACED,cAAA,CAAAC,aAAA,aAAK3C,CAAC,CAAC,oBAAoB,CAAC,IAAI,oBAAyB,CAAC,eAC1D0C,cAAA,CAAAC,aAAA,YACG3C,CAAC,CAAC,yBAAyB,CAAC,IAAI,iGAChC,CACA,CAAC,eACN0C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC,iBAAiB;IAACM,GAAG,EAAE3F;kBACpCrK,cAAA,CAAAC,aAAA;IACEyP,SAAS,EAAC,oBAAoB;IAC9BO,QAAQ,EAAEvG,mBAAoB;IAC9BwG,OAAO,EAAEA,MAAM;MACbpG,iBAAiB,CAAEqG,CAAC,IAAK,CAACA,CAAC,CAAC;MAC5B/F,mBAAmB,CAAC,KAAK,CAAC;;kBAG5BpK,cAAA,CAAAC,aAAA,CAACmQ,qCAAc,MAAE,CAAC,EACjB1G,mBAAmB,GAAGpM,CAAC,CAAC,aAAa,CAAC,IAAI,gBAAgB,GAAGA,CAAC,CAAC,gBAAgB,CAAC,IAAI,gBAC/E,CAAC,EAERuM,cAAc,iBACb7J,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KACZ,CACC;IAAEhQ,KAAK,EAAEpC,CAAC,CAAC,OAAO,CAAC,IAAI,OAAO;IAAE2L,GAAG,EAAE;GAAS,EAC9C;IAAEvJ,KAAK,EAAEpC,CAAC,CAAC,WAAW,CAAC,IAAI,WAAW;IAAE2L,GAAG,EAAE;GAAQ,EACrD;IAAEvJ,KAAK,EAAEpC,CAAC,CAAC,YAAY,CAAC,IAAI,YAAY;IAAE2L,GAAG,EAAE;GAAS,CACzD,CAAC5K,GAAG,CAAC4V,KAAA;IAAA,IAAC;MAAEvU,KAAK;MAAEuJ;KAAK,GAAAgL,KAAA;IAAA,oBACnBjU,cAAA,CAAAC,aAAA;MAAKgJ,GAAG,EAAEA,GAAI;MAACyG,SAAS,EAAC,WAAW;MAACQ,OAAO,EAAEA,MAAMnD,oBAAoB,CAAC9D,GAAG;OACzEvJ,KACE,CAAC;GACP,CAAC,eAEFM,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC,qBAAqB;IAACQ,OAAO,EAAEA,MAAM9F,mBAAmB,CAAE+F,CAAC,IAAK,CAACA,CAAC;KAC9E7S,CAAC,CAAC,aAAa,CAAC,IAAI,aAClB,CAAC,EAEL6M,gBAAgB,iBACfnK,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA,6BACED,cAAA,CAAAC,aAAA,eAAM,MAAU,CAAC,eACjBD,cAAA,CAAAC,aAAA;IAAOmO,IAAI,EAAC,MAAM;IAACmB,KAAK,EAAExF,UAAU,CAACE,IAAK;IAACqG,QAAQ,EAAG7F,CAAC,IAAKT,aAAa,CAAC;MAAE,GAAGD,UAAU;MAAEE,IAAI,EAAEQ,CAAC,CAACG,MAAM,CAAC2E;KAAO;GAAI,CAChH,CAAC,eACRvP,cAAA,CAAAC,aAAA,6BACED,cAAA,CAAAC,aAAA,eAAM,IAAQ,CAAC,eACfD,cAAA,CAAAC,aAAA;IAAOmO,IAAI,EAAC,MAAM;IAACmB,KAAK,EAAExF,UAAU,CAACG,EAAG;IAACoG,QAAQ,EAAG7F,CAAC,IAAKT,aAAa,CAAC;MAAE,GAAGD,UAAU;MAAEG,EAAE,EAAEO,CAAC,CAACG,MAAM,CAAC2E;KAAO;GAAI,CAC5G,CACJ,CAAC,eACNvP,cAAA,CAAAC,aAAA;IAAK4P,KAAK,EAAE;MAAEX,OAAO,EAAE,MAAM;MAAEqB,GAAG,EAAE,MAAM;MAAEC,SAAS,EAAE;;kBACrDxQ,cAAA,CAAAC,aAAA;IACEyP,SAAS,EAAC,mBAAmB;IAC7BQ,OAAO,EAAEA,MAAM;MACb9F,mBAAmB,CAAC,KAAK,CAAC;MAC1BJ,aAAa,CAAC;QAAEC,IAAI,EAAE,EAAE;QAAEC,EAAE,EAAE;OAAI,CAAC;;KAGpC5M,CAAC,CAAC,QAAQ,CAAC,IAAI,QACV,CAAC,eACT0C,cAAA,CAAAC,aAAA;IAAQyP,SAAS,EAAC,kBAAkB;IAACQ,OAAO,EAAEhD;KAC3C5P,CAAC,CAAC,OAAO,CAAC,IAAI,OACT,CACL,CACF,CAEJ,CAEJ,CACF,CACF,CAAC,eAGN0C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAASpS,CAAC,CAAC,gBAAgB,CAAC,IAAI,gBAAuB,CAAC,eACxE0C,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KACb8N,OAAO,CAAC3d,MAAM,GAAG,CAAC,gBACjBG,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC,gBAAgB;IAACG,KAAK,EAAE;MAAEW,SAAS,EAAE,KAAK;MAAEE,KAAK,EAAE,MAAM;MAAExB,OAAO,EAAE,MAAM;MAAE4Q,QAAQ,EAAE,MAAM;MAAEvP,GAAG,EAAE;;KAC/GiN,OAAO,CAACnf,GAAG,CAAEqf,IAAI,iBAChB1d,cAAA,CAAAC,aAAA;IAAMgJ,GAAG,EAAEyU,IAAK;IAAChO,SAAS,EAAC;KACxBpS,CAAC,CAACogB,IAAI,CAAC,IAAIA,IACR,CACP,CACE,CAAC,GAEN,KAEE,CACH,CACF,CACF,CAAC,eAEN1d,cAAA,CAAAC,aAAA,2BACED,cAAA,CAAAC,aAAA,CAACuV,4BAAK;IACJlY,CAAC,EAAEA,CAAE;IACLyiB,UAAU,EAAEziB,CAAC,CAAC,uBAAuB,CAAC,IAAI,uBAAwB;IAClE0iB,UAAU,EAAC,WAAW;IACtBC,iBAAiB,EAAE,IAAK;IACxBzhB,IAAI,EAAEqS,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEwO,gBAAiB;IACrCjM,OAAO,EAAEoL,iBAAkB;IAC3B9f,SAAS,EAAEoS,iBAAkB;IAC7BwB,YAAY,EAAEzB,YAAY,aAAZA,YAAY,wBAAA8L,qBAAA,GAAZ9L,YAAY,CAAEwO,gBAAgB,cAAA1C,qBAAA,uBAA9BA,qBAAA,CAAgC9c,MAAO;IACrDmS,WAAW,EAAEA,WAAY;IACzBC,aAAa,EAAEqM,QAAS;IACxB4B,oBAAoB,EAAE,IAAK;IAC3BpO,UAAU,EAAEA,MAAM;MAAA,IAAAqO,sBAAA;MAChB,IAAInO,WAAW,GAAGzE,IAAI,CAAC6S,IAAI,CAAC,CAAAvP,YAAY,aAAZA,YAAY,wBAAAsP,sBAAA,GAAZtP,YAAY,CAAEwO,gBAAgB,cAAAc,sBAAA,uBAA9BA,sBAAA,CAAgCtgB,MAAM,IAAGye,QAAQ,CAAC,GAAG,CAAC,EAAE;QAClFD,cAAc,CAAEnI,IAAI,IAAKA,IAAI,GAAG,CAAC,CAAC;;KAEpC;IACFnE,UAAU,EAAEA,MAAM;MAChB,IAAIC,WAAW,GAAG,CAAC,EAAE;QACnBqM,cAAc,CAAEnI,IAAI,IAAKA,IAAI,GAAG,CAAC,CAAC;;KAEpC;IACFmK,WAAW,EAAEA,MAAMhC,cAAc,CAAC,CAAC,CAAE;IACrCiC,UAAU,EAAEA;MAAA,IAAAC,sBAAA;MAAA,OAAMlC,cAAc,CAAC9Q,IAAI,CAACiT,GAAG,CAACjT,IAAI,CAAC6S,IAAI,CAAC,CAAAvP,YAAY,aAAZA,YAAY,wBAAA0P,sBAAA,GAAZ1P,YAAY,CAAEwO,gBAAgB,cAAAkB,sBAAA,uBAA9BA,sBAAA,CAAgC1gB,MAAM,IAAGye,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;KAAC;IAChHpM,gBAAgB,EAAGzH,CAAC,IAAK;MACvB8T,WAAW,CAAC7W,MAAM,CAAC+C,CAAC,CAACG,MAAM,CAAC2E,KAAK,CAAC,CAAC;MACnC8O,cAAc,CAAC,CAAC,CAAC;;GAEpB,CACE,CACD,CAAC;AAEX,CAAC;;ACpeD,MAAMoC,mBAAmB,GAAGjX,IAAA,IAYtB;EAAA,IAAAkX,oBAAA,EAAAC,qBAAA,EAAAvjB,qBAAA,EAAAC,sBAAA,EAAAohB,sBAAA,EAAAmC,qBAAA;EAAA,IAZuB;IAC3BzO,WAAW;IACXD,gBAAgB;IAChB2O,SAAS;IACT5hB,UAAU;IACV6hB,KAAK;IACLC,QAAQ;IACRC,aAAa;IACbC,eAAe;IACftjB,QAAQ;IACRujB,WAAW,GAAG,EAAE;IAChBC,UAAU,GAAG;GACd,GAAA3X,IAAA;EACC,MAAM;IAAElM;GAAG,GAAGC,2BAAc,EAAE;EAE9B,MAAM8J,WAAW,GAAIC,GAAG,IAAK;IAC3B,IAAI,CAACA,GAAG,EAAE,OAAO,EAAE;IACnB,OAAOE,MAAM,CAACF,GAAG,CAAC,CACfO,WAAW,EAAE,CACbC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAClBA,OAAO,CAAC,OAAO,EAAGC,CAAC,IAAKA,CAAC,CAACC,WAAW,EAAE,CAAC;GAC5C;EACD,MAAMuK,OAAO,GAAGC,yBAAU,EAAE;EAC5B,MAAM,CAACI,WAAW,EAAEC,cAAc,CAAC,GAAGjJ,cAAQ,CAAC,EAAE,CAAC;EAClD,MAAM;IAAEpL,IAAI,EAAEsU,UAAU;IAAEC;GAAW,GAAGvV,KAAK,CAACmB,KAAK,CAACC,IAAI,CAACoU,UAAU,CAAC,QAAQ,EAAErV,QAAQ,CAAC;EACvF,MAAMsV,YAAY,GAAIzS,GAAG,IAAK;IAC5BqS,cAAc,CAACrS,GAAG,CAAC;IACnBuS,SAAS,CAAC;MAAEvS;KAAK,CAAC;GACnB;EAED,MAAMzB,KAAK,GAAG,CAAA8hB,SAAS,aAATA,SAAS,wBAAAH,oBAAA,GAATG,SAAS,CAAEO,SAAS,cAAAV,oBAAA,uBAApBA,oBAAA,CAAsB3hB,KAAK,KAAI,EAAE;EAC/C,MAAMD,MAAM,GAAG,CAAA+hB,SAAS,aAATA,SAAS,wBAAAF,qBAAA,GAATE,SAAS,CAAEO,SAAS,cAAAT,qBAAA,uBAApBA,qBAAA,CAAsB7hB,MAAM,KAAI,CAAC;EAChD,MAAM6G,QAAQ,GAAG,EAAAvI,qBAAA,GAAAI,KAAK,CAACO,cAAc,CAACC,GAAG,CAAC,MAAM,CAAC,cAAAZ,qBAAA,wBAAAC,sBAAA,GAAhCD,qBAAA,CAAkCa,IAAI,cAAAZ,sBAAA,wBAAAohB,sBAAA,GAAtCphB,sBAAA,CAAwC+Q,IAAI,cAAAqQ,sBAAA,uBAA5CA,sBAAA,CAA8C5W,WAAW,EAAE,KAAI,SAAS;EAEzF7H,cAAK,CAACuK,SAAS,CAAC,MAAM;IACpB,IAAIuI,UAAU,EAAE;MACdP,OAAO,CAAC9S,IAAI,CAAC,aAAakG,QAAQ,gBAAgBiN,WAAW,EAAE,EAAE;QAAEO,WAAW,EAAEL,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEK,WAAW;QAAEL;OAAY,CAAC;;GAGzH,EAAE,CAACA,UAAU,CAAC,CAAC;EAEhB,MAAMuO,iBAAiB,GAAG,CACxB;IACE/N,MAAM,EAAEhW,CAAC,CAAC,qBAAqB,CAAC;IAChCiW,QAAQ,EAAE,mBAAmB;IAC7B+N,aAAa,EAAE,IAAI;IACnB9N,IAAI,EAAEnD,KAAA,IAAa;MAAA,IAAAoD,aAAA,EAAAC,cAAA;MAAA,IAAZ;QAAEC;OAAK,GAAAtD,KAAA;MACZ,MAAM7P,GAAG,GAAG,EAAAiT,aAAA,GAAAE,GAAG,CAACC,QAAQ,cAAAH,aAAA,uBAAZA,aAAA,CAAcjT,GAAG,OAAAkT,cAAA,GAAIC,GAAG,CAACC,QAAQ,cAAAF,cAAA,uBAAZA,cAAA,CAAcG,iBAAiB,KAAI,IAAI;MACxE,oBACE7T,cAAA,CAAAC,aAAA;QAAMyP,SAAS,EAAC,MAAM;QAACQ,OAAO,EAAEA,MAAM+C,YAAY,CAACzS,GAAG;SACnDA,GACG,CAAC;;GAGZ,EACD;IACE8S,MAAM,EAAEhW,CAAC,CAAC,mBAAmB,CAAC;IAC9BiW,QAAQ,EAAE,aAAa;IACvBC,IAAI,EAAEM,KAAA;MAAA,IAAAC,cAAA;MAAA,IAAC;QAAEJ;OAAK,GAAAG,KAAA;MAAA,oBAAK9T,cAAA,CAAAC,aAAA,eAAOoH,WAAW,EAAA0M,cAAA,GAACJ,GAAG,CAACC,QAAQ,cAAAG,cAAA,uBAAZA,cAAA,CAAcC,WAAW,CAAC,IAAI,IAAW,CAAC;;GACjF,EACD;IACEV,MAAM,EAAEhW,CAAC,CAAC,aAAa,CAAC;IACxBiW,QAAQ,EAAE,cAAc;IACxBC,IAAI,EAAES,KAAA,IAAa;MAAA,IAAAC,cAAA,EAAAC,cAAA;MAAA,IAAZ;QAAER;OAAK,GAAAM,KAAA;MACZ,MAAMrT,MAAM,GAAG,CAAC,EAAAsT,cAAA,GAAAP,GAAG,CAACC,QAAQ,cAAAM,cAAA,uBAAZA,cAAA,CAActT,MAAM,KAAI,SAAS,EAAEoH,WAAW,EAAE;MAChE,oBAAOhI,cAAA,CAAAC,aAAA;QAAMyP,SAAS,EAAE,mBAAmB9O,MAAM;SAAKyG,WAAW,CAAC,EAAA8M,cAAA,GAAAR,GAAG,CAACC,QAAQ,cAAAO,cAAA,uBAAZA,cAAA,CAAcvT,MAAM,KAAI,SAAS,CAAQ,CAAC;;GAE/G,EACD;IACE0S,MAAM,EAAEhW,CAAC,CAAC,cAAc,CAAC,IAAI,cAAc;IAC3CiW,QAAQ,EAAE,aAAa;IACvBC,IAAI,EAAEY,KAAA;MAAA,IAAC;QAAE7E;OAAO,GAAA6E,KAAA;MAAA,OAAM7E,KAAK,GAAG/R,KAAK,CAAC+jB,SAAS,CAACC,kBAAkB,CAACjS,KAAK,CAAC,GAAG,GAAG;;GAC9E,EACD;IACE+D,MAAM,EAAEhW,CAAC,CAAC,aAAa,CAAC,IAAI,aAAa;IACzCiW,QAAQ,EAAE,YAAY;IACtBC,IAAI,EAAEiB,KAAA;MAAA,IAAC;QAAElF;OAAO,GAAAkF,KAAA;MAAA,OAAMlF,KAAK,GAAG/R,KAAK,CAAC+jB,SAAS,CAACC,kBAAkB,CAACjS,KAAK,CAAC,GAAG,GAAG;;GAC9E,EACD;IACE+D,MAAM,EAAEhW,CAAC,CAAC,kBAAkB,CAAC;IAC7BiW,QAAQ,EAAE,YAAY;IACtBC,IAAI,EAAEiO,KAAA,IAAa;MAAA,IAAApN,cAAA,EAAAC,cAAA;MAAA,IAAZ;QAAEX;OAAK,GAAA8N,KAAA;MACZ,MAAMlN,GAAG,GAAG,EAAAF,cAAA,GAAAV,GAAG,CAACC,QAAQ,cAAAS,cAAA,uBAAZA,cAAA,CAAcxT,UAAU,OAAAyT,cAAA,GAAIX,GAAG,CAACC,QAAQ,cAAAU,cAAA,uBAAZA,cAAA,CAAcE,UAAU,KAAI,IAAI;MACxE,MAAM3T,UAAU,GAAG0T,GAAG,CAACvM,WAAW,EAAE;MACpC,oBAAOhI,cAAA,CAAAC,aAAA;QAAMyP,SAAS,EAAE,mBAAmB7O,UAAU;SAAKwG,WAAW,CAACkN,GAAG,CAAQ,CAAC;;GAErF,CACF;EAED,OAAO;IACLmN,WAAW,EAAE,KAAK;IAClBC,QAAQ,EAAE,KAAK;IACfC,gBAAgB,EAAE,IAAI;IACtBC,UAAU,EAAE,iBAAiB;IAC7B3P,gBAAgB,EAAEA,gBAAgB;IAClCF,WAAW,EAAEzE,IAAI,CAACuU,KAAK,CAAChjB,MAAM,GAAGC,KAAK,CAAC;IACvC+S,UAAU,EAAEA;MAAA,IAAAiQ,qBAAA;MAAA,OACVhB,QAAQ,CAAC;QACPiB,MAAM,EAAE,iBAAiB;QACzBxjB,IAAI,EAAE;UAAE,GAAGqiB,SAAS,CAACO,SAAS;UAAEtiB,MAAM,EAAEmjB,QAAQ,EAAAF,qBAAA,GAAClB,SAAS,CAACO,SAAS,cAAAW,qBAAA,uBAAnBA,qBAAA,CAAqBjjB,MAAM,CAAC,GAAGC;SAAO;QACvFiiB;OACD,CAAC;;IACJjP,UAAU,EAAEA;MAAA,IAAAmQ,qBAAA;MAAA,OACVnB,QAAQ,CAAC;QACPiB,MAAM,EAAE,iBAAiB;QACzBxjB,IAAI,EAAE;UAAE,GAAGqiB,SAAS,CAACO,SAAS;UAAEtiB,MAAM,EAAEmjB,QAAQ,EAAAC,qBAAA,GAACrB,SAAS,CAACO,SAAS,cAAAc,qBAAA,uBAAnBA,qBAAA,CAAqBpjB,MAAM,CAAC,GAAGC;SAAO;QACvFiiB;OACD,CAAC;;IACJ/O,aAAa,EAAElT,KAAK;IACpB8S,MAAM,EAAEoP,eAAe;IAEvB3O,YAAY,EAAErT,UAAU;IACxBmW,QAAQ,EAAEyL,SAAS,aAATA,SAAS,wBAAAD,qBAAA,GAATC,SAAS,CAAEsB,UAAU,cAAAvB,qBAAA,uBAArBA,qBAAA,CAAuBwB,OAAO;IACxC9B,UAAU,EAAEA,MACVS,QAAQ,CAAC;MACPiB,MAAM,EAAE,iBAAiB;MACzBxjB,IAAI,EAAE;QAAE,GAAGqiB,SAAS,CAACO,SAAS;QAAEtiB,MAAM,EAAEyO,IAAI,CAACiT,GAAG,CAAC,CAAC,EAAEjT,IAAI,CAACuU,KAAK,CAAC,CAAC7iB,UAAU,GAAG,CAAC,IAAIF,KAAK,CAAC,GAAGA,KAAK;OAAG;MACnGiiB;KACD,CAAC;IACJX,WAAW,EAAEA,MAAMU,QAAQ,CAAC;MAAEiB,MAAM,EAAE,iBAAiB;MAAExjB,IAAI,EAAE;QAAE,GAAGqiB,SAAS,CAACO,SAAS;QAAEtiB,MAAM,EAAE;OAAG;MAAEkiB;KAAe,CAAC;IAGtHxiB,IAAI,EAAEsiB,KAAK;IACX1N,OAAO,EAAEiO,iBAAiB;IAC1BH,WAAW,EAAE;MAAE,GAAGA;KAAa;IAC/BC,UAAU,EAAE;MAAE,GAAGA;;GAClB;AACH,CAAC;;ACjGD,IAAI,iBAAiB,GAAG,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC;AACjD;AACA,MAAM,YAAY,GAAG,CAAC,KAAK,KAAK,OAAO,KAAK,KAAK,QAAQ,CAAC;AAC1D,IAAI,QAAQ,GAAG,CAAC,KAAK,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC;AACnD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AACzB,IAAI,YAAY,CAAC,KAAK,CAAC;AACvB,IAAI,EAAE,KAAK,YAAY,IAAI,CAAC,CAAC;AAC7B;AACA,IAAI,KAAK,GAAG,CAAC,KAAK,KAAK,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3C;AACA,IAAI,OAAO,GAAG,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAC/C;AACA,IAAI,YAAY,GAAG,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK;AAC3C,KAAK,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;AAC1B,KAAK,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;AACxB,KAAK,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;AACvB,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;AACjB;AACA,SAAS,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;AAClC,IAAI,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC;AACnB,IAAI,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;AAC/D,IAAI,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;AACnC,IAAI,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,CAAC;AACjC,IAAI,OAAO,EAAE,KAAK,GAAG,MAAM,EAAE;AAC7B,QAAQ,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;AACpC,QAAQ,IAAI,QAAQ,GAAG,KAAK,CAAC;AAC7B,QAAQ,IAAI,KAAK,KAAK,SAAS,EAAE;AACjC,YAAY,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACzC,YAAY,QAAQ;AACpB,gBAAgB,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;AAC7D,sBAAsB,QAAQ;AAC9B,sBAAsB,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;AAClD,0BAA0B,EAAE;AAC5B,0BAA0B,EAAE,CAAC;AAC7B,SAAS;AACT,QAAQ,MAAM,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC;AAC/B,QAAQ,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AAC7B,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,CAAC;AACD,AAOA;AACA,IAAI,WAAW,GAAG,CAAC,GAAG,KAAK,GAAG,KAAK,SAAS,CAAC;AAC7C;AACA,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,EAAE,IAAI,EAAE,YAAY,KAAK;AAC5C,IAAI,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,GAAG,MAAM,iBAAiB,CAAC,MAAM,CAAC,GAAG,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACrI,IAAI,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,MAAM,KAAK,GAAG;AAChD,UAAU,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChC,cAAc,YAAY;AAC1B,cAAc,GAAG,CAAC,IAAI,CAAC;AACvB,UAAU,MAAM,CAAC;AACjB,CAAC,CAAC;AACF,AAwMA;AACA,IAAI,WAAW,GAAG,CAAC,KAAK,KAAK,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AAC9E,AAyGA;AACA,IAAI,UAAU,GAAG,CAAC,KAAK,KAAK,OAAO,KAAK,KAAK,UAAU,CAAC;AACxD,AAyKA;AACA,IAAI,cAAc,GAAG,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,GAAG,KAAK;AACvJ,IAAI,IAAI,OAAO,EAAE;AACjB,QAAQ,OAAO,KAAK,CAAC;AACrB,KAAK;AACL,SAAS,IAAI,CAAC,WAAW,IAAI,SAAS,EAAE;AACxC,QAAQ,OAAO,EAAE,SAAS,IAAI,WAAW,CAAC,CAAC;AAC3C,KAAK;AACL,SAAS,IAAI,WAAW,GAAG,kBAAkB,GAAG,QAAQ,EAAE;AAC1D,QAAQ,OAAO,CAAC,WAAW,CAAC;AAC5B,KAAK;AACL,SAAS,IAAI,WAAW,GAAG,oBAAoB,GAAG,UAAU,EAAE;AAC9D,QAAQ,OAAO,WAAW,CAAC;AAC3B,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,CAAC,CAAC;AACF,AAEA;AACA,MAAM,qBAAqB,GAAG,CAAC,IAAI,EAAE,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC7I,IAAI,kBAAkB,GAAG,CAAC,KAAK,EAAE,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,qBAAqB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;AAC7G,AAkxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE;AACtB,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;AACf,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;AACvF,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpB,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,OAAO,MAAM,CAAC,qBAAqB,KAAK,UAAU;AACvE,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAChF,YAAY,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1F,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClC,SAAS;AACT,IAAI,OAAO,CAAC,CAAC;AACb,CAAC;AACD;AACA,MAAM,WAAW,GAAGkB,mBAAa,CAAC,IAAI,CAAC,CAAC;AACxC,WAAW,CAAC,WAAW,GAAG,YAAY,CAAC;AACvC,MAAM,cAAc,GAAG,MAAMC,gBAAU,CAAC,WAAW,CAAC,CAAC;AACrD,AAgUA;AACA,IAAI,aAAa,GAAG,CAAC,KAAK,KAAK,WAAW,CAAC,KAAK,CAAC;AACjD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;AAC3B,KAAK,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AAC3C,MAAM,KAAK;AACX,MAAM,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AACrC,UAAU,KAAK,CAAC,MAAM,CAAC,OAAO;AAC9B,UAAU,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;AAC7B;AACA,SAAS,aAAa,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE;AACzE,IAAI,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;AACrC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;AAC/C,QAAQ,IAAI,CAAC,OAAO,IAAI,CAAC,OAAO,EAAE;AAClC,YAAY,MAAM,IAAI,KAAK,CAAC,qFAAqF,CAAC,CAAC;AACnH,SAAS;AACT,KAAK;AACL,IAAI,MAAM,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,EAAE,gBAAgB,EAAE,SAAS,EAAE,kBAAkB,EAAE,qBAAqB,GAAG,GAAG,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;AAC5U,IAAI,MAAM,eAAe,GAAG,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAClF,IAAI,MAAM,eAAe,GAAG,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,IAAI,eAAe;AAC3G,UAAU,GAAG,CAAC,qBAAqB,CAAC,OAAO,EAAE,IAAI,CAAC;AAClD,UAAU,WAAW,CAAC,YAAY,CAAC;AACnC,cAAc,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC;AACjD,cAAc,YAAY,CAAC;AAC3B,IAAI,MAAM,CAAC,KAAK,EAAE,kBAAkB,CAAC,GAAG1Y,cAAQ,CAAC,eAAe,EAAE,CAAC,CAAC;AACpE,IAAI,MAAM,QAAQ,GAAGU,YAAM,CAAC,KAAK,CAAC,CAAC;AACnC,IAAI,MAAM,GAAG,GAAGA,YAAM,CAAC;AACvB,QAAQ,KAAK,EAAE,MAAM,IAAI;AACzB,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,UAAU,GAAGA,YAAM,CAAC,OAAO;AACrC,SAAS,MAAM;AACf,YAAY,IAAI,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC/C,gBAAgB,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;AACpC,aAAa;AACb,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;AACvD,gBAAgB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACpD,oBAAoB,OAAO,CAAC,IAAI,CAAC,CAAC,iIAAiI,CAAC,CAAC,CAAC;AACtK,iBAAiB;AACjB,aAAa;AACb,SAAS,CAAC,CAAC,CAAC;AACZ,IAAI,MAAM,cAAc,GAAGiY,iBAAW,CAAC,CAAC,WAAW,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,WAAW;AACnG,QAAQ,kBAAkB;AAC1B,QAAQ,oBAAoB;AAC5B,QAAQ,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE;AAChE,QAAQ,kBAAkB;AAC1B,QAAQ,oBAAoB;AAC5B,QAAQ,WAAW;AACnB,QAAQ,OAAO;AACf,QAAQ,IAAI;AACZ,QAAQ,IAAI;AACZ,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,UAAU,GAAGA,iBAAW,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK;AAChD,QAAQ,MAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AAC1C,QAAQ,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACjC,QAAQ,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;AAChC,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK,EAAE,EAAE,CAAC,CAAC;AACX,IAAI,MAAM,aAAa,GAAGA,iBAAW,CAAC,CAAC,iBAAiB,KAAK;AAC7D,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;AACnD,YAAY,IAAI,CAAC,IAAI,EAAE;AACvB,gBAAgB,OAAO,OAAO,CAAC,IAAI,CAAC,6EAA6E,CAAC,CAAC;AACnH,aAAa;AACb,SAAS;AACT,QAAQ,IAAI,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACrC,YAAY,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;AACjG,SAAS;AACT,aAAa;AACb,YAAY,QAAQ,CAAC,MAAM,CAAC,gBAAgB,CAAC;AAC7C,gBAAgB,IAAI;AACpB,gBAAgB,KAAK,EAAE,UAAU,CAAC,OAAO;AACzC,aAAa,EAAE;AACf,gBAAgB,KAAK,EAAE;AACvB,oBAAoB,GAAG,CAAC,IAAI,EAAE;AAC9B,wBAAwB,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACjD,wBAAwB,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;AAChD,qBAAqB;AACrB,oBAAoB,GAAG,GAAG;AAC1B,wBAAwB,OAAO,QAAQ,CAAC,OAAO,CAAC;AAChD,qBAAqB;AACrB,iBAAiB;AACjB,aAAa,CAAC,EAAE,KAAK,CAAC,CAAC;AACvB,YAAY,iBAAiB,GAAG,WAAW,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;AACjF,SAAS;AACT,QAAQ,iBAAiB;AACzB,YAAY,eAAe;AAC3B,YAAY,kBAAkB,CAAC,eAAe,EAAE,CAAC,CAAC;AAClD,KAAK,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC;AAChC,IAAIhY,eAAS,CAAC,MAAM,MAAM,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;AACpD,IAAIA,eAAS,CAAC,MAAM;AACpB,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;AACnD,YAAY,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE;AACpC,gBAAgB,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,iKAAiK,CAAC,CAAC,CAAC;AAC5M,aAAa;AACb,YAAY,IAAI,CAAC,eAAe,IAAI,WAAW,CAAC,YAAY,CAAC,EAAE;AAC/D,gBAAgB,OAAO,CAAC,IAAI,CAAC,qHAAqH,CAAC,CAAC;AACpJ,aAAa;AACb,SAAS;AACT,QAAQ,aAAa,EAAE,CAAC;AACxB,KAAK,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;AACxB,IAAIA,eAAS,CAAC,MAAM;AACpB,QAAQ,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC;AACxD,KAAK,CAAC,CAAC;AACP,IAAI,MAAM,MAAM,GAAGgY,iBAAW,CAAC,MAAM;AACrC,QAAQ,IAAI,gBAAgB,CAAC,OAAO,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE;AACrE,YAAY,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACrC,YAAY,eAAe,CAAC;AAC5B,gBAAgB,OAAO;AACvB,aAAa,CAAC,CAAC;AACf,SAAS;AACT,QAAQ,cAAc,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;AAC9C,KAAK,EAAE,CAAC,IAAI,EAAE,eAAe,EAAE,cAAc,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAC3E,IAAI,MAAM,QAAQ,GAAGA,iBAAW,CAAC,CAAC,GAAG,KAAK,KAAK,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE;AACjF,QAAQ,cAAc,EAAE,cAAc,EAAE;AACxC,QAAQ,WAAW,EAAE,IAAI;AACzB,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC;AAC1C,IAAI,OAAO;AACX,QAAQ,KAAK,EAAE;AACf,YAAY,QAAQ;AACpB,YAAY,MAAM;AAClB,YAAY,IAAI;AAChB,YAAY,KAAK;AACjB,YAAY,GAAG;AACf,SAAS;AACT,QAAQ,IAAI,EAAE,MAAM,CAAC,gBAAgB,CAAC;AACtC,YAAY,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC;AACxC,SAAS,EAAE;AACX,YAAY,OAAO,EAAE;AACrB,gBAAgB,GAAG,GAAG;AACtB,oBAAoB,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AAC9D,iBAAiB;AACjB,aAAa;AACb,YAAY,SAAS,EAAE;AACvB,gBAAgB,GAAG,GAAG;AACtB,oBAAoB,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;AAC1D,iBAAiB;AACjB,aAAa;AACb,SAAS,CAAC;AACV,KAAK,CAAC;AACN,CAAC;AACD,AA6CA;AACA,MAAM,UAAU,GAAG,CAAC,KAAK,KAAK;AAC9B,IAAI,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,IAAI,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;AAC/J,IAAI,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;AACjD,IAAI,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC;AACzE,IAAI,OAAO,EAAE;AACb,UAAUC,oBAAc,CAAC,EAAE,CAAC;AAC5B,cAAcC,kBAAY,CAAC,EAAE,EAAE,cAAc,CAAC;AAC9C,cAAcxiB,mBAAa,CAAC,EAAE,EAAE,cAAc,CAAC;AAC/C,UAAU,MAAM;AAChB,cAAc,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC;AACjC,cAAc,IAAI,CAAC;AACnB,CAAC,CAAC;;AC/3DF,MAAMyiB,0BAA0B,GAAGlZ,IAAA,IAAwD;EAAA,IAAvD;IAAEmZ,eAAe;IAAEC,iBAAiB;IAAEC;GAAY,GAAArZ,IAAA;EACpF,MAAM;IAAElM;GAAG,GAAGC,2BAAc,EAAE;EAC9B,MAAM;IAAEulB;GAAQ,GAAGH,eAAe;EAElC,IAAIE,UAAU,KAAK,QAAQ,EAAE;IAC3B,oBACE7iB,cAAA,CAAAC,aAAA,CAACD,cAAK,CAACyf,QAAQ,qBAEbzf,cAAA,CAAAC,aAAA;MAAMyP,SAAS,EAAC;oBACd1P,cAAA,CAAAC,aAAA,CAAC8iB,4BAAK;MAACrT,SAAS,EAAC;OACdpS,CAAC,CAAC,sBAAsB,CAAC,IAAI,eAAe,eAC7C0C,cAAA,CAAAC,aAAA,CAAC+iB,oCAAa;MAACZ,OAAO,EAAE9kB,CAAC,CAAC,4BAA4B;KAAI,CACrD,CAAC,eAER0C,cAAA,CAAAC,aAAA,CAACgjB,UAAU;MACThY,IAAI,EAAC,cAAc;MACnBiY,OAAO,EAAEN,iBAAkB;MAC3BO,YAAY,EAAC,EAAE;MACfC,KAAK,EAAE;QACLC,OAAO,EAAE;UACP9T,KAAK,EAAE,cAAc;UACrB6S,OAAO,EAAE9kB,CAAC,CAAC,2BAA2B;;OAExC;MACFgmB,MAAM,EAAEjT,KAAA;QAAA,IAAC;UAAEC,QAAQ;UAAEf;SAAO,GAAAc,KAAA;QAAA,oBAAKrQ,cAAA,CAAAC,aAAA,CAACqX,gCAAS;UAAC/H,KAAK,EAAEA,KAAK,IAAI,EAAG;UAACe,QAAQ,EAAG7F,CAAC,IAAK6F,QAAQ,CAAC7F,CAAC,CAACG,MAAM,CAAC2E,KAAK;SAAI,CAAC;;KAC9G,CAAC,EAED,CAAAuT,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAE7K,YAAY,kBAAIjY,cAAA,CAAAC,aAAA,CAACsjB,qCAAc,QAAET,MAAM,CAAC7K,YAAY,CAACmK,OAAwB,CAClF,CACQ,CAAC;;EAIrB,oBACEpiB,cAAA,CAAAC,aAAA,CAACD,cAAK,CAACyf,QAAQ,qBAEbzf,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;kBACd1P,cAAA,CAAAC,aAAA,CAAC8iB,4BAAK;IAACrT,SAAS,EAAC;KACdpS,CAAC,CAAC,eAAe,CAAC,IAAI,UAAU,eACjC0C,cAAA,CAAAC,aAAA,CAAC+iB,oCAAa;IAACZ,OAAO,EAAE9kB,CAAC,CAAC,uBAAuB;GAAI,CAChD,CAAC,eAER0C,cAAA,CAAAC,aAAA,CAACgjB,UAAU;IACThY,IAAI,EAAC,SAAS;IACdiY,OAAO,EAAEN,iBAAkB;IAC3BO,YAAY,EAAC,EAAE;IACfC,KAAK,EAAE;MACLC,OAAO,EAAE;QACP9T,KAAK,EAAE,aAAa;QACpB6S,OAAO,EAAE9kB,CAAC,CAAC,iBAAiB;;KAE9B;IACFgmB,MAAM,EAAExP,KAAA;MAAA,IAAC;QAAExD,QAAQ;QAAEf;OAAO,GAAAuE,KAAA;MAAA,oBAAK9T,cAAA,CAAAC,aAAA,CAACqX,gCAAS;QAAC/H,KAAK,EAAEA,KAAK,IAAI,EAAG;QAACe,QAAQ,EAAG7F,CAAC,IAAK6F,QAAQ,CAAC7F,CAAC,CAACG,MAAM,CAAC2E,KAAK;OAAI,CAAC;;GAC9G,CAAC,EAED,CAAAuT,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAE5P,OAAO,kBAAIlT,cAAA,CAAAC,aAAA,CAACsjB,qCAAc,QAAET,MAAM,CAAC5P,OAAO,CAACkP,OAAwB,CACxE,CACQ,CAAC;AAErB,CAAC;;AC1DD,MAAMoB,uBAAuB,GAAGha,IAAA,IAA+C;EAAA,IAAApM,qBAAA,EAAAC,sBAAA,EAAAohB,sBAAA;EAAA,IAA9C;IAAEqC,KAAK;IAAEnjB,QAAQ;IAAE8lB,YAAY,GAAG;GAAO,GAAAja,IAAA;EACxE,MAAM;IAAElM;GAAG,GAAGC,2BAAc,EAAE;EAC9B,MAAMgV,OAAO,GAAGC,yBAAU,EAAE;EAC5B,MAAM,CAACI,WAAW,EAAEC,cAAc,CAAC,GAAGjJ,cAAQ,CAAC,EAAE,CAAC;EAClD,MAAM;IAAEpL,IAAI,EAAEsU,UAAU;IAAEC;GAAW,GAAGvV,KAAK,CAACmB,KAAK,CAACC,IAAI,CAACoU,UAAU,CAAC,QAAQ,EAAErV,QAAQ,CAAC;EACvF,MAAMgI,QAAQ,GAAG,EAAAvI,qBAAA,GAAAI,KAAK,CAACO,cAAc,CAACC,GAAG,CAAC,MAAM,CAAC,cAAAZ,qBAAA,wBAAAC,sBAAA,GAAhCD,qBAAA,CAAkCa,IAAI,cAAAZ,sBAAA,wBAAAohB,sBAAA,GAAtCphB,sBAAA,CAAwC+Q,IAAI,cAAAqQ,sBAAA,uBAA5CA,sBAAA,CAA8C5W,WAAW,EAAE,KAAI,SAAS;EAEzF7H,cAAK,CAACuK,SAAS,CAAC,MAAM;IACpB,IAAI,CAACkZ,YAAY,IAAI3Q,UAAU,EAAE;MAC/BP,OAAO,CAAC9S,IAAI,CAAC,aAAakG,QAAQ,gBAAgBiN,WAAW,EAAE,EAAE;QAAEO,WAAW,EAAEL,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEK,WAAW;QAAEL;OAAY,CAAC;;GAGzH,EAAE,CAACA,UAAU,EAAE2Q,YAAY,CAAC,CAAC;EAE9B,MAAMxQ,YAAY,GAAIzS,GAAG,IAAK;IAC5BqS,cAAc,CAACrS,GAAG,CAAC;IACnBuS,SAAS,CAAC;MAAEvS;KAAK,CAAC;GACnB;EAED,MAAMkjB,sBAAsB,GAAItK,EAAE,IAAK;IACrC7G,OAAO,CAAC9S,IAAI,CAAC,aAAakG,QAAQ,iCAAiCyT,EAAE,EAAE,CAAC;GACzE;EAED,MAAMuK,uBAAuB,GAAG7C,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEziB,GAAG,CAAEmK,IAAI,IAAK;IACnD,IAAIib,YAAY,EAAE;MAAA,IAAAG,WAAA;MAChB,MAAMxK,EAAE,GAAG5Q,IAAI,CAAC4Q,EAAE;MAClB,MAAMxY,MAAM,GAAG4H,IAAI,CAAC5H,MAAM,IAAI,SAAS;MAEvC,OAAO;QACL,CAACtD,CAAC,CAAC,eAAe,CAAC,gBACjB0C,cAAA,CAAAC,aAAA;UAAMyP,SAAS,EAAC,MAAM;UAACQ,OAAO,EAAEA,MAAMwT,sBAAsB,CAACtK,EAAE;WAC5D5Q,IAAI,CAACwR,YAAY,IAAIxR,IAAI,CAACyC,IAAI,IAAI,IAC/B,CACP;QACD,CAAC3N,CAAC,CAAC,eAAe,CAAC,GAAGkL,IAAI,CAAC3G,QAAQ,MAAA+hB,WAAA,GAAIpb,IAAI,CAAC0T,KAAK,cAAA0H,WAAA,uBAAVA,WAAA,CAAY3L,YAAY,KAAI,IAAI;QACvE,CAAC3a,CAAC,CAAC,QAAQ,CAAC,gBAAG0C,cAAA,CAAAC,aAAA;UAAMyP,SAAS,EAAE,mBAAmB9O,MAAM;WAAKtD,CAAC,CAACsD,MAAM,CAAQ,CAAC;QAC/E,CAACtD,CAAC,CAAC,cAAc,CAAC,GAAGkL,IAAI,CAACqb,WAAW,IAAI;OAC1C;KACF,MAAM;MACL,MAAMrjB,GAAG,GAAGgI,IAAI,CAAChI,GAAG,IAAIgI,IAAI,CAACqL,iBAAiB,IAAI,IAAI;MACtD,MAAMjT,MAAM,GAAG,CAAC4H,IAAI,CAAC5H,MAAM,IAAI,SAAS,EAAEoH,WAAW,EAAE;MACvD,MAAMnH,UAAU,GAAG,CAAC2H,IAAI,CAAC3H,UAAU,IAAI2H,IAAI,CAACgM,UAAU,IAAI,IAAI,EAAExM,WAAW,EAAE;MAE7E,OAAO;QACL,CAAC1K,CAAC,CAAC,qBAAqB,CAAC,gBACvB0C,cAAA,CAAAC,aAAA;UAAMyP,SAAS,EAAC,MAAM;UAACQ,OAAO,EAAEA,MAAM+C,YAAY,CAACzS,GAAG;WACnDA,GACG,CACP;QACD,CAAClD,CAAC,CAAC,mBAAmB,CAAC,GAAGkL,IAAI,CAACwL,WAAW,IAAI,IAAI;QAClD,CAAC1W,CAAC,CAAC,aAAa,CAAC,gBAAG0C,cAAA,CAAAC,aAAA;UAAMyP,SAAS,EAAE,mBAAmB9O,MAAM;WAAKtD,CAAC,CAAC,GAAGsD,MAAM,EAAE,CAAQ,CAAC;QACzF,CAACtD,CAAC,CAAC,cAAc,CAAC,GAAGkL,IAAI,CAAClG,WAAW,GAAG9E,KAAK,CAAC+jB,SAAS,CAACC,kBAAkB,CAAChZ,IAAI,CAAClG,WAAW,CAAC,GAAG,GAAG;QAClG,CAAChF,CAAC,CAAC,aAAa,CAAC,GAAGkL,IAAI,CAACjG,UAAU,GAAG/E,KAAK,CAAC+jB,SAAS,CAACC,kBAAkB,CAAChZ,IAAI,CAACjG,UAAU,CAAC,GAAG,GAAG;QAC/F,CAACjF,CAAC,CAAC,kBAAkB,CAAC,gBAAG0C,cAAA,CAAAC,aAAA;UAAMyP,SAAS,EAAE,mBAAmB7O,UAAU;WAAKvD,CAAC,CAAC,GAAGuD,UAAU,EAAE,CAAQ;OACtG;;GAEJ,CAAC;EAEF,MAAMijB,oBAAoB,GAAGA,MAAM;IACjC,MAAMC,gBAAgB,GAAG,CACvB;MACExlB,IAAI,EAAE,MAAM;MACZylB,OAAO,EAAE;KACV,EACD;MACEzlB,IAAI,EAAE,KAAK;MACXylB,OAAO,EAAE;KACV,CACF;IACD,MAAM;MAAEd,OAAO,EAAEe;KAAiB,GAAGC,cAAc,EAAE;IACrD,oBACElkB,cAAA,CAAAC,aAAA,CAACkkB,kCAAW,qBACVnkB,cAAA,CAAAC,aAAA,CAACgjB,UAAU;MACThY,IAAI,EAAC,WAAW;MAChBiY,OAAO,EAAEe,eAAgB;MACzBX,MAAM,EAAEjT,KAAA;QAAA,IAAC;UAAEC,QAAQ;UAAEf;SAAO,GAAAc,KAAA;QAAA,oBAC1BrQ,cAAA,CAAAC,aAAA,CAACmkB,mCAAY;UACXC,QAAQ,EAAG5Z,CAAC,IAAK;YACf6F,QAAQ,CAAC7F,CAAC,CAAClM,IAAI,CAAC;WAChB;UACF+lB,cAAc,EAAEP,gBAAgB,CAACpb,MAAM,CAAE+Q,MAAM,IAAKA,MAAM,CAACnb,IAAI,KAAKgR,KAAK,CAAC,CAAC,CAAC,CAAE;UAC9EgV,UAAU,EAAC,SAAS;UACpBtZ,IAAI,EAAC,WAAW;UAChB6D,OAAO,EAAEiV;SACV,CAAC;;KAEL,CACU,CAAC;GAEjB;EAED,OAAO;IACLvlB,IAAI,EAAEmlB,uBAAuB;IAC7Ba,kBAAkB,EAAE,IAAI;IACxBC,kBAAkB,EAAEA,MAAM,EAAE;IAC5BC,kBAAkB,EAAE,KAAK;IACzBrM,mBAAmB,EAAEoL,YAAY,GAAG,IAAI,GAAG,eAAe;IAC1DK;GACD;AACH,CAAC;;AChGD,MAAMtE,QAAQ,GAAGhW,IAAA;EAAA,IAAC;IAAE6R,KAAK;IAAE9L,KAAK;IAAEnB,IAAI;IAAE1P,SAAS;IAAEof;GAAM,GAAAtU,IAAA;EAAA,oBACvDxJ,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAE,aAAatB,IAAI;KAC9B1P,SAAS,gBACRsB,cAAA,CAAAC,aAAA,CAACD,cAAK,CAACyf,QAAQ,qBACbzf,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;GAAyC,CAAC,eACzD1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;GAA2C,CAC5C,CAAC,gBAEjB1P,cAAA,CAAAC,aAAA,CAACD,cAAK,CAACyf,QAAQ,qBACbzf,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KAAc2L,KAAW,CAAC,eACzCrb,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KAAcH,KAAW,CAAC,EACxCuO,IAAI,iBAAI9d,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KAAaoO,IAAU,CACjC,CAEf,CAAC;AAAA,CACP;AAED,MAAM6G,KAAK,GAAGtU,KAAA,IAAqB;EAAA,IAAA0R,qBAAA,EAAAG,qBAAA,EAAA0C,sBAAA,EAAAC,sBAAA;EAAA,IAApB;IAAE1S;GAAa,GAAA9B,KAAA;EAC5B,MAAM1S,QAAQ,GAAGH,KAAK,CAACI,UAAU,CAACC,kBAAkB,EAAE;EACtD,MAAMuB,QAAQ,GAAG0lB,0BAAW,EAAE;EAE9B,MAAMC,aAAa,GAAG;IACpBC,UAAU,EAAE,EAAE;IACd7C,UAAU,EAAE,EAAE;IACdf,SAAS,EAAE;MACTriB,KAAK,EAAE,EAAE;MACTD,MAAM,EAAE,CAAC;MACTmmB,MAAM,EAAE,aAAa;MACrBC,SAAS,EAAE;;GAEd;EAED,MAAM,CAACrE,SAAS,EAAEE,QAAQ,CAAC,GAAGoE,gBAAU,CAACC,WAAW,EAAEL,aAAa,CAAC;EAEpE,MAAM9H,OAAO,GAAG5J,aAAO,CAAC,MAAM;IAC5B,MAAM8O,UAAU,GAAG,CAAAtB,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEsB,UAAU,KAAI,EAAE;IAC9C,OAAO;MACL,GAAGA,UAAU;MACb,IAAIA,UAAU,CAACjP,OAAO,IAAI;QAAE1S,GAAG,EAAE2hB,UAAU,CAACjP;OAAS;KACtD;GACF,EAAE,CAAC2N,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEsB,UAAU,CAAC,CAAC;EAE3B,MAAMkD,WAAW,GAAGhS,aAAO,CAAC,MAAM;IAAA,IAAAqN,oBAAA,EAAAC,qBAAA;IAChC,OAAO;MACLhjB,QAAQ;MACRmB,MAAM,EAAE,CAAA+hB,SAAS,aAATA,SAAS,wBAAAH,oBAAA,GAATG,SAAS,CAAEO,SAAS,cAAAV,oBAAA,uBAApBA,oBAAA,CAAsB5hB,MAAM,KAAI,CAAC;MACzCC,KAAK,EAAE,CAAA8hB,SAAS,aAATA,SAAS,wBAAAF,qBAAA,GAATE,SAAS,CAAEO,SAAS,cAAAT,qBAAA,uBAApBA,qBAAA,CAAsB5hB,KAAK,KAAI;KACvC;GACF,EAAE,CAACpB,QAAQ,EAAEkjB,SAAS,aAATA,SAAS,wBAAAkB,qBAAA,GAATlB,SAAS,CAAEO,SAAS,cAAAW,qBAAA,uBAApBA,qBAAA,CAAsBjjB,MAAM,EAAE+hB,SAAS,aAATA,SAAS,wBAAAqB,qBAAA,GAATrB,SAAS,CAAEO,SAAS,cAAAc,qBAAA,uBAApBA,qBAAA,CAAsBnjB,KAAK,CAAC,CAAC;EAEzE,MAAM;IAAEL,SAAS,EAAE4mB,aAAa;IAAE9mB,IAAI,EAAEC,QAAQ,GAAG;GAAI,GAAGjB,KAAK,CAACmB,KAAK,CAACC,IAAI,CAACC,sBAAsB,CAACoe,OAAO,EAAEoI,WAAW,EAAE;IACtHrmB,OAAO,EAAE,CAAC,CAACrB,QAAQ;IACnB4f,gBAAgB,EAAE;GACnB,CAAC;EAuCF,MAAM;IAAE7e,SAAS,EAAEoS,iBAAiB;IAAEtS,IAAI,EAAEqS;GAAc,GAAGrT,KAAK,CAACmB,KAAK,CAACC,IAAI,CAAC0e,yBAAyB,CACrG;IAAE3f,QAAQ;IAAE4nB,kBAAkB,EAAE;GAAM,EACtC;IACEvmB,OAAO,EAAE,CAAC,CAACrB,QAAQ;IACnB4f,gBAAgB,EAAE;GAEtB,CAAC;EAED,MAAMiI,aAAa,GAAGnS,aAAO,CAC3B;IAAA,IAAAuN,qBAAA,EAAA6E,sBAAA;IAAA,OAAO;MACLjlB,GAAG,EAAE,CAAAqgB,SAAS,aAATA,SAAS,wBAAAD,qBAAA,GAATC,SAAS,CAAEsB,UAAU,cAAAvB,qBAAA,uBAArBA,qBAAA,CAAuB1N,OAAO,KAAI,EAAE;MACzCjI,IAAI,EAAE,CAAA4V,SAAS,aAATA,SAAS,wBAAA4E,sBAAA,GAAT5E,SAAS,CAAEsB,UAAU,cAAAsD,sBAAA,uBAArBA,sBAAA,CAAuBlP,KAAK,KAAI;KACvC;GAAC,EACF,CAACsK,SAAS,aAATA,SAAS,wBAAA+D,sBAAA,GAAT/D,SAAS,CAAEsB,UAAU,cAAAyC,sBAAA,uBAArBA,sBAAA,CAAuB1R,OAAO,EAAE2N,SAAS,aAATA,SAAS,wBAAAgE,sBAAA,GAAThE,SAAS,CAAEsB,UAAU,cAAA0C,sBAAA,uBAArBA,sBAAA,CAAuBtO,KAAK,CAC/D,CAAC;EAED,MAAMmP,cAAc,GAAG,CAAC,EAAEF,aAAa,CAAChlB,GAAG,IAAIglB,aAAa,CAACva,IAAI,CAAC;EAElE,MAAM;IAAEvM,SAAS,EAAEinB,eAAe;IAAEnnB,IAAI,EAAEonB;GAAY,GAAGpoB,KAAK,CAACmB,KAAK,CAACC,IAAI,CAACinB,mBAAmB,CAC3F;IACEloB,QAAQ;IACRyd,OAAO,EAAEoK;GACV,EACD;IACExmB,OAAO,EAAE,CAAC,CAACrB,QAAQ,IAAI,CAAC,CAAC6nB,aAAa,CAAChlB,GAAG;IAC1C+c,gBAAgB,EAAE;GAEtB,CAAC;EAED,MAAMuI,UAAU,GAAGzS,aAAO,CAAC,MAAM;IAC/B,IAAIqS,cAAc,EAAE;MAClB,IAAI,CAACE,UAAU,EAAE,OAAO,EAAE;MAC1B,OAAO,CAACA,UAAU,CAAC;;IAGrB,OAAO,CAAAnnB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAE2J,YAAY,KAAI,EAAE;GACpC,EAAE,CAACsd,cAAc,EAAEE,UAAU,EAAEnnB,QAAQ,CAAC,CAAC;EAE1C,MAAMsnB,YAAY,GAAG1S,aAAO,CAAC,MAAM;IACjC,OAAO,CAACyS,UAAU,IAAI,EAAE,EAAEznB,GAAG,CAAEmK,IAAI,IAAK;MAEtC,MAAMwd,YAAY,GAAG,CAAC,CAACxd,IAAI,CAACyd,iBAAiB;MAE7C,IAAID,YAAY,EAAE;QAAA,IAAAE,kBAAA,EAAAC,mBAAA,EAAAC,qBAAA,EAAAC,mBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA;QAChB,OAAO;UACLC,aAAa,EAAE,EAAAR,kBAAA,GAAA1d,IAAI,CAACme,YAAY,cAAAT,kBAAA,uBAAjBA,kBAAA,CAAmB1lB,GAAG,KAAI,EAAE;UAC3ComB,YAAY,EAAE,EAAAT,mBAAA,GAAA3d,IAAI,CAACme,YAAY,cAAAR,mBAAA,uBAAjBA,mBAAA,CAAmB3lB,GAAG,KAAI,EAAE;UAC1C0b,KAAK,EAAE,EAAAkK,qBAAA,GAAA5d,IAAI,CAACyd,iBAAiB,cAAAG,qBAAA,uBAAtBA,qBAAA,CAAwBS,YAAY,KAAI,EAAE;UACjDhT,iBAAiB,EAAE,EAAAwS,mBAAA,GAAA7d,IAAI,CAACme,YAAY,cAAAN,mBAAA,uBAAjBA,mBAAA,CAAmB7lB,GAAG,KAAI,EAAE;UAC/CwT,WAAW,EAAE,EAAAsS,sBAAA,GAAA9d,IAAI,CAACyd,iBAAiB,cAAAK,sBAAA,uBAAtBA,sBAAA,CAAwBO,YAAY,KAAI,EAAE;UACvDjmB,MAAM,EAAE,EAAA2lB,sBAAA,GAAA/d,IAAI,CAACyd,iBAAiB,cAAAM,sBAAA,uBAAtBA,sBAAA,CAAwBO,UAAU,KAAI,EAAE;UAChDjmB,UAAU,EAAE,CACV,EAAA2lB,sBAAA,GAAAhe,IAAI,CAACyd,iBAAiB,cAAAO,sBAAA,uBAAtBA,sBAAA,CAAwB3lB,UAAU,OAAA4lB,sBAAA,GAClCje,IAAI,CAACyd,iBAAiB,cAAAQ,sBAAA,uBAAtBA,sBAAA,CAAwBjS,UAAU,KAClChM,IAAI,CAAC3H,UAAU,IACf2H,IAAI,CAACgM,UAAU,IACf,IAAI,EACJxM,WAAW,EAAE;UACf+e,GAAG,EAAE;SACN;;MAIH,MAAMre,QAAQ,GAAG,CAACF,IAAI,CAAC/H,SAAS,EAAE+H,IAAI,CAAC9H,UAAU,EAAE8H,IAAI,CAAC7H,QAAQ,CAAC,CAACgI,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;MAC3F,OAAO;QACL,GAAGL,IAAI;QACPke,aAAa,EAAEle,IAAI,CAAChI,GAAG,IAAIgI,IAAI,CAACqL,iBAAiB,IAAI,EAAE;QACvD+S,YAAY,EAAEpe,IAAI,CAAChI,GAAG,IAAI,EAAE;QAC5B0b,KAAK,EAAExT,QAAQ,IAAIF,IAAI,CAACqe,YAAY,IAAIre,IAAI,CAACwL,WAAW,IAAI,EAAE;QAC9DH,iBAAiB,EAAErL,IAAI,CAAChI,GAAG,IAAIgI,IAAI,CAACqL,iBAAiB,IAAI,EAAE;QAC3DG,WAAW,EAAEtL,QAAQ,IAAIF,IAAI,CAACqe,YAAY,IAAIre,IAAI,CAACwL,WAAW,IAAI,EAAE;QACpEpT,MAAM,EAAE4H,IAAI,CAAC5H,MAAM,IAAI,EAAE;QACzBC,UAAU,EAAE,CAAC2H,IAAI,CAAC3H,UAAU,IAAI2H,IAAI,CAACgM,UAAU,IAAI,IAAI,EAAExM,WAAW,EAAE;QACtE+e,GAAG,EAAEve,IAAI,CAACue,GAAG,IAAI;OAClB;KACF,CAAC;GACH,EAAE,CAACjB,UAAU,CAAC,CAAC;EAEhB,MAAM;IAAExoB;GAAG,GAAGC,2BAAc,EAAE;EAE9B,MAAMypB,eAAe,GAAG3T,aAAO,CAAC,MAAM;IACpC,IAAI,CAACxC,YAAY,EAAE,OAAO;MAAEgO,SAAS,EAAE,CAAC;MAAEC,aAAa,EAAE,CAAC;MAAEC,WAAW,EAAE,CAAC;MAAEC,eAAe,EAAE;KAAG;IAEhG,MAAMH,SAAS,GAAG,CAAAhO,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEgO,SAAS,MAAIhO,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEM,gBAAgB,KAAI,CAAC;IAChF,MAAM2N,aAAa,GAAG,CAAAjO,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEiO,aAAa,KAAI,CAAC;IACtD,MAAMC,WAAW,GAAG,CAAAlO,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEkO,WAAW,MAAKF,SAAS,IAAIC,aAAa,GAAGD,SAAS,GAAGC,aAAa,GAAG,CAAC,CAAC;IAC7G,MAAME,eAAe,GACnB,CAAAnO,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAES,sBAAsB,MAAIT,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEmO,eAAe,MAAKH,SAAS,GAAG,CAAC,GAAG,CAAEC,aAAa,GAAGD,SAAS,GAAI,GAAG,EAAEoI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAE/I,OAAO;MACLpI,SAAS;MACTC,aAAa;MACbC,WAAW;MACXC;KACD;GACF,EAAE,CAACnO,YAAY,CAAC,CAAC;EAElB,MAAM+M,KAAK,GAAGvK,aAAO,CACnB,MAAM,CACJ;IACE3T,KAAK,EAAEpC,CAAC,CAAC,yBAAyB,CAAC;IACnCsC,KAAK,EAAE,CAAAonB,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAEnI,SAAS,KAAI,CAAC;IACtCvP,KAAK,EAAE,SAAS;IAChBlB,IAAI,EAAE,OAAO;IACb0P,IAAI,eAAE9d,cAAA,CAAAC,aAAA,CAACinB,UAAO,MAAE;GACjB,EACD;IACExnB,KAAK,EAAEpC,CAAC,CAAC,sBAAsB,CAAC;IAChCsC,KAAK,EAAE,CAAAonB,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAElI,aAAa,KAAI,CAAC;IAC1CxP,KAAK,EAAE,SAAS;IAChBlB,IAAI,EAAE,OAAO;IACb0P,IAAI,eAAE9d,cAAA,CAAAC,aAAA,CAACknB,gBAAa,MAAE;GACvB,EACD;IACEznB,KAAK,EAAEpC,CAAC,CAAC,sBAAsB,CAAC;IAChCsC,KAAK,EAAE,CAAAonB,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAEjI,WAAW,KAAI,CAAC;IACxCzP,KAAK,EAAE,SAAS;IAChBlB,IAAI,EAAE,SAAS;IACf0P,IAAI,eAAE9d,cAAA,CAAAC,aAAA,CAACke,UAAO,MAAE;GACjB,EACD;IACEze,KAAK,EAAEpC,CAAC,CAAC,kBAAkB,CAAC;IAC5BsC,KAAK,EAAE,GAAG,CAAAonB,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAEhI,eAAe,KAAI,CAAC,GAAG;IAClD1P,KAAK,EAAE,SAAS;IAChBlB,IAAI,EAAE,UAAU;IAChB0P,IAAI,eAAE9d,cAAA,CAAAC,aAAA,CAACme,cAAW,MAAE;GACrB,CACF,EACD,CAAC4I,eAAe,EAAE1pB,CAAC,CACrB,CAAC;EACD,MAAMgV,YAAY,GAAG,CAAA7T,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEQ,UAAU,KAAI,CAAC;EAE9C,MAAM+hB,aAAa,GAAG5hB,QAAQ,CAACC,QAAQ,CAACC,QAAQ,CAAC,YAAY,CAAC;EAE9D,MAAM8nB,gBAAgB,GAAG7E,iBAAW,CAClCzO,KAAA;IAAA,IAAC;MAAEuT,WAAW;MAAE1E,eAAe;MAAEC;KAAmB,GAAA9O,KAAA;IAAA,oBAClD9T,cAAA,CAAAC,aAAA,CAACyiB,0BAA0B;MAAO2E,WAAW;MAAE1E,eAAe;MAAEC,iBAAiB;MAAIC,UAAU,EAAC,KAAK;MAACnT,SAAS,EAAC;KAAU,CAAC;GAC5H,EACD,EACF,CAAC;EAED,MAAM4X,2BAA2B,GAAG;IAClCrC,MAAM,EAAE,aAAa;IACrBlmB,KAAK,EAAEI,MAAM,CAAC3B,KAAK,CAACC,KAAK,CAAC8pB,OAAO,CAACC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE;IACtD1oB,MAAM,EAAE,CAAC;IACTomB,SAAS,EAAE;GACZ;EAED,MAAMuC,kBAAkB,GAAIjpB,IAAI,IAAK;IACnCA,IAAI,CAACkpB,cAAc,CAAC,EAAE,CAAC,KAAWlpB,IAAI,aAAJA,IAAI,qBAAX,OAAOA,IAAI,CAAG,EAAE,CAAC;IAC5CuiB,QAAQ,CAAC;MAAEiB,MAAM,EAAE,iBAAiB;MAAExjB,IAAI,EAAE;QAAE,GAAG8oB;OAA6B;MAAEtG;KAAe,CAAC;IAChGD,QAAQ,CAAC;MAAEiB,MAAM,EAAE,kBAAkB;MAAExjB,IAAI;MAAEwiB;KAAe,CAAC;GAC9D;EAED,MAAM2G,uBAAuB,GAAG;IAC9BzU,OAAO,EAAE,EAAE;IACXW,iBAAiB,EAAE,EAAE;IACrB+T,UAAU,EAAE;GACb;EAED,MAAMC,iBAAiB,GAAIC,kBAAkB,IAAK;IAChDA,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC;IACnCA,kBAAkB,CAAC,mBAAmB,EAAE,IAAI,CAAC;IAC7CA,kBAAkB,CAAC,YAAY,EAAE,IAAI,CAAC;IACtC/G,QAAQ,CAAC;MAAEiB,MAAM,EAAE,kBAAkB;MAAExjB,IAAI,EAAEmpB;KAAyB,CAAC;GACxE;EAED,MAAMI,kBAAkB,GAAG;IACzBX,gBAAgB;IAChBK,kBAAkB;IAClBE,uBAAuB,EAAE9G,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEsB,UAAU;IAC9C6F,4BAA4B,EAAEL,uBAAuB;IACrDE,iBAAiB;IACjBnY,SAAS,EAAE;GACZ;EAED,SAAS0V,WAAWA,CAAC1jB,KAAK,EAAEumB,OAAO,EAAE;IAEnC,QAAQA,OAAO,CAACjG,MAAM;MACpB,KAAK,kBAAkB;QACrBxkB,KAAK,CAACO,cAAc,CAACmqB,GAAG,CAAC,YAAY,EAAE;UAAE,GAAGxmB,KAAK;UAAEygB,UAAU,EAAE8F,OAAO,CAACzpB;SAAM,CAAC;QAC9E,OAAO;UAAE,GAAGkD,KAAK;UAAEygB,UAAU,EAAE8F,OAAO,CAACzpB;SAAM;MAE/C,KAAK,kBAAkB;QACrBhB,KAAK,CAACO,cAAc,CAACmqB,GAAG,CAAC,YAAY,EAAE;UAAE,GAAGxmB,KAAK;UAAEsjB,UAAU,EAAEiD,OAAO,CAACzpB;SAAM,CAAC;QAC9E,OAAO;UAAE,GAAGkD,KAAK;UAAEsjB,UAAU,EAAEiD,OAAO,CAACzpB;SAAM;MAE/C,KAAK,iBAAiB;QACpBhB,KAAK,CAACO,cAAc,CAACmqB,GAAG,CAAC,YAAY,EAAE;UAAE,GAAGxmB,KAAK;UAAE0f,SAAS,EAAE6G,OAAO,CAACzpB;SAAM,CAAC;QAC7E,OAAO;UAAE,GAAGkD,KAAK;UAAE0f,SAAS,EAAE6G,OAAO,CAACzpB;SAAM;MAE9C;QACE,OAAOkD,KAAK;;;EAIlB,MAAMwQ,gBAAgB,GAAIzH,CAAC,IAAK;IAC9B,MAAM0d,QAAQ,GAAGzgB,MAAM,CAAC+C,CAAC,CAACG,MAAM,CAAC2E,KAAK,CAAC;IAEvCwR,QAAQ,CAAC;MACPiB,MAAM,EAAE,iBAAiB;MACzBxjB,IAAI,EAAE;QACJ,GAAGqiB,SAAS,CAACO,SAAS;QACtBriB,KAAK,EAAEopB,QAAQ;QACfrpB,MAAM,EAAE;OACT;MACDkiB;KACD,CAAC;GACH;EAED,MAAMC,eAAe,GAAIxW,CAAC,IAAK;IAC7B,IAAIA,CAAC,CAAC5K,MAAM,GAAG,CAAC,EAAE;MAChB,MAAM,CAAC;QAAEuZ,EAAE;QAAEgP;OAAM,CAAC,GAAG3d,CAAC;MACxB,MAAMya,SAAS,GAAGkD,IAAI,GAAG,MAAM,GAAG,KAAK;MACvC,MAAMnD,MAAM,GAAG7L,EAAE;MAEjB,IAAI,EAAEyH,SAAS,CAACO,SAAS,CAAC6D,MAAM,KAAKA,MAAM,IAAIpE,SAAS,CAACO,SAAS,CAAC8D,SAAS,KAAKA,SAAS,CAAC,EAAE;QAC3FnE,QAAQ,CAAC;UACPiB,MAAM,EAAE,iBAAiB;UACzBxjB,IAAI,EAAE;YACJ,GAAGqiB,SAAS,CAACO,SAAS;YACtB6D,MAAM,EAAE7L,EAAE;YACV8L,SAAS,EAAEkD,IAAI,GAAG,MAAM,GAAG;WAC5B;UACDpH;SACD,CAAC;;;GAGP;EAED,MAAMqH,kBAAkB,GAAG5H,mBAAmB,CAAC;IAC7C,GAAG;MACDtO,WAAW;MACXD,gBAAgB;MAChB2O,SAAS;MACT5hB,UAAU,EAAEqT,YAAY;MACxBwO,KAAK,EAAEiF,YAAY;MACnBhF,QAAQ;MACRE,eAAe;MACftjB,QAAQ;MACRqjB,aAAa;MACbE,WAAW,EAAE;QAAEoH,SAAS,EAAE,QAAQ;QAAEC,SAAS,EAAE;OAAU;MACzDpH,UAAU,EAAE;QAAEzQ,KAAK,EAAE;;;GAExB,CAAC;EAEF,MAAM8X,qBAAqB,GAAIhqB,IAAI,IAAK;IACtC,MAAM;MAAE0mB;KAAW,GAAG1mB,IAAI;IAC1BuiB,QAAQ,CAAC;MAAEiB,MAAM,EAAE,iBAAiB;MAAExjB,IAAI,EAAE;QAAE,GAAGqiB,SAAS,CAACO,SAAS;QAAE8D;;KAAa,CAAC;GACrF;EAED,MAAMuD,eAAe,GAAIC,gBAAgB,IAAK;IAC5CA,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC;IACrC3H,QAAQ,CAAC;MAAEiB,MAAM,EAAE,iBAAiB;MAAExjB,IAAI,EAAE8oB;KAA6B,CAAC;GAC3E;EAED,MAAMqB,sBAAsB,GAAG;IAAEH,qBAAqB;IAAEI,qBAAqB,EAAE/H,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEO,SAAS;IAAEqH;GAAiB;EACtH,MAAMI,wBAAwB,GAAGrF,uBAAuB,CAAC;IAAE1C,KAAK,EAAEiF,YAAY;IAAEpoB;GAAU,CAAC;EAE3F,MAAMmrB,cAAc,GAAGxD,aAAa,IAAIK,eAAe;EAEvD,oBACE3lB,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBAEb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC,oBAAoB;IAACG,KAAK,EAAE;MAAE0Y,SAAS,EAAE,SAAS;MAAEQ,YAAY,EAAE;;kBAC/E/oB,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KACZkO,KAAK,CAACvf,GAAG,CAAC,CAACuhB,IAAI,EAAEC,GAAG,kBACnB7f,cAAA,CAAAC,aAAA,CAACuf,QAAQ;IAACvW,GAAG,EAAE4W,GAAI;IAACxE,KAAK,EAAE/d,CAAC,CAACsiB,IAAI,CAAClgB,KAAK,CAAE;IAAC6P,KAAK,EAAEqQ,IAAI,CAAChgB,KAAM;IAACwO,IAAI,EAAEwR,IAAI,CAACxR,IAAK;IAAC1P,SAAS,EAAEoS,iBAAkB;IAACgN,IAAI,EAAE8B,IAAI,CAAC9B;GAAO,CAC/H,CACE,CACF,CAAC,eAEN9d,cAAA,CAAAC,aAAA,CAAC+oB,oCAAa,EAAAC,QAAA;IAEVH;KAEGf,kBAAkB,EAElBY,sBAAsB;IACzBN,kBAAkB;IAClBQ,wBAAwB;IACxBhI,SAAS;IACTpX,SAAS,EAAEhL,QAAQ;IACnByqB,UAAU,EAAE,IAAI;IAChBC,kBAAkB,EAAE;IAEvB,CACE,CAAC;AAEV,CAAC;;ACjXD,MAAMC,YAAY,GAAG5f,IAAA,IAAuB;EAAA,IAAtB;IAAE6f,MAAM;IAAE3nB;GAAO,GAAA8H,IAAA;EACrC,MAAM+I,OAAO,GAAGC,yBAAU,EAAE;EAC5B,SAAS8W,OAAOA,GAAG;IACjB/W,OAAO,CAAC9S,IAAI,CAAC4pB,MAAM,EAAE;MAAE,GAAG3nB,KAAK;MAAE6nB,SAAS,EAAE;KAAM,CAAC;;EAErD,oBACEvpB,cAAA,CAAAC,aAAA,CAACupB,iCAAU;IAAC9pB,KAAK,eAAEM,cAAA,CAAAC,aAAA,CAACwpB,+BAAQ;MAAC5Z,KAAK,EAAE;QAAEa,KAAK,EAAE,MAAM;QAAEC,MAAM,EAAE,MAAM;QAAE+F,IAAI,EAAE;;KAAc,CAAE;IAAC7G,KAAK,EAAE;MAAE6Z,MAAM,EAAE,CAAC;MAAEnU,OAAO,EAAE;KAAI;IAACrF,OAAO,EAAEoZ;GAAU,CAAC;AAEtJ,CAAC;AAED,MAAMK,UAAU,GAAIpa,KAAK,IAAMA,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK4L,SAAS,IAAI5L,KAAK,KAAK,EAAE,GAAGA,KAAK,GAAG,KAAM;AAErG,MAAMqa,WAAW,GAAGA,CAACra,KAAK,EAAEjS,CAAC,KAAK;EAChC,IAAIiS,KAAK,KAAK,IAAI,IAAIA,KAAK,KAAK,MAAM,IAAI/H,MAAM,CAAC+H,KAAK,CAAC,CAAC1H,WAAW,EAAE,KAAK,KAAK,EAAE,OAAOvK,CAAC,CAAC,iBAAiB,CAAC;EAC5G,IAAIiS,KAAK,KAAK,KAAK,IAAIA,KAAK,KAAK,OAAO,IAAI/H,MAAM,CAAC+H,KAAK,CAAC,CAAC1H,WAAW,EAAE,KAAK,IAAI,EAAE,OAAOvK,CAAC,CAAC,gBAAgB,CAAC;EAC5G,IAAIiS,KAAK,KAAK,MAAM,EAAE,OAAOjS,CAAC,CAAC,iBAAiB,CAAC;EACjD,IAAIiS,KAAK,KAAK,OAAO,EAAE,OAAOjS,CAAC,CAAC,gBAAgB,CAAC;AACnD,CAAC;AAKD,MAAMusB,iBAAiB,GAAGA,CAACjE,UAAU,EAAEkE,SAAS,KAAK;EACnD,MAAMC,OAAO,GAAGnE,UAAU,IAAI9c,MAAM,CAACC,IAAI,CAAC6c,UAAU,CAAC,CAAC/lB,MAAM,GAAG,CAAC,GAAG+lB,UAAU,GAAG,CAAAkE,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEhX,UAAU,KAAI,EAAE;EAG3G,MAAMkX,aAAa,GAAG,CAAAD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEE,qBAAqB,MAAIF,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEG,iBAAiB,KAAIH,OAAO;EAC7F,MAAMI,eAAe,GAAG,CAAChsB,KAAK,CAACC,OAAO,CAAC4rB,aAAa,CAAC,GAAGA,aAAa,CAAC,CAAC,CAAC,GAAGA,aAAa,KAAK,EAAE;EAE/F,OAAO;IACLI,OAAO,EAAE,CAAAD,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAEC,OAAO,KAAID,eAAe;IACpDE,OAAO,EAAE,CAAAF,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAEE,OAAO,KAAI;GACtC;AACH,CAAC;AAED,MAAMC,aAAa,GAAGja,KAAA,IAA2E;EAAA,IAA1E;IAAEgL,KAAK;IAAEkP,MAAM;IAAEH,OAAO;IAAEC,OAAO;IAAE/sB,CAAC;IAAE+rB,MAAM;IAAE3nB,KAAK;IAAE8oB;GAAgB,GAAAna,KAAA;EAC1F,oBACErQ,cAAA,CAAAC,aAAA;IACEyP,SAAS,EAAC,wBAAwB;IAClCG,KAAK,EAAE;MAAEkZ,YAAY,EAAE,MAAM;MAAE0B,UAAU,EAAE,MAAM;MAAE1a,YAAY,EAAE,MAAM;MAAE2a,MAAM,EAAE,mBAAmB;MAAEC,QAAQ,EAAE;;kBAEhH3qB,cAAA,CAAAC,aAAA;IACE4P,KAAK,EAAE;MACL0F,OAAO,EAAE,WAAW;MACpBkV,UAAU,EAAE,SAAS;MACrBG,YAAY,EAAE,mBAAmB;MACjC1b,OAAO,EAAE,MAAM;MACf2b,cAAc,EAAE,eAAe;MAC/BC,UAAU,EAAE;;kBAGd9qB,cAAA,CAAAC,aAAA,CAAC8qB,oCAAa;IAAClb,KAAK,EAAE;MAAE6Z,MAAM,EAAE,CAAC;MAAEsB,QAAQ,EAAE,MAAM;MAAE1b,KAAK,EAAE,SAAS;MAAEkK,UAAU,EAAE;;KAAU6B,KAAqB,CAAC,EAClHgO,MAAM,IAAI,CAACmB,cAAc,iBAAIxqB,cAAA,CAAAC,aAAA,CAACmpB,YAAY;IAACC,MAAM,EAAEA,MAAO;IAAC3nB,KAAK,EAAEA;GAAQ,CACxE,CAAC,eAEN1B,cAAA,CAAAC,aAAA;IAAK4P,KAAK,EAAE;MAAE0F,OAAO,EAAE;;kBACrBvV,cAAA,CAAAC,aAAA;IAAO4P,KAAK,EAAE;MAAEa,KAAK,EAAE,MAAM;MAAEua,cAAc,EAAE,UAAU;MAAEC,WAAW,EAAE;;kBACtElrB,cAAA,CAAAC,aAAA,6BACED,cAAA,CAAAC,aAAA,0BACED,cAAA,CAAAC,aAAA;IACE4P,KAAK,EAAE;MACL0F,OAAO,EAAE,QAAQ;MACjBkD,SAAS,EAAE,MAAM;MACjBnJ,KAAK,EAAE,SAAS;MAChB0b,QAAQ,EAAE,MAAM;MAChBxR,UAAU,EAAE,KAAK;MACjB2R,aAAa,EAAE,WAAW;MAC1Bza,KAAK,EAAE;;KAGRpT,CAAC,CAAC,iBAAiB,CAClB,CAAC,eACL0C,cAAA,CAAAC,aAAA;IACE4P,KAAK,EAAE;MACL0F,OAAO,EAAE,QAAQ;MACjBkD,SAAS,EAAE,MAAM;MACjBnJ,KAAK,EAAE,SAAS;MAChB0b,QAAQ,EAAE,MAAM;MAChBxR,UAAU,EAAE,KAAK;MACjB2R,aAAa,EAAE,WAAW;MAC1Bza,KAAK,EAAE;;KAGRpT,CAAC,CAAC,2BAA2B,CAC5B,CAAC,eACL0C,cAAA,CAAAC,aAAA;IACE4P,KAAK,EAAE;MACL0F,OAAO,EAAE,QAAQ;MACjBkD,SAAS,EAAE,MAAM;MACjBnJ,KAAK,EAAE,SAAS;MAChB0b,QAAQ,EAAE,MAAM;MAChBxR,UAAU,EAAE,KAAK;MACjB2R,aAAa,EAAE,WAAW;MAC1Bza,KAAK,EAAE;;KAGRpT,CAAC,CAAC,uBAAuB,CACxB,CACF,CACC,CAAC,eACR0C,cAAA,CAAAC,aAAA,gBACGsqB,MAAM,CAAClsB,GAAG,CAAC,CAAC+sB,KAAK,EAAEvL,GAAG,KAAK;IAC1B,MAAMwL,MAAM,GAAGjB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAGgB,KAAK,CAACniB,GAAG,CAAC;IACnC,MAAMqiB,MAAM,GAAGjB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAGe,KAAK,CAACniB,GAAG,CAAC;IACnC,MAAMsiB,YAAY,GAAIC,CAAC,IAAMA,CAAC,KAAK,IAAI,IAAIA,CAAC,KAAKrQ,SAAS,IAAIqQ,CAAC,KAAK,EAAE,GAAG,EAAE,GAAGhkB,MAAM,CAACgkB,CAAC,CAAE;IACxF,MAAMC,SAAS,GAAGpB,OAAO,IAAIiB,MAAM,KAAKnQ,SAAS,IAAIoQ,YAAY,CAACF,MAAM,CAAC,KAAKE,YAAY,CAACD,MAAM,CAAC;IAElG,oBACEtrB,cAAA,CAAAC,aAAA;MAAIgJ,GAAG,EAAE4W,GAAI;MAAChQ,KAAK,EAAE;QAAE6b,SAAS,EAAE;;oBAChC1rB,cAAA,CAAAC,aAAA;MAAI4P,KAAK,EAAE;QAAE0F,OAAO,EAAE,QAAQ;QAAEyV,QAAQ,EAAE,MAAM;QAAE1b,KAAK,EAAE,SAAS;QAAEkK,UAAU,EAAE;;OAAU4R,KAAK,CAACO,aAAa,GAAGP,KAAK,CAAC1rB,KAAK,GAAGpC,CAAC,CAAC8tB,KAAK,CAAC1rB,KAAK,CAAM,CAAC,eAClJM,cAAA,CAAAC,aAAA;MAAI4P,KAAK,EAAE;QAAE0F,OAAO,EAAE,QAAQ;QAAEyV,QAAQ,EAAE,MAAM;QAAE1b,KAAK,EAAE;;OACtD8b,KAAK,CAACQ,MAAM,GAAGhC,WAAW,CAAC0B,MAAM,EAAEhuB,CAAC,CAAC,GAAGqsB,UAAU,CAAC2B,MAAM,CACxD,CAAC,eACLtrB,cAAA,CAAAC,aAAA;MACE4P,KAAK,EAAE;QAAE0F,OAAO,EAAE,QAAQ;QAAEyV,QAAQ,EAAE,MAAM;QAAE1b,KAAK,EAAEmc,SAAS,GAAG,SAAS,GAAG,SAAS;QAAEjS,UAAU,EAAEiS,SAAS,GAAG,KAAK,GAAG;;oBAExHzrB,cAAA,CAAAC,aAAA;MAAK4P,KAAK,EAAE;QAAEX,OAAO,EAAE,MAAM;QAAE4b,UAAU,EAAE,QAAQ;QAAEva,GAAG,EAAE;;OACvD6a,KAAK,CAACQ,MAAM,GAAGhC,WAAW,CAACyB,MAAM,EAAE/tB,CAAC,CAAC,GAAGqsB,UAAU,CAAC0B,MAAM,CAAC,EAC1DI,SAAS,iBACRzrB,cAAA,CAAAC,aAAA;MACE4P,KAAK,EAAE;QACL4a,UAAU,EAAE,SAAS;QACrBnb,KAAK,EAAE,SAAS;QAChBiG,OAAO,EAAE,SAAS;QAClBxF,YAAY,EAAE,MAAM;QACpBib,QAAQ,EAAE,MAAM;QAChBxR,UAAU,EAAE;;OAGblc,CAAC,CAAC,cAAc,CACb,CAEL,CACH,CACF,CAAC;GAER,CACI,CACF,CACJ,CACF,CAAC;AAEV,CAAC;AAED,MAAMuuB,MAAM,GAAGA,MAAM;EAAA,IAAAzuB,qBAAA,EAAAC,sBAAA,EAAAohB,sBAAA,EAAAqN,AAAAC,mBAAA,EAAAC,oBAAA,EAAAC,oBAAA,EAAAC,oBAAA,EAAAC,oBAAA,EAAAC,oBAAA,EAAAC,oBAAA,EAAAC,oBAAA,EAAAC,oBAAA,EAAAC,oBAAA,EAAAC,oBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,oBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,iBAAA,EAAAC,qBAAA,EAAAC,kBAAA,EAAAC,kBAAA,EAAAC,kBAAA,EAAAC,kBAAA,EAAAC,qBAAA,EAAAC,kBAAA,EAAAC,qBAAA,EAAAC,kBAAA,EAAAC,kBAAA,EAAAC,qBAAA;EACnB,MAAM;IAAE/wB;GAAG,GAAGC,2BAAc,EAAE;EAC9B,MAAMgV,OAAO,GAAGC,yBAAU,EAAE;EAC5B,MAAMpT,QAAQ,GAAG0lB,0BAAW,EAAE;EAC9B,IAAI;IAAEtkB,GAAG;IAAE8tB;GAAe,GAAG1R,wBAAS,EAAE;EAExC,MAAM,CAAC2R,KAAK,EAAEC,QAAQ,CAAC,GAAG5kB,cAAQ,CAAC,KAAK,CAAC;EACzC,MAAM,CAAC6kB,YAAY,EAAEC,eAAe,CAAC,GAAG9kB,cAAQ,CAAC,KAAK,CAAC;EACvD,MAAM,CAAC+kB,WAAW,EAAEC,cAAc,CAAC,GAAGhlB,cAAQ,CAAC,KAAK,CAAC;EACrD,MAAM,CAACilB,UAAU,EAAEC,aAAa,CAAC,GAAGllB,cAAQ,CAAC,EAAE,CAAC;EAChD,MAAM,CAACmlB,WAAW,EAAEC,cAAc,CAAC,GAAGplB,cAAQ,CAAC,KAAK,CAAC;EACrD,MAAM,CAACqlB,SAAS,EAAEC,YAAY,CAAC,GAAGtlB,cAAQ,CAAC,KAAK,CAAC;EACjD,MAAM,CAACulB,SAAS,EAAEC,YAAY,CAAC,GAAGxlB,cAAQ,CAAC;IAAEsC,KAAK,EAAE,KAAK;IAAExM,KAAK,EAAE;GAAI,CAAC;EAEvE,MAAMoP,OAAO,GAAG,CACd;IAAEkT,MAAM,EAAE1kB,CAAC,CAAC,SAAS;GAAG,EACxB;IAAE0kB,MAAM,EAAE1kB,CAAC,CAAC,QAAQ;GAAG,CACxB;EAED,MAAMwsB,SAAS,GAAG1qB,QAAQ,CAACsC,KAAK,IAAI,EAAE;EACtC,MAAM;IAAE2tB,KAAK,GAAG;GAAI,GAAGvF,SAAS;EAChC,MAAMwF,SAAS,GAAG9uB,GAAG,IAAI8tB,aAAa;EAEtC,MAAM;IAAEnb,WAAW,GAAG,EAAE;IAAEoc,cAAc,EAAEC,aAAa,GAAG,EAAE;IAAEC,eAAe,EAAEC,cAAc,GAAG,EAAE;IAAEC,YAAY,EAAEC,WAAW,GAAG;GAAI,GAAGP,KAAK;EAE5I,MAAM1xB,QAAQ,GAAGH,KAAK,CAACI,UAAU,CAACC,kBAAkB,EAAE;EACtD,MAAMgyB,gBAAgB,GAAGryB,KAAK,CAACmB,KAAK,CAACC,IAAI,CAACkxB,eAAe,CAACnyB,QAAQ,CAAC;EACnE,MAAMoyB,cAAc,GAAGvyB,KAAK,CAACmB,KAAK,CAACC,IAAI,CAACoxB,aAAa,CAACryB,QAAQ,CAAC;EAE/D,MAAM;IAAEa,IAAI,EAAEonB,UAAU;IAAElnB,SAAS,EAAEinB;GAAiB,GAAGnoB,KAAK,CAACmB,KAAK,CAACC,IAAI,CAACqxB,mBAAmB,CAAC;IAAEzvB,GAAG,EAAE8uB,SAAS;IAAEY,SAAS,EAAE;GAAU,EAAEvyB,QAAQ,EAAE;IAC/IqB,OAAO,EAAE,CAAC,CAACswB;GACZ,CAAC;EAEF,MAAMa,SAAS,GAAG,EAAA/yB,qBAAA,GAAAI,KAAK,CAACO,cAAc,CAACC,GAAG,CAAC,MAAM,CAAC,cAAAZ,qBAAA,wBAAAC,sBAAA,GAAhCD,qBAAA,CAAkCa,IAAI,cAAAZ,sBAAA,wBAAAohB,sBAAA,GAAtCphB,sBAAA,CAAwCa,KAAK,cAAAugB,sBAAA,uBAA7CA,sBAAA,CAA+CpgB,GAAG,CAAEC,GAAG,IAAKA,GAAG,CAACC,IAAI,CAAC,KAAI,EAAE;EAC7F,MAAM6xB,KAAK,GAAGD,SAAS,CAAC7wB,QAAQ,CAAC,UAAU,CAAC,IAAI6wB,SAAS,CAAC7wB,QAAQ,CAAC,KAAK,CAAC;EAEzE,MAAM+wB,8BAA8B,GAAGF,SAAS,CAAC7wB,QAAQ,CAAC,eAAe,CAAC,IAAI6wB,SAAS,CAAC7wB,QAAQ,CAAC,aAAa,CAAC;EAM/G,MAAMgxB,YAAY,GAAGlxB,QAAQ,CAACC,QAAQ,CAACC,QAAQ,CAAC,UAAU,CAAC;EAC3D,MAAMkrB,cAAc,GAAI6F,8BAA8B,IAAI,CAACD,KAAK,IAAKE,YAAY;EAGjF,MAAM;IAAElG,OAAO,EAAEmG,UAAU;IAAElG,OAAO,EAAEmG;GAAY,GAAG3G,iBAAiB,CAACjE,UAAU,EAAEkE,SAAS,CAAC;EAG7F,MAAM2G,WAAW,GAAGF,UAAU,GAAG;IAC/B,IAAIA,UAAU,IAAI,EAAE,CAAC;IACrB,IAAI,CAAAA,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEtK,iBAAiB,KAAI,EAAE,CAAC;IACxC,IAAI,CAAAsK,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEhB,cAAc,KAAI,EAAE,CAAC;IACrC,IAAI,CAAAgB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAE5J,YAAY,KAAI,EAAE,CAAC;IACnC,IAAI,CAAA4J,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEZ,YAAY,KAAI,EAAE;GACnC,GAAG,IAAI;EACR,MAAMe,WAAW,GAAGF,UAAU,GAAG;IAC/B,IAAIA,UAAU,IAAI,EAAE,CAAC;IACrB,IAAI,CAAAA,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEvK,iBAAiB,KAAI,EAAE,CAAC;IACxC,IAAI,CAAAuK,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEjB,cAAc,KAAI,EAAE,CAAC;IACrC,IAAI,CAAAiB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAE7J,YAAY,KAAI,EAAE,CAAC;IACnC,IAAI,CAAA6J,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEb,YAAY,KAAI,EAAE;GACnC,GAAG,IAAI;EAER,MAAMgB,uBAAuB,GAAInyB,IAAI,IAAK;IACxC,IAAI,CAACA,IAAI,EAAE,OAAO,IAAI;IACtB,MAAMoyB,OAAO,GAAG,CAAApyB,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEynB,iBAAiB,KAAIznB,IAAI,IAAI,EAAE;IACrD,MAAMqyB,OAAO,GAAG,CAAAryB,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE+wB,cAAc,KAAI/wB,IAAI,IAAI,EAAE;IAClD,MAAMsyB,OAAO,GAAG,CAAAtyB,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEmoB,YAAY,KAAInoB,IAAI,IAAI,EAAE;IAChD,MAAMuyB,QAAQ,GAAG,CAAAvyB,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEmxB,YAAY,KAAInxB,IAAI,IAAI,EAAE;IAEjD,OAAO;MACLwyB,UAAU,EAAE;QACVnK,YAAY,EACV,CAAA+J,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE/J,YAAY,MAAK+J,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEnwB,SAAS,GAAG,CAACmwB,OAAO,CAACnwB,SAAS,EAAEmwB,OAAO,CAAClwB,UAAU,EAAEkwB,OAAO,CAACjwB,QAAQ,CAAC,CAACgI,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;QAC5IooB,OAAO,EAAE,CAAAL,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEK,OAAO,MAAIL,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEzvB,UAAU;QAChDqB,cAAc,EAAE,CAAAouB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEpuB,cAAc,MAAIouB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEM,kBAAkB;QACtE/sB,WAAW,EAAE,CAAAysB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEzsB,WAAW,MAAIysB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEO,OAAO;QACrD/W,WAAW,EAAE,CAAAwW,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAExW,WAAW,MAAIwW,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE/uB,QAAQ,MAAI+uB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE3Y,YAAY;QAC/EjW,KAAK,EAAE4uB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE5uB,KAAK;QACrB8kB,UAAU,EAAE,CAAA8J,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE9J,UAAU,MAAI8J,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEQ,UAAU;QACtDvwB,UAAU,EAAE+vB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE/vB,UAAU;QAC/BwwB,OAAO,EAAE,CAAAT,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAES,OAAO,MAAIT,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEpwB,GAAG;OAC1C;MACDywB,OAAO,EAAE;QACPK,WAAW,EAAE,CAAAT,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAES,WAAW,MAAIT,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE1vB,UAAU;QACxDG,eAAe,EAAE,CAAAuvB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEvvB,eAAe,MAAIuvB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEU,MAAM;QAC5DC,aAAa,EAAE,CAAAX,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEW,aAAa,MAAIX,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEY,QAAQ;QAC1DjwB,QAAQ,EAAEqvB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAErvB,QAAQ;QAC3BkwB,OAAO,EAAE,CAAAb,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEa,OAAO,MAAIb,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE3vB,OAAO;QAC7CD,IAAI,EAAE,CAAA4vB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE5vB,IAAI,MAAI4vB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEzvB,QAAQ;QACxCJ,QAAQ,EAAE6vB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE7vB,QAAQ;QAC3BkD,QAAQ,EAAE2sB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE3sB,QAAQ;QAC3BF,QAAQ,EAAE6sB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE7sB,QAAQ;QAC3BC,SAAS,EAAE4sB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE5sB,SAAS;QAC7BpC,QAAQ,EAAE,CAAAgvB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEhvB,QAAQ,MAAIgvB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE5Y,YAAY;QACpDlW,UAAU,EAAE8uB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE9uB,UAAU;QAC/BC,KAAK,EAAE6uB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE7uB,KAAK;QACrB+B,UAAU,EAAE,CAAA8sB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE9sB,UAAU,MAAI8sB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEc,WAAW;QACvDN,OAAO,EAAE,CAAAR,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEQ,OAAO,MAAIR,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAErwB,GAAG;QACzC+F,oBAAoB,EAAE,CAAAsqB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEe,oBAAoB,MAAIf,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEtqB,oBAAoB;OACrF;MACDsrB,QAAQ,EAAE;QACRrxB,GAAG,EAAEswB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEtwB,GAAG;QACjB2E,SAAS,EAAE2rB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE3rB,SAAS;QAC7B2sB,gBAAgB,EAAEhB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEgB,gBAAgB;QAC3CZ,kBAAkB,EAAEJ,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEI,kBAAkB;QAC/CvrB,QAAQ,EAAEmrB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEnrB,QAAQ;QAC3BosB,cAAc,EAAE,CAAAjB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEiB,cAAc,MAAIjB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAExrB,SAAS;QAC7DM,UAAU,EAAEkrB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAElrB,UAAU;QAC/BC,YAAY,EAAEirB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEjrB,YAAY;QACnChF,UAAU,EAAEiwB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEjwB,UAAU;QAC/B8F,2BAA2B,EAAEmqB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEnqB,2BAA2B;QACjED,wBAAwB,EAAE,CAAAoqB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEpqB,wBAAwB,MAAIoqB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEkB,wBAAwB;OACjG;MACDC,KAAK,EAAE;QACLzxB,GAAG,EAAEuwB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEvwB,GAAG;QAClB0xB,OAAO,EAAE,CAAAnB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAE1sB,WAAW,MAAK,SAAS,KAAI0sB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEmB,OAAO;QACjE/tB,WAAW,EAAE,CAAA4sB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAE5sB,WAAW,MAAI4sB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEI,OAAO;QACvD/sB,SAAS,EAAE2sB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAE3sB,SAAS;QAC9BI,oBAAoB,EAAEusB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEvsB,oBAAoB;QACpD2C,aAAa,EAAE4pB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAE5pB,aAAa;QACtCC,cAAc,EAAE2pB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAE3pB,cAAc;QACxC3C,aAAa,EAAEssB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEtsB,aAAa;QACtCG,cAAc,EAAEmsB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEnsB,cAAc;QACxCG,aAAa,EAAEgsB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEhsB,aAAa;QACtC6B,qBAAqB,EAAE,CAAAmqB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEnqB,qBAAqB,MAAImqB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEoB,qBAAqB;;KAE5F;GACF;EAED,MAAMC,UAAU,GAAGzB,uBAAuB,CAACJ,UAAU,CAAC;EAYtD,MAAM8B,WAAW,GAAG;IAClB,IAAGD,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEnB,OAAO;IACtBK,WAAW,EAAE,CAAA9B,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAE8B,WAAW,MAAIc,UAAU,aAAVA,UAAU,wBAAArG,mBAAA,GAAVqG,UAAU,CAAEnB,OAAO,cAAAlF,mBAAA,uBAAnBA,mBAAA,CAAqBuF,WAAW;IAC3EhwB,eAAe,EAAE,CAAAkuB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEluB,eAAe,MAAIkuB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAE+B,MAAM,MAAIa,UAAU,aAAVA,UAAU,wBAAApG,oBAAA,GAAVoG,UAAU,CAAEnB,OAAO,cAAAjF,oBAAA,uBAAnBA,oBAAA,CAAqB1qB,eAAe;IAChHkwB,aAAa,EAAE,CAAAhC,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEgC,aAAa,MAAIhC,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEiC,QAAQ,MAAIW,UAAU,aAAVA,UAAU,wBAAAnG,oBAAA,GAAVmG,UAAU,CAAEnB,OAAO,cAAAhF,oBAAA,uBAAnBA,oBAAA,CAAqBuF,aAAa;IAC5GhwB,QAAQ,EAAE,CAAAguB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEhuB,QAAQ,MAAI4wB,UAAU,aAAVA,UAAU,wBAAAlG,oBAAA,GAAVkG,UAAU,CAAEnB,OAAO,cAAA/E,oBAAA,uBAAnBA,oBAAA,CAAqB1qB,QAAQ;IAClEkwB,OAAO,EAAE,CAAAlC,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEkC,OAAO,MAAIlC,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEtuB,OAAO,MAAIkxB,UAAU,aAAVA,UAAU,wBAAAjG,oBAAA,GAAViG,UAAU,CAAEnB,OAAO,cAAA9E,oBAAA,uBAAnBA,oBAAA,CAAqBuF,OAAO;IACzFzwB,IAAI,EAAE,CAAAuuB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEvuB,IAAI,MAAImxB,UAAU,aAAVA,UAAU,wBAAAhG,oBAAA,GAAVgG,UAAU,CAAEnB,OAAO,cAAA7E,oBAAA,uBAAnBA,oBAAA,CAAqBnrB,IAAI;IACtDD,QAAQ,EAAE,CAAAwuB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAExuB,QAAQ,MAAIoxB,UAAU,aAAVA,UAAU,wBAAA/F,oBAAA,GAAV+F,UAAU,CAAEnB,OAAO,cAAA5E,oBAAA,uBAAnBA,oBAAA,CAAqBrrB,QAAQ;IAClEkD,QAAQ,EAAE,CAAAsrB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEtrB,QAAQ,MAAKiX,SAAS,GAAGqU,aAAa,CAACtrB,QAAQ,GAAGkuB,UAAU,aAAVA,UAAU,wBAAA9F,oBAAA,GAAV8F,UAAU,CAAEnB,OAAO,cAAA3E,oBAAA,uBAAnBA,oBAAA,CAAqBpoB,QAAQ;IACxGF,QAAQ,EAAE,CAAAwrB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAExrB,QAAQ,MAAIouB,UAAU,aAAVA,UAAU,wBAAA7F,oBAAA,GAAV6F,UAAU,CAAEnB,OAAO,cAAA1E,oBAAA,uBAAnBA,oBAAA,CAAqBvoB,QAAQ;IAClEC,SAAS,EAAE,CAAAurB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEvrB,SAAS,MAAImuB,UAAU,aAAVA,UAAU,wBAAA5F,oBAAA,GAAV4F,UAAU,CAAEnB,OAAO,cAAAzE,oBAAA,uBAAnBA,oBAAA,CAAqBvoB,SAAS;IACrEpC,QAAQ,EAAE,CAAA2tB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAE3tB,QAAQ,MAAIsR,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAE8E,YAAY,MAAIma,UAAU,aAAVA,UAAU,wBAAA3F,oBAAA,GAAV2F,UAAU,CAAEnB,OAAO,cAAAxE,oBAAA,uBAAnBA,oBAAA,CAAqB5qB,QAAQ;IAC/FE,UAAU,EAAE,CAAAytB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEztB,UAAU,MAAIoR,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEmf,cAAc,MAAIF,UAAU,aAAVA,UAAU,wBAAA1F,qBAAA,GAAV0F,UAAU,CAAEnB,OAAO,cAAAvE,qBAAA,uBAAnBA,qBAAA,CAAqB3qB,UAAU;IACvGC,KAAK,EAAE,CAAAwtB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAExtB,KAAK,MAAIowB,UAAU,aAAVA,UAAU,wBAAAzF,qBAAA,GAAVyF,UAAU,CAAEnB,OAAO,cAAAtE,qBAAA,uBAAnBA,qBAAA,CAAqB3qB,KAAK;IACzD+B,UAAU,EAAE,CAAAyrB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEzrB,UAAU,MAAIoP,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEwe,WAAW,MAAIS,UAAU,aAAVA,UAAU,wBAAAxF,qBAAA,GAAVwF,UAAU,CAAEnB,OAAO,cAAArE,qBAAA,uBAAnBA,qBAAA,CAAqB7oB,UAAU;IACpGstB,OAAO,EAAE,CAAA7B,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAE6B,OAAO,MAAIe,UAAU,aAAVA,UAAU,wBAAAvF,qBAAA,GAAVuF,UAAU,CAAEnB,OAAO,cAAApE,qBAAA,uBAAnBA,qBAAA,CAAqBwE,OAAO,KAAI/B,SAAS;IAC5E/oB,oBAAoB,EAAE,CAAAipB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEjpB,oBAAoB,MAAI6rB,UAAU,aAAVA,UAAU,wBAAAtF,qBAAA,GAAVsF,UAAU,CAAEnB,OAAO,cAAAnE,qBAAA,uBAAnBA,qBAAA,CAAqBvmB,oBAAoB;GACvG;EAGD,MAAMgsB,YAAY,GAAG;IACnB,IAAGH,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEP,QAAQ;IACvBrxB,GAAG,EAAE,CAAA4xB,UAAU,aAAVA,UAAU,wBAAArF,oBAAA,GAAVqF,UAAU,CAAEP,QAAQ,cAAA9E,oBAAA,uBAApBA,oBAAA,CAAsBvsB,GAAG,KAAI8uB,SAAS;IAC3CnqB,SAAS,EAAE,CAAAuqB,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEvqB,SAAS,MAAIitB,UAAU,aAAVA,UAAU,wBAAApF,qBAAA,GAAVoF,UAAU,CAAEP,QAAQ,cAAA7E,qBAAA,uBAApBA,qBAAA,CAAsB7nB,SAAS;IACvE2sB,gBAAgB,EAAE,CAAApC,cAAc,aAAdA,cAAc,wBAAAzC,qBAAA,GAAdyC,cAAc,CAAE8C,kBAAkB,cAAAvF,qBAAA,uBAAlCA,qBAAA,CAAoCvtB,KAAK,MAAI0yB,UAAU,aAAVA,UAAU,wBAAAlF,qBAAA,GAAVkF,UAAU,CAAEP,QAAQ,cAAA3E,qBAAA,uBAApBA,qBAAA,CAAsB4E,gBAAgB;IACrGZ,kBAAkB,EAAE,CAAAxB,cAAc,aAAdA,cAAc,wBAAAvC,sBAAA,GAAduC,cAAc,CAAE+C,sBAAsB,cAAAtF,sBAAA,uBAAtCA,sBAAA,CAAwCztB,KAAK,MAAI0yB,UAAU,aAAVA,UAAU,wBAAAhF,qBAAA,GAAVgF,UAAU,CAAEP,QAAQ,cAAAzE,qBAAA,uBAApBA,qBAAA,CAAsB8D,kBAAkB;IAC7GvrB,QAAQ,EAAE,CAAA+pB,cAAc,aAAdA,cAAc,wBAAArC,qBAAA,GAAdqC,cAAc,CAAEgD,YAAY,cAAArF,qBAAA,uBAA5BA,qBAAA,CAA8B3tB,KAAK,MAAI0yB,UAAU,aAAVA,UAAU,wBAAA9E,qBAAA,GAAV8E,UAAU,CAAEP,QAAQ,cAAAvE,qBAAA,uBAApBA,qBAAA,CAAsB3nB,QAAQ;IAC/EosB,cAAc,EAAE,CAAArC,cAAc,aAAdA,cAAc,wBAAAnC,qBAAA,GAAdmC,cAAc,CAAEiD,cAAc,cAAApF,qBAAA,uBAA9BA,qBAAA,CAAgC7tB,KAAK,MAAI0yB,UAAU,aAAVA,UAAU,wBAAA5E,qBAAA,GAAV4E,UAAU,CAAEP,QAAQ,cAAArE,qBAAA,uBAApBA,qBAAA,CAAsBuE,cAAc;IAC7FprB,2BAA2B,EAAE,CAAA+oB,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAE/oB,2BAA2B,MAAIyrB,UAAU,aAAVA,UAAU,wBAAA3E,qBAAA,GAAV2E,UAAU,CAAEP,QAAQ,cAAApE,qBAAA,uBAApBA,qBAAA,CAAsB9mB,2BAA2B;GAC9H;EAED,MAAMisB,SAAS,GAAG;IAChB,IAAGR,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEH,KAAK;IACpBzxB,GAAG,EAAE,CAAAovB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEpvB,GAAG,MAAI4xB,UAAU,aAAVA,UAAU,wBAAA1E,iBAAA,GAAV0E,UAAU,CAAEH,KAAK,cAAAvE,iBAAA,uBAAjBA,iBAAA,CAAmBltB,GAAG,KAAI8uB,SAAS;IAC5D4C,OAAO,EAAE,CAAAtC,WAAW,aAAXA,WAAW,wBAAAjC,qBAAA,GAAXiC,WAAW,CAAEiD,eAAe,cAAAlF,qBAAA,uBAA5BA,qBAAA,CAA8Bpe,KAAK,MAAK,SAAS,KAAI6iB,UAAU,aAAVA,UAAU,wBAAAxE,kBAAA,GAAVwE,UAAU,CAAEH,KAAK,cAAArE,kBAAA,uBAAjBA,kBAAA,CAAmBsE,OAAO;IACxF/tB,WAAW,EAAEiuB,UAAU,aAAVA,UAAU,wBAAAvE,kBAAA,GAAVuE,UAAU,CAAEH,KAAK,cAAApE,kBAAA,uBAAjBA,kBAAA,CAAmB1pB,WAAW;IAC3CC,SAAS,EAAE,CAAAwrB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAExrB,SAAS,MAAIguB,UAAU,aAAVA,UAAU,wBAAAtE,kBAAA,GAAVsE,UAAU,CAAEH,KAAK,cAAAnE,kBAAA,uBAAjBA,kBAAA,CAAmB1pB,SAAS;IACjEI,oBAAoB,EAAE,CAAAorB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAErrB,aAAa,MAAI6tB,UAAU,aAAVA,UAAU,wBAAArE,kBAAA,GAAVqE,UAAU,CAAEH,KAAK,cAAAlE,kBAAA,uBAAjBA,kBAAA,CAAmBvpB,oBAAoB;IAC3FC,aAAa,EAAE,CAAAmrB,WAAW,aAAXA,WAAW,wBAAA5B,qBAAA,GAAX4B,WAAW,CAAEkD,iBAAiB,cAAA9E,qBAAA,uBAA9BA,qBAAA,CAAgCze,KAAK,MAAK,SAAS,KAAI6iB,UAAU,aAAVA,UAAU,wBAAAnE,kBAAA,GAAVmE,UAAU,CAAEH,KAAK,cAAAhE,kBAAA,uBAAjBA,kBAAA,CAAmBxpB,aAAa;IACtGG,cAAc,EAAE,CAAAgrB,WAAW,aAAXA,WAAW,wBAAA1B,qBAAA,GAAX0B,WAAW,CAAEmD,kBAAkB,cAAA7E,qBAAA,uBAA/BA,qBAAA,CAAiC3e,KAAK,MAAK,KAAK,KAAI6iB,UAAU,aAAVA,UAAU,wBAAAjE,kBAAA,GAAViE,UAAU,CAAEH,KAAK,cAAA9D,kBAAA,uBAAjBA,kBAAA,CAAmBvpB,cAAc;IACrGgC,qBAAqB,EAAE,CAAAgpB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEhpB,qBAAqB,MAAIwrB,UAAU,aAAVA,UAAU,wBAAAhE,kBAAA,GAAVgE,UAAU,CAAEH,KAAK,cAAA7D,kBAAA,uBAAjBA,kBAAA,CAAmBxnB,qBAAqB;GACtG;EAGD,MAAM0B,aAAa,GAAG,CACpB;IAAEW,GAAG,EAAE,KAAK;IAAEvJ,KAAK,EAAE;GAAO,EAC5B;IAAEuJ,GAAG,EAAE,WAAW;IAAEvJ,KAAK,EAAE;GAAc,EACzC;IAAEuJ,GAAG,EAAE,YAAY;IAAEvJ,KAAK,EAAE;GAAe,EAC3C;IAAEuJ,GAAG,EAAE,UAAU;IAAEvJ,KAAK,EAAE;GAAa,EACvC;IAAEuJ,GAAG,EAAE,QAAQ;IAAEvJ,KAAK,EAAE;GAAU,EAClC;IAAEuJ,GAAG,EAAE,YAAY;IAAEvJ,KAAK,EAAE;GAAe,EAC3C;IAAEuJ,GAAG,EAAE,UAAU;IAAEvJ,KAAK,EAAE;GAAQ,EAClC;IAAEuJ,GAAG,EAAE,UAAU;IAAEvJ,KAAK,EAAE;GAAa,EACvC;IAAEuJ,GAAG,EAAE,UAAU;IAAEvJ,KAAK,EAAE;GAAiB,EAC3C;IAAEuJ,GAAG,EAAE,MAAM;IAAEvJ,KAAK,EAAE;GAAQ,EAC9B;IAAEuJ,GAAG,EAAE,SAAS;IAAEvJ,KAAK,EAAE;GAAgB,EACzC;IAAEuJ,GAAG,EAAE,YAAY;IAAEvJ,KAAK,EAAE;GAAe,EAC3C;IAAEuJ,GAAG,EAAE,UAAU;IAAEvJ,KAAK,EAAE;GAAiB,EAC3C;IAAEuJ,GAAG,EAAE,aAAa;IAAEvJ,KAAK,EAAE;GAAgB,EAC7C;IAAEuJ,GAAG,EAAE,iBAAiB;IAAEvJ,KAAK,EAAE;GAAqB,EACtD;IAAEuJ,GAAG,EAAE,YAAY;IAAEvJ,KAAK,EAAE;GAAe,EAC3C;IAAEuJ,GAAG,EAAE,UAAU;IAAEvJ,KAAK,EAAE;GAAiB,EAC3C;IAAEuJ,GAAG,EAAE,MAAM;IAAEvJ,KAAK,EAAE;GAAQ,EAC9B;IAAEuJ,GAAG,EAAE,OAAO;IAAEvJ,KAAK,EAAE;GAAS,EAChC;IAAEuJ,GAAG,EAAE,aAAa;IAAEvJ,KAAK,EAAE;GAAgB,EAC7C;IAAEuJ,GAAG,EAAE,kBAAkB;IAAEvJ,KAAK,EAAE;GAAsB,EACxD;IAAEuJ,GAAG,EAAE,UAAU;IAAEvJ,KAAK,EAAE;GAAiB,EAC3C;IAAEuJ,GAAG,EAAE,mBAAmB;IAAEvJ,KAAK,EAAE;GAA2B,EAC9D;IAAEuJ,GAAG,EAAE,YAAY;IAAEvJ,KAAK,EAAE;GAAe,EAC3C;IAAEuJ,GAAG,EAAE,OAAO;IAAEvJ,KAAK,EAAE;GAAS,EAChC;IAAEuJ,GAAG,EAAE,YAAY;IAAEvJ,KAAK,EAAE;GAAe,EAC3C;IAAEuJ,GAAG,EAAE,OAAO;IAAEvJ,KAAK,EAAE;GAAU,EACjC;IAAEuJ,GAAG,EAAE,QAAQ;IAAEvJ,KAAK,EAAE;GAAW,EACnC;IAAEuJ,GAAG,EAAE,UAAU;IAAEvJ,KAAK,EAAE;GAAa,EACvC;IAAEuJ,GAAG,EAAE,QAAQ;IAAEvJ,KAAK,EAAE;GAAU,EAClC;IAAEuJ,GAAG,EAAE,aAAa;IAAEvJ,KAAK,EAAE;GAAgB,EAC7C;IAAEuJ,GAAG,EAAE,YAAY;IAAEvJ,KAAK,EAAE;GAAe,EAC3C;IAAEuJ,GAAG,EAAE,gBAAgB;IAAEvJ,KAAK,EAAE;GAAmB,EACnD;IAAEuJ,GAAG,EAAE,MAAM;IAAEvJ,KAAK,EAAE;GAAiB,EACvC;IAAEuJ,GAAG,EAAE,cAAc;IAAEvJ,KAAK,EAAE;GAAiB,EAC/C;IAAEuJ,GAAG,EAAE,aAAa;IAAEvJ,KAAK,EAAE;GAAgB,EAC7C;IAAEuJ,GAAG,EAAE,YAAY;IAAEvJ,KAAK,EAAE;GAAe,EAC3C;IAAEuJ,GAAG,EAAE,QAAQ;IAAEvJ,KAAK,EAAE;GAAU,EAClC;IAAEuJ,GAAG,EAAE,cAAc;IAAEvJ,KAAK,EAAE;GAAiB,EAC/C;IAAEuJ,GAAG,EAAE,qBAAqB;IAAEvJ,KAAK,EAAE;GAAuB,EAC5D;IAAEuJ,GAAG,EAAE,cAAc;IAAEvJ,KAAK,EAAE;GAAgB,EAC9C;IAAEuJ,GAAG,EAAE,eAAe;IAAEvJ,KAAK,EAAE;GAAkB,EACjD;IAAEuJ,GAAG,EAAE,mBAAmB;IAAEvJ,KAAK,EAAE;GAAsB,EACzD;IAAEuJ,GAAG,EAAE,aAAa;IAAEvJ,KAAK,EAAE;GAAgB,EAC7C;IAAEuJ,GAAG,EAAE,eAAe;IAAEvJ,KAAK,EAAE;GAAkB,EACjD;IAAEuJ,GAAG,EAAE,UAAU;IAAEvJ,KAAK,EAAE;GAAY,EACtC;IAAEuJ,GAAG,EAAE,YAAY;IAAEvJ,KAAK,EAAE;GAAe,EAC3C;IAAEuJ,GAAG,EAAE,aAAa;IAAEvJ,KAAK,EAAE;GAAe,EAC5C;IAAEuJ,GAAG,EAAE,YAAY;IAAEvJ,KAAK,EAAE;GAAc,EAC1C;IAAEuJ,GAAG,EAAE,YAAY;IAAEvJ,KAAK,EAAE;GAAe,EAC3C;IAAEuJ,GAAG,EAAE,aAAa;IAAEvJ,KAAK,EAAE;GAAgB,EAC7C;IAAEuJ,GAAG,EAAE,uBAAuB;IAAEvJ,KAAK,EAAE,yBAAyB;IAAEksB,MAAM,EAAE;GAAM,EAChF;IAAE3iB,GAAG,EAAE,cAAc;IAAEvJ,KAAK,EAAE,eAAe;IAAEksB,MAAM,EAAE;GAAM,EAC7D;IAAE3iB,GAAG,EAAE,qBAAqB;IAAEvJ,KAAK,EAAE;GAA0B,EAC/D;IAAEuJ,GAAG,EAAE,gBAAgB;IAAEvJ,KAAK,EAAE;GAAmB,EACnD;IAAEuJ,GAAG,EAAE,YAAY;IAAEvJ,KAAK,EAAE;GAAoB,EAChD;IAAEuJ,GAAG,EAAE,UAAU;IAAEvJ,KAAK,EAAE;GAAY,EACtC;IAAEuJ,GAAG,EAAE,WAAW;IAAEvJ,KAAK,EAAE;GAAa,EACxC;IAAEuJ,GAAG,EAAE,UAAU;IAAEvJ,KAAK,EAAE,WAAW;IAAEksB,MAAM,EAAE;GAAM,EACrD;IAAE3iB,GAAG,EAAE,aAAa;IAAEvJ,KAAK,EAAE;GAAgB,EAC7C;IAAEuJ,GAAG,EAAE,WAAW;IAAEvJ,KAAK,EAAE;GAAc,EACzC;IAAEuJ,GAAG,EAAE,aAAa;IAAEvJ,KAAK,EAAE;GAAgB,EAC7C;IAAEuJ,GAAG,EAAE,gBAAgB;IAAEvJ,KAAK,EAAE;GAAmB,EACnD;IAAEuJ,GAAG,EAAE,eAAe;IAAEvJ,KAAK,EAAE;GAAkB,EACjD;IAAEuJ,GAAG,EAAE,sBAAsB;IAAEvJ,KAAK,EAAE;GAA0B,EAChE;IAAEuJ,GAAG,EAAE,eAAe;IAAEvJ,KAAK,EAAE;GAAkB,EACjD;IAAEuJ,GAAG,EAAE,iBAAiB;IAAEvJ,KAAK,EAAE,kBAAkB;IAAEksB,MAAM,EAAE;GAAM,EACnE;IAAE3iB,GAAG,EAAE,YAAY;IAAEvJ,KAAK,EAAE,aAAa;IAAEksB,MAAM,EAAE;GAAM,EACzD;IAAE3iB,GAAG,EAAE,gBAAgB;IAAEvJ,KAAK,EAAE,kBAAkB;IAAEksB,MAAM,EAAE;GAAM,EAClE;IAAE3iB,GAAG,EAAE,sBAAsB;IAAEvJ,KAAK,EAAE;GAA2B,EACjE;IAAEuJ,GAAG,EAAE,eAAe;IAAEvJ,KAAK,EAAE,iBAAiB;IAAEksB,MAAM,EAAE;GAAM,EAChE;IAAE3iB,GAAG,EAAE,eAAe;IAAEvJ,KAAK,EAAE;GAAmB,EAClD;IAAEuJ,GAAG,EAAE,yBAAyB;IAAEvJ,KAAK,EAAE;GAA+B,EACxE;IAAEuJ,GAAG,EAAE,sBAAsB;IAAEvJ,KAAK,EAAE;GAA0B,EAChE;IAAEuJ,GAAG,EAAE,sBAAsB;IAAEvJ,KAAK,EAAE;GAA0B,EAChE;IAAEuJ,GAAG,EAAE,WAAW;IAAEvJ,KAAK,EAAE;GAAc,EACzC;IAAEuJ,GAAG,EAAE,cAAc;IAAEvJ,KAAK,EAAE;GAAiB,EAC/C;IAAEuJ,GAAG,EAAE,qBAAqB;IAAEvJ,KAAK,EAAE;GAAyB,EAC9D;IAAEuJ,GAAG,EAAE,WAAW;IAAEvJ,KAAK,EAAE;GAAe,EAC1C;IAAEuJ,GAAG,EAAE,WAAW;IAAEvJ,KAAK,EAAE;GAAe,EAC1C;IAAEuJ,GAAG,EAAE,UAAU;IAAEvJ,KAAK,EAAE;GAAc,EACxC;IAAEuJ,GAAG,EAAE,uBAAuB;IAAEvJ,KAAK,EAAE;GAA4B,EACnE;IAAEuJ,GAAG,EAAE,SAAS;IAAEvJ,KAAK,EAAE;GAAY,EACrC;IAAEuJ,GAAG,EAAE,UAAU;IAAEvJ,KAAK,EAAE;GAAa,EACvC;IAAEuJ,GAAG,EAAE,YAAY;IAAEvJ,KAAK,EAAE;GAAe,EAC3C;IAAEuJ,GAAG,EAAE,cAAc;IAAEvJ,KAAK,EAAE;GAAiB,EAC/C;IAAEuJ,GAAG,EAAE,oBAAoB;IAAEvJ,KAAK,EAAE;GAAuB,EAC3D;IAAEuJ,GAAG,EAAE,oBAAoB;IAAEvJ,KAAK,EAAE;GAAwB,EAC5D;IAAEuJ,GAAG,EAAE,YAAY;IAAEvJ,KAAK,EAAE;GAAe,EAC3C;IAAEuJ,GAAG,EAAE,cAAc;IAAEvJ,KAAK,EAAE;GAAiB,EAC/C;IAAEuJ,GAAG,EAAE,UAAU;IAAEvJ,KAAK,EAAE;GAAa,EACvC;IAAEuJ,GAAG,EAAE,gBAAgB;IAAEvJ,KAAK,EAAE;GAAmB,EACnD;IAAEuJ,GAAG,EAAE,iBAAiB;IAAEvJ,KAAK,EAAE;GAAoB,EACrD;IAAEuJ,GAAG,EAAE,cAAc;IAAEvJ,KAAK,EAAE;GAAiB,EAC/C;IAAEuJ,GAAG,EAAE,gBAAgB;IAAEvJ,KAAK,EAAE,kBAAkB;IAAEksB,MAAM,EAAE;GAAM,EAClE;IAAE3iB,GAAG,EAAE,YAAY;IAAEvJ,KAAK,EAAE;GAAe,EAC3C;IAAEuJ,GAAG,EAAE,SAAS;IAAEvJ,KAAK,EAAE;GAAY,EACrC;IAAEuJ,GAAG,EAAE,KAAK;IAAEvJ,KAAK,EAAE;GAAO,EAC5B;IAAEuJ,GAAG,EAAE,cAAc;IAAEvJ,KAAK,EAAE;GAAiB,EAC/C;IAAEuJ,GAAG,EAAE,aAAa;IAAEvJ,KAAK,EAAE;GAAgB,EAC7C;IAAEuJ,GAAG,EAAE,kBAAkB;IAAEvJ,KAAK,EAAE;GAAsB,EACxD;IAAEuJ,GAAG,EAAE,eAAe;IAAEvJ,KAAK,EAAE;GAAwB,EACvD;IAAEuJ,GAAG,EAAE,gBAAgB;IAAEvJ,KAAK,EAAE;GAAyB,CAC1D;EAED,MAAMszB,iBAAiB,GAAGA,MAAMxE,QAAQ,CAAC,CAACD,KAAK,CAAC;EAEhD,MAAM0E,gBAAgB,IAAA5E,qBAAA,GAAG7wB,KAAK,CAAC01B,WAAW,CAACC,OAAO,EAAE,cAAA9E,qBAAA,uBAA3BA,qBAAA,CAA6BpwB,IAAI;EAE1D,MAAM;IAAEO,IAAI,EAAE40B;GAAU,GAAG51B,KAAK,CAACmB,KAAK,CAAC00B,aAAa,CAClD11B,QAAQ,EACR;IAAE21B,IAAI,EAAE,CAACL,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEK,IAAI;GAAG,EAClC,EAAE,EACF;IAAEt0B,OAAO,EAAE,CAAC,EAACi0B,gBAAgB,aAAhBA,gBAAgB,eAAhBA,gBAAgB,CAAEK,IAAI;GACrC,CAAC;EACD,MAAMC,cAAc,GAAG,CAAAH,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEI,IAAI,KAAI,EAAE;EAE3C,MAAMC,iBAAiB,GAAGF,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEG,IAAI,CAC3CpU,CAAC,IAAK,CAAAA,CAAC,aAADA,CAAC,uBAADA,CAAC,CAAEgU,IAAI,OAAKL,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEK,IAAI,KAAI,CAAAhU,CAAC,aAADA,CAAC,uBAADA,CAAC,CAAEqU,QAAQ,OAAKV,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEU,QAAQ,CACzF,CAAC;EACD,MAAM1tB,YAAY,GAAG,CAAAwtB,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAEH,IAAI,MAAIL,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAEK,IAAI;EAEtE,MAAMM,YAAY;IAAA,IAAe;MAAA,IAAAC,sBAAA;MAC/B,MAAM5L,OAAO,GAAG;QACd6L,WAAW,EAAE;UACXC,KAAK,EAAE,WAAW;UAClBC,GAAG,EAAE,KAAK;UACVC,KAAK,EAAE,YAAY;UACnBt2B,QAAQ,EAAEA,QAAQ;UAClBu2B,SAAS,GAAAL,sBAAA,GAAEr2B,KAAK,CAAC01B,WAAW,CAACC,OAAO,EAAE,cAAAU,sBAAA,uBAA3BA,sBAAA,CAA6BM;SACzC;QACD3zB,GAAG,EAAE8uB,SAAS;QACdtN,MAAM,EAAE,UAAU;QAClBoS,OAAO,EAAE,kCAAkC;QAC3CC,UAAU,EAAEpuB,YAAY;QAExBquB,IAAI,EAAE;OACP;MAAC,MAAAC,KAAA,GAAA/oB,MAAA,aACE;QAAA,OAAAH,OAAA,CAAAC,OAAA,CACmBukB,gBAAgB,CAAC2E,WAAW,CAACvM,OAAO,CAAC,EAAArc,IAAA,WAApD6oB,MAAM;UAAA,IACRA,MAAM;YACRrF,YAAY,CAAC;cACXljB,KAAK,EAAE,IAAI;cACXxM,KAAK,EAAEpC,CAAC,CAAC,oCAAoC,CAAC,IAAI;aACnD,CAAC;YACF4xB,YAAY,CAAC,IAAI,CAAC;YAClBwF,UAAU,CAAC,MAAM;cACfniB,OAAO,CAAC9S,IAAI,CAAC,+BAA+B,CAAC;aAC9C,EAAE,IAAI,CAAC;;;OAEX,YAAQ8f,GAAG,EAAE;QAAA,IAAAoV,aAAA,EAAAC,kBAAA,EAAAC,cAAA,EAAAC,mBAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,WAAA,EAAAC,YAAA;QACZ/oB,OAAO,CAACD,KAAK,CAAC,eAAe,EAAEqT,GAAG,CAAC;QACnC,MAAM4V,MAAM,GACV,CAAA5V,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAE6C,OAAO,MACZ7C,GAAG,aAAHA,GAAG,wBAAAoV,aAAA,GAAHpV,GAAG,CAAE1T,QAAQ,cAAA8oB,aAAA,wBAAAC,kBAAA,GAAbD,aAAA,CAAen2B,IAAI,cAAAo2B,kBAAA,uBAAnBA,kBAAA,CAAqBxS,OAAO,MAC5B7C,GAAG,aAAHA,GAAG,wBAAAsV,cAAA,GAAHtV,GAAG,CAAE1T,QAAQ,cAAAgpB,cAAA,wBAAAC,mBAAA,GAAbD,cAAA,CAAer2B,IAAI,cAAAs2B,mBAAA,wBAAAC,qBAAA,GAAnBD,mBAAA,CAAqBM,MAAM,cAAAL,qBAAA,wBAAAC,sBAAA,GAA3BD,qBAAA,CAA8B,CAAC,CAAC,cAAAC,sBAAA,uBAAhCA,sBAAA,CAAkC5S,OAAO,MACzC7C,GAAG,aAAHA,GAAG,wBAAA0V,WAAA,GAAH1V,GAAG,CAAE6V,MAAM,cAAAH,WAAA,wBAAAC,YAAA,GAAXD,WAAA,CAAc,CAAC,CAAC,cAAAC,YAAA,uBAAhBA,YAAA,CAAkB9S,OAAO,KACzB9kB,CAAC,CAAC,mBAAmB,CAAC,IAAI,kCAAkC;QAC9D8xB,YAAY,CAAC;UAAEljB,KAAK,EAAE,IAAI;UAAExM,KAAK,EAAEy1B;SAAQ,CAAC;QAC5CjG,YAAY,CAAC,IAAI,CAAC;OACnB;MAAA,OAAA7jB,OAAA,CAAAC,OAAA,CAAAipB,KAAA,IAAAA,KAAA,CAAA3oB,IAAA,GAAA2oB,KAAA,CAAA3oB,IAAA;KACF,QAAAnB,CAAA;MAAA,OAAAY,OAAA,CAAAiB,MAAA,CAAA7B,CAAA;;;EAED,MAAM4qB,aAAa;IAAA,IAAe;MAAA,IAAAC,sBAAA;MAChC,MAAMrN,OAAO,GAAG;QACd6L,WAAW,EAAE;UACXC,KAAK,EAAE,WAAW;UAClBC,GAAG,EAAE,KAAK;UACVC,KAAK,EAAE,YAAY;UACnBt2B,QAAQ,EAAEA,QAAQ;UAClBu2B,SAAS,GAAAoB,sBAAA,GAAE93B,KAAK,CAAC01B,WAAW,CAACC,OAAO,EAAE,cAAAmC,sBAAA,uBAA3BA,sBAAA,CAA6BnB;SACzC;QACD3zB,GAAG,EAAE8uB,SAAS;QACdtN,MAAM,EAAE,UAAU;QAClBoS,OAAO,EAAE,wBAAwB;QACjCC,UAAU,EAAEpuB,YAAY;QAExBquB,IAAI,EAAE;OACP;MAAC,MAAAiB,MAAA,GAAA/pB,MAAA,aACE;QAAA,OAAAH,OAAA,CAAAC,OAAA,CACmBukB,gBAAgB,CAAC2E,WAAW,CAACvM,OAAO,CAAC,EAAArc,IAAA,WAApD6oB,MAAM;UAAA,IACRA,MAAM;YACRrF,YAAY,CAAC;cACXljB,KAAK,EAAE,KAAK;cACZxM,KAAK,EAAEpC,CAAC,CAAC,qCAAqC,CAAC,IAAI;aACpD,CAAC;YACF4xB,YAAY,CAAC,IAAI,CAAC;YAClBwF,UAAU,CAAC,MAAM;cACfniB,OAAO,CAAC9S,IAAI,CAAC,+BAA+B,CAAC;aAC9C,EAAE,IAAI,CAAC;;;OAEX,YAAQ8f,GAAG,EAAE;QAAA,IAAAiW,cAAA,EAAAC,mBAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,YAAA,EAAAC,aAAA;QACZ1pB,OAAO,CAACD,KAAK,CAAC,gBAAgB,EAAEqT,GAAG,CAAC;QACpC,MAAM4V,MAAM,GACV,CAAA5V,GAAG,aAAHA,GAAG,wBAAAiW,cAAA,GAAHjW,GAAG,CAAE1T,QAAQ,cAAA2pB,cAAA,wBAAAC,mBAAA,GAAbD,cAAA,CAAeh3B,IAAI,cAAAi3B,mBAAA,wBAAAC,qBAAA,GAAnBD,mBAAA,CAAqBL,MAAM,cAAAM,qBAAA,wBAAAC,sBAAA,GAA3BD,qBAAA,CAA8B,CAAC,CAAC,cAAAC,sBAAA,uBAAhCA,sBAAA,CAAkCvT,OAAO,MACzC7C,GAAG,aAAHA,GAAG,wBAAAqW,YAAA,GAAHrW,GAAG,CAAE6V,MAAM,cAAAQ,YAAA,wBAAAC,aAAA,GAAXD,YAAA,CAAc,CAAC,CAAC,cAAAC,aAAA,uBAAhBA,aAAA,CAAkBzT,OAAO,MACzB7C,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAE6C,OAAO,KACZ9kB,CAAC,CAAC,oBAAoB,CAAC,IAAI,mCAAmC;QAChE8xB,YAAY,CAAC;UAAEljB,KAAK,EAAE,IAAI;UAAExM,KAAK,EAAEy1B;SAAQ,CAAC;QAC5CjG,YAAY,CAAC,IAAI,CAAC;OACnB;MAAA,OAAA7jB,OAAA,CAAAC,OAAA,CAAAiqB,MAAA,IAAAA,MAAA,CAAA3pB,IAAA,GAAA2pB,MAAA,CAAA3pB,IAAA;KACF,QAAAnB,CAAA;MAAA,OAAAY,OAAA,CAAAiB,MAAA,CAAA7B,CAAA;;;EA2BD,MAAMqrB,kBAAkB,aAAUC,WAAW;IAAA,IAAK;MAChD,IAAI,CAACA,WAAW,EAAE,OAAA1qB,OAAA,CAAAC,OAAA;MAAO,MAAA0qB,MAAA,GAAAxqB,MAAA,aACrB;QAAA,OAAAH,OAAA,CAAAC,OAAA,CACqB9N,KAAK,CAACy4B,cAAc,CAACC,aAAa,CAACH,WAAW,EAAEp4B,QAAQ,CAAC,EAAAiO,IAAA,WAA1EC,QAAQ;UAAA,IACVA,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAErN,IAAI;YAChB,MAAM23B,OAAO,GAAGC,GAAG,CAACC,eAAe,CAACxqB,QAAQ,CAACrN,IAAI,CAAC;YAClDswB,aAAa,CAACqH,OAAO,CAAC;YACtBvH,cAAc,CAAC,IAAI,CAAC;;;OAEvB,YAAQ1iB,KAAK,EAAE;QACdC,OAAO,CAACD,KAAK,CAAC,0BAA0B,EAAEA,KAAK,CAAC;OACjD;MAAA,OAAAb,OAAA,CAAAC,OAAA,CAAA0qB,MAAA,IAAAA,MAAA,CAAApqB,IAAA,GAAAoqB,MAAA,CAAApqB,IAAA;KACF,QAAAnB,CAAA;MAAA,OAAAY,OAAA,CAAAiB,MAAA,CAAA7B,CAAA;;;EAED,MAAM6rB,gBAAgB,GAAI5c,MAAM,IAAK;IACnCsV,cAAc,CAAC,KAAK,CAAC;IACrB,IAAItV,MAAM,CAACsI,MAAM,KAAK1kB,CAAC,CAAC,SAAS,CAAC,EAAE;MAClC+3B,aAAa,EAAE;KAChB,MAAM,IAAI3b,MAAM,CAACsI,MAAM,KAAK1kB,CAAC,CAAC,QAAQ,CAAC,EAAE;MACxCs2B,YAAY,EAAE;;GAEjB;EAED,IAAIjO,eAAe,IAAI8I,YAAY,EAAE,oBAAOzuB,cAAA,CAAAC,aAAA,CAAC6U,6BAAM,MAAE,CAAC;EAGtD,oBACE9U,cAAA,CAAAC,aAAA,CAACwf,cAAQ,qBACPzf,cAAA,CAAAC,aAAA,CAACqV,2BAAI;IAAC5F,SAAS,EAAC;kBAEd1P,cAAA,CAAAC,aAAA,CAACqqB,aAAa;IACZjP,KAAK,EAAE/d,CAAC,CAAC,kBAAkB,CAAC,IAAI,aAAc;IAC9CitB,MAAM,EAAEjiB,aAAc;IACtB8hB,OAAO,EAAEqG,WAAY;IACrBpG,OAAO,EAAEqG,WAAY;IACrBpzB,CAAC,EAAEA,CAAE;IACLktB,cAAc,EAAE;GACjB,CAAC,eAGFxqB,cAAA,CAAAC,aAAA;IAAK4P,KAAK,EAAE;MAAEW,SAAS,EAAE;;kBACvBxQ,cAAA,CAAAC,aAAA,CAAC8qB,oCAAa;IAAClb,KAAK,EAAE;MAAEkZ,YAAY,EAAE;;KAAWzrB,CAAC,CAAC,gBAAgB,CAAiB,CAAC,eACrF0C,cAAA,CAAAC,aAAA,CAACs2B,kCAAW;IAAC1mB,KAAK,EAAE;MAAE2mB,QAAQ,EAAE;;kBAC9Bx2B,cAAA,CAAAC,aAAA,CAACw2B,0BAAG;IACF/2B,KAAK,EAAEpC,CAAC,CAAC,iBAAiB,CAAE;IAC5Bib,IAAI,EAAE8Z,WAAW,CAAC9rB,oBAAoB,GAAGjJ,CAAC,CAAC,sBAAsB,CAAC,GAAGA,CAAC,CAAC,OAAO,CAAE;IAChFo5B,YAAY,EACVrE,WAAW,CAAC9rB,oBAAoB,iBAC9BvG,cAAA,CAAAC,aAAA;MAAKiQ,OAAO,EAAEA,MAAM4lB,kBAAkB,CAACzD,WAAW,CAAC9rB,oBAAoB;oBACrEvG,cAAA,CAAAC,aAAA,CAAC02B,sCAAe;MAAC9mB,KAAK,EAAE;QAAE+mB,MAAM,EAAE,SAAS;QAAElgB,IAAI,EAAE;;KAAc,CAC9D;GAGV,CAAC,eACF1W,cAAA,CAAAC,aAAA,CAACw2B,0BAAG;IACF/2B,KAAK,EAAEpC,CAAC,CAAC,kBAAkB,CAAE;IAC7Bib,IAAI,EAAEqa,SAAS,CAAChsB,qBAAqB,GAAGtJ,CAAC,CAAC,sBAAsB,CAAC,GAAGA,CAAC,CAAC,OAAO,CAAE;IAC/Eo5B,YAAY,EACV9D,SAAS,CAAChsB,qBAAqB,iBAC7B5G,cAAA,CAAAC,aAAA;MAAKiQ,OAAO,EAAEA,MAAM4lB,kBAAkB,CAAClD,SAAS,CAAChsB,qBAAqB;oBACpE5G,cAAA,CAAAC,aAAA,CAAC02B,sCAAe;MAAC9mB,KAAK,EAAE;QAAE+mB,MAAM,EAAE,SAAS;QAAElgB,IAAI,EAAE;;KAAc,CAC9D;GAGV,CAAC,eACF1W,cAAA,CAAAC,aAAA,CAACw2B,0BAAG;IACF/2B,KAAK,EAAEpC,CAAC,CAAC,qBAAqB,CAAE;IAChCib,IAAI,EAAEga,YAAY,CAAC7rB,wBAAwB,GAAGpJ,CAAC,CAAC,sBAAsB,CAAC,GAAGA,CAAC,CAAC,OAAO,CAAE;IACrFo5B,YAAY,EACVnE,YAAY,CAAC7rB,wBAAwB,iBACnC1G,cAAA,CAAAC,aAAA;MAAKiQ,OAAO,EAAEA,MAAM4lB,kBAAkB,CAACvD,YAAY,CAAC7rB,wBAAwB;oBAC1E1G,cAAA,CAAAC,aAAA,CAAC02B,sCAAe;MAAC9mB,KAAK,EAAE;QAAE+mB,MAAM,EAAE,SAAS;QAAElgB,IAAI,EAAE;;KAAc,CAC9D;GAGV,CAAC,eACF1W,cAAA,CAAAC,aAAA,CAACw2B,0BAAG;IACF/2B,KAAK,EAAEpC,CAAC,CAAC,yBAAyB,CAAE;IACpCib,IAAI,EAAEga,YAAY,CAAC5rB,2BAA2B,GAAGrJ,CAAC,CAAC,qBAAqB,CAAC,GAAGA,CAAC,CAAC,OAAO,CAAE;IACvFo5B,YAAY,EACVnE,YAAY,CAAC5rB,2BAA2B,iBACtC3G,cAAA,CAAAC,aAAA;MAAKiQ,OAAO,EAAEA,MAAM4lB,kBAAkB,CAACvD,YAAY,CAAC5rB,2BAA2B;oBAC7E3G,cAAA,CAAAC,aAAA,CAAC02B,sCAAe;MAAC9mB,KAAK,EAAE;QAAE+mB,MAAM,EAAE,SAAS;QAAElgB,IAAI,EAAE;;KAAc,CAC9D;GAGV,CACU,CACV,CAAC,EAEL,CAAC8T,cAAc,iBACdxqB,cAAA,CAAAC,aAAA;IAAK4P,KAAK,EAAE;MAAEW,SAAS,EAAE,MAAM;MAAEqmB,UAAU,EAAE,MAAM;MAAEnL,SAAS,EAAE;;kBAC9D1rB,cAAA,CAAAC,aAAA,CAAC62B,+BAAQ;IACP1d,EAAE,EAAC,kBAAkB;IACrBnO,IAAI,EAAC,kBAAkB;IACvBvL,KAAK,eAAEM,cAAA,CAAAC,aAAA;MAAM4P,KAAK,EAAE;QAAEmb,QAAQ,EAAE,MAAM;QAAE1b,KAAK,EAAE;;OAAchS,CAAC,CAAC,wBAAwB,CAAQ,CAAE;IACjGgT,QAAQ,EAAE0iB,iBAAkB;IAC5B+D,OAAO,EAAExI;GACV,CACE,CACN,EAOA,CAAC/D,cAAc,iBACdxqB,cAAA,CAAAC,aAAA,CAAC+2B,gCAAS,qBACRh3B,cAAA,CAAAC,aAAA,CAACkY,gCAAS;IACRzY,KAAK,EAAEpC,CAAC,CAAC,gCAAgC,CAAE;IAC3C6Y,QAAQ,EAAEA,MAAM6Y,cAAc,CAAE9Y,IAAI,IAAK,CAACA,IAAI,CAAE;IAChDjG,QAAQ,EAAE,CAACse;GACZ,CAAC,EACDQ,WAAW,iBACV/uB,cAAA,CAAAC,aAAA,CAACg3B,2BAAI;IACHnoB,OAAO,EAAEA,OAAQ;IACjB6K,SAAS,EAAE,QAAS;IACpBrc,CAAC,EAAEA,CAAE;IACL+mB,QAAQ,EAAEiS,gBAAiB;IAC3BzmB,KAAK,EAAE;MACLP,KAAK,EAAE,SAAS;MAChB0b,QAAQ,EAAE;;GAEb,CAEM,CAET,CAAC,EAGN2D,WAAW,iBACV3uB,cAAA,CAAAC,aAAA;IACE4P,KAAK,EAAE;MACLqnB,QAAQ,EAAE,OAAO;MACjBC,GAAG,EAAE,CAAC;MACNC,IAAI,EAAE,CAAC;MACP1mB,KAAK,EAAE,MAAM;MACbC,MAAM,EAAE,MAAM;MACdjC,eAAe,EAAE,iBAAiB;MAClCQ,OAAO,EAAE,MAAM;MACf2b,cAAc,EAAE,QAAQ;MACxBC,UAAU,EAAE,QAAQ;MACpBuM,MAAM,EAAE;;kBAGVr3B,cAAA,CAAAC,aAAA;IACE4P,KAAK,EAAE;MACLqnB,QAAQ,EAAE,UAAU;MACpBxoB,eAAe,EAAE,MAAM;MACvB6G,OAAO,EAAE,MAAM;MACfxF,YAAY,EAAE,MAAM;MACpBymB,QAAQ,EAAE,OAAO;MACjB9lB,KAAK,EAAE,MAAM;MACb4mB,SAAS,EAAE,MAAM;MACjB3M,QAAQ,EAAE,MAAM;MAChB4M,SAAS,EAAE;;kBAGbv3B,cAAA,CAAAC,aAAA;IACEiQ,OAAO,EAAEA,MAAM0e,cAAc,CAAC,KAAK,CAAE;IACrC/e,KAAK,EAAE;MACLqnB,QAAQ,EAAE,UAAU;MACpBC,GAAG,EAAE,MAAM;MACXK,KAAK,EAAE,MAAM;MACbZ,MAAM,EAAE,SAAS;MACjBpd,UAAU,EAAE,MAAM;MAClBwR,QAAQ,EAAE,MAAM;MAChB1b,KAAK,EAAE,MAAM;MACbmb,UAAU,EAAE,MAAM;MAClB/Z,KAAK,EAAE,MAAM;MACbC,MAAM,EAAE,MAAM;MACdzB,OAAO,EAAE,MAAM;MACf2b,cAAc,EAAE,QAAQ;MACxBC,UAAU,EAAE,QAAQ;MACpB/a,YAAY,EAAE;;KAEjB,MAEI,CAAC,eACN/P,cAAA,CAAAC,aAAA;IACEw3B,GAAG,EAAE5I,UAAW;IAChB6I,GAAG,EAAC,kBAAkB;IACtB7nB,KAAK,EAAE;MAAE2mB,QAAQ,EAAE,MAAM;MAAE7lB,MAAM,EAAE,MAAM;MAAEzB,OAAO,EAAE;KAAU;IAC9DyoB,OAAO,EAAGltB,CAAC,IAAK;MACdA,CAAC,CAACG,MAAM,CAACiF,KAAK,CAACX,OAAO,GAAG,MAAM;MAC/BzE,CAAC,CAACG,MAAM,CAACgtB,WAAW,CAAC/nB,KAAK,CAACX,OAAO,GAAG,OAAO;;GAE/C,CAAC,eACFlP,cAAA,CAAAC,aAAA;IAAK4P,KAAK,EAAE;MAAEX,OAAO,EAAE,MAAM;MAAEqG,OAAO,EAAE,MAAM;MAAEkD,SAAS,EAAE;;kBACzDzY,cAAA,CAAAC,aAAA,YAAI3C,CAAC,CAAC,qCAAqC,CAAK,CAAC,eACjD0C,cAAA,CAAAC,aAAA,CAACupB,iCAAU;IAAC9pB,KAAK,EAAEpC,CAAC,CAAC,sBAAsB,CAAE;IAAC4S,OAAO,EAAEA,MAAM/Q,MAAM,CAAC04B,IAAI,CAAChJ,UAAU,EAAE,QAAQ;GAAI,CAC9F,CACF,CACF,CACN,EACAI,SAAS,iBACRjvB,cAAA,CAAAC,aAAA,CAAC63B,4BAAK;IACJ5rB,KAAK,EAAEijB,SAAS,CAACjjB,KAAM;IACvBxM,KAAK,EAAEyvB,SAAS,CAACzvB,KAAM;IACvB4Z,OAAO,EAAEA,MAAM4V,YAAY,CAAC,KAAK;GAClC,CAEK,CAAC;AAEf,CAAC;;AChxBD,MAAM6I,yBAAyB,GAAG,UAACz6B,CAAC,EAAE06B,QAAQ,EAAOC,UAAU,EAAEC,aAAa,EAAEC,UAAU,EAAK;EAAA,IAAAC,SAAA,EAAAC,qBAAA,EAAAC,UAAA,EAAAC,UAAA,EAAAC,qBAAA,EAAAC,UAAA,EAAAC,UAAA;EAAA,IAAzDV,QAAQ;IAARA,QAAQ,GAAG,EAAE;;EACjD,MAAMhxB,YAAY,GAAG,EAAAoxB,SAAA,GAAAJ,QAAQ,cAAAI,SAAA,wBAAAC,qBAAA,GAARD,SAAA,CAAUpxB,YAAY,cAAAqxB,qBAAA,uBAAtBA,qBAAA,CAAwBptB,IAAI,OAAAqtB,UAAA,GAAIN,QAAQ,cAAAM,UAAA,uBAARA,UAAA,CAAUtxB,YAAY;EAC3E,MAAMtE,YAAY,GAAG,EAAA61B,UAAA,GAAAP,QAAQ,cAAAO,UAAA,wBAAAC,qBAAA,GAARD,UAAA,CAAU71B,YAAY,cAAA81B,qBAAA,uBAAtBA,qBAAA,CAAwBvtB,IAAI,OAAAwtB,UAAA,GAAIT,QAAQ,cAAAS,UAAA,uBAARA,UAAA,CAAU/1B,YAAY;EAC3E,MAAMi2B,mBAAmB,GAAG,EAAAD,UAAA,GAAAV,QAAQ,cAAAU,UAAA,uBAARA,UAAA,CAAUC,mBAAmB,KAAI,IAAI;EAEjE,MAAMpO,MAAM,GAAG,CACb;IACE7qB,KAAK,EAAEpC,CAAC,CAAC,eAAe,CAAC;IACzBs7B,WAAW,EAAE,IAAI;IACjBxqB,IAAI,EAAE,QAAQ;IACdnF,GAAG,EAAE,cAAc;IACnB4vB,UAAU,EAAE;MACV5tB,IAAI,EAAE,cAAc;MACpB6tB,SAAS,EAAGlnB,KAAK,iBACf5R,cAAA,CAAAC,aAAA,CAACwZ,+BAAQ;QACPC,MAAM,EAAE,CAAC;UAAEzO,IAAI,EAAE;SAAc,EAAE;UAAEA,IAAI,EAAE;SAAQ,EAAE;UAAEA,IAAI,EAAE;SAAuB,CAAE;QACpF0O,SAAS,EAAC,MAAM;QAChBE,QAAQ,EAAEjI,KAAK,CAACrC,KAAM;QACtBqK,MAAM,EAAEhI,KAAK,CAACtB;OACf;;GAGN,EACD;IACE5Q,KAAK,EAAEpC,CAAC,CAAC,eAAe,CAAC;IACzBs7B,WAAW,EAAE,IAAI;IACjBxqB,IAAI,EAAE,QAAQ;IACdnF,GAAG,EAAE,cAAc;IACnB4vB,UAAU,EAAE;MACV5tB,IAAI,EAAE,cAAc;MACpB6tB,SAAS,EAAGlnB,KAAK,iBACf5R,cAAA,CAAAC,aAAA,CAACwZ,+BAAQ;QACPC,MAAM,EAAE,CAAC;UAAEzO,IAAI,EAAE;SAAQ,EAAE;UAAEA,IAAI,EAAE;SAAY,CAAE;QACjD0O,SAAS,EAAC,MAAM;QAChBE,QAAQ,EAAEjI,KAAK,CAACrC,KAAM;QACtBqK,MAAM,EAAEhI,KAAK,CAACtB;OACf;;GAGN,EACD;IACE5Q,KAAK,EAAEpC,CAAC,CAAC,eAAe,CAAC;IACzBs7B,WAAW,EAAE,IAAI;IACjBxqB,IAAI,EAAE,QAAQ;IACdnF,GAAG,EAAE,cAAc;IACnB4vB,UAAU,EAAE;MACV5tB,IAAI,EAAE,cAAc;MACpB6tB,SAAS,EAAGlnB,KAAK,iBACf5R,cAAA,CAAAC,aAAA,CAACwZ,+BAAQ;QACPC,MAAM,EAAE,CAAC;UAAEzO,IAAI,EAAE;SAAQ,EAAE;UAAEA,IAAI,EAAE;SAAY,CAAE;QACjD0O,SAAS,EAAC,MAAM;QAChBE,QAAQ,EAAEjI,KAAK,CAACrC,KAAM;QACtBqK,MAAM,EAAEhI,KAAK,CAACtB;OACf;;GAGN,EACD;IACE5Q,KAAK,EAAEpC,CAAC,CAAC,YAAY,CAAC;IACtBs7B,WAAW,EAAE,IAAI;IACjBxqB,IAAI,EAAE,MAAM;IACZyqB,UAAU,EAAE;MACV5tB,IAAI,EAAE,WAAW;MACjB8tB,UAAU,EAAE;QAAEC,QAAQ,EAAE;;;GAE3B,EACD;IACEt5B,KAAK,EAAEpC,CAAC,CAAC,aAAa,CAAC;IACvBs7B,WAAW,EAAE,KAAK;IAClBxqB,IAAI,EAAE,MAAM;IACZyqB,UAAU,EAAE;MACV5tB,IAAI,EAAE;;GAET,EACD;IACEvL,KAAK,EAAEpC,CAAC,CAAC,WAAW,CAAC;IACrBs7B,WAAW,EAAE,KAAK;IAClBxqB,IAAI,EAAE,MAAM;IACZyqB,UAAU,EAAE;MACV5tB,IAAI,EAAE;;GAET,EACD;IACEvL,KAAK,EAAEpC,CAAC,CAAC,QAAQ,CAAC;IAClBs7B,WAAW,EAAE,KAAK;IAClBxqB,IAAI,EAAE,QAAQ;IACdnF,GAAG,EAAE,QAAQ;IACb4vB,UAAU,EAAE;MACV5tB,IAAI,EAAE,QAAQ;MACd6tB,SAAS,EAAGlnB,KAAK,iBACf5R,cAAA,CAAAC,aAAA,CAACwZ,+BAAQ;QACPC,MAAM,EAAE,CAAC;UAAEzO,IAAI,EAAE;SAAQ,EAAE;UAAEA,IAAI,EAAE;SAAU,EAAE;UAAEA,IAAI,EAAE;SAAU,EAAE;UAAEA,IAAI,EAAE;SAAqB,CAAE;QAClG0O,SAAS,EAAC,MAAM;QAChBE,QAAQ,EAAEjI,KAAK,CAACrC,KAAM;QACtBqK,MAAM,EAAEhI,KAAK,CAACtB;OACf;;GAGN,EACD;IACE5Q,KAAK,EAAEpC,CAAC,CAAC,oBAAoB,CAAC;IAC9Bs7B,WAAW,EAAE,KAAK;IAClBxqB,IAAI,EAAE,MAAM;IACZyqB,UAAU,EAAE;MACV5tB,IAAI,EAAE;;GAET,EACD;IACEvL,KAAK,EAAEpC,CAAC,CAAC,QAAQ,CAAC;IAClBs7B,WAAW,EAAE,IAAI;IACjBxqB,IAAI,EAAE,MAAM;IACZyqB,UAAU,EAAE;MACV5tB,IAAI,EAAE,QAAQ;MACd8tB,UAAU,EAAE;QACVC,QAAQ,EAAE,IAAI;QACd3V,OAAO,EAAE;OACV;MACDnX,KAAK,EAAE5O,CAAC,CAAC,uBAAuB;;GAEnC,EACD;IACEoC,KAAK,EAAEpC,CAAC,CAAC,UAAU,CAAC;IACpBs7B,WAAW,EAAE,KAAK;IAClBxqB,IAAI,EAAE,MAAM;IACZyqB,UAAU,EAAE;MACV5tB,IAAI,EAAE;;GAET,EACD;IACEvL,KAAK,EAAEpC,CAAC,CAAC,OAAO,CAAC;IACjBs7B,WAAW,EAAE,KAAK;IAClBxqB,IAAI,EAAE,MAAM;IACZyqB,UAAU,EAAE;MACV5tB,IAAI,EAAE,OAAO;MACb8tB,UAAU,EAAE;QACV1V,OAAO,EAAE;OACV;MACDnX,KAAK,EAAE5O,CAAC,CAAC,uBAAuB;;GAEnC,EACD;IACEoC,KAAK,EAAEpC,CAAC,CAAC,kBAAkB,CAAC;IAC5Bs7B,WAAW,EAAE,IAAI;IACjBxqB,IAAI,EAAE,MAAM;IACZyqB,UAAU,EAAE;MACV5tB,IAAI,EAAE,WAAW;MACjB8tB,UAAU,EAAE;QACVC,QAAQ,EAAE,IAAI;QACdC,GAAG,EAAE;;;GAGV,EACD;IACEv5B,KAAK,EAAEpC,CAAC,CAAC,kBAAkB,CAAC;IAC5Bs7B,WAAW,EAAE,IAAI;IACjBxqB,IAAI,EAAE,QAAQ;IACdnF,GAAG,EAAE,cAAc;IACnB4vB,UAAU,EAAE;MACV5tB,IAAI,EAAE,cAAc;MACpB6tB,SAAS,EAAGlnB,KAAK,iBACf5R,cAAA,CAAAC,aAAA,CAACwZ,+BAAQ;QACPC,MAAM,EAAE,CAAC;UAAEzO,IAAI,EAAE;SAAgB,EAAE;UAAEA,IAAI,EAAE;SAAmB,EAAE;UAAEA,IAAI,EAAE;SAAY,EAAE;UAAEA,IAAI,EAAE;SAAY,CAAE;QAC5G0O,SAAS,EAAC,MAAM;QAChBE,QAAQ,EAAEjI,KAAK,CAACrC,KAAM;QACtBqK,MAAM,EAAEhI,KAAK,CAACtB;OACf;;GAGN,EACD;IACE5Q,KAAK,EAAEpC,CAAC,CAAC,mBAAmB,CAAC;IAC7Bs7B,WAAW,EAAE,KAAK;IAClBxqB,IAAI,EAAE,QAAQ;IACdnF,GAAG,EAAE,QAAQ;IACb4vB,UAAU,EAAE;MACV5tB,IAAI,EAAE,QAAQ;MACd6tB,SAAS,EAAGlnB,KAAK,iBACf5R,cAAA,CAAAC,aAAA,CAACi5B,iCAAU;QACTC,QAAQ,EAAG1uB,CAAC,IAAKwtB,UAAU,CAACxtB,CAAC,EAAEmH,KAAK,CAACtB,QAAQ,CAAE;QAC/C8oB,QAAQ,EAAEA,MAAM;UACdxnB,KAAK,CAACtB,QAAQ,CAAC,IAAI,CAAC;UACpB4nB,aAAa,CAAC,IAAI,CAAC;SACnB;QACF9V,OAAO,EAAExQ,KAAK,CAACrC,KAAK,GAAGjS,CAAC,CAAC,UAAU,CAAC,GAAGA,CAAC,CAAC,kBAAkB;OAC5D;;GAGN,EACD;IACEoC,KAAK,EAAEpC,CAAC,CAAC,iBAAiB,CAAC;IAC3Bs7B,WAAW,EAAE,KAAK;IAClBxqB,IAAI,EAAE,MAAM;IACZyqB,UAAU,EAAE;MACV5tB,IAAI,EAAE;;GAET,EACD;IACEvL,KAAK,EAAEpC,CAAC,CAAC,uBAAuB,CAAC;IACjCs7B,WAAW,EAAE,KAAK;IAClBxqB,IAAI,EAAE,QAAQ;IACdnF,GAAG,EAAE,qBAAqB;IAC1B4vB,UAAU,EAAE;MACV5tB,IAAI,EAAE,qBAAqB;MAC3B6tB,SAAS,EAAGlnB,KAAK,iBACf5R,cAAA,CAAAC,aAAA,CAAC62B,+BAAQ;QACPp3B,KAAK,EAAEpC,CAAC,CAAC,oCAAoC,CAAE;QAC/Cy5B,OAAO,EAAEnlB,KAAK,CAACrC,KAAK,IAAI,IAAK;QAC7Be,QAAQ,EAAG7F,CAAC,IAAKmH,KAAK,CAACtB,QAAQ,CAAC7F,CAAC,CAACG,MAAM,CAACmsB,OAAO;OACjD;;GAGN,CACF;EAGD,IAAI,CAAC4B,mBAAmB,EAAE;IACxBpO,MAAM,CAAC9qB,IAAI,CACT;MACEC,KAAK,EAAEpC,CAAC,CAAC,gBAAgB,CAAC;MAC1Bs7B,WAAW,EAAE,KAAK;MAClBxqB,IAAI,EAAE,MAAM;MACZyqB,UAAU,EAAE;QACV5tB,IAAI,EAAE;;KAET,EACD;MACEvL,KAAK,EAAEpC,CAAC,CAAC,oBAAoB,CAAC;MAC9Bs7B,WAAW,EAAE,KAAK;MAClBxqB,IAAI,EAAE,MAAM;MACZyqB,UAAU,EAAE;QACV5tB,IAAI,EAAE;;KAGZ,CAAC;;EAIH,IAAIvI,YAAY,KAAK,UAAU,EAAE;IAC/B6nB,MAAM,CAAC9qB,IAAI,CAAC;MACVC,KAAK,EAAEpC,CAAC,CAAC,gBAAgB,CAAC;MAC1Bs7B,WAAW,EAAE,KAAK;MAClBxqB,IAAI,EAAE,QAAQ;MACdnF,GAAG,EAAE,eAAe;MACpB4vB,UAAU,EAAE;QACV5tB,IAAI,EAAE,eAAe;QACrB6tB,SAAS,EAAGlnB,KAAK,iBACf5R,cAAA,CAAAC,aAAA,CAACi5B,iCAAU;UACTC,QAAQ,EAAG1uB,CAAC,IAAKwtB,UAAU,CAACxtB,CAAC,EAAEmH,KAAK,CAACtB,QAAQ,CAAE;UAC/C8oB,QAAQ,EAAEA,MAAM;YACdxnB,KAAK,CAACtB,QAAQ,CAAC,IAAI,CAAC;YACpB4nB,aAAa,CAAC,IAAI,CAAC;WACnB;UACF9V,OAAO,EAAExQ,KAAK,CAACrC,KAAK,GAAGjS,CAAC,CAAC,UAAU,CAAC,GAAGA,CAAC,CAAC,kBAAkB;SAC5D;;KAGN,CAAC;IAEF,IAAI,CAAC66B,UAAU,EAAE;MACf5N,MAAM,CAAC9qB,IAAI,CACT;QACEC,KAAK,EAAEpC,CAAC,CAAC,cAAc,CAAC;QACxBs7B,WAAW,EAAE,IAAI;QACjBxqB,IAAI,EAAE,MAAM;QACZyqB,UAAU,EAAE;UACV5tB,IAAI,EAAE,aAAa;UACnB8tB,UAAU,EAAE;YACVC,QAAQ,EAAE,IAAI;YACd3V,OAAO,EAAE;;;OAGd,EACD;QACE3jB,KAAK,EAAEpC,CAAC,CAAC,qBAAqB,CAAC;QAC/Bs7B,WAAW,EAAE,KAAK;QAClBxqB,IAAI,EAAE,MAAM;QACZyqB,UAAU,EAAE;UACV5tB,IAAI,EAAE;;OAGZ,CAAC;;;EAKL,IAAIjE,YAAY,KAAK,MAAM,EAAE;IAC3BujB,MAAM,CAAC9qB,IAAI,CACT;MACEC,KAAK,EAAEpC,CAAC,CAAC,aAAa,CAAC;MACvBs7B,WAAW,EAAE,KAAK;MAClBxqB,IAAI,EAAE,MAAM;MACZyqB,UAAU,EAAE;QACV5tB,IAAI,EAAE;;KAET,EACD;MACEvL,KAAK,EAAEpC,CAAC,CAAC,YAAY,CAAC;MACtBs7B,WAAW,EAAE,KAAK;MAClBxqB,IAAI,EAAE,MAAM;MACZyqB,UAAU,EAAE;QACV5tB,IAAI,EAAE;;KAET,EACD;MACEvL,KAAK,EAAEpC,CAAC,CAAC,aAAa,CAAC;MACvBs7B,WAAW,EAAE,KAAK;MAClBxqB,IAAI,EAAE,MAAM;MACZyqB,UAAU,EAAE;QACV5tB,IAAI,EAAE;;KAGZ,CAAC;;EAIH,IAAIjE,YAAY,KAAK,qBAAqB,EAAE;IAC1CujB,MAAM,CAAC9qB,IAAI,CACT;MACEC,KAAK,EAAEpC,CAAC,CAAC,aAAa,CAAC;MACvBs7B,WAAW,EAAE,KAAK;MAClBxqB,IAAI,EAAE,MAAM;MACZyqB,UAAU,EAAE;QACV5tB,IAAI,EAAE;;KAET,EACD;MACEvL,KAAK,EAAEpC,CAAC,CAAC,gBAAgB,CAAC;MAC1Bs7B,WAAW,EAAE,KAAK;MAClBxqB,IAAI,EAAE,MAAM;MACZyqB,UAAU,EAAE;QACV5tB,IAAI,EAAE;;KAGZ,CAAC;;EAIHsf,MAAM,CAAC9qB,IAAI,CAAC;IACVC,KAAK,EAAEpC,CAAC,CAAC,SAAS,CAAC;IACnBs7B,WAAW,EAAE,IAAI;IACjBxqB,IAAI,EAAE,QAAQ;IACdnF,GAAG,EAAE,SAAS;IACd4vB,UAAU,EAAE;MACV5tB,IAAI,EAAE,SAAS;MACf8tB,UAAU,EAAE;QAAEC,QAAQ,EAAE;OAAM;MAC9BF,SAAS,EAAGlnB,KAAK,iBACf5R,cAAA,CAAAC,aAAA,CAAC62B,+BAAQ;QACPp3B,KAAK,EAAEpC,CAAC,CAAC,gDAAgD,CAAE;QAC3Dy5B,OAAO,EAAEnlB,KAAK,CAACrC,KAAK,IAAI,KAAM;QAC9Be,QAAQ,EAAG7F,CAAC,IAAKmH,KAAK,CAACtB,QAAQ,CAAC7F,CAAC,CAACG,MAAM,CAACmsB,OAAO;OACjD;;GAGN,CAAC;EAEF,OAAO,CACL;IACEsC,IAAI,EAAE/7B,CAAC,CAAC,0BAA0B,CAAC;IACnCg8B,IAAI,EAAE/O;GACP,CACF;AACH,CAAC;;ACtWD,MAAMgP,mBAAmB,GAAG/vB,IAAA,IAAoC;EAAA,IAAnC;IAAE2T,MAAM;IAAEkH,QAAQ;IAAE2T;GAAU,GAAAxuB,IAAA;EACzD,MAAM;IAAElM;GAAG,GAAGC,2BAAc,EAAE;EAC9B,MAAM6B,QAAQ,GAAG0lB,0BAAW,EAAE;EAC9B,MAAMgF,SAAS,GAAG1qB,QAAQ,CAACsC,KAAK,IAAI,EAAE;EAEtC,MAAM/D,QAAQ,GAAGH,KAAK,CAACI,UAAU,CAACC,kBAAkB,EAAE;EACtD,MAAMwnB,WAAW,GAAG,IAAImU,eAAe,CAACp6B,QAAQ,CAACq6B,MAAM,CAAC;EACxD,MAAMC,MAAM,GAAGrU,WAAW,CAACrnB,GAAG,CAAC,KAAK,CAAC;EACrC,MAAM27B,SAAS,GACbD,MAAM,KACN5P,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAE5W,OAAO,MAClB4W,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEtpB,GAAG,MACdw3B,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAE9kB,OAAO,MACjB8kB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEx3B,GAAG,KACbo5B,cAAc,CAACC,OAAO,CAAC,eAAe,CAAC,IACvC,EAAE;EAEJ,MAAM;IAAEn7B,SAAS;IAAEF,IAAI,EAAEonB;GAAY,GAAGpoB,KAAK,CAACmB,KAAK,CAACC,IAAI,CAACinB,mBAAmB,CAC1E;IAAEloB,QAAQ;IAAEyd,OAAO,EAAE;MAAE5a,GAAG,EAAEm5B,SAAS;MAAEzJ,SAAS,EAAE;;GAAgB,EAClE;IAAElxB,OAAO,EAAE,CAAC,CAAC26B,SAAS;IAAEG,SAAS,EAAE;GACrC,CAAC;EAED,MAAM/J,cAAc,GAAGvyB,KAAK,CAACmB,KAAK,CAACC,IAAI,CAACoxB,aAAa,CAACryB,QAAQ,CAAC;EAE/D,MAAMo8B,SAAS,GAAG,CAAA/B,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEgC,mBAAmB,KAAI,EAAE;EAGrD,MAAM,CAAC7B,UAAU,EAAED,aAAa,CAAC,GAAGtuB,cAAQ,CAACmwB,SAAS,CAAC5B,UAAU,IAAI,IAAI,CAAC;EAC1E,MAAM,CAAC8B,aAAa,EAAEC,gBAAgB,CAAC,GAAGtwB,cAAQ,CAACmwB,SAAS,CAACE,aAAa,IAAI,IAAI,CAAC;EACnF,MAAM,CAACE,KAAK,EAAEC,QAAQ,CAAC,GAAGxwB,cAAQ,CAAC,IAAI,CAAC;EACxC,MAAM,CAACywB,YAAY,EAAEC,eAAe,CAAC,GAAG1wB,cAAQ,CAAC,KAAK,CAAC;EACvD,MAAM,CAAC2wB,SAAS,EAAEC,YAAY,CAAC,GAAG5wB,cAAQ,CAAC,KAAK,CAAC;EAEjD,MAAM,CAAC6wB,aAAa,EAAEC,gBAAgB,CAAC,GAAG9wB,cAAQ,CAAC,OAAO;IACxDpJ,GAAG,EAAEu5B,SAAS,CAACv5B,GAAG,IAAIm5B,SAAS,IAAI,EAAE;IACrC3yB,YAAY,EAAE+yB,SAAS,CAAC/yB,YAAY,GAAG;MAAEiE,IAAI,EAAE8uB,SAAS,CAAC/yB;KAAc,GAAG,IAAI;IAC9EtE,YAAY,EAAEq3B,SAAS,CAACr3B,YAAY,GAAG;MAAEuI,IAAI,EAAE8uB,SAAS,CAACr3B;KAAc,GAAG,IAAI;IAC9Ei4B,YAAY,EAAEZ,SAAS,CAACY,YAAY,GAAG;MAAE1vB,IAAI,EAAE8uB,SAAS,CAACY;KAAc,GAAG,IAAI;IAC9El6B,SAAS,EAAEs5B,SAAS,CAACt5B,SAAS,IAAI,EAAE;IACpCC,UAAU,EAAEq5B,SAAS,CAACr5B,UAAU,IAAI,EAAE;IACtCC,QAAQ,EAAEo5B,SAAS,CAACp5B,QAAQ,IAAI,EAAE;IAClCkC,MAAM,EAAEk3B,SAAS,CAACl3B,MAAM,GAAG;MAAEoI,IAAI,EAAE8uB,SAAS,CAACl3B;KAAQ,GAAG,IAAI;IAC5D+3B,gBAAgB,EAAEb,SAAS,CAACa,gBAAgB,IAAI,EAAE;IAClDC,MAAM,EAAEd,SAAS,CAACc,MAAM,IAAI,EAAE;IAC9BC,QAAQ,EAAEf,SAAS,CAACe,QAAQ,IAAI,EAAE;IAClC94B,KAAK,EAAE+3B,SAAS,CAAC/3B,KAAK,IAAI,EAAE;IAC5B+4B,SAAS,EAAEhB,SAAS,CAACgB,SAAS,IAAI,EAAE;IACpCC,YAAY,EAAEjB,SAAS,CAACiB,YAAY,GAAG;MAAE/vB,IAAI,EAAE8uB,SAAS,CAACiB;KAAc,GAAG,IAAI;IAC9El3B,cAAc,EAAEi2B,SAAS,CAACj2B,cAAc,IAAI,EAAE;IAC9C60B,mBAAmB,EAAEoB,SAAS,CAACpB,mBAAmB,IAAI,IAAI;IAC1D11B,aAAa,EAAE82B,SAAS,CAAC92B,aAAa,IAAI,EAAE;IAC5CC,iBAAiB,EAAE62B,SAAS,CAAC72B,iBAAiB,IAAI,EAAE;IACpDi1B,UAAU,EAAE4B,SAAS,CAAC5B,UAAU,IAAI,IAAI;IACxC8B,aAAa,EAAEF,SAAS,CAACE,aAAa,IAAI,IAAI;IAC9CgB,MAAM,EAAElB,SAAS,CAACkB,MAAM,IAAI,IAAI;IAChCv3B,WAAW,EAAEq2B,SAAS,CAACr2B,WAAW,IAAI,EAAE;IACxCw3B,kBAAkB,EAAEnB,SAAS,CAACmB,kBAAkB,IAAI,EAAE;IACtD33B,WAAW,EAAEw2B,SAAS,CAACx2B,WAAW,IAAI,EAAE;IACxCC,UAAU,EAAEu2B,SAAS,CAACv2B,UAAU,IAAI,EAAE;IACtCC,UAAU,EAAEs2B,SAAS,CAACt2B,UAAU,IAAI,EAAE;IACtCH,UAAU,EAAEy2B,SAAS,CAACz2B,UAAU,IAAI,EAAE;IACtCF,aAAa,EAAE22B,SAAS,CAAC32B,aAAa,IAAI,EAAE;IAC5C+3B,OAAO,EAAEpB,SAAS,CAACoB,OAAO,IAAI;GAC/B,CAAC,CAAC;EAEH,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAGzxB,cAAQ,CAAC6wB,aAAa,CAAC;EAEjE,MAAMa,sBAAsB,GAAI1V,UAAU,IAAK;IAC7C,IAAI,CAACA,UAAU,EAAE,OAAO,IAAI;IAC5B,MAAMoE,aAAa,GACjB,CAAApE,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEqE,qBAAqB,MAAIrE,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEsE,iBAAiB,KAAItE,UAAU;IAClF,MAAMuE,eAAe,GAAG,CAAChsB,KAAK,CAACC,OAAO,CAAC4rB,aAAa,CAAC,GAAGA,aAAa,CAAC,CAAC,CAAC,GAAGA,aAAa,KAAK,EAAE;IAC/F,OAAO,CAAAG,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAEC,OAAO,KAAID,eAAe;GACnD;EAED5f,eAAS,CAAC,MAAM;IACd,MAAMgxB,OAAO,GAAGD,sBAAsB,CAAC1V,UAAU,CAAC;IAClD,MAAMmE,OAAO,GAAGwR,OAAO,KAAIvD,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAE/R,iBAAiB;IACtD,MAAM7K,OAAO,GAAG,CAAA2O,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE9D,iBAAiB,KAAI8D,OAAO,IAAI,EAAE;IAC3D,MAAMyR,WAAW,GAAG,CAAAzR,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEwF,cAAc,KAAI,EAAE;IAEjD,IAAInU,OAAO,IAAItS,MAAM,CAACC,IAAI,CAACqS,OAAO,CAAC,CAACvb,MAAM,GAAG,CAAC,IAAI,CAACw6B,YAAY,EAAE;MAC/D,IAAIoB,KAAK,GAAG,EAAE;MACd,IAAIC,KAAK,GAAG,EAAE;MACd,IAAIC,KAAK,GAAG,EAAE;MAEd,IAAIvgB,OAAO,CAAC3a,SAAS,EAAE;QACrBg7B,KAAK,GAAGrgB,OAAO,CAAC3a,SAAS;QACzBi7B,KAAK,GAAGtgB,OAAO,CAAC1a,UAAU,IAAI,EAAE;QAChCi7B,KAAK,GAAGvgB,OAAO,CAACza,QAAQ,IAAI,EAAE;OAC/B,MAAM,IAAIya,OAAO,CAACyL,YAAY,EAAE;QAC/B,MAAM+U,KAAK,GAAGxgB,OAAO,CAACyL,YAAY,CAAClJ,IAAI,EAAE,CAAChW,KAAK,CAAC,KAAK,CAAC;QACtD8zB,KAAK,GAAGG,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE;QACtB,IAAIA,KAAK,CAAC/7B,MAAM,KAAK,CAAC,EAAE87B,KAAK,GAAGC,KAAK,CAAC,CAAC,CAAC;QACxC,IAAIA,KAAK,CAAC/7B,MAAM,GAAG,CAAC,EAAE;UACpB67B,KAAK,GAAGE,KAAK,CAACC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAChzB,IAAI,CAAC,GAAG,CAAC;UACpC8yB,KAAK,GAAGC,KAAK,CAACA,KAAK,CAAC/7B,MAAM,GAAG,CAAC,CAAC;;;MAInC,MAAMi8B,eAAe,GAAG;QACtBt7B,GAAG,EAAEu5B,SAAS,CAACv5B,GAAG,IAAIm5B,SAAS,IAAI,EAAE;QACrC3yB,YAAY,EAAE+yB,SAAS,CAAC/yB,YAAY,GAChC;UAAEiE,IAAI,EAAE8uB,SAAS,CAAC/yB;SAAc,GAChCoU,OAAO,CAACpU,YAAY,GAClB;UAAEiE,IAAI,EAAEmQ,OAAO,CAACpU;SAAc,GAC9B,IAAI;QACVtE,YAAY,EAAEq3B,SAAS,CAACr3B,YAAY,GAChC;UAAEuI,IAAI,EAAE8uB,SAAS,CAACr3B;SAAc,GAChC0Y,OAAO,CAAC1Y,YAAY,GAClB;UAAEuI,IAAI,EAAEmQ,OAAO,CAAC1Y;SAAc,GAC9B,IAAI;QACVi4B,YAAY,EAAEZ,SAAS,CAACY,YAAY,GAAG;UAAE1vB,IAAI,EAAE8uB,SAAS,CAACY;SAAc,GAAG,IAAI;QAC9El6B,SAAS,EAAEs5B,SAAS,CAACt5B,SAAS,IAAIg7B,KAAK;QACvC/6B,UAAU,EAAEq5B,SAAS,CAACr5B,UAAU,IAAIg7B,KAAK;QACzC/6B,QAAQ,EAAEo5B,SAAS,CAACp5B,QAAQ,IAAIg7B,KAAK;QACrC94B,MAAM,EAAEk3B,SAAS,CAACl3B,MAAM,GACpB;UAAEoI,IAAI,EAAE8uB,SAAS,CAACl3B;SAAQ,GAC1BuY,OAAO,CAACvY,MAAM,GACZ;UAAEoI,IAAI,EAAEmQ,OAAO,CAACvY;SAAQ,GACxB,IAAI;QACV+3B,gBAAgB,EAAEb,SAAS,CAACa,gBAAgB,IAAIxf,OAAO,CAACtY,YAAY,IAAI,EAAE;QAC1E+3B,MAAM,EAAEd,SAAS,CAACc,MAAM,IAAIzf,OAAO,CAAChB,WAAW,IAAIohB,WAAW,CAAC35B,QAAQ,IAAI,EAAE;QAC7Ei5B,QAAQ,EAAEf,SAAS,CAACe,QAAQ,IAAIU,WAAW,CAACz5B,UAAU,IAAI,EAAE;QAC5DC,KAAK,EAAE+3B,SAAS,CAAC/3B,KAAK,IAAIoZ,OAAO,CAACpZ,KAAK,IAAIw5B,WAAW,CAACx5B,KAAK,IAAI,EAAE;QAClE+4B,SAAS,EAAEhB,SAAS,CAACgB,SAAS,KAAKS,WAAW,CAACz3B,UAAU,GAAGyD,MAAM,CAACg0B,WAAW,CAACz3B,UAAU,CAAC,GAAG,EAAE,CAAC;QAChGi3B,YAAY,EAAEjB,SAAS,CAACiB,YAAY,GAAG;UAAE/vB,IAAI,EAAE8uB,SAAS,CAACiB;SAAc,GAAG,IAAI;QAC9El3B,cAAc,EAAEi2B,SAAS,CAACj2B,cAAc,IAAI,EAAE;QAC9C60B,mBAAmB,EAAEoB,SAAS,CAACpB,mBAAmB,IAAI,IAAI;QAC1D11B,aAAa,EAAE82B,SAAS,CAAC92B,aAAa,IAAImY,OAAO,CAACnY,aAAa,IAAI,EAAE;QACrEC,iBAAiB,EAAE62B,SAAS,CAAC72B,iBAAiB,IAAIkY,OAAO,CAAClY,iBAAiB,IAAI,EAAE;QACjFi1B,UAAU,EAAE4B,SAAS,CAAC5B,UAAU,IAAI/c,OAAO,CAACtX,cAAc,IAAI,IAAI;QAClEm2B,aAAa,EAAEF,SAAS,CAACE,aAAa,IAAI,IAAI;QAC9CgB,MAAM,EAAElB,SAAS,CAACkB,MAAM,IAAI,IAAI;QAChCv3B,WAAW,EAAEq2B,SAAS,CAACr2B,WAAW,IAAI,EAAE;QACxCw3B,kBAAkB,EAAEnB,SAAS,CAACmB,kBAAkB,IAAI,EAAE;QACtD33B,WAAW,EAAEw2B,SAAS,CAACx2B,WAAW,IAAI,EAAE;QACxCC,UAAU,EAAEu2B,SAAS,CAACv2B,UAAU,IAAI,EAAE;QACtCC,UAAU,EAAEs2B,SAAS,CAACt2B,UAAU,IAAI,EAAE;QACtCH,UAAU,EAAEy2B,SAAS,CAACz2B,UAAU,IAAI,EAAE;QACtCF,aAAa,EAAE22B,SAAS,CAAC32B,aAAa,IAAI,EAAE;QAC5C+3B,OAAO,EAAEpB,SAAS,CAACoB,OAAO,IAAI;OAC/B;MAEDT,gBAAgB,CAACoB,eAAe,CAAC;MACjCT,gBAAgB,CAACS,eAAe,CAAC;MACjC,IAAIA,eAAe,CAAC3D,UAAU,EAAE;QAC9BD,aAAa,CAAC4D,eAAe,CAAC3D,UAAU,CAAC;;MAE3C,IAAI2D,eAAe,CAAC7B,aAAa,EAAE;QACjCC,gBAAgB,CAAC4B,eAAe,CAAC7B,aAAa,CAAC;;MAEjDK,eAAe,CAAC,IAAI,CAAC;;GAExB,EAAE,CAAC1U,UAAU,EAAEoS,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAE/R,iBAAiB,EAAEoU,YAAY,CAAC,CAAC;EAG3D,MAAM0B,iBAAiB,aAAUtxB,CAAC,EAAE6F,QAAQ;IAAA,IAAK;MAC/C,MAAM0rB,IAAI,GAAGvxB,CAAC,CAACG,MAAM,CAACqxB,KAAK,CAAC,CAAC,CAAC;MAC9B,IAAI,CAACD,IAAI,EAAE,OAAA3wB,OAAA,CAAAC,OAAA;MAEX,IAAI0wB,IAAI,CAACpsB,IAAI,GAAG,OAAO,EAAE;QACvBwqB,QAAQ,CAAC;UAAEhsB,IAAI,EAAE,OAAO;UAAEgU,OAAO,EAAE9kB,CAAC,CAAC,uBAAuB;SAAG,CAAC;QAChE,OAAA+N,OAAA,CAAAC,OAAA;;MACD,MAAAipB,KAAA,GAAA/oB,MAAA,aAEG;QAAA,OAAAH,OAAA,CAAAC,OAAA,CACgB9N,KAAK,CAACy4B,cAAc,CAACiG,WAAW,CAAC,MAAM,EAAEF,IAAI,EAAEr+B,QAAQ,CAAC,EAAAiO,IAAA,WAApEuwB,GAAG;UAAA,IAAAC,SAAA,EAAAC,eAAA,EAAAC,gBAAA;UACT,MAAMvG,WAAW,GAAGoG,GAAG,aAAHA,GAAG,wBAAAC,SAAA,GAAHD,GAAG,CAAE39B,IAAI,cAAA49B,SAAA,wBAAAC,eAAA,GAATD,SAAA,CAAWH,KAAK,cAAAI,eAAA,wBAAAC,gBAAA,GAAhBD,eAAA,CAAmB,CAAC,CAAC,cAAAC,gBAAA,uBAArBA,gBAAA,CAAuBvG,WAAW;UAAC,IACnDA,WAAW;YACbzlB,QAAQ,CAAC0rB,IAAI,CAAC/wB,IAAI,CAAC;YACnBivB,gBAAgB,CAAC8B,IAAI,CAAC/wB,IAAI,CAAC;YAC3BitB,aAAa,CAACnC,WAAW,CAAC;YAC1BqE,QAAQ,CAAC;cAAEhsB,IAAI,EAAE,SAAS;cAAEgU,OAAO,EAAE9kB,CAAC,CAAC,mBAAmB;aAAG,CAAC;;;OAEjE,cAAO;QACN88B,QAAQ,CAAC;UAAEhsB,IAAI,EAAE,OAAO;UAAEgU,OAAO,EAAE9kB,CAAC,CAAC,eAAe;SAAG,CAAC;OACzD;MAAA,OAAA+N,OAAA,CAAAC,OAAA,CAAAipB,KAAA,IAAAA,KAAA,CAAA3oB,IAAA,GAAA2oB,KAAA,CAAA3oB,IAAA;KACF,QAAAnB,CAAA;MAAA,OAAAY,OAAA,CAAAiB,MAAA,CAAA7B,CAAA;;;EAED,MAAM8xB,iBAAiB,GAAGA,CAACC,QAAQ,EAAEh+B,IAAI,KAAK;IAAA,IAAAi+B,kBAAA,EAAAC,qBAAA,EAAAC,kBAAA,EAAAC,qBAAA;IAE5C,MAAMC,mBAAmB,GACvB,CAAC,CAAAr+B,IAAI,aAAJA,IAAI,wBAAAi+B,kBAAA,GAAJj+B,IAAI,CAAEwI,YAAY,cAAAy1B,kBAAA,uBAAlBA,kBAAA,CAAoBxxB,IAAI,MAAIzM,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEwI,YAAY,QAC9C,CAAAo0B,aAAa,aAAbA,aAAa,wBAAAsB,qBAAA,GAAbtB,aAAa,CAAEp0B,YAAY,cAAA01B,qBAAA,uBAA3BA,qBAAA,CAA6BzxB,IAAI,MAAImwB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEp0B,YAAY,EAAC;IACpE,MAAM81B,mBAAmB,GACvB,CAAC,CAAAt+B,IAAI,aAAJA,IAAI,wBAAAm+B,kBAAA,GAAJn+B,IAAI,CAAEkE,YAAY,cAAAi6B,kBAAA,uBAAlBA,kBAAA,CAAoB1xB,IAAI,MAAIzM,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEkE,YAAY,QAC9C,CAAA04B,aAAa,aAAbA,aAAa,wBAAAwB,qBAAA,GAAbxB,aAAa,CAAE14B,YAAY,cAAAk6B,qBAAA,uBAA3BA,qBAAA,CAA6B3xB,IAAI,MAAImwB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAE14B,YAAY,EAAC;IACpE,MAAMq6B,0BAA0B,GAAG,CAAAv+B,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEm6B,mBAAmB,OAAKyC,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEzC,mBAAmB;IAEnG,IAAIkE,mBAAmB,IAAIC,mBAAmB,IAAIC,0BAA0B,EAAE;MAC5E1B,gBAAgB,CAAEnlB,IAAI,KAAM;QAC1B,GAAGA,IAAI;QACP,GAAG1X;OACJ,CAAC,CAAC;;IAIL,MAAMw+B,MAAM,GAAG,CAAAx+B,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEgC,GAAG,KAAIm5B,SAAS;IACrC,MAAMsD,eAAe,GAAGz+B,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEwI,YAAY;IAC1C,MAAMk2B,eAAe,GAAG1+B,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEkE,YAAY;IAC1C,MAAMy6B,eAAe,GAAG3+B,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEm8B,YAAY;IAC1C,MAAMyC,YAAY,GAAG5+B,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEiC,SAAS;IACpC,MAAM48B,SAAS,GAAG7+B,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEq8B,MAAM;IAC9B,MAAMyC,YAAY,GAAG9+B,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEu8B,SAAS;IACpC,MAAMwC,UAAU,GAAG/+B,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE28B,OAAO;IAChC,MAAMqC,KAAK,GAAG,CAAAh/B,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE25B,UAAU,KAAIA,UAAU;IAC5C,MAAMsF,cAAc,GAAGj/B,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEkF,WAAW;IAExC,IAAIg6B,KAAK,GAAG,IAAI;IAChB,IAAI,CAACV,MAAM,EAAEU,KAAK,GAAG,KAAK;IAC1B,IAAI,CAACT,eAAe,EAAES,KAAK,GAAG,KAAK;IACnC,IAAI,CAACR,eAAe,EAAEQ,KAAK,GAAG,KAAK;IACnC,IAAI,CAACP,eAAe,EAAEO,KAAK,GAAG,KAAK;IACnC,IAAI,CAACN,YAAY,EAAEM,KAAK,GAAG,KAAK;IAChC,IAAI,CAACL,SAAS,IAAI,CAAC,cAAc,CAACM,IAAI,CAACN,SAAS,CAAC,EAAEK,KAAK,GAAG,KAAK;IAChE,IAAI,CAACJ,YAAY,IAAI51B,MAAM,CAAC41B,YAAY,CAAC,IAAI,CAAC,EAAEI,KAAK,GAAG,KAAK;IAC7D,IAAI,CAAAR,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAEjyB,IAAI,MAAK,UAAU,IAAI,CAACuyB,KAAK,IAAI,CAACC,cAAc,EAAEC,KAAK,GAAG,KAAK;IACpF,IAAI,CAACH,UAAU,EAAEG,KAAK,GAAG,KAAK;IAE9B,IAAIA,KAAK,KAAKnD,SAAS,EAAE;MACvBC,YAAY,CAACkD,KAAK,CAAC;;GAEtB;EAED,MAAMvnB,QAAQ,aAAU3X,IAAI;IAAA,IAAK;MAAA,IAAAo/B,mBAAA,EAAAC,mBAAA,EAAAC,kBAAA,EAAAC,YAAA,EAAAC,kBAAA;MAC/B,MAAMC,UAAU,GAAG;QACjBz9B,GAAG,EAAEhC,IAAI,CAACgC,GAAG,IAAIm5B,SAAS;QAC1B3yB,YAAY,EAAE,EAAA42B,mBAAA,GAAAp/B,IAAI,CAACwI,YAAY,cAAA42B,mBAAA,uBAAjBA,mBAAA,CAAmB3yB,IAAI,KAAIzM,IAAI,CAACwI,YAAY;QAC1DtE,YAAY,EAAE,EAAAm7B,mBAAA,GAAAr/B,IAAI,CAACkE,YAAY,cAAAm7B,mBAAA,uBAAjBA,mBAAA,CAAmB5yB,IAAI,KAAIzM,IAAI,CAACkE,YAAY;QAC1Di4B,YAAY,EAAE,EAAAmD,kBAAA,GAAAt/B,IAAI,CAACm8B,YAAY,cAAAmD,kBAAA,uBAAjBA,kBAAA,CAAmB7yB,IAAI,KAAIzM,IAAI,CAACm8B,YAAY;QAC1D9T,YAAY,EAAEroB,IAAI,CAACqoB,YAAY,IAAI,GAAGroB,IAAI,CAACiC,SAAS,IAAI,EAAE,IAAIjC,IAAI,CAACkC,UAAU,IAAI,EAAE,IAAIlC,IAAI,CAACmC,QAAQ,IAAI,EAAE,EAAE,CAACgd,IAAI,EAAE;QACnHld,SAAS,EAAEjC,IAAI,CAACiC,SAAS;QACzBC,UAAU,EAAElC,IAAI,CAACkC,UAAU;QAC3BC,QAAQ,EAAEnC,IAAI,CAACmC,QAAQ;QACvBkC,MAAM,EAAE,EAAAk7B,YAAA,GAAAv/B,IAAI,CAACqE,MAAM,cAAAk7B,YAAA,uBAAXA,YAAA,CAAa9yB,IAAI,KAAIzM,IAAI,CAACqE,MAAM;QACxC+3B,gBAAgB,EAAEp8B,IAAI,CAACo8B,gBAAgB;QACvCv3B,QAAQ,EAAE7E,IAAI,CAAC6E,QAAQ,IAAI02B,SAAS,CAAC12B,QAAQ,IAAI,EAAE;QACnDw3B,MAAM,EAAEr8B,IAAI,CAACq8B,MAAM;QACnBC,QAAQ,EAAEt8B,IAAI,CAACs8B,QAAQ;QACvB94B,KAAK,EAAExD,IAAI,CAACwD,KAAK;QACjB+4B,SAAS,EAAEv8B,IAAI,CAACu8B,SAAS;QACzB5C,UAAU,EAAEA,UAAU;QACtB8B,aAAa,EAAEA,aAAa;QAC5Bv2B,WAAW,EAAElF,IAAI,CAACkF,WAAW;QAC7Bw3B,kBAAkB,EAAE18B,IAAI,CAAC08B,kBAAkB;QAC3C33B,WAAW,EAAE/E,IAAI,CAAC+E,WAAW;QAC7BC,UAAU,EAAEhF,IAAI,CAACgF,UAAU;QAC3BC,UAAU,EAAEjF,IAAI,CAACiF,UAAU;QAC3By6B,QAAQ,EAAE1/B,IAAI,CAAC0/B,QAAQ,IAAInE,SAAS,CAACmE,QAAQ,IAAI,EAAE;QACnDC,cAAc,EAAE3/B,IAAI,CAAC2/B,cAAc,IAAIpE,SAAS,CAACoE,cAAc,IAAI,EAAE;QACrE/6B,aAAa,EAAE5E,IAAI,CAAC4E,aAAa;QACjCE,UAAU,EAAE9E,IAAI,CAAC8E,UAAU;QAC3B86B,OAAO,EAAE,EAAAJ,kBAAA,GAAAx/B,IAAI,CAACw8B,YAAY,cAAAgD,kBAAA,uBAAjBA,kBAAA,CAAmB/yB,IAAI,KAAIzM,IAAI,CAACw8B,YAAY;QACrDqD,QAAQ,EAAE7/B,IAAI,CAACsF,cAAc;QAC7Bq3B,OAAO,EAAE38B,IAAI,CAAC28B,OAAO;QACrBxC,mBAAmB,EAAEn6B,IAAI,CAACm6B,mBAAmB,IAAI,IAAI;QACrD11B,aAAa,EAAEzE,IAAI,CAACyE,aAAa;QACjCC,iBAAiB,EAAE1E,IAAI,CAAC0E;OACzB;MAAC,MAAAqyB,MAAA,GAAA/pB,MAAA,aAEE;QAAA,OAAAH,OAAA,CAAAC,OAAA,CACIykB,cAAc,CAACyE,WAAW,CAAC;UAC/BV,WAAW,EAAE,EAAE;UACfwK,UAAU,EAAE,UAAU;UACtB,GAAGL;SACJ,CAAC,EAAAryB,IAAA;UACFwuB,QAAQ,CAAC;YAAEhsB,IAAI,EAAE,SAAS;YAAEgU,OAAO,EAAE9kB,CAAC,CAAC,4BAA4B;WAAG,CAAC;UACvE+mB,QAAQ,CAAClH,MAAM,CAAClU,GAAG,EAAEg1B,UAAU,CAAC;;OACjC,cAAe;QACd7D,QAAQ,CAAC;UAAEhsB,IAAI,EAAE,OAAO;UAAEgU,OAAO,EAAE9kB,CAAC,CAAC,mCAAmC;SAAG,CAAC;OAC7E;MAAA,OAAA+N,OAAA,CAAAC,OAAA,CAAAiqB,MAAA,IAAAA,MAAA,CAAA3pB,IAAA,GAAA2pB,MAAA,CAAA3pB,IAAA;KACF,QAAAnB,CAAA;MAAA,OAAAY,OAAA,CAAAiB,MAAA,CAAA7B,CAAA;;;EAED,IAAI/L,SAAS,EAAE;IACb,oBAAOsB,cAAA,CAAAC,aAAA,CAAC6U,6BAAM,MAAE,CAAC;;EAGnB,MAAMypB,MAAM,GAAGxG,yBAAyB,CAACz6B,CAAC,EAAE89B,aAAa,EAAEW,iBAAiB,EAAE7D,aAAa,EAAEC,UAAU,CAAC;EAExG,oBACEn4B,cAAA,CAAAC,aAAA,CAACwf,cAAQ,qBACPzf,cAAA,CAAAC,aAAA,CAACu+B,mCAAY;IACXv1B,GAAG,EAAEoxB,YAAY,GAAG,QAAQ,GAAG,SAAU;IACzCoE,UAAU,EAAE,CAAClE,SAAU;IACvB76B,KAAK,EAAEpC,CAAC,CAAC,oBAAoB,CAAE;IAC/B6f,MAAM,EAAEohB,MAAM,CAAClgC,GAAG,CAAEmK,IAAI,KAAM;MAC5B,GAAGA,IAAI;MACPk2B,aAAa,EAAE,IAAI;MACnBC,aAAa,EAAE;KAChB,CAAC,CAAE;IACJxoB,QAAQ,EAAEA,QAAS;IACnBskB,aAAa,EAAEA,aAAc;IAC7B8B,iBAAiB,EAAEA,iBAAkB;IACrCqC,MAAM,EAAE,KAAM;IACdC,YAAY,EAAE;GACf,CAAC,EACD1E,KAAK,iBACJn6B,cAAA,CAAAC,aAAA,CAAC63B,4BAAK;IACJ5rB,KAAK,EAAEiuB,KAAK,CAAC/rB,IAAI,KAAK,OAAQ;IAC9B1O,KAAK,EAAEy6B,KAAK,CAAC/X,OAAQ;IACrB9I,OAAO,EAAEA,MAAM8gB,QAAQ,CAAC,IAAI;GAC7B,CAEK,CAAC;AAEf,CAAC;;ACtTM,MAAM0E,UAAU,GAAG,CACxB;EACExF,IAAI,EAAE,CACJ;IACEyF,KAAK,EAAE,kBAAkB;IACzBjG,SAAS,EAAES,mBAAmB;IAC9BtwB,GAAG,EAAE,qBAAqB;IAC1B+1B,KAAK,EAAE;MACLC,MAAM,EAAE,0BAA0B;MAClCC,cAAc,EAAE;KACjB;IACDC,QAAQ,EAAE,CACR;MACEC,WAAW,EAAE,CAAC;MACdC,OAAO,EAAE;KACV;GAEJ,EACD;IACEN,KAAK,EAAE,iBAAiB;IACxBjG,SAAS,EAAE,gBAAgB;IAC3B7vB,GAAG,EAAE,gBAAgB;IACrBq2B,SAAS,EAAE,IAAI;IACfC,qBAAqB,EAAE,KAAK;IAC5BP,KAAK,EAAE;MACLC,MAAM,EAAE,sBAAsB;MAC9BC,cAAc,EAAE;KACjB;IACDC,QAAQ,EAAE,CACR;MACEC,WAAW,EAAE,CAAC;MACdC,OAAO,EAAE;KACV;GAEJ,EACD;IACEN,KAAK,EAAE,eAAe;IACtBjG,SAAS,EAAE,cAAc;IACzB7vB,GAAG,EAAE,iBAAiB;IACtB+1B,KAAK,EAAE;MACLC,MAAM,EAAE,oBAAoB;MAC5BC,cAAc,EAAE;KACjB;IACDC,QAAQ,EAAE,CACR;MACEC,WAAW,EAAE,CAAC;MACdC,OAAO,EAAE;KACV;GAEJ,EACD;IACEN,KAAK,EAAE,eAAe;IACtBjG,SAAS,EAAE,cAAc;IACzB7vB,GAAG,EAAE,cAAc;IACnB+1B,KAAK,EAAE;MACLC,MAAM,EAAE,oBAAoB;MAC5BC,cAAc,EAAE;KACjB;IACDC,QAAQ,EAAE,CACR;MACEC,WAAW,EAAE,CAAC;MACdC,OAAO,EAAE;KACV;GAEJ;AAEL,CAAC,CACF;;AC9DD,MAAMG,QAAQ,GAAGh2B,IAAA,IAA0B;EAAA,IAAzB;IAAEi2B,IAAI,EAAEC;GAAY,GAAAl2B,IAAA;EAEpC,MAAMm2B,KAAK,GAAGC,4BAAa,EAAE;EAC7B,MAAM;IAAEtiC;GAAG,GAAGC,2BAAc,EAAE;EAC9B,MAAM6B,QAAQ,GAAG0lB,0BAAW,EAAE;EAC9B,MAAM;IAAEzlB;GAAU,GAAGD,QAAQ;EAC7B,MAAMmT,OAAO,GAAGC,yBAAU,EAAE;EAE5B,IAAI2K,MAAM,GAAG,EAAE;EACf,MAAM,CAAC0iB,MAAM,EAAEC,SAAS,CAAC,GAAGtiC,KAAK,CAACmB,KAAK,CAACohC,iBAAiB,CAAC,aAAa,EAAE,EAAE,CAAC;EAE5Ex1B,eAAS,CAAC,MAAM;IACd,IAAInL,QAAQ,CAACsC,KAAK,IAAIoH,MAAM,CAACC,IAAI,CAAC3J,QAAQ,CAACsC,KAAK,CAAC,CAAC7B,MAAM,GAAG,CAAC,EAAE;MAC5D,MAAM;QAAEwvB,KAAK;QAAE,GAAG2Q;OAAM,GAAG5gC,QAAQ,CAACsC,KAAK;MACzCo+B,SAAS,CAAC;QAAE,GAAGD,MAAM;QAAE,GAAGG,IAAI;QAAE,GAAG3Q;OAAO,CAAC;;GAE9C,EAAE,CAACjwB,QAAQ,CAACsC,KAAK,CAAC,CAAC;EAEpB,MAAMu+B,MAAM,GAAGA,CAACC,QAAQ,EAAE1nB,KAAK,EAAE2nB,aAAa,EAAEl3B,GAAG,KAAK;IACtD,IAAIm3B,WAAW,GAAG/gC,QAAQ,CAACsI,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,EAAE;IAC3C,IAAIy4B,QAAQ,GAAGljB,MAAM,CAACuW,IAAI,CAAE2M,QAAQ,IAAMp3B,GAAG,GAAGo3B,QAAQ,CAACp3B,GAAG,KAAKA,GAAG,GAAGo3B,QAAQ,CAACtB,KAAK,KAAKqB,WAAY,CAAC;IACvG,IAAI,CAACC,QAAQ,EAAEA,QAAQ,GAAGljB,MAAM,CAACuW,IAAI,CAAE2M,QAAQ,IAAKA,QAAQ,CAACtB,KAAK,KAAKqB,WAAW,CAAC;IAEnF,IAAIE,QAAQ,GAAG,IAAI;IACnB,MAAMC,YAAY,GAAGpjB,MAAM,CAACqjB,SAAS,CAAEz4B,CAAC,IAAKA,CAAC,CAACg3B,KAAK,KAAKsB,QAAQ,CAACtB,KAAK,CAAC;IACxE,IAAIwB,YAAY,GAAG,CAAC,CAAC,IAAIA,YAAY,GAAGpjB,MAAM,CAACtd,MAAM,GAAG,CAAC,EAAE;MACzDygC,QAAQ,GAAGnjB,MAAM,CAACojB,YAAY,GAAG,CAAC,CAAC,CAACxB,KAAK;;IAG3C,IAAI0B,mBAAmB,GAAGluB,OAAO,CAAC9S,IAAI;IACtC,IAAIygC,QAAQ,EAAE;MACZO,mBAAmB,GAAGluB,OAAO,CAACzK,OAAO;;IAGvC,MAAM44B,IAAI,GAAGhB,UAAU,IAAIC,KAAK,CAACF,IAAI,CAAC93B,KAAK,CAAC,GAAG,CAAC,CAACk0B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAChzB,IAAI,CAAC,GAAG,CAAC;IACvE,IAAIy3B,QAAQ,KAAK,IAAI,EAAE;MACrB,OAAOG,mBAAmB,CAAC,GAAGC,IAAI,SAAS,EAAE;QAAE,GAAGb,MAAM;QAAExQ,KAAK,EAAEwQ;OAAQ,CAAC;;IAG5EY,mBAAmB,CAAC,GAAGC,IAAI,IAAIJ,QAAQ,EAAE,EAAE;MAAE,GAAGT;KAAQ,CAAC;GAC1D;EAED,SAASc,YAAYA,CAAC13B,GAAG,EAAEzK,IAAI,EAAE0hC,QAAQ,EAAE1nB,KAAK,EAAE2nB,aAAa,EAAUS,MAAM,EAAU;IAAA,IAAvCT,aAAa;MAAbA,aAAa,GAAG,KAAK;;IAAA,IAAES,MAAM;MAANA,MAAM,GAAG,KAAK;;IACrFd,SAAS,CAAE5pB,IAAI,KAAM;MAAE,GAAGA,IAAI;MAAE,CAACjN,GAAG,GAAG;QAAE,GAAG42B,MAAM,CAAC52B,GAAG,CAAC;QAAE,GAAGzK;;KAAQ,CAAC,CAAC;IACtE,IAAI,CAACoiC,MAAM,EAAE;MACXX,MAAM,CAACC,QAAQ,EAAE1nB,KAAK,EAAE2nB,aAAa,EAAEl3B,GAAG,CAAC;;;EAS/C61B,UAAU,CAAC91B,OAAO,CAAE63B,GAAG,IAAK;IAC1B1jB,MAAM,GAAGA,MAAM,CAAC2jB,MAAM,CAACD,GAAG,CAACvH,IAAI,CAAC;GACjC,CAAC;EAEFnc,MAAM,CAAC4jB,UAAU,GAAG,kBAAkB;EAEtC,MAAMC,cAAc,GAAG7jB,MAAM,CAAC9e,GAAG,CAAE0J,CAAC,IAAKA,CAAC,CAACg3B,KAAK,CAAC;EACjD,MAAMkC,UAAU,GAAGD,cAAc,CAACE,IAAI,CAAEnC,KAAK,IAAK1/B,QAAQ,CAACC,QAAQ,CAACy/B,KAAK,CAAC,CAAC;EAE3E,MAAMoC,WAAW,GAAG72B,YAAM,CAAC,EAAE,CAAC;EAE9BC,eAAS,CAAC,MAAM;IACd,IAAI02B,UAAU,EAAE;MACd,MAAMG,YAAY,GAAG/hC,QAAQ,CAACsI,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,EAAE;MAC9C,IAAIu5B,WAAW,CAACz2B,OAAO,CAAC02B,YAAY,CAAC,EAAE;QACrCD,WAAW,CAACz2B,OAAO,CAAC02B,YAAY,CAAC,CAACC,cAAc,CAAC;UAAEC,QAAQ,EAAE,QAAQ;UAAEC,KAAK,EAAE;SAAS,CAAC;;;GAG7F,EAAE,CAACliC,QAAQ,EAAE4hC,UAAU,CAAC,CAAC;EAE1B,oBACEjhC,cAAA,CAAAC,aAAA,CAACD,cAAK,CAACyf,QAAQ,qBACbzf,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA,CAACuhC,uCAAgB;IAACrkB,MAAM,EAAEA,MAAO;IAACskB,aAAa,EAAE;GAAO,CAAC,eACzDzhC,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA,CAACyhC,qBAAM,qBACL1hC,cAAA,CAAAC,aAAA,CAAC0hC,oBAAK;IAAClC,IAAI,EAAEuB,cAAc,CAAC3iC,GAAG,CAAE0gC,KAAK,IAAK,GAAGW,UAAU,IAAIC,KAAK,CAACF,IAAI,CAAC93B,KAAK,CAAC,GAAG,CAAC,CAACk0B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAChzB,IAAI,CAAC,GAAG,CAAC,IAAIk2B,KAAK,EAAE;kBACjH/+B,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KACZyN,MAAM,CAAC9e,GAAG,CAAC,CAACgiC,QAAQ,EAAE7nB,KAAK,KAAK;IAC/B,MAAM;MAAEsgB;KAAW,GAAGuH,QAAQ;IAC9B,MAAMuB,SAAS,GAAG,OAAO9I,SAAS,KAAK,QAAQ,GAAGt7B,KAAK,CAACkV,wBAAwB,CAACC,YAAY,CAACmmB,SAAS,CAAC,GAAGA,SAAS;IAEpH,oBACE94B,cAAA,CAAAC,aAAA;MAAKgJ,GAAG,EAAEuP,KAAM;MAACxI,GAAG,EAAG6xB,EAAE,IAAMV,WAAW,CAACz2B,OAAO,CAAC21B,QAAQ,CAACtB,KAAK,CAAC,GAAG8C,EAAI;MAACnyB,SAAS,EAAC;oBAClF1P,cAAA,CAAAC,aAAA,CAAC2hC,SAAS;MACRzkB,MAAM,EAAE;QAAE,GAAGkjB,QAAQ;QAAE3B,aAAa,EAAE,IAAI;QAAEoD,WAAW,EAAE;OAAO;MAChEzd,QAAQ,EAAEsc,YAAa;MACvBrjC,CAAC,EAAEA,CAAE;MACL06B,QAAQ,EAAE6H;KAEX,CACE,CAAC;GAET,CACE,CACA,CAAC,eACR7/B,cAAA,CAAAC,aAAA,CAAC0hC,oBAAK,qBACJ3hC,cAAA,CAAAC,aAAA,CAAC8hC,uBAAQ;IAAC73B,EAAE,EAAE,GAAGw1B,UAAU,IAAIC,KAAK,CAACF,IAAI,CAAC93B,KAAK,CAAC,GAAG,CAAC,CAACk0B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAChzB,IAAI,CAAC,GAAG,CAAC,IAAIsU,MAAM,CAAC4jB,UAAU;GAAK,CAChG,CACD,CACL,CACF,CACS,CAAC;AAErB,CAAC;;AC7GD,MAAMiB,kBAAkB,GAAGA,MAAM;EAC/B,oBACEhiC,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBAEb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;GAA0B,CAAC,eAE1C1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;GAA2B,CAAC,eAC3C1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;GAA8B,CAC1C,CACF,CAAC,eAEN1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;GAA+B,CAC3C,CAAC,eAGN1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;GAAkC,CAAC,eAElD1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;GAAoC,CAAC,eACpD1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;GAAoC,CAChD,CACF,CAAC,eAGN1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KACZ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAACrR,GAAG,CAAEmK,IAAI,iBAClBxI,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC,WAAW;IAACzG,GAAG,EAAET;kBAC9BxI,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;GAAgC,CAAC,eAChD1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;GAAgC,CAC5C,CACN,CACE,CAAC,eAGN1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KACZ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAACrR,GAAG,CAAEmK,IAAI,iBAClBxI,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC,UAAU;IAACzG,GAAG,EAAET;kBAC7BxI,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;GAAkC,CAAC,eAClD1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;GAAkC,CAC9C,CACN,CACE,CACF,CAAC;AAEV,CAAC;AAED,MAAMuyB,yBAAyB,GAAGA,MAAM;EACtC,oBACEjiC,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KACZ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAACrR,GAAG,CAAEmK,IAAI,iBAClBxI,cAAA,CAAAC,aAAA,CAAC+hC,kBAAkB;IAAC/4B,GAAG,EAAET;GAAO,CACjC,CACE,CAAC;AAEV,CAAC;AAED,MAAM05B,cAAc,GAAGA,MAAM;EAC3B,MAAM;IAAE5kC;GAAG,GAAGC,2BAAc,EAAE;EAC9B,MAAMgV,OAAO,GAAGC,yBAAU,EAAE;EAG5B,MAAM;IAAEhU,IAAI,EAAEqS,YAAY;IAAEnS,SAAS,EAAEoS;GAAmB,GAAGtT,KAAK,CAACmB,KAAK,CAACC,IAAI,CAAC0e,yBAAyB,CACrG;IACE3f,QAAQ,EAAE,QAAQ;IAClB4nB,kBAAkB,EAAE;GACrB,EACD;IACEvmB,OAAO,EAAE,IAAI;IACbue,gBAAgB,EAAE;GAEtB,CAAC;EAED,oBACEvd,cAAA,CAAAC,aAAA,CAACqV,2BAAI;IAAC5F,SAAS,EAAC;kBACd1P,cAAA,CAAAC,aAAA,CAAC2Q,SAAS;IAACE,iBAAiB,EAAEA,iBAAkB;IAACD,YAAY,EAAEA;GAAe,CAAC,eAC/E7Q,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAIyP,SAAS,EAAC;KAAiBpS,CAAC,CAAC,0BAA0B,CAAC,IAAI,0BAA+B,CAAC,EAE/FwT,iBAAiB,gBAChB9Q,cAAA,CAAAC,aAAA,CAACgiC,yBAAyB,MAAE,CAAC,gBAE7BjiC,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KA0CZvR,KAAK,CAACC,OAAO,CAACyS,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEsxB,aAAa,CAAC,KACzCtxB,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEsxB,aAAa,CAACtiC,MAAM,MAClCgR,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEsxB,aAAa,CAAC9jC,GAAG,CAAEwe,MAAM;IAAA,IAAAulB,kBAAA,EAAAC,mBAAA;IAAA,oBACrCriC,cAAA,CAAAC,aAAA;MACEgJ,GAAG,EAAE4T,MAAM,CAAC3W,QAAS;MACrBwJ,SAAS,EAAC,kBAAkB;MAC5BQ,OAAO,EAAEA,MAAMqC,OAAO,CAAC9S,IAAI,CAAC,mCAAmCod,MAAM,CAAC3W,QAAQ,EAAE;oBAGhFlG,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC;oBACb1P,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC;oBACb1P,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC;oBACb1P,cAAA,CAAAC,aAAA,gBAAAmiC,kBAAA,GAAOvlB,MAAM,CAAC5C,UAAU,cAAAmoB,kBAAA,wBAAAC,mBAAA,GAAjBD,kBAAA,CAAoB,CAAC,CAAC,cAAAC,mBAAA,uBAAtBA,mBAAA,CAAwBr6B,WAAW,EAAS,CAChD,CAAC,eAENhI,cAAA,CAAAC,aAAA,2BACED,cAAA,CAAAC,aAAA,aAAK4c,MAAM,CAAC5C,UAAe,CAAC,eAC5Bja,cAAA,CAAAC,aAAA;MAAMyP,SAAS,EAAC;OAAmBpS,CAAC,CAAC,aAAa,CAAC,IAAI,aAAoB,CACxE,CACF,CAAC,eAEN0C,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC;oBACb1P,cAAA,CAAAC,aAAA;MAAMyP,SAAS,EAAC;OAAmBpS,CAAC,CAAC,YAAY,CAAC,IAAI,YAAY,EAAC,IAAQ,CAAC,eAC5E0C,cAAA,CAAAC,aAAA;MAAMyP,SAAS,EAAC;OAAmBmN,MAAM,CAACgB,gBAAuB,CAC9D,CACF,CAAC,eAGN7d,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC;oBACb1P,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC;oBACb1P,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC,mBAAmB;MAACG,KAAK,EAAE;QAAEa,KAAK,EAAE,GAAGmM,MAAM,CAACmC,eAAe;;KAAQ,CACjF,CAAC,eAENhf,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC;oBACb1P,cAAA,CAAAC,aAAA,eAAO3C,CAAC,CAAC,UAAU,CAAC,IAAI,UAAiB,CAAC,eAC1C0C,cAAA,CAAAC,aAAA,eAAO4c,MAAM,CAACmC,eAAe,EAAC,GAAO,CAClC,CACF,CAAC,eAGNhf,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC;oBACb1P,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC;oBACb1P,cAAA,CAAAC,aAAA;MAAMyP,SAAS,EAAC;OAAcmN,MAAM,CAACylB,gBAAuB,CAAC,eAC7DtiC,cAAA,CAAAC,aAAA;MAAMyP,SAAS,EAAC;OAAcpS,CAAC,CAAC,aAAa,CAAC,IAAI,aAAoB,CACnE,CAAC,eAEN0C,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC;oBACb1P,cAAA,CAAAC,aAAA;MAAMyP,SAAS,EAAC;OAAcmN,MAAM,CAAC0lB,cAAqB,CAAC,eAC3DviC,cAAA,CAAAC,aAAA;MAAMyP,SAAS,EAAC;OAAcpS,CAAC,CAAC,WAAW,CAAC,IAAI,WAAkB,CAC/D,CAAC,eAEN0C,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC;oBACb1P,cAAA,CAAAC,aAAA;MAAMyP,SAAS,EAAC;OAAcmN,MAAM,CAAC1L,gBAAuB,CAAC,eAC7DnR,cAAA,CAAAC,aAAA;MAAMyP,SAAS,EAAC;OAAcpS,CAAC,CAAC,yBAAyB,CAAC,IAAI,YAAmB,CAC9E,CACF,CAAC,eAGN0C,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC;oBACb1P,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC;oBACb1P,cAAA,CAAAC,aAAA;MAAMyP,SAAS,EAAC;OAAapS,CAAC,CAAC,WAAW,CAAC,IAAI,WAAkB,CAAC,eAClE0C,cAAA,CAAAC,aAAA,iBAAS4c,MAAM,CAACzL,oBAA6B,CAC1C,CAAC,eAENpR,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC;oBACb1P,cAAA,CAAAC,aAAA;MAAMyP,SAAS,EAAC;OAAapS,CAAC,CAAC,SAAS,CAAC,IAAI,SAAgB,CAAC,eAC9D0C,cAAA,CAAAC,aAAA,iBAAS4c,MAAM,CAAC5L,kBAA2B,CACxC,CAAC,eAENjR,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC;oBACb1P,cAAA,CAAAC,aAAA;MAAMyP,SAAS,EAAC;OAAapS,CAAC,CAAC,4BAA4B,CAAC,CAACuK,WAAW,EAAE,IAAI,sBAA6B,CAAC,eAC5G7H,cAAA,CAAAC,aAAA,iBAAS4c,MAAM,CAACxL,oBAA6B,CAC1C,CACF,CACF,CAAC;GACP,CAAC,CACD,CAEJ,CACD,CAAC;AAEX,CAAC;;AC9MD,MAAMmxB,qBAAqB,GAAGA,MAAM;EAAA,IAAAplC,qBAAA,EAAAixB,qBAAA,EAAAwF,sBAAA,EAAAlX,qBAAA,EAAA8lB,gBAAA;EAClC,MAAM;IAAEnlC;GAAG,GAAGC,2BAAc,EAAE;EAC9B,MAAMgV,OAAO,GAAGC,yBAAU,EAAE;EAC5B,MAAM7U,QAAQ,GAAGH,KAAK,CAACI,UAAU,CAACC,kBAAkB,EAAE,IAAI,QAAQ;EAClE,MAAM;IAAEub,EAAE,EAAEnT;GAAc,GAAG2W,wBAAS,EAAE;EACxC,MAAM5R,YAAY,IAAA5N,qBAAA,GAAGI,KAAK,CAACO,cAAc,CAACC,GAAG,CAAC,MAAM,CAAC,cAAAZ,qBAAA,uBAAhCA,qBAAA,CAAkCa,IAAI;EAC3D,MAAM,CAACyL,mBAAmB,EAAEC,sBAAsB,CAAC,GAAGC,cAAQ,CAAC,KAAK,CAAC;EAGrE,MAAM;IAAEpL,IAAI,EAAEkkC,wBAAwB;IAAEhkC,SAAS,EAAEikC;GAA2B,GAAGnlC,KAAK,CAACmB,KAAK,CAACoe,GAAG,CAAC6lB,mBAAmB,CAClHjlC,QAAQ,EACR;IAAEiD,MAAM,EAAE;GAAU,EACpB;IAAE5B,OAAO,EAAE,CAAC,CAACrB,QAAQ;IAAEyf,SAAS,EAAE;GACpC,CAAC;EAGD,MAAMC,cAAc,GAAGhK,aAAO,CAAC,MAAM;IACnC,MAAMwvB,QAAQ,GAAG58B,YAAY,KAAI+E,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEsoB,IAAI;IACnD,IAAI,CAACuP,QAAQ,IAAI,EAACH,wBAAwB,aAAxBA,wBAAwB,eAAxBA,wBAAwB,CAAEI,WAAW,GAAE,OAAO,IAAI;IACpE,MAAMC,UAAU,GAAGL,wBAAwB,CAACI,WAAW,CAACpP,IAAI,CACzDpU,CAAC;MAAA,IAAA0jB,KAAA,EAAAC,QAAA,EAAAC,aAAA;MAAA,OAAK,EAAAF,KAAA,GAAA1jB,CAAC,CAAClG,EAAE,cAAA4pB,KAAA,uBAAJA,KAAA,CAAMn7B,WAAW,EAAE,OAAKg7B,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEh7B,WAAW,EAAE,KAAI,EAAAo7B,QAAA,GAAA3jB,CAAC,CAACpD,KAAK,cAAA+mB,QAAA,wBAAAC,aAAA,GAAPD,QAAA,CAAS3P,IAAI,cAAA4P,aAAA,uBAAbA,aAAA,CAAer7B,WAAW,EAAE,OAAKg7B,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEh7B,WAAW,EAAE;KACpH,CAAC;IACD,OAAO,CAAAk7B,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAE78B,QAAQ,KAAI,IAAI;GACpC,EAAE,CAACD,YAAY,EAAE+E,YAAY,EAAE03B,wBAAwB,CAAC,CAAC;EAG1D,MAAM;IAAEhkC,SAAS,EAAEoS,iBAAiB;IAAEtS,IAAI,EAAEqS;GAAc,GAAGrT,KAAK,CAACmB,KAAK,CAACC,IAAI,CAAC0e,yBAAyB,CACrG;IAAEpX,QAAQ,EAAEmX;GAAgB,EAC5B;IACEre,OAAO,EAAE,CAAC,CAACrB,QAAQ;IACnB4f,gBAAgB,EAAE;GAEtB,CAAC;EAGD,MAAM;IAAE/e,IAAI,EAAE2kC,sBAAsB;IAAEzkC,SAAS,EAAE0kC;GAAyB,GAAG5lC,KAAK,CAACmB,KAAK,CAACoe,GAAG,CAACsmB,iBAAiB,CAC5G1lC,QAAQ,EACR;IAAEiD,MAAM,EAAE;GAAU,EACpB;IAAE5B,OAAO,EAAE,CAAC,CAACrB,QAAQ;IAAEyf,SAAS,EAAE;GACpC,CAAC;EAGD,MAAM;IAAE5e,IAAI,EAAE8kC,oBAAoB;IAAE5kC,SAAS,EAAEoe;GAAuB,GAAGtf,KAAK,CAACmB,KAAK,CAACoe,GAAG,CAACwmB,YAAY,CACnG5lC,QAAQ,EACR;IAAEiD,MAAM,EAAE;GAAU,EACpB;IAAE5B,OAAO,EAAE,CAAC,CAACrB,QAAQ;IAAEyf,SAAS,EAAE;GACpC,CAAC;EAED,MAAMomB,UAAU,GAAGnwB,aAAO,CAAC,MAAM;IAC/B,MAAMowB,eAAe,GAAGx9B,YAAY,KAAI+E,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEsoB,IAAI;IAC1D,IAAI,CAACmQ,eAAe,EAAE,OAAO,IAAI;IAIjC,IAAIC,oBAAoB,GAAGz9B,YAAY;IACvC,IAAI,CAACy9B,oBAAoB,IAAIhB,wBAAwB,aAAxBA,wBAAwB,eAAxBA,wBAAwB,CAAEI,WAAW,IAAIW,eAAe,EAAE;MACrF,MAAME,OAAO,GAAGjB,wBAAwB,CAACI,WAAW,CAACpP,IAAI,CACtDpU,CAAC;QAAA,IAAAskB,SAAA,EAAAC,cAAA,EAAAC,MAAA;QAAA,OAAK,EAAAF,SAAA,GAAAtkB,CAAC,CAACpD,KAAK,cAAA0nB,SAAA,wBAAAC,cAAA,GAAPD,SAAA,CAAStQ,IAAI,cAAAuQ,cAAA,uBAAbA,cAAA,CAAeh8B,WAAW,EAAE,OAAK47B,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAE57B,WAAW,EAAE,KAAI,EAAAi8B,MAAA,GAAAxkB,CAAC,CAAClG,EAAE,cAAA0qB,MAAA,uBAAJA,MAAA,CAAMj8B,WAAW,EAAE,OAAK47B,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAE57B,WAAW,EAAE;OAClI,CAAC;MACD67B,oBAAoB,GAAGC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEvqB,EAAE;;IAGpC,MAAMypB,QAAQ,GAAGa,oBAAoB,IAAID,eAAe;IAGxD,IAAIV,UAAU,GAAG,IAAI;IACrB,IAAIL,wBAAwB,aAAxBA,wBAAwB,eAAxBA,wBAAwB,CAAEI,WAAW,EAAE;MACzCC,UAAU,GAAGL,wBAAwB,CAACI,WAAW,CAACpP,IAAI,CACnDpU,CAAC;QAAA,IAAAykB,MAAA,EAAAC,SAAA,EAAAC,cAAA;QAAA,OAAK,EAAAF,MAAA,GAAAzkB,CAAC,CAAClG,EAAE,cAAA2qB,MAAA,uBAAJA,MAAA,CAAMl8B,WAAW,EAAE,OAAKg7B,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEh7B,WAAW,EAAE,KAAI,EAAAm8B,SAAA,GAAA1kB,CAAC,CAACpD,KAAK,cAAA8nB,SAAA,wBAAAC,cAAA,GAAPD,SAAA,CAAS1Q,IAAI,cAAA2Q,cAAA,uBAAbA,cAAA,CAAep8B,WAAW,EAAE,OAAKg7B,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEh7B,WAAW,EAAE;OACpH,CAAC;;IAIH,IAAIq8B,cAAc,GAAG,IAAI;IACzB,IAAIrzB,YAAY,aAAZA,YAAY,eAAZA,YAAY,CAAEwO,gBAAgB,IAAIwjB,QAAQ,EAAE;MAC9CqB,cAAc,GAAGrzB,YAAY,CAACwO,gBAAgB,CAACqU,IAAI,CAChDpU,CAAC;QAAA,IAAA6kB,eAAA,EAAAC,MAAA;QAAA,OAAK,EAAAD,eAAA,GAAA7kB,CAAC,CAACrZ,YAAY,cAAAk+B,eAAA,uBAAdA,eAAA,CAAgBt8B,WAAW,EAAE,OAAKg7B,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEh7B,WAAW,EAAE,KAAI,EAAAu8B,MAAA,GAAA9kB,CAAC,CAAClG,EAAE,cAAAgrB,MAAA,uBAAJA,MAAA,CAAMv8B,WAAW,EAAE,OAAKg7B,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEh7B,WAAW,EAAE;OACrH,CAAC;;IAIH,IAAIk7B,UAAU,EAAE;MAAA,IAAAsB,eAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,kBAAA,EAAAC,kBAAA,EAAAC,kBAAA,EAAAC,kBAAA,EAAAC,kBAAA,EAAAC,kBAAA;MACd,MAAMC,gBAAgB,GAAG3B,sBAAsB,aAAtBA,sBAAsB,eAAtBA,sBAAsB,CAAE4B,SAAS,GACtD5B,sBAAsB,CAAC4B,SAAS,CAC7Bp8B,MAAM,CAAEq8B,IAAI;QAAA,IAAAC,iBAAA;QAAA,OAAKD,IAAI,CAAC/+B,YAAY,MAAM88B,UAAU,CAAC3pB,EAAE,MAAA6rB,iBAAA,GAAIlC,UAAU,CAAC7mB,KAAK,cAAA+oB,iBAAA,uBAAhBA,iBAAA,CAAkB3R,IAAI,EAAC;QAAC,CACjFj1B,GAAG,CAAE2mC,IAAI,IAAK;QAAA,IAAAE,YAAA,EAAAC,YAAA,EAAAC,YAAA,EAAAC,YAAA,EAAAC,YAAA,EAAAC,UAAA,EAAAC,WAAA,EAAAC,WAAA,EAAAC,WAAA;QACb,IAAIC,SAAS,GAAG,IAAI;QACpB,IAAI90B,YAAY,aAAZA,YAAY,eAAZA,YAAY,CAAEwO,gBAAgB,EAAE;UAClC,KAAK,MAAMumB,MAAM,IAAI/0B,YAAY,CAACwO,gBAAgB,EAAE;YAAA,IAAAwmB,oBAAA,EAAAC,cAAA,EAAAC,UAAA,EAAAC,eAAA,EAAAC,iBAAA;YAClD,IACE,EAAAJ,oBAAA,GAAAD,MAAM,CAAC3/B,YAAY,cAAA4/B,oBAAA,uBAAnBA,oBAAA,CAAqBh+B,WAAW,EAAE,QAAAi+B,cAAA,GAAK/C,UAAU,CAAC3pB,EAAE,cAAA0sB,cAAA,uBAAbA,cAAA,CAAej+B,WAAW,EAAE,KACnE,EAAAk+B,UAAA,GAAAH,MAAM,CAACxsB,EAAE,cAAA2sB,UAAA,uBAATA,UAAA,CAAWl+B,WAAW,EAAE,QAAAm+B,eAAA,GAAKjD,UAAU,CAAC3pB,EAAE,cAAA4sB,eAAA,uBAAbA,eAAA,CAAen+B,WAAW,EAAE,GAEzD;YACF,MAAMq+B,WAAW,IAAAD,iBAAA,GAAGL,MAAM,CAACb,SAAS,cAAAkB,iBAAA,uBAAhBA,iBAAA,CAAkBvS,IAAI,CACvCpU,CAAC;cAAA,IAAA6mB,aAAA,EAAAC,QAAA,EAAAC,cAAA,EAAAC,WAAA,EAAAC,gBAAA,EAAAC,MAAA,EAAAC,SAAA,EAAAC,MAAA,EAAAC,YAAA,EAAAC,iBAAA;cAAA,OACCtnB,CAAC,CAACtZ,UAAU,KACV,EAAAmgC,aAAA,GAAA7mB,CAAC,CAACtZ,UAAU,cAAAmgC,aAAA,uBAAZA,aAAA,CAAct+B,WAAW,EAAE,QAAAu+B,QAAA,GAAKpB,IAAI,CAAC5rB,EAAE,cAAAgtB,QAAA,uBAAPA,QAAA,CAASv+B,WAAW,EAAE,KACrD,EAAAw+B,cAAA,GAAA/mB,CAAC,CAACtZ,UAAU,cAAAqgC,cAAA,uBAAZA,cAAA,CAAcx+B,WAAW,EAAE,QAAAy+B,WAAA,GAAKtB,IAAI,CAAC9oB,KAAK,cAAAoqB,WAAA,wBAAAC,gBAAA,GAAVD,WAAA,CAAYhT,IAAI,cAAAiT,gBAAA,uBAAhBA,gBAAA,CAAkB1+B,WAAW,EAAE,EAAC,IACnEyX,CAAC,CAAClG,EAAE,KAAK,EAAAotB,MAAA,GAAAlnB,CAAC,CAAClG,EAAE,cAAAotB,MAAA,uBAAJA,MAAA,CAAM3+B,WAAW,EAAE,QAAA4+B,SAAA,GAAKzB,IAAI,CAAC5rB,EAAE,cAAAqtB,SAAA,uBAAPA,SAAA,CAAS5+B,WAAW,EAAE,KAAI,EAAA6+B,MAAA,GAAApnB,CAAC,CAAClG,EAAE,cAAAstB,MAAA,uBAAJA,MAAA,CAAM7+B,WAAW,EAAE,QAAA8+B,YAAA,GAAK3B,IAAI,CAAC9oB,KAAK,cAAAyqB,YAAA,wBAAAC,iBAAA,GAAVD,YAAA,CAAYrT,IAAI,cAAAsT,iBAAA,uBAAhBA,iBAAA,CAAkB/+B,WAAW,EAAE,EAAE;aACzH,CAAC;YACD,IAAIq+B,WAAW,EAAE;cACfP,SAAS,GAAGO,WAAW;cACvB;;;;QAKN,OAAO;UACLlgC,UAAU,EAAEg/B,IAAI,CAAC5rB,EAAE,MAAA8rB,YAAA,GAAIF,IAAI,CAAC9oB,KAAK,cAAAgpB,YAAA,uBAAVA,YAAA,CAAY5R,IAAI;UACvCtZ,YAAY,EAAEgrB,IAAI,CAAC/5B,IAAI,MAAAk6B,YAAA,GAAIH,IAAI,CAAC9oB,KAAK,cAAAipB,YAAA,uBAAVA,YAAA,CAAYl6B,IAAI,KAAI,KAAK;UACpDpJ,QAAQ,EAAE,EAAAujC,YAAA,GAAAJ,IAAI,CAAC9oB,KAAK,cAAAkpB,YAAA,uBAAVA,YAAA,CAAYntB,YAAY,KAAI+sB,IAAI,CAACnjC,QAAQ,IAAI,KAAK;UAC5DG,KAAK,EAAE,EAAAqjC,YAAA,GAAAL,IAAI,CAAC9oB,KAAK,cAAAmpB,YAAA,uBAAVA,YAAA,CAAYv+B,OAAO,KAAI,KAAK;UACnCjE,MAAM,EAAE,EAAAyiC,YAAA,GAAAN,IAAI,CAAC9oB,KAAK,cAAAopB,YAAA,uBAAVA,YAAA,CAAYziC,MAAM,KAAI,KAAK;UACnCjC,MAAM,EAAEokC,IAAI,CAACpkC,MAAM,IAAI,QAAQ;UAC/Bie,SAAS,EAAE,EAAA0mB,UAAA,GAAAI,SAAS,cAAAJ,UAAA,uBAATA,UAAA,CAAW1mB,SAAS,KAAI,CAAC;UACpCC,aAAa,EAAE,EAAA0mB,WAAA,GAAAG,SAAS,cAAAH,WAAA,uBAATA,WAAA,CAAW1mB,aAAa,KAAI,CAAC;UAC5CC,WAAW,EAAE,EAAA0mB,WAAA,GAAAE,SAAS,cAAAF,WAAA,uBAATA,WAAA,CAAW1mB,WAAW,KAAI,CAAC;UACxCC,eAAe,EAAE,EAAA0mB,WAAA,GAAAC,SAAS,cAAAD,WAAA,uBAATA,WAAA,CAAW1mB,eAAe,KAAI;SAChD;OACF,CAAC,GACJ,EAAE;MAEN,MAAMH,SAAS,GAAG,EAAAwlB,eAAA,GAAAH,cAAc,cAAAG,eAAA,uBAAdA,eAAA,CAAgBxlB,SAAS,KAAIimB,gBAAgB,CAAC+B,MAAM,CAAC,CAACC,GAAG,EAAExnB,CAAC,KAAKwnB,GAAG,IAAIxnB,CAAC,CAACT,SAAS,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;MAC/G,MAAMC,aAAa,GAAG,EAAAwlB,gBAAA,GAAAJ,cAAc,cAAAI,gBAAA,uBAAdA,gBAAA,CAAgBxlB,aAAa,KAAIgmB,gBAAgB,CAAC+B,MAAM,CAAC,CAACC,GAAG,EAAExnB,CAAC,KAAKwnB,GAAG,IAAIxnB,CAAC,CAACR,aAAa,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;MAC3H,MAAMC,WAAW,GAAG,EAAAwlB,gBAAA,GAAAL,cAAc,cAAAK,gBAAA,uBAAdA,gBAAA,CAAgBxlB,WAAW,KAAI+lB,gBAAgB,CAAC+B,MAAM,CAAC,CAACC,GAAG,EAAExnB,CAAC,KAAKwnB,GAAG,IAAIxnB,CAAC,CAACP,WAAW,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;MACrH,MAAMC,eAAe,GAAGklB,cAAc,GAAGA,cAAc,CAACllB,eAAe,GAAGH,SAAS,GAAG,CAAC,GAAGtR,IAAI,CAACC,KAAK,CAAEsR,aAAa,GAAGD,SAAS,GAAI,GAAG,CAAC,GAAG,CAAC;MAE3I,OAAO;QACL5Y,YAAY,EAAE88B,UAAU,CAAC3pB,EAAE,MAAAorB,kBAAA,GAAIzB,UAAU,CAAC7mB,KAAK,cAAAsoB,kBAAA,uBAAhBA,kBAAA,CAAkBlR,IAAI;QACrDpZ,cAAc,EAAE6oB,UAAU,CAAC93B,IAAI,MAAAw5B,kBAAA,GAAI1B,UAAU,CAAC7mB,KAAK,cAAAuoB,kBAAA,uBAAhBA,kBAAA,CAAkBx5B,IAAI,KAAI,KAAK;QAClEpJ,QAAQ,EAAE,EAAA6iC,kBAAA,GAAA3B,UAAU,CAAC7mB,KAAK,cAAAwoB,kBAAA,uBAAhBA,kBAAA,CAAkBzsB,YAAY,KAAI8qB,UAAU,CAAClhC,QAAQ,IAAI,KAAK;QACxEG,KAAK,EAAE,EAAA2iC,kBAAA,GAAA5B,UAAU,CAAC7mB,KAAK,cAAAyoB,kBAAA,uBAAhBA,kBAAA,CAAkB79B,OAAO,OAAA89B,kBAAA,GAAI7B,UAAU,CAAC7mB,KAAK,cAAA0oB,kBAAA,uBAAhBA,kBAAA,CAAkB5iC,KAAK,KAAI+gC,UAAU,CAAC/gC,KAAK,IAAI+gC,UAAU,CAACj8B,OAAO,IAAI,KAAK;QAC9GjE,MAAM,EAAE,EAAAgiC,kBAAA,GAAA9B,UAAU,CAAC7mB,KAAK,cAAA2oB,kBAAA,uBAAhBA,kBAAA,CAAkBhiC,MAAM,KAAIkgC,UAAU,CAAClgC,MAAM,IAAI,KAAK;QAC9DjC,MAAM,EAAEmiC,UAAU,CAACniC,MAAM,IAAI,QAAQ;QACrCmmC,cAAc,EAAEhE,UAAU,CAACgE,cAAc,IAAI,KAAK;QAClD7gC,QAAQ,EAAE68B,UAAU,CAAC78B,QAAQ;QAC7B6+B,SAAS,EAAED,gBAAgB;QAC3BjmB,SAAS;QACTC,aAAa;QACbC,WAAW;QACXC;OACD;;IAIH,IAAIklB,cAAc,EAAE;MAAA,IAAA8C,kBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA;MAClB,MAAMC,MAAM,GAAG,CAAAxE,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEh7B,WAAW,EAAE,OAAKmD,YAAY,aAAZA,YAAY,wBAAAg8B,kBAAA,GAAZh8B,YAAY,CAAEsoB,IAAI,cAAA0T,kBAAA,uBAAlBA,kBAAA,CAAoBn/B,WAAW,EAAE;MAC5E,MAAMqS,cAAc,GAAGmtB,MAAM,GAAG,CAAAr8B,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEC,IAAI,KAAIi5B,cAAc,CAAChqB,cAAc,IAAI,KAAK,GAAGgqB,cAAc,CAAChqB,cAAc,IAAI,KAAK;MACrI,MAAMrY,QAAQ,GAAGwlC,MAAM,GAAG,CAAAr8B,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEiN,YAAY,KAAIisB,cAAc,CAACriC,QAAQ,IAAI,KAAK,GAAGqiC,cAAc,CAACriC,QAAQ,IAAI,KAAK;MAE3H,MAAMylC,qBAAqB,GAAG5E,wBAAwB,aAAxBA,wBAAwB,wBAAAuE,qBAAA,GAAxBvE,wBAAwB,CAAEI,WAAW,cAAAmE,qBAAA,uBAArCA,qBAAA,CAAuCvT,IAAI,CACtEpU,CAAC;QAAA,IAAAioB,MAAA,EAAA/9B,IAAA,EAAAg+B,SAAA,EAAAC,cAAA,EAAAp3B,KAAA;QAAA,OACA,EAAAk3B,MAAA,GAAAjoB,CAAC,CAAClG,EAAE,cAAAmuB,MAAA,uBAAJA,MAAA,CAAM1/B,WAAW,EAAE,QAAA2B,IAAA,GAAM06B,cAAc,CAACj+B,YAAY,IAAIi+B,cAAc,CAAC9qB,EAAE,cAAA5P,IAAA,uBAAjDA,IAAA,CAAoD3B,WAAW,EAAE,KACzF,EAAA2/B,SAAA,GAAAloB,CAAC,CAACpD,KAAK,cAAAsrB,SAAA,wBAAAC,cAAA,GAAPD,SAAA,CAASlU,IAAI,cAAAmU,cAAA,uBAAbA,cAAA,CAAe5/B,WAAW,EAAE,QAAAwI,KAAA,GAAM6zB,cAAc,CAACj+B,YAAY,IAAIi+B,cAAc,CAAC9qB,EAAE,cAAA/I,KAAA,uBAAjDA,KAAA,CAAoDxI,WAAW,EAAE;OACtG,CAAC;MAED,MAAM7F,KAAK,GACT,CAAAslC,qBAAqB,aAArBA,qBAAqB,wBAAAJ,qBAAA,GAArBI,qBAAqB,CAAEprB,KAAK,cAAAgrB,qBAAA,uBAA5BA,qBAAA,CAA8BpgC,OAAO,MACrCwgC,qBAAqB,aAArBA,qBAAqB,wBAAAH,sBAAA,GAArBG,qBAAqB,CAAEprB,KAAK,cAAAirB,sBAAA,uBAA5BA,sBAAA,CAA8BnlC,KAAK,MACnCslC,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAEtlC,KAAK,MAC3BqlC,MAAM,GAAGr8B,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAElE,OAAO,GAAG,IAAI,CAAC,IACvCo9B,cAAc,CAACliC,KAAK,IACpB,KAAK;MACP,MAAMa,MAAM,GACV,CAAAykC,qBAAqB,aAArBA,qBAAqB,wBAAAF,sBAAA,GAArBE,qBAAqB,CAAEprB,KAAK,cAAAkrB,sBAAA,uBAA5BA,sBAAA,CAA8BvkC,MAAM,MACpCykC,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAEzkC,MAAM,MAC5BwkC,MAAM,GAAGr8B,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEnI,MAAM,GAAG,IAAI,CAAC,IACtCqhC,cAAc,CAACrhC,MAAM,IACrB,KAAK;MAEP,MAAM6kC,eAAe,GAAGxD,cAAc,CAACa,SAAS,GAC5Cb,cAAc,CAACa,SAAS,CAAC1mC,GAAG,CAAE2mC,IAAI,IAAK;QAAA,IAAA2C,qBAAA,EAAAC,kBAAA,EAAAC,mBAAA,EAAAC,mBAAA,EAAAC,mBAAA,EAAAC,mBAAA;QACrC,MAAM9B,WAAW,GAAG/C,sBAAsB,aAAtBA,sBAAsB,wBAAAwE,qBAAA,GAAtBxE,sBAAsB,CAAE4B,SAAS,cAAA4C,qBAAA,uBAAjCA,qBAAA,CAAmCjU,IAAI,CACxDpU,CAAC;UAAA,IAAA2oB,MAAA,EAAAC,gBAAA,EAAAC,SAAA,EAAAC,cAAA,EAAAC,iBAAA;UAAA,OAAK,EAAAJ,MAAA,GAAA3oB,CAAC,CAAClG,EAAE,cAAA6uB,MAAA,uBAAJA,MAAA,CAAMpgC,WAAW,EAAE,QAAAqgC,gBAAA,GAAKlD,IAAI,CAACh/B,UAAU,cAAAkiC,gBAAA,uBAAfA,gBAAA,CAAiBrgC,WAAW,EAAE,KAAI,EAAAsgC,SAAA,GAAA7oB,CAAC,CAACpD,KAAK,cAAAisB,SAAA,wBAAAC,cAAA,GAAPD,SAAA,CAAS7U,IAAI,cAAA8U,cAAA,uBAAbA,cAAA,CAAevgC,WAAW,EAAE,QAAAwgC,iBAAA,GAAKrD,IAAI,CAACh/B,UAAU,cAAAqiC,iBAAA,uBAAfA,iBAAA,CAAiBxgC,WAAW,EAAE;SAClI,CAAC;QAED,OAAO;UACL7B,UAAU,EAAEg/B,IAAI,CAACh/B,UAAU,IAAIg/B,IAAI,CAAC5rB,EAAE;UACtCY,YAAY,EAAE,CAAAksB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEj7B,IAAI,MAAIi7B,WAAW,aAAXA,WAAW,wBAAA0B,kBAAA,GAAX1B,WAAW,CAAEhqB,KAAK,cAAA0rB,kBAAA,uBAAlBA,kBAAA,CAAoB38B,IAAI,KAAI+5B,IAAI,CAAChrB,YAAY,IAAI,KAAK;UACzFnY,QAAQ,EAAE,CAAAqkC,WAAW,aAAXA,WAAW,wBAAA2B,mBAAA,GAAX3B,WAAW,CAAEhqB,KAAK,cAAA2rB,mBAAA,uBAAlBA,mBAAA,CAAoB5vB,YAAY,MAAIiuB,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAErkC,QAAQ,KAAImjC,IAAI,CAACnjC,QAAQ,IAAI,KAAK;UAC7FG,KAAK,EAAE,CAAAkkC,WAAW,aAAXA,WAAW,wBAAA4B,mBAAA,GAAX5B,WAAW,CAAEhqB,KAAK,cAAA4rB,mBAAA,uBAAlBA,mBAAA,CAAoBhhC,OAAO,MAAIo/B,WAAW,aAAXA,WAAW,wBAAA6B,mBAAA,GAAX7B,WAAW,CAAEhqB,KAAK,cAAA6rB,mBAAA,uBAAlBA,mBAAA,CAAoB/lC,KAAK,MAAIkkC,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAElkC,KAAK,KAAIgjC,IAAI,CAAChjC,KAAK,IAAI,KAAK;UAC5Ga,MAAM,EAAE,CAAAqjC,WAAW,aAAXA,WAAW,wBAAA8B,mBAAA,GAAX9B,WAAW,CAAEhqB,KAAK,cAAA8rB,mBAAA,uBAAlBA,mBAAA,CAAoBnlC,MAAM,MAAIqjC,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAErjC,MAAM,KAAImiC,IAAI,CAACniC,MAAM,IAAI,KAAK;UACjFjC,MAAM,EAAE,CAAAslC,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEtlC,MAAM,KAAIokC,IAAI,CAACpkC,MAAM,IAAI,QAAQ;UACtDie,SAAS,EAAEmmB,IAAI,CAACnmB,SAAS,IAAI,CAAC;UAC9BC,aAAa,EAAEkmB,IAAI,CAAClmB,aAAa,IAAI,CAAC;UACtCC,WAAW,EAAEimB,IAAI,CAACjmB,WAAW,IAAI,CAAC;UAClCC,eAAe,EAAEgmB,IAAI,CAAChmB,eAAe,IAAI;SAC1C;OACF,CAAC,GACF,EAAE;MAEN,OAAO;QACL/Y,YAAY,EAAEi+B,cAAc,CAACj+B,YAAY,IAAIi+B,cAAc,CAAC9qB,EAAE;QAC9Dc,cAAc;QACdrY,QAAQ;QACRG,KAAK;QACLa,MAAM;QACNjC,MAAM,EAAEsjC,cAAc,CAACtjC,MAAM,IAAI,QAAQ;QACzCmmC,cAAc,EAAE7C,cAAc,CAAC6C,cAAc,IAAI,KAAK;QACtD7gC,QAAQ,EAAEg+B,cAAc,CAACh+B,QAAQ;QACjC6+B,SAAS,EAAE2C,eAAe;QAC1B7oB,SAAS,EAAEqlB,cAAc,CAACrlB,SAAS,IAAI,CAAC;QACxCC,aAAa,EAAEolB,cAAc,CAACplB,aAAa,IAAI,CAAC;QAChDC,WAAW,EAAEmlB,cAAc,CAACnlB,WAAW,IAAI,CAAC;QAC5CC,eAAe,EAAEklB,cAAc,CAACllB,eAAe,IAAI;OACpD;;IAGH,OAAO,IAAI;GACZ,EAAE,CAACnO,YAAY,EAAE6xB,wBAAwB,EAAES,sBAAsB,EAAEl9B,YAAY,EAAE+E,YAAY,CAAC,CAAC;EAEhG,MAAMtC,QAAQ,GAAG,CAAA86B,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEtpB,cAAc,KAAI,KAAK;EACpD,MAAMjC,YAAY,GAAG,CAAAurB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAE3hC,QAAQ,KAAI,KAAK;EAClD,MAAMG,KAAK,GAAG,CAAAwhC,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAExhC,KAAK,MAAK,CAAAwhC,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEv9B,YAAY,OAAK+E,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEsoB,IAAI,IAAGtoB,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAElE,OAAO,GAAG,IAAI,CAAC,IAAI,KAAK;EAC5H,MAAMjE,MAAM,GAAG,CAAA2gC,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAE3gC,MAAM,MAAK,CAAA2gC,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEv9B,YAAY,OAAK+E,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEsoB,IAAI,IAAGtoB,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEnI,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK;EAC7H,MAAMjC,MAAM,GAAG,CAAA4iC,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAE5iC,MAAM,KAAI,KAAK;EAC1C,MAAM0nC,YAAY,GAAG,CAAA9E,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEuD,cAAc,KAAI,KAAK;EAExD,MAAM9sB,UAAU,GAAG5G,aAAO,CAAC,MAAM;IAAA,IAAAk1B,qBAAA;IAC/B,IAAI,CAACjF,oBAAoB,IAAI,CAACE,UAAU,EAAE,OAAO,KAAK;IACtD,MAAMnmB,cAAc,GAAGmmB,UAAU,CAACt9B,QAAQ;IAC1C,IAAI,CAACmX,cAAc,EAAE,OAAO,KAAK;IACjC,MAAMmrB,aAAa,GAAGlF,oBAAoB,CAAC5P,IAAI,CAC5ClI,CAAC;MAAA,IAAAid,aAAA,EAAAC,cAAA;MAAA,OACA,EAAAD,aAAA,GAAAjd,CAAC,CAACmd,UAAU,cAAAF,aAAA,uBAAZA,aAAA,CAAcrvB,EAAE,MAAKiE,cAAc,IAAI,EAAAqrB,cAAA,GAAAld,CAAC,CAACmd,UAAU,cAAAD,cAAA,uBAAZA,cAAA,CAAcxiC,QAAQ,MAAKmX,cAAc,IAAImO,CAAC,CAACpS,EAAE,KAAKiE,cAAc,IAAImO,CAAC,CAACtlB,QAAQ,KAAKmX,cAAc;KAChJ,CAAC;IACD,OAAO,CAAAmrB,aAAa,aAAbA,aAAa,wBAAAD,qBAAA,GAAbC,aAAa,CAAEG,UAAU,cAAAJ,qBAAA,uBAAzBA,qBAAA,CAA2Bt9B,IAAI,MAAIu9B,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEv9B,IAAI,KAAI,KAAK;GACvE,EAAE,CAACq4B,oBAAoB,EAAEE,UAAU,CAAC,CAAC;EAEtC,MAAMuB,SAAS,GAAG1xB,aAAO,CAAC,MAAM;IAC9B,OAAO,CAAAmwB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEuB,SAAS,KAAI,EAAE;GACnC,EAAE,CAACvB,UAAU,CAAC,CAAC;EAEhB,MAAM,CAACxxB,WAAW,EAAEqM,cAAc,CAAC,GAAGzU,cAAQ,CAAC,CAAC,CAAC;EACjD,MAAM,CAAC0U,QAAQ,EAAEC,WAAW,CAAC,GAAG3U,cAAQ,CAAC,EAAE,CAAC;EAE5C,MAAMumB,SAAS,IAAA9B,qBAAA,GAAG7wB,KAAK,CAAC01B,WAAW,CAACC,OAAO,EAAE,cAAA9E,qBAAA,wBAAAwF,sBAAA,GAA3BxF,qBAAA,CAA6BpwB,IAAI,cAAA41B,sBAAA,uBAAjCA,sBAAA,CAAmC31B,KAAK;EAE1D,MAAMulB,YAAY,GAAG0M,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAE+Q,IAAI,CAAE5M,IAAI,IAAKA,IAAI,CAAC/1B,IAAI,KAAK,iBAAiB,CAAC;EAE/E,MAAMqqC,iBAAiB,GAAGnlB,YAAY,GAClC,CAAA5S,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEwO,gBAAgB,CAAC,CAAC,CAAC,KAAI,EAAE,GACvCxO,YAAY,aAAZA,YAAY,wBAAA8L,qBAAA,GAAZ9L,YAAY,CAAEwO,gBAAgB,cAAA1C,qBAAA,uBAA9BA,qBAAA,CAAgC+W,IAAI,CAAEp1B,GAAG,IAAKA,GAAG,CAAC2H,YAAY,KAAKA,YAAY,CAAC;EAEpF,MAAM4iC,aAAa,GAAG,CAAAD,iBAAiB,aAAjBA,iBAAiB,uBAAjBA,iBAAiB,CAAE7D,SAAS,KAAI,EAAE;EAEvD,MAAMnnB,KAAK,GAAGvK,aAAO,CACpB,MAAM,CACJ;IACE3T,KAAK,EAAE,yBAAyB;IAChCE,KAAK,EAAE,CAAA4jC,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAE3kB,SAAS,KAAI,CAAC;IACjCvP,KAAK,EAAE,SAAS;IAChBlB,IAAI,EAAE,OAAO;IACb0P,IAAI,eAAE9d,cAAA,CAAAC,aAAA,CAACinB,UAAO,MAAE;GACjB,EACD;IACExnB,KAAK,EAAE,sBAAsB;IAC7BE,KAAK,EAAE,CAAA4jC,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAE1kB,aAAa,KAAI,CAAC;IACrCxP,KAAK,EAAE,SAAS;IAChBlB,IAAI,EAAE,OAAO;IACb0P,IAAI,eAAE9d,cAAA,CAAAC,aAAA,CAACknB,gBAAa,MAAE;GACvB,EACD;IACEznB,KAAK,EAAE,sBAAsB;IAC7BE,KAAK,EAAE,CAAA4jC,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEzkB,WAAW,KAAI,CAAC;IACnCzP,KAAK,EAAE,SAAS;IAChBlB,IAAI,EAAE,SAAS;IACf0P,IAAI,eAAE9d,cAAA,CAAAC,aAAA,CAACke,UAAO,MAAE;GACjB,EACD;IACEze,KAAK,EAAE,kBAAkB;IACzBE,KAAK,EAAE,GAAG,CAAA4jC,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAExkB,eAAe,KAAI,CAAC,GAAG;IAC7C1P,KAAK,EAAE,SAAS;IAChBlB,IAAI,EAAE,UAAU;IAChB0P,IAAI,eAAE9d,cAAA,CAAAC,aAAA,CAACme,cAAW,MAAE;GACrB,CACF,EACD,CAAColB,UAAU,CACb,CAAC;EACD,MAAMsF,eAAe,GAAGz1B,aAAO,CAC7B,MAAM,CACJ;IACEC,MAAM,EAAEhW,CAAC,CAAC,eAAe,CAAC,IAAI,eAAe;IAC7CiW,QAAQ,EAAGI,GAAG,IAAK,CAAAA,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEqG,YAAY,KAAI,KAAK;IAC7CxG,IAAI,EAAEM,KAAA,IAAa;MAAA,IAAAzW,sBAAA,EAAAohB,sBAAA,EAAAsqB,sBAAA,EAAAt1B,aAAA;MAAA,IAAZ;QAAEE;OAAK,GAAAG,KAAA;MACZ,MAAMnO,QAAQ,GAAG,EAAAtI,sBAAA,GAAAG,KAAK,CAACO,cAAc,CAACC,GAAG,CAAC,MAAM,CAAC,cAAAX,sBAAA,wBAAAohB,sBAAA,GAAhCphB,sBAAA,CAAkCY,IAAI,cAAAwgB,sBAAA,wBAAAsqB,sBAAA,GAAtCtqB,sBAAA,CAAwCrQ,IAAI,cAAA26B,sBAAA,uBAA5CA,sBAAA,CAA8ClhC,WAAW,EAAE,KAAI,SAAS;MACzF,MAAM6W,UAAU,GAAG,aAAa/Y,QAAQ,4BAA4BgO,GAAG,CAACC,QAAQ,CAAC5N,UAAU,EAAE;MAC7F,oBACEhG,cAAA,CAAAC,aAAA;QACE0e,IAAI,EAAED,UAAW;QACjB7O,KAAK,EAAE;UAAEP,KAAK,EAAE,SAAS;UAAEkK,UAAU,EAAE,KAAK;UAAEoF,cAAc,EAAE;SAAS;QACvE1O,OAAO,EAAGzF,CAAC,IAAK;UACdA,CAAC,CAAC2L,cAAc,EAAE;UAClB7D,OAAO,CAAC9S,IAAI,CAACif,UAAU,CAAC;;SAGzB,EAAAjL,aAAA,GAAAE,GAAG,CAACC,QAAQ,cAAAH,aAAA,uBAAZA,aAAA,CAAcuG,YAAY,KAAI,KAC9B,CAAC;;GAGT,EACD;IACE1G,MAAM,EAAEhW,CAAC,CAAC,eAAe,CAAC,IAAI,eAAe;IAC7CiW,QAAQ,EAAGI,GAAG,IAAK,CAAAA,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAE9R,QAAQ,KAAI,KAAK;IACzCuX,EAAE,EAAE;GACL,EACD;IACE9F,MAAM,EAAEhW,CAAC,CAAC,QAAQ,CAAC,IAAI,QAAQ;IAC/BiW,QAAQ,EAAEA,MAAM,QAAQ;IACxB6F,EAAE,EAAE,QAAQ;IACZ5F,IAAI,EAAES,KAAA;MAAA,IAAC;QAAE1E;OAAO,GAAA0E,KAAA;MAAA,oBAAKjU,cAAA,CAAAC,aAAA;QAAMyP,SAAS,EAAE;SAA0BpS,CAAC,CAACiS,KAAK,CAAC,IAAIA,KAAY,CAAC;;GAC1F,EACD;IACE+D,MAAM,EAAEhW,CAAC,CAAC,yBAAyB,CAAC,IAAI,yBAAyB;IACjEiW,QAAQ,EAAGI,GAAG,IAAK,CAAAA,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEkL,SAAS,KAAI,CAAC;IACtCzF,EAAE,EAAE;GACL,EACD;IACE9F,MAAM,EAAEhW,CAAC,CAAC,gBAAgB,CAAC,IAAI,gBAAgB;IAC/CiW,QAAQ,EAAGI,GAAG,IAAK,CAAAA,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEmL,aAAa,KAAI,CAAC;IAC1C1F,EAAE,EAAE;GACL,EACD;IACE9F,MAAM,EAAEhW,CAAC,CAAC,sBAAsB,CAAC,IAAI,sBAAsB;IAC3DiW,QAAQ,EAAGI,GAAG,IAAK,CAAAA,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEoL,WAAW,KAAI,CAAC;IACxC3F,EAAE,EAAE;GACL,EACD;IACE9F,MAAM,EAAEhW,CAAC,CAAC,kBAAkB,CAAC,IAAI,kBAAkB;IACnDiW,QAAQ,EAAGI,GAAG,IAAK,GAAG,CAAAA,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAEqL,eAAe,KAAI,CAAC,GAAG;IAClD5F,EAAE,EAAE;GACL,CACF,EACD,CAAC9b,CAAC,EAAEiV,OAAO,CACb,CAAC;EAGD,MAAM,CAAC1I,cAAc,EAAEC,iBAAiB,CAAC,GAAGF,cAAQ,CAAC,KAAK,CAAC;EAC3D,MAAM,CAACG,UAAU,EAAEC,aAAa,CAAC,GAAGJ,cAAQ,CAAC;IAAEK,IAAI,EAAE,EAAE;IAAEC,EAAE,EAAE;GAAI,CAAC;EAClE,MAAM,CAACC,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGR,cAAQ,CAAC,KAAK,CAAC;EAC/D,MAAM,CAACqV,aAAa,EAAEC,gBAAgB,CAAC,GAAGtV,cAAQ,CAAC,KAAK,CAAC;EACzD,MAAMS,aAAa,GAAGC,YAAM,CAAC,IAAI,CAAC;EAElCC,eAAS,CAAC,MAAM;IACd,MAAMC,OAAO,GAAIC,CAAC,IAAK;MACrB,IAAIJ,aAAa,CAACK,OAAO,IAAI,CAACL,aAAa,CAACK,OAAO,CAACC,QAAQ,CAACF,CAAC,CAACG,MAAM,CAAC,EAAE;QACtEd,iBAAiB,CAAC,KAAK,CAAC;QACxBM,mBAAmB,CAAC,KAAK,CAAC;;KAE7B;IACDS,QAAQ,CAACC,gBAAgB,CAAC,WAAW,EAAEN,OAAO,CAAC;IAC/C,OAAO,MAAMK,QAAQ,CAACE,mBAAmB,CAAC,WAAW,EAAEP,OAAO,CAAC;GAChE,EAAE,EAAE,CAAC;EAEN,MAAM2U,cAAc,GAAGA,MAAM;IAC3BD,gBAAgB,CAAC,IAAI,CAAC;IACtB,IAAI;MACF,MAAME,aAAa,GAAG2lB,SAAS,CAAC1mC,GAAG,CAAEihB,CAAC,KAAM;QAC1CrU,IAAI,EAAEqU,CAAC,CAACtF,YAAY;QACpBnY,QAAQ,EAAEyd,CAAC,CAACzd,QAAQ;QACpBjB,MAAM,EAAE0e,CAAC,CAAC1e,MAAM;QAChB0M,KAAK,EAAEgS,CAAC,CAACT,SAAS;QAClBnR,SAAS,EAAE4R,CAAC,CAACR,aAAa;QAC1BvQ,OAAO,EAAE+Q,CAAC,CAACP,WAAW;QACtB5C,QAAQ,EAAE,GAAGmD,CAAC,CAACN,eAAe;OAC/B,CAAC,CAAC;MAEH,MAAMH,SAAS,GAAG,CAAA2kB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAE3kB,SAAS,KAAI,CAAC;MAC5C,MAAMmqB,aAAa,GAAG,CAAAxF,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAE1kB,aAAa,KAAI,CAAC;MAEpDhD,qBAAqB,CAAC;QACpB/B,IAAI,EAAEqF,aAAa;QACnBlF,cAAc,EAAExR,QAAQ;QACxBuR,UAAU;QACVhC,YAAY;QACZjW,KAAK;QACLmY,aAAa,EAAE;UACb7M,KAAK,EAAEuR,SAAS;UAChBnR,SAAS,EAAEs7B,aAAa;UACxBz6B,OAAO,EAAEsQ,SAAS,GAAGmqB,aAAa;UAClCv7B,cAAc,EAAEu7B;SACjB;QACD1rC;OACD,CAAC;KACH,CAAC,OAAOiiB,GAAG,EAAE;MACZpT,OAAO,CAACD,KAAK,CAAC,uCAAuC,EAAEqT,GAAG,CAAC;KAC5D,SAAS;MACRL,gBAAgB,CAAC,KAAK,CAAC;;GAE1B;EAED,MAAMnS,oBAAoB,aAAUpE,MAAM;IAAA,IAAK;MAC7C,MAAMqE,KAAK,GAAGT,YAAY,CAAC5D,MAAM,CAAC;MAClC,IAAI,CAACqE,KAAK,EAAE,OAAA3B,OAAA,CAAAC,OAAA;MACZxB,iBAAiB,CAAC,KAAK,CAAC;MACxBM,mBAAmB,CAAC,KAAK,CAAC;MAAC,OAAAiB,OAAA,CAAAC,OAAA,CACrBJ,sBAAsB,CAAC8B,KAAK,CAAC/C,IAAI,CAACgD,OAAO,EAAE,EAAED,KAAK,CAAC9C,EAAE,CAAC+C,OAAO,EAAE,CAAC,EAAArB,IAAA;KACvE,QAAAnB,CAAA;MAAA,OAAAY,OAAA,CAAAiB,MAAA,CAAA7B,CAAA;;;EAED,MAAMyC,oBAAoB;IAAA,IAAe;MACvC,IAAI,CAACnD,UAAU,CAACE,IAAI,IAAI,CAACF,UAAU,CAACG,EAAE,EAAE;QACtC4B,KAAK,CAACxO,CAAC,CAAC,mBAAmB,CAAC,IAAI,uCAAuC,CAAC;QACxE,OAAA+N,OAAA,CAAAC,OAAA;;MAEF,MAAMrB,IAAI,GAAG,IAAIwC,IAAI,CAAC1C,UAAU,CAACE,IAAI,CAAC;MACtCA,IAAI,CAAC0C,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MACzB,MAAMzC,EAAE,GAAG,IAAIuC,IAAI,CAAC1C,UAAU,CAACG,EAAE,CAAC;MAClCA,EAAE,CAACyC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;MAC5B7C,iBAAiB,CAAC,KAAK,CAAC;MACxBM,mBAAmB,CAAC,KAAK,CAAC;MAAC,OAAAiB,OAAA,CAAAC,OAAA,CACrBJ,sBAAsB,CAACjB,IAAI,CAACgD,OAAO,EAAE,EAAE/C,EAAE,CAAC+C,OAAO,EAAE,CAAC,EAAArB,IAAA;KAC3D,QAAAnB,CAAA;MAAA,OAAAY,OAAA,CAAAiB,MAAA,CAAA7B,CAAA;;;EAED,MAAMS,sBAAsB,aAAUC,QAAQ,EAAEC,MAAM;IAAA,IAAK;MACzD,IAAI,CAAC25B,SAAS,IAAIA,SAAS,CAACllC,MAAM,KAAK,CAAC,EAAE;QACxCiM,KAAK,CAACxO,CAAC,CAAC,uBAAuB,CAAC,IAAI,2CAA2C,CAAC;QAChF,OAAA+N,OAAA,CAAAC,OAAA;;MAGF3B,sBAAsB,CAAC,IAAI,CAAC;MAAC,OAAA0B,OAAA,CAAAC,OAAA,CAAAC,gBAAA;QAAA,OAAAC,MAAA,aACzB;UAAA,OAAAH,OAAA,CAAAC,OAAA,CACqB9N,KAAK,CAACiO,WAAW,CAACC,gBAAgB,CAAC;YACxD/N,QAAQ,EAAEA,QAAQ,IAAI,QAAQ;YAC9BmB,MAAM,EAAE,CAAC;YACTC,KAAK,EAAE,KAAK;YACZkH,YAAY,EAAE,CAAAu9B,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEv9B,YAAY,KAAIA,YAAY;YACtD0F,cAAc,EAAE,IAAI;YACpB,IAAIR,QAAQ,IAAI;cAAEA;aAAU,CAAC;YAC7B,IAAIC,MAAM,IAAI;cAAEA;aAAQ;WACzB,CAAC,EAAAQ,IAAA,WARIC,QAAQ;YAUd,MAAMzD,YAAY,GAAG,CAAAyD,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEzD,YAAY,KAAI,EAAE;YAEjD,IAAIA,YAAY,CAACvI,MAAM,KAAK,CAAC,EAAE;cAC7BiM,KAAK,CAACxO,CAAC,CAAC,eAAe,CAAC,IAAI,6BAA6B,CAAC;cAC1D;;YAGF,MAAMiL,SAAS,GAAGJ,gBAAgB,CAACC,YAAY,EAAE9K,CAAC,CAAC;YACnD,MAAMyO,aAAa,GAAG,wBAAwBrD,QAAQ,CAACZ,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,EAAE;YACtFtK,KAAK,CAACwO,QAAQ,CAACC,KAAK,CAAC1D,SAAS,EAAEwD,aAAa,CAAC;;SAC/C,YAAQG,KAAK,EAAE;UACdC,OAAO,CAACD,KAAK,CAAC,+BAA+B,EAAEA,KAAK,CAAC;SACtD;mBAAAE,UAAA,EAAAC,OAAA;QACC1C,sBAAsB,CAAC,KAAK,CAAC;QAAC,IAAAyC,UAAA,QAAAC,OAAA;QAAA,OAAAA,OAAA;;KAEjC,QAAA5B,CAAA;MAAA,OAAAY,OAAA,CAAAiB,MAAA,CAAA7B,CAAA;;;EAED,MAAM8B,YAAY,GAAI5D,MAAM,IAAK;IAC/B,MAAM6D,GAAG,GAAG,IAAIC,IAAI,EAAE;IACtB,MAAMC,KAAK,GAAG,IAAID,IAAI,CAACD,GAAG,CAAC;IAC3B,IAAI7D,MAAM,KAAK,OAAO,EAAE;MACtB+D,KAAK,CAACC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MAC1B,OAAO;QAAE1C,IAAI,EAAEyC,KAAK;QAAExC,EAAE,EAAEsC;OAAK;;IAEjC,IAAI7D,MAAM,KAAK,MAAM,EAAE;MACrB+D,KAAK,CAACE,OAAO,CAACJ,GAAG,CAACK,OAAO,EAAE,GAAGL,GAAG,CAACM,MAAM,EAAE,CAAC;MAC3CJ,KAAK,CAACC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MAC1B,OAAO;QAAE1C,IAAI,EAAEyC,KAAK;QAAExC,EAAE,EAAEsC;OAAK;;IAEjC,IAAI7D,MAAM,KAAK,OAAO,EAAE;MACtB+D,KAAK,CAACE,OAAO,CAAC,CAAC,CAAC;MAChBF,KAAK,CAACC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MAC1B,OAAO;QAAE1C,IAAI,EAAEyC,KAAK;QAAExC,EAAE,EAAEsC;OAAK;;IAEjC,OAAO,IAAI;GACZ;EAED,MAAMgT,QAAQ,GAAGpL,KAAA;IAAA,IAAC;MAAEiH,KAAK;MAAE9L,KAAK;MAAEnB,IAAI;MAAE1P,SAAS;MAAEof;KAAM,GAAA1J,KAAA;IAAA,oBACvDpU,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAE,aAAatB,IAAI;OAC9B1P,SAAS,gBACRsB,cAAA,CAAAC,aAAA,CAACD,cAAK,CAACyf,QAAQ,qBACbzf,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC;KAAyC,CAAC,eACzD1P,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC;KAA2C,CAC5C,CAAC,gBAEjB1P,cAAA,CAAAC,aAAA,CAACD,cAAK,CAACyf,QAAQ,qBACbzf,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC;OAAc2L,KAAW,CAAC,eACzCrb,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC;OAAcH,KAAW,CAAC,EACxCuO,IAAI,iBAAI9d,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC;OAAaoO,IAAU,CACjC,CAEf,CAAC;GACP;EAED,MAAM4B,aAAa,GAAG5O,iBAAiB,IAAI6xB,yBAAyB,IAAIS,uBAAuB,IAAItmB,qBAAqB;EAExH,IAAI4C,aAAa,IAAI,CAAC8jB,UAAU,EAAE;IAChC,oBAAOxjC,cAAA,CAAAC,aAAA,CAAC6U,6BAAM,MAAE,CAAC;;EAGnB,IAAI,CAAC0uB,UAAU,EAAE;IACf,oBACExjC,cAAA,CAAAC,aAAA,CAACqV,2BAAI,qBACHtV,cAAA,CAAAC,aAAA;MAAK4P,KAAK,EAAE;QAAE0F,OAAO,EAAE;;OAAWjY,CAAC,CAAC,qBAAqB,CAAO,CAC5D,CAAC;;EAIX,oBACE0C,cAAA,CAAAC,aAAA,CAACqV,2BAAI;IAAC5F,SAAS,EAAC;kBAEd1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KAAUhH,QAAQ,aAARA,QAAQ,wBAAA+5B,gBAAA,GAAR/5B,QAAQ,CAAEiX,MAAM,CAAC,CAAC,CAAC,cAAA8iB,gBAAA,uBAAnBA,gBAAA,CAAqBz6B,WAAW,EAAQ,CAAC,eAElEhI,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAIyP,SAAS,EAAC;KAAQhH,QAAa,CAAC,eACpC1I,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KAAepS,CAAC,CAAC,kBAAkB,CAAC,IAAI,kBAAwB,CAC5E,CACF,CAAC,eAGN0C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAQyP,SAAS,EAAC,cAAc;IAACO,QAAQ,EAAEgP,aAAc;IAAC/O,OAAO,EAAEiP;KAChEF,aAAa,GAAG3hB,CAAC,CAAC,aAAa,CAAC,IAAI,gBAAgB,GAAGA,CAAC,CAAC,iBAAiB,CAAC,IAAI,iBAC1E,CACL,CACF,CAAC,eAGN0C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KACZkO,KAAK,CAACvf,GAAG,CAAC,CAACuhB,IAAI,EAAEC,GAAG,kBACnB7f,cAAA,CAAAC,aAAA,CAACuf,QAAQ;IAACvW,GAAG,EAAE4W,GAAI;IAACxE,KAAK,EAAE/d,CAAC,CAACsiB,IAAI,CAAClgB,KAAK,CAAE;IAAC6P,KAAK,EAAEqQ,IAAI,CAAChgB,KAAM;IAACwO,IAAI,EAAEwR,IAAI,CAACxR,IAAK;IAAC1P,SAAS,EAAEoS,iBAAkB;IAACgN,IAAI,EAAE8B,IAAI,CAAC9B;GAAO,CAC/H,CACE,CAAC,eAGN9d,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBAEb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAASpS,CAAC,CAAC,QAAQ,CAAQ,CAAC,eAC5C0C,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAASuI,YAAmB,CACzC,CAAC,eAENjY,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAASpS,CAAC,CAAC,OAAO,CAAQ,CAAC,eAC3C0C,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAAS1N,KAAY,CAClC,CAAC,eAENhC,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA,2BACED,cAAA,CAAAC,aAAA,aAAK3C,CAAC,CAAC,oBAAoB,CAAC,IAAI,oBAAyB,CAAC,eAC1D0C,cAAA,CAAAC,aAAA,YACG3C,CAAC,CAAC,yBAAyB,CAAC,IAAI,iGAChC,CACA,CAAC,eACN0C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC,iBAAiB;IAACM,GAAG,EAAE3F;kBACpCrK,cAAA,CAAAC,aAAA;IACEyP,SAAS,EAAC,oBAAoB;IAC9BO,QAAQ,EAAEvG,mBAAoB;IAC9BwG,OAAO,EAAEA,MAAM;MACbpG,iBAAiB,CAAEqG,CAAC,IAAK,CAACA,CAAC,CAAC;MAC5B/F,mBAAmB,CAAC,KAAK,CAAC;;kBAG5BpK,cAAA,CAAAC,aAAA;IACEyQ,KAAK,EAAC,IAAI;IACVC,MAAM,EAAC,IAAI;IACX8F,OAAO,EAAC,WAAW;IACnBC,IAAI,EAAC,MAAM;IACXC,MAAM,EAAC,cAAc;IACrBC,WAAW,EAAC,KAAK;IACjBC,aAAa,EAAC,OAAO;IACrBC,cAAc,EAAC;kBAEf9W,cAAA,CAAAC,aAAA;IAAMuX,CAAC,EAAC;GAA6C,CAAC,eACtDxX,cAAA,CAAAC,aAAA;IAAUgpC,MAAM,EAAC;GAAoB,CAAC,eACtCjpC,cAAA,CAAAC,aAAA;IAAMiX,EAAE,EAAC,IAAI;IAACC,EAAE,EAAC,IAAI;IAACC,EAAE,EAAC,IAAI;IAACC,EAAE,EAAC;GAAK,CACnC,CAAC,EACL3N,mBAAmB,GAAGpM,CAAC,CAAC,aAAa,CAAC,IAAI,gBAAgB,GAAGA,CAAC,CAAC,gBAAgB,CAAC,IAAI,gBAC/E,CAAC,EAERuM,cAAc,iBACb7J,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KACZ,CACC;IAAEhQ,KAAK,EAAEpC,CAAC,CAAC,OAAO,CAAC,IAAI,OAAO;IAAE2L,GAAG,EAAE;GAAS,EAC9C;IAAEvJ,KAAK,EAAEpC,CAAC,CAAC,WAAW,CAAC,IAAI,WAAW;IAAE2L,GAAG,EAAE;GAAQ,EACrD;IAAEvJ,KAAK,EAAEpC,CAAC,CAAC,YAAY,CAAC,IAAI,YAAY;IAAE2L,GAAG,EAAE;GAAS,CACzD,CAAC5K,GAAG,CAACoW,KAAA;IAAA,IAAC;MAAE/U,KAAK;MAAEuJ;KAAK,GAAAwL,KAAA;IAAA,oBACnBzU,cAAA,CAAAC,aAAA;MAAKgJ,GAAG,EAAEA,GAAI;MAACyG,SAAS,EAAC,WAAW;MAACQ,OAAO,EAAEA,MAAMnD,oBAAoB,CAAC9D,GAAG;OACzEvJ,KACE,CAAC;GACP,CAAC,eAEFM,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC,qBAAqB;IAACQ,OAAO,EAAEA,MAAM9F,mBAAmB,CAAE+F,CAAC,IAAK,CAACA,CAAC;KAC9E7S,CAAC,CAAC,aAAa,CAAC,IAAI,aAClB,CAAC,EAEL6M,gBAAgB,iBACfnK,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA,6BACED,cAAA,CAAAC,aAAA,eAAM,MAAU,CAAC,eACjBD,cAAA,CAAAC,aAAA;IAAOmO,IAAI,EAAC,MAAM;IAACmB,KAAK,EAAExF,UAAU,CAACE,IAAK;IAACqG,QAAQ,EAAG7F,CAAC,IAAKT,aAAa,CAAC;MAAE,GAAGD,UAAU;MAAEE,IAAI,EAAEQ,CAAC,CAACG,MAAM,CAAC2E;KAAO;GAAI,CAChH,CAAC,eACRvP,cAAA,CAAAC,aAAA,6BACED,cAAA,CAAAC,aAAA,eAAM,IAAQ,CAAC,eACfD,cAAA,CAAAC,aAAA;IAAOmO,IAAI,EAAC,MAAM;IAACmB,KAAK,EAAExF,UAAU,CAACG,EAAG;IAACoG,QAAQ,EAAG7F,CAAC,IAAKT,aAAa,CAAC;MAAE,GAAGD,UAAU;MAAEG,EAAE,EAAEO,CAAC,CAACG,MAAM,CAAC2E;KAAO;GAAI,CAC5G,CACJ,CAAC,eACNvP,cAAA,CAAAC,aAAA;IAAK4P,KAAK,EAAE;MAAEX,OAAO,EAAE,MAAM;MAAEqB,GAAG,EAAE,MAAM;MAAEC,SAAS,EAAE;;kBACrDxQ,cAAA,CAAAC,aAAA;IACEyP,SAAS,EAAC,mBAAmB;IAC7BQ,OAAO,EAAEA,MAAM;MACb9F,mBAAmB,CAAC,KAAK,CAAC;MAC1BJ,aAAa,CAAC;QAAEC,IAAI,EAAE,EAAE;QAAEC,EAAE,EAAE;OAAI,CAAC;;KAGpC5M,CAAC,CAAC,QAAQ,CAAC,IAAI,QACV,CAAC,eACT0C,cAAA,CAAAC,aAAA;IAAQyP,SAAS,EAAC,kBAAkB;IAACQ,OAAO,EAAEhD;KAC3C5P,CAAC,CAAC,OAAO,CAAC,IAAI,OACT,CACL,CACF,CAEJ,CAEJ,CACF,CACF,CAAC,eAGN0C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAASpS,CAAC,CAAC,QAAQ,CAAQ,CAAC,eAC5C0C,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAASpS,CAAC,CAACuF,MAAM,CAAC,IAAIA,MAAa,CAChD,CAAC,eAEN7C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAASpS,CAAC,CAAC,QAAQ,CAAQ,CAAC,eAC5C0C,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAAS9O,MAAa,CACnC,CAAC,eAENZ,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAASpS,CAAC,CAAC,eAAe,CAAC,IAAI,eAAsB,CAAC,eACtE0C,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KACb44B,YAAY,IAAIA,YAAY,KAAK,KAAK,gBACrCtoC,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC,gBAAgB;IAACG,KAAK,EAAE;MAAEW,SAAS,EAAE;;kBAClDxQ,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAAsBpS,CAAC,CAACgrC,YAAY,CAAC3qB,IAAI,EAAE,CAAC3V,WAAW,EAAE,CAAC,IAAIsgC,YAAmB,CAC9F,CAAC,GAENA,YAEE,CACH,CAAC,eAENtoC,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAASpS,CAAC,CAAC,aAAa,CAAC,IAAI,aAAoB,CAAC,eAClE0C,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAASuK,UAAiB,CACvC,CACF,CACF,CACF,CAAC,eAENja,cAAA,CAAAC,aAAA,2BACED,cAAA,CAAAC,aAAA,CAACuV,4BAAK;IACJlY,CAAC,EAAEA,CAAE;IACLyiB,UAAU,EAAEziB,CAAC,CAAC,qBAAqB,CAAC,IAAI,qBAAsB;IAC9D0iB,UAAU,EAAC,WAAW;IACtBC,iBAAiB,EAAE,IAAK;IACxBzhB,IAAI,EAAEqqC,aAAc;IACpBz1B,OAAO,EAAE01B,eAAgB;IACzBpqC,SAAS,EAAEoS,iBAAkB;IAC7BwB,YAAY,EAAEyyB,SAAS,CAACllC,MAAO;IAC/BmS,WAAW,EAAEA,WAAY;IACzBC,aAAa,EAAEqM,QAAS;IACxB4B,oBAAoB,EAAE,IAAK;IAC3BpO,UAAU,EAAEA,MAAM;MAChB,IAAIE,WAAW,GAAGzE,IAAI,CAAC6S,IAAI,CAAC2kB,SAAS,CAACllC,MAAM,GAAGye,QAAQ,CAAC,GAAG,CAAC,EAAE;QAC5DD,cAAc,CAAEnI,IAAI,IAAKA,IAAI,GAAG,CAAC,CAAC;;KAEpC;IACFnE,UAAU,EAAEA,MAAM;MAChB,IAAIC,WAAW,GAAG,CAAC,EAAE;QACnBqM,cAAc,CAAEnI,IAAI,IAAKA,IAAI,GAAG,CAAC,CAAC;;KAEpC;IACFmK,WAAW,EAAEA,MAAM;MACjBhC,cAAc,CAAC,CAAC,CAAC;KACjB;IACFiC,UAAU,EAAEA,MAAM;MAChBjC,cAAc,CAAC9Q,IAAI,CAACiT,GAAG,CAACjT,IAAI,CAAC6S,IAAI,CAAC2kB,SAAS,CAACllC,MAAM,GAAGye,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;KACvE;IACFpM,gBAAgB,EAAGzH,CAAC,IAAK;MACvB8T,WAAW,CAAC7W,MAAM,CAAC+C,CAAC,CAACG,MAAM,CAAC2E,KAAK,CAAC,CAAC;MACnC8O,cAAc,CAAC,CAAC,CAAC;;GAEpB,CACE,CACD,CAAC;AAEX,CAAC;;AC5rBD,MAAM6qB,eAAe,GAAG1/B,IAAA,IAAqF;EAAA,IAApF;IAAE2/B,QAAQ;IAAEC,UAAU;IAAEC,UAAU;IAAEC,gBAAgB;IAAE3rC,QAAQ,EAAE4rC;GAAe,GAAA//B,IAAA;EACtG,MAAM;IAAElM;GAAG,GAAGC,2BAAc,EAAE;EAC9B,MAAMI,QAAQ,GAAG4rC,aAAa,IAAI/rC,KAAK,CAACI,UAAU,CAACC,kBAAkB,EAAE;EACvE,MAAM,CAAC2rC,YAAY,EAAEC,eAAe,CAAC,GAAG7/B,cAAQ,CAAC,EAAE,CAAC;EACpD,MAAM,CAACoI,WAAW,EAAEqM,cAAc,CAAC,GAAGzU,cAAQ,CAAC,CAAC,CAAC;EACjD,MAAM,CAAC0U,QAAQ,EAAEC,WAAW,CAAC,GAAG3U,cAAQ,CAAC,EAAE,CAAC;EAC5C,MAAM,CAACqlB,SAAS,EAAEC,YAAY,CAAC,GAAGtlB,cAAQ,CAAC,KAAK,CAAC;EACjD,MAAM,CAACulB,SAAS,EAAEC,YAAY,CAAC,GAAGxlB,cAAQ,CAAC;IACzCsC,KAAK,EAAE,KAAK;IACZxM,KAAK,EAAE;GACR,CAAC;EACF,MAAM,CAACud,OAAO,EAAEysB,UAAU,CAAC,GAAG9/B,cAAQ,CAAC;IACrCpJ,GAAG,EAAE,EAAE;IACPU,OAAO,EAAE,EAAE;IACXH,QAAQ,EAAE,EAAE;IACZD,QAAQ,EAAE,EAAE;IACZG,IAAI,EAAE,EAAE;IACRD,QAAQ,EAAE,EAAE;IACZkB,KAAK,EAAE,EAAE;IACTrB,UAAU,EAAE;GACb,CAAC;EAEF,MAAM,CAAC8oC,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGhgC,cAAQ,CAACqT,OAAO,CAAC;EAUjE,MAAM;IAAEze,IAAI,EAAEqrC;GAAkB,GAAGrsC,KAAK,CAACmB,KAAK,CAACmrC,aAAa,CAACnsC,QAAQ,EAAE,eAAe,EAAE,CAAC,gBAAgB,CAAC,CAAC;EAE3G,MAAMosC,YAAY,GAAG12B,aAAO,CAAC,MAAM;IAAA,IAAA22B,qBAAA;IACjC,MAAMC,cAAc,GAAG,CAAAJ,gBAAgB,aAAhBA,gBAAgB,wBAAAG,qBAAA,GAAhBH,gBAAgB,CAAG,eAAe,CAAC,cAAAG,qBAAA,uBAAnCA,qBAAA,CAAqCE,cAAc,KAAI,EAAE;IAChF,MAAMC,WAAW,GAAGF,cAAc,CAACvW,IAAI,CAAElrB,IAAI;MAAA,IAAA4hC,mBAAA;MAAA,OAAK,CAAA5hC,IAAI,aAAJA,IAAI,wBAAA4hC,mBAAA,GAAJ5hC,IAAI,CAAE6hC,aAAa,cAAAD,mBAAA,uBAAnBA,mBAAA,CAAqB7rC,IAAI,MAAK,SAAS;MAAC;IAC1F,MAAM+rC,QAAQ,GAAG,CAAAH,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAEG,QAAQ,KAAI,EAAE;IAC5C,OAAOnsC,KAAK,CAACC,OAAO,CAACksC,QAAQ,CAAC,GAAGA,QAAQ,GAAG,CAACA,QAAQ,CAAC;GACvD,EAAE,CAACT,gBAAgB,CAAC,CAAC;EAiCtB,MAAMU,sBAAsB,GAAGl3B,aAAO,CAAC,MAAM;IAC3C,IAAIm3B,UAAU,GAAG,EAAE;IACnB,MAAMC,UAAU,GAAGtsC,KAAK,CAACC,OAAO,CAAC2rC,YAAY,CAAC,GAAGA,YAAY,GAAGA,YAAY,GAAG,CAACA,YAAY,CAAC,GAAG,EAAE;IAElG,MAAMW,iBAAiB,GAAIC,IAAI,IAAK;MAClC,IAAI,CAACA,IAAI,EAAE;MAEX,IAAIA,IAAI,CAACjrC,KAAK,KAAK,UAAU,IAAIirC,IAAI,CAACjrC,KAAK,KAAK,UAAU,EAAE;QAC1D8qC,UAAU,CAAC/qC,IAAI,CAAC;UACd,GAAGkrC,IAAI;UACP1/B,IAAI,EAAE0/B,IAAI,CAACC,SAAS,IAAID,IAAI,CAAC1/B,IAAI,IAAI0/B,IAAI,CAACpsC;SAC3C,CAAC;;MAEJ,IAAIosC,IAAI,CAAC50B,QAAQ,IAAI40B,IAAI,CAAC50B,QAAQ,CAAClW,MAAM,GAAG,CAAC,EAAE;QAC7C8qC,IAAI,CAAC50B,QAAQ,CAAC/M,OAAO,CAAE6hC,KAAK,IAAKH,iBAAiB,CAACG,KAAK,CAAC,CAAC;;KAE7D;IAEDJ,UAAU,CAACzhC,OAAO,CAAE8hC,QAAQ,IAAKJ,iBAAiB,CAACI,QAAQ,CAAC,CAAC;IAE7D,OAAON,UAAU;GAClB,EAAE,CAACT,YAAY,CAAC,CAAC;EAElB,MAAMgB,eAAe,GAAG13B,aAAO,CAAC,MAAM;IACpC,MAAM23B,MAAM,GAAG,IAAIC,GAAG,EAAE;IAExBV,sBAAsB,CAACvhC,OAAO,CAAEkiC,GAAG,IAAK;MACtC,IAAIA,GAAG,CAAChqC,OAAO,EAAE;QACf,MAAMiqC,IAAI,GAAGhtC,KAAK,CAACC,OAAO,CAAC8sC,GAAG,CAAChqC,OAAO,CAAC,GAAGgqC,GAAG,CAAChqC,OAAO,GAAG,CAACgqC,GAAG,CAAChqC,OAAO,CAAC;QACrEiqC,IAAI,CAACniC,OAAO,CAAEmH,CAAC,IAAK;UAClB,IAAIA,CAAC,EAAE;YACL,MAAMi7B,YAAY,GAAGj7B,CAAC,CAACk7B,QAAQ,EAAE,CAAC1jC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAC/CqjC,MAAM,CAACM,GAAG,CAACF,YAAY,CAAC;;SAE3B,CAAC;;KAEL,CAAC;IAEF,OAAOjtC,KAAK,CAAC8L,IAAI,CAAC+gC,MAAM,CAAC,CAACO,IAAI,EAAE;GACjC,EAAE,CAAChB,sBAAsB,CAAC,CAAC;EAE5B,MAAM;IAAE/rC,IAAI,EAAEgtC;GAAmB,GAAGhuC,KAAK,CAACmB,KAAK,CAACC,IAAI,CAACC,sBAAsB,CACzE;IACE4sC,cAAc,EAAE,CAACrC,UAAU;IAC3BsC,kBAAkB,EAAE;GACrB,EACD;IACE/tC,QAAQ,EAAEA,QAAQ;IAClBmB,MAAM,EAAE,CAAC;IACTC,KAAK,EAAE;GACR,EACD;IACEqe,SAAS,EAAEuuB;GAEf,CAAC;EAED,MAAMC,cAAc,GAAGv4B,aAAO,CAAC,MAAM;IACnC,IAAI,CAACm4B,iBAAiB,EAAE,OAAOT,eAAe,IAAI,EAAE;IACpD,MAAMI,IAAI,GAAGK,iBAAiB,CAACI,cAAc,IAAI,EAAE;IACnD,OAAOztC,KAAK,CAACC,OAAO,CAAC+sC,IAAI,CAAC,GAAGA,IAAI,CAACxiC,MAAM,CAACC,OAAO,CAAC,CAACvK,GAAG,CAACmJ,MAAM,CAAC,CAAC+jC,IAAI,EAAE,GAAG,EAAE;GAC1E,EAAE,CAACC,iBAAiB,EAAET,eAAe,CAAC,CAAC;EAExC,MAAMc,YAAY,GAAGx4B,aAAO,CAAC,MAAM;IACjC,IAAI,CAACm4B,iBAAiB,EAAE,OAAO,EAAE;IACjC,MAAMziC,IAAI,GAAGyiC,iBAAiB,CAACK,YAAY,IAAI,EAAE;IACjD,OAAO1tC,KAAK,CAACC,OAAO,CAAC2K,IAAI,CAAC,GAAGA,IAAI,CAACJ,MAAM,CAACC,OAAO,CAAC,CAACvK,GAAG,CAACmJ,MAAM,CAAC,CAAC+jC,IAAI,EAAE,GAAG,EAAE;GAC1E,EAAE,CAACC,iBAAiB,CAAC,CAAC;EAEvBjhC,eAAS,CAAC,MAAM;IACd,MAAMuhC,KAAK,GAAGpX,UAAU,CAAC,MAAM;MAC7BkV,mBAAmB,CAAC3sB,OAAO,CAAC;KAC7B,EAAE,GAAG,CAAC;IAEP,OAAO,MAAM8uB,YAAY,CAACD,KAAK,CAAC;GACjC,EAAE,CAAC7uB,OAAO,CAAC,CAAC;EAEb1S,eAAS,CAAC,MAAM;IACd8T,cAAc,CAAC,CAAC,CAAC;GAClB,EAAE,CAACsrB,gBAAgB,EAAE1sB,OAAO,CAACzc,GAAG,CAAC,CAAC;EAEnC,MAAM;IAAEhC,IAAI,EAAE2rB,eAAe;IAAE6hB,UAAU,EAAEttC,SAAS;IAAEutC,OAAO,EAAEC;GAAwB,GAAG1uC,KAAK,CAACmB,KAAK,CAACC,IAAI,CAACC,sBAAsB,CAC/H;IACEstC,YAAY,EAAE/C,UAAU;IAMxB,IAAInsB,OAAO,CAACzc,GAAG,IAAI;MACjBA,GAAG,EAAEyc,OAAO,CAACzc;KACd,CAAC;IAEF,IAAImpC,gBAAgB,CAAC9oC,UAAU,IAAI;MACjCA,UAAU,EAAE8oC,gBAAgB,CAAC9oC;KAC9B,CAAC;IAEF,IAAI8oC,gBAAgB,CAAC7oC,QAAQ,IAAI;MAC/BA,QAAQ,EAAE6oC,gBAAgB,CAAC7oC;KAC5B,CAAC;IAEF,IAAI6oC,gBAAgB,CAAC3oC,QAAQ,IAAI;MAC/BA,QAAQ,EAAE2oC,gBAAgB,CAAC3oC;KAC5B,CAAC;IAEF,IAAI2oC,gBAAgB,CAAC1oC,IAAI,IAAI;MAC3BA,IAAI,EAAE0oC,gBAAgB,CAAC1oC;KACxB,CAAC;IAEF,IAAI0oC,gBAAgB,CAACznC,KAAK,IAAI;MAC5BA,KAAK,EAAEynC,gBAAgB,CAACznC;KACzB,CAAC;IAEF,IAAIynC,gBAAgB,CAACzoC,OAAO,IAAI;MAC9BA,OAAO,EAAEyoC,gBAAgB,CAACzoC;KAC3B;GACF,EACD;IACEvD,QAAQ,EAAEA,QAAQ;IAClBmB,MAAM,EAAE,CAAC;IACTC,KAAK,EAAE;GACR,EACD;IACEwe,gBAAgB,EAAE;GAEtB,CAAC;EAED,MAAM6uB,qBAAqB,GAAIjX,MAAM,IAAK;IACxC,MAAMkX,iBAAiB,GACrBlX,MAAM,CAACttB,WAAW,EAAE,CAACvI,QAAQ,CAAC,kBAAkB,CAAC,IACjD61B,MAAM,CAACttB,WAAW,EAAE,CAACvI,QAAQ,CAAC,gBAAgB,CAAC,IAC/C61B,MAAM,CAACttB,WAAW,EAAE,CAACvI,QAAQ,CAAC,mBAAmB,CAAC,IAClD61B,MAAM,CAACttB,WAAW,EAAE,CAACvI,QAAQ,CAAC,OAAO,CAAC,IACtC61B,MAAM,CAACttB,WAAW,EAAE,CAACvI,QAAQ,CAAC,QAAQ,CAAC,IACvC61B,MAAM,CAACttB,WAAW,EAAE,CAACvI,QAAQ,CAAC,KAAK,CAAC,IACpC61B,MAAM,CAACttB,WAAW,EAAE,CAACvI,QAAQ,CAAC,gBAAgB,CAAC;IAEjD,IAAI+sC,iBAAiB,EAAE;MACrBjd,YAAY,CAAC;QACXljB,KAAK,EAAE,IAAI;QACXxM,KAAK,EAAEpC,CAAC,CAAC,iDAAiD,CAAC,IAAI;OAChE,CAAC;KACH,MAAM;MACL8xB,YAAY,CAAC;QACXljB,KAAK,EAAE,IAAI;QACXxM,KAAK,EAAEpC,CAAC,CAAC63B,MAAM,CAAC,IAAIA,MAAM,IAAI73B,CAAC,CAAC,2BAA2B,CAAC,IAAI;OACjE,CAAC;;IAEJ4xB,YAAY,CAAC,IAAI,CAAC;GACnB;EAED,MAAMod,kBAAkB,GAAG9uC,KAAK,CAACmB,KAAK,CAACC,IAAI,CAAC2tC,uBAAuB,CAAC;IAClEC,SAAS,EAAEA,CAAC3gC,QAAQ,EAAE4gC,SAAS,KAAK;MAClC,IAAI5gC,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAEK,KAAK,EAAE;QAAA,IAAAwgC,cAAA;QACnB,MAAMvX,MAAM,GAAG,CAAAtpB,QAAQ,aAARA,QAAQ,wBAAA6gC,cAAA,GAAR7gC,QAAQ,CAAErN,IAAI,cAAAkuC,cAAA,uBAAdA,cAAA,CAAgBtqB,OAAO,KAAI,EAAE;QAC5CgqB,qBAAqB,CAACjX,MAAM,AAAW,CAAC;QACxC;;MAIF,IAAItpB,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAE8gC,OAAO,IAAI9gC,QAAQ,CAAC8gC,OAAO,CAAC9sC,MAAM,GAAG,CAAC,EAAE;QAAA,IAAA+sC,kBAAA;QACpD,MAAMC,MAAM,GAAG,EAAAD,kBAAA,GAAA/gC,QAAQ,CAAC8gC,OAAO,CAAC,CAAC,CAAC,cAAAC,kBAAA,uBAAnBA,kBAAA,CAAqBC,MAAM,KAAI,EAAE;QAChDT,qBAAqB,CAACS,MAAM,AAAW,CAAC;QACxC;;MAGFzd,YAAY,CAAC;QACXljB,KAAK,EAAE,KAAK;QACZxM,KAAK,EAAEpC,CAAC,CAAC,4BAA4B,CAAC,IAAI;OAC3C,CAAC;MAEF4xB,YAAY,CAAC,IAAI,CAAC;MAGlBwF,UAAU;QAAA,IAAa;UAAA,SAAAsB;YAAA,SAAAT;cAOrB8T,UAAU,EAAE;;YAAC,MAAA9U,KAAA;cAAA,IAHT2X,sBAAsB;gBAAA,OAAA7gC,OAAA,CAAAC,OAAA,CAClB4gC,sBAAsB,EAAE,EAAAtgC,IAAA;;;YAAA,OAAA2oB,KAAA,IAAAA,KAAA,CAAA3oB,IAAA,GAAA2oB,KAAA,CAAA3oB,IAAA,CAAA2pB,MAAA,IAAAA,MAAA,CAAAhB,KAAA;;UAAA,MAAAuY,MAAA;YAAA,IAJ5BxD,gBAAgB;cAAA,OAAAj+B,OAAA,CAAAC,OAAA,CACZg+B,gBAAgB,EAAE,EAAA19B,IAAA;;;UAAA,OAAAP,OAAA,CAAAC,OAAA,CAAAwhC,MAAA,IAAAA,MAAA,CAAAlhC,IAAA,GAAAkhC,MAAA,CAAAlhC,IAAA,CAAAoqB,MAAA,IAAAA,MAAA,CAAA8W,MAAA;SAM3B,QAAAriC,CAAA;UAAA,OAAAY,OAAA,CAAAiB,MAAA,CAAA7B,CAAA;;SAAE,IAAI,CAAC;KACT;IAEDktB,OAAO,EAAEA,CAACzrB,KAAK,EAAEugC,SAAS,KAAK;MAAA,IAAAM,WAAA,EAAAC,eAAA,EAAAC,oBAAA;MAC7B,MAAM9X,MAAM,GAAG,CAAAjpB,KAAK,aAALA,KAAK,wBAAA6gC,WAAA,GAAL7gC,KAAK,CAAE1N,IAAI,cAAAuuC,WAAA,uBAAXA,WAAA,CAAa3qB,OAAO,MAAIlW,KAAK,aAALA,KAAK,wBAAA8gC,eAAA,GAAL9gC,KAAK,CAAEL,QAAQ,cAAAmhC,eAAA,wBAAAC,oBAAA,GAAfD,eAAA,CAAiBxuC,IAAI,cAAAyuC,oBAAA,uBAArBA,oBAAA,CAAuB7qB,OAAO,KAAI,EAAE;MAC3EgqB,qBAAqB,CAACjX,MAAM,AAAW,CAAC;;GAE3C,CAAC;EAEF,MAAM+X,gBAAgB,GAAG1vC,KAAK,CAACmB,KAAK,CAACC,IAAI,CAACuuC,yBAAyB,CAAC;IAClEX,SAAS,EAAEA,CAAC3gC,QAAQ,EAAE4gC,SAAS,KAAK;MAClC,IAAI5gC,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAEK,KAAK,EAAE;QAAA,IAAAkhC,eAAA;QACnB,MAAMjY,MAAM,GAAG,CAAAtpB,QAAQ,aAARA,QAAQ,wBAAAuhC,eAAA,GAARvhC,QAAQ,CAAErN,IAAI,cAAA4uC,eAAA,uBAAdA,eAAA,CAAgBhrB,OAAO,KAAI,EAAE;QAC5CgqB,qBAAqB,CAACjX,MAAM,AAAW,CAAC;QACxC;;MAGF,IAAItpB,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAE8gC,OAAO,IAAI9gC,QAAQ,CAAC8gC,OAAO,CAAC9sC,MAAM,GAAG,CAAC,EAAE;QAAA,IAAAwtC,mBAAA;QACpD,MAAMR,MAAM,GAAG,EAAAQ,mBAAA,GAAAxhC,QAAQ,CAAC8gC,OAAO,CAAC,CAAC,CAAC,cAAAU,mBAAA,uBAAnBA,mBAAA,CAAqBR,MAAM,KAAI,EAAE;QAChDT,qBAAqB,CAACS,MAAM,AAAW,CAAC;QACxC;;MAGFzd,YAAY,CAAC;QACXljB,KAAK,EAAE,KAAK;QACZxM,KAAK,EAAEpC,CAAC,CAAC,8BAA8B,CAAC,IAAI;OAC7C,CAAC;MAEF4xB,YAAY,CAAC,IAAI,CAAC;MAElBwF,UAAU;QAAA,IAAa;UAAA,SAAA4Y;YAAA,SAAAC;cAOrBlE,UAAU,EAAE;;YAAC,MAAAmE,MAAA;cAAA,IAHTtB,sBAAsB;gBAAA,OAAA7gC,OAAA,CAAAC,OAAA,CAClB4gC,sBAAsB,EAAE,EAAAtgC,IAAA;;;YAAA,OAAA4hC,MAAA,IAAAA,MAAA,CAAA5hC,IAAA,GAAA4hC,MAAA,CAAA5hC,IAAA,CAAA2hC,MAAA,IAAAA,MAAA,CAAAC,MAAA;;UAAA,MAAAC,MAAA;YAAA,IAJ5BnE,gBAAgB;cAAA,OAAAj+B,OAAA,CAAAC,OAAA,CACZg+B,gBAAgB,EAAE,EAAA19B,IAAA;;;UAAA,OAAAP,OAAA,CAAAC,OAAA,CAAAmiC,MAAA,IAAAA,MAAA,CAAA7hC,IAAA,GAAA6hC,MAAA,CAAA7hC,IAAA,CAAA0hC,MAAA,IAAAA,MAAA,CAAAG,MAAA;SAM3B,QAAAhjC,CAAA;UAAA,OAAAY,OAAA,CAAAiB,MAAA,CAAA7B,CAAA;;SAAE,IAAI,CAAC;KACT;IACDktB,OAAO,EAAEA,CAACzrB,KAAK,EAAEugC,SAAS,KAAK;MAAA,IAAAiB,YAAA,EAAAC,gBAAA,EAAAC,qBAAA;MAC7B,MAAMzY,MAAM,GAAG,CAAAjpB,KAAK,aAALA,KAAK,wBAAAwhC,YAAA,GAALxhC,KAAK,CAAE1N,IAAI,cAAAkvC,YAAA,uBAAXA,YAAA,CAAatrB,OAAO,MAAIlW,KAAK,aAALA,KAAK,wBAAAyhC,gBAAA,GAALzhC,KAAK,CAAEL,QAAQ,cAAA8hC,gBAAA,wBAAAC,qBAAA,GAAfD,gBAAA,CAAiBnvC,IAAI,cAAAovC,qBAAA,uBAArBA,qBAAA,CAAuBxrB,OAAO,KAAI,EAAE;MAC3EgqB,qBAAqB,CAACjX,MAAM,AAAW,CAAC;;GAE3C,CAAC;EAEF,MAAM0Y,cAAc,GAAGzE,UAAU,GAAG8D,gBAAgB,GAAGZ,kBAAkB;EAEzE,MAAMwB,OAAO,GAAGz6B,aAAO,CAAC,MAAM,CAAA8W,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAE/hB,YAAY,KAAI,EAAE,EAAE,CAAC+hB,eAAe,CAAC,CAAC;EACrF,MAAM7X,YAAY,GAAGw7B,OAAO,CAACjuC,MAAM;EACnC,MAAMkuC,UAAU,GAAG16B,aAAO,CAAC,MAAM9F,IAAI,CAAC6S,IAAI,CAAC9N,YAAY,GAAGgM,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAChM,YAAY,EAAEgM,QAAQ,CAAC,CAAC;EAEnG,MAAM0vB,aAAa,GAAG36B,aAAO,CAAC,MAAM;IAClC,MAAM3G,KAAK,GAAGsF,WAAW,GAAGsM,QAAQ;IACpC,OAAOwvB,OAAO,CAACjS,KAAK,CAACnvB,KAAK,EAAEA,KAAK,GAAG4R,QAAQ,CAAC;GAC9C,EAAE,CAACwvB,OAAO,EAAE97B,WAAW,EAAEsM,QAAQ,CAAC,CAAC;EAEpC,MAAM2vB,YAAY,GAAGA,MAAM;IACzB,MAAMhmB,OAAO,GAAG;MACdtqB,QAAQ,EAAEA,QAAQ;MAClBwI,cAAc,EAAE,KAAK;MACrBC,eAAe,EAAEojC;KAClB;IAED,IAAIJ,UAAU,EAAE;MAAA,IAAA8E,eAAA;MACdjmB,OAAO,CAACkmB,aAAa,GAAGhF,QAAQ,aAARA,QAAQ,wBAAA+E,eAAA,GAAR/E,QAAQ,CAAEjtB,KAAK,cAAAgyB,eAAA,uBAAfA,eAAA,CAAiB5a,IAAI;KAC9C,MAAM;MAAA,IAAA8a,gBAAA;MACLnmB,OAAO,CAACjiB,UAAU,GAAGmjC,QAAQ,aAARA,QAAQ,wBAAAiF,gBAAA,GAARjF,QAAQ,CAAEjtB,KAAK,cAAAkyB,gBAAA,uBAAfA,gBAAA,CAAiB9a,IAAI;;IAG5Cua,cAAc,CAACQ,MAAM,CAACpmB,OAAO,CAAC;GAC/B;EAED,MAAM0Y,YAAY,GAAIngC,GAAG,IAAK;IAC5BipC,eAAe,CAAEvzB,IAAI,IAAMA,IAAI,CAAC5W,QAAQ,CAACkB,GAAG,CAAC,GAAG0V,IAAI,CAACvN,MAAM,CAAEH,IAAI,IAAKA,IAAI,KAAKhI,GAAG,CAAC,GAAG,CAAC,GAAG0V,IAAI,EAAE1V,GAAG,CAAE,CAAC;GACvG;EAED,MAAM8tC,eAAe,GAAI7jC,CAAC,IAAK;IAC7BA,CAAC,aAADA,CAAC,uBAADA,CAAC,CAAEgG,eAAe,EAAE;IACpB,MAAM89B,eAAe,GAAGT,OAAO,CAACzvC,GAAG,CAAEmK,IAAI,IAAKA,IAAI,CAAChI,GAAG,CAAC,CAACmI,MAAM,CAACC,OAAO,CAAC;IACvE,IAAI2lC,eAAe,CAAC1uC,MAAM,KAAK,CAAC,EAAE;IAElC,MAAM2uC,aAAa,GAAGD,eAAe,CAAC1uC,MAAM,GAAG,CAAC,IAAI0uC,eAAe,CAACE,KAAK,CAAEjuC,GAAG,IAAKgpC,YAAY,CAAClqC,QAAQ,CAACkB,GAAG,CAAC,CAAC;IAE9GipC,eAAe,CAAC+E,aAAa,GAAG,EAAE,GAAGD,eAAe,CAAC;GACtD;EAED,MAAMG,kBAAkB,GAAGA,CAACzlC,GAAG,EAAEsG,KAAK,KAAK;IACzCm6B,UAAU,CAAExzB,IAAI,KAAM;MACpB,GAAGA,IAAI;MACP,CAACjN,GAAG,GAAGsG;KACR,CAAC,CAAC;IACH8O,cAAc,CAAC,CAAC,CAAC;GAClB;EAED,MAAMjL,OAAO,GAAGC,aAAO,CACrB,MAAM,CACJ;IACEC,MAAM,EAAEA,MAAM;MACZ,MAAMi7B,eAAe,GAAGT,OAAO,CAACzvC,GAAG,CAAEmK,IAAI,IAAKA,IAAI,CAAChI,GAAG,CAAC,CAACmI,MAAM,CAACC,OAAO,CAAC;MACvE,MAAM+lC,YAAY,GAAGJ,eAAe,CAAC1uC,MAAM,GAAG,CAAC,IAAI0uC,eAAe,CAACE,KAAK,CAAEjuC,GAAG,IAAKgpC,YAAY,CAAClqC,QAAQ,CAACkB,GAAG,CAAC,CAAC;MAC7G,oBACER,cAAA,CAAAC,aAAA;QACEmO,IAAI,EAAC,UAAU;QACf2oB,OAAO,EAAE4X,YAAa;QACtBr+B,QAAQ,EAAG7F,CAAC,IAAK;UACfA,CAAC,CAACgG,eAAe,EAAE;UACnB69B,eAAe,CAAC7jC,CAAC,CAAC;SAClB;QACFyF,OAAO,EAAGzF,CAAC,IAAKA,CAAC,CAACgG,eAAe;OAClC,CAAC;KAEL;IACD2I,EAAE,EAAE,WAAW;IACf5F,IAAI,EAAEnD,KAAA,IAAa;MAAA,IAAZ;QAAEsD;OAAK,GAAAtD,KAAA;MACZ,MAAM7P,GAAG,GAAGmT,GAAG,CAACC,QAAQ,CAACpT,GAAG;MAE5B,oBACER,cAAA,CAAAC,aAAA;QACEmO,IAAI,EAAC,UAAU;QACf2oB,OAAO,EAAEyS,YAAY,CAAClqC,QAAQ,CAACkB,GAAG,CAAE;QACpC8P,QAAQ,EAAG7F,CAAC,IAAK;UACfA,CAAC,CAACgG,eAAe,EAAE;UACnBkwB,YAAY,CAACngC,GAAG,CAAC;SACjB;QACF0P,OAAO,EAAGzF,CAAC,IAAKA,CAAC,CAACgG,eAAe;OAClC,CAAC;;GAGP,EACD;IACE6C,MAAM,EAAE,KAAK;IACbC,QAAQ,EAAE;GACX,EACD;IACED,MAAM,EAAE,eAAe;IACvBC,QAAQ,EAAGI,GAAG,IAAK,GAAGA,GAAG,CAAClT,SAAS,IAAI,EAAE,IAAIkT,GAAG,CAACjT,UAAU,IAAI,EAAE,IAAIiT,GAAG,CAAChT,QAAQ,IAAI,EAAE,EAAE,CAACgd,IAAI,EAAE;IAChGvE,EAAE,EAAE;GACL,EACD;IACE9F,MAAM,EAAE,MAAM;IACdC,QAAQ,EAAE;GACX,EACD;IACED,MAAM,EAAE,SAAS;IACjBC,QAAQ,EAAE;GACX,EACD;IACED,MAAM,EAAE,QAAQ;IAChBC,QAAQ,EAAE,QAAQ;IAClBC,IAAI,EAAEM,KAAA;MAAA,IAAC;QAAEvE;OAAO,GAAAuE,KAAA;MAAA,oBACd9T,cAAA,CAAAC,aAAA;QAAMyP,SAAS,EAAE,gBAAgBH,KAAK,KAAK,QAAQ,GAAG,UAAU,GAAGA,KAAK,KAAK,SAAS,GAAG,SAAS,GAAG,UAAU;SAAKA,KAAY,CAAC;;GAEpI,EACD;IACE+D,MAAM,EAAE,aAAa;IACrBC,QAAQ,EAAE,YAAY;IACtBC,IAAI,EAAES,KAAA,IAAe;MAAA,IAAd;QAAE1E;OAAO,GAAA0E,KAAA;MACd,MAAMrT,MAAM,GAAG,CAAC2O,KAAK,IAAI,IAAI,EAAEvH,WAAW,EAAE;MAC5C,OAAOuH,KAAK,gBAAGvP,cAAA,CAAAC,aAAA;QAAMyP,SAAS,EAAE,mBAAmB9O,MAAM;SAAKtD,CAAC,CAACsD,MAAM,CAAQ,CAAC,GAAG,GAAG;;GAExF,CACF,EAED,CAAC4oC,YAAY,EAAEwE,aAAa,EAAEF,OAAO,CACvC,CAAC;EAED,oBACE9tC,cAAA,CAAAC,aAAA,CAAC2uC,4BAAK;IACJC,aAAa,EAAEzF,UAAU,GAAG,oBAAoBD,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEl+B,IAAI,EAAE,GAAG,kBAAkBk+B,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEl+B,IAAI,EAAG;IACtG6jC,YAAY,eAAE9uC,cAAA,CAAAC,aAAA,CAAC8uC,4BAAK;MAAC7+B,OAAO,EAAEm5B;KAAa,CAAE;IAC7C2F,iBAAiB,EAAC,QAAQ;IAC1BC,oBAAoB,EAAE5F,UAAW;IACjC6F,eAAe,EAAE9F,UAAU,GAAG9rC,CAAC,CAAC,oBAAoB,CAAC,IAAI,eAAe,GAAGA,CAAC,CAAC,kBAAkB,CAAC,IAAI,aAAc;IAClH6xC,kBAAkB,EAAElB,YAAa;IACjCxP,UAAU,EAAE,EAAC+K,YAAY,aAAZA,YAAY,eAAZA,YAAY,CAAE3pC,MAAM;kBAEjCG,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBAEb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAOyP,SAAS,EAAC,cAAc;IAAC6H,WAAW,EAAC,KAAK;IAAChI,KAAK,EAAE0N,OAAO,CAACzc,GAAI;IAAC8P,QAAQ,EAAG7F,CAAC,IAAKikC,kBAAkB,CAAC,KAAK,EAAEjkC,CAAC,CAACG,MAAM,CAAC2E,KAAK;GAAI,CAAC,eAEpIvP,cAAA,CAAAC,aAAA;IAAQyP,SAAS,EAAC,uBAAuB;IAACH,KAAK,EAAE0N,OAAO,CAAC/b,OAAQ;IAACoP,QAAQ,EAAG7F,CAAC,IAAKikC,kBAAkB,CAAC,SAAS,EAAEjkC,CAAC,CAACG,MAAM,CAAC2E,KAAK,CAAE;IAACU,QAAQ;kBACxIjQ,cAAA,CAAAC,aAAA;IAAQsP,KAAK,EAAC;KAAG,gBAAsB,CAAC,EACvCq8B,cAAc,CAACvtC,GAAG,CAAE+wC,GAAG,iBACtBpvC,cAAA,CAAAC,aAAA;IAAQgJ,GAAG,EAAEmmC,GAAI;IAAC7/B,KAAK,EAAE6/B;KACtBA,GACK,CACT,CACK,CAAC,eAiDTpvC,cAAA,CAAAC,aAAA;IAAQyP,SAAS,EAAC,cAAc;IAACH,KAAK,EAAE0N,OAAO,CAAC/a,KAAM;IAACoO,QAAQ,EAAG7F,CAAC,IAAKikC,kBAAkB,CAAC,OAAO,EAAEjkC,CAAC,CAACG,MAAM,CAAC2E,KAAK;kBAChHvP,cAAA,CAAAC,aAAA;IAAQsP,KAAK,EAAC;KAAG,eAAqB,CAAC,EACtCs8B,YAAY,CAACxtC,GAAG,CAAE4K,GAAG,iBACpBjJ,cAAA,CAAAC,aAAA;IAAQgJ,GAAG,EAAEA,GAAI;IAACsG,KAAK,EAAEtG;KACtBA,GACK,CACT,CACK,CAAC,EAERugC,YAAY,CAAC3pC,MAAM,GAAG,CAAC,iBACtBG,cAAA,CAAAC,aAAA;IAAQyP,SAAS,EAAC,oBAAoB;IAACtB,IAAI,EAAC,QAAQ;IAAC8B,OAAO,EAAEA,MAAMu5B,eAAe,CAAC,EAAE;KACnFnsC,CAAC,CAAC,sBAAsB,CAAC,IAAI,gBACxB,CASP,CAAC,eAGN0C,cAAA,CAAAC,aAAA,CAACuV,4BAAK;IACJuK,UAAU,EAAC,mBAAmB;IAC9BC,UAAU,EAAC,WAAW;IACtBC,iBAAiB,EAAE,IAAK;IACxBzhB,IAAI,EAAEwvC,aAAc;IACpB56B,OAAO,EAAEA,OAAQ;IACjB1U,SAAS,EAAEA,SAAU;IACrB4T,YAAY,EAAE,CAAA6X,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAElrB,UAAU,KAAI,CAAE;IAC/C+S,WAAW,EAAEA,WAAY;IACzBC,aAAa,EAAEqM,QAAS;IACxBsD,gBAAgB,EAAE,IAAK;IACvB1B,oBAAoB,EAAE,IAAK;IAC3BpO,UAAU,EAAEA,MAAM;MAChB,IAAIE,WAAW,GAAG+7B,UAAU,GAAG,CAAC,EAAE;QAChC1vB,cAAc,CAAEnI,IAAI,IAAKA,IAAI,GAAG,CAAC,CAAC;;KAEpC;IACFnE,UAAU,EAAEA,MAAM;MAChB,IAAIC,WAAW,GAAG,CAAC,EAAE;QACnBqM,cAAc,CAAEnI,IAAI,IAAKA,IAAI,GAAG,CAAC,CAAC;;KAEpC;IACFmK,WAAW,EAAEA,MAAM;MACjBhC,cAAc,CAAC,CAAC,CAAC;KACjB;IACFiC,UAAU,EAAEA,MAAM;MAChBjC,cAAc,CAAC9Q,IAAI,CAACiT,GAAG,CAACutB,UAAU,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;KAC3C;IACF77B,gBAAgB,EAAGzH,CAAC,IAAK;MACvB8T,WAAW,CAAC7W,MAAM,CAAC+C,CAAC,CAACG,MAAM,CAAC2E,KAAK,CAAC,CAAC;MACnC8O,cAAc,CAAC,CAAC,CAAC;;GAEpB,CACE,CAAC,EACL4Q,SAAS,iBAAIjvB,cAAA,CAAAC,aAAA,CAAC63B,4BAAK;IAAC5rB,KAAK,EAAEijB,SAAS,CAACjjB,KAAM;IAACxM,KAAK,EAAEyvB,SAAS,CAACzvB,KAAM;IAAC4Z,OAAO,EAAEA,MAAM4V,YAAY,CAAC,KAAK;GAAI,CACrG,CAAC;AAEZ,CAAC;;AC/hBD,MAAMmgB,mBAAmB,GAAGA,MAAM;EAAA,IAAAjyC,qBAAA,EAAAC,sBAAA,EAAAiyC,qBAAA,EAAA7wB,sBAAA,EAAAsqB,sBAAA,EAAAmF,eAAA,EAAAE,gBAAA,EAAAmB,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,gBAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA;EAChC,MAAMtyC,QAAQ,GAAGH,KAAK,CAACI,UAAU,CAACC,kBAAkB,EAAE;EAEtD,MAAM,CAACqyC,SAAS,EAAEC,YAAY,CAAC,GAAGvmC,cAAQ,CAAC,IAAI,CAAC;EAChD,MAAM,CAACmlB,WAAW,EAAEC,cAAc,CAAC,GAAGplB,cAAQ,CAAC,KAAK,CAAC;EACrD,MAAM,CAACF,mBAAmB,EAAEC,sBAAsB,CAAC,GAAGC,cAAQ,CAAC,KAAK,CAAC;EAErE,MAAM;IAAEwP,EAAE,EAAEpT;GAAY,GAAG4W,wBAAS,EAAE;EACtC,MAAMwzB,QAAQ,IAAAhzC,qBAAA,GAAGI,KAAK,CAACO,cAAc,CAACC,GAAG,CAAC,MAAM,CAAC,cAAAZ,qBAAA,wBAAAC,sBAAA,GAAhCD,qBAAA,CAAkCa,IAAI,cAAAZ,sBAAA,uBAAtCA,sBAAA,CAAwCi2B,IAAI;EAE7D,MAAM;IAAEh2B;GAAG,GAAGC,2BAAc,EAAE;EAE9B,MAAM;IAAEiB,IAAI,EAAE6xC,kBAAkB;IAAE3xC,SAAS,EAAE4xC;GAAa,GAAG9yC,KAAK,CAACmB,KAAK,CAACoe,GAAG,CAACsmB,iBAAiB,CAC5F1lC,QAAQ,EACR;IAAEuf,GAAG,EAAElX;GAAY,EACnB;IAAEhH,OAAO,EAAE,CAAC,CAACgH,UAAU;IAAEoX,SAAS,EAAEuuB;GACtC,CAAC;EAED,MAAM4E,YAAY,GAAG,CAAC,EAACF,kBAAkB,aAAlBA,kBAAkB,gBAAAf,qBAAA,GAAlBe,kBAAkB,CAAEtL,SAAS,cAAAuK,qBAAA,eAA7BA,qBAAA,CAA+BzvC,MAAM;EAE5D,MAAM;IAAErB,IAAI,EAAEgyC,qBAAqB;IAAE9xC,SAAS,EAAE+xC;GAAgB,GAAGjzC,KAAK,CAACmB,KAAK,CAACoe,GAAG,CAACsmB,iBAAiB,CAClG1lC,QAAQ,EACRqI,UAAU,GAAG;IAAEoqC,QAAQ,EAAEpqC;GAAY,GAAG;IAAEoqC;GAAU,EACpD;IAAEpxC,OAAO,EAAE,CAACgH,UAAU,IAAK,CAACsqC,WAAW,IAAI,CAACC,YAAa;IAAEnzB,SAAS,EAAEuuB;GACxE,CAAC;EAED,MAAMxI,sBAAsB,GAAG9vB,aAAO,CAAC,MAAM;IAC3C,IAAIrN,UAAU,IAAIuqC,YAAY,EAAE;MAC9B,OAAOF,kBAAkB;;IAE3B,OAAOG,qBAAqB;GAC7B,EAAE,CAACxqC,UAAU,EAAEuqC,YAAY,EAAEF,kBAAkB,EAAEG,qBAAqB,CAAC,CAAC;EAEzE,MAAM9xC,SAAS,GAAGsH,UAAU,GAAGsqC,WAAW,IAAKG,cAAc,IAAI,CAACF,YAAa,GAAGE,cAAc;EAEhG,MAAMvyC,KAAK,IAAAugB,sBAAA,GAAGjhB,KAAK,CAACO,cAAc,CAACC,GAAG,CAAC,MAAM,CAAC,cAAAygB,sBAAA,wBAAAsqB,sBAAA,GAAhCtqB,sBAAA,CAAkCxgB,IAAI,cAAA8qC,sBAAA,uBAAtCA,sBAAA,CAAwC7qC,KAAK,CAACG,GAAG,CAAEC,GAAG,IAAKA,GAAG,CAACC,IAAI,CAAC;EAElF,MAAM4qC,QAAQ,GAAG91B,aAAO,CAAC,MAAM;IAAA,IAAAs0B,qBAAA;IAC7B,OAAO,CAAAxE,sBAAsB,aAAtBA,sBAAsB,wBAAAwE,qBAAA,GAAtBxE,sBAAsB,CAAE4B,SAAS,cAAA4C,qBAAA,uBAAjCA,qBAAA,CAAoC,CAAC,CAAC,KAAI,IAAI;GACtD,EAAE,CAACxE,sBAAsB,CAAC,CAAC;EAE5B,MAAM;IAAE3kC,IAAI,EAAEkyC,UAAU;IAAEhyC,SAAS,EAAEiyC;GAAiB,GAAGnzC,KAAK,CAACmB,KAAK,CAACoe,GAAG,CAACwmB,YAAY,CACnF5lC,QAAQ,EACR;IAAEiD,MAAM,EAAE;GAAU,EACpB;IAAE5B,OAAO,EAAE,CAAC,CAACrB,QAAQ;IAAEyf,SAAS,EAAE;GACpC,CAAC;EACD,MAAM;IAAE5e,IAAI,EAAEkkC,wBAAwB;IAAEhkC,SAAS,EAAEikC;GAA2B,GAAGnlC,KAAK,CAACmB,KAAK,CAACoe,GAAG,CAAC6lB,mBAAmB,CAClHjlC,QAAQ,EACR;IAAEiD,MAAM,EAAE;GAAU,EACpB;IAAE5B,OAAO,EAAE,CAAC,CAACrB,QAAQ;IAAEyf,SAAS,EAAE;GACpC,CAAC;EACD,MAAMnD,UAAU,GAAG5G,aAAO,CAAC,MAAM;IAAA,IAAAu9B,qBAAA;IAC/B,IAAIzH,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAElvB,UAAU,EAAE,OAAOkvB,QAAQ,CAAClvB,UAAU;IACpD,IAAI,CAACy2B,UAAU,IAAI,EAACvH,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAEjjC,QAAQ,GAAE,OAAO,KAAK;IACpD,MAAM2qC,YAAY,GAAGH,UAAU,CAAChd,IAAI,CAAElI,CAAC;MAAA,IAAAid,aAAA,EAAAC,cAAA;MAAA,OAAK,EAAAD,aAAA,GAAAjd,CAAC,CAACmd,UAAU,cAAAF,aAAA,uBAAZA,aAAA,CAAcrvB,EAAE,MAAK+vB,QAAQ,CAACjjC,QAAQ,IAAI,EAAAwiC,cAAA,GAAAld,CAAC,CAACmd,UAAU,cAAAD,cAAA,uBAAZA,cAAA,CAAcxiC,QAAQ,MAAKijC,QAAQ,CAACjjC,QAAQ;MAAC;IACnI,OAAO,CAAA2qC,YAAY,aAAZA,YAAY,wBAAAD,qBAAA,GAAZC,YAAY,CAAElI,UAAU,cAAAiI,qBAAA,uBAAxBA,qBAAA,CAA0B3lC,IAAI,KAAIk+B,QAAQ,CAACjjC,QAAQ,IAAI,KAAK;GACpE,EAAE,CAACwqC,UAAU,EAAEvH,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEjjC,QAAQ,EAAEijC,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAElvB,UAAU,CAAC,CAAC;EAE1D,MAAMC,cAAc,GAAG7G,aAAO,CAAC,MAAM;IAAA,IAAAy9B,qBAAA;IACnC,IAAI3H,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAEjvB,cAAc,EAAE,OAAOivB,QAAQ,CAACjvB,cAAc;IAC5D,IAAI,EAACwoB,wBAAwB,aAAxBA,wBAAwB,eAAxBA,wBAAwB,CAAEI,WAAW,KAAI,EAACqG,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAEljC,YAAY,GAAE,OAAO,KAAK;IACnF,MAAM8qC,gBAAgB,GAAGrO,wBAAwB,CAACI,WAAW,CAACpP,IAAI,CAC/DpU,CAAC;MAAA,IAAA2jB,QAAA;MAAA,OAAK3jB,CAAC,CAAClG,EAAE,KAAK+vB,QAAQ,CAACljC,YAAY,IAAI,EAAAg9B,QAAA,GAAA3jB,CAAC,CAACpD,KAAK,cAAA+mB,QAAA,uBAAPA,QAAA,CAAS3P,IAAI,MAAK6V,QAAQ,CAACljC,YAAY;KAClF,CAAC;IACD,OAAO,CAAA8qC,gBAAgB,aAAhBA,gBAAgB,uBAAhBA,gBAAgB,CAAE9lC,IAAI,MAAI8lC,gBAAgB,aAAhBA,gBAAgB,wBAAAD,qBAAA,GAAhBC,gBAAgB,CAAE70B,KAAK,cAAA40B,qBAAA,uBAAvBA,qBAAA,CAAyB7lC,IAAI,KAAIk+B,QAAQ,CAACljC,YAAY,IAAI,KAAK;GACjG,EAAE,CAACy8B,wBAAwB,EAAEyG,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEljC,YAAY,EAAEkjC,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEjvB,cAAc,CAAC,CAAC;EAChF,MAAMxR,QAAQ,GAAG,CAAAygC,QAAQ,aAARA,QAAQ,wBAAA+E,eAAA,GAAR/E,QAAQ,CAAEjtB,KAAK,cAAAgyB,eAAA,uBAAfA,eAAA,CAAiBjjC,IAAI,MAAIk+B,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEl+B,IAAI,KAAI,KAAK;EACjE,MAAMxH,UAAU,GAAG,CAAA0lC,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAE1lC,UAAU,MAAI0lC,QAAQ,aAARA,QAAQ,wBAAAiF,gBAAA,GAARjF,QAAQ,CAAEjtB,KAAK,cAAAkyB,gBAAA,uBAAfA,gBAAA,CAAiB9a,IAAI,MAAI6V,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAE/vB,EAAE;EAChF,MAAMnB,YAAY,GAAG,CAAAkxB,QAAQ,aAARA,QAAQ,wBAAAoG,gBAAA,GAARpG,QAAQ,CAAEjtB,KAAK,cAAAqzB,gBAAA,uBAAfA,gBAAA,CAAiBt3B,YAAY,MAAIkxB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEtnC,QAAQ,KAAI,KAAK;EAEjF,MAAM,CAACmQ,WAAW,EAAEqM,cAAc,CAAC,GAAGzU,cAAQ,CAAC,CAAC,CAAC;EACjD,MAAM,CAAC0U,QAAQ,EAAEC,WAAW,CAAC,GAAG3U,cAAQ,CAAC,EAAE,CAAC;EAC5C,MAAMyb,WAAW,GAAG;IAClB1nB,QAAQ,EAAE,QAAQ;IAClBmB,MAAM,EAAEkT,WAAW,GAAGsM,QAAQ;IAC9Bvf,KAAK,EAAEuf,QAAQ;IACftY,UAAU,EAAEmjC,QAAQ,aAARA,QAAQ,wBAAAqG,gBAAA,GAARrG,QAAQ,CAAEjtB,KAAK,cAAAszB,gBAAA,uBAAfA,gBAAA,CAAiBlc;GAC9B;EAED,MAAM;IAAE0Y,UAAU,EAAEgF,kBAAkB;IAAExyC,IAAI,EAAEyyC,aAAa,GAAG,EAAE;IAAEhF,OAAO,EAAE3C;GAAkB,GAAG9rC,KAAK,CAACmB,KAAK,CAACC,IAAI,CAACsyC,wBAAwB,CACvI,EAAE,EACF7rB,WAAW,EACX;IACErmB,OAAO,EAAE,CAAC,CAACqmB,WAAW,CAAC1nB,QAAQ,IAAI,CAAC,CAAC0nB,WAAW,CAACrf,UAAU;IAC3DuX,gBAAgB,EAAE;GAEtB,CAAC;EAED,MAAMlW,WAAW,GAAIC,GAAG,IAAK;IAC3B,IAAI,CAACA,GAAG,EAAE,OAAO,EAAE;IAEnB,MAAMC,QAAQ,GAAGC,MAAM,CAACF,GAAG,CAAC,CAAChI,QAAQ,CAAC,GAAG,CAAC,GAAGkI,MAAM,CAACF,GAAG,CAAC,CAACK,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,EAAE,GAAGJ,MAAM,CAACF,GAAG,CAAC;IACvF,OAAOC,QAAQ,CACZM,WAAW,EAAE,CACbC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAClBA,OAAO,CAAC,OAAO,EAAGC,CAAC,IAAKA,CAAC,CAACC,WAAW,EAAE,CAAC;GAC5C;EAED,MAAMmpC,UAAU,GAAG99B,aAAO,CACxB,MAAM,CACJ;IACEC,MAAM,EAAEhW,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK;IACzBiW,QAAQ,EAAE;GACX,EACD;IACED,MAAM,EAAEhW,CAAC,CAAC,eAAe,CAAC,IAAI,eAAe;IAC7CiW,QAAQ,EAAGI,GAAG,IAAKtM,WAAW,CAAC,GAAGsM,GAAG,CAAClT,SAAS,IAAI,EAAE,IAAIkT,GAAG,CAACjT,UAAU,IAAI,EAAE,IAAIiT,GAAG,CAAChT,QAAQ,IAAI,EAAE,EAAE,CAACgd,IAAI,EAAE,CAAC;IAC7GvE,EAAE,EAAE;GACL,EACD;IACE9F,MAAM,EAAEhW,CAAC,CAAC,MAAM,CAAC,IAAI,MAAM;IAC3BiW,QAAQ,EAAGI,GAAG,IAAKtM,WAAW,CAACsM,GAAG,CAAC7S,QAAQ,CAAC;IAC5CsY,EAAE,EAAE;GACL,EACD;IACE9F,MAAM,EAAEhW,CAAC,CAAC,aAAa,CAAC,IAAI,aAAa;IACzCiW,QAAQ,EAAE,YAAY;IACtBC,IAAI,EAAEhK,IAAA,IAAe;MAAA,IAAd;QAAE+F;OAAO,GAAA/F,IAAA;MACd,MAAM5I,MAAM,GAAG,CAAC2O,KAAK,IAAI,IAAI,EAAEvH,WAAW,EAAE;MAC5C,OAAOuH,KAAK,gBAAGvP,cAAA,CAAAC,aAAA;QAAMyP,SAAS,EAAE,mBAAmB9O,MAAM;SAAKyG,WAAW,CAACkI,KAAK,CAAQ,CAAC,GAAG,GAAG;;GAEjG,EACD;IACE+D,MAAM,EAAEhW,CAAC,CAAC,cAAc,CAAC,IAAI,cAAc;IAC3CiW,QAAQ,EAAE,aAAa;IACvBC,IAAI,EAAEnD,KAAA;MAAA,IAAC;QAAEd;OAAO,GAAAc,KAAA;MAAA,OAAMd,KAAK,GAAG/R,KAAK,CAAC+jB,SAAS,CAACC,kBAAkB,CAACjS,KAAK,CAAC,GAAG,GAAG;;GAC9E,EACD;IACE+D,MAAM,EAAEhW,CAAC,CAAC,aAAa,CAAC,IAAI,aAAa;IACzCiW,QAAQ,EAAE,YAAY;IACtBC,IAAI,EAAEM,KAAA;MAAA,IAAC;QAAEvE;OAAO,GAAAuE,KAAA;MAAA,OAAMvE,KAAK,GAAG/R,KAAK,CAAC+jB,SAAS,CAACC,kBAAkB,CAACjS,KAAK,CAAC,GAAG,GAAG;;GAC9E,CACF,EACD,CAACjS,CAAC,CACJ,CAAC;EAID,MAAM,CAACuM,cAAc,EAAEC,iBAAiB,CAAC,GAAGF,cAAQ,CAAC,KAAK,CAAC;EAC3D,MAAM,CAACG,UAAU,EAAEC,aAAa,CAAC,GAAGJ,cAAQ,CAAC;IAAEK,IAAI,EAAE,EAAE;IAAEC,EAAE,EAAE;GAAI,CAAC;EAClE,MAAM,CAACC,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGR,cAAQ,CAAC,KAAK,CAAC;EAC/D,MAAM,CAACqV,aAAa,EAAEC,gBAAgB,CAAC,GAAGtV,cAAQ,CAAC,KAAK,CAAC;EACzD,MAAMS,aAAa,GAAGC,YAAM,CAAC,IAAI,CAAC;EAElCC,eAAS,CAAC,MAAM;IACd,MAAMC,OAAO,GAAIC,CAAC,IAAK;MACrB,IAAIJ,aAAa,CAACK,OAAO,IAAI,CAACL,aAAa,CAACK,OAAO,CAACC,QAAQ,CAACF,CAAC,CAACG,MAAM,CAAC,EAAE;QACtEd,iBAAiB,CAAC,KAAK,CAAC;QACxBM,mBAAmB,CAAC,KAAK,CAAC;;KAE7B;IACDS,QAAQ,CAACC,gBAAgB,CAAC,WAAW,EAAEN,OAAO,CAAC;IAC/C,OAAO,MAAMK,QAAQ,CAACE,mBAAmB,CAAC,WAAW,EAAEP,OAAO,CAAC;GAChE,EAAE,EAAE,CAAC;EAEN,MAAMkV,aAAa,GAAGhhB,SAAS,IAAIiyC,eAAe,IAAIhO,yBAAyB;EAE/E,IAAIjjB,aAAa,IAAI,CAACypB,QAAQ,EAAE;IAC9B,oBAAOnpC,cAAA,CAAAC,aAAA,CAAC6U,6BAAM,MAAE,CAAC;;EAGnB,IAAI,CAACq0B,QAAQ,EAAE;IACb,oBACEnpC,cAAA,CAAAC,aAAA,CAACqV,2BAAI,qBACHtV,cAAA,CAAAC,aAAA;MAAK4P,KAAK,EAAE;QAAE0F,OAAO,EAAE;;OAAWjY,CAAC,CAAC,mBAAmB,CAAO,CAC1D,CAAC;;EAIX,MAAMiP,YAAY,GAAI5D,MAAM,IAAK;IAC/B,MAAM6D,GAAG,GAAG,IAAIC,IAAI,EAAE;IACtB,MAAMC,KAAK,GAAG,IAAID,IAAI,CAACD,GAAG,CAAC;IAC3B,IAAI7D,MAAM,KAAK,OAAO,EAAE;MACtB+D,KAAK,CAACC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MAC1B,OAAO;QAAE1C,IAAI,EAAEyC,KAAK;QAAExC,EAAE,EAAEsC;OAAK;;IAEjC,IAAI7D,MAAM,KAAK,MAAM,EAAE;MACrB+D,KAAK,CAACE,OAAO,CAACJ,GAAG,CAACK,OAAO,EAAE,GAAGL,GAAG,CAACM,MAAM,EAAE,CAAC;MAC3CJ,KAAK,CAACC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MAC1B,OAAO;QAAE1C,IAAI,EAAEyC,KAAK;QAAExC,EAAE,EAAEsC;OAAK;;IAEjC,IAAI7D,MAAM,KAAK,OAAO,EAAE;MACtB+D,KAAK,CAACE,OAAO,CAAC,CAAC,CAAC;MAChBF,KAAK,CAACC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MAC1B,OAAO;QAAE1C,IAAI,EAAEyC,KAAK;QAAExC,EAAE,EAAEsC;OAAK;;IAEjC,OAAO,IAAI;GACZ;EAED,MAAM2S,cAAc;IAAA,IAAe;MACjCD,gBAAgB,CAAC,IAAI,CAAC;MAAC,MAAAqV,KAAA,GAAAhpB,gBAAA;QAAA,OAAAC,MAAA,aACnB;UAAA,IAAA4lC,gBAAA;UAAA,OAAA/lC,OAAA,CAAAC,OAAA,CACqB9N,KAAK,CAACiO,WAAW,CAAC4lC,SAAS,CAChD,EAAE,EACF;YACE1zC,QAAQ,EAAE,QAAQ;YAClBmB,MAAM,EAAE,CAAC;YACTC,KAAK,EAAE,IAAI;YACXiH,UAAU,EAAEmjC,QAAQ,aAARA,QAAQ,wBAAAiI,gBAAA,GAARjI,QAAQ,CAAEjtB,KAAK,cAAAk1B,gBAAA,uBAAfA,gBAAA,CAAiB9d;WAEjC,CAAC,EAAA1nB,IAAA,WARKC,QAAQ;YAAA,IAAAylC,qBAAA;YAUd,MAAMv3B,IAAI,GAAG,CAAAlO,QAAQ,aAARA,QAAQ,wBAAAylC,qBAAA,GAARzlC,QAAQ,CAAEsO,aAAa,cAAAm3B,qBAAA,uBAAvBA,qBAAA,CAAyBlpC,YAAY,KAAI,EAAE;YAExD0R,mBAAmB,CAAC;cAClBC,IAAI,EAAEA,IAAI;cACVC,YAAY,EAAEtR,QAAQ;cACtBuR,UAAU;cACVC,cAAc;cACdzW,UAAU;cACVwU,YAAY;cACZkC,aAAa,EAAE,CAAAtO,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEsO,aAAa,KAAI,EAAE;cAC5C7c;aACD,CAAC;;SACH,YAAQiiB,GAAG,EAAE;UACZpT,OAAO,CAACD,KAAK,CAAC,qDAAqD,EAAEqT,GAAG,CAAC;SAC1E;mBAAAnT,UAAA,EAAAC,OAAA;QACC6S,gBAAgB,CAAC,KAAK,CAAC;QAAC,IAAA9S,UAAA,QAAAC,OAAA;QAAA,OAAAA,OAAA;;MAAA,OAAAhB,OAAA,CAAAC,OAAA,CAAAipB,KAAA,IAAAA,KAAA,CAAA3oB,IAAA,GAAA2oB,KAAA,CAAA3oB,IAAA;KAE3B,QAAAnB,CAAA;MAAA,OAAAY,OAAA,CAAAiB,MAAA,CAAA7B,CAAA;;;EAED,MAAMsC,oBAAoB,aAAUpE,MAAM;IAAA,IAAK;MAC7C,MAAMqE,KAAK,GAAGT,YAAY,CAAC5D,MAAM,CAAC;MAClC,IAAI,CAACqE,KAAK,EAAE,OAAA3B,OAAA,CAAAC,OAAA;MACZxB,iBAAiB,CAAC,KAAK,CAAC;MACxBM,mBAAmB,CAAC,KAAK,CAAC;MAAC,OAAAiB,OAAA,CAAAC,OAAA,CACrBJ,sBAAsB,CAAC8B,KAAK,CAAC/C,IAAI,CAACgD,OAAO,EAAE,EAAED,KAAK,CAAC9C,EAAE,CAAC+C,OAAO,EAAE,CAAC,EAAArB,IAAA;KACvE,QAAAnB,CAAA;MAAA,OAAAY,OAAA,CAAAiB,MAAA,CAAA7B,CAAA;;;EAED,MAAMyC,oBAAoB;IAAA,IAAe;MACvC,IAAI,CAACnD,UAAU,CAACE,IAAI,IAAI,CAACF,UAAU,CAACG,EAAE,EAAE;QACtC4B,KAAK,CAACxO,CAAC,CAAC,mBAAmB,CAAC,IAAI,uCAAuC,CAAC;QACxE,OAAA+N,OAAA,CAAAC,OAAA;;MAEF,MAAMrB,IAAI,GAAG,IAAIwC,IAAI,CAAC1C,UAAU,CAACE,IAAI,CAAC;MACtCA,IAAI,CAAC0C,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;MACzB,MAAMzC,EAAE,GAAG,IAAIuC,IAAI,CAAC1C,UAAU,CAACG,EAAE,CAAC;MAClCA,EAAE,CAACyC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,CAAC;MAC5B7C,iBAAiB,CAAC,KAAK,CAAC;MACxBM,mBAAmB,CAAC,KAAK,CAAC;MAAC,OAAAiB,OAAA,CAAAC,OAAA,CACrBJ,sBAAsB,CAACjB,IAAI,CAACgD,OAAO,EAAE,EAAE/C,EAAE,CAAC+C,OAAO,EAAE,CAAC,EAAArB,IAAA;KAC3D,QAAAnB,CAAA;MAAA,OAAAY,OAAA,CAAAiB,MAAA,CAAA7B,CAAA;;;EAED,MAAM+U,QAAQ,GAAGvL,KAAA;IAAA,IAAC;MAAEoH,KAAK;MAAE9L,KAAK;MAAEnB,IAAI;MAAE1P,SAAS;MAAEof;KAAM,GAAA7J,KAAA;IAAA,oBACvDjU,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAE,aAAatB,IAAI;OAC9B1P,SAAS,gBACRsB,cAAA,CAAAC,aAAA,CAACD,cAAK,CAACyf,QAAQ,qBACbzf,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC;KAAyC,CAAC,eACzD1P,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC;KAA2C,CAC5C,CAAC,gBAEjB1P,cAAA,CAAAC,aAAA,CAACD,cAAK,CAACyf,QAAQ,qBACbzf,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC;OAAc2L,KAAW,CAAC,eACzCrb,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC;OAAcH,KAAW,CAAC,EACxCuO,IAAI,iBAAI9d,cAAA,CAAAC,aAAA;MAAKyP,SAAS,EAAC;OAAaoO,IAAU,CACjC,CAEf,CAAC;GACP;EAED,MAAMhP,OAAO,GAAG,CAAC;IAAEkT,MAAM,EAAE;GAAU,EAAE;IAAEA,MAAM,EAAE;GAAiB,CAAC;EAEnE,MAAMsU,gBAAgB,GAAI5c,MAAM,IAAK;IACnCsV,cAAc,CAAC,KAAK,CAAC;IACrBmhB,YAAY,CAACz2B,MAAM,CAACsI,MAAM,CAAC;GAC5B;EAED,MAAM9W,sBAAsB,aAAUC,QAAQ,EAAEC,MAAM;IAAA,IAAK;MACzDzB,sBAAsB,CAAC,IAAI,CAAC;MAAC,OAAA0B,OAAA,CAAAC,OAAA,CAAAC,gBAAA;QAAA,OAAAC,MAAA,aACzB;UAAA,IAAA+lC,gBAAA;UAAA,OAAAlmC,OAAA,CAAAC,OAAA,CACqB9N,KAAK,CAACiO,WAAW,CAACC,gBAAgB,CAAC;YACxD/N,QAAQ,EAAEA,QAAQ,IAAI,QAAQ;YAC9BmB,MAAM,EAAE,CAAC;YACTC,KAAK,EAAE,KAAK;YACZiH,UAAU,EAAEmjC,QAAQ,aAARA,QAAQ,wBAAAoI,gBAAA,GAARpI,QAAQ,CAAEjtB,KAAK,cAAAq1B,gBAAA,uBAAfA,gBAAA,CAAiBje,IAAI;YACjC3nB,cAAc,EAAE,IAAI;YACpB,IAAIR,QAAQ,IAAI;cAAEA;aAAU,CAAC;YAC7B,IAAIC,MAAM,IAAI;cAAEA;aAAQ;WACzB,CAAC,EAAAQ,IAAA,WARIC,QAAQ;YAUd,MAAMzD,YAAY,GAAG,CAAAyD,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEzD,YAAY,KAAI,EAAE;YACjD,IAAIA,YAAY,CAACvI,MAAM,KAAK,CAAC,EAAE;cAC7BiM,KAAK,CAACxO,CAAC,CAAC,eAAe,CAAC,IAAI,6BAA6B,CAAC;cAC1D;;YAGF,MAAMiL,SAAS,GAAGJ,gBAAgB,CAACC,YAAY,EAAE9K,CAAC,CAAC;YACnD,MAAMyO,aAAa,GAAG,aAAarD,QAAQ,CAACZ,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,EAAE;YAC3EtK,KAAK,CAACwO,QAAQ,CAACC,KAAK,CAAC1D,SAAS,EAAEwD,aAAa,CAAC;;SAC/C,YAAQG,KAAK,EAAE;UACdC,OAAO,CAACD,KAAK,CAAC,+BAA+B,EAAEA,KAAK,CAAC;SACtD;mBAAAslC,WAAA,EAAAC,QAAA;QACC9nC,sBAAsB,CAAC,KAAK,CAAC;QAAC,IAAA6nC,WAAA,QAAAC,QAAA;QAAA,OAAAA,QAAA;;KAEjC,QAAAhnC,CAAA;MAAA,OAAAY,OAAA,CAAAiB,MAAA,CAAA7B,CAAA;;;EAED,MAAM4+B,UAAU;IAAA,IAAe;MAC7B8G,YAAY,CAAC,IAAI,CAAC;MAAC,OAAA9kC,OAAA,CAAAC,OAAA;KACpB,QAAAb,CAAA;MAAA,OAAAY,OAAA,CAAAiB,MAAA,CAAA7B,CAAA;;;EAED,oBACEzK,cAAA,CAAAC,aAAA,CAACqV,2BAAI;IAAC5F,SAAS,EAAC;kBA6Cd1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBAEb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACf1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAIyP,SAAS,EAAC;KAAQhH,QAAa,CAAC,eACpC1I,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KAAc,GAAC,EAAC,CAAAy5B,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEuI,WAAW,KAAIp0C,CAAC,CAAC,gBAAgB,CAAC,EAAC,GAAM,CAI/E,CACF,CAAC,eAGN0C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAQyP,SAAS,EAAC,cAAc;IAACO,QAAQ,EAAEgP,aAAc;IAAC/O,OAAO,EAAEiP;KAChEF,aAAa,GAAG3hB,CAAC,CAAC,aAAa,CAAC,IAAI,gBAAgB,GAAGA,CAAC,CAAC,iBAAiB,CAAC,IAAI,iBAC1E,CACL,CACF,CACA,CAAC,eACN0C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAASpS,CAAC,CAAC,QAAQ,CAAQ,CAAC,eAC5C0C,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAAS,CAAAy5B,QAAQ,aAARA,QAAQ,wBAAAsG,gBAAA,GAARtG,QAAQ,CAAEjtB,KAAK,cAAAuzB,gBAAA,uBAAfA,gBAAA,CAAiBx3B,YAAY,MAAIkxB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEtnC,QAAQ,KAAI,KAAY,CACzF,CAAC,eAEN7B,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAASpS,CAAC,CAAC,OAAO,CAAQ,CAAC,eAC3C0C,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAAS,CAAAy5B,QAAQ,aAARA,QAAQ,wBAAAuG,gBAAA,GAARvG,QAAQ,CAAEjtB,KAAK,cAAAwzB,gBAAA,uBAAfA,gBAAA,CAAiB5oC,OAAO,KAAI,KAAY,CAC9D,CAAC,eAEN9G,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA,2BACED,cAAA,CAAAC,aAAA,aAAK3C,CAAC,CAAC,oBAAoB,CAAC,IAAI,oBAAyB,CAAC,eAC1D0C,cAAA,CAAAC,aAAA,YACG3C,CAAC,CAAC,yBAAyB,CAAC,IAAI,iGAChC,CACA,CAAC,eACN0C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC,iBAAiB;IAACM,GAAG,EAAE3F;kBACpCrK,cAAA,CAAAC,aAAA;IACEyP,SAAS,EAAC,oBAAoB;IAC9BO,QAAQ,EAAEvG,mBAAoB;IAC9BwG,OAAO,EAAEA,MAAM;MACbpG,iBAAiB,CAAEqG,CAAC,IAAK,CAACA,CAAC,CAAC;MAC5B/F,mBAAmB,CAAC,KAAK,CAAC;;kBAG5BpK,cAAA,CAAAC,aAAA;IACEyQ,KAAK,EAAC,IAAI;IACVC,MAAM,EAAC,IAAI;IACX8F,OAAO,EAAC,WAAW;IACnBC,IAAI,EAAC,MAAM;IACXC,MAAM,EAAC,cAAc;IACrBC,WAAW,EAAC,KAAK;IACjBC,aAAa,EAAC,OAAO;IACrBC,cAAc,EAAC;kBAEf9W,cAAA,CAAAC,aAAA;IAAMuX,CAAC,EAAC;GAA6C,CAAC,eACtDxX,cAAA,CAAAC,aAAA;IAAUgpC,MAAM,EAAC;GAAoB,CAAC,eACtCjpC,cAAA,CAAAC,aAAA;IAAMiX,EAAE,EAAC,IAAI;IAACC,EAAE,EAAC,IAAI;IAACC,EAAE,EAAC,IAAI;IAACC,EAAE,EAAC;GAAK,CACnC,CAAC,EACL3N,mBAAmB,GAAGpM,CAAC,CAAC,aAAa,CAAC,IAAI,gBAAgB,GAAGA,CAAC,CAAC,gBAAgB,CAAC,IAAI,gBAC/E,CAAC,EAERuM,cAAc,iBACb7J,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KACZ,CACC;IAAEhQ,KAAK,EAAEpC,CAAC,CAAC,OAAO,CAAC,IAAI,OAAO;IAAE2L,GAAG,EAAE;GAAS,EAC9C;IAAEvJ,KAAK,EAAEpC,CAAC,CAAC,WAAW,CAAC,IAAI,WAAW;IAAE2L,GAAG,EAAE;GAAQ,EACrD;IAAEvJ,KAAK,EAAEpC,CAAC,CAAC,YAAY,CAAC,IAAI,YAAY;IAAE2L,GAAG,EAAE;GAAS,CACzD,CAAC5K,GAAG,CAAC+V,KAAA;IAAA,IAAC;MAAE1U,KAAK;MAAEuJ;KAAK,GAAAmL,KAAA;IAAA,oBACnBpU,cAAA,CAAAC,aAAA;MAAKgJ,GAAG,EAAEA,GAAI;MAACyG,SAAS,EAAC,WAAW;MAACQ,OAAO,EAAEA,MAAMnD,oBAAoB,CAAC9D,GAAG;OACzEvJ,KACE,CAAC;GACP,CAAC,eAEFM,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC,qBAAqB;IAACQ,OAAO,EAAEA,MAAM9F,mBAAmB,CAAE+F,CAAC,IAAK,CAACA,CAAC;KAC9E7S,CAAC,CAAC,aAAa,CAAC,IAAI,aAClB,CAAC,EAEL6M,gBAAgB,iBACfnK,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA,6BACED,cAAA,CAAAC,aAAA,eAAM,MAAU,CAAC,eACjBD,cAAA,CAAAC,aAAA;IAAOmO,IAAI,EAAC,MAAM;IAACmB,KAAK,EAAExF,UAAU,CAACE,IAAK;IAACqG,QAAQ,EAAG7F,CAAC,IAAKT,aAAa,CAAC;MAAE,GAAGD,UAAU;MAAEE,IAAI,EAAEQ,CAAC,CAACG,MAAM,CAAC2E;KAAO;GAAI,CAChH,CAAC,eACRvP,cAAA,CAAAC,aAAA,6BACED,cAAA,CAAAC,aAAA,eAAM,IAAQ,CAAC,eACfD,cAAA,CAAAC,aAAA;IAAOmO,IAAI,EAAC,MAAM;IAACmB,KAAK,EAAExF,UAAU,CAACG,EAAG;IAACoG,QAAQ,EAAG7F,CAAC,IAAKT,aAAa,CAAC;MAAE,GAAGD,UAAU;MAAEG,EAAE,EAAEO,CAAC,CAACG,MAAM,CAAC2E;KAAO;GAAI,CAC5G,CACJ,CAAC,eACNvP,cAAA,CAAAC,aAAA;IAAK4P,KAAK,EAAE;MAAEX,OAAO,EAAE,MAAM;MAAEqB,GAAG,EAAE,MAAM;MAAEC,SAAS,EAAE;;kBACrDxQ,cAAA,CAAAC,aAAA;IACEyP,SAAS,EAAC,mBAAmB;IAC7BQ,OAAO,EAAEA,MAAM;MACb9F,mBAAmB,CAAC,KAAK,CAAC;MAC1BJ,aAAa,CAAC;QAAEC,IAAI,EAAE,EAAE;QAAEC,EAAE,EAAE;OAAI,CAAC;;KAGpC5M,CAAC,CAAC,QAAQ,CAAC,IAAI,QACV,CAAC,eACT0C,cAAA,CAAAC,aAAA;IAAQyP,SAAS,EAAC,kBAAkB;IAACQ,OAAO,EAAEhD;KAC3C5P,CAAC,CAAC,OAAO,CAAC,IAAI,OACT,CACL,CACF,CAEJ,CAEJ,CACF,CACF,CAAC,eAGN0C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAASpS,CAAC,CAAC,QAAQ,CAAQ,CAAC,eAC5C0C,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAAS,CAAAy5B,QAAQ,aAARA,QAAQ,wBAAAwG,gBAAA,GAARxG,QAAQ,CAAEjtB,KAAK,cAAAyzB,gBAAA,uBAAfA,gBAAA,CAAiB9sC,MAAM,KAAI,KAAY,CAC7D,CAAC,eAEN7C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAASpS,CAAC,CAAC,QAAQ,CAAQ,CAAC,eAC5C0C,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAAS,CAAAy5B,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEvoC,MAAM,KAAI,KAAY,CACtD,CAAC,eAENZ,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAASpS,CAAC,CAAC,aAAa,CAAC,IAAI,aAAoB,CAAC,eAClE0C,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAASuK,UAAiB,CACvC,CAAC,eAENja,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAASpS,CAAC,CAAC,iBAAiB,CAAC,IAAI,iBAAwB,CAAC,eAC1E0C,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAASwK,cAAqB,CAC3C,CACF,CACF,CACF,CAAC,eAGNla,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA,CAACuf,QAAQ;IACPnE,KAAK,EAAE/d,CAAC,CAAC,gBAAgB,CAAE;IAC3BiS,KAAK,EAAE,CAAA0hC,aAAa,aAAbA,aAAa,wBAAArB,qBAAA,GAAbqB,aAAa,CAAE92B,aAAa,cAAAy1B,qBAAA,uBAA5BA,qBAAA,CAA8BtiC,KAAK,KAAI,CAAE;IAChDc,IAAI,EAAC,OAAO;IACZ1P,SAAS,EAAEsyC,kBAAmB;IAC9BlzB,IAAI,eAAE9d,cAAA,CAAAC,aAAA,CAACinB,UAAO,MAAE;GACjB,CAAC,eACFlnB,cAAA,CAAAC,aAAA,CAACuf,QAAQ;IACPnE,KAAK,EAAE/d,CAAC,CAAC,aAAa,CAAE;IACxBiS,KAAK,EAAE,CAAA0hC,aAAa,aAAbA,aAAa,wBAAApB,sBAAA,GAAboB,aAAa,CAAE92B,aAAa,cAAA01B,sBAAA,uBAA5BA,sBAAA,CAA8B8B,eAAe,KAAI,CAAE;IAC1DvjC,IAAI,EAAC,MAAM;IACX1P,SAAS,EAAEsyC,kBAAmB;IAC9BlzB,IAAI,eAAE9d,cAAA,CAAAC,aAAA,CAACknB,gBAAa,MAAE;GACvB,CAAC,eACFnnB,cAAA,CAAAC,aAAA,CAACuf,QAAQ;IACPnE,KAAK,EAAE/d,CAAC,CAAC,SAAS,CAAE;IACpBiS,KAAK,EAAE,CAAA0hC,aAAa,aAAbA,aAAa,wBAAAnB,sBAAA,GAAbmB,aAAa,CAAE92B,aAAa,cAAA21B,sBAAA,uBAA5BA,sBAAA,CAA8BvhC,OAAO,KAAI,CAAE;IAClDH,IAAI,EAAC,SAAS;IACd1P,SAAS,EAAEsyC,kBAAmB;IAC9BlzB,IAAI,eAAE9d,cAAA,CAAAC,aAAA,CAACke,UAAO,MAAE;GACjB,CAAC,eACFne,cAAA,CAAAC,aAAA,CAACuf,QAAQ;IACPnE,KAAK,EAAE/d,CAAC,CAAC,WAAW,CAAE;IACtBiS,KAAK,EAAE,CAAA0hC,aAAa,aAAbA,aAAa,wBAAAlB,sBAAA,GAAbkB,aAAa,CAAE92B,aAAa,cAAA41B,sBAAA,uBAA5BA,sBAAA,CAA8BtiC,cAAc,KAAI,CAAE;IACzDW,IAAI,EAAC,OAAO;IACZ1P,SAAS,EAAEsyC,kBAAmB;IAC9BlzB,IAAI,eAAE9d,cAAA,CAAAC,aAAA,CAACme,cAAW,MAAE;GACrB,CACE,CAAC,eAENpe,cAAA,CAAAC,aAAA,2BACED,cAAA,CAAAC,aAAA,CAACuV,4BAAK;IACJlY,CAAC,EAAEA,CAAE;IACLyiB,UAAU,EAAEziB,CAAC,CAAC,eAAe,CAAE;IAC/B0iB,UAAU,EAAC,WAAW;IACtBC,iBAAiB,EAAE,IAAK;IACxBzhB,IAAI,EAAE,CAAAyyC,aAAa,aAAbA,aAAa,wBAAAjB,sBAAA,GAAbiB,aAAa,CAAE92B,aAAa,cAAA61B,sBAAA,uBAA5BA,sBAAA,CAA8B5nC,YAAY,KAAI,EAAG;IACvDgL,OAAO,EAAE+9B,UAAW;IACpBzyC,SAAS,EAAEsyC,kBAAmB;IAC9B1+B,YAAY,EAAE2+B,aAAa,aAAbA,aAAa,wBAAAhB,sBAAA,GAAbgB,aAAa,CAAE92B,aAAa,cAAA81B,sBAAA,uBAA5BA,sBAAA,CAA8B3iC,KAAM;IAClD0E,WAAW,EAAEA,WAAY;IACzBC,aAAa,EAAEqM,QAAS;IACxBszB,gBAAgB,EAAE,IAAK;IACvB1xB,oBAAoB,EAAE,IAAK;IAC3BpO,UAAU,EAAEA,MAAM;MAAA,IAAA+/B,sBAAA;MAChB,MAAMvkC,KAAK,GAAG,CAAA2jC,aAAa,aAAbA,aAAa,wBAAAY,sBAAA,GAAbZ,aAAa,CAAE92B,aAAa,cAAA03B,sBAAA,uBAA5BA,sBAAA,CAA8BvkC,KAAK,KAAI,CAAC;MACtD,IAAI0E,WAAW,GAAGzE,IAAI,CAAC6S,IAAI,CAAC9S,KAAK,GAAGgR,QAAQ,CAAC,GAAG,CAAC,EAAE;QACjDD,cAAc,CAAEnI,IAAI,IAAKA,IAAI,GAAG,CAAC,CAAC;;KAEpC;IACFnE,UAAU,EAAEA,MAAM;MAChB,IAAIC,WAAW,GAAG,CAAC,EAAE;QACnBqM,cAAc,CAAEnI,IAAI,IAAKA,IAAI,GAAG,CAAC,CAAC;;KAEpC;IACFmK,WAAW,EAAEA,MAAM;MACjBhC,cAAc,CAAC,CAAC,CAAC;KACjB;IACFiC,UAAU,EAAEA,MAAM;MAAA,IAAAwxB,sBAAA;MAChB,MAAMxkC,KAAK,GAAG,CAAA2jC,aAAa,aAAbA,aAAa,wBAAAa,sBAAA,GAAbb,aAAa,CAAE92B,aAAa,cAAA23B,sBAAA,uBAA5BA,sBAAA,CAA8BxkC,KAAK,KAAI,CAAC;MACtD+Q,cAAc,CAAC9Q,IAAI,CAACiT,GAAG,CAACjT,IAAI,CAAC6S,IAAI,CAAC9S,KAAK,GAAGgR,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;KAC5D;IACFpM,gBAAgB,EAAGzH,CAAC,IAAK;MACvB8T,WAAW,CAAC7W,MAAM,CAAC+C,CAAC,CAACG,MAAM,CAAC2E,KAAK,CAAC,CAAC;MACnC8O,cAAc,CAAC,CAAC,CAAC;;GAEpB,CACE,CAAC,EAELngB,KAAK,CAACoB,QAAQ,CAAC,iBAAiB,CAAC,iBAChCU,cAAA,CAAAC,aAAA,CAAC+2B,gCAAS,qBACRh3B,cAAA,CAAAC,aAAA,CAACkY,gCAAS;IAACzY,KAAK,EAAEpC,CAAC,CAAC,kBAAkB,CAAE;IAAC6Y,QAAQ,EAAEA,MAAM6Y,cAAc,CAAE9Y,IAAI,IAAK,CAACA,IAAI;GAAI,CAAC,EAE3F6Y,WAAW,iBACV/uB,cAAA,CAAAC,aAAA,CAACg3B,2BAAI;IACHnoB,OAAO,EAAEA,OAAQ;IACjB6K,SAAS,EAAE,QAAS;IACpBrc,CAAC,EAAEA,CAAE;IACL+mB,QAAQ,EAAEiS,gBAAiB;IAC3BzmB,KAAK,EAAE;MACLP,KAAK,EAAE,SAAS;MAChB0b,QAAQ,EAAE;;GAEb,CAEM,CACZ,EAEAklB,SAAS,iBACRlwC,cAAA,CAAAC,aAAA,CAACipC,eAAe;IAACC,QAAQ,EAAEA,QAAS;IAACC,UAAU,EAAE8G,SAAS,KAAK,eAAgB;IAAC7G,UAAU,EAAEA,UAAW;IAACC,gBAAgB,EAAEA;GAAmB,CAE3I,CAAC;AAEX,CAAC;;AC/kBD,MAAMyI,SAAS,GAAGA,MAAM;EACpB,MAAMp0C,QAAQ,GAAGH,KAAK,CAACI,UAAU,CAACC,kBAAkB,EAAE;EACtD,MAAM;IAAEP;GAAG,GAAGC,2BAAc,EAAE;EAC9B,MAAMgV,OAAO,GAAGC,yBAAU,EAAE;EAE5B,MAAM,CAACyc,SAAS,EAAEC,YAAY,CAAC,GAAGtlB,cAAQ,CAAC,IAAI,CAAC;EAChD,MAAM,CAACiT,MAAM,EAAEm1B,SAAS,CAAC,GAAGpoC,cAAQ,CAAC,IAAI,CAAC;EAC1C,MAAM,CAACqoC,SAAS,EAAEC,YAAY,CAAC,GAAGtoC,cAAQ,CAAC,EAAE,CAAC;EAC9C,MAAM,CAACuoC,OAAO,EAAEC,UAAU,CAAC,GAAGxoC,cAAQ,CAAC,EAAE,CAAC;EAC1C,MAAM,CAACyoC,YAAY,EAAEC,eAAe,CAAC,GAAG1oC,cAAQ,CAAC,IAAI,CAAC;EACtD,MAAM,CAACoyB,IAAI,EAAEuW,OAAO,CAAC,GAAG3oC,cAAQ,CAAC,IAAI,CAAC;EACtC,MAAM,CAACsC,KAAK,EAAEsmC,QAAQ,CAAC,GAAG5oC,cAAQ,CAAC,IAAI,CAAC;EAExC,MAAM;IAAEpL,IAAI,EAAEi0C,aAAa;IAAE/zC,SAAS,EAAEiyC;GAAiB,GAAGnzC,KAAK,CAACmB,KAAK,CAACoe,GAAG,CAACC,eAAe,CAAC;IACxFrf,QAAQ;IACRsf,OAAO,EAAE;MAAErc,MAAM,EAAE;KAAU;IAC7Buc,MAAM,EAAE;MACJvD,MAAM,EAAGpb,IAAI,IAAK,CAAAA,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEqe,MAAM,KAAI;;GAEzC,CAAC;EAEF,MAAM;IAAEwxB,MAAM,EAAEqE;GAAiB,GAAGl1C,KAAK,CAACmB,KAAK,CAACg0C,EAAE,CAACC,wBAAwB,CAACj1C,QAAQ,CAAC;EAErF4M,eAAS,CAAC,MAAM;IACZ;MAAA,IAAa;QACTioC,QAAQ,CAAC,IAAI,CAAC;QAAC,MAAA1F,MAAA;UAAA,IACX9Q,IAAI;YAAA,MAAAzG,MAAA;cAAA,IACAyG,IAAI,CAACpsB,IAAI,IAAI,QAAQ;gBACrB4iC,QAAQ,CAACl1C,CAAC,CAAC,mCAAmC,CAAC,IAAI,wBAAwB,CAAC;;gBAAC,MAAAi3B,KAAA,GAAA/oB,MAAA,aAEzE;kBAAA,OAAAH,OAAA,CAAAC,OAAA,CACuB9N,KAAK,CAACy4B,cAAc,CAACiG,WAAW,CAAC,MAAM,EAAEF,IAAI,EAAEx+B,KAAK,CAACI,UAAU,CAACi1C,UAAU,EAAE,CAAC,EAAAjnC,IAAA,WAA9FC,QAAQ;oBAAA,IAAA6gC,cAAA,EAAAoG,oBAAA;oBAAA,IACV,CAAAjnC,QAAQ,aAARA,QAAQ,wBAAA6gC,cAAA,GAAR7gC,QAAQ,CAAErN,IAAI,cAAAkuC,cAAA,wBAAAoG,oBAAA,GAAdpG,cAAA,CAAgBzQ,KAAK,cAAA6W,oBAAA,uBAArBA,oBAAA,CAAuBjzC,MAAM,IAAG,CAAC;sBAAA,IAAAutC,eAAA,EAAA2F,qBAAA;sBACjCT,eAAe,CAACzmC,QAAQ,aAARA,QAAQ,wBAAAuhC,eAAA,GAARvhC,QAAQ,CAAErN,IAAI,cAAA4uC,eAAA,wBAAA2F,qBAAA,GAAd3F,eAAA,CAAgBnR,KAAK,CAAC,CAAC,CAAC,cAAA8W,qBAAA,uBAAxBA,qBAAA,CAA0Bhd,WAAW,CAAC;;sBAEtDyc,QAAQ,CAACl1C,CAAC,CAAC,wBAAwB,CAAC,CAAC;;;iBAE5C,cAAa;kBACVk1C,QAAQ,CAACl1C,CAAC,CAAC,wBAAwB,CAAC,CAAC;iBACxC;gBAAA,IAAAi3B,KAAA,IAAAA,KAAA,CAAA3oB,IAAA,SAAA2oB,KAAA,CAAA3oB,IAAA;;;YAAA,IAAA2pB,MAAA,IAAAA,MAAA,CAAA3pB,IAAA,SAAA2pB,MAAA,CAAA3pB,IAAA;;;QAAA,OAAAkhC,MAAA,IAAAA,MAAA,CAAAlhC,IAAA,GAAAkhC,MAAA,CAAAlhC,IAAA;OAGZ,QAAAnB,CAAA;QAAAY,OAAA,CAAAiB,MAAA,CAAA7B,CAAA;;QAAG;GACP,EAAE,CAACuxB,IAAI,CAAC,CAAC;EAEV,MAAM/iB,YAAY,GAAGA,MAAM;IAAA,IAAAuD,aAAA,EAAAC,cAAA;IACvB,MAAMwL,OAAO,GAAG;MACZ+qB,eAAe,EAAE;QACbr1C,QAAQ;QACRsN,IAAI,EAAE4R,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAE5R,IAAI;QAClBgN,YAAY,EAAE4E,MAAM,aAANA,MAAM,wBAAAL,aAAA,GAANK,MAAM,CAAEX,KAAK,cAAAM,aAAA,uBAAbA,aAAA,CAAevE,YAAY;QACzCnR,OAAO,EAAE+V,MAAM,aAANA,MAAM,wBAAAJ,cAAA,GAANI,MAAM,CAAEX,KAAK,cAAAO,cAAA,uBAAbA,cAAA,CAAe3V,OAAO;QAC/BZ,QAAQ,EAAE,CAAA2W,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEte,IAAI,MAAIse,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEzD,EAAE;QACpC64B,SAAS,EAAE,IAAIxlC,IAAI,CAACwlC,SAAS,CAAC,CAAChlC,OAAO,EAAE;QACxCklC,OAAO,EAAE,IAAI1lC,IAAI,CAAC0lC,OAAO,CAAC,CAACllC,OAAO,EAAE;QACpC4W,WAAW,EAAE,MAAM;QACnBkS,WAAW,EAAEsc;;KAEpB;IAEDK,eAAe,CAACzqB,OAAO,EAAE;MACrBukB,SAAS,EAAG/X,MAAM,IAAK;QACnBvF,YAAY,CAAC;UAAE+jB,OAAO,EAAE,KAAK;UAAEvzC,KAAK,EAAEpC,CAAC,CAAC,8BAA8B;SAAG,CAAC;QAC1Eo3B,UAAU,CAAC,MAAM;UACbniB,OAAO,CAAC9S,IAAI,CAAC,mCAAmC,CAAC;SACpD,EAAE,IAAI,CAAC;OACX;MACDk4B,OAAO,EAAGpY,GAAG,IAAK;QAAA,IAAAoV,aAAA,EAAAC,kBAAA,EAAAse,qBAAA,EAAAC,sBAAA;QACdjkB,YAAY,CAAC;UAAE+jB,OAAO,EAAE,IAAI;UAAEvzC,KAAK,EAAE,CAAA6f,GAAG,aAAHA,GAAG,wBAAAoV,aAAA,GAAHpV,GAAG,CAAE1T,QAAQ,cAAA8oB,aAAA,wBAAAC,kBAAA,GAAbD,aAAA,CAAen2B,IAAI,cAAAo2B,kBAAA,wBAAAse,qBAAA,GAAnBte,kBAAA,CAAqBQ,MAAM,cAAA8d,qBAAA,wBAAAC,sBAAA,GAA3BD,qBAAA,CAA8B,CAAC,CAAC,cAAAC,sBAAA,uBAAhCA,sBAAA,CAAkC/wB,OAAO,KAAI9kB,CAAC,CAAC,4BAA4B;SAAG,CAAC;;KAE3H,CAAC;GACL;EAED,SAAS81C,UAAUA,CAAC3oC,CAAC,EAAE;IACnB6nC,eAAe,CAAC,IAAI,CAAC;IACrBC,OAAO,CAAC9nC,CAAC,CAACG,MAAM,CAACqxB,KAAK,CAAC,CAAC,CAAC,CAAC;;EAG9B,MAAMoX,cAAc,GAAG,CAACx2B,MAAM,IAAI,CAACo1B,SAAS,IAAI,CAACE,OAAO,IAAI,CAACE,YAAY;EACzE,MAAM7qB,QAAQ,GAAGroB,MAAM,CAAC3B,KAAK,CAACC,KAAK,CAAC8pB,OAAO,CAACC,QAAQ,EAAE;EAEtD,oBACIxnB,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACX1P,cAAA,CAAAC,aAAA,CAACuhC,uCAAgB;IAACrkB,MAAM,EAAE,CAAC;MAAEgiB,QAAQ,EAAE,CAAC;QAAEE,OAAO,EAAE/hC,CAAC,CAAC,wBAAwB,CAAC;QAAE8hC,WAAW,EAAE;OAAG;KAAG,CAAE;IAACqC,aAAa,EAAE;GAAQ,CAAC,eAE9HzhC,cAAA,CAAAC,aAAA;IAAK4P,KAAK,EAAE;MAAEwF,IAAI,EAAE;;kBAChBrV,cAAA,CAAAC,aAAA,CAACqzC,0CAAmB;IAACj4B,KAAK,EAAE/d,CAAC,CAAC,wBAAwB,CAAE;IAACwkC,WAAW,EAAE;kBAClE9hC,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACX1P,cAAA,CAAAC,aAAA;IAAK4P,KAAK,EAAE;MAAEX,OAAO,EAAE,MAAM;MAAEqkC,aAAa,EAAE;;kBAC1CvzC,cAAA,CAAAC,aAAA,CAAC8iB,4BAAK,QACD,GAAGzlB,CAAC,CAAC,kBAAkB,CAAC,EAAE,EAAC,GAAC,eAAA0C,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAAyB,GAAO,CAC1E,CAAC,eACR1P,cAAA,CAAAC,aAAA,CAACwZ,+BAAQ;IAACnc,CAAC,EAAEA,CAAE;IAACoc,MAAM,EAAE+4B,aAAc;IAAC94B,SAAS,EAAC,MAAM;IAACC,MAAM,EAAEo4B,SAAU;IAACn4B,QAAQ,EAAEgD,MAAO;IAACtF,WAAW,EAAEja,CAAC,CAAC,oBAAoB;GAAI,CACnI,CAAC,eAEN0C,cAAA,CAAAC,aAAA;IAAK4P,KAAK,EAAE;MAAEX,OAAO,EAAE,MAAM;MAAEqkC,aAAa,EAAE;;kBAC1CvzC,cAAA,CAAAC,aAAA,CAAC8iB,4BAAK,QACD,GAAGzlB,CAAC,CAAC,wBAAwB,CAAC,EAAE,EAAC,GAAC,eAAA0C,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAAyB,GAAO,CAChF,CAAC,eACR1P,cAAA,CAAAC,aAAA,CAACuzC,iCAAU;IAACC,IAAI,EAAExB,SAAU;IAAC3hC,QAAQ,EAAGmjC,IAAI,IAAKvB,YAAY,CAACuB,IAAI,CAAE;IAAC5jC,KAAK,EAAE;MAAEa,KAAK,EAAE;;GAAW,CAC/F,CAAC,eAEN1Q,cAAA,CAAAC,aAAA;IAAK4P,KAAK,EAAE;MAAEX,OAAO,EAAE,MAAM;MAAEqkC,aAAa,EAAE;;kBAC1CvzC,cAAA,CAAAC,aAAA,CAAC8iB,4BAAK,QACD,GAAGzlB,CAAC,CAAC,sBAAsB,CAAC,EAAE,EAAC,GAAC,eAAA0C,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAAyB,GAAO,CAC9E,CAAC,eACR1P,cAAA,CAAAC,aAAA,CAACuzC,iCAAU;IAACC,IAAI,EAAEtB,OAAQ;IAAClZ,GAAG,EAAEgZ,SAAU;IAAC3hC,QAAQ,EAAGmjC,IAAI,IAAKrB,UAAU,CAACqB,IAAI,CAAE;IAAC5jC,KAAK,EAAE;MAAEa,KAAK,EAAE;;GAAW,CAC3G,CAAC,eAEN1Q,cAAA,CAAAC,aAAA;IAAK4P,KAAK,EAAE;MAAEX,OAAO,EAAE,MAAM;MAAEqkC,aAAa,EAAE;;kBAC1CvzC,cAAA,CAAAC,aAAA,CAAC8iB,4BAAK,QAAE,GAAGzlB,CAAC,CAAC,sBAAsB,CAAC,EAAE,EAAC,GAAC,eAAA0C,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KAAyB,GAAO,CAAQ,CAAC,eACjG1P,cAAA,CAAAC,aAAA,CAACi5B,iCAAU;IACP9f,EAAE,EAAE,UAAW;IACfs6B,cAAc,EAAE,gBAAiB;IACjCC,MAAM,EAAC,kCAAkC;IACzCxa,QAAQ,EAAEia,UAAW;IACrBha,QAAQ,EAAEA,MAAMkZ,eAAe,CAAC,IAAI,CAAE;IACtClwB,OAAO,EAAEiwB,YAAY,GAAG,KAAK/0C,CAAC,CAAC,0BAA0B,CAAC,EAAE,GAAGA,CAAC,CAAC,6BAA6B,CAAE;IAChG4O,KAAK,EAAEA;GACV,CACA,CACJ,CACY,CAAC,eAEtBlM,cAAA,CAAAC,aAAA;IAAK4P,KAAK,EAAE;MAAEX,OAAO,EAAE,MAAM;MAAEsB,SAAS,EAAE,MAAM;MAAEqa,cAAc,EAAErD,QAAQ,GAAG,QAAQ,GAAG;;kBACpFxnB,cAAA,CAAAC,aAAA,CAACkY,gCAAS;IAACzY,KAAK,EAAEpC,CAAC,CAAC,gBAAgB,CAAE;IAAC6Y,QAAQ,EAAEk9B,cAAc,GAAG,IAAI,GAAGp6B,YAAa;IAAChJ,QAAQ,EAAEojC;GAAiB,CACjH,CACJ,CAAC,EAELpkB,SAAS,iBAAIjvB,cAAA,CAAAC,aAAA,CAAC63B,4BAAK;IAAC5rB,KAAK,EAAE+iB,SAAS,CAACgkB,OAAQ;IAACvzC,KAAK,EAAEuvB,SAAS,CAACvvB,KAAM;IAAC4Z,OAAO,EAAEA,MAAM4V,YAAY,CAAC,IAAI;GAAI,CAC1G,CAAC;AAEd,CAAC;;ACxIM,SAAS9J,WAAWA,CAAC1jB,KAAK,EAAEumB,OAAO,EAAE;EAC1C,MAAM2rB,UAAU,GAAG,eAAe;EAGlC,QAAQ3rB,OAAO,CAACjG,MAAM;IACpB,KAAK,kBAAkB;MACrBxkB,KAAK,CAACO,cAAc,CAACmqB,GAAG,CAAC0rB,UAAU,EAAE;QAAE,GAAGlyC,KAAK;QAAEygB,UAAU,EAAE8F,OAAO,CAACzpB;OAAM,CAAC;MAC5E,OAAO;QAAE,GAAGkD,KAAK;QAAEygB,UAAU,EAAE8F,OAAO,CAACzpB;OAAM;IAE/C,KAAK,kBAAkB;MACrBhB,KAAK,CAACO,cAAc,CAACmqB,GAAG,CAAC0rB,UAAU,EAAE;QAAE,GAAGlyC,KAAK;QAAEsjB,UAAU,EAAEiD,OAAO,CAACzpB;OAAM,CAAC;MAC5E,OAAO;QAAE,GAAGkD,KAAK;QAAEsjB,UAAU,EAAEiD,OAAO,CAACzpB;OAAM;IAE/C,KAAK,iBAAiB;MACpBhB,KAAK,CAACO,cAAc,CAACmqB,GAAG,CAAC0rB,UAAU,EAAE;QAAE,GAAGlyC,KAAK;QAAE0f,SAAS,EAAE6G,OAAO,CAACzpB;OAAM,CAAC;MAC3E,OAAO;QAAE,GAAGkD,KAAK;QAAE0f,SAAS,EAAE6G,OAAO,CAACzpB;OAAM;IAE9C;MACE,OAAOkD,KAAK;;AAElB;AAEA,AAAO,MAAMqjB,aAAa,GAAG;EAC3BC,UAAU,EAAE,EAAE;EACd7C,UAAU,EAAE,EAAE;EACdf,SAAS,EAAE;IACTriB,KAAK,EAAE,EAAE;IACTD,MAAM,EAAE,CAAC;IACTmmB,MAAM,EAAE,aAAa;IACrBC,SAAS,EAAE;;AAEf,CAAC;AAED,AAAO,MAAM7D,iBAAiB,GAAGA,CAAC/jB,CAAC,EAAE2V,YAAY,KAAK,CACpD;EACEK,MAAM,EAAEhW,CAAC,CAAC,eAAe,CAAC;EAC1BiW,QAAQ,EAAE,cAAc;EACxBC,IAAI,EAAEhK,IAAA,IAAa;IAAA,IAAAiK,aAAA,EAAAC,cAAA,EAAAK,cAAA;IAAA,IAAZ;MAAEJ;KAAK,GAAAnK,IAAA;IACZ,MAAM4P,EAAE,IAAA3F,aAAA,GAAGE,GAAG,CAACC,QAAQ,cAAAH,aAAA,uBAAZA,aAAA,CAAc2F,EAAE;IAC3B,oBACEpZ,cAAA,CAAAC,aAAA;MAAMyP,SAAS,EAAC,MAAM;MAACQ,OAAO,EAAEA,MAAM+C,YAAY,CAACmG,EAAE;OAClD,EAAA1F,cAAA,GAAAC,GAAG,CAACC,QAAQ,cAAAF,cAAA,uBAAZA,cAAA,CAAcsG,YAAY,OAAAjG,cAAA,GAAIJ,GAAG,CAACC,QAAQ,cAAAG,cAAA,uBAAZA,cAAA,CAAc9I,IAAI,KAAI,IACjD,CAAC;;AAGb,CAAC,EAMD;EACEqI,MAAM,EAAEhW,CAAC,CAAC,eAAe,CAAC;EAC1BiW,QAAQ,EAAE,UAAU;EACpBC,IAAI,EAAEnD,KAAA;IAAA,IAAA6D,cAAA,EAAAC,cAAA,EAAA0/B,oBAAA;IAAA,IAAC;MAAElgC;KAAK,GAAAtD,KAAA;IAAA,oBAAKrQ,cAAA,CAAAC,aAAA,eAAO,EAAAiU,cAAA,GAAAP,GAAG,CAACC,QAAQ,cAAAM,cAAA,uBAAZA,cAAA,CAAcrS,QAAQ,OAAAsS,cAAA,GAAIR,GAAG,CAACC,QAAQ,cAAAO,cAAA,wBAAA0/B,oBAAA,GAAZ1/B,cAAA,CAAc+H,KAAK,cAAA23B,oBAAA,uBAAnBA,oBAAA,CAAqB57B,YAAY,KAAI,IAAW,CAAC;;AACvG,CAAC,EACD;EACE3E,MAAM,EAAEhW,CAAC,CAAC,QAAQ,CAAC;EACnBiW,QAAQ,EAAE,QAAQ;EAClBC,IAAI,EAAEM,KAAA,IAAa;IAAA,IAAAO,cAAA;IAAA,IAAZ;MAAEV;KAAK,GAAAG,KAAA;IACZ,MAAMlT,MAAM,GAAG,EAAAyT,cAAA,GAAAV,GAAG,CAACC,QAAQ,cAAAS,cAAA,uBAAZA,cAAA,CAAczT,MAAM,KAAI,SAAS;IAChD,oBAAOZ,cAAA,CAAAC,aAAA;MAAMyP,SAAS,EAAE,mBAAmB9O,MAAM;OAAKtD,CAAC,CAACsD,MAAM,CAAQ,CAAC;;AAE3E,CAAC,EACD;EACE0S,MAAM,EAAEhW,CAAC,CAAC,cAAc,CAAC;EACzBiW,QAAQ,EAAE,aAAa;EACvBC,IAAI,EAAES,KAAA;IAAA,IAAAK,cAAA;IAAA,IAAC;MAAEX;KAAK,GAAAM,KAAA;IAAA,oBAAKjU,cAAA,CAAAC,aAAA,eAAO,EAAAqU,cAAA,GAAAX,GAAG,CAACC,QAAQ,cAAAU,cAAA,uBAAZA,cAAA,CAAcuP,WAAW,KAAI,IAAW,CAAC;;AACrE,CAAC,CACF;;AClED,MAAMiwB,0BAA0B,GAAGtqC,IAAA,IAS7B;EAAA,IAAApM,qBAAA,EAAAC,sBAAA,EAAAohB,sBAAA,EAAAiC,oBAAA,EAAAC,qBAAA;EAAA,IAT8B;IAClCzO,gBAAgB;IAChB2O,SAAS;IACT5hB,UAAU;IACV6hB,KAAK;IACLC,QAAQ;IACRE,eAAe;IACfC,WAAW,GAAG,EAAE;IAChBC,UAAU,GAAG;GACd,GAAA3X,IAAA;EACC,MAAM;IAAElM;GAAG,GAAGC,2BAAc,EAAE;EAC9B,MAAMgV,OAAO,GAAGC,yBAAU,EAAE;EAE5B,MAAM7M,QAAQ,GAAG,EAAAvI,qBAAA,GAAAI,KAAK,CAACO,cAAc,CAACC,GAAG,CAAC,MAAM,CAAC,cAAAZ,qBAAA,wBAAAC,sBAAA,GAAhCD,qBAAA,CAAkCa,IAAI,cAAAZ,sBAAA,wBAAAohB,sBAAA,GAAtCphB,sBAAA,CAAwC+Q,IAAI,cAAAqQ,sBAAA,uBAA5CA,sBAAA,CAA8C5W,WAAW,EAAE,KAAI,SAAS;EAEzF,MAAMoL,YAAY,GAAImG,EAAE,IAAK;IAC3B7G,OAAO,CAAC9S,IAAI,CAAC,aAAakG,QAAQ,iCAAiCyT,EAAE,EAAE,CAAC;GACzE;EAED,MAAMra,KAAK,GAAG,CAAA8hB,SAAS,aAATA,SAAS,wBAAAH,oBAAA,GAATG,SAAS,CAAEO,SAAS,cAAAV,oBAAA,uBAApBA,oBAAA,CAAsB3hB,KAAK,KAAI,EAAE;EAC/C,MAAMD,MAAM,GAAG,CAAA+hB,SAAS,aAATA,SAAS,wBAAAF,qBAAA,GAATE,SAAS,CAAEO,SAAS,cAAAT,qBAAA,uBAApBA,qBAAA,CAAsB7hB,MAAM,KAAI,CAAC;EAEhD,OAAO;IACL4iB,WAAW,EAAE,KAAK;IAClBC,QAAQ,EAAE,KAAK;IACfC,gBAAgB,EAAE,IAAI;IAEtB5P,WAAW,EAAEzE,IAAI,CAACuU,KAAK,CAAChjB,MAAM,GAAGC,KAAK,CAAC;IAEvCmT,gBAAgB;IAEhBJ,UAAU,EAAEA,MACViP,QAAQ,CAAC;MACPiB,MAAM,EAAE,iBAAiB;MACzBxjB,IAAI,EAAE;QACJ,GAAGqiB,SAAS,CAACO,SAAS;QACtBtiB,MAAM,EAAE4I,MAAM,CAAC5I,MAAM,CAAC,GAAG4I,MAAM,CAAC3I,KAAK;;KAExC,CAAC;IAEJgT,UAAU,EAAEA,MACVgP,QAAQ,CAAC;MACPiB,MAAM,EAAE,iBAAiB;MACzBxjB,IAAI,EAAE;QACJ,GAAGqiB,SAAS,CAACO,SAAS;QACtBtiB,MAAM,EAAE4I,MAAM,CAAC5I,MAAM,CAAC,GAAG4I,MAAM,CAAC3I,KAAK;;KAExC,CAAC;IAEJuhB,UAAU,EAAEA,MACVS,QAAQ,CAAC;MACPiB,MAAM,EAAE,iBAAiB;MACzBxjB,IAAI,EAAE;QACJ,GAAGqiB,SAAS,CAACO,SAAS;QACtBtiB,MAAM,EAAEyO,IAAI,CAAC6S,IAAI,CAACnhB,UAAU,GAAGF,KAAK,CAAC,GAAGA,KAAK,GAAG2I,MAAM,CAAC3I,KAAK;;KAE/D,CAAC;IAEJshB,WAAW,EAAEA,MACXU,QAAQ,CAAC;MACPiB,MAAM,EAAE,iBAAiB;MACzBxjB,IAAI,EAAE;QAAE,GAAGqiB,SAAS,CAACO,SAAS;QAAEtiB,MAAM,EAAE;;KACzC,CAAC;IAEJwT,YAAY,EAAErT,UAAU;IACxB4S,MAAM,EAAEoP,eAAe;IAEvBziB,IAAI,EAAEsiB,KAAK;IACX1N,OAAO,EAAEiO,iBAAiB,CAAC/jB,CAAC,EAAE2V,YAAY,CAAC;IAE3CiO,WAAW,EAAE;MAAE,GAAGA;KAAa;IAC/BC,UAAU,EAAE;MAAE,GAAGA;;GAClB;AACH,CAAC;;ACpED,MAAM4yB,UAAU,GAAGA,MAAM;EAAA,IAAArzB,oBAAA,EAAAC,qBAAA,EAAAoB,qBAAA,EAAAG,qBAAA,EAAAtB,qBAAA,EAAAgvB,qBAAA;EACvB,MAAM,CAAC/uB,SAAS,EAAEE,QAAQ,CAAC,GAAGoE,gBAAU,CAACC,WAAW,EAAEL,aAAa,CAAC;EAEpE,IAAIivB,eAAe,GAAG;IACpBj1C,KAAK,EAAE,CAAA8hB,SAAS,aAATA,SAAS,wBAAAH,oBAAA,GAATG,SAAS,CAAEO,SAAS,cAAAV,oBAAA,uBAApBA,oBAAA,CAAsB3hB,KAAK,KAAI,EAAE;IACxCD,MAAM,EAAE,CAAA+hB,SAAS,aAATA,SAAS,wBAAAF,qBAAA,GAATE,SAAS,CAAEO,SAAS,cAAAT,qBAAA,uBAApBA,qBAAA,CAAsB7hB,MAAM,KAAI,CAAC;IACzCmmB,MAAM,EAAE,CAAApE,SAAS,aAATA,SAAS,wBAAAkB,qBAAA,GAATlB,SAAS,CAAEO,SAAS,cAAAW,qBAAA,uBAApBA,qBAAA,CAAsBkD,MAAM,KAAI,aAAa;IACrDC,SAAS,EAAE,CAAArE,SAAS,aAATA,SAAS,wBAAAqB,qBAAA,GAATrB,SAAS,CAAEO,SAAS,cAAAc,qBAAA,uBAApBA,qBAAA,CAAsBgD,SAAS,KAAI;GAC/C;EAED,MAAMjN,YAAY,GAAG,CAAA4I,SAAS,aAATA,SAAS,wBAAAD,qBAAA,GAATC,SAAS,CAAEsB,UAAU,cAAAvB,qBAAA,uBAArBA,qBAAA,CAAuB3I,YAAY,KAAI,EAAE;EAC9D,MAAMyN,cAAc,GAAG,CAAC,CAACzN,YAAY;EAErC,MAAMgF,OAAO,GAAG;IACd,GAAG+2B,eAAe;IAClBpzC,MAAM,EAAE;GACT;EAED,IAAI8kB,cAAc,EAAE;IAClBzI,OAAO,CAAChF,YAAY,GAAGA,YAAY;;EAGrC,MAAM;IAAEzZ,IAAI,EAAEyyC,aAAa;IAAEvyC;GAAW,GAAGlB,KAAK,CAACmB,KAAK,CAACoe,GAAG,CAACsmB,iBAAiB,CAAC,QAAQ,EAAEpmB,OAAO,EAAE;IAAEje,OAAO,EAAE,IAAI;IAAEue,gBAAgB,EAAE;GAAM,CAAC;EAE1I,MAAMuI,UAAU,GAAGzS,aAAO,CAAC,MAAM;IAC/B,OAAO,CAAA49B,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAElM,SAAS,KAAI,EAAE;GACtC,EAAE,CAACkM,aAAa,CAAC,CAAC;EAEnB,MAAMlrB,YAAY,GAAG1S,aAAO,CAAC,MAAM;IACjC,OAAO,CAACyS,UAAU,IAAI,EAAE,EAAEznB,GAAG,CAAEmK,IAAI,IAAK;MAAA,IAAAyrC,YAAA,EAAAC,gBAAA,EAAAC,qBAAA,EAAAC,kBAAA,EAAAC,mBAAA;MACtC,MAAMn4B,KAAK,GAAG,CAAA1T,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE0T,KAAK,KAAI,EAAE;MAC/B,MAAMo4B,SAAS,GAAG,CAAAp4B,KAAK,aAALA,KAAK,wBAAA+3B,YAAA,GAAL/3B,KAAK,CAAEhe,KAAK,cAAA+1C,YAAA,wBAAAC,gBAAA,GAAZD,YAAA,CAAc51C,GAAG,CAAEi2B,IAAI,IAAKA,IAAI,CAAC/1B,IAAI,CAAC,cAAA21C,gBAAA,uBAAtCA,gBAAA,CAAwCrrC,IAAI,CAAC,IAAI,CAAC,KAAI,EAAE;MAE1E,OAAO;QACL,GAAGL,IAAI;QACP4Q,EAAE,EAAE,CAAA5Q,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE4Q,EAAE,KAAI,EAAE;QAClBY,YAAY,EAAE,CAAAxR,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEyC,IAAI,MAAIiR,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEjR,IAAI,KAAI,EAAE;QAC7CpJ,QAAQ,EAAE,CAAA2G,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE3G,QAAQ,MAAIqa,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEjE,YAAY,KAAI,EAAE;QACrDjW,KAAK,EAAE,CAAAka,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEpV,OAAO,KAAI,EAAE;QAC3BZ,QAAQ,EAAE,CAAAsC,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEtC,QAAQ,KAAI,EAAE;QAC9BvI,QAAQ,EAAE,CAAA6K,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE7K,QAAQ,KAAI,EAAE;QAC9BsI,YAAY,EAAE,CAAAuC,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEvC,YAAY,KAAI,EAAE;QACtCrF,MAAM,EAAE,CAAA4H,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE5H,MAAM,KAAI,EAAE;QAC1B0zC,SAAS;QACT3gB,QAAQ,EAAE,CAAAzX,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEyX,QAAQ,KAAI,EAAE;QAC/B9wB,MAAM,EAAE,CAAAqZ,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAErZ,MAAM,KAAI,EAAE;QAC3BghB,WAAW,EAAE,CAAArb,IAAI,aAAJA,IAAI,wBAAA2rC,qBAAA,GAAJ3rC,IAAI,CAAE+rC,iBAAiB,cAAAJ,qBAAA,uBAAvBA,qBAAA,CAAyBtwB,WAAW,KAAI,EAAE;QACvD5c,WAAW,EAAE,CAAAuB,IAAI,aAAJA,IAAI,wBAAA4rC,kBAAA,GAAJ5rC,IAAI,CAAEgsC,YAAY,cAAAJ,kBAAA,uBAAlBA,kBAAA,CAAoBntC,WAAW,KAAI,CAAC;QACjDC,gBAAgB,EAAE,CAAAsB,IAAI,aAAJA,IAAI,wBAAA6rC,mBAAA,GAAJ7rC,IAAI,CAAEgsC,YAAY,cAAAH,mBAAA,uBAAlBA,mBAAA,CAAoBntC,gBAAgB,KAAI;OAC3D;KACF,CAAC;GACH,EAAE,CAAC4e,UAAU,CAAC,CAAC;EAEhB,MAAMxT,YAAY,GAAG,CAAA2+B,aAAa,aAAbA,aAAa,wBAAArB,qBAAA,GAAbqB,aAAa,CAAE92B,aAAa,cAAAy1B,qBAAA,uBAA5BA,qBAAA,CAA8Bt9B,YAAY,MAAI2+B,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEhyC,UAAU,KAAI,CAAC;EAMjG,MAAMmoB,gBAAgB,GAAG7E,iBAAW,CAClC/Y,IAAA;IAAA,IAAC;MAAE6d,WAAW;MAAE1E,eAAe;MAAEC;KAAmB,GAAApZ,IAAA;IAAA,oBAClDxJ,cAAA,CAAAC,aAAA,CAACyiB,0BAA0B;MAAO2E,WAAW;MAAE1E,eAAe;MAAEC,iBAAiB;MAAIC,UAAU,EAAC,QAAQ;MAACnT,SAAS,EAAC;KAAU,CAAC;GAC/H,EACD,EACF,CAAC;EAED,MAAM4X,2BAA2B,GAAG;IAClCrC,MAAM,EAAE,aAAa;IACrBlmB,KAAK,EAAEI,MAAM,CAAC3B,KAAK,CAACC,KAAK,CAAC8pB,OAAO,CAACC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE;IACtD1oB,MAAM,EAAE,CAAC;IACTomB,SAAS,EAAE;GACZ;EAED,MAAMuC,kBAAkB,GAAIjpB,IAAI,IAAK;IACnCA,IAAI,CAACkpB,cAAc,CAAC,EAAE,CAAC,KAAWlpB,IAAI,aAAJA,IAAI,qBAAX,OAAOA,IAAI,CAAG,EAAE,CAAC;IAC5CuiB,QAAQ,CAAC;MAAEiB,MAAM,EAAE,iBAAiB;MAAExjB,IAAI,EAAE;QAAE,GAAG8oB;;KAA+B,CAAC;IACjFvG,QAAQ,CAAC;MAAEiB,MAAM,EAAE,kBAAkB;MAAExjB;KAAM,CAAC;GAC/C;EAED,MAAMmpB,uBAAuB,GAAG;IAC9B1P,YAAY,EAAE,EAAE;IAChBpE,iBAAiB,EAAE,EAAE;IACrB+T,UAAU,EAAE;GACb;EAED,MAAMC,iBAAiB,GAAIC,kBAAkB,IAAK;IAChDA,kBAAkB,CAAC,cAAc,EAAE,IAAI,CAAC;IACxCA,kBAAkB,CAAC,mBAAmB,EAAE,IAAI,CAAC;IAC7CA,kBAAkB,CAAC,YAAY,EAAE,IAAI,CAAC;IACtC/G,QAAQ,CAAC;MAAEiB,MAAM,EAAE,kBAAkB;MAAExjB,IAAI,EAAEmpB;KAAyB,CAAC;GACxE;EAED,MAAMI,kBAAkB,GAAG;IACzBX,gBAAgB;IAChBK,kBAAkB;IAClBE,uBAAuB,EAAE9G,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEsB,UAAU;IAC9C6F,4BAA4B,EAAEL,uBAAuB;IACrDE,iBAAiB;IACjBnY,SAAS,EAAE;GACZ;EAeD,MAAMwC,gBAAgB,GAAIzH,CAAC,IAAK;IAC9B,MAAM0d,QAAQ,GAAGzgB,MAAM,CAAC+C,CAAC,CAACG,MAAM,CAAC2E,KAAK,CAAC;IAEvCwR,QAAQ,CAAC;MACPiB,MAAM,EAAE,iBAAiB;MACzBxjB,IAAI,EAAE;QACJ,GAAGqiB,SAAS,CAACO,SAAS;QACtBriB,KAAK,EAAEopB,QAAQ;QACfrpB,MAAM,EAAE;;KAEX,CAAC;GACH;EAED,MAAMmiB,eAAe,GAAIxW,CAAC,IAAK;IAC7B,IAAIA,CAAC,CAAC5K,MAAM,GAAG,CAAC,EAAE;MAChB,MAAM,CAAC;QAAEuZ,EAAE;QAAEgP;OAAM,CAAC,GAAG3d,CAAC;MACxB,MAAMya,SAAS,GAAGkD,IAAI,GAAG,MAAM,GAAG,KAAK;MACvC,MAAMnD,MAAM,GAAG7L,EAAE;MAEjB,IAAI,EAAEyH,SAAS,CAACO,SAAS,CAAC6D,MAAM,KAAKA,MAAM,IAAIpE,SAAS,CAACO,SAAS,CAAC8D,SAAS,KAAKA,SAAS,CAAC,EAAE;QAC3FnE,QAAQ,CAAC;UACPiB,MAAM,EAAE,iBAAiB;UACzBxjB,IAAI,EAAE;YACJ,GAAGqiB,SAAS,CAACO,SAAS;YACtB6D,MAAM,EAAE7L,EAAE;YACV8L,SAAS,EAAEkD,IAAI,GAAG,MAAM,GAAG;;SAE9B,CAAC;;;GAGP;EAED,MAAMC,kBAAkB,GAAGyrB,0BAA0B,CAAC;IACpD,GAAG;MACD5hC,gBAAgB;MAChB2O,SAAS;MACT5hB,UAAU,EAAEqT,YAAY;MACxBwO,KAAK,EAAEiF,YAAY;MACnBhF,QAAQ;MACRE,eAAe;MACftjB,QAAQ,EAAE,QAAQ;MAClBujB,WAAW,EAAE;QAAEoH,SAAS,EAAE,QAAQ;QAAEC,SAAS,EAAE;OAAU;MACzDpH,UAAU,EAAE;QAAEzQ,KAAK,EAAE;;;GAExB,CAAC;EAEF,MAAMoY,cAAc,GAAGpqB,SAAS;EAEhC,MAAM8pB,qBAAqB,GAAIhqB,IAAI,IAAK;IACtC,MAAM;MAAE0mB;KAAW,GAAG1mB,IAAI;IAC1BuiB,QAAQ,CAAC;MAAEiB,MAAM,EAAE,iBAAiB;MAAExjB,IAAI,EAAE;QAAE,GAAGqiB,SAAS,CAACO,SAAS;QAAE8D;;KAAa,CAAC;GACrF;EAED,MAAMuD,eAAe,GAAIC,gBAAgB,IAAK;IAC5CA,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC;IACrC3H,QAAQ,CAAC;MAAEiB,MAAM,EAAE,iBAAiB;MAAExjB,IAAI,EAAE8oB;KAA6B,CAAC;GAC3E;EAED,MAAMqB,sBAAsB,GAAG;IAAEH,qBAAqB;IAAEI,qBAAqB,EAAE/H,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEO,SAAS;IAAEqH;GAAiB;EACtH,MAAMI,wBAAwB,GAAGrF,uBAAuB,CAAC;IAAE1C,KAAK,EAAEiF,YAAY;IAAEtC,YAAY,EAAE;GAAM,CAAC;EAErG,oBACEzjB,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA,CAAC+oB,oCAAa,EAAAC,QAAA;IAEVH;KAEGf,kBAAkB,EAElBY,sBAAsB;IACzBN,kBAAkB;IAClBQ,wBAAwB;IACxBhI,SAAS;IACTpX,SAAS,EAAEwnC,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAE92B,aAAa;IAEvCs6B,aAAa,EAAE,KAAK;IACpBtrB,kBAAkB,EAAE,IAAI;IACxBD,UAAU,EAAE;IAEf,CACE,CAAC;AAEV,CAAC;;AC7LD,MAAMwrB,UAAU,GAAGA,CAAC/uC,QAAQ,EAAEgvC,SAAS,EAAEC,QAAQ,EAAEC,WAAW,KAAK,CACjE;EAAEn1C,KAAK,EAAEi1C,SAAS;EAAElV,IAAI,EAAE,aAAa95B,QAAQ,SAASivC,QAAQ;AAAG,CAAC,EACpE;EAAEl1C,KAAK,EAAEm1C;AAAY,CAAC,CACvB;AAGD,AAAO,MAAMC,aAAa,GAAGA,CAACnvC,QAAQ,EAAErI,CAAC,KAAK,CAE5C;EAAEmiC,IAAI,EAAE,YAAY;EAAE3G,SAAS,EAAEloB,SAAS;EAAEmkC,MAAM,EAAE,QAAQ;EAAEL,UAAU,EAAE;AAAiB,CAAC,EAC5F;EAAEjV,IAAI,EAAE,QAAQ;EAAE3G,SAAS,EAAEnU,KAAK;EAAEowB,MAAM,EAAE,QAAQ;EAAEL,UAAU,EAAE;AAAa,CAAC,EAChF;EAAEjV,IAAI,EAAE,cAAc;EAAE3G,SAAS,EAAEjN,MAAM;EAAEkpB,MAAM,EAAE,QAAQ;EAAEL,UAAU,EAAE;AAAc,CAAC,EAGxF;EAAEjV,IAAI,EAAE,kBAAkB;EAAE3G,SAAS,EAAEoJ,cAAc;EAAE6S,MAAM,EAAE,QAAQ;EAAEL,UAAU,EAAE;AAAuB,CAAC,EAE7G;EAAEjV,IAAI,EAAE,aAAa;EAAE3G,SAAS,EAAEiZ,SAAS;EAAEgD,MAAM,EAAE,QAAQ;EAAEL,UAAU,EAAE;AAAkB,CAAC,EAI9F;EAAEjV,IAAI,EAAE,mBAAmB;EAAE3G,SAAS,EAAE0G,QAAQ;EAAEuV,MAAM,EAAE,QAAQ;EAAEL,UAAU,EAAE;AAAwB,CAAC,EACzG;EAAEjV,IAAI,EAAE,kBAAkB;EAAE3G,SAAS,EAAE0G,QAAQ;EAAEuV,MAAM,EAAE,QAAQ;EAAEL,UAAU,EAAE;AAAuB,CAAC,EACvG;EAAEjV,IAAI,EAAE,gBAAgB;EAAE3G,SAAS,EAAE0G,QAAQ;EAAEuV,MAAM,EAAE,QAAQ;EAAEL,UAAU,EAAE;AAAqB,CAAC,EACnG;EAAEjV,IAAI,EAAE,gBAAgB;EAAE3G,SAAS,EAAE0G,QAAQ;EAAEuV,MAAM,EAAE,QAAQ;EAAEL,UAAU,EAAE;AAAqB,CAAC,EAGnG;EACEjV,IAAI,EAAE,CAAC,SAAS,CAAC;EACjB3G,SAAS,EAAEib,UAAU;EACrBgB,MAAM,EAAE,QAAQ;EAChBL,UAAU,EAAE,CAAC;IAAEh1C,KAAK,EAAE,aAAa;IAAE+/B,IAAI,EAAE,aAAa95B,QAAQ;GAAgB;AAClF,CAAC,EASD;EACE85B,IAAI,EAAE,CAAC,oBAAoB,EAAE,UAAU,CAAC;EACxC3G,SAAS,EAAEvc,iBAAiB;EAC5Bw4B,MAAM,EAAE,QAAQ;EAChBL,UAAU,EAAEA,UAAU,CAAC/uC,QAAQ,EAAE,cAAc,EAAE,iBAAiB,EAAE,qBAAqB;AAC3F,CAAC,EACD;EACE85B,IAAI,EAAE,CAAC,2BAA2B,EAAE,uBAAuB,CAAC;EAC5D3G,SAAS,EAAE0J,qBAAqB;EAChCuS,MAAM,EAAE,QAAQ;EAChBL,UAAU,EAAEA,UAAU,CAAC/uC,QAAQ,EAAE,2BAA2B,EAAE,yBAAyB,EAAE,yBAAyB;AACpH,CAAC,EACD;EACE85B,IAAI,EAAE,CAAC,yBAAyB,EAAE,qBAAqB,CAAC;EACxD3G,SAAS,EAAEuW,mBAAmB;EAC9B0F,MAAM,EAAE,QAAQ;EAChBL,UAAU,EAAEA,UAAU,CAAC/uC,QAAQ,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,uBAAuB;AAC/G,CAAC,CACF;AAGD,AAAO,MAAMqvC,UAAU,GAAGF,aAAa,CAAC,UAAU,CAAC;;ACzDnD,MAAMG,WAAW,GAAGzrC,IAAA,IAAc;EAAA,IAAb;IAAEi2B;GAAM,GAAAj2B,IAAA;EAC3B,MAAM;IAAElM;GAAG,GAAGC,2BAAc,EAAE;EAC9B,MAAM6B,QAAQ,GAAG0lB,0BAAW,EAAE;EAE9B8U,cAAc,CAACsb,UAAU,CAAC,iBAAiB,CAAC;EAmD5C,MAAMC,qBAAqB,GAAGA,MAAM;IAClC,MAAMC,MAAM,GAAG,CACb;MAAEt3B,IAAI,EAAEtH,+BAAQ;MAAEipB,IAAI,EAAE;KAAsB,EAC9C;MAAE//B,KAAK,EAAEpC,CAAC,CAAC,kBAAkB,CAAC;MAAEmiC,IAAI,EAAE;KAAqC,CAC5E;IACD,MAAM4V,YAAY,GAAGj2C,QAAQ,CAACC,QAAQ,CAACsI,KAAK,CAAC,GAAG,CAAC,CAACgB,MAAM,CAACC,OAAO,CAAC;IACjE,MAAM0sC,SAAS,GAAGD,YAAY,CAACE,OAAO,CAAC,MAAM,CAAC;IAC9C,MAAMC,gBAAgB,GAAGF,SAAS,KAAK,CAAC,CAAC,GAAGD,YAAY,CAACxZ,KAAK,CAACyZ,SAAS,GAAG,CAAC,CAAC,GAAG,EAAE;IAElF,IAAIG,WAAW,GAAG,EAAE;IACpB,MAAMrU,YAAY,GAAG4T,UAAU,CAACthB,IAAI,CAAEqL,KAAK,IAAK;MAC9C,MAAM2W,KAAK,GAAGv3C,KAAK,CAACC,OAAO,CAAC2gC,KAAK,CAACU,IAAI,CAAC,GAAGV,KAAK,CAACU,IAAI,GAAG,CAACV,KAAK,CAACU,IAAI,CAAC;MACnE,OAAOiW,KAAK,CAACxU,IAAI,CAAEyU,UAAU,IAAK;QAChC,MAAMC,aAAa,GAAGD,UAAU,CAAChuC,KAAK,CAAC,GAAG,CAAC,CAACgB,MAAM,CAACC,OAAO,CAAC;QAC3D,IAAIgtC,aAAa,CAAC/1C,MAAM,KAAK21C,gBAAgB,CAAC31C,MAAM,IAAI+1C,aAAa,CAACnH,KAAK,CAAC,CAACoH,GAAG,EAAEj+B,CAAC,KAAKi+B,GAAG,CAACC,UAAU,CAAC,GAAG,CAAC,IAAID,GAAG,KAAKL,gBAAgB,CAAC59B,CAAC,CAAC,CAAC,EAAE;UAC3I69B,WAAW,GAAGE,UAAU;UACxB,OAAO,IAAI;;QAEb,OAAO,KAAK;OACb,CAAC;KACH,CAAC;IAEF,IAAIvU,YAAY,EAAE;MAChB,IAAIjjC,KAAK,CAACC,OAAO,CAACgjC,YAAY,CAACsT,UAAU,CAAC,EAAE;QAC1CtT,YAAY,CAACsT,UAAU,CAAC1rC,OAAO,CAAE+sC,KAAK,IAAK;UACzC,IAAIC,SAAS,GAAGD,KAAK,CAACtW,IAAI;UAC1B,IAAIuW,SAAS,IAAIP,WAAW,EAAE;YAC5BA,WAAW,CAAC9tC,KAAK,CAAC,GAAG,CAAC,CAACgB,MAAM,CAACC,OAAO,CAAC,CAACI,OAAO,CAAC,CAACitC,OAAO,EAAEp2B,GAAG,KAAK;cAC/D,IAAIo2B,OAAO,CAACH,UAAU,CAAC,GAAG,CAAC,EAAE;gBAC3B,MAAM5sC,GAAG,GAAGssC,gBAAgB,CAAC31B,GAAG,CAAC;gBACjCm2B,SAAS,GAAGA,SAAS,CAACluC,OAAO,CAAC,IAAIouC,MAAM,CAAC,MAAMD,OAAO,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI/sC,GAAG,EAAE,CAAC,CACvEpB,OAAO,CAAC,IAAIouC,MAAM,CAAC,SAASD,OAAO,EAAE,EAAE,GAAG,CAAC,EAAE,MAAM/sC,GAAG,EAAE,CAAC,CACzDpB,OAAO,CAAC,IAAIouC,MAAM,CAACD,OAAO,EAAE,GAAG,CAAC,EAAE/sC,GAAG,CAAC;;aAE5C,CAAC;;UAEJksC,MAAM,CAAC31C,IAAI,CAAC;YAAEC,KAAK,EAAEpC,CAAC,CAACy4C,KAAK,CAACr2C,KAAK,CAAC;YAAE,IAAIs2C,SAAS,GAAG;cAAEvW,IAAI,EAAEuW;aAAW,GAAG,EAAE;WAAG,CAAC;SAClF,CAAC;OACH,MAAM;QACLZ,MAAM,CAAC31C,IAAI,CAAC;UAAEC,KAAK,EAAEpC,CAAC,CAAC8jC,YAAY,CAACsT,UAAU;SAAG,CAAC;;;IAGtD,OAAOU,MAAM;GACd;EACD,MAAMpU,cAAc,GAAG,CAAC,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,EAAE,eAAe,CAAC;EAEhG,oBACEhhC,cAAA,CAAAC,aAAA,CAACk2C,mCAAY,qBACXn2C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA,CAACm2C,mCAAY;IACXC,WAAW,eACTr2C,cAAA,CAAAC,aAAA,CAACD,cAAK,CAACyf,QAAQ,qBACbzf,cAAA,CAAAC,aAAA,CAACq2C,gCAAS;MAAC5mC,SAAS,EAAC;KAAQ,CAAC,QAEhB,CACjB;IACD6mC,WAAW,EAAEA,MAAMp3C,MAAM,CAACoT,OAAO,CAACikC,IAAI,EAAG;IACzCC,WAAW,EAAEtB,qBAAqB;GACnC,CAAC,eAEFn1C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA,CAACyhC,qBAAM,qBACL1hC,cAAA,CAAAC,aAAA,CAACy2C,mCAAY;IACXjX,IAAI,EAAE,GAAGA,IAAI,YAAa;IAC1B3G,SAAS,EAAEA,mBACT94B,cAAA,CAAAC,aAAA,CAAC02C,oCAAa;MAACC,WAAW,EAAC;oBACzB52C,cAAA,CAAAC,aAAA,CAAC2Q,SAAS;MAACuB,WAAW,EAAEstB,IAAK;MAACoX,eAAe,EAAC,MAAM;MAAC5hC,UAAU,EAAC,MAAM;MAAC6hC,OAAO,EAAE;KAAO,CAC1E;GAElB,CAAC,eACF92C,cAAA,CAAAC,aAAA,CAACy2C,mCAAY;IACXjX,IAAI,EAAE,GAAGA,IAAI,QAAS;IACtB3G,SAAS,EAAEA,mBACT94B,cAAA,CAAAC,aAAA,CAAC02C,oCAAa;MAACC,WAAW,EAAC;oBACzB52C,cAAA,CAAAC,aAAA,CAAC0kB,KAAK;MAACxS,WAAW,EAAEstB,IAAK;MAACoX,eAAe,EAAC,MAAM;MAAC5hC,UAAU,EAAC,MAAM;MAAC6hC,OAAO,EAAE;KAAO,CACtE;GAElB,CAAC,eA4BF92C,cAAA,CAAAC,aAAA,CAACy2C,mCAAY;IACXjX,IAAI,EAAE,GAAGA,IAAI,8BAA+B;IAC5CsX,KAAK;IACLje,SAAS,EAAEA,mBACT94B,cAAA,CAAAC,aAAA,CAAC02C,oCAAa;MAACC,WAAW,EAAC;oBACzB52C,cAAA,CAAAC,aAAA,CAACovC,mBAAmB,MAAE,CACT;GAElB,CAAC,eAEFrvC,cAAA,CAAAC,aAAA,CAACy2C,mCAAY;IACXjX,IAAI,EAAEuB,cAAc,CAAC3iC,GAAG,CAAE0gC,KAAK,IAAK,GAAGU,IAAI,IAAIV,KAAK,EAAE,CAAE;IACxDjG,SAAS,EAAGlnB,KAAK,iBACf5R,cAAA,CAAAC,aAAA,CAAC02C,oCAAa;MAACC,WAAW,EAAC;oBACzB52C,cAAA,CAAAC,aAAA,CAACu/B,QAAQ,EAAAvW,QAAA,KAAKrX,KAAK;MAAE6tB,IAAI,EAAEA;MAAO,CACrB;GAElB,CAAC,eAEFz/B,cAAA,CAAAC,aAAA,CAACy2C,mCAAY;IACXjX,IAAI,EAAE,GAAGA,IAAI,cAAe;IAC5B3G,SAAS,EAAEA,mBACT94B,cAAA,CAAAC,aAAA,CAAC02C,oCAAa;MAACC,WAAW,EAAC;oBACzB52C,cAAA,CAAAC,aAAA,CAAC4rB,MAAM,MAAE,CACI;GAElB,CAAC,eAWF7rB,cAAA,CAAAC,aAAA,CAACy2C,mCAAY;IACXjX,IAAI,EAAE,GAAGA,IAAI,kBAAmB;IAChC3G,SAAS,EAAEA,mBACT94B,cAAA,CAAAC,aAAA,CAAC02C,oCAAa;MAACC,WAAW,EAAC;oBACzB52C,cAAA,CAAAC,aAAA,CAACiiC,cAAc,MAAE,CACJ;GAElB,CAAC,eAEFliC,cAAA,CAAAC,aAAA,CAACy2C,mCAAY;IACXjX,IAAI,EAAE,GAAGA,IAAI,oBAAqB;IAClC3G,SAAS,EAAEA,mBACT94B,cAAA,CAAAC,aAAA,CAAC02C,oCAAa;MAACC,WAAW,EAAC;oBACzB52C,cAAA,CAAAC,aAAA,CAACsc,iBAAiB,MAAE,CACP;GAElB,CAAC,eAEFvc,cAAA,CAAAC,aAAA,CAACy2C,mCAAY;IACXjX,IAAI,EAAE,CAAC,GAAGA,IAAI,2BAA2B,EAAE,GAAGA,IAAI,uBAAuB,CAAE;IAC3E3G,SAAS,EAAEA,mBACT94B,cAAA,CAAAC,aAAA,CAAC02C,oCAAa;MAACC,WAAW,EAAC;oBACzB52C,cAAA,CAAAC,aAAA,CAACuiC,qBAAqB,MAAE,CACX;GAElB,CAAC,eAEFxiC,cAAA,CAAAC,aAAA,CAACy2C,mCAAY;IACXjX,IAAI,EAAE,CAAC,GAAGA,IAAI,yBAAyB,EAAE,GAAGA,IAAI,qBAAqB,CAAE;IACvE3G,SAAS,EAAEA,mBACT94B,cAAA,CAAAC,aAAA,CAAC02C,oCAAa;MAACC,WAAW,EAAC;oBACzB52C,cAAA,CAAAC,aAAA,CAACovC,mBAAmB,MAAE,CACT;GAElB,CAAC,eAEFrvC,cAAA,CAAAC,aAAA,CAACy2C,mCAAY;IACXjX,IAAI,EAAE,GAAGA,IAAI,aAAc;IAC3B3G,SAAS,EAAEA,mBACT94B,cAAA,CAAAC,aAAA,CAAC02C,oCAAa;MAACC,WAAW,EAAC;oBACzB52C,cAAA,CAAAC,aAAA,CAAC8xC,SAAS,MAAE,CACC;GAElB,CAMK,CACL,CACF,CACO,CAAC;AAEnB,CAAC;;AC3QD,MAAMiF,kBAAkB,GAAG,UAAC15C,CAAC,EAAE06B,QAAQ,EAAOC,UAAU,EAAEgf,aAAa,EAAEC,eAAe,EAAEC,gBAAgB,EAAEC,kBAAkB,EAAK;EAAA,IAAAhf,SAAA,EAAAif,qBAAA,EAAA/e,UAAA;EAAA,IAApGN,QAAQ;IAARA,QAAQ,GAAG,EAAE;;EAC1C,MAAM5yB,YAAY,GAAG,EAAAgzB,SAAA,GAAAJ,QAAQ,cAAAI,SAAA,wBAAAif,qBAAA,GAARjf,SAAA,CAAUhzB,YAAY,cAAAiyC,qBAAA,uBAAtBA,qBAAA,CAAwBpsC,IAAI,OAAAqtB,UAAA,GAAIN,QAAQ,cAAAM,UAAA,uBAARA,UAAA,CAAUlzB,YAAY;EAC3E,MAAMkyC,OAAO,GAAGlyC,YAAY,KAAK,OAAO;EACxC,MAAMmyC,mBAAmB,GAAGnyC,YAAY,KAAK,UAAU,IAAIA,YAAY,KAAK,cAAc;EAE1F,MAAMmlB,MAAM,GAAG,CACb;IACE7qB,KAAK,EAAEpC,CAAC,CAAC,YAAY,CAAC;IACtBs7B,WAAW,EAAE,KAAK;IAClBxqB,IAAI,EAAE,MAAM;IACZyqB,UAAU,EAAE;MACV5tB,IAAI,EAAE;;GAET,EACD;IACEvL,KAAK,EAAEpC,CAAC,CAAC,eAAe,CAAC;IACzBs7B,WAAW,EAAE,KAAK;IAClBxqB,IAAI,EAAE,QAAQ;IACdnF,GAAG,EAAE,cAAc;IACnB4vB,UAAU,EAAE;MACV5tB,IAAI,EAAE,cAAc;MACpB6tB,SAAS,EAAGlnB,KAAK,iBACf5R,cAAA,CAAAC,aAAA,CAACwZ,+BAAQ;QACPC,MAAM,EAAE,CACN;UAAEzO,IAAI,EAAE;SAAe,EACvB;UAAEA,IAAI,EAAE;SAAc,EACtB;UAAEA,IAAI,EAAE;SAAS,EACjB;UAAEA,IAAI,EAAE;SAAY,EACpB;UAAEA,IAAI,EAAE;SAAgB,CACxB;QACF0O,SAAS,EAAC,MAAM;QAChBE,QAAQ,EAAEjI,KAAK,CAACrC,KAAM;QACtBqK,MAAM,EAAEhI,KAAK,CAACtB;OACf;;GAGN,EACD;IACE5Q,KAAK,EAAEpC,CAAC,CAAC,uBAAuB,CAAC;IACjCs7B,WAAW,EAAE,KAAK;IAClBxqB,IAAI,EAAE,QAAQ;IACdnF,GAAG,EAAE,qBAAqB;IAC1B4vB,UAAU,EAAE;MACV5tB,IAAI,EAAE,qBAAqB;MAC3B6tB,SAAS,EAAGlnB,KAAK,iBACf5R,cAAA,CAAAC,aAAA,CAACwZ,+BAAQ;QACPC,MAAM,EAAE,EAAG;QACXC,SAAS,EAAC,MAAM;QAChBE,QAAQ,EAAEjI,KAAK,CAACrC,KAAM;QACtBqK,MAAM,EAAEhI,KAAK,CAACtB;OACf;;GAGN,EACD;IACE5Q,KAAK,EAAEpC,CAAC,CAAC,eAAe,CAAC;IACzBs7B,WAAW,EAAE,IAAI;IACjBxqB,IAAI,EAAE,QAAQ;IACdyqB,UAAU,EAAE;MACV5tB,IAAI,EAAE,YAAY;MAClB8tB,UAAU,EAAE;QACVC,QAAQ,EAAE,IAAI;QACdC,GAAG,EAAE;;;GAGV,EACD;IACEv5B,KAAK,EAAEpC,CAAC,CAAC,uBAAuB,CAAC;IACjCs7B,WAAW,EAAE,KAAK;IAClBxqB,IAAI,EAAE,MAAM;IACZyqB,UAAU,EAAE;MACV5tB,IAAI,EAAE;;GAET,EACD;IACEvL,KAAK,EAAE63C,mBAAmB,GAAGj6C,CAAC,CAAC,YAAY,CAAC,GAAGA,CAAC,CAAC,YAAY,CAAC;IAC9Ds7B,WAAW,EAAE2e,mBAAmB;IAChCnpC,IAAI,EAAE,QAAQ;IACdyqB,UAAU,EAAE;MACV5tB,IAAI,EAAE,UAAU;MAChB8tB,UAAU,EAAEwe,mBAAmB,GAAG;QAAEve,QAAQ,EAAE,IAAI;QAAEC,GAAG,EAAE;OAAG,GAAG;;GAElE,EACD;IACEv5B,KAAK,EAAE43C,OAAO,GAAGh6C,CAAC,CAAC,cAAc,CAAC,GAAGA,CAAC,CAAC,cAAc,CAAC;IACtDs7B,WAAW,EAAE0e,OAAO;IACpBlpC,IAAI,EAAE,QAAQ;IACdyqB,UAAU,EAAE;MACV5tB,IAAI,EAAE,WAAW;MACjB8tB,UAAU,EAAEue,OAAO,GAAG;QAAEte,QAAQ,EAAE,IAAI;QAAEC,GAAG,EAAE;OAAG,GAAG;;GAEtD,EACD;IACEv5B,KAAK,EAAEpC,CAAC,CAAC,0BAA0B,CAAC;IACpCs7B,WAAW,EAAE,KAAK;IAClBxqB,IAAI,EAAE,QAAQ;IACdyqB,UAAU,EAAE;MACV5tB,IAAI,EAAE;;GAET,EACD;IACEvL,KAAK,EAAEpC,CAAC,CAAC,gBAAgB,CAAC;IAC1Bs7B,WAAW,EAAE,IAAI;IACjBxqB,IAAI,EAAE,QAAQ;IACdnF,GAAG,EAAE,eAAe;IACpB4vB,UAAU,EAAE;MACV5tB,IAAI,EAAE,eAAe;MACrB6tB,SAAS,EAAGlnB,KAAK,iBACf5R,cAAA,CAAAC,aAAA,2BACED,cAAA,CAAAC,aAAA,CAACi5B,iCAAU;QACTC,QAAQ,EAAG1uB,CAAC,IAAKwtB,UAAU,CAACxtB,CAAC,EAAEmH,KAAK,CAACtB,QAAQ,CAAE;QAC/C8oB,QAAQ,EAAEA,MAAM;UACdxnB,KAAK,CAACtB,QAAQ,CAAC,IAAI,CAAC;UACpB6mC,gBAAgB,CAAC,IAAI,CAAC;UACtBC,kBAAkB,CAAC,IAAI,CAAC;SACxB;QACFh1B,OAAO,EAAE80B,eAAe,GAAG55C,CAAC,CAAC,UAAU,CAAC,GAAGA,CAAC,CAAC,kBAAkB;OAChE,CAAC,EACD25C,aAAa,iBACZj3C,cAAA,CAAAC,aAAA;QAAK4P,KAAK,EAAE;UAAEW,SAAS,EAAE;;sBACvBxQ,cAAA,CAAAC,aAAA;QACEw3B,GAAG,EAAEwf,aAAc;QACnBvf,GAAG,EAAC,SAAS;QACb7nB,KAAK,EAAE;UAAE2mB,QAAQ,EAAE,MAAM;UAAEc,SAAS,EAAE,OAAO;UAAEkgB,SAAS,EAAE;;OAC3D,CACE,CAEJ;;GAGV,CACF;EAED,OAAO,CACL;IACEne,IAAI,EAAE/7B,CAAC,CAAC,uBAAuB,CAAC;IAChCg8B,IAAI,EAAE/O;GACP,CACF;AACH,CAAC;;ACxID,MAAMktB,YAAY,GAAGjuC,IAAA,IAAoC;EAAA,IAAnC;IAAE2T,MAAM;IAAEkH,QAAQ;IAAE2T;GAAU,GAAAxuB,IAAA;EAClD,MAAM;IAAElM;GAAG,GAAGC,2BAAc,EAAE;EAC9B,MAAM6B,QAAQ,GAAG0lB,0BAAW,EAAE;EAC9B,MAAMgF,SAAS,GAAG1qB,QAAQ,CAACsC,KAAK,IAAI,EAAE;EACtC,MAAM/D,QAAQ,GAAGH,KAAK,CAACI,UAAU,CAACC,kBAAkB,EAAE;EAEtD,MAAMwnB,WAAW,GAAG,IAAImU,eAAe,CAACp6B,QAAQ,CAACq6B,MAAM,CAAC;EACxD,MAAMC,MAAM,GAAGrU,WAAW,CAACrnB,GAAG,CAAC,KAAK,CAAC;EACrC,MAAM27B,SAAS,GACbD,MAAM,KACN5P,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAE5W,OAAO,MAClB4W,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEtpB,GAAG,MACdw3B,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAE9kB,OAAO,MACjB8kB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEx3B,GAAG,KACbo5B,cAAc,CAACC,OAAO,CAAC,eAAe,CAAC;EAEzC,MAAM;IAAEn7B,SAAS;IAAEF,IAAI,EAAEonB;GAAY,GAAGpoB,KAAK,CAACmB,KAAK,CAACC,IAAI,CAACinB,mBAAmB,CAC1E;IAAEloB,QAAQ;IAAEyd,OAAO,EAAE;MAAE5a,GAAG,EAAEm5B,SAAS;MAAEzJ,SAAS,EAAE;;GAAc,EAChE;IAAElxB,OAAO,EAAE,CAAC,CAAC26B,SAAS;IAAEG,SAAS,EAAE;GACrC,CAAC;EAED,MAAM/J,cAAc,GAAGvyB,KAAK,CAACmB,KAAK,CAACC,IAAI,CAACoxB,aAAa,CAACryB,QAAQ,CAAC;EAE/D,MAAMo8B,SAAS,GAAG,CAAA/B,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEvI,eAAe,KAAI,EAAE;EAGjD,MAAM,CAACwnB,aAAa,EAAEE,gBAAgB,CAAC,GAAGvtC,cAAQ,CAAC,IAAI,CAAC;EACxD,MAAM,CAACstC,eAAe,EAAEE,kBAAkB,CAAC,GAAGxtC,cAAQ,CAACmwB,SAAS,CAACmd,eAAe,IAAI,IAAI,CAAC;EACzF,MAAM,CAAC/c,KAAK,EAAEC,QAAQ,CAAC,GAAGxwB,cAAQ,CAAC,IAAI,CAAC;EACxC,MAAM,CAACywB,YAAY,EAAEC,eAAe,CAAC,GAAG1wB,cAAQ,CAAC,KAAK,CAAC;EACvD,MAAM,CAAC2wB,SAAS,EAAEC,YAAY,CAAC,GAAG5wB,cAAQ,CAAC,KAAK,CAAC;EAEjD,MAAM,CAAC6wB,aAAa,EAAEC,gBAAgB,CAAC,GAAG9wB,cAAQ,CAAC,OAAO;IACxDzE,SAAS,EAAE40B,SAAS,CAAC50B,SAAS,IAAI,EAAE;IACpCC,YAAY,EAAE20B,SAAS,CAAC30B,YAAY,GAAG;MAAE6F,IAAI,EAAE8uB,SAAS,CAAC30B;KAAc,GAAG,IAAI;IAC9EC,mBAAmB,EAAE00B,SAAS,CAAC10B,mBAAmB,GAAG;MAAE4F,IAAI,EAAE8uB,SAAS,CAAC10B;KAAqB,GAAG,IAAI;IACnGqyC,UAAU,EAAE3d,SAAS,CAAC2d,UAAU,IAAI,EAAE;IACtChyC,OAAO,EAAEq0B,SAAS,CAACr0B,OAAO,IAAI,EAAE;IAChCH,SAAS,EAAEw0B,SAAS,CAACx0B,SAAS,IAAI,EAAE;IACpCC,QAAQ,EAAEu0B,SAAS,CAACv0B,QAAQ,IAAI,EAAE;IAClCmyC,aAAa,EAAE5d,SAAS,CAAC4d,aAAa,IAAI,EAAE;IAC5CV,aAAa,EAAEld,SAAS,CAACmd,eAAe,GAAG,UAAU,GAAG;GACzD,CAAC,CAAC;EAEH,MAAM,CAAC9b,aAAa,EAAEC,gBAAgB,CAAC,GAAGzxB,cAAQ,CAAC6wB,aAAa,CAAC;EAEjE,MAAMa,sBAAsB,GAAI1V,UAAU,IAAK;IAC7C,IAAI,CAACA,UAAU,EAAE,OAAO,IAAI;IAC5B,MAAMoE,aAAa,GACjB,CAAApE,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEqE,qBAAqB,MAAIrE,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEsE,iBAAiB,KAAItE,UAAU;IAClF,MAAMuE,eAAe,GAAG,CAAChsB,KAAK,CAACC,OAAO,CAAC4rB,aAAa,CAAC,GAAGA,aAAa,CAAC,CAAC,CAAC,GAAGA,aAAa,KAAK,EAAE;IAC/F,OAAO,CAAAG,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAEC,OAAO,KAAID,eAAe;GACnD;EAED5f,eAAS,CAAC,MAAM;IACd,MAAMgxB,OAAO,GAAGD,sBAAsB,CAAC1V,UAAU,CAAC;IAClD,MAAMmE,OAAO,GAAGwR,OAAO,KAAIvD,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAE/R,iBAAiB;IACtD,MAAMU,YAAY,GAAG,CAAAoD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEpD,YAAY,MAAIoD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE0F,eAAe,KAAI1F,OAAO,IAAI,EAAE;IAEvF,IAAIpD,YAAY,IAAI7d,MAAM,CAACC,IAAI,CAAC4d,YAAY,CAAC,CAAC9mB,MAAM,GAAG,CAAC,IAAI,CAACw6B,YAAY,EAAE;MACzE,IAAIud,QAAQ,GAAG,IAAI;MACnB,IAAIC,UAAU,GAAG,IAAI;MAErB,IAAIlxB,YAAY,CAACthB,mBAAmB,EAAE;QACpC,MAAMyyC,YAAY,GAAG,CACnB;UAAE7sC,IAAI,EAAE;SAAe,EACvB;UAAEA,IAAI,EAAE;SAAc,EACtB;UAAEA,IAAI,EAAE;SAAS,EACjB;UAAEA,IAAI,EAAE;SAAY,EACpB;UAAEA,IAAI,EAAE;SAAgB,CACzB,CAACyoB,IAAI,CAAEtlB,IAAI,IAAKA,IAAI,CAACnD,IAAI,CAACpD,WAAW,EAAE,KAAK8e,YAAY,CAACthB,mBAAmB,CAACwC,WAAW,EAAE,CAAC;QAC5F,IAAIiwC,YAAY,EAAEF,QAAQ,GAAGE,YAAY,CAAC,KACrCF,QAAQ,GAAG;UAAE3sC,IAAI,EAAE0b,YAAY,CAACthB;SAAqB;QAC1DwyC,UAAU,GAAG;UAAE5sC,IAAI,EAAE0b,YAAY,CAACthB;SAAqB;;MAGzD,IAAIshB,YAAY,CAACvhB,YAAY,EAAE;QAC7ByyC,UAAU,GAAG;UAAE5sC,IAAI,EAAE0b,YAAY,CAACvhB;SAAc;QAChD,IAAI,CAACuhB,YAAY,CAACthB,mBAAmB,EAAEuyC,QAAQ,GAAG;UAAE3sC,IAAI,EAAE0b,YAAY,CAACvhB;SAAc;;MAGvF,MAAM02B,eAAe,GAAG;QACtB32B,SAAS,EAAE40B,SAAS,CAAC50B,SAAS,IAAIwhB,YAAY,CAACxhB,SAAS,IAAI,EAAE;QAC9DC,YAAY,EAAE20B,SAAS,CAAC30B,YAAY,GAAG;UAAE6F,IAAI,EAAE8uB,SAAS,CAAC30B;SAAc,GAAGwyC,QAAQ;QAClFvyC,mBAAmB,EAAE00B,SAAS,CAAC10B,mBAAmB,GAC9C;UAAE4F,IAAI,EAAE8uB,SAAS,CAAC10B;SAAqB,GACvCwyC,UAAU;QACdH,UAAU,EACR3d,SAAS,CAAC2d,UAAU,KACnB/wB,YAAY,CAACoL,cAAc,IAAIpL,YAAY,CAACrhB,SAAS,GAClDkC,MAAM,CAACmf,YAAY,CAACoL,cAAc,IAAIpL,YAAY,CAACrhB,SAAS,CAAC,GAC7D,EAAE,CAAC;QACTI,OAAO,EAAEq0B,SAAS,CAACr0B,OAAO,IAAIihB,YAAY,CAACjhB,OAAO,IAAI,EAAE;QACxDH,SAAS,EACPw0B,SAAS,CAACx0B,SAAS,KAClBohB,YAAY,CAACoxB,aAAa,KAAK,IAAI,IAAIpxB,YAAY,CAACoxB,aAAa,KAAK58B,SAAS,GAC5E3T,MAAM,CAACmf,YAAY,CAACoxB,aAAa,CAAC,GAClC,EAAE,CAAC;QACTvyC,QAAQ,EACNu0B,SAAS,CAACv0B,QAAQ,KACjBmhB,YAAY,CAACqxB,YAAY,KAAK,IAAI,IAAIrxB,YAAY,CAACqxB,YAAY,KAAK78B,SAAS,GAC1E3T,MAAM,CAACmf,YAAY,CAACqxB,YAAY,CAAC,GACjC,EAAE,CAAC;QACTL,aAAa,EACX5d,SAAS,CAAC4d,aAAa,KACtBhxB,YAAY,CAAClhB,qBAAqB,KAAK,IAAI,IAAIkhB,YAAY,CAAClhB,qBAAqB,KAAK0V,SAAS,GAC5F3T,MAAM,CAACmf,YAAY,CAAClhB,qBAAqB,CAAC,GAC1C,EAAE,CAAC;QACTwxC,aAAa,EAAEld,SAAS,CAACmd,eAAe,IAAIvwB,YAAY,CAACjgB,wBAAwB,IAAI;OACtF;MAEDg0B,gBAAgB,CAACoB,eAAe,CAAC;MACjCT,gBAAgB,CAACS,eAAe,CAAC;MACjC,IAAIA,eAAe,CAACmb,aAAa,EAAE;QACjCG,kBAAkB,CAACtb,eAAe,CAACmb,aAAa,CAAC;;MAEnD3c,eAAe,CAAC,IAAI,CAAC;;GAExB,EAAE,CAAC1U,UAAU,EAAEoS,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAE/R,iBAAiB,EAAEoU,YAAY,CAAC,CAAC;EAG3D,MAAM4d,YAAY,aAAUxtC,CAAC,EAAE6F,QAAQ;IAAA,IAAK;MAC1C,MAAM0rB,IAAI,GAAGvxB,CAAC,CAACG,MAAM,CAACqxB,KAAK,CAAC,CAAC,CAAC;MAC9B,IAAI,CAACD,IAAI,EAAE,OAAA3wB,OAAA,CAAAC,OAAA;MAEX,IAAI0wB,IAAI,CAACpsB,IAAI,GAAG,OAAO,EAAE;QACvBwqB,QAAQ,CAAC;UAAEhsB,IAAI,EAAE,OAAO;UAAEgU,OAAO,EAAE9kB,CAAC,CAAC,uBAAuB;SAAG,CAAC;QAChE,OAAA+N,OAAA,CAAAC,OAAA;;MACD,MAAAipB,KAAA,GAAA/oB,MAAA,aAEG;QAAA,OAAAH,OAAA,CAAAC,OAAA,CACgB9N,KAAK,CAACy4B,cAAc,CAACiG,WAAW,CAAC,MAAM,EAAEF,IAAI,EAAEr+B,QAAQ,CAAC,EAAAiO,IAAA,WAApEuwB,GAAG;UAAA,IAAAC,SAAA,EAAAC,eAAA,EAAAC,gBAAA;UACT,MAAMvG,WAAW,GAAGoG,GAAG,aAAHA,GAAG,wBAAAC,SAAA,GAAHD,GAAG,CAAE39B,IAAI,cAAA49B,SAAA,wBAAAC,eAAA,GAATD,SAAA,CAAWH,KAAK,cAAAI,eAAA,wBAAAC,gBAAA,GAAhBD,eAAA,CAAmB,CAAC,CAAC,cAAAC,gBAAA,uBAArBA,gBAAA,CAAuBvG,WAAW;UAAC,IAEnDA,WAAW;YACbzlB,QAAQ,CAAC0rB,IAAI,CAAC/wB,IAAI,CAAC;YACnBmsC,kBAAkB,CAACrhB,WAAW,CAAC;YAE/B,MAAMmiB,MAAM,GAAG,IAAIC,UAAU,EAAE;YAC/BD,MAAM,CAACE,SAAS,GAAG,MAAMjB,gBAAgB,CAACe,MAAM,CAACzjB,MAAM,CAAC;YACxDyjB,MAAM,CAACG,aAAa,CAACrc,IAAI,CAAC;YAE1B5B,QAAQ,CAAC;cAAEhsB,IAAI,EAAE,SAAS;cAAEgU,OAAO,EAAE9kB,CAAC,CAAC,mBAAmB;aAAG,CAAC;;;OAEjE,cAAO;QACN88B,QAAQ,CAAC;UAAEhsB,IAAI,EAAE,OAAO;UAAEgU,OAAO,EAAE9kB,CAAC,CAAC,eAAe;SAAG,CAAC;OACzD;MAAA,OAAA+N,OAAA,CAAAC,OAAA,CAAAipB,KAAA,IAAAA,KAAA,CAAA3oB,IAAA,GAAA2oB,KAAA,CAAA3oB,IAAA;KACF,QAAAnB,CAAA;MAAA,OAAAY,OAAA,CAAAiB,MAAA,CAAA7B,CAAA;;;EAED,MAAM8xB,iBAAiB,GAAGA,CAACC,QAAQ,EAAEh+B,IAAI,KAAK;IAAA,IAAA85C,kBAAA,EAAAC,qBAAA;IAE5C,MAAMC,mBAAmB,GACvB,CAAC,CAAAh6C,IAAI,aAAJA,IAAI,wBAAA85C,kBAAA,GAAJ95C,IAAI,CAAE4G,YAAY,cAAAkzC,kBAAA,uBAAlBA,kBAAA,CAAoBrtC,IAAI,MAAIzM,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE4G,YAAY,QAC9C,CAAAg2B,aAAa,aAAbA,aAAa,wBAAAmd,qBAAA,GAAbnd,aAAa,CAAEh2B,YAAY,cAAAmzC,qBAAA,uBAA3BA,qBAAA,CAA6BttC,IAAI,MAAImwB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEh2B,YAAY,EAAC;IAEpE,IAAIozC,mBAAmB,EAAE;MACvBnd,gBAAgB,CAAEnlB,IAAI,KAAM;QAC1B,GAAGA,IAAI;QACP,GAAG1X;OACJ,CAAC,CAAC;;IAIL,MAAMi6C,WAAW,GAAGj6C,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE4G,YAAY;IACtC,MAAMszC,aAAa,GAAGl6C,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE6G,mBAAmB;IAC/C,MAAMszC,aAAa,GAAGn6C,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEk5C,UAAU;IACtC,MAAMkB,aAAa,GAAG1B,eAAe,KAAI14C,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEy4C,aAAa;IAC5D,MAAM4B,YAAY,GAAGr6C,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE+G,SAAS;IACpC,MAAMuzC,WAAW,GAAGt6C,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEgH,QAAQ;IAElC,IAAIk4B,KAAK,GAAG,IAAI;IAChB,IAAI,CAAC+a,WAAW,EAAE/a,KAAK,GAAG,KAAK;IAC/B,IAAI,CAACgb,aAAa,EAAEhb,KAAK,GAAG,KAAK;IACjC,IAAI,CAACib,aAAa,IAAIjxC,MAAM,CAACixC,aAAa,CAAC,GAAG,CAAC,EAAEjb,KAAK,GAAG,KAAK;IAC9D,IAAI,CAACkb,aAAa,EAAElb,KAAK,GAAG,KAAK;IAEjC,IAAI,CAAA+a,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAExtC,IAAI,MAAK,OAAO,IAAI,CAAC4tC,YAAY,EAAEnb,KAAK,GAAG,KAAK;IACjE,IACE,CAAC,CAAA+a,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAExtC,IAAI,MAAK,UAAU,IAAI,CAAAwtC,WAAW,aAAXA,WAAW,uBAAXA,WAAW,CAAExtC,IAAI,MAAK,cAAc,KACzE,CAAC6tC,WAAW,EAEZpb,KAAK,GAAG,KAAK;IAEf,IAAIA,KAAK,KAAKnD,SAAS,EAAE;MACvBC,YAAY,CAACkD,KAAK,CAAC;;GAEtB;EAED,MAAMvnB,QAAQ,aAAU3X,IAAI;IAAA,IAAK;MAAA,IAAAu6C,mBAAA,EAAAC,qBAAA;MAC/B,MAAM/a,UAAU,GAAG;QACjB94B,SAAS,EAAE3G,IAAI,CAAC2G,SAAS;QACzBC,YAAY,EAAE,EAAA2zC,mBAAA,GAAAv6C,IAAI,CAAC4G,YAAY,cAAA2zC,mBAAA,uBAAjBA,mBAAA,CAAmB9tC,IAAI,KAAIzM,IAAI,CAAC4G,YAAY;QAC1DC,mBAAmB,EAAE,EAAA2zC,qBAAA,GAAAx6C,IAAI,CAAC6G,mBAAmB,cAAA2zC,qBAAA,uBAAxBA,qBAAA,CAA0B/tC,IAAI,KAAIzM,IAAI,CAAC6G,mBAAmB;QAC/EqyC,UAAU,EAAEl5C,IAAI,CAACk5C,UAAU;QAC3BhyC,OAAO,EAAElH,IAAI,CAACkH,OAAO;QACrBH,SAAS,EAAE/G,IAAI,CAAC+G,SAAS;QACzBC,QAAQ,EAAEhH,IAAI,CAACgH,QAAQ;QACvBmyC,aAAa,EAAEn5C,IAAI,CAACm5C,aAAa;QACjCT,eAAe,EAAEA;OAClB;MAAC,MAAA3hB,MAAA,GAAA/pB,MAAA,aAEE;QAAA,OAAAH,OAAA,CAAAC,OAAA,CACIykB,cAAc,CAACyE,WAAW,CAAC;UAC/BV,WAAW,EAAE,EAAE;UACfwK,UAAU,EAAE,UAAU;UACtB99B,GAAG,EAAEm5B,SAAS;UACd,GAAGsE;SACJ,CAAC,EAAAryB,IAAA;UACFwuB,QAAQ,CAAC;YAAEhsB,IAAI,EAAE,SAAS;YAAEgU,OAAO,EAAE9kB,CAAC,CAAC,wCAAwC;WAAG,CAAC;UACnF+mB,QAAQ,CAAClH,MAAM,CAAClU,GAAG,EAAEg1B,UAAU,CAAC;;OACjC,cAAe;QACd7D,QAAQ,CAAC;UAAEhsB,IAAI,EAAE,OAAO;UAAEgU,OAAO,EAAE9kB,CAAC,CAAC,mCAAmC;SAAG,CAAC;OAC7E;MAAA,OAAA+N,OAAA,CAAAC,OAAA,CAAAiqB,MAAA,IAAAA,MAAA,CAAA3pB,IAAA,GAAA2pB,MAAA,CAAA3pB,IAAA;KACF,QAAAnB,CAAA;MAAA,OAAAY,OAAA,CAAAiB,MAAA,CAAA7B,CAAA;;;EAED,IAAI/L,SAAS,EAAE;IACb,oBAAOsB,cAAA,CAAAC,aAAA,CAAC6U,6BAAM,MAAE,CAAC;;EAGnB,MAAMypB,MAAM,GAAGyY,kBAAkB,CAC/B15C,CAAC,EACD89B,aAAa,EACb6c,YAAY,EACZhB,aAAa,EACbC,eAAe,EACfC,gBAAgB,EAChBC,kBACF,CAAC;EAED,oBACEp3C,cAAA,CAAAC,aAAA,CAACwf,cAAQ,qBACPzf,cAAA,CAAAC,aAAA,CAACu+B,mCAAY;IACXv1B,GAAG,EAAEoxB,YAAY,GAAG,QAAQ,GAAG,SAAU;IACzCoE,UAAU,EAAE,CAAClE,SAAU;IACvB76B,KAAK,EAAEpC,CAAC,CAAC,oBAAoB,CAAE;IAC/B6f,MAAM,EAAEohB,MAAM,CAAClgC,GAAG,CAAEmK,IAAI,KAAM;MAC5B,GAAGA,IAAI;MACPk2B,aAAa,EAAE,IAAI;MACnBC,aAAa,EAAE;KAChB,CAAC,CAAE;IACJxoB,QAAQ,EAAEA,QAAS;IACnBskB,aAAa,EAAEA,aAAc;IAC7B8B,iBAAiB,EAAEA,iBAAkB;IACrCqC,MAAM,EAAE,KAAM;IACdC,YAAY,EAAE;GACf,CAAC,EACD1E,KAAK,iBACJn6B,cAAA,CAAAC,aAAA,CAAC63B,4BAAK;IACJ5rB,KAAK,EAAEiuB,KAAK,CAAC/rB,IAAI,KAAK,OAAQ;IAC9B1O,KAAK,EAAEy6B,KAAK,CAAC/X,OAAQ;IACrB9I,OAAO,EAAEA,MAAM8gB,QAAQ,CAAC,IAAI;GAC7B,CAEK,CAAC;AAEf,CAAC;;AClQD,MAAM6e,kBAAkB,GAAG,UAAC37C,CAAC,EAAE06B,QAAQ,EAAOkhB,WAAW,EAAEC,UAAU,EAAEC,YAAY,EAAEC,aAAa,EAAEC,eAAe,EAAK;EAAA,IAAAlhB,SAAA,EAAAmhB,qBAAA,EAAAjhB,UAAA,EAAAC,UAAA,EAAAihB,qBAAA,EAAA/gB,UAAA,EAAAC,UAAA,EAAA+gB,qBAAA,EAAAC,UAAA;EAAA,IAAzF1hB,QAAQ;IAARA,QAAQ,GAAG,EAAE;;EAC1C,MAAM3zB,WAAW,GAAG,EAAA+zB,SAAA,GAAAJ,QAAQ,cAAAI,SAAA,wBAAAmhB,qBAAA,GAARnhB,SAAA,CAAU/zB,WAAW,cAAAk1C,qBAAA,uBAArBA,qBAAA,CAAuBtuC,IAAI,OAAAqtB,UAAA,GAAIN,QAAQ,cAAAM,UAAA,uBAARA,UAAA,CAAUj0B,WAAW;EACxE,MAAMs1C,gBAAgB,GAAG,EAAAphB,UAAA,GAAAP,QAAQ,cAAAO,UAAA,wBAAAihB,qBAAA,GAARjhB,UAAA,CAAUohB,gBAAgB,cAAAH,qBAAA,uBAA1BA,qBAAA,CAA4BvuC,IAAI,OAAAwtB,UAAA,GAAIT,QAAQ,cAAAS,UAAA,uBAARA,UAAA,CAAUkhB,gBAAgB;EACvF,MAAMj1C,eAAe,GAAG,EAAAg0B,UAAA,GAAAV,QAAQ,cAAAU,UAAA,wBAAA+gB,qBAAA,GAAR/gB,UAAA,CAAUh0B,eAAe,cAAA+0C,qBAAA,uBAAzBA,qBAAA,CAA2BxuC,IAAI,OAAAyuC,UAAA,GAAI1hB,QAAQ,cAAA0hB,UAAA,uBAARA,UAAA,CAAUh1C,eAAe;EAEpF,MAAMk1C,QAAQ,GAAGv1C,WAAW,KAAK,uBAAuB;EAGxD,MAAMw1C,gBAAgB,GAAG,EAAE;EAC3B,KAAK,IAAIC,CAAC,GAAG,IAAI,EAAEA,CAAC,IAAI,IAAI,EAAEA,CAAC,EAAE,EAAE;IACjC,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAI,EAAE,EAAEA,CAAC,EAAE,EAAE;MAC5BF,gBAAgB,CAACp6C,IAAI,CAAC;QAAEwL,IAAI,EAAE,GAAG8uC,CAAC,IAAID,CAAC;OAAI,CAAC;;;EAIhD,MAAME,KAAK,GAAG,CAAC;IAAE/uC,IAAI,EAAE;GAAO,EAAE;IAAEA,IAAI,EAAE;GAAM,CAAC;EAE/C,MAAMsf,MAAM,GAAG,CACb;IACE7qB,KAAK,EAAEpC,CAAC,CAAC,qBAAqB,CAAC;IAC/Bs7B,WAAW,EAAE,IAAI;IACjBxqB,IAAI,EAAE,MAAM;IACZyqB,UAAU,EAAE;MACV5tB,IAAI,EAAE,oBAAoB;MAC1B8tB,UAAU,EAAE;QAAEC,QAAQ,EAAE;;;GAE3B,EACD;IACEt5B,KAAK,EAAEpC,CAAC,CAAC,SAAS,CAAC;IACnBs7B,WAAW,EAAE,KAAK;IAClBxqB,IAAI,EAAE,MAAM;IACZyqB,UAAU,EAAE;MACV5tB,IAAI,EAAE;;GAET,EACD;IACEvL,KAAK,EAAEpC,CAAC,CAAC,QAAQ,CAAC;IAClBs7B,WAAW,EAAE,KAAK;IAClBxqB,IAAI,EAAE,MAAM;IACZyqB,UAAU,EAAE;MACV5tB,IAAI,EAAE;;GAET,EACD;IACEvL,KAAK,EAAEpC,CAAC,CAAC,SAAS,CAAC;IACnBs7B,WAAW,EAAE,KAAK;IAClBxqB,IAAI,EAAE,MAAM;IACZyqB,UAAU,EAAE;MACV5tB,IAAI,EAAE;;GAET,EACD;IACEvL,KAAK,EAAEpC,CAAC,CAAC,WAAW,CAAC;IACrBs7B,WAAW,EAAE,KAAK;IAClBxqB,IAAI,EAAE,MAAM;IACZyqB,UAAU,EAAE;MACV5tB,IAAI,EAAE;;GAET,EACD;IACEvL,KAAK,EAAEpC,CAAC,CAAC,QAAQ,CAAC;IAClBs7B,WAAW,EAAE,KAAK;IAClBxqB,IAAI,EAAE,MAAM;IACZyqB,UAAU,EAAE;MACV5tB,IAAI,EAAE;;GAET,CACF;EAGD,IAAI,CAAC2uC,QAAQ,EAAE;IACbrvB,MAAM,CAAC9qB,IAAI,CACT;MACEC,KAAK,EAAEpC,CAAC,CAAC,cAAc,CAAC;MACxBs7B,WAAW,EAAE,KAAK;MAClBxqB,IAAI,EAAE,MAAM;MACZyqB,UAAU,EAAE;QACV5tB,IAAI,EAAE;;KAET,EACD;MACEvL,KAAK,EAAEpC,CAAC,CAAC,aAAa,CAAC;MACvBs7B,WAAW,EAAE,KAAK;MAClBxqB,IAAI,EAAE,MAAM;MACZyqB,UAAU,EAAE;QACV5tB,IAAI,EAAE;;KAET,EACD;MACEvL,KAAK,EAAEpC,CAAC,CAAC,iBAAiB,CAAC;MAC3Bs7B,WAAW,EAAE,KAAK;MAClBxqB,IAAI,EAAE,QAAQ;MACdnF,GAAG,EAAE,gBAAgB;MACrB4vB,UAAU,EAAE;QACV5tB,IAAI,EAAE,gBAAgB;QACtB6tB,SAAS,EAAGlnB,KAAK,iBACf5R,cAAA,CAAAC,aAAA,CAACwZ,+BAAQ;UACPC,MAAM,EAAE,CAAC;YAAEzO,IAAI,EAAE;WAAW,EAAE;YAAEA,IAAI,EAAE;WAAe,CAAE;UACvD0O,SAAS,EAAC,MAAM;UAChBE,QAAQ,EAAEjI,KAAK,CAACrC,KAAM;UACtBqK,MAAM,EAAEhI,KAAK,CAACtB;SACf;;KAIT,CAAC;IAED,IAAIjM,WAAW,KAAK,SAAS,EAAE;MAC7BkmB,MAAM,CAAC9qB,IAAI,CAAC;QACVC,KAAK,EAAEpC,CAAC,CAAC,aAAa,CAAC;QACvBs7B,WAAW,EAAE,IAAI;QACjBxqB,IAAI,EAAE,QAAQ;QACdnF,GAAG,EAAE,YAAY;QACjB4vB,UAAU,EAAE;UACV5tB,IAAI,EAAE,YAAY;UAClB6tB,SAAS,EAAGlnB,KAAK,iBACf5R,cAAA,CAAAC,aAAA,2BACED,cAAA,CAAAC,aAAA,CAACi5B,iCAAU;YACTC,QAAQ,EAAG1uB,CAAC,IAAKyuC,WAAW,CAACzuC,CAAC,EAAEmH,KAAK,CAACtB,QAAQ,CAAE;YAChD8oB,QAAQ,EAAEA,MAAM;cACdxnB,KAAK,CAACtB,QAAQ,CAAC,IAAI,CAAC;cACpB+oC,aAAa,CAAC,IAAI,CAAC;cACnBC,eAAe,CAAC,IAAI,CAAC;aACrB;YACFl3B,OAAO,EAAEg3B,YAAY,GAAG97C,CAAC,CAAC,UAAU,CAAC,GAAGA,CAAC,CAAC,kBAAkB;WAC7D,CAAC,EACD67C,UAAU,iBACTn5C,cAAA,CAAAC,aAAA;YAAK4P,KAAK,EAAE;cAAEW,SAAS,EAAE;;0BACvBxQ,cAAA,CAAAC,aAAA;YACEw3B,GAAG,EAAE0hB,UAAW;YAChBzhB,GAAG,EAAC,SAAS;YACb7nB,KAAK,EAAE;cAAE2mB,QAAQ,EAAE,MAAM;cAAEc,SAAS,EAAE,OAAO;cAAEkgB,SAAS,EAAE;;WAC3D,CACE,CAEJ;;OAGV,CAAC;;;EAKNjtB,MAAM,CAAC9qB,IAAI,CACT;IACEC,KAAK,EAAEpC,CAAC,CAAC,cAAc,CAAC;IACxBs7B,WAAW,EAAE,IAAI;IACjBxqB,IAAI,EAAE,QAAQ;IACdnF,GAAG,EAAE,aAAa;IAClB4vB,UAAU,EAAE;MACV5tB,IAAI,EAAE,aAAa;MACnB6tB,SAAS,EAAGlnB,KAAK,iBACf5R,cAAA,CAAAC,aAAA,CAACwZ,+BAAQ;QACPC,MAAM,EAAE,CAAC;UAAEzO,IAAI,EAAE;SAAW,EAAE;UAAEA,IAAI,EAAE;SAAa,EAAE;UAAEA,IAAI,EAAE;SAAyB,CAAE;QACxF0O,SAAS,EAAC,MAAM;QAChBE,QAAQ,EAAEjI,KAAK,CAACrC,KAAM;QACtBqK,MAAM,EAAEhI,KAAK,CAACtB;OACf;;GAGN,EACD;IACE5Q,KAAK,EAAEpC,CAAC,CAAC,gBAAgB,CAAC;IAC1Bs7B,WAAW,EAAE,IAAI;IACjBxqB,IAAI,EAAE,QAAQ;IACdnF,GAAG,EAAE,eAAe;IACpB4vB,UAAU,EAAE;MACV5tB,IAAI,EAAE,eAAe;MACrB6tB,SAAS,EAAGlnB,KAAK,iBACf5R,cAAA,CAAAC,aAAA,CAACwZ,+BAAQ;QACPC,MAAM,EAAE,CAAC;UAAEzO,IAAI,EAAE;SAAU,EAAE;UAAEA,IAAI,EAAE;SAAW,CAAE;QAClD0O,SAAS,EAAC,MAAM;QAChBE,QAAQ,EAAEjI,KAAK,CAACrC,KAAM;QACtBqK,MAAM,EAAEhI,KAAK,CAACtB;OACf;;GAGN,EACD;IACE5Q,KAAK,EAAEpC,CAAC,CAAC,oBAAoB,CAAC;IAC9Bs7B,WAAW,EAAE,IAAI;IACjBxqB,IAAI,EAAE,QAAQ;IACdnF,GAAG,EAAE,kBAAkB;IACvB4vB,UAAU,EAAE;MACV5tB,IAAI,EAAE,kBAAkB;MACxB6tB,SAAS,EAAGlnB,KAAK,iBACf5R,cAAA,CAAAC,aAAA,CAACwZ,+BAAQ;QACPC,MAAM,EAAEsgC,KAAM;QACdrgC,SAAS,EAAC,MAAM;QAChBE,QAAQ,EAAEjI,KAAK,CAACrC,KAAM;QACtBqK,MAAM,EAAEhI,KAAK,CAACtB;OACf;;GAIT,CAAC;EAGD,IAAIqpC,gBAAgB,KAAK,KAAK,EAAE;IAC9BpvB,MAAM,CAAC9qB,IAAI,CAAC;MACVC,KAAK,EAAEpC,CAAC,CAAC,iCAAiC,CAAC;MAC3Cs7B,WAAW,EAAE,IAAI;MACjBxqB,IAAI,EAAE,QAAQ;MACdnF,GAAG,EAAE,eAAe;MACpB4vB,UAAU,EAAE;QACV5tB,IAAI,EAAE,eAAe;QACrB6tB,SAAS,EAAGlnB,KAAK,iBACf5R,cAAA,CAAAC,aAAA,CAACwZ,+BAAQ;UACPC,MAAM,EAAEmgC,gBAAiB;UACzBlgC,SAAS,EAAC,MAAM;UAChBE,QAAQ,EAAEjI,KAAK,CAACrC,KAAM;UACtBqK,MAAM,EAAEhI,KAAK,CAACtB;SACf;;KAGN,CAAC;GACH,MAAM,IAAIqpC,gBAAgB,KAAK,IAAI,EAAE;IACpCpvB,MAAM,CAAC9qB,IAAI,CAAC;MACVC,KAAK,EAAEpC,CAAC,CAAC,UAAU,CAAC;MACpBs7B,WAAW,EAAE,IAAI;MACjBxqB,IAAI,EAAE,MAAM;MACZyqB,UAAU,EAAE;QACV5tB,IAAI,EAAE,QAAQ;QACd8tB,UAAU,EAAE;UAAEC,QAAQ,EAAE;;;KAE3B,CAAC;;EAGJzO,MAAM,CAAC9qB,IAAI,CACT;IACEC,KAAK,EAAEpC,CAAC,CAAC,iBAAiB,CAAC;IAC3Bs7B,WAAW,EAAE,KAAK;IAClBxqB,IAAI,EAAE,QAAQ;IACdnF,GAAG,EAAE,eAAe;IACpB4vB,UAAU,EAAE;MACV5tB,IAAI,EAAE,eAAe;MACrB6tB,SAAS,EAAGlnB,KAAK,iBACf5R,cAAA,CAAAC,aAAA,CAACwZ,+BAAQ;QACPC,MAAM,EAAEsgC,KAAM;QACdrgC,SAAS,EAAC,MAAM;QAChBE,QAAQ,EAAEjI,KAAK,CAACrC,KAAM;QACtBqK,MAAM,EAAEhI,KAAK,CAACtB;OACf;;GAGN,EACD;IACE5Q,KAAK,EAAEpC,CAAC,CAAC,kBAAkB,CAAC;IAC5Bs7B,WAAW,EAAE,IAAI;IACjBxqB,IAAI,EAAE,QAAQ;IACdnF,GAAG,EAAE,iBAAiB;IACtB4vB,UAAU,EAAE;MACV5tB,IAAI,EAAE,iBAAiB;MACvB6tB,SAAS,EAAGlnB,KAAK,iBACf5R,cAAA,CAAAC,aAAA,CAACwZ,+BAAQ;QACPC,MAAM,EAAEsgC,KAAM;QACdrgC,SAAS,EAAC,MAAM;QAChBE,QAAQ,EAAEjI,KAAK,CAACrC,KAAM;QACtBqK,MAAM,EAAEhI,KAAK,CAACtB;OACf;;GAIT,CAAC;EAED,IAAI5L,eAAe,KAAK,IAAI,EAAE;IAC5B6lB,MAAM,CAAC9qB,IAAI,CAAC;MACVC,KAAK,EAAEpC,CAAC,CAAC,aAAa,CAAC;MACvBs7B,WAAW,EAAE,IAAI;MACjBxqB,IAAI,EAAE,QAAQ;MACdnF,GAAG,EAAE,YAAY;MACjB4vB,UAAU,EAAE;QACV5tB,IAAI,EAAE,YAAY;QAClB6tB,SAAS,EAAGlnB,KAAK,iBACf5R,cAAA,CAAAC,aAAA,CAACwZ,+BAAQ;UACPC,MAAM,EAAEsgC,KAAM;UACdrgC,SAAS,EAAC,MAAM;UAChBE,QAAQ,EAAEjI,KAAK,CAACrC,KAAM;UACtBqK,MAAM,EAAEhI,KAAK,CAACtB;SACf;;KAGN,CAAC;;EAGJ,OAAO,CACL;IACE+oB,IAAI,EAAE/7B,CAAC,CAAC,oBAAoB,CAAC;IAC7Bg8B,IAAI,EAAE/O;GACP,CACF;AACH,CAAC;;AChSD,MAAM0vB,YAAY,GAAGzwC,IAAA,IAAoC;EAAA,IAAnC;IAAE2T,MAAM;IAAEkH,QAAQ;IAAE2T;GAAU,GAAAxuB,IAAA;EAClD,MAAM;IAAElM;GAAG,GAAGC,2BAAc,EAAE;EAC9B,MAAM6B,QAAQ,GAAG0lB,0BAAW,EAAE;EAC9B,MAAMgF,SAAS,GAAG1qB,QAAQ,CAACsC,KAAK,IAAI,EAAE;EACtC,MAAM/D,QAAQ,GAAGH,KAAK,CAACI,UAAU,CAACC,kBAAkB,EAAE;EAEtD,MAAMwnB,WAAW,GAAG,IAAImU,eAAe,CAACp6B,QAAQ,CAACq6B,MAAM,CAAC;EACxD,MAAMC,MAAM,GAAGrU,WAAW,CAACrnB,GAAG,CAAC,KAAK,CAAC;EACrC,MAAM27B,SAAS,GACbD,MAAM,KACN5P,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAE5W,OAAO,MAClB4W,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEtpB,GAAG,MACdw3B,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAE9kB,OAAO,MACjB8kB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEx3B,GAAG,KACbo5B,cAAc,CAACC,OAAO,CAAC,eAAe,CAAC;EAEzC,MAAM;IAAEn7B,SAAS;IAAEF,IAAI,EAAEonB;GAAY,GAAGpoB,KAAK,CAACmB,KAAK,CAACC,IAAI,CAACinB,mBAAmB,CAC1E;IAAEloB,QAAQ;IAAEyd,OAAO,EAAE;MAAE5a,GAAG,EAAEm5B,SAAS;MAAEzJ,SAAS,EAAE;;GAAW,EAC7D;IAAElxB,OAAO,EAAE,CAAC,CAAC26B,SAAS;IAAEG,SAAS,EAAE;GACrC,CAAC;EAED,MAAM/J,cAAc,GAAGvyB,KAAK,CAACmB,KAAK,CAACC,IAAI,CAACoxB,aAAa,CAACryB,QAAQ,CAAC;EAE/D,MAAMo8B,SAAS,GAAG,CAAA/B,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAErI,YAAY,KAAI,EAAE;EAG9C,MAAM,CAACwpB,UAAU,EAAEE,aAAa,CAAC,GAAGzvC,cAAQ,CAAC,IAAI,CAAC;EAClD,MAAM,CAACwvC,YAAY,EAAEE,eAAe,CAAC,GAAG1vC,cAAQ,CAACmwB,SAAS,CAACqf,YAAY,IAAI,IAAI,CAAC;EAChF,MAAM,CAACjf,KAAK,EAAEC,QAAQ,CAAC,GAAGxwB,cAAQ,CAAC,IAAI,CAAC;EACxC,MAAM,CAACywB,YAAY,EAAEC,eAAe,CAAC,GAAG1wB,cAAQ,CAAC,KAAK,CAAC;EACvD,MAAM,CAAC2wB,SAAS,EAAEC,YAAY,CAAC,GAAG5wB,cAAQ,CAAC,KAAK,CAAC;EAEjD,MAAM,CAAC6wB,aAAa,EAAEC,gBAAgB,CAAC,GAAG9wB,cAAQ,CAAC,OAAO;IACxDsnB,kBAAkB,EAAE6I,SAAS,CAAC7I,kBAAkB,IAAI,EAAE;IACtDgpB,MAAM,EAAEngB,SAAS,CAACmgB,MAAM,IAAI,EAAE;IAC9Bt5C,MAAM,EAAEm5B,SAAS,CAACn5B,MAAM,IAAI,EAAE;IAC9Bu5C,MAAM,EAAEpgB,SAAS,CAACogB,MAAM,IAAI,EAAE;IAC9BC,QAAQ,EAAErgB,SAAS,CAACqgB,QAAQ,IAAI,EAAE;IAClCC,KAAK,EAAEtgB,SAAS,CAACsgB,KAAK,IAAI,EAAE;IAC5Bl2C,WAAW,EAAE41B,SAAS,CAAC51B,WAAW,IAAI,EAAE;IACxCm2C,UAAU,EAAEvgB,SAAS,CAACugB,UAAU,IAAI,EAAE;IACtCj2C,WAAW,EAAE01B,SAAS,CAAC11B,WAAW,GAAG;MAAE4G,IAAI,EAAE8uB,SAAS,CAAC11B;KAAa,GAAG,IAAI;IAC3EC,cAAc,EAAEy1B,SAAS,CAACz1B,cAAc,GAAG;MAAE2G,IAAI,EAAE8uB,SAAS,CAACz1B;KAAgB,GAAG,IAAI;IACpFC,aAAa,EAAEw1B,SAAS,CAACx1B,aAAa,GAAG;MAAE0G,IAAI,EAAE8uB,SAAS,CAACx1B;KAAe,GAAG,IAAI;IACjFo1C,gBAAgB,EAAE5f,SAAS,CAAC4f,gBAAgB,GAAG;MAAE1uC,IAAI,EAAE8uB,SAAS,CAAC4f;KAAkB,GAAG,IAAI;IAC1FY,aAAa,EAAExgB,SAAS,CAACwgB,aAAa,GAAG;MAAEtvC,IAAI,EAAE8uB,SAAS,CAACwgB;KAAe,GAAG,IAAI;IACjF1N,MAAM,EAAE9S,SAAS,CAAC8S,MAAM,IAAI,EAAE;IAC9B/nC,aAAa,EAAEi1B,SAAS,CAACj1B,aAAa,GAAG;MAAEmG,IAAI,EAAE8uB,SAAS,CAACj1B;KAAe,GAAG,IAAI;IACjFJ,eAAe,EAAEq1B,SAAS,CAACr1B,eAAe,GAAG;MAAEuG,IAAI,EAAE8uB,SAAS,CAACr1B;KAAiB,GAAG,IAAI;IACvFC,UAAU,EAAEo1B,SAAS,CAACp1B,UAAU,GAAG;MAAEsG,IAAI,EAAE8uB,SAAS,CAACp1B;KAAY,GAAG,IAAI;IACxEw0C,UAAU,EAAEpf,SAAS,CAACqf,YAAY,GAAG,UAAU,GAAG;GACnD,CAAC,CAAC;EAEH,MAAM,CAAChe,aAAa,EAAEC,gBAAgB,CAAC,GAAGzxB,cAAQ,CAAC6wB,aAAa,CAAC;EAEjE,MAAMa,sBAAsB,GAAI1V,UAAU,IAAK;IAC7C,IAAI,CAACA,UAAU,EAAE,OAAO,IAAI;IAC5B,MAAMoE,aAAa,GACjB,CAAApE,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEqE,qBAAqB,MAAIrE,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEsE,iBAAiB,KAAItE,UAAU;IAClF,MAAMuE,eAAe,GAAG,CAAChsB,KAAK,CAACC,OAAO,CAAC4rB,aAAa,CAAC,GAAGA,aAAa,CAAC,CAAC,CAAC,GAAGA,aAAa,KAAK,EAAE;IAC/F,OAAO,CAAAG,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAEC,OAAO,KAAID,eAAe;GACnD;EAED5f,eAAS,CAAC,MAAM;IACd,MAAMgxB,OAAO,GAAGD,sBAAsB,CAAC1V,UAAU,CAAC;IAClD,MAAMmE,OAAO,GAAGwR,OAAO,KAAIvD,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAE/R,iBAAiB;IACtD,MAAM8K,QAAQ,GAAG,CAAAhH,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE4F,YAAY,KAAI5F,OAAO,IAAI,EAAE;IAEvD,IAAIgH,QAAQ,IAAIjoB,MAAM,CAACC,IAAI,CAACgoB,QAAQ,CAAC,CAAClxB,MAAM,GAAG,CAAC,IAAI,CAACw6B,YAAY,EAAE;MACjE,IAAImgB,OAAO,GAAG,IAAI;MAClB,IAAIC,UAAU,GAAG,IAAI;MACrB,IAAIC,IAAI,GAAG,IAAI;MACf,IAAIC,OAAO,GAAG,IAAI;MAClB,IAAIC,SAAS,GAAG,IAAI;MACpB,IAAIC,UAAU,GAAG,IAAI;MACrB,IAAIC,SAAS,GAAG,IAAI;MACpB,IAAIC,OAAO,GAAG,IAAI;MAElB,IAAIhqB,QAAQ,CAAC1sB,WAAW,EAAE;QACxB,MAAM22C,cAAc,GAAG,CACrB;UAAE/vC,IAAI,EAAE;SAAW,EACnB;UAAEA,IAAI,EAAE;SAAa,EACrB;UAAEA,IAAI,EAAE;SAAyB,CAClC,CAACyoB,IAAI,CAAEunB,CAAC,IAAKA,CAAC,CAAChwC,IAAI,CAACpD,WAAW,EAAE,KAAKkpB,QAAQ,CAAC1sB,WAAW,CAACwD,WAAW,EAAE,CAAC;QAC1E,IAAImzC,cAAc,EAAER,OAAO,GAAGQ,cAAc,CAAC,KACxCR,OAAO,GAAG;UAAEvvC,IAAI,EAAE8lB,QAAQ,CAAC1sB;SAAa;OAC9C,MAAM,IAAI0sB,QAAQ,CAACmB,OAAO,KAAK/W,SAAS,EAAE;QACzCq/B,OAAO,GAAG;UAAEvvC,IAAI,EAAE8lB,QAAQ,CAACmB,OAAO,GAAG,SAAS,GAAG;SAAa;;MAGhE,IAAInB,QAAQ,CAACzsB,cAAc,EAAE;QAC3B,MAAM42C,YAAY,GAAG,CAAC;UAAEjwC,IAAI,EAAE;SAAW,EAAE;UAAEA,IAAI,EAAE;SAAe,CAAC,CAACyoB,IAAI,CACrEunB,CAAC,IAAKA,CAAC,CAAChwC,IAAI,CAACpD,WAAW,EAAE,KAAKkpB,QAAQ,CAACzsB,cAAc,CAACuD,WAAW,EACrE,CAAC;QACD,IAAIqzC,YAAY,EAAET,UAAU,GAAGS,YAAY,CAAC,KACvCT,UAAU,GAAG;UAAExvC,IAAI,EAAE8lB,QAAQ,CAACzsB;SAAgB;;MAGrD,IAAIysB,QAAQ,CAACxsB,aAAa,EAAE;QAC1B,MAAM42C,WAAW,GAAG,CAAC;UAAElwC,IAAI,EAAE;SAAU,EAAE;UAAEA,IAAI,EAAE;SAAW,CAAC,CAACyoB,IAAI,CAC/DunB,CAAC,IACAA,CAAC,CAAChwC,IAAI,CAACpD,WAAW,EAAE,KAAKkpB,QAAQ,CAACxsB,aAAa,CAACsD,WAAW,EAAE,IAC7DkpB,QAAQ,CAACxsB,aAAa,CAACsD,WAAW,EAAE,CAACvI,QAAQ,CAAC27C,CAAC,CAAChwC,IAAI,CAACpD,WAAW,EAAE,CACtE,CAAC;QACD,IAAIszC,WAAW,EAAET,IAAI,GAAGS,WAAW,CAAC,KAC/BT,IAAI,GAAG;UAAEzvC,IAAI,EAAE8lB,QAAQ,CAACxsB;SAAe;;MAG9C,IAAIwsB,QAAQ,CAACnsB,cAAc,KAAKuW,SAAS,IAAI4V,QAAQ,CAACnsB,cAAc,KAAK,IAAI,EAAE;QAC7E,MAAMw2C,MAAM,GAAG5zC,MAAM,CAACupB,QAAQ,CAACnsB,cAAc,CAAC,CAACiD,WAAW,EAAE;QAC5D,IAAIuzC,MAAM,KAAK,MAAM,IAAIA,MAAM,KAAK,KAAK,EAAET,OAAO,GAAG;UAAE1vC,IAAI,EAAE;SAAO,CAAC,KAChE0vC,OAAO,GAAG;UAAE1vC,IAAI,EAAE;SAAM;;MAG/B,IAAI8lB,QAAQ,CAAClsB,oBAAoB,EAAE;QACjC,MAAMw2C,SAAS,GAAGtqB,QAAQ,CAAClsB,oBAAoB,CAACiD,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;QACjE,MAAMwzC,WAAW,GAAGD,SAAS,CAAC1zC,KAAK,CAAC,GAAG,CAAC;QACxC,IAAI2zC,WAAW,CAACz7C,MAAM,KAAK,CAAC,EAAE;UAC5B,MAAM07C,GAAG,GAAGt5B,QAAQ,CAACq5B,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;UACxC,MAAME,EAAE,GAAGv5B,QAAQ,CAACq5B,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;UACvCV,SAAS,GAAG;YAAE3vC,IAAI,EAAE,GAAGswC,GAAG,IAAIC,EAAE;WAAI;SACrC,MAAM;UACLZ,SAAS,GAAG;YAAE3vC,IAAI,EAAE8lB,QAAQ,CAAClsB;WAAsB;;;MAIvD,IAAIksB,QAAQ,CAACjsB,aAAa,KAAKqW,SAAS,IAAI4V,QAAQ,CAACjsB,aAAa,KAAK,IAAI,EAAE;QAC3E,MAAMs2C,MAAM,GAAG5zC,MAAM,CAACupB,QAAQ,CAACjsB,aAAa,CAAC,CAAC+C,WAAW,EAAE;QAC3D,IAAIuzC,MAAM,KAAK,MAAM,IAAIA,MAAM,KAAK,KAAK,EAAEP,UAAU,GAAG;UAAE5vC,IAAI,EAAE;SAAO,CAAC,KACnE4vC,UAAU,GAAG;UAAE5vC,IAAI,EAAE;SAAM;;MAGlC,IAAI8lB,QAAQ,CAACrsB,eAAe,KAAKyW,SAAS,IAAI4V,QAAQ,CAACrsB,eAAe,KAAK,IAAI,EAAE;QAC/E,MAAM02C,MAAM,GAAG5zC,MAAM,CAACupB,QAAQ,CAACrsB,eAAe,CAAC,CAACmD,WAAW,EAAE;QAC7D,IAAIuzC,MAAM,KAAK,MAAM,IAAIA,MAAM,KAAK,KAAK,EAAEN,SAAS,GAAG;UAAE7vC,IAAI,EAAE;SAAO,CAAC,KAClE6vC,SAAS,GAAG;UAAE7vC,IAAI,EAAE;SAAM;;MAGjC,IAAI8lB,QAAQ,CAACpsB,UAAU,KAAKwW,SAAS,IAAI4V,QAAQ,CAACpsB,UAAU,KAAK,IAAI,EAAE;QACrE,MAAMy2C,MAAM,GAAG5zC,MAAM,CAACupB,QAAQ,CAACpsB,UAAU,CAAC,CAACkD,WAAW,EAAE;QACxD,IAAIuzC,MAAM,KAAK,MAAM,IAAIA,MAAM,KAAK,KAAK,EAAEL,OAAO,GAAG;UAAE9vC,IAAI,EAAE;SAAO,CAAC,KAChE8vC,OAAO,GAAG;UAAE9vC,IAAI,EAAE;SAAM;;MAG/B,MAAM6wB,eAAe,GAAG;QACtB5K,kBAAkB,EAAE6I,SAAS,CAAC7I,kBAAkB,IAAIH,QAAQ,CAACG,kBAAkB,IAAI,EAAE;QACrFgpB,MAAM,EAAEngB,SAAS,CAACmgB,MAAM,IAAInpB,QAAQ,CAACmpB,MAAM,IAAI,EAAE;QACjDt5C,MAAM,EAAEm5B,SAAS,CAACn5B,MAAM,IAAImwB,QAAQ,CAACK,UAAU,IAAI,EAAE;QACrD+oB,MAAM,EAAEpgB,SAAS,CAACogB,MAAM,KAAKppB,QAAQ,CAAC5uB,MAAM,GAAGqF,MAAM,CAACupB,QAAQ,CAAC5uB,MAAM,CAAC,GAAG,EAAE,CAAC;QAC5Ei4C,QAAQ,EAAErgB,SAAS,CAACqgB,QAAQ,KAAKrpB,QAAQ,CAAC3uB,QAAQ,GAAGoF,MAAM,CAACupB,QAAQ,CAAC3uB,QAAQ,CAAC,GAAG,EAAE,CAAC;QACpFi4C,KAAK,EAAEtgB,SAAS,CAACsgB,KAAK,KAAKtpB,QAAQ,CAAC7uB,KAAK,GAAGsF,MAAM,CAACupB,QAAQ,CAAC7uB,KAAK,CAAC,GAAG,EAAE,CAAC;QACxEiC,WAAW,EAAE41B,SAAS,CAAC51B,WAAW,IAAI4sB,QAAQ,CAAC5sB,WAAW,IAAI,EAAE;QAChEm2C,UAAU,EAAEvgB,SAAS,CAACugB,UAAU,IAAIvpB,QAAQ,CAAC3sB,SAAS,IAAI,EAAE;QAC5DC,WAAW,EAAE01B,SAAS,CAAC11B,WAAW,GAAG;UAAE4G,IAAI,EAAE8uB,SAAS,CAAC11B;SAAa,GAAGm2C,OAAO;QAC9El2C,cAAc,EAAEy1B,SAAS,CAACz1B,cAAc,GAAG;UAAE2G,IAAI,EAAE8uB,SAAS,CAACz1B;SAAgB,GAAGm2C,UAAU;QAC1Fl2C,aAAa,EAAEw1B,SAAS,CAACx1B,aAAa,GAAG;UAAE0G,IAAI,EAAE8uB,SAAS,CAACx1B;SAAe,GAAGm2C,IAAI;QACjFf,gBAAgB,EAAE5f,SAAS,CAAC4f,gBAAgB,GAAG;UAAE1uC,IAAI,EAAE8uB,SAAS,CAAC4f;SAAkB,GAAGgB,OAAO;QAC7FJ,aAAa,EAAExgB,SAAS,CAACwgB,aAAa,GAAG;UAAEtvC,IAAI,EAAE8uB,SAAS,CAACwgB;SAAe,GAAGK,SAAS;QACtF/N,MAAM,EAAE9S,SAAS,CAAC8S,MAAM,IAAI9b,QAAQ,CAAC/rB,uBAAuB,IAAI,EAAE;QAClEF,aAAa,EAAEi1B,SAAS,CAACj1B,aAAa,GAAG;UAAEmG,IAAI,EAAE8uB,SAAS,CAACj1B;SAAe,GAAG+1C,UAAU;QACvFn2C,eAAe,EAAEq1B,SAAS,CAACr1B,eAAe,GAAG;UAAEuG,IAAI,EAAE8uB,SAAS,CAACr1B;SAAiB,GAAGo2C,SAAS;QAC5Fn2C,UAAU,EAAEo1B,SAAS,CAACp1B,UAAU,GAAG;UAAEsG,IAAI,EAAE8uB,SAAS,CAACp1B;SAAY,GAAGo2C,OAAO;QAC3E5B,UAAU,EAAEpf,SAAS,CAACqf,YAAY,IAAIroB,QAAQ,CAACnqB,qBAAqB,IAAI;OACzE;MAED8zB,gBAAgB,CAACoB,eAAe,CAAC;MACjCT,gBAAgB,CAACS,eAAe,CAAC;MACjC,IAAIA,eAAe,CAACqd,UAAU,EAAE;QAC9BG,eAAe,CAACxd,eAAe,CAACqd,UAAU,CAAC;;MAE7C7e,eAAe,CAAC,IAAI,CAAC;;GAExB,EAAE,CAAC1U,UAAU,EAAEoS,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAE/R,iBAAiB,EAAEoU,YAAY,CAAC,CAAC;EAG3D,MAAM4d,YAAY,aAAUxtC,CAAC,EAAE6F,QAAQ;IAAA,IAAK;MAC1C,MAAM0rB,IAAI,GAAGvxB,CAAC,CAACG,MAAM,CAACqxB,KAAK,CAAC,CAAC,CAAC;MAC9B,IAAI,CAACD,IAAI,EAAE,OAAA3wB,OAAA,CAAAC,OAAA;MAEX,IAAI0wB,IAAI,CAACpsB,IAAI,GAAG,OAAO,EAAE;QACvBwqB,QAAQ,CAAC;UAAEhsB,IAAI,EAAE,OAAO;UAAEgU,OAAO,EAAE9kB,CAAC,CAAC,uBAAuB;SAAG,CAAC;QAChE,OAAA+N,OAAA,CAAAC,OAAA;;MACD,MAAAipB,KAAA,GAAA/oB,MAAA,aAEG;QAAA,OAAAH,OAAA,CAAAC,OAAA,CACgB9N,KAAK,CAACy4B,cAAc,CAACiG,WAAW,CAAC,MAAM,EAAEF,IAAI,EAAEr+B,QAAQ,CAAC,EAAAiO,IAAA,WAApEuwB,GAAG;UAAA,IAAAC,SAAA,EAAAC,eAAA,EAAAC,gBAAA;UACT,MAAMvG,WAAW,GAAGoG,GAAG,aAAHA,GAAG,wBAAAC,SAAA,GAAHD,GAAG,CAAE39B,IAAI,cAAA49B,SAAA,wBAAAC,eAAA,GAATD,SAAA,CAAWH,KAAK,cAAAI,eAAA,wBAAAC,gBAAA,GAAhBD,eAAA,CAAmB,CAAC,CAAC,cAAAC,gBAAA,uBAArBA,gBAAA,CAAuBvG,WAAW;UAAC,IAEnDA,WAAW;YACbzlB,QAAQ,CAAC0rB,IAAI,CAAC/wB,IAAI,CAAC;YACnBquC,eAAe,CAACvjB,WAAW,CAAC;YAE5B,MAAMmiB,MAAM,GAAG,IAAIC,UAAU,EAAE;YAC/BD,MAAM,CAACE,SAAS,GAAG,MAAMiB,aAAa,CAACnB,MAAM,CAACzjB,MAAM,CAAC;YACrDyjB,MAAM,CAACG,aAAa,CAACrc,IAAI,CAAC;YAE1B5B,QAAQ,CAAC;cAAEhsB,IAAI,EAAE,SAAS;cAAEgU,OAAO,EAAE9kB,CAAC,CAAC,mBAAmB;aAAG,CAAC;;;OAEjE,cAAO;QACN88B,QAAQ,CAAC;UAAEhsB,IAAI,EAAE,OAAO;UAAEgU,OAAO,EAAE9kB,CAAC,CAAC,eAAe;SAAG,CAAC;OACzD;MAAA,OAAA+N,OAAA,CAAAC,OAAA,CAAAipB,KAAA,IAAAA,KAAA,CAAA3oB,IAAA,GAAA2oB,KAAA,CAAA3oB,IAAA;KACF,QAAAnB,CAAA;MAAA,OAAAY,OAAA,CAAAiB,MAAA,CAAA7B,CAAA;;;EAED,MAAM8xB,iBAAiB,GAAGA,CAACC,QAAQ,EAAEh+B,IAAI,KAAK;IAAA,IAAAi9C,iBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,qBAAA;IAC5C,MAAMC,kBAAkB,GACtB,CAAC,CAAAv9C,IAAI,aAAJA,IAAI,wBAAAi9C,iBAAA,GAAJj9C,IAAI,CAAE6F,WAAW,cAAAo3C,iBAAA,uBAAjBA,iBAAA,CAAmBxwC,IAAI,MAAIzM,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE6F,WAAW,QAC5C,CAAA+2B,aAAa,aAAbA,aAAa,wBAAAsgB,qBAAA,GAAbtgB,aAAa,CAAE/2B,WAAW,cAAAq3C,qBAAA,uBAA1BA,qBAAA,CAA4BzwC,IAAI,MAAImwB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAE/2B,WAAW,EAAC;IAElE,MAAM23C,uBAAuB,GAC3B,CAAC,CAAAx9C,IAAI,aAAJA,IAAI,wBAAAm9C,qBAAA,GAAJn9C,IAAI,CAAEm7C,gBAAgB,cAAAgC,qBAAA,uBAAtBA,qBAAA,CAAwB1wC,IAAI,MAAIzM,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEm7C,gBAAgB,QACtD,CAAAve,aAAa,aAAbA,aAAa,wBAAAwgB,qBAAA,GAAbxgB,aAAa,CAAEue,gBAAgB,cAAAiC,qBAAA,uBAA/BA,qBAAA,CAAiC3wC,IAAI,MAAImwB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEue,gBAAgB,EAAC;IAE5E,MAAMsC,sBAAsB,GAC1B,CAAC,CAAAz9C,IAAI,aAAJA,IAAI,wBAAAq9C,qBAAA,GAAJr9C,IAAI,CAAEkG,eAAe,cAAAm3C,qBAAA,uBAArBA,qBAAA,CAAuB5wC,IAAI,MAAIzM,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEkG,eAAe,QACpD,CAAA02B,aAAa,aAAbA,aAAa,wBAAA0gB,qBAAA,GAAb1gB,aAAa,CAAE12B,eAAe,cAAAo3C,qBAAA,uBAA9BA,qBAAA,CAAgC7wC,IAAI,MAAImwB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAE12B,eAAe,EAAC;IAE1E,IAAIq3C,kBAAkB,IAAIC,uBAAuB,IAAIC,sBAAsB,EAAE;MAC3E5gB,gBAAgB,CAAEnlB,IAAI,KAAM;QAC1B,GAAGA,IAAI;QACP,GAAG1X;OACJ,CAAC,CAAC;;IAIL,MAAM09C,UAAU,GAAG19C,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE0yB,kBAAkB;IAC3C,MAAMirB,UAAU,GAAG39C,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE6F,WAAW;IACpC,MAAM+3C,OAAO,GAAG59C,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE+F,aAAa;IACnC,MAAM83C,UAAU,GAAG79C,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEm7C,gBAAgB;IACzC,MAAM2C,YAAY,GAAG99C,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEkG,eAAe;IAC1C,MAAM63C,QAAQ,GAAGnD,YAAY,KAAI56C,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE26C,UAAU;IACjD,MAAMqD,SAAS,GAAGh+C,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEquC,MAAM;IAC9B,MAAM4P,YAAY,GAAGj+C,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAE+7C,aAAa;IACxC,MAAMmC,UAAU,GAAGl+C,IAAI,aAAJA,IAAI,uBAAJA,IAAI,CAAEmG,UAAU;IAEnC,IAAI+4B,KAAK,GAAG,IAAI;IAChB,IAAI,CAACwe,UAAU,EAAExe,KAAK,GAAG,KAAK;IAC9B,IAAI,CAACye,UAAU,EAAEze,KAAK,GAAG,KAAK;IAC9B,IAAI,CAAC0e,OAAO,EAAE1e,KAAK,GAAG,KAAK;IAC3B,IAAI,CAAC2e,UAAU,EAAE3e,KAAK,GAAG,KAAK;IAC9B,IAAI,CAAC4e,YAAY,EAAE5e,KAAK,GAAG,KAAK;IAEhC,IAAI,CAAAye,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAElxC,IAAI,MAAK,SAAS,IAAI,CAACsxC,QAAQ,EAAE7e,KAAK,GAAG,KAAK;IAC9D,IAAI,CAAA2e,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEpxC,IAAI,MAAK,IAAI,IAAI,CAACuxC,SAAS,EAAE9e,KAAK,GAAG,KAAK;IAC1D,IAAI,CAAA2e,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEpxC,IAAI,MAAK,KAAK,IAAI,CAACwxC,YAAY,EAAE/e,KAAK,GAAG,KAAK;IAC9D,IAAI,CAAA4e,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAErxC,IAAI,MAAK,IAAI,IAAI,CAACyxC,UAAU,EAAEhf,KAAK,GAAG,KAAK;IAE7D,IAAIA,KAAK,KAAKnD,SAAS,EAAE;MACvBC,YAAY,CAACkD,KAAK,CAAC;;GAEtB;EAED,MAAMvnB,QAAQ,aAAU3X,IAAI;IAAA,IAAK;MAAA,IAAAm+C,kBAAA,EAAAC,oBAAA,EAAAC,mBAAA,EAAAC,sBAAA,EAAAC,mBAAA,EAAAC,mBAAA,EAAAC,sBAAA,EAAAC,gBAAA;MAC/B,MAAMjf,UAAU,GAAG;QACjB/M,kBAAkB,EAAE1yB,IAAI,CAAC0yB,kBAAkB;QAC3CgpB,MAAM,EAAE17C,IAAI,CAAC07C,MAAM;QACnBt5C,MAAM,EAAEpC,IAAI,CAACoC,MAAM;QACnBu5C,MAAM,EAAE37C,IAAI,CAAC27C,MAAM;QACnBC,QAAQ,EAAE57C,IAAI,CAAC47C,QAAQ;QACvBC,KAAK,EAAE77C,IAAI,CAAC67C,KAAK;QACjBl2C,WAAW,EAAE3F,IAAI,CAAC2F,WAAW;QAC7Bm2C,UAAU,EAAE97C,IAAI,CAAC87C,UAAU;QAC3Bj2C,WAAW,EAAE,EAAAs4C,kBAAA,GAAAn+C,IAAI,CAAC6F,WAAW,cAAAs4C,kBAAA,uBAAhBA,kBAAA,CAAkB1xC,IAAI,KAAIzM,IAAI,CAAC6F,WAAW;QACvDC,cAAc,EAAE,EAAAs4C,oBAAA,GAAAp+C,IAAI,CAAC8F,cAAc,cAAAs4C,oBAAA,uBAAnBA,oBAAA,CAAqB3xC,IAAI,KAAIzM,IAAI,CAAC8F,cAAc;QAChEC,aAAa,EAAE,EAAAs4C,mBAAA,GAAAr+C,IAAI,CAAC+F,aAAa,cAAAs4C,mBAAA,uBAAlBA,mBAAA,CAAoB5xC,IAAI,KAAIzM,IAAI,CAAC+F,aAAa;QAC7Do1C,gBAAgB,EAAE,EAAAmD,sBAAA,GAAAt+C,IAAI,CAACm7C,gBAAgB,cAAAmD,sBAAA,uBAArBA,sBAAA,CAAuB7xC,IAAI,KAAIzM,IAAI,CAACm7C,gBAAgB;QACtEY,aAAa,EAAE,EAAAwC,mBAAA,GAAAv+C,IAAI,CAAC+7C,aAAa,cAAAwC,mBAAA,uBAAlBA,mBAAA,CAAoB9xC,IAAI,KAAIzM,IAAI,CAAC+7C,aAAa;QAC7D1N,MAAM,EAAEruC,IAAI,CAACquC,MAAM;QACnB/nC,aAAa,EAAE,EAAAk4C,mBAAA,GAAAx+C,IAAI,CAACsG,aAAa,cAAAk4C,mBAAA,uBAAlBA,mBAAA,CAAoB/xC,IAAI,KAAIzM,IAAI,CAACsG,aAAa;QAC7DJ,eAAe,EAAE,EAAAu4C,sBAAA,GAAAz+C,IAAI,CAACkG,eAAe,cAAAu4C,sBAAA,uBAApBA,sBAAA,CAAsBhyC,IAAI,KAAIzM,IAAI,CAACkG,eAAe;QACnEC,UAAU,EAAE,EAAAu4C,gBAAA,GAAA1+C,IAAI,CAACmG,UAAU,cAAAu4C,gBAAA,uBAAfA,gBAAA,CAAiBjyC,IAAI,KAAIzM,IAAI,CAACmG,UAAU;QACpDy0C,YAAY,EAAEA;OACf;MAAC,MAAA7jB,MAAA,GAAA/pB,MAAA,aAEE;QAAA,OAAAH,OAAA,CAAAC,OAAA,CACIykB,cAAc,CAACyE,WAAW,CAAC;UAC/BV,WAAW,EAAE,EAAE;UACfwK,UAAU,EAAE,OAAO;UACnB99B,GAAG,EAAEm5B,SAAS;UACd,GAAGsE;SACJ,CAAC,EAAAryB,IAAA;UACFwuB,QAAQ,CAAC;YAAEhsB,IAAI,EAAE,SAAS;YAAEgU,OAAO,EAAE9kB,CAAC,CAAC,qCAAqC;WAAG,CAAC;UAChF+mB,QAAQ,CAAClH,MAAM,CAAClU,GAAG,EAAEg1B,UAAU,CAAC;;OACjC,cAAe;QACd7D,QAAQ,CAAC;UAAEhsB,IAAI,EAAE,OAAO;UAAEgU,OAAO,EAAE9kB,CAAC,CAAC,gCAAgC;SAAG,CAAC;OAC1E;MAAA,OAAA+N,OAAA,CAAAC,OAAA,CAAAiqB,MAAA,IAAAA,MAAA,CAAA3pB,IAAA,GAAA2pB,MAAA,CAAA3pB,IAAA;KACF,QAAAnB,CAAA;MAAA,OAAAY,OAAA,CAAAiB,MAAA,CAAA7B,CAAA;;;EAED,IAAI/L,SAAS,EAAE;IACb,oBAAOsB,cAAA,CAAAC,aAAA,CAAC6U,6BAAM,MAAE,CAAC;;EAGnB,MAAMypB,MAAM,GAAG0a,kBAAkB,CAC/B37C,CAAC,EACD89B,aAAa,EACb6c,YAAY,EACZkB,UAAU,EACVC,YAAY,EACZC,aAAa,EACbC,eACF,CAAC;EAED,oBACEt5C,cAAA,CAAAC,aAAA,CAACwf,cAAQ,qBACPzf,cAAA,CAAAC,aAAA,CAACu+B,mCAAY;IACXv1B,GAAG,EAAEoxB,YAAY,GAAG,QAAQ,GAAG,SAAU;IACzCoE,UAAU,EAAE,CAAClE,SAAU;IACvB76B,KAAK,EAAEpC,CAAC,CAAC,oBAAoB,CAAE;IAC/B6f,MAAM,EAAEohB,MAAM,CAAClgC,GAAG,CAAEmK,IAAI,KAAM;MAC5B,GAAGA,IAAI;MACPk2B,aAAa,EAAE,IAAI;MACnBC,aAAa,EAAE;KAChB,CAAC,CAAE;IACJxoB,QAAQ,EAAEA,QAAS;IACnBskB,aAAa,EAAEA,aAAc;IAC7B8B,iBAAiB,EAAEA,iBAAkB;IACrCqC,MAAM,EAAE,KAAM;IACdC,YAAY,EAAE;GACf,CAAC,EACD1E,KAAK,iBACJn6B,cAAA,CAAAC,aAAA,CAAC63B,4BAAK;IACJ5rB,KAAK,EAAEiuB,KAAK,CAAC/rB,IAAI,KAAK,OAAQ;IAC9B1O,KAAK,EAAEy6B,KAAK,CAAC/X,OAAQ;IACrB9I,OAAO,EAAEA,MAAM8gB,QAAQ,CAAC,IAAI;GAC7B,CAEK,CAAC;AAEf,CAAC;;ACpUD,MAAMzV,OAAK,GAAGnb,IAAA,IAAqB;EAAA,IAAAuY,qBAAA,EAAAG,qBAAA,EAAA0C,sBAAA,EAAAC,sBAAA,EAAA+qB,qBAAA;EAAA,IAApB;IAAEz9B;GAAa,GAAA3I,IAAA;EAC5B,MAAM7L,QAAQ,GAAGH,KAAK,CAACI,UAAU,CAACC,kBAAkB,EAAE;EACtD,MAAMuB,QAAQ,GAAG0lB,0BAAW,EAAE;EAE9B,MAAMC,aAAa,GAAG;IACpBC,UAAU,EAAE,EAAE;IACd7C,UAAU,EAAE,EAAE;IACdf,SAAS,EAAE;MACTriB,KAAK,EAAE,EAAE;MACTD,MAAM,EAAE,CAAC;MACTmmB,MAAM,EAAE,aAAa;MACrBC,SAAS,EAAE;;GAEd;EAED,MAAM,CAACrE,SAAS,EAAEE,QAAQ,CAAC,GAAGoE,gBAAU,CAACC,WAAW,EAAEL,aAAa,CAAC;EAEpE,MAAMM,WAAW,GAAGhS,aAAO,CAAC,MAAM;IAAA,IAAAqN,oBAAA,EAAAC,qBAAA;IAChC,OAAO;MACLhjB,QAAQ;MACRmB,MAAM,EAAE,CAAA+hB,SAAS,aAATA,SAAS,wBAAAH,oBAAA,GAATG,SAAS,CAAEO,SAAS,cAAAV,oBAAA,uBAApBA,oBAAA,CAAsB5hB,MAAM,KAAI,CAAC;MACzCC,KAAK,EAAE,CAAA8hB,SAAS,aAATA,SAAS,wBAAAF,qBAAA,GAATE,SAAS,CAAEO,SAAS,cAAAT,qBAAA,uBAApBA,qBAAA,CAAsB5hB,KAAK,KAAI,EAAE;MACxC06B,MAAM,EAAE,CAAA5Y,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEsB,UAAU,KAAI;KAClC;GACF,EAAE,CAACxkB,QAAQ,EAAEkjB,SAAS,aAATA,SAAS,wBAAAkB,qBAAA,GAATlB,SAAS,CAAEO,SAAS,cAAAW,qBAAA,uBAApBA,qBAAA,CAAsBjjB,MAAM,EAAE+hB,SAAS,aAATA,SAAS,wBAAAqB,qBAAA,GAATrB,SAAS,CAAEO,SAAS,cAAAc,qBAAA,uBAApBA,qBAAA,CAAsBnjB,KAAK,EAAE8hB,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEsB,UAAU,CAAC,CAAC;EAEhG,MAAMlF,OAAO,GAAG5J,aAAO,CAAC,MAAM;IAC5B,MAAM8O,UAAU,GAAG,CAAAtB,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEsB,UAAU,KAAI,EAAE;IAC9C,OAAO;MACL,GAAGA,UAAU;MACb,IAAIA,UAAU,CAACjP,OAAO,IAAI;QAAE1S,GAAG,EAAE2hB,UAAU,CAACjP;OAAS;KACtD;GACF,EAAE,CAAC2N,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEsB,UAAU,CAAC,CAAC;EAE3B,MAAM;IAAEzjB,SAAS;IAAEF,IAAI,EAAEyyC,aAAa,GAAG;GAAI,GAAGzzC,KAAK,CAACmB,KAAK,CAACC,IAAI,CAACC,sBAAsB,CAACoe,OAAO,EAAEoI,WAAW,EAAE;IAC5GrmB,OAAO,EAAE,CAAC,CAACrB,QAAQ;IACnB4f,gBAAgB,EAAE;GACnB,CAAC;EAEF,MAAMiI,aAAa,GAAGnS,aAAO,CAC3B;IAAA,IAAAuN,qBAAA,EAAA6E,sBAAA;IAAA,OAAO;MACLjlB,GAAG,EAAE,CAAAqgB,SAAS,aAATA,SAAS,wBAAAD,qBAAA,GAATC,SAAS,CAAEsB,UAAU,cAAAvB,qBAAA,uBAArBA,qBAAA,CAAuB1N,OAAO,KAAI,EAAE;MACzCjI,IAAI,EAAE,CAAA4V,SAAS,aAATA,SAAS,wBAAA4E,sBAAA,GAAT5E,SAAS,CAAEsB,UAAU,cAAAsD,sBAAA,uBAArBA,sBAAA,CAAuBlP,KAAK,KAAI;KACvC;GAAC,EACF,CAACsK,SAAS,aAATA,SAAS,wBAAA+D,sBAAA,GAAT/D,SAAS,CAAEsB,UAAU,cAAAyC,sBAAA,uBAArBA,sBAAA,CAAuB1R,OAAO,EAAE2N,SAAS,aAATA,SAAS,wBAAAgE,sBAAA,GAAThE,SAAS,CAAEsB,UAAU,cAAA0C,sBAAA,uBAArBA,sBAAA,CAAuBtO,KAAK,CAC/D,CAAC;EAED,MAAMmP,cAAc,GAAG,CAAC,EAAEF,aAAa,CAAChlB,GAAG,IAAIglB,aAAa,CAACva,IAAI,CAAC;EAElE,MAAM;IAAEvM,SAAS,EAAEinB,eAAe;IAAEnnB,IAAI,EAAEonB;GAAY,GAAGpoB,KAAK,CAACmB,KAAK,CAACC,IAAI,CAACinB,mBAAmB,CAC3F;IACEloB,QAAQ;IACRyd,OAAO,EAAEoK;GACV,EACD;IACExmB,OAAO,EAAE,CAAC,CAACrB,QAAQ,IAAI,CAAC,CAAC6nB,aAAa,CAAChlB,GAAG;IAC1C+c,gBAAgB,EAAE;GAEtB,CAAC;EAED,MAAMuI,UAAU,GAAGzS,aAAO,CAAC,MAAM;IAC/B,IAAIqS,cAAc,EAAE;MAClB,IAAI,CAACE,UAAU,EAAE,OAAO,EAAE;MAC1B,OAAO,CAACA,UAAU,CAAC;;IAGrB,OAAO,CAAAqrB,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAE7oC,YAAY,KAAI,EAAE;GACzC,EAAE,CAACsd,cAAc,EAAEE,UAAU,EAAEqrB,aAAa,CAAC,CAAC;EAE/C,MAAMlrB,YAAY,GAAG1S,aAAO,CAAC,MAAM;IACjC,OAAO,CAACyS,UAAU,IAAI,EAAE,EAAEznB,GAAG,CAAEmK,IAAI,IAAK;MAEtC,MAAMwd,YAAY,GAAG,CAAC,CAACxd,IAAI,CAACyd,iBAAiB;MAE7C,IAAID,YAAY,EAAE;QAAA,IAAAE,kBAAA,EAAAC,mBAAA,EAAAE,mBAAA,EAAAD,qBAAA,EAAAE,sBAAA,EAAAC,sBAAA;QAChB,MAAMf,aAAa,GAAGhd,IAAI,CAACyd,iBAAiB,IAAI,EAAE;QAClD,MAAMvd,QAAQ,GAAI8c,aAAa,CAAC/kB,SAAS,IAAI+kB,aAAa,CAAC9kB,UAAU,IAAI8kB,aAAa,CAAC7kB,QAAQ,GAC3F,GAAG6kB,aAAa,CAAC/kB,SAAS,IAAI,EAAE,IAAI+kB,aAAa,CAAC9kB,UAAU,IAAI,EAAE,IAAI8kB,aAAa,CAAC7kB,QAAQ,IAAI,EAAE,EAAE,CAACgd,IAAI,EAAE,CAAC7V,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,GAChI0d,aAAa,CAACqB,YAAY,IAAI,EAAE;QAEpC,OAAO;UACLH,aAAa,EAAE,EAAAR,kBAAA,GAAA1d,IAAI,CAACme,YAAY,cAAAT,kBAAA,uBAAjBA,kBAAA,CAAmB1lB,GAAG,KAAI,EAAE;UAC3ComB,YAAY,EAAE,EAAAT,mBAAA,GAAA3d,IAAI,CAACme,YAAY,cAAAR,mBAAA,uBAAjBA,mBAAA,CAAmB3lB,GAAG,KAAI,EAAE;UAC1C0b,KAAK,EAAExT,QAAQ;UACfmL,iBAAiB,EAAE,EAAAwS,mBAAA,GAAA7d,IAAI,CAACme,YAAY,cAAAN,mBAAA,uBAAjBA,mBAAA,CAAmB7lB,GAAG,KAAI,EAAE;UAC/CwT,WAAW,EAAEtL,QAAQ;UACrB9H,MAAM,EAAE,EAAAwlB,qBAAA,GAAA5d,IAAI,CAACyd,iBAAiB,cAAAG,qBAAA,uBAAtBA,qBAAA,CAAwBU,UAAU,KAAI,EAAE;UAChDjmB,UAAU,EAAE,CAAC,EAAAylB,sBAAA,GAAA9d,IAAI,CAACyd,iBAAiB,cAAAK,sBAAA,uBAAtBA,sBAAA,CAAwBzlB,UAAU,OAAA0lB,sBAAA,GAAI/d,IAAI,CAACyd,iBAAiB,cAAAM,sBAAA,uBAAtBA,sBAAA,CAAwB/R,UAAU,KAAIhM,IAAI,CAAC3H,UAAU,IAAI2H,IAAI,CAACgM,UAAU,IAAI,IAAI,EAAExM,WAAW,EAAE;UAClJ+e,GAAG,EAAE;SACN;;MAIH,MAAMre,QAAQ,GAAIF,IAAI,CAAC/H,SAAS,IAAI+H,IAAI,CAAC9H,UAAU,IAAI8H,IAAI,CAAC7H,QAAQ,GAChE,GAAG6H,IAAI,CAAC/H,SAAS,IAAI,EAAE,IAAI+H,IAAI,CAAC9H,UAAU,IAAI,EAAE,IAAI8H,IAAI,CAAC7H,QAAQ,IAAI,EAAE,EAAE,CAACgd,IAAI,EAAE,CAAC7V,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,GACrGU,IAAI,CAACqe,YAAY,IAAIre,IAAI,CAACwL,WAAW,IAAI,EAAE;MAE/C,OAAO;QACL,GAAGxL,IAAI;QACPke,aAAa,EAAEle,IAAI,CAAChI,GAAG,IAAIgI,IAAI,CAACqL,iBAAiB,IAAI,EAAE;QACvD+S,YAAY,EAAEpe,IAAI,CAACoe,YAAY,IAAI,EAAE;QACrC1K,KAAK,EAAExT,QAAQ;QACfmL,iBAAiB,EAAErL,IAAI,CAAChI,GAAG,IAAIgI,IAAI,CAACqL,iBAAiB,IAAI,EAAE;QAC3DG,WAAW,EAAEtL,QAAQ;QACrB9H,MAAM,EAAE4H,IAAI,CAAC5H,MAAM,IAAI,EAAE;QACzBC,UAAU,EAAE,CAAC2H,IAAI,CAAC3H,UAAU,IAAI2H,IAAI,CAACgM,UAAU,IAAI,IAAI,EAAExM,WAAW,EAAE;QACtE+e,GAAG,EAAEve,IAAI,CAACue,GAAG,IAAI;OAClB;KACF,CAAC;GACH,EAAE,CAACjB,UAAU,CAAC,CAAC;EAEhB,MAAMxT,YAAY,GAAG,CAAA2+B,aAAa,aAAbA,aAAa,wBAAArB,qBAAA,GAAbqB,aAAa,CAAE92B,aAAa,cAAAy1B,qBAAA,uBAA5BA,qBAAA,CAA8Bt9B,YAAY,MAAI2+B,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEhyC,UAAU,KAAI,CAAC;EAEjG,MAAM+hB,aAAa,GAAG5hB,QAAQ,CAACC,QAAQ,CAACC,QAAQ,CAAC,YAAY,CAAC;EAK9D,MAAM8nB,gBAAgB,GAAG7E,iBAAW,CAClClS,KAAA;IAAA,IAAC;MAAEgX,WAAW;MAAE1E,eAAe;MAAEC;KAAmB,GAAAvS,KAAA;IAAA,oBAClDrQ,cAAA,CAAAC,aAAA,CAACyiB,0BAA0B;MAAO2E,WAAW;MAAE1E,eAAe;MAAEC,iBAAiB;MAAIC,UAAU,EAAC,KAAK;MAACnT,SAAS,EAAC;KAAU,CAAC;GAC5H,EACD,EACF,CAAC;EAED,MAAM4X,2BAA2B,GAAG;IAClCrC,MAAM,EAAE,aAAa;IACrBlmB,KAAK,EAAEI,MAAM,CAAC3B,KAAK,CAACC,KAAK,CAAC8pB,OAAO,CAACC,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE;IACtD1oB,MAAM,EAAE,CAAC;IACTomB,SAAS,EAAE;GACZ;EAED,MAAMuC,kBAAkB,GAAIjpB,IAAI,IAAK;IACnCA,IAAI,CAACkpB,cAAc,CAAC,EAAE,CAAC,KAAWlpB,IAAI,aAAJA,IAAI,qBAAX,OAAOA,IAAI,CAAG,EAAE,CAAC;IAC5CuiB,QAAQ,CAAC;MAAEiB,MAAM,EAAE,iBAAiB;MAAExjB,IAAI,EAAE;QAAE,GAAG8oB;OAA6B;MAAEtG;KAAe,CAAC;IAChGD,QAAQ,CAAC;MAAEiB,MAAM,EAAE,kBAAkB;MAAExjB,IAAI;MAAEwiB;KAAe,CAAC;GAC9D;EAED,MAAM2G,uBAAuB,GAAG;IAC9BzU,OAAO,EAAE,EAAE;IACXW,iBAAiB,EAAE,EAAE;IACrB+T,UAAU,EAAE;GACb;EAED,MAAMC,iBAAiB,GAAIC,kBAAkB,IAAK;IAChDA,kBAAkB,CAAC,SAAS,EAAE,IAAI,CAAC;IACnCA,kBAAkB,CAAC,mBAAmB,EAAE,IAAI,CAAC;IAC7CA,kBAAkB,CAAC,YAAY,EAAE,IAAI,CAAC;IACtC/G,QAAQ,CAAC;MAAEiB,MAAM,EAAE,kBAAkB;MAAExjB,IAAI,EAAEmpB;KAAyB,CAAC;GACxE;EAED,MAAMI,kBAAkB,GAAG;IACzBX,gBAAgB;IAChBK,kBAAkB;IAClBE,uBAAuB,EAAE9G,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEsB,UAAU;IAC9C6F,4BAA4B,EAAEL,uBAAuB;IACrDE,iBAAiB;IACjBnY,SAAS,EAAE;GACZ;EAeD,SAAS0V,WAAWA,CAAC1jB,KAAK,EAAEumB,OAAO,EAAE;IACnC,MAAM2rB,UAAU,GAAG3rB,OAAO,CAACjH,aAAa,GAAG,YAAY,GAAG,eAAe;IAGzE,QAAQiH,OAAO,CAACjG,MAAM;MACpB,KAAK,kBAAkB;QACrBxkB,KAAK,CAACO,cAAc,CAACmqB,GAAG,CAAC0rB,UAAU,EAAE;UAAE,GAAGlyC,KAAK;UAAEygB,UAAU,EAAE8F,OAAO,CAACzpB;SAAM,CAAC;QAC5E,OAAO;UAAE,GAAGkD,KAAK;UAAEygB,UAAU,EAAE8F,OAAO,CAACzpB;SAAM;MAE/C,KAAK,kBAAkB;QACrBhB,KAAK,CAACO,cAAc,CAACmqB,GAAG,CAAC0rB,UAAU,EAAE;UAAE,GAAGlyC,KAAK;UAAEsjB,UAAU,EAAEiD,OAAO,CAACzpB;SAAM,CAAC;QAC5E,OAAO;UAAE,GAAGkD,KAAK;UAAEsjB,UAAU,EAAEiD,OAAO,CAACzpB;SAAM;MAE/C,KAAK,iBAAiB;QACpBhB,KAAK,CAACO,cAAc,CAACmqB,GAAG,CAAC0rB,UAAU,EAAE;UAAE,GAAGlyC,KAAK;UAAE0f,SAAS,EAAE6G,OAAO,CAACzpB;SAAM,CAAC;QAC3E,OAAO;UAAE,GAAGkD,KAAK;UAAE0f,SAAS,EAAE6G,OAAO,CAACzpB;SAAM;MAE9C;QACE,OAAOkD,KAAK;;;EAIlB,MAAMwQ,gBAAgB,GAAIzH,CAAC,IAAK;IAC9B,MAAM0d,QAAQ,GAAGzgB,MAAM,CAAC+C,CAAC,CAACG,MAAM,CAAC2E,KAAK,CAAC;IAEvCwR,QAAQ,CAAC;MACPiB,MAAM,EAAE,iBAAiB;MACzBxjB,IAAI,EAAE;QACJ,GAAGqiB,SAAS,CAACO,SAAS;QACtBriB,KAAK,EAAEopB,QAAQ;QACfrpB,MAAM,EAAE;OACT;MACDkiB;KACD,CAAC;GACH;EAED,MAAMC,eAAe,GAAIxW,CAAC,IAAK;IAC7B,IAAIA,CAAC,CAAC5K,MAAM,GAAG,CAAC,EAAE;MAChB,MAAM,CAAC;QAAEuZ,EAAE;QAAEgP;OAAM,CAAC,GAAG3d,CAAC;MACxB,MAAMya,SAAS,GAAGkD,IAAI,GAAG,MAAM,GAAG,KAAK;MACvC,MAAMnD,MAAM,GAAG7L,EAAE;MAEjB,IAAI,EAAEyH,SAAS,CAACO,SAAS,CAAC6D,MAAM,KAAKA,MAAM,IAAIpE,SAAS,CAACO,SAAS,CAAC8D,SAAS,KAAKA,SAAS,CAAC,EAAE;QAC3FnE,QAAQ,CAAC;UACPiB,MAAM,EAAE,iBAAiB;UACzBxjB,IAAI,EAAE;YACJ,GAAGqiB,SAAS,CAACO,SAAS;YACtB6D,MAAM,EAAE7L,EAAE;YACV8L,SAAS,EAAEkD,IAAI,GAAG,MAAM,GAAG;WAC5B;UACDpH;SACD,CAAC;;;GAGP;EAED,MAAMqH,kBAAkB,GAAG5H,mBAAmB,CAAC;IAC7C,GAAG;MACDtO,WAAW;MACXD,gBAAgB;MAChB2O,SAAS;MACT5hB,UAAU,EAAEqT,YAAY;MACxBwO,KAAK,EAAEiF,YAAY;MACnBhF,QAAQ;MACRE,eAAe;MACftjB,QAAQ;MACRqjB,aAAa;MACbE,WAAW,EAAE;QAAEoH,SAAS,EAAE,QAAQ;QAAEC,SAAS,EAAE;OAAU;MACzDpH,UAAU,EAAE;QAAEzQ,KAAK,EAAE;;;GAExB,CAAC;EAEF,MAAM8X,qBAAqB,GAAIhqB,IAAI,IAAK;IACtC,MAAM;MAAE0mB;KAAW,GAAG1mB,IAAI;IAC1BuiB,QAAQ,CAAC;MAAEiB,MAAM,EAAE,iBAAiB;MAAExjB,IAAI,EAAE;QAAE,GAAGqiB,SAAS,CAACO,SAAS;QAAE8D;;KAAa,CAAC;GACrF;EAED,MAAMuD,eAAe,GAAIC,gBAAgB,IAAK;IAC5CA,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC;IACrC3H,QAAQ,CAAC;MAAEiB,MAAM,EAAE,iBAAiB;MAAExjB,IAAI,EAAE8oB;KAA6B,CAAC;GAC3E;EAED,MAAMqB,sBAAsB,GAAG;IAAEH,qBAAqB;IAAEI,qBAAqB,EAAE/H,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEO,SAAS;IAAEqH;GAAiB;EACtH,MAAMI,wBAAwB,GAAGrF,uBAAuB,CAAC;IAAE1C,KAAK,EAAEiF,YAAY;IAAEpoB;GAAU,CAAC;EAE3F,MAAMmrB,cAAc,GAAGpqB,SAAS,IAAIinB,eAAe;EAEnD,oBACE3lB,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA,CAAC+oB,oCAAa,EAAAC,QAAA;IAEVH;KAEGf,kBAAkB,EAElBY,sBAAsB;IACzBN,kBAAkB;IAClBQ,wBAAwB;IACxBhI,SAAS;IACTqI,UAAU,EAAE,IAAI;IAChBC,kBAAkB,EAAE;IAEvB,CACE,CAAC;AAEV,CAAC;;AC/QD,MAAMg0B,UAAU,GAAGA,MAAM;EACvB,MAAM;IAAE7/C;GAAG,GAAGC,2BAAc,EAAE;EAC9B,MAAM;IAAE6b;GAAI,GAAGwD,wBAAS,EAAE;EAC1B,MAAMrK,OAAO,GAAGC,yBAAU,EAAE;EAG5B,MAAM,CAACqO,SAAS,EAAEu8B,YAAY,CAAC,GAAGxzC,cAAQ,CAAC;IACzCuY,UAAU,EAAE;MACVjP,OAAO,EAAEkG,EAAE,IAAIA,EAAE,KAAK,KAAK,GAAGA,EAAE,GAAG;KACpC;IACD4L,UAAU,EAAE;GACb,CAAC;EACF,MAAM,CAACq4B,WAAW,EAAEC,cAAc,CAAC,GAAG1zC,cAAQ,CAACwP,EAAE,IAAIA,EAAE,KAAK,KAAK,GAAGA,EAAE,GAAG,EAAE,CAAC;EAC5E,MAAM,CAACmkC,QAAQ,EAAEC,WAAW,CAAC,GAAG5zC,cAAQ,CAAC,EAAE,CAAC;EAE5C,MAAMjM,QAAQ,GAAGH,KAAK,CAACI,UAAU,CAACC,kBAAkB,EAAE;EAItD0M,eAAS,CAAC,MAAM;IAAA,IAAAqW,qBAAA;IACd,MAAM68B,cAAc,GAAG,CAAA58B,SAAS,aAATA,SAAS,wBAAAD,qBAAA,GAATC,SAAS,CAAEsB,UAAU,cAAAvB,qBAAA,uBAArBA,qBAAA,CAAuB1N,OAAO,KAAI,EAAE;IAC3D,MAAMwqC,aAAa,GAAGtkC,EAAE,IAAIA,EAAE,KAAK,KAAK,GAAGA,EAAE,GAAG,EAAE;IAClD,IAAIqkC,cAAc,KAAKC,aAAa,EAAE;MACpCN,YAAY,CAAC;QACXj7B,UAAU,EAAE;UAAEjP,OAAO,EAAEwqC;SAAe;QACtC14B,UAAU,EAAE;OACb,CAAC;MACFs4B,cAAc,CAACI,aAAa,CAAC;;GAEhC,EAAE,CAACtkC,EAAE,CAAC,CAAC;EAGR,MAAM;IAAE5a,IAAI,EAAEonB,UAAU;IAAElnB,SAAS,EAAEi/C;GAAiB,GAAGngD,KAAK,CAACmB,KAAK,CAACC,IAAI,CAACqxB,mBAAmB,CAC3F;IAAEzvB,GAAG,EAAE68C,WAAW;IAAEntB,SAAS,EAAE;GAAU,EACzCvyB,QAAQ,EACR;IACEqB,OAAO,EAAE,CAAC,CAACq+C,WAAW;IACtBO,KAAK,EAAE,KAAK;IACZjmB,OAAO,EAAGpY,GAAG,IAAK;MAChBi+B,WAAW,CAAC,CAAAj+B,GAAG,aAAHA,GAAG,uBAAHA,GAAG,CAAE6C,OAAO,KAAI9kB,CAAC,CAAC,uBAAuB,EAAE,6BAA6B,CAAC,CAAC;;GAG5F,CAAC;EAGD,MAAM;IAAEkB,IAAI,EAAEq/C,oBAAoB;IAAEn/C,SAAS,EAAEo/C;GAAqB,GAAGtgD,KAAK,CAACmB,KAAK,CAACC,IAAI,CAACinB,mBAAmB,CACzG;IAAEloB,QAAQ;IAAEyd,OAAO,EAAE;MAAE5a,GAAG,EAAE68C;;GAAe,EAC3C;IAAEr+C,OAAO,EAAE,CAAC,CAACq+C,WAAW;IAAEO,KAAK,EAAE;GACnC,CAAC;EAED,MAAMl/C,SAAS,GAAGi/C,eAAe,IAAIG,mBAAmB;EAExD,MAAMr2B,kBAAkB,GAAIjpB,IAAI,IAAK;IAAA,IAAAu/C,aAAA;IACnC,MAAM70C,GAAG,GAAG1K,IAAI,aAAJA,IAAI,wBAAAu/C,aAAA,GAAJv/C,IAAI,CAAE0U,OAAO,cAAA6qC,aAAA,uBAAbA,aAAA,CAAepgC,IAAI,EAAE;IACjC,IAAI,CAACzU,GAAG,EAAE;MACRs0C,WAAW,CAAClgD,CAAC,CAAC,uBAAuB,EAAE,gCAAgC,CAAC,CAAC;MACzE;;IAEFkgD,WAAW,CAAC,EAAE,CAAC;IACfJ,YAAY,CAAC;MACXj7B,UAAU,EAAE3jB,IAAI;MAChBwmB,UAAU,EAAE;KACb,CAAC;IACFs4B,cAAc,CAACp0C,GAAG,CAAC;IACnBqJ,OAAO,CAAC9S,IAAI,CAAC,0BAA0ByJ,GAAG,EAAE,CAAC;GAC9C;EAED,MAAMye,uBAAuB,GAAG;IAC9BzU,OAAO,EAAE;GACV;EAED,MAAM2U,iBAAiB,GAAIC,kBAAkB,IAAK;IAChDA,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC;IACjC01B,WAAW,CAAC,EAAE,CAAC;IACfJ,YAAY,CAAC;MACXj7B,UAAU,EAAE;QAAEjP,OAAO,EAAE;OAAI;MAC3B8R,UAAU,EAAE;KACb,CAAC;IACFs4B,cAAc,CAAC,EAAE,CAAC;IAClB/qC,OAAO,CAAC9S,IAAI,CAAC,4BAA4B,CAAC;GAC3C;EAED,MAAM2nB,gBAAgB,GAAG7E,iBAAW,CAClC/Y,IAAA;IAAA,IAAC;MAAE6d,WAAW;MAAE1E,eAAe;MAAEC;KAAmB,GAAApZ,IAAA;IAAA,oBAClDxJ,cAAA,CAAAC,aAAA,CAACyiB,0BAA0B;MAAO2E,WAAW;MAAE1E,eAAe;MAAEC,iBAAiB;MAAIC,UAAU,EAAC,KAAK;MAACnT,SAAS,EAAC;KAAU,CAAC;GAC5H,EACD,EACF,CAAC;EAED,MAAMqY,kBAAkB,GAAG;IACzBX,gBAAgB;IAChBK,kBAAkB;IAClBE,uBAAuB,EAAE9G,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEsB,UAAU;IAC9C6F,4BAA4B,EAAEL,uBAAuB;IACrDE,iBAAiB;IACjBnY,SAAS,EAAE;GACZ;EAED,MAAM2Y,kBAAkB,GAAG;IACzBjV,OAAO,EAAE,EAAE;IACX5U,IAAI,EAAE,EAAE;IACRO,KAAK,EAAE,EAAE;IACTD,MAAM,EAAE;GACT;EAED,MAAM+pB,wBAAwB,GAAG;IAC/BrqB,IAAI,EAAE;GACP;EAED,MAAMw/C,gBAAgB,GAAGA,MAAM;IAC7B,IAAI,CAACp4B,UAAU,EAAE,OAAO,IAAI;IAC5B,MAAMoE,aAAa,GAAG,CAAApE,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEqE,qBAAqB,MAAIrE,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEsE,iBAAiB,KAAItE,UAAU;IACtG,MAAM2V,OAAO,GAAG,CAACp9B,KAAK,CAACC,OAAO,CAAC4rB,aAAa,CAAC,GAAGA,aAAa,CAAC,CAAC,CAAC,GAAGA,aAAa,KAAK,EAAE;IACvF,MAAMI,OAAO,GAAG,CAAAmR,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEnR,OAAO,KAAImR,OAAO;IAC3C,MAAMvK,UAAU,GAAG,CAAA5G,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEnE,iBAAiB,KAAImE,OAAO,IAAI,EAAE;IAE9D,MAAM6zB,MAAM,GAAG3gD,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC;IAChC,MAAM4gD,OAAO,GAAG,CAAAL,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAE53B,iBAAiB,KAAI43B,oBAAoB,IAAI,EAAE;IACrF,MAAMM,OAAO,GAAG,CAAAN,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEtuB,cAAc,KAAI,EAAE;IAC1D,MAAM6uB,OAAO,GAAG,CAAAP,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEl3B,YAAY,KAAI,EAAE;IACxD,MAAM03B,QAAQ,GAAG,CAAAR,oBAAoB,aAApBA,oBAAoB,uBAApBA,oBAAoB,CAAEluB,YAAY,KAAI,EAAE;IAEzD,MAAM2uB,SAAS,GAAG,CAAC,CAAAttB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEnwB,UAAU,MAAImwB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAExc,UAAU,MAAI0pC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEr9C,UAAU,MAAIu9C,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEv9C,UAAU,MAAIw9C,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEx9C,UAAU,KAAI,IAAI,EAAEmH,WAAW,EAAE;IAEhK,MAAMu2C,UAAU,GAAG,CAAAvtB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEnK,YAAY,KAAI,CAACuD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE3pB,SAAS,EAAE2pB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE1pB,UAAU,EAAE0pB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEzpB,QAAQ,CAAC,CAACgI,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;IACrI,MAAM21C,QAAQ,GAAG,CAAAN,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEr3B,YAAY,KAAI,CAACq3B,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEz9C,SAAS,EAAEy9C,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEx9C,UAAU,EAAEw9C,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEv9C,QAAQ,CAAC,CAACgI,MAAM,CAACC,OAAO,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;IAEhI,MAAM41C,WAAW,GAAG,CAAAztB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAE5W,WAAW,MAAI4W,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEnvB,QAAQ,MAAImvB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAE/Y,YAAY;IAC/F,MAAMymC,SAAS,GAAG,CAAAR,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE9jC,WAAW,MAAI8jC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEr8C,QAAQ,MAAIq8C,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEjmC,YAAY,MAAIkmC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEt8C,QAAQ,MAAIs8C,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE/jC,WAAW,MAAI+jC,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAElmC,YAAY;IAE1J,MAAM0mC,UAAU,GAAG,CAAA3tB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAExuB,cAAc,MAAIwuB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEE,kBAAkB;IAC/E,MAAM0tB,QAAQ,GAAG,CAAAV,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE17C,cAAc,MAAI07C,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEhtB,kBAAkB,MAAIgtB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEv7C,WAAW,MAAIy7C,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE57C,cAAc,MAAI47C,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEltB,kBAAkB,MAAImtB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEntB,kBAAkB;IAEzL,OAAO;MACL1wB,GAAG,EAAE,CAAAwwB,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEK,OAAO,MAAIL,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAExwB,GAAG,MAAI09C,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE7sB,OAAO,MAAI6sB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAE19C,GAAG,KAAI68C,WAAW;MAC9Fx2B,YAAY,EAAG03B,UAAU,IAAIA,UAAU,KAAKN,MAAM,IAAIM,UAAU,KAAK,EAAE,GAAIA,UAAU,GAAIC,QAAQ,IAAIP,MAAO;MAC5G7jC,WAAW,EAAGqkC,WAAW,IAAIA,WAAW,KAAKR,MAAM,IAAIQ,WAAW,KAAK,EAAE,GAAIA,WAAW,GAAIC,SAAS,IAAIT,MAAO;MAChHz7C,cAAc,EAAGm8C,UAAU,IAAIA,UAAU,KAAKV,MAAM,IAAIU,UAAU,KAAK,EAAE,GAAIA,UAAU,GAAIC,QAAQ,IAAIX,MAAO;MAC9Gr9C,MAAM,EAAE09C;KACT;GACF;EAED,MAAMljC,OAAO,GAAG4iC,gBAAgB,EAAE;EAGlC,MAAMa,cAAc,GAAG,CACrB;IACE9f,KAAK,EAAE,WAAW;IAClBI,QAAQ,EAAE,CACR;MACEC,WAAW,EAAE,CAAC;MACdC,OAAO,EAAE/hC,CAAC,CAAC,qBAAqB,EAAE,uBAAuB;KAC1D;GAEJ,EACD;IACEyhC,KAAK,EAAE,cAAc;IACrBI,QAAQ,EAAE,CACR;MACEC,WAAW,EAAE,CAAC;MACdC,OAAO,EAAE/hC,CAAC,CAAC,8BAA8B,EAAE,oBAAoB;KAChE;GAEJ,EACD;IACEyhC,KAAK,EAAE,cAAc;IACrBI,QAAQ,EAAE,CACR;MACEC,WAAW,EAAE,CAAC;MACdC,OAAO,EAAE/hC,CAAC,CAAC,wBAAwB,EAAE,cAAc;KACpD;GAEJ,CACF;EAED,IAAIwhD,eAAe,GAAG,CAAC;EACvB,IAAI1jC,OAAO,EAAE;IACX,IAAIA,OAAO,CAACxa,MAAM,KAAK,UAAU,EAAE;MACjCk+C,eAAe,GAAG,CAAC;KACpB,MAAM,IAAI1jC,OAAO,CAACxa,MAAM,KAAK,UAAU,EAAE;MACxCk+C,eAAe,GAAG,CAAC;KACpB,MAAM,IAAI1jC,OAAO,CAACxa,MAAM,KAAK,0BAA0B,EAAE;MACxDk+C,eAAe,GAAG,CAAC;KACpB,MAAM;MACLA,eAAe,GAAG,CAAC;;;EAIvB,MAAMC,aAAa,GAAIn+C,MAAM,IAAK;IAChC,MAAMqI,GAAG,GAAG,eAAerI,MAAM,EAAE;IACnC,MAAMsI,GAAG,GAAG5L,CAAC,CAAC2L,GAAG,CAAC;IAClB,IAAIC,GAAG,KAAKD,GAAG,EAAE;MACf,IAAIrI,MAAM,KAAK,UAAU,EAAE,OAAO,UAAU;MAC5C,IAAIA,MAAM,KAAK,UAAU,EAAE,OAAO,UAAU;MAC5C,IAAIA,MAAM,KAAK,0BAA0B,EAAE,OAAO,0BAA0B;MAC5E,OAAOA,MAAM;;IAEf,OAAOsI,GAAG;GACX;EAED,oBACElJ,cAAA,CAAAC,aAAA,CAACD,cAAK,CAACyf,QAAQ,qBACbzf,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KACZ,CAAChR,SAAS,IAAI0c,OAAO,iBACpBpb,cAAA,CAAAC,aAAA,CAACuhC,uCAAgB;IAACrkB,MAAM,EAAE0hC,cAAe;IAACG,kBAAkB,EAAEF;GAAkB,CACjF,eACD9+C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBAEb1P,cAAA,CAAAC,aAAA,CAACqV,2BAAI;IAAC5F,SAAS,EAAC;kBACd1P,cAAA,CAAAC,aAAA,CAACg/C,iCAAU;IAACvvC,SAAS,EAAC;KACnBpS,CAAC,CAAC,iCAAiC,EAAE,yBAAyB,CACrD,CAAC,eACb0C,cAAA,CAAAC,aAAA,CAACi/C,+BAAQ;IAACxvC,SAAS,EAAC;KACjBpS,CAAC,CAAC,+BAA+B,EAAE,mFAAmF,CAC/G,CAAC,eAEX0C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA,CAAC+oB,oCAAa,EAAAC,QAAA;IAEVH,cAAc,EAAE;KACbf,kBAAkB;IACrBM,kBAAkB;IAClBQ,wBAAwB;IACxBhI,SAAS;IACTsI,kBAAkB,EAAE;IAEvB,CACE,CACD,CAAC,EAENo0B,QAAQ,iBACPv9C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KACZ6tC,QACE,CACN,EAGA7+C,SAAS,iBAAIsB,cAAA,CAAAC,aAAA,CAAC6U,6BAAM,MAAE,CAAC,EAEvB,CAACpW,SAAS,IAAI0c,OAAO,iBACpBpb,cAAA,CAAAC,aAAA,CAACqV,2BAAI;IAAC5F,SAAS,EAAC;kBAEd1P,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA,2BACED,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAC;KACbpS,CAAC,CAAC,qBAAqB,EAAE,gBAAgB,CACtC,CAAC,eACP0C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;KACZqvC,aAAa,CAAC3jC,OAAO,CAACxa,MAAM,CAC1B,CACF,CAAC,eACNZ,cAAA,CAAAC,aAAA;IAAMyP,SAAS,EAAE,qBAAqB0L,OAAO,CAACxa,MAAM,CAACiH,WAAW,EAAE;KAC/DuT,OAAO,CAACxa,MACL,CACH,CAAC,eAGNZ,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC;kBACb1P,cAAA,CAAAC,aAAA;IAAIyP,SAAS,EAAC;KACXpS,CAAC,CAAC,yBAAyB,EAAE,oBAAoB,CAChD,CAAC,eACL0C,cAAA,CAAAC,aAAA,CAACs2B,kCAAW,qBACVv2B,cAAA,CAAAC,aAAA,CAACw2B,0BAAG;IAAC/2B,KAAK,EAAEpC,CAAC,CAAC,eAAe,EAAE,UAAU,CAAE;IAACib,IAAI,EAAE6C,OAAO,CAAC5a;GAAM,CAAC,eACjER,cAAA,CAAAC,aAAA,CAACw2B,0BAAG;IAAC/2B,KAAK,EAAEpC,CAAC,CAAC,oBAAoB,EAAE,eAAe,CAAE;IAACib,IAAI,EAAE6C,OAAO,CAACyL;GAAe,CAAC,eACpF7mB,cAAA,CAAAC,aAAA,CAACw2B,0BAAG;IAAC/2B,KAAK,EAAEpC,CAAC,CAAC,gBAAgB,EAAE,eAAe,CAAE;IAACib,IAAI,EAAE6C,OAAO,CAAChB;GAAc,CAAC,eAC/Epa,cAAA,CAAAC,aAAA,CAACw2B,0BAAG;IAAC/2B,KAAK,EAAEpC,CAAC,CAAC,sBAAsB,EAAE,iBAAiB,CAAE;IAACib,IAAI,EAAE6C,OAAO,CAAC5Y;GAAiB,CAC9E,CACV,CAAC,eAGNxC,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC,4BAA4B;IAACG,KAAK,EAAE;MAAEW,SAAS,EAAE,MAAM;MAAEtB,OAAO,EAAE,MAAM;MAAE2b,cAAc,EAAE;;kBACvG7qB,cAAA,CAAAC,aAAA,CAACkY,gCAAS;IACRzY,KAAK,EAAEpC,CAAC,CAAC,uBAAuB,EAAE,kBAAkB,CAAE;IACtD6Y,QAAQ,EAAEA,MAAM5D,OAAO,CAAC9S,IAAI,CAAC,iCAAiC2b,OAAO,CAAC5a,GAAG,EAAE;GAC5E,CACE,CACD,CAEL,CACF,CACF,CACS,CAAC;AAIrB,CAAC;;AC/RD,MAAM2+C,UAAU,GAAGA,MAAM;EAAA,IAAA/hD,qBAAA,EAAAC,sBAAA;EACvB,MAAM;IAAEC;GAAG,GAAGC,2BAAc,EAAE;EAC9B,MAAM6B,QAAQ,GAAG0lB,0BAAW,EAAE;EAC9B,MAAM;IAAE2a;GAAM,GAAGG,4BAAa,EAAE;EAChC,MAAM1hC,KAAK,IAAAd,qBAAA,GAAGI,KAAK,CAACO,cAAc,CAACC,GAAG,CAAC,MAAM,CAAC,cAAAZ,qBAAA,wBAAAC,sBAAA,GAAhCD,qBAAA,CAAkCa,IAAI,cAAAZ,sBAAA,uBAAtCA,sBAAA,CAAwCa,KAAK,CAACG,GAAG,CAAEC,GAAG,IAAKA,GAAG,CAACC,IAAI,CAAC;EAGlFq7B,cAAc,CAACsb,UAAU,CAAC,iBAAiB,CAAC;EAE5C,MAAMC,qBAAqB,GAAGA,MAAM;IAClC,MAAM91C,QAAQ,GAAGD,QAAQ,CAACC,QAAQ;IAGlC,MAAM+1C,MAAM,GAAG,CACb;MAAEt3B,IAAI,EAAEtH,+BAAQ;MAAEipB,IAAI,EAAE;KAAqB,EAC7C;MAAE//B,KAAK,EAAEpC,CAAC,CAAC,kBAAkB,CAAC;MAAEmiC,IAAI,EAAE;KAA0B,CACjE;IAGD,IAAIpgC,QAAQ,CAACC,QAAQ,CAAC,aAAa,CAAC,EAAE;MACpC81C,MAAM,CAAC31C,IAAI,CAAC;QAAEC,KAAK,EAAEpC,CAAC,CAAC,iBAAiB;OAAG,CAAC;KAC7C,MAAM,IAAI+B,QAAQ,CAACC,QAAQ,CAAC,uBAAuB,CAAC,EAAE;MACrD81C,MAAM,CAAC31C,IAAI,CAAC;QAAEC,KAAK,EAAEpC,CAAC,CAAC,2BAA2B;OAAG,CAAC;KACvD,MAAM,IAAI+B,QAAQ,CAACC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;MAChD81C,MAAM,CAAC31C,IAAI,CAAC;QAAEC,KAAK,EAAEpC,CAAC,CAAC,sBAAsB;OAAG,CAAC;KAClD,MAAM,IAAI+B,QAAQ,CAACC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;MAC9C81C,MAAM,CAAC31C,IAAI,CAAC;QAAEC,KAAK,EAAEpC,CAAC,CAAC,oBAAoB;OAAG,CAAC;KAChD,MAAM,IAAI+B,QAAQ,CAACC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;MAC9C81C,MAAM,CAAC31C,IAAI,CAAC;QAAEC,KAAK,EAAEpC,CAAC,CAAC,oBAAoB;OAAG,CAAC;KAChD,MAAM,IAAI+B,QAAQ,CAACC,QAAQ,CAAC,SAAS,CAAC,EAAE;MACvC81C,MAAM,CAAC31C,IAAI,CAAC;QAAEC,KAAK,EAAEpC,CAAC,CAAC,YAAY,CAAC;QAAEmiC,IAAI,EAAE;OAAgC,CAAC;MAC7E2V,MAAM,CAAC31C,IAAI,CAAC;QAAEC,KAAK,EAAEpC,CAAC,CAAC,aAAa;OAAG,CAAC;KACzC,MAAM,IAAI+B,QAAQ,CAACC,QAAQ,CAAC,0BAA0B,CAAC,EAAE;MACxD81C,MAAM,CAAC31C,IAAI,CAAC;QAAEC,KAAK,EAAEpC,CAAC,CAAC,aAAa,CAAC;QAAEmiC,IAAI,EAAE;OAAiC,CAAC;MAC/E2V,MAAM,CAAC31C,IAAI,CAAC;QAAEC,KAAK,EAAEpC,CAAC,CAAC,uBAAuB;OAAG,CAAC;KACnD,MAAM,IAAI+B,QAAQ,CAACC,QAAQ,CAAC,QAAQ,CAAC,EAAE;MACtC81C,MAAM,CAAC31C,IAAI,CAAC;QAAEC,KAAK,EAAEpC,CAAC,CAAC,YAAY;OAAG,CAAC;KACxC,MAAM,IAAI+B,QAAQ,CAACC,QAAQ,CAAC,uBAAuB,CAAC,EAAE;MACrD81C,MAAM,CAAC31C,IAAI,CAAC;QAAEC,KAAK,EAAEpC,CAAC,CAAC,2BAA2B;OAAG,CAAC;KACvD,MAAM,IAAI+B,QAAQ,CAACC,QAAQ,CAAC,qBAAqB,CAAC,EAAE;MACnD81C,MAAM,CAAC31C,IAAI,CAAC;QAAEC,KAAK,EAAEpC,CAAC,CAAC,yBAAyB;OAAG,CAAC;KACrD,MAAM,IAAI+B,QAAQ,CAACC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;MACjD81C,MAAM,CAAC31C,IAAI,CAAC;QAAEC,KAAK,EAAEpC,CAAC,CAAC,uBAAuB,CAAC,IAAI;OAAoB,CAAC;KACzE,MAAM,IAAI+B,QAAQ,CAACC,QAAQ,CAAC,YAAY,CAAC,EAAE;MAC1C81C,MAAM,CAAC31C,IAAI,CAAC;QAAEC,KAAK,EAAEpC,CAAC,CAAC,gBAAgB;OAAG,CAAC;KAC5C,MAAM,IAAI+B,QAAQ,CAACC,QAAQ,CAAC,SAAS,CAAC,EAAE;MACvC81C,MAAM,CAAC31C,IAAI,CAAC;QAAEC,KAAK,EAAEpC,CAAC,CAAC,aAAa;OAAG,CAAC;KACzC,MAAM,IAAI+B,QAAQ,CAACC,QAAQ,CAAC,UAAU,CAAC,IAAI,oCAAoC,CAACq+B,IAAI,CAACt+B,QAAQ,CAAC,EAAE;MAC/F,MAAM+/C,WAAW,GAAG9hD,CAAC,CAAC,aAAa,CAAC;MACpC83C,MAAM,CAAC31C,IAAI,CAAC;QAAEC,KAAK,EAAE0/C,WAAW,KAAK,aAAa,IAAIA,WAAW,KAAK,QAAQ,GAAG,aAAa,GAAGA;OAAa,CAAC;;IAIjH,OAAOhK,MAAM;GACd;EAKD,oBACEp1C,cAAA,CAAAC,aAAA,CAACk2C,mCAAY,qBACXn2C,cAAA,CAAAC,aAAA;IAAKyP,SAAS,EAAC,iCAAiC;IAACG,KAAK,EAAE;MAAEwF,IAAI,EAAE;;kBAC9DrV,cAAA,CAAAC,aAAA,CAACm2C,mCAAY;IACXC,WAAW,eACTr2C,cAAA,CAAAC,aAAA,CAACD,cAAK,CAACyf,QAAQ,qBACbzf,cAAA,CAAAC,aAAA,CAACq2C,gCAAS;MAAC5mC,SAAS,EAAC;KAAQ,CAAC,EAC7BpS,CAAC,CAAC,gBAAgB,CACL,CACjB;IACDi5C,WAAW,EAAEA,MAAMp3C,MAAM,CAACoT,OAAO,CAACikC,IAAI,EAAG;IACzCC,WAAW,EAAEtB,qBAAqB;GACnC,CAAC,eAEFn1C,cAAA,CAAAC,aAAA,CAACyhC,qBAAM,qBACL1hC,cAAA,CAAAC,aAAA,CAAC0hC,oBAAK;IAACoV,KAAK;IAACtX,IAAI,EAAE,GAAGA,IAAI;kBACxBz/B,cAAA,CAAAC,aAAA,CAAC8hC,uBAAQ;IAAC73B,EAAE,EAAC;GAA+B,CACvC,CAAC,eACRlK,cAAA,CAAAC,aAAA,CAACy2C,mCAAY;IACXjX,IAAI,EAAE,GAAGA,IAAI,QAAS;IACtB3G,SAAS,EAAEA,mBACT94B,cAAA,CAAAC,aAAA,CAAC02C,oCAAa;MAACC,WAAW,EAAC;oBACzB52C,cAAA,CAAAC,aAAA,CAAC0kB,OAAK,MAAE,CACK;GAElB,CAAC,eACF3kB,cAAA,CAAAC,aAAA,CAACy2C,mCAAY;IACXjX,IAAI,EAAE,GAAGA,IAAI,uBAAwB;IACrC3G,SAAS,EAAEA,mBACT94B,cAAA,CAAAC,aAAA,CAAC02C,oCAAa;MAACC,WAAW,EAAC;oBACzB52C,cAAA,CAAAC,aAAA,CAACs5B,mBAAmB,MAAE,CACT;GAElB,CAAC,eAWFv5B,cAAA,CAAAC,aAAA,CAACy2C,mCAAY;IACXjX,IAAI,EAAE,GAAGA,IAAI,gBAAiB;IAC9B3G,SAAS,EAAEA,mBACT94B,cAAA,CAAAC,aAAA,CAAC02C,oCAAa;MAACC,WAAW,EAAC;oBACzB52C,cAAA,CAAAC,aAAA,CAACw3C,YAAY,MAAE,CACF;GAElB,CAAC,eAEFz3C,cAAA,CAAAC,aAAA,CAACy2C,mCAAY;IACXjX,IAAI,EAAE,GAAGA,IAAI,gBAAiB;IAC9B3G,SAAS,EAAEA,mBACT94B,cAAA,CAAAC,aAAA,CAAC02C,oCAAa;MAACC,WAAW,EAAC;oBACzB52C,cAAA,CAAAC,aAAA,CAACg6C,YAAY,MAAE,CACF;GAElB,CAAC,eAEFj6C,cAAA,CAAAC,aAAA,CAACy2C,mCAAY;IACXjX,IAAI,EAAE,GAAGA,IAAI,SAAU;IACvB3G,SAAS,EAAEA,mBACT94B,cAAA,CAAAC,aAAA,CAAC02C,oCAAa;MAACC,WAAW,EAAC;oBACzB52C,cAAA,CAAAC,aAAA,CAAC4rB,MAAM,MAAE,CACI;GAElB,CAAC,eACF7rB,cAAA,CAAAC,aAAA,CAACy2C,mCAAY;IACXjX,IAAI,EAAE,GAAGA,IAAI,SAAU;IACvBsX,KAAK;IACLje,SAAS,EAAEA,mBACT94B,cAAA,CAAAC,aAAA,CAAC02C,oCAAa;MAACC,WAAW,EAAC;oBACzB52C,cAAA,CAAAC,aAAA,CAAC8zC,UAAU,MAAE,CACA;GAElB,CAAC,eACF/zC,cAAA,CAAAC,aAAA,CAACy2C,mCAAY;IACXjX,IAAI,EAAE,GAAGA,IAAI,8BAA+B;IAC5CsX,KAAK;IACLje,SAAS,EAAEA,mBACT94B,cAAA,CAAAC,aAAA,CAAC02C,oCAAa;MAACC,WAAW,EAAC;oBACzB52C,cAAA,CAAAC,aAAA,CAACovC,mBAAmB,MAAE,CACT;GAElB,CAAC,eACFrvC,cAAA,CAAAC,aAAA,CAACy2C,mCAAY;IACXjX,IAAI,EAAE,GAAGA,IAAI,wBAAyB;IACtC3G,SAAS,EAAEA,mBACT94B,cAAA,CAAAC,aAAA,CAAC02C,oCAAa;MAACC,WAAW,EAAC;oBACzB52C,cAAA,CAAAC,aAAA,CAAC4rB,MAAM,MAAE,CACI;GAElB,CAAC,eACF7rB,cAAA,CAAAC,aAAA,CAACy2C,mCAAY;IACXjX,IAAI,EAAE,CAAC,GAAGA,IAAI,6BAA6B,EAAE,GAAGA,IAAI,mBAAmB,CAAE;IACzE3G,SAAS,EAAEA,mBACT94B,cAAA,CAAAC,aAAA,CAAC02C,oCAAa;MAACC,WAAW,EAAC;oBACzB52C,cAAA,CAAAC,aAAA,CAACsc,iBAAiB,MAAE,CACP;GAElB,CAAC,eACFvc,cAAA,CAAAC,aAAA,CAACy2C,mCAAY;IACXjX,IAAI,EAAE,GAAGA,IAAI,2BAA4B;IACzC3G,SAAS,EAAEA,mBACT94B,cAAA,CAAAC,aAAA,CAAC02C,oCAAa;MAACC,WAAW,EAAC;oBACzB52C,cAAA,CAAAC,aAAA,CAACuiC,qBAAqB,MAAE,CACX;GAElB,CAAC,eACFxiC,cAAA,CAAAC,aAAA,CAACy2C,mCAAY;IACXjX,IAAI,EAAE,GAAGA,IAAI,uBAAwB;IACrC3G,SAAS,EAAEA,mBACT94B,cAAA,CAAAC,aAAA,CAAC02C,oCAAa;MAACC,WAAW,EAAC;oBACzB52C,cAAA,CAAAC,aAAA,CAACuiC,qBAAqB,MAAE,CACX;GAElB,CAAC,eACFxiC,cAAA,CAAAC,aAAA,CAACy2C,mCAAY;IACXjX,IAAI,EAAE,GAAGA,IAAI,yBAA0B;IACvC3G,SAAS,EAAEA,mBACT94B,cAAA,CAAAC,aAAA,CAAC02C,oCAAa;MAACC,WAAW,EAAE14C,KAAK,CAACoB,QAAQ,CAAC,iBAAiB,CAAC,GAAG,QAAQ,GAAG;oBACzEU,cAAA,CAAAC,aAAA,CAACovC,mBAAmB,MAAE,CACT;GAElB,CAAC,eACFrvC,cAAA,CAAAC,aAAA,CAACy2C,mCAAY;IACXjX,IAAI,EAAE,GAAGA,IAAI,qBAAsB;IACnC3G,SAAS,EAAEA,mBACT94B,cAAA,CAAAC,aAAA,CAAC02C,oCAAa;MAACC,WAAW,EAAC;oBACzB52C,cAAA,CAAAC,aAAA,CAACovC,mBAAmB,MAAE,CACT;GAElB,CAAC,eACFrvC,cAAA,CAAAC,aAAA,CAACy2C,mCAAY;IACXjX,IAAI,EAAE,GAAGA,IAAI,MAAO;IACpB3G,SAAS,EAAEA,mBACT94B,cAAA,CAAAC,aAAA,CAAC02C,oCAAa;MAACC,WAAW,EAAC;oBACzB52C,cAAA,CAAAC,aAAA,CAACk9C,UAAU,MAAE,CACA;GAElB,CACK,CACL,CACO,CAAC;AAEnB,CAAC;;MC/MYkC,UAAU,GAAG71C,IAAA,IAAsC;EAAA,IAArC;IAAE81C,SAAS;IAAE35C,QAAQ;IAAE45C;GAAS,GAAA/1C,IAAA;EACzD,MAAM;IAAEi2B,IAAI;IAAE+f;GAAK,GAAG5f,4BAAa,EAAE;EACrC,MAAM3qB,UAAU,GAAG,MAAM;EACzB,MAAMwqC,QAAQ,GAAGjiD,KAAK,CAACkiD,SAAS,CAACC,kBAAkB,EAAE;EACrD,MAAM;IAAEjhD;GAAW,GAAGlB,KAAK,CAACoiD,QAAQ,CAACC,QAAQ,CAAC;IAAEP,SAAS;IAAErqC,UAAU;IAAEwqC;GAAU,CAAC;EAElFjiD,KAAK,CAACO,cAAc,CAACmqB,GAAG,CAAC,cAAc,EAAEq3B,OAAO,CAAC;EAEjDh1C,eAAS,CACP,MACE/M,KAAK,CAACsiD,mBAAmB,CAACC,SAAS,CAAC;IAClCC,OAAO,EAAE,CAAC,aAAaxiD,KAAK,CAACI,UAAU,CAACC,kBAAkB,EAAE,EAAE,CAAC;IAC/DoiD,MAAM,EAAEziD,KAAK,CAACkiD,SAAS,CAACC,kBAAkB,EAAE;IAC5ChiD,QAAQ,EAAEH,KAAK,CAACI,UAAU,CAACC,kBAAkB;GAC9C,CAAC,EACJ,EACF,CAAC;EAED,IAAIa,SAAS,EAAE;IACb,oBAAOsB,cAAA,CAAAC,aAAA,CAAC6U,6BAAM;MAACorC,IAAI,EAAE;KAAO,CAAC;;EAG/B,IAAIv6C,QAAQ,KAAK,UAAU,EAAE;IAC3B,oBAAO3F,cAAA,CAAAC,aAAA,CAACg1C,WAAW;MAACxV,IAAI,EAAEA,IAAK;MAAC+f,GAAG,EAAEA,GAAI;MAAC75C,QAAQ,EAAEA,QAAS;MAAC45C,OAAO,EAAEA;KAAU,CAAC;GACnF,MAAM,oBAAOv/C,cAAA,CAAAC,aAAA,CAACk/C,UAAU,MAAE,CAAC;AAC9B,CAAC;AAED,MAAagB,SAAS,GAAG9vC,KAAA,IAA6B;EAAA,IAAAjT,qBAAA,EAAAC,sBAAA;EACpD,MAAM;IAAEC;GAAG,GAAGC,2BAAc,EAAE;EAC9B,MAAMuC,kBAAkB,GAAG;IACzBN,KAAK,EAAE;GACR;EACD,MAAM1B,WAAW,IAAAV,qBAAA,GAAGI,KAAK,CAACO,cAAc,CAACC,GAAG,CAAC,MAAM,CAAC,cAAAZ,qBAAA,wBAAAC,sBAAA,GAAhCD,qBAAA,CAAkCa,IAAI,cAAAZ,sBAAA,uBAAtCA,sBAAA,CAAwCa,KAAK;EACjE,MAAMA,KAAK,GAAGC,KAAK,CAACC,OAAO,CAACN,WAAW,CAAC,GAAGA,WAAW,CAACO,GAAG,CAAEC,GAAG,IAAKA,GAAG,CAACC,IAAI,CAAC,GAAG,EAAE;EAElF,IAAIL,KAAK,CAACoB,QAAQ,CAAC,eAAe,CAAC,EAAE;IACnCQ,kBAAkB,CAACN,KAAK,CAACC,IAAI,CAAC;MAC5BC,KAAK,EAAEpC,CAAC,CAAC,oBAAoB,CAAC;MAC9BqC,IAAI,EAAE;KACP,CAAC;;EAGJ,IAAIzB,KAAK,CAACoB,QAAQ,CAAC,iBAAiB,CAAC,IAAIpB,KAAK,CAACoB,QAAQ,CAAC,aAAa,CAAC,EAAE;IACtEQ,kBAAkB,CAACN,KAAK,CAACC,IAAI,CAAC;MAC5BC,KAAK,EAAEpC,CAAC,CAAC,YAAY,CAAC;MACtBqC,IAAI,EAAE;KACP,CAAC;;EAGJ,IAAIzB,KAAK,CAACoB,QAAQ,CAAC,iBAAiB,CAAC,EAAE;IACrCQ,kBAAkB,CAACN,KAAK,CAACC,IAAI,CAC3B;MACEC,KAAK,EAAEpC,CAAC,CAAC,2BAA2B,CAAC;MACrCqC,IAAI,EAAE;KACP,EACD;MACED,KAAK,EAAEpC,CAAC,CAAC,aAAa,CAAC;MACvBqC,IAAI,EAAE;KAEV,CAAC;;EAGH,IAAIzB,KAAK,CAACoB,QAAQ,CAAC,aAAa,CAAC,EAAE;IACjCQ,kBAAkB,CAACN,KAAK,CAACC,IAAI,CAAC;MAC5BC,KAAK,EAAEpC,CAAC,CAAC,uBAAuB,CAAC;MACjCqC,IAAI,EAAE;KACP,CAAC;;EAGJ,IAAIzB,KAAK,CAACoB,QAAQ,CAAC,iBAAiB,CAAC,IAAIpB,KAAK,CAACoB,QAAQ,CAAC,aAAa,CAAC,EAAE;IACtEQ,kBAAkB,CAACN,KAAK,CAACC,IAAI,CAAC;MAC5BC,KAAK,EAAEpC,CAAC,CAAC,yBAAyB,CAAC;MACnCqC,IAAI,EAAE;KACP,CAAC;;EAGJ,IAAIzB,KAAK,CAAC2B,MAAM,KAAK,CAAC,IAAI3B,KAAK,CAACoB,QAAQ,CAAC,SAAS,CAAC,EAAE;IACnDQ,kBAAkB,CAACN,KAAK,CAACC,IAAI,CAAC;MAC5BC,KAAK,EAAEpC,CAAC,CAAC,aAAa,CAAC;MACvBqC,IAAI,EAAE;KACP,CAAC;;EAGJ,MAAMygD,cAAc,GAAGtgD,kBAAkB,CAACN,KAAK,CAACnB,GAAG,CAAEgiD,CAAC,KAAM;IAC1Dr8B,OAAO,EAAEq8B,CAAC,CAAC3gD,KAAK;IAChBC,IAAI,EAAE0gD,CAAC,CAAC1gD,IAAI;IACZC,KAAK,EAAEygD,CAAC,CAACzgD;GACV,CAAC,CAAC;EAEH,oBACEI,cAAA,CAAAC,aAAA,CAACqgD,sCAAe;IACdrhB,MAAM,EAAE3hC,CAAC,CAAC,kBAAkB,CAAE;IAC9BkC,KAAK,EAAE4gD,cAAe;IACtBrgD,IAAI,EAAEA,mBAAMC,cAAA,CAAAC,aAAA,CAACsgD,mCAAY;MAAC7wC,SAAS,EAAC;KAA0B;GAC/D,CAAC;AAEN,CAAC;AAED,MAAM8wC,oBAAoB,GAAG;EAC3BC,UAAU,EAAEpB,UAAU;EACtBliD,QAAQ;EACRujD,SAAS,EAAE/7B,SAAK;EAChBg8B,gBAAgB,EAAEnvC,YAAY;EAC9BovC,eAAe,EAAE9oC,WAAW;EAC5B+oC,iBAAiB,EAAGjvC,KAAK,iBAAK5R,cAAA,CAAAC,aAAA,CAACyY,MAAM,EAAK9G,KAAQ,CAAC;EACnDuuC,SAAS;EACT5mB,mBAAmB;EACnBke,YAAY;EACZwC;AACF,CAAC;AAED,MAAa6G,kBAAkB,GAAGA,MAAM;EACtCh4C,MAAM,CAACi4C,OAAO,CAACP,oBAAoB,CAAC,CAACx3C,OAAO,CAAC8K,KAAA,IAAkB;IAAA,IAAjB,CAAC7K,GAAG,EAAEsG,KAAK,CAAC,GAAAuE,KAAA;IACxDtW,KAAK,CAACkV,wBAAwB,CAACsuC,YAAY,CAAC/3C,GAAG,EAAEsG,KAAK,CAAC;GACxD,CAAC;AACJ,CAAC;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/components/EKYCCard.js","../../../../node_modules/babel-plugin-transform-async-to-promises/helpers.mjs","../src/utils/ekycExcelData.js","../src/components/StatusCards.js","../src/components/Dashboard.js","../src/components/DesktopInbox.js","../src/components/SearchConsumer.js","../src/components/MobileInbox.js","../src/components/Filter.js","../src/components/EkycFilterModal.js","../src/components/VendorDetailsCard.js","../src/hook/useInboxTableConfig.js","../src/components/SearchFormFieldsComponent.js","../src/hook/useInboxMobileCardsData.js","../src/pages/employee/Inbox.js","../src/components/Review.js","../src/config/AadhaarVerificationConfig.js","../src/components/AadhaarVerification.js","../src/config/config.js","../src/pages/employee/EKYCForm.js","../src/components/AdminDashboard.js","../src/components/SupervisorDetailsCard.js","../src/components/AssignEkycModal.js","../src/components/SurveyorDetailsCard.js","../src/pages/employee/WorkOrder.js","../../vendor/src/config/tableConfig.js","../src/hook/SupervisorInboxTableConfig.js","../src/components/AssignEkyc.js","../src/config/Routes.js","../src/pages/employee/index.js","../src/config/PropertyInfoConfig.js","../src/components/PropertyInfo.js","../src/config/MeterDetailsConfig.js","../src/components/MeterDetails.js","../src/pages/citizen/Inbox.js","../src/pages/citizen/EkycStatus.js","../src/pages/citizen/index.js","../src/Module.js"],"sourcesContent":["import { PersonIcon, EmployeeModuleCard } from \"@djb25/digit-ui-react-components\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\n\nconst EKYCCard = () => {\n const { t } = useTranslation();\n if (!Digit.Utils.ekycAccess()) {\n return null;\n }\n const tenantId = Digit.ULBService.getCurrentTenantId();\n const citizenInfo = Digit.SessionStorage.get(\"User\")?.info?.roles;\n const roles = Array.isArray(citizenInfo) ? citizenInfo.map((ele) => ele.code || ele) : [];\n\n const { data: listData, isLoading } = Digit.Hooks.ekyc.useEkycApplicationList({}, { tenantId, offset: 0, limit: 1 }, { enabled: !!tenantId });\n\n const totalCount = isLoading ? \"-\" : listData?.totalCount || 0;\n\n const isCitizen = window.location.pathname.includes(\"/citizen\");\n const prefix = isCitizen ? \"/digit-ui/citizen/ekyc\" : \"/digit-ui/employee/ekyc\";\n\n let links = [];\n if (isCitizen) {\n if (roles.includes(\"EKYC_SURVEYOR\")) {\n links.push({\n label: t(\"SURVEYOR_DASHBOARD\"),\n link: `${prefix}/surveyor-dashboard`,\n });\n }\n if (roles.includes(\"EKYC_SUPERVISOR\") || roles.includes(\"EKYC_VENDOR\")) {\n links.push({\n count: totalCount,\n label: t(\"EKYC_INBOX\"),\n link: `${prefix}/inbox`,\n });\n }\n if (roles.includes(\"EKYC_SUPERVISOR\")) {\n links.push(\n {\n label: t(\"EKYC_SUPERVISOR_DASHBOARD\"),\n link: `${prefix}/supervisor-dashboard`,\n },\n {\n label: t(\"EKYC_ASSIGN\"),\n link: `${prefix}/assign`,\n }\n );\n }\n if (roles.includes(\"EKYC_VENDOR\")) {\n links.push({\n label: t(\"EKYC_VENDOR_DASHBOARD\"),\n link: `${prefix}/vendor-dashboard`,\n });\n }\n if (roles.includes(\"EKYC_SUPERVISOR\") || roles.includes(\"EKYC_VENDOR\")) {\n links.push({\n label: t(\"TITLE_VENDOR_MANAGEMENT\"),\n link: `/digit-ui/citizen/vendor/search-vendor`,\n });\n }\n if (links.length === 0 || (roles.length === 1 && roles.includes(\"CITIZEN\"))) {\n links.push({\n label: t(\"EKYC_STATUS\"),\n link: `${prefix}/:id`,\n });\n }\n } else {\n // Employee links\n links = [\n // {\n // label: t(\"CEO_M.F_DOR_FINANCE_VIEW\"),\n // link: `${prefix}/ceo-dashboard`,\n // },\n {\n label: t(\"EKYC_ADMIN_DASHBOARD\") || \"Admin Dashboard\",\n link: `${prefix}/admin-dashboard`,\n },\n {\n count: totalCount,\n label: t(\"EKYC_INBOX\"),\n link: `${prefix}/inbox`,\n },\n {\n label: t(\"EKYC_WORK_ORDER\"),\n link: `${prefix}/work-order`,\n },\n ...(!roles.includes(\"EMPLOYEE\")\n ? [\n {\n label: t(\"EKYC_ASSIGN\"),\n link: `${prefix}/assign`,\n },\n ]\n : []),\n ];\n }\n\n const propsForModuleCard = {\n Icon: <PersonIcon />,\n moduleName: t(\"ACTION_TEST_EKYC\"),\n kpis: isCitizen\n ? []\n : [\n {\n count: totalCount,\n label: t(\"TOTAL_EKYC\"),\n link: `${prefix}/admin-dashboard`,\n },\n ],\n links: links,\n };\n\n return <EmployeeModuleCard {...propsForModuleCard} />;\n};\n\nexport default EKYCCard;\n","// A type of promise-like that resolves synchronously and supports only one observer\nexport const _Pact = /*#__PURE__*/(function() {\n\tfunction _Pact() {}\n\t_Pact.prototype.then = function(onFulfilled, onRejected) {\n\t\tconst result = new _Pact();\n\t\tconst state = this.s;\n\t\tif (state) {\n\t\t\tconst callback = state & 1 ? onFulfilled : onRejected;\n\t\t\tif (callback) {\n\t\t\t\ttry {\n\t\t\t\t\t_settle(result, 1, callback(this.v));\n\t\t\t\t} catch (e) {\n\t\t\t\t\t_settle(result, 2, e);\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn this;\n\t\t\t}\n\t\t}\n\t\tthis.o = function(_this) {\n\t\t\ttry {\n\t\t\t\tconst value = _this.v;\n\t\t\t\tif (_this.s & 1) {\n\t\t\t\t\t_settle(result, 1, onFulfilled ? onFulfilled(value) : value);\n\t\t\t\t} else if (onRejected) {\n\t\t\t\t\t_settle(result, 1, onRejected(value));\n\t\t\t\t} else {\n\t\t\t\t\t_settle(result, 2, value);\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(result, 2, e);\n\t\t\t}\n\t\t};\n\t\treturn result;\n\t}\n\treturn _Pact;\n})();\n\n// Settles a pact synchronously\nexport function _settle(pact, state, value) {\n\tif (!pact.s) {\n\t\tif (value instanceof _Pact) {\n\t\t\tif (value.s) {\n\t\t\t\tif (state & 1) {\n\t\t\t\t\tstate = value.s;\n\t\t\t\t}\n\t\t\t\tvalue = value.v;\n\t\t\t} else {\n\t\t\t\tvalue.o = _settle.bind(null, pact, state);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tif (value && value.then) {\n\t\t\tvalue.then(_settle.bind(null, pact, state), _settle.bind(null, pact, 2));\n\t\t\treturn;\n\t\t}\n\t\tpact.s = state;\n\t\tpact.v = value;\n\t\tconst observer = pact.o;\n\t\tif (observer) {\n\t\t\tobserver(pact);\n\t\t}\n\t}\n}\n\nexport function _isSettledPact(thenable) {\n\treturn thenable instanceof _Pact && thenable.s & 1;\n}\n\n// Converts argument to a function that always returns a Promise\nexport function _async(f) {\n\treturn function() {\n\t\tfor (var args = [], i = 0; i < arguments.length; i++) {\n\t\t\targs[i] = arguments[i];\n\t\t}\n\t\ttry {\n\t\t\treturn Promise.resolve(f.apply(this, args));\n\t\t} catch(e) {\n\t\t\treturn Promise.reject(e);\n\t\t}\n\t}\n}\n\n// Awaits on a value that may or may not be a Promise (equivalent to the await keyword in ES2015, with continuations passed explicitly)\nexport function _await(value, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(value) : value;\n\t}\n\tif (!value || !value.then) {\n\t\tvalue = Promise.resolve(value);\n\t}\n\treturn then ? value.then(then) : value;\n}\n\n// Awaits on a value that may or may not be a Promise, then ignores it\nexport function _awaitIgnored(value, direct) {\n\tif (!direct) {\n\t\treturn value && value.then ? value.then(_empty) : Promise.resolve();\n\t}\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continue(value, then) {\n\treturn value && value.then ? value.then(then) : then(value);\n}\n\n// Proceeds after a value has resolved, or proceeds immediately if the value is not thenable\nexport function _continueIgnored(value) {\n\tif (value && value.then) {\n\t\treturn value.then(_empty);\n\t}\n}\n\n// Asynchronously iterate through an object that has a length property, passing the index as the first argument to the callback (even as the length property changes)\nexport function _forTo(array, body, check) {\n\tvar i = -1, pact, reject;\n\tfunction _cycle(result) {\n\t\ttry {\n\t\t\twhile (++i < array.length && (!check || !check())) {\n\t\t\t\tresult = body(i);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (pact) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t} else {\n\t\t\t\tpact = result;\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t}\n\t}\n\t_cycle();\n\treturn pact;\n}\n\n// Asynchronously iterate through an object's properties (including properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forIn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tkeys.push(key);\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\n// Asynchronously iterate through an object's own properties (excluding properties inherited from the prototype)\n// Uses a snapshot of the object's properties\nexport function _forOwn(target, body, check) {\n\tvar keys = [];\n\tfor (var key in target) {\n\t\tif (Object.prototype.hasOwnProperty.call(target, key)) {\n\t\t\tkeys.push(key);\n\t\t}\n\t}\n\treturn _forTo(keys, function(i) { return body(keys[i]); }, check);\n}\n\nexport const _iteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.iterator || (Symbol.iterator = Symbol(\"Symbol.iterator\"))) : \"@@iterator\";\n\n// Asynchronously iterate through an object's values\n// Uses for...of if the runtime supports it, otherwise iterates until length on a copy\nexport function _forOf(target, body, check) {\n\tif (typeof target[_iteratorSymbol] === \"function\") {\n\t\tvar iterator = target[_iteratorSymbol](), step, pact, reject;\n\t\tfunction _cycle(result) {\n\t\t\ttry {\n\t\t\t\twhile (!(step = iterator.next()).done && (!check || !check())) {\n\t\t\t\t\tresult = body(step.value);\n\t\t\t\t\tif (result && result.then) {\n\t\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tresult.then(_cycle, reject || (reject = _settle.bind(null, pact = new _Pact(), 2)));\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (pact) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t} else {\n\t\t\t\t\tpact = result;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\t_settle(pact || (pact = new _Pact()), 2, e);\n\t\t\t}\n\t\t}\n\t\t_cycle();\n\t\tif (iterator.return) {\n\t\t\tvar _fixup = function(value) {\n\t\t\t\ttry {\n\t\t\t\t\tif (!step.done) {\n\t\t\t\t\t\titerator.return();\n\t\t\t\t\t}\n\t\t\t\t} catch(e) {\n\t\t\t\t}\n\t\t\t\treturn value;\n\t\t\t}\n\t\t\tif (pact && pact.then) {\n\t\t\t\treturn pact.then(_fixup, function(e) {\n\t\t\t\t\tthrow _fixup(e);\n\t\t\t\t});\n\t\t\t}\n\t\t\t_fixup();\n\t\t}\n\t\treturn pact;\n\t}\n\t// No support for Symbol.iterator\n\tif (!(\"length\" in target)) {\n\t\tthrow new TypeError(\"Object is not iterable\");\n\t}\n\t// Handle live collections properly\n\tvar values = [];\n\tfor (var i = 0; i < target.length; i++) {\n\t\tvalues.push(target[i]);\n\t}\n\treturn _forTo(values, function(i) { return body(values[i]); }, check);\n}\n\nexport const _asyncIteratorSymbol = /*#__PURE__*/ typeof Symbol !== \"undefined\" ? (Symbol.asyncIterator || (Symbol.asyncIterator = Symbol(\"Symbol.asyncIterator\"))) : \"@@asyncIterator\";\n\n// Asynchronously iterate on a value using it's async iterator if present, or its synchronous iterator if missing\nexport function _forAwaitOf(target, body, check) {\n\tif (typeof target[_asyncIteratorSymbol] === \"function\") {\n\t\tvar pact = new _Pact();\n\t\tvar iterator = target[_asyncIteratorSymbol]();\n\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\treturn pact;\n\t\tfunction _resumeAfterBody(result) {\n\t\t\tif (check && check()) {\n\t\t\t\treturn _settle(pact, 1, iterator.return ? iterator.return().then(function() { return result; }) : result);\n\t\t\t}\n\t\t\titerator.next().then(_resumeAfterNext).then(void 0, _reject);\n\t\t}\n\t\tfunction _resumeAfterNext(step) {\n\t\t\tif (step.done) {\n\t\t\t\t_settle(pact, 1);\n\t\t\t} else {\n\t\t\t\tPromise.resolve(body(step.value)).then(_resumeAfterBody).then(void 0, _reject);\n\t\t\t}\n\t\t}\n\t\tfunction _reject(error) {\n\t\t\t_settle(pact, 2, iterator.return ? iterator.return().then(function() { return error; }) : error);\n\t\t}\n\t}\n\treturn Promise.resolve(_forOf(target, function(value) { return Promise.resolve(value).then(body); }, check));\n}\n\n// Asynchronously implement a generic for loop\nexport function _for(test, update, body) {\n\tvar stage;\n\tfor (;;) {\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t\tif (shouldContinue.then) {\n\t\t\tstage = 0;\n\t\t\tbreak;\n\t\t}\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.s;\n\t\t\t} else {\n\t\t\t\tstage = 1;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tif (update) {\n\t\t\tvar updateValue = update();\n\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\tstage = 2;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tvar pact = new _Pact();\n\tvar reject = _settle.bind(null, pact, 2);\n\t(stage === 0 ? shouldContinue.then(_resumeAfterTest) : stage === 1 ? result.then(_resumeAfterBody) : updateValue.then(_resumeAfterUpdate)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tdo {\n\t\t\tif (update) {\n\t\t\t\tupdateValue = update();\n\t\t\t\tif (updateValue && updateValue.then && !_isSettledPact(updateValue)) {\n\t\t\t\t\tupdateValue.then(_resumeAfterUpdate).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tshouldContinue = test();\n\t\t\tif (!shouldContinue || (_isSettledPact(shouldContinue) && !shouldContinue.v)) {\n\t\t\t\t_settle(pact, 1, result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t}\n\t\t} while (!result || !result.then);\n\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterBody(result);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n\tfunction _resumeAfterUpdate() {\n\t\tif (shouldContinue = test()) {\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t} else {\n\t\t\t\t_resumeAfterTest(shouldContinue);\n\t\t\t}\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a do ... while loop\nexport function _do(body, test) {\n\tvar awaitBody;\n\tdo {\n\t\tvar result = body();\n\t\tif (result && result.then) {\n\t\t\tif (_isSettledPact(result)) {\n\t\t\t\tresult = result.v;\n\t\t\t} else {\n\t\t\t\tawaitBody = true;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tvar shouldContinue = test();\n\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\tshouldContinue = shouldContinue.v;\n\t\t}\n\t\tif (!shouldContinue) {\n\t\t\treturn result;\n\t\t}\n\t} while (!shouldContinue.then);\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : shouldContinue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterBody(value) {\n\t\tresult = value;\n\t\tfor (;;) {\n\t\t\tshouldContinue = test();\n\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t}\n\t\t\tif (!shouldContinue) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (shouldContinue.then) {\n\t\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\tresult = result.v;\n\t\t\t\t} else {\n\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterTest(shouldContinue) {\n\t\tif (shouldContinue) {\n\t\t\tdo {\n\t\t\t\tresult = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tif (_isSettledPact(result)) {\n\t\t\t\t\t\tresult = result.v;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tshouldContinue = test();\n\t\t\t\tif (_isSettledPact(shouldContinue)) {\n\t\t\t\t\tshouldContinue = shouldContinue.v;\n\t\t\t\t}\n\t\t\t\tif (!shouldContinue) {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} while (!shouldContinue.then);\n\t\t\tshouldContinue.then(_resumeAfterTest).then(void 0, reject);\n\t\t} else {\n\t\t\t_settle(pact, 1, result);\n\t\t}\n\t}\n}\n\n// Asynchronously implement a switch statement\nexport function _switch(discriminant, cases) {\n\tvar dispatchIndex = -1;\n\tvar awaitBody;\n\touter: {\n\t\tfor (var i = 0; i < cases.length; i++) {\n\t\t\tvar test = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvar testValue = test();\n\t\t\t\tif (testValue && testValue.then) {\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tif (testValue === discriminant) {\n\t\t\t\t\tdispatchIndex = i;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Found the default case, set it as the pending dispatch case\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tif (dispatchIndex !== -1) {\n\t\t\tdo {\n\t\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\t\twhile (!body) {\n\t\t\t\t\tdispatchIndex++;\n\t\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t\t}\n\t\t\t\tvar result = body();\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tawaitBody = true;\n\t\t\t\t\tbreak outer;\n\t\t\t\t}\n\t\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\t\tdispatchIndex++;\n\t\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t\treturn result;\n\t\t}\n\t}\n\tconst pact = new _Pact();\n\tconst reject = _settle.bind(null, pact, 2);\n\t(awaitBody ? result.then(_resumeAfterBody) : testValue.then(_resumeAfterTest)).then(void 0, reject);\n\treturn pact;\n\tfunction _resumeAfterTest(value) {\n\t\tfor (;;) {\n\t\t\tif (value === discriminant) {\n\t\t\t\tdispatchIndex = i;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif (++i === cases.length) {\n\t\t\t\tif (dispatchIndex !== -1) {\n\t\t\t\t\tbreak;\n\t\t\t\t} else {\n\t\t\t\t\t_settle(pact, 1, result);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttest = cases[i][0];\n\t\t\tif (test) {\n\t\t\t\tvalue = test();\n\t\t\t\tif (value && value.then) {\n\t\t\t\t\tvalue.then(_resumeAfterTest).then(void 0, reject);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdispatchIndex = i;\n\t\t\t}\n\t\t}\n\t\tdo {\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tvar result = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tdispatchIndex++;\n\t\t} while (fallthroughCheck && !fallthroughCheck());\n\t\t_settle(pact, 1, result);\n\t}\n\tfunction _resumeAfterBody(result) {\n\t\tfor (;;) {\n\t\t\tvar fallthroughCheck = cases[dispatchIndex][2];\n\t\t\tif (!fallthroughCheck || fallthroughCheck()) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdispatchIndex++;\n\t\t\tvar body = cases[dispatchIndex][1];\n\t\t\twhile (!body) {\n\t\t\t\tdispatchIndex++;\n\t\t\t\tbody = cases[dispatchIndex][1];\n\t\t\t}\n\t\t\tresult = body();\n\t\t\tif (result && result.then) {\n\t\t\t\tresult.then(_resumeAfterBody).then(void 0, reject);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t_settle(pact, 1, result);\n\t}\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _call(body, then, direct) {\n\tif (direct) {\n\t\treturn then ? then(body()) : body();\n\t}\n\ttry {\n\t\tvar result = Promise.resolve(body());\n\t\treturn then ? result.then(then) : result;\n\t} catch (e) {\n\t\treturn Promise.reject(e);\n\t}\n}\n\n// Asynchronously call a function and swallow the result\nexport function _callIgnored(body, direct) {\n\treturn _call(body, _empty, direct);\n}\n\n// Asynchronously call a function and pass the result to explicitly passed continuations\nexport function _invoke(body, then) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(then);\n\t}\n\treturn then(result);\n}\n\n// Asynchronously call a function and swallow the result\nexport function _invokeIgnored(body) {\n\tvar result = body();\n\tif (result && result.then) {\n\t\treturn result.then(_empty);\n\t}\n}\n\n// Asynchronously call a function and send errors to recovery continuation\nexport function _catch(body, recover) {\n\ttry {\n\t\tvar result = body();\n\t} catch(e) {\n\t\treturn recover(e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(void 0, recover);\n\t}\n\treturn result;\n}\n\n// Asynchronously await a promise and pass the result to a finally continuation\nexport function _finallyRethrows(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer(true, e);\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer.bind(null, false), finalizer.bind(null, true));\n\t}\n\treturn finalizer(false, result);\n}\n\n// Asynchronously await a promise and invoke a finally continuation that always overrides the result\nexport function _finally(body, finalizer) {\n\ttry {\n\t\tvar result = body();\n\t} catch (e) {\n\t\treturn finalizer();\n\t}\n\tif (result && result.then) {\n\t\treturn result.then(finalizer, finalizer);\n\t}\n\treturn finalizer();\n}\n\n// Rethrow or return a value from a finally continuation\nexport function _rethrow(thrown, value) {\n\tif (thrown)\n\t\tthrow value;\n\treturn value;\n}\n\n// Empty function to implement break and other control flow that ignores asynchronous results\nexport function _empty() {\n}\n\n// Sentinel value for early returns in generators \nexport const _earlyReturn = /*#__PURE__*/ {};\n\n// Asynchronously call a function and send errors to recovery continuation, skipping early returns\nexport function _catchInGenerator(body, recover) {\n\treturn _catch(body, function(e) {\n\t\tif (e === _earlyReturn) {\n\t\t\tthrow e;\n\t\t}\n\t\treturn recover(e);\n\t});\n}\n\n// Asynchronous generator class; accepts the entrypoint of the generator, to which it passes itself when the generator should start\nexport const _AsyncGenerator = /*#__PURE__*/(function() {\n\tfunction _AsyncGenerator(entry) {\n\t\tthis._entry = entry;\n\t\tthis._pact = null;\n\t\tthis._resolve = null;\n\t\tthis._return = null;\n\t\tthis._promise = null;\n\t}\n\n\tfunction _wrapReturnedValue(value) {\n\t\treturn { value: value, done: true };\n\t}\n\tfunction _wrapYieldedValue(value) {\n\t\treturn { value: value, done: false };\n\t}\n\n\t_AsyncGenerator.prototype._yield = function(value) {\n\t\t// Yield the value to the pending next call\n\t\tthis._resolve(value && value.then ? value.then(_wrapYieldedValue) : _wrapYieldedValue(value));\n\t\t// Return a pact for an upcoming next/return/throw call\n\t\treturn this._pact = new _Pact();\n\t};\n\t_AsyncGenerator.prototype.next = function(value) {\n\t\t// Advance the generator, starting it if it has yet to be started\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tconst _entry = _this._entry;\n\t\t\t\tif (_entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the next call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Start the generator\n\t\t\t\t_this._entry = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\tfunction returnValue(value) {\n\t\t\t\t\t_this._resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t_this._resolve = null;\n\t\t\t\t}\n\t\t\t\tvar result = _entry(_this);\n\t\t\t\tif (result && result.then) {\n\t\t\t\t\tresult.then(returnValue, function(error) {\n\t\t\t\t\t\tif (error === _earlyReturn) {\n\t\t\t\t\t\t\treturnValue(_this._return);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst pact = new _Pact();\n\t\t\t\t\t\t\t_this._resolve(pact);\n\t\t\t\t\t\t\t_this._pact = null;\n\t\t\t\t\t\t\t_this._resolve = null;\n\t\t\t\t\t\t\t_resolve(pact, 2, error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\treturnValue(result);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Generator is started and a yield expression is pending, settle it\n\t\t\t\t_this._pact = null;\n\t\t\t\t_this._resolve = resolve;\n\t\t\t\t_settle(_pact, 1, value);\n\t\t\t}\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.return = function(value) {\n\t\t// Early return from the generator if started, otherwise abandons the generator\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the return call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return the specified value\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn resolve(value && value.then ? value.then(_wrapReturnedValue) : _wrapReturnedValue(value));\n\t\t\t}\n\t\t\t// Settle the yield expression with a rejected \"early return\" value\n\t\t\t_this._return = value;\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, _earlyReturn);\n\t\t});\n\t};\n\t_AsyncGenerator.prototype.throw = function(error) {\n\t\t// Inject an exception into the pending yield expression\n\t\tconst _this = this;\n\t\treturn _this._promise = new Promise(function (resolve, reject) {\n\t\t\tconst _pact = _this._pact;\n\t\t\tif (_pact === null) {\n\t\t\t\tif (_this._entry === null) {\n\t\t\t\t\t// Generator is started, but not awaiting a yield expression\n\t\t\t\t\t// Abandon the throw call!\n\t\t\t\t\treturn resolve(_this._promise);\n\t\t\t\t}\n\t\t\t\t// Generator is not started, abandon it and return a rejected Promise containing the error\n\t\t\t\t_this._entry = null;\n\t\t\t\treturn reject(error);\n\t\t\t}\n\t\t\t// Settle the yield expression with the value as a rejection\n\t\t\t_this._resolve = resolve;\n\t\t\t_this._pact = null;\n\t\t\t_settle(_pact, 2, error);\n\t\t});\n\t};\n\n\t_AsyncGenerator.prototype[_asyncIteratorSymbol] = function() {\n\t\treturn this;\n\t};\n\t\n\treturn _AsyncGenerator;\n})();\n","const excludedKeys = [\n \"status\",\n \"source\",\n \"assignedAt\",\n \"connectionType\",\n \"approvedAt\",\n \"alternateMobileNo\",\n \"city\",\n \"state\",\n \"addressType\",\n \"addressProofType\",\n \"mrcode\",\n \"areacode\",\n \"verificationStatus\",\n \"surveyorId\",\n \"supervisorId\",\n \"vendorId\",\n \"assignmentType\",\n \"assignmentValue\",\n \"assignedTime\",\n \"isSelfAssigned\",\n \"userType\",\n \"tenantName\",\n \"tenantMobile\",\n \"doorPhotoFilestoreId\",\n \"panFilestoreId\",\n \"documentProofFilestoreId\",\n \"buildingImageFileStoreId\",\n \"propertyDocumentFileStoreId\",\n \"meterPhotoFileStoreId\",\n \"modifiedBy\",\n \"zoneCode\",\n \"propertyType\",\n \"subPropertyCategory\",\n \"firstName\",\n \"middleName\",\n \"lastName\",\n \"assembly\",\n \"ward\",\n \"pincode\",\n \"addressRaw\",\n \"mobileNo\",\n \"revisitCount\",\n \"consumerType\",\n \"occupantType\",\n \"knoCategory\",\n \"gender\",\n \"parentSpouse\",\n \"whatsappNo\",\n \"email\",\n \"landlineNo\",\n \"noOfPerson\",\n \"proofOfIdentityType\",\n \"documentNumber\",\n \"informantName\",\n \"informantRelation\",\n \"informantIsConsumer\",\n \"contactPerson\",\n \"relation\",\n \"entityName\",\n \"designation\",\n \"department\",\n \"employeeId\",\n \"ownerMobile\",\n \"ownerVerificationDone\",\n \"consentGiven\",\n \"flatHouseNumber\",\n \"streetName\",\n \"locality\",\n \"subLocality\",\n \"landmark\",\n \"latitude\",\n \"longitude\",\n \"gpsValid\",\n \"meterNumber\",\n \"meterMake\",\n \"meterStatus\",\n \"meterCondition\",\n \"meterLocation\",\n \"meterLocationAddress\",\n \"workingStatus\",\n \"sewerConnection\",\n \"septicTank\",\n \"lastBillRaised\",\n \"lastBillReceivedDate\",\n \"accessToMeter\",\n \"systemMeterId\",\n \"lastBillNotRaisedReason\",\n \"waterConnectionYears\",\n \"sewerConnectionYears\",\n \"pidNumber\",\n \"noOfFloor\",\n \"noOfRooms\",\n \"noOfBeds\",\n \"numberOfDwellingUnits\",\n \"floorNo\",\n \"userType\",\n \"tenantName\",\n \"tenantMobile\",\n \"houseBuiltDuration\",\n \"meterLatitude\",\n \"meterLongitude\",\n];\n\nconst createHeaderMapping = (t) => ({\n kno: t(\"KNO\"),\n firstName: t(\"FIRST_NAME\"),\n middleName: t(\"MIDDLE_NAME\"),\n lastName: t(\"LAST_NAME\"),\n status: t(\"STATUS\"),\n ekycStatus: t(\"EKYC_STATUS\"),\n zoneName: t(\"ZONE\"),\n zoneCode: t(\"ZONE_CODE\"),\n assembly: t(\"EKYC_ASSEMBLY\"),\n ward: t(\"WARD\"),\n pincode: t(\"EKYC_PINCODE\"),\n addressRaw: t(\"ADDRESS_RAW\"),\n locality: t(\"EKYC_LOCALITY\"),\n subLocality: t(\"SUB_LOCALITY\"),\n flatHouseNumber: t(\"FLAT_HOUSE_NUMBER\"),\n streetName: t(\"STREET_NAME\"),\n landmark: t(\"EKYC_LANDMARK\"),\n city: t(\"CITY\"),\n state: t(\"STATE\"),\n addressType: t(\"ADDRESS_TYPE\"),\n addressProofType: t(\"ADDRESS_PROOF_TYPE\"),\n mobileNo: t(\"MOBILE_NUMBER\"),\n alternateMobileNo: t(\"ALTERNATE_MOBILE_NUMBER\"),\n whatsappNo: t(\"WHATSAPP_NO\"),\n email: t(\"EMAIL\"),\n landlineNo: t(\"LANDLINE_NO\"),\n mrkey: t(\"MR_KEY\"),\n mrcode: t(\"MR_CODE\"),\n areacode: t(\"AREA_CODE\"),\n source: t(\"SOURCE\"),\n submittedAt: t(\"SUBMITTED_AT\"),\n assignedAt: t(\"ASSIGNED_AT\"),\n connectionType: t(\"CONNECTION_TYPE\"),\n Type: t(\"CONSUMER_TYPE\"),\n occupantType: t(\"OCCUPANT_TYPE\"),\n knoCategory: t(\"KNO_CATEGORY\"),\n approvedAt: t(\"APPROVED_AT\"),\n gender: t(\"GENDER\"),\n parentSpouse: t(\"PARENT_SPOUSE\"),\n fatherOrHusbandName: t(\"FATHER_HUSBUND_NAME\"),\n relationship: t(\"RELATIONSHIP\"),\n informantName: t(\"INFORMANT_NAME\"),\n informantRelation: t(\"INFORMANT_RELATION\"),\n //informantIs: t(\"INFORMANT_IS\"),\n contactPerson: t(\"CONTACT_PERSON\"),\n relation: t(\"RELATION\"),\n //entityName: t(\"ENTITY_NAME\"),\n //designation: t(\"DESIGNATION\"),\n //department: t(\"DEPARTMENT\"),\n //employeeId: t(\"EMPLOYEE_ID\"),\n ownerMobile: t(\"OWNER_MOBILE\"),\n //ownerVerificationDone: t(\"OWNER_VERIFICATION_DONE\"),\n consentGiven: t(\"CONSENT_GIVEN\"),\n proofOfIdentityType: t(\"PROOF_OF_IDENTITY_TYPE\"),\n documentNumber: t(\"DOCUMENT_NUMBER\"),\n noOfPerson: t(\"NUMBER_OF_PERSON\"),\n latitude: t(\"LATITUDE\"),\n longitude: t(\"LONGITUDE\"),\n gpsValid: t(\"GPS_VALID\"),\n meterNumber: t(\"METER_NUMBER\"),\n meterMake: t(\"METER_MAKE\"),\n meterStatus: t(\"METER_STATUS\"),\n meterCondition: t(\"METER_CONDITION\"),\n meterLocation: t(\"METER_LOCATION\"),\n meterLocationAddress: t(\"METER_LOCATION_ADDRESS\"),\n workingStatus: t(\"WORKING_STATUS\"),\n sewerConnection: t(\"SEWER_CONNECTION\"),\n septicTank: t(\"SEPTIC_TANK\"),\n lastBillRaised: t(\"LAST_BILL_RAISED\"),\n lastBillReceivedDate: t(\"LAST_BILL_RECEIVED_DATE\"),\n accessToMeter: t(\"ACCESS_TO_METER\"),\n systemMeterId: t(\"SYSTEM_METER_ID\"),\n lastBillNotRaisedReason: t(\"LAST_BILL_NOT_RAISED_REASON\"),\n waterConnectionYears: t(\"WATER_CONNECTION_YEARS\"),\n sewerConnectionYears: t(\"SEWER_CONNECTION_YEARS\"),\n pidNumber: t(\"PID_NUMBER\"),\n propertyType: t(\"PROPERTY_TYPE\"),\n subPropertyCategory: t(\"SUB_PROPERTY_CATEGORY\"),\n noOfFloor: t(\"NO_OF_FLOOR\"),\n noOfRooms: t(\"NO_OF_ROOMS\"),\n noOfBeds: t(\"NO_OF_BEDS\"),\n numberOfDwellingUnits: t(\"NUMBER_OF_DWELLING_UNITS\"),\n floorNo: t(\"FLOOR_NO\"),\n userType: t(\"USER_TYPE\"),\n tenantName: t(\"TENANT_NAME\"),\n tenantMobile: t(\"TENANT_MOBILE\"),\n verificationStatus: t(\"VERIFICATION_STATUS\"),\n houseBuiltDuration: t(\"HOUSE_BUILT_DURATION\"),\n surveyorId: t(\"SURVEYOR_ID\"),\n supervisorId: t(\"SUPERVISOR_ID\"),\n vendorId: t(\"VENDOR_ID\"),\n assignmentType: t(\"ASSIGNMENT_TYPE\"),\n assignmentValue: t(\"ASSIGNMENT_VALUE\"),\n assignedTime: t(\"ASSIGNED_TIME\"),\n isSelfAssigned: t(\"IS_SELF_ASSIGNED\"),\n doorPhotoFilestoreId: t(\"DOOR_PHOTO_FILESTORE_ID\"),\n panFilestoreId: t(\"PAN_FILESTORE_ID\"),\n documentProofFilestoreId: t(\"DOCUMENT_PROOF_FILESTORE_ID\"),\n buildingImageFileStoreId: t(\"BUILDING_IMAGE_FILESTORE_ID\"),\n propertyDocumentFileStoreId: t(\"PROPERTY_DOCUMENT_FILESTORE_ID\"),\n meterPhotoFileStoreId: t(\"METER_PHOTO_FILESTORE_ID\"),\n modifiedBy: t(\"MODIFIED_BY\"),\n emailId: t(\"EMAIL_ID\"),\n dob: t(\"DOB\"),\n consumerType: t(\"CONSUMER_TYPE\"),\n createdTime: t(\"CREATED_TIME\"),\n lastModifiedTime: t(\"LAST_MODIFIED_TIME\"),\n meterLatitude: t(\"EKYC_METER_LATITUDE1\"),\n meterLongitude: t(\"EKYC_METER_LONGITUDE1\"),\n});\n\nconst toTitleCase = (str) => {\n if (!str) return \"\";\n // Handle dot-notation values like \"CONSUMERTYPE.INDIVIDUAL\" → \"Individual\"\n let cleanStr = String(str);\n if (cleanStr.includes(\".\") && !cleanStr.includes(\"@\") && isNaN(Number(cleanStr))) {\n cleanStr = cleanStr.split(\".\").pop();\n }\n return cleanStr\n .toLowerCase()\n .replace(/_/g, \" \")\n .replace(/\\b\\w/g, (c) => c.toUpperCase());\n};\n\nconst skipTitleCase = [\n \"kno\",\n \"mobileNumber\",\n \"emailId\",\n \"email\",\n \"pincode\",\n \"mrkey\",\n \"dob\",\n \"createdTime\",\n \"lastModifiedTime\",\n \"meterLatitude\",\n \"meterLongitude\",\n];\n\nconst translatedFields = [\"meterMake\", \"meterLocation\"];\n\nexport const getEkycExcelData = (consumerList = [], t = (k) => k) => {\n const headerMapping = createHeaderMapping(t);\n\n const excelData = consumerList.map((item) => {\n const cleanObj = {};\n\n const fullName = [item.firstName, item.middleName, item.lastName].filter(Boolean).join(\" \");\n if (fullName) {\n cleanObj[t(\"CONSUMER_NAME\") || \"Consumer Name\"] = toTitleCase(fullName);\n }\n\n Object.keys(item).forEach((key) => {\n if (excludedKeys.includes(key)) return;\n\n let val = item[key];\n if (typeof val === \"object\" && val !== null) {\n return;\n }\n\n if (String(val).toLowerCase() === \"true\") {\n val = t(\"CS_YES\");\n } else if (String(val).toLowerCase() === \"false\") {\n val = t(\"CS_NO\");\n }\n\n const friendlyHeader = headerMapping[key] || t(key.toUpperCase()) || key;\n\n if (typeof val === \"string\" && translatedFields.includes(key)) {\n cleanObj[friendlyHeader] = t(val);\n } else if (typeof val === \"string\" && !skipTitleCase.includes(key)) {\n cleanObj[friendlyHeader] = toTitleCase(val);\n } else {\n cleanObj[friendlyHeader] = val;\n }\n });\n\n return cleanObj;\n });\n\n return excelData;\n};\n\nexport const downloadEkycExcel = (consumerList = [], { fileName = \"eKYC_Data\", vendorName = \"\" } = {}, t = (k) => k) => {\n const excelData = getEkycExcelData(consumerList, t);\n const cleanFileName = vendorName ? `${fileName}_${vendorName.replace(/[^a-zA-Z0-9]/g, \"_\")}` : fileName;\n Digit.Download.Excel(excelData, cleanFileName);\n};\n","import React, { useEffect, useRef, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport * as Chartjs from \"chart.js/auto\";\nimport { FaChartBar, MdDownloadIcon } from \"@djb25/digit-ui-react-components\";\nimport { getEkycExcelData } from \"../utils/ekycExcelData\";\n\nconst getChartConstructor = () => {\n const C = Chartjs.Chart || Chartjs.default || Chartjs;\n return C;\n};\n\nconst StatusCards = ({ countData }) => {\n const { t } = useTranslation();\n const [ekycDownloadLoading, setEkycDownloadLoading] = useState(false);\n\n const [showReportMenu, setShowReportMenu] = useState(false);\n const [customDate, setCustomDate] = useState({ from: \"\", to: \"\" });\n const [showCustomPicker, setShowCustomPicker] = useState(false);\n const reportMenuRef = useRef(null);\n\n useEffect(() => {\n const handler = (e) => {\n if (reportMenuRef.current && !reportMenuRef.current.contains(e.target)) {\n setShowReportMenu(false);\n setShowCustomPicker(false);\n }\n };\n document.addEventListener(\"mousedown\", handler);\n return () => document.removeEventListener(\"mousedown\", handler);\n }, []);\n\n let tenantId = Digit.ULBService.getCurrentTenantId();\n if (!tenantId || tenantId === \"dl\") {\n tenantId = \"dl.djb\";\n }\n const loggedInUser = Digit.SessionStorage.get(\"User\")?.info;\n const fullName = loggedInUser?.name || \"Admin\";\n\n const handleDownloadEkycData = async (fromDate, toDate) => {\n setEkycDownloadLoading(true);\n try {\n const response = await Digit.EkycService.application_list({\n tenantId: tenantId,\n offset: 0,\n limit: 10000,\n reportDownload: true,\n ...(fromDate && { fromDate }),\n ...(toDate && { toDate }),\n });\n\n const consumerList = response?.consumerList || [];\n if (consumerList.length === 0) {\n alert(t(\"NO_DATA_FOUND\") || \"No data found for download.\");\n return;\n }\n\n const excelData = getEkycExcelData(consumerList, t);\n const cleanFileName = `eKYC_All_Data_Admin_${fullName.replace(/[^a-zA-Z0-9]/g, \"_\")}`;\n Digit.Download.Excel(excelData, cleanFileName);\n } catch (error) {\n console.error(\"Error downloading eKYC Excel:\", error);\n } finally {\n setEkycDownloadLoading(false);\n }\n };\n\n const getDateRange = (filter) => {\n const now = new Date();\n const start = new Date(now);\n if (filter === \"today\") {\n start.setHours(0, 0, 0, 0);\n return { from: start, to: now };\n }\n if (filter === \"week\") {\n start.setDate(now.getDate() - now.getDay());\n start.setHours(0, 0, 0, 0);\n return { from: start, to: now };\n }\n if (filter === \"month\") {\n start.setDate(1);\n start.setHours(0, 0, 0, 0);\n return { from: start, to: now };\n }\n return null;\n };\n\n const handlePresetDownload = async (filter) => {\n const range = getDateRange(filter);\n if (!range) return;\n setShowReportMenu(false);\n setShowCustomPicker(false);\n await handleDownloadEkycData(range.from.getTime(), range.to.getTime());\n };\n\n const handleCustomDownload = async () => {\n if (!customDate.from || !customDate.to) {\n alert(t(\"SELECT_DATE_RANGE\") || \"Please select both From and To dates.\");\n return;\n }\n const from = new Date(customDate.from);\n from.setHours(0, 0, 0, 0);\n const to = new Date(customDate.to);\n to.setHours(23, 59, 59, 999);\n setShowReportMenu(false);\n setShowCustomPicker(false);\n await handleDownloadEkycData(from.getTime(), to.getTime());\n };\n\n const chartRef1 = useRef(null);\n const chartInstance1 = useRef(null);\n\n const efficiency = countData?.total > 0 ? Math.round(((countData?.submittedCount + countData?.completed) / countData?.total) * 100) : 0;\n const formatNumber = (num) => new Intl.NumberFormat(\"en-IN\").format(num || 0);\n\n useEffect(() => {\n if (chartRef1.current) {\n if (chartInstance1.current) chartInstance1.current.destroy();\n const ctx1 = chartRef1.current.getContext(\"2d\");\n const ChartConstructor = getChartConstructor();\n chartInstance1.current = new ChartConstructor(ctx1, {\n type: \"doughnut\",\n data: {\n labels: [t(\"EKYC_PENDING\"), t(\"EKYC_COMPLETED\"), t(\"EKYC_SUBMITTED\"), t(\"EKYC_INPROCESS\")],\n datasets: [\n {\n data: [countData?.pending, countData?.completed, countData?.submitted, countData?.inprocess],\n backgroundColor: [\"#0c2a52\", \"#77B6EA\", \"#c8ddf5\", \"#49a3fb\"],\n borderColor: [\"#ffffff\", \"#ffffff\", \"#ffffff\", \"#ffffff\"],\n borderWidth: 2,\n hoverOffset: 4,\n },\n ],\n },\n options: {\n cutout: \"75%\",\n plugins: { legend: { display: false } },\n maintainAspectRatio: false,\n responsive: true,\n },\n });\n }\n\n return () => {\n if (chartInstance1.current) chartInstance1.current.destroy();\n };\n }, [countData, t]);\n\n const legendItems = [\n {\n color: \"#77B6EA\",\n label: t(\"EKYC_TOTAL\"),\n value: countData?.total || 0,\n },\n {\n color: \"#0c2a52\",\n label: t(\"EKYC_PENDING\"),\n value: countData?.pending || 0,\n },\n {\n color: \"#2E8B57\",\n label: t(\"EKYC_COMPLETED\"),\n value: countData?.completed || 0,\n },\n // {\n // color: \"#4C8BF5\",\n // label: t(\"EKYC_ASSIGNED\"),\n // value: countData?.totalAssignments || 0,\n // },\n\n {\n color: \"#8B5CF6\",\n label: t(\"EKYC_SUBMITTED_BY_VENDORS\"),\n value: countData?.submittedCount || 0,\n },\n {\n color: \"#F59E0B\",\n label: t(\"EKYC_SUBMITTED_BY_CITIZEN\"),\n value: countData?.selfEkycCount || 0,\n },\n {\n color: \"#DC3545\",\n label: t(\"EKYC_REJECTED\"),\n value: countData?.rejected || 0,\n },\n ];\n\n return (\n <div className=\"ekyc-employee-container\">\n <div className=\"status-panel\">\n <div className=\"status-cards-header\">\n <div className=\"status-card-title\">\n <FaChartBar size={32} color=\"#fff\" backgroundColor=\"#065297\" style={{ paddingInline: \"4px\", borderRadius: \"4px \" }} />\n\n <h1 className=\"status-cards-h1\">{t(\"EKYC_DASHBOARD_TITLE\") || \"eKYC Verification Dashboard\"}</h1>\n </div>\n <div className=\"report-download\" ref={reportMenuRef}>\n <button\n className=\"total-applications-card download-btn\"\n disabled={ekycDownloadLoading}\n onClick={() => {\n setShowReportMenu((p) => !p);\n setShowCustomPicker(false);\n }}\n >\n {t(\"DOWNLOAD_REPORT\") || \"Download Report\"}\n\n <MdDownloadIcon />\n </button>\n\n {showReportMenu && (\n <div className=\"report-menu\">\n {[\n { label: t(\"TODAY\") || \"Today\", key: \"today\" },\n { label: t(\"THIS_WEEK\") || \"This Week\", key: \"week\" },\n { label: t(\"THIS_MONTH\") || \"This Month\", key: \"month\" },\n ].map(({ label, key }) => (\n <div key={key} className=\"menu-item\" onClick={() => handlePresetDownload(key)}>\n {label}\n </div>\n ))}\n\n <div className=\"custom-date-trigger\" onClick={() => setShowCustomPicker((p) => !p)}>\n {t(\"CUSTOM_DATE\") || \"Custom Date\"}\n </div>\n\n {showCustomPicker && (\n <div className=\"custom-picker\">\n <div className=\"date-inputs\">\n <label>\n <span>From</span>\n <input type=\"date\" value={customDate.from} onChange={(e) => setCustomDate({ ...customDate, from: e.target.value })} />\n </label>\n <label>\n <span>To</span>\n <input type=\"date\" value={customDate.to} onChange={(e) => setCustomDate({ ...customDate, to: e.target.value })} />\n </label>\n </div>\n <div style={{ display: \"flex\", gap: \"10px\", marginTop: \"10px\" }}>\n <button\n className=\"picker-cancel-btn\"\n onClick={(e) => {\n e.stopPropagation();\n setShowCustomPicker(false);\n setCustomDate({ from: \"\", to: \"\" });\n }}\n >\n {t(\"CANCEL\") || \"Cancel\"}\n </button>\n <button\n className=\"picker-apply-btn\"\n onClick={(e) => {\n e.stopPropagation();\n handleCustomDownload();\n }}\n >\n {t(\"APPLY\") || \"Apply\"}\n </button>\n </div>\n </div>\n )}\n </div>\n )}\n </div>\n </div>\n\n <div className=\"status-breakdown-content\">\n {/* Chart */}\n <div className=\"chart-wrapper\">\n <canvas ref={chartRef1} style={{ width: \"100%\", height: \"100%\" }} />\n\n <div className=\"chart-center\">\n <div className=\"chart-percentage\">{efficiency}%</div>\n <div className=\"chart-label\">{t(\"EKYC_COMPLETE\") || \"Complete\"}</div>\n </div>\n </div>\n\n {/* Status Boxes */}\n <div className=\"status-boxes\">\n {legendItems.map((item) => (\n <div className=\"status-box\" key={item.label} style={{ \"--status-color\": item.color }}>\n <div className=\"status-box-top\">\n <span className=\"status-indicator\" style={{ backgroundColor: item.color }} />\n\n <span className=\"status-name\">{item.label}</span>\n </div>\n\n <div className=\"status-box-value\">{formatNumber(item.value)}</div>\n </div>\n ))}\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default StatusCards;\n","import React from \"react\";\nimport StatusCards from \"./StatusCards\";\n\nconst Dashboard = ({ progressData, isProgressLoading }) => {\n const countData = {\n total: progressData?.totalKnosInSystem || 0,\n completed: progressData?.completedKnosInZones || 0,\n pending: progressData?.pendingKnosInZones || 0,\n rejected: progressData?.rejectedKnosInZones || 0,\n totalAssignments: progressData?.totalAssignments || 0,\n submittedCount: progressData?.submittedKnosInZones || 0,\n selfEkycCount: progressData?.selfEkycCountInZones || 0,\n overallProgressPercent: progressData?.overallProgressPercent || 0,\n };\n\n return isProgressLoading ? <EkycDashboardSkeleton /> : <StatusCards countData={countData} />;\n};\n\nexport default Dashboard;\n\nconst EkycDashboardSkeleton = () => {\n return (\n <div className=\"ekyc-employee-container\">\n <div className=\"status-panel ekyc-skel-panel\">\n <div className=\"status-cards-header\">\n <div className=\"status-card-title\">\n <div className=\"ekyc-skel ekyc-skel-icon\" />\n <div className=\"ekyc-skel ekyc-skel-title\" />\n </div>\n\n <div className=\"ekyc-skel ekyc-skel-download-btn\" />\n </div>\n\n <div className=\"status-breakdown-content\">\n {/* Chart */}\n <div className=\"chart-wrapper\">\n <div className=\"ekyc-skel ekyc-skel-donut\" />\n </div>\n\n {/* Status Boxes */}\n <div className=\"status-boxes\">\n {[1, 2, 3, 4].map((item) => (\n <div className=\"status-box\" key={item}>\n <div className=\"status-box-top\">\n <div className=\"ekyc-skel ekyc-skel-dot\" />\n <div className=\"ekyc-skel ekyc-skel-name\" />\n </div>\n <div className=\"ekyc-skel ekyc-skel-value\" />\n </div>\n ))}\n </div>\n </div>\n </div>\n </div>\n );\n};\n","import React, { useMemo, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Table, Card, Loader, InboxLinks } from \"@djb25/digit-ui-react-components\";\nimport { useHistory } from \"react-router-dom\";\nimport StatusCards from \"./StatusCards\";\n\nconst DesktopInbox = ({ tableConfig, filterComponent, ...props }) => {\n const {\n data,\n isLoading,\n onSort,\n onNextPage,\n onPrevPage,\n currentPage,\n pageSizeLimit,\n onPageSizeChange,\n parentRoute,\n searchParams,\n sortParams,\n totalRecords,\n countData,\n } = props;\n const { t } = useTranslation();\n\n const toTitleCase = (str) => {\n if (!str) return \"\";\n return String(str)\n .toLowerCase()\n .replace(/_/g, \" \")\n .replace(/\\b\\w/g, (c) => c.toUpperCase());\n };\n const history = useHistory();\n const tenantId = Digit.ULBService.getCurrentTenantId();\n const FilterComponent = Digit.ComponentRegistryService?.getComponent(filterComponent);\n\n // State for Review Modal\n const [selectedKno, setSelectedKno] = useState(\"\");\n const { data: reviewData, getReview } = Digit.Hooks.ekyc.useEkycAPI(\"review\", tenantId);\n const handleReview = (kno) => {\n setSelectedKno(kno);\n getReview({ kno });\n };\n\n React.useEffect(() => {\n if (reviewData) {\n history.push(\"/digit-ui/employee/ekyc/review\", { kNumber: selectedKno, aadhaarData: reviewData?.aadhaarData, reviewData });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [reviewData]);\n\n const columns = useMemo(\n () => [\n {\n Header: t(\"EKYC_APPLICATION_NO\"),\n accessor: \"applicationNumber\",\n Cell: ({ row }) => {\n const kno = row.original?.kno || row.original?.applicationNumber || \"NA\";\n return (\n <span className=\"link\" onClick={() => handleReview(kno)}>\n {kno}\n </span>\n );\n },\n },\n {\n Header: t(\"EKYC_CITIZEN_NAME\"),\n accessor: \"citizenName\",\n Cell: ({ row }) => <span>{toTitleCase(row.original?.citizenName) || \"NA\"}</span>,\n },\n // {\n // Header: t(\"EKYC_MOBILE_NO\"),\n // accessor: \"mobileNumber\",\n // Cell: ({ row }) => <span>{row.original?.mobileNumber || \"NA\"}</span>,\n // },\n {\n Header: t(\"EKYC_STATUS\"),\n accessor: \"actionStatus\",\n Cell: ({ row }) => {\n const status = (row.original?.status || \"DEFAULT\").toUpperCase();\n return <span className={`ekyc-status-tag ${status}`}>{toTitleCase(row.original?.status || \"DEFAULT\")}</span>;\n },\n },\n {\n Header: t(\"EKYC_EKYC_STATUS\"),\n accessor: \"ekycStatus\",\n Cell: ({ row }) => {\n const raw = row.original?.ekycStatus || row.original?.ekycstatus || \"NA\";\n const ekycStatus = raw.toUpperCase();\n return <span className={`ekyc-status-tag ${ekycStatus}`}>{toTitleCase(raw)}</span>;\n },\n },\n {\n Header: t(\"EKYC_ACTION\"),\n accessor: \"status\",\n Cell: ({ row }) => {\n const kno = row.original?.kno || row.original?.applicationNumber || \"NA\";\n return (\n <span className=\"link\" onClick={() => handleReview(kno)}>\n {t(\"EKYC_REVIEW\")}\n </span>\n );\n },\n },\n ],\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [t, parentRoute]\n );\n\n const tableData = useMemo(() => {\n return data?.items || (Array.isArray(data) ? data : []);\n }, [data]);\n\n return (\n <div className=\"app-container\">\n <div className=\"inbox-container\">\n {isLoading && <Loader />}\n <div className=\"side-panel-item\">\n {/* Sidebar Title Card */}\n\n <InboxLinks headerText={props.moduleCode} />\n\n {FilterComponent && (\n <FilterComponent\n defaultSearchParams={props.defaultSearchParams}\n onFilterChange={props.onSearch}\n searchParams={searchParams}\n type=\"desktop\"\n moduleCode=\"EKYC\"\n />\n )}\n </div>\n\n <div className=\"employee-form-content\" style={{ flex: 1 }}>\n {/* Header Section (retaining for context/actions) */}\n {/* <div className=\"ekyc-header-container module-header\" style={{ marginBottom: \"16px\", display: \"flex\", justifyContent: \"space-between\", alignItems: \"center\" }}>\n <Header className=\"title\" style={{ margin: 0 }}>{t(\"EKYC_INBOX_HEADER\")}</Header>\n <Link to={`${parentRoute}/create-kyc`}>\n <SubmitBar label={t(\"EKYC_CREATE_KYC\")} style={{ borderRadius: \"8px\" }} />\n </Link>\n </div> */}\n\n {/* Metrics Section (The Card) */}\n <Card className=\"ekyc-metrics-card\">\n <StatusCards countData={countData} />\n </Card>\n\n {/* Table Section */}\n <div className=\"result\" style={{ flex: 1 }}>\n <Card className=\"ekyc-table-card\" style={{ padding: 0 }}>\n <Table\n t={t}\n data={tableData}\n columns={columns}\n isLoading={isLoading}\n onSort={onSort}\n sortParams={sortParams}\n totalRecords={totalRecords}\n onNextPage={onNextPage}\n onPrevPage={onPrevPage}\n currentPage={currentPage}\n pageSizeLimit={pageSizeLimit}\n onPageSizeChange={onPageSizeChange}\n getCellProps={(cellInfo) => {\n return {\n className: \"ekyc-table-cell\",\n };\n }}\n />\n </Card>\n </div>\n </div>\n </div>\n </div>\n );\n};\n\nexport default DesktopInbox;\n","import React, { useState } from \"react\";\nimport { TextInput, Card, HomeIcon } from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\n\nconst SearchConsumer = ({ onSearch, searchParams, FilterComponent, children, ...props }) => {\n const { t } = useTranslation();\n const [_searchParams, setSearchParams] = useState(() => ({ ...searchParams }));\n\n const onChange = (key, value) => {\n setSearchParams((prev) => ({ ...prev, [key]: value }));\n };\n\n const onSubmit = (e) => {\n if (e && e.preventDefault) e.preventDefault();\n onSearch(_searchParams);\n };\n\n const onClear = () => {\n const cleared = { kNumber: \"\", kName: \"\" };\n setSearchParams(cleared);\n onSearch(cleared);\n };\n\n return (\n <div className=\"ekyc-employee-container\">\n <div className=\"search-consumer-wrapper\">\n <div className=\"header-wrapper\">\n {/* Sidebar Title Card — flush top, full width */}\n <Card className=\"sidebar-title-card\">\n <div className=\"icon-container\">\n <HomeIcon />\n </div>\n <div className=\"title-text\">\n {t(\"EKYC_SEARCH_CONSUMER_HEADER\")}\n </div>\n </Card>\n </div>\n\n {/* Main Content */}\n <div className=\"main-content-wrapper\">\n {/* Top Row: Search Card + Stats Cards */}\n <div className=\"search-stats-row\">\n {/* Identity Lookup Card */}\n <div className=\"identity-lookup-card\">\n {/* Card Title */}\n <div className=\"lookup-card-title\">\n <div className=\"lookup-icon-bg\">\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#3A7BD5\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <circle cx=\"11\" cy=\"11\" r=\"8\" />\n <line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\" />\n </svg>\n </div>\n <span className=\"lookup-title-text\">\n {t(\"EKYC_IDENTITY_LOOKUP\") || \"Identity Lookup\"}\n </span>\n </div>\n\n {/* Inputs Row */}\n <form onSubmit={onSubmit}>\n <div className=\"inputs-row\">\n <div className=\"input-group\">\n <label>\n {t(\"EKYC_K_NUMBER\") || \"K Number\"}\n <span className=\"info-badge\">i</span>\n </label>\n <TextInput\n value={_searchParams?.kNumber}\n onChange={(e) => onChange(\"kNumber\", e.target.value)}\n placeholder={t(\"EKYC_K_NUMBER_PLACEHOLDER\") || \"e.g. 8234910234\"}\n />\n </div>\n\n <div className=\"input-group\">\n <label>\n {t(\"EKYC_K_NAME\") || \"K Name\"}\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#3A7BD5\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\" />\n <circle cx=\"12\" cy=\"7\" r=\"4\" />\n </svg>\n </label>\n <TextInput\n value={_searchParams?.kName}\n onChange={(e) => onChange(\"kName\", e.target.value)}\n placeholder={t(\"EKYC_K_NAME_PLACEHOLDER\") || \"Consumer name search\"}\n />\n </div>\n </div>\n\n {/* Actions Row */}\n <div className=\"actions-row\">\n <button type=\"button\" onClick={onClear} className=\"clear-btn\">\n {t(\"ES_COMMON_CLEAR\") || \"Clear\"}\n </button>\n <button type=\"submit\" className=\"search-btn\">\n {t(\"ES_COMMON_SEARCH\") || \"Execute Search\"}\n </button>\n </div>\n </form>\n </div>\n\n {/* Right Stats Column */}\n <div className=\"stats-column\">\n {/* Today's Audits Card */}\n <div className=\"audits-card\">\n <div className=\"audits-label\">{t(\"EKYC_TODAYS_AUDITS\") || \"Today's Audits\"}</div>\n <div className=\"audits-count\">{props.countData?.todaysAudits || 24}</div>\n <div className=\"audits-change\">\n <span>↗</span>\n {props.countData?.auditChange || \"12% increase from yesterday\"}\n </div>\n <div className=\"audits-watermark\">M</div>\n </div>\n\n {/* Queue Status Card */}\n <div className=\"queue-card\">\n <div className=\"queue-label\">{t(\"EKYC_QUEUE_STATUS\") || \"Queue Status\"}</div>\n <div className=\"queue-content\">\n <div className=\"queue-status-text\">\n {props.countData?.pendingCount || 3} Pending\n </div>\n <div className=\"avatar-group\">\n {[0, 1].map((i) => (\n <div key={i} className=\"avatar-item\">\n {String.fromCharCode(65 + i)}\n </div>\n ))}\n <div className=\"avatar-more\">+1</div>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {/* Children (ConnectionDetailsView or placeholder) */}\n {children}\n </div>\n </div>\n </div>\n );\n};\n\nexport default SearchConsumer;","import React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Header, Card, SubmitBar, DetailsCard, Loader } from \"@djb25/digit-ui-react-components\";\nimport { Link } from \"react-router-dom\";\nimport SearchConsumer from \"./SearchConsumer\";\nimport StatusCards from \"./StatusCards\";\n\nconst MobileInbox = ({\n data,\n isLoading,\n onSearch,\n searchParams,\n parentRoute,\n countData,\n}) => {\n const { t } = useTranslation();\n\n const mobileData = data?.items?.map((item) => ({\n [t(\"EKYC_APPLICATION_NO\")]: item.applicationNumber,\n [t(\"EKYC_CITIZEN_NAME\")]: item.citizenName,\n [t(\"EKYC_MOBILE_NO\")]: item.mobileNumber,\n [t(\"EKYC_STATUS\")]: (\n <span className={`ekyc-status-tag ${item.status}`}>\n {t(`EKYC_STATUS_${item.status}`)}\n </span>\n ),\n })) || [];\n\n return (\n <div className=\"inbox-wrapper\">\n <div className=\"ekyc-header-container module-header\">\n <Header className=\"title\">{t(\"EKYC_INBOX_HEADER\")}</Header>\n <Link to={`${parentRoute}/create-kyc`}>\n <SubmitBar label={t(\"EKYC_CREATE_KYC\")} />\n </Link>\n </div>\n\n <div className=\"ekyc-metrics-section\">\n <StatusCards countData={countData} />\n </div>\n\n <SearchConsumer\n onSearch={onSearch}\n searchParams={searchParams}\n />\n\n <div className=\"mobile-data-container\">\n {isLoading ? (\n <Loader />\n ) : mobileData?.length > 0 ? (\n <DetailsCard\n data={mobileData}\n t={t}\n serviceRequestIdKey={t(\"EKYC_APPLICATION_NO\")}\n linkPrefix={`${parentRoute}/application-details/`}\n />\n ) : (\n <Card>\n {t(\"ES_COMMON_NO_DATA\")\n .split(\"\\\\n\")\n .map((text, index) => (\n <p key={index} style={{ textAlign: \"center\" }}>\n {text}\n </p>\n ))}\n </Card>\n )}\n </div>\n </div>\n );\n};\n\nexport default MobileInbox;\n","import React, { useState } from \"react\";\nimport { Dropdown, FilterForm, FilterFormField } from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\n\nconst Filter = ({ searchParams, onFilterChange, defaultSearchParams, statusMap, moduleCode, ...props }) => {\n const { t } = useTranslation();\n\n const [_searchParams, setSearchParams] = useState(() => ({ ...searchParams }));\n\n const applyLocalFilters = () => {\n onFilterChange(_searchParams);\n };\n\n const clearAll = () => {\n setSearchParams({ ...defaultSearchParams });\n onFilterChange({ ...defaultSearchParams });\n };\n\n const onStatusChange = (value) => {\n const newParams = { ..._searchParams, status: value };\n setSearchParams(newParams);\n onFilterChange(newParams);\n };\n\n return (\n <FilterForm\n onSubmit={applyLocalFilters}\n handleSubmit={(fn) => (e) => {\n e && e.preventDefault();\n fn();\n }}\n onResetFilterForm={clearAll}\n id=\"ekyc-filter-form\"\n onMobileExclusiveFilterPopupFormClose={props.onClose}\n >\n <FilterFormField>\n <div className=\"filter-label\" style={{ fontWeight: \"normal\" }}>\n {t(\"EKYC_STATUS\")}:\n </div>\n <Dropdown\n option={[\n { label: t(\"EKYC_STATUS_ALL\"), value: \"\" },\n { label: t(\"EKYC_STATUS_ACTIVE\"), value: \"ACTIVE\" },\n { label: t(\"EKYC_STATUS_PENDING\"), value: \"PENDING START\" },\n ]}\n optionKey=\"label\"\n select={onStatusChange}\n selected={_searchParams?.status || { label: t(\"EKYC_STATUS_ALL\"), value: \"\" }}\n />\n </FilterFormField>\n </FilterForm>\n );\n};\n\nexport default Filter;\n","import React, { useState } from \"react\";\nimport { DateRange, Modal, CloseSvg } from \"@djb25/digit-ui-react-components\";\n\nconst EkycFilterModal = ({ t, onApply, onClose,customDate, setCustomDate,ekycStatus, setEkycStatus }) => {\n \n const [isDatePickerOpen, setIsDatePickerOpen] = useState(false);\n\n const ekycStatusOptions = [\n { label: \"All\", value: \"ALL\" },\n { label: \"Submitted\", value: \"SUBMITTED\" },\n // { label: \"Approved\", value: \"APPROVED\" },\n { label: \"In Progress\", value: \"IN_PROGRESS\" },\n // { label: \"Rejected\", value: \"REJECTED\" },\n { label: \"Revisit\", value: \"REVISIT\" },\n ];\n\n return (\n <div className={`ekyc-report-filter ${isDatePickerOpen ? \"ekyc-report-filter--date-open\" : \"\"}`}>\n <Modal\n headerBarMain=\"Download eKYC Report\"\n headerBarEnd={\n <button type=\"button\" onClick={onClose} aria-label=\"Close\" className=\"ekyc-filter-modal-close\">\n <CloseSvg height=\"24\" width=\"24\" />\n </button>\n }\n actionSaveLabel={t(\"DOWNLOAD_REPORT\")}\n actionSaveOnSubmit={onApply}\n actionCancelLabel=\"Cancel\"\n actionCancelOnSubmit={onClose}\n width=\"fitContent\"\n >\n <div className=\"ekyc-filter-modal\">\n {/* eKYC Status */}\n <section className=\"ekyc-filter-modal-section\">\n <div className=\"ekyc-filter-modal-section-header\">\n <span className=\"ekyc-filter-modal-label\">eKYC Status</span>\n\n <span className=\"ekyc-filter-modal-hint\">Select one</span>\n </div>\n\n <div className=\"ekyc-filter-modal-options\">\n {ekycStatusOptions.map((option) => {\n const selected = ekycStatus === option.value;\n\n return (\n <button\n key={option.value}\n type=\"button\"\n onClick={() => setEkycStatus(option.value)}\n className={selected ? \"ekyc-filter-modal-option ekyc-filter-modal-option-selected\" : \"ekyc-filter-modal-option\"}\n aria-pressed={selected}\n >\n {option.label}\n </button>\n );\n })}\n </div>\n </section>\n\n {/* Divider */}\n <div className=\"ekyc-filter-modal-divider\" />\n\n {/* Date Range */}\n <section className=\"ekyc-filter-modal-section\">\n <div className=\"ekyc-filter-modal-label\">Date Range</div>\n\n <DateRange\n values={customDate}\n t={t}\n hideLabel\n onFilterChange={(data) => {\n setCustomDate(data.range);\n }}\n onOpenChange={setIsDatePickerOpen}\n />\n </section>\n </div>\n </Modal>\n </div>\n );\n};\n\nexport default EkycFilterModal;\n","import React, { useMemo, useState, useRef, useEffect, Fragment } from \"react\";\nimport { Card, Loader, Table, MdDownloadIcon, FaDatabase, FaFileAlt } from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { useParams, useHistory } from \"react-router-dom\";\nimport { FaBuilding, FaUser, FaClock, FaChartLine } from \"react-icons/fa\";\nimport { getEkycExcelData } from \"../utils/ekycExcelData\";\nimport EkycFilterModal from \"./EkycFilterModal\";\n\nconst VendorDetailsCard = () => {\n const { t } = useTranslation();\n const history = useHistory();\n const tenantId = Digit.ULBService.getCurrentTenantId() || \"dl.djb\";\n const { vendorId } = useParams();\n const loggedInUser = Digit.SessionStorage.get(\"User\")?.info;\n\n const targetVendorId = vendorId || loggedInUser?.uuid;\n const [showFilterModal, setShowFilterModal] = useState(false);\n const [ekycStatus, setEkycStatus] = useState(\"ALL\");\n\n const { data: { vendor: [vendor] = [] } = {}, isLoading: isVendorSearchLoading } = Digit.Hooks.fsm.useVendorSearch({\n tenantId,\n filters: {\n status: \"ACTIVE\",\n ids: targetVendorId,\n },\n config: {\n enabled: !!tenantId,\n staleTime: 300000,\n },\n });\n\n // Fetch assignment progress with hierarchy (supervisor and surveyor details) for target vendor\n const { isLoading: isProgressLoading, data: progressData } = Digit.Hooks.ekyc.useEkycAssignmentProgress(\n { vendorId: targetVendorId },\n {\n enabled: !!tenantId,\n keepPreviousData: true,\n }\n );\n\n const vendorName = vendor?.name || \"N/A\";\n const mobileNumber = vendor?.mobileNumber || vendor?.owner?.mobileNumber || \"N/A\";\n const email = vendor?.owner?.emailId || \"N/A\";\n const gender = vendor?.owner?.gender || \"N/A\";\n const ownerName = vendor?.owner?.name || \"N/A\";\n \n const zoneIds = useMemo(() => {\n return vendor?.zoneIds?.length ? vendor.zoneIds.filter(Boolean).map((zone) => String(zone).trim().toUpperCase()) : [];\n }, [vendor]);\n\n // KPI stats calculation\n const cards = [\n {\n label: \"TOTAL_KNOS\",\n count: progressData?.totalKnosInZones || 0,\n color: \"#2563EB\", // Blue\n type: \"today\",\n icon: <FaDatabase />,\n },\n {\n label: \"TOTAL_EKYC_APPLICATIONS\",\n count: progressData?.totalAssignments || 0,\n color: \"#0891B2\", // Cyan\n type: \"today\",\n icon: <FaFileAlt />,\n },\n // {\n // label: \"EKYC_SUBMITTED\",\n // count: progressData?.submittedKnos || 0,\n // color: \"#10B981\",\n // type: \"month\",\n // icon: <FaCheckCircle />,\n // },\n {\n label: \"EKYC_SUBMITTED_BY_VENDORS\",\n count: progressData?.submittedKnosInZones || 0,\n color: \"#0D9488\", // Teal\n type: \"month\",\n icon: <FaBuilding />,\n },\n {\n label: \"EKYC_SUBMITTED_BY_CITIZEN\",\n count: progressData?.selfEkycCountInZones || 0,\n color: \"#7C3AED\", // Purple\n type: \"month\",\n icon: <FaUser />,\n },\n {\n label: \"PENDING_APPLICATIONS\",\n count: progressData?.pendingKnosInZones || 0,\n color: \"#EA580C\", // Orange\n type: \"pending\",\n icon: <FaClock />,\n },\n {\n label: \"OVERALL_PROGRESS\",\n count: `${progressData?.overallProgressPercent || 0}%`,\n color: \"#DB2777\", // Pink\n type: \"progress\",\n icon: <FaChartLine />,\n },\n ];\n\n const [currentPage, setCurrentPage] = useState(0);\n const [pageSize, setPageSize] = useState(20);\n\n const [ekycDownloadLoading, setEkycDownloadLoading] = useState(false);\n\n const handleDownloadEkycData = async (fromDate, toDate) => {\n console.log(ekycStatus, fromDate, toDate);\n setEkycDownloadLoading(true);\n try {\n const response = await Digit.EkycService.application_list({\n tenantId: tenantId,\n offset: 0,\n limit: 10000,\n // Vendor-specific filter\n vendorId: targetVendorId,\n ekycStatus: ekycStatus,\n reportDownload: true,\n ...(fromDate && { fromDate }),\n ...(toDate && { toDate }),\n });\n\n const consumerList = response?.consumerList || [];\n\n if (!consumerList || consumerList.length === 0) {\n alert(t(\"NO_EKYC_DATA_FOUND\") || \"No eKYC data found to download.\");\n return;\n }\n\n consumerList.forEach((item) => {\n if (item.assignedTime) {\n item.assignedTime = new Date(item.assignedTime).toLocaleDateString(\"en-GB\");\n }\n\n if (item.submittedAt) {\n item.submittedAt = new Date(item.submittedAt).toLocaleDateString(\"en-GB\");\n }\n });\n const excelData = getEkycExcelData(consumerList, t);\n const cleanFileName = `eKYC_Data_${vendorName.replace(/[^a-zA-Z0-9]/g, \"_\")}`;\n Digit.Download.Excel(excelData, cleanFileName);\n } catch (error) {\n console.error(\"Failed to download eKYC data:\", error);\n alert(t(\"EKYC_DOWNLOAD_FAILED\") || \"Failed to download eKYC data. Please try again.\");\n } finally {\n setEkycDownloadLoading(false);\n }\n };\n\n const handleApplyFilters = async () => {\n setShowFilterModal(false);\n await handleDownloadEkycData(customDate.startDate.getTime(), customDate.endDate.getTime());\n };\n\n const supervisorColumns = [\n {\n Header: t(\"SUPERVISOR_NAME\") || \"Supervisor Name\",\n accessor: (row) => row?.original?.supervisorName || \"N/A\",\n Cell: ({ row }) => {\n console.log(row)\n const userType = Digit.SessionStorage.get(\"User\")?.info?.type?.toLowerCase() || \"citizen\";\n const targetPath = `/digit-ui/${userType}/ekyc/supervisor-dashboard/${row?.original?.supervisorId}/${row?.original?.vendorId}`;\n\n return (\n <a\n href={targetPath}\n style={{ color: \"#1D70B8\", fontWeight: \"600\", textDecoration: \"none\" }}\n onClick={(e) => {\n e.preventDefault();\n history.push(targetPath);\n }}\n >\n {row?.original?.supervisorName || \"N/A\"}\n </a>\n );\n },\n },\n {\n Header: t(\"MOBILE_NUMBER\") || \"Mobile Number\",\n accessor: (row) => row?.mobileNo || \"N/A\",\n id: \"mobileNo\",\n },\n {\n Header: t(\"STATUS\") || \"Status\",\n accessor: (row) => row?.status || \"ACTIVE\",\n id: \"status\",\n Cell: ({ value }) => <span className={`status-badge verified`}>{t(value) || value}</span>,\n },\n {\n Header: t(\"ASSIGNED_ZONE\") || \"Assigned Zone\",\n accessor: (row) => row?.assignedZoneId || \"\",\n id: \"zone\",\n Cell: ({ value }) => t(value) || value,\n },\n {\n Header: t(\"TOTAL_EKYC_APPLICATIONS\") || \"Total eKYC Applications\",\n accessor: (row) => row?.totalKnos || 0,\n id: \"totalEkycApplications\",\n },\n {\n Header: t(\"EKYC_SUBMITTED\") || \"eKYC Completed\",\n accessor: (row) => row?.submittedKnos || 0,\n id: \"ekycCompleted\",\n },\n {\n Header: t(\"PENDING_APPLICATIONS\") || \"Pending Applications\",\n accessor: (row) => row?.pendingKnos || 0,\n id: \"pendingApplications\",\n },\n {\n Header: t(\"OVERALL_PROGRESS\") || \"Overall Progress\",\n accessor: (row) => `${row?.progressPercent || 0}%`,\n id: \"overallProgress\",\n },\n ];\n\n // Report Download logic\n const [customDate, setCustomDate] = useState(\"\");\n const reportMenuRef = useRef(null);\n\n useEffect(() => {\n const handler = (e) => {\n if (reportMenuRef.current && !reportMenuRef.current.contains(e.target)) {\n }\n };\n document.addEventListener(\"mousedown\", handler);\n return () => document.removeEventListener(\"mousedown\", handler);\n }, []);\n\n const StatCard = ({ title, value, type, isLoading, icon }) => (\n <div className={`stat-card ${type}`}>\n {isLoading ? (\n <React.Fragment>\n <div className=\"stat-title skeleton skeleton-text\"></div>\n <div className=\"stat-value skeleton skeleton-number\"></div>\n </React.Fragment>\n ) : (\n <React.Fragment>\n <div className=\"stat-title\">{title}</div>\n <div className=\"stat-value\">{value}</div>\n {icon && <div className=\"stat-icon\">{icon}</div>}\n </React.Fragment>\n )}\n </div>\n );\n\n const isPageLoading = isProgressLoading || isVendorSearchLoading;\n\n if (isPageLoading && !vendor) {\n return <Loader />;\n }\n\n if (!vendor) {\n return (\n <Card>\n <div style={{ padding: \"24px\" }}>{t(\"NO_VENDOR_FOUND\") || \"No Vendor Found\"}</div>\n </Card>\n );\n }\n\n return (\n <Fragment>\n <Card className=\"surveyor-dashboard\">\n {/* Header + Download Report */}\n <div className=\"ekyc-dashboard-section\">\n <div className=\"ekyc-details-wrapper\">\n <div className=\"details-top-row\">\n <div className=\"detail-item first-row\">\n <div className=\"ekyc-dashboard-header\">\n <div className=\"header-content\">\n <h2 className=\"name\">{vendorName}</h2>\n <div className=\"designation\">({t(\"VENDOR_AGENCY\") || \"Agency / Vendor\"})</div>\n </div>\n </div>\n\n {/* Download Report — far right */}\n <div className=\"report-download relative\">\n <button\n disabled={ekycDownloadLoading}\n className={`download-btn relative ${ekycDownloadLoading ? \"disabled\" : \"\"}`}\n onClick={() => setShowFilterModal(true)}\n >\n <MdDownloadIcon />{ekycDownloadLoading ? t(\"DOWNLOADING\") || \"Downloading\": t(\"DOWNLOAD_REPORT\") || \"Download Report\"}\n </button>\n </div>\n </div>\n </div>\n <div className=\"details-top-row\">\n <div className=\"detail-item\">\n <span className=\"label\">{t(\"NAME\")}</span>\n <span className=\"value\">{ownerName}</span>\n </div>\n <div className=\"detail-item\">\n <span className=\"label\">{t(\"GENDER\")}</span>\n <span className=\"value\">{gender}</span>\n </div>\n <div className=\"detail-item\">\n <span className=\"label\">{t(\"MOBILE\")}</span>\n <span className=\"value\">{mobileNumber}</span>\n </div>\n\n <div className=\"detail-item\">\n <span className=\"label\">{t(\"EMAIL\")}</span>\n <span className=\"value\">{email}</span>\n </div>\n </div>\n\n {/* Bottom Row: Assigned Zones Full Width */}\n <div className=\"full-width-item\">\n <span className=\"label\">{t(\"ASSIGNED_ZONES\") || \"Assigned Zones\"}</span>\n <span className=\"value\">\n {zoneIds.length > 0 ? (\n <div className=\"selected-zones\" style={{ marginTop: \"4px\", width: \"100%\", display: \"flex\", flexWrap: \"wrap\", gap: \"8px\" }}>\n {zoneIds.map((zone) => (\n <span key={zone} className=\"selected-zone-chip\">\n {t(zone) || zone}\n </span>\n ))}\n </div>\n ) : (\n \"N/A\"\n )}\n </span>\n </div>\n </div>\n </div>\n\n {/* Stats */}\n <div className=\"stats-wrapper\">\n {cards.map((card, idx) => (\n <StatCard key={idx} title={t(card.label)} value={card.count} type={card.type} isLoading={isPageLoading} icon={card.icon} />\n ))}\n </div>\n\n <div>\n <Table\n t={t}\n tableTitle={t(\"CONNECTED_SUPERVISORS\") || \"Connected Supervisors\"}\n tableClass=\"ekycTable\"\n isTableScrollable={true}\n data={progressData?.supervisorReport}\n columns={supervisorColumns}\n isLoading={isProgressLoading}\n totalRecords={progressData?.supervisorReport?.length}\n currentPage={currentPage}\n pageSizeLimit={pageSize}\n isPaginationRequired={true}\n onNextPage={() => {\n if (currentPage < Math.ceil(progressData?.supervisorReport?.length / pageSize) - 1) {\n setCurrentPage((prev) => prev + 1);\n }\n }}\n onPrevPage={() => {\n if (currentPage > 0) {\n setCurrentPage((prev) => prev - 1);\n }\n }}\n onFirstPage={() => setCurrentPage(0)}\n onLastPage={() => setCurrentPage(Math.max(Math.ceil(progressData?.supervisorReport?.length / pageSize) - 1, 0))}\n onPageSizeChange={(e) => {\n setPageSize(Number(e.target.value));\n setCurrentPage(0);\n }}\n />\n </div>\n </Card>\n {showFilterModal && (\n <EkycFilterModal\n t={t}\n onClose={() => setShowFilterModal(false)}\n onApply={handleApplyFilters}\n customDate={customDate}\n setCustomDate={setCustomDate}\n ekycStatus={ekycStatus}\n setEkycStatus={setEkycStatus}\n />\n )}\n </Fragment>\n );\n};\n\nexport default VendorDetailsCard;\n","import React, { useState } from \"react\";\nimport { useHistory } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport { Header } from \"@djb25/digit-ui-react-components\";\n\nconst useInboxTableConfig = ({\n parentRoute,\n onPageSizeChange,\n formState,\n totalCount,\n table,\n dispatch,\n checkPathName,\n onSortingByData,\n tenantId,\n inboxStyles = {},\n tableStyle = {},\n}) => {\n const { t } = useTranslation();\n\n const toTitleCase = (str) => {\n if (!str) return \"\";\n return String(str)\n .toLowerCase()\n .replace(/_/g, \" \")\n .replace(/\\b\\w/g, (c) => c.toUpperCase());\n };\n const history = useHistory();\n const [selectedKno, setSelectedKno] = useState(\"\");\n const { data: reviewData, getReview } = Digit.Hooks.ekyc.useEkycAPI(\"review\", tenantId);\n const handleReview = (kno) => {\n setSelectedKno(kno);\n getReview({ kno });\n };\n\n const limit = formState?.tableForm?.limit || 10;\n const offset = formState?.tableForm?.offset || 0;\n const userType = Digit.SessionStorage.get(\"User\")?.info?.type?.toLowerCase() || \"citizen\";\n\n React.useEffect(() => {\n if (reviewData) {\n history.push(`/digit-ui/${userType}/ekyc/review/${selectedKno}`, { aadhaarData: reviewData?.aadhaarData, reviewData });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [reviewData]);\n\n const tableColumnConfig = [\n {\n Header: t(\"EKYC_APPLICATION_NO\"),\n accessor: \"applicationNumber\",\n disableSortBy: true,\n Cell: ({ row }) => {\n const kno = row.original?.kno || row.original?.applicationNumber || \"NA\";\n return (\n <span className=\"link\" onClick={() => handleReview(kno)}>\n {kno}\n </span>\n );\n },\n },\n {\n Header: t(\"EKYC_CITIZEN_NAME\"),\n accessor: \"citizenName\",\n Cell: ({ row }) => <span>{toTitleCase(row.original?.citizenName) || \"NA\"}</span>,\n },\n {\n Header: t(\"EKYC_STATUS\"),\n accessor: \"actionStatus\",\n Cell: ({ row }) => {\n const status = (row.original?.status || \"DEFAULT\").toUpperCase();\n return <span className={`ekyc-status-tag ${status}`}>{toTitleCase(row.original?.status || \"DEFAULT\")}</span>;\n },\n },\n {\n Header: t(\"SUBMITTED_AT\") || \"Submitted At\",\n accessor: \"submittedAt\",\n Cell: ({ value }) => (value ? Digit.DateUtils.ConvertEpochToDate(value) : \"-\"),\n },\n {\n Header: t(\"ASSIGNED_AT\") || \"Assigned At\",\n accessor: \"assignedAt\",\n Cell: ({ value }) => (value ? Digit.DateUtils.ConvertEpochToDate(value) : \"-\"),\n },\n {\n Header: t(\"EKYC_EKYC_STATUS\"),\n accessor: \"ekycStatus\",\n Cell: ({ row }) => {\n const raw = row.original?.ekycStatus || row.original?.ekycstatus || \"NA\";\n const ekycStatus = raw.toUpperCase();\n return <span className={`ekyc-status-tag ${ekycStatus}`}>{toTitleCase(raw)}</span>;\n },\n },\n ];\n\n return {\n disableSort: false,\n autoSort: false,\n manualPagination: true,\n initSortId: \"applicationDate\",\n onPageSizeChange: onPageSizeChange,\n currentPage: Math.floor(offset / limit),\n onNextPage: () =>\n dispatch({\n action: \"mutateTableForm\",\n data: { ...formState.tableForm, offset: parseInt(formState.tableForm?.offset) + limit },\n checkPathName,\n }),\n onPrevPage: () =>\n dispatch({\n action: \"mutateTableForm\",\n data: { ...formState.tableForm, offset: parseInt(formState.tableForm?.offset) - limit },\n checkPathName,\n }),\n pageSizeLimit: limit,\n onSort: onSortingByData,\n // sortParams: [{id: getValues(\"sortBy\"), desc: getValues(\"sortOrder\") === \"DESC\" ? true : false}],\n totalRecords: totalCount,\n onSearch: formState?.searchForm?.message,\n onLastPage: () =>\n dispatch({\n action: \"mutateTableForm\",\n data: { ...formState.tableForm, offset: Math.max(0, Math.floor((totalCount - 1) / limit) * limit) },\n checkPathName,\n }),\n onFirstPage: () => dispatch({ action: \"mutateTableForm\", data: { ...formState.tableForm, offset: 0 }, checkPathName }),\n // globalSearch: {searchForItemsInTable},\n // searchQueryForTable,\n data: table,\n columns: tableColumnConfig,\n inboxStyles: { ...inboxStyles },\n tableStyle: { ...tableStyle },\n };\n};\n\nexport default useInboxTableConfig;\n","import React from \"react\";\nimport { Controller } from \"react-hook-form\";\nimport { CardLabelError, TextInput, CustomTooltip, Label } from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\n\nconst SearchFormFieldsComponents = ({ searchFormState, controlSearchForm, searchType }) => {\n const { t } = useTranslation();\n const { errors } = searchFormState;\n\n if (searchType === \"mobile\") {\n return (\n <React.Fragment>\n {/* MOBILE NUMBER */}\n <span className=\"mobile-input\">\n <Label className=\"flex-roww flex-gap-2\">\n {t(\"ES_COMMON_MOBILE_NUM\") || \"Mobile Number\"}\n <CustomTooltip message={t(\"EKYC_MOBILE_NUMBER_MESSAGE\")} />\n </Label>\n\n <Controller\n name=\"mobileNumber\"\n control={controlSearchForm}\n defaultValue=\"\"\n rules={{\n pattern: {\n value: /^[6-9]\\d{9}$/,\n message: t(\"ERR_INVALID_MOBILE_NUMBER\"),\n },\n }}\n render={({ onChange, value }) => <TextInput value={value || \"\"} onChange={(e) => onChange(e.target.value)} />}\n />\n\n {errors?.mobileNumber && <CardLabelError>{errors.mobileNumber.message}</CardLabelError>}\n </span>\n </React.Fragment>\n );\n }\n\n return (\n <React.Fragment>\n {/* K NUMBER (KNO) */}\n <span className=\"mobile-input\">\n <Label className=\"flex-roww flex-gap-2\">\n {t(\"EKYC_K.NUMBER\") || \"K Number\"}\n <CustomTooltip message={t(\"EKYC_K.NUMBER_MESSAGE\")} />\n </Label>\n\n <Controller\n name=\"kNumber\"\n control={controlSearchForm}\n defaultValue=\"\"\n rules={{\n pattern: {\n value: /^[0-9]{10}$/,\n message: t(\"ERR_INVALID_KNO\"),\n },\n }}\n render={({ onChange, value }) => <TextInput value={value || \"\"} onChange={(e) => onChange(e.target.value)} />}\n />\n\n {errors?.kNumber && <CardLabelError>{errors.kNumber.message}</CardLabelError>}\n </span>\n </React.Fragment>\n );\n};\n\nexport default SearchFormFieldsComponents;\n","import { RadioButtons, SearchField } from \"@djb25/digit-ui-react-components\";\nimport React, { useState } from \"react\";\nimport { Controller, useFormContext } from \"react-hook-form\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nconst useInboxMobileCardsData = ({ table, tenantId, isSupervisor = false }) => {\n const { t } = useTranslation();\n const history = useHistory();\n const [selectedKno, setSelectedKno] = useState(\"\");\n const { data: reviewData, getReview } = Digit.Hooks.ekyc.useEkycAPI(\"review\", tenantId);\n const userType = Digit.SessionStorage.get(\"User\")?.info?.type?.toLowerCase() || \"citizen\";\n\n React.useEffect(() => {\n if (!isSupervisor && reviewData) {\n history.push(`/digit-ui/${userType}/ekyc/review/${selectedKno}`, { aadhaarData: reviewData?.aadhaarData, reviewData });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [reviewData, isSupervisor]);\n\n const handleReview = (kno) => {\n setSelectedKno(kno);\n getReview({ kno });\n };\n\n const handleSupervisorReview = (id) => {\n history.push(`/digit-ui/${userType}/ekyc/assign/surveyor-details/${id}`);\n };\n\n const dataForMobileInboxCards = table?.map((item) => {\n if (isSupervisor) {\n const id = item.id;\n const status = item.status || \"DEFAULT\";\n\n return {\n [t(\"SURVEYOR_NAME\")]: (\n <span className=\"link\" onClick={() => handleSupervisorReview(id)}>\n {item.surveyorName || item.name || \"NA\"}\n </span>\n ),\n [t(\"MOBILE_NUMBER\")]: item.mobileNo || item.owner?.mobileNumber || \"NA\",\n [t(\"STATUS\")]: <span className={`ekyc-status-tag ${status}`}>{t(status)}</span>,\n [t(\"SERVICE_TYPE\")]: item.serviceType || \"NA\",\n };\n } else {\n const kno = item.kno || item.applicationNumber || \"NA\";\n const status = (item.status || \"DEFAULT\").toUpperCase();\n const ekycStatus = (item.ekycStatus || item.ekycstatus || \"NA\").toUpperCase();\n\n return {\n [t(\"EKYC_APPLICATION_NO\")]: (\n <span className=\"link\" onClick={() => handleReview(kno)}>\n {kno}\n </span>\n ),\n [t(\"EKYC_CITIZEN_NAME\")]: item.citizenName || \"NA\",\n [t(\"EKYC_STATUS\")]: <span className={`ekyc-status-tag ${status}`}>{t(`${status}`)}</span>,\n [t(\"SUBMITTED_AT\")]: item.submittedAt ? Digit.DateUtils.ConvertEpochToDate(item.submittedAt) : \"-\",\n [t(\"ASSIGNED_AT\")]: item.assignedAt ? Digit.DateUtils.ConvertEpochToDate(item.assignedAt) : \"-\",\n [t(\"EKYC_EKYC_STATUS\")]: <span className={`ekyc-status-tag ${ekycStatus}`}>{t(`${ekycStatus}`)}</span>,\n };\n }\n });\n\n const MobileSortFormValues = () => {\n const sortOrderOptions = [\n {\n code: \"DESC\",\n i18nKey: \"ES_INBOX_DATE_LATEST_FIRST\",\n },\n {\n code: \"ASC\",\n i18nKey: \"ES_INBOX_DATE_LATEST_LAST\",\n },\n ];\n const { control: controlSortForm } = useFormContext();\n return (\n <SearchField>\n <Controller\n name=\"sortOrder\"\n control={controlSortForm}\n render={({ onChange, value }) => (\n <RadioButtons\n onSelect={(e) => {\n onChange(e.code);\n }}\n selectedOption={sortOrderOptions.filter((option) => option.code === value)[0]}\n optionsKey=\"i18nKey\"\n name=\"sortOrder\"\n options={sortOrderOptions}\n />\n )}\n />\n </SearchField>\n );\n };\n\n return {\n data: dataForMobileInboxCards,\n isTwoDynamicPrefix: true,\n getRedirectionLink: () => {},\n handleClickEnabled: false,\n serviceRequestIdKey: isSupervisor ? \"id\" : \"applicationNo\",\n MobileSortFormValues,\n };\n};\n\nexport default useInboxMobileCardsData;\n","import React, { useMemo, useCallback, useReducer } from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport { InboxComposer } from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { FaUsers, FaCheckCircle, FaClock, FaChartLine } from \"react-icons/fa\";\nimport useInboxTableConfig from \"../../hook/useInboxTableConfig\";\nimport SearchFormFieldsComponents from \"../../components/SearchFormFieldsComponent\";\nimport useInboxMobileCardsData from \"../../hook/useInboxMobileCardsData\";\n\nconst StatCard = ({ title, value, type, isLoading, icon }) => (\n <div className={`stat-card ${type}`}>\n {isLoading ? (\n <React.Fragment>\n <div className=\"stat-title skeleton skeleton-text\"></div>\n <div className=\"stat-value skeleton skeleton-number\"></div>\n </React.Fragment>\n ) : (\n <React.Fragment>\n <div className=\"stat-title\">{title}</div>\n <div className=\"stat-value\">{value}</div>\n {icon && <div className=\"stat-icon\">{icon}</div>}\n </React.Fragment>\n )}\n </div>\n);\n\nconst Inbox = ({ parentRoute }) => {\n const tenantId = Digit.ULBService.getCurrentTenantId();\n const location = useLocation();\n\n const formInitValue = {\n filterForm: {},\n searchForm: {},\n tableForm: {\n limit: 10,\n offset: 0,\n sortBy: \"createdTime\",\n sortOrder: \"DESC\",\n },\n };\n\n const [formState, dispatch] = useReducer(formReducer, formInitValue);\n\n const filters = useMemo(() => {\n const searchForm = formState?.searchForm || {};\n return {\n ...searchForm,\n ...(searchForm.kNumber && { kno: searchForm.kNumber }),\n };\n }, [formState?.searchForm]);\n\n const queryParams = useMemo(() => {\n return {\n tenantId,\n offset: formState?.tableForm?.offset || 0,\n limit: formState?.tableForm?.limit || 10,\n };\n }, [tenantId, formState?.tableForm?.offset, formState?.tableForm?.limit]);\n\n const { isLoading: isListLoading, data: listData = {} } = Digit.Hooks.ekyc.useEkycApplicationList(filters, queryParams, {\n enabled: !!tenantId,\n keepPreviousData: true,\n });\n\n // Fetch vendors from DSO search to get vendor ID for progress API\n // const { data: vendorSearchResponse } = Digit.Hooks.fsm.useDsoSearch(\n // tenantId,\n // { status: \"ACTIVE\" },\n // { enabled: !!tenantId, staleTime: 300000 }\n // );\n\n // const { targetVendorId, allVendorIds } = useMemo(() => {\n // if (!vendorSearchResponse || vendorSearchResponse.length === 0) {\n // return { targetVendorId: null, allVendorIds: [] };\n // }\n // const loggedInUser = Digit.SessionStorage.get(\"User\")?.info;\n // const userUuid = loggedInUser?.uuid;\n // const userMobile = loggedInUser?.mobileNumber;\n // const matchesUser = (v) => {\n // const ownerUuid = v.owner?.uuid || v.owner?.id;\n // const ownerMobile = v.owner?.mobileNumber || v.mobileNumber;\n // return (userUuid && ownerUuid === userUuid) || (userMobile && ownerMobile === userMobile);\n // };\n\n // const allIds = vendorSearchResponse\n // .map((v) => {\n // const dso = v.dsoDetails || v;\n // return dso.id || dso.vendorId || v.id || v.vendorId;\n // })\n // .filter(Boolean);\n\n // const matched = vendorSearchResponse.find((v) => matchesUser(v.dsoDetails || v));\n // let matchedId = null;\n // if (matched) {\n // const dso = matched.dsoDetails || matched;\n // matchedId = dso.id || dso.vendorId || matched.id || matched.vendorId;\n // }\n\n // return { targetVendorId: matchedId, allVendorIds: allIds };\n // }, [vendorSearchResponse]);\n\n const { isLoading: isProgressLoading, data: progressData } = Digit.Hooks.ekyc.useEkycAssignmentProgress(\n { tenantId, allVendorsDetailed: true },\n {\n enabled: !!tenantId,\n keepPreviousData: true,\n }\n );\n\n const searchDetails = useMemo(\n () => ({\n kno: formState?.searchForm?.kNumber || \"\",\n name: formState?.searchForm?.kName || \"\",\n }),\n [formState?.searchForm?.kNumber, formState?.searchForm?.kName]\n );\n\n const isSearchActive = !!(searchDetails.kno || searchDetails.name);\n\n const { isLoading: isSearchLoading, data: searchData } = Digit.Hooks.ekyc.useSearchConnection(\n {\n tenantId,\n details: searchDetails,\n },\n {\n enabled: !!tenantId && !!searchDetails.kno, // 🔥 important\n keepPreviousData: true,\n }\n );\n\n const sourceData = useMemo(() => {\n if (isSearchActive) {\n if (!searchData) return [];\n return [searchData];\n }\n\n return listData?.consumerList || [];\n }, [isSearchActive, searchData, listData]);\n\n const filteredData = useMemo(() => {\n return (sourceData || []).map((item) => {\n // ✅ detect search response\n const isSearchItem = !!item.connectionDetails;\n\n if (isSearchItem) {\n return {\n applicationNo: item.propertyInfo?.kno || \"\",\n connectionNo: item.propertyInfo?.kno || \"\",\n owner: item.connectionDetails?.consumerName || \"\",\n applicationNumber: item.propertyInfo?.kno || \"\",\n citizenName: item.connectionDetails?.consumerName || \"\",\n status: item.connectionDetails?.statusflag || \"\",\n ekycStatus: (\n item.connectionDetails?.ekycStatus ||\n item.connectionDetails?.ekycstatus ||\n item.ekycStatus ||\n item.ekycstatus ||\n \"NA\"\n ).toUpperCase(),\n sla: 0,\n };\n }\n\n // ✅ dashboard mapping\n const fullName = [item.firstName, item.middleName, item.lastName].filter(Boolean).join(\" \");\n return {\n ...item,\n applicationNo: item.kno || item.applicationNumber || \"\",\n connectionNo: item.kno || \"\",\n owner: fullName || item.consumerName || item.citizenName || \"\",\n applicationNumber: item.kno || item.applicationNumber || \"\",\n citizenName: fullName || item.consumerName || item.citizenName || \"\",\n status: item.status || \"\",\n ekycStatus: (item.ekycStatus || item.ekycstatus || \"NA\").toUpperCase(),\n sla: item.sla ?? 0,\n };\n });\n }, [sourceData]);\n\n const { t } = useTranslation();\n\n const progressMetrics = useMemo(() => {\n if (!progressData) return { totalKnos: 0, submittedKnos: 0, pendingKnos: 0, progressPercent: 0 };\n\n const totalKnos = progressData?.totalKnos ?? progressData?.totalAssignments ?? 0;\n const submittedKnos = progressData?.submittedKnos ?? 0;\n const pendingKnos = progressData?.pendingKnos ?? (totalKnos >= submittedKnos ? totalKnos - submittedKnos : 0);\n const progressPercent =\n progressData?.overallProgressPercent ?? progressData?.progressPercent ?? (totalKnos > 0 ? ((submittedKnos / totalKnos) * 100).toFixed(1) : 0);\n\n return {\n totalKnos,\n submittedKnos,\n pendingKnos,\n progressPercent,\n };\n }, [progressData]);\n\n const cards = useMemo(\n () => [\n {\n label: t(\"TOTAL_EKYC_APPLICATIONS\"),\n count: progressMetrics?.totalKnos || 0,\n color: \"#0B2559\",\n type: \"today\",\n icon: <FaUsers />,\n },\n {\n label: t(\"EKYC_SUBMITTED_TITLE\"),\n count: progressMetrics?.submittedKnos || 0,\n color: \"#10B981\",\n type: \"month\",\n icon: <FaCheckCircle />,\n },\n {\n label: t(\"PENDING_APPLICATIONS\"),\n count: progressMetrics?.pendingKnos || 0,\n color: \"#F59E0B\",\n type: \"pending\",\n icon: <FaClock />,\n },\n {\n label: t(\"OVERALL_PROGRESS\"),\n count: `${progressMetrics?.progressPercent || 0}%`,\n color: \"#A855F7\",\n type: \"progress\",\n icon: <FaChartLine />,\n },\n ],\n [progressMetrics, t]\n );\n const totalRecords = listData?.totalCount || 0;\n\n const checkPathName = location.pathname.includes(\"ekyc/inbox\");\n\n const SearchFormFields = useCallback(\n ({ registerRef, searchFormState, controlSearchForm }) => (\n <SearchFormFieldsComponents {...{ registerRef, searchFormState, controlSearchForm }} searchType=\"kno\" className=\"search\" />\n ),\n []\n );\n\n const tableOrderFormDefaultValues = {\n sortBy: \"createdTime\",\n limit: window.Digit.Utils.browser.isMobile() ? 50 : 10,\n offset: 0,\n sortOrder: \"DESC\",\n };\n\n const onSearchFormSubmit = (data) => {\n data.hasOwnProperty(\"\") && delete data?.[\"\"];\n dispatch({ action: \"mutateTableForm\", data: { ...tableOrderFormDefaultValues }, checkPathName });\n dispatch({ action: \"mutateSearchForm\", data, checkPathName });\n };\n\n const searchFormDefaultValues = {\n kNumber: \"\",\n applicationNumber: \"\",\n consumerNo: \"\",\n };\n\n const onSearchFormReset = (setSearchFormValue) => {\n setSearchFormValue(\"kNumber\", null);\n setSearchFormValue(\"applicationNumber\", null);\n setSearchFormValue(\"consumerNo\", null);\n dispatch({ action: \"mutateSearchForm\", data: searchFormDefaultValues });\n };\n\n const propsForSearchForm = {\n SearchFormFields,\n onSearchFormSubmit,\n searchFormDefaultValues: formState?.searchForm,\n resetSearchFormDefaultValues: searchFormDefaultValues,\n onSearchFormReset,\n className: \"search-form-wns-inbox\",\n };\n\n function formReducer(state, payload) {\n // ✅ safety for SLA\n switch (payload.action) {\n case \"mutateSearchForm\":\n Digit.SessionStorage.set(\"EKYC.INBOX\", { ...state, searchForm: payload.data });\n return { ...state, searchForm: payload.data };\n\n case \"mutateFilterForm\":\n Digit.SessionStorage.set(\"EKYC.INBOX\", { ...state, filterForm: payload.data });\n return { ...state, filterForm: payload.data };\n\n case \"mutateTableForm\":\n Digit.SessionStorage.set(\"EKYC.INBOX\", { ...state, tableForm: payload.data });\n return { ...state, tableForm: payload.data };\n\n default:\n return state; // ✅ IMPORTANT\n }\n }\n\n const onPageSizeChange = (e) => {\n const newLimit = Number(e.target.value);\n\n dispatch({\n action: \"mutateTableForm\",\n data: {\n ...formState.tableForm,\n limit: newLimit,\n offset: 0, // reset page\n },\n checkPathName,\n });\n };\n\n const onSortingByData = (e) => {\n if (e.length > 0) {\n const [{ id, desc }] = e;\n const sortOrder = desc ? \"DESC\" : \"ASC\";\n const sortBy = id;\n\n if (!(formState.tableForm.sortBy === sortBy && formState.tableForm.sortOrder === sortOrder)) {\n dispatch({\n action: \"mutateTableForm\",\n data: {\n ...formState.tableForm,\n sortBy: id,\n sortOrder: desc ? \"DESC\" : \"ASC\",\n },\n checkPathName,\n });\n }\n }\n };\n\n const propsForInboxTable = useInboxTableConfig({\n ...{\n parentRoute,\n onPageSizeChange,\n formState,\n totalCount: totalRecords,\n table: filteredData,\n dispatch,\n onSortingByData,\n tenantId,\n checkPathName,\n inboxStyles: { overflowX: \"scroll\", overflowY: \"hidden\" },\n tableStyle: { width: \"70%\" },\n },\n });\n\n const onMobileSortOrderData = (data) => {\n const { sortOrder } = data;\n dispatch({ action: \"mutateTableForm\", data: { ...formState.tableForm, sortOrder } });\n };\n\n const onSortFormReset = (setSortFormValue) => {\n setSortFormValue(\"sortOrder\", \"DESC\");\n dispatch({ action: \"mutateTableForm\", data: tableOrderFormDefaultValues });\n };\n\n const propsForMobileSortForm = { onMobileSortOrderData, sortFormDefaultValues: formState?.tableForm, onSortFormReset };\n const propsForInboxMobileCards = useInboxMobileCardsData({ table: filteredData, tenantId });\n\n const isInboxLoading = isListLoading || isSearchLoading;\n\n return (\n <div className=\"app-container\">\n {/* Stats */}\n <div className=\"surveyor-dashboard\" style={{ overflowY: \"visible\", marginBottom: \"24px\" }}>\n <div className=\"stats-wrapper\">\n {cards.map((card, idx) => (\n <StatCard key={idx} title={t(card.label)} value={card.count} type={card.type} isLoading={isProgressLoading} icon={card.icon} />\n ))}\n </div>\n </div>\n\n <InboxComposer\n {...{\n isInboxLoading,\n // PropsForInboxLinks,\n ...propsForSearchForm,\n // ...propsForFilterForm,\n ...propsForMobileSortForm,\n propsForInboxTable,\n propsForInboxMobileCards,\n formState,\n countData: listData,\n forceTable: true,\n showSearchOnMobile: true,\n }}\n />\n </div>\n );\n};\n\nexport default Inbox;\n","import React, { Fragment, useState } from \"react\";\nimport {\n Card,\n CardSubHeader,\n StatusTable,\n Row,\n SubmitBar,\n Loader,\n ActionBar,\n CheckBox,\n LinkButton,\n EditIcon,\n GenericFileIcon,\n Menu,\n Toast,\n} from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory, useLocation, useParams } from \"react-router-dom\";\n\n// ─── Constants ───────────────────────────────────────────────────────────────\n\nconst ActionButton = ({ jumpTo, state }) => {\n const history = useHistory();\n function routeTo() {\n history.push(jumpTo, { ...state, isEditing: true });\n }\n return (\n <LinkButton label={<EditIcon style={{ width: \"20px\", height: \"20px\", fill: \"#F47738\" }} />} style={{ margin: 0, padding: 0 }} onClick={routeTo} />\n );\n};\n\nconst checkForNA = (value) => (value !== null && value !== undefined && value !== \"\" ? value : \"N/A\");\n\nconst boolToYesNo = (value, t) => {\n if (value === true || value === \"true\" || String(value).toLowerCase() === \"yes\") return t(\"CORE_COMMON_YES\");\n if (value === false || value === \"false\" || String(value).toLowerCase() === \"no\") return t(\"CORE_COMMON_NO\");\n if (value === \"true\") return t(\"CORE_COMMON_YES\");\n if (value === \"false\") return t(\"CORE_COMMON_NO\");\n};\n/**\n * Robust data extraction for comparison.\n * The API returns { applicationReviewInfo: { newData: { ... }, oldData: { ... } } }\n */\nconst extractReviewData = (searchData, flowState) => {\n const rawData = searchData && Object.keys(searchData).length > 0 ? searchData : flowState?.reviewData || {};\n\n // Navigate through applicationReviewInfo -> newData/oldData\n const reviewWrapper = rawData?.applicationReviewInfo || rawData?.applicationReview || rawData;\n const applicationData = (Array.isArray(reviewWrapper) ? reviewWrapper[0] : reviewWrapper) || {};\n\n return {\n newData: applicationData?.newData || applicationData,\n oldData: applicationData?.oldData || null,\n };\n};\n\nconst ReviewSection = ({ title, fields, newData, oldData, t, jumpTo, state, hideEditButton }) => {\n return (\n <div\n className=\"review-section-wrapper\"\n style={{ marginBottom: \"48px\", background: \"#fff\", borderRadius: \"12px\", border: \"1px solid #EAECF0\", overflow: \"hidden\" }}\n >\n <div\n style={{\n padding: \"20px 24px\",\n background: \"#F9FAFB\",\n borderBottom: \"1px solid #EAECF0\",\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n }}\n >\n <CardSubHeader style={{ margin: 0, fontSize: \"18px\", color: \"#101828\", fontWeight: \"700\" }}>{title}</CardSubHeader>\n {jumpTo && !hideEditButton && <ActionButton jumpTo={jumpTo} state={state} />}\n </div>\n\n <div style={{ padding: \"0 24px\" }}>\n <table style={{ width: \"100%\", borderCollapse: \"collapse\", tableLayout: \"fixed\" }}>\n <thead>\n <tr>\n <th\n style={{\n padding: \"16px 0\",\n textAlign: \"left\",\n color: \"#667085\",\n fontSize: \"12px\",\n fontWeight: \"600\",\n textTransform: \"uppercase\",\n width: \"30%\",\n }}\n >\n {t(\"EKYC_FIELD_NAME\")}\n </th>\n <th\n style={{\n padding: \"16px 0\",\n textAlign: \"left\",\n color: \"#667085\",\n fontSize: \"12px\",\n fontWeight: \"600\",\n textTransform: \"uppercase\",\n width: \"35%\",\n }}\n >\n {t(\"EKYC_EXISTING_INFORMATION\")}\n </th>\n <th\n style={{\n padding: \"16px 0\",\n textAlign: \"left\",\n color: \"#667085\",\n fontSize: \"12px\",\n fontWeight: \"600\",\n textTransform: \"uppercase\",\n width: \"35%\",\n }}\n >\n {t(\"EKYC_PROPOSED_UPDATES\")}\n </th>\n </tr>\n </thead>\n <tbody>\n {fields.map((field, idx) => {\n const valNew = newData?.[field.key];\n const valOld = oldData?.[field.key];\n const normalizeVal = (v) => (v === null || v === undefined || v === \"\" ? \"\" : String(v));\n const isChanged = oldData && valOld !== undefined && normalizeVal(valNew) !== normalizeVal(valOld);\n\n return (\n <tr key={idx} style={{ borderTop: \"1px solid #F2F4F7\" }}>\n <td style={{ padding: \"16px 0\", fontSize: \"14px\", color: \"#344054\", fontWeight: \"500\" }}>{field.preTranslated ? field.label : t(field.label)}</td>\n <td style={{ padding: \"16px 0\", fontSize: \"14px\", color: \"#667085\" }}>\n {field.isBool ? boolToYesNo(valOld, t) : checkForNA(valOld)}\n </td>\n <td\n style={{ padding: \"16px 0\", fontSize: \"14px\", color: isChanged ? \"#1B8B32\" : \"#101828\", fontWeight: isChanged ? \"700\" : \"400\" }}\n >\n <div style={{ display: \"flex\", alignItems: \"center\", gap: \"8px\" }}>\n {field.isBool ? boolToYesNo(valNew, t) : checkForNA(valNew)}\n {isChanged && (\n <span\n style={{\n background: \"#ECFDF3\",\n color: \"#067647\",\n padding: \"2px 8px\",\n borderRadius: \"12px\",\n fontSize: \"10px\",\n fontWeight: \"600\",\n }}\n >\n {t(\"EKYC_CHANGED\")}\n </span>\n )}\n </div>\n </td>\n </tr>\n );\n })}\n </tbody>\n </table>\n </div>\n </div>\n );\n};\n\nconst Review = () => {\n const { t } = useTranslation();\n const history = useHistory();\n const location = useLocation();\n let { kno, applicationId } = useParams();\n\n const [agree, setAgree] = useState(false);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [showPreview, setShowPreview] = useState(false);\n const [previewUrl, setPreviewUrl] = useState(\"\");\n const [showOptions, setShowOptions] = useState(false);\n const [showToast, setShowToast] = useState(false);\n const [toastData, setToastData] = useState({ error: false, label: \"\" });\n\n const options = [\n { action: t(\"APPROVE\") },\n { action: t(\"REJECT\") }\n ];\n\n const flowState = location.state || {};\n const { edits = {} } = flowState;\n const activeKno = kno || applicationId;\n\n const { aadhaarData = {}, addressDetails: editedAddress = {}, propertyDetails: editedProperty = {}, meterDetails: editedMeter = {} } = edits;\n\n const tenantId = Digit.ULBService.getCurrentTenantId();\n const workflowMutation = Digit.Hooks.ekyc.useEkycWorkflow(tenantId);\n const updateMutation = Digit.Hooks.ekyc.useEkycUpdate(tenantId);\n\n const { data: searchData, isLoading: isSearchLoading } = Digit.Hooks.ekyc.useEkycSearchReview({ kno: activeKno, fetchType: \"REVIEW\" }, tenantId, {\n enabled: !!activeKno,\n });\n\n const userRoles = Digit.SessionStorage.get(\"User\")?.info?.roles?.map((ele) => ele.code) || [];\n const isZRO = userRoles.includes(\"EKYC_ZRO\") || userRoles.includes(\"ZRO\");\n // const isSupervisorOrSurveyorOrVendor = userRoles.includes(\"EKYC_SUPERVISOR\") || userRoles.includes(\"EKYC_SURVEYOR\") || userRoles.includes(\"EKYC_VENDOR\");\n const isSupervisorOrSurveyorOrVendor = userRoles.includes(\"EKYC_SURVEYOR\") || userRoles.includes(\"EKYC_VENDOR\");\n\n // Dynamically resolve the primary EKYC role of the logged-in user\n // const EKYC_ROLE_PRIORITY = [\"EKYC_ZRO\", \"ZRO\", \"EKYC_SUPERVISOR\", \"EKYC_SURVEYOR\", \"EKYC_VENDOR\"];\n // const currentUserRole = EKYC_ROLE_PRIORITY.find((r) => userRoles.includes(r)) || userRoles[0] || \"EMPLOYEE\";\n\n const isStatusView = location.pathname.includes(\"/status/\");\n const hideEditButton = (isSupervisorOrSurveyorOrVendor && !isZRO) || isStatusView;\n\n // ── Data Consolidation (kept for approve/reject submit payloads) ──────────\n const { newData: apiNewData, oldData: apiOldData } = extractReviewData(searchData, flowState);\n\n // Flatten all sub-objects so headerMapping flat keys (kno, mobileNo, meterNumber etc.) are accessible\n const flatNewData = apiNewData ? {\n ...(apiNewData || {}),\n ...(apiNewData?.connectionDetails || {}),\n ...(apiNewData?.addressDetails || {}),\n ...(apiNewData?.propertyInfo || {}),\n ...(apiNewData?.meterDetails || {}),\n } : null;\n const flatOldData = apiOldData ? {\n ...(apiOldData || {}),\n ...(apiOldData?.connectionDetails || {}),\n ...(apiOldData?.addressDetails || {}),\n ...(apiOldData?.propertyInfo || {}),\n ...(apiOldData?.meterDetails || {}),\n } : null;\n\n const prepareConsolidatedData = (data) => {\n if (!data) return null;\n const apiConn = data?.connectionDetails || data || {};\n const apiAddr = data?.addressDetails || data || {};\n const apiProp = data?.propertyInfo || data || {};\n const apiMeter = data?.meterDetails || data || {};\n\n return {\n connection: {\n consumerName:\n apiConn?.consumerName || (apiConn?.firstName ? [apiConn.firstName, apiConn.middleName, apiConn.lastName].filter(Boolean).join(\" \") : null),\n address: apiConn?.address || apiConn?.addressRaw,\n connectionType: apiConn?.connectionType || apiConn?.connectionCategory,\n meterNumber: apiConn?.meterNumber || apiConn?.meterNo,\n phoneNumber: apiConn?.phoneNumber || apiConn?.mobileNo || apiConn?.mobileNumber,\n email: apiConn?.email,\n statusflag: apiConn?.statusflag || apiConn?.statusFlag,\n ekycStatus: apiConn?.ekycStatus,\n knumber: apiConn?.knumber || apiConn?.kno,\n },\n address: {\n fullAddress: apiAddr?.fullAddress || apiAddr?.addressRaw,\n flatHouseNumber: apiAddr?.flatHouseNumber || apiAddr?.flatNo,\n buildingTower: apiAddr?.buildingTower || apiAddr?.building,\n landmark: apiAddr?.landmark,\n pinCode: apiAddr?.pinCode || apiAddr?.pincode,\n ward: apiAddr?.ward || apiAddr?.locality,\n assembly: apiAddr?.assembly,\n gpsValid: apiAddr?.gpsValid,\n latitude: apiAddr?.latitude,\n longitude: apiAddr?.longitude,\n mobileNo: apiAddr?.mobileNo || apiAddr?.mobileNumber,\n whatsappNo: apiAddr?.whatsappNo,\n email: apiAddr?.email,\n noOfPerson: apiAddr?.noOfPerson || apiAddr?.noOfPersons,\n knumber: apiAddr?.knumber || apiAddr?.kno,\n doorPhotoFilestoreId: apiAddr?.doorPhotoFileStoreId || apiAddr?.doorPhotoFilestoreId,\n },\n property: {\n kno: apiProp?.kno,\n pidNumber: apiProp?.pidNumber,\n typeOfConnection: apiProp?.typeOfConnection,\n connectionCategory: apiProp?.connectionCategory,\n userType: apiProp?.userType,\n numberOfFloors: apiProp?.numberOfFloors || apiProp?.noOfFloor,\n tenantName: apiProp?.tenantName,\n tenantMobile: apiProp?.tenantMobile,\n ekycStatus: apiProp?.ekycStatus,\n propertyDocumentFileStoreId: apiProp?.propertyDocumentFileStoreId,\n buildingImageFileStoreId: apiProp?.buildingImageFileStoreId || apiProp?.buildingImageFilestoreId,\n },\n meter: {\n kno: apiMeter?.kno,\n metered: apiMeter?.meterStatus === \"METERED\" || apiMeter?.metered,\n meterNumber: apiMeter?.meterNumber || apiMeter?.meterNo,\n meterMake: apiMeter?.meterMake,\n meterLocationAddress: apiMeter?.meterLocationAddress,\n meterLatitude: apiMeter?.meterLatitude,\n meterLongitude: apiMeter?.meterLongitude,\n workingStatus: apiMeter?.workingStatus,\n lastBillRaised: apiMeter?.lastBillRaised,\n systemMeterId: apiMeter?.systemMeterId,\n meterPhotoFileStoreId: apiMeter?.meterPhotoFileStoreId || apiMeter?.meterPhotoFilestoreId,\n },\n };\n };\n\n const newDataRaw = prepareConsolidatedData(apiNewData);\n const oldDataRaw = prepareConsolidatedData(apiOldData);\n\n\n // Apply edits to newData if present\n const connectionData = {\n ...newDataRaw?.connection,\n consumerName: aadhaarData?.name || newDataRaw?.connection?.consumerName,\n phoneNumber: aadhaarData?.mobileNumber || newDataRaw?.connection?.phoneNumber,\n knumber: newDataRaw?.connection?.knumber || activeKno,\n };\n\n const addressData = {\n ...newDataRaw?.address,\n fullAddress: editedAddress?.fullAddress || newDataRaw?.address?.fullAddress,\n flatHouseNumber: editedAddress?.flatHouseNumber || editedAddress?.flatNo || newDataRaw?.address?.flatHouseNumber,\n buildingTower: editedAddress?.buildingTower || editedAddress?.building || newDataRaw?.address?.buildingTower,\n landmark: editedAddress?.landmark || newDataRaw?.address?.landmark,\n pinCode: editedAddress?.pinCode || editedAddress?.pincode || newDataRaw?.address?.pinCode,\n ward: editedAddress?.ward || newDataRaw?.address?.ward,\n assembly: editedAddress?.assembly || newDataRaw?.address?.assembly,\n gpsValid: editedAddress?.gpsValid !== undefined ? editedAddress.gpsValid : newDataRaw?.address?.gpsValid,\n latitude: editedAddress?.latitude || newDataRaw?.address?.latitude,\n longitude: editedAddress?.longitude || newDataRaw?.address?.longitude,\n mobileNo: editedAddress?.mobileNo || aadhaarData?.mobileNumber || newDataRaw?.address?.mobileNo,\n whatsappNo: editedAddress?.whatsappNo || aadhaarData?.whatsappNumber || newDataRaw?.address?.whatsappNo,\n email: editedAddress?.email || newDataRaw?.address?.email,\n noOfPerson: editedAddress?.noOfPerson || aadhaarData?.noOfPersons || newDataRaw?.address?.noOfPerson,\n knumber: editedAddress?.knumber || newDataRaw?.address?.knumber || activeKno,\n doorPhotoFilestoreId: editedAddress?.doorPhotoFilestoreId || newDataRaw?.address?.doorPhotoFilestoreId,\n };\n\n\n const propertyData = {\n ...newDataRaw?.property,\n kno: newDataRaw?.property?.kno || activeKno,\n pidNumber: editedProperty?.pidNumber || newDataRaw?.property?.pidNumber,\n typeOfConnection: editedProperty?.connectionTypeData?.label || newDataRaw?.property?.typeOfConnection,\n connectionCategory: editedProperty?.connectionCategoryData?.label || newDataRaw?.property?.connectionCategory,\n userType: editedProperty?.userTypeData?.label || newDataRaw?.property?.userType,\n numberOfFloors: editedProperty?.noOfFloorsData?.label || newDataRaw?.property?.numberOfFloors,\n propertyDocumentFileStoreId: editedProperty?.propertyDocumentFileStoreId || newDataRaw?.property?.propertyDocumentFileStoreId,\n };\n\n const meterData = {\n ...newDataRaw?.meter,\n kno: editedMeter?.kno || newDataRaw?.meter?.kno || activeKno,\n metered: editedMeter?.meterStatusData?.value === \"Metered\" || newDataRaw?.meter?.metered,\n meterNumber: newDataRaw?.meter?.meterNumber,\n meterMake: editedMeter?.meterMake || newDataRaw?.meter?.meterMake,\n meterLocationAddress: editedMeter?.meterLocation || newDataRaw?.meter?.meterLocationAddress,\n workingStatus: editedMeter?.workingStatusData?.value === \"Working\" || newDataRaw?.meter?.workingStatus,\n lastBillRaised: editedMeter?.lastBillRaisedData?.value === \"Yes\" || newDataRaw?.meter?.lastBillRaised,\n meterPhotoFileStoreId: editedMeter?.meterPhotoFileStoreId || newDataRaw?.meter?.meterPhotoFileStoreId,\n };\n\n // ── All-fields mapping (headerMapping keys match flat API response keys) ──\n const headerMapping = [\n { key: \"kno\", label: \"KNO\" },\n { key: \"firstName\", label: \"FIRST_NAME\" },\n { key: \"middleName\", label: \"MIDDLE_NAME\" },\n { key: \"lastName\", label: \"LAST_NAME\" },\n { key: \"status\", label: \"STATUS\" },\n { key: \"ekycStatus\", label: \"EKYC_STATUS\" },\n { key: \"zoneName\", label: \"ZONE\" },\n { key: \"zoneCode\", label: \"ZONE_CODE\" },\n { key: \"assembly\", label: \"EKYC_ASSEMBLY\" },\n { key: \"ward\", label: \"WARD\" },\n { key: \"pincode\", label: \"EKYC_PINCODE\" },\n { key: \"addressRaw\", label: \"ADDRESS_RAW\" },\n { key: \"locality\", label: \"EKYC_LOCALITY\" },\n { key: \"subLocality\", label: \"SUB_LOCALITY\" },\n { key: \"flatHouseNumber\", label: \"FLAT_HOUSE_NUMBER\" },\n { key: \"streetName\", label: \"STREET_NAME\" },\n { key: \"landmark\", label: \"EKYC_LANDMARK\" },\n { key: \"city\", label: \"CITY\" },\n { key: \"state\", label: \"STATE\" },\n { key: \"addressType\", label: \"ADDRESS_TYPE\" },\n { key: \"addressProofType\", label: \"ADDRESS_PROOF_TYPE\" },\n { key: \"mobileNo\", label: \"MOBILE_NUMBER\" },\n { key: \"alternateMobileNo\", label: \"ALTERNATE_MOBILE_NUMBER\" },\n { key: \"whatsappNo\", label: \"WHATSAPP_NO\" },\n { key: \"email\", label: \"EMAIL\" },\n { key: \"landlineNo\", label: \"LANDLINE_NO\" },\n { key: \"mrkey\", label: \"MR_KEY\" },\n { key: \"mrcode\", label: \"MR_CODE\" },\n { key: \"areacode\", label: \"AREA_CODE\" },\n { key: \"source\", label: \"SOURCE\" },\n { key: \"submittedAt\", label: \"SUBMITTED_AT\" },\n { key: \"assignedAt\", label: \"ASSIGNED_AT\" },\n { key: \"connectionType\", label: \"CONNECTION_TYPE\" },\n { key: \"Type\", label: \"CONSUMER_TYPE\" },\n { key: \"occupantType\", label: \"OCCUPANT_TYPE\" },\n { key: \"knoCategory\", label: \"KNO_CATEGORY\" },\n { key: \"approvedAt\", label: \"APPROVED_AT\" },\n { key: \"gender\", label: \"GENDER\" },\n { key: \"parentSpouse\", label: \"PARENT_SPOUSE\" },\n { key: \"fatherOrHusbandName\", label: \"FATHER_HUSBUND_NAME\" },\n { key: \"relationship\", label: \"RELATIONSHIP\" },\n { key: \"informantName\", label: \"INFORMANT_NAME\" },\n { key: \"informantRelation\", label: \"INFORMANT_RELATION\" },\n { key: \"informantIs\", label: \"INFORMANT_IS\" },\n { key: \"contactPerson\", label: \"CONTACT_PERSON\" },\n { key: \"relation\", label: \"RELATION\" },\n { key: \"entityName\", label: \"ENTITY_NAME\" },\n { key: \"designation\", label: \"DESIGNATION\" },\n { key: \"department\", label: \"DEPARTMENT\" },\n { key: \"employeeId\", label: \"EMPLOYEE_ID\" },\n { key: \"ownerMobile\", label: \"OWNER_MOBILE\" },\n { key: \"ownerVerificationDone\", label: \"OWNER_VERIFICATION_DONE\", isBool: true },\n { key: \"consentGiven\", label: \"CONSENT_GIVEN\", isBool: true },\n { key: \"proofOfIdentityType\", label: \"PROOF_OF_IDENTITY_TYPE\" },\n { key: \"documentNumber\", label: \"DOCUMENT_NUMBER\" },\n { key: \"noOfPerson\", label: \"NUMBER_OF_PERSON\" },\n { key: \"latitude\", label: \"LATITUDE\" },\n { key: \"longitude\", label: \"LONGITUDE\" },\n { key: \"gpsValid\", label: \"GPS_VALID\", isBool: true },\n { key: \"meterNumber\", label: \"METER_NUMBER\" },\n { key: \"meterMake\", label: \"METER_MAKE\" },\n { key: \"meterStatus\", label: \"METER_STATUS\" },\n { key: \"meterCondition\", label: \"METER_CONDITION\" },\n { key: \"meterLocation\", label: \"METER_LOCATION\" },\n { key: \"meterLocationAddress\", label: \"METER_LOCATION_ADDRESS\" },\n { key: \"workingStatus\", label: \"WORKING_STATUS\" },\n { key: \"sewerConnection\", label: \"SEWER_CONNECTION\", isBool: true },\n { key: \"septicTank\", label: \"SEPTIC_TANK\", isBool: true },\n { key: \"lastBillRaised\", label: \"LAST_BILL_RAISED\", isBool: true },\n { key: \"lastBillReceivedDate\", label: \"LAST_BILL_RECEIVED_DATE\" },\n { key: \"accessToMeter\", label: \"ACCESS_TO_METER\", isBool: true },\n { key: \"systemMeterId\", label: \"SYSTEM_METER_ID\" },\n { key: \"lastBillNotRaisedReason\", label: \"LAST_BILL_NOT_RAISED_REASON\" },\n { key: \"waterConnectionYears\", label: \"WATER_CONNECTION_YEARS\" },\n { key: \"sewerConnectionYears\", label: \"SEWER_CONNECTION_YEARS\" },\n { key: \"pidNumber\", label: \"PID_NUMBER\" },\n { key: \"propertyType\", label: \"PROPERTY_TYPE\" },\n { key: \"subPropertyCategory\", label: \"SUB_PROPERTY_CATEGORY\" },\n { key: \"noOfFloor\", label: \"NO_OF_FLOOR\" },\n { key: \"noOfRooms\", label: \"NO_OF_ROOMS\" },\n { key: \"noOfBeds\", label: \"NO_OF_BEDS\" },\n { key: \"numberOfDwellingUnits\", label: \"NUMBER_OF_DWELLING_UNITS\" },\n { key: \"floorNo\", label: \"FLOOR_NO\" },\n { key: \"userType\", label: \"USER_TYPE\" },\n { key: \"tenantName\", label: \"TENANT_NAME\" },\n { key: \"tenantMobile\", label: \"TENANT_MOBILE\" },\n { key: \"verificationStatus\", label: \"VERIFICATION_STATUS\" },\n { key: \"houseBuiltDuration\", label: \"HOUSE_BUILT_DURATION\" },\n { key: \"surveyorId\", label: \"SURVEYOR_ID\" },\n { key: \"supervisorId\", label: \"SUPERVISOR_ID\" },\n { key: \"vendorId\", label: \"VENDOR_ID\" },\n { key: \"assignmentType\", label: \"ASSIGNMENT_TYPE\" },\n { key: \"assignmentValue\", label: \"ASSIGNMENT_VALUE\" },\n { key: \"assignedTime\", label: \"ASSIGNED_TIME\" },\n { key: \"isSelfAssigned\", label: \"IS_SELF_ASSIGNED\", isBool: true },\n { key: \"modifiedBy\", label: \"MODIFIED_BY\" },\n { key: \"emailId\", label: \"EMAIL_ID\" },\n { key: \"dob\", label: \"DOB\" },\n { key: \"consumerType\", label: \"CONSUMER_TYPE\" },\n { key: \"createdTime\", label: \"CREATED_TIME\" },\n { key: \"lastModifiedTime\", label: \"LAST_MODIFIED_TIME\" },\n { key: \"meterLatitude\", label: \"EKYC_METER_LATITUDE1\" },\n { key: \"meterLongitude\", label: \"EKYC_METER_LONGITUDE1\" },\n ];\n\n const handleDeclaration = () => setAgree(!agree);\n\n const loggedInUserInfo = Digit.UserService.getUser()?.info;\n\n const { data: userData } = Digit.Hooks.useUserSearch(\n tenantId,\n { uuid: [loggedInUserInfo?.uuid] },\n {},\n { enabled: !!loggedInUserInfo?.uuid }\n );\n const supervisorData = userData?.user || [];\n\n const matchedSupervisor = supervisorData?.find(\n (s) => s?.uuid === loggedInUserInfo?.uuid || s?.userName === loggedInUserInfo?.userName\n );\n const supervisorId = matchedSupervisor?.uuid || loggedInUserInfo?.uuid;\n\n const handleReject = async () => {\n const payload = {\n RequestInfo: {\n apiId: \"Rainmaker\",\n ver: \"1.0\",\n msgId: \"message-id\",\n tenantId: tenantId,\n authToken: Digit.UserService.getUser()?.access_token,\n },\n kno: activeKno,\n action: \"REJECTED\",\n remarks: \"Application rejected by reviewer\",\n reviewedBy: supervisorId,\n // role: currentUserRole,\n role: \"ZRO\"\n };\n try {\n const result = await workflowMutation.mutateAsync(payload);\n if (result) {\n setToastData({\n error: true,\n label: t(\"EKYC_APPLICATION_REJECT_SUCCESSFUL\") || \"Application Rejected Successfully\",\n });\n setShowToast(true);\n setTimeout(() => {\n history.push(\"/digit-ui/employee/ekyc/inbox\");\n }, 2000);\n }\n } catch (err) {\n console.error(\"Reject Error:\", err);\n const errMsg =\n err?.message ||\n err?.response?.data?.message ||\n err?.response?.data?.Errors?.[0]?.message ||\n err?.Errors?.[0]?.message ||\n t(\"EKYC_REJECT_ERROR\") || \"Reject failed. Please try again.\";\n setToastData({ error: true, label: errMsg });\n setShowToast(true);\n }\n };\n\n const handleApprove = async () => {\n const payload = {\n RequestInfo: {\n apiId: \"Rainmaker\",\n ver: \"1.0\",\n msgId: \"message-id\",\n tenantId: tenantId,\n authToken: Digit.UserService.getUser()?.access_token,\n },\n kno: activeKno,\n action: \"APPROVED\",\n remarks: \"All documents verified\",\n reviewedBy: supervisorId,\n // role: currentUserRole,\n role: \"ZRO\"\n };\n try {\n const result = await workflowMutation.mutateAsync(payload);\n if (result) {\n setToastData({\n error: false,\n label: t(\"EKYC_APPLICATION_APPROVE_SUCCESSFUL\") || \"Application Approved Successfully\",\n });\n setShowToast(true);\n setTimeout(() => {\n history.push(\"/digit-ui/employee/ekyc/inbox\");\n }, 2000);\n }\n } catch (err) {\n console.error(\"Approve Error:\", err);\n const errMsg =\n err?.response?.data?.Errors?.[0]?.message ||\n err?.Errors?.[0]?.message ||\n err?.message ||\n t(\"EKYC_APPROVE_ERROR\") || \"Approve failed. Please try again.\";\n setToastData({ error: true, label: errMsg });\n setShowToast(true);\n }\n };\n\n const handleFinalSubmit = async () => {\n setIsSubmitting(true);\n try {\n const payload = {\n kno: activeKno,\n tenantId: tenantId,\n newData: {\n connectionDetails: connectionData,\n addressDetails: addressData,\n propertyInfo: propertyData,\n meterDetails: meterData,\n },\n };\n\n const result = await updateMutation.mutateAsync(payload);\n if (result) {\n history.push(\"/digit-ui/employee/ekyc/response\", { success: true, result });\n }\n } catch (err) {\n console.error(\"Submit Error:\", err);\n } finally {\n setIsSubmitting(false);\n }\n };\n\n const handleViewDocument = async (fileStoreId) => {\n if (!fileStoreId) return;\n try {\n const response = await Digit.UploadServices.FileFetchbyid(fileStoreId, tenantId);\n if (response?.data) {\n const blobUrl = URL.createObjectURL(response.data);\n setPreviewUrl(blobUrl);\n setShowPreview(true);\n }\n } catch (error) {\n console.error(\"Error fetching document:\", error);\n }\n };\n\n const handleMenuSelect = (option) => {\n setShowOptions(false); // close menu\n if (option.action === t(\"APPROVE\")) {\n handleApprove();\n } else if (option.action === t(\"REJECT\")) {\n handleReject();\n }\n };\n\n if (isSearchLoading || isSubmitting) return <Loader />;\n\n\n return (\n <Fragment>\n <Card className=\"overflow-y-scroll\">\n {/* ── All Details (from headerMapping) ──────────────────────── */}\n <ReviewSection\n title={t(\"EKYC_ALL_DETAILS\") || \"All Details\"}\n fields={headerMapping}\n newData={flatNewData}\n oldData={flatOldData}\n t={t}\n hideEditButton={true}\n />\n\n {/* ── 5. Documents ────────────────────────────────────────────── */}\n <div style={{ marginTop: \"40px\" }}>\n <CardSubHeader style={{ marginBottom: \"20px\" }}>{t(\"EKYC_DOCUMENTS\")}</CardSubHeader>\n <StatusTable style={{ maxWidth: \"600px\" }}>\n <Row\n label={t(\"EKYC_DOOR_PHOTO\")}\n text={addressData.doorPhotoFilestoreId ? t(\"EKYC_PHOTO_AVAILABLE\") : t(\"CS_NA\")}\n actionButton={\n addressData.doorPhotoFilestoreId && (\n <div onClick={() => handleViewDocument(addressData.doorPhotoFilestoreId)}>\n <GenericFileIcon style={{ cursor: \"pointer\", fill: \"#F47738\" }} />\n </div>\n )\n }\n />\n <Row\n label={t(\"EKYC_METER_PHOTO\")}\n text={meterData.meterPhotoFileStoreId ? t(\"EKYC_PHOTO_AVAILABLE\") : t(\"CS_NA\")}\n actionButton={\n meterData.meterPhotoFileStoreId && (\n <div onClick={() => handleViewDocument(meterData.meterPhotoFileStoreId)}>\n <GenericFileIcon style={{ cursor: \"pointer\", fill: \"#F47738\" }} />\n </div>\n )\n }\n />\n <Row\n label={t(\"EKYC_BUILDING_IMAGE\")}\n text={propertyData.buildingImageFileStoreId ? t(\"EKYC_PHOTO_AVAILABLE\") : t(\"CS_NA\")}\n actionButton={\n propertyData.buildingImageFileStoreId && (\n <div onClick={() => handleViewDocument(propertyData.buildingImageFileStoreId)}>\n <GenericFileIcon style={{ cursor: \"pointer\", fill: \"#F47738\" }} />\n </div>\n )\n }\n />\n <Row\n label={t(\"EKYC_PROPERTY_DOCUMENTS\")}\n text={propertyData.propertyDocumentFileStoreId ? t(\"EKYC_DOCS_AVAILABLE\") : t(\"CS_NA\")}\n actionButton={\n propertyData.propertyDocumentFileStoreId && (\n <div onClick={() => handleViewDocument(propertyData.propertyDocumentFileStoreId)}>\n <GenericFileIcon style={{ cursor: \"pointer\", fill: \"#F47738\" }} />\n </div>\n )\n }\n />\n </StatusTable>\n </div>\n\n {!hideEditButton && (\n <div style={{ marginTop: \"40px\", paddingTop: \"30px\", borderTop: \"1px solid #EAECF0\" }}>\n <CheckBox\n id=\"agreeDeclaration\"\n name=\"agreeDeclaration\"\n label={<span style={{ fontSize: \"16px\", color: \"#344054\" }}>{t(\"EKYC_FINAL_DECLARATION\")}</span>}\n onChange={handleDeclaration}\n checked={agree}\n />\n </div>\n )}\n\n {/* <ActionBar>\n <SubmitBar label={t(\"EKYC_REJECT\")} onSubmit={handleReject} disabled={!agree} />\n <SubmitBar label={t(\"EKYC_APPROVE\")} onSubmit={handleApprove} disabled={!agree} />\n <SubmitBar label={t(\"EKYC_SUBMIT_APPLICATION\")} onSubmit={handleFinalSubmit} disabled={!agree} />\n </ActionBar> */}\n {!hideEditButton && (\n <ActionBar>\n <SubmitBar\n label={t(\"TAKE_ACTION_FOR_APPROVE_REJECT\")}\n onSubmit={() => setShowOptions((prev) => !prev)}\n disabled={!agree}\n />\n {showOptions && (\n <Menu\n options={options}\n optionKey={\"action\"}\n t={t}\n onSelect={handleMenuSelect}\n style={{\n color: \"#FFFFFF\",\n fontSize: \"18px\",\n }}\n />\n )}\n </ActionBar>\n )}\n </Card>\n\n {/* ── Document Preview Modal ────────────────────────────────────── */}\n {showPreview && (\n <div\n style={{\n position: \"fixed\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n backgroundColor: \"rgba(0,0,0,0.7)\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n zIndex: 10000,\n }}\n >\n <div\n style={{\n position: \"relative\",\n backgroundColor: \"#fff\",\n padding: \"30px\",\n borderRadius: \"12px\",\n maxWidth: \"600px\",\n width: \"100%\",\n maxHeight: \"70vh\",\n overflow: \"auto\",\n boxShadow: \"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)\",\n }}\n >\n <div\n onClick={() => setShowPreview(false)}\n style={{\n position: \"absolute\",\n top: \"10px\",\n right: \"10px\",\n cursor: \"pointer\",\n fontWeight: \"bold\",\n fontSize: \"20px\",\n color: \"#333\",\n background: \"#eee\",\n width: \"30px\",\n height: \"30px\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n borderRadius: \"50%\",\n }}\n >\n ×\n </div>\n <img\n src={previewUrl}\n alt=\"Document Preview\"\n style={{ maxWidth: \"100%\", height: \"auto\", display: \"block\" }}\n onError={(e) => {\n e.target.style.display = \"none\";\n e.target.nextSibling.style.display = \"block\";\n }}\n />\n <div style={{ display: \"none\", padding: \"40px\", textAlign: \"center\" }}>\n <p>{t(\"EKYC_DOCUMENT_PREVIEW_NOT_AVAILABLE\")}</p>\n <LinkButton label={t(\"EKYC_OPEN_IN_NEW_TAB\")} onClick={() => window.open(previewUrl, \"_blank\")} />\n </div>\n </div>\n </div>\n )}\n {showToast && (\n <Toast\n error={toastData.error}\n label={toastData.label}\n onClose={() => setShowToast(false)}\n />\n )}\n </Fragment>\n );\n};\n\nexport default Review;\n\n\n","import React from \"react\";\nimport { UploadFile, CheckBox, Dropdown } from \"@djb25/digit-ui-react-components\";\n\nconst AadhaarVerificationConfig = (t, formData = {}, uploadFile, setDocumentId, documentId) => {\n const consumerType = formData?.consumerType?.name || formData?.consumerType;\n const occupantType = formData?.occupantType?.name || formData?.occupantType;\n const informantIsConsumer = formData?.informantIsConsumer ?? true;\n\n const fields = [\n {\n label: t(\"Consumer Type\"),\n isMandatory: true,\n type: \"custom\",\n key: \"consumerType\",\n populators: {\n name: \"consumerType\",\n component: (props) => (\n <Dropdown\n option={[{ name: \"Individual\" }, { name: \"Govt\" }, { name: \"Company_Society_Org\" }]}\n optionKey=\"name\"\n selected={props.value}\n select={props.onChange}\n />\n ),\n },\n },\n {\n label: t(\"Occupant Type\"),\n isMandatory: true,\n type: \"custom\",\n key: \"occupantType\",\n populators: {\n name: \"occupantType\",\n component: (props) => (\n <Dropdown\n option={[{ name: \"Self\" }, { name: \"Tenanted\" }]}\n optionKey=\"name\"\n selected={props.value}\n select={props.onChange}\n />\n ),\n },\n },\n {\n label: t(\"Category Type\"),\n isMandatory: true,\n type: \"custom\",\n key: \"categoryType\",\n populators: {\n name: \"categoryType\",\n component: (props) => (\n <Dropdown\n option={[{ name: \"Bulk\" }, { name: \"Non-Bulk\" }]}\n optionKey=\"name\"\n selected={props.value}\n select={props.onChange}\n />\n ),\n },\n },\n {\n label: t(\"First Name\"),\n isMandatory: true,\n type: \"text\",\n populators: {\n name: \"firstName\",\n validation: { required: true },\n },\n },\n {\n label: t(\"Middle Name\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"middleName\",\n },\n },\n {\n label: t(\"Last Name\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"lastName\",\n },\n },\n {\n label: t(\"Gender\"),\n isMandatory: false,\n type: \"custom\",\n key: \"gender\",\n populators: {\n name: \"gender\",\n component: (props) => (\n <Dropdown\n option={[{ name: \"Male\" }, { name: \"Female\" }, { name: \"Others\" }, { name: \"Not prefer to say\" }]}\n optionKey=\"name\"\n selected={props.value}\n select={props.onChange}\n />\n ),\n },\n },\n {\n label: t(\"Parent/Spouse Name\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"parentSpouseName\",\n },\n },\n {\n label: t(\"Mobile\"),\n isMandatory: true,\n type: \"text\",\n populators: {\n name: \"mobile\",\n validation: {\n required: true,\n pattern: /^[6-9]\\d{9}$/,\n },\n error: t(\"Invalid mobile number\"),\n },\n },\n {\n label: t(\"WhatsApp\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"whatsapp\",\n },\n },\n {\n label: t(\"Email\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"email\",\n validation: {\n pattern: /^[a-zA-Z0-9+_.-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z0-9.-]+$/,\n },\n error: t(\"Invalid email address\"),\n },\n },\n {\n label: t(\"No. of Residents\"),\n isMandatory: true,\n type: \"text\",\n populators: {\n name: \"residents\",\n validation: {\n required: true,\n min: 1,\n },\n },\n },\n {\n label: t(\"Type of Identity\"),\n isMandatory: true,\n type: \"custom\",\n key: \"identityType\",\n populators: {\n name: \"identityType\",\n component: (props) => (\n <Dropdown\n option={[{ name: \"Aadhaar Card\" }, { name: \"Driving License\" }, { name: \"Passport\" }, { name: \"Voter ID\" }]}\n optionKey=\"name\"\n selected={props.value}\n select={props.onChange}\n />\n ),\n },\n },\n {\n label: t(\"Proof of Identity\"),\n isMandatory: false,\n type: \"custom\",\n key: \"idFile\",\n populators: {\n name: \"idFile\",\n component: (props) => (\n <UploadFile\n onUpload={(e) => uploadFile(e, props.onChange)}\n onDelete={() => {\n props.onChange(null);\n setDocumentId(null);\n }}\n message={props.value ? t(\"Uploaded\") : t(\"No file selected\")}\n />\n ),\n },\n },\n {\n label: t(\"Document Number\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"documentNumber\",\n },\n },\n {\n label: t(\"Informant Is Consumer\"),\n isMandatory: false,\n type: \"custom\",\n key: \"informantIsConsumer\",\n populators: {\n name: \"informantIsConsumer\",\n component: (props) => (\n <CheckBox\n label={t(\"Yes, the informant is the consumer\")}\n checked={props.value ?? true}\n onChange={(e) => props.onChange(e.target.checked)}\n />\n ),\n },\n },\n ];\n\n // Informant conditional fields\n if (!informantIsConsumer) {\n fields.push(\n {\n label: t(\"Informant Name\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"informantName\",\n },\n },\n {\n label: t(\"Informant Relation\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"informantRelation\",\n },\n }\n );\n }\n\n // Tenant conditional fields\n if (occupantType === \"Tenanted\") {\n fields.push({\n label: t(\"Document Proof\"),\n isMandatory: false,\n type: \"custom\",\n key: \"documentProof\",\n populators: {\n name: \"documentProof\",\n component: (props) => (\n <UploadFile\n onUpload={(e) => uploadFile(e, props.onChange)}\n onDelete={() => {\n props.onChange(null);\n setDocumentId(null);\n }}\n message={props.value ? t(\"Uploaded\") : t(\"No file selected\")}\n />\n ),\n },\n });\n\n if (!documentId) {\n fields.push(\n {\n label: t(\"Owner Mobile\"),\n isMandatory: true,\n type: \"text\",\n populators: {\n name: \"ownerMobile\",\n validation: {\n required: true,\n pattern: /^[6-9]\\d{9}$/,\n },\n },\n },\n {\n label: t(\"Tenant Verification\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"tenantVerification\",\n },\n }\n );\n }\n }\n\n // Govt conditional fields\n if (consumerType === \"Govt\") {\n fields.push(\n {\n label: t(\"Designation\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"designation\",\n },\n },\n {\n label: t(\"Department\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"department\",\n },\n },\n {\n label: t(\"Employee ID\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"employeeId\",\n },\n }\n );\n }\n\n // Company / Society / Org conditional fields\n if (consumerType === \"Company_Society_Org\") {\n fields.push(\n {\n label: t(\"Entity Name\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"entityName\",\n },\n },\n {\n label: t(\"Contact Person\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"contactPerson\",\n },\n }\n );\n }\n\n // Consent checkbox field\n fields.push({\n label: t(\"Consent\"),\n isMandatory: true,\n type: \"custom\",\n key: \"consent\",\n populators: {\n name: \"consent\",\n validation: { required: true },\n component: (props) => (\n <CheckBox\n label={t(\"I hereby consent to verify my Aadhaar details.\")}\n checked={props.value ?? false}\n onChange={(e) => props.onChange(e.target.checked)}\n />\n ),\n },\n });\n\n return [\n {\n head: t(\"EKYC_CONSUMER_CONNECTION\"),\n body: fields,\n },\n ];\n};\n\nexport default AadhaarVerificationConfig;\n","import React, { useState, Fragment, useEffect } from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport { Toast, Loader, FormComposer } from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\nimport AadhaarVerificationConfig from \"../config/AadhaarVerificationConfig\";\n\nconst AadhaarVerification = ({ config, onSelect, formData }) => {\n const { t } = useTranslation();\n const location = useLocation();\n const flowState = location.state || {};\n\n const tenantId = Digit.ULBService.getCurrentTenantId();\n const queryParams = new URLSearchParams(location.search);\n const urlKno = queryParams.get(\"kno\");\n const searchKno =\n urlKno ||\n flowState?.kNumber ||\n flowState?.kno ||\n formData?.kNumber ||\n formData?.kno ||\n sessionStorage.getItem(\"EKYC_K_NUMBER\") ||\n \"\";\n\n const { isLoading, data: searchData } = Digit.Hooks.ekyc.useSearchConnection(\n { tenantId, details: { kno: searchKno, fetchType: \"CONNECTION\" } },\n { enabled: !!searchKno, cacheTime: 0 }\n );\n\n const updateMutation = Digit.Hooks.ekyc.useEkycUpdate(tenantId);\n\n const savedData = formData?.aadhaarVerification || {};\n\n // 🔹 STATES\n const [documentId, setDocumentId] = useState(savedData.documentId || null);\n const [documentProof, setDocumentProof] = useState(savedData.documentProof || null);\n const [toast, setToast] = useState(null);\n const [isDataLoaded, setIsDataLoaded] = useState(false);\n const [canSubmit, setCanSubmit] = useState(false);\n\n const [defaultValues, setDefaultValues] = useState(() => ({\n kno: savedData.kno || searchKno || \"\",\n consumerType: savedData.consumerType ? { name: savedData.consumerType } : null,\n occupantType: savedData.occupantType ? { name: savedData.occupantType } : null,\n categoryType: savedData.categoryType ? { name: savedData.categoryType } : null,\n firstName: savedData.firstName || \"\",\n middleName: savedData.middleName || \"\",\n lastName: savedData.lastName || \"\",\n gender: savedData.gender ? { name: savedData.gender } : null,\n parentSpouseName: savedData.parentSpouseName || \"\",\n mobile: savedData.mobile || \"\",\n whatsapp: savedData.whatsapp || \"\",\n email: savedData.email || \"\",\n residents: savedData.residents || \"\",\n identityType: savedData.identityType ? { name: savedData.identityType } : null,\n documentNumber: savedData.documentNumber || \"\",\n informantIsConsumer: savedData.informantIsConsumer ?? true,\n informantName: savedData.informantName || \"\",\n informantRelation: savedData.informantRelation || \"\",\n documentId: savedData.documentId || null,\n documentProof: savedData.documentProof || null,\n idFile: savedData.idFile || null,\n ownerMobile: savedData.ownerMobile || \"\",\n tenantVerification: savedData.tenantVerification || \"\",\n designation: savedData.designation || \"\",\n department: savedData.department || \"\",\n employeeId: savedData.employeeId || \"\",\n entityName: savedData.entityName || \"\",\n contactPerson: savedData.contactPerson || \"\",\n consent: savedData.consent || false,\n }));\n\n const [localFormData, setLocalFormData] = useState(defaultValues);\n\n const extractApplicationData = (searchData) => {\n if (!searchData) return null;\n const reviewWrapper =\n searchData?.applicationReviewInfo || searchData?.applicationReview || searchData;\n const applicationData = (Array.isArray(reviewWrapper) ? reviewWrapper[0] : reviewWrapper) || {};\n return applicationData?.newData || applicationData;\n };\n\n useEffect(() => {\n const appData = extractApplicationData(searchData);\n const rawData = appData || formData?.connectionDetails;\n const details = rawData?.connectionDetails || rawData || {};\n const addrDetails = rawData?.addressDetails || {};\n\n if (details && Object.keys(details).length > 0 && !isDataLoaded) {\n let fName = \"\";\n let mName = \"\";\n let lName = \"\";\n\n if (details.firstName) {\n fName = details.firstName;\n mName = details.middleName || \"\";\n lName = details.lastName || \"\";\n } else if (details.consumerName) {\n const parts = details.consumerName.trim().split(/\\s+/);\n fName = parts[0] || \"\";\n if (parts.length === 2) lName = parts[1];\n if (parts.length > 2) {\n mName = parts.slice(1, -1).join(\" \");\n lName = parts[parts.length - 1];\n }\n }\n\n const updatedDefaults = {\n kno: savedData.kno || searchKno || \"\",\n consumerType: savedData.consumerType\n ? { name: savedData.consumerType }\n : details.consumerType\n ? { name: details.consumerType }\n : null,\n occupantType: savedData.occupantType\n ? { name: savedData.occupantType }\n : details.occupantType\n ? { name: details.occupantType }\n : null,\n categoryType: savedData.categoryType ? { name: savedData.categoryType } : null,\n firstName: savedData.firstName || fName,\n middleName: savedData.middleName || mName,\n lastName: savedData.lastName || lName,\n gender: savedData.gender\n ? { name: savedData.gender }\n : details.gender\n ? { name: details.gender }\n : null,\n parentSpouseName: savedData.parentSpouseName || details.parentSpouse || \"\",\n mobile: savedData.mobile || details.phoneNumber || addrDetails.mobileNo || \"\",\n whatsapp: savedData.whatsapp || addrDetails.whatsappNo || \"\",\n email: savedData.email || details.email || addrDetails.email || \"\",\n residents: savedData.residents || (addrDetails.noOfPerson ? String(addrDetails.noOfPerson) : \"\"),\n identityType: savedData.identityType ? { name: savedData.identityType } : null,\n documentNumber: savedData.documentNumber || \"\",\n informantIsConsumer: savedData.informantIsConsumer ?? true,\n informantName: savedData.informantName || details.informantName || \"\",\n informantRelation: savedData.informantRelation || details.informantRelation || \"\",\n documentId: savedData.documentId || details.documentNumber || null,\n documentProof: savedData.documentProof || null,\n idFile: savedData.idFile || null,\n ownerMobile: savedData.ownerMobile || \"\",\n tenantVerification: savedData.tenantVerification || \"\",\n designation: savedData.designation || \"\",\n department: savedData.department || \"\",\n employeeId: savedData.employeeId || \"\",\n entityName: savedData.entityName || \"\",\n contactPerson: savedData.contactPerson || \"\",\n consent: savedData.consent || false,\n };\n\n setDefaultValues(updatedDefaults);\n setLocalFormData(updatedDefaults);\n if (updatedDefaults.documentId) {\n setDocumentId(updatedDefaults.documentId);\n }\n if (updatedDefaults.documentProof) {\n setDocumentProof(updatedDefaults.documentProof);\n }\n setIsDataLoaded(true);\n }\n }, [searchData, formData?.connectionDetails, isDataLoaded]);\n\n // 🔹 FILE UPLOAD\n const handleUploadProof = async (e, onChange) => {\n const file = e.target.files[0];\n if (!file) return;\n\n if (file.size > 2000000) {\n setToast({ type: \"error\", message: t(\"Max size 2MB exceeded\") });\n return;\n }\n\n try {\n const res = await Digit.UploadServices.Filestorage(\"EKYC\", file, tenantId);\n const fileStoreId = res?.data?.files?.[0]?.fileStoreId;\n if (fileStoreId) {\n onChange(file.name);\n setDocumentProof(file.name);\n setDocumentId(fileStoreId);\n setToast({ type: \"success\", message: t(\"Upload successful\") });\n }\n } catch {\n setToast({ type: \"error\", message: t(\"Upload failed\") });\n }\n };\n\n const onFormValueChange = (setValue, data) => {\n // Avoid updating states on every keypress unless they affect conditional visibility\n const consumerTypeChanged =\n (data?.consumerType?.name || data?.consumerType) !==\n (localFormData?.consumerType?.name || localFormData?.consumerType);\n const occupantTypeChanged =\n (data?.occupantType?.name || data?.occupantType) !==\n (localFormData?.occupantType?.name || localFormData?.occupantType);\n const informantIsConsumerChanged = data?.informantIsConsumer !== localFormData?.informantIsConsumer;\n\n if (consumerTypeChanged || occupantTypeChanged || informantIsConsumerChanged) {\n setLocalFormData((prev) => ({\n ...prev,\n ...data,\n }));\n }\n\n // Determine validation\n const knoVal = data?.kno || searchKno;\n const consumerTypeVal = data?.consumerType;\n const occupantTypeVal = data?.occupantType;\n const categoryTypeVal = data?.categoryType;\n const firstNameVal = data?.firstName;\n const mobileVal = data?.mobile;\n const residentsVal = data?.residents;\n const consentVal = data?.consent;\n const docId = data?.documentId || documentId;\n const ownerMobileVal = data?.ownerMobile;\n\n let valid = true;\n if (!knoVal) valid = false;\n if (!consumerTypeVal) valid = false;\n if (!occupantTypeVal) valid = false;\n if (!categoryTypeVal) valid = false;\n if (!firstNameVal) valid = false;\n if (!mobileVal || !/^[6-9]\\d{9}$/.test(mobileVal)) valid = false;\n if (!residentsVal || Number(residentsVal) <= 0) valid = false;\n if (occupantTypeVal?.name === \"Tenanted\" && !docId && !ownerMobileVal) valid = false;\n if (!consentVal) valid = false;\n\n if (valid !== canSubmit) {\n setCanSubmit(valid);\n }\n };\n\n const onSubmit = async (data) => {\n const submitData = {\n kno: data.kno || searchKno,\n consumerType: data.consumerType?.name || data.consumerType,\n occupantType: data.occupantType?.name || data.occupantType,\n categoryType: data.categoryType?.name || data.categoryType,\n consumerName: data.consumerName || `${data.firstName || \"\"} ${data.middleName || \"\"} ${data.lastName || \"\"}`.trim(),\n firstName: data.firstName,\n middleName: data.middleName,\n lastName: data.lastName,\n gender: data.gender?.name || data.gender,\n parentSpouseName: data.parentSpouseName,\n relation: data.relation || savedData.relation || \"\",\n mobile: data.mobile,\n whatsapp: data.whatsapp,\n email: data.email,\n residents: data.residents,\n documentId: documentId,\n documentProof: documentProof,\n ownerMobile: data.ownerMobile,\n tenantVerification: data.tenantVerification,\n designation: data.designation,\n department: data.department,\n employeeId: data.employeeId,\n landline: data.landline || savedData.landline || \"\",\n entityRelation: data.entityRelation || savedData.entityRelation || \"\",\n contactPerson: data.contactPerson,\n entityName: data.entityName,\n idProof: data.identityType?.name || data.identityType,\n idNumber: data.documentNumber,\n consent: data.consent,\n informantIsConsumer: data.informantIsConsumer ?? true,\n informantName: data.informantName,\n informantRelation: data.informantRelation,\n };\n\n try {\n await updateMutation.mutateAsync({\n RequestInfo: {},\n updateType: \"CONSUMER\",\n ...submitData,\n });\n setToast({ type: \"success\", message: t(\"Data updated successfully!\") });\n onSelect(config.key, submitData);\n } catch (error) {\n setToast({ type: \"error\", message: t(\"Failed to update consumer details\") });\n }\n };\n\n if (isLoading) {\n return <Loader />;\n }\n\n const Config = AadhaarVerificationConfig(t, localFormData, handleUploadProof, setDocumentId, documentId);\n\n return (\n <Fragment>\n <FormComposer\n key={isDataLoaded ? \"loaded\" : \"loading\"}\n isDisabled={!canSubmit}\n label={t(\"ES_COMMON_CONTINUE\")}\n config={Config.map((item) => ({\n ...item,\n isCollapsible: true,\n isDefaultOpen: true,\n }))}\n onSubmit={onSubmit}\n defaultValues={defaultValues}\n onFormValueChange={onFormValueChange}\n noCard={false}\n submitInForm={true}\n />\n {toast && (\n <Toast\n error={toast.type === \"error\"}\n label={toast.message}\n onClose={() => setToast(null)}\n />\n )}\n </Fragment>\n );\n};\n\nexport default AadhaarVerification;\n","import AadhaarVerification from \"../components/AadhaarVerification\";\n\nexport const ekycConfig = [\n {\n body: [\n {\n route: \"consumer-details\",\n component: AadhaarVerification,\n key: \"aadhaarVerification\",\n texts: {\n header: \"EKYC_CONSUMER_CONNECTION\",\n submitBarLabel: \"COMMON_SAVE_NEXT\",\n },\n timeLine: [\n {\n currentStep: 1,\n actions: \"EKYC_CONSUMER_CONNECTION\",\n },\n ],\n },\n {\n route: \"address-details\",\n component: \"AddressDetails\",\n key: \"addressDetails\",\n doorImage: true,\n showMapActualLocation: false,\n texts: {\n header: \"EKYC_ADDRESS_DETAILS\",\n submitBarLabel: \"COMMON_SAVE_NEXT\",\n },\n timeLine: [\n {\n currentStep: 2,\n actions: \"EKYC_ADDRESS_DETAILS\",\n },\n ],\n },\n {\n route: \"property-info\",\n component: \"PropertyInfo\",\n key: \"propertyDetails\",\n texts: {\n header: \"EKYC_PROPERTY_INFO\",\n submitBarLabel: \"COMMON_SAVE_NEXT\",\n },\n timeLine: [\n {\n currentStep: 3,\n actions: \"EKYC_PROPERTY_INFO\",\n },\n ],\n },\n {\n route: \"meter-details\",\n component: \"MeterDetails\",\n key: \"meterDetails\",\n texts: {\n header: \"EKYC_METER_DETAILS\",\n submitBarLabel: \"COMMON_SAVE_NEXT\",\n },\n timeLine: [\n {\n currentStep: 4,\n actions: \"EKYC_METER_DETAILS\",\n },\n ],\n },\n ],\n },\n];\n","import React, { useEffect, useRef } from \"react\";\nimport { useTranslation } from \"react-i18next\";\n// import { useQueryClient } from \"react-query\";\nimport { Redirect, Route, Switch, useHistory, useLocation, useRouteMatch } from \"react-router-dom\";\nimport { VerticalTimeline } from \"@djb25/digit-ui-react-components\";\nimport { ekycConfig } from \"../../config/config\";\n\nconst EKYCForm = ({ path: passedPath }) => {\n // const queryClient = useQueryClient();\n const match = useRouteMatch();\n const { t } = useTranslation();\n const location = useLocation();\n const { pathname } = location;\n const history = useHistory();\n\n let config = [];\n const [params, setParams] = Digit.Hooks.useSessionStorage(\"EKYC_CREATE\", {});\n\n useEffect(() => {\n if (location.state && Object.keys(location.state).length > 0) {\n const { edits, ...rest } = location.state;\n setParams({ ...params, ...rest, ...edits });\n }\n }, [location.state]);\n\n const goNext = (skipStep, index, isAddMultiple, key) => {\n let currentPath = pathname.split(\"/\").pop();\n let routeObj = config.find((routeObj) => (key ? routeObj.key === key : routeObj.route === currentPath));\n if (!routeObj) routeObj = config.find((routeObj) => routeObj.route === currentPath);\n\n let nextStep = null;\n const currentIndex = config.findIndex((c) => c.route === routeObj.route);\n if (currentIndex > -1 && currentIndex < config.length - 1) {\n nextStep = config[currentIndex + 1].route;\n }\n\n let redirectWithHistory = history.push;\n if (skipStep) {\n redirectWithHistory = history.replace;\n }\n\n const base = passedPath || match.path.split(\"/\").slice(0, -1).join(\"/\");\n if (nextStep === null) {\n return redirectWithHistory(`${base}/review`, { ...params, edits: params });\n }\n\n redirectWithHistory(`${base}/${nextStep}`, { ...params });\n };\n\n function handleSelect(key, data, skipStep, index, isAddMultiple = false, silent = false) {\n setParams((prev) => ({ ...prev, [key]: { ...params[key], ...data } }));\n if (!silent) {\n goNext(skipStep, index, isAddMultiple, key);\n }\n }\n\n // const onSuccess = () => {\n // clearParams();\n // queryClient.invalidateQueries(\"EKYC_CREATE\");\n // };\n\n ekycConfig.forEach((obj) => {\n config = config.concat(obj.body);\n });\n\n config.indexRoute = \"consumer-details\";\n\n const formStepRoutes = config.map((c) => c.route);\n const isFormStep = formStepRoutes.some((route) => pathname.includes(route));\n\n const sectionRefs = useRef({});\n\n useEffect(() => {\n if (isFormStep) {\n const currentRoute = pathname.split(\"/\").pop();\n if (sectionRefs.current[currentRoute]) {\n sectionRefs.current[currentRoute].scrollIntoView({ behavior: \"smooth\", block: \"start\" });\n }\n }\n }, [pathname, isFormStep]);\n\n return (\n <React.Fragment>\n <div className=\"employee-form-section-wrapper\">\n <VerticalTimeline config={config} showFinalStep={true} />\n <div className=\"employee-form-section\">\n <Switch>\n <Route path={formStepRoutes.map((route) => `${passedPath || match.path.split(\"/\").slice(0, -1).join(\"/\")}/${route}`)}>\n <div className=\"single-page-form-container\">\n {config.map((routeObj, index) => {\n const { component } = routeObj;\n const Component = typeof component === \"string\" ? Digit.ComponentRegistryService.getComponent(component) : component;\n\n return (\n <div key={index} ref={(el) => (sectionRefs.current[routeObj.route] = el)} className=\"form-section-unit\">\n <Component\n config={{ ...routeObj, isCollapsible: true, defaultOpen: true }}\n onSelect={handleSelect}\n t={t}\n formData={params}\n // formData={{ ...params, address: params.addressDetails }}\n />\n </div>\n );\n })}\n </div>\n </Route>\n <Route>\n <Redirect to={`${passedPath || match.path.split(\"/\").slice(0, -1).join(\"/\")}/${config.indexRoute}`} />\n </Route>\n </Switch>\n </div>\n </div>\n </React.Fragment>\n );\n};\n\nexport default EKYCForm;\n","import React from \"react\";\nimport { Card } from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\nimport Dashboard from \"./Dashboard\";\n\nconst VendorCardSkeleton = () => {\n return (\n <div className=\"vendor-perf-card vendor-perf-card-skeleton\">\n {/* Header */}\n <div className=\"vendor-card-header\">\n <div className=\"vendor-title\">\n <div className=\"skeleton skeleton-icon\" />\n\n <div className=\"skeleton-title-wrapper\">\n <div className=\"skeleton skeleton-title\" />\n <div className=\"skeleton skeleton-subtitle\" />\n </div>\n </div>\n\n <div className=\"skeleton skeleton-kno-badge\" />\n </div>\n\n {/* Progress */}\n <div>\n <div className=\"skeleton skeleton-progress-bar\" />\n\n <div className=\"progress-label\">\n <div className=\"skeleton skeleton-progress-label\" />\n <div className=\"skeleton skeleton-progress-value\" />\n </div>\n </div>\n\n {/* Team Stats */}\n <div className=\"stats-grid\">\n {[1, 2, 3].map((item) => (\n <div className=\"stat-item\" key={item}>\n <div className=\"skeleton skeleton-stat-value\" />\n <div className=\"skeleton skeleton-stat-label\" />\n </div>\n ))}\n </div>\n\n {/* Status */}\n <div className=\"knos-summary\">\n {[1, 2, 3].map((item) => (\n <div className=\"kno-stat\" key={item}>\n <div className=\"skeleton skeleton-status-label\" />\n <div className=\"skeleton skeleton-status-value\" />\n </div>\n ))}\n </div>\n </div>\n );\n};\n\nconst VendorPerformanceSkeleton = () => {\n return (\n <div className=\"vendors-grid\">\n {[1, 2, 3].map((item) => (\n <VendorCardSkeleton key={item} />\n ))}\n </div>\n );\n};\n\nconst AdminDashboard = () => {\n const { t } = useTranslation();\n const history = useHistory();\n\n // Fetch assignment progress with hierarchy (supervisor and surveyor details)\n const { data: progressData, isLoading: isProgressLoading } = Digit.Hooks.ekyc.useEkycAssignmentProgress(\n {\n tenantId: \"dl.djb\",\n allVendorsDetailed: true,\n },\n {\n enabled: true,\n keepPreviousData: true,\n }\n );\n\n return (\n <Card className=\"surveyor-dashboard\">\n <Dashboard isProgressLoading={isProgressLoading} progressData={progressData} />\n <div className=\"admin-performance-section\">\n <h3 className=\"section-title\">{t(\"EKYC_VENDORS_PERFORMANCE\") || \"eKYC Vendors Performance\"}</h3>\n\n {isProgressLoading ? (\n <VendorPerformanceSkeleton />\n ) : (\n <div className=\"vendors-grid\">\n {/* Self eKYC */}\n {/* Commented by Avinash This part will be uncommented when this part will be developed from backend in future */}\n {/* <div className=\"vendor-perf-card self-ekyc-card\" onClick={() => history.push(`/digit-ui/employee/ekyc/self`)}>\n <div className=\"card-header\">\n <div className=\"vendor-info\">\n <h4>{t(\"SELF_EKYC\") || \"Self eKYC\"}</h4>\n <p>{t(\"SELF_EKYC_BY_USERS\") || \"eKYC completed directly by users\"}</p>\n </div>\n\n <span className=\"kno-count-badge\">{11111 || 0}%</span>\n </div>\n\n <div className=\"progress-bar-container\">\n <div className=\"progress-bar-fill\" style={{ width: `${11111 || 0}%` }} />\n </div>\n\n <div className=\"stats-grid\">\n <div className=\"stat-item\">\n <div className=\"value completed-val\">{11111 || 0}</div>\n <div className=\"label\">{t(\"COMPLETED\") || \"Completed\"}</div>\n </div>\n\n <div className=\"stat-item\">\n <div className=\"value\">{11111 || 0}</div>\n <div className=\"label\">{t(\"PENDING\") || \"Pending\"}</div>\n </div>\n\n <div className=\"stat-item\">\n <div className=\"value\">{11111 || 0}</div>\n <div className=\"label\">{t(\"TOTAL\") || \"Total\"}</div>\n </div>\n </div>\n\n <div className=\"card-footer\">\n <span>{t(\"SELF_EKYC\") || \"Self eKYC\"}</span>\n\n <span>{t(\"USERS\") || \"Users\"}</span>\n </div>\n </div> */}\n\n {/* Vendors */}\n {Array.isArray(progressData?.vendorReports) &&\n progressData?.vendorReports.length &&\n progressData?.vendorReports.map((vendor) => (\n <div\n key={vendor.vendorId}\n className=\"vendor-perf-card\"\n onClick={() => history.push(`/digit-ui/employee/ekyc/vendors/${vendor.vendorId}`)}\n >\n {/* Header */}\n <div className=\"vendor-card-header\">\n <div className=\"vendor-title\">\n <h4>{vendor.vendorName}</h4>\n </div>\n\n <div className=\"kno-count-badge\">\n <span className=\"kno-count-label\">{t(\"TOTAL_KNOS\") || \"Total KNOs\"} -</span>\n <span className=\"kno-count-value\">{vendor.totalKnosInZones}</span>\n </div>\n </div>\n\n {/* Progress */}\n <div>\n <div className=\"progress-bar-container\">\n <div className=\"progress-bar-fill\" style={{ width: `${vendor.progressPercent}%` }} />\n </div>\n\n <div className=\"progress-label\">\n <span>{t(\"PROGRESS\") || \"Progress\"}</span>\n <span>{vendor.progressPercent}%</span>\n </div>\n </div>\n\n {/* Team */}\n <div className=\"stats-grid\">\n <div className=\"stat-item\">\n <span className=\"stat-value\">{vendor.totalSupervisors}</span>\n <span className=\"stat-label\">{t(\"SUPERVISORS\") || \"Supervisors\"}</span>\n </div>\n\n <div className=\"stat-item\">\n <span className=\"stat-value\">{vendor.totalSurveyors}</span>\n <span className=\"stat-label\">{t(\"SURVEYORS\") || \"Surveyors\"}</span>\n </div>\n\n <div className=\"stat-item\">\n <span className=\"stat-value\">{vendor.totalAssignments}</span>\n <span className=\"stat-label\">{t(\"TOTAL_EKYC_APPLICATIONS\") || \"Total KNOs\"}</span>\n </div>\n </div>\n\n {/* Status */}\n <div className=\"knos-summary\">\n <div className=\"kno-stat\">\n <span className=\"kno-label\">{t(\"SUBMITTED\") || \"Submitted\"}</span>\n <strong>{vendor.submittedKnosInZones}</strong>\n </div>\n\n <div className=\"kno-stat pending\">\n <span className=\"kno-label\">{t(\"PENDING\") || \"Pending\"}</span>\n <strong>{vendor.pendingKnosInZones}</strong>\n </div>\n\n <div className=\"kno-stat rejected\">\n <span className=\"kno-label\">{t(\"EKYC_SUBMITTED_BY_CITIZENS\").toLowerCase() || \"Submitted by citizen\"}</span>\n <strong>{vendor.selfEkycCountInZones}</strong>\n </div>\n </div>\n </div>\n ))}\n </div>\n )}\n </div>\n </Card>\n );\n};\n\nexport default AdminDashboard;\n","import React, { Fragment, useMemo, useState } from \"react\";\nimport { Card, Loader, Table, MdDownloadIcon } from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { useParams, useHistory } from \"react-router-dom\";\nimport { FaUsers, FaCheckCircle, FaClock, FaChartLine } from \"react-icons/fa\";\nimport { getEkycExcelData } from \"../utils/ekycExcelData\";\nimport EkycFilterModal from \"./EkycFilterModal\";\n\nconst SupervisorDetailsCard = () => {\n const { t } = useTranslation();\n const history = useHistory();\n const tenantId = Digit.ULBService.getCurrentTenantId() || \"dl.djb\";\n const { id: supervisorId, vendorId } = useParams();\n const loggedInUser = Digit.SessionStorage.get(\"User\")?.info;\n const [ekycDownloadLoading, setEkycDownloadLoading] = useState(false);\n const [showFilterModal, setShowFilterModal] = useState(false);\n const [currentPage, setCurrentPage] = useState(0);\n const [pageSize, setPageSize] = useState(20);\n\n const [ekycStatus, setEkycStatus] = useState(\"ALL\");\n\n // Fetch all supervisors to get details if assignment progress fails\n const { data: supervisorSearchResponse, isLoading: isSupervisorSearchLoading } = Digit.Hooks.fsm.useSupervisorSearch(\n tenantId,\n { status: \"ACTIVE\" },\n { enabled: !!tenantId, staleTime: 300000 }\n );\n\n // Resolve vendorId of this supervisor if available\n const targetVendorId = useMemo(() => {\n const targetId = supervisorId || loggedInUser?.uuid;\n if (!targetId || !supervisorSearchResponse?.supervisors) return null;\n const matchedSup = supervisorSearchResponse.supervisors.find(\n (s) => s.id?.toLowerCase() === targetId?.toLowerCase() || s.owner?.uuid?.toLowerCase() === targetId?.toLowerCase()\n );\n return matchedSup?.vendorId || null;\n }, [supervisorId, loggedInUser, supervisorSearchResponse]);\n\n // Fetch assignment progress with hierarchy (supervisor and surveyor details)\n const { isLoading: isProgressLoading, data: progressData } = Digit.Hooks.ekyc.useEkycAssignmentProgress(\n { vendorId: vendorId || targetVendorId },\n {\n enabled: !!tenantId,\n keepPreviousData: true,\n }\n );\n\n const userRoles = Digit.UserService.getUser()?.info?.roles;\n\n const isSupervisor = userRoles?.some((role) => role.code === \"EKYC_SUPERVISOR\");\n\n const currentSupervisor = isSupervisor\n ? progressData?.supervisorReport[0] || []\n : progressData?.supervisorReport?.find((ele) => ele.supervisorId === supervisorId);\n\n const surveyorsData = currentSupervisor?.surveyors || [];\n\n // Fetch all surveyors to get details of connected surveyors if assignment progress fails\n const { data: surveyorSearchResponse, isLoading: isSurveyorSearchLoading } = Digit.Hooks.fsm.useSurveyorSearch(\n tenantId,\n { status: \"ACTIVE\" },\n { enabled: !!tenantId, staleTime: 300000 }\n );\n\n // Fetch all vendors from DSO search\n const { data: vendorSearchResponse, isLoading: isVendorSearchLoading } = Digit.Hooks.fsm.useDsoSearch(\n tenantId,\n { status: \"ACTIVE\" },\n { enabled: !!tenantId, staleTime: 300000 }\n );\n\n const supervisor = useMemo(() => {\n const targetOwnerOrId = supervisorId || loggedInUser?.uuid;\n if (!targetOwnerOrId) return null;\n\n // Step 0: resolve real supervisor entity id (handles self-login case\n // where we only have the owner/auth uuid, not the supervisor record id)\n let resolvedSupervisorId = supervisorId; // if URL already has entity id, trust it\n if (!resolvedSupervisorId && supervisorSearchResponse?.supervisors && targetOwnerOrId) {\n const selfSup = supervisorSearchResponse.supervisors.find(\n (s) => s.owner?.uuid?.toLowerCase() === targetOwnerOrId?.toLowerCase() || s.id?.toLowerCase() === targetOwnerOrId?.toLowerCase()\n );\n resolvedSupervisorId = selfSup?.id;\n }\n\n const targetId = resolvedSupervisorId || targetOwnerOrId;\n\n // 1. Find the supervisor profile from search response\n let matchedSup = null;\n if (supervisorSearchResponse?.supervisors) {\n matchedSup = supervisorSearchResponse.supervisors.find(\n (s) => s.id?.toLowerCase() === targetId?.toLowerCase() || s.owner?.uuid?.toLowerCase() === targetId?.toLowerCase()\n );\n }\n\n // 2. Find progress report for this supervisor from progressData\n let progressReport = null;\n if (progressData?.supervisorReport && targetId) {\n progressReport = progressData.supervisorReport.find(\n (s) => s.supervisorId?.toLowerCase() === targetId?.toLowerCase() || s.id?.toLowerCase() === targetId?.toLowerCase()\n );\n }\n\n // 3. If we found the supervisor in search response, enrich and return\n if (matchedSup) {\n const matchedSurveyors = surveyorSearchResponse?.surveyors\n ? surveyorSearchResponse.surveyors\n .filter((surv) => surv.supervisorId === (matchedSup.id || matchedSup.owner?.uuid))\n .map((surv) => {\n let realStats = null;\n if (progressData?.supervisorReport) {\n for (const report of progressData.supervisorReport) {\n if (\n report.supervisorId?.toLowerCase() !== matchedSup.id?.toLowerCase() &&\n report.id?.toLowerCase() !== matchedSup.id?.toLowerCase()\n )\n continue;\n const matchedSurv = report.surveyors?.find(\n (s) =>\n (s.surveyorId &&\n (s.surveyorId?.toLowerCase() === surv.id?.toLowerCase() ||\n s.surveyorId?.toLowerCase() === surv.owner?.uuid?.toLowerCase())) ||\n (s.id && (s.id?.toLowerCase() === surv.id?.toLowerCase() || s.id?.toLowerCase() === surv.owner?.uuid?.toLowerCase()))\n );\n if (matchedSurv) {\n realStats = matchedSurv;\n break;\n }\n }\n }\n\n return {\n surveyorId: surv.id || surv.owner?.uuid,\n surveyorName: surv.name || surv.owner?.name || \"N/A\",\n mobileNo: surv.owner?.mobileNumber || surv.mobileNo || \"N/A\",\n email: surv.owner?.emailId || \"N/A\",\n gender: surv.owner?.gender || \"N/A\",\n status: surv.status || \"ACTIVE\",\n totalKnos: realStats?.totalKnos || 0,\n submittedKnos: realStats?.submittedKnos || 0,\n pendingKnos: realStats?.pendingKnos || 0,\n progressPercent: realStats?.progressPercent || 0,\n };\n })\n : [];\n\n const totalKnos = progressReport?.totalKnos || matchedSurveyors.reduce((acc, s) => acc + (s.totalKnos || 0), 0);\n const submittedKnos = progressReport?.submittedKnos || matchedSurveyors.reduce((acc, s) => acc + (s.submittedKnos || 0), 0);\n const pendingKnos = progressReport?.pendingKnos || matchedSurveyors.reduce((acc, s) => acc + (s.pendingKnos || 0), 0);\n const progressPercent = progressReport ? progressReport.progressPercent : totalKnos > 0 ? Math.round((submittedKnos / totalKnos) * 100) : 0;\n\n return {\n supervisorId: matchedSup.id || matchedSup.owner?.uuid,\n supervisorName: matchedSup.name || matchedSup.owner?.name || \"N/A\",\n mobileNo: matchedSup.owner?.mobileNumber || matchedSup.mobileNo || \"N/A\",\n email: matchedSup.owner?.emailId || matchedSup.owner?.email || matchedSup.email || matchedSup.emailId || \"N/A\",\n gender: matchedSup.owner?.gender || matchedSup.gender || \"N/A\",\n status: matchedSup.status || \"ACTIVE\",\n assignedZoneId: matchedSup.assignedZoneId || \"N/A\",\n vendorId: matchedSup.vendorId,\n surveyors: matchedSurveyors,\n totalKnos,\n submittedKnos,\n pendingKnos,\n progressPercent,\n };\n }\n\n // 4. Fallback: If not found in search response, but we have progressData report, return it and enrich with loggedInUser details\n if (progressReport) {\n const isSelf = targetId?.toLowerCase() === loggedInUser?.uuid?.toLowerCase();\n const supervisorName = isSelf ? loggedInUser?.name || progressReport.supervisorName || \"N/A\" : progressReport.supervisorName || \"N/A\";\n const mobileNo = isSelf ? loggedInUser?.mobileNumber || progressReport.mobileNo || \"N/A\" : progressReport.mobileNo || \"N/A\";\n\n const matchedSupForFallback = supervisorSearchResponse?.supervisors?.find(\n (s) =>\n s.id?.toLowerCase() === (progressReport.supervisorId || progressReport.id)?.toLowerCase() ||\n s.owner?.uuid?.toLowerCase() === (progressReport.supervisorId || progressReport.id)?.toLowerCase()\n );\n\n const email =\n matchedSupForFallback?.owner?.emailId ||\n matchedSupForFallback?.owner?.email ||\n matchedSupForFallback?.email ||\n (isSelf ? loggedInUser?.emailId : null) ||\n progressReport.email ||\n \"N/A\";\n const gender =\n matchedSupForFallback?.owner?.gender ||\n matchedSupForFallback?.gender ||\n (isSelf ? loggedInUser?.gender : null) ||\n progressReport.gender ||\n \"N/A\";\n\n const surveyorsMapped = progressReport.surveyors\n ? progressReport.surveyors.map((surv) => {\n const matchedSurv = surveyorSearchResponse?.surveyors?.find(\n (s) => s.id?.toLowerCase() === surv.surveyorId?.toLowerCase() || s.owner?.uuid?.toLowerCase() === surv.surveyorId?.toLowerCase()\n );\n\n return {\n surveyorId: surv.surveyorId || surv.id,\n surveyorName: matchedSurv?.name || matchedSurv?.owner?.name || surv.surveyorName || \"N/A\",\n mobileNo: matchedSurv?.owner?.mobileNumber || matchedSurv?.mobileNo || surv.mobileNo || \"N/A\",\n email: matchedSurv?.owner?.emailId || matchedSurv?.owner?.email || matchedSurv?.email || surv.email || \"N/A\",\n gender: matchedSurv?.owner?.gender || matchedSurv?.gender || surv.gender || \"N/A\",\n status: matchedSurv?.status || surv.status || \"ACTIVE\",\n totalKnos: surv.totalKnos || 0,\n submittedKnos: surv.submittedKnos || 0,\n pendingKnos: surv.pendingKnos || 0,\n progressPercent: surv.progressPercent || 0,\n };\n })\n : [];\n\n return {\n supervisorId: progressReport.supervisorId || progressReport.id,\n supervisorName,\n mobileNo,\n email,\n gender,\n status: progressReport.status || \"ACTIVE\",\n assignedZoneId: progressReport.assignedZoneId || \"N/A\",\n vendorId: progressReport.vendorId,\n surveyors: surveyorsMapped,\n totalKnos: progressReport.totalKnos || 0,\n submittedKnos: progressReport.submittedKnos || 0,\n pendingKnos: progressReport.pendingKnos || 0,\n progressPercent: progressReport.progressPercent || 0,\n };\n }\n\n return null;\n }, [progressData, supervisorSearchResponse, surveyorSearchResponse, supervisorId, loggedInUser]);\n\n const fullName = currentSupervisor?.supervisorName || \"N/A\";\n const mobileNumber = currentSupervisor?.mobileNo || \"N/A\";\n const email = supervisor?.email || (supervisor?.supervisorId === loggedInUser?.uuid ? loggedInUser?.emailId : null) || \"N/A\";\n const gender = supervisor?.gender || (supervisor?.supervisorId === loggedInUser?.uuid ? loggedInUser?.gender : null) || \"N/A\";\n const status = supervisor?.status || \"N/A\";\n const assignedZone = t(currentSupervisor?.assignedZoneId) || \"N/A\";\n\n const vendorName = useMemo(() => {\n if (!vendorSearchResponse || !supervisor) return \"N/A\";\n const targetVendorId = supervisor.vendorId;\n if (!targetVendorId) return \"N/A\";\n const matchedVendor = vendorSearchResponse.find(\n (v) =>\n v.dsoDetails?.id === targetVendorId || v.dsoDetails?.vendorId === targetVendorId || v.id === targetVendorId || v.vendorId === targetVendorId\n );\n return matchedVendor?.dsoDetails?.name || matchedVendor?.name || \"N/A\";\n }, [vendorSearchResponse, supervisor]);\n\n const surveyors = useMemo(() => {\n return supervisor?.surveyors || [];\n }, [supervisor]);\n\n const cards = useMemo(\n () => [\n {\n label: \"TOTAL_EKYC_APPLICATIONS\",\n count: supervisor?.totalKnos || 0,\n color: \"#0B2559\",\n type: \"today\",\n icon: <FaUsers />,\n },\n {\n label: \"EKYC_SUBMITTED_TITLE\",\n count: supervisor?.submittedKnos || 0,\n color: \"#10B981\",\n type: \"month\",\n icon: <FaCheckCircle />,\n },\n {\n label: \"PENDING_APPLICATIONS\",\n count: supervisor?.pendingKnos || 0,\n color: \"#F59E0B\",\n type: \"pending\",\n icon: <FaClock />,\n },\n {\n label: \"OVERALL_PROGRESS\",\n count: `${supervisor?.progressPercent || 0}%`,\n color: \"#A855F7\",\n type: \"progress\",\n icon: <FaChartLine />,\n },\n ],\n [supervisor]\n );\n const surveyorColumns = useMemo(\n () => [\n {\n Header: t(\"SURVEYOR_NAME\") || \"Surveyor Name\",\n accessor: (row) => row?.surveyorName || \"N/A\",\n Cell: ({ row }) => {\n const userType = Digit.SessionStorage.get(\"User\")?.info?.type?.toLowerCase() || \"citizen\";\n const targetPath = `/digit-ui/${userType}/ekyc/surveyor-dashboard/${row.original.surveyorId}`;\n return (\n <a\n href={targetPath}\n style={{ color: \"#1D70B8\", fontWeight: \"600\", textDecoration: \"none\" }}\n onClick={(e) => {\n e.preventDefault();\n history.push(targetPath);\n }}\n >\n {row.original?.surveyorName || \"N/A\"}\n </a>\n );\n },\n },\n {\n Header: t(\"MOBILE_NUMBER\") || \"Mobile Number\",\n accessor: (row) => row?.mobileNo || \"N/A\",\n id: \"mobileNumber\",\n },\n {\n Header: t(\"STATUS\") || \"Status\",\n accessor: () => \"ACTIVE\",\n id: \"status\",\n Cell: ({ value }) => <span className={`status-badge verified`}>{t(value) || value}</span>,\n },\n {\n Header: t(\"TOTAL_EKYC_APPLICATIONS\") || \"Total eKYC Applications\",\n accessor: (row) => row?.totalKnos || 0,\n id: \"totalEkycApplications\",\n },\n {\n Header: t(\"EKYC_SUBMITTED\") || \"eKYC Completed\",\n accessor: (row) => row?.submittedKnos || 0,\n id: \"ekycCompleted\",\n },\n {\n Header: t(\"PENDING_APPLICATIONS\") || \"Pending Applications\",\n accessor: (row) => row?.pendingKnos || 0,\n id: \"pendingApplications\",\n },\n {\n Header: t(\"OVERALL_PROGRESS\") || \"Overall Progress\",\n accessor: (row) => `${row?.progressPercent || 0}%`,\n id: \"overallProgress\",\n },\n ],\n [t, history]\n );\n\n // Report Download logic\n const [customDate, setCustomDate] = useState({ from: \"\", to: \"\" });\n\n const StatCard = ({ title, value, type, isLoading, icon }) => (\n <div className={`stat-card ${type}`}>\n {isLoading ? (\n <React.Fragment>\n <div className=\"stat-title skeleton skeleton-text\"></div>\n <div className=\"stat-value skeleton skeleton-number\"></div>\n </React.Fragment>\n ) : (\n <React.Fragment>\n <div className=\"stat-title\">{title}</div>\n <div className=\"stat-value\">{value}</div>\n {icon && <div className=\"stat-icon\">{icon}</div>}\n </React.Fragment>\n )}\n </div>\n );\n\n const isPageLoading = isProgressLoading || isSupervisorSearchLoading || isSurveyorSearchLoading || isVendorSearchLoading;\n\n if (isPageLoading && !supervisor) {\n return <Loader />;\n }\n\n if (!supervisor) {\n return (\n <Card>\n <div style={{ padding: \"24px\" }}>{t(\"NO_SUPERVISOR_FOUND\")}</div>\n </Card>\n );\n }\n\n const handleDownloadEkycData = async (fromDate, toDate) => {\n setEkycDownloadLoading(true);\n try {\n const response = await Digit.EkycService.application_list({\n tenantId: tenantId,\n offset: 0,\n limit: 10000,\n // Vendor-specific filter\n vendorId: targetVendorId,\n ekycStatus: ekycStatus,\n reportDownload: true,\n ...(fromDate && { fromDate }),\n ...(toDate && { toDate }),\n });\n\n const consumerList = response?.consumerList || [];\n\n if (!consumerList || consumerList.length === 0) {\n alert(t(\"NO_EKYC_DATA_FOUND\") || \"No eKYC data found to download.\");\n return;\n }\n\n consumerList.forEach((item) => {\n if (item.assignedTime) {\n item.assignedTime = new Date(item.assignedTime).toLocaleDateString(\"en-GB\");\n }\n\n if (item.submittedAt) {\n item.submittedAt = new Date(item.submittedAt).toLocaleDateString(\"en-GB\");\n }\n });\n const excelData = getEkycExcelData(consumerList, t);\n const cleanFileName = `eKYC_Data_${vendorName.replace(/[^a-zA-Z0-9]/g, \"_\")}`;\n Digit.Download.Excel(excelData, cleanFileName);\n } catch (error) {\n console.error(\"Failed to download eKYC data:\", error);\n alert(t(\"EKYC_DOWNLOAD_FAILED\") || \"Failed to download eKYC data. Please try again.\");\n } finally {\n setEkycDownloadLoading(false);\n }\n };\n\n const handleApplyFilters = async () => {\n setShowFilterModal(false);\n await handleDownloadEkycData(customDate.startDate.getTime(), customDate.endDate.getTime());\n };\n\n return (\n <Fragment>\n <Card className=\"surveyor-dashboard\">\n {/* Header + Download Report */}\n <div className=\"ekyc-dashboard-section\">\n <div className=\"ekyc-details-wrapper\">\n <div className=\"details-top-row\">\n <div className=\"detail-item first-row\">\n <div className=\"ekyc-dashboard-header\">\n <div className=\"header-content\">\n <h2 className=\"name\">{fullName}</h2>\n <div className=\"designation\">({t(\"FIELD_SUPERVISOR\") || \"Field Supervisor\"})</div>\n </div>\n </div>\n\n <div className=\"report-download relative\">\n <button\n disabled={ekycDownloadLoading}\n className={`download-btn relative ${ekycDownloadLoading ? \"disabled\" : \"\"}`}\n onClick={() => setShowFilterModal(true)}\n >\n <MdDownloadIcon />\n {ekycDownloadLoading ? t(\"DOWNLOADING\") || \"Downloading\" : t(\"DOWNLOAD_REPORT\") || \"Download Report\"}\n </button>\n </div>\n </div>\n </div>\n <div className=\"details-grid-row\">\n <div className=\"detail-item\">\n <span className=\"label\">{t(\"VENDOR_NAME\") || \"Vendor Name\"}</span>\n <span className=\"value\">{vendorName}</span>\n </div>\n <div className=\"detail-item\">\n <span className=\"label\">{t(\"MOBILE\")}</span>\n <span className=\"value\">{mobileNumber}</span>\n </div>\n\n <div className=\"detail-item\">\n <span className=\"label\">{t(\"EMAIL\")}</span>\n <span className=\"value\">{email}</span>\n </div>\n </div>\n\n {/* Bottom Row: Remaining Details */}\n <div className=\"details-grid-row\">\n <div className=\"detail-item\">\n <span className=\"label\">{t(\"ASSIGNED_ZONE\") || \"Assigned Zone\"}</span>\n <span className=\"value\">\n {assignedZone && assignedZone !== \"N/A\" ? t(assignedZone.trim().toUpperCase()) || assignedZone : assignedZone}\n </span>\n </div>\n\n <div className=\"detail-item\">\n <span className=\"label\">{t(\"GENDER\")}</span>\n <span className=\"value\">{t(gender) || gender}</span>\n </div>\n\n <div className=\"detail-item\">\n <span className=\"label\">{t(\"STATUS\")}</span>\n <span className=\"value\">{status}</span>\n </div>\n </div>\n </div>\n </div>\n\n {/* Stats */}\n <div className=\"stats-wrapper\">\n {cards.map((card, idx) => (\n <StatCard key={idx} title={t(card.label)} value={card.count} type={card.type} isLoading={isProgressLoading} icon={card.icon} />\n ))}\n </div>\n\n <div>\n <Table\n t={t}\n tableTitle={t(\"CONNECTED_SURVEYORS\") || \"Connected Surveyors\"}\n tableClass=\"ekycTable\"\n isTableScrollable={true}\n data={surveyorsData}\n columns={surveyorColumns}\n isLoading={isProgressLoading}\n totalRecords={surveyors.length}\n currentPage={currentPage}\n pageSizeLimit={pageSize}\n isPaginationRequired={true}\n onNextPage={() => {\n if (currentPage < Math.ceil(surveyors.length / pageSize) - 1) {\n setCurrentPage((prev) => prev + 1);\n }\n }}\n onPrevPage={() => {\n if (currentPage > 0) {\n setCurrentPage((prev) => prev - 1);\n }\n }}\n onFirstPage={() => {\n setCurrentPage(0);\n }}\n onLastPage={() => {\n setCurrentPage(Math.max(Math.ceil(surveyors.length / pageSize) - 1, 0));\n }}\n onPageSizeChange={(e) => {\n setPageSize(Number(e.target.value));\n setCurrentPage(0);\n }}\n />\n </div>\n </Card>\n {showFilterModal && (\n <EkycFilterModal\n t={t}\n onClose={() => setShowFilterModal(false)}\n onApply={handleApplyFilters}\n customDate={customDate}\n setCustomDate={setCustomDate}\n ekycStatus={ekycStatus}\n setEkycStatus={setEkycStatus}\n />\n )}\n </Fragment>\n );\n};\n\nexport default SupervisorDetailsCard;\n","import React, { useMemo, useState, useEffect } from \"react\";\nimport { Modal, Close, Table, Toast } from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\n\nconst AssignEkycModal = ({ surveyor, isReassign, closeModal, refetchDashboard, tenantId: propsTenantId }) => {\n const { t } = useTranslation();\n const tenantId = propsTenantId || Digit.ULBService.getCurrentTenantId();\n const [selectedKnos, setSelectedKnos] = useState([]);\n const [currentPage, setCurrentPage] = useState(0);\n const [pageSize, setPageSize] = useState(20);\n const [showToast, setShowToast] = useState(false);\n const [toastData, setToastData] = useState({\n error: false,\n label: \"\",\n });\n const [filters, setFilters] = useState({\n kno: \"\", // search value\n pincode: \"\",\n zoneCode: \"\",\n zoneName: \"\",\n ward: \"\",\n assembly: \"\",\n mrkey: \"\",\n ekycStatus: \"\",\n });\n\n const [debouncedFilters, setDebouncedFilters] = useState(filters);\n\n // const { data: zroLocationsData, isLoading: isZroLoading } = Digit.Hooks.ws.useWSConfigMDMS.ZROLocation(tenantId);\n // const mappedZROLocation = useMemo(() => {\n // return (zroLocationsData || []).map((item) => ({\n // code: item.code,\n // name: item.name,\n // }));\n // }, [zroLocationsData]);\n\n const { data: egovLocationData } = Digit.Hooks.useCommonMDMS(tenantId, \"egov-location\", [\"TenantBoundary\"]);\n\n const boundaryData = useMemo(() => {\n const tenantBoundary = egovLocationData?.[\"egov-location\"]?.TenantBoundary || [];\n const revenueData = tenantBoundary.find((item) => item?.hierarchyType?.code === \"REVENUE\");\n const boundary = revenueData?.boundary || [];\n return Array.isArray(boundary) ? boundary : [boundary];\n }, [egovLocationData]);\n\n // const { assemblyOptions, wardOptions } = useMemo(() => {\n // const assemblies = new Map();\n // const wards = new Map();\n\n // const boundaries = Array.isArray(boundaryData) ? boundaryData : boundaryData ? [boundaryData] : [];\n\n // const traverse = (node) => {\n // if (!node) return;\n // if (node.label === \"Ward\" || node.label === \"WARD\" || node.label === \"Block\" || node.label === \"BLOCK\") {\n // const code = node.code || node.localname || node.name;\n // const name = node.name || node.localname || code;\n // if (code) wards.set(code, { code, name: name });\n // }\n // if (node.label === \"Assembly Constituency\" || node.label === \"ASSEMBLY_CONSTITUENCY\") {\n // const code = node.code || node.localname || node.name;\n // const name = node.name || node.localname || code;\n // if (code) assemblies.set(code, { code, name: name });\n // }\n // if (node.children && node.children.length > 0) {\n // node.children.forEach(traverse);\n // }\n // };\n\n // boundaries.forEach(traverse);\n\n // return {\n // assemblyOptions: Array.from(assemblies.values()).sort((a, b) => a.name.localeCompare(b.name)),\n // wardOptions: Array.from(wards.values()).sort((a, b) => a.name.localeCompare(b.name)),\n // };\n // }, [boundaryData]);\n\n const structuredLocalityData = useMemo(() => {\n let localities = [];\n const boundaries = Array.isArray(boundaryData) ? boundaryData : boundaryData ? [boundaryData] : [];\n\n const extractLocalities = (node) => {\n if (!node) return;\n\n if (node.label === \"Locality\" || node.label === \"LOCALITY\") {\n localities.push({\n ...node,\n name: node.localname || node.name || node.code,\n });\n }\n if (node.children && node.children.length > 0) {\n node.children.forEach((child) => extractLocalities(child));\n }\n };\n\n boundaries.forEach((rootNode) => extractLocalities(rootNode));\n\n return localities;\n }, [boundaryData]);\n\n const fetchedPincodes = useMemo(() => {\n const pinSet = new Set();\n\n structuredLocalityData.forEach((loc) => {\n if (loc.pincode) {\n const pins = Array.isArray(loc.pincode) ? loc.pincode : [loc.pincode];\n pins.forEach((p) => {\n if (p) {\n const sanitizedPin = p.toString().split(\".\")[0];\n pinSet.add(sanitizedPin);\n }\n });\n }\n });\n\n return Array.from(pinSet).sort();\n }, [structuredLocalityData]);\n\n const { data: filterOptionsData } = Digit.Hooks.ekyc.useEkycApplicationList(\n {\n unassignedOnly: !isReassign,\n fetchFilterOptions: true,\n },\n {\n tenantId: tenantId,\n offset: 0,\n limit: 1000,\n },\n {\n staleTime: Infinity,\n }\n );\n\n const pincodeOptions = useMemo(() => {\n if (!filterOptionsData) return fetchedPincodes || [];\n const pins = filterOptionsData.pincodeOptions || [];\n return Array.isArray(pins) ? pins.filter(Boolean).map(String).sort() : [];\n }, [filterOptionsData, fetchedPincodes]);\n\n const mrkeyOptions = useMemo(() => {\n if (!filterOptionsData) return [];\n const keys = filterOptionsData.mrkeyOptions || [];\n return Array.isArray(keys) ? keys.filter(Boolean).map(String).sort() : [];\n }, [filterOptionsData]);\n\n useEffect(() => {\n const timer = setTimeout(() => {\n setDebouncedFilters(filters);\n }, 500);\n\n return () => clearTimeout(timer);\n }, [filters]);\n\n useEffect(() => {\n setCurrentPage(0);\n }, [debouncedFilters, filters.kno]);\n\n const { data: applicationData, isFetching: isLoading, refetch: refetchApplicationList } = Digit.Hooks.ekyc.useEkycApplicationList(\n {\n assignedOnly: isReassign,\n /*\n ...(debouncedFilters.kno && {\n kno: debouncedFilters.kno,\n }),\n */\n ...(filters.kno && {\n kno: filters.kno,\n }),\n\n ...(debouncedFilters.ekycStatus && {\n ekycStatus: debouncedFilters.ekycStatus,\n }),\n\n ...(debouncedFilters.zoneName && {\n zoneName: debouncedFilters.zoneName,\n }),\n\n ...(debouncedFilters.assembly && {\n assembly: debouncedFilters.assembly,\n }),\n\n ...(debouncedFilters.ward && {\n ward: debouncedFilters.ward,\n }),\n\n ...(debouncedFilters.mrkey && {\n mrkey: debouncedFilters.mrkey,\n }),\n\n ...(debouncedFilters.pincode && {\n pincode: debouncedFilters.pincode,\n }),\n },\n {\n tenantId: tenantId,\n offset: 0,\n limit: 5000,\n },\n {\n keepPreviousData: true,\n }\n );\n\n const handleAssignmentError = (errMsg) => {\n const isAlreadyAssigned =\n errMsg.toLowerCase().includes(\"already assigned\") ||\n errMsg.toLowerCase().includes(\"already assign\") ||\n errMsg.toLowerCase().includes(\"active assignment\") ||\n errMsg.toLowerCase().includes(\"mrkey\") ||\n errMsg.toLowerCase().includes(\"mr key\") ||\n errMsg.toLowerCase().includes(\"kno\") ||\n errMsg.toLowerCase().includes(\"already exists\");\n\n if (isAlreadyAssigned) {\n setToastData({\n error: true,\n label: t(\"EKYC_KNO_ALREADY_ASSIGNED_WITH_ANOTHER_SURVEYOR\") || \"kno is already assign with another surveyor\",\n });\n } else {\n setToastData({\n error: true,\n label: t(errMsg) || errMsg || t(\"EKYC_SOMETHING_WENT_WRONG\") || \"Something went wrong\",\n });\n }\n setShowToast(true);\n };\n\n const assignmentMutation = Digit.Hooks.ekyc.useEkycAssignmentCreate({\n onSuccess: (response, variables) => {\n if (response?.error) {\n const errMsg = response?.data?.message || \"\";\n handleAssignmentError(errMsg, variables);\n return;\n }\n\n // Check for skipped assignments (e.g. 200 OK but skipped)\n if (response?.skipped && response.skipped.length > 0) {\n const reason = response.skipped[0]?.reason || \"\";\n handleAssignmentError(reason, variables);\n return;\n }\n\n setToastData({\n error: false,\n label: t(\"EKYC_ASSIGNMENT_SUCCESSFUL\") || \"Assignment successful\",\n });\n\n setShowToast(true);\n\n // optional delay so user can see the success toast\n setTimeout(async () => {\n if (refetchDashboard) {\n await refetchDashboard();\n }\n if (refetchApplicationList) {\n await refetchApplicationList();\n }\n closeModal();\n }, 1000);\n },\n\n onError: (error, variables) => {\n const errMsg = error?.data?.message || error?.response?.data?.message || \"\";\n handleAssignmentError(errMsg, variables);\n },\n });\n\n const reassignMutation = Digit.Hooks.ekyc.useEkycAssignmentReassign({\n onSuccess: (response, variables) => {\n if (response?.error) {\n const errMsg = response?.data?.message || \"\";\n handleAssignmentError(errMsg, variables);\n return;\n }\n\n if (response?.skipped && response.skipped.length > 0) {\n const reason = response.skipped[0]?.reason || \"\";\n handleAssignmentError(reason, variables);\n return;\n }\n\n setToastData({\n error: false,\n label: t(\"EKYC_REASSIGNMENT_SUCCESSFUL\") || \"Reassignment successful\",\n });\n\n setShowToast(true);\n\n setTimeout(async () => {\n if (refetchDashboard) {\n await refetchDashboard();\n }\n if (refetchApplicationList) {\n await refetchApplicationList();\n }\n closeModal();\n }, 1000);\n },\n onError: (error, variables) => {\n const errMsg = error?.data?.message || error?.response?.data?.message || \"\";\n handleAssignmentError(errMsg, variables);\n },\n });\n\n const activeMutation = isReassign ? reassignMutation : assignmentMutation;\n\n const allData = useMemo(() => applicationData?.consumerList || [], [applicationData]);\n const totalRecords = allData.length;\n const totalPages = useMemo(() => Math.ceil(totalRecords / pageSize) || 1, [totalRecords, pageSize]);\n\n const paginatedData = useMemo(() => {\n const start = currentPage * pageSize;\n return allData.slice(start, start + pageSize);\n }, [allData, currentPage, pageSize]);\n\n const handleAssign = () => {\n const payload = {\n tenantId: tenantId,\n assignmentType: \"KNO\",\n assignmentValue: selectedKnos,\n };\n\n if (isReassign) {\n payload.newSurveyorId = surveyor?.owner?.uuid;\n } else {\n payload.surveyorId = surveyor?.owner?.uuid;\n }\n\n activeMutation.mutate(payload);\n };\n\n const handleSelect = (kno) => {\n setSelectedKnos((prev) => (prev.includes(kno) ? prev.filter((item) => item !== kno) : [...prev, kno]));\n };\n\n const handleSelectAll = (e) => {\n e?.stopPropagation();\n const allMatchingKnos = allData.map((item) => item.kno).filter(Boolean);\n if (allMatchingKnos.length === 0) return;\n\n const isAllSelected = allMatchingKnos.length > 0 && allMatchingKnos.every((kno) => selectedKnos.includes(kno));\n\n setSelectedKnos(isAllSelected ? [] : allMatchingKnos);\n };\n\n const handleFilterChange = (key, value) => {\n setFilters((prev) => ({\n ...prev,\n [key]: value,\n }));\n setCurrentPage(0);\n };\n\n const columns = useMemo(\n () => [\n {\n Header: () => {\n const allMatchingKnos = allData.map((item) => item.kno).filter(Boolean);\n const isAllChecked = allMatchingKnos.length > 0 && allMatchingKnos.every((kno) => selectedKnos.includes(kno));\n return (\n <input\n type=\"checkbox\"\n checked={isAllChecked}\n onChange={(e) => {\n e.stopPropagation();\n handleSelectAll(e);\n }}\n onClick={(e) => e.stopPropagation()}\n />\n );\n },\n id: \"selection\",\n Cell: ({ row }) => {\n const kno = row.original.kno;\n\n return (\n <input\n type=\"checkbox\"\n checked={selectedKnos.includes(kno)}\n onChange={(e) => {\n e.stopPropagation();\n handleSelect(kno);\n }}\n onClick={(e) => e.stopPropagation()}\n />\n );\n },\n },\n {\n Header: \"KNO\",\n accessor: \"kno\",\n },\n {\n Header: \"Consumer Name\",\n accessor: (row) => `${row.firstName || \"\"} ${row.middleName || \"\"} ${row.lastName || \"\"}`.trim(),\n id: \"consumerName\",\n },\n {\n Header: \"Zone\",\n accessor: \"zoneName\",\n },\n {\n Header: \"Pincode\",\n accessor: \"pincode\",\n },\n {\n Header: \"Status\",\n accessor: \"status\",\n Cell: ({ value }) => (\n <span className={`status-badge ${value === \"ACTIVE\" ? \"verified\" : value === \"PENDING\" ? \"pending\" : \"assigned\"}`}>{value}</span>\n ),\n },\n {\n Header: \"eKYC Status\",\n accessor: \"ekycStatus\",\n Cell: ({ value }) => {\n const status = (value || \"NA\").toUpperCase();\n return value ? <span className={`ekyc-status-tag ${status}`}>{t(status)}</span> : \"-\";\n },\n },\n ],\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [selectedKnos, paginatedData, allData]\n );\n\n return (\n <Modal\n headerBarMain={isReassign ? `Reassign KNOs to ${surveyor?.name}` : `Assign KNOs to ${surveyor?.name}`}\n headerBarEnd={<Close onClick={closeModal} />}\n actionCancelLabel=\"Cancel\"\n actionCancelOnSubmit={closeModal}\n actionSaveLabel={isReassign ? t(\"EKYC_REASSIGN_KNOS\") || \"Reassign KNOs\" : t(\"EKYC_ASSIGN_KNOS\") || \"Assign KNOs\"}\n actionSaveOnSubmit={handleAssign}\n isDisabled={!selectedKnos?.length}\n >\n <div className=\"assign-knos-modal\">\n {/* Filters */}\n <div className=\"filters-grid\">\n <input className=\"form-control\" placeholder=\"KNO\" value={filters.kno} onChange={(e) => handleFilterChange(\"kno\", e.target.value)} />\n\n <select className=\"form-control disabled\" value={filters.pincode} onChange={(e) => handleFilterChange(\"pincode\", e.target.value)} disabled>\n <option value=\"\">Select Pincode</option>\n {pincodeOptions.map((pin) => (\n <option key={pin} value={pin}>\n {pin}\n </option>\n ))}\n </select>\n\n {/* <select\n className=\"form-control\"\n value={filters.zoneName}\n onChange={(e) => {\n const val = e.target.value;\n setFilters((prev) => ({\n ...prev,\n zoneCode: val,\n zoneName: val,\n }));\n }}\n disabled={isZroLoading}\n >\n <option value=\"\">{isZroLoading ? \"Loading ZRO Locations...\" : \"Select ZRO Location\"}</option>\n {mappedZROLocation.map((loc) => (\n <option key={loc.code} value={loc.name}>\n {loc.name}\n </option>\n ))}\n </select> */}\n\n {/* <select className=\"form-control\" value={filters.ward} onChange={(e) => handleFilterChange(\"ward\", e.target.value)}>\n <option value=\"\">Select Ward</option>\n {wardOptions\n .filter((ward) => {\n const stripped = ward.name.replace(/[0-9]/g, \"\").replace(/^[-\\s]+|[-\\s]+$/g, \"\");\n return stripped.trim().length > 0;\n })\n .map((ward) => {\n const displayName = ward.name.replace(/[0-9]/g, \"\").replace(/^[-\\s]+|[-\\s]+$/g, \"\");\n return (\n <option key={ward.code} value={ward.name}>\n {displayName}\n </option>\n );\n })}\n </select> */}\n {/* \n <select className=\"form-control\" value={filters.assembly} onChange={(e) => handleFilterChange(\"assembly\", e.target.value)}>\n <option value=\"\">Select Assembly</option>\n {assemblyOptions.map((assembly) => (\n <option key={assembly.code} value={assembly.name}>\n {assembly.name}\n </option>\n ))}\n </select> */}\n\n <select className=\"form-control\" value={filters.mrkey} onChange={(e) => handleFilterChange(\"mrkey\", e.target.value)}>\n <option value=\"\">Select MR Key</option>\n {mrkeyOptions.map((key) => (\n <option key={key} value={key}>\n {key}\n </option>\n ))}\n </select>\n\n {selectedKnos.length > 0 && (\n <button className=\"clear-selected-btn\" type=\"button\" onClick={() => setSelectedKnos([])}>\n {t(\"EKYC_CLEAR_SELECTION\") || \"Clear Selected\"}\n </button>\n )}\n\n {/* <select className=\"form-control\" value={filters.ekycStatus} onChange={(e) => handleFilterChange(\"ekycStatus\", e.target.value)}>\n <option value=\"\">All eKYC Status</option>\n <option value=\"PENDING\">Pending</option>\n <option value=\"APPROVED\">Approved</option>\n <option value=\"REJECTED\">Rejected</option>\n </select> */}\n </div>\n\n {/* Table */}\n <Table\n tableTitle=\"eKYC Applications\"\n tableClass=\"ekycTable\"\n isTableScrollable={true}\n data={paginatedData}\n columns={columns}\n isLoading={isLoading}\n totalRecords={applicationData?.totalCount || 0}\n currentPage={currentPage}\n pageSizeLimit={pageSize}\n manualPagination={true}\n isPaginationRequired={true}\n onNextPage={() => {\n if (currentPage < totalPages - 1) {\n setCurrentPage((prev) => prev + 1);\n }\n }}\n onPrevPage={() => {\n if (currentPage > 0) {\n setCurrentPage((prev) => prev - 1);\n }\n }}\n onFirstPage={() => {\n setCurrentPage(0);\n }}\n onLastPage={() => {\n setCurrentPage(Math.max(totalPages - 1, 0));\n }}\n onPageSizeChange={(e) => {\n setPageSize(Number(e.target.value));\n setCurrentPage(0);\n }}\n />\n </div>\n {showToast && <Toast error={toastData.error} label={toastData.label} onClose={() => setShowToast(false)} />}\n </Modal>\n );\n};\n\nexport default AssignEkycModal;\n","import React, { useMemo, useState, Fragment } from \"react\";\n// import { ResponsiveContainer, BarChart, Bar, XAxis, YAxis, Tooltip, CartesianGrid, PieChart, Pie, Cell, Legend } from \"recharts\";\n\nimport { Card, SubmitBar, ActionBar, Menu, Loader, Table,MdDownloadIcon } from \"@djb25/digit-ui-react-components\";\n\nimport { useTranslation } from \"react-i18next\";\nimport { useParams } from \"react-router-dom\";\n\nimport AssignEkycModal from \"./AssignEkycModal\";\nimport { getEkycExcelData } from \"../utils/ekycExcelData\";\nimport { FaUsers, FaCheckCircle, FaClock, FaChartLine } from \"react-icons/fa\";\nimport EkycFilterModal from \"./EkycFilterModal\";\n\nconst SurveyorDetailsCard = () => {\n const tenantId = Digit.ULBService.getCurrentTenantId();\n\n const [showModal, setShowModal] = useState(null);\n const [showOptions, setShowOptions] = useState(false);\n const [ekycDownloadLoading, setEkycDownloadLoading] = useState(false);\n const [showFilterModal, setShowFilterModal] = useState(false);\n const [ekycStatus, setEkycStatus] = useState(\"ALL\");\n\n const { id: surveyorId } = useParams();\n const ownerIds = Digit.SessionStorage.get(\"User\")?.info?.uuid;\n\n const { t } = useTranslation();\n\n const { data: surveyorSearchById, isLoading: isLoadingId } = Digit.Hooks.fsm.useSurveyorSearch(\n tenantId,\n { ids: surveyorId },\n { enabled: !!surveyorId, staleTime: Infinity }\n );\n\n const hasFoundById = !!surveyorSearchById?.surveyors?.length;\n\n const { data: surveyorSearchByOwner, isLoading: isLoadingOwner } = Digit.Hooks.fsm.useSurveyorSearch(\n tenantId,\n surveyorId ? { ownerIds: surveyorId } : { ownerIds },\n { enabled: !surveyorId || (!isLoadingId && !hasFoundById), staleTime: Infinity }\n );\n\n const surveyorSearchResponse = useMemo(() => {\n if (surveyorId && hasFoundById) {\n return surveyorSearchById;\n }\n return surveyorSearchByOwner;\n }, [surveyorId, hasFoundById, surveyorSearchById, surveyorSearchByOwner]);\n\n const isLoading = surveyorId ? isLoadingId || (isLoadingOwner && !hasFoundById) : isLoadingOwner;\n\n const roles = Digit.SessionStorage.get(\"User\")?.info?.roles.map((ele) => ele.code);\n\n const surveyor = useMemo(() => {\n return surveyorSearchResponse?.surveyors?.[0] || null;\n }, [surveyorSearchResponse]);\n\n const { data: vendorData, isLoading: isVendorLoading } = Digit.Hooks.fsm.useDsoSearch(\n tenantId,\n { status: \"ACTIVE\" },\n { enabled: !!tenantId, staleTime: 300000 }\n );\n const { data: supervisorSearchResponse, isLoading: isSupervisorSearchLoading } = Digit.Hooks.fsm.useSupervisorSearch(\n tenantId,\n { status: \"ACTIVE\" },\n { enabled: !!tenantId, staleTime: 300000 }\n );\n const vendorName = useMemo(() => {\n if (surveyor?.vendorName) return surveyor.vendorName;\n if (!vendorData || !surveyor?.vendorId) return \"N/A\";\n const mappedVendor = vendorData.find((v) => v.dsoDetails?.id === surveyor.vendorId || v.dsoDetails?.vendorId === surveyor.vendorId);\n return mappedVendor?.dsoDetails?.name || surveyor.vendorId || \"N/A\";\n }, [vendorData, surveyor?.vendorId, surveyor?.vendorName]);\n\n const supervisorName = useMemo(() => {\n if (surveyor?.supervisorName) return surveyor.supervisorName;\n if (!supervisorSearchResponse?.supervisors || !surveyor?.supervisorId) return \"N/A\";\n const mappedSupervisor = supervisorSearchResponse.supervisors.find(\n (s) => s.id === surveyor.supervisorId || s.owner?.uuid === surveyor.supervisorId\n );\n return mappedSupervisor?.name || mappedSupervisor?.owner?.name || surveyor.supervisorId || \"N/A\";\n }, [supervisorSearchResponse, surveyor?.supervisorId, surveyor?.supervisorName]);\n const fullName = surveyor?.owner?.name || surveyor?.name || \"N/A\";\n\n const [currentPage, setCurrentPage] = useState(0);\n const [pageSize, setPageSize] = useState(20);\n const queryParams = {\n tenantId: \"dl.djb\",\n offset: currentPage * pageSize,\n limit: pageSize,\n surveyorId: surveyor?.owner?.uuid,\n };\n\n const { isFetching: isDashboardLoading, data: dashboardData = {}, refetch: refetchDashboard } = Digit.Hooks.ekyc.useEkycSurveyorDashboard(\n {},\n queryParams,\n {\n enabled: !!queryParams.tenantId && !!queryParams.surveyorId,\n keepPreviousData: true,\n }\n );\n\n const toTitleCase = (str) => {\n if (!str) return \"\";\n // Handle dot-notation values like \"CONSUMERTYPE.INDIVIDUAL\" → \"Individual\"\n const cleanStr = String(str).includes(\".\") ? String(str).split(\".\").pop() : String(str);\n return cleanStr\n .toLowerCase()\n .replace(/_/g, \" \")\n .replace(/\\b\\w/g, (c) => c.toUpperCase());\n };\n\n const knoColumns = useMemo(\n () => [\n {\n Header: t(\"KNO\") || \"KNO\",\n accessor: \"kno\",\n },\n {\n Header: t(\"CONSUMER_NAME\") || \"Consumer Name\",\n accessor: (row) => toTitleCase(`${row.firstName || \"\"} ${row.middleName || \"\"} ${row.lastName || \"\"}`.trim()),\n id: \"consumerName\",\n },\n {\n Header: t(\"ZONE\") || \"Zone\",\n accessor: (row) => toTitleCase(row.zoneName),\n id: \"zoneName\",\n },\n {\n Header: t(\"EKYC_STATUS\") || \"eKYC Status\",\n accessor: \"ekycStatus\",\n Cell: ({ value }) => {\n const status = (value || \"NA\").toUpperCase();\n return value ? <span className={`ekyc-status-tag ${status}`}>{toTitleCase(value)}</span> : \"-\";\n },\n },\n {\n Header: t(\"SUBMITTED_AT\") || \"Submitted At\",\n accessor: \"submittedAt\",\n Cell: ({ value }) => (value ? Digit.DateUtils.ConvertEpochToDate(value) : \"-\"),\n },\n {\n Header: t(\"ASSIGNED_AT\") || \"Assigned At\",\n accessor: \"assignedAt\",\n Cell: ({ value }) => (value ? Digit.DateUtils.ConvertEpochToDate(value) : \"-\"),\n },\n ],\n [t]\n );\n\n const [customDate, setCustomDate] = useState({ from: \"\", to: \"\" });\n\n\n\n const isPageLoading = isLoading || isVendorLoading || isSupervisorSearchLoading;\n\n if (isPageLoading && !surveyor) {\n return <Loader />;\n }\n\n if (!surveyor) {\n return (\n <Card>\n <div style={{ padding: \"24px\" }}>{t(\"NO_SURVEYOR_FOUND\")}</div>\n </Card>\n );\n }\n\n const StatCard = ({ title, value, type, isLoading, icon }) => (\n <div className={`stat-card ${type}`}>\n {isLoading ? (\n <React.Fragment>\n <div className=\"stat-title skeleton skeleton-text\"></div>\n <div className=\"stat-value skeleton skeleton-number\"></div>\n </React.Fragment>\n ) : (\n <React.Fragment>\n <div className=\"stat-title\">{title}</div>\n <div className=\"stat-value\">{value}</div>\n {icon && <div className=\"stat-icon\">{icon}</div>}\n </React.Fragment>\n )}\n </div>\n );\n\n const options = [{ action: \"Assign\" }, { action: \"EKYC_REASSIGN\" }];\n\n const handleMenuSelect = (option) => {\n setShowOptions(false); // close menu\n setShowModal(option.action);\n };\n\n const closeModal = async () => {\n setShowModal(null);\n };\n\n const handleDownloadEkycData = async (fromDate, toDate) => {\n setEkycDownloadLoading(true);\n try {\n const response = await Digit.EkycService.application_list({\n tenantId: tenantId,\n offset: 0,\n limit: 10000,\n // Vendor-specific filter\n surveyorId: surveyor?.owner?.uuid,\n ekycStatus: ekycStatus,\n reportDownload: true,\n ...(fromDate && { fromDate }),\n ...(toDate && { toDate }),\n });\n\n const consumerList = response?.consumerList || [];\n\n if (!consumerList || consumerList.length === 0) {\n alert(t(\"NO_EKYC_DATA_FOUND\") || \"No eKYC data found to download.\");\n return;\n }\n\n consumerList.forEach((item) => {\n if (item.assignedTime) {\n item.assignedTime = new Date(item.assignedTime).toLocaleDateString(\"en-GB\");\n }\n\n if (item.submittedAt) {\n item.submittedAt = new Date(item.submittedAt).toLocaleDateString(\"en-GB\");\n }\n });\n const excelData = getEkycExcelData(consumerList, t);\n const cleanFileName = `eKYC_Data_${vendorName.replace(/[^a-zA-Z0-9]/g, \"_\")}`;\n Digit.Download.Excel(excelData, cleanFileName);\n } catch (error) {\n console.error(\"Failed to download eKYC data:\", error);\n alert(t(\"EKYC_DOWNLOAD_FAILED\") || \"Failed to download eKYC data. Please try again.\");\n } finally {\n setEkycDownloadLoading(false);\n }\n };\n\n const handleApplyFilters = async () => {\n setShowFilterModal(false);\n await handleDownloadEkycData(customDate.startDate.getTime(), customDate.endDate.getTime());\n };\n\n return (\n <Fragment>\n <Card className=\"surveyor-dashboard\">\n {/* Details */}\n <div className=\"ekyc-dashboard-section\">\n <div className=\"ekyc-details-wrapper\">\n <div className=\"details-top-row\">\n <div className=\"detail-item first-row\">\n <div className=\"ekyc-dashboard-header\">\n <div className=\"header-content\">\n <h2 className=\"name\">{fullName}</h2>\n <div className=\"designation\">({surveyor?.description || t(\"FIELD_SURVEYOR\")})</div>\n {/* <div className=\"employee-id\">{t(\"EMPLOYEE_ID\")}: {employeeId}</div> */}\n </div>\n </div>\n\n {/* Download Report — far right */}\n <div className=\"report-download relative\">\n <button\n disabled={ekycDownloadLoading}\n className={`download-btn relative ${ekycDownloadLoading ? \"disabled\" : \"\"}`}\n onClick={() => setShowFilterModal(true)}\n >\n <MdDownloadIcon />\n {ekycDownloadLoading ? t(\"DOWNLOADING\") || \"Downloading\" : t(\"DOWNLOAD_REPORT\") || \"Download Report\"}\n </button>\n </div>\n </div>\n </div>\n <div className=\"details-grid-row\">\n <div className=\"detail-item\">\n <span className=\"label\">{t(\"VENDOR_NAME\") || \"Vendor Name\"}</span>\n <span className=\"value\">{vendorName}</span>\n </div>\n\n <div className=\"detail-item\">\n <span className=\"label\">{t(\"SUPERVISOR_NAME\") || \"Supervisor Name\"}</span>\n <span className=\"value\">{supervisorName}</span>\n </div>\n\n <div className=\"detail-item\">\n <span className=\"label\">{t(\"MOBILE\")}</span>\n <span className=\"value\">{surveyor?.owner?.mobileNumber || surveyor?.mobileNo || \"N/A\"}</span>\n </div>\n </div>\n\n {/* Bottom Row: Remaining Details */}\n <div className=\"details-grid-row\">\n <div className=\"detail-item\">\n <span className=\"label\">{t(\"EMAIL\")}</span>\n <span className=\"value\">{surveyor?.owner?.emailId || \"N/A\"}</span>\n </div>\n \n <div className=\"detail-item\">\n <span className=\"label\">{t(\"GENDER\")}</span>\n <span className=\"value\">{surveyor?.owner?.gender || \"N/A\"}</span>\n </div>\n\n <div className=\"detail-item\">\n <span className=\"label\">{t(\"STATUS\")}</span>\n <span className=\"value\">{surveyor?.status || \"N/A\"}</span>\n </div>\n </div>\n </div>\n </div>\n\n {/* Stats */}\n <div className=\"stats-wrapper\">\n <StatCard\n title={t(\"TOTAL_ASSIGNED\")}\n value={dashboardData?.dashboardInfo?.total || 0}\n type=\"today\"\n isLoading={isDashboardLoading}\n icon={<FaUsers />}\n />\n <StatCard\n title={t(\"IN_PROGRESS\")}\n value={dashboardData?.dashboardInfo?.inProgressCount || 0}\n type=\"week\"\n isLoading={isDashboardLoading}\n icon={<FaCheckCircle />}\n />\n <StatCard\n title={t(\"PENDING\")}\n value={dashboardData?.dashboardInfo?.pending || 0}\n type=\"pending\"\n isLoading={isDashboardLoading}\n icon={<FaClock />}\n />\n <StatCard\n title={t(\"SUBMITTED\")}\n value={dashboardData?.dashboardInfo?.submittedCount || 0}\n type=\"month\"\n isLoading={isDashboardLoading}\n icon={<FaChartLine />}\n />\n </div>\n\n <div>\n <Table\n t={t}\n tableTitle={t(\"ASSIGNED_KNOS\")}\n tableClass=\"ekycTable\"\n isTableScrollable={true}\n data={dashboardData?.dashboardInfo?.consumerList || []}\n columns={knoColumns}\n isLoading={isDashboardLoading}\n totalRecords={dashboardData?.dashboardInfo?.total}\n currentPage={currentPage}\n pageSizeLimit={pageSize}\n showAutoSerialNo={true}\n isPaginationRequired={true}\n onNextPage={() => {\n const total = dashboardData?.dashboardInfo?.total || 0;\n if (currentPage < Math.ceil(total / pageSize) - 1) {\n setCurrentPage((prev) => prev + 1);\n }\n }}\n onPrevPage={() => {\n if (currentPage > 0) {\n setCurrentPage((prev) => prev - 1);\n }\n }}\n onFirstPage={() => {\n setCurrentPage(0);\n }}\n onLastPage={() => {\n const total = dashboardData?.dashboardInfo?.total || 0;\n setCurrentPage(Math.max(Math.ceil(total / pageSize) - 1, 0));\n }}\n onPageSizeChange={(e) => {\n setPageSize(Number(e.target.value));\n setCurrentPage(0);\n }}\n />\n </div>\n {/* Actions */}\n {roles.includes(\"EKYC_SUPERVISOR\") && (\n <ActionBar>\n <SubmitBar label={t(\"EKYC_ASSIGN_KNOS\")} onSubmit={() => setShowOptions((prev) => !prev)} />\n\n {showOptions && (\n <Menu\n options={options}\n optionKey={\"action\"}\n t={t}\n onSelect={handleMenuSelect}\n style={{\n color: \"#FFFFFF\",\n fontSize: \"18px\",\n }}\n />\n )}\n </ActionBar>\n )}\n\n {showModal && (\n <AssignEkycModal surveyor={surveyor} isReassign={showModal === \"EKYC_REASSIGN\"} closeModal={closeModal} refetchDashboard={refetchDashboard} />\n )}\n </Card>\n {showFilterModal && (\n <EkycFilterModal\n t={t}\n onClose={() => setShowFilterModal(false)}\n onApply={handleApplyFilters}\n customDate={customDate}\n setCustomDate={setCustomDate}\n ekycStatus={ekycStatus}\n setEkycStatus={setEkycStatus}\n />\n )}\n </Fragment>\n );\n};\n\nexport default SurveyorDetailsCard;\n","import React, { useState, useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\nimport { Label, DatePicker, SubmitBar, Toast, Dropdown, UploadFile, CollapsibleCardPage, VerticalTimeline } from \"@djb25/digit-ui-react-components\";\n\nconst WorkOrder = () => {\n const tenantId = Digit.ULBService.getCurrentTenantId();\n const { t } = useTranslation();\n const history = useHistory();\n\n const [showToast, setShowToast] = useState(null);\n const [vendor, setVendor] = useState(null);\n const [validFrom, setValidFrom] = useState(\"\");\n const [validTo, setValidTo] = useState(\"\");\n const [uploadedFile, setUploadedFile] = useState(null);\n const [file, setFile] = useState(null);\n const [error, setError] = useState(null);\n\n const { data: vendorOptions, isLoading: isVendorLoading } = Digit.Hooks.fsm.useVendorSearch({\n tenantId,\n filters: { status: \"ACTIVE\" },\n config: {\n select: (data) => data?.vendor || [],\n },\n });\n\n const { mutate: createWorkOrder } = Digit.Hooks.wt.useVendorWorkOrderCreate(tenantId);\n\n useEffect(() => {\n (async () => {\n setError(null);\n if (file) {\n if (file.size >= 10000000) {\n setError(t(\"EKYC_MAXIMUM_UPLOAD_SIZE_EXCEEDED\") || \"File size exceeds 10MB\");\n } else {\n try {\n const response = await Digit.UploadServices.Filestorage(\"EKYC\", file, Digit.ULBService.getStateId());\n if (response?.data?.files?.length > 0) {\n setUploadedFile(response?.data?.files[0]?.fileStoreId);\n } else {\n setError(t(\"EKYC_FILE_UPLOAD_ERROR\"));\n }\n } catch (err) {\n setError(t(\"EKYC_FILE_UPLOAD_ERROR\"));\n }\n }\n }\n })();\n }, [file]);\n\n const handleSubmit = () => {\n const payload = {\n vendorWorkOrder: {\n tenantId,\n name: vendor?.name,\n mobileNumber: vendor?.owner?.mobileNumber,\n emailId: vendor?.owner?.emailId,\n vendorId: vendor?.code || vendor?.id,\n validFrom: new Date(validFrom).getTime(),\n validTo: new Date(validTo).getTime(),\n serviceType: \"EKYC\",\n fileStoreId: uploadedFile,\n },\n };\n\n createWorkOrder(payload, {\n onSuccess: (result) => {\n setShowToast({ isError: false, label: t(\"EKYC_WORK_ORDER_SAVE_SUCCESS\") });\n setTimeout(() => {\n history.push(\"/digit-ui/employee/module/details\");\n }, 3000);\n },\n onError: (err) => {\n setShowToast({ isError: true, label: err?.response?.data?.Errors?.[0]?.message || t(\"EKYC_WORK_ORDER_SAVE_ERROR\") });\n },\n });\n };\n\n function selectfile(e) {\n setUploadedFile(null);\n setFile(e.target.files[0]);\n }\n\n const isFormDisabled = !vendor || !validFrom || !validTo || !uploadedFile;\n const isMobile = window.Digit.Utils.browser.isMobile();\n\n return (\n <div className=\"employee-form-section-wrapper\">\n <VerticalTimeline config={[{ timeLine: [{ actions: t(\"EKYC_WORK_ORDER_ASSIGN\"), currentStep: 1 }] }]} showFinalStep={false} />\n\n <div style={{ flex: 1 }}>\n <CollapsibleCardPage title={t(\"EKYC_UPLOAD_WORK_ORDER\")} defaultOpen={true}>\n <div className=\"formcomposer-section-grid\">\n <div style={{ display: \"flex\", flexDirection: \"column\" }}>\n <Label>\n {`${t(\"EKYC_VENDOR_NAME\")}`} <span className=\"check-page-link-button\">*</span>\n </Label>\n <Dropdown t={t} option={vendorOptions} optionKey=\"name\" select={setVendor} selected={vendor} placeholder={t(\"EKYC_SELECT_VENDOR\")} />\n </div>\n\n <div style={{ display: \"flex\", flexDirection: \"column\" }}>\n <Label>\n {`${t(\"COMMON_VALID_FROM_DATE\")}`} <span className=\"check-page-link-button\">*</span>\n </Label>\n <DatePicker date={validFrom} onChange={(date) => setValidFrom(date)} style={{ width: \"100%\" }} />\n </div>\n\n <div style={{ display: \"flex\", flexDirection: \"column\" }}>\n <Label>\n {`${t(\"COMMON_VALID_TO_DATE\")}`} <span className=\"check-page-link-button\">*</span>\n </Label>\n <DatePicker date={validTo} min={validFrom} onChange={(date) => setValidTo(date)} style={{ width: \"100%\" }} />\n </div>\n\n <div style={{ display: \"flex\", flexDirection: \"column\" }}>\n <Label>{`${t(\"EKYC_UPLOAD_DOCUMENT\")}`} <span className=\"check-page-link-button\">*</span></Label>\n <UploadFile\n id={\"ekyc-doc\"}\n extraStyleName={\"propertyCreate\"}\n accept=\"image/*, .pdf, .png, .jpeg, .jpg\"\n onUpload={selectfile}\n onDelete={() => setUploadedFile(null)}\n message={uploadedFile ? `1 ${t(`EKYC_ACTION_FILEUPLOADED`)}` : t(`EKYC_ACTION_NO_FILEUPLOADED`)}\n error={error}\n />\n </div>\n </div>\n </CollapsibleCardPage>\n\n <div style={{ display: \"flex\", marginTop: \"24px\", justifyContent: isMobile ? \"center\" : \"flex-end\" }}>\n <SubmitBar label={t(\"ES_COMMON_SAVE\")} onSubmit={isFormDisabled ? null : handleSubmit} disabled={isFormDisabled} />\n </div>\n </div>\n\n {showToast && <Toast error={showToast.isError} label={showToast.label} onClose={() => setShowToast(null)} />}\n </div>\n );\n};\n\nexport default WorkOrder;\n","import React from \"react\";\nexport function formReducer(state, payload) {\n const storageKey = \"EKYC.SW.INBOX\";\n\n // ✅ safety for SLA\n switch (payload.action) {\n case \"mutateSearchForm\":\n Digit.SessionStorage.set(storageKey, { ...state, searchForm: payload.data });\n return { ...state, searchForm: payload.data };\n\n case \"mutateFilterForm\":\n Digit.SessionStorage.set(storageKey, { ...state, filterForm: payload.data });\n return { ...state, filterForm: payload.data };\n\n case \"mutateTableForm\":\n Digit.SessionStorage.set(storageKey, { ...state, tableForm: payload.data });\n return { ...state, tableForm: payload.data };\n\n default:\n return state; // ✅ IMPORTANT\n }\n}\n\nexport const formInitValue = {\n filterForm: {},\n searchForm: {},\n tableForm: {\n limit: 10,\n offset: 0,\n sortBy: \"createdTime\",\n sortOrder: \"DESC\",\n },\n};\n\nexport const tableColumnConfig = (t, handleReview) => [\n {\n Header: t(\"SURVEYOR_NAME\"),\n accessor: \"surveyorName\",\n Cell: ({ row }) => {\n const id = row.original?.id;\n return (\n <span className=\"link\" onClick={() => handleReview(id)}>\n {row.original?.surveyorName || row.original?.name || \"NA\"}\n </span>\n );\n },\n },\n // {\n // Header: t(\"SURVEYOR_NAME\"),\n // accessor: \"surveyorName\",\n // Cell: ({ row }) => <span>{row.original?.surveyorName || row.original?.name || \"NA\"}</span>,\n // },\n {\n Header: t(\"MOBILE_NUMBER\"),\n accessor: \"mobileNo\",\n Cell: ({ row }) => <span>{row.original?.mobileNo || row.original?.owner?.mobileNumber || \"NA\"}</span>,\n },\n {\n Header: t(\"STATUS\"),\n accessor: \"status\",\n Cell: ({ row }) => {\n const status = row.original?.status || \"DEFAULT\";\n return <span className={`ekyc-status-tag ${status}`}>{t(status)}</span>;\n },\n },\n {\n Header: t(\"SERVICE_TYPE\"),\n accessor: \"serviceType\",\n Cell: ({ row }) => <span>{row.original?.serviceType || \"NA\"}</span>,\n },\n];\n","import { useHistory } from \"react-router-dom\";\nimport { useTranslation } from \"react-i18next\";\nimport { tableColumnConfig } from \"../../../vendor/src/config/tableConfig\";\n\nconst SupervisorInboxTableConfig = ({\n onPageSizeChange,\n formState,\n totalCount,\n table,\n dispatch,\n onSortingByData,\n inboxStyles = {},\n tableStyle = {},\n}) => {\n const { t } = useTranslation();\n const history = useHistory();\n\n const userType = Digit.SessionStorage.get(\"User\")?.info?.type?.toLowerCase() || \"citizen\";\n\n const handleReview = (id) => {\n history.push(`/digit-ui/${userType}/ekyc/assign/surveyor-details/${id}`);\n };\n\n const limit = formState?.tableForm?.limit || 10;\n const offset = formState?.tableForm?.offset || 0;\n\n return {\n disableSort: false,\n autoSort: false,\n manualPagination: true,\n\n currentPage: Math.floor(offset / limit),\n\n onPageSizeChange,\n\n onNextPage: () =>\n dispatch({\n action: \"mutateTableForm\",\n data: {\n ...formState.tableForm,\n offset: Number(offset) + Number(limit),\n },\n }),\n\n onPrevPage: () =>\n dispatch({\n action: \"mutateTableForm\",\n data: {\n ...formState.tableForm,\n offset: Number(offset) - Number(limit),\n },\n }),\n\n onLastPage: () =>\n dispatch({\n action: \"mutateTableForm\",\n data: {\n ...formState.tableForm,\n offset: Math.ceil(totalCount / limit) * limit - Number(limit),\n },\n }),\n\n onFirstPage: () =>\n dispatch({\n action: \"mutateTableForm\",\n data: { ...formState.tableForm, offset: 0 },\n }),\n\n totalRecords: totalCount,\n onSort: onSortingByData,\n\n data: table,\n columns: tableColumnConfig(t, handleReview),\n\n inboxStyles: { ...inboxStyles },\n tableStyle: { ...tableStyle },\n };\n};\n\nexport default SupervisorInboxTableConfig;\n","import React, { useMemo, useCallback, useReducer } from \"react\";\nimport { InboxComposer } from \"@djb25/digit-ui-react-components\";\nimport SupervisorInboxTableConfig from \"../hook/SupervisorInboxTableConfig\";\nimport SearchFormFieldsComponents from \"./SearchFormFieldsComponent\";\nimport { formInitValue, formReducer } from \"../../../vendor/src/config/tableConfig\";\nimport useInboxMobileCardsData from \"../hook/useInboxMobileCardsData\";\n\n// Mock data removed in favor of API integration\n\nconst AssignEkyc = () => {\n const [formState, dispatch] = useReducer(formReducer, formInitValue);\n\n let paginationParms = {\n limit: formState?.tableForm?.limit || 10,\n offset: formState?.tableForm?.offset || 0,\n sortBy: formState?.tableForm?.sortBy || \"createdTime\",\n sortOrder: formState?.tableForm?.sortOrder || \"DESC\",\n };\n\n const mobileNumber = formState?.searchForm?.mobileNumber || \"\";\n const isSearchActive = !!mobileNumber;\n\n const filters = {\n ...paginationParms,\n status: \"ACTIVE,DISABLED\",\n };\n\n if (isSearchActive) {\n filters.mobileNumber = mobileNumber;\n }\n\n const { data: dashboardData, isLoading } = Digit.Hooks.fsm.useSurveyorSearch(\"dl.djb\", filters, { enabled: true, keepPreviousData: true });\n\n const sourceData = useMemo(() => {\n return dashboardData?.surveyors || [];\n }, [dashboardData]);\n\n const filteredData = useMemo(() => {\n return (sourceData || []).map((item) => {\n const owner = item?.owner || {};\n const roleCodes = owner?.roles?.map((role) => role.code)?.join(\", \") || \"\";\n\n return {\n ...item,\n id: item?.id || \"\",\n surveyorName: item?.name || owner?.name || \"\",\n mobileNo: item?.mobileNo || owner?.mobileNumber || \"\",\n email: owner?.emailId || \"\",\n vendorId: item?.vendorId || \"\",\n tenantId: item?.tenantId || \"\",\n supervisorId: item?.supervisorId || \"\",\n status: item?.status || \"\",\n roleCodes,\n userName: owner?.userName || \"\",\n gender: owner?.gender || \"\",\n serviceType: item?.additionalDetails?.serviceType || \"\",\n createdTime: item?.auditDetails?.createdTime || 0,\n lastModifiedTime: item?.auditDetails?.lastModifiedTime || 0,\n };\n });\n }, [sourceData]);\n\n const totalRecords = dashboardData?.dashboardInfo?.totalRecords || dashboardData?.totalCount || 0;\n\n // const PropsForInboxLinks = {\n // headerText: \"EKYC_MODULE\",\n // };\n\n const SearchFormFields = useCallback(\n ({ registerRef, searchFormState, controlSearchForm }) => (\n <SearchFormFieldsComponents {...{ registerRef, searchFormState, controlSearchForm }} searchType=\"mobile\" className=\"search\" />\n ),\n []\n );\n\n const tableOrderFormDefaultValues = {\n sortBy: \"createdTime\",\n limit: window.Digit.Utils.browser.isMobile() ? 50 : 10,\n offset: 0,\n sortOrder: \"DESC\",\n };\n\n const onSearchFormSubmit = (data) => {\n data.hasOwnProperty(\"\") && delete data?.[\"\"];\n dispatch({ action: \"mutateTableForm\", data: { ...tableOrderFormDefaultValues } });\n dispatch({ action: \"mutateSearchForm\", data });\n };\n\n const searchFormDefaultValues = {\n mobileNumber: \"\",\n applicationNumber: \"\",\n consumerNo: \"\",\n };\n\n const onSearchFormReset = (setSearchFormValue) => {\n setSearchFormValue(\"mobileNumber\", null);\n setSearchFormValue(\"applicationNumber\", null);\n setSearchFormValue(\"consumerNo\", null);\n dispatch({ action: \"mutateSearchForm\", data: searchFormDefaultValues });\n };\n\n const propsForSearchForm = {\n SearchFormFields,\n onSearchFormSubmit,\n searchFormDefaultValues: formState?.searchForm,\n resetSearchFormDefaultValues: searchFormDefaultValues,\n onSearchFormReset,\n className: \"search-form-wns-inbox\",\n };\n\n // const FilterFormFields = useCallback(\n // ({ registerRef, controlFilterForm, setFilterFormValue, getFilterFormValue }) => <React.Fragment></React.Fragment>,\n // []\n // );\n\n // const propsForFilterForm = {\n // FilterFormFields,\n // onFilterFormSubmit: () => { },\n // filterFormDefaultValues: \"\",\n // resetFilterFormDefaultValues: \"\",\n // onFilterFormReset: () => { },\n // };\n\n const onPageSizeChange = (e) => {\n const newLimit = Number(e.target.value);\n\n dispatch({\n action: \"mutateTableForm\",\n data: {\n ...formState.tableForm,\n limit: newLimit,\n offset: 0, // reset page\n },\n });\n };\n\n const onSortingByData = (e) => {\n if (e.length > 0) {\n const [{ id, desc }] = e;\n const sortOrder = desc ? \"DESC\" : \"ASC\";\n const sortBy = id;\n\n if (!(formState.tableForm.sortBy === sortBy && formState.tableForm.sortOrder === sortOrder)) {\n dispatch({\n action: \"mutateTableForm\",\n data: {\n ...formState.tableForm,\n sortBy: id,\n sortOrder: desc ? \"DESC\" : \"ASC\",\n },\n });\n }\n }\n };\n\n const propsForInboxTable = SupervisorInboxTableConfig({\n ...{\n onPageSizeChange,\n formState,\n totalCount: totalRecords,\n table: filteredData,\n dispatch,\n onSortingByData,\n tenantId: \"dl.djb\",\n inboxStyles: { overflowX: \"scroll\", overflowY: \"hidden\" },\n tableStyle: { width: \"70%\" },\n },\n });\n\n const isInboxLoading = isLoading;\n\n const onMobileSortOrderData = (data) => {\n const { sortOrder } = data;\n dispatch({ action: \"mutateTableForm\", data: { ...formState.tableForm, sortOrder } });\n };\n\n const onSortFormReset = (setSortFormValue) => {\n setSortFormValue(\"sortOrder\", \"DESC\");\n dispatch({ action: \"mutateTableForm\", data: tableOrderFormDefaultValues });\n };\n\n const propsForMobileSortForm = { onMobileSortOrderData, sortFormDefaultValues: formState?.tableForm, onSortFormReset };\n const propsForInboxMobileCards = useInboxMobileCardsData({ table: filteredData, isSupervisor: true });\n\n return (\n <div className=\"app-container\">\n <InboxComposer\n {...{\n isInboxLoading,\n // PropsForInboxLinks,\n ...propsForSearchForm,\n // ...propsForFilterForm,\n ...propsForMobileSortForm,\n propsForInboxTable,\n propsForInboxMobileCards,\n formState,\n countData: dashboardData?.dashboardInfo,\n // cards,\n isCardLoading: false,\n showSearchOnMobile: true,\n forceTable: true,\n }}\n />\n </div>\n );\n};\n\nexport default AssignEkyc;\n","import Dashboard from \"../components/Dashboard\";\nimport Inbox from \"../pages/employee/Inbox\";\nimport EKYCForm from \"../pages/employee/EKYCForm\";\nimport Review from \"../components/Review\";\nimport AssignEkyc from \"../components/AssignEkyc\";\nimport AdminDashboard from \"../components/AdminDashboard\";\nimport VendorDetailsCard from \"../components/VendorDetailsCard\";\nimport SupervisorDetailsCard from \"../components/SupervisorDetailsCard\";\nimport SurveyorDetailsCard from \"../components/SurveyorDetailsCard\";\nimport WorkOrder from \"../pages/employee/WorkOrder\";\n\n// yeh function role (employee/citizen) leta hai aur uske hisaab se\n// breadcrumb ka URL bana deta hai. Baaki sab kuch same rehta hai.\nconst breadcrumb = (userType, listLabel, listPath, detailLabel) => [\n { label: listLabel, path: `/digit-ui/${userType}/ekyc/${listPath}` },\n { label: detailLabel },\n];\n\n// 👇 isi function ko employee ke liye bhi call karenge, citizen ke liye bhi\nexport const getEkycRoutes = (userType, t) => [\n // ---- simple pages ----\n { path: \"/dashboard\", component: Dashboard, layout: \"normal\", breadcrumb: \"EKYC_DASHBOARD\" },\n { path: \"/inbox\", component: Inbox, layout: \"normal\", breadcrumb: \"EKYC_INBOX\" },\n { path: \"/review/:kno\", component: Review, layout: \"normal\", breadcrumb: \"EKYC_REVIEW\" },\n { path: \"/admin-dashboard\", component: AdminDashboard, layout: \"normal\", breadcrumb: \"EKYC_ADMIN_DASHBOARD\" },\n // { path: \"/work-order\", component: WorkOrder, layout: \"normal\", breadcrumb: \"EKYC_WORK_ORDER\" },\n { path: \"/work-order\", component: WorkOrder, layout: \"normal\", breadcrumb: \"EKYC_WORK_ORDER\" },\n\n // ---- EKYC form ke 4 steps ----\n { path: \"/consumer-details\", component: EKYCForm, layout: \"normal\", breadcrumb: \"EKYC_CONSUMER_DETAILS\" },\n { path: \"/address-details\", component: EKYCForm, layout: \"normal\", breadcrumb: \"EKYC_ADDRESS_DETAILS\" },\n { path: \"/property-info\", component: EKYCForm, layout: \"normal\", breadcrumb: \"EKYC_PROPERTY_INFO\" },\n { path: \"/meter-details\", component: EKYCForm, layout: \"normal\", breadcrumb: \"EKYC_METER_DETAILS\" },\n\n // ---- assign ----\n {\n path: [\"/assign\"],\n component: AssignEkyc,\n layout: \"normal\",\n breadcrumb: [{ label: \"EKYC_ASSIGN\", path: `/digit-ui/${userType}/ekyc/assign` }],\n },\n\n // ---- detail-card wale routes ----\n // {\n // path: [\"/review/:kno\", \"/review\"],\n // component: Review,\n // layout: \"action\",\n // breadcrumb: breadcrumb(userType, \"EKYC_INBOX\", \"inbox:kno\", \"EKYC_REVIEW\"),\n // },\n {\n path: [\"/vendors/:vendorId\", \"/vendors\"],\n component: VendorDetailsCard,\n layout: \"normal\",\n breadcrumb: breadcrumb(userType, \"EKYC_VENDORS\", \"admin-dashboard\", \"EKYC_VENDOR_DETAILS\"),\n },\n {\n path: [\"/supervisor-dashboard/:id\", \"/supervisor-dashboard\"],\n component: SupervisorDetailsCard,\n layout: \"action\",\n breadcrumb: breadcrumb(userType, \"EKYC_SUPERVISOR_DASHBOARD\", \"supervisor-dashboard:id\", \"EKYC_SUPERVISOR_DETAILS\"),\n },\n {\n path: [\"/surveyor-dashboard/:id\", \"/surveyor-dashboard\"],\n component: SurveyorDetailsCard,\n layout: \"action\",\n breadcrumb: breadcrumb(userType, \"EKYC_SURVEYOR_DASHBOARD\", \"surveyor-dashboard/:id\", \"EKYC_SURVEYOR_DETAILS\"),\n },\n];\n\n// dono role ke liye ready-made arrays — jaha jaruratho wahi import karo\nexport const ekycRoutes = getEkycRoutes(\"employee\"); // employee ke liye\nexport const citizenEkycRoutes = getEkycRoutes(\"citizen\"); // citizen ke liye\n","import { AppContainer, PrivateRoute, ModuleHeader, ArrowLeft, HomeIcon, LayoutWrapper } from \"@djb25/digit-ui-react-components\";\nimport React from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Switch, useLocation } from \"react-router-dom\";\nimport Dashboard from \"../../components/Dashboard\";\nimport VendorDetailsCard from \"../../components/VendorDetailsCard.js\";\nimport Inbox from \"./Inbox\";\nimport Review from \"../../components/Review\";\nimport EKYCForm from \"./EKYCForm\";\n// import AssignEkyc from \"../../components/AssignEkyc.js\";\nimport AdminDashboard from \"../../components/AdminDashboard.js\";\nimport SupervisorDetailsCard from \"../../components/SupervisorDetailsCard.js\";\nimport SurveyorDetailsCard from \"../../components/SurveyorDetailsCard.js\"\nimport WorkOrder from \"./WorkOrder\";\nimport { ekycRoutes } from \"../../config/Routes\";\n\nconst EmployeeApp = ({ path }) => {\n const { t } = useTranslation();\n const location = useLocation();\n\n sessionStorage.removeItem(\"revalidateddone\");\n\n // const getDynamicBreadcrumbs = () => {\n // const pathname = location.pathname;\n\n // // Parent crumb — always present and clickable → redirects to eKYC inbox\n // const crumbs = [\n // { icon: HomeIcon, path: \"/digit-ui/employee\" },\n // { label: t(\"ACTION_TEST_EKYC\"), path: `/digit-ui/employee/module/details` },\n // ];\n\n // // Child crumb — only appended when on a sub-page (not inbox/dashboard itself)\n // if (pathname.includes(\"/create-kyc\")) {\n // crumbs.push({ label: t(\"EKYC_CREATE_KYC\") });\n // } else if (pathname.includes(\"/consumer-details\")) {\n // crumbs.push({ label: t(\"EKYC_CONSUMER_DETAILS\") });\n // } else if (pathname.includes(\"/address-details\")) {\n // crumbs.push({ label: t(\"EKYC_ADDRESS_DETAILS\") });\n // } else if (pathname.includes(\"/property-info\")) {\n // crumbs.push({ label: t(\"EKYC_PROPERTY_INFO\") });\n // } else if (pathname.includes(\"/meter-details\")) {\n // crumbs.push({ label: t(\"EKYC_METER_DETAILS\") });\n // } else if (pathname.includes(\"/review\")) {\n // crumbs.push({ label: t(\"EKYC_INBOX\"), path: `/digit-ui/employee/ekyc/inbox` });\n // crumbs.push({ label: t(\"EKYC_REVIEW\") });\n // } else if (pathname.includes(\"/surveyor-dashboard\") || pathname.includes(\"/assign/surveyor-details\")) {\n // crumbs.push({ label: t(\"EKYC_SURVEYOR_DASHBOARD\") || \"Surveyor Dashboard\" });\n // } else if (pathname.includes(\"/assign\")) {\n // crumbs.push({ label: t(\"EKYC_ASSIGN\") });\n // } else if (pathname.includes(\"/ceo-dashboard\")) {\n // crumbs.push({ label: t(\"CEO_M.F_DOR_FINANCE_VIEW\") });\n // } else if (pathname.includes(\"/admin-dashboard\")) {\n // crumbs.push({ label: t(\"EKYC_ADMIN_DASHBOARD\") || \"Admin Dashboard\" });\n // } else if (pathname.includes(\"/supervisor-dashboard\")) {\n // crumbs.push({ label: t(\"EKYC_SUPERVISOR_DASHBOARD\") || \"Supervisor Dashboard\" });\n // } else if (pathname.includes(\"/surveyor-dashboard\")) {\n // crumbs.push({ label: t(\"EKYC_SURVEYOR_DASHBOARD\") });\n // } else if (pathname.includes(\"/vendors/\")) {\n // crumbs.push({ label: t(\"EKYC_VENDOR_DETAILS\") });\n // } else if (pathname.includes(\"/mapping\")) {\n // crumbs.push({ label: t(\"EKYC_MAPPING\") });\n // } else if (pathname.includes(\"/dashboard\")) {\n // crumbs.push({ label: t(\"EKYC_DASHBOARD\") });\n // } else if (pathname.includes(\"/inbox\")) {\n // crumbs.push({ label: t(\"EKYC_INBOX\") });\n // }\n // // dashboard & inbox → no child crumb (only \"eKYC Admin\" shown)\n\n // return crumbs;\n // };\n\n const getDynamicBreadcrumbs = () => {\n const crumbs = [\n { icon: HomeIcon, path: \"/digit-ui/employee\" },\n { label: t(\"ACTION_TEST_EKYC\"), path: \"/digit-ui/employee/module/details\" },\n ];\n const pathSegments = location.pathname.split(\"/\").filter(Boolean);\n const ekycIndex = pathSegments.indexOf(\"ekyc\");\n const relativeSegments = ekycIndex !== -1 ? pathSegments.slice(ekycIndex + 1) : [];\n\n let matchedPath = \"\";\n const currentRoute = ekycRoutes.find((route) => {\n const paths = Array.isArray(route.path) ? route.path : [route.path];\n return paths.some((singlePath) => {\n const routeSegments = singlePath.split(\"/\").filter(Boolean);\n if (routeSegments.length === relativeSegments.length && routeSegments.every((seg, i) => seg.startsWith(\":\") || seg === relativeSegments[i])) {\n matchedPath = singlePath;\n return true;\n }\n return false;\n });\n });\n\n if (currentRoute) {\n if (Array.isArray(currentRoute.breadcrumb)) {\n currentRoute.breadcrumb.forEach((crumb) => {\n let crumbPath = crumb.path;\n if (crumbPath && matchedPath) {\n matchedPath.split(\"/\").filter(Boolean).forEach((segment, idx) => {\n if (segment.startsWith(\":\")) {\n const val = relativeSegments[idx];\n crumbPath = crumbPath.replace(new RegExp(`\\\\/${segment}`, \"g\"), `/${val}`)\n .replace(new RegExp(`(\\\\w+)${segment}`, \"g\"), `$1/${val}`)\n .replace(new RegExp(segment, \"g\"), val);\n }\n });\n }\n crumbs.push({ label: t(crumb.label), ...(crumbPath ? { path: crumbPath } : {}) });\n });\n } else {\n crumbs.push({ label: t(currentRoute.breadcrumb) });\n }\n }\n return crumbs;\n };\n const formStepRoutes = [\"consumer-details\", \"address-details\", \"property-info\", \"meter-details\"];\n\n return (\n <AppContainer>\n <div className=\"ground-container employee-app-container form-container\">\n <ModuleHeader\n leftContent={\n <React.Fragment>\n <ArrowLeft className=\"icon\" />\n Back\n </React.Fragment>\n }\n onLeftClick={() => window.history.back()}\n breadcrumbs={getDynamicBreadcrumbs()}\n />\n\n <div className=\"employee-form\">\n <Switch>\n <PrivateRoute\n path={`${path}/dashboard`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <Dashboard parentRoute={path} businessService=\"EKYC\" moduleCode=\"EKYC\" isInbox={true} />\n </LayoutWrapper>\n )}\n />\n <PrivateRoute\n path={`${path}/inbox`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <Inbox parentRoute={path} businessService=\"EKYC\" moduleCode=\"EKYC\" isInbox={true} />\n </LayoutWrapper>\n )}\n />\n\n {/* <PrivateRoute\n path={`${path}/assign`}\n exact\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <AssignEkyc />\n </LayoutWrapper>\n )}\n /> */}\n <PrivateRoute\n path={`${path}/assign/surveyor-details/:id`}\n exact\n component={() => (\n <LayoutWrapper layoutClass=\"action\">\n <SurveyorDetailsCard />\n </LayoutWrapper>\n )}\n />\n\n <PrivateRoute\n path={formStepRoutes.map((route) => `${path}/${route}`)}\n component={(props) => (\n <LayoutWrapper layoutClass=\"normal\">\n <EKYCForm {...props} path={path} />\n </LayoutWrapper>\n )}\n />\n\n <PrivateRoute\n path={`${path}/review/:kno`}\n component={() => (\n <LayoutWrapper layoutClass=\"action\">\n <Review />\n </LayoutWrapper>\n )}\n />\n\n <PrivateRoute\n path={`${path}/admin-dashboard`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <AdminDashboard />\n </LayoutWrapper>\n )}\n />\n\n <PrivateRoute\n path={`${path}/vendors/:vendorId`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <VendorDetailsCard />\n </LayoutWrapper>\n )}\n />\n\n <PrivateRoute\n path={`${path}/supervisor-dashboard/:id/:vendorId?`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <SupervisorDetailsCard />\n </LayoutWrapper>\n )}\n />\n\n <PrivateRoute\n path={`${path}/surveyor-dashboard/:id?`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <SurveyorDetailsCard />\n </LayoutWrapper>\n )}\n />\n\n <PrivateRoute\n path={`${path}/work-order`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <WorkOrder />\n </LayoutWrapper>\n )}\n />\n\n {/* <PrivateRoute\n path={`${path}/`}\n component={() => <Inbox parentRoute={path} businessService=\"EKYC\" moduleCode=\"EKYC\" isInbox={true} />}\n /> */}\n </Switch>\n </div>\n </div>\n </AppContainer>\n );\n};\n\nexport default EmployeeApp;\n","import React from \"react\";\nimport { UploadFile, Dropdown } from \"@djb25/digit-ui-react-components\";\n\nconst PropertyInfoConfig = (t, formData = {}, uploadFile, buildingImage, buildingImageId, setBuildingImage, setBuildingImageId) => {\n const propertyType = formData?.propertyType?.name || formData?.propertyType;\n const isHotel = propertyType === \"Hotel\";\n const isHospitalOrNursing = propertyType === \"Hospital\" || propertyType === \"Nursing Home\";\n\n const fields = [\n {\n label: t(\"PID Number\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"pidNumber\",\n },\n },\n {\n label: t(\"Property Type\"),\n isMandatory: false,\n type: \"custom\",\n key: \"propertyType\",\n populators: {\n name: \"propertyType\",\n component: (props) => (\n <Dropdown\n option={[\n { name: \"Residential\" },\n { name: \"Commercial\" },\n { name: \"Hotel\" },\n { name: \"Hospital\" },\n { name: \"Nursing Home\" },\n ]}\n optionKey=\"name\"\n selected={props.value}\n select={props.onChange}\n />\n ),\n },\n },\n {\n label: t(\"Sub Property Category\"),\n isMandatory: false,\n type: \"custom\",\n key: \"subPropertyCategory\",\n populators: {\n name: \"subPropertyCategory\",\n component: (props) => (\n <Dropdown\n option={[]}\n optionKey=\"name\"\n selected={props.value}\n select={props.onChange}\n />\n ),\n },\n },\n {\n label: t(\"No. of Floors\"),\n isMandatory: true,\n type: \"number\",\n populators: {\n name: \"noOfFloors\",\n validation: {\n required: true,\n min: 1,\n },\n },\n },\n {\n label: t(\"Floor No. of this KNO\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"floorNo\",\n },\n },\n {\n label: isHospitalOrNursing ? t(\"No of Beds\") : t(\"No of Beds\"),\n isMandatory: isHospitalOrNursing,\n type: \"number\",\n populators: {\n name: \"noOfBeds\",\n validation: isHospitalOrNursing ? { required: true, min: 1 } : {},\n },\n },\n {\n label: isHotel ? t(\"No. of Rooms\") : t(\"No. of Rooms\"),\n isMandatory: isHotel,\n type: \"number\",\n populators: {\n name: \"noOfRooms\",\n validation: isHotel ? { required: true, min: 1 } : {},\n },\n },\n {\n label: t(\"Number of Dwelling Units\"),\n isMandatory: false,\n type: \"number\",\n populators: {\n name: \"dwellingUnits\",\n },\n },\n {\n label: t(\"Building Image\"),\n isMandatory: true,\n type: \"custom\",\n key: \"buildingImage\",\n populators: {\n name: \"buildingImage\",\n component: (props) => (\n <div>\n <UploadFile\n onUpload={(e) => uploadFile(e, props.onChange)}\n onDelete={() => {\n props.onChange(null);\n setBuildingImage(null);\n setBuildingImageId(null);\n }}\n message={buildingImageId ? t(\"Uploaded\") : t(\"No file selected\")}\n />\n {buildingImage && (\n <div style={{ marginTop: \"10px\" }}>\n <img\n src={buildingImage}\n alt=\"preview\"\n style={{ maxWidth: \"100%\", maxHeight: \"200px\", objectFit: \"contain\" }}\n />\n </div>\n )}\n </div>\n ),\n },\n },\n ];\n\n return [\n {\n head: t(\"EKYC_PROPERTY_DETAILS\"),\n body: fields,\n },\n ];\n};\n\nexport default PropertyInfoConfig;\n","import React, { useState, Fragment, useEffect } from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport { Toast, Loader, FormComposer } from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\nimport PropertyInfoConfig from \"../config/PropertyInfoConfig\";\n\nconst PropertyInfo = ({ config, onSelect, formData }) => {\n const { t } = useTranslation();\n const location = useLocation();\n const flowState = location.state || {};\n const tenantId = Digit.ULBService.getCurrentTenantId();\n\n const queryParams = new URLSearchParams(location.search);\n const urlKno = queryParams.get(\"kno\");\n const searchKno =\n urlKno ||\n flowState?.kNumber ||\n flowState?.kno ||\n formData?.kNumber ||\n formData?.kno ||\n sessionStorage.getItem(\"EKYC_K_NUMBER\");\n\n const { isLoading, data: searchData } = Digit.Hooks.ekyc.useSearchConnection(\n { tenantId, details: { kno: searchKno, fetchType: \"PROPERTY\" } },\n { enabled: !!searchKno, cacheTime: 0 }\n );\n\n const updateMutation = Digit.Hooks.ekyc.useEkycUpdate(tenantId);\n\n const savedData = formData?.propertyDetails || {};\n\n // 🔹 STATES\n const [buildingImage, setBuildingImage] = useState(null);\n const [buildingImageId, setBuildingImageId] = useState(savedData.buildingImageId || null);\n const [toast, setToast] = useState(null);\n const [isDataLoaded, setIsDataLoaded] = useState(false);\n const [canSubmit, setCanSubmit] = useState(false);\n\n const [defaultValues, setDefaultValues] = useState(() => ({\n pidNumber: savedData.pidNumber || \"\",\n propertyType: savedData.propertyType ? { name: savedData.propertyType } : null,\n subPropertyCategory: savedData.subPropertyCategory ? { name: savedData.subPropertyCategory } : null,\n noOfFloors: savedData.noOfFloors || \"\",\n floorNo: savedData.floorNo || \"\",\n noOfRooms: savedData.noOfRooms || \"\",\n noOfBeds: savedData.noOfBeds || \"\",\n dwellingUnits: savedData.dwellingUnits || \"\",\n buildingImage: savedData.buildingImageId ? \"Uploaded\" : null,\n }));\n\n const [localFormData, setLocalFormData] = useState(defaultValues);\n\n const extractApplicationData = (searchData) => {\n if (!searchData) return null;\n const reviewWrapper =\n searchData?.applicationReviewInfo || searchData?.applicationReview || searchData;\n const applicationData = (Array.isArray(reviewWrapper) ? reviewWrapper[0] : reviewWrapper) || {};\n return applicationData?.newData || applicationData;\n };\n\n useEffect(() => {\n const appData = extractApplicationData(searchData);\n const rawData = appData || formData?.connectionDetails;\n const propertyInfo = rawData?.propertyInfo || rawData?.propertyDetails || rawData || {};\n\n if (propertyInfo && Object.keys(propertyInfo).length > 0 && !isDataLoaded) {\n let propType = null;\n let subPropCat = null;\n\n if (propertyInfo.subPropertyCategory) {\n const matchingType = [\n { name: \"Residential\" },\n { name: \"Commercial\" },\n { name: \"Hotel\" },\n { name: \"Hospital\" },\n { name: \"Nursing Home\" },\n ].find((type) => type.name.toLowerCase() === propertyInfo.subPropertyCategory.toLowerCase());\n if (matchingType) propType = matchingType;\n else propType = { name: propertyInfo.subPropertyCategory };\n subPropCat = { name: propertyInfo.subPropertyCategory };\n }\n\n if (propertyInfo.propertyType) {\n subPropCat = { name: propertyInfo.propertyType };\n if (!propertyInfo.subPropertyCategory) propType = { name: propertyInfo.propertyType };\n }\n\n const updatedDefaults = {\n pidNumber: savedData.pidNumber || propertyInfo.pidNumber || \"\",\n propertyType: savedData.propertyType ? { name: savedData.propertyType } : propType,\n subPropertyCategory: savedData.subPropertyCategory\n ? { name: savedData.subPropertyCategory }\n : subPropCat,\n noOfFloors:\n savedData.noOfFloors ||\n (propertyInfo.numberOfFloors || propertyInfo.noOfFloor\n ? String(propertyInfo.numberOfFloors || propertyInfo.noOfFloor)\n : \"\"),\n floorNo: savedData.floorNo || propertyInfo.floorNo || \"\",\n noOfRooms:\n savedData.noOfRooms ||\n (propertyInfo.numberOfRooms !== null && propertyInfo.numberOfRooms !== undefined\n ? String(propertyInfo.numberOfRooms)\n : \"\"),\n noOfBeds:\n savedData.noOfBeds ||\n (propertyInfo.numberOfBeds !== null && propertyInfo.numberOfBeds !== undefined\n ? String(propertyInfo.numberOfBeds)\n : \"\"),\n dwellingUnits:\n savedData.dwellingUnits ||\n (propertyInfo.numberOfDwellingUnits !== null && propertyInfo.numberOfDwellingUnits !== undefined\n ? String(propertyInfo.numberOfDwellingUnits)\n : \"\"),\n buildingImage: savedData.buildingImageId || propertyInfo.buildingImageFileStoreId || null,\n };\n\n setDefaultValues(updatedDefaults);\n setLocalFormData(updatedDefaults);\n if (updatedDefaults.buildingImage) {\n setBuildingImageId(updatedDefaults.buildingImage);\n }\n setIsDataLoaded(true);\n }\n }, [searchData, formData?.connectionDetails, isDataLoaded]);\n\n // 🔹 FILE UPLOAD\n const handleUpload = async (e, onChange) => {\n const file = e.target.files[0];\n if (!file) return;\n\n if (file.size > 2000000) {\n setToast({ type: \"error\", message: t(\"Max size 2MB exceeded\") });\n return;\n }\n\n try {\n const res = await Digit.UploadServices.Filestorage(\"EKYC\", file, tenantId);\n const fileStoreId = res?.data?.files?.[0]?.fileStoreId;\n\n if (fileStoreId) {\n onChange(file.name);\n setBuildingImageId(fileStoreId);\n\n const reader = new FileReader();\n reader.onloadend = () => setBuildingImage(reader.result);\n reader.readAsDataURL(file);\n\n setToast({ type: \"success\", message: t(\"Upload successful\") });\n }\n } catch {\n setToast({ type: \"error\", message: t(\"Upload failed\") });\n }\n };\n\n const onFormValueChange = (setValue, data) => {\n // Check if propertyType changed to re-evaluate mandatory validation or conditional visibility\n const propertyTypeChanged =\n (data?.propertyType?.name || data?.propertyType) !==\n (localFormData?.propertyType?.name || localFormData?.propertyType);\n\n if (propertyTypeChanged) {\n setLocalFormData((prev) => ({\n ...prev,\n ...data,\n }));\n }\n\n // Determine validation\n const propTypeVal = data?.propertyType;\n const subPropCatVal = data?.subPropertyCategory;\n const noOfFloorsVal = data?.noOfFloors;\n const buildingImgId = buildingImageId || data?.buildingImage;\n const noOfRoomsVal = data?.noOfRooms;\n const noOfBedsVal = data?.noOfBeds;\n\n let valid = true;\n if (!propTypeVal) valid = false;\n if (!subPropCatVal) valid = false;\n if (!noOfFloorsVal || Number(noOfFloorsVal) < 1) valid = false;\n if (!buildingImgId) valid = false;\n\n if (propTypeVal?.name === \"Hotel\" && !noOfRoomsVal) valid = false;\n if (\n (propTypeVal?.name === \"Hospital\" || propTypeVal?.name === \"Nursing Home\") &&\n !noOfBedsVal\n )\n valid = false;\n\n if (valid !== canSubmit) {\n setCanSubmit(valid);\n }\n };\n\n const onSubmit = async (data) => {\n const submitData = {\n pidNumber: data.pidNumber,\n propertyType: data.propertyType?.name || data.propertyType,\n subPropertyCategory: data.subPropertyCategory?.name || data.subPropertyCategory,\n noOfFloors: data.noOfFloors,\n floorNo: data.floorNo,\n noOfRooms: data.noOfRooms,\n noOfBeds: data.noOfBeds,\n dwellingUnits: data.dwellingUnits,\n buildingImageId: buildingImageId,\n };\n\n try {\n await updateMutation.mutateAsync({\n RequestInfo: {},\n updateType: \"PROPERTY\",\n kno: searchKno,\n ...submitData,\n });\n setToast({ type: \"success\", message: t(\"Property details updated successfully!\") });\n onSelect(config.key, submitData);\n } catch (error) {\n setToast({ type: \"error\", message: t(\"Failed to update property details\") });\n }\n };\n\n if (isLoading) {\n return <Loader />;\n }\n\n const Config = PropertyInfoConfig(\n t,\n localFormData,\n handleUpload,\n buildingImage,\n buildingImageId,\n setBuildingImage,\n setBuildingImageId\n );\n\n return (\n <Fragment>\n <FormComposer\n key={isDataLoaded ? \"loaded\" : \"loading\"}\n isDisabled={!canSubmit}\n label={t(\"ES_COMMON_CONTINUE\")}\n config={Config.map((item) => ({\n ...item,\n isCollapsible: true,\n isDefaultOpen: true,\n }))}\n onSubmit={onSubmit}\n defaultValues={defaultValues}\n onFormValueChange={onFormValueChange}\n noCard={false}\n submitInForm={true}\n />\n {toast && (\n <Toast\n error={toast.type === \"error\"}\n label={toast.message}\n onClose={() => setToast(null)}\n />\n )}\n </Fragment>\n );\n};\n\nexport default PropertyInfo;","import React from \"react\";\nimport { UploadFile, Dropdown } from \"@djb25/digit-ui-react-components\";\n\nconst MeterDetailsConfig = (t, formData = {}, uploadPhoto, meterPhoto, meterPhotoId, setMeterPhoto, setMeterPhotoId) => {\n const meterStatus = formData?.meterStatus?.name || formData?.meterStatus;\n const lastBillReceived = formData?.lastBillReceived?.name || formData?.lastBillReceived;\n const sewerConnection = formData?.sewerConnection?.name || formData?.sewerConnection;\n\n const isFrozen = meterStatus === \"Can not be identified\";\n\n // Generate Month-Year Options (1998–2026)\n const monthYearOptions = [];\n for (let y = 1998; y <= 2026; y++) {\n for (let m = 1; m <= 12; m++) {\n monthYearOptions.push({ name: `${m}/${y}` });\n }\n }\n\n const yesNo = [{ name: \"Yes\" }, { name: \"No\" }];\n\n const fields = [\n {\n label: t(\"Connection Category\"),\n isMandatory: true,\n type: \"text\",\n populators: {\n name: \"connectionCategory\",\n validation: { required: true },\n },\n },\n {\n label: t(\"SA Type\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"saType\",\n },\n },\n {\n label: t(\"Status\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"status\",\n },\n },\n {\n label: t(\"MR Code\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"mrCode\",\n },\n },\n {\n label: t(\"Area Code\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"areaCode\",\n },\n },\n {\n label: t(\"MR Key\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"mrKey\",\n },\n },\n ];\n\n // 🔹 Non-frozen fields\n if (!isFrozen) {\n fields.push(\n {\n label: t(\"Meter Number\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"meterNumber\",\n },\n },\n {\n label: t(\"Meter Maker\"),\n isMandatory: false,\n type: \"text\",\n populators: {\n name: \"meterMaker\",\n },\n },\n {\n label: t(\"Meter Condition\"),\n isMandatory: false,\n type: \"custom\",\n key: \"meterCondition\",\n populators: {\n name: \"meterCondition\",\n component: (props) => (\n <Dropdown\n option={[{ name: \"Damaged\" }, { name: \"Not-Damaged\" }]}\n optionKey=\"name\"\n selected={props.value}\n select={props.onChange}\n />\n ),\n },\n }\n );\n\n if (meterStatus === \"Metered\") {\n fields.push({\n label: t(\"Meter Photo\"),\n isMandatory: true,\n type: \"custom\",\n key: \"meterPhoto\",\n populators: {\n name: \"meterPhoto\",\n component: (props) => (\n <div>\n <UploadFile\n onUpload={(e) => uploadPhoto(e, props.onChange)}\n onDelete={() => {\n props.onChange(null);\n setMeterPhoto(null);\n setMeterPhotoId(null);\n }}\n message={meterPhotoId ? t(\"Uploaded\") : t(\"No file selected\")}\n />\n {meterPhoto && (\n <div style={{ marginTop: \"10px\" }}>\n <img\n src={meterPhoto}\n alt=\"preview\"\n style={{ maxWidth: \"100%\", maxHeight: \"200px\", objectFit: \"contain\" }}\n />\n </div>\n )}\n </div>\n ),\n },\n });\n }\n }\n\n // 🔹 Standard fields after the conditional section\n fields.push(\n {\n label: t(\"Meter Status\"),\n isMandatory: true,\n type: \"custom\",\n key: \"meterStatus\",\n populators: {\n name: \"meterStatus\",\n component: (props) => (\n <Dropdown\n option={[{ name: \"Metered\" }, { name: \"Unmetered\" }, { name: \"Can not be identified\" }]}\n optionKey=\"name\"\n selected={props.value}\n select={props.onChange}\n />\n ),\n },\n },\n {\n label: t(\"Meter Location\"),\n isMandatory: true,\n type: \"custom\",\n key: \"meterLocation\",\n populators: {\n name: \"meterLocation\",\n component: (props) => (\n <Dropdown\n option={[{ name: \"Inside\" }, { name: \"Outside\" }]}\n optionKey=\"name\"\n selected={props.value}\n select={props.onChange}\n />\n ),\n },\n },\n {\n label: t(\"Last Bill Received\"),\n isMandatory: true,\n type: \"custom\",\n key: \"lastBillReceived\",\n populators: {\n name: \"lastBillReceived\",\n component: (props) => (\n <Dropdown\n option={yesNo}\n optionKey=\"name\"\n selected={props.value}\n select={props.onChange}\n />\n ),\n },\n }\n );\n\n // 🔹 Bill-received fields\n if (lastBillReceived === \"Yes\") {\n fields.push({\n label: t(\"When was the last bill received\"),\n isMandatory: true,\n type: \"custom\",\n key: \"billMonthYear\",\n populators: {\n name: \"billMonthYear\",\n component: (props) => (\n <Dropdown\n option={monthYearOptions}\n optionKey=\"name\"\n selected={props.value}\n select={props.onChange}\n />\n ),\n },\n });\n } else if (lastBillReceived === \"No\") {\n fields.push({\n label: t(\"Reason *\"),\n isMandatory: true,\n type: \"text\",\n populators: {\n name: \"reason\",\n validation: { required: true },\n },\n });\n }\n\n fields.push(\n {\n label: t(\"Access to Meter\"),\n isMandatory: false,\n type: \"custom\",\n key: \"accessToMeter\",\n populators: {\n name: \"accessToMeter\",\n component: (props) => (\n <Dropdown\n option={yesNo}\n optionKey=\"name\"\n selected={props.value}\n select={props.onChange}\n />\n ),\n },\n },\n {\n label: t(\"Sewer Connection\"),\n isMandatory: true,\n type: \"custom\",\n key: \"sewerConnection\",\n populators: {\n name: \"sewerConnection\",\n component: (props) => (\n <Dropdown\n option={yesNo}\n optionKey=\"name\"\n selected={props.value}\n select={props.onChange}\n />\n ),\n },\n }\n );\n\n if (sewerConnection === \"No\") {\n fields.push({\n label: t(\"Septic Tank\"),\n isMandatory: true,\n type: \"custom\",\n key: \"septicTank\",\n populators: {\n name: \"septicTank\",\n component: (props) => (\n <Dropdown\n option={yesNo}\n optionKey=\"name\"\n selected={props.value}\n select={props.onChange}\n />\n ),\n },\n });\n }\n\n return [\n {\n head: t(\"EKYC_METER_DETAILS\"),\n body: fields,\n },\n ];\n};\n\nexport default MeterDetailsConfig;\n","import React, { useState, Fragment, useEffect } from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport { Toast, Loader, FormComposer } from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\nimport MeterDetailsConfig from \"../config/MeterDetailsConfig\";\n\nconst MeterDetails = ({ config, onSelect, formData }) => {\n const { t } = useTranslation();\n const location = useLocation();\n const flowState = location.state || {};\n const tenantId = Digit.ULBService.getCurrentTenantId();\n\n const queryParams = new URLSearchParams(location.search);\n const urlKno = queryParams.get(\"kno\");\n const searchKno =\n urlKno ||\n flowState?.kNumber ||\n flowState?.kno ||\n formData?.kNumber ||\n formData?.kno ||\n sessionStorage.getItem(\"EKYC_K_NUMBER\");\n\n const { isLoading, data: searchData } = Digit.Hooks.ekyc.useSearchConnection(\n { tenantId, details: { kno: searchKno, fetchType: \"METER\" } },\n { enabled: !!searchKno, cacheTime: 0 }\n );\n\n const updateMutation = Digit.Hooks.ekyc.useEkycUpdate(tenantId);\n\n const savedData = formData?.meterDetails || {};\n\n // 🔹 STATES\n const [meterPhoto, setMeterPhoto] = useState(null);\n const [meterPhotoId, setMeterPhotoId] = useState(savedData.meterPhotoId || null);\n const [toast, setToast] = useState(null);\n const [isDataLoaded, setIsDataLoaded] = useState(false);\n const [canSubmit, setCanSubmit] = useState(false);\n\n const [defaultValues, setDefaultValues] = useState(() => ({\n connectionCategory: savedData.connectionCategory || \"\",\n saType: savedData.saType || \"\",\n status: savedData.status || \"\",\n mrCode: savedData.mrCode || \"\",\n areaCode: savedData.areaCode || \"\",\n mrKey: savedData.mrKey || \"\",\n meterNumber: savedData.meterNumber || \"\",\n meterMaker: savedData.meterMaker || \"\",\n meterStatus: savedData.meterStatus ? { name: savedData.meterStatus } : null,\n meterCondition: savedData.meterCondition ? { name: savedData.meterCondition } : null,\n meterLocation: savedData.meterLocation ? { name: savedData.meterLocation } : null,\n lastBillReceived: savedData.lastBillReceived ? { name: savedData.lastBillReceived } : null,\n billMonthYear: savedData.billMonthYear ? { name: savedData.billMonthYear } : null,\n reason: savedData.reason || \"\",\n accessToMeter: savedData.accessToMeter ? { name: savedData.accessToMeter } : null,\n sewerConnection: savedData.sewerConnection ? { name: savedData.sewerConnection } : null,\n septicTank: savedData.septicTank ? { name: savedData.septicTank } : null,\n meterPhoto: savedData.meterPhotoId ? \"Uploaded\" : null,\n }));\n\n const [localFormData, setLocalFormData] = useState(defaultValues);\n\n const extractApplicationData = (searchData) => {\n if (!searchData) return null;\n const reviewWrapper =\n searchData?.applicationReviewInfo || searchData?.applicationReview || searchData;\n const applicationData = (Array.isArray(reviewWrapper) ? reviewWrapper[0] : reviewWrapper) || {};\n return applicationData?.newData || applicationData;\n };\n\n useEffect(() => {\n const appData = extractApplicationData(searchData);\n const rawData = appData || formData?.connectionDetails;\n const apiMeter = rawData?.meterDetails || rawData || {};\n\n if (apiMeter && Object.keys(apiMeter).length > 0 && !isDataLoaded) {\n let mStatus = null;\n let mCondition = null;\n let mLoc = null;\n let billRec = null;\n let billMonYr = null;\n let accToMeter = null;\n let sewerConn = null;\n let sepTank = null;\n\n if (apiMeter.meterStatus) {\n const matchingStatus = [\n { name: \"Metered\" },\n { name: \"Unmetered\" },\n { name: \"Can not be identified\" },\n ].find((o) => o.name.toLowerCase() === apiMeter.meterStatus.toLowerCase());\n if (matchingStatus) mStatus = matchingStatus;\n else mStatus = { name: apiMeter.meterStatus };\n } else if (apiMeter.metered !== undefined) {\n mStatus = { name: apiMeter.metered ? \"Metered\" : \"Unmetered\" };\n }\n\n if (apiMeter.meterCondition) {\n const matchingCond = [{ name: \"Damaged\" }, { name: \"Not-Damaged\" }].find(\n (o) => o.name.toLowerCase() === apiMeter.meterCondition.toLowerCase()\n );\n if (matchingCond) mCondition = matchingCond;\n else mCondition = { name: apiMeter.meterCondition };\n }\n\n if (apiMeter.meterLocation) {\n const matchingLoc = [{ name: \"Inside\" }, { name: \"Outside\" }].find(\n (o) =>\n o.name.toLowerCase() === apiMeter.meterLocation.toLowerCase() ||\n apiMeter.meterLocation.toLowerCase().includes(o.name.toLowerCase())\n );\n if (matchingLoc) mLoc = matchingLoc;\n else mLoc = { name: apiMeter.meterLocation };\n }\n\n if (apiMeter.lastBillRaised !== undefined && apiMeter.lastBillRaised !== null) {\n const strVal = String(apiMeter.lastBillRaised).toLowerCase();\n if (strVal === \"true\" || strVal === \"yes\") billRec = { name: \"Yes\" };\n else billRec = { name: \"No\" };\n }\n\n if (apiMeter.lastBillReceivedDate) {\n const formatted = apiMeter.lastBillReceivedDate.replace(\"-\", \"/\");\n const parsedParts = formatted.split(\"/\");\n if (parsedParts.length === 2) {\n const mon = parseInt(parsedParts[0], 10);\n const yr = parseInt(parsedParts[1], 10);\n billMonYr = { name: `${mon}/${yr}` };\n } else {\n billMonYr = { name: apiMeter.lastBillReceivedDate };\n }\n }\n\n if (apiMeter.accessToMeter !== undefined && apiMeter.accessToMeter !== null) {\n const strVal = String(apiMeter.accessToMeter).toLowerCase();\n if (strVal === \"true\" || strVal === \"yes\") accToMeter = { name: \"Yes\" };\n else accToMeter = { name: \"No\" };\n }\n\n if (apiMeter.sewerConnection !== undefined && apiMeter.sewerConnection !== null) {\n const strVal = String(apiMeter.sewerConnection).toLowerCase();\n if (strVal === \"true\" || strVal === \"yes\") sewerConn = { name: \"Yes\" };\n else sewerConn = { name: \"No\" };\n }\n\n if (apiMeter.septicTank !== undefined && apiMeter.septicTank !== null) {\n const strVal = String(apiMeter.septicTank).toLowerCase();\n if (strVal === \"true\" || strVal === \"yes\") sepTank = { name: \"Yes\" };\n else sepTank = { name: \"No\" };\n }\n\n const updatedDefaults = {\n connectionCategory: savedData.connectionCategory || apiMeter.connectionCategory || \"\",\n saType: savedData.saType || apiMeter.saType || \"\",\n status: savedData.status || apiMeter.statusFlag || \"\",\n mrCode: savedData.mrCode || (apiMeter.mrcode ? String(apiMeter.mrcode) : \"\"),\n areaCode: savedData.areaCode || (apiMeter.areacode ? String(apiMeter.areacode) : \"\"),\n mrKey: savedData.mrKey || (apiMeter.mrkey ? String(apiMeter.mrkey) : \"\"),\n meterNumber: savedData.meterNumber || apiMeter.meterNumber || \"\",\n meterMaker: savedData.meterMaker || apiMeter.meterMake || \"\",\n meterStatus: savedData.meterStatus ? { name: savedData.meterStatus } : mStatus,\n meterCondition: savedData.meterCondition ? { name: savedData.meterCondition } : mCondition,\n meterLocation: savedData.meterLocation ? { name: savedData.meterLocation } : mLoc,\n lastBillReceived: savedData.lastBillReceived ? { name: savedData.lastBillReceived } : billRec,\n billMonthYear: savedData.billMonthYear ? { name: savedData.billMonthYear } : billMonYr,\n reason: savedData.reason || apiMeter.lastBillNotRaisedReason || \"\",\n accessToMeter: savedData.accessToMeter ? { name: savedData.accessToMeter } : accToMeter,\n sewerConnection: savedData.sewerConnection ? { name: savedData.sewerConnection } : sewerConn,\n septicTank: savedData.septicTank ? { name: savedData.septicTank } : sepTank,\n meterPhoto: savedData.meterPhotoId || apiMeter.meterPhotoFileStoreId || null,\n };\n\n setDefaultValues(updatedDefaults);\n setLocalFormData(updatedDefaults);\n if (updatedDefaults.meterPhoto) {\n setMeterPhotoId(updatedDefaults.meterPhoto);\n }\n setIsDataLoaded(true);\n }\n }, [searchData, formData?.connectionDetails, isDataLoaded]);\n\n // 🔹 FILE UPLOAD\n const handleUpload = async (e, onChange) => {\n const file = e.target.files[0];\n if (!file) return;\n\n if (file.size > 2000000) {\n setToast({ type: \"error\", message: t(\"Max size 2MB exceeded\") });\n return;\n }\n\n try {\n const res = await Digit.UploadServices.Filestorage(\"EKYC\", file, tenantId);\n const fileStoreId = res?.data?.files?.[0]?.fileStoreId;\n\n if (fileStoreId) {\n onChange(file.name);\n setMeterPhotoId(fileStoreId);\n\n const reader = new FileReader();\n reader.onloadend = () => setMeterPhoto(reader.result);\n reader.readAsDataURL(file);\n\n setToast({ type: \"success\", message: t(\"Upload successful\") });\n }\n } catch {\n setToast({ type: \"error\", message: t(\"Upload failed\") });\n }\n };\n\n const onFormValueChange = (setValue, data) => {\n const meterStatusChanged =\n (data?.meterStatus?.name || data?.meterStatus) !==\n (localFormData?.meterStatus?.name || localFormData?.meterStatus);\n\n const lastBillReceivedChanged =\n (data?.lastBillReceived?.name || data?.lastBillReceived) !==\n (localFormData?.lastBillReceived?.name || localFormData?.lastBillReceived);\n\n const sewerConnectionChanged =\n (data?.sewerConnection?.name || data?.sewerConnection) !==\n (localFormData?.sewerConnection?.name || localFormData?.sewerConnection);\n\n if (meterStatusChanged || lastBillReceivedChanged || sewerConnectionChanged) {\n setLocalFormData((prev) => ({\n ...prev,\n ...data,\n }));\n }\n\n // Determine validation\n const connCatVal = data?.connectionCategory;\n const mStatusVal = data?.meterStatus;\n const mLocVal = data?.meterLocation;\n const billRecVal = data?.lastBillReceived;\n const sewerConnVal = data?.sewerConnection;\n const mPhotoId = meterPhotoId || data?.meterPhoto;\n const reasonVal = data?.reason;\n const billMonYrVal = data?.billMonthYear;\n const sepTankVal = data?.septicTank;\n\n let valid = true;\n if (!connCatVal) valid = false;\n if (!mStatusVal) valid = false;\n if (!mLocVal) valid = false;\n if (!billRecVal) valid = false;\n if (!sewerConnVal) valid = false;\n\n if (mStatusVal?.name === \"Metered\" && !mPhotoId) valid = false;\n if (billRecVal?.name === \"No\" && !reasonVal) valid = false;\n if (billRecVal?.name === \"Yes\" && !billMonYrVal) valid = false;\n if (sewerConnVal?.name === \"No\" && !sepTankVal) valid = false;\n\n if (valid !== canSubmit) {\n setCanSubmit(valid);\n }\n };\n\n const onSubmit = async (data) => {\n const submitData = {\n connectionCategory: data.connectionCategory,\n saType: data.saType,\n status: data.status,\n mrCode: data.mrCode,\n areaCode: data.areaCode,\n mrKey: data.mrKey,\n meterNumber: data.meterNumber,\n meterMaker: data.meterMaker,\n meterStatus: data.meterStatus?.name || data.meterStatus,\n meterCondition: data.meterCondition?.name || data.meterCondition,\n meterLocation: data.meterLocation?.name || data.meterLocation,\n lastBillReceived: data.lastBillReceived?.name || data.lastBillReceived,\n billMonthYear: data.billMonthYear?.name || data.billMonthYear,\n reason: data.reason,\n accessToMeter: data.accessToMeter?.name || data.accessToMeter,\n sewerConnection: data.sewerConnection?.name || data.sewerConnection,\n septicTank: data.septicTank?.name || data.septicTank,\n meterPhotoId: meterPhotoId,\n };\n\n try {\n await updateMutation.mutateAsync({\n RequestInfo: {},\n updateType: \"METER\",\n kno: searchKno,\n ...submitData,\n });\n setToast({ type: \"success\", message: t(\"Meter details updated successfully!\") });\n onSelect(config.key, submitData);\n } catch (error) {\n setToast({ type: \"error\", message: t(\"Failed to update meter details\") });\n }\n };\n\n if (isLoading) {\n return <Loader />;\n }\n\n const Config = MeterDetailsConfig(\n t,\n localFormData,\n handleUpload,\n meterPhoto,\n meterPhotoId,\n setMeterPhoto,\n setMeterPhotoId\n );\n\n return (\n <Fragment>\n <FormComposer\n key={isDataLoaded ? \"loaded\" : \"loading\"}\n isDisabled={!canSubmit}\n label={t(\"ES_COMMON_CONTINUE\")}\n config={Config.map((item) => ({\n ...item,\n isCollapsible: true,\n isDefaultOpen: true,\n }))}\n onSubmit={onSubmit}\n defaultValues={defaultValues}\n onFormValueChange={onFormValueChange}\n noCard={false}\n submitInForm={true}\n />\n {toast && (\n <Toast\n error={toast.type === \"error\"}\n label={toast.message}\n onClose={() => setToast(null)}\n />\n )}\n </Fragment>\n );\n};\n\nexport default MeterDetails;","import React, { useMemo, useCallback, useReducer } from \"react\";\nimport { useLocation } from \"react-router-dom\";\nimport { InboxComposer } from \"@djb25/digit-ui-react-components\";\nimport useInboxTableConfig from \"../../hook/useInboxTableConfig\";\nimport SearchFormFieldsComponents from \"../../components/SearchFormFieldsComponent\";\nimport useInboxMobileCardsData from \"../../hook/useInboxMobileCardsData\";\n\n// Mock data removed in favor of API integration\n\nconst Inbox = ({ parentRoute }) => {\n const tenantId = Digit.ULBService.getCurrentTenantId();\n const location = useLocation();\n\n const formInitValue = {\n filterForm: {},\n searchForm: {},\n tableForm: {\n limit: 20,\n offset: 0,\n sortBy: \"createdTime\",\n sortOrder: \"DESC\",\n },\n };\n\n const [formState, dispatch] = useReducer(formReducer, formInitValue);\n\n const queryParams = useMemo(() => {\n return {\n tenantId,\n offset: formState?.tableForm?.offset || 0,\n limit: formState?.tableForm?.limit || 20,\n search: formState?.searchForm || {},\n };\n }, [tenantId, formState?.tableForm?.offset, formState?.tableForm?.limit, formState?.searchForm]);\n\n const filters = useMemo(() => {\n const searchForm = formState?.searchForm || {};\n return {\n ...searchForm,\n ...(searchForm.kNumber && { kno: searchForm.kNumber }),\n };\n }, [formState?.searchForm]);\n\n const { isLoading, data: dashboardData = {} } = Digit.Hooks.ekyc.useEkycApplicationList(filters, queryParams, {\n enabled: !!tenantId,\n keepPreviousData: true,\n });\n\n const searchDetails = useMemo(\n () => ({\n kno: formState?.searchForm?.kNumber || \"\",\n name: formState?.searchForm?.kName || \"\",\n }),\n [formState?.searchForm?.kNumber, formState?.searchForm?.kName]\n );\n\n const isSearchActive = !!(searchDetails.kno || searchDetails.name);\n\n const { isLoading: isSearchLoading, data: searchData } = Digit.Hooks.ekyc.useSearchConnection(\n {\n tenantId,\n details: searchDetails,\n },\n {\n enabled: !!tenantId && !!searchDetails.kno, // 🔥 important\n keepPreviousData: true,\n }\n );\n\n const sourceData = useMemo(() => {\n if (isSearchActive) {\n if (!searchData) return [];\n return [searchData];\n }\n\n return dashboardData?.consumerList || [];\n }, [isSearchActive, searchData, dashboardData]);\n\n const filteredData = useMemo(() => {\n return (sourceData || []).map((item) => {\n // ✅ detect search response\n const isSearchItem = !!item.connectionDetails;\n\n if (isSearchItem) {\n const searchDetails = item.connectionDetails || {};\n const fullName = (searchDetails.firstName || searchDetails.middleName || searchDetails.lastName)\n ? `${searchDetails.firstName || \"\"} ${searchDetails.middleName || \"\"} ${searchDetails.lastName || \"\"}`.trim().replace(/\\s+/g, \" \")\n : searchDetails.consumerName || \"\";\n\n return {\n applicationNo: item.propertyInfo?.kno || \"\",\n connectionNo: item.propertyInfo?.kno || \"\",\n owner: fullName,\n applicationNumber: item.propertyInfo?.kno || \"\",\n citizenName: fullName,\n status: item.connectionDetails?.statusflag || \"\",\n ekycStatus: (item.connectionDetails?.ekycStatus || item.connectionDetails?.ekycstatus || item.ekycStatus || item.ekycstatus || \"NA\").toUpperCase(),\n sla: 0,\n };\n }\n\n // ✅ dashboard mapping\n const fullName = (item.firstName || item.middleName || item.lastName)\n ? `${item.firstName || \"\"} ${item.middleName || \"\"} ${item.lastName || \"\"}`.trim().replace(/\\s+/g, \" \")\n : item.consumerName || item.citizenName || \"\";\n\n return {\n ...item,\n applicationNo: item.kno || item.applicationNumber || \"\",\n connectionNo: item.connectionNo || \"\",\n owner: fullName,\n applicationNumber: item.kno || item.applicationNumber || \"\",\n citizenName: fullName,\n status: item.status || \"\",\n ekycStatus: (item.ekycStatus || item.ekycstatus || \"NA\").toUpperCase(),\n sla: item.sla ?? 0,\n };\n });\n }, [sourceData]);\n\n const totalRecords = dashboardData?.dashboardInfo?.totalRecords || dashboardData?.totalCount || 0;\n\n const checkPathName = location.pathname.includes(\"ekyc/inbox\");\n // const PropsForInboxLinks = {\n // headerText: \"EKYC_MODULE\",\n // };\n\n const SearchFormFields = useCallback(\n ({ registerRef, searchFormState, controlSearchForm }) => (\n <SearchFormFieldsComponents {...{ registerRef, searchFormState, controlSearchForm }} searchType=\"kno\" className=\"search\" />\n ),\n []\n );\n\n const tableOrderFormDefaultValues = {\n sortBy: \"createdTime\",\n limit: window.Digit.Utils.browser.isMobile() ? 50 : 20,\n offset: 0,\n sortOrder: \"DESC\",\n };\n\n const onSearchFormSubmit = (data) => {\n data.hasOwnProperty(\"\") && delete data?.[\"\"];\n dispatch({ action: \"mutateTableForm\", data: { ...tableOrderFormDefaultValues }, checkPathName });\n dispatch({ action: \"mutateSearchForm\", data, checkPathName });\n };\n\n const searchFormDefaultValues = {\n kNumber: \"\",\n applicationNumber: \"\",\n consumerNo: \"\",\n };\n\n const onSearchFormReset = (setSearchFormValue) => {\n setSearchFormValue(\"kNumber\", null);\n setSearchFormValue(\"applicationNumber\", null);\n setSearchFormValue(\"consumerNo\", null);\n dispatch({ action: \"mutateSearchForm\", data: searchFormDefaultValues });\n };\n\n const propsForSearchForm = {\n SearchFormFields,\n onSearchFormSubmit,\n searchFormDefaultValues: formState?.searchForm,\n resetSearchFormDefaultValues: searchFormDefaultValues,\n onSearchFormReset,\n className: \"search-form-wns-inbox\",\n };\n\n // const FilterFormFields = useCallback(\n // ({ registerRef, controlFilterForm, setFilterFormValue, getFilterFormValue }) => <React.Fragment></React.Fragment>,\n // []\n // );\n\n // const propsForFilterForm = {\n // FilterFormFields,\n // onFilterFormSubmit: () => { },\n // filterFormDefaultValues: \"\",\n // resetFilterFormDefaultValues: \"\",\n // onFilterFormReset: () => { },\n // };\n\n function formReducer(state, payload) {\n const storageKey = payload.checkPathName ? \"EKYC.INBOX\" : \"EKYC.SW.INBOX\";\n\n // ✅ safety for SLA\n switch (payload.action) {\n case \"mutateSearchForm\":\n Digit.SessionStorage.set(storageKey, { ...state, searchForm: payload.data });\n return { ...state, searchForm: payload.data };\n\n case \"mutateFilterForm\":\n Digit.SessionStorage.set(storageKey, { ...state, filterForm: payload.data });\n return { ...state, filterForm: payload.data };\n\n case \"mutateTableForm\":\n Digit.SessionStorage.set(storageKey, { ...state, tableForm: payload.data });\n return { ...state, tableForm: payload.data };\n\n default:\n return state; // ✅ IMPORTANT\n }\n }\n\n const onPageSizeChange = (e) => {\n const newLimit = Number(e.target.value);\n\n dispatch({\n action: \"mutateTableForm\",\n data: {\n ...formState.tableForm,\n limit: newLimit,\n offset: 0, // reset page\n },\n checkPathName,\n });\n };\n\n const onSortingByData = (e) => {\n if (e.length > 0) {\n const [{ id, desc }] = e;\n const sortOrder = desc ? \"DESC\" : \"ASC\";\n const sortBy = id;\n\n if (!(formState.tableForm.sortBy === sortBy && formState.tableForm.sortOrder === sortOrder)) {\n dispatch({\n action: \"mutateTableForm\",\n data: {\n ...formState.tableForm,\n sortBy: id,\n sortOrder: desc ? \"DESC\" : \"ASC\",\n },\n checkPathName,\n });\n }\n }\n };\n\n const propsForInboxTable = useInboxTableConfig({\n ...{\n parentRoute,\n onPageSizeChange,\n formState,\n totalCount: totalRecords,\n table: filteredData,\n dispatch,\n onSortingByData,\n tenantId,\n checkPathName,\n inboxStyles: { overflowX: \"scroll\", overflowY: \"hidden\" },\n tableStyle: { width: \"70%\" },\n },\n });\n\n const onMobileSortOrderData = (data) => {\n const { sortOrder } = data;\n dispatch({ action: \"mutateTableForm\", data: { ...formState.tableForm, sortOrder } });\n };\n\n const onSortFormReset = (setSortFormValue) => {\n setSortFormValue(\"sortOrder\", \"DESC\");\n dispatch({ action: \"mutateTableForm\", data: tableOrderFormDefaultValues });\n };\n\n const propsForMobileSortForm = { onMobileSortOrderData, sortFormDefaultValues: formState?.tableForm, onSortFormReset };\n const propsForInboxMobileCards = useInboxMobileCardsData({ table: filteredData, tenantId });\n\n const isInboxLoading = isLoading || isSearchLoading;\n\n return (\n <div className=\"app-container\">\n <InboxComposer\n {...{\n isInboxLoading,\n // PropsForInboxLinks,\n ...propsForSearchForm,\n // ...propsForFilterForm,\n ...propsForMobileSortForm,\n propsForInboxTable,\n propsForInboxMobileCards,\n formState,\n forceTable: true,\n showSearchOnMobile: true,\n }}\n />\n </div>\n );\n};\n\nexport default Inbox;\n","import React, { useState, useEffect, useCallback } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useParams, useHistory } from \"react-router-dom\";\nimport {\n Card,\n CardHeader,\n CardText,\n Loader,\n StatusTable,\n Row,\n InboxComposer,\n VerticalTimeline,\n SubmitBar,\n} from \"@djb25/digit-ui-react-components\";\nimport SearchFormFieldsComponents from \"../../components/SearchFormFieldsComponent\";\n\nconst EkycStatus = () => {\n const { t } = useTranslation();\n const { id } = useParams();\n const history = useHistory();\n\n // Separate states for the input form state and the triggered search query\n const [formState, setFormState] = useState({\n searchForm: {\n kNumber: id && id !== \":id\" ? id : \"\",\n },\n filterForm: {},\n });\n const [searchQuery, setSearchQuery] = useState(id && id !== \":id\" ? id : \"\");\n const [errorMsg, setErrorMsg] = useState(\"\");\n\n const tenantId = Digit.ULBService.getCurrentTenantId();\n\n // Sync states with URL id parameter change (e.g. back navigation or page load)\n // Added strict equality check to prevent infinite re-render loop\n useEffect(() => {\n const currentKNumber = formState?.searchForm?.kNumber || \"\";\n const targetKNumber = id && id !== \":id\" ? id : \"\";\n if (currentKNumber !== targetKNumber) {\n setFormState({\n searchForm: { kNumber: targetKNumber },\n filterForm: {},\n });\n setSearchQuery(targetKNumber);\n }\n }, [id]);\n\n // Fetch eKYC review/status data - only triggers on 'searchQuery' state\n const { data: searchData, isLoading: isReviewLoading } = Digit.Hooks.ekyc.useEkycSearchReview(\n { kno: searchQuery, fetchType: \"REVIEW\" },\n tenantId,\n {\n enabled: !!searchQuery,\n retry: false,\n onError: (err) => {\n setErrorMsg(err?.message || t(\"EKYC_STATUS_NOT_FOUND\", \"eKYC Application not found.\"));\n },\n }\n );\n\n // Fetch connection/application details via useSearchConnection\n const { data: connectionSearchData, isLoading: isConnectionLoading } = Digit.Hooks.ekyc.useSearchConnection(\n { tenantId, details: { kno: searchQuery } },\n { enabled: !!searchQuery, retry: false }\n );\n\n const isLoading = isReviewLoading || isConnectionLoading;\n\n const onSearchFormSubmit = (data) => {\n const val = data?.kNumber?.trim();\n if (!val) {\n setErrorMsg(t(\"EKYC_PLEASE_ENTER_KNO\", \"Please enter a valid K-Number.\"));\n return;\n }\n setErrorMsg(\"\");\n setFormState({\n searchForm: data,\n filterForm: {},\n });\n setSearchQuery(val);\n history.push(`/digit-ui/citizen/ekyc/${val}`);\n };\n\n const searchFormDefaultValues = {\n kNumber: \"\",\n };\n\n const onSearchFormReset = (setSearchFormValue) => {\n setSearchFormValue(\"kNumber\", \"\");\n setErrorMsg(\"\");\n setFormState({\n searchForm: { kNumber: \"\" },\n filterForm: {},\n });\n setSearchQuery(\"\");\n history.push(\"/digit-ui/citizen/ekyc/:id\");\n };\n\n const SearchFormFields = useCallback(\n ({ registerRef, searchFormState, controlSearchForm }) => (\n <SearchFormFieldsComponents {...{ registerRef, searchFormState, controlSearchForm }} searchType=\"kno\" className=\"search\" />\n ),\n []\n );\n\n const propsForSearchForm = {\n SearchFormFields,\n onSearchFormSubmit,\n searchFormDefaultValues: formState?.searchForm,\n resetSearchFormDefaultValues: searchFormDefaultValues,\n onSearchFormReset,\n className: \"search-form-wns-inbox\",\n };\n\n const propsForInboxTable = {\n columns: [],\n data: [],\n limit: 10,\n offset: 0,\n };\n\n const propsForInboxMobileCards = {\n data: [],\n };\n\n const getStatusDetails = () => {\n if (!searchData) return null;\n const reviewWrapper = searchData?.applicationReviewInfo || searchData?.applicationReview || searchData;\n const appData = (Array.isArray(reviewWrapper) ? reviewWrapper[0] : reviewWrapper) || {};\n const newData = appData?.newData || appData;\n const connection = newData?.connectionDetails || newData || {};\n\n const naText = t(\"CS_NA\", \"N/A\");\n const connRaw = connectionSearchData?.connectionDetails || connectionSearchData || {};\n const addrRaw = connectionSearchData?.addressDetails || {};\n const propRaw = connectionSearchData?.propertyInfo || {};\n const meterRaw = connectionSearchData?.meterDetails || {};\n\n const rawStatus = (connection?.ekycStatus || connection?.ekycstatus || connRaw?.ekycStatus || propRaw?.ekycStatus || meterRaw?.ekycStatus || \"NA\").toUpperCase();\n\n const reviewName = connection?.consumerName || [newData?.firstName, newData?.middleName, newData?.lastName].filter(Boolean).join(\" \");\n const connName = connRaw?.consumerName || [connRaw?.firstName, connRaw?.middleName, connRaw?.lastName].filter(Boolean).join(\" \");\n\n const reviewPhone = connection?.phoneNumber || connection?.mobileNo || connection?.mobileNumber;\n const connPhone = connRaw?.phoneNumber || connRaw?.mobileNo || connRaw?.mobileNumber || addrRaw?.mobileNo || addrRaw?.phoneNumber || addrRaw?.mobileNumber;\n\n const reviewType = connection?.connectionType || connection?.connectionCategory;\n const connType = connRaw?.connectionType || connRaw?.connectionCategory || connRaw?.knoCategory || propRaw?.connectionType || propRaw?.connectionCategory || meterRaw?.connectionCategory;\n\n return {\n kno: connection?.knumber || connection?.kno || connRaw?.knumber || connRaw?.kno || searchQuery,\n consumerName: (reviewName && reviewName !== naText && reviewName !== \"\") ? reviewName : (connName || naText),\n phoneNumber: (reviewPhone && reviewPhone !== naText && reviewPhone !== \"\") ? reviewPhone : (connPhone || naText),\n connectionType: (reviewType && reviewType !== naText && reviewType !== \"\") ? reviewType : (connType || naText),\n status: rawStatus,\n };\n };\n\n const details = getStatusDetails();\n\n // Visual Stepper configuration for VerticalTimeline\n const timelineConfig = [\n {\n route: \"submitted\",\n timeLine: [\n {\n currentStep: 1,\n actions: t(\"EKYC_STEP_SUBMITTED\", \"eKYC Survey Submitted\"),\n },\n ],\n },\n {\n route: \"verification\",\n timeLine: [\n {\n currentStep: 2,\n actions: t(\"EKYC_STEP_UNDER_VERIFICATION\", \"Under Verification\"),\n },\n ],\n },\n {\n route: \"zro-decision\",\n timeLine: [\n {\n currentStep: 3,\n actions: t(\"EKYC_STEP_ZRO_DECISION\", \"ZRO Decision\"),\n },\n ],\n },\n ];\n\n let activeStepIndex = 0;\n if (details) {\n if (details.status === \"APPROVED\") {\n activeStepIndex = 3;\n } else if (details.status === \"REJECTED\") {\n activeStepIndex = 2;\n } else if (details.status === \"PENDING_FOR_VERIFICATION\") {\n activeStepIndex = 1;\n } else {\n activeStepIndex = 1;\n }\n }\n\n const getStatusText = (status) => {\n const key = `EKYC_STATUS_${status}`;\n const val = t(key);\n if (val === key) {\n if (status === \"APPROVED\") return \"Approved\";\n if (status === \"REJECTED\") return \"Rejected\";\n if (status === \"PENDING_FOR_VERIFICATION\") return \"Pending For Verification\";\n return status;\n }\n return val;\n };\n\n return (\n <React.Fragment>\n <div className=\"employee-form-section-wrapper\">\n {!isLoading && details && (\n <VerticalTimeline config={timelineConfig} currentActiveIndex={activeStepIndex} />\n )}\n <div className=\"employee-form-section\">\n <div className=\"single-page-form-container\">\n {/* 1. Search Form Card rendered with InboxComposer */}\n <Card className=\"ekyc-status-search-card\">\n <CardHeader className=\"ekyc-status-card-header\">\n {t(\"EKYC_APPLICATION_STATUS_TRACKER\", \"eKYC Application Status\")}\n </CardHeader>\n <CardText className=\"ekyc-status-card-text\">\n {t(\"EKYC_STATUS_TRACKER_SUBHEADER\", \"Enter your K-Number below to track the real-time status of your eKYC application.\")}\n </CardText>\n\n <div className=\"status-search-composer-wrapper\">\n <InboxComposer\n {...{\n isInboxLoading: false,\n ...propsForSearchForm,\n propsForInboxTable,\n propsForInboxMobileCards,\n formState,\n showSearchOnMobile: true,\n }}\n />\n </div>\n </Card>\n\n {errorMsg && (\n <div className=\"ekyc-status-error-msg\">\n {errorMsg}\n </div>\n )}\n\n {/* 2. Results Card */}\n {isLoading && <Loader />}\n\n {!isLoading && details && (\n <Card className=\"ekyc-status-results-card\">\n {/* Status overview and badge */}\n <div className=\"ekyc-status-overview-header\">\n <div>\n <span className=\"ekyc-status-label-title\">\n {t(\"EKYC_CURRENT_STATUS\", \"Current Status\")}\n </span>\n <div className=\"ekyc-status-value-text\">\n {getStatusText(details.status)}\n </div>\n </div>\n <span className={`ekyc-status-badge ${details.status.toLowerCase()}`}>\n {details.status}\n </span>\n </div>\n\n {/* Details Table */}\n <div className=\"ekyc-status-details-section\">\n <h3 className=\"ekyc-status-details-title\">\n {t(\"EKYC_CONNECTION_SUMMARY\", \"Connection Summary\")}\n </h3>\n <StatusTable>\n <Row label={t(\"EKYC_K_NUMBER\", \"K-Number\")} text={details.kno} />\n <Row label={t(\"EKYC_CONSUMER_NAME\", \"Consumer Name\")} text={details.consumerName} />\n <Row label={t(\"EKYC_MOBILE_NO\", \"Mobile Number\")} text={details.phoneNumber} />\n <Row label={t(\"EKYC_CONNECTION_TYPE\", \"Connection Type\")} text={details.connectionType} />\n </StatusTable>\n </div>\n\n {/* View Application button */}\n <div className=\"ekyc-status-action-section\" style={{ marginTop: \"24px\", display: \"flex\", justifyContent: \"flex-end\" }}>\n <SubmitBar\n label={t(\"EKYC_VIEW_APPLICATION\", \"View Application\")}\n onSubmit={() => history.push(`/digit-ui/citizen/ekyc/status/${details.kno}`)}\n />\n </div>\n </Card>\n )}\n </div>\n </div>\n </div>\n </React.Fragment>\n );\n\n \n};\n\nexport default EkycStatus;\n","import React from \"react\";\nimport { AppContainer, PrivateRoute, ModuleHeader, ArrowLeft, HomeIcon, LayoutWrapper } from \"@djb25/digit-ui-react-components\";\nimport { useTranslation } from \"react-i18next\";\nimport { Switch, useLocation, useRouteMatch, Redirect, Route } from \"react-router-dom\";\nimport AadhaarVerification from \"../../components/AadhaarVerification\";\nimport PropertyInfo from \"../../components/PropertyInfo\";\nimport MeterDetails from \"../../components/MeterDetails\";\nimport Review from \"../../components/Review\";\nimport Inbox from \"./Inbox\";\nimport AssignEkyc from \"../../components/AssignEkyc\";\nimport SurveyorDetailsCard from \"../../components/SurveyorDetailsCard\";\nimport SupervisorDetailsCard from \"../../components/SupervisorDetailsCard\";\nimport VendorDetailsCard from \"../../components/VendorDetailsCard\";\nimport EkycStatus from \"./EkycStatus\";\n\nconst CitizenApp = () => {\n const { t } = useTranslation();\n const location = useLocation();\n const { path } = useRouteMatch();\n const roles = Digit.SessionStorage.get(\"User\")?.info?.roles.map((ele) => ele.code);\n // Digit.Hooks.useStore.getInitData();\n\n sessionStorage.removeItem(\"revalidateddone\");\n\n const getDynamicBreadcrumbs = () => {\n const pathname = location.pathname;\n\n // Parent crumb — always present and clickable → redirects to eKYC citizen home\n const crumbs = [\n { icon: HomeIcon, path: \"/digit-ui/citizen\" },\n { label: t(\"EKYC_MODULE_NAME\"), path: `/digit-ui/citizen/ekyc` },\n ];\n\n // Child crumb — only appended when on a sub-page\n if (pathname.includes(\"/create-kyc\")) {\n crumbs.push({ label: t(\"EKYC_CREATE_KYC\") });\n } else if (pathname.includes(\"/aadhaar-verification\")) {\n crumbs.push({ label: t(\"EKYC_AADHAAR_VERIFICATION\") });\n } else if (pathname.includes(\"/address-details\")) {\n crumbs.push({ label: t(\"EKYC_ADDRESS_DETAILS\") });\n } else if (pathname.includes(\"/property-info\")) {\n crumbs.push({ label: t(\"EKYC_PROPERTY_INFO\") });\n } else if (pathname.includes(\"/meter-details\")) {\n crumbs.push({ label: t(\"EKYC_METER_DETAILS\") });\n } else if (pathname.includes(\"/review\")) {\n crumbs.push({ label: t(\"EKYC_INBOX\"), path: `/digit-ui/citizen/ekyc/inbox` });\n crumbs.push({ label: t(\"EKYC_REVIEW\") });\n } else if (pathname.includes(\"/assign/surveyor-details\")) {\n crumbs.push({ label: t(\"EKYC_ASSIGN\"), path: `/digit-ui/citizen/ekyc/assign` });\n crumbs.push({ label: t(\"EKYC_SURVEYOR_DETAILS\") });\n } else if (pathname.includes(\"/inbox\")) {\n crumbs.push({ label: t(\"EKYC_INBOX\") });\n } else if (pathname.includes(\"/supervisor-dashboard\")) {\n crumbs.push({ label: t(\"EKYC_SUPERVISOR_DASHBOARD\") });\n } else if (pathname.includes(\"/surveyor-dashboard\")) {\n crumbs.push({ label: t(\"EKYC_SURVEYOR_DASHBOARD\") });\n } else if (pathname.includes(\"/vendor-dashboard\")) {\n crumbs.push({ label: t(\"EKYC_VENDOR_DASHBOARD\") || \"Vendor Dashboard\" });\n } else if (pathname.includes(\"/dashboard\")) {\n crumbs.push({ label: t(\"EKYC_DASHBOARD\") });\n } else if (pathname.includes(\"/assign\")) {\n crumbs.push({ label: t(\"EKYC_ASSIGN\") });\n } else if (pathname.includes(\"/status/\") || /^\\/digit-ui\\/citizen\\/ekyc\\/[^/]+$/.test(pathname)) {\n const statusLabel = t(\"EKYC_STATUS\");\n crumbs.push({ label: statusLabel === \"EKYC_STATUS\" || statusLabel === \"STATUS\" ? \"eKYC Status\" : statusLabel });\n }\n // home (exact path) → no child crumb\n\n return crumbs;\n };\n\n // const roles = Digit.SessionStorage.get(\"User\")?.info?.roles.map((ele) => ele.code);\n // const isEkyAction = (!roles?.includes(\"EKYC_SURVEYOR\") || roles?.includes(\"EMPLOYEE\"))\n\n return (\n <AppContainer>\n <div className=\"ground-container form-container\" style={{ flex: 1 }}>\n <ModuleHeader\n leftContent={\n <React.Fragment>\n <ArrowLeft className=\"icon\" />\n {t(\"CS_COMMON_BACK\")}\n </React.Fragment>\n }\n onLeftClick={() => window.history.back()}\n breadcrumbs={getDynamicBreadcrumbs()}\n />\n\n <Switch>\n <Route exact path={`${path}`}>\n <Redirect to=\"/digit-ui/citizen/ekyc-home\" />\n </Route>\n <PrivateRoute\n path={`${path}/inbox`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <Inbox />\n </LayoutWrapper>\n )}\n />\n <PrivateRoute\n path={`${path}/aadhaar-verification`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <AadhaarVerification />\n </LayoutWrapper>\n )}\n />\n\n {/* <PrivateRoute\n path={`${path}/address-details`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <AddressDetails />\n </LayoutWrapper>\n )}\n /> */}\n\n <PrivateRoute\n path={`${path}/property-info`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <PropertyInfo />\n </LayoutWrapper>\n )}\n />\n\n <PrivateRoute\n path={`${path}/meter-details`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <MeterDetails />\n </LayoutWrapper>\n )}\n />\n\n <PrivateRoute\n path={`${path}/review`}\n component={() => (\n <LayoutWrapper layoutClass=\"action\">\n <Review />\n </LayoutWrapper>\n )}\n />\n <PrivateRoute\n path={`${path}/assign`}\n exact\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <AssignEkyc />\n </LayoutWrapper>\n )}\n />\n <PrivateRoute\n path={`${path}/assign/surveyor-details/:id`}\n exact\n component={() => (\n <LayoutWrapper layoutClass=\"action\">\n <SurveyorDetailsCard />\n </LayoutWrapper>\n )}\n />\n <PrivateRoute\n path={`${path}/status/:applicationId`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <Review />\n </LayoutWrapper>\n )}\n />\n <PrivateRoute\n path={`${path}/vendor-dashboard/:vendorId?`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <VendorDetailsCard />\n </LayoutWrapper>\n )}\n />\n <PrivateRoute\n path={`${path}/supervisor-dashboard/:id`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <SupervisorDetailsCard />\n </LayoutWrapper>\n )}\n />\n <PrivateRoute\n path={`${path}/supervisor-dashboard`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <SupervisorDetailsCard />\n </LayoutWrapper>\n )}\n />\n <PrivateRoute\n path={`${path}/surveyor-dashboard/:id`}\n component={() => (\n <LayoutWrapper layoutClass={roles.includes(\"EKYC_SUPERVISOR\") ? \"action\" : \"normal\"}>\n <SurveyorDetailsCard />\n </LayoutWrapper>\n )}\n />\n <PrivateRoute\n path={`${path}/surveyor-dashboard`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <SurveyorDetailsCard />\n </LayoutWrapper>\n )}\n />\n <PrivateRoute\n path={`${path}/:id`}\n component={() => (\n <LayoutWrapper layoutClass=\"normal\">\n <EkycStatus />\n </LayoutWrapper>\n )}\n />\n </Switch>\n </div>\n </AppContainer>\n );\n};\n\nexport default CitizenApp;\n","import React, { useEffect } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { useRouteMatch } from \"react-router-dom\";\nimport { CitizenHomeCard, DocumentIcon, Loader } from \"@djb25/digit-ui-react-components\";\nimport EKYCCard from \"./components/EKYCCard\";\nimport Inbox from \"./components/Dashboard\";\nimport DesktopInbox from \"./components/DesktopInbox\";\nimport MobileInbox from \"./components/MobileInbox\";\nimport Filter from \"./components/Filter\";\nimport EmployeeApp from \"./pages/employee\";\nimport CitizenApp from \"./pages/citizen\";\nimport PropertyInfo from \"./components/PropertyInfo\";\nimport MeterDetails from \"./components/MeterDetails\";\nimport AadhaarVerification from \"./components/AadhaarVerification\";\n\nexport const EkycModule = ({ stateCode, userType, tenants }) => {\n const { path, url } = useRouteMatch();\n const moduleCode = \"EKYC\";\n const language = Digit.StoreData.getCurrentLanguage();\n const { isLoading } = Digit.Services.useStore({ stateCode, moduleCode, language });\n\n Digit.SessionStorage.set(\"EKYC_TENANTS\", tenants);\n\n useEffect(\n () =>\n Digit.LocalizationService.getLocale({\n modules: [`rainmaker-${Digit.ULBService.getCurrentTenantId()}`],\n locale: Digit.StoreData.getCurrentLanguage(),\n tenantId: Digit.ULBService.getCurrentTenantId(),\n }),\n []\n );\n\n if (isLoading) {\n return <Loader page={true} />;\n }\n\n if (userType === \"employee\") {\n return <EmployeeApp path={path} url={url} userType={userType} tenants={tenants} />;\n } else return <CitizenApp />;\n};\n\nexport const EkycLinks = ({ matchPath, userType }) => {\n const { t } = useTranslation();\n const propsForModuleCard = {\n links: [],\n };\n const citizenInfo = Digit.SessionStorage.get(\"User\")?.info?.roles;\n const roles = Array.isArray(citizenInfo) ? citizenInfo.map((ele) => ele.code) : [];\n\n if (roles.includes(\"EKYC_SURVEYOR\")) {\n propsForModuleCard.links.push({\n label: t(\"SURVEYOR_DASHBOARD\"),\n link: `/digit-ui/citizen/ekyc/surveyor-dashboard`,\n });\n }\n\n if (roles.includes(\"EKYC_SUPERVISOR\") || roles.includes(\"EKYC_VENDOR\")) {\n propsForModuleCard.links.push({\n label: t(\"EKYC_INBOX\"),\n link: `/digit-ui/citizen/ekyc/inbox`,\n });\n }\n\n if (roles.includes(\"EKYC_SUPERVISOR\")) {\n propsForModuleCard.links.push(\n {\n label: t(\"EKYC_SUPERVISOR_DASHBOARD\"),\n link: `/digit-ui/citizen/ekyc/supervisor-dashboard`,\n },\n {\n label: t(\"EKYC_ASSIGN\"),\n link: `/digit-ui/citizen/ekyc/assign`,\n }\n );\n }\n\n if (roles.includes(\"EKYC_VENDOR\")) {\n propsForModuleCard.links.push({\n label: t(\"EKYC_VENDOR_DASHBOARD\"),\n link: `/digit-ui/citizen/ekyc/vendor-dashboard`,\n });\n }\n\n if (roles.includes(\"EKYC_SUPERVISOR\") || roles.includes(\"EKYC_VENDOR\")) {\n propsForModuleCard.links.push({\n label: t(\"TITLE_VENDOR_MANAGEMENT\"),\n link: `/digit-ui/citizen/vendor/search-vendor`,\n });\n }\n\n if (roles.length === 1 && roles.includes(\"CITIZEN\")) {\n propsForModuleCard.links.push({\n label: t(\"EKYC_STATUS\"),\n link: `/digit-ui/citizen/ekyc/:id`,\n });\n }\n\n const formattedLinks = propsForModuleCard.links.map((l) => ({\n i18nKey: l.label,\n link: l.link,\n count: l.count,\n }));\n\n return (\n <CitizenHomeCard\n header={t(\"EKYC_MODULE_NAME\")}\n links={formattedLinks}\n Icon={() => <DocumentIcon className=\"fill-path-primary-main\" />}\n />\n );\n};\n\nconst componentsToRegister = {\n EKYCModule: EkycModule,\n EKYCCard,\n EKYCInbox: Inbox,\n EKYCDesktopInbox: DesktopInbox,\n EKYCMobileInbox: MobileInbox,\n EKYC_INBOX_FILTER: (props) => <Filter {...props} />,\n EkycLinks,\n AadhaarVerification,\n PropertyInfo,\n MeterDetails,\n};\n\nexport const initEkycComponents = () => {\n Object.entries(componentsToRegister).forEach(([key, value]) => {\n Digit.ComponentRegistryService.setComponent(key, value);\n });\n};\n\nexport default EkycModule;\n"],"names":["EKYCCard","_Digit$SessionStorage","_Digit$SessionStorage2","t","useTranslation","Digit","Utils","ekycAccess","tenantId","ULBService","getCurrentTenantId","citizenInfo","SessionStorage","get","info","roles","Array","isArray","map","ele","code","data","listData","isLoading","Hooks","ekyc","useEkycApplicationList","offset","limit","enabled","totalCount","isCitizen","window","location","pathname","includes","prefix","links","push","label","link","count","length","propsForModuleCard","Icon","React","createElement","PersonIcon","moduleName","kpis","EmployeeModuleCard","_iteratorSymbol","Symbol","iterator","_asyncIteratorSymbol","asyncIterator","_catch","body","recover","result","e","then","_finallyRethrows","finalizer","bind","excludedKeys","createHeaderMapping","kno","firstName","middleName","lastName","status","ekycStatus","zoneName","zoneCode","assembly","ward","pincode","addressRaw","locality","subLocality","flatHouseNumber","streetName","landmark","city","state","addressType","addressProofType","mobileNo","alternateMobileNo","whatsappNo","email","landlineNo","mrkey","mrcode","areacode","source","submittedAt","assignedAt","connectionType","Type","occupantType","knoCategory","approvedAt","gender","parentSpouse","fatherOrHusbandName","relationship","informantName","informantRelation","contactPerson","relation","ownerMobile","consentGiven","proofOfIdentityType","documentNumber","noOfPerson","latitude","longitude","gpsValid","meterNumber","meterMake","meterStatus","meterCondition","meterLocation","meterLocationAddress","workingStatus","sewerConnection","septicTank","lastBillRaised","lastBillReceivedDate","accessToMeter","systemMeterId","lastBillNotRaisedReason","waterConnectionYears","sewerConnectionYears","pidNumber","propertyType","subPropertyCategory","noOfFloor","noOfRooms","noOfBeds","numberOfDwellingUnits","floorNo","userType","tenantName","tenantMobile","verificationStatus","houseBuiltDuration","surveyorId","supervisorId","vendorId","assignmentType","assignmentValue","assignedTime","isSelfAssigned","doorPhotoFilestoreId","panFilestoreId","documentProofFilestoreId","buildingImageFileStoreId","propertyDocumentFileStoreId","meterPhotoFileStoreId","modifiedBy","emailId","dob","consumerType","createdTime","lastModifiedTime","meterLatitude","meterLongitude","toTitleCase","str","cleanStr","String","isNaN","Number","split","pop","toLowerCase","replace","c","toUpperCase","skipTitleCase","translatedFields","getEkycExcelData","consumerList","k","headerMapping","excelData","item","cleanObj","fullName","filter","Boolean","join","Object","keys","forEach","key","val","friendlyHeader","getChartConstructor","C","Chartjs","StatusCards","_ref","countData","ekycDownloadLoading","setEkycDownloadLoading","useState","showReportMenu","setShowReportMenu","customDate","setCustomDate","from","to","showCustomPicker","setShowCustomPicker","reportMenuRef","useRef","useEffect","handler","current","contains","target","document","addEventListener","removeEventListener","loggedInUser","name","handleDownloadEkycData","fromDate","toDate","Promise","resolve","EkycService","application_list","reportDownload","response","alert","cleanFileName","Download","Excel","error","console","_wasThrown","_result","reject","getDateRange","now","Date","start","setHours","setDate","getDate","getDay","handlePresetDownload","range","getTime","handleCustomDownload","chartRef1","chartInstance1","efficiency","total","Math","round","submittedCount","completed","formatNumber","num","Intl","NumberFormat","format","destroy","ctx1","getContext","ChartConstructor","type","labels","datasets","pending","submitted","inprocess","backgroundColor","borderColor","borderWidth","hoverOffset","options","cutout","plugins","legend","display","maintainAspectRatio","responsive","legendItems","color","value","selfEkycCount","rejected","className","FaChartBar","size","style","paddingInline","borderRadius","ref","disabled","onClick","p","MdDownloadIcon","_ref2","onChange","gap","marginTop","stopPropagation","width","height","Dashboard","progressData","isProgressLoading","totalKnosInSystem","completedKnosInZones","pendingKnosInZones","rejectedKnosInZones","totalAssignments","submittedKnosInZones","selfEkycCountInZones","overallProgressPercent","EkycDashboardSkeleton","DesktopInbox","_Digit$ComponentRegis","tableConfig","filterComponent","props","onSort","onNextPage","onPrevPage","currentPage","pageSizeLimit","onPageSizeChange","parentRoute","searchParams","sortParams","totalRecords","history","useHistory","FilterComponent","ComponentRegistryService","getComponent","selectedKno","setSelectedKno","reviewData","getReview","useEkycAPI","handleReview","kNumber","aadhaarData","columns","useMemo","Header","accessor","Cell","_row$original","_row$original2","row","original","applicationNumber","_ref3","_row$original3","citizenName","_ref4","_row$original4","_row$original5","_ref5","_row$original6","_row$original7","raw","ekycstatus","_ref6","_row$original8","_row$original9","tableData","items","Loader","InboxLinks","headerText","moduleCode","defaultSearchParams","onFilterChange","onSearch","flex","Card","padding","Table","getCellProps","cellInfo","SearchConsumer","_props$countData","_props$countData2","_props$countData3","children","_searchParams","setSearchParams","prev","onSubmit","preventDefault","onClear","cleared","kName","HomeIcon","viewBox","fill","stroke","strokeWidth","strokeLinecap","strokeLinejoin","cx","cy","r","x1","y1","x2","y2","TextInput","placeholder","d","todaysAudits","auditChange","pendingCount","i","fromCharCode","MobileInbox","_data$items","mobileData","mobileNumber","Link","SubmitBar","DetailsCard","serviceRequestIdKey","linkPrefix","text","index","textAlign","Filter","statusMap","applyLocalFilters","clearAll","onStatusChange","newParams","FilterForm","handleSubmit","fn","onResetFilterForm","id","onMobileExclusiveFilterPopupFormClose","onClose","FilterFormField","fontWeight","Dropdown","option","optionKey","select","selected","EkycFilterModal","onApply","setEkycStatus","isDatePickerOpen","setIsDatePickerOpen","ekycStatusOptions","Modal","headerBarMain","headerBarEnd","CloseSvg","actionSaveLabel","actionSaveOnSubmit","actionCancelLabel","actionCancelOnSubmit","DateRange","values","hideLabel","onOpenChange","VendorDetailsCard","_vendor$owner","_vendor$owner2","_vendor$owner3","_vendor$owner4","_progressData$supervi","useParams","targetVendorId","uuid","showFilterModal","setShowFilterModal","vendor","isVendorSearchLoading","fsm","useVendorSearch","filters","ids","config","staleTime","useEkycAssignmentProgress","keepPreviousData","vendorName","owner","ownerName","zoneIds","_vendor$zoneIds","zone","trim","cards","totalKnosInZones","icon","FaDatabase","FaFileAlt","FaBuilding","FaUser","FaClock","FaChartLine","setCurrentPage","pageSize","setPageSize","log","toLocaleDateString","handleApplyFilters","startDate","endDate","supervisorColumns","supervisorName","_Digit$SessionStorage3","_Digit$SessionStorage4","targetPath","href","textDecoration","assignedZoneId","totalKnos","submittedKnos","pendingKnos","progressPercent","StatCard","title","Fragment","isPageLoading","flexWrap","card","idx","tableTitle","tableClass","isTableScrollable","supervisorReport","isPaginationRequired","_progressData$supervi2","ceil","onFirstPage","onLastPage","_progressData$supervi3","max","useInboxTableConfig","_formState$tableForm","_formState$tableForm2","_formState$searchForm","formState","table","dispatch","checkPathName","onSortingByData","inboxStyles","tableStyle","tableForm","tableColumnConfig","disableSortBy","DateUtils","ConvertEpochToDate","_ref7","disableSort","autoSort","manualPagination","initSortId","floor","_formState$tableForm3","action","parseInt","_formState$tableForm4","searchForm","message","SearchFormFieldsComponents","searchFormState","controlSearchForm","searchType","errors","Label","CustomTooltip","Controller","control","defaultValue","rules","pattern","render","CardLabelError","useInboxMobileCardsData","isSupervisor","handleSupervisorReview","dataForMobileInboxCards","_item$owner","surveyorName","serviceType","MobileSortFormValues","sortOrderOptions","i18nKey","controlSortForm","useFormContext","SearchField","RadioButtons","onSelect","selectedOption","optionsKey","isTwoDynamicPrefix","getRedirectionLink","handleClickEnabled","Inbox","_formState$searchForm3","_formState$searchForm4","useLocation","formInitValue","filterForm","sortBy","sortOrder","useReducer","formReducer","queryParams","isListLoading","allVendorsDetailed","searchDetails","_formState$searchForm2","isSearchActive","isSearchLoading","searchData","useSearchConnection","details","sourceData","filteredData","isSearchItem","connectionDetails","_item$propertyInfo","_item$propertyInfo2","_item$connectionDetai","_item$propertyInfo3","_item$connectionDetai2","_item$connectionDetai3","_item$connectionDetai4","_item$connectionDetai5","applicationNo","propertyInfo","connectionNo","consumerName","statusflag","sla","progressMetrics","toFixed","FaUsers","FaCheckCircle","SearchFormFields","useCallback","registerRef","tableOrderFormDefaultValues","browser","isMobile","onSearchFormSubmit","hasOwnProperty","searchFormDefaultValues","consumerNo","onSearchFormReset","setSearchFormValue","propsForSearchForm","resetSearchFormDefaultValues","payload","set","newLimit","desc","propsForInboxTable","overflowX","overflowY","onMobileSortOrderData","onSortFormReset","setSortFormValue","propsForMobileSortForm","sortFormDefaultValues","propsForInboxMobileCards","isInboxLoading","marginBottom","InboxComposer","_extends","forceTable","showSearchOnMobile","ActionButton","jumpTo","routeTo","isEditing","LinkButton","EditIcon","margin","checkForNA","undefined","boolToYesNo","extractReviewData","flowState","rawData","reviewWrapper","applicationReviewInfo","applicationReview","applicationData","newData","oldData","ReviewSection","fields","hideEditButton","background","border","overflow","borderBottom","justifyContent","alignItems","CardSubHeader","fontSize","borderCollapse","tableLayout","textTransform","field","valNew","valOld","normalizeVal","v","isChanged","borderTop","preTranslated","isBool","Review","_newDataRaw$connectio","_newDataRaw$address","_newDataRaw$address2","_newDataRaw$address3","_newDataRaw$address4","_newDataRaw$address5","_newDataRaw$address6","_newDataRaw$address7","_newDataRaw$address8","_newDataRaw$address9","_newDataRaw$address0","_newDataRaw$address1","_newDataRaw$address10","_newDataRaw$address11","_newDataRaw$address12","_newDataRaw$address13","_newDataRaw$address14","_newDataRaw$property","_newDataRaw$property2","_editedProperty$conne","_newDataRaw$property3","_editedProperty$conne2","_newDataRaw$property4","_editedProperty$userT","_newDataRaw$property5","_editedProperty$noOfF","_newDataRaw$property6","_newDataRaw$property7","_newDataRaw$meter","_editedMeter$meterSta","_newDataRaw$meter2","_newDataRaw$meter3","_newDataRaw$meter4","_newDataRaw$meter5","_editedMeter$workingS","_newDataRaw$meter6","_editedMeter$lastBill","_newDataRaw$meter7","_newDataRaw$meter8","_Digit$UserService$ge","applicationId","agree","setAgree","isSubmitting","setIsSubmitting","showPreview","setShowPreview","previewUrl","setPreviewUrl","showOptions","setShowOptions","showToast","setShowToast","toastData","setToastData","edits","activeKno","addressDetails","editedAddress","propertyDetails","editedProperty","meterDetails","editedMeter","workflowMutation","useEkycWorkflow","updateMutation","useEkycUpdate","useEkycSearchReview","fetchType","userRoles","isZRO","isSupervisorOrSurveyorOrVendor","isStatusView","apiNewData","apiOldData","flatNewData","flatOldData","prepareConsolidatedData","apiConn","apiAddr","apiProp","apiMeter","connection","address","connectionCategory","meterNo","phoneNumber","statusFlag","knumber","fullAddress","flatNo","buildingTower","building","pinCode","noOfPersons","doorPhotoFileStoreId","property","typeOfConnection","numberOfFloors","buildingImageFilestoreId","meter","metered","meterPhotoFilestoreId","newDataRaw","addressData","whatsappNumber","propertyData","connectionTypeData","connectionCategoryData","userTypeData","noOfFloorsData","meterData","meterStatusData","workingStatusData","lastBillRaisedData","handleDeclaration","loggedInUserInfo","UserService","getUser","userData","useUserSearch","supervisorData","user","matchedSupervisor","find","s","userName","handleReject","_Digit$UserService$ge2","RequestInfo","apiId","ver","msgId","authToken","access_token","remarks","reviewedBy","role","_temp","mutateAsync","setTimeout","err","_err$response","_err$response$data","_err$response2","_err$response2$data","_err$response2$data$E","_err$response2$data$E2","_err$Errors","_err$Errors$","errMsg","Errors","handleApprove","_Digit$UserService$ge3","_temp2","_err$response3","_err$response3$data","_err$response3$data$E","_err$response3$data$E2","_err$Errors2","_err$Errors2$","handleViewDocument","fileStoreId","_temp4","UploadServices","FileFetchbyid","blobUrl","URL","createObjectURL","handleMenuSelect","StatusTable","maxWidth","Row","actionButton","GenericFileIcon","cursor","paddingTop","CheckBox","checked","ActionBar","Menu","position","top","left","zIndex","maxHeight","boxShadow","right","src","alt","onError","nextSibling","open","Toast","AadhaarVerificationConfig","formData","uploadFile","setDocumentId","documentId","_formData","_formData$consumerTyp","_formData2","_formData3","_formData3$occupantTy","_formData4","_formData5","informantIsConsumer","isMandatory","populators","component","validation","required","min","UploadFile","onUpload","onDelete","head","AadhaarVerification","URLSearchParams","search","urlKno","searchKno","sessionStorage","getItem","cacheTime","savedData","aadhaarVerification","documentProof","setDocumentProof","toast","setToast","isDataLoaded","setIsDataLoaded","canSubmit","setCanSubmit","defaultValues","setDefaultValues","categoryType","parentSpouseName","mobile","whatsapp","residents","identityType","idFile","tenantVerification","designation","department","employeeId","entityName","consent","localFormData","setLocalFormData","extractApplicationData","appData","addrDetails","fName","mName","lName","parts","slice","updatedDefaults","handleUploadProof","file","files","Filestorage","res","_res$data","_res$data$files","_res$data$files$","onFormValueChange","setValue","_data$consumerType","_localFormData$consum","_data$occupantType","_localFormData$occupa","consumerTypeChanged","occupantTypeChanged","informantIsConsumerChanged","knoVal","consumerTypeVal","occupantTypeVal","categoryTypeVal","firstNameVal","mobileVal","residentsVal","consentVal","docId","ownerMobileVal","valid","test","_data$consumerType2","_data$occupantType2","_data$categoryType","_data$gender","_data$identityType","submitData","landline","entityRelation","idProof","idNumber","updateType","Config","FormComposer","isDisabled","isCollapsible","isDefaultOpen","noCard","submitInForm","ekycConfig","route","texts","header","submitBarLabel","timeLine","currentStep","actions","doorImage","showMapActualLocation","EKYCForm","path","passedPath","match","useRouteMatch","params","setParams","useSessionStorage","rest","goNext","skipStep","isAddMultiple","currentPath","routeObj","nextStep","currentIndex","findIndex","redirectWithHistory","base","handleSelect","silent","obj","concat","indexRoute","formStepRoutes","isFormStep","some","sectionRefs","currentRoute","scrollIntoView","behavior","block","VerticalTimeline","showFinalStep","Switch","Route","Component","el","defaultOpen","Redirect","VendorCardSkeleton","VendorPerformanceSkeleton","AdminDashboard","vendorReports","totalSupervisors","totalSurveyors","SupervisorDetailsCard","supervisorSearchResponse","isSupervisorSearchLoading","useSupervisorSearch","targetId","supervisors","matchedSup","_s$id","_s$owner","_s$owner$uuid","currentSupervisor","surveyorsData","surveyors","surveyorSearchResponse","isSurveyorSearchLoading","useSurveyorSearch","vendorSearchResponse","useDsoSearch","supervisor","targetOwnerOrId","resolvedSupervisorId","selfSup","_s$owner2","_s$owner2$uuid","_s$id2","_s$id3","_s$owner3","_s$owner3$uuid","progressReport","_s$supervisorId","_s$id4","_progressReport","_progressReport2","_progressReport3","_matchedSup$owner2","_matchedSup$owner3","_matchedSup$owner4","_matchedSup$owner5","_matchedSup$owner6","_matchedSup$owner7","matchedSurveyors","surv","_matchedSup$owner","_surv$owner3","_surv$owner4","_surv$owner5","_surv$owner6","_surv$owner7","_realStats","_realStats2","_realStats3","_realStats4","realStats","report","_report$supervisorId","_matchedSup$id","_report$id","_matchedSup$id2","_report$surveyors","matchedSurv","_s$surveyorId","_surv$id","_s$surveyorId2","_surv$owner","_surv$owner$uuid","_s$id5","_surv$id2","_s$id6","_surv$owner2","_surv$owner2$uuid","reduce","acc","_loggedInUser$uuid","_supervisorSearchResp","_matchedSupForFallbac","_matchedSupForFallbac2","_matchedSupForFallbac3","isSelf","matchedSupForFallback","_s$id7","_s$owner4","_s$owner4$uuid","surveyorsMapped","_surveyorSearchRespon","_matchedSurv$owner","_matchedSurv$owner2","_matchedSurv$owner3","_matchedSurv$owner4","_matchedSurv$owner5","_s$id8","_surv$surveyorId","_s$owner5","_s$owner5$uuid","_surv$surveyorId2","assignedZone","_matchedVendor$dsoDet","matchedVendor","_v$dsoDetails","_v$dsoDetails2","dsoDetails","surveyorColumns","AssignEkycModal","surveyor","isReassign","closeModal","refetchDashboard","propsTenantId","selectedKnos","setSelectedKnos","setFilters","debouncedFilters","setDebouncedFilters","egovLocationData","useCommonMDMS","boundaryData","_egovLocationData$ego","tenantBoundary","TenantBoundary","revenueData","_item$hierarchyType","hierarchyType","boundary","structuredLocalityData","localities","boundaries","extractLocalities","node","localname","child","rootNode","fetchedPincodes","pinSet","Set","loc","pins","sanitizedPin","toString","add","sort","filterOptionsData","unassignedOnly","fetchFilterOptions","Infinity","pincodeOptions","mrkeyOptions","timer","clearTimeout","isFetching","refetch","refetchApplicationList","assignedOnly","handleAssignmentError","isAlreadyAssigned","assignmentMutation","useEkycAssignmentCreate","onSuccess","variables","_response$data","skipped","_response$skipped$","reason","_temp3","_error$data","_error$response","_error$response$data","reassignMutation","useEkycAssignmentReassign","_response$data2","_response$skipped$2","_temp8","_temp6","_temp5","_temp7","_error$data2","_error$response2","_error$response2$data","activeMutation","allData","totalPages","paginatedData","handleAssign","_surveyor$owner","newSurveyorId","_surveyor$owner2","mutate","handleSelectAll","allMatchingKnos","isAllSelected","every","handleFilterChange","isAllChecked","Close","pin","SurveyorDetailsCard","_surveyorSearchById$s","_surveyor$owner4","_surveyor$owner5","_surveyor$owner6","_dashboardData$dashbo","_dashboardData$dashbo2","_dashboardData$dashbo3","_dashboardData$dashbo4","_dashboardData$dashbo5","_dashboardData$dashbo6","showModal","setShowModal","ownerIds","surveyorSearchById","isLoadingId","hasFoundById","surveyorSearchByOwner","isLoadingOwner","vendorData","isVendorLoading","_mappedVendor$dsoDeta","mappedVendor","_mappedSupervisor$own","mappedSupervisor","isDashboardLoading","dashboardData","useEkycSurveyorDashboard","knoColumns","_surveyor$owner3","description","dashboardInfo","inProgressCount","showAutoSerialNo","_dashboardData$dashbo7","_dashboardData$dashbo8","WorkOrder","setVendor","validFrom","setValidFrom","validTo","setValidTo","uploadedFile","setUploadedFile","setFile","setError","vendorOptions","createWorkOrder","wt","useVendorWorkOrderCreate","getStateId","_response$data$files","_response$data2$files","vendorWorkOrder","isError","_err$response$data$Er","_err$response$data$Er2","selectfile","isFormDisabled","CollapsibleCardPage","flexDirection","DatePicker","date","extraStyleName","accept","storageKey","_row$original5$owner","SupervisorInboxTableConfig","AssignEkyc","paginationParms","_owner$roles","_owner$roles$map","_item$additionalDetai","_item$auditDetails","_item$auditDetails2","roleCodes","additionalDetails","auditDetails","isCardLoading","breadcrumb","listLabel","listPath","detailLabel","getEkycRoutes","layout","ekycRoutes","EmployeeApp","removeItem","getDynamicBreadcrumbs","crumbs","pathSegments","ekycIndex","indexOf","relativeSegments","matchedPath","paths","singlePath","routeSegments","seg","startsWith","crumb","crumbPath","segment","RegExp","AppContainer","ModuleHeader","leftContent","ArrowLeft","onLeftClick","back","breadcrumbs","PrivateRoute","LayoutWrapper","layoutClass","businessService","isInbox","exact","PropertyInfoConfig","buildingImage","buildingImageId","setBuildingImage","setBuildingImageId","_formData$propertyTyp","isHotel","isHospitalOrNursing","objectFit","PropertyInfo","noOfFloors","dwellingUnits","propType","subPropCat","matchingType","numberOfRooms","numberOfBeds","handleUpload","reader","FileReader","onloadend","readAsDataURL","_data$propertyType","_localFormData$proper","propertyTypeChanged","propTypeVal","subPropCatVal","noOfFloorsVal","buildingImgId","noOfRoomsVal","noOfBedsVal","_data$propertyType2","_data$subPropertyCate","MeterDetailsConfig","uploadPhoto","meterPhoto","meterPhotoId","setMeterPhoto","setMeterPhotoId","_formData$meterStatus","_formData3$lastBillRe","_formData5$sewerConne","_formData6","lastBillReceived","isFrozen","monthYearOptions","y","m","yesNo","MeterDetails","saType","mrCode","areaCode","mrKey","meterMaker","billMonthYear","mStatus","mCondition","mLoc","billRec","billMonYr","accToMeter","sewerConn","sepTank","matchingStatus","o","matchingCond","matchingLoc","strVal","formatted","parsedParts","mon","yr","_data$meterStatus","_localFormData$meterS","_data$lastBillReceive","_localFormData$lastBi","_data$sewerConnection","_localFormData$sewerC","meterStatusChanged","lastBillReceivedChanged","sewerConnectionChanged","connCatVal","mStatusVal","mLocVal","billRecVal","sewerConnVal","mPhotoId","reasonVal","billMonYrVal","sepTankVal","_data$meterStatus2","_data$meterCondition","_data$meterLocation","_data$lastBillReceive2","_data$billMonthYear","_data$accessToMeter","_data$sewerConnection2","_data$septicTank","EkycStatus","setFormState","searchQuery","setSearchQuery","errorMsg","setErrorMsg","currentKNumber","targetKNumber","isReviewLoading","retry","connectionSearchData","isConnectionLoading","_data$kNumber","getStatusDetails","naText","connRaw","addrRaw","propRaw","meterRaw","rawStatus","reviewName","connName","reviewPhone","connPhone","reviewType","connType","timelineConfig","activeStepIndex","getStatusText","currentActiveIndex","CardHeader","CardText","CitizenApp","statusLabel","EkycModule","stateCode","tenants","url","language","StoreData","getCurrentLanguage","Services","useStore","LocalizationService","getLocale","modules","locale","page","EkycLinks","formattedLinks","l","CitizenHomeCard","DocumentIcon","componentsToRegister","EKYCModule","EKYCInbox","EKYCDesktopInbox","EKYCMobileInbox","EKYC_INBOX_FILTER","initEkycComponents","entries","setComponent"],"mappings":"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"}
|