diff --git a/.env b/.env index 23efc40..650b548 100644 --- a/.env +++ b/.env @@ -1,14 +1,5 @@ -PGHOST=db -PGPORT=5432 -PGUSER=postgres -PGPASSWORD=postgres -PGDATABASE=postgres -SSLmode=disable -PGURL='postgres://postgres:postgres@db:5432/postgres?sslmode=disable' -# SERVER -SERVER_PORT=8000 -SECRET_KEY=my_very_secret_key + # MIGRATOR MIGRATOR_PORT=3000 @@ -16,13 +7,11 @@ GOOSE_DRIVER=postgres GOOSE_DBSTRING='user=postgres dbname=postgres sslmode=disable' GOOSE_MIGRATION_DIR=migrations -# FRONTEND SPA -HTTP_INNER_PORT=80 -HTTP_OUTER_PORT=80 -HTTPS_INNER_PORT=443 -HTTPS_OUTER_PORT=443 + # NGINX EMAIL=valitovgaziz@yandex.ru -DOMAINS=yalarba.ru,www.yalarba.ru +DOMAINS_yalarba=yalarba.ru,www.yalarba.ru DOMAINS_valitovgaziz=valitovgaziz.ru,www.valitovgaziz.ru +DOMAINS_easysite102=easysite102.ru,www.easysite102.ru +ALL_DOMAINS=yalarba.ru,www.yalarba.ru,valitovgaziz.ru,www.valitovgaziz.ru,easysite102.ru,www.easysite102.ru diff --git a/.gitignore b/.gitignore index 332cbf0..f7f797b 100644 --- a/.gitignore +++ b/.gitignore @@ -12,8 +12,8 @@ lerna-debug.log* node_modules .DS_Store -dist -dist-ssr +# dist +# dist-ssr coverage *.local @@ -31,3 +31,29 @@ coverage *.sw? *.tsbuildinfo +*.node_modules +*Makefile + +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/Makefile b/Makefile index f76eae3..8902af7 100644 --- a/Makefile +++ b/Makefile @@ -1,19 +1,10 @@ build: - @docker compose --profile dev build --no-cache + @docker compose build --no-cache run: stop - @docker compose --profile dev up -d --remove-orphans + @docker compose up -d --remove-orphans stop: - @docker compose --profile dev down - -clean: - @docker builder --profile dev prune - -test: - @go test ./api/src/auth/... -v - -tc: - @go test -cover + @docker compose down .DEFAULT_GOAL=run diff --git a/README.md b/README.md index 3d254eb..cfe1eb2 100644 --- a/README.md +++ b/README.md @@ -5,5 +5,11 @@ ## build and start with command: make +Разделить на отдельные сервисы. + +1. DB, rest api * +2. Migrator * +3. spa * +4. Certbot * +5. nginx * -need to see conf for nginx and change link to keycloak diff --git a/certbot/Dockerfile b/certbot/Dockerfile deleted file mode 100644 index e95d859..0000000 --- a/certbot/Dockerfile +++ /dev/null @@ -1,12 +0,0 @@ -FROM certbot/certbot - -# Создаем директории для конфигов -RUN mkdir -p /etc/letsencrypt/config - -# Копируем конфигурационные файлы -COPY scripts/ /opt/ - -# Устанавливаем права -RUN chmod +x /opt/* - -ENTRYPOINT ["/opt/init-certbot.sh"] diff --git a/certbot/scripts/init-certbot.sh b/certbot/scripts/init-certbot.sh deleted file mode 100644 index 08392a2..0000000 --- a/certbot/scripts/init-certbot.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh - -# Проверяем наличие сертификатов -if [ ! -d "/etc/letsencrypt/live/${DOMAINS}" ]; then - echo "Получаем новые сертификаты yalarba ..." - certbot certonly --webroot \ - --config /etc/letsencrypt/config/certbot.ini \ - -w /var/www/certbot \ - -d ${DOMAINS} -fi - -if [ ! -d "/etc/letsencrypt/live/${DOMAINS_valitovgaziz}" ]; then - echo "Получаем новые сертификаты valitovgaziz ..." - certbot certonly --webroot \ - --config /etc/letsencrypt/config/certbot.ini \ - -w /var/www/certbot \ - -d ${DOMAINS_valitovgaziz} -fi \ No newline at end of file diff --git a/docker-compose.yaml b/docker-compose.yaml index 1842b81..a399891 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,162 +1,45 @@ services: - db: - image: postgres:16 - container_name: db - profiles: - - prod - env_file: - - .env - ports: - - "${PGPORT}:${PGPORT}" - volumes: - - postgres-db:/var/lib/postgresql/data - environment: - - POSTGRES_USER=${PGUSER} - - POSTGRES_PASSWORD=${PGPASSWORD} - - POSTGRES_DB=${PGDATABASE} - restart: unless-stopped - - api: - container_name: api - build: - context: ./api - dockerfile: Dockerfile - profiles: - - prod - env_file: - - .env - ports: - - "${SERVER_PORT}:${SERVER_PORT}" - volumes: - - api:/usr/src/app - depends_on: - - db - command: ./bin/api - restart: unless-stopped +# keycloak: +# build: +# context: ./keycloak +# dockerfile: Dockerfile +# container_name: keycloak +# ports: +# - "8080:8080" +# environment: +# KC_ADMIN: admin +# KC_ADMIN_PASSWORD: admin +# PROXY_ADDRESS_FORWARDING: true +# KС_HTTPS_PORT: 8443 +# KС_HTTP_PORT: 8080 +# KС_LOGLEVEL: INFO +# KС_HTTP_PROXY: true +# KС_HTTPS_REDIRECT: false +# KC_HOSTNAME_STRICT: false +# KC_PROXY: passthrough +# KC_HTTP_ENABLED: true +# KC_HOSTNAME: yalarba.ru +# KC_HOSTNAME_STRICT_BACKCHANNEL: false +# KC_FRONTEND_URL: https://yalarba.ru/auth +# command: start --optimized +# networks: +# - internal - migrator: - container_name: migrator - profiles: - - prod - build: - context: ./migrator - dockerfile: Dockerfile - env_file: - - .env - depends_on: - - api - - db - volumes: - - goose:/migrations - command: goose up - - spa: - container_name: spa - profiles: - - prod - build: - context: ./spa - dockerfile: Dockerfile - env_file: - - .env - - nginx: - build: - context: ./nginx - dockerfile: Dockerfile - profiles: - - prod - - dev - env_file: .env - container_name: nginx - restart: unless-stopped - ports: - - "80:80" - - "443:443" - volumes: - - certbot_data:/etc/letsencrypt - - certbot_www:/var/www/certbot - - ./spa/app:/usr/share/nginx/html - - ./valitovgaziz/html:/usr/share/nginx/valitovgaziz/html - networks: - - web-network - - internal - depends_on: - - certbot - - certbot: - build: - context: ./certbot - dockerfile: Dockerfile - container_name: certbot - profiles: - - prod - - dev - volumes: - - ./certbot/config:/etc/letsencrypt/config - - certbot_data:/etc/letsencrypt - - certbot_www:/var/www/certbot - env_file: - - .env - environment: - - EMAIL=valitovgaziz@yandex.ru - - DOMAINS=yalarba.ru - - STAGING=0 - restart: unless-stopped - - keycloak: - build: - context: ./keycloak - dockerfile: Dockerfile - container_name: keycloak - ports: - - "8080:8080" - profiles: - - prod - - dev - - kk - environment: - KC_ADMIN: admin - KC_ADMIN_PASSWORD: admin - PROXY_ADDRESS_FORWARDING: true - KС_HTTPS_PORT: 8443 - KС_HTTP_PORT: 8080 - KС_LOGLEVEL: INFO - KС_HTTP_PROXY: true - KС_HTTPS_REDIRECT: false - KC_HOSTNAME_STRICT: false - KC_PROXY: passthrough - KC_HTTP_ENABLED: true - KC_HOSTNAME: yalarba.ru - KC_HOSTNAME_STRICT_BACKCHANNEL: false - KC_FRONTEND_URL: https://yalarba.ru/auth - command: start --optimized - networks: - - internal - - kk_db: - image: postgres:16 - container_name: kk_db - profiles: - - prod - - dev - environment: - POSTGRES_DB: keycloak - POSTGRES_USER: postgres - POSTGRES_PASSWORD: postgres - volumes: - - keycloak-postgres:/var/lib/postgresql/data - networks: - - internal +# kk_db: +# image: postgres:16 +# container_name: kk_db +# environment: +# POSTGRES_DB: keycloak +# POSTGRES_USER: postgres +# POSTGRES_PASSWORD: postgres +# volumes: +# - keycloak-postgres:/var/lib/postgresql/data +# networks: +# - internal volumes: - api: - postgres-db: - goose: - certbot_data: - certbot_www: - keycloak-postgres: + keycloak-postgres: networks: web-network: diff --git a/easySite/easy-site/README.md b/easySite/easy-site/README.md new file mode 100644 index 0000000..58beeac --- /dev/null +++ b/easySite/easy-site/README.md @@ -0,0 +1,70 @@ +# Getting Started with Create React App + +This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). + +## Available Scripts + +In the project directory, you can run: + +### `npm start` + +Runs the app in the development mode.\ +Open [http://localhost:3000](http://localhost:3000) to view it in your browser. + +The page will reload when you make changes.\ +You may also see any lint errors in the console. + +### `npm test` + +Launches the test runner in the interactive watch mode.\ +See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. + +### `npm run build` + +Builds the app for production to the `build` folder.\ +It correctly bundles React in production mode and optimizes the build for the best performance. + +The build is minified and the filenames include the hashes.\ +Your app is ready to be deployed! + +See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. + +### `npm run eject` + +**Note: this is a one-way operation. Once you `eject`, you can't go back!** + +If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. + +Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own. + +You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it. + +## Learn More + +You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). + +To learn React, check out the [React documentation](https://reactjs.org/). + +### Code Splitting + +This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting) + +### Analyzing the Bundle Size + +This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size) + +### Making a Progressive Web App + +This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app) + +### Advanced Configuration + +This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration) + +### Deployment + +This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment) + +### `npm run build` fails to minify + +This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify) diff --git a/easySite/easy-site/build/asset-manifest.json b/easySite/easy-site/build/asset-manifest.json new file mode 100644 index 0000000..9ccc781 --- /dev/null +++ b/easySite/easy-site/build/asset-manifest.json @@ -0,0 +1,10 @@ +{ + "files": { + "main.js": "/static/js/main.9a8f7abd.js", + "index.html": "/index.html", + "main.9a8f7abd.js.map": "/static/js/main.9a8f7abd.js.map" + }, + "entrypoints": [ + "static/js/main.9a8f7abd.js" + ] +} \ No newline at end of file diff --git a/easySite/easy-site/build/index.html b/easySite/easy-site/build/index.html new file mode 100644 index 0000000..5b89563 --- /dev/null +++ b/easySite/easy-site/build/index.html @@ -0,0 +1,21 @@ + + + + + + + + + + + React App + + + + +
+ + diff --git a/easySite/easy-site/build/static/js/main.9a8f7abd.js b/easySite/easy-site/build/static/js/main.9a8f7abd.js new file mode 100644 index 0000000..421759d --- /dev/null +++ b/easySite/easy-site/build/static/js/main.9a8f7abd.js @@ -0,0 +1,3 @@ +/*! For license information please see main.9a8f7abd.js.LICENSE.txt */ +(()=>{"use strict";var e={4:(e,t,n)=>{var r=n(853),a=n(43),o=n(950);function l(e){var t="https://react.dev/errors/"+e;if(1M||(e.current=D[M],D[M]=null,M--)}function I(e,t){M++,D[M]=e.current,e.current=t}var B=U(null),H=U(null),q=U(null),W=U(null);function V(e,t){switch(I(q,t),I(H,e),I(B,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?af(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)e=of(t=af(t),e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}$(B),I(B,e)}function Q(){$(B),$(H),$(q)}function K(e){null!==e.memoizedState&&I(W,e);var t=B.current,n=of(t,e.type);t!==n&&(I(H,e),I(B,n))}function Y(e){H.current===e&&($(B),$(H)),W.current===e&&($(W),Yf._currentValue=F)}var J=Object.prototype.hasOwnProperty,X=r.unstable_scheduleCallback,G=r.unstable_cancelCallback,Z=r.unstable_shouldYield,ee=r.unstable_requestPaint,te=r.unstable_now,ne=r.unstable_getCurrentPriorityLevel,re=r.unstable_ImmediatePriority,ae=r.unstable_UserBlockingPriority,oe=r.unstable_NormalPriority,le=r.unstable_LowPriority,ie=r.unstable_IdlePriority,ue=r.log,se=r.unstable_setDisableYieldValue,ce=null,fe=null;function de(e){if("function"===typeof ue&&se(e),fe&&"function"===typeof fe.setStrictMode)try{fe.setStrictMode(ce,e)}catch(t){}}var pe=Math.clz32?Math.clz32:function(e){return 0===(e>>>=0)?32:31-(he(e)/me|0)|0},he=Math.log,me=Math.LN2;var ge=256,ye=4194304;function ve(e){var t=42&e;if(0!==t)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194048&e;case 4194304:case 8388608:case 16777216:case 33554432:return 62914560&e;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function be(e,t,n){var r=e.pendingLanes;if(0===r)return 0;var a=0,o=e.suspendedLanes,l=e.pingedLanes;e=e.warmLanes;var i=134217727&r;return 0!==i?0!==(r=i&~o)?a=ve(r):0!==(l&=i)?a=ve(l):n||0!==(n=i&~e)&&(a=ve(n)):0!==(i=r&~o)?a=ve(i):0!==l?a=ve(l):n||0!==(n=r&~e)&&(a=ve(n)),0===a?0:0!==t&&t!==a&&0===(t&o)&&((o=a&-a)>=(n=t&-t)||32===o&&0!==(4194048&n))?t:a}function we(e,t){return 0===(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)}function Se(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function ke(){var e=ge;return 0===(4194048&(ge<<=1))&&(ge=256),e}function Ee(){var e=ye;return 0===(62914560&(ye<<=1))&&(ye=4194304),e}function xe(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Ce(e,t){e.pendingLanes|=t,268435456!==t&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Re(e,t,n){e.pendingLanes|=t,e.suspendedLanes&=~t;var r=31-pe(t);e.entangledLanes|=t,e.entanglements[r]=1073741824|e.entanglements[r]|4194090&n}function Pe(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-pe(n),a=1<)":-1--a||u[r]!==s[a]){var c="\n"+u[r].replace(" at new "," at ");return e.displayName&&c.includes("")&&(c=c.replace("",e.displayName)),c}}while(1<=r&&0<=a);break}}}finally{ot=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:"")?at(n):""}function it(e){switch(e.tag){case 26:case 27:case 5:return at(e.type);case 16:return at("Lazy");case 13:return at("Suspense");case 19:return at("SuspenseList");case 0:case 15:return lt(e.type,!1);case 11:return lt(e.type.render,!1);case 1:return lt(e.type,!0);case 31:return at("Activity");default:return""}}function ut(e){try{var t="";do{t+=it(e),e=e.return}while(e);return t}catch(n){return"\nError generating stack: "+n.message+"\n"+n.stack}}function st(e){switch(typeof e){case"bigint":case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function ct(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function ft(e){e._valueTracker||(e._valueTracker=function(e){var t=ct(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&"undefined"!==typeof n&&"function"===typeof n.get&&"function"===typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function dt(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=ct(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function pt(e){if("undefined"===typeof(e=e||("undefined"!==typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}var ht=/[\n"\\]/g;function mt(e){return e.replace(ht,function(e){return"\\"+e.charCodeAt(0).toString(16)+" "})}function gt(e,t,n,r,a,o,l,i){e.name="",null!=l&&"function"!==typeof l&&"symbol"!==typeof l&&"boolean"!==typeof l?e.type=l:e.removeAttribute("type"),null!=t?"number"===l?(0===t&&""===e.value||e.value!=t)&&(e.value=""+st(t)):e.value!==""+st(t)&&(e.value=""+st(t)):"submit"!==l&&"reset"!==l||e.removeAttribute("value"),null!=t?vt(e,l,st(t)):null!=n?vt(e,l,st(n)):null!=r&&e.removeAttribute("value"),null==a&&null!=o&&(e.defaultChecked=!!o),null!=a&&(e.checked=a&&"function"!==typeof a&&"symbol"!==typeof a),null!=i&&"function"!==typeof i&&"symbol"!==typeof i&&"boolean"!==typeof i?e.name=""+st(i):e.removeAttribute("name")}function yt(e,t,n,r,a,o,l,i){if(null!=o&&"function"!==typeof o&&"symbol"!==typeof o&&"boolean"!==typeof o&&(e.type=o),null!=t||null!=n){if(!("submit"!==o&&"reset"!==o||void 0!==t&&null!==t))return;n=null!=n?""+st(n):"",t=null!=t?""+st(t):n,i||t===e.value||(e.value=t),e.defaultValue=t}r="function"!==typeof(r=null!=r?r:a)&&"symbol"!==typeof r&&!!r,e.checked=i?e.checked:!!r,e.defaultChecked=!!r,null!=l&&"function"!==typeof l&&"symbol"!==typeof l&&"boolean"!==typeof l&&(e.name=l)}function vt(e,t,n){"number"===t&&pt(e.ownerDocument)===e||e.defaultValue===""+n||(e.defaultValue=""+n)}function bt(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a=En),Rn=String.fromCharCode(32),Pn=!1;function Tn(e,t){switch(e){case"keyup":return-1!==Sn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function _n(e){return"object"===typeof(e=e.detail)&&"data"in e?e.data:null}var Nn=!1;var On={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Ln(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!On[e.type]:"textarea"===t}function zn(e,t,n,r){Lt?zt?zt.push(r):zt=[r]:Lt=r,0<(t=qc(t,"onChange")).length&&(n=new Zt("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var An=null,jn=null;function Fn(e){Fc(e,0)}function Dn(e){if(dt(He(e)))return e}function Mn(e,t){if("change"===e)return t}var Un=!1;if(Mt){var $n;if(Mt){var In="oninput"in document;if(!In){var Bn=document.createElement("div");Bn.setAttribute("oninput","return;"),In="function"===typeof Bn.oninput}$n=In}else $n=!1;Un=$n&&(!document.documentMode||9=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=Xn(r)}}function Zn(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?Zn(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function er(e){for(var t=pt((e=null!=e&&null!=e.ownerDocument&&null!=e.ownerDocument.defaultView?e.ownerDocument.defaultView:window).document);t instanceof e.HTMLIFrameElement;){try{var n="string"===typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=pt((e=t.contentWindow).document)}return t}function tr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}var nr=Mt&&"documentMode"in document&&11>=document.documentMode,rr=null,ar=null,or=null,lr=!1;function ir(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;lr||null==rr||rr!==pt(r)||("selectionStart"in(r=rr)&&tr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},or&&Jn(or,r)||(or=r,0<(r=qc(ar,"onSelect")).length&&(t=new Zt("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=rr)))}function ur(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var sr={animationend:ur("Animation","AnimationEnd"),animationiteration:ur("Animation","AnimationIteration"),animationstart:ur("Animation","AnimationStart"),transitionrun:ur("Transition","TransitionRun"),transitionstart:ur("Transition","TransitionStart"),transitioncancel:ur("Transition","TransitionCancel"),transitionend:ur("Transition","TransitionEnd")},cr={},fr={};function dr(e){if(cr[e])return cr[e];if(!sr[e])return e;var t,n=sr[e];for(t in n)if(n.hasOwnProperty(t)&&t in fr)return cr[e]=n[t];return e}Mt&&(fr=document.createElement("div").style,"AnimationEvent"in window||(delete sr.animationend.animation,delete sr.animationiteration.animation,delete sr.animationstart.animation),"TransitionEvent"in window||delete sr.transitionend.transition);var pr=dr("animationend"),hr=dr("animationiteration"),mr=dr("animationstart"),gr=dr("transitionrun"),yr=dr("transitionstart"),vr=dr("transitioncancel"),br=dr("transitionend"),wr=new Map,Sr="abort auxClick beforeToggle cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function kr(e,t){wr.set(e,t),Ke(t,[e])}Sr.push("scrollEnd");var Er=new WeakMap;function xr(e,t){if("object"===typeof e&&null!==e){var n=Er.get(e);return void 0!==n?n:(t={value:e,source:t,stack:ut(t)},Er.set(e,t),t)}return{value:e,source:t,stack:ut(t)}}var Cr=[],Rr=0,Pr=0;function Tr(){for(var e=Rr,t=Pr=Rr=0;t>=l,a-=l,Xr=1<<32-pe(t)+a|n<o?o:8;var l=A.T,i={};A.T=i,Il(e,!1,t,n);try{var u=a(),s=A.S;if(null!==s&&s(i,u),null!==u&&"object"===typeof u&&"function"===typeof u.then)$l(e,t,function(e,t){var n=[],r={status:"pending",value:null,reason:null,then:function(e){n.push(e)}};return e.then(function(){r.status="fulfilled",r.value=t;for(var e=0;eh?(m=f,f=null):m=f.sibling;var g=p(a,f,i[h],u);if(null===g){null===f&&(f=m);break}e&&f&&null===g.alternate&&t(a,f),l=o(g,l,h),null===c?s=g:c.sibling=g,c=g,f=m}if(h===i.length)return n(a,f),oa&&Zr(a,h),s;if(null===f){for(;hm?(g=h,h=null):g=h.sibling;var b=p(a,h,v.value,s);if(null===b){null===h&&(h=g);break}e&&h&&null===b.alternate&&t(a,h),i=o(b,i,m),null===f?c=b:f.sibling=b,f=b,h=g}if(v.done)return n(a,h),oa&&Zr(a,m),c;if(null===h){for(;!v.done;m++,v=u.next())null!==(v=d(a,v.value,s))&&(i=o(v,i,m),null===f?c=v:f.sibling=v,f=v);return oa&&Zr(a,m),c}for(h=r(h);!v.done;m++,v=u.next())null!==(v=y(h,a,m,v.value,s))&&(e&&null!==v.alternate&&h.delete(null===v.key?m:v.key),i=o(v,i,m),null===f?c=v:f.sibling=v,f=v);return e&&h.forEach(function(e){return t(a,e)}),oa&&Zr(a,m),c}(u,s,c=b.call(c),f)}if("function"===typeof c.then)return v(u,s,Xl(c),f);if(c.$$typeof===S)return v(u,s,Pa(u,c),f);Zl(u,c)}return"string"===typeof c&&""!==c||"number"===typeof c||"bigint"===typeof c?(c=""+c,null!==s&&6===s.tag?(n(u,s.sibling),(f=a(s,c)).return=u,u=f):(n(u,s),(f=Br(c,u.mode,f)).return=u,u=f),i(u)):n(u,s)}return function(e,t,n,r){try{Jl=0;var a=v(e,t,n,r);return Yl=null,a}catch(l){if(l===Wa||l===Qa)throw l;var o=Fr(29,l,null,e.mode);return o.lanes=r,o.return=e,o}}}var ni=ti(!0),ri=ti(!1),ai=U(null),oi=null;function li(e){var t=e.alternate;I(ci,1&ci.current),I(ai,e),null===oi&&(null===t||null!==ho.current||null!==t.memoizedState)&&(oi=e)}function ii(e){if(22===e.tag){if(I(ci,ci.current),I(ai,e),null===oi){var t=e.alternate;null!==t&&null!==t.memoizedState&&(oi=e)}}else ui()}function ui(){I(ci,ci.current),I(ai,ai.current)}function si(e){$(ai),oi===e&&(oi=null),$(ci)}var ci=U(0);function fi(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||yf(n)))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!==(128&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}function di(e,t,n,r){n=null===(n=n(r,t=e.memoizedState))||void 0===n?t:d({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var pi={enqueueSetState:function(e,t,n){e=e._reactInternals;var r=As(),a=ao(r);a.payload=t,void 0!==n&&null!==n&&(a.callback=n),null!==(t=oo(e,a,r))&&(Fs(t,e,r),lo(t,e,r))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=As(),a=ao(r);a.tag=1,a.payload=t,void 0!==n&&null!==n&&(a.callback=n),null!==(t=oo(e,a,r))&&(Fs(t,e,r),lo(t,e,r))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=As(),r=ao(n);r.tag=2,void 0!==t&&null!==t&&(r.callback=t),null!==(t=oo(e,r,n))&&(Fs(t,e,n),lo(t,e,n))}};function hi(e,t,n,r,a,o,l){return"function"===typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,l):!t.prototype||!t.prototype.isPureReactComponent||(!Jn(n,r)||!Jn(a,o))}function mi(e,t,n,r){e=t.state,"function"===typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"===typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&pi.enqueueReplaceState(t,t.state,null)}function gi(e,t){var n=t;if("ref"in t)for(var r in n={},t)"ref"!==r&&(n[r]=t[r]);if(e=e.defaultProps)for(var a in n===t&&(n=d({},n)),e)void 0===n[a]&&(n[a]=e[a]);return n}var yi="function"===typeof reportError?reportError:function(e){if("object"===typeof window&&"function"===typeof window.ErrorEvent){var t=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:"object"===typeof e&&null!==e&&"string"===typeof e.message?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if("object"===typeof process&&"function"===typeof process.emit)return void process.emit("uncaughtException",e);console.error(e)};function vi(e){yi(e)}function bi(e){console.error(e)}function wi(e){yi(e)}function Si(e,t){try{(0,e.onUncaughtError)(t.value,{componentStack:t.stack})}catch(n){setTimeout(function(){throw n})}}function ki(e,t,n){try{(0,e.onCaughtError)(n.value,{componentStack:n.stack,errorBoundary:1===t.tag?t.stateNode:null})}catch(r){setTimeout(function(){throw r})}}function Ei(e,t,n){return(n=ao(n)).tag=3,n.payload={element:null},n.callback=function(){Si(e,t)},n}function xi(e){return(e=ao(e)).tag=3,e}function Ci(e,t,n,r){var a=n.type.getDerivedStateFromError;if("function"===typeof a){var o=r.value;e.payload=function(){return a(o)},e.callback=function(){ki(t,n,r)}}var l=n.stateNode;null!==l&&"function"===typeof l.componentDidCatch&&(e.callback=function(){ki(t,n,r),"function"!==typeof a&&(null===xs?xs=new Set([this]):xs.add(this));var e=r.stack;this.componentDidCatch(r.value,{componentStack:null!==e?e:""})})}var Ri=Error(l(461)),Pi=!1;function Ti(e,t,n,r){t.child=null===e?ri(t,null,n,r):ni(t,e.child,n,r)}function _i(e,t,n,r,a){n=n.render;var o=t.ref;if("ref"in r){var l={};for(var i in r)"ref"!==i&&(l[i]=r[i])}else l=r;return Ca(t),r=Lo(e,t,n,l,o,a),i=Fo(),null===e||Pi?(oa&&i&&ta(t),t.flags|=1,Ti(e,t,r,a),t.child):(Do(e,t,a),Yi(e,t,a))}function Ni(e,t,n,r,a){if(null===e){var o=n.type;return"function"!==typeof o||Dr(o)||void 0!==o.defaultProps||null!==n.compare?((e=$r(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=o,Oi(e,t,o,r,a))}if(o=e.child,!Ji(e,a)){var l=o.memoizedProps;if((n=null!==(n=n.compare)?n:Jn)(l,r)&&e.ref===t.ref)return Yi(e,t,a)}return t.flags|=1,(e=Mr(o,r)).ref=t.ref,e.return=t,t.child=e}function Oi(e,t,n,r,a){if(null!==e){var o=e.memoizedProps;if(Jn(o,r)&&e.ref===t.ref){if(Pi=!1,t.pendingProps=r=o,!Ji(e,a))return t.lanes=e.lanes,Yi(e,t,a);0!==(131072&e.flags)&&(Pi=!0)}}return ji(e,t,n,r,a)}function Li(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode){if(0!==(128&t.flags)){if(r=null!==o?o.baseLanes|n:n,null!==e){for(a=t.child=e.child,o=0;null!==a;)o=o|a.lanes|a.childLanes,a=a.sibling;t.childLanes=o&~r}else t.childLanes=0,t.child=null;return zi(e,t,r,n)}if(0===(536870912&n))return t.lanes=t.childLanes=536870912,zi(e,t,null!==o?o.baseLanes|n:n,n);t.memoizedState={baseLanes:0,cachePool:null},null!==e&&Ha(0,null!==o?o.cachePool:null),null!==o?go(t,o):yo(),ii(t)}else null!==o?(Ha(0,o.cachePool),go(t,o),ui(),t.memoizedState=null):(null!==e&&Ha(0,null),yo(),ui());return Ti(e,t,a,n),t.child}function zi(e,t,n,r){var a=Ba();return a=null===a?null:{parent:La._currentValue,pool:a},t.memoizedState={baseLanes:n,cachePool:a},null!==e&&Ha(0,null),yo(),ii(t),null!==e&&Ea(e,t,r,!0),null}function Ai(e,t){var n=t.ref;if(null===n)null!==e&&null!==e.ref&&(t.flags|=4194816);else{if("function"!==typeof n&&"object"!==typeof n)throw Error(l(284));null!==e&&e.ref===n||(t.flags|=4194816)}}function ji(e,t,n,r,a){return Ca(t),n=Lo(e,t,n,r,void 0,a),r=Fo(),null===e||Pi?(oa&&r&&ta(t),t.flags|=1,Ti(e,t,n,a),t.child):(Do(e,t,a),Yi(e,t,a))}function Fi(e,t,n,r,a,o){return Ca(t),t.updateQueue=null,n=Ao(t,r,n,a),zo(e),r=Fo(),null===e||Pi?(oa&&r&&ta(t),t.flags|=1,Ti(e,t,n,o),t.child):(Do(e,t,o),Yi(e,t,o))}function Di(e,t,n,r,a){if(Ca(t),null===t.stateNode){var o=Ar,l=n.contextType;"object"===typeof l&&null!==l&&(o=Ra(l)),o=new n(r,o),t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,o.updater=pi,t.stateNode=o,o._reactInternals=t,(o=t.stateNode).props=r,o.state=t.memoizedState,o.refs={},no(t),l=n.contextType,o.context="object"===typeof l&&null!==l?Ra(l):Ar,o.state=t.memoizedState,"function"===typeof(l=n.getDerivedStateFromProps)&&(di(t,n,l,r),o.state=t.memoizedState),"function"===typeof n.getDerivedStateFromProps||"function"===typeof o.getSnapshotBeforeUpdate||"function"!==typeof o.UNSAFE_componentWillMount&&"function"!==typeof o.componentWillMount||(l=o.state,"function"===typeof o.componentWillMount&&o.componentWillMount(),"function"===typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),l!==o.state&&pi.enqueueReplaceState(o,o.state,null),co(t,r,o,a),so(),o.state=t.memoizedState),"function"===typeof o.componentDidMount&&(t.flags|=4194308),r=!0}else if(null===e){o=t.stateNode;var i=t.memoizedProps,u=gi(n,i);o.props=u;var s=o.context,c=n.contextType;l=Ar,"object"===typeof c&&null!==c&&(l=Ra(c));var f=n.getDerivedStateFromProps;c="function"===typeof f||"function"===typeof o.getSnapshotBeforeUpdate,i=t.pendingProps!==i,c||"function"!==typeof o.UNSAFE_componentWillReceiveProps&&"function"!==typeof o.componentWillReceiveProps||(i||s!==l)&&mi(t,o,r,l),to=!1;var d=t.memoizedState;o.state=d,co(t,r,o,a),so(),s=t.memoizedState,i||d!==s||to?("function"===typeof f&&(di(t,n,f,r),s=t.memoizedState),(u=to||hi(t,n,u,r,d,s,l))?(c||"function"!==typeof o.UNSAFE_componentWillMount&&"function"!==typeof o.componentWillMount||("function"===typeof o.componentWillMount&&o.componentWillMount(),"function"===typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount()),"function"===typeof o.componentDidMount&&(t.flags|=4194308)):("function"===typeof o.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=s),o.props=r,o.state=s,o.context=l,r=u):("function"===typeof o.componentDidMount&&(t.flags|=4194308),r=!1)}else{o=t.stateNode,ro(e,t),c=gi(n,l=t.memoizedProps),o.props=c,f=t.pendingProps,d=o.context,s=n.contextType,u=Ar,"object"===typeof s&&null!==s&&(u=Ra(s)),(s="function"===typeof(i=n.getDerivedStateFromProps)||"function"===typeof o.getSnapshotBeforeUpdate)||"function"!==typeof o.UNSAFE_componentWillReceiveProps&&"function"!==typeof o.componentWillReceiveProps||(l!==f||d!==u)&&mi(t,o,r,u),to=!1,d=t.memoizedState,o.state=d,co(t,r,o,a),so();var p=t.memoizedState;l!==f||d!==p||to||null!==e&&null!==e.dependencies&&xa(e.dependencies)?("function"===typeof i&&(di(t,n,i,r),p=t.memoizedState),(c=to||hi(t,n,c,r,d,p,u)||null!==e&&null!==e.dependencies&&xa(e.dependencies))?(s||"function"!==typeof o.UNSAFE_componentWillUpdate&&"function"!==typeof o.componentWillUpdate||("function"===typeof o.componentWillUpdate&&o.componentWillUpdate(r,p,u),"function"===typeof o.UNSAFE_componentWillUpdate&&o.UNSAFE_componentWillUpdate(r,p,u)),"function"===typeof o.componentDidUpdate&&(t.flags|=4),"function"===typeof o.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!==typeof o.componentDidUpdate||l===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),"function"!==typeof o.getSnapshotBeforeUpdate||l===e.memoizedProps&&d===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=p),o.props=r,o.state=p,o.context=u,r=c):("function"!==typeof o.componentDidUpdate||l===e.memoizedProps&&d===e.memoizedState||(t.flags|=4),"function"!==typeof o.getSnapshotBeforeUpdate||l===e.memoizedProps&&d===e.memoizedState||(t.flags|=1024),r=!1)}return o=r,Ai(e,t),r=0!==(128&t.flags),o||r?(o=t.stateNode,n=r&&"function"!==typeof n.getDerivedStateFromError?null:o.render(),t.flags|=1,null!==e&&r?(t.child=ni(t,e.child,null,a),t.child=ni(t,null,n,a)):Ti(e,t,n,a),t.memoizedState=o.state,e=t.child):e=Yi(e,t,a),e}function Mi(e,t,n,r){return pa(),t.flags|=256,Ti(e,t,n,r),t.child}var Ui={dehydrated:null,treeContext:null,retryLane:0,hydrationErrors:null};function $i(e){return{baseLanes:e,cachePool:qa()}}function Ii(e,t,n){return e=null!==e?e.childLanes&~n:0,t&&(e|=gs),e}function Bi(e,t,n){var r,a=t.pendingProps,o=!1,i=0!==(128&t.flags);if((r=i)||(r=(null===e||null!==e.memoizedState)&&0!==(2&ci.current)),r&&(o=!0,t.flags&=-129),r=0!==(32&t.flags),t.flags&=-33,null===e){if(oa){if(o?li(t):ui(),oa){var u,s=aa;if(u=s){e:{for(u=s,s=ia;8!==u.nodeType;){if(!s){s=null;break e}if(null===(u=vf(u.nextSibling))){s=null;break e}}s=u}null!==s?(t.memoizedState={dehydrated:s,treeContext:null!==Jr?{id:Xr,overflow:Gr}:null,retryLane:536870912,hydrationErrors:null},(u=Fr(18,null,null,0)).stateNode=s,u.return=t,t.child=u,ra=t,aa=null,u=!0):u=!1}u||sa(t)}if(null!==(s=t.memoizedState)&&null!==(s=s.dehydrated))return yf(s)?t.lanes=32:t.lanes=536870912,null;si(t)}return s=a.children,a=a.fallback,o?(ui(),s=qi({mode:"hidden",children:s},o=t.mode),a=Ir(a,o,n,null),s.return=t,a.return=t,s.sibling=a,t.child=s,(o=t.child).memoizedState=$i(n),o.childLanes=Ii(e,r,n),t.memoizedState=Ui,a):(li(t),Hi(t,s))}if(null!==(u=e.memoizedState)&&null!==(s=u.dehydrated)){if(i)256&t.flags?(li(t),t.flags&=-257,t=Wi(e,t,n)):null!==t.memoizedState?(ui(),t.child=e.child,t.flags|=128,t=null):(ui(),o=a.fallback,s=t.mode,a=qi({mode:"visible",children:a.children},s),(o=Ir(o,s,n,null)).flags|=2,a.return=t,o.return=t,a.sibling=o,t.child=a,ni(t,e.child,null,n),(a=t.child).memoizedState=$i(n),a.childLanes=Ii(e,r,n),t.memoizedState=Ui,t=o);else if(li(t),yf(s)){if(r=s.nextSibling&&s.nextSibling.dataset)var c=r.dgst;r=c,(a=Error(l(419))).stack="",a.digest=r,ma({value:a,source:null,stack:null}),t=Wi(e,t,n)}else if(Pi||Ea(e,t,n,!1),r=0!==(n&e.childLanes),Pi||r){if(null!==(r=rs)&&(0!==(a=0!==((a=0!==(42&(a=n&-n))?1:Te(a))&(r.suspendedLanes|n))?0:a)&&a!==u.retryLane))throw u.retryLane=a,Or(e,a),Fs(r,e,a),Ri;"$?"===s.data||Qs(),t=Wi(e,t,n)}else"$?"===s.data?(t.flags|=192,t.child=e.child,t=null):(e=u.treeContext,aa=vf(s.nextSibling),ra=t,oa=!0,la=null,ia=!1,null!==e&&(Kr[Yr++]=Xr,Kr[Yr++]=Gr,Kr[Yr++]=Jr,Xr=e.id,Gr=e.overflow,Jr=t),(t=Hi(t,a.children)).flags|=4096);return t}return o?(ui(),o=a.fallback,s=t.mode,c=(u=e.child).sibling,(a=Mr(u,{mode:"hidden",children:a.children})).subtreeFlags=65011712&u.subtreeFlags,null!==c?o=Mr(c,o):(o=Ir(o,s,n,null)).flags|=2,o.return=t,a.return=t,a.sibling=o,t.child=a,a=o,o=t.child,null===(s=e.child.memoizedState)?s=$i(n):(null!==(u=s.cachePool)?(c=La._currentValue,u=u.parent!==c?{parent:c,pool:c}:u):u=qa(),s={baseLanes:s.baseLanes|n,cachePool:u}),o.memoizedState=s,o.childLanes=Ii(e,r,n),t.memoizedState=Ui,a):(li(t),e=(n=e.child).sibling,(n=Mr(n,{mode:"visible",children:a.children})).return=t,n.sibling=null,null!==e&&(null===(r=t.deletions)?(t.deletions=[e],t.flags|=16):r.push(e)),t.child=n,t.memoizedState=null,n)}function Hi(e,t){return(t=qi({mode:"visible",children:t},e.mode)).return=e,e.child=t}function qi(e,t){return(e=Fr(22,e,null,t)).lanes=0,e.stateNode={_visibility:1,_pendingMarkers:null,_retryCache:null,_transitions:null},e}function Wi(e,t,n){return ni(t,e.child,null,n),(e=Hi(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function Vi(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),Sa(e.return,t,n)}function Qi(e,t,n,r,a){var o=e.memoizedState;null===o?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=a)}function Ki(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(Ti(e,t,r.children,n),0!==(2&(r=ci.current)))r=1&r|2,t.flags|=128;else{if(null!==e&&0!==(128&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Vi(e,n,t);else if(19===e.tag)Vi(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}switch(I(ci,r),a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===fi(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),Qi(t,!1,a,n,o);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===fi(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}Qi(t,!0,n,null,o);break;case"together":Qi(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Yi(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),ps|=t.lanes,0===(n&t.childLanes)){if(null===e)return null;if(Ea(e,t,n,!1),0===(n&t.childLanes))return null}if(null!==e&&t.child!==e.child)throw Error(l(153));if(null!==t.child){for(n=Mr(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Mr(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function Ji(e,t){return 0!==(e.lanes&t)||!(null===(e=e.dependencies)||!xa(e))}function Xi(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps)Pi=!0;else{if(!Ji(e,n)&&0===(128&t.flags))return Pi=!1,function(e,t,n){switch(t.tag){case 3:V(t,t.stateNode.containerInfo),ba(0,La,e.memoizedState.cache),pa();break;case 27:case 5:K(t);break;case 4:V(t,t.stateNode.containerInfo);break;case 10:ba(0,t.type,t.memoizedProps.value);break;case 13:var r=t.memoizedState;if(null!==r)return null!==r.dehydrated?(li(t),t.flags|=128,null):0!==(n&t.child.childLanes)?Bi(e,t,n):(li(t),null!==(e=Yi(e,t,n))?e.sibling:null);li(t);break;case 19:var a=0!==(128&e.flags);if((r=0!==(n&t.childLanes))||(Ea(e,t,n,!1),r=0!==(n&t.childLanes)),a){if(r)return Ki(e,t,n);t.flags|=128}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),I(ci,ci.current),r)break;return null;case 22:case 23:return t.lanes=0,Li(e,t,n);case 24:ba(0,La,e.memoizedState.cache)}return Yi(e,t,n)}(e,t,n);Pi=0!==(131072&e.flags)}else Pi=!1,oa&&0!==(1048576&t.flags)&&ea(t,Qr,t.index);switch(t.lanes=0,t.tag){case 16:e:{e=t.pendingProps;var r=t.elementType,a=r._init;if(r=a(r._payload),t.type=r,"function"!==typeof r){if(void 0!==r&&null!==r){if((a=r.$$typeof)===k){t.tag=11,t=_i(null,t,r,e,n);break e}if(a===C){t.tag=14,t=Ni(null,t,r,e,n);break e}}throw t=L(r)||r,Error(l(306,t,""))}Dr(r)?(e=gi(r,e),t.tag=1,t=Di(null,t,r,e,n)):(t.tag=0,t=ji(null,t,r,e,n))}return t;case 0:return ji(e,t,t.type,t.pendingProps,n);case 1:return Di(e,t,r=t.type,a=gi(r,t.pendingProps),n);case 3:e:{if(V(t,t.stateNode.containerInfo),null===e)throw Error(l(387));r=t.pendingProps;var o=t.memoizedState;a=o.element,ro(e,t),co(t,r,null,n);var i=t.memoizedState;if(r=i.cache,ba(0,La,r),r!==o.cache&&ka(t,[La],n,!0),so(),r=i.element,o.isDehydrated){if(o={element:r,isDehydrated:!1,cache:i.cache},t.updateQueue.baseState=o,t.memoizedState=o,256&t.flags){t=Mi(e,t,r,n);break e}if(r!==a){ma(a=xr(Error(l(424)),t)),t=Mi(e,t,r,n);break e}if(9===(e=t.stateNode.containerInfo).nodeType)e=e.body;else e="HTML"===e.nodeName?e.ownerDocument.body:e;for(aa=vf(e.firstChild),ra=t,oa=!0,la=null,ia=!0,n=ri(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(pa(),r===a){t=Yi(e,t,n);break e}Ti(e,t,r,n)}t=t.child}return t;case 26:return Ai(e,t),null===e?(n=_f(t.type,null,t.pendingProps,null))?t.memoizedState=n:oa||(n=t.type,e=t.pendingProps,(r=rf(q.current).createElement(n))[Le]=t,r[ze]=e,ef(r,n,e),We(r),t.stateNode=r):t.memoizedState=_f(t.type,e.memoizedProps,t.pendingProps,e.memoizedState),null;case 27:return K(t),null===e&&oa&&(r=t.stateNode=Sf(t.type,t.pendingProps,q.current),ra=t,ia=!0,a=aa,hf(t.type)?(bf=a,aa=vf(r.firstChild)):aa=a),Ti(e,t,t.pendingProps.children,n),Ai(e,t),null===e&&(t.flags|=4194304),t.child;case 5:return null===e&&oa&&((a=r=aa)&&(null!==(r=function(e,t,n,r){for(;1===e.nodeType;){var a=n;if(e.nodeName.toLowerCase()!==t.toLowerCase()){if(!r&&("INPUT"!==e.nodeName||"hidden"!==e.type))break}else if(r){if(!e[Ue])switch(t){case"meta":if(!e.hasAttribute("itemprop"))break;return e;case"link":if("stylesheet"===(o=e.getAttribute("rel"))&&e.hasAttribute("data-precedence"))break;if(o!==a.rel||e.getAttribute("href")!==(null==a.href||""===a.href?null:a.href)||e.getAttribute("crossorigin")!==(null==a.crossOrigin?null:a.crossOrigin)||e.getAttribute("title")!==(null==a.title?null:a.title))break;return e;case"style":if(e.hasAttribute("data-precedence"))break;return e;case"script":if(((o=e.getAttribute("src"))!==(null==a.src?null:a.src)||e.getAttribute("type")!==(null==a.type?null:a.type)||e.getAttribute("crossorigin")!==(null==a.crossOrigin?null:a.crossOrigin))&&o&&e.hasAttribute("async")&&!e.hasAttribute("itemprop"))break;return e;default:return e}}else{if("input"!==t||"hidden"!==e.type)return e;var o=null==a.name?null:""+a.name;if("hidden"===a.type&&e.getAttribute("name")===o)return e}if(null===(e=vf(e.nextSibling)))break}return null}(r,t.type,t.pendingProps,ia))?(t.stateNode=r,ra=t,aa=vf(r.firstChild),ia=!1,a=!0):a=!1),a||sa(t)),K(t),a=t.type,o=t.pendingProps,i=null!==e?e.memoizedProps:null,r=o.children,lf(a,o)?r=null:null!==i&&lf(a,i)&&(t.flags|=32),null!==t.memoizedState&&(a=Lo(e,t,jo,null,null,n),Yf._currentValue=a),Ai(e,t),Ti(e,t,r,n),t.child;case 6:return null===e&&oa&&((e=n=aa)&&(null!==(n=function(e,t,n){if(""===t)return null;for(;3!==e.nodeType;){if((1!==e.nodeType||"INPUT"!==e.nodeName||"hidden"!==e.type)&&!n)return null;if(null===(e=vf(e.nextSibling)))return null}return e}(n,t.pendingProps,ia))?(t.stateNode=n,ra=t,aa=null,e=!0):e=!1),e||sa(t)),null;case 13:return Bi(e,t,n);case 4:return V(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=ni(t,null,r,n):Ti(e,t,r,n),t.child;case 11:return _i(e,t,t.type,t.pendingProps,n);case 7:return Ti(e,t,t.pendingProps,n),t.child;case 8:case 12:return Ti(e,t,t.pendingProps.children,n),t.child;case 10:return r=t.pendingProps,ba(0,t.type,r.value),Ti(e,t,r.children,n),t.child;case 9:return a=t.type._context,r=t.pendingProps.children,Ca(t),r=r(a=Ra(a)),t.flags|=1,Ti(e,t,r,n),t.child;case 14:return Ni(e,t,t.type,t.pendingProps,n);case 15:return Oi(e,t,t.type,t.pendingProps,n);case 19:return Ki(e,t,n);case 31:return r=t.pendingProps,n=t.mode,r={mode:r.mode,children:r.children},null===e?((n=qi(r,n)).ref=t.ref,t.child=n,n.return=t,t=n):((n=Mr(e.child,r)).ref=t.ref,t.child=n,n.return=t,t=n),t;case 22:return Li(e,t,n);case 24:return Ca(t),r=Ra(La),null===e?(null===(a=Ba())&&(a=rs,o=za(),a.pooledCache=o,o.refCount++,null!==o&&(a.pooledCacheLanes|=n),a=o),t.memoizedState={parent:r,cache:a},no(t),ba(0,La,a)):(0!==(e.lanes&n)&&(ro(e,t),co(t,null,null,n),so()),a=e.memoizedState,o=t.memoizedState,a.parent!==r?(a={parent:r,cache:r},t.memoizedState=a,0===t.lanes&&(t.memoizedState=t.updateQueue.baseState=a),ba(0,La,r)):(r=o.cache,ba(0,La,r),r!==a.cache&&ka(t,[La],n,!0))),Ti(e,t,t.pendingProps.children,n),t.child;case 29:throw t.pendingProps}throw Error(l(156,t.tag))}function Gi(e){e.flags|=4}function Zi(e,t){if("stylesheet"!==t.type||0!==(4&t.state.loading))e.flags&=-16777217;else if(e.flags|=16777216,!Bf(t)){if(null!==(t=ai.current)&&((4194048&os)===os?null!==oi:(62914560&os)!==os&&0===(536870912&os)||t!==oi))throw Ga=Ka,Va;e.flags|=8192}}function eu(e,t){null!==t&&(e.flags|=4),16384&e.flags&&(t=22!==e.tag?Ee():536870912,e.lanes|=t,ys|=t)}function tu(e,t){if(!oa)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function nu(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=65011712&a.subtreeFlags,r|=65011712&a.flags,a.return=e,a=a.sibling;else for(a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=a.subtreeFlags,r|=a.flags,a.return=e,a=a.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function ru(e,t,n){var r=t.pendingProps;switch(na(t),t.tag){case 31:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:case 1:return nu(t),null;case 3:return n=t.stateNode,r=null,null!==e&&(r=e.memoizedState.cache),t.memoizedState.cache!==r&&(t.flags|=2048),wa(La),Q(),n.pendingContext&&(n.context=n.pendingContext,n.pendingContext=null),null!==e&&null!==e.child||(da(t)?Gi(t):null===e||e.memoizedState.isDehydrated&&0===(256&t.flags)||(t.flags|=1024,ha())),nu(t),null;case 26:return n=t.memoizedState,null===e?(Gi(t),null!==n?(nu(t),Zi(t,n)):(nu(t),t.flags&=-16777217)):n?n!==e.memoizedState?(Gi(t),nu(t),Zi(t,n)):(nu(t),t.flags&=-16777217):(e.memoizedProps!==r&&Gi(t),nu(t),t.flags&=-16777217),null;case 27:Y(t),n=q.current;var a=t.type;if(null!==e&&null!=t.stateNode)e.memoizedProps!==r&&Gi(t);else{if(!r){if(null===t.stateNode)throw Error(l(166));return nu(t),null}e=B.current,da(t)?ca(t):(e=Sf(a,r,n),t.stateNode=e,Gi(t))}return nu(t),null;case 5:if(Y(t),n=t.type,null!==e&&null!=t.stateNode)e.memoizedProps!==r&&Gi(t);else{if(!r){if(null===t.stateNode)throw Error(l(166));return nu(t),null}if(e=B.current,da(t))ca(t);else{switch(a=rf(q.current),e){case 1:e=a.createElementNS("http://www.w3.org/2000/svg",n);break;case 2:e=a.createElementNS("http://www.w3.org/1998/Math/MathML",n);break;default:switch(n){case"svg":e=a.createElementNS("http://www.w3.org/2000/svg",n);break;case"math":e=a.createElementNS("http://www.w3.org/1998/Math/MathML",n);break;case"script":(e=a.createElement("div")).innerHTML=" + + + +
+

ЯлАрба

+

Инновационный агрегатор мест отдыха с ИИ-планировщиком маршрутов

+
+ +
+

О проекте

+

+ ЯлАрба — это супер-приложение для путешественников, объединяющее в себе: +

+
    +
  • Агрегатор мест отдыха (отели, экскурсии, рестораны)
  • +
  • Маркетплейс туров и локальных сувениров
  • +
  • ИИ-планировщик маршрутов с учетом здоровья пользователя
  • +
  • Систему бронирования и покупки билетов
  • +
+

+ Наша миссия — сделать планирование путешествий простым, + персонализированным и доступным. +

+
+ +
+

Разработчик

+

Валитов Газиз

+

+ Full-stack разработчик с опытом в travel-tech проектах. Специализация: + Python/Django, React, системы рекомендаций на основе ИИ. +

+
+ +
+

План разработки

+ +
+

Этап 1: MVP (0-6 месяцев)

+
    +
  • База мест отдыха (1000+ позиций)
  • +
  • Интеграция с API бронирования (Booking.com, Ostrovok)
  • +
  • Прототип ИИ-рекомендаций
  • +
  • Мобильная версия (PWA)
  • +
+
+ +
+

Этап 2: Монетизация (6-12 месяцев)

+
    +
  • Система комиссий (10-15% с бронирований)
  • +
  • Платные подписки (PRO-аккаунт)
  • +
  • Партнерская программа для гидов
  • +
+
+ +
+

Этап 3: Масштабирование (12-24 месяца)

+
    +
  • Выход на рынки СНГ (Казахстан, Узбекистан)
  • +
  • Полноценный ИИ-ассистент с рекомендациями по здоровью
  • +
  • Интеграция с сервисами аренды авто
  • +
+
+
+ +
+

Технологический стек

+
    +
  • Frontend: React.js, TypeScript, PWA
  • +
  • Backend: Python/Django, PostgreSQL
  • +
  • + AI: NLP-модели для обработки запросов, + рекомендательные системы +
  • +
  • DevOps: Docker, Kubernetes, Yandex Cloud
  • +
+
+ +
+

© 2024 ЯлАрба. Все права защищены.

+

Контакты: gaziz.valitov@yalarba.travel

+
+ + diff --git a/serv_spa/spa/app/styles/mainStyle.css b/serv_spa/spa/app/styles/mainStyle.css new file mode 100644 index 0000000..d00e760 --- /dev/null +++ b/serv_spa/spa/app/styles/mainStyle.css @@ -0,0 +1,53 @@ +body { + font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; + line-height: 1.6; + color: #333; + max-width: 800px; + margin: 0 auto; + padding: 20px; + background-color: #f5f7fa; +} +header { + background-color: #1e88e5; + color: white; + padding: 20px; + border-radius: 8px; + margin-bottom: 30px; + text-align: center; +} +h1 { + margin: 0; + font-size: 2.2em; +} +h2 { + color: #1e88e5; + border-bottom: 2px solid #1e88e5; + padding-bottom: 5px; + margin-top: 30px; +} +.developer { + background-color: #e3f2fd; + padding: 15px; + border-radius: 8px; + margin: 20px 0; +} +.roadmap { + background-color: white; + padding: 20px; + border-radius: 8px; + box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); +} +.phase { + margin-bottom: 20px; + padding-bottom: 20px; + border-bottom: 1px dashed #ccc; +} +.phase:last-child { + border-bottom: none; +} +footer { + text-align: center; + margin-top: 40px; + color: #666; + font-size: 0.9em; +} diff --git a/serv_spa/spa/vue/Makefile b/serv_spa/spa/vue/Makefile new file mode 100644 index 0000000..762e428 --- /dev/null +++ b/serv_spa/spa/vue/Makefile @@ -0,0 +1,13 @@ +build: + npm run build + +run: + npm run dev + +deploy: + npm run build + git add . + git commit -m 'build deploy' + git push + +.DEFAULT_GOAL := run \ No newline at end of file diff --git a/serv_spa/spa/vue/README.md b/serv_spa/spa/vue/README.md new file mode 100644 index 0000000..176ef95 --- /dev/null +++ b/serv_spa/spa/vue/README.md @@ -0,0 +1,24 @@ +### Есть задания для фрилансеров. Каждое задание 1000 рублей. + +1. Задача настроить авторизацию через coocky no javaScript. +2. Хранение состояния через vuex. +3. Создать Makefile для работы со сборкой деплоем. + + +## Project Setup + +```sh +npm install +``` + +### Compile and Hot-Reload for Development + +```sh +npm run dev +``` + +### Compile and Minify for Production + +```sh +npm run build +``` diff --git a/serv_spa/spa/vue/advices.txt b/serv_spa/spa/vue/advices.txt new file mode 100644 index 0000000..6c26fb9 --- /dev/null +++ b/serv_spa/spa/vue/advices.txt @@ -0,0 +1,30 @@ +Выбор шрифтов и размеров для мобильных устройств и десктопа зависит от множества факторов, таких как целевая аудитория, дизайн сайта/приложения и цели использования. Тем не менее, есть несколько общих рекомендаций, которые помогут обеспечить хорошую читаемость текста на разных устройствах. + +### Шрифты + +#### Для мобильных устройств: +- **Roboto**: Один из самых популярных шрифтов для Android. Он имеет четкий и чистый вид, хорошо подходит для чтения на небольших экранах. +- **San Francisco**: Стандартный шрифт для iOS. Хорошо сбалансирован и удобен для чтения. +- **Open Sans**: Универсальный шрифт, который отлично смотрится на любых устройствах благодаря своей нейтральной стилистике. + +#### Для десктопных устройств: +- **Georgia**: Классический шрифт с засечками, который идеально подходит для длинных текстов. Обеспечивает комфортное чтение даже на больших экранах. +- **Lato**: Современный шрифт без засечек, легкий и элегантный. Подходит для заголовков и основного текста. +- **Merriweather**: Отличный выбор для длинных статей и блогов. Имеет хорошие пропорции и контрастность. + +### Размеры шрифта + +#### Мобильные устройства: +- **Основной текст**: 16px–18px. Это оптимальный размер для комфортного чтения на маленьких экранах. +- **Заголовки**: 20px–24px для h2, 18px–22px для h3, 16px–20px для h4. + +#### Десктопные устройства: +- **Основной текст**: 18px–20px. Такой размер обеспечивает удобство чтения на больших экранах. +- **Заголовки**: 28px–32px для h2, 24px–28px для h3, 20px–24px для h4. + +### Дополнительные советы: +- Используйте **относительные единицы измерения** (em, rem) вместо абсолютных (px), чтобы шрифт масштабировался вместе с изменением размера экрана. +- Следите за **межстрочным интервалом** (line-height). Оптимальное значение — около 1.5–1.6 для основного текста. +- Убедитесь, что у вас достаточно **контраста между текстом и фоном**. Черный текст на белом фоне — классический пример хорошего сочетания. + +Эти рекомендации помогут создать удобный интерфейс как для мобильных пользователей, так и для тех, кто работает за компьютером. \ No newline at end of file diff --git a/serv_spa/spa/vue/dist/assets/AboutView-B7yELX4Y.js b/serv_spa/spa/vue/dist/assets/AboutView-B7yELX4Y.js new file mode 100644 index 0000000..7cf4e8d --- /dev/null +++ b/serv_spa/spa/vue/dist/assets/AboutView-B7yELX4Y.js @@ -0,0 +1 @@ +import{_ as m,F as g,a as v}from"./footerB-DAi6c01a.js";import{u as p,o,c as n,b as c,t,r as b,a as l,d as k,F as u,e as f}from"./index-DccGIixi.js";const $={setup(){const{t:e}=p();return{t:e}}},x={class:"container"};function F(e,r,_,a,i,d){return o(),n("div",x,[c("h1",null,t(a.t("messages.tripFreedomAdventure.name")),1),c("p",null,t(a.t("messages.tripFreedomAdventure.text")),1)])}const w=m($,[["render",F],["__scopeId","data-v-aa005713"]]),y="/assets/photo_2025-01-25_05-57-24-BwgIchq6.jpg",A={setup(){const{t:e}=p();return{t:e}},methods:{donat(){window.open("https://www.tinkoff.ru/rm/r_fFXNVwPxmH.VMEQXkfWxO/Ho4MN83486","_blank")}},components:{FTA:w}},z={class:"about"};function C(e,r,_,a,i,d){const s=b("FTA");return o(),n("div",z,[l(s),c("p",null,t(a.t("messages.aboutL.donat-request")),1),c("button",{onClick:r[0]||(r[0]=(...h)=>d.donat&&d.donat(...h)),class:"donat-coffee"},t(a.t("messages.aboutL.donat-coffee")),1),r[1]||(r[1]=c("img",{src:y,alt:"Донат QRcod",class:"QRcod"},null,-1))])}const I=m(A,[["render",C],["__scopeId","data-v-6a219422"]]),B={setup(){const{t:e}=p();return{t:e}},data(){return{loading:!0,commits:[],error:null}},mounted(){this.fetchCommits()},methods:{async fetchCommits(){try{const e=await k.get("https://api.github.com/repos/valitovgaziz/spa_/commits",{headers:{Accept:"application/vnd.github.v3+json"}});this.commits=e.data}catch(e){this.error=e.message||"Произошла неизвестная ошибка"}finally{this.loading=!1}}}},L={key:0},V={key:1},N={key:2};function D(e,r,_,a,i,d){return i.loading?(o(),n("div",L,t(a.t("messages.commits.download")),1)):i.error?(o(),n("ul",V,t(a.t("messages.commits.errorOc"))+": "+t(i.error),1)):(o(),n("ul",N,[r[0]||(r[0]=c("h2",null,"Commits",-1)),(o(!0),n(u,null,f(i.commits,s=>(o(),n("li",{key:s.sha},[c("i",null,t(s.author.login)+" "+t(s.commit.author.date.slice(0,10))+" "+t(s.commit.message),1)]))),128))]))}const H=m(B,[["render",D],["__scopeId","data-v-ab2221db"]]),Q={setup(){const{t:e}=p();return{t:e}},name:"DevelopersList",data(){return{developers:[{nickname:"valitovgaziz",name:"Валитов Газиз",profileUrl:"https://github.com/valitovgaziz"}]}}},T={class:"developers"},j={class:"title"},q={class:"developer-list"},E=["href"];function M(e,r,_,a,i,d){return o(),n("div",T,[c("h1",j,t(a.t("messages.aboutL.developers")),1),c("ul",q,[(o(!0),n(u,null,f(i.developers,s=>(o(),n("li",{key:s.name,class:"developer-item"},[c("a",{href:s.profileUrl,target:"_blank",rel:"noopener noreferrer"},t(s.nickname)+" ("+t(s.name)+") ",9,E)]))),128))])])}const O=m(Q,[["render",M],["__scopeId","data-v-948e9ec5"]]),X={__name:"AboutView",setup(e){return(r,_)=>(o(),n(u,null,[l(g),l(I),l(O),l(H),l(v)],64))}};export{X as default}; diff --git a/serv_spa/spa/vue/dist/assets/AboutView-C1FaiPPz.css b/serv_spa/spa/vue/dist/assets/AboutView-C1FaiPPz.css new file mode 100644 index 0000000..09bb666 --- /dev/null +++ b/serv_spa/spa/vue/dist/assets/AboutView-C1FaiPPz.css @@ -0,0 +1 @@ +.container[data-v-aa005713]{max-width:800px;margin:0 auto;padding:20px}h1[data-v-aa005713]{text-align:center;font-size:32px;margin-bottom:30px}p[data-v-aa005713]{line-height:1.6;font-size:18px}.additional-content[data-v-aa005713]{margin-top:40px}@media screen and (max-width: 600px){.container[data-v-aa005713]{padding:10px}h1[data-v-aa005713]{font-size:24px}p[data-v-aa005713]{font-size:16px}}.about[data-v-6a219422]{height:fit-content;display:flex;flex-direction:column;align-items:center;filter:none;padding:1rem;border-radius:1rem;margin:1rem}.donat-coffee[data-v-6a219422]{margin:1rem;background-color:#59db6d;box-shadow:1px 4px 8px #1b2d2533;border-radius:1rem}.donat-coffee[data-v-6a219422]:hover{cursor:pointer;background-color:#0a9632;color:#fff;box-shadow:1px 4px 8px #0a9632}.QRcod[data-v-6a219422]{height:200px;display:flexbox;border-radius:.5rem}ul[data-v-ab2221db]{max-width:1024px;list-style-type:none;padding:0}li[data-v-ab2221db]{margin:.5rem 0;white-space:pre-wrap;width:100%}.developers[data-v-948e9ec5]{max-width:600px;margin:0 auto;padding:20px}.title[data-v-948e9ec5]{text-align:center;font-size:24px;margin-bottom:20px}.developer-list[data-v-948e9ec5]{list-style-type:none;padding-left:0}.developer-item[data-v-948e9ec5]{margin-bottom:10px}.developer-item a[data-v-948e9ec5]{color:#007bff;text-decoration:none}.developer-item a[data-v-948e9ec5]:hover{text-decoration:underline} diff --git a/serv_spa/spa/vue/dist/assets/FeetbackView-CXGcB7N7.js b/serv_spa/spa/vue/dist/assets/FeetbackView-CXGcB7N7.js new file mode 100644 index 0000000..b194da8 --- /dev/null +++ b/serv_spa/spa/vue/dist/assets/FeetbackView-CXGcB7N7.js @@ -0,0 +1 @@ +import{_ as u,F as m,a as _}from"./footerB-DAi6c01a.js";import{u as p,d as v,o as n,c as w,b as r,t as l,w as g,v as b,F as h,e as R,a as c}from"./index-DccGIixi.js";const f={setup(){const{t:e}=p();return{t:e}},data(){return{reviews:[],newReview:"",showAll:!1}},computed:{displayedReviews(){return this.showAll?this.reviews:this.reviews.slice(0,5)}},mounted(){this.loadReviews()},methods:{async loadReviews(){try{const e=await v.get("https://yalarba.ru/api/reviews/reviews");this.reviews=e.data.sort((s,d)=>new Date(d.created_at)-new Date(s.created_at))}catch(e){console.error("Ошибка при загрузке отзывов:",e)}},async submitReview(){if(this.newReview.trim())try{const e=await v.post("https://yalarba.ru/api/reviews/reviews",{text:this.newReview});this.reviews.unshift(e.data),this.newReview=""}catch(e){console.error("Ошибка при отправке отзыва:",e)}},formatDate(e){return new Date(e).toLocaleString()},toggleShowAll(){this.showAll=!this.showAll}}},x={class:"reviews-container"},y={class:"add-review"},A=["placeholder"],k=["disabled"],D=["disabled"],F={class:"reviews-list"};function S(e,s,d,a,o,i){return n(),w("div",x,[r("h2",null,l(a.t("messages.reviews.h2review")),1),r("h4",null,l(a.t("messages.reviews.h4review")),1),r("div",y,[g(r("textarea",{"onUpdate:modelValue":s[0]||(s[0]=t=>o.newReview=t),placeholder:a.t("messages.reviews.textareaplaceholder"),rows:"4"},null,8,A),[[b,o.newReview]]),r("button",{onClick:s[1]||(s[1]=(...t)=>i.submitReview&&i.submitReview(...t)),disabled:!o.newReview.trim()},l(a.t("messages.reviews.button")),9,k),r("button",{onClick:s[2]||(s[2]=(...t)=>i.toggleShowAll&&i.toggleShowAll(...t)),disabled:o.reviews.length===0},l(o.showAll?a.t("messages.reviews.hide"):a.t("messages.reviews.viewAll")),9,D)]),r("div",F,[(n(!0),w(h,null,R(i.displayedReviews,t=>(n(),w("div",{key:t.id,class:"review-item"},[r("p",null,l(t.text),1),r("small",null,l(i.formatDate(t.created_at)),1)]))),128))])])}const B=u(f,[["render",S],["__scopeId","data-v-d1550644"]]),I={__name:"FeetbackView",setup(e){return(s,d)=>(n(),w(h,null,[c(m),c(B),c(_)],64))}};export{I as default}; diff --git a/serv_spa/spa/vue/dist/assets/FeetbackView-Csl9V8Bc.css b/serv_spa/spa/vue/dist/assets/FeetbackView-Csl9V8Bc.css new file mode 100644 index 0000000..98526fd --- /dev/null +++ b/serv_spa/spa/vue/dist/assets/FeetbackView-Csl9V8Bc.css @@ -0,0 +1 @@ +.reviews-container[data-v-d1550644]{max-width:600px;margin:0 auto;padding:20px}.add-review textarea[data-v-d1550644]{width:90%;padding:10px;margin-bottom:10px;border-radius:5px;border:1px solid #ccc;background-color:var(--light-dark-background-color);box-shadow:1px 2px 3px #3d9a60}.add-review textarea[data-v-d1550644]::placeholder{color:var(--light-dark-text-color)}.add-review button[data-v-d1550644]{padding:10px 20px;background-color:var(--button-dark-background-color);color:var(--text-color);border:none;border-radius:.7rem;cursor:pointer;margin-right:10px;box-shadow:1px 2px 3px #3d9a60}.add-review button[data-v-d1550644]:disabled{background-color:var(--disabled-dark-background-color);cursor:not-allowed}.reviews-list[data-v-d1550644]{margin-top:2rem;width:90%}.review-item[data-v-d1550644]{background:var(--light-dark-background-color);padding:15px;border-radius:5px;margin-bottom:10px;box-shadow:1px 2px 3px #3d9a60}.review-item p[data-v-d1550644]{margin:0}.review-item small[data-v-d1550644]{color:var(--light-dark-text-color);font-size:.9em} diff --git a/serv_spa/spa/vue/dist/assets/HomeView-C0JCTEr_.css b/serv_spa/spa/vue/dist/assets/HomeView-C0JCTEr_.css new file mode 100644 index 0000000..a0b8985 --- /dev/null +++ b/serv_spa/spa/vue/dist/assets/HomeView-C0JCTEr_.css @@ -0,0 +1 @@ +@font-face{font-family:OpenSansVariableFont;src:url(/assets/hinted-OpenSans-Regular-DZwYhniE.ttf) format("truetype-variations"),url(/assets/OpenSans-Regular-C74AleX8.woff) format("woff"),url(/assets/OpenSans-Regular-BT0WUJf-.woff2) format("woff2");font-weight:100 900;font-stretch:50% 200%}@font-face{font-family:OpenSansItalicVariableFont;src:url(/assets/hinted-OpenSans-Italic-BD2qe0ib.ttf) format("truetype-variations"),url(/assets/OpenSans-Italic-Cv5d4RQ-.woff) format("woff"),url(/assets/OpenSans-Italic-DNMplG0v.woff2) format("woff2");font-style:italic;font-weight:100 900;font-stretch:50% 200%}@font-face{font-family:RobotoVariableFont;src:url(/assets/hinted-Roboto-Regular-CFXqJ5DR.ttf) format("truetype-variations"),url(/assets/Roboto-Regular-n8vMMKqC.woff) format("woff"),url(/assets/Roboto-Regular-jtJqKL8A.woff2) format("woff2");font-weight:100 900;font-stretch:50% 200%}@font-face{font-family:RobotoItalicVarFont;src:url(/assets/hinted-Roboto-Italic-CDlkg4IH.ttf) format("truetype-variations"),url(/assets/Roboto-Italic-uZr_9iaA.woff) format("woff"),url(/assets/Roboto-Italic-DS1crIJz.woff2) format("woff2");font-style:italic;font-weight:100 900;font-stretch:50% 200%}:root{--font-primary: "OpenSansVariableFont", Arial, sans-serif;--font-secondary: "RobotoItalicVarFont", Arial, sans-serif;--weight-light: 300;--weight-normal: 400;--weight-bold: 700}body{font-family:var(--font-primary);font-weight:var(--weight-normal)}h1,h2,h3{font-family:var(--font-secondary);font-weight:var(--weight-light)}:root{--background-color: #ffffff;--text-color: #1c1d1d;--light-dark-background-color: #ffffff;--light-dark-text-color: #273f2c;--disabled-backgroud-color: rgba(23, 62, 31, .281);--button-text-color: #bac677;--disabled-dark-background-color: rgba(55, 64, 62, .2);--button-dark-background-color: #3cbf40;--light-dark-background-color: #8cd68f}[data-theme=dark]{--background-color: #282828;--text-color: #3cb756;--light-dark-background-color: #4e5e49;--light-dark-text-color: #59f37b;--disabled-dark-background-color: rgba(159, 193, 185, .2);--button-dark-background-color: #395e3a}a{color:inherit;text-decoration:none}a:visited{color:inherit}a:hover{text-decoration:none}a:active{color:inherit}html,body{background-color:var(--background-color);color:var(--text-color);margin:0;padding:0;height:fit-content;width:100%;font-family:Arial,sans-serif;transition:background-color .3s,color .3s;min-width:320px}body{display:flex;flex-direction:column;align-items:center;justify-content:center}.main{margin:2rem;min-height:90vh;min-width:320px;max-width:1024px;height:100%;width:100%;border-radius:1rem;display:flex;align-items:center;flex-direction:column;justify-content:space-between;padding:1rem 0 0}@media only screen and (max-width: 600px){.main{margin:.5rem;min-height:80vh;min-width:auto;max-width:90vw;width:90%;border-radius:.5rem}} diff --git a/serv_spa/spa/vue/dist/assets/HomeView-zKlroz3N.js b/serv_spa/spa/vue/dist/assets/HomeView-zKlroz3N.js new file mode 100644 index 0000000..0a6c413 --- /dev/null +++ b/serv_spa/spa/vue/dist/assets/HomeView-zKlroz3N.js @@ -0,0 +1 @@ +import{F as a,a as r}from"./footerB-DAi6c01a.js";import{S as o}from"./searchLine-3vDx-8Ye.js";import{c as t,a as e,F as s,o as c}from"./index-DccGIixi.js";const f={__name:"HomeView",setup(m){return(n,p)=>(c(),t(s,null,[e(a),e(o),e(r)],64))}};export{f as default}; diff --git a/serv_spa/spa/vue/dist/assets/LogInView-CCzg48Go.js b/serv_spa/spa/vue/dist/assets/LogInView-CCzg48Go.js new file mode 100644 index 0000000..39dcdde --- /dev/null +++ b/serv_spa/spa/vue/dist/assets/LogInView-CCzg48Go.js @@ -0,0 +1 @@ +import{_ as x,F as V,a as F}from"./footerB-DAi6c01a.js";import{i as d,u as S,j as B,k as I,l as L,m as s,o as c,c as m,t as n,b as e,w as h,v as g,f as A,a as p,F as M}from"./index-DccGIixi.js";const R={key:0},q={key:1,class:"logout"},C={key:2,class:"login-form"},D={class:"form-group"},E={for:"email"},N=["placeholder"],U={class:"form-group"},$={for:"password"},j=["placeholder"],G={type:"submit"},H={__name:"inout",setup(v){const l=d("");d(!0);const a=d("");d(!0);const{t:r}=S(),_=B(),i=I();let t=d(!1);L(async()=>{t=!0,i.checkAuth().catch(o=>console.error("Check auth failed",o)),t=!1});async function w(){if(t=!0,!b(l.value)||!y(a.value)){alert("Пожалуйста, заполните все поля корректно."),t=!1;return}try{await i.login({email:l.value,password:a.value}),t=!1,_.push("/")}catch(o){console.error(o),alert("Неверный email или пароль. Попробуйте снова.")}}function y(o){return!(a.length===0||a.length<6)}function b(o){return!(o.length===0||!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(o))}function k(){t=!0,i.logout(),t=!1,_.push("/")}return(o,u)=>s(t)?(c(),m("div",R,n(s(r)("messages.load"))+" . . .",1)):s(i).isAuthenticated?(c(),m("div",q,[e("div",null,[e("p",null,"Good by "+n(s(i).user.name)+"!",1),e("button",{onClick:k},"Logout")])])):(c(),m("div",C,[e("h1",null,n(s(r)("messages.inout.login")),1),e("form",{onSubmit:A(w,["prevent"])},[e("div",D,[e("label",E,n(s(r)("messages.inout.email"))+": ",1),h(e("input",{"onUpdate:modelValue":u[0]||(u[0]=f=>l.value=f),type:"email",id:"email",required:"",placeholder:s(r)("messages.inout.email")},null,8,N),[[g,l.value,void 0,{trim:!0}]])]),e("div",U,[e("label",$,n(s(r)("messages.inout.password"))+": ",1),h(e("input",{"onUpdate:modelValue":u[1]||(u[1]=f=>a.value=f),type:"password",id:"password",required:"",placeholder:s(r)("messages.inout.password")},null,8,j),[[g,a.value,void 0,{trim:!0}]])]),e("button",G,n(s(r)("messages.inout.login")),1)],32)]))}},P=x(H,[["__scopeId","data-v-1bd59691"]]),J={__name:"LogInView",setup(v){return(l,a)=>(c(),m(M,null,[p(V),p(P),p(F)],64))}};export{J as default}; diff --git a/serv_spa/spa/vue/dist/assets/LogInView-Co-3gSCv.css b/serv_spa/spa/vue/dist/assets/LogInView-Co-3gSCv.css new file mode 100644 index 0000000..a650651 --- /dev/null +++ b/serv_spa/spa/vue/dist/assets/LogInView-Co-3gSCv.css @@ -0,0 +1 @@ +.login-form[data-v-1bd59691]{padding:0 2rem 2rem;border:1px solid #ccc;border-radius:1rem;box-shadow:1px 2px 3px #609f7d}.form-group[data-v-1bd59691]{margin-bottom:1rem}.form-group label[data-v-1bd59691]{display:block}.form-group input[data-v-1bd59691]{padding:.7rem;border:none;border-radius:1rem;background-color:var(--light-dark-background-color);color:var(--text-color);box-shadow:1px 2px 3px #609f7d}button[data-v-1bd59691]{margin-top:.7rem;padding:.7rem 1.7rem;background-color:var(--button-dark-background-color);color:var(--text-color);border:none;border-radius:1rem;cursor:pointer;box-shadow:1px 2px 3px #609f7d}button[data-v-1bd59691]:hover{box-shadow:0 0 6px #609f7d} diff --git a/serv_spa/spa/vue/dist/assets/OpenSans-Italic-Cv5d4RQ-.woff b/serv_spa/spa/vue/dist/assets/OpenSans-Italic-Cv5d4RQ-.woff new file mode 100644 index 0000000..4776faf Binary files /dev/null and b/serv_spa/spa/vue/dist/assets/OpenSans-Italic-Cv5d4RQ-.woff differ diff --git a/serv_spa/spa/vue/dist/assets/OpenSans-Italic-DNMplG0v.woff2 b/serv_spa/spa/vue/dist/assets/OpenSans-Italic-DNMplG0v.woff2 new file mode 100644 index 0000000..43b0685 Binary files /dev/null and b/serv_spa/spa/vue/dist/assets/OpenSans-Italic-DNMplG0v.woff2 differ diff --git a/serv_spa/spa/vue/dist/assets/OpenSans-Regular-BT0WUJf-.woff2 b/serv_spa/spa/vue/dist/assets/OpenSans-Regular-BT0WUJf-.woff2 new file mode 100644 index 0000000..5f2441b Binary files /dev/null and b/serv_spa/spa/vue/dist/assets/OpenSans-Regular-BT0WUJf-.woff2 differ diff --git a/serv_spa/spa/vue/dist/assets/OpenSans-Regular-C74AleX8.woff b/serv_spa/spa/vue/dist/assets/OpenSans-Regular-C74AleX8.woff new file mode 100644 index 0000000..33e8eac Binary files /dev/null and b/serv_spa/spa/vue/dist/assets/OpenSans-Regular-C74AleX8.woff differ diff --git a/serv_spa/spa/vue/dist/assets/ProfileView-BuVzjMSP.js b/serv_spa/spa/vue/dist/assets/ProfileView-BuVzjMSP.js new file mode 100644 index 0000000..8651af8 --- /dev/null +++ b/serv_spa/spa/vue/dist/assets/ProfileView-BuVzjMSP.js @@ -0,0 +1 @@ +import{_ as m,F as p,a as _}from"./footerB-DAi6c01a.js";import{o as r,c as l,b as e,t as n,w as v,v as y,f as P,F as u,e as d,g as h,a as c}from"./index-DccGIixi.js";const k={name:"Profile",data(){return{user:{avatar:"https://via.placeholder.com/150",name:"Иван Иванов",email:"ivan@example.com",places:[{id:1,title:"Место 1",description:"Описание места 1",editUrl:"/edit-place/1"},{id:2,title:"Место 2",description:"Описание места 2",editUrl:"/edit-place/2"}]},searchQuery:""}},computed:{filteredPlaces(){return this.searchQuery?this.user.places.filter(o=>o.title.toLowerCase().includes(this.searchQuery.toLowerCase())):this.user.places}},methods:{editUserInfo(){alert("Редактируем информацию о пользователе...")},searchPlaces(){console.log(`Поиск мест по запросу: ${this.searchQuery}`)}}},g={class:"profile"},x={class:"profile-header"},Q=["src"],U={class:"name"},w={class:"email"},b={class:"search-form"},C={key:0,class:"search-results"},F=["href"],V={key:1,class:"places-list"},B=["href"];function I(o,s,f,N,i,a){return r(),l("div",g,[e("header",x,[e("img",{src:i.user.avatar,alt:"Avatar",class:"avatar"},null,8,Q),e("h1",U,n(i.user.name),1),e("p",w,n(i.user.email),1)]),e("button",{onClick:s[0]||(s[0]=t=>a.editUserInfo()),class:"edit-profile-btn"},"Редактировать профиль"),e("form",b,[v(e("input",{type:"text",placeholder:"Поиск...","onUpdate:modelValue":s[1]||(s[1]=t=>i.searchQuery=t)},null,512),[[y,i.searchQuery,void 0,{trim:!0}]]),e("button",{onClick:s[2]||(s[2]=P(t=>a.searchPlaces(),["prevent"]))},"Найти")]),a.filteredPlaces.length>0&&i.searchQuery!==""?(r(),l("section",C,[s[3]||(s[3]=e("h2",null,"Результаты поиска",-1)),e("ul",null,[(r(!0),l(u,null,d(a.filteredPlaces,t=>(r(),l("li",{key:t.id,class:"place-item"},[e("h3",null,[e("a",{href:t.editUrl},n(t.title),9,F)]),e("p",null,n(t.description),1)]))),128))])])):h("",!0),a.filteredPlaces.length>0?(r(),l("section",V,[s[4]||(s[4]=e("h2",null,"Места",-1)),e("ul",null,[(r(!0),l(u,null,d(a.filteredPlaces,t=>(r(),l("li",{key:t.id,class:"place-item"},[e("h3",null,[e("a",{href:t.editUrl},n(t.title),9,B)]),e("p",null,n(t.description),1)]))),128))])])):h("",!0)])}const L=m(k,[["render",I],["__scopeId","data-v-f0c15aba"]]),A={__name:"ProfileView",setup(o){return(s,f)=>(r(),l(u,null,[c(p),c(L),c(_)],64))}};export{A as default}; diff --git a/serv_spa/spa/vue/dist/assets/ProfileView-COXJamv9.css b/serv_spa/spa/vue/dist/assets/ProfileView-COXJamv9.css new file mode 100644 index 0000000..3d0c364 --- /dev/null +++ b/serv_spa/spa/vue/dist/assets/ProfileView-COXJamv9.css @@ -0,0 +1 @@ +.profile[data-v-f0c15aba]{display:flex;flex-direction:column;align-items:center}.profile-header[data-v-f0c15aba]{text-align:center;margin-bottom:20px}.avatar[data-v-f0c15aba]{width:100px;height:100px;border-radius:50%;object-fit:cover;margin-bottom:10px}.name[data-v-f0c15aba]{font-size:24px;margin-top:0}.email[data-v-f0c15aba]{color:#666;font-size:16px}.edit-profile-btn[data-v-f0c15aba]{padding:8px 12px;background-color:#4caf50;color:#fff;border:none;cursor:pointer;margin-bottom:20px}.places-list h2[data-v-f0c15aba],.search-results h2[data-v-f0c15aba]{margin-top:30px;margin-bottom:10px}.place-item[data-v-f0c15aba]{margin-bottom:15px}.search-form[data-v-f0c15aba]{max-width:300px;width:100%;margin-bottom:20px}.search-form input[data-v-f0c15aba]{width:calc(100% - 80px);padding:8px;border:1px solid #ccc;border-right:none;border-top-left-radius:5px;border-bottom-left-radius:5px}.search-form button[data-v-f0c15aba]{width:70px;padding:8px;background-color:#2196f3;color:#fff;border:none;border-top-right-radius:5px;border-bottom-right-radius:5px;cursor:pointer}@media (max-width: 600px){.profile[data-v-f0c15aba]{width:90%}.search-form[data-v-f0c15aba]{width:100%}} diff --git a/serv_spa/spa/vue/dist/assets/RegistrationView-C0Di_tAT.js b/serv_spa/spa/vue/dist/assets/RegistrationView-C0Di_tAT.js new file mode 100644 index 0000000..be40a7a --- /dev/null +++ b/serv_spa/spa/vue/dist/assets/RegistrationView-C0Di_tAT.js @@ -0,0 +1,63 @@ +import{_ as Uc,F as qc,a as jc}from"./footerB-DAi6c01a.js";import{u as $c,o as yo,c as go,b as Re,t as Gt,w as xr,v as Pr,f as Vc,a as wr,F as zc}from"./index-DccGIixi.js";/** +* @vue/compiler-sfc v3.5.13 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function ut(t){const s=Object.create(null);for(const n of t.split(","))s[n]=1;return n=>n in s}const bs=()=>!1,xo=t=>t.charCodeAt(0)===111&&t.charCodeAt(1)===110&&(t.charCodeAt(2)>122||t.charCodeAt(2)<97),Un=Object.assign,Hc=Object.prototype.hasOwnProperty,Wc=(t,s)=>Hc.call(t,s),Gc=Array.isArray,Fe=t=>typeof t=="string",Po=t=>typeof t=="symbol",wo=t=>t!==null&&typeof t=="object",qn=ut(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Kc=ut("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),Li=t=>{const s=Object.create(null);return n=>s[n]||(s[n]=t(n))},Jc=/-(\w)/g,Ze=Li(t=>t.replace(Jc,(s,n)=>n?n.toUpperCase():"")),Hs=Li(t=>t.charAt(0).toUpperCase()+t.slice(1)),Yc=Li(t=>t?`on${Hs(t)}`:""),Xc=/^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/;function jn(t){return Xc.test(t)?`__props.${t}`:`__props[${JSON.stringify(t)}]`}const Qc={1:"TEXT",2:"CLASS",4:"STYLE",8:"PROPS",16:"FULL_PROPS",32:"NEED_HYDRATION",64:"STABLE_FRAGMENT",128:"KEYED_FRAGMENT",256:"UNKEYED_FRAGMENT",512:"NEED_PATCH",1024:"DYNAMIC_SLOTS",2048:"DEV_ROOT_FRAGMENT",[-1]:"HOISTED",[-2]:"BAIL"},Zc={1:"STABLE",2:"DYNAMIC",3:"FORWARDED"},eu="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol",So=ut(eu),tu=/;(?![^(]*\))/g,su=/:([^]+)/,ru=/\/\*[^]*?\*\//g;function iu(t){const s={};return t.replace(ru,"").split(tu).forEach(n=>{if(n){const o=n.split(su);o.length>1&&(s[o[0].trim()]=o[1].trim())}}),s}const _s=Symbol("Fragment"),Xt=Symbol("Teleport"),Mi=Symbol("Suspense"),Rs=Symbol("KeepAlive"),bo=Symbol("BaseTransition"),Ut=Symbol("openBlock"),Ao=Symbol("createBlock"),To=Symbol("createElementBlock"),Eo=Symbol("createVNode"),vo=Symbol("createElementVNode"),_i=Symbol("createCommentVNode"),Co=Symbol("createTextVNode"),nu=Symbol("createStaticVNode"),pi=Symbol("resolveComponent"),Ri=Symbol("resolveDynamicComponent"),Io=Symbol("resolveDirective"),au=Symbol("resolveFilter"),No=Symbol("withDirectives"),Di=Symbol("renderList"),ko=Symbol("renderSlot"),Oo=Symbol("createSlots"),Bi=Symbol("toDisplayString"),Ds=Symbol("mergeProps"),Fi=Symbol("normalizeClass"),Ui=Symbol("normalizeStyle"),Zt=Symbol("normalizeProps"),as=Symbol("guardReactiveProps"),qi=Symbol("toHandlers"),fi=Symbol("camelize"),ou=Symbol("capitalize"),di=Symbol("toHandlerKey"),Lo=Symbol("setBlockTracking"),lu=Symbol("pushScopeId"),hu=Symbol("popScopeId"),Mo=Symbol("withCtx"),Bs=Symbol("unref"),Fs=Symbol("isRef"),ji=Symbol("withMemo"),_o=Symbol("isMemoSame"),cu={[_s]:"Fragment",[Xt]:"Teleport",[Mi]:"Suspense",[Rs]:"KeepAlive",[bo]:"BaseTransition",[Ut]:"openBlock",[Ao]:"createBlock",[To]:"createElementBlock",[Eo]:"createVNode",[vo]:"createElementVNode",[_i]:"createCommentVNode",[Co]:"createTextVNode",[nu]:"createStaticVNode",[pi]:"resolveComponent",[Ri]:"resolveDynamicComponent",[Io]:"resolveDirective",[au]:"resolveFilter",[No]:"withDirectives",[Di]:"renderList",[ko]:"renderSlot",[Oo]:"createSlots",[Bi]:"toDisplayString",[Ds]:"mergeProps",[Fi]:"normalizeClass",[Ui]:"normalizeStyle",[Zt]:"normalizeProps",[as]:"guardReactiveProps",[qi]:"toHandlers",[fi]:"camelize",[ou]:"capitalize",[di]:"toHandlerKey",[Lo]:"setBlockTracking",[lu]:"pushScopeId",[hu]:"popScopeId",[Mo]:"withCtx",[Bs]:"unref",[Fs]:"isRef",[ji]:"withMemo",[_o]:"isMemoSame"};function Ro(t){Object.getOwnPropertySymbols(t).forEach(s=>{cu[s]=t[s]})}const je={start:{line:1,column:1,offset:0},end:{line:1,column:1,offset:0},source:""};function Us(t,s,n,o,l,u,c,f=!1,p=!1,x=!1,g=je){return t&&(f?(t.helper(Ut),t.helper(ts(t.inSSR,x))):t.helper(es(t.inSSR,x)),c&&t.helper(No)),{type:13,tag:s,props:n,children:o,patchFlag:l,dynamicProps:u,directives:c,isBlock:f,disableTracking:p,isComponent:x,loc:g}}function Ws(t,s=je){return{type:17,loc:s,elements:t}}function Be(t,s=je){return{type:15,loc:s,properties:t}}function ce(t,s){return{type:16,loc:je,key:Fe(t)?X(t,!0):t,value:s}}function X(t,s=!1,n=je,o=0){return{type:4,loc:n,content:t,isStatic:s,constType:s?3:o}}function Ce(t,s=je){return{type:8,loc:s,children:t}}function de(t,s=[],n=je){return{type:14,loc:n,callee:t,arguments:s}}function qt(t,s=void 0,n=!1,o=!1,l=je){return{type:18,params:t,returns:s,newline:n,isSlot:o,loc:l}}function mi(t,s,n,o=!0){return{type:19,test:t,consequent:s,alternate:n,newline:o,loc:je}}function uu(t){return{type:21,body:t,loc:je}}function es(t,s){return t||s?Eo:vo}function ts(t,s){return t||s?Ao:To}function Do(t,{helper:s,removeHelper:n,inSSR:o}){t.isBlock||(t.isBlock=!0,n(es(o,t.isComponent)),s(Ut),s(ts(o,t.isComponent)))}var Bo=new Uint16Array('ᵁ<Õıʊҝջאٵ۞ޢߖࠏ੊ઑඡ๭༉༦჊ረዡᐕᒝᓃᓟᔥ\0\0\0\0\0\0ᕫᛍᦍᰒᷝ὾⁠↰⊍⏀⏻⑂⠤⤒ⴈ⹈⿎〖㊺㘹㞬㣾㨨㩱㫠㬮ࠀEMabcfglmnoprstu\\bfms„‹•˜¦³¹ÈÏlig耻Æ䃆P耻&䀦cute耻Á䃁reve;䄂Āiyx}rc耻Â䃂;䐐r;쀀𝔄rave耻À䃀pha;䎑acr;䄀d;橓Āgp¡on;䄄f;쀀𝔸plyFunction;恡ing耻Å䃅Ācs¾Ãr;쀀𝒜ign;扔ilde耻Ã䃃ml耻Ä䃄ЀaceforsuåûþėĜĢħĪĀcrêòkslash;或Ŷöø;櫧ed;挆y;䐑ƀcrtąċĔause;戵noullis;愬a;䎒r;쀀𝔅pf;쀀𝔹eve;䋘còēmpeq;扎܀HOacdefhilorsuōőŖƀƞƢƵƷƺǜȕɳɸɾcy;䐧PY耻©䂩ƀcpyŝŢźute;䄆Ā;iŧŨ拒talDifferentialD;慅leys;愭ȀaeioƉƎƔƘron;䄌dil耻Ç䃇rc;䄈nint;戰ot;䄊ĀdnƧƭilla;䂸terDot;䂷òſi;䎧rcleȀDMPTLJNjǑǖot;抙inus;抖lus;投imes;抗oĀcsǢǸkwiseContourIntegral;戲eCurlyĀDQȃȏoubleQuote;思uote;怙ȀlnpuȞȨɇɕonĀ;eȥȦ户;橴ƀgitȯȶȺruent;扡nt;戯ourIntegral;戮ĀfrɌɎ;愂oduct;成nterClockwiseContourIntegral;戳oss;樯cr;쀀𝒞pĀ;Cʄʅ拓ap;才րDJSZacefiosʠʬʰʴʸˋ˗ˡ˦̳ҍĀ;oŹʥtrahd;椑cy;䐂cy;䐅cy;䐏ƀgrsʿ˄ˇger;怡r;憡hv;櫤Āayː˕ron;䄎;䐔lĀ;t˝˞戇a;䎔r;쀀𝔇Āaf˫̧Ācm˰̢riticalȀADGT̖̜̀̆cute;䂴oŴ̋̍;䋙bleAcute;䋝rave;䁠ilde;䋜ond;拄ferentialD;慆Ѱ̽\0\0\0͔͂\0Ѕf;쀀𝔻ƀ;DE͈͉͍䂨ot;惜qual;扐blèCDLRUVͣͲ΂ϏϢϸontourIntegraìȹoɴ͹\0\0ͻ»͉nArrow;懓Āeo·ΤftƀARTΐΖΡrrow;懐ightArrow;懔eåˊngĀLRΫτeftĀARγιrrow;柸ightArrow;柺ightArrow;柹ightĀATϘϞrrow;懒ee;抨pɁϩ\0\0ϯrrow;懑ownArrow;懕erticalBar;戥ǹABLRTaВЪаўѿͼrrowƀ;BUНОТ憓ar;椓pArrow;懵reve;䌑eft˒к\0ц\0ѐightVector;楐eeVector;楞ectorĀ;Bљњ憽ar;楖ightǔѧ\0ѱeeVector;楟ectorĀ;BѺѻ懁ar;楗eeĀ;A҆҇护rrow;憧ĀctҒҗr;쀀𝒟rok;䄐ࠀNTacdfglmopqstuxҽӀӄӋӞӢӧӮӵԡԯԶՒ՝ՠեG;䅊H耻Ð䃐cute耻É䃉ƀaiyӒӗӜron;䄚rc耻Ê䃊;䐭ot;䄖r;쀀𝔈rave耻È䃈ement;戈ĀapӺӾcr;䄒tyɓԆ\0\0ԒmallSquare;旻erySmallSquare;斫ĀgpԦԪon;䄘f;쀀𝔼silon;䎕uĀaiԼՉlĀ;TՂՃ橵ilde;扂librium;懌Āci՗՚r;愰m;橳a;䎗ml耻Ë䃋Āipժկsts;戃onentialE;慇ʀcfiosօֈ֍ֲ׌y;䐤r;쀀𝔉lledɓ֗\0\0֣mallSquare;旼erySmallSquare;斪Ͱֺ\0ֿ\0\0ׄf;쀀𝔽All;戀riertrf;愱cò׋؀JTabcdfgorstר׬ׯ׺؀ؒؖ؛؝أ٬ٲcy;䐃耻>䀾mmaĀ;d׷׸䎓;䏜reve;䄞ƀeiy؇،ؐdil;䄢rc;䄜;䐓ot;䄠r;쀀𝔊;拙pf;쀀𝔾eater̀EFGLSTصلَٖٛ٦qualĀ;Lؾؿ扥ess;招ullEqual;执reater;檢ess;扷lantEqual;橾ilde;扳cr;쀀𝒢;扫ЀAacfiosuڅڋږڛڞڪھۊRDcy;䐪Āctڐڔek;䋇;䁞irc;䄤r;愌lbertSpace;愋ǰگ\0ڲf;愍izontalLine;攀Āctۃۅòکrok;䄦mpńېۘownHumðįqual;扏܀EJOacdfgmnostuۺ۾܃܇܎ܚܞܡܨ݄ݸދޏޕcy;䐕lig;䄲cy;䐁cute耻Í䃍Āiyܓܘrc耻Î䃎;䐘ot;䄰r;愑rave耻Ì䃌ƀ;apܠܯܿĀcgܴܷr;䄪inaryI;慈lieóϝǴ݉\0ݢĀ;eݍݎ戬Āgrݓݘral;戫section;拂isibleĀCTݬݲomma;恣imes;恢ƀgptݿރވon;䄮f;쀀𝕀a;䎙cr;愐ilde;䄨ǫޚ\0ޞcy;䐆l耻Ï䃏ʀcfosuެ޷޼߂ߐĀiyޱ޵rc;䄴;䐙r;쀀𝔍pf;쀀𝕁ǣ߇\0ߌr;쀀𝒥rcy;䐈kcy;䐄΀HJacfosߤߨ߽߬߱ࠂࠈcy;䐥cy;䐌ppa;䎚Āey߶߻dil;䄶;䐚r;쀀𝔎pf;쀀𝕂cr;쀀𝒦րJTaceflmostࠥࠩࠬࡐࡣ঳সে্਷ੇcy;䐉耻<䀼ʀcmnpr࠷࠼ࡁࡄࡍute;䄹bda;䎛g;柪lacetrf;愒r;憞ƀaeyࡗ࡜ࡡron;䄽dil;䄻;䐛Āfsࡨ॰tԀACDFRTUVarࡾࢩࢱࣦ࣠ࣼयज़ΐ४Ānrࢃ࢏gleBracket;柨rowƀ;BR࢙࢚࢞憐ar;懤ightArrow;懆eiling;挈oǵࢷ\0ࣃbleBracket;柦nǔࣈ\0࣒eeVector;楡ectorĀ;Bࣛࣜ懃ar;楙loor;挊ightĀAV࣯ࣵrrow;憔ector;楎Āerँगeƀ;AVउऊऐ抣rrow;憤ector;楚iangleƀ;BEतथऩ抲ar;槏qual;抴pƀDTVषूौownVector;楑eeVector;楠ectorĀ;Bॖॗ憿ar;楘ectorĀ;B॥०憼ar;楒ightáΜs̀EFGLSTॾঋকঝঢভqualGreater;拚ullEqual;扦reater;扶ess;檡lantEqual;橽ilde;扲r;쀀𝔏Ā;eঽা拘ftarrow;懚idot;䄿ƀnpw৔ਖਛgȀLRlr৞৷ਂਐeftĀAR০৬rrow;柵ightArrow;柷ightArrow;柶eftĀarγਊightáοightáϊf;쀀𝕃erĀLRਢਬeftArrow;憙ightArrow;憘ƀchtਾੀੂòࡌ;憰rok;䅁;扪Ѐacefiosuਗ਼੝੠੷੼અઋ઎p;椅y;䐜Ādl੥੯iumSpace;恟lintrf;愳r;쀀𝔐nusPlus;戓pf;쀀𝕄cò੶;䎜ҀJacefostuણધભીଔଙඑ඗ඞcy;䐊cute;䅃ƀaey઴હાron;䅇dil;䅅;䐝ƀgswે૰଎ativeƀMTV૓૟૨ediumSpace;怋hiĀcn૦૘ë૙eryThiî૙tedĀGL૸ଆreaterGreateòٳessLesóੈLine;䀊r;쀀𝔑ȀBnptଢନଷ଺reak;恠BreakingSpace;䂠f;愕ڀ;CDEGHLNPRSTV୕ୖ୪୼஡௫ఄ౞಄ದ೘ൡඅ櫬Āou୛୤ngruent;扢pCap;扭oubleVerticalBar;戦ƀlqxஃஊ஛ement;戉ualĀ;Tஒஓ扠ilde;쀀≂̸ists;戄reater΀;EFGLSTஶஷ஽௉௓௘௥扯qual;扱ullEqual;쀀≧̸reater;쀀≫̸ess;批lantEqual;쀀⩾̸ilde;扵umpń௲௽ownHump;쀀≎̸qual;쀀≏̸eĀfsఊధtTriangleƀ;BEచఛడ拪ar;쀀⧏̸qual;括s̀;EGLSTవశ఼ౄోౘ扮qual;扰reater;扸ess;쀀≪̸lantEqual;쀀⩽̸ilde;扴estedĀGL౨౹reaterGreater;쀀⪢̸essLess;쀀⪡̸recedesƀ;ESಒಓಛ技qual;쀀⪯̸lantEqual;拠ĀeiಫಹverseElement;戌ghtTriangleƀ;BEೋೌ೒拫ar;쀀⧐̸qual;拭ĀquೝഌuareSuĀbp೨೹setĀ;E೰ೳ쀀⊏̸qual;拢ersetĀ;Eഃആ쀀⊐̸qual;拣ƀbcpഓതൎsetĀ;Eഛഞ쀀⊂⃒qual;抈ceedsȀ;ESTലള഻െ抁qual;쀀⪰̸lantEqual;拡ilde;쀀≿̸ersetĀ;E൘൛쀀⊃⃒qual;抉ildeȀ;EFT൮൯൵ൿ扁qual;扄ullEqual;扇ilde;扉erticalBar;戤cr;쀀𝒩ilde耻Ñ䃑;䎝܀Eacdfgmoprstuvලෂ෉෕ෛ෠෧෼ขภยา฿ไlig;䅒cute耻Ó䃓Āiy෎ීrc耻Ô䃔;䐞blac;䅐r;쀀𝔒rave耻Ò䃒ƀaei෮ෲ෶cr;䅌ga;䎩cron;䎟pf;쀀𝕆enCurlyĀDQฎบoubleQuote;怜uote;怘;橔Āclวฬr;쀀𝒪ash耻Ø䃘iŬื฼de耻Õ䃕es;樷ml耻Ö䃖erĀBP๋๠Āar๐๓r;怾acĀek๚๜;揞et;掴arenthesis;揜Ҁacfhilors๿ງຊຏຒດຝະ໼rtialD;戂y;䐟r;쀀𝔓i;䎦;䎠usMinus;䂱Āipຢອncareplanåڝf;愙Ȁ;eio຺ູ໠໤檻cedesȀ;EST່້໏໚扺qual;檯lantEqual;扼ilde;找me;怳Ādp໩໮uct;戏ortionĀ;aȥ໹l;戝Āci༁༆r;쀀𝒫;䎨ȀUfos༑༖༛༟OT耻"䀢r;쀀𝔔pf;愚cr;쀀𝒬؀BEacefhiorsu༾གྷཇའཱིྦྷྪྭ႖ႩႴႾarr;椐G耻®䂮ƀcnrཎནབute;䅔g;柫rĀ;tཛྷཝ憠l;椖ƀaeyཧཬཱron;䅘dil;䅖;䐠Ā;vླྀཹ愜erseĀEUྂྙĀlq྇ྎement;戋uilibrium;懋pEquilibrium;楯r»ཹo;䎡ghtЀACDFTUVa࿁࿫࿳ဢဨၛႇϘĀnr࿆࿒gleBracket;柩rowƀ;BL࿜࿝࿡憒ar;懥eftArrow;懄eiling;按oǵ࿹\0စbleBracket;柧nǔည\0နeeVector;楝ectorĀ;Bဝသ懂ar;楕loor;挋Āerိ၃eƀ;AVဵံြ抢rrow;憦ector;楛iangleƀ;BEၐၑၕ抳ar;槐qual;抵pƀDTVၣၮၸownVector;楏eeVector;楜ectorĀ;Bႂႃ憾ar;楔ectorĀ;B႑႒懀ar;楓Āpuႛ႞f;愝ndImplies;楰ightarrow;懛ĀchႹႼr;愛;憱leDelayed;槴ڀHOacfhimoqstuფჱჷჽᄙᄞᅑᅖᅡᅧᆵᆻᆿĀCcჩხHcy;䐩y;䐨FTcy;䐬cute;䅚ʀ;aeiyᄈᄉᄎᄓᄗ檼ron;䅠dil;䅞rc;䅜;䐡r;쀀𝔖ortȀDLRUᄪᄴᄾᅉownArrow»ОeftArrow»࢚ightArrow»࿝pArrow;憑gma;䎣allCircle;战pf;쀀𝕊ɲᅭ\0\0ᅰt;戚areȀ;ISUᅻᅼᆉᆯ斡ntersection;抓uĀbpᆏᆞsetĀ;Eᆗᆘ抏qual;抑ersetĀ;Eᆨᆩ抐qual;抒nion;抔cr;쀀𝒮ar;拆ȀbcmpᇈᇛሉላĀ;sᇍᇎ拐etĀ;Eᇍᇕqual;抆ĀchᇠህeedsȀ;ESTᇭᇮᇴᇿ扻qual;檰lantEqual;扽ilde;承Tháྌ;我ƀ;esሒሓሣ拑rsetĀ;Eሜም抃qual;抇et»ሓրHRSacfhiorsሾቄ቉ቕ቞ቱቶኟዂወዑORN耻Þ䃞ADE;愢ĀHc቎ቒcy;䐋y;䐦Ābuቚቜ;䀉;䎤ƀaeyብቪቯron;䅤dil;䅢;䐢r;쀀𝔗Āeiቻ኉Dzኀ\0ኇefore;戴a;䎘Ācn኎ኘkSpace;쀀  Space;怉ldeȀ;EFTካኬኲኼ戼qual;扃ullEqual;扅ilde;扈pf;쀀𝕋ipleDot;惛Āctዖዛr;쀀𝒯rok;䅦ૡዷጎጚጦ\0ጬጱ\0\0\0\0\0ጸጽ፷ᎅ\0᏿ᐄᐊᐐĀcrዻጁute耻Ú䃚rĀ;oጇገ憟cir;楉rǣጓ\0጖y;䐎ve;䅬Āiyጞጣrc耻Û䃛;䐣blac;䅰r;쀀𝔘rave耻Ù䃙acr;䅪Ādiፁ፩erĀBPፈ፝Āarፍፐr;䁟acĀekፗፙ;揟et;掵arenthesis;揝onĀ;P፰፱拃lus;抎Āgp፻፿on;䅲f;쀀𝕌ЀADETadps᎕ᎮᎸᏄϨᏒᏗᏳrrowƀ;BDᅐᎠᎤar;椒ownArrow;懅ownArrow;憕quilibrium;楮eeĀ;AᏋᏌ报rrow;憥ownáϳerĀLRᏞᏨeftArrow;憖ightArrow;憗iĀ;lᏹᏺ䏒on;䎥ing;䅮cr;쀀𝒰ilde;䅨ml耻Ü䃜ҀDbcdefosvᐧᐬᐰᐳᐾᒅᒊᒐᒖash;披ar;櫫y;䐒ashĀ;lᐻᐼ抩;櫦Āerᑃᑅ;拁ƀbtyᑌᑐᑺar;怖Ā;iᑏᑕcalȀBLSTᑡᑥᑪᑴar;戣ine;䁼eparator;杘ilde;所ThinSpace;怊r;쀀𝔙pf;쀀𝕍cr;쀀𝒱dash;抪ʀcefosᒧᒬᒱᒶᒼirc;䅴dge;拀r;쀀𝔚pf;쀀𝕎cr;쀀𝒲Ȁfiosᓋᓐᓒᓘr;쀀𝔛;䎞pf;쀀𝕏cr;쀀𝒳ҀAIUacfosuᓱᓵᓹᓽᔄᔏᔔᔚᔠcy;䐯cy;䐇cy;䐮cute耻Ý䃝Āiyᔉᔍrc;䅶;䐫r;쀀𝔜pf;쀀𝕐cr;쀀𝒴ml;䅸ЀHacdefosᔵᔹᔿᕋᕏᕝᕠᕤcy;䐖cute;䅹Āayᕄᕉron;䅽;䐗ot;䅻Dzᕔ\0ᕛoWidtè૙a;䎖r;愨pf;愤cr;쀀𝒵௡ᖃᖊᖐ\0ᖰᖶᖿ\0\0\0\0ᗆᗛᗫᙟ᙭\0ᚕ᚛ᚲᚹ\0ᚾcute耻á䃡reve;䄃̀;Ediuyᖜᖝᖡᖣᖨᖭ戾;쀀∾̳;房rc耻â䃢te肻´̆;䐰lig耻æ䃦Ā;r²ᖺ;쀀𝔞rave耻à䃠ĀepᗊᗖĀfpᗏᗔsym;愵èᗓha;䎱ĀapᗟcĀclᗤᗧr;䄁g;樿ɤᗰ\0\0ᘊʀ;adsvᗺᗻᗿᘁᘇ戧nd;橕;橜lope;橘;橚΀;elmrszᘘᘙᘛᘞᘿᙏᙙ戠;榤e»ᘙsdĀ;aᘥᘦ戡ѡᘰᘲᘴᘶᘸᘺᘼᘾ;榨;榩;榪;榫;榬;榭;榮;榯tĀ;vᙅᙆ戟bĀ;dᙌᙍ抾;榝Āptᙔᙗh;戢»¹arr;捼Āgpᙣᙧon;䄅f;쀀𝕒΀;Eaeiop዁ᙻᙽᚂᚄᚇᚊ;橰cir;橯;扊d;手s;䀧roxĀ;e዁ᚒñᚃing耻å䃥ƀctyᚡᚦᚨr;쀀𝒶;䀪mpĀ;e዁ᚯñʈilde耻ã䃣ml耻ä䃤Āciᛂᛈoninôɲnt;樑ࠀNabcdefiklnoprsu᛭ᛱᜰ᜼ᝃᝈ᝸᝽០៦ᠹᡐᜍ᤽᥈ᥰot;櫭Ācrᛶ᜞kȀcepsᜀᜅᜍᜓong;扌psilon;䏶rime;怵imĀ;e᜚᜛戽q;拍Ŷᜢᜦee;抽edĀ;gᜬᜭ挅e»ᜭrkĀ;t፜᜷brk;掶Āoyᜁᝁ;䐱quo;怞ʀcmprtᝓ᝛ᝡᝤᝨausĀ;eĊĉptyv;榰séᜌnoõēƀahwᝯ᝱ᝳ;䎲;愶een;扬r;쀀𝔟g΀costuvwឍឝឳេ៕៛៞ƀaiuបពរðݠrc;旯p»፱ƀdptឤឨឭot;樀lus;樁imes;樂ɱឹ\0\0ើcup;樆ar;昅riangleĀdu៍្own;施p;斳plus;樄eåᑄåᒭarow;植ƀako៭ᠦᠵĀcn៲ᠣkƀlst៺֫᠂ozenge;槫riangleȀ;dlr᠒᠓᠘᠝斴own;斾eft;旂ight;斸k;搣Ʊᠫ\0ᠳƲᠯ\0ᠱ;斒;斑4;斓ck;斈ĀeoᠾᡍĀ;qᡃᡆ쀀=⃥uiv;쀀≡⃥t;挐Ȁptwxᡙᡞᡧᡬf;쀀𝕓Ā;tᏋᡣom»Ꮜtie;拈؀DHUVbdhmptuvᢅᢖᢪᢻᣗᣛᣬ᣿ᤅᤊᤐᤡȀLRlrᢎᢐᢒᢔ;敗;敔;敖;敓ʀ;DUduᢡᢢᢤᢦᢨ敐;敦;敩;敤;敧ȀLRlrᢳᢵᢷᢹ;敝;敚;敜;教΀;HLRhlrᣊᣋᣍᣏᣑᣓᣕ救;敬;散;敠;敫;敢;敟ox;槉ȀLRlrᣤᣦᣨᣪ;敕;敒;攐;攌ʀ;DUduڽ᣷᣹᣻᣽;敥;敨;攬;攴inus;抟lus;択imes;抠ȀLRlrᤙᤛᤝ᤟;敛;敘;攘;攔΀;HLRhlrᤰᤱᤳᤵᤷ᤻᤹攂;敪;敡;敞;攼;攤;攜Āevģ᥂bar耻¦䂦Ȁceioᥑᥖᥚᥠr;쀀𝒷mi;恏mĀ;e᜚᜜lƀ;bhᥨᥩᥫ䁜;槅sub;柈Ŭᥴ᥾lĀ;e᥹᥺怢t»᥺pƀ;Eeįᦅᦇ;檮Ā;qۜۛೡᦧ\0᧨ᨑᨕᨲ\0ᨷᩐ\0\0᪴\0\0᫁\0\0ᬡᬮ᭍᭒\0᯽\0ᰌƀcpr᦭ᦲ᧝ute;䄇̀;abcdsᦿᧀᧄ᧊᧕᧙戩nd;橄rcup;橉Āau᧏᧒p;橋p;橇ot;橀;쀀∩︀Āeo᧢᧥t;恁îړȀaeiu᧰᧻ᨁᨅǰ᧵\0᧸s;橍on;䄍dil耻ç䃧rc;䄉psĀ;sᨌᨍ橌m;橐ot;䄋ƀdmnᨛᨠᨦil肻¸ƭptyv;榲t脀¢;eᨭᨮ䂢räƲr;쀀𝔠ƀceiᨽᩀᩍy;䑇ckĀ;mᩇᩈ朓ark»ᩈ;䏇r΀;Ecefms᩟᩠ᩢᩫ᪤᪪᪮旋;槃ƀ;elᩩᩪᩭ䋆q;扗eɡᩴ\0\0᪈rrowĀlr᩼᪁eft;憺ight;憻ʀRSacd᪒᪔᪖᪚᪟»ཇ;擈st;抛irc;抚ash;抝nint;樐id;櫯cir;槂ubsĀ;u᪻᪼晣it»᪼ˬ᫇᫔᫺\0ᬊonĀ;eᫍᫎ䀺Ā;qÇÆɭ᫙\0\0᫢aĀ;t᫞᫟䀬;䁀ƀ;fl᫨᫩᫫戁îᅠeĀmx᫱᫶ent»᫩eóɍǧ᫾\0ᬇĀ;dኻᬂot;橭nôɆƀfryᬐᬔᬗ;쀀𝕔oäɔ脀©;sŕᬝr;愗Āaoᬥᬩrr;憵ss;朗Ācuᬲᬷr;쀀𝒸Ābpᬼ᭄Ā;eᭁᭂ櫏;櫑Ā;eᭉᭊ櫐;櫒dot;拯΀delprvw᭠᭬᭷ᮂᮬᯔ᯹arrĀlr᭨᭪;椸;椵ɰ᭲\0\0᭵r;拞c;拟arrĀ;p᭿ᮀ憶;椽̀;bcdosᮏᮐᮖᮡᮥᮨ截rcap;橈Āauᮛᮞp;橆p;橊ot;抍r;橅;쀀∪︀Ȁalrv᮵ᮿᯞᯣrrĀ;mᮼᮽ憷;椼yƀevwᯇᯔᯘqɰᯎ\0\0ᯒreã᭳uã᭵ee;拎edge;拏en耻¤䂤earrowĀlrᯮ᯳eft»ᮀight»ᮽeäᯝĀciᰁᰇoninôǷnt;戱lcty;挭ঀAHabcdefhijlorstuwz᰸᰻᰿ᱝᱩᱵᲊᲞᲬᲷ᳻᳿ᴍᵻᶑᶫᶻ᷆᷍rò΁ar;楥Ȁglrs᱈ᱍ᱒᱔ger;怠eth;愸òᄳhĀ;vᱚᱛ怐»ऊūᱡᱧarow;椏aã̕Āayᱮᱳron;䄏;䐴ƀ;ao̲ᱼᲄĀgrʿᲁr;懊tseq;橷ƀglmᲑᲔᲘ耻°䂰ta;䎴ptyv;榱ĀirᲣᲨsht;楿;쀀𝔡arĀlrᲳᲵ»ࣜ»သʀaegsv᳂͸᳖᳜᳠mƀ;oș᳊᳔ndĀ;ș᳑uit;晦amma;䏝in;拲ƀ;io᳧᳨᳸䃷de脀÷;o᳧ᳰntimes;拇nø᳷cy;䑒cɯᴆ\0\0ᴊrn;挞op;挍ʀlptuwᴘᴝᴢᵉᵕlar;䀤f;쀀𝕕ʀ;emps̋ᴭᴷᴽᵂqĀ;d͒ᴳot;扑inus;戸lus;戔quare;抡blebarwedgåúnƀadhᄮᵝᵧownarrowóᲃarpoonĀlrᵲᵶefôᲴighôᲶŢᵿᶅkaro÷གɯᶊ\0\0ᶎrn;挟op;挌ƀcotᶘᶣᶦĀryᶝᶡ;쀀𝒹;䑕l;槶rok;䄑Ādrᶰᶴot;拱iĀ;fᶺ᠖斿Āah᷀᷃ròЩaòྦangle;榦Āci᷒ᷕy;䑟grarr;柿ऀDacdefglmnopqrstuxḁḉḙḸոḼṉṡṾấắẽỡἪἷὄ὎὚ĀDoḆᴴoôᲉĀcsḎḔute耻é䃩ter;橮ȀaioyḢḧḱḶron;䄛rĀ;cḭḮ扖耻ê䃪lon;払;䑍ot;䄗ĀDrṁṅot;扒;쀀𝔢ƀ;rsṐṑṗ檚ave耻è䃨Ā;dṜṝ檖ot;檘Ȁ;ilsṪṫṲṴ檙nters;揧;愓Ā;dṹṺ檕ot;檗ƀapsẅẉẗcr;䄓tyƀ;svẒẓẕ戅et»ẓpĀ1;ẝẤijạả;怄;怅怃ĀgsẪẬ;䅋p;怂ĀgpẴẸon;䄙f;쀀𝕖ƀalsỄỎỒrĀ;sỊị拕l;槣us;橱iƀ;lvỚớở䎵on»ớ;䏵ȀcsuvỪỳἋἣĀioữḱrc»Ḯɩỹ\0\0ỻíՈantĀglἂἆtr»ṝess»Ṻƀaeiἒ἖Ἒls;䀽st;扟vĀ;DȵἠD;橸parsl;槥ĀDaἯἳot;打rr;楱ƀcdiἾὁỸr;愯oô͒ĀahὉὋ;䎷耻ð䃰Āmrὓὗl耻ë䃫o;悬ƀcipὡὤὧl;䀡sôծĀeoὬὴctatioîՙnentialåչৡᾒ\0ᾞ\0ᾡᾧ\0\0ῆῌ\0ΐ\0ῦῪ \0 ⁚llingdotseñṄy;䑄male;晀ƀilrᾭᾳ῁lig;耀ffiɩᾹ\0\0᾽g;耀ffig;耀ffl;쀀𝔣lig;耀filig;쀀fjƀaltῙ῜ῡt;晭ig;耀flns;斱of;䆒ǰ΅\0ῳf;쀀𝕗ĀakֿῷĀ;vῼ´拔;櫙artint;樍Āao‌⁕Ācs‑⁒ႉ‸⁅⁈\0⁐β•‥‧‪‬\0‮耻½䂽;慓耻¼䂼;慕;慙;慛Ƴ‴\0‶;慔;慖ʴ‾⁁\0\0⁃耻¾䂾;慗;慜5;慘ƶ⁌\0⁎;慚;慝8;慞l;恄wn;挢cr;쀀𝒻ࢀEabcdefgijlnorstv₂₉₟₥₰₴⃰⃵⃺⃿℃ℒℸ̗ℾ⅒↞Ā;lٍ₇;檌ƀcmpₐₕ₝ute;䇵maĀ;dₜ᳚䎳;檆reve;䄟Āiy₪₮rc;䄝;䐳ot;䄡Ȁ;lqsؾق₽⃉ƀ;qsؾٌ⃄lanô٥Ȁ;cdl٥⃒⃥⃕c;檩otĀ;o⃜⃝檀Ā;l⃢⃣檂;檄Ā;e⃪⃭쀀⋛︀s;檔r;쀀𝔤Ā;gٳ؛mel;愷cy;䑓Ȁ;Eajٚℌℎℐ;檒;檥;檤ȀEaesℛℝ℩ℴ;扩pĀ;p℣ℤ檊rox»ℤĀ;q℮ℯ檈Ā;q℮ℛim;拧pf;쀀𝕘Āci⅃ⅆr;愊mƀ;el٫ⅎ⅐;檎;檐茀>;cdlqr׮ⅠⅪⅮⅳⅹĀciⅥⅧ;檧r;橺ot;拗Par;榕uest;橼ʀadelsↄⅪ←ٖ↛ǰ↉\0↎proø₞r;楸qĀlqؿ↖lesó₈ií٫Āen↣↭rtneqq;쀀≩︀Å↪ԀAabcefkosy⇄⇇⇱⇵⇺∘∝∯≨≽ròΠȀilmr⇐⇔⇗⇛rsðᒄf»․ilôکĀdr⇠⇤cy;䑊ƀ;cwࣴ⇫⇯ir;楈;憭ar;意irc;䄥ƀalr∁∎∓rtsĀ;u∉∊晥it»∊lip;怦con;抹r;쀀𝔥sĀew∣∩arow;椥arow;椦ʀamopr∺∾≃≞≣rr;懿tht;戻kĀlr≉≓eftarrow;憩ightarrow;憪f;쀀𝕙bar;怕ƀclt≯≴≸r;쀀𝒽asè⇴rok;䄧Ābp⊂⊇ull;恃hen»ᱛૡ⊣\0⊪\0⊸⋅⋎\0⋕⋳\0\0⋸⌢⍧⍢⍿\0⎆⎪⎴cute耻í䃭ƀ;iyݱ⊰⊵rc耻î䃮;䐸Ācx⊼⊿y;䐵cl耻¡䂡ĀfrΟ⋉;쀀𝔦rave耻ì䃬Ȁ;inoܾ⋝⋩⋮Āin⋢⋦nt;樌t;戭fin;槜ta;愩lig;䄳ƀaop⋾⌚⌝ƀcgt⌅⌈⌗r;䄫ƀelpܟ⌏⌓inåގarôܠh;䄱f;抷ed;䆵ʀ;cfotӴ⌬⌱⌽⍁are;愅inĀ;t⌸⌹戞ie;槝doô⌙ʀ;celpݗ⍌⍐⍛⍡al;抺Āgr⍕⍙eróᕣã⍍arhk;樗rod;樼Ȁcgpt⍯⍲⍶⍻y;䑑on;䄯f;쀀𝕚a;䎹uest耻¿䂿Āci⎊⎏r;쀀𝒾nʀ;EdsvӴ⎛⎝⎡ӳ;拹ot;拵Ā;v⎦⎧拴;拳Ā;iݷ⎮lde;䄩ǫ⎸\0⎼cy;䑖l耻ï䃯̀cfmosu⏌⏗⏜⏡⏧⏵Āiy⏑⏕rc;䄵;䐹r;쀀𝔧ath;䈷pf;쀀𝕛ǣ⏬\0⏱r;쀀𝒿rcy;䑘kcy;䑔Ѐacfghjos␋␖␢␧␭␱␵␻ppaĀ;v␓␔䎺;䏰Āey␛␠dil;䄷;䐺r;쀀𝔨reen;䄸cy;䑅cy;䑜pf;쀀𝕜cr;쀀𝓀஀ABEHabcdefghjlmnoprstuv⑰⒁⒆⒍⒑┎┽╚▀♎♞♥♹♽⚚⚲⛘❝❨➋⟀⠁⠒ƀart⑷⑺⑼rò৆òΕail;椛arr;椎Ā;gঔ⒋;檋ar;楢ॣ⒥\0⒪\0⒱\0\0\0\0\0⒵Ⓔ\0ⓆⓈⓍ\0⓹ute;䄺mptyv;榴raîࡌbda;䎻gƀ;dlࢎⓁⓃ;榑åࢎ;檅uo耻«䂫rЀ;bfhlpst࢙ⓞⓦⓩ⓫⓮⓱⓵Ā;f࢝ⓣs;椟s;椝ë≒p;憫l;椹im;楳l;憢ƀ;ae⓿─┄檫il;椙Ā;s┉┊檭;쀀⪭︀ƀabr┕┙┝rr;椌rk;杲Āak┢┬cĀek┨┪;䁻;䁛Āes┱┳;榋lĀdu┹┻;榏;榍Ȁaeuy╆╋╖╘ron;䄾Ādi═╔il;䄼ìࢰâ┩;䐻Ȁcqrs╣╦╭╽a;椶uoĀ;rนᝆĀdu╲╷har;楧shar;楋h;憲ʀ;fgqs▋▌উ◳◿扤tʀahlrt▘▤▷◂◨rrowĀ;t࢙□aé⓶arpoonĀdu▯▴own»њp»०eftarrows;懇ightƀahs◍◖◞rrowĀ;sࣴࢧarpoonó྘quigarro÷⇰hreetimes;拋ƀ;qs▋ও◺lanôবʀ;cdgsব☊☍☝☨c;檨otĀ;o☔☕橿Ā;r☚☛檁;檃Ā;e☢☥쀀⋚︀s;檓ʀadegs☳☹☽♉♋pproøⓆot;拖qĀgq♃♅ôউgtò⒌ôছiíলƀilr♕࣡♚sht;楼;쀀𝔩Ā;Eজ♣;檑š♩♶rĀdu▲♮Ā;l॥♳;楪lk;斄cy;䑙ʀ;achtੈ⚈⚋⚑⚖rò◁orneòᴈard;楫ri;旺Āio⚟⚤dot;䅀ustĀ;a⚬⚭掰che»⚭ȀEaes⚻⚽⛉⛔;扨pĀ;p⛃⛄檉rox»⛄Ā;q⛎⛏檇Ā;q⛎⚻im;拦Ѐabnoptwz⛩⛴⛷✚✯❁❇❐Ānr⛮⛱g;柬r;懽rëࣁgƀlmr⛿✍✔eftĀar০✇ightá৲apsto;柼ightá৽parrowĀlr✥✩efô⓭ight;憬ƀafl✶✹✽r;榅;쀀𝕝us;樭imes;樴š❋❏st;戗áፎƀ;ef❗❘᠀旊nge»❘arĀ;l❤❥䀨t;榓ʀachmt❳❶❼➅➇ròࢨorneòᶌarĀ;d྘➃;業;怎ri;抿̀achiqt➘➝ੀ➢➮➻quo;怹r;쀀𝓁mƀ;egল➪➬;檍;檏Ābu┪➳oĀ;rฟ➹;怚rok;䅂萀<;cdhilqrࠫ⟒☹⟜⟠⟥⟪⟰Āci⟗⟙;檦r;橹reå◲mes;拉arr;楶uest;橻ĀPi⟵⟹ar;榖ƀ;ef⠀भ᠛旃rĀdu⠇⠍shar;楊har;楦Āen⠗⠡rtneqq;쀀≨︀Å⠞܀Dacdefhilnopsu⡀⡅⢂⢎⢓⢠⢥⢨⣚⣢⣤ઃ⣳⤂Dot;戺Ȁclpr⡎⡒⡣⡽r耻¯䂯Āet⡗⡙;時Ā;e⡞⡟朠se»⡟Ā;sျ⡨toȀ;dluျ⡳⡷⡻owîҌefôएðᏑker;斮Āoy⢇⢌mma;権;䐼ash;怔asuredangle»ᘦr;쀀𝔪o;愧ƀcdn⢯⢴⣉ro耻µ䂵Ȁ;acdᑤ⢽⣀⣄sôᚧir;櫰ot肻·Ƶusƀ;bd⣒ᤃ⣓戒Ā;uᴼ⣘;横ţ⣞⣡p;櫛ò−ðઁĀdp⣩⣮els;抧f;쀀𝕞Āct⣸⣽r;쀀𝓂pos»ᖝƀ;lm⤉⤊⤍䎼timap;抸ఀGLRVabcdefghijlmoprstuvw⥂⥓⥾⦉⦘⧚⧩⨕⨚⩘⩝⪃⪕⪤⪨⬄⬇⭄⭿⮮ⰴⱧⱼ⳩Āgt⥇⥋;쀀⋙̸Ā;v⥐௏쀀≫⃒ƀelt⥚⥲⥶ftĀar⥡⥧rrow;懍ightarrow;懎;쀀⋘̸Ā;v⥻ే쀀≪⃒ightarrow;懏ĀDd⦎⦓ash;抯ash;抮ʀbcnpt⦣⦧⦬⦱⧌la»˞ute;䅄g;쀀∠⃒ʀ;Eiop඄⦼⧀⧅⧈;쀀⩰̸d;쀀≋̸s;䅉roø඄urĀ;a⧓⧔普lĀ;s⧓ସdz⧟\0⧣p肻 ଷmpĀ;e௹ఀʀaeouy⧴⧾⨃⨐⨓ǰ⧹\0⧻;橃on;䅈dil;䅆ngĀ;dൾ⨊ot;쀀⩭̸p;橂;䐽ash;怓΀;Aadqsxஒ⨩⨭⨻⩁⩅⩐rr;懗rĀhr⨳⨶k;椤Ā;oᏲᏰot;쀀≐̸uiöୣĀei⩊⩎ar;椨í஘istĀ;s஠டr;쀀𝔫ȀEest௅⩦⩹⩼ƀ;qs஼⩭௡ƀ;qs஼௅⩴lanô௢ií௪Ā;rஶ⪁»ஷƀAap⪊⪍⪑rò⥱rr;憮ar;櫲ƀ;svྍ⪜ྌĀ;d⪡⪢拼;拺cy;䑚΀AEadest⪷⪺⪾⫂⫅⫶⫹rò⥦;쀀≦̸rr;憚r;急Ȁ;fqs఻⫎⫣⫯tĀar⫔⫙rro÷⫁ightarro÷⪐ƀ;qs఻⪺⫪lanôౕĀ;sౕ⫴»శiíౝĀ;rవ⫾iĀ;eచథiäඐĀpt⬌⬑f;쀀𝕟膀¬;in⬙⬚⬶䂬nȀ;Edvஉ⬤⬨⬮;쀀⋹̸ot;쀀⋵̸ǡஉ⬳⬵;拷;拶iĀ;vಸ⬼ǡಸ⭁⭃;拾;拽ƀaor⭋⭣⭩rȀ;ast୻⭕⭚⭟lleì୻l;쀀⫽⃥;쀀∂̸lint;樔ƀ;ceಒ⭰⭳uåಥĀ;cಘ⭸Ā;eಒ⭽ñಘȀAait⮈⮋⮝⮧rò⦈rrƀ;cw⮔⮕⮙憛;쀀⤳̸;쀀↝̸ghtarrow»⮕riĀ;eೋೖ΀chimpqu⮽⯍⯙⬄୸⯤⯯Ȁ;cerല⯆ഷ⯉uå൅;쀀𝓃ortɭ⬅\0\0⯖ará⭖mĀ;e൮⯟Ā;q൴൳suĀbp⯫⯭å೸åഋƀbcp⯶ⰑⰙȀ;Ees⯿ⰀഢⰄ抄;쀀⫅̸etĀ;eഛⰋqĀ;qണⰀcĀ;eലⰗñസȀ;EesⰢⰣൟⰧ抅;쀀⫆̸etĀ;e൘ⰮqĀ;qൠⰣȀgilrⰽⰿⱅⱇìௗlde耻ñ䃱çృiangleĀlrⱒⱜeftĀ;eచⱚñదightĀ;eೋⱥñ೗Ā;mⱬⱭ䎽ƀ;esⱴⱵⱹ䀣ro;愖p;怇ҀDHadgilrsⲏⲔⲙⲞⲣⲰⲶⳓⳣash;抭arr;椄p;쀀≍⃒ash;抬ĀetⲨⲬ;쀀≥⃒;쀀>⃒nfin;槞ƀAetⲽⳁⳅrr;椂;쀀≤⃒Ā;rⳊⳍ쀀<⃒ie;쀀⊴⃒ĀAtⳘⳜrr;椃rie;쀀⊵⃒im;쀀∼⃒ƀAan⳰⳴ⴂrr;懖rĀhr⳺⳽k;椣Ā;oᏧᏥear;椧ቓ᪕\0\0\0\0\0\0\0\0\0\0\0\0\0ⴭ\0ⴸⵈⵠⵥ⵲ⶄᬇ\0\0ⶍⶫ\0ⷈⷎ\0ⷜ⸙⸫⸾⹃Ācsⴱ᪗ute耻ó䃳ĀiyⴼⵅrĀ;c᪞ⵂ耻ô䃴;䐾ʀabios᪠ⵒⵗLjⵚlac;䅑v;樸old;榼lig;䅓Ācr⵩⵭ir;榿;쀀𝔬ͯ⵹\0\0⵼\0ⶂn;䋛ave耻ò䃲;槁Ābmⶈ෴ar;榵Ȁacitⶕ⶘ⶥⶨrò᪀Āir⶝ⶠr;榾oss;榻nå๒;槀ƀaeiⶱⶵⶹcr;䅍ga;䏉ƀcdnⷀⷅǍron;䎿;榶pf;쀀𝕠ƀaelⷔ⷗ǒr;榷rp;榹΀;adiosvⷪⷫⷮ⸈⸍⸐⸖戨rò᪆Ȁ;efmⷷⷸ⸂⸅橝rĀ;oⷾⷿ愴f»ⷿ耻ª䂪耻º䂺gof;抶r;橖lope;橗;橛ƀclo⸟⸡⸧ò⸁ash耻ø䃸l;折iŬⸯ⸴de耻õ䃵esĀ;aǛ⸺s;樶ml耻ö䃶bar;挽ૡ⹞\0⹽\0⺀⺝\0⺢⺹\0\0⻋ຜ\0⼓\0\0⼫⾼\0⿈rȀ;astЃ⹧⹲຅脀¶;l⹭⹮䂶leìЃɩ⹸\0\0⹻m;櫳;櫽y;䐿rʀcimpt⺋⺏⺓ᡥ⺗nt;䀥od;䀮il;怰enk;怱r;쀀𝔭ƀimo⺨⺰⺴Ā;v⺭⺮䏆;䏕maô੶ne;明ƀ;tv⺿⻀⻈䏀chfork»´;䏖Āau⻏⻟nĀck⻕⻝kĀ;h⇴⻛;愎ö⇴sҀ;abcdemst⻳⻴ᤈ⻹⻽⼄⼆⼊⼎䀫cir;樣ir;樢Āouᵀ⼂;樥;橲n肻±ຝim;樦wo;樧ƀipu⼙⼠⼥ntint;樕f;쀀𝕡nd耻£䂣Ԁ;Eaceinosu່⼿⽁⽄⽇⾁⾉⾒⽾⾶;檳p;檷uå໙Ā;c໎⽌̀;acens່⽙⽟⽦⽨⽾pproø⽃urlyeñ໙ñ໎ƀaes⽯⽶⽺pprox;檹qq;檵im;拨iíໟmeĀ;s⾈ຮ怲ƀEas⽸⾐⽺ð⽵ƀdfp໬⾙⾯ƀals⾠⾥⾪lar;挮ine;挒urf;挓Ā;t໻⾴ï໻rel;抰Āci⿀⿅r;쀀𝓅;䏈ncsp;怈̀fiopsu⿚⋢⿟⿥⿫⿱r;쀀𝔮pf;쀀𝕢rime;恗cr;쀀𝓆ƀaeo⿸〉〓tĀei⿾々rnionóڰnt;樖stĀ;e【】䀿ñἙô༔઀ABHabcdefhilmnoprstux぀けさすムㄎㄫㅇㅢㅲㆎ㈆㈕㈤㈩㉘㉮㉲㊐㊰㊷ƀartぇおがròႳòϝail;検aròᱥar;楤΀cdenqrtとふへみわゔヌĀeuねぱ;쀀∽̱te;䅕iãᅮmptyv;榳gȀ;del࿑らるろ;榒;榥å࿑uo耻»䂻rր;abcfhlpstw࿜ガクシスゼゾダッデナp;極Ā;f࿠ゴs;椠;椳s;椞ë≝ð✮l;楅im;楴l;憣;憝Āaiパフil;椚oĀ;nホボ戶aló༞ƀabrョリヮrò៥rk;杳ĀakンヽcĀekヹ・;䁽;䁝Āes㄂㄄;榌lĀduㄊㄌ;榎;榐Ȁaeuyㄗㄜㄧㄩron;䅙Ādiㄡㄥil;䅗ì࿲âヺ;䑀Ȁclqsㄴㄷㄽㅄa;椷dhar;楩uoĀ;rȎȍh;憳ƀacgㅎㅟངlȀ;ipsླྀㅘㅛႜnåႻarôྩt;断ƀilrㅩဣㅮsht;楽;쀀𝔯ĀaoㅷㆆrĀduㅽㅿ»ѻĀ;l႑ㆄ;楬Ā;vㆋㆌ䏁;䏱ƀgns㆕ㇹㇼht̀ahlrstㆤㆰ㇂㇘㇤㇮rrowĀ;t࿜ㆭaéトarpoonĀduㆻㆿowîㅾp»႒eftĀah㇊㇐rrowó࿪arpoonóՑightarrows;應quigarro÷ニhreetimes;拌g;䋚ingdotseñἲƀahm㈍㈐㈓rò࿪aòՑ;怏oustĀ;a㈞㈟掱che»㈟mid;櫮Ȁabpt㈲㈽㉀㉒Ānr㈷㈺g;柭r;懾rëဃƀafl㉇㉊㉎r;榆;쀀𝕣us;樮imes;樵Āap㉝㉧rĀ;g㉣㉤䀩t;榔olint;樒arò㇣Ȁachq㉻㊀Ⴜ㊅quo;怺r;쀀𝓇Ābu・㊊oĀ;rȔȓƀhir㊗㊛㊠reåㇸmes;拊iȀ;efl㊪ၙᠡ㊫方tri;槎luhar;楨;愞ൡ㋕㋛㋟㌬㌸㍱\0㍺㎤\0\0㏬㏰\0㐨㑈㑚㒭㒱㓊㓱\0㘖\0\0㘳cute;䅛quï➺Ԁ;Eaceinpsyᇭ㋳㋵㋿㌂㌋㌏㌟㌦㌩;檴ǰ㋺\0㋼;檸on;䅡uåᇾĀ;dᇳ㌇il;䅟rc;䅝ƀEas㌖㌘㌛;檶p;檺im;择olint;樓iíሄ;䑁otƀ;be㌴ᵇ㌵担;橦΀Aacmstx㍆㍊㍗㍛㍞㍣㍭rr;懘rĀhr㍐㍒ë∨Ā;oਸ਼਴t耻§䂧i;䀻war;椩mĀin㍩ðnuóñt;朶rĀ;o㍶⁕쀀𝔰Ȁacoy㎂㎆㎑㎠rp;景Āhy㎋㎏cy;䑉;䑈rtɭ㎙\0\0㎜iäᑤaraì⹯耻­䂭Āgm㎨㎴maƀ;fv㎱㎲㎲䏃;䏂Ѐ;deglnprካ㏅㏉㏎㏖㏞㏡㏦ot;橪Ā;q኱ኰĀ;E㏓㏔檞;檠Ā;E㏛㏜檝;檟e;扆lus;樤arr;楲aròᄽȀaeit㏸㐈㐏㐗Āls㏽㐄lsetmé㍪hp;樳parsl;槤Ādlᑣ㐔e;挣Ā;e㐜㐝檪Ā;s㐢㐣檬;쀀⪬︀ƀflp㐮㐳㑂tcy;䑌Ā;b㐸㐹䀯Ā;a㐾㐿槄r;挿f;쀀𝕤aĀdr㑍ЂesĀ;u㑔㑕晠it»㑕ƀcsu㑠㑹㒟Āau㑥㑯pĀ;sᆈ㑫;쀀⊓︀pĀ;sᆴ㑵;쀀⊔︀uĀbp㑿㒏ƀ;esᆗᆜ㒆etĀ;eᆗ㒍ñᆝƀ;esᆨᆭ㒖etĀ;eᆨ㒝ñᆮƀ;afᅻ㒦ְrť㒫ֱ»ᅼaròᅈȀcemt㒹㒾㓂㓅r;쀀𝓈tmîñiì㐕aræᆾĀar㓎㓕rĀ;f㓔ឿ昆Āan㓚㓭ightĀep㓣㓪psiloîỠhé⺯s»⡒ʀbcmnp㓻㕞ሉ㖋㖎Ҁ;Edemnprs㔎㔏㔑㔕㔞㔣㔬㔱㔶抂;櫅ot;檽Ā;dᇚ㔚ot;櫃ult;櫁ĀEe㔨㔪;櫋;把lus;檿arr;楹ƀeiu㔽㕒㕕tƀ;en㔎㕅㕋qĀ;qᇚ㔏eqĀ;q㔫㔨m;櫇Ābp㕚㕜;櫕;櫓c̀;acensᇭ㕬㕲㕹㕻㌦pproø㋺urlyeñᇾñᇳƀaes㖂㖈㌛pproø㌚qñ㌗g;晪ڀ123;Edehlmnps㖩㖬㖯ሜ㖲㖴㗀㗉㗕㗚㗟㗨㗭耻¹䂹耻²䂲耻³䂳;櫆Āos㖹㖼t;檾ub;櫘Ā;dሢ㗅ot;櫄sĀou㗏㗒l;柉b;櫗arr;楻ult;櫂ĀEe㗤㗦;櫌;抋lus;櫀ƀeiu㗴㘉㘌tƀ;enሜ㗼㘂qĀ;qሢ㖲eqĀ;q㗧㗤m;櫈Ābp㘑㘓;櫔;櫖ƀAan㘜㘠㘭rr;懙rĀhr㘦㘨ë∮Ā;oਫ਩war;椪lig耻ß䃟௡㙑㙝㙠ዎ㙳㙹\0㙾㛂\0\0\0\0\0㛛㜃\0㜉㝬\0\0\0㞇ɲ㙖\0\0㙛get;挖;䏄rë๟ƀaey㙦㙫㙰ron;䅥dil;䅣;䑂lrec;挕r;쀀𝔱Ȁeiko㚆㚝㚵㚼Dz㚋\0㚑eĀ4fኄኁaƀ;sv㚘㚙㚛䎸ym;䏑Ācn㚢㚲kĀas㚨㚮pproø዁im»ኬsðኞĀas㚺㚮ð዁rn耻þ䃾Ǭ̟㛆⋧es膀×;bd㛏㛐㛘䃗Ā;aᤏ㛕r;樱;樰ƀeps㛡㛣㜀á⩍Ȁ;bcf҆㛬㛰㛴ot;挶ir;櫱Ā;o㛹㛼쀀𝕥rk;櫚á㍢rime;怴ƀaip㜏㜒㝤dåቈ΀adempst㜡㝍㝀㝑㝗㝜㝟ngleʀ;dlqr㜰㜱㜶㝀㝂斵own»ᶻeftĀ;e⠀㜾ñम;扜ightĀ;e㊪㝋ñၚot;旬inus;樺lus;樹b;槍ime;樻ezium;揢ƀcht㝲㝽㞁Āry㝷㝻;쀀𝓉;䑆cy;䑛rok;䅧Āio㞋㞎xô᝷headĀlr㞗㞠eftarro÷ࡏightarrow»ཝऀAHabcdfghlmoprstuw㟐㟓㟗㟤㟰㟼㠎㠜㠣㠴㡑㡝㡫㢩㣌㣒㣪㣶ròϭar;楣Ācr㟜㟢ute耻ú䃺òᅐrǣ㟪\0㟭y;䑞ve;䅭Āiy㟵㟺rc耻û䃻;䑃ƀabh㠃㠆㠋ròᎭlac;䅱aòᏃĀir㠓㠘sht;楾;쀀𝔲rave耻ù䃹š㠧㠱rĀlr㠬㠮»ॗ»ႃlk;斀Āct㠹㡍ɯ㠿\0\0㡊rnĀ;e㡅㡆挜r»㡆op;挏ri;旸Āal㡖㡚cr;䅫肻¨͉Āgp㡢㡦on;䅳f;쀀𝕦̀adhlsuᅋ㡸㡽፲㢑㢠ownáᎳarpoonĀlr㢈㢌efô㠭ighô㠯iƀ;hl㢙㢚㢜䏅»ᏺon»㢚parrows;懈ƀcit㢰㣄㣈ɯ㢶\0\0㣁rnĀ;e㢼㢽挝r»㢽op;挎ng;䅯ri;旹cr;쀀𝓊ƀdir㣙㣝㣢ot;拰lde;䅩iĀ;f㜰㣨»᠓Āam㣯㣲rò㢨l耻ü䃼angle;榧ހABDacdeflnoprsz㤜㤟㤩㤭㦵㦸㦽㧟㧤㧨㧳㧹㧽㨁㨠ròϷarĀ;v㤦㤧櫨;櫩asèϡĀnr㤲㤷grt;榜΀eknprst㓣㥆㥋㥒㥝㥤㦖appá␕othinçẖƀhir㓫⻈㥙opô⾵Ā;hᎷ㥢ïㆍĀiu㥩㥭gmá㎳Ābp㥲㦄setneqĀ;q㥽㦀쀀⊊︀;쀀⫋︀setneqĀ;q㦏㦒쀀⊋︀;쀀⫌︀Āhr㦛㦟etá㚜iangleĀlr㦪㦯eft»थight»ၑy;䐲ash»ံƀelr㧄㧒㧗ƀ;beⷪ㧋㧏ar;抻q;扚lip;拮Ābt㧜ᑨaòᑩr;쀀𝔳tré㦮suĀbp㧯㧱»ജ»൙pf;쀀𝕧roð໻tré㦴Ācu㨆㨋r;쀀𝓋Ābp㨐㨘nĀEe㦀㨖»㥾nĀEe㦒㨞»㦐igzag;榚΀cefoprs㨶㨻㩖㩛㩔㩡㩪irc;䅵Ādi㩀㩑Ābg㩅㩉ar;機eĀ;qᗺ㩏;扙erp;愘r;쀀𝔴pf;쀀𝕨Ā;eᑹ㩦atèᑹcr;쀀𝓌ૣណ㪇\0㪋\0㪐㪛\0\0㪝㪨㪫㪯\0\0㫃㫎\0㫘ៜ៟tré៑r;쀀𝔵ĀAa㪔㪗ròσrò৶;䎾ĀAa㪡㪤ròθrò৫að✓is;拻ƀdptឤ㪵㪾Āfl㪺ឩ;쀀𝕩imåឲĀAa㫇㫊ròώròਁĀcq㫒ីr;쀀𝓍Āpt៖㫜ré។Ѐacefiosu㫰㫽㬈㬌㬑㬕㬛㬡cĀuy㫶㫻te耻ý䃽;䑏Āiy㬂㬆rc;䅷;䑋n耻¥䂥r;쀀𝔶cy;䑗pf;쀀𝕪cr;쀀𝓎Ācm㬦㬩y;䑎l耻ÿ䃿Ԁacdefhiosw㭂㭈㭔㭘㭤㭩㭭㭴㭺㮀cute;䅺Āay㭍㭒ron;䅾;䐷ot;䅼Āet㭝㭡træᕟa;䎶r;쀀𝔷cy;䐶grarr;懝pf;쀀𝕫cr;쀀𝓏Ājn㮅㮇;怍j;怌'.split("").map(t=>t.charCodeAt(0))),pu=new Uint16Array("Ȁaglq \x1Bɭ\0\0p;䀦os;䀧t;䀾t;䀼uot;䀢".split("").map(t=>t.charCodeAt(0))),Sr;const fu=new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),yi=(Sr=String.fromCodePoint)!==null&&Sr!==void 0?Sr:function(t){let s="";return t>65535&&(t-=65536,s+=String.fromCharCode(t>>>10&1023|55296),t=56320|t&1023),s+=String.fromCharCode(t),s};function du(t){var s;return t>=55296&&t<=57343||t>1114111?65533:(s=fu.get(t))!==null&&s!==void 0?s:t}var xe;(function(t){t[t.NUM=35]="NUM",t[t.SEMI=59]="SEMI",t[t.EQUALS=61]="EQUALS",t[t.ZERO=48]="ZERO",t[t.NINE=57]="NINE",t[t.LOWER_A=97]="LOWER_A",t[t.LOWER_F=102]="LOWER_F",t[t.LOWER_X=120]="LOWER_X",t[t.LOWER_Z=122]="LOWER_Z",t[t.UPPER_A=65]="UPPER_A",t[t.UPPER_F=70]="UPPER_F",t[t.UPPER_Z=90]="UPPER_Z"})(xe||(xe={}));const mu=32;var ht;(function(t){t[t.VALUE_LENGTH=49152]="VALUE_LENGTH",t[t.BRANCH_LENGTH=16256]="BRANCH_LENGTH",t[t.JUMP_TABLE=127]="JUMP_TABLE"})(ht||(ht={}));function gi(t){return t>=xe.ZERO&&t<=xe.NINE}function yu(t){return t>=xe.UPPER_A&&t<=xe.UPPER_F||t>=xe.LOWER_A&&t<=xe.LOWER_F}function gu(t){return t>=xe.UPPER_A&&t<=xe.UPPER_Z||t>=xe.LOWER_A&&t<=xe.LOWER_Z||gi(t)}function xu(t){return t===xe.EQUALS||gu(t)}var ge;(function(t){t[t.EntityStart=0]="EntityStart",t[t.NumericStart=1]="NumericStart",t[t.NumericDecimal=2]="NumericDecimal",t[t.NumericHex=3]="NumericHex",t[t.NamedEntity=4]="NamedEntity"})(ge||(ge={}));var Ve;(function(t){t[t.Legacy=0]="Legacy",t[t.Strict=1]="Strict",t[t.Attribute=2]="Attribute"})(Ve||(Ve={}));class Fo{constructor(s,n,o){this.decodeTree=s,this.emitCodePoint=n,this.errors=o,this.state=ge.EntityStart,this.consumed=1,this.result=0,this.treeIndex=0,this.excess=1,this.decodeMode=Ve.Strict}startEntity(s){this.decodeMode=s,this.state=ge.EntityStart,this.result=0,this.treeIndex=0,this.excess=1,this.consumed=1}write(s,n){switch(this.state){case ge.EntityStart:return s.charCodeAt(n)===xe.NUM?(this.state=ge.NumericStart,this.consumed+=1,this.stateNumericStart(s,n+1)):(this.state=ge.NamedEntity,this.stateNamedEntity(s,n));case ge.NumericStart:return this.stateNumericStart(s,n);case ge.NumericDecimal:return this.stateNumericDecimal(s,n);case ge.NumericHex:return this.stateNumericHex(s,n);case ge.NamedEntity:return this.stateNamedEntity(s,n)}}stateNumericStart(s,n){return n>=s.length?-1:(s.charCodeAt(n)|mu)===xe.LOWER_X?(this.state=ge.NumericHex,this.consumed+=1,this.stateNumericHex(s,n+1)):(this.state=ge.NumericDecimal,this.stateNumericDecimal(s,n))}addToNumericResult(s,n,o,l){if(n!==o){const u=o-n;this.result=this.result*Math.pow(l,u)+parseInt(s.substr(n,u),l),this.consumed+=u}}stateNumericHex(s,n){const o=n;for(;n>14;for(;n>14,u!==0){if(c===xe.SEMI)return this.emitNamedEntityData(this.treeIndex,u,this.consumed+this.excess);this.decodeMode!==Ve.Strict&&(this.result=this.treeIndex,this.consumed+=this.excess,this.excess=0)}}return-1}emitNotTerminatedNamedEntity(){var s;const{result:n,decodeTree:o}=this,l=(o[n]&ht.VALUE_LENGTH)>>14;return this.emitNamedEntityData(n,l,this.consumed),(s=this.errors)===null||s===void 0||s.missingSemicolonAfterCharacterReference(),this.consumed}emitNamedEntityData(s,n,o){const{decodeTree:l}=this;return this.emitCodePoint(n===1?l[s]&~ht.VALUE_LENGTH:l[s+1],o),n===3&&this.emitCodePoint(l[s+2],o),o}end(){var s;switch(this.state){case ge.NamedEntity:return this.result!==0&&(this.decodeMode!==Ve.Attribute||this.result===this.treeIndex)?this.emitNotTerminatedNamedEntity():0;case ge.NumericDecimal:return this.emitNumericEntity(0,2);case ge.NumericHex:return this.emitNumericEntity(0,3);case ge.NumericStart:return(s=this.errors)===null||s===void 0||s.absenceOfDigitsInNumericCharacterReference(this.consumed),0;case ge.EntityStart:return 0}}}function Uo(t){let s="";const n=new Fo(t,o=>s+=yi(o));return function(l,u){let c=0,f=0;for(;(f=l.indexOf("&",f))>=0;){s+=l.slice(c,f),n.startEntity(u);const x=n.write(l,f+1);if(x<0){c=f+n.end();break}c=f+x,f=x===0?c+1:c}const p=s+l.slice(c);return s="",p}}function Pu(t,s,n,o){const l=(s&ht.BRANCH_LENGTH)>>7,u=s&ht.JUMP_TABLE;if(l===0)return u!==0&&o===u?n:-1;if(u){const p=o-u;return p<0||p>=l?-1:t[n+p]-1}let c=n,f=c+l-1;for(;c<=f;){const p=c+f>>>1,x=t[p];if(xo)f=p-1;else return t[p+l]}return-1}const wu=Uo(Bo);Uo(pu);function Su(t,s=Ve.Legacy){return wu(t,s)}const $n=new Uint8Array([123,123]),Vn=new Uint8Array([125,125]);function zn(t){return t>=97&&t<=122||t>=65&&t<=90}function Me(t){return t===32||t===10||t===9||t===12||t===13}function it(t){return t===47||t===62||Me(t)}function qo(t){const s=new Uint8Array(t.length);for(let n=0;nthis.emitCodePoint(o,l))}get inSFCRoot(){return this.mode===2&&this.stack.length===0}reset(){this.state=1,this.mode=0,this.buffer="",this.sectionStart=0,this.index=0,this.baseState=1,this.inRCDATA=!1,this.currentSequence=void 0,this.newlines.length=0,this.delimiterOpen=$n,this.delimiterClose=Vn}getPos(s){let n=1,o=s+1;for(let l=this.newlines.length-1;l>=0;l--){const u=this.newlines[l];if(s>u){n=l+2,o=s-u;break}}return{column:o,line:n,offset:s}}peek(){return this.buffer.charCodeAt(this.index+1)}stateText(s){s===60?(this.index>this.sectionStart&&this.cbs.ontext(this.sectionStart,this.index),this.state=5,this.sectionStart=this.index):s===38?this.startEntity():!this.inVPre&&s===this.delimiterOpen[0]&&(this.state=2,this.delimiterIndex=0,this.stateInterpolationOpen(s))}stateInterpolationOpen(s){if(s===this.delimiterOpen[this.delimiterIndex])if(this.delimiterIndex===this.delimiterOpen.length-1){const n=this.index+1-this.delimiterOpen.length;n>this.sectionStart&&this.cbs.ontext(this.sectionStart,n),this.state=3,this.sectionStart=n}else this.delimiterIndex++;else this.inRCDATA?(this.state=32,this.stateInRCDATA(s)):(this.state=1,this.stateText(s))}stateInterpolation(s){s===this.delimiterClose[0]&&(this.state=4,this.delimiterIndex=0,this.stateInterpolationClose(s))}stateInterpolationClose(s){s===this.delimiterClose[this.delimiterIndex]?this.delimiterIndex===this.delimiterClose.length-1?(this.cbs.oninterpolation(this.sectionStart,this.index+1),this.inRCDATA?this.state=32:this.state=1,this.sectionStart=this.index+1):this.delimiterIndex++:(this.state=3,this.stateInterpolation(s))}stateSpecialStartSequence(s){const n=this.sequenceIndex===this.currentSequence.length;if(!(n?it(s):(s|32)===this.currentSequence[this.sequenceIndex]))this.inRCDATA=!1;else if(!n){this.sequenceIndex++;return}this.sequenceIndex=0,this.state=6,this.stateInTagName(s)}stateInRCDATA(s){if(this.sequenceIndex===this.currentSequence.length){if(s===62||Me(s)){const n=this.index-this.currentSequence.length;if(this.sectionStart=0?(this.state=this.baseState,s===0&&(this.index=this.entityStart)):this.index=this.buffer.length-1}}parse(s){for(this.buffer=s;this.index=s||(this.state===28?this.currentSequence===we.CdataEnd?this.cbs.oncdata(this.sectionStart,s):this.cbs.oncomment(this.sectionStart,s):this.state===6||this.state===11||this.state===18||this.state===17||this.state===12||this.state===13||this.state===14||this.state===15||this.state===16||this.state===20||this.state===19||this.state===21||this.state===9||this.cbs.ontext(this.sectionStart,s))}emitCodePoint(s,n){this.baseState!==1&&this.baseState!==32?(this.sectionStart key should be placed on the