vite-plugin-fenom 1.0.3 → 1.0.4

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vite-plugin-fenom",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "type": "module",
5
5
  "main": "./vite-plugin-fenom.cjs",
6
6
  "exports": {
package/readme.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  JavaScript-шаблонизатор, разрабатывался как максимально близкий аналог шаблонизатора [Fenom для PHP](https://github.com/fenom-template/fenom), используемого в CMS **MODX Revolution**, чтобы верстальщики и разработчики могли работать локально без запуска сервера.
4
4
 
5
- 🔧 **Синхронный**, **без зависимости от сборщиков**, работает **в браузере** и **локально** — идеален для верстки и прототипирования.
5
+ 🔧 **Асинхронный**, **без зависимости от сборщиков**, работает **в браузере** и **локально** — идеален для верстки и прототипирования.
6
6
 
7
7
  📌 В **бета-версии**. Пригоден для тестирования и локального использования.
8
8
 
@@ -20,7 +20,6 @@ JavaScript-шаблонизатор, разрабатывался как мак
20
20
  - - Фильтры: Применяются через **|** (как в оригинальном Fenom):
21
21
  - - Исключение: **{ignore}**
22
22
  - - Комментарии: **{ * комментарий * }**
23
- - Работает **синхронно** — нет промисов, всё просто
24
23
  - Работает **в браузере** и **в Node.js**
25
24
  - В браузере: **без `include` и `extends`** (ограничение среды)
26
25
  - Легко внедряется в HTML-страницы для локальной верстки
@@ -1 +1 @@
1
- {"version":3,"file":"vite-plugin-fenom.cjs","sources":["../fenom-js/index.cjs","../src/src/vite-plugin-fenom/vite-plugin-fenom.ts"],"sourcesContent":["\"use strict\";Object.defineProperty(exports,Symbol.toStringTag,{value:\"Module\"});const e=require(\"path\"),t=require(\"fs/promises\"),r=[...[{type:\"extends\",regex:/^\\{extends\\s+['\"]file:([^'\"]+)['\"]\\s*\\}/,process:e=>({file:e[1]})},{type:\"block_open\",regex:/^\\{block\\s+(['\"])(.*?)\\1\\s*\\}/,process:e=>({name:e[2]})},{type:\"block_close\",regex:/^\\{\\/block\\}/},{type:\"parent\",regex:/^\\{parent\\}/},{type:\"paste\",regex:/^\\{paste\\s+(['\"])(.*?)\\1\\}/,process:e=>({name:e[2]})},{type:\"use\",regex:/^\\{use\\s+(['\"])(.*?)\\1\\}/,process:e=>({file:e[2]})}],{type:\"include\",regex:/^\\{include\\s+['\"]file:([^'\"]+)['\"](?:\\s+((?:\\s*\\w+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s}]+))+))?\\s*\\}/,process:e=>{const t=e[1],r=e[2],s={};if(r){const e=/(\\w+)\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)'|([^\\s}]+))/g;let t;for(;null!==(t=e.exec(r));){const e=t[1],r=t[2]||t[3]||t[4]||\"\";s[e]=r}}return{file:t,params:s}}},{type:\"for\",regex:/^\\{(for|foreach)\\s*\\$(\\w+(?:\\.\\w+)?)\\s+as\\s*\\$(\\w+)(?:\\s*\\|\\s*reverse)?\\s*\\}/,process:e=>({collection:`$${e[2]}`,item:e[3],key:null,reverse:e[0].includes(\"| reverse\")})},{type:\"for\",regex:/^\\{(for|foreach)\\s*\\$(\\w+(?:\\.\\w+)?)\\s+as\\s*\\$(\\w+)\\s*=>\\s*\\$(\\w+)(?:\\s*\\|\\s*reverse)?\\s*\\}/,process:e=>({collection:`$${e[2]}`,key:e[3],item:e[4],reverse:e[0].includes(\"| reverse\")})},{type:\"endfor\",regex:/^\\{\\/(?:for|foreach)\\}/},{type:\"break\",regex:/^\\{break\\}/i},{type:\"continue\",regex:/^\\{continue\\}/i},...[{type:\"switch\",regex:/^\\{switch\\s+(.+?)\\}/,process:e=>({value:e[1].trim()})},{type:\"case\",regex:/^\\{case\\s+(.+?)\\}/,process:e=>({value:e[1].trim()})},{type:\"default\",regex:/^\\{default\\}/},{type:\"endswitch\",regex:/^\\{\\/switch\\}/}],{type:\"operator\",regex:/^\\{\\$(\\w+)\\s*(\\+\\+|--|\\+=|-=|\\*=|\\/=|\\%=)\\s*([^}]+)?\\}/,process:e=>{var t;return{variable:e[1],operator:e[2],value:(null==(t=e[3])?void 0:t.trim())||\"1\"}}},...[{type:\"if\",regex:/^\\{if\\s+(.+?)\\}/,process:e=>({condition:e[1].trim()})},{type:\"elseif\",regex:/^\\{elseif\\s+(.+?)\\}/,process:e=>({condition:e[1].trim()})},{type:\"else\",regex:/^\\{else\\}/},{type:\"endif\",regex:/^\\{\\/if\\}/}],{type:\"ignore_block\",regex:/^\\{ignore\\}([\\s\\S]*?)\\{\\/ignore\\}/,process:e=>({content:e[1]})},...[{type:\"set\",regex:/^\\{set\\s+\\$(\\w+)\\s*=\\s*(\\{[^}]*\\}|\\[[^}]*\\])\\}/,process:e=>({variable:e[1],value:e[2]})},{type:\"set\",regex:/^\\{set\\s+\\$(\\w+)\\s*=\\s*(['\"])(.*?)\\2\\}/,process:e=>({variable:e[1],value:e[3]})},{type:\"set\",regex:/^\\{set\\s+\\$(\\w+)\\s*=\\s*([^}\\s][^}]*)\\}/,process:e=>({variable:e[1],value:e[2].trim()})},{type:\"add\",regex:/^\\{add\\s+\\$(\\w+)\\s*\\+\\+\\}/,process:e=>({variable:e[1]})},{type:\"var\",regex:/^\\{var\\s+\\$(\\w+)\\s*=\\s*(['\"])(.*?)\\2\\}/,process:e=>({variable:e[1],value:e[3]})}],...[{type:\"unset\",regex:/^\\{unset\\s+\\$(\\w+)\\}/,process:e=>({variable:e[1]})},{type:\"comment\",regex:/^\\{\\*\\s*([\\s\\S]*?)\\s*\\*\\}/}],...[{type:\"cycle\",regex:/^\\{cycle\\s+(.+?)\\}/,process:e=>({values:e[1]})}],...[{type:\"filter\",regex:/^\\{filter\\s+(.+?)\\}/,process:e=>({filter:e[1].trim()})},{type:\"endfilter\",regex:/^\\{\\/filter\\}/},{type:\"raw\",regex:/^\\{raw\\}/},{type:\"endraw\",regex:/^\\{\\/raw\\}/},{type:\"autoescape\",regex:/^\\{autoescape\\}/},{type:\"endautoescape\",regex:/^\\{\\/autoescape\\}/}],...[{type:\"macro\",regex:/^\\{macro\\s+(\\w+)(?:\\s*\\((.*?)\\))?\\}/,process(e){const t=e[2]?e[2].split(\",\").map(e=>e.trim()):[];return{name:e[1],args:t}}},{type:\"endmacro\",regex:/^\\{\\/macro\\}/},{type:\"import\",regex:/^\\{import\\s+(['\"])(.*?)\\1\\s+as\\s+(\\w+)\\}/,process:e=>({file:e[2],alias:e[3]})}],{type:\"output\",regex:/^\\{output\\s+name\\s*=\\s*(['\"])(.*?)\\1\\s*\\}/,process:e=>({name:e[2],filters:[]})},{type:\"output\",regex:/^\\{output\\s+(['\"])(.*?)\\1\\s*\\}/,process:e=>({name:e[2],filters:[]})},{type:\"output\",regex:/^\\{output\\s+([^\\s}]+)\\s*\\}/,process:e=>({name:e[1],filters:[]})},{type:\"output\",regex:/^\\{output\\s+(\\$?[^}]+)\\}/,process:e=>({name:e[1].trim(),filters:[]})},{type:\"output\",regex:/^\\{\\$(.+?)\\}/,process:e=>{const t=e[1].trim().split(\"|\").map(e=>e.trim());return{name:`$${t[0]}`,filters:t.slice(1)}}},{type:\"output\",regex:/^\\{([^$].+?)\\}/,process:e=>({name:e[1].trim(),filters:[]})}];function s(e){const t=[];let s=0;for(;s<e.length;){let n=!1;if(e.slice(s).startsWith(\"{ignore}\")){let r=1,o=s+8;for(;o<e.length;)if(e.length-o>=8&&e.startsWith(\"{ignore}\",o))r++,o+=8;else if(e.length-o>=9&&e.startsWith(\"{/ignore}\",o)){if(r--,o+=9,0===r){const r=e.slice(s+8,o-9);t.push({type:\"text\",value:r}),s=o,n=!0;break}}else o++;n||(t.push({type:\"text\",value:\"{ignore}\"}),s+=8);continue}if(\"{\"!==e[s]){const r=e.indexOf(\"{\",s);if(-1===r){t.push({type:\"text\",value:e.slice(s)});break}r>s&&t.push({type:\"text\",value:e.slice(s,r)}),s=r}for(const o of r){const r=e.slice(s).match(o.regex);if(r){const e={type:o.type,value:r[0]};if(\"comment\"===o.type){s+=r[0].length,n=!0;break}o.process&&Object.assign(e,o.process(r)),t.push(e),s+=r[0].length,n=!0;break}}if(!n){const t=e.slice(s,s+30).replace(/\\n/g,\"↵\");console.warn(`Skip unknown tag at ${s}: \"${t}\"`),s++}}return t}function n(e,t){const r={type:\"if\",condition:e[t].condition,body:[],elseIfs:[],elseBody:[]};let s=t+1,n=0;const o=[],i=[],a=[];let l=null,u=!1;for(;s<e.length;){const t=e[s];if(\"if\"===t.type&&n++,\"endif\"===t.type){if(0===n)break;n--}if(n>0)l||u?l?l.tokens.push(t):u&&a.push(t):o.push(t),s++;else if(\"elseif\"!==t.type)if(\"else\"!==t.type){if(\"endif\"===t.type)break;l||u?l?l.tokens.push(t):u&&a.push(t):o.push(t),s++}else l=null,u=!0,s++;else l||u?l?l.tokens.push(t):u&&a.push(t):(l={condition:t.condition,tokens:[]},i.push(l)),s++}return r.body=c(o),r.elseIfs=i.map(e=>({condition:e.condition,body:c(e.tokens)})),r.elseBody=c(a),{node:r,nextIndex:s+1}}function o(e,t){const r=e[t],s={type:\"for\",key:r.key||null,item:r.item,collection:r.collection,reverse:Boolean(r.reverse),body:[],elseBody:[]};let n=t+1,o=0,i=!1;for(;n<e.length;){const t=e[n];if(\"for\"===t.type&&o++,\"endfor\"===t.type){if(o>0){o--,i?s.elseBody.push(t):s.body.push(t),n++;continue}return{node:s,nextIndex:n+1}}if(o>0)i?s.elseBody.push(t):s.body.push(t),n++;else if(\"foreachelse\"!==t.type)[\"break\",\"continue\"].includes(t.type),i?s.elseBody.push(t):s.body.push(t),n++;else{if(0===o){i=!0,n++;continue}s.body.push(t),n++}}throw new Error(\"Unclosed for loop: expected {/for}\")}function i(e,t){const r={type:\"switch\",value:e[t].value,cases:[],defaultBody:[]};let s=t+1,n=0,o=null,i=!1;for(;s<e.length;){const t=e[s];if(\"switch\"===t.type&&n++,\"endswitch\"===t.type){if(n>0){n--,o&&o.body.push(t),s++;continue}return{node:r,nextIndex:s+1}}if(n>0)o&&o.body.push(t),s++;else if(\"case\"!==t.type)if(\"default\"!==t.type)o?o.body.push(t):i?r.defaultBody.push(t):r.cases.length>0&&r.cases[r.cases.length-1].body.push(t),s++;else{if(i)throw new Error(\"Duplicate {default} in switch\");i=!0,o=null,s++}else o={value:t.value,body:[]},r.cases.push(o),s++}throw new Error(\"Unclosed switch: expected {/switch}\")}function c(e){const t=[];let r=0;for(;r<e.length;){const s=e[r];if(\"block_open\"===s.type){const n=s.name;r++;const o=[];let i=0;for(;r<e.length;){const t=e[r];if(\"block_open\"===t.type&&i++,\"block_close\"===t.type){if(0===i)break;i--}o.push(t),r++}const a=c(o);t.push({type:\"block\",name:n,body:a}),r++;continue}if(\"extends\"!==s.type)if(\"include\"!==s.type)if([\"set\",\"var\",\"add\"].includes(s.type))t.push({...s}),r++;else{if(\"if\"===s.type){const{node:s,nextIndex:o}=n(e,r);t.push(s),r=o;continue}if(\"for\"===s.type||\"foreach\"===s.type){const{node:s,nextIndex:n}=o(e,r);t.push(s),r=n;continue}if(\"switch\"===s.type){const{node:s,nextIndex:n}=i(e,r);t.push(s),r=n;continue}if(\"output\"===s.type){const e=s.value.match(/^\\{\\$(.+)\\}$/);if(!e){t.push({type:\"text\",value:s.value}),r++;continue}const n=e[1].trim().split(\"|\"),o=n[0],i=n.slice(1);t.push({type:\"output\",name:`$${o}`,filters:i}),r++;continue}[\"elseif\",\"else\",\"endif\",\"endfor\",\"endforeach\",\"endswitch\"].includes(s.type)||t.push({...s}),r++}else t.push({...s}),r++;else t.push({...s}),r++}return t}function a(e){if(\"true\"===(e=e.trim()))return!0;if(\"false\"===e)return!1;if(\"null\"===e)return null;if(\"undefined\"!==e){if(!isNaN(+e)&&!e.includes(\" \"))return+e;if(/^[\"'](.*)[\"']$/.test(e))return e.slice(1,-1);if(e.startsWith(\"[\")&&e.endsWith(\"]\"))try{return e.slice(1,-1).split(\",\").map(e=>e.trim()).map(a)}catch{}if(e.startsWith(\"{\")&&e.endsWith(\"}\"))try{return JSON.parse(e.replace(/(\\w+):/g,'\"$1\":').replace(/'/g,'\"'))}catch{}return e}}function l(e,t,r){return(...s)=>{const n=s[0];let o=!1;switch(t){case\"array\":o=Array.isArray(n);break;case\"string\":o=\"string\"==typeof n;break;case\"object\":o=n&&\"object\"==typeof n&&!Array.isArray(n)}return o||console.warn(`[Fenom] filter '${e}' should be used with ${t}, but got ${typeof n}`),r(...s)}}function u(e,t){const r=e.split(\".\").map(e=>e.trim());let s=t;for(const n of r){if(null==s||\"object\"!=typeof s)return;s=s[n]}return s}function p(e,t,r,s){let n=e;for(const i of t){const[e,...t]=i.split(\":\").map(e=>e.trim()),c=s[e];if(\"function\"==typeof c){const e=t.map(e=>/^[\"'].*[\"']$/.test(e)?e.slice(1,-1):isNaN(+e)?e.startsWith(\"$\")?u(e.slice(1),r)??\"\":e:+e);try{n=c(n,...e)}catch(o){n=\"\"}}}return n}function f(e){const t=function(e){const t=[],r=/(\\s+|[$a-zA-Z_]\\w*(?:\\.\\w+)*|\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*'|\\d+(?:\\.\\d+)?|[-+*/%<>=!&|?:(){}[\\]~]+|[\\w-]+:)/g;let s;const n=e=>[\"+\",\"-\",\"*\",\"/\",\"%\",\"==\",\"!=\",\"<\",\"<=\",\">\",\">=\",\"&&\",\"||\",\"!\",\"(\",\")\",\"?\",\":\",\"~\"].includes(e);for(;null!==(s=r.exec(e));){const e=s[0].trim();if(e)if(n(e))t.push({type:\"op\",value:e});else if(\"|\"===e)t.push({type:\"filter\",value:e});else if(e.startsWith(\"$\"))t.push({type:\"var\",value:e});else if(/^[\"']/.test(e)){const r=e.slice(1,-1).replace(/\\\\(.)/g,\"$1\");t.push({type:\"str\",value:r})}else isNaN(+e)?t.push({type:\"str\",value:e}):t.push({type:\"num\",value:e})}return t}(e);let r=0;function s(){const e=o(()=>o(()=>o(()=>o(()=>o(()=>n(),[\"*\",\"/\",\"%\"]),[\"+\",\"-\",\"~\"]),[\"<\",\"<=\",\">\",\">=\"]),[\"==\",\"!=\"]),[\"||\",\"&&\"]);if(r<t.length&&\"?\"===t[r].value){r++;const n=s();r<t.length&&\":\"===t[r].value&&r++;return{type:\"conditional\",test:e,consequent:n,alternate:s()}}return e}function n(){if(r<t.length&&[\"!\",\"+\",\"-\"].includes(t[r].value)){const e=t[r].value;return r++,{type:\"unary\",operator:e,argument:n()}}return function(){const e=t[r];if(!e)throw new Error(\"Unexpected end of expression\");if(\"num\"===e.type)return r++,{type:\"literal\",value:+e.value};if(\"str\"===e.type)return r++,{type:\"literal\",value:e.value};if(\"var\"===e.type)return r++,{type:\"variable\",path:e.value.slice(1)};if(\"(\"===e.value){r++;const e=s();if(r>=t.length||\")\"!==t[r].value)throw new Error(\"Expected )\");return r++,e}throw new Error(`Unexpected token: ${e.value}`)}()}function o(e,s){let n=e();for(;r<t.length&&s.includes(t[r].value);){const s=t[r].value;r++;n={type:\"binary\",operator:s,left:n,right:e()}}return n}return s()}function y(e,t,r){switch(e.type){case\"literal\":return e.value;case\"variable\":return u(e.path,t)??\"\";case\"unary\":const s=y(e.argument,t,r);switch(e.operator){case\"!\":return!s;case\"+\":return+s;case\"-\":return-s}break;case\"binary\":{const s=y(e.left,t,r),n=y(e.right,t,r);switch(e.operator){case\"+\":return s+n;case\"-\":return s-n;case\"*\":return s*n;case\"/\":return s/n;case\"%\":return s%n;case\"==\":return s==n;case\"!=\":return s!=n;case\"<\":return s<n;case\"<=\":return s<=n;case\">\":return s>n;case\">=\":return s>=n;case\"&&\":return s&&n;case\"||\":return s||n;case\"~\":return String(s)+String(n)}break}case\"conditional\":const n=y(e.test,t,r);return y(n?e.consequent:e.alternate,t,r);case\"filter\":{const s=y(e.expression,t,r),n=e.args.map(e=>y(e,t,r)),o=r[e.filter];return\"function\"==typeof o?o(s,...n):s}}return\"\"}function d(e,t,r,s){var n,o,i,c,l,g;switch(e.type){case\"ignore_block\":t(e.content||\"\");break;case\"comment\":case\"extends\":case\"include\":break;case\"text\":t(e.value);break;case\"output\":if(/[+\\-*/%<>!=&|?:]/.test(e.name))try{let n=y(f(e.name),r,s);n=p(n,e.filters,r,s),t(String(n))}catch(h){console.warn(`Eval error: ${e.name}`,h),t(\"\")}else{let n=u((g=e.name).startsWith(\"$\")?g.slice(1):g,r)??\"\";n=p(n,e.filters,r,s),t(String(n))}break;case\"set\":{const{variable:t,value:n}=e;if(/[+\\-*/%~]/.test(n))try{const e=f(n);r[t]=y(e,r,s)}catch(h){r[t]=\"\"}else if(n.startsWith(\"$\")){const e=n.slice(1);r[t]=u(e,r)??\"\"}else r[t]=a(n);break}case\"var\":void 0===r[e.variable]&&(r[e.variable]=a(e.value));break;case\"add\":r[e.variable]=(r[e.variable]||0)+1;break;case\"if\":{let c=!1;try{c=!!y(f(e.condition),r,s)}catch(h){console.warn(`Condition error: ${e.condition}`,h),c=!1}if(c)for(const n of e.body)d(n,t,r,s);else if(null==(n=e.elseIfs)?void 0:n.length){let n=!1;for(const o of e.elseIfs){let e=!1;try{e=!!y(f(o.condition),r,s)}catch(h){console.warn(`Condition error: ${o.condition}`,h),e=!1}if(e){for(const e of o.body)d(e,t,r,s);n=!0;break}}if(!n&&(null==(o=e.elseBody)?void 0:o.length))for(const o of e.elseBody)d(o,t,r,s)}else if(null==(i=e.elseBody)?void 0:i.length)for(const n of e.elseBody)d(n,t,r,s);break}case\"for\":{const n=u(e.collection.slice(1),r);if(Array.isArray(n)&&n.length>0){const o=e.reverse??!1?[...n].reverse().keys():n.keys();for(const i of o){const o=n[i];r[e.item]=o,e.key&&(r[e.key]=i);for(const n of e.body)d(n,t,r,s)}}else if(null==(c=e.elseBody)?void 0:c.length)for(const o of e.elseBody)d(o,t,r,s);break}case\"switch\":{const n=r[e.value.slice(1)];let o=!1;for(const i of e.cases)if(i.value===n){for(const e of i.body)d(e,t,r,s);o=!0;break}if(!o&&(null==(l=e.defaultBody)?void 0:l.length))for(const i of e.defaultBody)d(i,t,r,s);break}case\"operator\":{const{variable:s,operator:n,value:o}=e,i=u(s,r),c=\"number\"==typeof i?i:+i||0;let a,l;if(/^[\\d.]+$/.test(o))a=parseFloat(o);else{const e=u(o,r);a=\"number\"==typeof e?e:+e||0}switch(n){case\"++\":l=c,r[s]=c+1;break;case\"--\":l=c,r[s]=c-1;break;case\"+=\":l=c,r[s]=c+a;break;case\"-=\":l=c,r[s]=c-a;break;case\"*=\":l=c,r[s]=c*a;break;case\"/=\":l=c,r[s]=c/a;break;case\"%=\":l=c,r[s]=c%a;break;default:console.warn(`Unknown operator: ${n}`),l=0}t(String(l));break}case\"block\":t(`{block \"${e.name}\"}`);break;default:console.warn(`Unknown node type: ${e.type}`)}}function g(e,t){const r={};let n=null;for(const s of e)\"extends\"===s.type?n=s.file:\"block\"===s.type&&(r[s.name]=s.body);return n?async function(e,o){try{const i=await t(n),a=c(s(i)),l={};for(const e of a)\"block\"===e.type&&(l[e.name]=e.body);const u={...l,...r},p={};e.block=async r=>{if(void 0!==p[r])return p[r];const n=u[r];if(!n)return p[r]=\"\",\"\";let i=\"\";const a={...e};for(const e of n)if(\"include\"===e.type)try{const r=await t(e.file),n=c(s(r)),l={...a};if(e.params)for(const[t,s]of Object.entries(e.params))\"string\"==typeof s&&s.startsWith(\"$\")?l[t]=a[s.slice(1)]:l[t]=s;for(const e of n)d(e,e=>i+=e,l,o)}catch{i+=`[Include error: ${e.file}]`}else d(e,e=>i+=e,a,o);return p[r]=i,i};let f=\"\";for(const r of a)if(\"block\"===r.type)f+=await e.block(r.name);else if(\"include\"===r.type)try{const n=await t(r.file),i=c(s(n)),a={...e};if(r.params)for(const[t,s]of Object.entries(r.params))\"string\"==typeof s&&s.startsWith(\"$\")?a[t]=e[s.slice(1)]:a[t]=s;for(const e of i)d(e,e=>f+=e,a,o)}catch{f+=`[Include error: ${r.file}]`}else d(r,e=>f+=e,e,o);return f}catch(i){return`[Render error: ${i.message}]`}}:async function(r,n){let o=\"\";for(const i of e)if(\"include\"===i.type)try{const e=await t(i.file),a=c(s(e)),l={...r};if(i.params)for(const[t,s]of Object.entries(i.params))\"string\"==typeof s&&s.startsWith(\"$\")?l[t]=r[s.slice(1)]:l[t]=s;for(const t of a)d(t,e=>o+=e,l,n)}catch{o+=`[Include error: ${i.file}]`}else d(i,e=>o+=e,r,n);return o}}function h(r){return async function(s){const n=e.join(r,s);if(!n.endsWith(\".tpl\"))throw new Error(`Template path must end with .tpl: ${s}`);try{return await t.readFile(n,\"utf-8\")}catch(o){if(\"ENOENT\"===o.code)throw new Error(`Template not found: ${n}`);throw o}}}const b={upper:e=>String(e).toUpperCase(),lower:e=>String(e).toLowerCase(),capitalize:e=>{const t=String(e).trim();return 0===t.length?\"\":t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()},ucfirst:e=>b.capitalize(e),ucwords:e=>String(e).trim().replace(/\\b\\w/g,e=>e.toUpperCase()),lcfirst:e=>{const t=String(e).trim();return 0===t.length?\"\":t.charAt(0).toLowerCase()+t.slice(1)},trim:e=>String(e).trim(),ltrim:e=>String(e).replace(/^\\s+/,\"\"),rtrim:e=>String(e).replace(/\\s+$/,\"\"),nl2br:e=>String(e).replace(/\\n/g,\"<br>\"),replace:(e,t,r)=>String(e).split(String(t)).join(String(r)),substr:l(\"substr\",\"string\",(e,t,r)=>{const s=String(e);return void 0===r?s.slice(t):s.slice(t,t+r)}),urlencode:e=>encodeURIComponent(String(e)),urldecode:e=>decodeURIComponent(String(e)),escape:l(\"escape\",\"string\",e=>String(e).replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\").replace(/\"/g,\"&quot;\").replace(/'/g,\"&#039;\")),e:e=>b.escape(e),first:l(\"first\",\"array\",e=>Array.isArray(e)?e[0]:e&&\"object\"==typeof e?Object.values(e)[0]:\"\"),last:l(\"last\",\"array\",e=>{if(Array.isArray(e))return e[e.length-1];if(e&&\"object\"==typeof e){const t=Object.values(e);return t[t.length-1]}return\"\"}),join:l(\"join\",\"array\",(e,t=\",\")=>Array.isArray(e)?e.join(t):e&&\"object\"==typeof e?Object.values(e).join(t):String(e)),reverse:l(\"reverse\",\"array\",e=>Array.isArray(e)?[...e].reverse():e),sort:l(\"sort\",\"array\",e=>Array.isArray(e)?[...e].sort():e),ksort:l(\"ksort\",\"object\",e=>{if(e&&\"object\"==typeof e){const t={};return Object.keys(e).sort().forEach(r=>{t[r]=e[r]}),t}return e}),unique:l(\"unique\",\"array\",e=>Array.isArray(e)?[...new Set(e)]:e),shuffle:l(\"shuffle\",\"array\",e=>{if(!Array.isArray(e))return e;const t=[...e];for(let r=t.length-1;r>0;r--){const e=Math.floor(Math.random()*(r+1));[t[r],t[e]]=[t[e],t[r]]}return t}),slice:(e,t,r)=>Array.isArray(e)||\"string\"==typeof e?void 0===r?e.slice(t):e.slice(t,t+r):e,merge:(e,t)=>Array.isArray(e)&&Array.isArray(t)?[...e,...t]:e,batch:(e,t)=>{if(!Array.isArray(e))return e;const r=[];for(let s=0;s<e.length;s+=t)r.push(e.slice(s,s+t));return r},keys:e=>e&&\"object\"==typeof e?Object.keys(e):[],values:e=>e&&\"object\"==typeof e?Object.values(e):[],length:e=>Array.isArray(e)?e.length:e&&\"object\"==typeof e?Object.keys(e).length:String(e).length,number_format:(e,t=0,r=\".\",s=\",\")=>{const n=Number(e);return isNaN(n)?\"\":n.toLocaleString(\"en-US\",{minimumFractionDigits:t,maximumFractionDigits:t,useGrouping:!0}).replace(/,/g,s).replace(/\\./g,r)},abs:e=>Math.abs(Number(e)||0),round:(e,t=0)=>{const r=10**t;return Math.round((Number(e)||0)*r)/r},json_encode:e=>JSON.stringify(e),json_decode:e=>{try{return JSON.parse(String(e))}catch{return null}},date:(e,t=\"d.m.Y\")=>{const r=Number(e),s=new Date(isNaN(r)?e:1e3*r);if(isNaN(s.getTime()))return console.warn(`[Fenom] filter 'date' received invalid timestamp: ${e}`),\"\";const n=e=>e.toString().padStart(2,\"0\");return t.replace(/d/g,n(s.getDate())).replace(/m/g,n(s.getMonth()+1)).replace(/Y/g,s.getFullYear().toString()).replace(/H/g,n(s.getHours())).replace(/i/g,n(s.getMinutes())).replace(/s/g,n(s.getSeconds()))},default:(e,t)=>null==e||\"\"===e||\"object\"==typeof e&&0===Object.keys(e).length?t:e,raw:e=>e,var_dump:e=>`<pre>${JSON.stringify(e,null,2)}</pre>`,print_r:e=>`<pre>${e instanceof Object?JSON.stringify(e,null,2):String(e)}</pre>`};exports.FenomJs=async function(e,t={},r){const{root:n=\"./src/\",loader:o,minify:i=!1}=r||{},a=o||h(n);try{const r=s(e),n=g(c(r),a),o=await n(t,b);return i?function(e){return e.replace(/>\\s+</g,\"><\").replace(/\\s{2,}/g,\" \").replace(/(<!--.*?-->)\\s+/g,\"$1\").trim()}(o):o}catch(l){return console.error(\"Template error:\",l),`<span style='color:red'>[Ошибка шаблона: ${l.message}]</span>`}},exports.compile=g,exports.createAsyncLoader=h,exports.parse=c,exports.tokenize=s;\r\n","import type { Plugin, ResolvedConfig } from 'vite';\r\nimport { join, relative, resolve, dirname, basename } from 'path';\r\nimport * as fs from 'fs/promises';\r\n\r\nimport { FenomJs, createAsyncLoader } from 'fenom-js';\r\nimport type { TemplateLoader } from 'fenom-js';\r\n\r\n// === Опции плагина ===\r\nexport interface FenomPluginOptions {\r\n pages?: string;\r\n data?: string;\r\n root?: string;\r\n minifyHtml?: boolean,\r\n debug?: boolean;\r\n}\r\n\r\n/**\r\n * Vite-плагин для рендеринга .tpl шаблонов через fenom-js\r\n */\r\nexport default function fenomPlugin(options: FenomPluginOptions = {}): Plugin {\r\n const {\r\n pages = 'src/pages',\r\n data = 'src/data/**/*.json',\r\n root = 'src',\r\n minifyHtml = true,\r\n debug = false,\r\n } = options;\r\n\r\n let config: ResolvedConfig;\r\n let templateLoader: TemplateLoader;\r\n\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Plugin initialized', { pages, data, root });\r\n\r\n return {\r\n name: 'vite-plugin-fenom',\r\n\r\n configResolved(resolvedConfig) {\r\n config = resolvedConfig;\r\n\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Config resolved', {\r\n mode: config.mode,\r\n command: config.command,\r\n root: config.root,\r\n });\r\n },\r\n\r\n configureServer(server) {\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Dev server setup started...');\r\n\r\n // Создаём загрузчик шаблонов\r\n templateLoader = createAsyncLoader(root);\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Template loader created for root:', root);\r\n\r\n // Наблюдаем за .tpl файлами\r\n server.watcher.on('change', (filePath) => {\r\n if (filePath.endsWith('.tpl')) {\r\n if (debug) console.log('[Fenom Plugin] 🔄 Full reload triggered:', filePath);\r\n server.ws.send({ type: 'full-reload' });\r\n }\r\n });\r\n\r\n // Обработчик запросов\r\n const handlePageRequest = async (req: any, res: any, next: () => void) => {\r\n const url = req.url;\r\n\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Incoming request:', url);\r\n\r\n // Пропускаем статику, API, системные пути\r\n if (\r\n !url ||\r\n url.startsWith('/assets/') ||\r\n url.startsWith('/@') ||\r\n url.startsWith('/src/') ||\r\n url.startsWith('/node_modules/') ||\r\n url.startsWith('/favicon.ico') ||\r\n (url.includes('.') && !url.endsWith('/')) ||\r\n (url.includes('?') && url.includes('.'))\r\n ) {\r\n return next();\r\n }\r\n\r\n // Определяем имя страницы\r\n let pageName = 'index';\r\n\r\n if (url !== '/') {\r\n pageName = url.split('?')[0].split('#')[0].replace(/^\\/|\\/$/g, '');\r\n }\r\n\r\n const templatePath = join(pages, `${pageName}.tpl`);\r\n const relativePath = relative(root, templatePath);\r\n\r\n try {\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Rendering page:', { pageName, templatePath });\r\n\r\n const source = await templateLoader(relativePath);\r\n\r\n const context = {\r\n title: `${pageName.charAt(0).toUpperCase() + pageName.slice(1)} Page`,\r\n debug,\r\n url,\r\n };\r\n\r\n // Рендерим через FenomJs\r\n let html = await FenomJs(source, context, {\r\n loader: templateLoader,\r\n root,\r\n minify: minifyHtml,\r\n });\r\n\r\n if (config.mode === 'development') {\r\n const hmrScript = `\r\n <script type=\"module\">\r\n import \"/@vite/client\";\r\n </script>`;\r\n\r\n if (html.includes('</head>')) {\r\n html = html.replace('</head>', hmrScript + '\\n</head>');\r\n } else if (html.includes('<body>')) {\r\n html = html.replace('<body>', '<body>\\n' + hmrScript);\r\n } else {\r\n html = hmrScript + html;\r\n }\r\n }\r\n\r\n // Отправляем ответ\r\n res.statusCode = 200;\r\n res.setHeader('Content-Type', 'text/html; charset=utf-8');\r\n res.end(html);\r\n\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Page sent:', url);\r\n } catch (err: any) {\r\n if (err.message.includes('Template not found')) {\r\n return next();\r\n }\r\n\r\n console.error('\\x1b[36m[Fenom Plugin]\\x1b[0m Rendering error:', err.message);\r\n console.error(err);\r\n\r\n res.statusCode = 500;\r\n res.setHeader('Content-Type', 'text/html; charset=utf-8');\r\n res.end(`\r\n <h1>🔧 Ошибка рендеринга</h1>\r\n <p><strong>${err.message}</strong></p>\r\n <pre>${err.stack}</pre>\r\n `);\r\n }\r\n };\r\n\r\n // Вставляем middleware в начало стека\r\n server.middlewares.stack.unshift({\r\n route: '',\r\n handle: handlePageRequest,\r\n });\r\n\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Middleware inserted at top of stack');\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Watching .tpl files for HMR');\r\n },\r\n\r\n async buildStart() {\r\n if (config.command !== 'build') return;\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Build started');\r\n },\r\n\r\n async generateBundle(_options, bundle) {\r\n if (config.command !== 'build') return;\r\n\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Generating HTML files...');\r\n\r\n const { default: fastGlob } = await import('fast-glob');\r\n templateLoader = createAsyncLoader(root);\r\n\r\n const searchPath = resolve(config.root, pages);\r\n const pattern = join(searchPath, '**/*.tpl').replace(/\\\\/g, '/');\r\n\r\n try {\r\n const files = await fastGlob(pattern);\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Found templates:', files);\r\n\r\n // === Собираем входы ===\r\n const inputEntries = config.build.rollupOptions.input;\r\n let inputFiles: string[] = [];\r\n\r\n if (Array.isArray(inputEntries)) {\r\n inputFiles = inputEntries;\r\n } else if (typeof inputEntries === 'object' && inputEntries !== null) {\r\n inputFiles = Object.values(inputEntries);\r\n } else if (typeof inputEntries === 'string') {\r\n inputFiles = [inputEntries];\r\n }\r\n\r\n if (debug) {\r\n console.log('inputFiles:', inputFiles);\r\n }\r\n\r\n // === Находим настоящие ассеты по расширению ===\r\n let jsChunk = '';\r\n const cssAssets: string[] = [];\r\n\r\n for (const [fileName, file] of Object.entries(bundle)) {\r\n if (file.type === 'chunk' && /\\.(js|ts)$/.test(fileName)) {\r\n jsChunk = `/${fileName}`;\r\n }\r\n if (file.type === 'asset' && fileName.endsWith('.css')) {\r\n cssAssets.push(`/${fileName}`);\r\n }\r\n }\r\n\r\n // === Создаём карту замен ===\r\n const replacementMap = new Map<string, string>();\r\n\r\n for (const input of inputFiles) {\r\n if (/\\.(ts|js)$/.test(input) && jsChunk) {\r\n replacementMap.set(input, jsChunk);\r\n }\r\n if (/\\.css$/.test(input) && cssAssets.length > 0) {\r\n // Берём первый CSS (или можно выбрать по имени)\r\n replacementMap.set(input, cssAssets[0]);\r\n }\r\n }\r\n\r\n if (debug) {\r\n console.log('JS chunk found:', jsChunk);\r\n console.log('CSS assets found:', cssAssets);\r\n console.log('replacementMap:', Object.fromEntries(replacementMap));\r\n }\r\n\r\n // === Генерируем HTML ===\r\n for (const file of files) {\r\n const fileName = basename(file, '.tpl');\r\n const outputFileName = fileName === 'index' ? 'index.html' : `${fileName}.html`;\r\n\r\n try {\r\n const source = await fs.readFile(file, 'utf-8');\r\n\r\n const jsonDataPath = file.replace(/\\.tpl$/, '.json');\r\n let extraContext = {};\r\n try {\r\n const data = await fs.readFile(jsonDataPath, 'utf-8');\r\n extraContext = JSON.parse(data);\r\n } catch { }\r\n\r\n const context = {\r\n title: `${fileName.charAt(0).toUpperCase() + fileName.slice(1)} Page`,\r\n debug: false,\r\n url: '/' + (fileName === 'index' ? '' : fileName),\r\n ...extraContext,\r\n };\r\n\r\n let html = await FenomJs(source, context, {\r\n loader: templateLoader,\r\n root,\r\n minify: minifyHtml,\r\n });\r\n\r\n // === Замена путей ===\r\n for (const [devPath, prodPath] of replacementMap) {\r\n const fullDevPath = '/' + devPath;\r\n const escaped = fullDevPath.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\r\n\r\n // <script src=\"...\">\r\n const scriptRegex = new RegExp(\r\n `<script[^>]+src=[\"']${escaped}[\"'][^>]*>`,\r\n 'gi'\r\n );\r\n if (scriptRegex.test(html)) {\r\n html = html.replace(\r\n scriptRegex,\r\n `<script type=\"module\" src=\"${prodPath}\"></script>`\r\n );\r\n if (debug) {\r\n console.log(`[Fenom Plugin] Replaced script: ${fullDevPath} → ${prodPath}`);\r\n }\r\n }\r\n\r\n // <link href=\"...\">\r\n const linkRegex = new RegExp(\r\n `<link[^>]+href=[\"']${escaped}[\"'][^>]*>`,\r\n 'gi'\r\n );\r\n\r\n if (linkRegex.test(html)) {\r\n html = html.replace(\r\n linkRegex,\r\n `<link rel=\"stylesheet\" href=\"${prodPath}\">`\r\n );\r\n\r\n if (debug) {\r\n console.log(`[Fenom Plugin] Replaced link: ${fullDevPath} → ${prodPath}`);\r\n }\r\n }\r\n }\r\n\r\n this.emitFile({\r\n type: 'asset',\r\n fileName: outputFileName,\r\n source: html,\r\n });\r\n\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Generated:', outputFileName);\r\n } catch (err) {\r\n console.error('\\x1b[31m[Fenom Plugin]\\x1b[0m Error rendering:', file);\r\n }\r\n }\r\n } catch (err) {\r\n console.error('\\x1b[31m[Fenom Plugin]\\x1b[0m glob error:', err);\r\n }\r\n },\r\n };\r\n}\r\n"],"names":["exports","require$$1","createAsyncLoader","join","relative","FenomJs","resolve","basename","fs"],"mappings":"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"}
1
+ {"version":3,"file":"vite-plugin-fenom.cjs","sources":["../fenom-js/index.cjs","../src/src/vite-plugin-fenom/vite-plugin-fenom.ts"],"sourcesContent":["\"use strict\";Object.defineProperty(exports,Symbol.toStringTag,{value:\"Module\"});const e=require(\"path\"),t=require(\"fs/promises\"),r=[...[{type:\"extends\",regex:/^\\{extends\\s+['\"]file:([^'\"]+)['\"]\\s*\\}/,process:e=>({file:e[1]})},{type:\"block_open\",regex:/^\\{block\\s+(['\"])(.*?)\\1\\s*\\}/,process:e=>({name:e[2]})},{type:\"block_close\",regex:/^\\{\\/block\\}/},{type:\"parent\",regex:/^\\{parent\\}/},{type:\"paste\",regex:/^\\{paste\\s+(['\"])(.*?)\\1\\}/,process:e=>({name:e[2]})},{type:\"use\",regex:/^\\{use\\s+(['\"])(.*?)\\1\\}/,process:e=>({file:e[2]})}],{type:\"include\",regex:/^\\{include\\s+['\"]file:([^'\"]+)['\"](?:\\s+((?:\\s*\\w+\\s*=\\s*(?:\"[^\"]*\"|'[^']*'|[^\\s}]+))+))?\\s*\\}/,process:e=>{const t=e[1],r=e[2],s={};if(r){const e=/(\\w+)\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)'|([^\\s}]+))/g;let t;for(;null!==(t=e.exec(r));){const e=t[1],r=t[2]||t[3]||t[4]||\"\";s[e]=r}}return{file:t,params:s}}},{type:\"for\",regex:/^\\{(for|foreach)\\s*\\$(\\w+(?:\\.\\w+)?)\\s+as\\s*\\$(\\w+)(?:\\s*\\|\\s*reverse)?\\s*\\}/,process:e=>({collection:`$${e[2]}`,item:e[3],key:null,reverse:e[0].includes(\"| reverse\")})},{type:\"for\",regex:/^\\{(for|foreach)\\s*\\$(\\w+(?:\\.\\w+)?)\\s+as\\s*\\$(\\w+)\\s*=>\\s*\\$(\\w+)(?:\\s*\\|\\s*reverse)?\\s*\\}/,process:e=>({collection:`$${e[2]}`,key:e[3],item:e[4],reverse:e[0].includes(\"| reverse\")})},{type:\"endfor\",regex:/^\\{\\/(?:for|foreach)\\}/},{type:\"break\",regex:/^\\{break\\}/i},{type:\"continue\",regex:/^\\{continue\\}/i},...[{type:\"switch\",regex:/^\\{switch\\s+(.+?)\\}/,process:e=>({value:e[1].trim()})},{type:\"case\",regex:/^\\{case\\s+(.+?)\\}/,process:e=>({value:e[1].trim()})},{type:\"default\",regex:/^\\{default\\}/},{type:\"endswitch\",regex:/^\\{\\/switch\\}/}],{type:\"operator\",regex:/^\\{\\$(\\w+)\\s*(\\+\\+|--|\\+=|-=|\\*=|\\/=|\\%=)\\s*([^}]+)?\\}/,process:e=>{var t;return{variable:e[1],operator:e[2],value:(null==(t=e[3])?void 0:t.trim())||\"1\"}}},...[{type:\"if\",regex:/^\\{if\\s+(.+?)\\}/,process:e=>({condition:e[1].trim()})},{type:\"elseif\",regex:/^\\{elseif\\s+(.+?)\\}/,process:e=>({condition:e[1].trim()})},{type:\"else\",regex:/^\\{else\\}/},{type:\"endif\",regex:/^\\{\\/if\\}/}],{type:\"ignore_block\",regex:/^\\{ignore\\}([\\s\\S]*?)\\{\\/ignore\\}/,process:e=>({content:e[1]})},...[{type:\"set\",regex:/^\\{set\\s+\\$(\\w+)\\s*=\\s*(\\{[^}]*\\}|\\[[^}]*\\])\\}/,process:e=>({variable:e[1],value:e[2]})},{type:\"set\",regex:/^\\{set\\s+\\$(\\w+)\\s*=\\s*(['\"])(.*?)\\2\\}/,process:e=>({variable:e[1],value:e[3]})},{type:\"set\",regex:/^\\{set\\s+\\$(\\w+)\\s*=\\s*([^}\\s][^}]*)\\}/,process:e=>({variable:e[1],value:e[2].trim()})},{type:\"add\",regex:/^\\{add\\s+\\$(\\w+)\\s*\\+\\+\\}/,process:e=>({variable:e[1]})},{type:\"var\",regex:/^\\{var\\s+\\$(\\w+)\\s*=\\s*(['\"])(.*?)\\2\\}/,process:e=>({variable:e[1],value:e[3]})}],...[{type:\"unset\",regex:/^\\{unset\\s+\\$(\\w+)\\}/,process:e=>({variable:e[1]})},{type:\"comment\",regex:/^\\{\\*\\s*([\\s\\S]*?)\\s*\\*\\}/}],...[{type:\"cycle\",regex:/^\\{cycle\\s+(.+?)\\}/,process:e=>({values:e[1]})}],...[{type:\"filter\",regex:/^\\{filter\\s+(.+?)\\}/,process:e=>({filter:e[1].trim()})},{type:\"endfilter\",regex:/^\\{\\/filter\\}/},{type:\"raw\",regex:/^\\{raw\\}/},{type:\"endraw\",regex:/^\\{\\/raw\\}/},{type:\"autoescape\",regex:/^\\{autoescape\\}/},{type:\"endautoescape\",regex:/^\\{\\/autoescape\\}/}],...[{type:\"macro\",regex:/^\\{macro\\s+(\\w+)(?:\\s*\\((.*?)\\))?\\}/,process(e){const t=e[2]?e[2].split(\",\").map(e=>e.trim()):[];return{name:e[1],args:t}}},{type:\"endmacro\",regex:/^\\{\\/macro\\}/},{type:\"import\",regex:/^\\{import\\s+(['\"])(.*?)\\1\\s+as\\s+(\\w+)\\}/,process:e=>({file:e[2],alias:e[3]})}],{type:\"output\",regex:/^\\{output\\s+name\\s*=\\s*(['\"])(.*?)\\1\\s*\\}/,process:e=>({name:e[2],filters:[]})},{type:\"output\",regex:/^\\{output\\s+(['\"])(.*?)\\1\\s*\\}/,process:e=>({name:e[2],filters:[]})},{type:\"output\",regex:/^\\{output\\s+([^\\s}]+)\\s*\\}/,process:e=>({name:e[1],filters:[]})},{type:\"output\",regex:/^\\{output\\s+(\\$?[^}]+)\\}/,process:e=>({name:e[1].trim(),filters:[]})},{type:\"output\",regex:/^\\{\\$(.+?)\\}/,process:e=>{const t=e[1].trim().split(\"|\").map(e=>e.trim());return{name:`$${t[0]}`,filters:t.slice(1)}}},{type:\"output\",regex:/^\\{([^$].+?)\\}/,process:e=>({name:e[1].trim(),filters:[]})}];function s(e){const t=[];let s=0;for(;s<e.length;){let n=!1;if(e.slice(s).startsWith(\"{ignore}\")){let r=1,o=s+8;for(;o<e.length;)if(e.length-o>=8&&e.startsWith(\"{ignore}\",o))r++,o+=8;else if(e.length-o>=9&&e.startsWith(\"{/ignore}\",o)){if(r--,o+=9,0===r){const r=e.slice(s+8,o-9);t.push({type:\"text\",value:r}),s=o,n=!0;break}}else o++;n||(t.push({type:\"text\",value:\"{ignore}\"}),s+=8);continue}if(\"{\"!==e[s]){const r=e.indexOf(\"{\",s);if(-1===r){t.push({type:\"text\",value:e.slice(s)});break}r>s&&t.push({type:\"text\",value:e.slice(s,r)}),s=r}for(const o of r){const r=e.slice(s).match(o.regex);if(r){const e={type:o.type,value:r[0]};if(\"comment\"===o.type){s+=r[0].length,n=!0;break}o.process&&Object.assign(e,o.process(r)),t.push(e),s+=r[0].length,n=!0;break}}if(!n){const t=e.slice(s,s+30).replace(/\\n/g,\"↵\");console.warn(`Skip unknown tag at ${s}: \"${t}\"`),s++}}return t}function n(e,t){const r={type:\"if\",condition:e[t].condition,body:[],elseIfs:[],elseBody:[]};let s=t+1,n=0;const o=[],i=[],a=[];let l=null,u=!1;for(;s<e.length;){const t=e[s];if(\"if\"===t.type&&n++,\"endif\"===t.type){if(0===n)break;n--}if(n>0)l||u?l?l.tokens.push(t):u&&a.push(t):o.push(t),s++;else if(\"elseif\"!==t.type)if(\"else\"!==t.type){if(\"endif\"===t.type)break;l||u?l?l.tokens.push(t):u&&a.push(t):o.push(t),s++}else l=null,u=!0,s++;else l||u?l?l.tokens.push(t):u&&a.push(t):(l={condition:t.condition,tokens:[]},i.push(l)),s++}return r.body=c(o),r.elseIfs=i.map(e=>({condition:e.condition,body:c(e.tokens)})),r.elseBody=c(a),{node:r,nextIndex:s+1}}function o(e,t){const r=e[t],s={type:\"for\",key:r.key||null,item:r.item,collection:r.collection,reverse:Boolean(r.reverse),body:[],elseBody:[]};let n=t+1,o=0,i=!1;for(;n<e.length;){const t=e[n];if(\"for\"===t.type&&o++,\"endfor\"===t.type){if(o>0){o--,i?s.elseBody.push(t):s.body.push(t),n++;continue}return{node:s,nextIndex:n+1}}if(o>0)i?s.elseBody.push(t):s.body.push(t),n++;else if(\"foreachelse\"!==t.type)[\"break\",\"continue\"].includes(t.type),i?s.elseBody.push(t):s.body.push(t),n++;else{if(0===o){i=!0,n++;continue}s.body.push(t),n++}}throw new Error(\"Unclosed for loop: expected {/for}\")}function i(e,t){const r={type:\"switch\",value:e[t].value,cases:[],defaultBody:[]};let s=t+1,n=0,o=null,i=!1;for(;s<e.length;){const t=e[s];if(\"switch\"===t.type&&n++,\"endswitch\"===t.type){if(n>0){n--,o&&o.body.push(t),s++;continue}return{node:r,nextIndex:s+1}}if(n>0)o&&o.body.push(t),s++;else if(\"case\"!==t.type)if(\"default\"!==t.type)o?o.body.push(t):i?r.defaultBody.push(t):r.cases.length>0&&r.cases[r.cases.length-1].body.push(t),s++;else{if(i)throw new Error(\"Duplicate {default} in switch\");i=!0,o=null,s++}else o={value:t.value,body:[]},r.cases.push(o),s++}throw new Error(\"Unclosed switch: expected {/switch}\")}function c(e){const t=[];let r=0;for(;r<e.length;){const s=e[r];if(\"block_open\"===s.type){const n=s.name;r++;const o=[];let i=0;for(;r<e.length;){const t=e[r];if(\"block_open\"===t.type&&i++,\"block_close\"===t.type){if(0===i)break;i--}o.push(t),r++}const a=c(o);t.push({type:\"block\",name:n,body:a}),r++;continue}if(\"extends\"!==s.type)if(\"include\"!==s.type)if([\"set\",\"var\",\"add\"].includes(s.type))t.push({...s}),r++;else{if(\"if\"===s.type){const{node:s,nextIndex:o}=n(e,r);t.push(s),r=o;continue}if(\"for\"===s.type||\"foreach\"===s.type){const{node:s,nextIndex:n}=o(e,r);t.push(s),r=n;continue}if(\"switch\"===s.type){const{node:s,nextIndex:n}=i(e,r);t.push(s),r=n;continue}if(\"output\"===s.type){const e=s.value.match(/^\\{\\$(.+)\\}$/);if(!e){t.push({type:\"text\",value:s.value}),r++;continue}const n=e[1].trim().split(\"|\"),o=n[0],i=n.slice(1);t.push({type:\"output\",name:`$${o}`,filters:i}),r++;continue}[\"elseif\",\"else\",\"endif\",\"endfor\",\"endforeach\",\"endswitch\"].includes(s.type)||t.push({...s}),r++}else t.push({...s}),r++;else t.push({...s}),r++}return t}function a(e){if(\"true\"===(e=e.trim()))return!0;if(\"false\"===e)return!1;if(\"null\"===e)return null;if(\"undefined\"!==e){if(!isNaN(+e)&&!e.includes(\" \"))return+e;if(/^[\"'](.*)[\"']$/.test(e))return e.slice(1,-1);if(e.startsWith(\"[\")&&e.endsWith(\"]\"))try{return e.slice(1,-1).split(\",\").map(e=>e.trim()).map(a)}catch{}if(e.startsWith(\"{\")&&e.endsWith(\"}\"))try{return JSON.parse(e.replace(/(\\w+):/g,'\"$1\":').replace(/'/g,'\"'))}catch{}return e}}function l(e,t,r){return(...s)=>{const n=s[0];let o=!1;switch(t){case\"array\":o=Array.isArray(n);break;case\"string\":o=\"string\"==typeof n;break;case\"object\":o=n&&\"object\"==typeof n&&!Array.isArray(n)}return o||console.warn(`[Fenom] filter '${e}' should be used with ${t}, but got ${typeof n}`),r(...s)}}function u(e,t){const r=e.split(\".\").map(e=>e.trim());let s=t;for(const n of r){if(null==s||\"object\"!=typeof s)return;s=s[n]}return s}function p(e,t,r,s){let n=e;for(const i of t){const[e,...t]=i.split(\":\").map(e=>e.trim()),c=s[e];if(\"function\"==typeof c){const e=t.map(e=>/^[\"'].*[\"']$/.test(e)?e.slice(1,-1):isNaN(+e)?e.startsWith(\"$\")?u(e.slice(1),r)??\"\":e:+e);try{n=c(n,...e)}catch(o){n=\"\"}}}return n}function f(e){const t=function(e){const t=[],r=/(\\s+|[$a-zA-Z_]\\w*(?:\\.\\w+)*|\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*'|\\d+(?:\\.\\d+)?|[-+*/%<>=!&|?:(){}[\\]~]+|[\\w-]+:)/g;let s;const n=e=>[\"+\",\"-\",\"*\",\"/\",\"%\",\"==\",\"!=\",\"<\",\"<=\",\">\",\">=\",\"&&\",\"||\",\"!\",\"(\",\")\",\"?\",\":\",\"~\"].includes(e);for(;null!==(s=r.exec(e));){const e=s[0].trim();if(e)if(n(e))t.push({type:\"op\",value:e});else if(\"|\"===e)t.push({type:\"filter\",value:e});else if(e.startsWith(\"$\"))t.push({type:\"var\",value:e});else if(/^[\"']/.test(e)){const r=e.slice(1,-1).replace(/\\\\(.)/g,\"$1\");t.push({type:\"str\",value:r})}else isNaN(+e)?t.push({type:\"str\",value:e}):t.push({type:\"num\",value:e})}return t}(e);let r=0;function s(){const e=o(()=>o(()=>o(()=>o(()=>o(()=>n(),[\"*\",\"/\",\"%\"]),[\"+\",\"-\",\"~\"]),[\"<\",\"<=\",\">\",\">=\"]),[\"==\",\"!=\"]),[\"||\",\"&&\"]);if(r<t.length&&\"?\"===t[r].value){r++;const n=s();r<t.length&&\":\"===t[r].value&&r++;return{type:\"conditional\",test:e,consequent:n,alternate:s()}}return e}function n(){if(r<t.length&&[\"!\",\"+\",\"-\"].includes(t[r].value)){const e=t[r].value;return r++,{type:\"unary\",operator:e,argument:n()}}return function(){const e=t[r];if(!e)throw new Error(\"Unexpected end of expression\");if(\"num\"===e.type)return r++,{type:\"literal\",value:+e.value};if(\"str\"===e.type)return r++,{type:\"literal\",value:e.value};if(\"var\"===e.type)return r++,{type:\"variable\",path:e.value.slice(1)};if(\"(\"===e.value){r++;const e=s();if(r>=t.length||\")\"!==t[r].value)throw new Error(\"Expected )\");return r++,e}throw new Error(`Unexpected token: ${e.value}`)}()}function o(e,s){let n=e();for(;r<t.length&&s.includes(t[r].value);){const s=t[r].value;r++;n={type:\"binary\",operator:s,left:n,right:e()}}return n}return s()}function y(e,t,r){switch(e.type){case\"literal\":return e.value;case\"variable\":return u(e.path,t)??\"\";case\"unary\":const s=y(e.argument,t,r);switch(e.operator){case\"!\":return!s;case\"+\":return+s;case\"-\":return-s}break;case\"binary\":{const s=y(e.left,t,r),n=y(e.right,t,r);switch(e.operator){case\"+\":return s+n;case\"-\":return s-n;case\"*\":return s*n;case\"/\":return s/n;case\"%\":return s%n;case\"==\":return s==n;case\"!=\":return s!=n;case\"<\":return s<n;case\"<=\":return s<=n;case\">\":return s>n;case\">=\":return s>=n;case\"&&\":return s&&n;case\"||\":return s||n;case\"~\":return String(s)+String(n)}break}case\"conditional\":const n=y(e.test,t,r);return y(n?e.consequent:e.alternate,t,r);case\"filter\":{const s=y(e.expression,t,r),n=e.args.map(e=>y(e,t,r)),o=r[e.filter];return\"function\"==typeof o?o(s,...n):s}}return\"\"}function d(e,t,r,s){var n,o,i,c,l,g;switch(e.type){case\"ignore_block\":t(e.content||\"\");break;case\"comment\":case\"extends\":case\"include\":break;case\"text\":t(e.value);break;case\"output\":if(/[+\\-*/%<>!=&|?:]/.test(e.name))try{let n=y(f(e.name),r,s);n=p(n,e.filters,r,s),t(String(n))}catch(h){console.warn(`Eval error: ${e.name}`,h),t(\"\")}else{let n=u((g=e.name).startsWith(\"$\")?g.slice(1):g,r)??\"\";n=p(n,e.filters,r,s),t(String(n))}break;case\"set\":{const{variable:t,value:n}=e;if(/[+\\-*/%~]/.test(n))try{const e=f(n);r[t]=y(e,r,s)}catch(h){r[t]=\"\"}else if(n.startsWith(\"$\")){const e=n.slice(1);r[t]=u(e,r)??\"\"}else r[t]=a(n);break}case\"var\":void 0===r[e.variable]&&(r[e.variable]=a(e.value));break;case\"add\":r[e.variable]=(r[e.variable]||0)+1;break;case\"if\":{let c=!1;try{c=!!y(f(e.condition),r,s)}catch(h){console.warn(`Condition error: ${e.condition}`,h),c=!1}if(c)for(const n of e.body)d(n,t,r,s);else if(null==(n=e.elseIfs)?void 0:n.length){let n=!1;for(const o of e.elseIfs){let e=!1;try{e=!!y(f(o.condition),r,s)}catch(h){console.warn(`Condition error: ${o.condition}`,h),e=!1}if(e){for(const e of o.body)d(e,t,r,s);n=!0;break}}if(!n&&(null==(o=e.elseBody)?void 0:o.length))for(const o of e.elseBody)d(o,t,r,s)}else if(null==(i=e.elseBody)?void 0:i.length)for(const n of e.elseBody)d(n,t,r,s);break}case\"for\":{const n=u(e.collection.slice(1),r);if(Array.isArray(n)&&n.length>0){const o=e.reverse??!1?[...n].reverse().keys():n.keys();for(const i of o){const o=n[i];r[e.item]=o,e.key&&(r[e.key]=i);for(const n of e.body)d(n,t,r,s)}}else if(null==(c=e.elseBody)?void 0:c.length)for(const o of e.elseBody)d(o,t,r,s);break}case\"switch\":{const n=r[e.value.slice(1)];let o=!1;for(const i of e.cases)if(i.value===n){for(const e of i.body)d(e,t,r,s);o=!0;break}if(!o&&(null==(l=e.defaultBody)?void 0:l.length))for(const i of e.defaultBody)d(i,t,r,s);break}case\"operator\":{const{variable:s,operator:n,value:o}=e,i=u(s,r),c=\"number\"==typeof i?i:+i||0;let a,l;if(/^[\\d.]+$/.test(o))a=parseFloat(o);else{const e=u(o,r);a=\"number\"==typeof e?e:+e||0}switch(n){case\"++\":l=c,r[s]=c+1;break;case\"--\":l=c,r[s]=c-1;break;case\"+=\":l=c,r[s]=c+a;break;case\"-=\":l=c,r[s]=c-a;break;case\"*=\":l=c,r[s]=c*a;break;case\"/=\":l=c,r[s]=c/a;break;case\"%=\":l=c,r[s]=c%a;break;default:console.warn(`Unknown operator: ${n}`),l=0}t(String(l));break}case\"block\":t(`{block \"${e.name}\"}`);break;default:console.warn(`Unknown node type: ${e.type}`)}}function g(e,t){const r={};let n=null;for(const s of e)\"extends\"===s.type?n=s.file:\"block\"===s.type&&(r[s.name]=s.body);return n?async function(e,o){try{const i=await t(n),a=c(s(i)),l={};for(const e of a)\"block\"===e.type&&(l[e.name]=e.body);const u={...l,...r},p={};e.block=async r=>{if(void 0!==p[r])return p[r];const n=u[r];if(!n)return p[r]=\"\",\"\";let i=\"\";const a={...e};for(const e of n)if(\"include\"===e.type)try{const r=await t(e.file),n=c(s(r)),l={...a};if(e.params)for(const[t,s]of Object.entries(e.params))\"string\"==typeof s&&s.startsWith(\"$\")?l[t]=a[s.slice(1)]:l[t]=s;for(const e of n)d(e,e=>i+=e,l,o)}catch{i+=`[Include error: ${e.file}]`}else d(e,e=>i+=e,a,o);return p[r]=i,i};let f=\"\";for(const r of a)if(\"block\"===r.type)f+=await e.block(r.name);else if(\"include\"===r.type)try{const n=await t(r.file),i=c(s(n)),a={...e};if(r.params)for(const[t,s]of Object.entries(r.params))\"string\"==typeof s&&s.startsWith(\"$\")?a[t]=e[s.slice(1)]:a[t]=s;for(const e of i)d(e,e=>f+=e,a,o)}catch{f+=`[Include error: ${r.file}]`}else d(r,e=>f+=e,e,o);return f}catch(i){return`[Render error: ${i.message}]`}}:async function(r,n){let o=\"\";for(const i of e)if(\"include\"===i.type)try{const e=await t(i.file),a=c(s(e)),l={...r};if(i.params)for(const[t,s]of Object.entries(i.params))\"string\"==typeof s&&s.startsWith(\"$\")?l[t]=r[s.slice(1)]:l[t]=s;for(const t of a)d(t,e=>o+=e,l,n)}catch{o+=`[Include error: ${i.file}]`}else d(i,e=>o+=e,r,n);return o}}function h(r){return async function(s){const n=e.join(r,s);if(!n.endsWith(\".tpl\"))throw new Error(`Template path must end with .tpl: ${s}`);try{return await t.readFile(n,\"utf-8\")}catch(o){if(\"ENOENT\"===o.code)throw new Error(`Template not found: ${n}`);throw o}}}const b={upper:e=>String(e).toUpperCase(),lower:e=>String(e).toLowerCase(),capitalize:e=>{const t=String(e).trim();return 0===t.length?\"\":t.charAt(0).toUpperCase()+t.slice(1).toLowerCase()},ucfirst:e=>b.capitalize(e),ucwords:e=>String(e).trim().replace(/\\b\\w/g,e=>e.toUpperCase()),lcfirst:e=>{const t=String(e).trim();return 0===t.length?\"\":t.charAt(0).toLowerCase()+t.slice(1)},trim:e=>String(e).trim(),ltrim:e=>String(e).replace(/^\\s+/,\"\"),rtrim:e=>String(e).replace(/\\s+$/,\"\"),nl2br:e=>String(e).replace(/\\n/g,\"<br>\"),replace:(e,t,r)=>String(e).split(String(t)).join(String(r)),substr:l(\"substr\",\"string\",(e,t,r)=>{const s=String(e);return void 0===r?s.slice(t):s.slice(t,t+r)}),urlencode:e=>encodeURIComponent(String(e)),urldecode:e=>decodeURIComponent(String(e)),escape:l(\"escape\",\"string\",e=>String(e).replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\").replace(/\"/g,\"&quot;\").replace(/'/g,\"&#039;\")),e:e=>b.escape(e),first:l(\"first\",\"array\",e=>Array.isArray(e)?e[0]:e&&\"object\"==typeof e?Object.values(e)[0]:\"\"),last:l(\"last\",\"array\",e=>{if(Array.isArray(e))return e[e.length-1];if(e&&\"object\"==typeof e){const t=Object.values(e);return t[t.length-1]}return\"\"}),join:l(\"join\",\"array\",(e,t=\",\")=>Array.isArray(e)?e.join(t):e&&\"object\"==typeof e?Object.values(e).join(t):String(e)),reverse:l(\"reverse\",\"array\",e=>Array.isArray(e)?[...e].reverse():e),sort:l(\"sort\",\"array\",e=>Array.isArray(e)?[...e].sort():e),ksort:l(\"ksort\",\"object\",e=>{if(e&&\"object\"==typeof e){const t={};return Object.keys(e).sort().forEach(r=>{t[r]=e[r]}),t}return e}),unique:l(\"unique\",\"array\",e=>Array.isArray(e)?[...new Set(e)]:e),shuffle:l(\"shuffle\",\"array\",e=>{if(!Array.isArray(e))return e;const t=[...e];for(let r=t.length-1;r>0;r--){const e=Math.floor(Math.random()*(r+1));[t[r],t[e]]=[t[e],t[r]]}return t}),slice:(e,t,r)=>Array.isArray(e)||\"string\"==typeof e?void 0===r?e.slice(t):e.slice(t,t+r):e,merge:(e,t)=>Array.isArray(e)&&Array.isArray(t)?[...e,...t]:e,batch:(e,t)=>{if(!Array.isArray(e))return e;const r=[];for(let s=0;s<e.length;s+=t)r.push(e.slice(s,s+t));return r},keys:e=>e&&\"object\"==typeof e?Object.keys(e):[],values:e=>e&&\"object\"==typeof e?Object.values(e):[],length:e=>Array.isArray(e)?e.length:e&&\"object\"==typeof e?Object.keys(e).length:String(e).length,number_format:(e,t=0,r=\".\",s=\",\")=>{const n=Number(e);return isNaN(n)?\"\":n.toLocaleString(\"en-US\",{minimumFractionDigits:t,maximumFractionDigits:t,useGrouping:!0}).replace(/,/g,s).replace(/\\./g,r)},abs:e=>Math.abs(Number(e)||0),round:(e,t=0)=>{const r=10**t;return Math.round((Number(e)||0)*r)/r},json_encode:e=>JSON.stringify(e),json_decode:e=>{try{return JSON.parse(String(e))}catch{return null}},date:(e,t=\"d.m.Y\")=>{const r=Number(e),s=new Date(isNaN(r)?e:1e3*r);if(isNaN(s.getTime()))return console.warn(`[Fenom] filter 'date' received invalid timestamp: ${e}`),\"\";const n=e=>e.toString().padStart(2,\"0\");return t.replace(/d/g,n(s.getDate())).replace(/m/g,n(s.getMonth()+1)).replace(/Y/g,s.getFullYear().toString()).replace(/H/g,n(s.getHours())).replace(/i/g,n(s.getMinutes())).replace(/s/g,n(s.getSeconds()))},default:(e,t)=>null==e||\"\"===e||\"object\"==typeof e&&0===Object.keys(e).length?t:e,raw:e=>e,var_dump:e=>`<pre>${JSON.stringify(e,null,2)}</pre>`,print_r:e=>`<pre>${e instanceof Object?JSON.stringify(e,null,2):String(e)}</pre>`};exports.FenomJs=async function(e,t={},r){const{root:n=\"./src/\",loader:o,minify:i=!1}=r||{},a=o||h(n);try{const r=s(e),n=g(c(r),a),o=await n(t,b);return i?function(e){return e.replace(/>\\s+</g,\"><\").replace(/\\s{2,}/g,\" \").replace(/(<!--.*?-->)\\s+/g,\"$1\").trim()}(o):o}catch(l){return console.error(\"Template error:\",l),`<span style='color:red'>[Ошибка шаблона: ${l.message}]</span>`}},exports.compile=g,exports.createAsyncLoader=h,exports.parse=c,exports.tokenize=s;\n","import type { Plugin, ResolvedConfig } from 'vite';\r\nimport { join, relative, resolve, dirname, basename } from 'path';\r\nimport * as fs from 'fs/promises';\r\n\r\nimport { FenomJs, createAsyncLoader } from 'fenom-js';\r\nimport type { TemplateLoader } from 'fenom-js';\r\n\r\n// === Опции плагина ===\r\nexport interface FenomPluginOptions {\r\n pages?: string;\r\n data?: string;\r\n root?: string;\r\n minifyHtml?: boolean,\r\n debug?: boolean;\r\n}\r\n\r\n/**\r\n * Vite-плагин для рендеринга .tpl шаблонов через fenom-js\r\n */\r\nexport default function fenomPlugin(options: FenomPluginOptions = {}): Plugin {\r\n const {\r\n pages = 'src/pages',\r\n data = 'src/data/**/*.json',\r\n root = 'src',\r\n minifyHtml = true,\r\n debug = false,\r\n } = options;\r\n\r\n let config: ResolvedConfig;\r\n let templateLoader: TemplateLoader;\r\n\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Plugin initialized', { pages, data, root });\r\n\r\n return {\r\n name: 'vite-plugin-fenom',\r\n\r\n configResolved(resolvedConfig) {\r\n config = resolvedConfig;\r\n\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Config resolved', {\r\n mode: config.mode,\r\n command: config.command,\r\n root: config.root,\r\n });\r\n },\r\n\r\n configureServer(server) {\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Dev server setup started...');\r\n\r\n // Создаём загрузчик шаблонов\r\n templateLoader = createAsyncLoader(root);\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Template loader created for root:', root);\r\n\r\n // Наблюдаем за .tpl файлами\r\n server.watcher.on('change', (filePath) => {\r\n if (filePath.endsWith('.tpl')) {\r\n if (debug) console.log('[Fenom Plugin] 🔄 Full reload triggered:', filePath);\r\n server.ws.send({ type: 'full-reload' });\r\n }\r\n });\r\n\r\n // Обработчик запросов\r\n const handlePageRequest = async (req: any, res: any, next: () => void) => {\r\n const url = req.url;\r\n\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Incoming request:', url);\r\n\r\n // Пропускаем статику, API, системные пути\r\n if (\r\n !url ||\r\n url.startsWith('/assets/') ||\r\n url.startsWith('/@') ||\r\n url.startsWith('/src/') ||\r\n url.startsWith('/node_modules/') ||\r\n url.startsWith('/favicon.ico') ||\r\n (url.includes('.') && !url.endsWith('/')) ||\r\n (url.includes('?') && url.includes('.'))\r\n ) {\r\n return next();\r\n }\r\n\r\n // Определяем имя страницы\r\n let pageName = 'index';\r\n\r\n if (url !== '/') {\r\n pageName = url.split('?')[0].split('#')[0].replace(/^\\/|\\/$/g, '');\r\n }\r\n\r\n const templatePath = join(pages, `${pageName}.tpl`);\r\n const relativePath = relative(root, templatePath);\r\n\r\n try {\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Rendering page:', { pageName, templatePath });\r\n\r\n const source = await templateLoader(relativePath);\r\n\r\n const context = {\r\n title: `${pageName.charAt(0).toUpperCase() + pageName.slice(1)} Page`,\r\n debug,\r\n url,\r\n };\r\n\r\n // Рендерим через FenomJs\r\n let html = await FenomJs(source, context, {\r\n loader: templateLoader,\r\n root,\r\n minify: minifyHtml,\r\n });\r\n\r\n if (config.mode === 'development') {\r\n const hmrScript = `\r\n <script type=\"module\">\r\n import \"/@vite/client\";\r\n </script>`;\r\n\r\n if (html.includes('</head>')) {\r\n html = html.replace('</head>', hmrScript + '\\n</head>');\r\n } else if (html.includes('<body>')) {\r\n html = html.replace('<body>', '<body>\\n' + hmrScript);\r\n } else {\r\n html = hmrScript + html;\r\n }\r\n }\r\n\r\n // Отправляем ответ\r\n res.statusCode = 200;\r\n res.setHeader('Content-Type', 'text/html; charset=utf-8');\r\n res.end(html);\r\n\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Page sent:', url);\r\n } catch (err: any) {\r\n if (err.message.includes('Template not found')) {\r\n return next();\r\n }\r\n\r\n console.error('\\x1b[36m[Fenom Plugin]\\x1b[0m Rendering error:', err.message);\r\n console.error(err);\r\n\r\n res.statusCode = 500;\r\n res.setHeader('Content-Type', 'text/html; charset=utf-8');\r\n res.end(`\r\n <h1>🔧 Ошибка рендеринга</h1>\r\n <p><strong>${err.message}</strong></p>\r\n <pre>${err.stack}</pre>\r\n `);\r\n }\r\n };\r\n\r\n // Вставляем middleware в начало стека\r\n server.middlewares.stack.unshift({\r\n route: '',\r\n handle: handlePageRequest,\r\n });\r\n\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Middleware inserted at top of stack');\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Watching .tpl files for HMR');\r\n },\r\n\r\n async buildStart() {\r\n if (config.command !== 'build') return;\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Build started');\r\n },\r\n\r\n async generateBundle(_options, bundle) {\r\n if (config.command !== 'build') return;\r\n\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Generating HTML files...');\r\n\r\n const { default: fastGlob } = await import('fast-glob');\r\n templateLoader = createAsyncLoader(root);\r\n\r\n const searchPath = resolve(config.root, pages);\r\n const pattern = join(searchPath, '**/*.tpl').replace(/\\\\/g, '/');\r\n\r\n try {\r\n const files = await fastGlob(pattern);\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Found templates:', files);\r\n\r\n // === Собираем входы ===\r\n const inputEntries = config.build.rollupOptions.input;\r\n let inputFiles: string[] = [];\r\n\r\n if (Array.isArray(inputEntries)) {\r\n inputFiles = inputEntries;\r\n } else if (typeof inputEntries === 'object' && inputEntries !== null) {\r\n inputFiles = Object.values(inputEntries);\r\n } else if (typeof inputEntries === 'string') {\r\n inputFiles = [inputEntries];\r\n }\r\n\r\n if (debug) {\r\n console.log('inputFiles:', inputFiles);\r\n }\r\n\r\n // === Находим настоящие ассеты по расширению ===\r\n let jsChunk = '';\r\n const cssAssets: string[] = [];\r\n\r\n for (const [fileName, file] of Object.entries(bundle)) {\r\n if (file.type === 'chunk' && /\\.(js|ts)$/.test(fileName)) {\r\n jsChunk = `/${fileName}`;\r\n }\r\n if (file.type === 'asset' && fileName.endsWith('.css')) {\r\n cssAssets.push(`/${fileName}`);\r\n }\r\n }\r\n\r\n // === Создаём карту замен ===\r\n const replacementMap = new Map<string, string>();\r\n\r\n for (const input of inputFiles) {\r\n if (/\\.(ts|js)$/.test(input) && jsChunk) {\r\n replacementMap.set(input, jsChunk);\r\n }\r\n if (/\\.css$/.test(input) && cssAssets.length > 0) {\r\n // Берём первый CSS (или можно выбрать по имени)\r\n replacementMap.set(input, cssAssets[0]);\r\n }\r\n }\r\n\r\n if (debug) {\r\n console.log('JS chunk found:', jsChunk);\r\n console.log('CSS assets found:', cssAssets);\r\n console.log('replacementMap:', Object.fromEntries(replacementMap));\r\n }\r\n\r\n // === Генерируем HTML ===\r\n for (const file of files) {\r\n const fileName = basename(file, '.tpl');\r\n const outputFileName = fileName === 'index' ? 'index.html' : `${fileName}.html`;\r\n\r\n try {\r\n const source = await fs.readFile(file, 'utf-8');\r\n\r\n const jsonDataPath = file.replace(/\\.tpl$/, '.json');\r\n let extraContext = {};\r\n try {\r\n const data = await fs.readFile(jsonDataPath, 'utf-8');\r\n extraContext = JSON.parse(data);\r\n } catch { }\r\n\r\n const context = {\r\n title: `${fileName.charAt(0).toUpperCase() + fileName.slice(1)} Page`,\r\n debug: false,\r\n url: '/' + (fileName === 'index' ? '' : fileName),\r\n ...extraContext,\r\n };\r\n\r\n let html = await FenomJs(source, context, {\r\n loader: templateLoader,\r\n root,\r\n minify: minifyHtml,\r\n });\r\n\r\n // === Замена путей ===\r\n for (const [devPath, prodPath] of replacementMap) {\r\n const fullDevPath = '/' + devPath;\r\n const escaped = fullDevPath.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\r\n\r\n // <script src=\"...\">\r\n const scriptRegex = new RegExp(\r\n `<script[^>]+src=[\"']${escaped}[\"'][^>]*>`,\r\n 'gi'\r\n );\r\n if (scriptRegex.test(html)) {\r\n html = html.replace(\r\n scriptRegex,\r\n `<script type=\"module\" src=\"${prodPath}\"></script>`\r\n );\r\n if (debug) {\r\n console.log(`[Fenom Plugin] Replaced script: ${fullDevPath} → ${prodPath}`);\r\n }\r\n }\r\n\r\n // <link href=\"...\">\r\n const linkRegex = new RegExp(\r\n `<link[^>]+href=[\"']${escaped}[\"'][^>]*>`,\r\n 'gi'\r\n );\r\n\r\n if (linkRegex.test(html)) {\r\n html = html.replace(\r\n linkRegex,\r\n `<link rel=\"stylesheet\" href=\"${prodPath}\">`\r\n );\r\n\r\n if (debug) {\r\n console.log(`[Fenom Plugin] Replaced link: ${fullDevPath} → ${prodPath}`);\r\n }\r\n }\r\n }\r\n\r\n this.emitFile({\r\n type: 'asset',\r\n fileName: outputFileName,\r\n source: html,\r\n });\r\n\r\n if (debug) console.log('\\x1b[36m[Fenom Plugin]\\x1b[0m Generated:', outputFileName);\r\n } catch (err) {\r\n console.error('\\x1b[31m[Fenom Plugin]\\x1b[0m Error rendering:', file);\r\n }\r\n }\r\n } catch (err) {\r\n console.error('\\x1b[31m[Fenom Plugin]\\x1b[0m glob error:', err);\r\n }\r\n },\r\n };\r\n}\r\n"],"names":["exports","require$$1","createAsyncLoader","join","relative","FenomJs","resolve","basename","fs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAa,MAAM,CAAC,cAAc,CAACA,SAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,UAAe,CAAC,CAAC,CAACC,EAAsB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,yCAAyC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,+BAA+B,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,gGAAgG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,gDAAgD,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,8EAA8E,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,6FAA6F,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,wDAAwD,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,OAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,mCAAmC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,gDAAgD,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,wCAAwC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,0CAA0C,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,2CAA2C,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,gCAAgC,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,KAAE,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAE,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,oBAAoB,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,WAAW,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,OAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,GAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,OAAM,KAAE,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,OAAM,MAAE,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAM,CAAC,CAAC,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAA,CAAE,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAA,CAAE,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAE,CAAC,OAAO,CAAC,EAAE,KAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,KAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,MAAM,KAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,sBAAsB,EAAE,CAAC,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,mHAAmH,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,OAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAI,SAAS,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,KAAI,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAI,GAAG,CAAC,OAAM,CAAC,CAAC,CAAC,KAAI,GAAG,CAAC,OAAM,CAAC,CAAC,CAAC,KAAI,GAAG,CAAC,OAAM,CAAC,CAAC,CAAC,MAAM,KAAI,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAI,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAI,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAI,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAI,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAM,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAM,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAI,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,MAAM,KAAI,SAAS,CAAC,KAAI,SAAS,CAAC,KAAI,SAAS,CAAC,MAAM,KAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAI,QAAQ,CAAC,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,KAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAC,CAAC,MAAM,KAAI,KAAK,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,KAAK,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,KAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,MAAM,KAAI,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAE,CAAC,GAAG,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAE,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,KAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,iBAAiB,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAE,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAI,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAI,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAE,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAI,UAAU,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,KAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,OAAO,CAAC,EAAE,KAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAI,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,QAAQ,OAAO,CAAC,IAAI,CAAC,CAAC,mBAAmB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,GAAG,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAM,CAAC,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,gBAAgB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,kCAAkC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,WAAW,CAAC,IAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,kDAAkD,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC,YAAY,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAACD,SAAA,CAAA,OAAA,CAAgB,eAAe,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,yCAAyC,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAACA,SAAA,CAAA,OAAA,CAAgB,CAAC,CAACA,SAAA,CAAA,iBAAA,CAA0B,CAAC,CAACA,SAAA,CAAA,KAAA,CAAc,CAAC,CAACA,SAAA,CAAA,QAAA,CAAiB,CAAC,CAAA;;;;;;;ACgB1ylB;;AAEG;AACW,SAAU,WAAW,CAAC,UAA8B,EAAE,EAAA;IAChE,MAAM,EACF,KAAK,GAAG,WAAW,EACnB,IAAI,GAAG,oBAAoB,EAC3B,IAAI,GAAG,KAAK,EACZ,UAAU,GAAG,IAAI,EACjB,KAAK,GAAG,KAAK,GAChB,GAAG,OAAO;AAEX,IAAA,IAAI,MAAsB;AAC1B,IAAA,IAAI,cAA8B;AAElC,IAAA,IAAI,KAAK;AAAE,QAAA,OAAO,CAAC,GAAG,CAAC,kDAAkD,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAEjG,OAAO;AACH,QAAA,IAAI,EAAE,mBAAmB;AAEzB,QAAA,cAAc,CAAC,cAAc,EAAA;YACzB,MAAM,GAAG,cAAc;AAEvB,YAAA,IAAI,KAAK;AAAE,gBAAA,OAAO,CAAC,GAAG,CAAC,+CAA+C,EAAE;oBACpE,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,IAAI,EAAE,MAAM,CAAC,IAAI;AACpB,iBAAA,CAAC;QACN,CAAC;AAED,QAAA,eAAe,CAAC,MAAM,EAAA;AAClB,YAAA,IAAI,KAAK;AAAE,gBAAA,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC;;AAGnF,YAAA,cAAc,GAAGE,gCAAiB,CAAC,IAAI,CAAC;AACxC,YAAA,IAAI,KAAK;AAAE,gBAAA,OAAO,CAAC,GAAG,CAAC,iEAAiE,EAAE,IAAI,CAAC;;YAG/F,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,KAAI;AACrC,gBAAA,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC3B,oBAAA,IAAI,KAAK;AAAE,wBAAA,OAAO,CAAC,GAAG,CAAC,0CAA0C,EAAE,QAAQ,CAAC;oBAC5E,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;gBAC3C;AACJ,YAAA,CAAC,CAAC;;YAGF,MAAM,iBAAiB,GAAG,OAAO,GAAQ,EAAE,GAAQ,EAAE,IAAgB,KAAI;AACrE,gBAAA,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG;AAEnB,gBAAA,IAAI,KAAK;AAAE,oBAAA,OAAO,CAAC,GAAG,CAAC,iDAAiD,EAAE,GAAG,CAAC;;AAG9E,gBAAA,IACI,CAAC,GAAG;AACJ,oBAAA,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC;AAC1B,oBAAA,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;AACpB,oBAAA,GAAG,CAAC,UAAU,CAAC,OAAO,CAAC;AACvB,oBAAA,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC;AAChC,oBAAA,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC;AAC9B,qBAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AACzC,qBAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAC1C;oBACE,OAAO,IAAI,EAAE;gBACjB;;gBAGA,IAAI,QAAQ,GAAG,OAAO;AAEtB,gBAAA,IAAI,GAAG,KAAK,GAAG,EAAE;oBACb,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;gBACtE;gBAEA,MAAM,YAAY,GAAGC,eAAI,CAAC,KAAK,EAAE,CAAA,EAAG,QAAQ,CAAA,IAAA,CAAM,CAAC;gBACnD,MAAM,YAAY,GAAGC,mBAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;AAEjD,gBAAA,IAAI;AACA,oBAAA,IAAI,KAAK;wBAAE,OAAO,CAAC,GAAG,CAAC,+CAA+C,EAAE,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;AAEnG,oBAAA,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,YAAY,CAAC;AAEjD,oBAAA,MAAM,OAAO,GAAG;AACZ,wBAAA,KAAK,EAAE,CAAA,EAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,KAAA,CAAO;wBACrE,KAAK;wBACL,GAAG;qBACN;;oBAGD,IAAI,IAAI,GAAG,MAAMC,sBAAO,CAAC,MAAM,EAAE,OAAO,EAAE;AACtC,wBAAA,MAAM,EAAE,cAAc;wBACtB,IAAI;AACJ,wBAAA,MAAM,EAAE,UAAU;AACrB,qBAAA,CAAC;AAEF,oBAAA,IAAI,MAAM,CAAC,IAAI,KAAK,aAAa,EAAE;AAC/B,wBAAA,MAAM,SAAS,GAAG,CAAA;;;sCAGJ;AAEd,wBAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;4BAC1B,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,GAAG,WAAW,CAAC;wBAC3D;AAAO,6BAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;4BAChC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,UAAU,GAAG,SAAS,CAAC;wBACzD;6BAAO;AACH,4BAAA,IAAI,GAAG,SAAS,GAAG,IAAI;wBAC3B;oBACJ;;AAGA,oBAAA,GAAG,CAAC,UAAU,GAAG,GAAG;AACpB,oBAAA,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,0BAA0B,CAAC;AACzD,oBAAA,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;AAEb,oBAAA,IAAI,KAAK;AAAE,wBAAA,OAAO,CAAC,GAAG,CAAC,0CAA0C,EAAE,GAAG,CAAC;gBAC3E;gBAAE,OAAO,GAAQ,EAAE;oBACf,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE;wBAC5C,OAAO,IAAI,EAAE;oBACjB;oBAEA,OAAO,CAAC,KAAK,CAAC,gDAAgD,EAAE,GAAG,CAAC,OAAO,CAAC;AAC5E,oBAAA,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC;AAElB,oBAAA,GAAG,CAAC,UAAU,GAAG,GAAG;AACpB,oBAAA,GAAG,CAAC,SAAS,CAAC,cAAc,EAAE,0BAA0B,CAAC;oBACzD,GAAG,CAAC,GAAG,CAAC,CAAA;;AAES,mCAAA,EAAA,GAAG,CAAC,OAAO,CAAA;AACjB,6BAAA,EAAA,GAAG,CAAC,KAAK,CAAA;AACnB,oBAAA,CAAA,CAAC;gBACN;AACJ,YAAA,CAAC;;AAGD,YAAA,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC;AAC7B,gBAAA,KAAK,EAAE,EAAE;AACT,gBAAA,MAAM,EAAE,iBAAiB;AAC5B,aAAA,CAAC;AAEF,YAAA,IAAI,KAAK;AAAE,gBAAA,OAAO,CAAC,GAAG,CAAC,mEAAmE,CAAC;AAC3F,YAAA,IAAI,KAAK;AAAE,gBAAA,OAAO,CAAC,GAAG,CAAC,2DAA2D,CAAC;QACvF,CAAC;AAED,QAAA,MAAM,UAAU,GAAA;AACZ,YAAA,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO;gBAAE;AAChC,YAAA,IAAI,KAAK;AAAE,gBAAA,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC;QACzE,CAAC;AAED,QAAA,MAAM,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAA;AACjC,YAAA,IAAI,MAAM,CAAC,OAAO,KAAK,OAAO;gBAAE;AAEhC,YAAA,IAAI,KAAK;AAAE,gBAAA,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC;YAEhF,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,MAAM,oDAAO,qBAAW,4CAAC;AACvD,YAAA,cAAc,GAAGH,gCAAiB,CAAC,IAAI,CAAC;YAExC,MAAM,UAAU,GAAGI,kBAAO,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;AAC9C,YAAA,MAAM,OAAO,GAAGH,eAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;AAEhE,YAAA,IAAI;AACA,gBAAA,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC;AACrC,gBAAA,IAAI,KAAK;AAAE,oBAAA,OAAO,CAAC,GAAG,CAAC,gDAAgD,EAAE,KAAK,CAAC;;gBAG/E,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK;gBACrD,IAAI,UAAU,GAAa,EAAE;AAE7B,gBAAA,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;oBAC7B,UAAU,GAAG,YAAY;gBAC7B;qBAAO,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,KAAK,IAAI,EAAE;AAClE,oBAAA,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC;gBAC5C;AAAO,qBAAA,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE;AACzC,oBAAA,UAAU,GAAG,CAAC,YAAY,CAAC;gBAC/B;gBAEA,IAAI,KAAK,EAAE;AACP,oBAAA,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC;gBAC1C;;gBAGA,IAAI,OAAO,GAAG,EAAE;gBAChB,MAAM,SAAS,GAAa,EAAE;AAE9B,gBAAA,KAAK,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACnD,oBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;AACtD,wBAAA,OAAO,GAAG,CAAA,CAAA,EAAI,QAAQ,CAAA,CAAE;oBAC5B;AACA,oBAAA,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AACpD,wBAAA,SAAS,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAA,CAAE,CAAC;oBAClC;gBACJ;;AAGA,gBAAA,MAAM,cAAc,GAAG,IAAI,GAAG,EAAkB;AAEhD,gBAAA,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE;oBAC5B,IAAI,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,OAAO,EAAE;AACrC,wBAAA,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC;oBACtC;AACA,oBAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;;wBAE9C,cAAc,CAAC,GAAG,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;oBAC3C;gBACJ;gBAEA,IAAI,KAAK,EAAE;AACP,oBAAA,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC;AACvC,oBAAA,OAAO,CAAC,GAAG,CAAC,mBAAmB,EAAE,SAAS,CAAC;AAC3C,oBAAA,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;gBACtE;;AAGA,gBAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;oBACtB,MAAM,QAAQ,GAAGI,mBAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;AACvC,oBAAA,MAAM,cAAc,GAAG,QAAQ,KAAK,OAAO,GAAG,YAAY,GAAG,CAAA,EAAG,QAAQ,OAAO;AAE/E,oBAAA,IAAI;wBACA,MAAM,MAAM,GAAG,MAAMC,aAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;wBAE/C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC;wBACpD,IAAI,YAAY,GAAG,EAAE;AACrB,wBAAA,IAAI;4BACA,MAAM,IAAI,GAAG,MAAMA,aAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;AACrD,4BAAA,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;wBACnC;wBAAE,OAAA,EAAA,EAAM,EAAE;AAEV,wBAAA,MAAM,OAAO,GAAG;AACZ,4BAAA,KAAK,EAAE,CAAA,EAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,KAAA,CAAO;AACrE,4BAAA,KAAK,EAAE,KAAK;AACZ,4BAAA,GAAG,EAAE,GAAG,IAAI,QAAQ,KAAK,OAAO,GAAG,EAAE,GAAG,QAAQ,CAAC;AACjD,4BAAA,GAAG,YAAY;yBAClB;wBAED,IAAI,IAAI,GAAG,MAAMH,sBAAO,CAAC,MAAM,EAAE,OAAO,EAAE;AACtC,4BAAA,MAAM,EAAE,cAAc;4BACtB,IAAI;AACJ,4BAAA,MAAM,EAAE,UAAU;AACrB,yBAAA,CAAC;;wBAGF,KAAK,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,cAAc,EAAE;AAC9C,4BAAA,MAAM,WAAW,GAAG,GAAG,GAAG,OAAO;4BACjC,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC;;4BAGlE,MAAM,WAAW,GAAG,IAAI,MAAM,CAC1B,CAAA,oBAAA,EAAuB,OAAO,CAAA,UAAA,CAAY,EAC1C,IAAI,CACP;AACD,4BAAA,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gCACxB,IAAI,GAAG,IAAI,CAAC,OAAO,CACf,WAAW,EACX,CAAA,2BAAA,EAA8B,QAAQ,CAAA,WAAA,CAAa,CACtD;gCACD,IAAI,KAAK,EAAE;oCACP,OAAO,CAAC,GAAG,CAAC,CAAA,gCAAA,EAAmC,WAAW,CAAA,GAAA,EAAM,QAAQ,CAAA,CAAE,CAAC;gCAC/E;4BACJ;;4BAGA,MAAM,SAAS,GAAG,IAAI,MAAM,CACxB,CAAA,mBAAA,EAAsB,OAAO,CAAA,UAAA,CAAY,EACzC,IAAI,CACP;AAED,4BAAA,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gCACtB,IAAI,GAAG,IAAI,CAAC,OAAO,CACf,SAAS,EACT,CAAA,6BAAA,EAAgC,QAAQ,CAAA,EAAA,CAAI,CAC/C;gCAED,IAAI,KAAK,EAAE;oCACP,OAAO,CAAC,GAAG,CAAC,CAAA,8BAAA,EAAiC,WAAW,CAAA,GAAA,EAAM,QAAQ,CAAA,CAAE,CAAC;gCAC7E;4BACJ;wBACJ;wBAEA,IAAI,CAAC,QAAQ,CAAC;AACV,4BAAA,IAAI,EAAE,OAAO;AACb,4BAAA,QAAQ,EAAE,cAAc;AACxB,4BAAA,MAAM,EAAE,IAAI;AACf,yBAAA,CAAC;AAEF,wBAAA,IAAI,KAAK;AAAE,4BAAA,OAAO,CAAC,GAAG,CAAC,0CAA0C,EAAE,cAAc,CAAC;oBACtF;oBAAE,OAAO,GAAG,EAAE;AACV,wBAAA,OAAO,CAAC,KAAK,CAAC,gDAAgD,EAAE,IAAI,CAAC;oBACzE;gBACJ;YACJ;YAAE,OAAO,GAAG,EAAE;AACV,gBAAA,OAAO,CAAC,KAAK,CAAC,2CAA2C,EAAE,GAAG,CAAC;YACnE;QACJ,CAAC;KACJ;AACL;;;;"}