From cfd272743df80219b8bf23015d09177af519bd16 Mon Sep 17 00:00:00 2001 From: fz Date: Wed, 30 Aug 2023 09:44:26 +0800 Subject: [PATCH] =?UTF-8?q?=E2=80=98=E9=A6=96=E6=AC=A1=E2=80=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .hbuilderx/launch.json | 16 + App.vue | 21 + index.html | 20 + main.js | 24 + manifest.json | 72 + .../@vue/devtools-api/lib/cjs/api/api.js | 2 + .../@vue/devtools-api/lib/cjs/api/app.js | 2 + .../devtools-api/lib/cjs/api/component.js | 2 + .../@vue/devtools-api/lib/cjs/api/context.js | 2 + .../@vue/devtools-api/lib/cjs/api/hooks.js | 2 + .../@vue/devtools-api/lib/cjs/api/index.js | 22 + .../@vue/devtools-api/lib/cjs/api/util.js | 2 + .../@vue/devtools-api/lib/cjs/const.js | 5 + node_modules/@vue/devtools-api/lib/cjs/env.js | 17 + .../@vue/devtools-api/lib/cjs/index.js | 44 + .../@vue/devtools-api/lib/cjs/plugin.js | 2 + .../@vue/devtools-api/lib/cjs/proxy.js | 111 + .../@vue/devtools-api/lib/cjs/time.js | 28 + .../@vue/devtools-api/lib/esm/api/api.d.ts | 108 + .../@vue/devtools-api/lib/esm/api/api.js | 1 + .../@vue/devtools-api/lib/esm/api/app.d.ts | 1 + .../@vue/devtools-api/lib/esm/api/app.js | 1 + .../devtools-api/lib/esm/api/component.d.ts | 78 + .../devtools-api/lib/esm/api/component.js | 1 + .../devtools-api/lib/esm/api/context.d.ts | 5 + .../@vue/devtools-api/lib/esm/api/context.js | 1 + .../@vue/devtools-api/lib/esm/api/hooks.d.ts | 180 + .../@vue/devtools-api/lib/esm/api/hooks.js | 1 + .../@vue/devtools-api/lib/esm/api/index.d.ts | 6 + .../@vue/devtools-api/lib/esm/api/index.js | 6 + .../@vue/devtools-api/lib/esm/api/util.d.ts | 4 + .../@vue/devtools-api/lib/esm/api/util.js | 1 + .../@vue/devtools-api/lib/esm/const.d.ts | 2 + .../@vue/devtools-api/lib/esm/const.js | 2 + .../@vue/devtools-api/lib/esm/env.d.ts | 15 + node_modules/@vue/devtools-api/lib/esm/env.js | 12 + .../@vue/devtools-api/lib/esm/index.d.ts | 18 + .../@vue/devtools-api/lib/esm/index.js | 26 + .../@vue/devtools-api/lib/esm/plugin.d.ts | 47 + .../@vue/devtools-api/lib/esm/plugin.js | 1 + .../@vue/devtools-api/lib/esm/proxy.d.ts | 20 + .../@vue/devtools-api/lib/esm/proxy.js | 107 + .../@vue/devtools-api/lib/esm/time.d.ts | 2 + .../@vue/devtools-api/lib/esm/time.js | 23 + node_modules/@vue/devtools-api/package.json | 67 + node_modules/deepmerge/.editorconfig | 7 + node_modules/deepmerge/.eslintcache | 1 + node_modules/deepmerge/changelog.md | 167 + node_modules/deepmerge/dist/cjs.js | 133 + node_modules/deepmerge/dist/umd.js | 139 + node_modules/deepmerge/index.d.ts | 20 + node_modules/deepmerge/index.js | 106 + node_modules/deepmerge/license.txt | 21 + node_modules/deepmerge/package.json | 70 + node_modules/deepmerge/readme.md | 264 + node_modules/deepmerge/rollup.config.js | 22 + node_modules/shvl/CHANGELOG.md | 4 + node_modules/shvl/LICENSE | 21 + node_modules/shvl/README.md | 86 + node_modules/shvl/dist/shvl.js | 2 + node_modules/shvl/dist/shvl.js.map | 1 + node_modules/shvl/dist/shvl.mjs | 2 + node_modules/shvl/dist/shvl.mjs.map | 1 + node_modules/shvl/dist/shvl.modern.js | 2 + node_modules/shvl/dist/shvl.modern.js.map | 1 + node_modules/shvl/dist/shvl.umd.js | 2 + node_modules/shvl/dist/shvl.umd.js.map | 1 + node_modules/shvl/index.d.ts | 2 + node_modules/shvl/index.js | 11 + node_modules/shvl/package.json | 86 + node_modules/vuex-persistedstate/CHANGELOG.md | 4 + node_modules/vuex-persistedstate/LICENSE | 21 + node_modules/vuex-persistedstate/README.md | 326 + .../vuex-persistedstate/dist/index.d.ts | 23 + .../dist/vuex-persistedstate.es.js | 2 + .../dist/vuex-persistedstate.es.js.map | 1 + .../dist/vuex-persistedstate.js | 2 + .../dist/vuex-persistedstate.js.map | 1 + .../dist/vuex-persistedstate.modern.js | 2 + .../dist/vuex-persistedstate.modern.js.map | 1 + .../dist/vuex-persistedstate.umd.js | 2 + .../dist/vuex-persistedstate.umd.js.map | 1 + node_modules/vuex-persistedstate/package.json | 111 + node_modules/vuex-persistedstate/src/index.ts | 119 + node_modules/vuex/CHANGELOG.md | 617 + node_modules/vuex/LICENSE | 21 + node_modules/vuex/README.md | 59 + node_modules/vuex/dist/vuex.cjs.js | 1486 ++ node_modules/vuex/dist/vuex.esm-browser.js | 1484 ++ .../vuex/dist/vuex.esm-browser.prod.js | 1323 ++ node_modules/vuex/dist/vuex.esm-bundler.js | 1485 ++ node_modules/vuex/dist/vuex.global.js | 1514 ++ node_modules/vuex/dist/vuex.global.prod.js | 6 + node_modules/vuex/dist/vuex.mjs | 32 + node_modules/vuex/package.json | 128 + node_modules/vuex/types/helpers.d.ts | 86 + node_modules/vuex/types/index.d.ts | 167 + node_modules/vuex/types/logger.d.ts | 20 + node_modules/vuex/types/vue.d.ts | 12 + package-lock.json | 38 + pages.json | 82 + pages/communicate/communicate.vue | 31 + pages/home/index.vue | 186 + pages/login/login.vue | 226 + pages/message/message.vue | 24 + pages/my/my.vue | 61 + static/communicate/kefu.png | Bin 0 -> 10453 bytes static/communicate/liuyan.png | Bin 0 -> 6442 bytes static/communicate/tousu.png | Bin 0 -> 7172 bytes static/communicate/zixun.png | Bin 0 -> 10096 bytes static/goutong.png | Bin 0 -> 4167 bytes static/goutong1.png | Bin 0 -> 4420 bytes static/home.png | Bin 0 -> 6042 bytes static/home/chuizi.png | Bin 0 -> 11548 bytes static/home/jinzhan.png | Bin 0 -> 4707 bytes static/home/shenpi.png | Bin 0 -> 6934 bytes static/home/wangting.png | Bin 0 -> 8908 bytes static/home/zhengju.png | Bin 0 -> 6876 bytes static/homeselect.png | Bin 0 -> 6406 bytes static/kefu.png | Bin 0 -> 8138 bytes static/kefu1.png | Bin 0 -> 8609 bytes static/my.png | Bin 0 -> 6903 bytes static/my/my_bc.png | Bin 0 -> 13593 bytes static/my/user.png | Bin 0 -> 4421 bytes static/myselect.png | Bin 0 -> 7458 bytes static/zhongcai.png | Bin 0 -> 359959 bytes store/index.js | 37 + store/modules/area.js | 41 + store/modules/auth.js | 71 + store/modules/devList.js | 31 + store/modules/login.js | 40 + store/modules/message.js | 40 + store/modules/search.js | 34 + store/modules/userInfoApp.js | 30 + uni.promisify.adaptor.js | 10 + uni.scss | 76 + uni_modules/uni-icons/changelog.md | 22 + .../uni-icons/components/uni-icons/icons.js | 1169 ++ .../components/uni-icons/uni-icons.vue | 96 + .../components/uni-icons/uniicons.css | 663 + .../components/uni-icons/uniicons.ttf | Bin 0 -> 35760 bytes uni_modules/uni-icons/package.json | 86 + uni_modules/uni-icons/readme.md | 8 + uni_modules/uni-list/changelog.md | 46 + .../components/uni-list-ad/uni-list-ad.vue | 107 + .../uni-list-chat/uni-list-chat.scss | 58 + .../uni-list-chat/uni-list-chat.vue | 593 + .../uni-list-item/uni-list-item.vue | 534 + .../uni-list/components/uni-list/uni-list.vue | 123 + .../components/uni-list/uni-refresh.vue | 65 + .../components/uni-list/uni-refresh.wxs | 87 + uni_modules/uni-list/package.json | 88 + uni_modules/uni-list/readme.md | 346 + uni_modules/uni-scss/changelog.md | 8 + uni_modules/uni-scss/index.scss | 1 + uni_modules/uni-scss/package.json | 82 + uni_modules/uni-scss/readme.md | 4 + uni_modules/uni-scss/styles/index.scss | 7 + .../uni-scss/styles/setting/_border.scss | 3 + .../uni-scss/styles/setting/_color.scss | 66 + .../uni-scss/styles/setting/_radius.scss | 55 + .../uni-scss/styles/setting/_space.scss | 56 + .../uni-scss/styles/setting/_styles.scss | 167 + .../uni-scss/styles/setting/_text.scss | 24 + .../uni-scss/styles/setting/_variables.scss | 146 + .../uni-scss/styles/tools/functions.scss | 19 + uni_modules/uni-scss/theme.scss | 31 + uni_modules/uni-scss/variables.scss | 62 + .../dev/.automator/mp-weixin/.automator.json | 0 .../.sourcemap/mp-weixin/common/main.js.map | 1 + .../mp-weixin/common/runtime.js.map | 1 + .../.sourcemap/mp-weixin/common/vendor.js.map | 1 + .../pages/communicate/communicate.js.map | 1 + .../mp-weixin/pages/home/index.js.map | 1 + .../mp-weixin/pages/login/login.js.map | 1 + .../mp-weixin/pages/message/message.js.map | 1 + .../.sourcemap/mp-weixin/pages/my/my.js.map | 1 + .../components/uni-icons/uni-icons.js.map | 1 + .../uni-list-item/uni-list-item.js.map | 1 + .../components/uni-list/uni-list.js.map | 1 + unpackage/dist/dev/mp-weixin/app.js | 4 + unpackage/dist/dev/mp-weixin/app.json | 48 + unpackage/dist/dev/mp-weixin/app.wxss | 3 + unpackage/dist/dev/mp-weixin/common/main.js | 149 + unpackage/dist/dev/mp-weixin/common/main.wxss | 21 + .../dist/dev/mp-weixin/common/runtime.js | 273 + unpackage/dist/dev/mp-weixin/common/vendor.js | 12606 ++++++++++++++++ .../pages/communicate/communicate.js | 194 + .../pages/communicate/communicate.json | 10 + .../pages/communicate/communicate.wxml | 1 + .../dist/dev/mp-weixin/pages/home/index.js | 293 + .../dist/dev/mp-weixin/pages/home/index.json | 6 + .../dist/dev/mp-weixin/pages/home/index.wxml | 1 + .../dist/dev/mp-weixin/pages/home/index.wxss | 82 + .../dev/mp-weixin/pages/message/message.js | 190 + .../dev/mp-weixin/pages/message/message.json | 7 + .../dev/mp-weixin/pages/message/message.wxml | 1 + .../dev/mp-weixin/pages/message/message.wxss | 5 + unpackage/dist/dev/mp-weixin/pages/my/my.js | 231 + unpackage/dist/dev/mp-weixin/pages/my/my.json | 10 + unpackage/dist/dev/mp-weixin/pages/my/my.wxml | 1 + unpackage/dist/dev/mp-weixin/pages/my/my.wxss | 24 + .../dist/dev/mp-weixin/project.config.json | 30 + .../dev/mp-weixin/project.private.config.json | 7 + .../dev/mp-weixin/static/communicate/kefu.png | Bin 0 -> 10453 bytes .../mp-weixin/static/communicate/liuyan.png | Bin 0 -> 6442 bytes .../mp-weixin/static/communicate/tousu.png | Bin 0 -> 7172 bytes .../mp-weixin/static/communicate/zixun.png | Bin 0 -> 10096 bytes .../dist/dev/mp-weixin/static/goutong.png | Bin 0 -> 4167 bytes .../dist/dev/mp-weixin/static/goutong1.png | Bin 0 -> 4420 bytes unpackage/dist/dev/mp-weixin/static/home.png | Bin 0 -> 6042 bytes .../dist/dev/mp-weixin/static/home/chuizi.png | Bin 0 -> 11548 bytes .../dev/mp-weixin/static/home/jinzhan.png | Bin 0 -> 4707 bytes .../dist/dev/mp-weixin/static/home/shenpi.png | Bin 0 -> 6934 bytes .../dev/mp-weixin/static/home/wangting.png | Bin 0 -> 8908 bytes .../dev/mp-weixin/static/home/zhengju.png | Bin 0 -> 6876 bytes .../dist/dev/mp-weixin/static/homeselect.png | Bin 0 -> 6406 bytes unpackage/dist/dev/mp-weixin/static/kefu.png | Bin 0 -> 8138 bytes unpackage/dist/dev/mp-weixin/static/kefu1.png | Bin 0 -> 8609 bytes unpackage/dist/dev/mp-weixin/static/my.png | Bin 0 -> 6903 bytes .../dist/dev/mp-weixin/static/my/my_bc.png | Bin 0 -> 13593 bytes .../dist/dev/mp-weixin/static/my/user.png | Bin 0 -> 4421 bytes .../dist/dev/mp-weixin/static/myselect.png | Bin 0 -> 7458 bytes .../dist/dev/mp-weixin/static/zhongcai.png | Bin 0 -> 359959 bytes .../components/uni-icons/uni-icons.js | 240 + .../components/uni-icons/uni-icons.json | 4 + .../components/uni-icons/uni-icons.wxml | 1 + .../components/uni-icons/uni-icons.wxss | 534 + .../components/uni-list-item/uni-list-item.js | 517 + .../uni-list-item/uni-list-item.json | 6 + .../uni-list-item/uni-list-item.wxml | 1 + .../uni-list-item/uni-list-item.wxss | 157 + .../uni-list/components/uni-list/uni-list.js | 234 + .../components/uni-list/uni-list.json | 4 + .../components/uni-list/uni-list.wxml | 1 + .../components/uni-list/uni-list.wxss | 58 + 236 files changed, 33203 insertions(+) create mode 100644 .hbuilderx/launch.json create mode 100644 App.vue create mode 100644 index.html create mode 100644 main.js create mode 100644 manifest.json create mode 100644 node_modules/@vue/devtools-api/lib/cjs/api/api.js create mode 100644 node_modules/@vue/devtools-api/lib/cjs/api/app.js create mode 100644 node_modules/@vue/devtools-api/lib/cjs/api/component.js create mode 100644 node_modules/@vue/devtools-api/lib/cjs/api/context.js create mode 100644 node_modules/@vue/devtools-api/lib/cjs/api/hooks.js create mode 100644 node_modules/@vue/devtools-api/lib/cjs/api/index.js create mode 100644 node_modules/@vue/devtools-api/lib/cjs/api/util.js create mode 100644 node_modules/@vue/devtools-api/lib/cjs/const.js create mode 100644 node_modules/@vue/devtools-api/lib/cjs/env.js create mode 100644 node_modules/@vue/devtools-api/lib/cjs/index.js create mode 100644 node_modules/@vue/devtools-api/lib/cjs/plugin.js create mode 100644 node_modules/@vue/devtools-api/lib/cjs/proxy.js create mode 100644 node_modules/@vue/devtools-api/lib/cjs/time.js create mode 100644 node_modules/@vue/devtools-api/lib/esm/api/api.d.ts create mode 100644 node_modules/@vue/devtools-api/lib/esm/api/api.js create mode 100644 node_modules/@vue/devtools-api/lib/esm/api/app.d.ts create mode 100644 node_modules/@vue/devtools-api/lib/esm/api/app.js create mode 100644 node_modules/@vue/devtools-api/lib/esm/api/component.d.ts create mode 100644 node_modules/@vue/devtools-api/lib/esm/api/component.js create mode 100644 node_modules/@vue/devtools-api/lib/esm/api/context.d.ts create mode 100644 node_modules/@vue/devtools-api/lib/esm/api/context.js create mode 100644 node_modules/@vue/devtools-api/lib/esm/api/hooks.d.ts create mode 100644 node_modules/@vue/devtools-api/lib/esm/api/hooks.js create mode 100644 node_modules/@vue/devtools-api/lib/esm/api/index.d.ts create mode 100644 node_modules/@vue/devtools-api/lib/esm/api/index.js create mode 100644 node_modules/@vue/devtools-api/lib/esm/api/util.d.ts create mode 100644 node_modules/@vue/devtools-api/lib/esm/api/util.js create mode 100644 node_modules/@vue/devtools-api/lib/esm/const.d.ts create mode 100644 node_modules/@vue/devtools-api/lib/esm/const.js create mode 100644 node_modules/@vue/devtools-api/lib/esm/env.d.ts create mode 100644 node_modules/@vue/devtools-api/lib/esm/env.js create mode 100644 node_modules/@vue/devtools-api/lib/esm/index.d.ts create mode 100644 node_modules/@vue/devtools-api/lib/esm/index.js create mode 100644 node_modules/@vue/devtools-api/lib/esm/plugin.d.ts create mode 100644 node_modules/@vue/devtools-api/lib/esm/plugin.js create mode 100644 node_modules/@vue/devtools-api/lib/esm/proxy.d.ts create mode 100644 node_modules/@vue/devtools-api/lib/esm/proxy.js create mode 100644 node_modules/@vue/devtools-api/lib/esm/time.d.ts create mode 100644 node_modules/@vue/devtools-api/lib/esm/time.js create mode 100644 node_modules/@vue/devtools-api/package.json create mode 100644 node_modules/deepmerge/.editorconfig create mode 100644 node_modules/deepmerge/.eslintcache create mode 100644 node_modules/deepmerge/changelog.md create mode 100644 node_modules/deepmerge/dist/cjs.js create mode 100644 node_modules/deepmerge/dist/umd.js create mode 100644 node_modules/deepmerge/index.d.ts create mode 100644 node_modules/deepmerge/index.js create mode 100644 node_modules/deepmerge/license.txt create mode 100644 node_modules/deepmerge/package.json create mode 100644 node_modules/deepmerge/readme.md create mode 100644 node_modules/deepmerge/rollup.config.js create mode 100644 node_modules/shvl/CHANGELOG.md create mode 100644 node_modules/shvl/LICENSE create mode 100644 node_modules/shvl/README.md create mode 100644 node_modules/shvl/dist/shvl.js create mode 100644 node_modules/shvl/dist/shvl.js.map create mode 100644 node_modules/shvl/dist/shvl.mjs create mode 100644 node_modules/shvl/dist/shvl.mjs.map create mode 100644 node_modules/shvl/dist/shvl.modern.js create mode 100644 node_modules/shvl/dist/shvl.modern.js.map create mode 100644 node_modules/shvl/dist/shvl.umd.js create mode 100644 node_modules/shvl/dist/shvl.umd.js.map create mode 100644 node_modules/shvl/index.d.ts create mode 100644 node_modules/shvl/index.js create mode 100644 node_modules/shvl/package.json create mode 100644 node_modules/vuex-persistedstate/CHANGELOG.md create mode 100644 node_modules/vuex-persistedstate/LICENSE create mode 100644 node_modules/vuex-persistedstate/README.md create mode 100644 node_modules/vuex-persistedstate/dist/index.d.ts create mode 100644 node_modules/vuex-persistedstate/dist/vuex-persistedstate.es.js create mode 100644 node_modules/vuex-persistedstate/dist/vuex-persistedstate.es.js.map create mode 100644 node_modules/vuex-persistedstate/dist/vuex-persistedstate.js create mode 100644 node_modules/vuex-persistedstate/dist/vuex-persistedstate.js.map create mode 100644 node_modules/vuex-persistedstate/dist/vuex-persistedstate.modern.js create mode 100644 node_modules/vuex-persistedstate/dist/vuex-persistedstate.modern.js.map create mode 100644 node_modules/vuex-persistedstate/dist/vuex-persistedstate.umd.js create mode 100644 node_modules/vuex-persistedstate/dist/vuex-persistedstate.umd.js.map create mode 100644 node_modules/vuex-persistedstate/package.json create mode 100644 node_modules/vuex-persistedstate/src/index.ts create mode 100644 node_modules/vuex/CHANGELOG.md create mode 100644 node_modules/vuex/LICENSE create mode 100644 node_modules/vuex/README.md create mode 100644 node_modules/vuex/dist/vuex.cjs.js create mode 100644 node_modules/vuex/dist/vuex.esm-browser.js create mode 100644 node_modules/vuex/dist/vuex.esm-browser.prod.js create mode 100644 node_modules/vuex/dist/vuex.esm-bundler.js create mode 100644 node_modules/vuex/dist/vuex.global.js create mode 100644 node_modules/vuex/dist/vuex.global.prod.js create mode 100644 node_modules/vuex/dist/vuex.mjs create mode 100644 node_modules/vuex/package.json create mode 100644 node_modules/vuex/types/helpers.d.ts create mode 100644 node_modules/vuex/types/index.d.ts create mode 100644 node_modules/vuex/types/logger.d.ts create mode 100644 node_modules/vuex/types/vue.d.ts create mode 100644 package-lock.json create mode 100644 pages.json create mode 100644 pages/communicate/communicate.vue create mode 100644 pages/home/index.vue create mode 100644 pages/login/login.vue create mode 100644 pages/message/message.vue create mode 100644 pages/my/my.vue create mode 100644 static/communicate/kefu.png create mode 100644 static/communicate/liuyan.png create mode 100644 static/communicate/tousu.png create mode 100644 static/communicate/zixun.png create mode 100644 static/goutong.png create mode 100644 static/goutong1.png create mode 100644 static/home.png create mode 100644 static/home/chuizi.png create mode 100644 static/home/jinzhan.png create mode 100644 static/home/shenpi.png create mode 100644 static/home/wangting.png create mode 100644 static/home/zhengju.png create mode 100644 static/homeselect.png create mode 100644 static/kefu.png create mode 100644 static/kefu1.png create mode 100644 static/my.png create mode 100644 static/my/my_bc.png create mode 100644 static/my/user.png create mode 100644 static/myselect.png create mode 100644 static/zhongcai.png create mode 100644 store/index.js create mode 100644 store/modules/area.js create mode 100644 store/modules/auth.js create mode 100644 store/modules/devList.js create mode 100644 store/modules/login.js create mode 100644 store/modules/message.js create mode 100644 store/modules/search.js create mode 100644 store/modules/userInfoApp.js create mode 100644 uni.promisify.adaptor.js create mode 100644 uni.scss create mode 100644 uni_modules/uni-icons/changelog.md create mode 100644 uni_modules/uni-icons/components/uni-icons/icons.js create mode 100644 uni_modules/uni-icons/components/uni-icons/uni-icons.vue create mode 100644 uni_modules/uni-icons/components/uni-icons/uniicons.css create mode 100644 uni_modules/uni-icons/components/uni-icons/uniicons.ttf create mode 100644 uni_modules/uni-icons/package.json create mode 100644 uni_modules/uni-icons/readme.md create mode 100644 uni_modules/uni-list/changelog.md create mode 100644 uni_modules/uni-list/components/uni-list-ad/uni-list-ad.vue create mode 100644 uni_modules/uni-list/components/uni-list-chat/uni-list-chat.scss create mode 100644 uni_modules/uni-list/components/uni-list-chat/uni-list-chat.vue create mode 100644 uni_modules/uni-list/components/uni-list-item/uni-list-item.vue create mode 100644 uni_modules/uni-list/components/uni-list/uni-list.vue create mode 100644 uni_modules/uni-list/components/uni-list/uni-refresh.vue create mode 100644 uni_modules/uni-list/components/uni-list/uni-refresh.wxs create mode 100644 uni_modules/uni-list/package.json create mode 100644 uni_modules/uni-list/readme.md create mode 100644 uni_modules/uni-scss/changelog.md create mode 100644 uni_modules/uni-scss/index.scss create mode 100644 uni_modules/uni-scss/package.json create mode 100644 uni_modules/uni-scss/readme.md create mode 100644 uni_modules/uni-scss/styles/index.scss create mode 100644 uni_modules/uni-scss/styles/setting/_border.scss create mode 100644 uni_modules/uni-scss/styles/setting/_color.scss create mode 100644 uni_modules/uni-scss/styles/setting/_radius.scss create mode 100644 uni_modules/uni-scss/styles/setting/_space.scss create mode 100644 uni_modules/uni-scss/styles/setting/_styles.scss create mode 100644 uni_modules/uni-scss/styles/setting/_text.scss create mode 100644 uni_modules/uni-scss/styles/setting/_variables.scss create mode 100644 uni_modules/uni-scss/styles/tools/functions.scss create mode 100644 uni_modules/uni-scss/theme.scss create mode 100644 uni_modules/uni-scss/variables.scss create mode 100644 unpackage/dist/dev/.automator/mp-weixin/.automator.json create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/pages/communicate/communicate.js.map create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/pages/home/index.js.map create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/pages/login/login.js.map create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/pages/message/message.js.map create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/pages/my/my.js.map create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.js.map create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-list/components/uni-list-item/uni-list-item.js.map create mode 100644 unpackage/dist/dev/.sourcemap/mp-weixin/uni_modules/uni-list/components/uni-list/uni-list.js.map create mode 100644 unpackage/dist/dev/mp-weixin/app.js create mode 100644 unpackage/dist/dev/mp-weixin/app.json create mode 100644 unpackage/dist/dev/mp-weixin/app.wxss create mode 100644 unpackage/dist/dev/mp-weixin/common/main.js create mode 100644 unpackage/dist/dev/mp-weixin/common/main.wxss create mode 100644 unpackage/dist/dev/mp-weixin/common/runtime.js create mode 100644 unpackage/dist/dev/mp-weixin/common/vendor.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/communicate/communicate.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/communicate/communicate.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/communicate/communicate.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/home/index.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/home/index.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/home/index.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/home/index.wxss create mode 100644 unpackage/dist/dev/mp-weixin/pages/message/message.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/message/message.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/message/message.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/message/message.wxss create mode 100644 unpackage/dist/dev/mp-weixin/pages/my/my.js create mode 100644 unpackage/dist/dev/mp-weixin/pages/my/my.json create mode 100644 unpackage/dist/dev/mp-weixin/pages/my/my.wxml create mode 100644 unpackage/dist/dev/mp-weixin/pages/my/my.wxss create mode 100644 unpackage/dist/dev/mp-weixin/project.config.json create mode 100644 unpackage/dist/dev/mp-weixin/project.private.config.json create mode 100644 unpackage/dist/dev/mp-weixin/static/communicate/kefu.png create mode 100644 unpackage/dist/dev/mp-weixin/static/communicate/liuyan.png create mode 100644 unpackage/dist/dev/mp-weixin/static/communicate/tousu.png create mode 100644 unpackage/dist/dev/mp-weixin/static/communicate/zixun.png create mode 100644 unpackage/dist/dev/mp-weixin/static/goutong.png create mode 100644 unpackage/dist/dev/mp-weixin/static/goutong1.png create mode 100644 unpackage/dist/dev/mp-weixin/static/home.png create mode 100644 unpackage/dist/dev/mp-weixin/static/home/chuizi.png create mode 100644 unpackage/dist/dev/mp-weixin/static/home/jinzhan.png create mode 100644 unpackage/dist/dev/mp-weixin/static/home/shenpi.png create mode 100644 unpackage/dist/dev/mp-weixin/static/home/wangting.png create mode 100644 unpackage/dist/dev/mp-weixin/static/home/zhengju.png create mode 100644 unpackage/dist/dev/mp-weixin/static/homeselect.png create mode 100644 unpackage/dist/dev/mp-weixin/static/kefu.png create mode 100644 unpackage/dist/dev/mp-weixin/static/kefu1.png create mode 100644 unpackage/dist/dev/mp-weixin/static/my.png create mode 100644 unpackage/dist/dev/mp-weixin/static/my/my_bc.png create mode 100644 unpackage/dist/dev/mp-weixin/static/my/user.png create mode 100644 unpackage/dist/dev/mp-weixin/static/myselect.png create mode 100644 unpackage/dist/dev/mp-weixin/static/zhongcai.png create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.json create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.wxml create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uni-icons/components/uni-icons/uni-icons.wxss create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uni-list/components/uni-list-item/uni-list-item.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uni-list/components/uni-list-item/uni-list-item.json create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uni-list/components/uni-list-item/uni-list-item.wxml create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uni-list/components/uni-list-item/uni-list-item.wxss create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uni-list/components/uni-list/uni-list.js create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uni-list/components/uni-list/uni-list.json create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uni-list/components/uni-list/uni-list.wxml create mode 100644 unpackage/dist/dev/mp-weixin/uni_modules/uni-list/components/uni-list/uni-list.wxss diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json new file mode 100644 index 0000000..81f13f4 --- /dev/null +++ b/.hbuilderx/launch.json @@ -0,0 +1,16 @@ +{ // launch.json 配置了启动调试时相关设置,configurations下节点名称可为 app-plus/h5/mp-weixin/mp-baidu/mp-alipay/mp-qq/mp-toutiao/mp-360/ + // launchtype项可配置值为local或remote, local代表前端连本地云函数,remote代表前端连云端云函数 + "version": "0.0", + "configurations": [{ + "default" : + { + "launchtype" : "local" + }, + "mp-weixin" : + { + "launchtype" : "local" + }, + "type" : "uniCloud" + } + ] +} diff --git a/App.vue b/App.vue new file mode 100644 index 0000000..dbe3e0e --- /dev/null +++ b/App.vue @@ -0,0 +1,21 @@ + + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..c3ff205 --- /dev/null +++ b/index.html @@ -0,0 +1,20 @@ + + + + + + + + + + +
+ + + diff --git a/main.js b/main.js new file mode 100644 index 0000000..b22882e --- /dev/null +++ b/main.js @@ -0,0 +1,24 @@ +import App from './App' +import store from './store/index.js' + +// #ifndef VUE3 +import Vue from 'vue' +import './uni.promisify.adaptor' +Vue.config.productionTip = false +App.mpType = 'app' +const app = new Vue({ + store, + ...App +}) +app.$mount() +// #endif + +// #ifdef VUE3 +import { createSSRApp } from 'vue' +export function createApp() { + const app = createSSRApp(App) + return { + app + } +} +// #endif \ No newline at end of file diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..868eee7 --- /dev/null +++ b/manifest.json @@ -0,0 +1,72 @@ +{ + "name" : "legalAffairs-app", + "appid" : "__UNI__6B7438C", + "description" : "", + "versionName" : "1.0.0", + "versionCode" : "100", + "transformPx" : false, + /* 5+App特有相关 */ + "app-plus" : { + "usingComponents" : true, + "nvueStyleCompiler" : "uni-app", + "compilerVersion" : 3, + "splashscreen" : { + "alwaysShowBeforeRender" : true, + "waiting" : true, + "autoclose" : true, + "delay" : 0 + }, + /* 模块配置 */ + "modules" : {}, + /* 应用发布信息 */ + "distribute" : { + /* android打包配置 */ + "android" : { + "permissions" : [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ] + }, + /* ios打包配置 */ + "ios" : {}, + /* SDK配置 */ + "sdkConfigs" : {} + } + }, + /* 快应用特有相关 */ + "quickapp" : {}, + /* 小程序特有相关 */ + "mp-weixin" : { + "appid" : "wx6d65ec24cf6b13af", + "setting" : { + "urlCheck" : false + }, + "usingComponents" : true + }, + "mp-alipay" : { + "usingComponents" : true + }, + "mp-baidu" : { + "usingComponents" : true + }, + "mp-toutiao" : { + "usingComponents" : true + }, + "uniStatistics" : { + "enable" : false + }, + "vueVersion" : "2" +} diff --git a/node_modules/@vue/devtools-api/lib/cjs/api/api.js b/node_modules/@vue/devtools-api/lib/cjs/api/api.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/cjs/api/api.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/@vue/devtools-api/lib/cjs/api/app.js b/node_modules/@vue/devtools-api/lib/cjs/api/app.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/cjs/api/app.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/@vue/devtools-api/lib/cjs/api/component.js b/node_modules/@vue/devtools-api/lib/cjs/api/component.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/cjs/api/component.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/@vue/devtools-api/lib/cjs/api/context.js b/node_modules/@vue/devtools-api/lib/cjs/api/context.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/cjs/api/context.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/@vue/devtools-api/lib/cjs/api/hooks.js b/node_modules/@vue/devtools-api/lib/cjs/api/hooks.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/cjs/api/hooks.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/@vue/devtools-api/lib/cjs/api/index.js b/node_modules/@vue/devtools-api/lib/cjs/api/index.js new file mode 100644 index 0000000..22f7589 --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/cjs/api/index.js @@ -0,0 +1,22 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./api.js"), exports); +__exportStar(require("./app.js"), exports); +__exportStar(require("./component.js"), exports); +__exportStar(require("./context.js"), exports); +__exportStar(require("./hooks.js"), exports); +__exportStar(require("./util.js"), exports); diff --git a/node_modules/@vue/devtools-api/lib/cjs/api/util.js b/node_modules/@vue/devtools-api/lib/cjs/api/util.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/cjs/api/util.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/@vue/devtools-api/lib/cjs/const.js b/node_modules/@vue/devtools-api/lib/cjs/const.js new file mode 100644 index 0000000..84d408c --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/cjs/const.js @@ -0,0 +1,5 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.HOOK_PLUGIN_SETTINGS_SET = exports.HOOK_SETUP = void 0; +exports.HOOK_SETUP = 'devtools-plugin:setup'; +exports.HOOK_PLUGIN_SETTINGS_SET = 'plugin:settings:set'; diff --git a/node_modules/@vue/devtools-api/lib/cjs/env.js b/node_modules/@vue/devtools-api/lib/cjs/env.js new file mode 100644 index 0000000..178d457 --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/cjs/env.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.isProxyAvailable = exports.getTarget = exports.getDevtoolsGlobalHook = void 0; +function getDevtoolsGlobalHook() { + return getTarget().__VUE_DEVTOOLS_GLOBAL_HOOK__; +} +exports.getDevtoolsGlobalHook = getDevtoolsGlobalHook; +function getTarget() { + // @ts-ignore + return (typeof navigator !== 'undefined' && typeof window !== 'undefined') + ? window + : typeof global !== 'undefined' + ? global + : {}; +} +exports.getTarget = getTarget; +exports.isProxyAvailable = typeof Proxy === 'function'; diff --git a/node_modules/@vue/devtools-api/lib/cjs/index.js b/node_modules/@vue/devtools-api/lib/cjs/index.js new file mode 100644 index 0000000..249ac4d --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/cjs/index.js @@ -0,0 +1,44 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.setupDevtoolsPlugin = void 0; +const env_js_1 = require("./env.js"); +const const_js_1 = require("./const.js"); +const proxy_js_1 = require("./proxy.js"); +__exportStar(require("./api/index.js"), exports); +__exportStar(require("./plugin.js"), exports); +__exportStar(require("./time.js"), exports); +function setupDevtoolsPlugin(pluginDescriptor, setupFn) { + const descriptor = pluginDescriptor; + const target = (0, env_js_1.getTarget)(); + const hook = (0, env_js_1.getDevtoolsGlobalHook)(); + const enableProxy = env_js_1.isProxyAvailable && descriptor.enableEarlyProxy; + if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) { + hook.emit(const_js_1.HOOK_SETUP, pluginDescriptor, setupFn); + } + else { + const proxy = enableProxy ? new proxy_js_1.ApiProxy(descriptor, hook) : null; + const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || []; + list.push({ + pluginDescriptor: descriptor, + setupFn, + proxy, + }); + if (proxy) + setupFn(proxy.proxiedTarget); + } +} +exports.setupDevtoolsPlugin = setupDevtoolsPlugin; diff --git a/node_modules/@vue/devtools-api/lib/cjs/plugin.js b/node_modules/@vue/devtools-api/lib/cjs/plugin.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/cjs/plugin.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/node_modules/@vue/devtools-api/lib/cjs/proxy.js b/node_modules/@vue/devtools-api/lib/cjs/proxy.js new file mode 100644 index 0000000..5385e60 --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/cjs/proxy.js @@ -0,0 +1,111 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.ApiProxy = void 0; +const const_js_1 = require("./const.js"); +const time_js_1 = require("./time.js"); +class ApiProxy { + constructor(plugin, hook) { + this.target = null; + this.targetQueue = []; + this.onQueue = []; + this.plugin = plugin; + this.hook = hook; + const defaultSettings = {}; + if (plugin.settings) { + for (const id in plugin.settings) { + const item = plugin.settings[id]; + defaultSettings[id] = item.defaultValue; + } + } + const localSettingsSaveId = `__vue-devtools-plugin-settings__${plugin.id}`; + let currentSettings = Object.assign({}, defaultSettings); + try { + const raw = localStorage.getItem(localSettingsSaveId); + const data = JSON.parse(raw); + Object.assign(currentSettings, data); + } + catch (e) { + // noop + } + this.fallbacks = { + getSettings() { + return currentSettings; + }, + setSettings(value) { + try { + localStorage.setItem(localSettingsSaveId, JSON.stringify(value)); + } + catch (e) { + // noop + } + currentSettings = value; + }, + now() { + return (0, time_js_1.now)(); + }, + }; + if (hook) { + hook.on(const_js_1.HOOK_PLUGIN_SETTINGS_SET, (pluginId, value) => { + if (pluginId === this.plugin.id) { + this.fallbacks.setSettings(value); + } + }); + } + this.proxiedOn = new Proxy({}, { + get: (_target, prop) => { + if (this.target) { + return this.target.on[prop]; + } + else { + return (...args) => { + this.onQueue.push({ + method: prop, + args, + }); + }; + } + }, + }); + this.proxiedTarget = new Proxy({}, { + get: (_target, prop) => { + if (this.target) { + return this.target[prop]; + } + else if (prop === 'on') { + return this.proxiedOn; + } + else if (Object.keys(this.fallbacks).includes(prop)) { + return (...args) => { + this.targetQueue.push({ + method: prop, + args, + resolve: () => { }, + }); + return this.fallbacks[prop](...args); + }; + } + else { + return (...args) => { + return new Promise(resolve => { + this.targetQueue.push({ + method: prop, + args, + resolve, + }); + }); + }; + } + }, + }); + } + async setRealTarget(target) { + this.target = target; + for (const item of this.onQueue) { + this.target.on[item.method](...item.args); + } + for (const item of this.targetQueue) { + item.resolve(await this.target[item.method](...item.args)); + } + } +} +exports.ApiProxy = ApiProxy; diff --git a/node_modules/@vue/devtools-api/lib/cjs/time.js b/node_modules/@vue/devtools-api/lib/cjs/time.js new file mode 100644 index 0000000..5b17a25 --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/cjs/time.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.now = exports.isPerformanceSupported = void 0; +let supported; +let perf; +function isPerformanceSupported() { + var _a; + if (supported !== undefined) { + return supported; + } + if (typeof window !== 'undefined' && window.performance) { + supported = true; + perf = window.performance; + } + else if (typeof global !== 'undefined' && ((_a = global.perf_hooks) === null || _a === void 0 ? void 0 : _a.performance)) { + supported = true; + perf = global.perf_hooks.performance; + } + else { + supported = false; + } + return supported; +} +exports.isPerformanceSupported = isPerformanceSupported; +function now() { + return isPerformanceSupported() ? perf.now() : Date.now(); +} +exports.now = now; diff --git a/node_modules/@vue/devtools-api/lib/esm/api/api.d.ts b/node_modules/@vue/devtools-api/lib/esm/api/api.d.ts new file mode 100644 index 0000000..071312a --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/esm/api/api.d.ts @@ -0,0 +1,108 @@ +import type { ComponentBounds, Hookable } from './hooks.js'; +import type { Context } from './context.js'; +import type { ComponentInstance, ComponentState, StateBase } from './component.js'; +import type { App } from './app.js'; +import type { ID } from './util.js'; +export interface DevtoolsPluginApi { + on: Hookable; + notifyComponentUpdate(instance?: ComponentInstance): void; + addTimelineLayer(options: TimelineLayerOptions): void; + addTimelineEvent(options: TimelineEventOptions): void; + addInspector(options: CustomInspectorOptions): void; + sendInspectorTree(inspectorId: string): void; + sendInspectorState(inspectorId: string): void; + selectInspectorNode(inspectorId: string, nodeId: string): void; + getComponentBounds(instance: ComponentInstance): Promise; + getComponentName(instance: ComponentInstance): Promise; + getComponentInstances(app: App): Promise; + highlightElement(instance: ComponentInstance): void; + unhighlightElement(): void; + getSettings(pluginId?: string): TSettings; + now(): number; + /** + * @private Not implemented yet + */ + setSettings(values: TSettings): void; +} +export interface AppRecord { + id: string; + name: string; + instanceMap: Map; + rootInstance: ComponentInstance; +} +export interface TimelineLayerOptions { + id: string; + label: string; + color: number; + skipScreenshots?: boolean; + groupsOnly?: boolean; + ignoreNoDurationGroups?: boolean; + screenshotOverlayRender?: (event: TimelineEvent & ScreenshotOverlayEvent, ctx: ScreenshotOverlayRenderContext) => ScreenshotOverlayRenderResult | Promise; +} +export interface ScreenshotOverlayEvent { + layerId: string; + renderMeta: any; +} +export interface ScreenshotOverlayRenderContext { + screenshot: ScreenshotData; + events: (TimelineEvent & ScreenshotOverlayEvent)[]; + index: number; +} +export declare type ScreenshotOverlayRenderResult = HTMLElement | string | false; +export interface ScreenshotData { + time: number; +} +export interface TimelineEventOptions { + layerId: string; + event: TimelineEvent; + all?: boolean; +} +export interface TimelineEvent { + time: number; + data: TData; + logType?: 'default' | 'warning' | 'error'; + meta?: TMeta; + groupId?: ID; + title?: string; + subtitle?: string; +} +export interface TimelineMarkerOptions { + id: string; + time: number; + color: number; + label: string; + all?: boolean; +} +export interface CustomInspectorOptions { + id: string; + label: string; + icon?: string; + treeFilterPlaceholder?: string; + stateFilterPlaceholder?: string; + noSelectionText?: string; + actions?: { + icon: string; + tooltip?: string; + action: () => void | Promise; + }[]; + nodeActions?: { + icon: string; + tooltip?: string; + action: (nodeId: string) => void | Promise; + }[]; +} +export interface CustomInspectorNode { + id: string; + label: string; + children?: CustomInspectorNode[]; + tags?: InspectorNodeTag[]; +} +export interface InspectorNodeTag { + label: string; + textColor: number; + backgroundColor: number; + tooltip?: string; +} +export interface CustomInspectorState { + [key: string]: (StateBase | Omit)[]; +} diff --git a/node_modules/@vue/devtools-api/lib/esm/api/api.js b/node_modules/@vue/devtools-api/lib/esm/api/api.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/esm/api/api.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@vue/devtools-api/lib/esm/api/app.d.ts b/node_modules/@vue/devtools-api/lib/esm/api/app.d.ts new file mode 100644 index 0000000..42638c0 --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/esm/api/app.d.ts @@ -0,0 +1 @@ +export declare type App = any; diff --git a/node_modules/@vue/devtools-api/lib/esm/api/app.js b/node_modules/@vue/devtools-api/lib/esm/api/app.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/esm/api/app.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@vue/devtools-api/lib/esm/api/component.d.ts b/node_modules/@vue/devtools-api/lib/esm/api/component.d.ts new file mode 100644 index 0000000..335dd04 --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/esm/api/component.d.ts @@ -0,0 +1,78 @@ +import type { InspectorNodeTag } from './api.js'; +import type { ID } from './util.js'; +export declare type ComponentInstance = any; +export interface ComponentTreeNode { + uid: ID; + id: string; + name: string; + renderKey: string | number; + inactive: boolean; + isFragment: boolean; + hasChildren: boolean; + children: ComponentTreeNode[]; + domOrder?: number[]; + consoleId?: string; + isRouterView?: boolean; + macthedRouteSegment?: string; + tags: InspectorNodeTag[]; + autoOpen: boolean; + meta?: any; +} +export interface InspectedComponentData { + id: string; + name: string; + file: string; + state: ComponentState[]; + functional?: boolean; +} +export interface StateBase { + key: string; + value: any; + editable?: boolean; + objectType?: 'ref' | 'reactive' | 'computed' | 'other'; + raw?: string; +} +export interface ComponentStateBase extends StateBase { + type: string; +} +export interface ComponentPropState extends ComponentStateBase { + meta?: { + type: string; + required: boolean; + /** Vue 1 only */ + mode?: 'default' | 'sync' | 'once'; + }; +} +export declare type ComponentBuiltinCustomStateTypes = 'function' | 'map' | 'set' | 'reference' | 'component' | 'component-definition' | 'router' | 'store'; +export interface ComponentCustomState extends ComponentStateBase { + value: CustomState; +} +export declare type CustomState = { + _custom: { + type: ComponentBuiltinCustomStateTypes | string; + objectType?: string; + display?: string; + tooltip?: string; + value?: any; + abstract?: boolean; + file?: string; + uid?: number; + readOnly?: boolean; + /** Configure immediate child fields */ + fields?: { + abstract?: boolean; + }; + id?: any; + actions?: { + icon: string; + tooltip?: string; + action: () => void | Promise; + }[]; + /** internal */ + _reviveId?: number; + }; +}; +export declare type ComponentState = ComponentStateBase | ComponentPropState | ComponentCustomState; +export interface ComponentDevtoolsOptions { + hide?: boolean; +} diff --git a/node_modules/@vue/devtools-api/lib/esm/api/component.js b/node_modules/@vue/devtools-api/lib/esm/api/component.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/esm/api/component.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@vue/devtools-api/lib/esm/api/context.d.ts b/node_modules/@vue/devtools-api/lib/esm/api/context.d.ts new file mode 100644 index 0000000..29388f1 --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/esm/api/context.d.ts @@ -0,0 +1,5 @@ +import type { AppRecord } from './api.js'; +export interface Context { + currentTab: string; + currentAppRecord: AppRecord; +} diff --git a/node_modules/@vue/devtools-api/lib/esm/api/context.js b/node_modules/@vue/devtools-api/lib/esm/api/context.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/esm/api/context.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@vue/devtools-api/lib/esm/api/hooks.d.ts b/node_modules/@vue/devtools-api/lib/esm/api/hooks.d.ts new file mode 100644 index 0000000..c980b13 --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/esm/api/hooks.d.ts @@ -0,0 +1,180 @@ +import type { ComponentTreeNode, InspectedComponentData, ComponentInstance, ComponentDevtoolsOptions } from './component.js'; +import type { App } from './app.js'; +import type { CustomInspectorNode, CustomInspectorState, TimelineEvent } from './api.js'; +export declare const enum Hooks { + TRANSFORM_CALL = "transformCall", + GET_APP_RECORD_NAME = "getAppRecordName", + GET_APP_ROOT_INSTANCE = "getAppRootInstance", + REGISTER_APPLICATION = "registerApplication", + WALK_COMPONENT_TREE = "walkComponentTree", + VISIT_COMPONENT_TREE = "visitComponentTree", + WALK_COMPONENT_PARENTS = "walkComponentParents", + INSPECT_COMPONENT = "inspectComponent", + GET_COMPONENT_BOUNDS = "getComponentBounds", + GET_COMPONENT_NAME = "getComponentName", + GET_COMPONENT_INSTANCES = "getComponentInstances", + GET_ELEMENT_COMPONENT = "getElementComponent", + GET_COMPONENT_ROOT_ELEMENTS = "getComponentRootElements", + EDIT_COMPONENT_STATE = "editComponentState", + GET_COMPONENT_DEVTOOLS_OPTIONS = "getAppDevtoolsOptions", + GET_COMPONENT_RENDER_CODE = "getComponentRenderCode", + INSPECT_TIMELINE_EVENT = "inspectTimelineEvent", + TIMELINE_CLEARED = "timelineCleared", + GET_INSPECTOR_TREE = "getInspectorTree", + GET_INSPECTOR_STATE = "getInspectorState", + EDIT_INSPECTOR_STATE = "editInspectorState", + SET_PLUGIN_SETTINGS = "setPluginSettings" +} +export interface ComponentBounds { + left: number; + top: number; + width: number; + height: number; +} +export declare type HookPayloads = { + [Hooks.TRANSFORM_CALL]: { + callName: string; + inArgs: any[]; + outArgs: any[]; + }; + [Hooks.GET_APP_RECORD_NAME]: { + app: App; + name: string; + }; + [Hooks.GET_APP_ROOT_INSTANCE]: { + app: App; + root: ComponentInstance; + }; + [Hooks.REGISTER_APPLICATION]: { + app: App; + }; + [Hooks.WALK_COMPONENT_TREE]: { + componentInstance: ComponentInstance; + componentTreeData: ComponentTreeNode[]; + maxDepth: number; + filter: string; + recursively: boolean; + }; + [Hooks.VISIT_COMPONENT_TREE]: { + app: App; + componentInstance: ComponentInstance; + treeNode: ComponentTreeNode; + filter: string; + }; + [Hooks.WALK_COMPONENT_PARENTS]: { + componentInstance: ComponentInstance; + parentInstances: ComponentInstance[]; + }; + [Hooks.INSPECT_COMPONENT]: { + app: App; + componentInstance: ComponentInstance; + instanceData: InspectedComponentData; + }; + [Hooks.GET_COMPONENT_BOUNDS]: { + componentInstance: ComponentInstance; + bounds: ComponentBounds; + }; + [Hooks.GET_COMPONENT_NAME]: { + componentInstance: ComponentInstance; + name: string; + }; + [Hooks.GET_COMPONENT_INSTANCES]: { + app: App; + componentInstances: ComponentInstance[]; + }; + [Hooks.GET_ELEMENT_COMPONENT]: { + element: HTMLElement | any; + componentInstance: ComponentInstance; + }; + [Hooks.GET_COMPONENT_ROOT_ELEMENTS]: { + componentInstance: ComponentInstance; + rootElements: (HTMLElement | any)[]; + }; + [Hooks.EDIT_COMPONENT_STATE]: { + app: App; + componentInstance: ComponentInstance; + path: string[]; + type: string; + state: EditStatePayload; + set: (object: any, path?: string | (string[]), value?: any, cb?: (object: any, field: string, value: any) => void) => void; + }; + [Hooks.GET_COMPONENT_DEVTOOLS_OPTIONS]: { + componentInstance: ComponentInstance; + options: ComponentDevtoolsOptions; + }; + [Hooks.GET_COMPONENT_RENDER_CODE]: { + componentInstance: ComponentInstance; + code: string; + }; + [Hooks.INSPECT_TIMELINE_EVENT]: { + app: App; + layerId: string; + event: TimelineEvent; + all?: boolean; + data: any; + }; + [Hooks.TIMELINE_CLEARED]: Record; + [Hooks.GET_INSPECTOR_TREE]: { + app: App; + inspectorId: string; + filter: string; + rootNodes: CustomInspectorNode[]; + }; + [Hooks.GET_INSPECTOR_STATE]: { + app: App; + inspectorId: string; + nodeId: string; + state: CustomInspectorState; + }; + [Hooks.EDIT_INSPECTOR_STATE]: { + app: App; + inspectorId: string; + nodeId: string; + path: string[]; + type: string; + state: EditStatePayload; + set: (object: any, path?: string | (string[]), value?: any, cb?: (object: any, field: string, value: any) => void) => void; + }; + [Hooks.SET_PLUGIN_SETTINGS]: { + app: App; + pluginId: string; + key: string; + newValue: any; + oldValue: any; + settings: any; + }; +}; +export declare type EditStatePayload = { + value: any; + newKey?: string | null; + remove?: undefined | false; +} | { + value?: undefined; + newKey?: undefined; + remove: true; +}; +export declare type HookHandler = (payload: TPayload, ctx: TContext) => void | Promise; +export interface Hookable { + transformCall(handler: HookHandler): any; + getAppRecordName(handler: HookHandler): any; + getAppRootInstance(handler: HookHandler): any; + registerApplication(handler: HookHandler): any; + walkComponentTree(handler: HookHandler): any; + visitComponentTree(handler: HookHandler): any; + walkComponentParents(handler: HookHandler): any; + inspectComponent(handler: HookHandler): any; + getComponentBounds(handler: HookHandler): any; + getComponentName(handler: HookHandler): any; + getComponentInstances(handler: HookHandler): any; + getElementComponent(handler: HookHandler): any; + getComponentRootElements(handler: HookHandler): any; + editComponentState(handler: HookHandler): any; + getComponentDevtoolsOptions(handler: HookHandler): any; + getComponentRenderCode(handler: HookHandler): any; + inspectTimelineEvent(handler: HookHandler): any; + timelineCleared(handler: HookHandler): any; + getInspectorTree(handler: HookHandler): any; + getInspectorState(handler: HookHandler): any; + editInspectorState(handler: HookHandler): any; + setPluginSettings(handler: HookHandler): any; +} diff --git a/node_modules/@vue/devtools-api/lib/esm/api/hooks.js b/node_modules/@vue/devtools-api/lib/esm/api/hooks.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/esm/api/hooks.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@vue/devtools-api/lib/esm/api/index.d.ts b/node_modules/@vue/devtools-api/lib/esm/api/index.d.ts new file mode 100644 index 0000000..70d09d2 --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/esm/api/index.d.ts @@ -0,0 +1,6 @@ +export * from './api.js'; +export * from './app.js'; +export * from './component.js'; +export * from './context.js'; +export * from './hooks.js'; +export * from './util.js'; diff --git a/node_modules/@vue/devtools-api/lib/esm/api/index.js b/node_modules/@vue/devtools-api/lib/esm/api/index.js new file mode 100644 index 0000000..70d09d2 --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/esm/api/index.js @@ -0,0 +1,6 @@ +export * from './api.js'; +export * from './app.js'; +export * from './component.js'; +export * from './context.js'; +export * from './hooks.js'; +export * from './util.js'; diff --git a/node_modules/@vue/devtools-api/lib/esm/api/util.d.ts b/node_modules/@vue/devtools-api/lib/esm/api/util.d.ts new file mode 100644 index 0000000..7c437e5 --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/esm/api/util.d.ts @@ -0,0 +1,4 @@ +export declare type ID = number | string; +export interface WithId { + id: ID; +} diff --git a/node_modules/@vue/devtools-api/lib/esm/api/util.js b/node_modules/@vue/devtools-api/lib/esm/api/util.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/esm/api/util.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@vue/devtools-api/lib/esm/const.d.ts b/node_modules/@vue/devtools-api/lib/esm/const.d.ts new file mode 100644 index 0000000..289b254 --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/esm/const.d.ts @@ -0,0 +1,2 @@ +export declare const HOOK_SETUP = "devtools-plugin:setup"; +export declare const HOOK_PLUGIN_SETTINGS_SET = "plugin:settings:set"; diff --git a/node_modules/@vue/devtools-api/lib/esm/const.js b/node_modules/@vue/devtools-api/lib/esm/const.js new file mode 100644 index 0000000..872ea3e --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/esm/const.js @@ -0,0 +1,2 @@ +export const HOOK_SETUP = 'devtools-plugin:setup'; +export const HOOK_PLUGIN_SETTINGS_SET = 'plugin:settings:set'; diff --git a/node_modules/@vue/devtools-api/lib/esm/env.d.ts b/node_modules/@vue/devtools-api/lib/esm/env.d.ts new file mode 100644 index 0000000..16c1399 --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/esm/env.d.ts @@ -0,0 +1,15 @@ +import type { PluginDescriptor, SetupFunction } from './index.js'; +import type { ApiProxy } from './proxy.js'; +export interface PluginQueueItem { + pluginDescriptor: PluginDescriptor; + setupFn: SetupFunction; + proxy?: ApiProxy; +} +interface GlobalTarget { + __VUE_DEVTOOLS_PLUGINS__?: PluginQueueItem[]; + __VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__?: boolean; +} +export declare function getDevtoolsGlobalHook(): any; +export declare function getTarget(): GlobalTarget; +export declare const isProxyAvailable: boolean; +export {}; diff --git a/node_modules/@vue/devtools-api/lib/esm/env.js b/node_modules/@vue/devtools-api/lib/esm/env.js new file mode 100644 index 0000000..6713a93 --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/esm/env.js @@ -0,0 +1,12 @@ +export function getDevtoolsGlobalHook() { + return getTarget().__VUE_DEVTOOLS_GLOBAL_HOOK__; +} +export function getTarget() { + // @ts-ignore + return (typeof navigator !== 'undefined' && typeof window !== 'undefined') + ? window + : typeof global !== 'undefined' + ? global + : {}; +} +export const isProxyAvailable = typeof Proxy === 'function'; diff --git a/node_modules/@vue/devtools-api/lib/esm/index.d.ts b/node_modules/@vue/devtools-api/lib/esm/index.d.ts new file mode 100644 index 0000000..6833324 --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/esm/index.d.ts @@ -0,0 +1,18 @@ +import type { DevtoolsPluginApi } from './api/index.js'; +import type { PluginDescriptor, ExtractSettingsTypes, PluginSettingsItem } from './plugin.js'; +export * from './api/index.js'; +export * from './plugin.js'; +export * from './time.js'; +export { PluginQueueItem } from './env.js'; +declare type Cast = A extends B ? A : B; +declare type Narrowable = string | number | bigint | boolean; +declare type Narrow = Cast; +})>; +declare type Exact = { + [K in keyof C]: K extends keyof T ? T[K] : never; +}; +export declare type SetupFunction = (api: DevtoolsPluginApi) => void; +export declare function setupDevtoolsPlugin, TSettings = ExtractSettingsTypes ? S : Record : Record>>(pluginDescriptor: Narrow, setupFn: SetupFunction): void; diff --git a/node_modules/@vue/devtools-api/lib/esm/index.js b/node_modules/@vue/devtools-api/lib/esm/index.js new file mode 100644 index 0000000..39259bc --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/esm/index.js @@ -0,0 +1,26 @@ +import { getTarget, getDevtoolsGlobalHook, isProxyAvailable } from './env.js'; +import { HOOK_SETUP } from './const.js'; +import { ApiProxy } from './proxy.js'; +export * from './api/index.js'; +export * from './plugin.js'; +export * from './time.js'; +export function setupDevtoolsPlugin(pluginDescriptor, setupFn) { + const descriptor = pluginDescriptor; + const target = getTarget(); + const hook = getDevtoolsGlobalHook(); + const enableProxy = isProxyAvailable && descriptor.enableEarlyProxy; + if (hook && (target.__VUE_DEVTOOLS_PLUGIN_API_AVAILABLE__ || !enableProxy)) { + hook.emit(HOOK_SETUP, pluginDescriptor, setupFn); + } + else { + const proxy = enableProxy ? new ApiProxy(descriptor, hook) : null; + const list = target.__VUE_DEVTOOLS_PLUGINS__ = target.__VUE_DEVTOOLS_PLUGINS__ || []; + list.push({ + pluginDescriptor: descriptor, + setupFn, + proxy, + }); + if (proxy) + setupFn(proxy.proxiedTarget); + } +} diff --git a/node_modules/@vue/devtools-api/lib/esm/plugin.d.ts b/node_modules/@vue/devtools-api/lib/esm/plugin.d.ts new file mode 100644 index 0000000..dd182ca --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/esm/plugin.d.ts @@ -0,0 +1,47 @@ +import type { App } from './api/index.js'; +export interface PluginDescriptor { + id: string; + label: string; + app: App; + packageName?: string; + homepage?: string; + componentStateTypes?: string[]; + logo?: string; + disableAppScope?: boolean; + disablePluginScope?: boolean; + /** + * Run the plugin setup and expose the api even if the devtools is not opened yet. + * Useful to record timeline events early. + */ + enableEarlyProxy?: boolean; + settings?: Record; +} +export declare type PluginSettingsItem = { + label: string; + description?: string; +} & ({ + type: 'boolean'; + defaultValue: boolean; +} | { + type: 'choice'; + defaultValue: string | number; + options: { + value: string | number; + label: string; + }[]; + component?: 'select' | 'button-group'; +} | { + type: 'text'; + defaultValue: string; +}); +declare type InferSettingsType = [T] extends [{ + type: 'boolean'; +}] ? boolean : [T] extends [{ + type: 'choice'; +}] ? T['options'][number]['value'] : [T] extends [{ + type: 'text'; +}] ? string : unknown; +export declare type ExtractSettingsTypes> = { + [K in keyof O]: InferSettingsType; +}; +export {}; diff --git a/node_modules/@vue/devtools-api/lib/esm/plugin.js b/node_modules/@vue/devtools-api/lib/esm/plugin.js new file mode 100644 index 0000000..cb0ff5c --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/esm/plugin.js @@ -0,0 +1 @@ +export {}; diff --git a/node_modules/@vue/devtools-api/lib/esm/proxy.d.ts b/node_modules/@vue/devtools-api/lib/esm/proxy.d.ts new file mode 100644 index 0000000..38ff867 --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/esm/proxy.d.ts @@ -0,0 +1,20 @@ +import type { Context, DevtoolsPluginApi, Hookable } from './api/index.js'; +import type { PluginDescriptor } from './plugin.js'; +interface QueueItem { + method: string; + args: any[]; + resolve?: (value?: any) => void; +} +export declare class ApiProxy = DevtoolsPluginApi> { + target: TTarget | null; + targetQueue: QueueItem[]; + proxiedTarget: TTarget; + onQueue: QueueItem[]; + proxiedOn: Hookable; + plugin: PluginDescriptor; + hook: any; + fallbacks: Record; + constructor(plugin: PluginDescriptor, hook: any); + setRealTarget(target: TTarget): Promise; +} +export {}; diff --git a/node_modules/@vue/devtools-api/lib/esm/proxy.js b/node_modules/@vue/devtools-api/lib/esm/proxy.js new file mode 100644 index 0000000..639077e --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/esm/proxy.js @@ -0,0 +1,107 @@ +import { HOOK_PLUGIN_SETTINGS_SET } from './const.js'; +import { now } from './time.js'; +export class ApiProxy { + constructor(plugin, hook) { + this.target = null; + this.targetQueue = []; + this.onQueue = []; + this.plugin = plugin; + this.hook = hook; + const defaultSettings = {}; + if (plugin.settings) { + for (const id in plugin.settings) { + const item = plugin.settings[id]; + defaultSettings[id] = item.defaultValue; + } + } + const localSettingsSaveId = `__vue-devtools-plugin-settings__${plugin.id}`; + let currentSettings = Object.assign({}, defaultSettings); + try { + const raw = localStorage.getItem(localSettingsSaveId); + const data = JSON.parse(raw); + Object.assign(currentSettings, data); + } + catch (e) { + // noop + } + this.fallbacks = { + getSettings() { + return currentSettings; + }, + setSettings(value) { + try { + localStorage.setItem(localSettingsSaveId, JSON.stringify(value)); + } + catch (e) { + // noop + } + currentSettings = value; + }, + now() { + return now(); + }, + }; + if (hook) { + hook.on(HOOK_PLUGIN_SETTINGS_SET, (pluginId, value) => { + if (pluginId === this.plugin.id) { + this.fallbacks.setSettings(value); + } + }); + } + this.proxiedOn = new Proxy({}, { + get: (_target, prop) => { + if (this.target) { + return this.target.on[prop]; + } + else { + return (...args) => { + this.onQueue.push({ + method: prop, + args, + }); + }; + } + }, + }); + this.proxiedTarget = new Proxy({}, { + get: (_target, prop) => { + if (this.target) { + return this.target[prop]; + } + else if (prop === 'on') { + return this.proxiedOn; + } + else if (Object.keys(this.fallbacks).includes(prop)) { + return (...args) => { + this.targetQueue.push({ + method: prop, + args, + resolve: () => { }, + }); + return this.fallbacks[prop](...args); + }; + } + else { + return (...args) => { + return new Promise(resolve => { + this.targetQueue.push({ + method: prop, + args, + resolve, + }); + }); + }; + } + }, + }); + } + async setRealTarget(target) { + this.target = target; + for (const item of this.onQueue) { + this.target.on[item.method](...item.args); + } + for (const item of this.targetQueue) { + item.resolve(await this.target[item.method](...item.args)); + } + } +} diff --git a/node_modules/@vue/devtools-api/lib/esm/time.d.ts b/node_modules/@vue/devtools-api/lib/esm/time.d.ts new file mode 100644 index 0000000..1aebade --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/esm/time.d.ts @@ -0,0 +1,2 @@ +export declare function isPerformanceSupported(): boolean; +export declare function now(): number; diff --git a/node_modules/@vue/devtools-api/lib/esm/time.js b/node_modules/@vue/devtools-api/lib/esm/time.js new file mode 100644 index 0000000..99bedb5 --- /dev/null +++ b/node_modules/@vue/devtools-api/lib/esm/time.js @@ -0,0 +1,23 @@ +let supported; +let perf; +export function isPerformanceSupported() { + var _a; + if (supported !== undefined) { + return supported; + } + if (typeof window !== 'undefined' && window.performance) { + supported = true; + perf = window.performance; + } + else if (typeof global !== 'undefined' && ((_a = global.perf_hooks) === null || _a === void 0 ? void 0 : _a.performance)) { + supported = true; + perf = global.perf_hooks.performance; + } + else { + supported = false; + } + return supported; +} +export function now() { + return isPerformanceSupported() ? perf.now() : Date.now(); +} diff --git a/node_modules/@vue/devtools-api/package.json b/node_modules/@vue/devtools-api/package.json new file mode 100644 index 0000000..eda5d08 --- /dev/null +++ b/node_modules/@vue/devtools-api/package.json @@ -0,0 +1,67 @@ +{ + "_from": "@vue/devtools-api@^6.0.0-beta.11", + "_id": "@vue/devtools-api@6.5.0", + "_inBundle": false, + "_integrity": "sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==", + "_location": "/@vue/devtools-api", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "@vue/devtools-api@^6.0.0-beta.11", + "name": "@vue/devtools-api", + "escapedName": "@vue%2fdevtools-api", + "scope": "@vue", + "rawSpec": "^6.0.0-beta.11", + "saveSpec": null, + "fetchSpec": "^6.0.0-beta.11" + }, + "_requiredBy": [ + "/vuex" + ], + "_resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.5.0.tgz", + "_shasum": "98b99425edee70b4c992692628fa1ea2c1e57d07", + "_spec": "@vue/devtools-api@^6.0.0-beta.11", + "_where": "D:\\work\\云美\\legalAffairs-app\\node_modules\\vuex", + "author": { + "name": "Guillaume Chau" + }, + "browser": "lib/esm/index.js", + "bugs": { + "url": "https://github.com/vuejs/vue-devtools/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Interact with the Vue devtools from the page", + "devDependencies": { + "@types/node": "^13.9.1", + "@types/webpack-env": "^1.15.1", + "typescript": "^4.5.2" + }, + "files": [ + "lib/esm", + "lib/cjs" + ], + "homepage": "https://github.com/vuejs/vue-devtools#readme", + "license": "MIT", + "main": "lib/cjs/index.js", + "module": "lib/esm/index.js", + "name": "@vue/devtools-api", + "publishConfig": { + "access": "public" + }, + "repository": { + "url": "git+https://github.com/vuejs/vue-devtools.git", + "type": "git", + "directory": "packages/api" + }, + "scripts": { + "build": "rimraf lib && yarn build:esm && yarn build:cjs", + "build:cjs": "tsc --module commonjs --outDir lib/cjs", + "build:esm": "tsc --module es2015 --outDir lib/esm -d", + "build:watch": "yarn tsc --module es2015 --outDir lib/esm -d -w --sourceMap" + }, + "sideEffects": false, + "types": "lib/esm/index.d.ts", + "version": "6.5.0" +} diff --git a/node_modules/deepmerge/.editorconfig b/node_modules/deepmerge/.editorconfig new file mode 100644 index 0000000..6244e1b --- /dev/null +++ b/node_modules/deepmerge/.editorconfig @@ -0,0 +1,7 @@ +root = true + +[*] +indent_style = tab +end_of_line = lf +trim_trailing_whitespace = true +insert_final_newline = true diff --git a/node_modules/deepmerge/.eslintcache b/node_modules/deepmerge/.eslintcache new file mode 100644 index 0000000..c1321eb --- /dev/null +++ b/node_modules/deepmerge/.eslintcache @@ -0,0 +1 @@ +[{"/Users/joshduff/code/deepmerge/test/custom-is-mergeable-object.js":"1"},{"size":1990,"mtime":1679007485753,"results":"2","hashOfConfig":"3"},{"filePath":"4","messages":"5","suppressedMessages":"6","errorCount":0,"fatalErrorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"ktjd5k","/Users/joshduff/code/deepmerge/test/custom-is-mergeable-object.js",[],[]] \ No newline at end of file diff --git a/node_modules/deepmerge/changelog.md b/node_modules/deepmerge/changelog.md new file mode 100644 index 0000000..082e0dd --- /dev/null +++ b/node_modules/deepmerge/changelog.md @@ -0,0 +1,167 @@ +# [4.3.1](https://github.com/TehShrike/deepmerge/releases/tag/v4.3.1) + +- Fix type definition for arrayMerge options. [#239](https://github.com/TehShrike/deepmerge/pull/239) + +# [4.3.0](https://github.com/TehShrike/deepmerge/releases/tag/v4.3.0) + +- Avoid thrown errors if the target doesn't have `propertyIsEnumerable`. [#252](https://github.com/TehShrike/deepmerge/pull/252) + +# [4.2.2](https://github.com/TehShrike/deepmerge/releases/tag/v4.2.2) + +- `isMergeableObject` is now only called if there are two values that could be merged. [a34dd4d2](https://github.com/TehShrike/deepmerge/commit/a34dd4d25bf5e250653540a2022bc832c7b00a19) + +# [4.2.1](https://github.com/TehShrike/deepmerge/releases/tag/v4.2.1) + +- Fix: falsey values can now be merged. [#170](https://github.com/TehShrike/deepmerge/issues/170) + +# [4.2.0](https://github.com/TehShrike/deepmerge/releases/tag/v4.2.0) + +- Properties are now only overwritten if they exist on the target object and are enumerable. [#164](https://github.com/TehShrike/deepmerge/pull/164) + +Technically this could probably be a patch release since "which properties get overwritten" wasn't documented and accidentally overwriting a built-in function or some function up the property chain would almost certainly be undesirable, but it feels like a gray area, so here we are with a feature version bump. + +# [4.1.2](https://github.com/TehShrike/deepmerge/releases/tag/v4.1.2) + +- Rolled back #167 since `Object.assign` breaks ES5 support. [55067352](https://github.com/TehShrike/deepmerge/commit/55067352a92c65a6c44a5165f3387720aae1e192) + +# [4.1.1](https://github.com/TehShrike/deepmerge/releases/tag/v4.1.1) + +- The `options` argument is no longer mutated [#167](https://github.com/TehShrike/deepmerge/pull/167) + +# [4.1.0](https://github.com/TehShrike/deepmerge/releases/tag/v4.1.0) + +- `cloneUnlessOtherwiseSpecified` is now exposed to the `arrayMerge` function [#165](https://github.com/TehShrike/deepmerge/pull/165) + +# [4.0.0](https://github.com/TehShrike/deepmerge/releases/tag/v4.0.0) + +- The `main` entry point in `package.json` is now a CommonJS module instead of a UMD module [#155](https://github.com/TehShrike/deepmerge/pull/155) + +# [3.3.0](https://github.com/TehShrike/deepmerge/releases/tag/v3.3.0) + +- Enumerable Symbol properties are now copied [#151](https://github.com/TehShrike/deepmerge/pull/151) + +# [3.2.1](https://github.com/TehShrike/deepmerge/releases/tag/v3.2.1) + +- bumping dev dependency versions to try to shut up bogus security warnings from Github/npm [#149](https://github.com/TehShrike/deepmerge/pull/149) + +# [3.2.0](https://github.com/TehShrike/deepmerge/releases/tag/v3.2.0) + +- feature: added the [`customMerge`](https://github.com/TehShrike/deepmerge#custommerge) option [#133](https://github.com/TehShrike/deepmerge/pull/133) + +# [3.1.0](https://github.com/TehShrike/deepmerge/releases/tag/v3.1.0) + +- typescript typing: make the `all` function generic [#129](https://github.com/TehShrike/deepmerge/pull/129) + +# [3.0.0](https://github.com/TehShrike/deepmerge/releases/tag/v3.0.0) + +- drop ES module build [#123](https://github.com/TehShrike/deepmerge/issues/123) + +# [2.2.1](https://github.com/TehShrike/deepmerge/releases/tag/v2.2.1) + +- bug: typescript export type was wrong [#121](https://github.com/TehShrike/deepmerge/pull/121) + +# [2.2.0](https://github.com/TehShrike/deepmerge/releases/tag/v2.2.0) + +- feature: added TypeScript typings [#119](https://github.com/TehShrike/deepmerge/pull/119) + +# [2.1.1](https://github.com/TehShrike/deepmerge/releases/tag/v2.1.1) + +- documentation: Rename "methods" to "api", note ESM syntax [#103](https://github.com/TehShrike/deepmerge/pull/103) +- documentation: Fix grammar [#107](https://github.com/TehShrike/deepmerge/pull/107) +- documentation: Restructure headers for clarity + some wording tweaks [108](https://github.com/TehShrike/deepmerge/pull/108) + [109](https://github.com/TehShrike/deepmerge/pull/109) + + +# [2.1.0](https://github.com/TehShrike/deepmerge/releases/tag/v2.1.0) + +- feature: Support a custom `isMergeableObject` function [#96](https://github.com/TehShrike/deepmerge/pull/96) +- documentation: note a Webpack bug that some users might need to work around [#100](https://github.com/TehShrike/deepmerge/pull/100) + +# [2.0.1](https://github.com/TehShrike/deepmerge/releases/tag/v2.0.1) + +- documentation: fix the old array merge algorithm in the readme. [#84](https://github.com/TehShrike/deepmerge/pull/84) + +# [2.0.0](https://github.com/TehShrike/deepmerge/releases/tag/v2.0.0) + +- breaking: the array merge algorithm has changed from a complicated thing to `target.concat(source).map(element => cloneUnlessOtherwiseSpecified(element, optionsArgument))` +- breaking: The `clone` option now defaults to `true` +- feature: `merge.all` now accepts an array of any size, even 0 or 1 elements + +See [pull request 77](https://github.com/TehShrike/deepmerge/pull/77). + +# [1.5.2](https://github.com/TehShrike/deepmerge/releases/tag/v1.5.2) + +- fix: no longer attempts to merge React elements [#76](https://github.com/TehShrike/deepmerge/issues/76) + +# [1.5.1](https://github.com/TehShrike/deepmerge/releases/tag/v1.5.1) + +- bower support: officially dropping bower support. If you use bower, please depend on the [unpkg distribution](https://unpkg.com/deepmerge/dist/umd.js). See [#63](https://github.com/TehShrike/deepmerge/issues/63) + +# [1.5.0](https://github.com/TehShrike/deepmerge/releases/tag/v1.5.0) + +- bug fix: merging objects into arrays was allowed, and doesn't make any sense. [#65](https://github.com/TehShrike/deepmerge/issues/65) published as a feature release instead of a patch because it is a decent behavior change. + +# [1.4.4](https://github.com/TehShrike/deepmerge/releases/tag/v1.4.4) + +- bower support: updated `main` in bower.json + +# [1.4.3](https://github.com/TehShrike/deepmerge/releases/tag/v1.4.3) + +- bower support: inline is-mergeable-object in a new CommonJS build, so that people using both bower and CommonJS can bundle the library [0b34e6](https://github.com/TehShrike/deepmerge/commit/0b34e6e95f989f2fc8091d25f0d291c08f3d2d24) + +# [1.4.2](https://github.com/TehShrike/deepmerge/releases/tag/v1.4.2) + +- performance: bump is-mergeable-object dependency version for a slight performance improvement [5906c7](https://github.com/TehShrike/deepmerge/commit/5906c765d691d48e83d76efbb0d4b9ca150dc12c) + +# [1.4.1](https://github.com/TehShrike/deepmerge/releases/tag/v1.4.1) + +- documentation: fix unpkg link [acc45b](https://github.com/TehShrike/deepmerge/commit/acc45be85519c1df906a72ecb24764b622d18d47) + +# [1.4.0](https://github.com/TehShrike/deepmerge/releases/tag/v1.4.0) + +- api: instead of only exporting a UMD module, expose a UMD module with `pkg.main`, a CJS module with `pkg.browser`, and an ES module with `pkg.module` [#62](https://github.com/TehShrike/deepmerge/pull/62) + +# [1.3.2](https://github.com/TehShrike/deepmerge/releases/tag/v1.3.2) + +- documentation: note the minified/gzipped file sizes [56](https://github.com/TehShrike/deepmerge/pull/56) +- documentation: make data structures more readable in merge example: pull request [57](https://github.com/TehShrike/deepmerge/pull/57) + +# [1.3.1](https://github.com/TehShrike/deepmerge/releases/tag/v1.3.1) + +- documentation: clarify and test some array merging documentation: pull request [51](https://github.com/TehShrike/deepmerge/pull/51) + +# [1.3.0](https://github.com/TehShrike/deepmerge/releases/tag/v1.3.0) + +- feature: `merge.all`, a merge function that merges any number of objects: pull request [50](https://github.com/TehShrike/deepmerge/pull/50) + +# [1.2.0](https://github.com/TehShrike/deepmerge/releases/tag/v1.2.0) + +- fix: an error that would be thrown when an array would be merged onto a truthy non-array value: pull request [46](https://github.com/TehShrike/deepmerge/pull/46) +- feature: the ability to clone: Issue [28](https://github.com/TehShrike/deepmerge/issues/28), pull requests [44](https://github.com/TehShrike/deepmerge/pull/44) and [48](https://github.com/TehShrike/deepmerge/pull/48) +- maintenance: added tests + travis to `.npmignore`: pull request [47](https://github.com/TehShrike/deepmerge/pull/47) + +# [1.1.1](https://github.com/TehShrike/deepmerge/releases/tag/v1.1.1) + +- fix an issue where an error was thrown when merging an array onto a non-array: [Pull request 46](https://github.com/TehShrike/deepmerge/pull/46) + +# [1.1.0](https://github.com/TehShrike/deepmerge/releases/tag/v1.1.0) + +- allow consumers to specify their own array merging algorithm: [Pull request 37](https://github.com/TehShrike/deepmerge/pull/37) + +# [1.0.3](https://github.com/TehShrike/deepmerge/releases/tag/v1.0.3) + +- adding bower.json back: [Issue 38](https://github.com/TehShrike/deepmerge/pull/38) +- updating keywords and Github links in package.json [bc3898e](https://github.com/TehShrike/deepmerge/commit/bc3898e587a56f74591328f40f656b0152c1d5eb) + +# [1.0.2](https://github.com/TehShrike/deepmerge/releases/tag/v1.0.2) + +- Updating the readme: dropping bower, testing that the example works: [7102fc](https://github.com/TehShrike/deepmerge/commit/7102fcc4ddec11e2d33205866f9f18df14e5aeb5) + +# [1.0.1](https://github.com/TehShrike/deepmerge/releases/tag/v1.0.1) + +- `null`, dates, and regular expressions are now properly merged in arrays: [Issue 18](https://github.com/TehShrike/deepmerge/pull/18), plus commit: [ef1c6b](https://github.com/TehShrike/deepmerge/commit/ef1c6bac8350ba12a24966f0bc7da02560827586) + +# 1.0.0 + +- Should only be a patch change, because this module is READY. [Issue 15](https://github.com/TehShrike/deepmerge/issues/15) +- Regular expressions are now treated like primitive values when merging: [Issue 30](https://github.com/TehShrike/deepmerge/pull/30) +- Dates are now treated like primitives when merging: [Issue 31](https://github.com/TehShrike/deepmerge/issues/31) diff --git a/node_modules/deepmerge/dist/cjs.js b/node_modules/deepmerge/dist/cjs.js new file mode 100644 index 0000000..7c36cbd --- /dev/null +++ b/node_modules/deepmerge/dist/cjs.js @@ -0,0 +1,133 @@ +'use strict'; + +var isMergeableObject = function isMergeableObject(value) { + return isNonNullObject(value) + && !isSpecial(value) +}; + +function isNonNullObject(value) { + return !!value && typeof value === 'object' +} + +function isSpecial(value) { + var stringValue = Object.prototype.toString.call(value); + + return stringValue === '[object RegExp]' + || stringValue === '[object Date]' + || isReactElement(value) +} + +// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25 +var canUseSymbol = typeof Symbol === 'function' && Symbol.for; +var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7; + +function isReactElement(value) { + return value.$$typeof === REACT_ELEMENT_TYPE +} + +function emptyTarget(val) { + return Array.isArray(val) ? [] : {} +} + +function cloneUnlessOtherwiseSpecified(value, options) { + return (options.clone !== false && options.isMergeableObject(value)) + ? deepmerge(emptyTarget(value), value, options) + : value +} + +function defaultArrayMerge(target, source, options) { + return target.concat(source).map(function(element) { + return cloneUnlessOtherwiseSpecified(element, options) + }) +} + +function getMergeFunction(key, options) { + if (!options.customMerge) { + return deepmerge + } + var customMerge = options.customMerge(key); + return typeof customMerge === 'function' ? customMerge : deepmerge +} + +function getEnumerableOwnPropertySymbols(target) { + return Object.getOwnPropertySymbols + ? Object.getOwnPropertySymbols(target).filter(function(symbol) { + return Object.propertyIsEnumerable.call(target, symbol) + }) + : [] +} + +function getKeys(target) { + return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target)) +} + +function propertyIsOnObject(object, property) { + try { + return property in object + } catch(_) { + return false + } +} + +// Protects from prototype poisoning and unexpected merging up the prototype chain. +function propertyIsUnsafe(target, key) { + return propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet, + && !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain, + && Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable. +} + +function mergeObject(target, source, options) { + var destination = {}; + if (options.isMergeableObject(target)) { + getKeys(target).forEach(function(key) { + destination[key] = cloneUnlessOtherwiseSpecified(target[key], options); + }); + } + getKeys(source).forEach(function(key) { + if (propertyIsUnsafe(target, key)) { + return + } + + if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) { + destination[key] = getMergeFunction(key, options)(target[key], source[key], options); + } else { + destination[key] = cloneUnlessOtherwiseSpecified(source[key], options); + } + }); + return destination +} + +function deepmerge(target, source, options) { + options = options || {}; + options.arrayMerge = options.arrayMerge || defaultArrayMerge; + options.isMergeableObject = options.isMergeableObject || isMergeableObject; + // cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge() + // implementations can use it. The caller may not replace it. + options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified; + + var sourceIsArray = Array.isArray(source); + var targetIsArray = Array.isArray(target); + var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray; + + if (!sourceAndTargetTypesMatch) { + return cloneUnlessOtherwiseSpecified(source, options) + } else if (sourceIsArray) { + return options.arrayMerge(target, source, options) + } else { + return mergeObject(target, source, options) + } +} + +deepmerge.all = function deepmergeAll(array, options) { + if (!Array.isArray(array)) { + throw new Error('first argument should be an array') + } + + return array.reduce(function(prev, next) { + return deepmerge(prev, next, options) + }, {}) +}; + +var deepmerge_1 = deepmerge; + +module.exports = deepmerge_1; diff --git a/node_modules/deepmerge/dist/umd.js b/node_modules/deepmerge/dist/umd.js new file mode 100644 index 0000000..4071e7c --- /dev/null +++ b/node_modules/deepmerge/dist/umd.js @@ -0,0 +1,139 @@ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = global || self, global.deepmerge = factory()); +}(this, function () { 'use strict'; + + var isMergeableObject = function isMergeableObject(value) { + return isNonNullObject(value) + && !isSpecial(value) + }; + + function isNonNullObject(value) { + return !!value && typeof value === 'object' + } + + function isSpecial(value) { + var stringValue = Object.prototype.toString.call(value); + + return stringValue === '[object RegExp]' + || stringValue === '[object Date]' + || isReactElement(value) + } + + // see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25 + var canUseSymbol = typeof Symbol === 'function' && Symbol.for; + var REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7; + + function isReactElement(value) { + return value.$$typeof === REACT_ELEMENT_TYPE + } + + function emptyTarget(val) { + return Array.isArray(val) ? [] : {} + } + + function cloneUnlessOtherwiseSpecified(value, options) { + return (options.clone !== false && options.isMergeableObject(value)) + ? deepmerge(emptyTarget(value), value, options) + : value + } + + function defaultArrayMerge(target, source, options) { + return target.concat(source).map(function(element) { + return cloneUnlessOtherwiseSpecified(element, options) + }) + } + + function getMergeFunction(key, options) { + if (!options.customMerge) { + return deepmerge + } + var customMerge = options.customMerge(key); + return typeof customMerge === 'function' ? customMerge : deepmerge + } + + function getEnumerableOwnPropertySymbols(target) { + return Object.getOwnPropertySymbols + ? Object.getOwnPropertySymbols(target).filter(function(symbol) { + return Object.propertyIsEnumerable.call(target, symbol) + }) + : [] + } + + function getKeys(target) { + return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target)) + } + + function propertyIsOnObject(object, property) { + try { + return property in object + } catch(_) { + return false + } + } + + // Protects from prototype poisoning and unexpected merging up the prototype chain. + function propertyIsUnsafe(target, key) { + return propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet, + && !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain, + && Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable. + } + + function mergeObject(target, source, options) { + var destination = {}; + if (options.isMergeableObject(target)) { + getKeys(target).forEach(function(key) { + destination[key] = cloneUnlessOtherwiseSpecified(target[key], options); + }); + } + getKeys(source).forEach(function(key) { + if (propertyIsUnsafe(target, key)) { + return + } + + if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) { + destination[key] = getMergeFunction(key, options)(target[key], source[key], options); + } else { + destination[key] = cloneUnlessOtherwiseSpecified(source[key], options); + } + }); + return destination + } + + function deepmerge(target, source, options) { + options = options || {}; + options.arrayMerge = options.arrayMerge || defaultArrayMerge; + options.isMergeableObject = options.isMergeableObject || isMergeableObject; + // cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge() + // implementations can use it. The caller may not replace it. + options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified; + + var sourceIsArray = Array.isArray(source); + var targetIsArray = Array.isArray(target); + var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray; + + if (!sourceAndTargetTypesMatch) { + return cloneUnlessOtherwiseSpecified(source, options) + } else if (sourceIsArray) { + return options.arrayMerge(target, source, options) + } else { + return mergeObject(target, source, options) + } + } + + deepmerge.all = function deepmergeAll(array, options) { + if (!Array.isArray(array)) { + throw new Error('first argument should be an array') + } + + return array.reduce(function(prev, next) { + return deepmerge(prev, next, options) + }, {}) + }; + + var deepmerge_1 = deepmerge; + + return deepmerge_1; + +})); diff --git a/node_modules/deepmerge/index.d.ts b/node_modules/deepmerge/index.d.ts new file mode 100644 index 0000000..46784de --- /dev/null +++ b/node_modules/deepmerge/index.d.ts @@ -0,0 +1,20 @@ +declare function deepmerge(x: Partial, y: Partial, options?: deepmerge.Options): T; +declare function deepmerge(x: Partial, y: Partial, options?: deepmerge.Options): T1 & T2; + +declare namespace deepmerge { + export interface Options { + arrayMerge?(target: any[], source: any[], options?: ArrayMergeOptions): any[]; + clone?: boolean; + customMerge?: (key: string, options?: Options) => ((x: any, y: any) => any) | undefined; + isMergeableObject?(value: object): boolean; + } + export interface ArrayMergeOptions { + isMergeableObject(value: object): boolean; + cloneUnlessOtherwiseSpecified(value: object, options?: Options): object; + } + + export function all (objects: object[], options?: Options): object; + export function all (objects: Partial[], options?: Options): T; +} + +export = deepmerge; diff --git a/node_modules/deepmerge/index.js b/node_modules/deepmerge/index.js new file mode 100644 index 0000000..77968ae --- /dev/null +++ b/node_modules/deepmerge/index.js @@ -0,0 +1,106 @@ +var defaultIsMergeableObject = require('is-mergeable-object') + +function emptyTarget(val) { + return Array.isArray(val) ? [] : {} +} + +function cloneUnlessOtherwiseSpecified(value, options) { + return (options.clone !== false && options.isMergeableObject(value)) + ? deepmerge(emptyTarget(value), value, options) + : value +} + +function defaultArrayMerge(target, source, options) { + return target.concat(source).map(function(element) { + return cloneUnlessOtherwiseSpecified(element, options) + }) +} + +function getMergeFunction(key, options) { + if (!options.customMerge) { + return deepmerge + } + var customMerge = options.customMerge(key) + return typeof customMerge === 'function' ? customMerge : deepmerge +} + +function getEnumerableOwnPropertySymbols(target) { + return Object.getOwnPropertySymbols + ? Object.getOwnPropertySymbols(target).filter(function(symbol) { + return Object.propertyIsEnumerable.call(target, symbol) + }) + : [] +} + +function getKeys(target) { + return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target)) +} + +function propertyIsOnObject(object, property) { + try { + return property in object + } catch(_) { + return false + } +} + +// Protects from prototype poisoning and unexpected merging up the prototype chain. +function propertyIsUnsafe(target, key) { + return propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet, + && !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain, + && Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable. +} + +function mergeObject(target, source, options) { + var destination = {} + if (options.isMergeableObject(target)) { + getKeys(target).forEach(function(key) { + destination[key] = cloneUnlessOtherwiseSpecified(target[key], options) + }) + } + getKeys(source).forEach(function(key) { + if (propertyIsUnsafe(target, key)) { + return + } + + if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) { + destination[key] = getMergeFunction(key, options)(target[key], source[key], options) + } else { + destination[key] = cloneUnlessOtherwiseSpecified(source[key], options) + } + }) + return destination +} + +function deepmerge(target, source, options) { + options = options || {} + options.arrayMerge = options.arrayMerge || defaultArrayMerge + options.isMergeableObject = options.isMergeableObject || defaultIsMergeableObject + // cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge() + // implementations can use it. The caller may not replace it. + options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified + + var sourceIsArray = Array.isArray(source) + var targetIsArray = Array.isArray(target) + var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray + + if (!sourceAndTargetTypesMatch) { + return cloneUnlessOtherwiseSpecified(source, options) + } else if (sourceIsArray) { + return options.arrayMerge(target, source, options) + } else { + return mergeObject(target, source, options) + } +} + +deepmerge.all = function deepmergeAll(array, options) { + if (!Array.isArray(array)) { + throw new Error('first argument should be an array') + } + + return array.reduce(function(prev, next) { + return deepmerge(prev, next, options) + }, {}) +} + +module.exports = deepmerge diff --git a/node_modules/deepmerge/license.txt b/node_modules/deepmerge/license.txt new file mode 100644 index 0000000..5003078 --- /dev/null +++ b/node_modules/deepmerge/license.txt @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (c) 2012 James Halliday, Josh Duff, and other contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/node_modules/deepmerge/package.json b/node_modules/deepmerge/package.json new file mode 100644 index 0000000..dfb82d0 --- /dev/null +++ b/node_modules/deepmerge/package.json @@ -0,0 +1,70 @@ +{ + "_from": "deepmerge@^4.2.2", + "_id": "deepmerge@4.3.1", + "_inBundle": false, + "_integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", + "_location": "/deepmerge", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "deepmerge@^4.2.2", + "name": "deepmerge", + "escapedName": "deepmerge", + "rawSpec": "^4.2.2", + "saveSpec": null, + "fetchSpec": "^4.2.2" + }, + "_requiredBy": [ + "/vuex-persistedstate" + ], + "_resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "_shasum": "44b5f2147cd3b00d4b56137685966f26fd25dd4a", + "_spec": "deepmerge@^4.2.2", + "_where": "D:\\work\\云美\\legalAffairs-app\\node_modules\\vuex-persistedstate", + "bugs": { + "url": "https://github.com/TehShrike/deepmerge/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "A library for deep (recursive) merging of Javascript objects", + "devDependencies": { + "@types/node": "^8.10.54", + "is-mergeable-object": "1.1.0", + "is-plain-object": "^5.0.0", + "jsmd": "^1.0.2", + "rollup": "^1.23.1", + "rollup-plugin-commonjs": "^10.1.0", + "rollup-plugin-node-resolve": "^5.2.0", + "tape": "^4.11.0", + "ts-node": "7.0.1", + "typescript": "=2.2.2", + "uglify-js": "^3.6.1" + }, + "engines": { + "node": ">=0.10.0" + }, + "homepage": "https://github.com/TehShrike/deepmerge", + "keywords": [ + "merge", + "deep", + "extend", + "copy", + "clone", + "recursive" + ], + "license": "MIT", + "main": "dist/cjs.js", + "name": "deepmerge", + "repository": { + "type": "git", + "url": "git://github.com/TehShrike/deepmerge.git" + }, + "scripts": { + "build": "rollup -c", + "size": "npm run build && uglifyjs --compress --mangle -- ./dist/umd.js | gzip -c | wc -c", + "test": "npm run build && tape test/*.js && jsmd readme.md && npm run test:typescript", + "test:typescript": "tsc --noEmit test/typescript.ts && ts-node test/typescript.ts" + }, + "version": "4.3.1" +} diff --git a/node_modules/deepmerge/readme.md b/node_modules/deepmerge/readme.md new file mode 100644 index 0000000..79e4e30 --- /dev/null +++ b/node_modules/deepmerge/readme.md @@ -0,0 +1,264 @@ +# deepmerge + +Merges the enumerable properties of two or more objects deeply. + +> UMD bundle is 723B minified+gzipped + +## Getting Started + +### Example Usage + + +```js +const x = { + foo: { bar: 3 }, + array: [{ + does: 'work', + too: [ 1, 2, 3 ] + }] +} + +const y = { + foo: { baz: 4 }, + quux: 5, + array: [{ + does: 'work', + too: [ 4, 5, 6 ] + }, { + really: 'yes' + }] +} + +const output = { + foo: { + bar: 3, + baz: 4 + }, + array: [{ + does: 'work', + too: [ 1, 2, 3 ] + }, { + does: 'work', + too: [ 4, 5, 6 ] + }, { + really: 'yes' + }], + quux: 5 +} + +merge(x, y) // => output +``` + + +### Installation + +With [npm](http://npmjs.org) do: + +```sh +npm install deepmerge +``` + +deepmerge can be used directly in the browser without the use of package managers/bundlers as well: [UMD version from unpkg.com](https://unpkg.com/deepmerge/dist/umd.js). + + +### Include + +deepmerge exposes a CommonJS entry point: + +``` +const merge = require('deepmerge') +``` + +The ESM entry point was dropped due to a [Webpack bug](https://github.com/webpack/webpack/issues/6584). + +# API + + +## `merge(x, y, [options])` + +Merge two objects `x` and `y` deeply, returning a new merged object with the +elements from both `x` and `y`. + +If an element at the same key is present for both `x` and `y`, the value from +`y` will appear in the result. + +Merging creates a new object, so that neither `x` or `y` is modified. + +**Note:** By default, arrays are merged by concatenating them. + +## `merge.all(arrayOfObjects, [options])` + +Merges any number of objects into a single result object. + +```js +const foobar = { foo: { bar: 3 } } +const foobaz = { foo: { baz: 4 } } +const bar = { bar: 'yay!' } + +merge.all([ foobar, foobaz, bar ]) // => { foo: { bar: 3, baz: 4 }, bar: 'yay!' } +``` + + +## Options + +### `arrayMerge` + +There are multiple ways to merge two arrays, below are a few examples but you can also create your own custom function. + +Your `arrayMerge` function will be called with three arguments: a `target` array, the `source` array, and an `options` object with these properties: + +- `isMergeableObject(value)` +- `cloneUnlessOtherwiseSpecified(value, options)` + +#### `arrayMerge` example: overwrite target array + +Overwrites the existing array values completely rather than concatenating them: + +```js +const overwriteMerge = (destinationArray, sourceArray, options) => sourceArray + +merge( + [1, 2, 3], + [3, 2, 1], + { arrayMerge: overwriteMerge } +) // => [3, 2, 1] +``` + +#### `arrayMerge` example: combine arrays + +Combines objects at the same index in the two arrays. + +This was the default array merging algorithm pre-version-2.0.0. + +```js +const combineMerge = (target, source, options) => { + const destination = target.slice() + + source.forEach((item, index) => { + if (typeof destination[index] === 'undefined') { + destination[index] = options.cloneUnlessOtherwiseSpecified(item, options) + } else if (options.isMergeableObject(item)) { + destination[index] = merge(target[index], item, options) + } else if (target.indexOf(item) === -1) { + destination.push(item) + } + }) + return destination +} + +merge( + [{ a: true }], + [{ b: true }, 'ah yup'], + { arrayMerge: combineMerge } +) // => [{ a: true, b: true }, 'ah yup'] +``` + +### `isMergeableObject` + +By default, deepmerge clones every property from almost every kind of object. + +You may not want this, if your objects are of special types, and you want to copy the whole object instead of just copying its properties. + +You can accomplish this by passing in a function for the `isMergeableObject` option. + +If you only want to clone properties of plain objects, and ignore all "special" kinds of instantiated objects, you probably want to drop in [`is-plain-object`](https://github.com/jonschlinkert/is-plain-object). + +```js +const { isPlainObject } = require('is-plain-object') + +function SuperSpecial() { + this.special = 'oh yeah man totally' +} + +const instantiatedSpecialObject = new SuperSpecial() + +const target = { + someProperty: { + cool: 'oh for sure' + } +} + +const source = { + someProperty: instantiatedSpecialObject +} + +const defaultOutput = merge(target, source) + +defaultOutput.someProperty.cool // => 'oh for sure' +defaultOutput.someProperty.special // => 'oh yeah man totally' +defaultOutput.someProperty instanceof SuperSpecial // => false + +const customMergeOutput = merge(target, source, { + isMergeableObject: isPlainObject +}) + +customMergeOutput.someProperty.cool // => undefined +customMergeOutput.someProperty.special // => 'oh yeah man totally' +customMergeOutput.someProperty instanceof SuperSpecial // => true +``` + +### `customMerge` + +Specifies a function which can be used to override the default merge behavior for a property, based on the property name. + +The `customMerge` function will be passed the key for each property, and should return the function which should be used to merge the values for that property. + +It may also return undefined, in which case the default merge behaviour will be used. + +```js +const alex = { + name: { + first: 'Alex', + last: 'Alexson' + }, + pets: ['Cat', 'Parrot'] +} + +const tony = { + name: { + first: 'Tony', + last: 'Tonison' + }, + pets: ['Dog'] +} + +const mergeNames = (nameA, nameB) => `${nameA.first} and ${nameB.first}` + +const options = { + customMerge: (key) => { + if (key === 'name') { + return mergeNames + } + } +} + +const result = merge(alex, tony, options) + +result.name // => 'Alex and Tony' +result.pets // => ['Cat', 'Parrot', 'Dog'] +``` + + +### `clone` + +*Deprecated.* + +Defaults to `true`. + +If `clone` is `false` then child objects will be copied directly instead of being cloned. This was the default behavior before version 2.x. + + +# Testing + +With [npm](http://npmjs.org) do: + +```sh +npm test +``` + + +# License + +MIT diff --git a/node_modules/deepmerge/rollup.config.js b/node_modules/deepmerge/rollup.config.js new file mode 100644 index 0000000..8323ab2 --- /dev/null +++ b/node_modules/deepmerge/rollup.config.js @@ -0,0 +1,22 @@ +import resolve from 'rollup-plugin-node-resolve' +import commonjs from 'rollup-plugin-commonjs' +import pkg from './package.json' + +export default { + input: `index.js`, + plugins: [ + commonjs(), + resolve(), + ], + output: [ + { + file: pkg.main, + format: `cjs` + }, + { + name: 'deepmerge', + file: 'dist/umd.js', + format: `umd` + }, + ], +} diff --git a/node_modules/shvl/CHANGELOG.md b/node_modules/shvl/CHANGELOG.md new file mode 100644 index 0000000..4c5c6f5 --- /dev/null +++ b/node_modules/shvl/CHANGELOG.md @@ -0,0 +1,4 @@ +# Changelog + +This project adheres to [Semantic Versioning](http://semver.org/). +Every release is documented on the Github [Releases](https://github.com/robinvdvleuten/shvl/releases) page. diff --git a/node_modules/shvl/LICENSE b/node_modules/shvl/LICENSE new file mode 100644 index 0000000..b9e0834 --- /dev/null +++ b/node_modules/shvl/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Robin van der Vleuten + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/shvl/README.md b/node_modules/shvl/README.md new file mode 100644 index 0000000..402cc75 --- /dev/null +++ b/node_modules/shvl/README.md @@ -0,0 +1,86 @@ +# shvl + +Get and set dot-notated properties within an object. + + + +
+ +[![Build Status](https://img.shields.io/github/workflow/status/robinvdvleuten/shvl/test.svg)](https://github.com/robinvdvleuten/shvl/actions?query=workflow%3Atest) +[![NPM version](https://img.shields.io/npm/v/shvl.svg)](https://www.npmjs.com/package/shvl) +[![NPM downloads](https://img.shields.io/npm/dm/shvl.svg)](https://www.npmjs.com/package/shvl) +[![MIT license](https://img.shields.io/github/license/robinvdvleuten/shvl.svg)](https://github.com/robinvdvleuten/shvl/blob/master/LICENSE) + +[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](http://makeapullrequest.com) + +
+ Sponsored by The Webstronauts + + +## Installation + +``` +npm install --save shvl +``` + +The [UMD](https://github.com/umdjs/umd) build is also available on [unpkg](https://unpkg.com/shvl/dist/shvl.umd.js): + +``` + +``` + +This exposes the shlv object as a global. + +## Usage + +```js +import * as shvl from 'shvl'; + +let obj = { + a: { + b: { + c: 1 + d: undefined + e: null + } + } +}; + +// Use dot notation for keys +shvl.set(obj, 'a.b.c', 2); +shvl.get(obj, 'a.b.c') === 2; + +// Or use an array as key +shvl.get(obj, ['a', 'b', 'c']) === 1; + +// Returns undefined if the path does not exist and no default is specified +shvl.get(obj, 'a.b.c.f') === undefined; +``` + +## Changelog + +Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently. + +## Contributors ✨ + +Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): + + + + + + + + + +

Robin van der Vleuten

💬 💻 📖 💡 🤔 🚇 👀 ⚠️

ajenkinski

💻
+ + + + + +This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! + +## License + +The MIT License (MIT). Please see [License File](LICENSE) for more information. diff --git a/node_modules/shvl/dist/shvl.js b/node_modules/shvl/dist/shvl.js new file mode 100644 index 0000000..733bf4d --- /dev/null +++ b/node_modules/shvl/dist/shvl.js @@ -0,0 +1,2 @@ +exports.get=function(t,e,r){return void 0===(t=(e.split?e.split("."):e).reduce(function(t,e){return t&&t[e]},t))?r:t},exports.set=function(t,e,r,o){return!/^(__proto__|constructor|prototype)$/.test(e)&&((e=e.split?e.split("."):e.slice(0)).slice(0,-1).reduce(function(t,e){return t[e]=t[e]||{}},t)[e.pop()]=r),t}; +//# sourceMappingURL=shvl.js.map diff --git a/node_modules/shvl/dist/shvl.js.map b/node_modules/shvl/dist/shvl.js.map new file mode 100644 index 0000000..0c8e547 --- /dev/null +++ b/node_modules/shvl/dist/shvl.js.map @@ -0,0 +1 @@ +{"version":3,"file":"shvl.js","sources":["../index.js"],"sourcesContent":["export function get (object, path, def) {\n return (object = (path.split ? path.split('.') : path).reduce(function (obj, p) {\n return obj && obj[p]\n }, object)) === undefined ? def : object;\n};\n\nexport function set (object, path, val, obj) {\n return !/^(__proto__|constructor|prototype)$/.test(path) && ((path = path.split ? path.split('.') : path.slice(0)).slice(0, -1).reduce(function (obj, p) {\n return obj[p] = obj[p] || {};\n }, obj = object)[path.pop()] = val), object;\n};\n"],"names":["object","path","def","undefined","split","reduce","obj","p","val","test","slice","pop"],"mappings":"qBAAqBA,EAAQC,EAAMC,GACjC,YAEgBC,KAFRH,GAAUC,EAAKG,MAAQH,EAAKG,MAAM,KAAOH,GAAMI,OAAO,SAAUC,EAAKC,GAC3E,OAAOD,GAAOA,EAAIC,IACjBP,IAAyBE,EAAMF,wBAGdA,EAAQC,EAAMO,EAAKF,GACvC,OAAQ,sCAAsCG,KAAKR,MAAWA,EAAOA,EAAKG,MAAQH,EAAKG,MAAM,KAAOH,EAAKS,MAAM,IAAIA,MAAM,GAAI,GAAGL,OAAO,SAAUC,EAAKC,GACpJ,OAAOD,EAAIC,GAAKD,EAAIC,IAAM,IACnBP,GAAQC,EAAKU,OAASH,GAAMR"} \ No newline at end of file diff --git a/node_modules/shvl/dist/shvl.mjs b/node_modules/shvl/dist/shvl.mjs new file mode 100644 index 0000000..107f608 --- /dev/null +++ b/node_modules/shvl/dist/shvl.mjs @@ -0,0 +1,2 @@ +function t(t,r,e){return void 0===(t=(r.split?r.split("."):r).reduce(function(t,r){return t&&t[r]},t))?e:t}function r(t,r,e,n){return!/^(__proto__|constructor|prototype)$/.test(r)&&((r=r.split?r.split("."):r.slice(0)).slice(0,-1).reduce(function(t,r){return t[r]=t[r]||{}},t)[r.pop()]=e),t}export{t as get,r as set}; +//# sourceMappingURL=shvl.mjs.map diff --git a/node_modules/shvl/dist/shvl.mjs.map b/node_modules/shvl/dist/shvl.mjs.map new file mode 100644 index 0000000..09cc606 --- /dev/null +++ b/node_modules/shvl/dist/shvl.mjs.map @@ -0,0 +1 @@ +{"version":3,"file":"shvl.mjs","sources":["../index.js"],"sourcesContent":["export function get (object, path, def) {\n return (object = (path.split ? path.split('.') : path).reduce(function (obj, p) {\n return obj && obj[p]\n }, object)) === undefined ? def : object;\n};\n\nexport function set (object, path, val, obj) {\n return !/^(__proto__|constructor|prototype)$/.test(path) && ((path = path.split ? path.split('.') : path.slice(0)).slice(0, -1).reduce(function (obj, p) {\n return obj[p] = obj[p] || {};\n }, obj = object)[path.pop()] = val), object;\n};\n"],"names":["get","object","path","def","undefined","split","reduce","obj","p","set","val","test","slice","pop"],"mappings":"SAAgBA,EAAKC,EAAQC,EAAMC,GACjC,YAEgBC,KAFRH,GAAUC,EAAKG,MAAQH,EAAKG,MAAM,KAAOH,GAAMI,OAAO,SAAUC,EAAKC,GAC3E,OAAOD,GAAOA,EAAIC,IACjBP,IAAyBE,EAAMF,WAGpBQ,EAAMR,EAAQC,EAAMQ,EAAKH,GACvC,OAAQ,sCAAsCI,KAAKT,MAAWA,EAAOA,EAAKG,MAAQH,EAAKG,MAAM,KAAOH,EAAKU,MAAM,IAAIA,MAAM,GAAI,GAAGN,OAAO,SAAUC,EAAKC,GACpJ,OAAOD,EAAIC,GAAKD,EAAIC,IAAM,IACnBP,GAAQC,EAAKW,OAASH,GAAMT"} \ No newline at end of file diff --git a/node_modules/shvl/dist/shvl.modern.js b/node_modules/shvl/dist/shvl.modern.js new file mode 100644 index 0000000..6482cd9 --- /dev/null +++ b/node_modules/shvl/dist/shvl.modern.js @@ -0,0 +1,2 @@ +function t(t,r,e){return void 0===(t=(r.split?r.split("."):r).reduce(function(t,r){return t&&t[r]},t))?e:t}function r(t,r,e,n){return!/^(__proto__|constructor|prototype)$/.test(r)&&((r=r.split?r.split("."):r.slice(0)).slice(0,-1).reduce(function(t,r){return t[r]=t[r]||{}},t)[r.pop()]=e),t}export{t as get,r as set}; +//# sourceMappingURL=shvl.modern.js.map diff --git a/node_modules/shvl/dist/shvl.modern.js.map b/node_modules/shvl/dist/shvl.modern.js.map new file mode 100644 index 0000000..db69dde --- /dev/null +++ b/node_modules/shvl/dist/shvl.modern.js.map @@ -0,0 +1 @@ +{"version":3,"file":"shvl.modern.js","sources":["../index.js"],"sourcesContent":["export function get (object, path, def) {\n return (object = (path.split ? path.split('.') : path).reduce(function (obj, p) {\n return obj && obj[p]\n }, object)) === undefined ? def : object;\n};\n\nexport function set (object, path, val, obj) {\n return !/^(__proto__|constructor|prototype)$/.test(path) && ((path = path.split ? path.split('.') : path.slice(0)).slice(0, -1).reduce(function (obj, p) {\n return obj[p] = obj[p] || {};\n }, obj = object)[path.pop()] = val), object;\n};\n"],"names":["get","object","path","def","undefined","split","reduce","obj","p","set","val","test","slice","pop"],"mappings":"SAAgBA,EAAKC,EAAQC,EAAMC,GACjC,YAEgBC,KAFRH,GAAUC,EAAKG,MAAQH,EAAKG,MAAM,KAAOH,GAAMI,OAAO,SAAUC,EAAKC,GAC3E,OAAOD,GAAOA,EAAIC,IACjBP,IAAyBE,EAAMF,WAGpBQ,EAAMR,EAAQC,EAAMQ,EAAKH,GACvC,OAAQ,sCAAsCI,KAAKT,MAAWA,EAAOA,EAAKG,MAAQH,EAAKG,MAAM,KAAOH,EAAKU,MAAM,IAAIA,MAAM,GAAI,GAAGN,OAAO,SAAUC,EAAKC,GACpJ,OAAOD,EAAIC,GAAKD,EAAIC,IAAM,IACnBP,GAAQC,EAAKW,OAASH,GAAMT"} \ No newline at end of file diff --git a/node_modules/shvl/dist/shvl.umd.js b/node_modules/shvl/dist/shvl.umd.js new file mode 100644 index 0000000..f80fa78 --- /dev/null +++ b/node_modules/shvl/dist/shvl.umd.js @@ -0,0 +1,2 @@ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t=t||self).shvl={})}(this,function(t){t.get=function(t,e,n){return void 0===(t=(e.split?e.split("."):e).reduce(function(t,e){return t&&t[e]},t))?n:t},t.set=function(t,e,n,o){return!/^(__proto__|constructor|prototype)$/.test(e)&&((e=e.split?e.split("."):e.slice(0)).slice(0,-1).reduce(function(t,e){return t[e]=t[e]||{}},t)[e.pop()]=n),t}}); +//# sourceMappingURL=shvl.umd.js.map diff --git a/node_modules/shvl/dist/shvl.umd.js.map b/node_modules/shvl/dist/shvl.umd.js.map new file mode 100644 index 0000000..78063e0 --- /dev/null +++ b/node_modules/shvl/dist/shvl.umd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"shvl.umd.js","sources":["../index.js"],"sourcesContent":["export function get (object, path, def) {\n return (object = (path.split ? path.split('.') : path).reduce(function (obj, p) {\n return obj && obj[p]\n }, object)) === undefined ? def : object;\n};\n\nexport function set (object, path, val, obj) {\n return !/^(__proto__|constructor|prototype)$/.test(path) && ((path = path.split ? path.split('.') : path.slice(0)).slice(0, -1).reduce(function (obj, p) {\n return obj[p] = obj[p] || {};\n }, obj = object)[path.pop()] = val), object;\n};\n"],"names":["object","path","def","undefined","split","reduce","obj","p","val","test","slice","pop"],"mappings":"mMAAqBA,EAAQC,EAAMC,GACjC,YAEgBC,KAFRH,GAAUC,EAAKG,MAAQH,EAAKG,MAAM,KAAOH,GAAMI,OAAO,SAAUC,EAAKC,GAC3E,OAAOD,GAAOA,EAAIC,IACjBP,IAAyBE,EAAMF,kBAGdA,EAAQC,EAAMO,EAAKF,GACvC,OAAQ,sCAAsCG,KAAKR,MAAWA,EAAOA,EAAKG,MAAQH,EAAKG,MAAM,KAAOH,EAAKS,MAAM,IAAIA,MAAM,GAAI,GAAGL,OAAO,SAAUC,EAAKC,GACpJ,OAAOD,EAAIC,GAAKD,EAAIC,IAAM,IACnBP,GAAQC,EAAKU,OAASH,GAAMR"} \ No newline at end of file diff --git a/node_modules/shvl/index.d.ts b/node_modules/shvl/index.d.ts new file mode 100644 index 0000000..e925dfb --- /dev/null +++ b/node_modules/shvl/index.d.ts @@ -0,0 +1,2 @@ +export function get (object: object, path: string|string[], def?: any): any; +export function set (object: object, path: string|string[], val: any): any; diff --git a/node_modules/shvl/index.js b/node_modules/shvl/index.js new file mode 100644 index 0000000..53e25ee --- /dev/null +++ b/node_modules/shvl/index.js @@ -0,0 +1,11 @@ +export function get (object, path, def) { + return (object = (path.split ? path.split('.') : path).reduce(function (obj, p) { + return obj && obj[p] + }, object)) === undefined ? def : object; +}; + +export function set (object, path, val, obj) { + return !/^(__proto__|constructor|prototype)$/.test(path) && ((path = path.split ? path.split('.') : path.slice(0)).slice(0, -1).reduce(function (obj, p) { + return obj[p] = obj[p] || {}; + }, obj = object)[path.pop()] = val), object; +}; diff --git a/node_modules/shvl/package.json b/node_modules/shvl/package.json new file mode 100644 index 0000000..4091d9f --- /dev/null +++ b/node_modules/shvl/package.json @@ -0,0 +1,86 @@ +{ + "_from": "shvl@^2.0.3", + "_id": "shvl@2.0.3", + "_inBundle": false, + "_integrity": "sha512-V7C6S9Hlol6SzOJPnQ7qzOVEWUQImt3BNmmzh40wObhla3XOYMe4gGiYzLrJd5TFa+cI2f9LKIRJTTKZSTbWgw==", + "_location": "/shvl", + "_phantomChildren": {}, + "_requested": { + "type": "range", + "registry": true, + "raw": "shvl@^2.0.3", + "name": "shvl", + "escapedName": "shvl", + "rawSpec": "^2.0.3", + "saveSpec": null, + "fetchSpec": "^2.0.3" + }, + "_requiredBy": [ + "/vuex-persistedstate" + ], + "_resolved": "https://registry.npmjs.org/shvl/-/shvl-2.0.3.tgz", + "_shasum": "eb4bd37644f5684bba1fc52c3010c96fb5e6afd1", + "_spec": "shvl@^2.0.3", + "_where": "D:\\work\\云美\\legalAffairs-app\\node_modules\\vuex-persistedstate", + "author": { + "name": "Robin van der Vleuten", + "email": "robin@webstronauts.co" + }, + "babel": { + "presets": [ + "@babel/preset-env" + ] + }, + "bugs": { + "url": "https://github.com/robinvdvleuten/shvl/issues" + }, + "bundleDependencies": false, + "bundlesize": [ + { + "path": "./dist/*.js", + "threshold": "300b" + } + ], + "deprecated": "older versions vulnerable to prototype pollution", + "description": "Get and set dot-notated properties within an object", + "devDependencies": { + "@babel/core": "^7.0.0", + "@babel/preset-env": "^7.0.0", + "babel-jest": "^26.2.2", + "bundlesize": "^0.18.0", + "jest": "^26.5.3", + "jest-in-case": "^1.0.2", + "microbundle": "^0.13.0", + "npm-run-all": "^4.1.2" + }, + "files": [ + "dist", + "index.d.ts", + "index.js" + ], + "homepage": "https://github.com/robinvdvleuten/shvl#readme", + "keywords": [ + "path", + "dot notation", + "dot" + ], + "license": "MIT", + "main": "dist/shvl.js", + "module": "dist/shvl.mjs", + "name": "shvl", + "repository": { + "type": "git", + "url": "git+https://github.com/robinvdvleuten/shvl.git" + }, + "scripts": { + "build": "microbundle", + "prepare": "run-s build", + "test": "run-p test:**", + "test:jest": "jest --env=jsdom", + "test:size": "bundlesize" + }, + "source": "index.js", + "typings": "index.d.ts", + "unpkg": "dist/shvl.umd.js", + "version": "2.0.3" +} diff --git a/node_modules/vuex-persistedstate/CHANGELOG.md b/node_modules/vuex-persistedstate/CHANGELOG.md new file mode 100644 index 0000000..f4b171b --- /dev/null +++ b/node_modules/vuex-persistedstate/CHANGELOG.md @@ -0,0 +1,4 @@ +# Changelog + +This project adheres to [Semantic Versioning](http://semver.org/). +Every release is documented on the Github [Releases](https://github.com/robinvdvleuten/vuex-persistedstate/releases) page. diff --git a/node_modules/vuex-persistedstate/LICENSE b/node_modules/vuex-persistedstate/LICENSE new file mode 100644 index 0000000..b9e0834 --- /dev/null +++ b/node_modules/vuex-persistedstate/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) Robin van der Vleuten + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/vuex-persistedstate/README.md b/node_modules/vuex-persistedstate/README.md new file mode 100644 index 0000000..6cfd6ea --- /dev/null +++ b/node_modules/vuex-persistedstate/README.md @@ -0,0 +1,326 @@ +# vuex-persistedstate + +Persist and rehydrate your [Vuex](http://vuex.vuejs.org/) state between page reloads. + +
+ +[![Build Status](https://img.shields.io/github/workflow/status/robinvdvleuten/vuex-persistedstate/test.svg)](https://github.com/robinvdvleuten/vuex-persistedstate/actions?query=workflow%3Atest) +[![NPM version](https://img.shields.io/npm/v/vuex-persistedstate.svg)](https://www.npmjs.com/package/vuex-persistedstate) +[![NPM downloads](https://img.shields.io/npm/dm/vuex-persistedstate.svg)](https://www.npmjs.com/package/vuex-persistedstate) +[![Prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg)](https://github.com/prettier/prettier) +[![MIT license](https://img.shields.io/github/license/robinvdvleuten/vuex-persistedstate.svg)](https://github.com/robinvdvleuten/vuex-persistedstate/blob/master/LICENSE) + +[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](http://makeapullrequest.com) +[![Code Of Conduct](https://img.shields.io/badge/code%20of-conduct-ff69b4.svg)](https://github.com/robinvdvleuten/vuex-persistedstate/blob/master/.github/CODE_OF_CONDUCT.md) + + + Sponsored by The Webstronauts + + +## Install + +```bash +npm install --save vuex-persistedstate +``` + +The [UMD](https://github.com/umdjs/umd) build is also available on [unpkg](https://unpkg.com): + +```html + +``` + +You can find the library on `window.createPersistedState`. + +## Usage + +```js +import { createStore } from "vuex"; +import createPersistedState from "vuex-persistedstate"; + +const store = createStore({ + // ... + plugins: [createPersistedState()], +}); +``` + +For usage with for Vuex 3 and Vue 2, please see [3.x.x branch](https://github.com/robinvdvleuten/vuex-persistedstate/tree/3.x.x). + +## Examples + +Check out a basic example on [CodeSandbox](https://codesandbox.io). + +[![Edit vuex-persistedstate](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/80k4m2598) + +Or configured to use with [js-cookie](https://github.com/js-cookie/js-cookie). + +[![Edit vuex-persistedstate with js-cookie](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/xl356qvvkz) + +Or configured to use with [secure-ls](https://github.com/softvar/secure-ls) + +[![Edit vuex-persistedstate with secure-ls (encrypted data)](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/vuex-persistedstate-with-secure-ls-encrypted-data-7l9wb?fontsize=14) + +### Example with Vuex modules + +New plugin instances can be created in separate files, but must be imported and added to plugins object in the main Vuex file. + +```js +/* module.js */ +export const dataStore = { + state: { + data: [] + } +} + +/* store.js */ +import { dataStore } from './module' + +const dataState = createPersistedState({ + paths: ['data'] +}) + +export new Vuex.Store({ + modules: { + dataStore + }, + plugins: [dataState] +}) +``` + +### Example with Nuxt.js + +It is possible to use vuex-persistedstate with Nuxt.js. It must be included as a NuxtJS plugin: + +#### With local storage (client-side only) + +```javascript +// nuxt.config.js + +... +/* + * Naming your plugin 'xxx.client.js' will make it execute only on the client-side. + * https://nuxtjs.org/guide/plugins/#name-conventional-plugin + */ +plugins: [{ src: '~/plugins/persistedState.client.js' }] +... +``` + +```javascript +// ~/plugins/persistedState.client.js + +import createPersistedState from 'vuex-persistedstate' + +export default ({store}) => { + createPersistedState({ + key: 'yourkey', + paths: [...] + ... + })(store) +} +``` + +#### Using cookies (universal client + server-side) + +Add `cookie` and `js-cookie`: + +`npm install --save cookie js-cookie` +or `yarn add cookie js-cookie` + +```javascript +// nuxt.config.js +... +plugins: [{ src: '~/plugins/persistedState.js'}] +... +``` + +```javascript +// ~/plugins/persistedState.js + +import createPersistedState from 'vuex-persistedstate'; +import * as Cookies from 'js-cookie'; +import cookie from 'cookie'; + +export default ({ store, req }) => { + createPersistedState({ + paths: [...], + storage: { + getItem: (key) => { + // See https://nuxtjs.org/guide/plugins/#using-process-flags + if (process.server) { + const parsedCookies = cookie.parse(req.headers.cookie); + return parsedCookies[key]; + } else { + return Cookies.get(key); + } + }, + // Please see https://github.com/js-cookie/js-cookie#json, on how to handle JSON. + setItem: (key, value) => + Cookies.set(key, value, { expires: 365, secure: false }), + removeItem: key => Cookies.remove(key) + } + })(store); +}; +``` + +## API + +### `createPersistedState([options])` + +Creates a new instance of the plugin with the given options. The following options +can be provided to configure the plugin for your specific needs: + +- `key `: The key to store the persisted state under. Defaults to `vuex`. +- `paths `: An array of any paths to partially persist the state. If no paths are given, the complete state is persisted. If an empty array is given, no state is persisted. Paths must be specified using dot notation. If using modules, include the module name. eg: "auth.user" Defaults to `undefined`. +- `reducer `: A function that will be called to reduce the state to persist based on the given paths. Defaults to include the values. +- `subscriber `: A function called to setup mutation subscription. Defaults to `store => handler => store.subscribe(handler)`. + +- `storage `: Instead of (or in combination with) `getState` and `setState`. Defaults to localStorage. +- `getState `: A function that will be called to rehydrate a previously persisted state. Defaults to using `storage`. +- `setState `: A function that will be called to persist the given state. Defaults to using `storage`. +- `filter `: A function that will be called to filter any mutations which will trigger `setState` on storage eventually. Defaults to `() => true`. +- `overwrite `: When rehydrating, whether to overwrite the existing state with the output from `getState` directly, instead of merging the two objects with `deepmerge`. Defaults to `false`. +- `arrayMerger `: A function for merging arrays when rehydrating state. Defaults to `function (store, saved) { return saved }` (saved state replaces supplied state). +- `rehydrated `: A function that will be called when the rehydration is finished. Useful when you are using Nuxt.js, which the rehydration of the persisted state happens asynchronously. Defaults to `store => {}` +- `fetchBeforeUse `: A boolean indicating if the state should be fetched from storage before the plugin is used. Defaults to `false`. +- `assertStorage `: An overridable function to ensure storage is available, fired on plugins's initialization. Default one is performing a Write-Delete operation on the given Storage instance. Note, default behaviour could throw an error (like `DOMException: QuotaExceededError`). + +## Customize Storage + +If it's not ideal to have the state of the Vuex store inside localstorage. One can easily implement the functionality to use [cookies](https://github.com/js-cookie/js-cookie) for that (or any other you can think of); + +[![Edit vuex-persistedstate with js-cookie](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/xl356qvvkz?autoresize=1) + +```js +import { Store } from "vuex"; +import createPersistedState from "vuex-persistedstate"; +import * as Cookies from "js-cookie"; + +const store = new Store({ + // ... + plugins: [ + createPersistedState({ + storage: { + getItem: (key) => Cookies.get(key), + // Please see https://github.com/js-cookie/js-cookie#json, on how to handle JSON. + setItem: (key, value) => + Cookies.set(key, value, { expires: 3, secure: true }), + removeItem: (key) => Cookies.remove(key), + }, + }), + ], +}); +``` + +In fact, any object following the Storage protocol (getItem, setItem, removeItem, etc) could be passed: + +```js +createPersistedState({ storage: window.sessionStorage }); +``` + +This is especially useful when you are using this plugin in combination with server-side rendering, where one could pass an instance of [dom-storage](https://www.npmjs.com/package/dom-storage). + +### 🔐Obfuscate Local Storage + +If you need to use **Local Storage** (or you want to) but want to prevent attackers from easily inspecting the stored data, you can [obfuscate it]('https://github.com/softvar/secure-ls'). + +**Important ⚠️** Obfuscating the Vuex store means to prevent attackers from easily gaining access to the data. This is not a secure way of storing sensitive data (like passwords, personal information, etc.), and always needs to be used in conjunction with some other authentication method of keeping the data (such as Firebase or your own server). + +[![Edit vuex-persistedstate with secure-ls (obfuscated data)](https://codesandbox.io/static/img/play-codesandbox.svg)](https://codesandbox.io/s/vuex-persistedstate-with-secure-ls-encrypted-data-7l9wb?fontsize=14) + +```js +import { Store } from "vuex"; +import createPersistedState from "vuex-persistedstate"; +import SecureLS from "secure-ls"; +var ls = new SecureLS({ isCompression: false }); + +// https://github.com/softvar/secure-ls + +const store = new Store({ + // ... + plugins: [ + createPersistedState({ + storage: { + getItem: (key) => ls.get(key), + setItem: (key, value) => ls.set(key, value), + removeItem: (key) => ls.remove(key), + }, + }), + ], +}); +``` + +### ⚠️ LocalForage ⚠️ + +As it maybe seems at first sight, it's not possible to pass a [LocalForage](https://github.com/localForage/localForage) instance as `storage` property. This is due the fact that all getters and setters must be synchronous and [LocalForage's methods](https://github.com/localForage/localForage#callbacks-vs-promises) are asynchronous. + +## Changelog + +Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently. + +## Contributors ✨ + +Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)): + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Robin van der Vleuten

💻 📖 🚇 ⚠️

Sebastian

💻 📖

Boris Graeff

💻

Cícero Pablo

📖

Gurpreet Atwal

⚠️

Jakub Koralewski

💻

Jankees van Woezik

📖

Jofferson Ramirez Tiquez

📖

Jordan Deprez

📖

Juan Villegas

📖

Jürg Rast

💻

Kartashov Alexey

💻

Leonard Pauli

💻 📖

Nelson Liu

💻 📖 ⚠️

Nico

💻 ⚠️

Quentin Dreyer

💻

Raphael Saunier

💻

Rodney Rehm

💻 ⚠️

Ryan Wang

💻 📖 ⚠️

Sébastien Chopin

📖

jeffjing

💻

macarthuror

📖

Paul Melero

📖 💻 ⚠️

Guillaume da Silva

💻

Jonathan Santerre

💻

Fábio Santos

📖

robertgr991

💻

JurijsKolesnikovs

📖

David Bond

📖

Freek van Rijt

📖

Ilyes Hermellin

💻

Peter Siska

📖

Dmitry Filippov

📖

Thomas Meitz

📖 ⚠️

Neeron Bhatta

📖

joaoaraujo-hotmart

💻
+ + + + + + +This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome! + +## License + +The MIT License (MIT). Please see [License File](LICENSE) for more information. diff --git a/node_modules/vuex-persistedstate/dist/index.d.ts b/node_modules/vuex-persistedstate/dist/index.d.ts new file mode 100644 index 0000000..e46177c --- /dev/null +++ b/node_modules/vuex-persistedstate/dist/index.d.ts @@ -0,0 +1,23 @@ +import { Store, MutationPayload } from "vuex"; +interface Storage { + getItem: (key: string) => any; + setItem: (key: string, value: any) => void; + removeItem: (key: string) => void; +} +interface Options { + key?: string; + paths?: string[]; + reducer?: (state: State, paths: string[]) => object; + subscriber?: (store: Store) => (handler: (mutation: any, state: State) => void) => void; + storage?: Storage; + getState?: (key: string, storage: Storage) => any; + setState?: (key: string, state: any, storage: Storage) => void; + filter?: (mutation: MutationPayload) => boolean; + arrayMerger?: (state: any[], saved: any[]) => any; + rehydrated?: (store: Store) => void; + fetchBeforeUse?: boolean; + overwrite?: boolean; + assertStorage?: (storage: Storage) => void | Error; +} +export default function (options?: Options): (store: Store) => void; +export {}; diff --git a/node_modules/vuex-persistedstate/dist/vuex-persistedstate.es.js b/node_modules/vuex-persistedstate/dist/vuex-persistedstate.es.js new file mode 100644 index 0000000..b64f678 --- /dev/null +++ b/node_modules/vuex-persistedstate/dist/vuex-persistedstate.es.js @@ -0,0 +1,2 @@ +var r=function(r){return function(r){return!!r&&"object"==typeof r}(r)&&!function(r){var t=Object.prototype.toString.call(r);return"[object RegExp]"===t||"[object Date]"===t||function(r){return r.$$typeof===e}(r)}(r)},e="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function t(r,e){return!1!==e.clone&&e.isMergeableObject(r)?u(Array.isArray(r)?[]:{},r,e):r}function n(r,e,n){return r.concat(e).map(function(r){return t(r,n)})}function o(r){return Object.keys(r).concat(function(r){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(r).filter(function(e){return r.propertyIsEnumerable(e)}):[]}(r))}function c(r,e){try{return e in r}catch(r){return!1}}function u(e,i,a){(a=a||{}).arrayMerge=a.arrayMerge||n,a.isMergeableObject=a.isMergeableObject||r,a.cloneUnlessOtherwiseSpecified=t;var f=Array.isArray(i);return f===Array.isArray(e)?f?a.arrayMerge(e,i,a):function(r,e,n){var i={};return n.isMergeableObject(r)&&o(r).forEach(function(e){i[e]=t(r[e],n)}),o(e).forEach(function(o){(function(r,e){return c(r,e)&&!(Object.hasOwnProperty.call(r,e)&&Object.propertyIsEnumerable.call(r,e))})(r,o)||(i[o]=c(r,o)&&n.isMergeableObject(e[o])?function(r,e){if(!e.customMerge)return u;var t=e.customMerge(r);return"function"==typeof t?t:u}(o,n)(r[o],e[o],n):t(e[o],n))}),i}(e,i,a):t(i,a)}u.all=function(r,e){if(!Array.isArray(r))throw new Error("first argument should be an array");return r.reduce(function(r,t){return u(r,t,e)},{})};var i=u;function a(r){var e=(r=r||{}).storage||window&&window.localStorage,t=r.key||"vuex";function n(r,e){var t=e.getItem(r);try{return"string"==typeof t?JSON.parse(t):"object"==typeof t?t:void 0}catch(r){}}function o(){return!0}function c(r,e,t){return t.setItem(r,JSON.stringify(e))}function u(r,e){return Array.isArray(e)?e.reduce(function(e,t){return function(r,e,t,n){return!/^(__proto__|constructor|prototype)$/.test(e)&&((e=e.split?e.split("."):e.slice(0)).slice(0,-1).reduce(function(r,e){return r[e]=r[e]||{}},r)[e.pop()]=t),r}(e,t,(n=r,void 0===(n=((o=t).split?o.split("."):o).reduce(function(r,e){return r&&r[e]},n))?void 0:n));var n,o},{}):r}function a(r){return function(e){return r.subscribe(e)}}(r.assertStorage||function(){e.setItem("@@",1),e.removeItem("@@")})(e);var f,s=function(){return(r.getState||n)(t,e)};return r.fetchBeforeUse&&(f=s()),function(n){r.fetchBeforeUse||(f=s()),"object"==typeof f&&null!==f&&(n.replaceState(r.overwrite?f:i(n.state,f,{arrayMerge:r.arrayMerger||function(r,e){return e},clone:!1})),(r.rehydrated||function(){})(n)),(r.subscriber||a)(n)(function(n,i){(r.filter||o)(n)&&(r.setState||c)(t,(r.reducer||u)(i,r.paths),e)})}}export default a; +//# sourceMappingURL=vuex-persistedstate.es.js.map diff --git a/node_modules/vuex-persistedstate/dist/vuex-persistedstate.es.js.map b/node_modules/vuex-persistedstate/dist/vuex-persistedstate.es.js.map new file mode 100644 index 0000000..7f31e57 --- /dev/null +++ b/node_modules/vuex-persistedstate/dist/vuex-persistedstate.es.js.map @@ -0,0 +1 @@ +{"version":3,"file":"vuex-persistedstate.es.js","sources":["../node_modules/deepmerge/dist/cjs.js","../src/index.ts","../node_modules/shvl/dist/shvl.mjs"],"sourcesContent":["'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","import { Store, MutationPayload } from \"vuex\";\nimport merge from \"deepmerge\";\nimport * as shvl from \"shvl\";\n\ninterface Storage {\n getItem: (key: string) => any;\n setItem: (key: string, value: any) => void;\n removeItem: (key: string) => void;\n}\n\ninterface Options {\n key?: string;\n paths?: string[];\n reducer?: (state: State, paths: string[]) => object;\n subscriber?: (\n store: Store\n ) => (handler: (mutation: any, state: State) => void) => void;\n storage?: Storage;\n getState?: (key: string, storage: Storage) => any;\n setState?: (key: string, state: any, storage: Storage) => void;\n filter?: (mutation: MutationPayload) => boolean;\n arrayMerger?: (state: any[], saved: any[]) => any;\n rehydrated?: (store: Store) => void;\n fetchBeforeUse?: boolean;\n overwrite?: boolean;\n assertStorage?: (storage: Storage) => void | Error;\n}\n\nexport default function (\n options?: Options\n): (store: Store) => void {\n options = options || {};\n\n const storage = options.storage || (window && window.localStorage);\n const key = options.key || \"vuex\";\n\n function getState(key, storage) {\n const value = storage.getItem(key);\n\n try {\n return (typeof value === \"string\")\n ? JSON.parse(value) : (typeof value === \"object\")\n ? value : undefined;\n } catch (err) {}\n\n return undefined;\n }\n\n function filter() {\n return true;\n }\n\n function setState(key, state, storage) {\n return storage.setItem(key, JSON.stringify(state));\n }\n\n function reducer(state, paths) {\n return Array.isArray(paths)\n ? paths.reduce(function (substate, path) {\n return shvl.set(substate, path, shvl.get(state, path));\n }, {})\n : state;\n }\n\n function subscriber(store) {\n return function (handler) {\n return store.subscribe(handler);\n };\n }\n\n const assertStorage =\n options.assertStorage ||\n (() => {\n storage.setItem(\"@@\", 1);\n storage.removeItem(\"@@\");\n });\n\n assertStorage(storage);\n\n const fetchSavedState = () => (options.getState || getState)(key, storage);\n\n let savedState;\n\n if (options.fetchBeforeUse) {\n savedState = fetchSavedState();\n }\n\n return function (store: Store) {\n if (!options.fetchBeforeUse) {\n savedState = fetchSavedState();\n }\n\n if (typeof savedState === \"object\" && savedState !== null) {\n store.replaceState(\n options.overwrite\n ? savedState\n : merge(store.state, savedState, {\n arrayMerge:\n options.arrayMerger ||\n function (store, saved) {\n return saved;\n },\n clone: false,\n })\n );\n (options.rehydrated || function () {})(store);\n }\n\n (options.subscriber || subscriber)(store)(function (mutation, state) {\n if ((options.filter || filter)(mutation)) {\n (options.setState || setState)(\n key,\n (options.reducer || reducer)(state, options.paths),\n storage\n );\n }\n });\n };\n}\n","function t(t,r,e){return void 0===(t=(r.split?r.split(\".\"):r).reduce(function(t,r){return t&&t[r]},t))?e:t}function r(t,r,e,n){return!/^(__proto__|constructor|prototype)$/.test(r)&&((r=r.split?r.split(\".\"):r.slice(0)).slice(0,-1).reduce(function(t,r){return t[r]=t[r]||{}},t)[r.pop()]=e),t}export{t as get,r as set};\n//# sourceMappingURL=shvl.mjs.map\n"],"names":["isMergeableObject","value","isNonNullObject","stringValue","Object","prototype","toString","call","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","Symbol","for","cloneUnlessOtherwiseSpecified","options","clone","deepmerge","Array","isArray","defaultArrayMerge","target","source","concat","map","element","getKeys","keys","getOwnPropertySymbols","filter","symbol","propertyIsEnumerable","getEnumerableOwnPropertySymbols","propertyIsOnObject","object","property","_","arrayMerge","sourceIsArray","destination","forEach","key","hasOwnProperty","propertyIsUnsafe","customMerge","getMergeFunction","mergeObject","all","array","Error","reduce","prev","next","storage","window","localStorage","getState","getItem","JSON","parse","undefined","err","setState","state","setItem","stringify","reducer","paths","substate","path","t","r","e","n","test","split","slice","pop","shvl","subscriber","store","handler","subscribe","assertStorage","removeItem","savedState","fetchSavedState","fetchBeforeUse","replaceState","overwrite","merge","arrayMerger","saved","rehydrated","mutation"],"mappings":"AAEA,IAAIA,EAAoB,SAA2BC,GAClD,OAID,SAAyBA,GACxB,QAASA,GAA0B,iBAAVA,EALlBC,CAAgBD,KAQxB,SAAmBA,GAClB,IAAIE,EAAcC,OAAOC,UAAUC,SAASC,KAAKN,GAEjD,MAAuB,oBAAhBE,GACa,kBAAhBA,GAQL,SAAwBF,GACvB,OAAOA,EAAMO,WAAaC,EARtBC,CAAeT,GAZdU,CAAUV,IAiBZQ,EADiC,mBAAXG,QAAyBA,OAAOC,IAClBD,OAAOC,IAAI,iBAAmB,MAUtE,SAASC,EAA8Bb,EAAOc,GAC7C,OAA0B,IAAlBA,EAAQC,OAAmBD,EAAQf,kBAAkBC,GAC1DgB,EALIC,MAAMC,QAKYlB,GALG,GAAK,GAKAA,EAAOc,GACrCd,EAGJ,SAASmB,EAAkBC,EAAQC,EAAQP,GAC1C,OAAOM,EAAOE,OAAOD,GAAQE,IAAI,SAASC,GACzC,OAAOX,EAA8BW,EAASV,KAoBhD,SAASW,EAAQL,GAChB,OAAOjB,OAAOuB,KAAKN,GAAQE,OAT5B,SAAyCF,GACxC,OAAOjB,OAAOwB,sBACXxB,OAAOwB,sBAAsBP,GAAQQ,OAAO,SAASC,GACtD,OAAOT,EAAOU,qBAAqBD,KAElC,GAI+BE,CAAgCX,IAGnE,SAASY,EAAmBC,EAAQC,GACnC,IACC,OAAOA,KAAYD,EAClB,MAAME,GACP,OAAO,GAgCT,SAASnB,EAAUI,EAAQC,EAAQP,IAClCA,EAAUA,GAAW,IACbsB,WAAatB,EAAQsB,YAAcjB,EAC3CL,EAAQf,kBAAoBe,EAAQf,mBAAqBA,EAGzDe,EAAQD,8BAAgCA,EAExC,IAAIwB,EAAgBpB,MAAMC,QAAQG,GAIlC,OAFgCgB,IADZpB,MAAMC,QAAQE,GAKvBiB,EACHvB,EAAQsB,WAAWhB,EAAQC,EAAQP,GApC5C,SAAqBM,EAAQC,EAAQP,GACpC,IAAIwB,EAAc,GAiBlB,OAhBIxB,EAAQf,kBAAkBqB,IAC7BK,EAAQL,GAAQmB,QAAQ,SAASC,GAChCF,EAAYE,GAAO3B,EAA8BO,EAAOoB,GAAM1B,KAGhEW,EAAQJ,GAAQkB,QAAQ,SAASC,IAblC,SAA0BpB,EAAQoB,GACjC,OAAOR,EAAmBZ,EAAQoB,MAC5BrC,OAAOsC,eAAenC,KAAKc,EAAQoB,IACpCrC,OAAO2B,qBAAqBxB,KAAKc,EAAQoB,KAWzCE,CAAiBtB,EAAQoB,KAK5BF,EAAYE,GADTR,EAAmBZ,EAAQoB,IAAQ1B,EAAQf,kBAAkBsB,EAAOmB,IA/C1E,SAA0BA,EAAK1B,GAC9B,IAAKA,EAAQ6B,YACZ,OAAO3B,EAER,IAAI2B,EAAc7B,EAAQ6B,YAAYH,GACtC,MAA8B,mBAAhBG,EAA6BA,EAAc3B,EA2CpC4B,CAAiBJ,EAAK1B,EAAtB8B,CAA+BxB,EAAOoB,GAAMnB,EAAOmB,GAAM1B,GAEzDD,EAA8BQ,EAAOmB,GAAM1B,MAGzDwB,EAoBCO,CAAYzB,EAAQC,EAAQP,GAJ5BD,EAA8BQ,EAAQP,GAQ/CE,EAAU8B,IAAM,SAAsBC,EAAOjC,GAC5C,IAAKG,MAAMC,QAAQ6B,GAClB,MAAM,IAAIC,MAAM,qCAGjB,OAAOD,EAAME,OAAO,SAASC,EAAMC,GAClC,OAAOnC,EAAUkC,EAAMC,EAAMrC,IAC3B,KAGJ,MAAkBE,aCrGhBF,GAIA,IAAMsC,GAFNtC,EAAUA,GAAW,IAEGsC,SAAYC,QAAUA,OAAOC,aAC/Cd,EAAM1B,EAAQ0B,KAAO,OAE3B,SAASe,EAASf,EAAKY,GACrB,IAAMpD,EAAQoD,EAAQI,QAAQhB,GAE9B,IACE,MAAyB,iBAAVxC,EACXyD,KAAKC,MAAM1D,GAA2B,iBAAVA,EAC5BA,OAAQ2D,EACZ,MAAOC,KAKX,SAAShC,IACP,SAGF,SAASiC,EAASrB,EAAKsB,EAAOV,GAC5B,OAAOA,EAAQW,QAAQvB,EAAKiB,KAAKO,UAAUF,IAG7C,SAASG,EAAQH,EAAOI,GACtB,OAAOjD,MAAMC,QAAQgD,GACjBA,EAAMjB,OAAO,SAAUkB,EAAUC,GAC/B,OC3DiG,SAAWC,EAAEC,EAAEC,EAAEC,GAAG,OAAO,sCAAsCC,KAAKH,MAAMA,EAAEA,EAAEI,MAAMJ,EAAEI,MAAM,KAAKJ,EAAEK,MAAM,IAAIA,MAAM,GAAG,GAAG1B,OAAO,SAASoB,EAAEC,GAAG,OAAOD,EAAEC,GAAGD,EAAEC,IAAI,IAAID,GAAGC,EAAEM,OAAOL,GAAGF,ED2D/QQ,CAASV,EAAUC,GC3DzBC,ED2DwCP,OC3D1B,KAAUO,IAAtBC,ED2D6CF,GC3DlBM,MAAMJ,EAAEI,MAAM,KAAKJ,GAAGrB,OAAO,SAASoB,EAAEC,GAAG,OAAOD,GAAGA,EAAEC,IAAID,SD2DzDQ,EC3D+DR,IAAzG,IAAWA,EAAEC,GD4DF,IACHR,EAGN,SAASgB,EAAWC,GAClB,gBAAiBC,GACf,OAAOD,EAAME,UAAUD,KAKzBlE,EAAQoE,eACP,WACC9B,EAAQW,QAAQ,KAAM,GACtBX,EAAQ+B,WAAW,QAGT/B,GAEd,IAEIgC,EAFEC,EAAkB,kBAAOvE,EAAQyC,UAAYA,GAAUf,EAAKY,IAQlE,OAJItC,EAAQwE,iBACVF,EAAaC,cAGEN,GACVjE,EAAQwE,iBACXF,EAAaC,KAGW,iBAAfD,GAA0C,OAAfA,IACpCL,EAAMQ,aACJzE,EAAQ0E,UACJJ,EACAK,EAAMV,EAAMjB,MAAOsB,EAAY,CAC7BhD,WACEtB,EAAQ4E,aACR,SAAUX,EAAOY,GACf,OAAOA,GAEX5E,OAAO,MAGdD,EAAQ8E,YAAc,cAAgBb,KAGxCjE,EAAQgE,YAAcA,GAAYC,EAAnC,CAA0C,SAAUc,EAAU/B,IACvDhD,EAAQc,QAAUA,GAAQiE,KAC5B/E,EAAQ+C,UAAYA,GACnBrB,GACC1B,EAAQmD,SAAWA,GAASH,EAAOhD,EAAQoD,OAC5Cd"} \ No newline at end of file diff --git a/node_modules/vuex-persistedstate/dist/vuex-persistedstate.js b/node_modules/vuex-persistedstate/dist/vuex-persistedstate.js new file mode 100644 index 0000000..d95b0c2 --- /dev/null +++ b/node_modules/vuex-persistedstate/dist/vuex-persistedstate.js @@ -0,0 +1,2 @@ +var r=function(r){return function(r){return!!r&&"object"==typeof r}(r)&&!function(r){var t=Object.prototype.toString.call(r);return"[object RegExp]"===t||"[object Date]"===t||function(r){return r.$$typeof===e}(r)}(r)},e="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function t(r,e){return!1!==e.clone&&e.isMergeableObject(r)?u(Array.isArray(r)?[]:{},r,e):r}function n(r,e,n){return r.concat(e).map(function(r){return t(r,n)})}function o(r){return Object.keys(r).concat(function(r){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(r).filter(function(e){return r.propertyIsEnumerable(e)}):[]}(r))}function c(r,e){try{return e in r}catch(r){return!1}}function u(e,i,a){(a=a||{}).arrayMerge=a.arrayMerge||n,a.isMergeableObject=a.isMergeableObject||r,a.cloneUnlessOtherwiseSpecified=t;var f=Array.isArray(i);return f===Array.isArray(e)?f?a.arrayMerge(e,i,a):function(r,e,n){var i={};return n.isMergeableObject(r)&&o(r).forEach(function(e){i[e]=t(r[e],n)}),o(e).forEach(function(o){(function(r,e){return c(r,e)&&!(Object.hasOwnProperty.call(r,e)&&Object.propertyIsEnumerable.call(r,e))})(r,o)||(i[o]=c(r,o)&&n.isMergeableObject(e[o])?function(r,e){if(!e.customMerge)return u;var t=e.customMerge(r);return"function"==typeof t?t:u}(o,n)(r[o],e[o],n):t(e[o],n))}),i}(e,i,a):t(i,a)}u.all=function(r,e){if(!Array.isArray(r))throw new Error("first argument should be an array");return r.reduce(function(r,t){return u(r,t,e)},{})};var i=u;module.exports=function(r){var e=(r=r||{}).storage||window&&window.localStorage,t=r.key||"vuex";function n(r,e){var t=e.getItem(r);try{return"string"==typeof t?JSON.parse(t):"object"==typeof t?t:void 0}catch(r){}}function o(){return!0}function c(r,e,t){return t.setItem(r,JSON.stringify(e))}function u(r,e){return Array.isArray(e)?e.reduce(function(e,t){return function(r,e,t,n){return!/^(__proto__|constructor|prototype)$/.test(e)&&((e=e.split?e.split("."):e.slice(0)).slice(0,-1).reduce(function(r,e){return r[e]=r[e]||{}},r)[e.pop()]=t),r}(e,t,(n=r,void 0===(n=((o=t).split?o.split("."):o).reduce(function(r,e){return r&&r[e]},n))?void 0:n));var n,o},{}):r}function a(r){return function(e){return r.subscribe(e)}}(r.assertStorage||function(){e.setItem("@@",1),e.removeItem("@@")})(e);var f,s=function(){return(r.getState||n)(t,e)};return r.fetchBeforeUse&&(f=s()),function(n){r.fetchBeforeUse||(f=s()),"object"==typeof f&&null!==f&&(n.replaceState(r.overwrite?f:i(n.state,f,{arrayMerge:r.arrayMerger||function(r,e){return e},clone:!1})),(r.rehydrated||function(){})(n)),(r.subscriber||a)(n)(function(n,i){(r.filter||o)(n)&&(r.setState||c)(t,(r.reducer||u)(i,r.paths),e)})}}; +//# sourceMappingURL=vuex-persistedstate.js.map diff --git a/node_modules/vuex-persistedstate/dist/vuex-persistedstate.js.map b/node_modules/vuex-persistedstate/dist/vuex-persistedstate.js.map new file mode 100644 index 0000000..592868a --- /dev/null +++ b/node_modules/vuex-persistedstate/dist/vuex-persistedstate.js.map @@ -0,0 +1 @@ +{"version":3,"file":"vuex-persistedstate.js","sources":["../node_modules/deepmerge/dist/cjs.js","../src/index.ts","../node_modules/shvl/dist/shvl.mjs"],"sourcesContent":["'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","import { Store, MutationPayload } from \"vuex\";\nimport merge from \"deepmerge\";\nimport * as shvl from \"shvl\";\n\ninterface Storage {\n getItem: (key: string) => any;\n setItem: (key: string, value: any) => void;\n removeItem: (key: string) => void;\n}\n\ninterface Options {\n key?: string;\n paths?: string[];\n reducer?: (state: State, paths: string[]) => object;\n subscriber?: (\n store: Store\n ) => (handler: (mutation: any, state: State) => void) => void;\n storage?: Storage;\n getState?: (key: string, storage: Storage) => any;\n setState?: (key: string, state: any, storage: Storage) => void;\n filter?: (mutation: MutationPayload) => boolean;\n arrayMerger?: (state: any[], saved: any[]) => any;\n rehydrated?: (store: Store) => void;\n fetchBeforeUse?: boolean;\n overwrite?: boolean;\n assertStorage?: (storage: Storage) => void | Error;\n}\n\nexport default function (\n options?: Options\n): (store: Store) => void {\n options = options || {};\n\n const storage = options.storage || (window && window.localStorage);\n const key = options.key || \"vuex\";\n\n function getState(key, storage) {\n const value = storage.getItem(key);\n\n try {\n return (typeof value === \"string\")\n ? JSON.parse(value) : (typeof value === \"object\")\n ? value : undefined;\n } catch (err) {}\n\n return undefined;\n }\n\n function filter() {\n return true;\n }\n\n function setState(key, state, storage) {\n return storage.setItem(key, JSON.stringify(state));\n }\n\n function reducer(state, paths) {\n return Array.isArray(paths)\n ? paths.reduce(function (substate, path) {\n return shvl.set(substate, path, shvl.get(state, path));\n }, {})\n : state;\n }\n\n function subscriber(store) {\n return function (handler) {\n return store.subscribe(handler);\n };\n }\n\n const assertStorage =\n options.assertStorage ||\n (() => {\n storage.setItem(\"@@\", 1);\n storage.removeItem(\"@@\");\n });\n\n assertStorage(storage);\n\n const fetchSavedState = () => (options.getState || getState)(key, storage);\n\n let savedState;\n\n if (options.fetchBeforeUse) {\n savedState = fetchSavedState();\n }\n\n return function (store: Store) {\n if (!options.fetchBeforeUse) {\n savedState = fetchSavedState();\n }\n\n if (typeof savedState === \"object\" && savedState !== null) {\n store.replaceState(\n options.overwrite\n ? savedState\n : merge(store.state, savedState, {\n arrayMerge:\n options.arrayMerger ||\n function (store, saved) {\n return saved;\n },\n clone: false,\n })\n );\n (options.rehydrated || function () {})(store);\n }\n\n (options.subscriber || subscriber)(store)(function (mutation, state) {\n if ((options.filter || filter)(mutation)) {\n (options.setState || setState)(\n key,\n (options.reducer || reducer)(state, options.paths),\n storage\n );\n }\n });\n };\n}\n","function t(t,r,e){return void 0===(t=(r.split?r.split(\".\"):r).reduce(function(t,r){return t&&t[r]},t))?e:t}function r(t,r,e,n){return!/^(__proto__|constructor|prototype)$/.test(r)&&((r=r.split?r.split(\".\"):r.slice(0)).slice(0,-1).reduce(function(t,r){return t[r]=t[r]||{}},t)[r.pop()]=e),t}export{t as get,r as set};\n//# sourceMappingURL=shvl.mjs.map\n"],"names":["isMergeableObject","value","isNonNullObject","stringValue","Object","prototype","toString","call","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","Symbol","for","cloneUnlessOtherwiseSpecified","options","clone","deepmerge","Array","isArray","defaultArrayMerge","target","source","concat","map","element","getKeys","keys","getOwnPropertySymbols","filter","symbol","propertyIsEnumerable","getEnumerableOwnPropertySymbols","propertyIsOnObject","object","property","_","arrayMerge","sourceIsArray","destination","forEach","key","hasOwnProperty","propertyIsUnsafe","customMerge","getMergeFunction","mergeObject","all","array","Error","reduce","prev","next","storage","window","localStorage","getState","getItem","JSON","parse","undefined","err","setState","state","setItem","stringify","reducer","paths","substate","path","t","r","e","n","test","split","slice","pop","shvl","subscriber","store","handler","subscribe","assertStorage","removeItem","savedState","fetchSavedState","fetchBeforeUse","replaceState","overwrite","merge","arrayMerger","saved","rehydrated","mutation"],"mappings":"AAEA,IAAIA,EAAoB,SAA2BC,GAClD,OAID,SAAyBA,GACxB,QAASA,GAA0B,iBAAVA,EALlBC,CAAgBD,KAQxB,SAAmBA,GAClB,IAAIE,EAAcC,OAAOC,UAAUC,SAASC,KAAKN,GAEjD,MAAuB,oBAAhBE,GACa,kBAAhBA,GAQL,SAAwBF,GACvB,OAAOA,EAAMO,WAAaC,EARtBC,CAAeT,GAZdU,CAAUV,IAiBZQ,EADiC,mBAAXG,QAAyBA,OAAOC,IAClBD,OAAOC,IAAI,iBAAmB,MAUtE,SAASC,EAA8Bb,EAAOc,GAC7C,OAA0B,IAAlBA,EAAQC,OAAmBD,EAAQf,kBAAkBC,GAC1DgB,EALIC,MAAMC,QAKYlB,GALG,GAAK,GAKAA,EAAOc,GACrCd,EAGJ,SAASmB,EAAkBC,EAAQC,EAAQP,GAC1C,OAAOM,EAAOE,OAAOD,GAAQE,IAAI,SAASC,GACzC,OAAOX,EAA8BW,EAASV,KAoBhD,SAASW,EAAQL,GAChB,OAAOjB,OAAOuB,KAAKN,GAAQE,OAT5B,SAAyCF,GACxC,OAAOjB,OAAOwB,sBACXxB,OAAOwB,sBAAsBP,GAAQQ,OAAO,SAASC,GACtD,OAAOT,EAAOU,qBAAqBD,KAElC,GAI+BE,CAAgCX,IAGnE,SAASY,EAAmBC,EAAQC,GACnC,IACC,OAAOA,KAAYD,EAClB,MAAME,GACP,OAAO,GAgCT,SAASnB,EAAUI,EAAQC,EAAQP,IAClCA,EAAUA,GAAW,IACbsB,WAAatB,EAAQsB,YAAcjB,EAC3CL,EAAQf,kBAAoBe,EAAQf,mBAAqBA,EAGzDe,EAAQD,8BAAgCA,EAExC,IAAIwB,EAAgBpB,MAAMC,QAAQG,GAIlC,OAFgCgB,IADZpB,MAAMC,QAAQE,GAKvBiB,EACHvB,EAAQsB,WAAWhB,EAAQC,EAAQP,GApC5C,SAAqBM,EAAQC,EAAQP,GACpC,IAAIwB,EAAc,GAiBlB,OAhBIxB,EAAQf,kBAAkBqB,IAC7BK,EAAQL,GAAQmB,QAAQ,SAASC,GAChCF,EAAYE,GAAO3B,EAA8BO,EAAOoB,GAAM1B,KAGhEW,EAAQJ,GAAQkB,QAAQ,SAASC,IAblC,SAA0BpB,EAAQoB,GACjC,OAAOR,EAAmBZ,EAAQoB,MAC5BrC,OAAOsC,eAAenC,KAAKc,EAAQoB,IACpCrC,OAAO2B,qBAAqBxB,KAAKc,EAAQoB,KAWzCE,CAAiBtB,EAAQoB,KAK5BF,EAAYE,GADTR,EAAmBZ,EAAQoB,IAAQ1B,EAAQf,kBAAkBsB,EAAOmB,IA/C1E,SAA0BA,EAAK1B,GAC9B,IAAKA,EAAQ6B,YACZ,OAAO3B,EAER,IAAI2B,EAAc7B,EAAQ6B,YAAYH,GACtC,MAA8B,mBAAhBG,EAA6BA,EAAc3B,EA2CpC4B,CAAiBJ,EAAK1B,EAAtB8B,CAA+BxB,EAAOoB,GAAMnB,EAAOmB,GAAM1B,GAEzDD,EAA8BQ,EAAOmB,GAAM1B,MAGzDwB,EAoBCO,CAAYzB,EAAQC,EAAQP,GAJ5BD,EAA8BQ,EAAQP,GAQ/CE,EAAU8B,IAAM,SAAsBC,EAAOjC,GAC5C,IAAKG,MAAMC,QAAQ6B,GAClB,MAAM,IAAIC,MAAM,qCAGjB,OAAOD,EAAME,OAAO,SAASC,EAAMC,GAClC,OAAOnC,EAAUkC,EAAMC,EAAMrC,IAC3B,KAGJ,MAAkBE,0BCrGhBF,GAIA,IAAMsC,GAFNtC,EAAUA,GAAW,IAEGsC,SAAYC,QAAUA,OAAOC,aAC/Cd,EAAM1B,EAAQ0B,KAAO,OAE3B,SAASe,EAASf,EAAKY,GACrB,IAAMpD,EAAQoD,EAAQI,QAAQhB,GAE9B,IACE,MAAyB,iBAAVxC,EACXyD,KAAKC,MAAM1D,GAA2B,iBAAVA,EAC5BA,OAAQ2D,EACZ,MAAOC,KAKX,SAAShC,IACP,SAGF,SAASiC,EAASrB,EAAKsB,EAAOV,GAC5B,OAAOA,EAAQW,QAAQvB,EAAKiB,KAAKO,UAAUF,IAG7C,SAASG,EAAQH,EAAOI,GACtB,OAAOjD,MAAMC,QAAQgD,GACjBA,EAAMjB,OAAO,SAAUkB,EAAUC,GAC/B,OC3DiG,SAAWC,EAAEC,EAAEC,EAAEC,GAAG,OAAO,sCAAsCC,KAAKH,MAAMA,EAAEA,EAAEI,MAAMJ,EAAEI,MAAM,KAAKJ,EAAEK,MAAM,IAAIA,MAAM,GAAG,GAAG1B,OAAO,SAASoB,EAAEC,GAAG,OAAOD,EAAEC,GAAGD,EAAEC,IAAI,IAAID,GAAGC,EAAEM,OAAOL,GAAGF,ED2D/QQ,CAASV,EAAUC,GC3DzBC,ED2DwCP,OC3D1B,KAAUO,IAAtBC,ED2D6CF,GC3DlBM,MAAMJ,EAAEI,MAAM,KAAKJ,GAAGrB,OAAO,SAASoB,EAAEC,GAAG,OAAOD,GAAGA,EAAEC,IAAID,SD2DzDQ,EC3D+DR,IAAzG,IAAWA,EAAEC,GD4DF,IACHR,EAGN,SAASgB,EAAWC,GAClB,gBAAiBC,GACf,OAAOD,EAAME,UAAUD,KAKzBlE,EAAQoE,eACP,WACC9B,EAAQW,QAAQ,KAAM,GACtBX,EAAQ+B,WAAW,QAGT/B,GAEd,IAEIgC,EAFEC,EAAkB,kBAAOvE,EAAQyC,UAAYA,GAAUf,EAAKY,IAQlE,OAJItC,EAAQwE,iBACVF,EAAaC,cAGEN,GACVjE,EAAQwE,iBACXF,EAAaC,KAGW,iBAAfD,GAA0C,OAAfA,IACpCL,EAAMQ,aACJzE,EAAQ0E,UACJJ,EACAK,EAAMV,EAAMjB,MAAOsB,EAAY,CAC7BhD,WACEtB,EAAQ4E,aACR,SAAUX,EAAOY,GACf,OAAOA,GAEX5E,OAAO,MAGdD,EAAQ8E,YAAc,cAAgBb,KAGxCjE,EAAQgE,YAAcA,GAAYC,EAAnC,CAA0C,SAAUc,EAAU/B,IACvDhD,EAAQc,QAAUA,GAAQiE,KAC5B/E,EAAQ+C,UAAYA,GACnBrB,GACC1B,EAAQmD,SAAWA,GAASH,EAAOhD,EAAQoD,OAC5Cd"} \ No newline at end of file diff --git a/node_modules/vuex-persistedstate/dist/vuex-persistedstate.modern.js b/node_modules/vuex-persistedstate/dist/vuex-persistedstate.modern.js new file mode 100644 index 0000000..ba09024 --- /dev/null +++ b/node_modules/vuex-persistedstate/dist/vuex-persistedstate.modern.js @@ -0,0 +1,2 @@ +var r=function(r){return function(r){return!!r&&"object"==typeof r}(r)&&!function(r){var t=Object.prototype.toString.call(r);return"[object RegExp]"===t||"[object Date]"===t||function(r){return r.$$typeof===e}(r)}(r)},e="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function t(r,e){return!1!==e.clone&&e.isMergeableObject(r)?u(Array.isArray(r)?[]:{},r,e):r}function n(r,e,n){return r.concat(e).map(function(r){return t(r,n)})}function o(r){return Object.keys(r).concat(function(r){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(r).filter(function(e){return r.propertyIsEnumerable(e)}):[]}(r))}function c(r,e){try{return e in r}catch(r){return!1}}function u(e,i,a){(a=a||{}).arrayMerge=a.arrayMerge||n,a.isMergeableObject=a.isMergeableObject||r,a.cloneUnlessOtherwiseSpecified=t;var f=Array.isArray(i);return f===Array.isArray(e)?f?a.arrayMerge(e,i,a):function(r,e,n){var i={};return n.isMergeableObject(r)&&o(r).forEach(function(e){i[e]=t(r[e],n)}),o(e).forEach(function(o){(function(r,e){return c(r,e)&&!(Object.hasOwnProperty.call(r,e)&&Object.propertyIsEnumerable.call(r,e))})(r,o)||(i[o]=c(r,o)&&n.isMergeableObject(e[o])?function(r,e){if(!e.customMerge)return u;var t=e.customMerge(r);return"function"==typeof t?t:u}(o,n)(r[o],e[o],n):t(e[o],n))}),i}(e,i,a):t(i,a)}u.all=function(r,e){if(!Array.isArray(r))throw new Error("first argument should be an array");return r.reduce(function(r,t){return u(r,t,e)},{})};var i=u;function a(r){const e=(r=r||{}).storage||window&&window.localStorage,t=r.key||"vuex";function n(r,e){const t=e.getItem(r);try{return"string"==typeof t?JSON.parse(t):"object"==typeof t?t:void 0}catch(r){}}function o(){return!0}function c(r,e,t){return t.setItem(r,JSON.stringify(e))}function u(r,e){return Array.isArray(e)?e.reduce(function(e,t){return function(r,e,t,n){return!/^(__proto__|constructor|prototype)$/.test(e)&&((e=e.split?e.split("."):e.slice(0)).slice(0,-1).reduce(function(r,e){return r[e]=r[e]||{}},r)[e.pop()]=t),r}(e,t,(n=r,void 0===(n=((o=t).split?o.split("."):o).reduce(function(r,e){return r&&r[e]},n))?void 0:n));var n,o},{}):r}function a(r){return function(e){return r.subscribe(e)}}(r.assertStorage||(()=>{e.setItem("@@",1),e.removeItem("@@")}))(e);const f=()=>(r.getState||n)(t,e);let s;return r.fetchBeforeUse&&(s=f()),function(n){r.fetchBeforeUse||(s=f()),"object"==typeof s&&null!==s&&(n.replaceState(r.overwrite?s:i(n.state,s,{arrayMerge:r.arrayMerger||function(r,e){return e},clone:!1})),(r.rehydrated||function(){})(n)),(r.subscriber||a)(n)(function(n,i){(r.filter||o)(n)&&(r.setState||c)(t,(r.reducer||u)(i,r.paths),e)})}}export default a; +//# sourceMappingURL=vuex-persistedstate.modern.js.map diff --git a/node_modules/vuex-persistedstate/dist/vuex-persistedstate.modern.js.map b/node_modules/vuex-persistedstate/dist/vuex-persistedstate.modern.js.map new file mode 100644 index 0000000..eec13f9 --- /dev/null +++ b/node_modules/vuex-persistedstate/dist/vuex-persistedstate.modern.js.map @@ -0,0 +1 @@ +{"version":3,"file":"vuex-persistedstate.modern.js","sources":["../node_modules/deepmerge/dist/cjs.js","../src/index.ts","../node_modules/shvl/dist/shvl.mjs"],"sourcesContent":["'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","import { Store, MutationPayload } from \"vuex\";\nimport merge from \"deepmerge\";\nimport * as shvl from \"shvl\";\n\ninterface Storage {\n getItem: (key: string) => any;\n setItem: (key: string, value: any) => void;\n removeItem: (key: string) => void;\n}\n\ninterface Options {\n key?: string;\n paths?: string[];\n reducer?: (state: State, paths: string[]) => object;\n subscriber?: (\n store: Store\n ) => (handler: (mutation: any, state: State) => void) => void;\n storage?: Storage;\n getState?: (key: string, storage: Storage) => any;\n setState?: (key: string, state: any, storage: Storage) => void;\n filter?: (mutation: MutationPayload) => boolean;\n arrayMerger?: (state: any[], saved: any[]) => any;\n rehydrated?: (store: Store) => void;\n fetchBeforeUse?: boolean;\n overwrite?: boolean;\n assertStorage?: (storage: Storage) => void | Error;\n}\n\nexport default function (\n options?: Options\n): (store: Store) => void {\n options = options || {};\n\n const storage = options.storage || (window && window.localStorage);\n const key = options.key || \"vuex\";\n\n function getState(key, storage) {\n const value = storage.getItem(key);\n\n try {\n return (typeof value === \"string\")\n ? JSON.parse(value) : (typeof value === \"object\")\n ? value : undefined;\n } catch (err) {}\n\n return undefined;\n }\n\n function filter() {\n return true;\n }\n\n function setState(key, state, storage) {\n return storage.setItem(key, JSON.stringify(state));\n }\n\n function reducer(state, paths) {\n return Array.isArray(paths)\n ? paths.reduce(function (substate, path) {\n return shvl.set(substate, path, shvl.get(state, path));\n }, {})\n : state;\n }\n\n function subscriber(store) {\n return function (handler) {\n return store.subscribe(handler);\n };\n }\n\n const assertStorage =\n options.assertStorage ||\n (() => {\n storage.setItem(\"@@\", 1);\n storage.removeItem(\"@@\");\n });\n\n assertStorage(storage);\n\n const fetchSavedState = () => (options.getState || getState)(key, storage);\n\n let savedState;\n\n if (options.fetchBeforeUse) {\n savedState = fetchSavedState();\n }\n\n return function (store: Store) {\n if (!options.fetchBeforeUse) {\n savedState = fetchSavedState();\n }\n\n if (typeof savedState === \"object\" && savedState !== null) {\n store.replaceState(\n options.overwrite\n ? savedState\n : merge(store.state, savedState, {\n arrayMerge:\n options.arrayMerger ||\n function (store, saved) {\n return saved;\n },\n clone: false,\n })\n );\n (options.rehydrated || function () {})(store);\n }\n\n (options.subscriber || subscriber)(store)(function (mutation, state) {\n if ((options.filter || filter)(mutation)) {\n (options.setState || setState)(\n key,\n (options.reducer || reducer)(state, options.paths),\n storage\n );\n }\n });\n };\n}\n","function t(t,r,e){return void 0===(t=(r.split?r.split(\".\"):r).reduce(function(t,r){return t&&t[r]},t))?e:t}function r(t,r,e,n){return!/^(__proto__|constructor|prototype)$/.test(r)&&((r=r.split?r.split(\".\"):r.slice(0)).slice(0,-1).reduce(function(t,r){return t[r]=t[r]||{}},t)[r.pop()]=e),t}export{t as get,r as set};\n//# sourceMappingURL=shvl.mjs.map\n"],"names":["isMergeableObject","value","isNonNullObject","stringValue","Object","prototype","toString","call","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","Symbol","for","cloneUnlessOtherwiseSpecified","options","clone","deepmerge","Array","isArray","defaultArrayMerge","target","source","concat","map","element","getKeys","keys","getOwnPropertySymbols","filter","symbol","propertyIsEnumerable","getEnumerableOwnPropertySymbols","propertyIsOnObject","object","property","_","arrayMerge","sourceIsArray","destination","forEach","key","hasOwnProperty","propertyIsUnsafe","customMerge","getMergeFunction","mergeObject","all","array","Error","reduce","prev","next","storage","window","localStorage","getState","getItem","JSON","parse","undefined","err","setState","state","setItem","stringify","reducer","paths","substate","path","t","r","e","n","test","split","slice","pop","shvl","subscriber","store","handler","subscribe","assertStorage","removeItem","fetchSavedState","savedState","fetchBeforeUse","replaceState","overwrite","merge","arrayMerger","saved","rehydrated","mutation"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/vuex-persistedstate/dist/vuex-persistedstate.umd.js b/node_modules/vuex-persistedstate/dist/vuex-persistedstate.umd.js new file mode 100644 index 0000000..afc5296 --- /dev/null +++ b/node_modules/vuex-persistedstate/dist/vuex-persistedstate.umd.js @@ -0,0 +1,2 @@ +!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?module.exports=r():"function"==typeof define&&define.amd?define(r):(e||self).createPersistedState=r()}(this,function(){var e=function(e){return function(e){return!!e&&"object"==typeof e}(e)&&!function(e){var t=Object.prototype.toString.call(e);return"[object RegExp]"===t||"[object Date]"===t||function(e){return e.$$typeof===r}(e)}(e)},r="function"==typeof Symbol&&Symbol.for?Symbol.for("react.element"):60103;function t(e,r){return!1!==r.clone&&r.isMergeableObject(e)?u(Array.isArray(e)?[]:{},e,r):e}function n(e,r,n){return e.concat(r).map(function(e){return t(e,n)})}function o(e){return Object.keys(e).concat(function(e){return Object.getOwnPropertySymbols?Object.getOwnPropertySymbols(e).filter(function(r){return e.propertyIsEnumerable(r)}):[]}(e))}function c(e,r){try{return r in e}catch(e){return!1}}function u(r,i,a){(a=a||{}).arrayMerge=a.arrayMerge||n,a.isMergeableObject=a.isMergeableObject||e,a.cloneUnlessOtherwiseSpecified=t;var f=Array.isArray(i);return f===Array.isArray(r)?f?a.arrayMerge(r,i,a):function(e,r,n){var i={};return n.isMergeableObject(e)&&o(e).forEach(function(r){i[r]=t(e[r],n)}),o(r).forEach(function(o){(function(e,r){return c(e,r)&&!(Object.hasOwnProperty.call(e,r)&&Object.propertyIsEnumerable.call(e,r))})(e,o)||(i[o]=c(e,o)&&n.isMergeableObject(r[o])?function(e,r){if(!r.customMerge)return u;var t=r.customMerge(e);return"function"==typeof t?t:u}(o,n)(e[o],r[o],n):t(r[o],n))}),i}(r,i,a):t(i,a)}u.all=function(e,r){if(!Array.isArray(e))throw new Error("first argument should be an array");return e.reduce(function(e,t){return u(e,t,r)},{})};var i=u;return function(e){var r=(e=e||{}).storage||window&&window.localStorage,t=e.key||"vuex";function n(e,r){var t=r.getItem(e);try{return"string"==typeof t?JSON.parse(t):"object"==typeof t?t:void 0}catch(e){}}function o(){return!0}function c(e,r,t){return t.setItem(e,JSON.stringify(r))}function u(e,r){return Array.isArray(r)?r.reduce(function(r,t){return function(e,r,t,n){return!/^(__proto__|constructor|prototype)$/.test(r)&&((r=r.split?r.split("."):r.slice(0)).slice(0,-1).reduce(function(e,r){return e[r]=e[r]||{}},e)[r.pop()]=t),e}(r,t,(n=e,void 0===(n=((o=t).split?o.split("."):o).reduce(function(e,r){return e&&e[r]},n))?void 0:n));var n,o},{}):e}function a(e){return function(r){return e.subscribe(r)}}(e.assertStorage||function(){r.setItem("@@",1),r.removeItem("@@")})(r);var f,s=function(){return(e.getState||n)(t,r)};return e.fetchBeforeUse&&(f=s()),function(n){e.fetchBeforeUse||(f=s()),"object"==typeof f&&null!==f&&(n.replaceState(e.overwrite?f:i(n.state,f,{arrayMerge:e.arrayMerger||function(e,r){return r},clone:!1})),(e.rehydrated||function(){})(n)),(e.subscriber||a)(n)(function(n,i){(e.filter||o)(n)&&(e.setState||c)(t,(e.reducer||u)(i,e.paths),r)})}}}); +//# sourceMappingURL=vuex-persistedstate.umd.js.map diff --git a/node_modules/vuex-persistedstate/dist/vuex-persistedstate.umd.js.map b/node_modules/vuex-persistedstate/dist/vuex-persistedstate.umd.js.map new file mode 100644 index 0000000..a1c5b70 --- /dev/null +++ b/node_modules/vuex-persistedstate/dist/vuex-persistedstate.umd.js.map @@ -0,0 +1 @@ +{"version":3,"file":"vuex-persistedstate.umd.js","sources":["../node_modules/deepmerge/dist/cjs.js","../src/index.ts","../node_modules/shvl/dist/shvl.mjs"],"sourcesContent":["'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","import { Store, MutationPayload } from \"vuex\";\nimport merge from \"deepmerge\";\nimport * as shvl from \"shvl\";\n\ninterface Storage {\n getItem: (key: string) => any;\n setItem: (key: string, value: any) => void;\n removeItem: (key: string) => void;\n}\n\ninterface Options {\n key?: string;\n paths?: string[];\n reducer?: (state: State, paths: string[]) => object;\n subscriber?: (\n store: Store\n ) => (handler: (mutation: any, state: State) => void) => void;\n storage?: Storage;\n getState?: (key: string, storage: Storage) => any;\n setState?: (key: string, state: any, storage: Storage) => void;\n filter?: (mutation: MutationPayload) => boolean;\n arrayMerger?: (state: any[], saved: any[]) => any;\n rehydrated?: (store: Store) => void;\n fetchBeforeUse?: boolean;\n overwrite?: boolean;\n assertStorage?: (storage: Storage) => void | Error;\n}\n\nexport default function (\n options?: Options\n): (store: Store) => void {\n options = options || {};\n\n const storage = options.storage || (window && window.localStorage);\n const key = options.key || \"vuex\";\n\n function getState(key, storage) {\n const value = storage.getItem(key);\n\n try {\n return (typeof value === \"string\")\n ? JSON.parse(value) : (typeof value === \"object\")\n ? value : undefined;\n } catch (err) {}\n\n return undefined;\n }\n\n function filter() {\n return true;\n }\n\n function setState(key, state, storage) {\n return storage.setItem(key, JSON.stringify(state));\n }\n\n function reducer(state, paths) {\n return Array.isArray(paths)\n ? paths.reduce(function (substate, path) {\n return shvl.set(substate, path, shvl.get(state, path));\n }, {})\n : state;\n }\n\n function subscriber(store) {\n return function (handler) {\n return store.subscribe(handler);\n };\n }\n\n const assertStorage =\n options.assertStorage ||\n (() => {\n storage.setItem(\"@@\", 1);\n storage.removeItem(\"@@\");\n });\n\n assertStorage(storage);\n\n const fetchSavedState = () => (options.getState || getState)(key, storage);\n\n let savedState;\n\n if (options.fetchBeforeUse) {\n savedState = fetchSavedState();\n }\n\n return function (store: Store) {\n if (!options.fetchBeforeUse) {\n savedState = fetchSavedState();\n }\n\n if (typeof savedState === \"object\" && savedState !== null) {\n store.replaceState(\n options.overwrite\n ? savedState\n : merge(store.state, savedState, {\n arrayMerge:\n options.arrayMerger ||\n function (store, saved) {\n return saved;\n },\n clone: false,\n })\n );\n (options.rehydrated || function () {})(store);\n }\n\n (options.subscriber || subscriber)(store)(function (mutation, state) {\n if ((options.filter || filter)(mutation)) {\n (options.setState || setState)(\n key,\n (options.reducer || reducer)(state, options.paths),\n storage\n );\n }\n });\n };\n}\n","function t(t,r,e){return void 0===(t=(r.split?r.split(\".\"):r).reduce(function(t,r){return t&&t[r]},t))?e:t}function r(t,r,e,n){return!/^(__proto__|constructor|prototype)$/.test(r)&&((r=r.split?r.split(\".\"):r.slice(0)).slice(0,-1).reduce(function(t,r){return t[r]=t[r]||{}},t)[r.pop()]=e),t}export{t as get,r as set};\n//# sourceMappingURL=shvl.mjs.map\n"],"names":["isMergeableObject","value","isNonNullObject","stringValue","Object","prototype","toString","call","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","Symbol","for","cloneUnlessOtherwiseSpecified","options","clone","deepmerge","Array","isArray","defaultArrayMerge","target","source","concat","map","element","getKeys","keys","getOwnPropertySymbols","filter","symbol","propertyIsEnumerable","getEnumerableOwnPropertySymbols","propertyIsOnObject","object","property","_","arrayMerge","sourceIsArray","destination","forEach","key","hasOwnProperty","propertyIsUnsafe","customMerge","getMergeFunction","mergeObject","all","array","Error","reduce","prev","next","storage","window","localStorage","getState","getItem","JSON","parse","undefined","err","setState","state","setItem","stringify","reducer","paths","substate","path","t","r","e","n","test","split","slice","pop","shvl","subscriber","store","handler","subscribe","assertStorage","removeItem","savedState","fetchSavedState","fetchBeforeUse","replaceState","overwrite","merge","arrayMerger","saved","rehydrated","mutation"],"mappings":"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"} \ No newline at end of file diff --git a/node_modules/vuex-persistedstate/package.json b/node_modules/vuex-persistedstate/package.json new file mode 100644 index 0000000..60161be --- /dev/null +++ b/node_modules/vuex-persistedstate/package.json @@ -0,0 +1,111 @@ +{ + "_from": "vuex-persistedstate", + "_id": "vuex-persistedstate@4.1.0", + "_inBundle": false, + "_integrity": "sha512-3SkEj4NqwM69ikJdFVw6gObeB0NHyspRYMYkR/EbhR0hbvAKyR5gksVhtAfY1UYuWUOCCA0QNGwv9pOwdj+XUQ==", + "_location": "/vuex-persistedstate", + "_phantomChildren": {}, + "_requested": { + "type": "tag", + "registry": true, + "raw": "vuex-persistedstate", + "name": "vuex-persistedstate", + "escapedName": "vuex-persistedstate", + "rawSpec": "", + "saveSpec": null, + "fetchSpec": "latest" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/vuex-persistedstate/-/vuex-persistedstate-4.1.0.tgz", + "_shasum": "127165f85f5b4534fb3170a5d3a8be9811bd2a53", + "_spec": "vuex-persistedstate", + "_where": "D:\\work\\云美\\legalAffairs-app", + "author": { + "name": "Robin van der Vleuten", + "email": "robin@webstronauts.co", + "url": "robinvdvleuten.nl" + }, + "babel": { + "presets": [ + "@babel/preset-env" + ] + }, + "bugs": { + "url": "https://github.com/robinvdvleuten/vuex-persistedstate/issues" + }, + "bundleDependencies": false, + "bundlesize": [ + { + "path": "./dist/*.js", + "threshold": "800b" + } + ], + "dependencies": { + "deepmerge": "^4.2.2", + "shvl": "^2.0.3" + }, + "deprecated": "Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.", + "description": "Persist and rehydrate your Vuex state between page reloads.", + "devDependencies": { + "@babel/core": "^7.12.10", + "@babel/preset-env": "^7.12.11", + "all-contributors-cli": "^6.19.0", + "babel-core": "^7.0.0-bridge.0", + "babel-jest": "^27.0.2", + "bundlesize": "^0.18.1", + "dom-storage": "^2.0.2", + "eslint": "^7.17.0", + "husky": "^7.0.0", + "jest": "^27.0.6", + "microbundle": "^0.13.0", + "npm-run-all": "^4.1.2", + "prettier": "^2.2.1", + "pretty-quick": "^3.1.0", + "rimraf": "^3.0.0", + "vue": "^3.0.0", + "vuex": "^4.0.0-rc" + }, + "files": [ + "dist", + "src" + ], + "homepage": "https://github.com/robinvdvleuten/vuex-persistedstate#readme", + "husky": { + "hooks": { + "pre-commit": "npm run build && pretty-quick --staged" + } + }, + "jest": { + "testURL": "http://localhost/" + }, + "keywords": [ + "vue", + "vuex", + "plugin" + ], + "license": "MIT", + "main": "dist/vuex-persistedstate.js", + "module": "dist/vuex-persistedstate.es.js", + "name": "vuex-persistedstate", + "peerDependencies": { + "vuex": "^3.0 || ^4.0.0-rc" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/robinvdvleuten/vuex-persistedstate.git" + }, + "scripts": { + "build": "rimraf dist && microbundle --external all --name createPersistedState", + "prepare": "npm run build", + "test": "npm-run-all test:**", + "test:jest": "jest --env=jsdom", + "test:size": "bundlesize" + }, + "source": "src/index.ts", + "types": "dist/index.d.ts", + "unpkg": "dist/vuex-persistedstate.umd.js", + "version": "4.1.0" +} diff --git a/node_modules/vuex-persistedstate/src/index.ts b/node_modules/vuex-persistedstate/src/index.ts new file mode 100644 index 0000000..1e82f73 --- /dev/null +++ b/node_modules/vuex-persistedstate/src/index.ts @@ -0,0 +1,119 @@ +import { Store, MutationPayload } from "vuex"; +import merge from "deepmerge"; +import * as shvl from "shvl"; + +interface Storage { + getItem: (key: string) => any; + setItem: (key: string, value: any) => void; + removeItem: (key: string) => void; +} + +interface Options { + key?: string; + paths?: string[]; + reducer?: (state: State, paths: string[]) => object; + subscriber?: ( + store: Store + ) => (handler: (mutation: any, state: State) => void) => void; + storage?: Storage; + getState?: (key: string, storage: Storage) => any; + setState?: (key: string, state: any, storage: Storage) => void; + filter?: (mutation: MutationPayload) => boolean; + arrayMerger?: (state: any[], saved: any[]) => any; + rehydrated?: (store: Store) => void; + fetchBeforeUse?: boolean; + overwrite?: boolean; + assertStorage?: (storage: Storage) => void | Error; +} + +export default function ( + options?: Options +): (store: Store) => void { + options = options || {}; + + const storage = options.storage || (window && window.localStorage); + const key = options.key || "vuex"; + + function getState(key, storage) { + const value = storage.getItem(key); + + try { + return (typeof value === "string") + ? JSON.parse(value) : (typeof value === "object") + ? value : undefined; + } catch (err) {} + + return undefined; + } + + function filter() { + return true; + } + + function setState(key, state, storage) { + return storage.setItem(key, JSON.stringify(state)); + } + + function reducer(state, paths) { + return Array.isArray(paths) + ? paths.reduce(function (substate, path) { + return shvl.set(substate, path, shvl.get(state, path)); + }, {}) + : state; + } + + function subscriber(store) { + return function (handler) { + return store.subscribe(handler); + }; + } + + const assertStorage = + options.assertStorage || + (() => { + storage.setItem("@@", 1); + storage.removeItem("@@"); + }); + + assertStorage(storage); + + const fetchSavedState = () => (options.getState || getState)(key, storage); + + let savedState; + + if (options.fetchBeforeUse) { + savedState = fetchSavedState(); + } + + return function (store: Store) { + if (!options.fetchBeforeUse) { + savedState = fetchSavedState(); + } + + if (typeof savedState === "object" && savedState !== null) { + store.replaceState( + options.overwrite + ? savedState + : merge(store.state, savedState, { + arrayMerge: + options.arrayMerger || + function (store, saved) { + return saved; + }, + clone: false, + }) + ); + (options.rehydrated || function () {})(store); + } + + (options.subscriber || subscriber)(store)(function (mutation, state) { + if ((options.filter || filter)(mutation)) { + (options.setState || setState)( + key, + (options.reducer || reducer)(state, options.paths), + storage + ); + } + }); + }; +} diff --git a/node_modules/vuex/CHANGELOG.md b/node_modules/vuex/CHANGELOG.md new file mode 100644 index 0000000..3d910f5 --- /dev/null +++ b/node_modules/vuex/CHANGELOG.md @@ -0,0 +1,617 @@ +# [4.1.0](https://github.com/vuejs/vuex/compare/v4.0.2...v4.1.0) (2022-10-14) + +### Vue Core Version Requirement Change + +**This release contains an important fix (#1883) that relies on the `effectScope` API from Vue core, which is only available in Vue 3.2+.** + +### Bug Fixes + +* **build:** node deprecated warning in export module ([#2048](https://github.com/vuejs/vuex/issues/2048)) ([397e9fb](https://github.com/vuejs/vuex/commit/397e9fba45c8b4ec0c4a33d2578e34829bd348d7)) +* getters being destroyed on component destroy ([#1878](https://github.com/vuejs/vuex/issues/1878)) ([#1883](https://github.com/vuejs/vuex/issues/1883)) ([b2f851f](https://github.com/vuejs/vuex/commit/b2f851f427aa872d1e4f5a4774e07c4c69562789)) + + + +## [4.0.2](https://github.com/vuejs/vuex/compare/v4.0.1...v4.0.2) (2021-06-17) + +### Bug Fixes + +* **devtools:** fix no getters displayed on root module + better getters inspector ([#1986](https://github.com/vuejs/vuex/issues/1986)) ([bc20295](https://github.com/vuejs/vuex/commit/bc20295331eb2bee40d6ae779d1ada31c542604c)) +* **build:** cjs build failing due to `__VUE_PROD_DEVTOOLS__` defined ([#1991](https://github.com/vuejs/vuex/issues/1991)) ([#1992](https://github.com/vuejs/vuex/issues/1992)) ([7151622](https://github.com/vuejs/vuex/commit/7151622d646968686546f1c4c80f7575c9b99176)) + +## [4.0.1](https://github.com/vuejs/vuex/compare/v4.0.0...v4.0.1) (2021-05-24) + +### Features + +* dx: add devtools integration ([#1949](https://github.com/vuejs/vuex/pull/1949)) + +# [4.0.0](https://github.com/vuejs/vuex/compare/v4.0.0-rc.2...v4.0.0) (2021-02-02) + +This is the official Vuex 4 release. + +The focus for Vuex 4 is compatibility. Vuex 4 supports Vue 3, and it provides the exact same API as Vuex 3, so users can reuse their existing Vuex code with Vue 3. + +There are a few breaking changes described in a later section, so please check them out. + +You can find basic usage with both Option and Composition API in the `example` directory. + +It's still released under `next` tag in NPM package as same as Vue 3. We're planning to remove `next` tag once Vue 3 is ready to remove it. + +There have been a lot of contribution to make Vuex 4 stable. Thank you all for your very much appreciated help. It wouldn't have been possible without this wonderful Vue community! + +## Documentation + +To check out docs, visit [next.vuex.vuejs.org](https://next.vuex.vuejs.org/). + +## Breaking changes + +### Installation process has changed + +To align with the new Vue 3 initialization process, the installation process of Vuex has changed. + +To create a new store instance, users are now encouraged to use the newly introduced `createStore` function. + +```js +import { createStore } from 'vuex' + +export const store = createStore({ + state() { + return { + count: 1 + } + } +}) +``` + +> Whilst this is not technically a breaking change, you may still use the `new Store(...)` syntax, we recommend this approach to align with Vue 3 and Vue Router Next. + +To install Vuex to a Vue instance, pass the store instance instead of Vuex. + +```js +import { createApp } from 'vue' +import { store } from './store' +import App from './App.vue' + +const app = createApp(App) + +app.use(store) + +app.mount('#app') +``` + +### Bundles are now aligned with Vue 3 + +The following bundles are generated to align with Vue 3 bundles: + +- `vuex.global(.prod).js` + - For direct use with ` + + \ No newline at end of file diff --git a/pages/home/index.vue b/pages/home/index.vue new file mode 100644 index 0000000..c983906 --- /dev/null +++ b/pages/home/index.vue @@ -0,0 +1,186 @@ + + + + + \ No newline at end of file diff --git a/pages/login/login.vue b/pages/login/login.vue new file mode 100644 index 0000000..c9e3aa5 --- /dev/null +++ b/pages/login/login.vue @@ -0,0 +1,226 @@ + + + + + \ No newline at end of file diff --git a/pages/message/message.vue b/pages/message/message.vue new file mode 100644 index 0000000..4de99d5 --- /dev/null +++ b/pages/message/message.vue @@ -0,0 +1,24 @@ + + + + + diff --git a/pages/my/my.vue b/pages/my/my.vue new file mode 100644 index 0000000..2f2b27f --- /dev/null +++ b/pages/my/my.vue @@ -0,0 +1,61 @@ + + + + + \ No newline at end of file diff --git a/static/communicate/kefu.png b/static/communicate/kefu.png new file mode 100644 index 0000000000000000000000000000000000000000..14f59f5394340c2e6136edb48748b9fde9d9af99 GIT binary patch literal 10453 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 wAG$yg4Fx@G&R45UHY|tyJm3?{2 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 N20EtNnA?ug{{xB%M&keg literal 0 HcmV?d00001 diff --git a/static/communicate/tousu.png b/static/communicate/tousu.png new file mode 100644 index 0000000000000000000000000000000000000000..68f0e35708b9bb295c9406469cd18f8bc9373c37 GIT binary patch literal 7172 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 F{|A3Iovr`? literal 0 HcmV?d00001 diff --git a/static/communicate/zixun.png b/static/communicate/zixun.png new file mode 100644 index 0000000000000000000000000000000000000000..06c0e47bc25b04c957c9de7eb4ca47fcb914618d GIT binary patch literal 10096 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 O0Tg9b!8OumA^!(BU|)Fv literal 0 HcmV?d00001 diff --git a/static/goutong.png b/static/goutong.png new file mode 100644 index 0000000000000000000000000000000000000000..940eb60705c5065b060e8c2969323130baaec2bd GIT binary patch literal 4167 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 literal 0 HcmV?d00001 diff --git a/static/goutong1.png b/static/goutong1.png new file mode 100644 index 0000000000000000000000000000000000000000..6973fe83c8f6fe26d9a87f6c3eda5173a7458d0c GIT binary patch literal 4420 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 KUYX8W(tiNQG5GTU literal 0 HcmV?d00001 diff --git a/static/home.png b/static/home.png new file mode 100644 index 0000000000000000000000000000000000000000..b16f6cd4335da7241f17d984005b0cddaf3bb9c1 GIT binary patch literal 6042 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 literal 0 HcmV?d00001 diff --git a/static/home/jinzhan.png b/static/home/jinzhan.png new file mode 100644 index 0000000000000000000000000000000000000000..d2c595fb1eb40920fcc38adfffa82455ea0b23a3 GIT binary patch literal 4707 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�H{mfLyz6P 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 literal 0 HcmV?d00001 diff --git a/static/home/zhengju.png b/static/home/zhengju.png new file mode 100644 index 0000000000000000000000000000000000000000..182bff5c3b3cc275a1597a9683247c85a8d4c96b GIT binary patch literal 6876 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 RfFBzqTK5s^^=h_J{{`G#0b&3E literal 0 HcmV?d00001 diff --git a/static/kefu.png b/static/kefu.png new file mode 100644 index 0000000000000000000000000000000000000000..1c7782372e5baf68a300a0021ecec8085d9d526b GIT binary patch literal 8138 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 DXmwt! literal 0 HcmV?d00001 diff --git a/static/kefu1.png b/static/kefu1.png new file mode 100644 index 0000000000000000000000000000000000000000..11d92758dbd2923eeb9340f46ae3c3938a1952f4 GIT binary patch literal 8609 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 literal 0 HcmV?d00001 diff --git a/static/my.png b/static/my.png new file mode 100644 index 0000000000000000000000000000000000000000..c7670080077c8d9863a0381fe72a5c44ba357d1b GIT binary patch literal 6903 zcmch6XH*ki)b#*SsX_pyOGxM-NH2mI2uMPch?GzSgb324NN+}kh_om4E>#gCB2DQ^ zXbK{|gVK@SMEW~^-|zSDJ8R9%UF*&|bMCok&e?m!PsWz2o0W zdmg-!&EI8%H!5%JEluFvciv?H;4Vj_kS6{%Yu0ohdG99Oc>R_}P*Qv;RrKZGaxRqZ z70#)Z+C6S+E+pzEwdf3ts2VHrayps;;+aNAEAN$);m3Q)cBD9AHMa9V4 zv9k!gdG$f?>GE5-=@)$Z_O)+oYfI`@hSaBrr}b=d>N3wJ&L(l|Di=OSX*a`vT&AiV zF^5P}uR-5K%1c_{EKkFQh}KswQ|YnPotLB@WqE&HS8>9%gaost!?ND8l&cW1r6VyZ zjlUJ7H76uedWX7P!GS|dceOYjbuvuIvr<8h2ONw(svu(s;X=A-UbpV92ypPfn_>LX zyR+Ei#~-rWyOtVYiJx*Gt8^a!>NE7t`iLEV;|0;EJ6&O=Q~TxR=QNr4;>c=9=jchr zgPtk-qqUl8e&{WzryqU_3d~io0rjHun@tzOr-9}c;@@j>Wey9)BH8{k>z5=Y!T)B+G>9v(AfNvB@yHrJ!s-DY(?qe+k*tKtS!T zs9c#B@1pU65>QIYA)jfnYgYg_Z^+HRKIVrGpYQ-WRJM~0t?tj$IGo5mE7kl7U2R`}PVt@jwo)z$2_G!JgbD#Lv4M=@tU1L)=?C95F@UUvE>l)*8!P%~0MtGxg zi!HP4ju>twFrr#VsT?v&X}Ib&K?k@;W~bDQr989q@0^>Pd&*b6_Tq44WJK!SN+S<2 z*S|b|6raXiB{({ADH+D|vlrgJFIPJBjq2wP%Eu$3THPZrG4K*le*u^pa$f8TelOHH zeY*nUY?qsu&ID*|I3NXP;G+rz7_F-Fu(b8`e#odnYCve@{dEJBgsSWPf?6S3zyTJi z7NeR(bQk^d_BMv^0&s6_b2&wb4oJ*~fj&Zjy4O~#UaQAsRHc03>FqaSg$vZp!?^a< z{w`-BfY1&7<#@BDCirmq^?byHUWGmI(`NYb;?T;TM!^8TcomNP=L;B%5wAFs z&aUFPtM?K~NH5zU-!;#$m@Y5zP#(zqudkd9HL!L)GEr;3q$rWp{%Kb1)+ZwIyMD1t zCeE1-Ol`WZU^h%0ca5&hpY10AFZ$&AR|VS8CmQErAC3L}0C?|5is?Fb zChu9G1B*iLsS={&;`lkW|KsJ<55BWryKY!?Ht4!mwCx~;)@=9G5fK(%$6)1`kNTjL zoq89REd#Wn!$N-LP>tYn+GfLIK$#Y$6bW7G9i%Ut_a1GAghi+E(D_Ot@}5SyyYwB$h!7V8yjf%vEvV)00I+&5>3eBNpc{K(J}Jl%9d zEPL|tr1i?)A&oVo+<-xhFcJGZ(KOXLlkGb!?`7ne9!+{C_BRdi$oR`9YpA3OC7QjT z4lXmINvi(Rb>vJAvoG+glmEI?9|GOVe&+s8Ft5f}W#EURQWnfBVDAIx?%K(%FMay8 z%v9kQh)%<~*1xO`yUYnDC4+8!?E$h>IUcOWGrjv#GEzR?g#${!&lpb~lyRkXes8>q zZrh7;$d;N1Gpb(t*Y!1?9J*_4XuU|mM3r|#LD3~r)g9Vt<#VoW6^XS8cRs4vkPOI;P zsIWn$qrJyw<1`xQqb^CD+UMO5a_nCnt*9BXi{!IsYnR!vz`1nF;4?Y(SPBP3sD4i0 zSNn4dJ~pKsw_qEO{Y?k>BlU-K;CamR*LIuh7k~u57I(`sPhBp|q)c z(0t)S{wWuDyf7Oo+px8v`7K-TXJOTGL$uP0+Q0rSL z?UKhg;uZ1}N$g~iN*=4<1*w7A-429_wywx_7MxzLM)Q(CAL_Rradi~lUr1i13;;441O4h#%LFWp4#IMtYgaowAu<)UJmBIb{_m4ik3-Ys~N!W?v z(uG#ej49WLDmn4NHN|G_`>fRx#xe zXry>yGEK8aoAUk*_}I4(`Rde|;(OH1*)p6bsYD(9)*n6uNl19bY-S`e2!edyXL7;s ze#*vCot!sTHiCh;^mH;>uFK6pgqX=(EB2Y{HCyj|%W46#+dxc+YeQO(^UMiO^7hb) z>V*^!K9p;@7A*hSyZVtKPk0}DpQp8-X@ku@N5ShrvlF3mT}$wJnAQ31yQp0(K-7Qi zrBlaSm{^ZU=jsoQBF=nwa^wy4PfvORLzgqMX!i=l=pYm$hc-W!YRDCvmRz_Vn_yDb z`!|()mX1^;>c~a^*#}c1|CsOF?cD)?LZwti=sCcXE}7q9;iPKFOSEivCSZzz#ds=v zgO#SO?8VZ2(bKz^2^|TkBizrrf{TV!i!Vnkuh?aUWG`ktA);UWloHAND5`~cFMbZG z)}yDdMGt6Xsdz7(zPx;uK4#NZ2eHtTv+)jBh4GCGnW?qK-|vrcck&aX?NjxIN3zb6 za_FQA!$e5ilkL)1!j892zQ$Kqu|u3EBXvzL2IO55VS;bVo^C1RrC~8NH?gAIkuP+y zb==a00=g1?dJ4;+=GP`R@XBGeBCm+^lza6QCVG#3g==M zoI)HE&Xh}2#uN(yo9W6t&~g*HeT+6sVPfX$i2(4CPU%%)iCR(-i5=*mi8f>FjWama zGOo?oWnwb?^ipl6c6}nSLF!gRObU)%ZN?d)NA*+4cYlQQ33d%;A6SK(?Dx!c1UBoR zC56#IyOpx}!eTNkAV9m&$l)RgTIIQ8Mrz}Ve%)0i5NYnrrCV<-$`P0B`!gGJ)iGk7 ze8~&vinkWuDK0KzSqqYiwG0o|GvEKsv0M0ra~buFX6xBmfaO`?+_G#Zw7T)$rO{lr z7)&`a3WKW?mqI9oqNSK8T| zda)TD6{(QNahpnP#^aPhVUoR82F4(MNJs|&EDIi0${ajM!lDCS4!3M^;QtsjQ1pL! z?;z+CZZ7?l7K6>0J%uS>E$*>9o!UQSsaX&&j3Q zb+Ns`ljX!itz58uSJSm@Vu1L>Qs=pU@P%7D;jtuA&^E-!=Ll2i#RGJqmshV_4~Muk z*cg4a$oNnfJox`HPbd@6myEU?a#f5=O;0BsE)`zZi%&kX+(&4V*7{3nQOCv=qiP`| z-bWbsNzfFR9DjV96yQ%tixb@miEKc7RA8~^P2EOtnm#>TLjz|RF?5OeV=Q(UDW(TA z`KodGk8sGHS86@i!S12Y@M=kBXD$mOSz)kjIOx##rGmRva-{%nYT6Cfp*6(ILm&?aEcX_&+I@i|`qO;bjZG zeevPPJ;lQ-%nnW&pU@=}Ppu5ICY(i*dDoy7kQWvPAXG7L_xxaD7|09tI2UfY6Kj|# zdK2)!D%W%w@LfveHD+(f?RBCIoh?-wCG1{BveqvjHTHC|Ix8XaXZfLdAgdXqP#})0 z_w(_yv$Nt+@KLd6?Bz1NGP7hIO3PDNd;-LD4CI3(duLriIQ%Qm(h2rWd+~8pTGK_q zs|ijCV2APx*@uJ(BF!nCmH({BpcIiQa0syOP)2wsxxmYKpyO^pz{N*1e zG1m3Ma7@mP?qcw#(L=cHCl;OIAjdoZL(vTc*RM^zRtqQ>)H$!- zMxbu~TC`7q2B7O$x}lKKo$X_`_1h(bzLs^qYwNMI zs}V$LJYI$VY$7u40c=L6DPd#Yk7wy?^bl-@8=sty;0c-YBYq5QnXd8Sf0?&*>fB#M zE*)O+g0y0oS-^#}P?*pFP=}at@2U@qT_me!{__64kC?&WFMlYloa;QFFQm&e0e-Oz z8Qn#cS9*;$#gyGB0YRi<8O=mbR}%mfXI7PBizn`s4WGqV$t8?i5ITP6$UUgLS~KCL zfuG_43QQ{FHEE57EsRq65i>^FA%8}LlCN3{KlqHfS}5279?@KKc;0isEC4Hrr+n|n zG_amd{jCBv5kR~X<;7r$nY2w~@TZBRL=0Her}r1NjeXeR^eVpMNw4da{wQ_Tk9cOb zf&_ai#IJSfvp-?rVHM4nYwVgGw|p5SCK0f@ulB=_Ifhprk2*$QLeOE!ruSx)zi)lG zbFBikYtczZg*t9rl{99zo_3NKtVuDpXGaE4PhSEI!HBtSU$Jk_K9mDW9|}E92wdrb z&By_p6HW7ev9lc;**0ez_zJq%S=Sh%#08wqL zHZLi3X-e(<(yg55g1TV4v0Wy>d!Cwgd?-|PRT{e=0h9|8PCR%mGe z%~V{R2&e4MeC+J;1E_QZ{Vi~3jO_7Z?ENM6cX|f5{r`+UXtMm1a-W=1RJL5Spvyz( zWA3NS2O_qudlt7L=Hfn0n#*)M_bFcE^M2Ck`-o(BpleWsGs8X$}UI zq0oEjhk(56XO#U8E&h`$!tmDt|Vga>dzMDpb!WgKYhrr z?0|P}s3x6hQ|?4ou}|D)MaeQp*!lAStNmhQ!24^AEz)4^xRIJmb|XQbl$V!VTMdVB z0J@WjhVyjz(5FK<-=kboE&^nL;}VQoS-JKr-M}L%s6qt&FOq?d*xhsC6;wA#etv>p zl1?MKvL+BNetwPHQ|dm?#G6C9>TkQ83|<_!*yDwQVwVXjaS}E4^L4TvqVoq!0gfCP zJL`iJ4#-`p0zVtGcXI0@*t{3Nt2=xqoHOR0xB1QZ4A!_2mYJrJ*~Wqj4q<`3 z>|erV*$ezUYJ7(Jc2t5wQj8$T&HqrXS0r|`VA+ce=bMx@xn1dS?L2QC!s{>ZA=I|AlN2? zUiY%zj}L4(^pHEu|N6pw?d`2tC}rz_l=x(|IxJM3W}q{VXFhHAYMY{Y$93!;?46-afDY4hMSD{m)S&l(K)Kmv*owh7S;g zPNr-2yyc7l8*vp7zu-fOK?x##KIz?~?fbmGB?KoS`b{xW;Ot9aQ(CM`BbMl{pF5m{ zxkpR#+V_9+Shssg5^fz(0*SG-FrC|WUR3r@ORF3Tor<3`j0ZE-toGeeKYK*|OJZZ< zzZb=ZV==xgqiE8c1H4uhU7WGu{ZAiRMA-K+WLv&i>TqW)ck9*!x%58V%cu_&Z34-A zbOE?*2_(KJyP@^s_0`Rag2a>-pHmH^_ioe6P+czmN^a;rJ>jR)a?rZIoY_B#OBNog z?v5di!f6TjuV+*bO3{GH6ZSGK4*gzXSZ~LQj)c#Egin+qzP(S?uQV3h!vpc0q>tZ9 zg>Wl~?GGAC1YL!ZYm7n+fthOZA&0x8HPfMWiNJe%=m_nTfSm=m27EX73-RcXy!qPo z^?;~zlA$Iw z=q*4LRMDaE3tHJ^6;_@4C^e5(&);m`sh5Mw{9%nsWB!T|3y^{sW6*XP-&kqA!iNF_ zRIFUdtLLAX3dt0g@`$`%G!7EvAP7#H%Xpg;gx*4_OP^$MAeE{57+&alRpZKO3p7Djx#4X^q42!yvc+sa(IN3d z60Mg!v=FmTqE|0*P@{H45VtN?o&Ur4jiVa0)ZiC{2a_l@wGz}AJ7*_+-3tM#V%oqX86Y#!8DIUMHjIyYSXb2& zei)*<_r1~!(Q)YPpS>@IN_5dG_EpWVShjF`*^GypGlh}egFg+a8U()Ty0%~#&-6gp z?juOS+Pf;MnDpXq7GeXG%QnZlpNyLk5~u1ehkpV8w_uf1M(Ot1Ky((G=hiOH3nI7Y q-f3BnH2wiekul%W|Eq`ohWTR!Z)-26O@M#00JOFt>Yb)7;eP;>)#n)i literal 0 HcmV?d00001 diff --git a/static/my/my_bc.png b/static/my/my_bc.png new file mode 100644 index 0000000000000000000000000000000000000000..ad9bf280f32b699204be4212dbaf4c9a3b2254cd GIT binary patch literal 13593 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 literal 0 HcmV?d00001 diff --git a/static/myselect.png b/static/myselect.png new file mode 100644 index 0000000000000000000000000000000000000000..0b9bbfabb1da98abf30060713c4d749a6abf6395 GIT binary patch literal 7458 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 literal 0 HcmV?d00001 diff --git a/static/zhongcai.png b/static/zhongcai.png new file mode 100644 index 0000000000000000000000000000000000000000..1dee5bdae1739e2b1b3ad6a07614e5d0494f3323 GIT binary patch literal 359959 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
)ZGV1lBsoza>2z0@x$*r~YP1B= zT(s=J42!I*v6dlu291&zxH9MdD*cSJSMyE}j}2Csb=X1^P=)2$!}RQ757{JLP56Qq zV#?}WMs1%dsNPi^=xGd$y^JC680f!>AB^?p`o;en6de=XpBBio4s8YXFPs8q}Pi5S2i z)Vk2jfz|F~OKT#c^ISY#jIJ_)=)ahRXEBFMdkt2_0bYp_I~1ZGOlBn@_^1%7}r!?}FNXJ8ymW-#7G7q&so zL_KI~(lIU2yi)M>Gx=>ZC@t`Xu>6Y*w-ws~t8FQM$Imq7{RzZ~5r=G!p0CM+Xmu{; z)!|WH;H!b+>0F=hQC|#4+7=E44!52=d({SZeg>AA%NJwdGf2Dl4{xYjUxqUrIVVg~ zv9WkYKOH|Hs-qtTa989&3t>QQkp3Wzi^pR9gx2^j3qCDKCIyBppn&}s_ysk4KfegK zrDJtP*gGw;G`6}eu|G3=n@L`Bu=IC_rk%?Iu@#plQHn+KHX@zNmB|G`z7VF0m;@z1 zIE2y`nJDWZQ^?MUbuI_E_QaEnGem-J8UGq(>?kU*6kw-xq-lyT#=Tb|aNqT>H$oC; z>UT`_H9E+(FW$hLF7mE9!8l{)hhj4OvHrG;YDE+l_gPG|c`5ARUiks!jp6w@4YZNU zz%RAjVG?X*M|OX@u~znM9IJ{e-hW zCJjsNLC)_X5QLVYop|Am)2s~rsn5}rJCKA^LjGnXPWzoOFO_yjyw|{{H$V zN7jpKXmUX;UQ=2tQg)YtdB^2NdkI+K-V)x4;XS?(#P6F*%PO7Tk7RbX?)vM8x}_!H z^Aq>n%;f_lCG?Cy7oNJ*Nb|r)Y$|oDIDe7!gYP9-xiM1f#v}u5lzSx%!79I?b?D2w zD-V(2Zeq6X$~#kVcb>5g+>vwCw+_YH>S{Rz8P#jXA&%l|g42n~bN)*#yC)@g%elNg z4@3%YA97%$CPfP?N!jgEnuZoG*^5)6%7RbW_j2J=MYtEDP)#!Ho)`og@po^_5xYuk z2**gH;qD;4KzEwk=zVejl@cv@RrJp)?rE-213n}^(1HgVn+htwlH@A5uKyb99L^o? zcF;C>au)=8eloZ$IM_E(7V*X~wWmhe!)i$kF9R38&49zY@-7$COqw>o*f$M++Wkkv zeXphAuPO>f^Noodr}v7_0qKla_A;pAU*;)5BS3=;(EZ0fd8Lm{pbe#ZSy9uj{lC;~ z%Y^0>h&|`yi)d{k#l8&0c{Z5k-puZBaE%Vm#g>H58Ka=$VoIKy>xyy+?|zwJEFPhH>w1{q=Hgb2E1-zy?q!S+$2tr0ORe@&~cSk59OYLm_0I6; zKsb;xkUYv|2AO4#L_&1ZsZ;_``Q~;*)YA>ArWfZ}iuuUCNhJ&>VH4crLFTm}r|f0V zV#0BDSW@zjTh>emqJQuE5Om=U?rt0r_ai=?EBS3LhF{RGfMPEfnHd|fxTiPlt^qYd z!R41FlQeBJh!rP4ue1z%OcJw*ivGvW_4aS2?rs)+*A?;ywymmZm-n|!_38=bwn><$SoO1J3Q*Uqvz~*Q zP3gtpG<{4&{iNrG@ANrVJHST4b5n+?>cn&zQXpCcZc7N%(744_*d@@_DejuFiQOsM zYnR;5qVGvLcFkidt-bjUNbZio#k`{ud$qlxfZj3PN-(6riOk@L0SM<_A2sK}5#!I| z5B>jo``P0Z%4pj2_!K}&Qj#9Ko9NUy!(}Pw6@28aCfUb z2De~?S_&`U0_vTM9d2aepn049#G8z(9fzL{gpGGvmf5HFWwOT0O5&oPY3lm=sx@Xh zQ1P!t=I0NN9mWJcMIZEgim{6edwj6L(Qp*^cDQ;Mj%XI^b9S!BvJ{p(atB#+=Vgt8 zESz!t5jM)OEGbcO=!=mt#*IN*zg+U%YZ+UpY$xx!qd;pSur!x3dqa?;66qO>yOvr0V>FJLIM1;D2hw^K6 zKZ*AEG5eWxf|KV>9Eq=eY|R$t4rzfWL7yrW@%mue^~y~(Wt=>T*K_W8REy#kN_^M& zt3&;RJ?fvdHL~Ik^#|#z%2=+AbR=o!)m_((PHL_$PzA?T&t)&Yju|FW-q>msy-7nk ze+O$Qt8um}Sf%;$Igg>>zV+Jlw?*8<&`--w=gw(v$6;lD5)HCOYD>jDr}q`_xhaeHjkf|6!;a1+_Y2&P z;N39hy9YHG_fGg@Ph?_5Y$EIu1{l-AC+YX^IbxQ3`v=(2e66X7h_43C`)4jj7-LrD z4`PbAq_s&!Kt@~&$B}-v?R@-nD!t}KXjD^_D|Kv~)s%{8d|^^r__Flr5@aGT7@GJd(4g&Bogz5+bScU*a9?uzJ(Gq_W+eQJStxVp(0I zE3QjSdiQdFET^)}%Mna?cZb6 zpq8(r;l>5G4PjGY53Q{nu`tVn77z14ZG4sv_?-gyu#0*R#Nc5fg*wo$*L*`Jv>D)& zV%&qM`TMa^;*9KA0-%Ky&MSOKfJaDbGEF*i|-rS5N)zg zV0KBvVVNu8Gu*;?)1t|0m~Jta5WMsK_uJV~8RXIo-BGh9XDog&79HmF z5>nB4avjfUh;-5_3<61BNpg(shD_`#x@p$<(au?eC(&k$PJfIuM1gr3U9brs**k$?B zcN(yt2@u3up(;fXCe{$Sg+A19skJ+V)H-uI{t-@2o=DYVi41E2dXQ)+M@ zyruZBeR_20r=yyGYg217L!)B8-)JuCvZ58-;*#Cm#4Gy6x|5(<+OplV)g(=WL&jyp z*=~Pak}*W4I*0l~5ivPtHEsAwOMm(E)@F;}8}3$xPD$bQtKq(kOtB2HK@g*~lBe4I z#6q^2rFta79TT?%*4J|&-vczxUqARUn|Z3{U7zJ-fgaG!*lMinHSHm+okDq>UK`N( z0i2;67vM;Qx&M=MFAgq#n!A)j9eeYlj5;>(3FtqmQ^(vLf*1rR(Y;!OCp^yB*xueP zae`fxPWfYEgXhZuv4l#=W|uQ+YjkQFhKEQE1CQKUnPPEV<>@_&)o&#<6+_2Uom85A zN8T4Rb@cl_j#xww8COp<{TI~y<*WDa(Kq9DL&t|Q+T2!u){mX5OUbQG{(HCQPO^u* zr+Nw;$-@f9Sn6EGm= zDqYv1xVU$v zh|bU4XD|MQ=JGqk^$ac9kh)NP4@jIdCrC6AvW)iFN+U^FcP{k3_CQUw^>&XYy=%X0 zLhc|xFCBGrselZnt}W}8l~#D%TKa71mzI&6axQ)S)b99Eb z@g)P}MDc@z_P6LHev~O6+ZvW2F<=NZ1PSFCaAZ1ul&M}D5Ed$n0mCAo^lbhKB}zmC z_nC$5(O}TP&7*+OAiMB0<9?Q6V?%D>#3FvaNBf}mp1}54244xy*4rnmdn-s#3g>u0 zJWVeo`G&pE#W!MG50ZL9AYjVCewt0>hYvQ!f(|fF>W>p|W;%VICfr&b^^NjOEmV6K zFc~w>y1*^-s9jRYwvIC-J`vB!i*|DDf86Q}F)R6?%8tKUAmocA7A zcE3e*pYELx!66Q`H!XMC?*DgaU$OE1Vo&1>o^NbFd|B>1dR#yC{7-|)*ID&fH2e~G z7!d+N+hZUIL`1||KPqBxMb@dAD{OED&y^a{B0*=%Ks9Zf%u5l8jDk(D ztk2tFP*4BB)WC0U&IK*at6p8}rvQC93Iqe1OPnbwreD0tc_hM9_t&Agkmb{706nEg zNHLROJ3?*bm-EFArljoEWrIwuFty@|VoX4z!;>4X2v7wB`$*tC&zfm)~)1 zi)-+#xmg!H-emXk<=HpPJsvS1T2UtTR&R$TF0M;C_nW(FG;}F8EmO-#P4+u@!4*nk z=1B1_@+IesiE}L{AV4OedbsK|rS(pfNv6F4DP(<~4v%ih*#VuYccq+}EL(c30Jhd( zGy?JvVE*G@!xj4sa3OF`h~=anWkx|3`d_Lice^xFj2yiy^`3aosQSfA+rjYq@xAJ$ zNFC+?1vMSC78i_~jyIq{%Hqy)K0&AgbFCM96?lVrhdtgKerqS0>p$U4el(jiIdG${ z%&mui@4lU_OHg{KEX{*(tZhb4QC`0AQFr>s)`QZN&_@ik-&4X6h6Xe!6a*5ncfNl}Fz_Bt zb~JTXhvu(M<6hX1MBenh%)=9-J8W;lIliS&z|NImV31?+dV?1|3j z+t=@1*p+oFTgJ8FI=f7kDS zF8=W8!_iBcHf0U6N&DU?mG(=L7?tD8Zc-0m&>ipo{q<>xt%DF2w z@Xr_jG%WSrBVCK9);9|l{;s_nrsii3ia$~W2A8-zv-5iu_q9Dsa_H0F@J0i^k#^Y> z(6AKz|4^Adyvi${J$q>A?NvH&`1rmPz~GIc(cuN4Cw~Bl7dfZQw|*3FR2D=vuWf{- zGjOE2W;yiq7htb{u2G)l%H4c1FK7*$Gz9eKiCEhM4}`ifc)J1~1%ce#e5+4|_R{I; zS-LZ`$tLZK?M|Cn>-rDl7HWG{^zVfc;yP1;!l!OOkB*zxk{JGYFuLW;z8=~ecU_lS zue5_INTiBMwq0~f=u=$v+xC>;HLYgv*}P)g@y2ucg1FbA!Q<`Sr=|pN9{GRDJfx*v z^xMi&)%XWtDm_>I%%I)ax9R;?Mkpmgdc)L~kz(0~9K!~vPNw`l`fl;eC!fdsAdjGc zw&X!xY2($k#`6`|ff1}0_>?{PY@RG9<01r_Jmi6ddu)h!tE2!BjAomR9Us_eNdIC# zwebBN-h)iaAOG&HCcF2J{Y_6F^j>=olH%6&?37w2LSy%X1U{kq-s`sepCb>`~s z&0pr$Z_#8xQdQak^}G8fF8KPCYUTA8gsRB4fHZ*V6e#>vN)Gq-6L8_1=X3(m9yO+| zmF?!q2)?$|(%wIR@EJ)!3P-NTP8F<}--nG7BYZdDx}c#ts7Lk_=u_Sye@^n%=H z|5S$wec9yaF)^hjX^OF9T{t8x6 zVc8m4eVVa51zx6w$i2JAxsiY8Y4MU-<`eNIrGSY<8eBK$5`!yNzNR2mXQ(KpW>%wW zme6%7Iy6!+`MvuXS?gF<@u{x*S;Yy{{j&-C&bDV6eQ^>^{?xU-b^#NXJp;du8QdnGdo0pAEspb|UpzhKc=Xva!11WzrTw)0| z_|8V|MS7N3JC-=A`oIcvp{uKZU|`ne70)y}CBw~xDmZD9sgJ=J97n=;`NuAEem_0d zuc1RydpJ41!yosZ>L2A?s8(o?NJF44G0LARvcG0f?*)we*9FP^=XpU3apBIs4?}`1-*;=D*+k(Eqdi zD}P(tWTSb3NUJSF3M+`npeTc2Yo%Q?qw@w4|9?)fF1pjsI;na?GXeq@B<+CEqdrSAtdBZMB>FxD$>lOH(`hz&F`^U+ zD_M{nyHq3<)_nwNzq&i~WvF3Qn+~tmvLx(%zLEweojYzdV@+HlJOgt;gG4ms(6O_V ziq~DRXcUeDn1pRQo48J{)j76P_vGM#Q!B~USGAnt+|MDY@Y8`bCWpl31S`nj5LL0KecQZRbzNn|!$e;-W z0wF9{7m*9hh5=JI|7Iq*d_Teg#922K+BzxCkKgyzqI>~Hi8#7W#FF{(-F0XGg8mIQ z7Hvd#q72Bq9n%?X`LhZ8J_%peuesxJ$w}WY#!0W8%3P!cK;RAzMrJG*-0)XQwheyn z#kW1xVK6OeKgtz?*oyd&KZT22ei!|Lh@Rmty~^Kcfv6(hRs}niJ{0=J%?CrQ(9V$<0&4 znIpG&q&>%hnL!_Zj1Vk)@z2FmML&PM1#*6HHWH{EGChcUhlU)9ADPv9s)e<{cuZ75 zod*SrskEWQPsX;711F$^IUZB<8#GVrpJyjHJ_} zd7z*c_Gg(v?$it2NaxeBW#N}@t5x*jPMj!hc&EsjLF{Quq-^dbB-|J2I0dMuX4c^*&mRqwaZ1Hec0pj$~PSzr5E&PY+*^&bi($TwKbVXIi^=M&vB|A zBkJpp66P6a@!Gnp>cxuK_{=@0uorUU+VO+Dy+gS_+E2fC8l+KQuqs5`FEbzalWv>Y znAEz?>^ zB4992wY4lv#hd?4Tqe$!F%nE`S(7Uq_@6__Rs`QrRA_mH>#yA5Qy~}kvZdKux(hbbAn_~YFnHe zJ4cdMox{=7td(d@el=u%_C*>vB$|aH;|RN10GAM@#5RJl##B*L!|4%An%h*WXz_@gonTOV23&`>;*5f=(_)WNL~MC zxpGlk5VfGz{P(u8mwI!v#PI!?(sNtR?92kd+ns?g&%ME9p`0sM|3e-y*_(Z}nEcM|qTL{`pSNeO9z$-MX1NO?fUT((z}sGhWJT<#xN+aU(+tj*kkEOSu$ zGe6v3_Yz%xvfljgQ5B1ffo{DPKNPu)oLGAb%|MS-YGUyKb20jYk6eof6(_~`uw_dw zOba4vyG8l$pTYPqFKaZLoL;t<#?7y(x_ z2Ny88`QJK7NzpvXl}HfnP}ixzn|Luk05LWhj4B1u|Gn;@;!_-LXfyStFO6)lW|)5+t)(9#U^OjF3`XnM06mb&oDw{qXn z1ObZxQLdR^Nr6GvfzC8)$5VYO9vMIgn@*un?9qvy5PovaEeJjgf$sFvH^Fj|? zYqU%G_Mxa}Fi{hZewY|3<3fs_F3xna^CI8-6LzxzoAS%fJp8+)$-7eCr>>)8nsCQ1 ze@322Pz`bGn+L&v7fr{e`|MbP;7(8ZDpKMrS15GxsWHScR@NT?I>;ywfFw}G(Cc5l zzsv#S0A%WC|7`A)qKmD$AQ00v))-__Q-j=cGk z6t8d8so5~riVw);&KIc_js4%szgy%lijC_(LVA#xJk3Aos&lM&{BsSPXyjwddRdE@ z;VPQp2(hi9El^CF6#7EuhhBVrrYeKw}Mhd2d_jJ)M|^1V6quG)6lhlOGo) z%&O)M^^JX11;|SB`$L>gQO`OAnwlQr{2uA{KbYMDYx1*LEPtCisgTj6vCCY&s0fnX z<=}7!C)fXLK&Pu2Pj?@Fwr~Fg{V)$kTWa2fGuQ3^surNzs`Mq$q?O*Bm~UyVSQopC zU!R!d-&rwlM2!x1l4;k8ywOaw!tJV}BT8Yg^oB*_eN#?&DI zz8RdQ$?nORhUDel?t@1l5MU&7nt$g+7rp$nkfG=ac{SM^V5Q{?iP3auq6qEJUiS2)?w#Y!PPGiSeVZ(thyTJ@`dXw)*~ z?pNTX6GKIbf$|4^GS48!KW2u^pZ)|IKTZTTDfK{;1t; z?ZRjK`2P^&JHz1DhPuSFrydUH{0Rfxz4ICNEEQKG)QE)FqtWj|y>hRe2&_n`$V7iC zs7t?{QB&wp8_K!(seo;ry-R=9jzp?%;!=vQ6oLY|tzSlgFYY}O79O^=PEe=hXlmUU zfD;3o%>xAAMS$4>kNdwwSs`6sP&OjJH&6>J3&fQ9*mXtbw?tt%03FXx zhy6%gG_ld-9qu(i8a=P@TL1IHAwE?|fJpdo`^*JC*&=N8Q8&DRz>q=2rW@5yje3ES z-9Y&4g!Xi*N*CF+n`RI$;k;qcq5iYJ*`#6dkV|=6hqroj+F?{w-Mn(rw6=Kmn7BTa zgC#G7abjVhO4a|2;h$i_!WPuM+rsUFVdHGVbZh(KA9w3{^6X-k%863zS%2GHU|SQ< z?AgA}_N>YUW9z}^*~R|ZlN-w0g`0~rJZF+WU!FvJuKe+}bJ@6#D+>UDlM}y$c$ysQ zmw*@#@47^%XFo){u=8eJfmxiogzJQfWAghNfy693yP5?4BaI;MU0&wA3TZV)0z+nc zNd!MXtYdq--!1`!SY$lnfv0z;)_B^naV~@ezpD3yDovg=6%irA zP_iVHw}D8!gRe~{4`vJurt9!B>MV8T9Cp3&-3cf}=EFuJ7voZirsE~)W3mmCb|XJ$ zilsiGbFlpF2iLC`gucp`Y`R5!4Rr_2(*&?T3<11Lif!N*iBmntK`s2u_ zNhR^VOFd0%T$T9!!eK7$@PRX@qM{=XM#+95mCtVn=HR{&uA_LVZ^mFK{5v@cso-E% z#GdJ2g@Hg8X8ygfTl#!kTNlRrA6YL4BpDgtrOVzN0Np>~)w#-Iq=Q6H{}tljuphAh zbHuq%OnD@8_xZ#SgM^b<^_W|B$9LU_QEzzObY1S=Z(p)DIY05Vn|~(?P2*~#N_*36 z$@iZYN7Z3zA0WU@6Mld7RM$=5Y-H;_c+(>xgLIVuF6(Q#miiLrY_sKF02fji%E=gP zuT4UFxdvoS4SgFb!Hk$&l-rG%7#G?>F#k`E6iEYfHQY}u-uU(JbMFO10Dt}ugi&|l zGyvKBw{RA^b5o*b91e!C={jUVS;`etsW%tD!&ZMRKjN-C=%ios;zBvhl+k~%YztsE zw@(93oa3(D%@3KPTwUfjNl9y1Vdpoi=XscXX~_qK;DhQeogFK1em+!LUiP3P)VVcwXIL;-AD*TX4*;}l9>x7AbY!N;?xue z89{F%kQ7y~tAyk_yiVUkZF}lB)~~uMg5m{8E6i|#vaL2K0JVYOTKyyj2WDQe0ybKC zBEIwLlF9o#lI{P#trtA|m7(f=A@ZlWNPkixt}~O{Aw|Xz$)TkriOa%Ueb4VNMV;y; zF`3>V(8Hx7nb^*K3G}f0$BK#cxFj-tXssr#*1{?yQpdWQXl5n%eQVC8zBaoF3YNgn zcMxnwhDNGp&cnuO zd^Ng_?~H5xU!r2pmtKQw{JUKQ_EHLQrRx-f&8(M;1}rfud32U0jGYG# zi%%}NCf?Ean$?iV(!E5UHt3G&3oAX70f@sSn!3-Ul)bl5fkomz2=~!vHYWYL{#PKW zH8Vl_57GK>aROjaT-=tH4)#mPqI_9k%aF}eZI1qV6bfVMr@<;G)Xo#ZK+YKiz|tOW zQiFnp70zR7OQ@ySg_=>sa+GGH4H|z_Tl1#_@Wb1kHakISe%B<3ntzPSUwE)F8RAQo|i@I^>p!6fMdRN%Y4RgMx8Nt+Uq5w z`nOW$6PZ9ZC?E2Jw50s-fm}XSIH@k(APW{gY2C4`^`0_ zZOwUCFYw|hDvb{vmRWC|Gpd}9&fdfA?B||>HjkG~-))Y)AXooEJa(yCDK!J$O$6^` z!aDf3=b*b?a0opJc!B}f?9te-)6Vo-aiUPwZ8tbp`z^7{0Bv_1+*1;Bq@fPGgcJz= z!Nq|@tc{3^7;WEzcJR_%zlnI9v?-Z>nT?aPMd!B`jY6OVZd`-!R5M4-!xi4H5yM1E*iXOe0B-U18L z_k+Buz^lQdg6|HyKFE1~yYJC=!*_n+?`Bs=tb5noG<*!Bzf=AZZ!pr?EA5Pq0HhG(ww!G-bd3O#`#Lxh$uUhaP9-D7Tdu2^vcA zdHNte{Co06s?`12aBW@G_9LG^F2$1c zW$;RKJ-DK^qp2xt-v993zki$zkITN@GqiS?sM`H0<(0^uv8S^kB_%0cMXnuqrJ$&& zqb?z7_a#a}l7FpLXrqk%CfC==$l}jTa@QRqqRtohx6fZVMB2CzEiW z)zqm#;Mjb{*oC0qt$p=Ew@U$?D3s4%U|B5f=SFL7Bb#v*#E9u#=YsQ?J`+;mIsE3& zF$1CO{-4rJtCIkc+6Cu-nnrM;(~=Q_+lP~Z42)0BND5wF?X*%b@S4PoO57)++HZ=y zt`b*)n{wMv2iZwcc(lnDQi^)b{oR!Zi%TQ}x)a zjS_orRoHo4A5G5urWhisEn8k_si9@w@MzTpKP*RBYqkw!K=Fb+ols;kH-wXwc$r1i z@U&EX{Uz&)-h+bBAfD!^;-R0i;k8pwkad_8+P;^X8`OpNqZ?Ke2wHrTMtxaK64%EU z=8TWdUeB>I;a=(2FBI5)fO2)9oFW8*L$TxktIZIUTdPp|rQ!_Q2=If6D##QcQ`_GpA=MY1>1>L`LePT`BQ} zr?(WN+%FDPgZ2eOdp@ch81D^ct3TG^?&iA`X3(dg7dsGI8=Jq>OEHRYXwYHSgAbY8 z&8#^%w!|VJe31@aN%tPb^nx-n#+%&}zq#^(Yn2qy5)F(=7T3tGmw`nG144o}ErwS3 z@7r`aoThZ>YnnBD2@UOI>P=Qo&C_+STW!vvl&Bjh_?^eMwymyGQ$gfl|LY*~8(yXU z$Cm_wQ+=eJTHFkq20-&hp@{2JkeVFxaRsSR{@uKZff}b}FVMHGMOHsGe z%}g;Rd^vO&qMATe@OGOAm^#GzbZ1_4O^Nxd?3ne<_I(vbxT(_8Svh(zrxcLh(=9WP z7#k#(J;xZo-l5PL?bto~LhsBa{(he+4fRKHxJh;(>HBkOlkt3PN~$X4X81kx^m{xS z-obBv4(OoY#1`cJRO&N(9hj4#F8U*D@}G+7G34k@$vg5rKJnL`UyD6 z5Dio}Y(V@$h#NN@>}6zy9BE*%;O#qzXAK0fv@w~o(9uh!9PU%t!O zwv^LScZwd|Gp{nAbEd*C@b6!VuQ>nk5ji!jY#w&|LghY6$W6gpoL$`-dcU%vEXAJx z$S4X5n3v`ArNO?!aM#&ek0zKKf3c+{T30RqE|A<6PF$|N_kLpP<-e^$mTO|x5j&m% zvrra#)A!2sO!(yRJ%LDeX^`Aq z=kGSnhZa~VhAIRa4>(M`zgb-6j?lAugU(8L>=mn}jf$L!x4+w#RVS?Bh3239rb7}? z3)eo%3fy&1BA_m9cVmvt*tL-?=8I1%X|PuSkeRi$Pn6I7y?MhFIQfH{$?a)`*Stck z@n6%$&VA<>G&P!isY>%SiGzqI23(Ze{|v_E<5SP6_u{xmEE7EInR<`y6LomH+K;TI z-@kNDXwR9uyY?j3e1&6jWi`6;qpvfZ00B%&OyT?wmu48*%Q29;4jggqCZl`}gps50t;) z?~ygVOV-4uXmqZ|p@#xlse21c;v%39LLe-=LZ8Ju{&w~5_T0<%v|4PJKdT*|{rjxK z-!5=B{W1uw8J_Y0be$*0j}57gfQw(n$2`7JLX)|xk{_$Mc|Wd?{%5GEY4#xL+LOQ% zmB@$^;M|H!V$iY$Elp^Kq}dYdljdl;49G~d-BHFOK?OXJ=u(RUCmig5*s?GS^Fj7_( z1CHm6eT=2*=0Dha60KgByPYs>oG;04^gQ8GA)LL zljA;ouzy={}>Kfgy5623(_msYM+m-Fy~9OC1DIA zOhTTzN^%sX&+?AMF3AYS>@e`WnExcXlREH8G<>p2FsbrXpDGdsQB=@X+rXAOkr%p+#gfFV z|7R6>x|lk)Z8sV7^IYEY#rpculx%2x?!|_|>3VMU!u-=$(K-HFg-iG}8;JM>20~aM z651A-m%~_XhBf;(&yTN%oFzWp{u`b1*)-(zsbz5g$*@dgu3ge=hWgIeb{G)9tU{cY zK75-#O^gUzM}RJW_z1_SRL7+A|0+w@SEq7^<1Gm@r`d$DKRkl6`Z}r}h)gJ?LZ8n( zPras_CnY;_E5avYOU?#UYosm`{((Nq4l%zKsg80uzDOlfQNdbC{EBi^yytmAJo7Py z=~}G1K9&j#M@popX`RNy5t*qW(l6rk3*FIt-j%QGD#o4;jVVQzrCwS}sl^P6%-f4d zV6_JjB5nQYT|PK0&CT3FQ7COG@HN&pf@=*f$)_&1;;nQq)$aD=b1cHfEZMh5BP4Qu zxciUyZfCfk(arwbS3CM`liTUe9dao&=+szoi__zxuKj`mej#8LUTwCVn;Vp}I=XxG zZ;+=m^kT;#=(k2_w;*hg=jim%vp+bu14T@}!a5W8{hZI^+jRqVjwGUKIX;)k1fk_` zuIWfG8_z0)^`KGL86XRCoxMk*MFw7KqaA#VS`$1ZF@#*3C`F33GF$|P!pDX$5Gdo3 zE!mb!wS@vpyMb`Bq=Ww)WdH$k)Gea0I7Ff8&Ff*y-o$s^#ZqRq?*-y0_1bT$^V*fp zUfSkZXA4h4(!LkODVB=Ny)-E@t~jD@dPRSaDe_V4Y!rd6u!i)=X@0+B$kJqxE>AtW zw!U`9y>N*9?n}bIt3FycA4oYCm1^-xdgW#o^#qL7?c4OD3(JZ!?J(3C-5<<08g=B! ztL`4atdfcK$=foW9fa3C42FVkElKZX*$wDH_ZeGP`70Hs+=GdhBb>CL(2~p%lh~e} z0O{0kZ^ObzG;N*WDT8;8>23(we>t_hv20AdABNDd#iMnbsT}+~M5{BvlS5*+LqaQ2 zL{Nt)f4^2ASmHm9H-d!EEy$3BVj#>_My*%kMcLe(dY?TN6bJ~oD|Po(+OKP%lm0x z#G!CtlaB7dwx5?*>Y)7R)hy+N#Zirl)i)~Pi-Cy?6F)!8NqW;nKfO73_x50P(V_jt z(dC00(5Ji2tbv7DPdqrJAdoYM#|Vw-m>3%SPih>zAYQyBSj+2!z*}z(t>^yMO^&33 zGP?DYl&N6*2;_>egou`(!UA3{>4mdLX&wPd_ z+>>eT1|a6n56%^RWA(?*;}4(MivF4E9g=@<6Y1cw!c=t23j3+IsylB~c5d#s^SjLn z#|hs(@b!eR9o;IKKHWz(UeW*%-=*0n16W{GOvb`STp8I5_>@VBDxylstY0~ejEFVN zrbVGs6v`8$@t3yZl}Eumr+TMbPj4;wUhML72c0@9?k)9mz>j}O4Ptb1dR450zW%3! zk0GAE?uS5cweCrt|2x$_+BFnk(9>&)P*FM%YCZW8I#+)f4D#-+Mmap^ye<@O+v#vNG8smTnf9y>K7PDIlc^wR zU^Yy_H4+!_PqhIFNA`>?L4}Z>nQtZgI|CjNnqg@YlTqQ}MW?NAG#N9!@Q8`n@V3bp zJU)9K5_Djp(ksrx#O{AH)Nc=Ux(r9tP#?JuUb&^Oe%`seF{sz_>KYs_koV}|EMs-l z{o-6QV6^QS{|47#FpKQ;xq(P_Bj^PeJrkZ~RDcMVacauK@QnWAq)sD|YPI2{+X5!~iX`F6`sPdf#y6hLA5Z90 zTqBv88YE2~FEb@RA2Zc|RK}4~L{XsAVdkJvKI}Lz?P?QAVVkPU1%5!xgyzW%9I7kf zB(yBq4ZKB4-?xiGmmmE`Q%_rr$DCiykguoaPMgA1p6R3XoyOJg;_Q?Z$ zmkFxbdFtajNOtCi=(`=wKb3teLVnf;(iUc>=DTg=W0U6(b4(r_lM8%4dg|VHpS>n1 zrMAhDJ$R9DNJ*Tvf$Rf8Ir8I4Cx(27_5?p=2bdpGUiAh3m|9XKf|9nIUP z&LXY=<}EEN8#-SXIzN8yY%x51FG{$&mD%QGMSS~*ib_J8A`;{uPS_snKROxR*vLw= z>9MbFjS#d6W=;ewf}MOskhZQhZ@Zeyr1I8U`O)9e>Ttbip3`|y%POPIQ|E)1{Hx>b zdR}M<7=F`y>JtP52B*Dx7lDlE>T)`dW#~NQ5wYtW1T%163avjqq|y-jh}AXbVGCQ& zBgXzhQZxlRG2X4`bL7zgWC39rkfW~M2~)eolsm)3-Dd?F9#tf~RlpgwK2uCAkL zcHG7XIgf>a9hMw-_s_%Hvk3)hv$!k8v*AtlruKd-a+%FN2KrMmR3Xt4z-KW2zD%gf zBE8q)iptJR4SOHw^XW=8jh3=-Fst|i;eU_J9>wo8%P^(N<`+3KT+_9R7Y|u2K3Z4P zo7-dpp64-SBXkGKoY3|$@AJYut7FFM2z~W)yL}a#FtLmENmE!KQ+jdOtjZ1n_hs<> zpIqzqZrj|b%?Z2mfsIPf2ltD+Q7d8^*2n)Fp|eObABlLMFGOm@B^f`up3$hg5(G%^ z_yi!_;Tak|fy(T_t2Xh&%Bw!n5`C|oe*BxKD4iX1Pu3;IRuk@A6=6O`cBTYkgdeG= z3vy3}!$|@`)X4ZMDXg4|bk1O8bp`QY*Ct>Ny{J3lVLuoP@V9whuSJwV9YgFmy^`(T z4`?T#R56M>h70=X*{{OK{FuDV$Fagt19-lOIVqpm<^&J5$P-bbXLgc@=?$Ww_}c7Q zR7Ti%vJlSP%2Qt0>-W|C82!r;3U)INiI>}hf$o>WZf2N}NZ~6p0PlxZITn)0DL@9% z(;#Oh$ta}`QzkUplY-Qw6Na-r{PJvVoIm|uJoEva@w8M@MQ2;G)`4(Wt4+X_1g!$*+cZ{i~I-gr4U z0N`onj9NT)-Eu#7)R>oZ z&cvSC2i7Fsu(h>yFv;L43c9Xm8{%*|Fk0XRacHew?#Wg4yEC$7w9ST}_%bW*|Gf8X zhPC9A-X^v5*i?a5#Z_$Fb$xXQj`N%-0cKFfvI&wDKl_OsgN_;ai=cH{x-gA4)ILke zP2Az6TyuN`%X=2{ifk4B&^%q2eO_L)GdGzK0eFL;!cbJ7j;@I$fdCi-aXlB&B!_is zFzQ(4ro_BVG;nZ`>jq9FW%pPY!ta&W*#31(AR5N{iew1abo?z)k zuWRjpTdZm2W_Ih2Np|yTW#cbOgWZ!0Eu*mpK1F3M;f+@@u!kc=SorS+2L5PZLcW9t zc)lV>-Yn6NLDu|$w2s%wWhpmZ5E*PJSo9=eF6S_aPUYmw>~=e!_+nl!aM^28rr;KH z#aqIA;rx0Sg`E5#Ac~v~0+7*>vTsTEh0{-R{Ub3ubRm1ip$i2U$5*EPRyFjeC!*gr zijaNwAvXz|AO^0)tu6O?kzrzx*N!H*Fz;#OS$q&!{5NOZ-<==b5BZKQ@W& zzR^TDdxYx<>dliy9vEE}HlWjVF#&;Vad=pPvX7lu>SVW&04QkYL5KzfN|0-b?X1a? zthqm=H_13xjH!ij6UZF@3k`KURDG3ok%j?tFD1sjWk5!49Ts;*8hp32AH^pTqg%o` zq(AIHYA=LvWDC!|fghenc3vx7asiX;a-Pdpa{k}m$i3{o?;^qe=00}nJFlj!u8(3Q zKm0bfg2ewQi9)9kpW>%3;Fu=Lh)sw|VyYt~F$Aa@$m1x^#%O-uLi=Yo8-DKco}O>& zmH3<*cJ2RW-8y_~^L<&vCjV7ZvER9(YR;1U-e8*l#-}~H9KVd!+v7aN?@rIm(bY&p z?m+I)qt&{jMf<^d)?3O6o4eCz=kDAc!MR5=x;Eao{(L;-D=4`Fr{32TuTp*F$qpFG zQo-&L5+dSIzyyIHpnj9#B5KyQg`&`Kq|VMxEWX!%XNN9Hd$JGgudVaIPKO_p55aRV z&kN}E?~(7?rDP0)$Z@o4sYHW3w{Sd{lju`azcTmJ%{p?-b%TLsd9nKfmVMZGGlZKZ ziJ*}Ok70y~)G)E9QrB#I)a2b^>Nd1oAk5?R)C~}HJN`GobVs40TK(#dRRaM+qhYd6 zU3pamFU+@+v3KFD>~P^K1nnSpBp=-fbM=>x!~xhmS|ZrtW*+o^7mu-pk{Y^Z)Xqaj7S3YvspASG@1cYhkziXEs69J*)=>AAJAE{2?AD zR;A&Hx}C{!GCXrHEbQET@9@jpI&Y@RFTu}T|EPOg33CWPA2xbooM6@RGwdC&5gVJt`IRSe4Puf%Cc~Plbl285 zFe`xpHSL3K)zv&FC)dbt^=|GZ!cMM5xg6Yx$GE8zkHc&S_HWtNyHBX|e~yXjn39QM z56LAQN~YX96YWl*XSSq>K0f3LTn{U`opsZq7GQ_vfXh0Ze2_qnaXPfS|T;G z6Dl<041v6ej8uqdjsjyod#kAn(}KSVe|;N7D$GlQSUu=Vg4w%C4r=3K%)hRLib+Xu zv(tKN7BA5|(b8(hKV58pNH@4ITcNP|kQgQ_niB6#1kwrA!t;P~97v)x!~u0>g#Fq? z3_veP*g@n9k=q3DXfU5v)&4qP`u!mJglrId6RlvCpP+E`eUFvqkDkXC8yy+4vk6kB zvpDVQz-z#$CcJEg8_8e9OJt?}y}}@YFTs+rK7V7fsTic+*clV9 zkeiN4SDXiMQNhGI#IWsWBDhqM`?2V*bN#c6zaQJWgL6+6ngwt13Y1fw*RTuSoOcP< zw$?&|Bl&sF-BZNVu{{n5NqqSh3`a*BPtZhjhQlD|AYyWi-zQl;KeSkG1C1wBVq>-> z{}PeU;OULZvA!nEu5gmTXewjV1=@26j-my{wb<8XL6Ubf=Fd&Ti)QdO=-c|PIh}Qktxx0Rovu)2U$Jn3wksN}3cbb6&#jt#225VjnN zit1uXGcJfoNsjTcbz~Gc%LF7tN*nx8s(SkcQZ72M_%!0p#Nx*Z}3^yQra!$Sn;#Dkm>U< z_s47PFUass4TM|eJ%`5kELu%WxXU0qZA}qN;&spsdOjWk=`S+s9=+rxD--LC70Qw( zk@PMAROKwI%N+^Wg(fBA(plU2K}qQ_ZN=#w-a;sYiIWx*<^>axALb>q@M7r@x+G!; z8FwA=1o`%%y5FmZ0qJda-@i!gu-TXma#d8P2^b)TN4y98XoWwvPy+Yte7N zY9MwIDvz%Ta=F~ie`R@6OggoXIOqDyn*~Nk0*<)mB>p0=k~H*s z1&oe?H`hYN z56>K)mXxwzdH9g2>}vec-k6zInUzb4oJy`b5*9dekMDCnlnw&U_ikKT$(Izq&75Hl z8%&C^x{8M1f&NA`qcz>^Ahj?igaArGNk+XOp53zsC!&4j!MQgUKaWNr*%ly>)W_O= zUUmzgTxpe&U09%EZD*4R*47Eq?i+d57a4)6^}HtIN!j=Bm4%`iK1 zkxNb{cRCHLTjGjgP`$d#5+&*H@)-c|7{dIO&t)6kc*axl0I73+M5aIbD$dhY+`28L z!_x*Xg~ropQ8X@#Z_LBxX%e)a6sASROdx+Dt&mS-?s?mh*NTT-N>SYcyxEueB9MZR zyJ$^y{h+J)X0|=67^GPk-N-|t4tq_JaJ6bwY)W!Dhdk<@!ashod$;qv+_Q%?%l}3( zw*fs@aA18d{;ZV-sF^PlfPhQGDniBLl>bfDP z&MW_NQb}=q<1@a0vtzh__VuEvIcMvdSa!<+H)jiRb-{SEy?cBn3>z7nWH|k*gk(ut zVKUUDOX{Ei*iu#sHrs+a5+%g%m5@R-$uDZ9E;POYD|J(c3K!a$m_!d+zMehZ2c>|p zjaa|a-R{*&GFg}jguAB4{8uq>AEmhaN1HNQ-9p~okf&_#M)ZRv=KYTopIXl~?Oz_O zN!w2At$fy3%@e?_@^4Y5rTnoTOd6JIK#F3(Sw-w5p>Yt++FFLx$s z%>z2Vbr$pa+S~<@z=?TI{Zq2iXp4=adjozA>J!i?i*xX!9wmFqiKEk@sZ5)Ph%g$_rECWXa zJ&yN*^Dld;d8CMhJ)G{v$&sA3Mqt~9q^t}0ItsqGlKbJp~Df& z?}aHTa9gsLHyOVHjbN@f`iU`UNb$Ta?2P@oXPjpLw)y&%pikDVUm0vd8_}>)uZR<+ zId9s}OkAHCZ0t+&G5sJ)2aSyeTN(7;3$~KHQ+@7#jjr!nt@)&{+=!owWow@(xUBAj@UIV9RYn-Fg_)*iA zD^IIF(T@ZFQ#&Bb;N5GU>yl z5o%iqRMmE#CO&S2U70Z%5Z&Oz5bW0EWKx2l?)@8Pgs%!yfkQuJF?py?awO8 zan%=VgN=Kxhwa~{6W>W^yr{!`G~+)u64(b%CeZ@!G$~hpRnsnHKHx0^dEyttC((>> z+5|0>nb%F>TuBnkH@vQhM2=u@ZE~I8q$p%?(R_n3$N#sy;_i-=-@opsv{3bC zZ)<`krJuvtf2li7`U1I=cD^UKRiL62%X4u|J?$~RYA_-hJFug?WaMkHiqxw7c_BFN zX#AWIll5ir4sH1e7oX;MoX>Df1b^YOvyW!fy{EMcUsjI)FeRPlKU&(JCbZmUA2z}a z$K{VG5Q$@N0n3drdY&R`1n*mlyvLU++C;wVfQk^w-mGZ+ZgqG`>V{ zLjU;Pr3i7tZP1$PrCB}e3CM8^nV!0(oi$41?cEVv_R{XZWS-=Ru_U&7J9=}czF%0| zxLW)@Sx=hL#cL8$o@}GZER6Oi#+ayoPlk-f)!_5)?H9qI!NSWKtI$BtXYU4#F-hXy ziJId#3L{cdDKSWOG)3PMgZ+P#=ZD80&o4E!oSYqv+zP2e?DR+T^xEVE(}o6YKu?d4 zSv^%E_f_Rp{BllTufCB^J>T2%K3ac0_~-gJn}1(7x8}uzZf*V}r+Mzq($(Z{mZ=nqUT#qnb4l8X(@m%;{p3i%n~484!6_GSN{*KcR(gNt!Bl> z&dkV|j6KjuH5z|zq@H>o#(>H2O~r(xaYKWvTtdP4QSRW&&y`qL@479R5|2h}6 z`*e+|&JHgXBBtz453P-?9wpDdd6|WI5wGq2$(fJpMP-t%D!IG zevDF!%)jmC#z4Vv-}MJWU)O1-K3ULCf1tl~-?uZg_vWA`RvhRhX0*xQegt%o{7oU; zNZ7ayj1QsVzVDGFhyAI0LQu&MEqKCcS{qk!b?cQh%R{%8S1(l4F+76~qd71;F-yOC~OrLbr*UhwGE1rTyu~E*W#GgS0~9&54wL4YNl2hJd6Nd)!RZUAfPfn2 zq$2_WY5=B-#)IEH_#z4w5(taMfHmRR_=hM2Mp?3UQi0=sLVtCztXMMzj2|5jVSDO! z#3t6X&Dgl+nhVKoFLXbHeQjC3A{TrX`2P0l*bCoZYh}!$Kx73$o(b5cD=d6eR{0HK zveu1S7UCyJTUm|1T1nM?e|SBws`U1Y_26f}I6Ifl8IP7sTMIt-yTUzpmxRSjfPz?> zLC+Z)?9Pak%%Hwbjx9AGh*7oKmwUNcXYFvj*rq2p=YJvFZ?m1n7p-_sE;Sd4p-fOJ zBii?q%%^Y_wE-yvMM^lHfRd;IbX!kHye+?<3b7LzA)ia?%LH*&LEAPH z;chpxElQgou%^C=*n1~ua<`D}FUM!IS&=8bH|N_=oz`+y)WkZ%B4c0p+ipld5lpmw zzIG=-p~t{{DlUB5D?XiRiRA}vb>`Y1C^R*RXs)lh^fASX!NUM*q%0I}~E$ig-(_g|wAVsjBtNdy( z_;16}9Barc-_W(cjoWW{mM)fLIPV8gKM^>zB{|c~?0=~sIltd`_tMrOA@hNTp@G^t zVMP96muC~8pM&IIUQj0?!AgL#ExNEgZb1$7dwCZZvlrvH^yDp{F!TCk-?Kp-RSOeb zYGp>>vwqDd8I-f%)43ZksUck*_YU*+Ji%Ihm!Fw6(C1`DwKUz{KhFGYDg=w)646=!@^1F~Z9(VJAba_qA|e7mZ(4-OF#+e=xiY z7Cvoo?Z~Ojns0DqJgs*%eCa+@wl-DU?VSVW<7i!SkPpK4IL})ac9CNM@n}-;ss$py zQDZ5c-5RCoFy-$KH~;jn6WH;8787q?Fo`EvzWf~MF>_xz;r7OnNLAaSVdM73;DV@c zFgjYk^_YvNy{6w?eSAXs&2=G|3@8L7k$FeR%MN(J&;WN9w3d#g2sk;}1zwteCiCm= zr>mOd51qAHm!8;~wjNg=Q5r&CsVE-7xPunt6?dkEg`kPsiK2kB2aLzB9v3NVVO*!f?Wd29G@(WQ+|0C%~5CkZL zSP2-z%kN+yk_5=1t1bKx1A^mk&u8#YFt8&yxyvy?F?sxiPDX1>DhBW(jp7Y8(f9Ed zKe6FB-KDe!-s%eD)t^HfS!;G&Q)PpUoMB28U1|R@hfmZ^>Sk_xXTRA(Yad3QDH3l9 zKKa<8nS_l?-%on0uLtLa@LlDDUOERl(PQ*P9t4=&h|<% z?YP$v0vew=fLi)qYuZ)WUb(NF*zcZKGQG!}9klz=b7$&)jmMt=qRg#3LjT9ndB;Qj z_;EZlBjU_#=MHCNWbbh}hpe(kRutKL$JvB)w(OCJNcP?&LfLzS?7jJYzCV9?_=ku4 z-22|+^?E&jhN;tV+vtZ4A`)Z109bl;klstf_{N#nzeQ{EOG}A0c3bSW>6GmkIiK_u zP0oif-|Yq7>~7J#L^1_UGeTX62gbkVL!yn9v)zt6)kan>X>zo)1ArFhdWD!WiKa%f zZ&1>rsEa};>2nV5)Pr8l{h%i~SAWf&H=~;pjh{th@;yIJ$i%NC7@Nf1SPs6_PB&H` zq-@C)9I#Y^X_J#D)|7*w&-78Kc<#>y?pg|wWzFe=W8vt}q?q3|1vRxe>mH1pPo3mc zeLf2NWFU;QiSf3c^s6EiJRM>^=MnmG?x_Zd$tWDYynf=67bv_0X-8`xpEYleOG-wL z1wk}(D<_0#^0>>pJQYK!f-1wT9nvMyKl!4AW=ux)q9umn_xf75R>hj{b+RM^8J}mf z^f|ScQaFtsO^w<+U$j$k!NylreoY8Pu7m*Xlq5CGkby~E9I!Ig6A@{@;4~E};)1Lf zVWh+-KWAte=)`0%8#dpXGPl+PNe2<-HgiV}EVkcS95|B4OUN5Pup$+g?w{>Kn83T=` z(H8yYP_i>jrHu+lA)3nL;uUmtc<3Tc*?Ygm*8RYbmXm&yOZ&S7lFuqk=!WgDpsIaE+3-Pe@$Ippf1)S~Vj9B*z`NHgzso1@QAFe%K! zs=HuK5hmDfRg)BvW1|+99QNq?=C)vDIrXu0+)UBwm(r^{lrWL0~+x7#i=Ua0<0ZWC5?L+0hPW&pbei%vNUJ; zj*fVukEp*Y5R!g>UI^e3+nCK`fXf_=QyGZ)1i}i7;9r4;r+zWzBe*n0ucUAE{n9geyYGWkwB|9h&9D=L`Jd?0T0{>p;%X)*yKmc}LlKev(52MV;GF_twt)+}ClZ3IEN<>#Qw-T?Dm{dB*8`|Iu{&=f3yumlj zEyr2}$>CKXRI^p7;DLI=yI7%}Z2Zw~=QCp}maozf2lr4TMlAN@vQqgg!sBh(9C(ET~oRFl- znuqDPV*u=btfS2!WR&}SWCCUYVpk+AHObjV*>?1gnn5h^iOl);{pItZAkbr}p6wwu z4Cv@GirrvmA(nBKGq%H}*tNn+{>y;BJmc?OC~X#4RghpTtQ-|6Kw7 zd;%!l99cgmbrtJTC=?mP8+Cm-#pf@l>G0mf#>0h!+A=m-Uigt&>QYg~&P)+#TINfA z`Vgo0xiB_H{-yt;&lHxbQlCK-Je)krg6gP(kTGy1il8xP!~IPblnE+ThiB-iq;zN! z{mZ0qPAhwrm9?LUNJ06*y45);jiS}$A*mYI} z?l2#n@H3NK9gA?Lo*au_^wndiWgi_;@8_3Ot{r$HnS9L;GM|c>t8rxN`BcA;rx2+y z`{J>Q`Gaode(|^R{!mEfC@yCu zdR8_#FKT@~@>HfV4#nGbvnOz6eJz?bT z$^>#NOVHyy)~*46DQxC20uz^G40!?`(o23kB@( zF+pecgEH>kI%|WKuMr~q#6f)6xBjb`MCqnm$`arX7cDA}h2~pH!N|#?aLMA(JHK^+ zhSxO?(+yo?6KHy#)j%-FV(`g#1%@W8}M2@K+~JepIZ z=1ZV44}9NTSVT@SAnX&peZ;^8m0G+z5;AVne6V=g_3UCylX+rmlOF#AILX!Mw-74p z==ECaME=(r5FV5YVEFAZ08}o2a&B9APo%0p3&eadMd~kW9u%r9$7?9;MltlTt8S(HQ z9cz4YG6*)}1g-h26z-#iFa#ZSDN>ar7?_HtU?>mT08j-OdP%so`DSx8v)0so{*_(I{^T43V4_?O?AqUwOo&ZuG5zJ` zFV{UB421JP*OKrucGaJKsat*6cJ=J;>VlXqDw#g?ZdWOqpi(~mfDY0h(6}Zw-VDv= z?zG}VU_M-XXU!o_f~fD+NQD>^l)`q~J(QGLEH zYhw@Za$$8nv@$fP2z$P#XY=oBldIrpb~frYQuUoR%jbfW_nqM1$`OqKtVqKh@|lxe zp$OwBPA*Uy9j}N7vu$CuQSuK_mPAz-!j&L!>p}@w`VqR@YE_#~k=!DH4FlIjfWbZs zTFN1c30>Q7Md&rtn;nae8&jI?X;$jq$?u$LActz>A{QF5mNO^8?yE*92ZPW94SI6r zOM>ZoCi(42@T*;;3ta|JZHQ-uSs0_^lSB!hE_y@FrbG!pM$^vUiz4NfyDwsihsXV< z2Lg5`%)Rq?*=5+E>_jVS|HZG{2wBdYf8v=iEnvR*JoXu$-DUj@Q09EHA_y;-pru ze3_U=Dk0pXJ^5gS%c`t8pg!VUgsP`rI4?Brlw{LxTbbUt8t1m4eveml)lc?Tn928_ zIO9(i1#na-7zhzatjJVi^%(#l%F0p+?@*6RFwM~%mnQ#t)P0t=Qdy3XH)n~qhkwka zgX@CU)M&;1#gE?l)!;EDf!XMz6F!=veq$Jnksu14m&l=C0LB7v>_?3N8i_*SK$s6{ zz$D&$#`^fSx!w`QJIyK>jGmFfyzttFn~i~;jQ+&e74j*4SsbTwE~!ppHAr#9-igj{Fpfx!5O^w|1AXTqR0C>xH%E ztx_)eIqyo!gw{20|M2d+Zi|_fy<%IhjlUtQ3%qDTSsvXvB~-5b^a{i;S#;$q{?L}L zBN#kY&b3yh;{~|M2~4z0Oo8_r2)eaNJ64gocL#HS^n7{6-l&`qNDX2l83<)+~&v0~n%jJ$amghDxDfKAG*^ITB+HpgJ#=Hf2(a6LylWLDOWyl+S=OWze2YP^lJ>Jt`u+{Xv=Uy zl22PcIqc|i(E->LsKbE%gwXc6j{FwP%ElOz9i?zbbG*8m_#>J%l?uf=fS_q*MhzPk))RRs7t-c(DzPiW(tUi;3-8?hyh%b-6>{fo6 zSkq;Le%y+(Q;Sr_3F>P6#1fZ6`__sR9Ad2e&$4q4&La;7z@D)QKz_4oWL-WKs3x$g zyx14)29XKBAtiROYdG+pz%|r!Df&N)4&7^Sbo5~tgVu-!u<^XxnUGzMMBSv(-L=HSeV$L9iVZ$R-aLc?tPg@HQJr}Ek9%ZE!sUHRNc9?EKzS|U zLk9}>|TWpfG&A{FZqP%uXb!N8S=Ny+IK^R`h% zWJXi5^YnMGe+P^9j#vB(uGhBC#KxaR=dYp7w=L$ZJp0#tb5{%Z-N|*$%+FLR$H;Ll z%4^;M(@bp<062mQ7FMJLu{0#vnUApG6=8jQc6~4~;!hrQH(TI+;)5i(&mG&~QUE9E zMPU#tpA$j<2+Y<6X{47(>Gyiw{3~o>5D>2q0NP~pwjKt(gUQ~31D)@a>d#{qyAHP< zRp#3nES~|PppX~Y*~5C$MG#?_ZUF=gbvYb}IZh@^1f}o3M8ELhbg^Vwspd-Dd#mi} zLu2y2i}N$R;+rno!Ay1oi`c48+Sg$M{X_+idtUMyUH0>9J{e%6s0O%o#q_<=uJvs6 zl%%rEv`+vSN@VcPLWA1$_s|V&f$i6euKD@1XSkfo2_a`Y3JLemqX$TnDHe5f6k*~~ zz=oRGDR9H~aKcL$DRW{vcX`MRs|&h`sNc1ceRUboe5<(FDJgr#+q@3^`=FvNkHMlfwPhO$sh3xHAUO974~jn!Dc-?dli80UU+9(EDV~gW0}d za~W*^TmAS|>70AmaPw)vC+4Y$wR~l3jEEL;`_z*p1j_z0B~9y$rl=5q+J{>F@)QG# zLf7Qg z@&3li?zz^j_B^ZLwO;2Xt(tC<_r35Hjl!qUyup(&tq09WN%+BA?#=u?Uy{5Lzx~OdQ1hsMas2{Ad$Vk#ktrn7+JaF zF#8og!qz!mMPixgqB!iestLj!U+<$p5%5 ze#LF^l5y{PP1Jc_avzQ=Bxc64CLx+WGlG)N92%L}z4FhXk^`RshNz5lrYXJDNl zDJR}v={>45a0`xgKiOnpu@d~^ufm~B_fJ4eJN#}%;n6{ZFCV)QTiDG(`rkN0j^^E-_>#5h>-b*+Q)P?)ybk!lC(EJrz&{x@Zu{MbaW_T>JQY$M zC@kV=5J5sOQi?GUhi=(zW%p7|wh>P*9InP>RRKIANp)u zx1q|MZdv|*FfY&n$-@X^RjZ5O#U`orKMZw1an45e4kp+|5Gq4M@tKu`(ro%|V}5ZF zHQ1ZZDl3{*71>)7CZB(JQpnJRgkp6LzGDPJFyDP%N^v`3k2Wd+coiM>;BvSn7=jU* z58?+ghI#u8osC<&j0K| z_va^=gRPt&U(0O%L+1)z;p?^SW{x}yav=OghdeRe@FSa@I;Q&x*5Pc6?sUteAF9#v zg;pESvvI8ZJ}^e}(2F0YP;xZ>95J8%HXEI7&{?C~0|^EUoU6>S{b?`Yed}xjaWrFj z6knyR;k1x&XB0Q7QB42hDo`{#zHcBI!MQeMg)+e}pxZ-6-EA zvr=vNCROyfsZ612NHxDJ*#5-ibLFm_ny##o@x#$6so=Zimd%}<-pw6y|2_M~K3PuU zw(CBM83n3K4@)H^4=k@~Mh6UdrUw21oXjJ&!c3LMAYesK$)|Jl?CDL)mj$Q0J(&L{ zcUyX%69a#m2%;j0cty|(>89TRX!2-g zD&JvX@m&q1&n$QMPU+|*WQFBbxR|&M#MQ41&N{DW?sv>C9ICE=*}o84I2+bnE;erP z|Dod2702A}G1>A^-`t0$BDej-{dp+{Q_rQPtvs4cPXJ_z{u|`blZgV3Z;hpZzUSRL z$&A?u=by&=?KG`tI5%r`K|S|UM~|5N|3N>hYaT5#t%{%Gj!;E)4m7YT4%xsb)i6mk zkf11?qc!f4H&4gd_*x^|)C!{FeS+6>eC}?Jw1MkT0KWOvbm&EYYEZsn*yE4>&wQ_5 zkM=LV1idKoQ!0dq4@(rm$yiHAerP{Q%&Qb`prj0}y~2Ltql?l*I@?ke6;vsPS=SUW zTbTw#4~0vNPsbhprM9m~9J73MEdJ2C=220hj9@=lVyc*x9sZ^;l7M6np{iIz#VAnp zOa~0OXw_FJ6O%H!af$093BatKt~!?8@IkPd?s2I1FdiOP!+Wg$H4iS2K2Jz}5yT=B z3av7hDuVd0N>C*&d5n2{1D;ByL^6Ttrww48{p#ln?N@-soo)MFX~Cr1{O7hWIuDD! zl1`F;bA%;InC;orZFRmh(swde1A0VcRs%#?V&X_i-%?xa>4{;*dW>P;)l>cBpOpct zM-Eas)E-P4LqB^(wZ(>4X>ppIoC5b#UAC{=J~YXkna6)4v@@d1T-2=Ct3ZaIHd>_n48AzhiBGWF6 zqe{Tsp87wB84nh}yJ-u~30B8gE^V|Kt91>}OMbOa<&eBE=<<}A6uHx`tH!JH*w*Wb zj83HT3z+p(s@t9WiLUIKh=>FbVmv0tr#e3YKGuX+6Zt{Q@R#$9*ol zyXNh2=YcqN0Xr)7$K$enra6~T$NQ5J=h>1V^+1I9C9C80MV-rPfO+?+mulzsyd9&7 zoKc{(YxH)4N=LHaEM+PtuQ{Lk&z~=!*2Sj*6s+~S$)Zr~hgR{L^XIEqnR^|NgDz>l zh%v2RvY4XKxV$T@+G5Lw*%Bde)iwWT2-GlLxFf5nc!tC6zhm$0it=u079dxy|phoU4AeJv#JQ_6EywLz?XqohiuAVOLs zKOf*zK&J!j2f;!Uc5^pvyQ10R#tIr?%I}RSCOG`T6D<9!OqN*?<(D5OfVr#2HThOGL53yr$`@%u(<7FUBf618B zZtQf$?^wTlTc5tMM5R9$M;&PEBThN1gCw+pJJxIrYN)sbvLlI)wM@;5NlLl0twJ7C2evg0+Pm~7s{Wj-L%qqMPs?;0xU`w0vcLAlbfD?p|#uX zLD;q}e08k0HP~nTR_BCE+;W@tZok{z6sMPq%K^59j8ZW+p`^R?Bi6WKOit4(O7FC= zi?&kTvWt$ZR+BG)Vg~7=ViRUA3?Bajt?+#f4NQJ4o(JIf(De_Gj+6j$dLZ$&*D}`zh`aA045TwvaJ>gE4Pg|Fp_2O}Fn+|OSP(s1<~1xxoqk3>*Z$|nrG z&ps@>Jw@Hum-XnF`(ndUNmr52$T*x|usK*W;II9~MiSpL%&gmnVBbn`zV0vDAm}xt z3)|7MC+R9P7{aHmS}3XFjEs6!hzeZQMFyU3#$1f?F|}XcZAa7}ecV^s-jx5S4}sPh zIXN-s7!`UI#l?*j$0F2ZU*f58Jdb%U_u>UnCm4>j&bW|5ap<#(R5F&X7xaJ1R5JS! zNco*v!Do{E#W{n#=_J-~&!H;pbOqC6+P817r?1}Xz@kzal7Gql>?0uI-w7Y$utZsp zWJ`0gHJ$H-EM_xuLB~kg6jnBXwl;y0GQ`xsTolX|A{Bv=JinOUd9`gpGd-~JZ0E11 zY@3qj{$GKn^36d~aw@lSUg(}9BNYV_i17&F)b7BP9w0vUK?UmYO|3Zo+xdiT@81Y6 zoGm!5p2gqddIg>7*IysE^?uB`#dEyh(RAtC2nz8!m`nQ4WZt~HFtRk5xe)px5eI`d zvZk2;I+quEA9VC+lZC-hX-uNLkWhSXo(Fc^?rNHuSm@)Rqq2+J+xX>pm2sgf@{23_a+q#z$i;_3>6_>lCw z3$v7Abaehicg~3XWGj8Qsn7bxj$Scf78R}Pkwg_mVPU9>Y=(AcuEW_lGK$n?o%U&} z_(KkjkfG&#Ku9HeF49@a*5#BH3g+%1jG}|VkU#pm+j%OQ{)#l;GBS4_hG`0movW)9t zt{h8JFDR+D5FIla%6GQ(+8kZ3P591hWAx68wyhs>?hctRC~VI61zDLj(>S8~D-fTD zY}nEwGg&5uVjzf7L6%wWjaav@X(UxQGAbV^X9!?~gXwgLt3|vChd9#?T_q`Y) zrS3uzR>GH6Rkdl9KX}?Zu=cz=#EPtcgr82;SUeMXXBk$_p<{gYQ+mAq z-@E;eIIkeOy18@n`eQ2{L;r{8{(n`xCrg5Ix6l1oBb~AXy z_?$XXwgRqNsN*fa*0swpcfzL@g?h2h?f?c})EyiD{h;jM+G3(}$1X!38%Zk~W#H^o zV1aLxE-+W~42FJ^CGe^aCj>^v8kLZFqSV7CC`i7%JV3ynCm{9o3ur)TzP~hGF7Q~2 z$oM?3ewF2OV|;$`1{q!BSwU+6>FJm8PfqD_@8-z{k;cG~hY}n7fKYY*n#}q3NDz)J zUmJT+M_XUO)KvFoGL9e$&VFM+$2z?=viK5$5?t!`oAHf$wK*R-fALLeSwjo))e}Z| z_ul`pzbu#!WGVoRIKUO^K^^Ae_%;S}5rMn;g`kr{(1SE}VPM?*$Gmy29Z=r=51J?! zb5^rQ?(xt44@K**W7>L6%`fow?nZJ}cbV^>E*wTV0pDD4EnIfocYd!6Ad{w0d4Uu> z;$r=lH~3{m2|38M?Jk5usG6<@E30Nmu-DkH{-fXP90@!Yl{&dlyO>=aSzazN)IOj* zq()ByRYPJUoyM#X^R;N`Sgi=PF||Lvaywm6xk4Z0O~ib?FT0W*y|)_&okD%nRg2 zJNoMPPgDSsAy`Woygxol>&O!JsC7w(TUD8&8Zne(CD%iPU^bcD zPnjAhug27AUMo{OuL9P9T1lDrK)m^*y~cg}`qkFTRlq!ebKZR4=CXg?8s)cl&9&z{ zN#lI|F{fwO%b#ho`BHjw?VKIk;3ez)Go??Q1M;QZ6fb)y(JKlV>UtravAN&x2S58} zn=_^viAC2fTw?hzH??){GyBq=%N~NQ@!$FqX0JH$ZD9U>Yw17k`IuBlA@kNT%2?f- zb=+dJQffp8RP=@L0*<^p*(u|K$_72UVA3q)yT94@zTXH$**p33v9oLD+t!*2fT0)|Mp(V)ch~lsOLQw&s zt71Z8;kTv%Q?tLrxBk(^9?vlhjL16~5lK*3jV6*6xw9*Co2m+Is(%_tH*-3o-FS+^r8p!9t!{)Bnn=_V$98by&v(x=ZbgxP3PIV z9jv&KP5=M$LnweiEcJeBVMM%pd(W%#dl;kbUA(UDd($MjcM9M5`3?u{U&}CS-kVC! zR)3o`ak~p25~v|S3eD7#Yvm*TS$xzW@v8RD`3EESAapQ11f&YWxR)&U$mJLRx(s+e z(6$OqEcKvGJdq@LQ+iK^g!6nRM;Iv(mZ>z6Vk6e_P{cL;iiCbhp%Xi;LQ1O>8n^Df z45z)K^v7{=l_HGA!(6WS^g-snH*z}hkeAF1Nl&T=lf-2sbb=*WnxdC)~*(s zYReaoARtU6?xgbH+)NFvPO&3fErsxisj#l3Ze3r-jk2$PA0;2=_#T9pPl*~d>dU;i3^7D^frLXMs%L z*^PsTSs4;J2crt!)_jWT*25+?IuPHb3akuOE^=t*#M)8Wi;li}wWXr{r5sQ6Co}7Pd(^Okq8@Sn} zK$ixQ6WsDiG7lA_@Vin3us#T1nFfReukpNoClm1`a|Hd| zsy8L6Q&-UDG|<0phr_?ky6NCo5zYDg78OXnK+YqiztU8JFlQp~#HGPk2jV>`Uk)C_ zaI|rJHnFB^nOtZ7vf}ojxgwz|6Ve;Y_v+urV005Capwy0H)PRenSA2LpJb7DJ_0Rc z-X+X$EEg3aD<5Sp)_fa+hjG4iT}TYnl+G1IMKu9UxpvTZJ12N^MDJ5Zf2@&F0iUo5|Og5zr_N>#ZH^R6r z8q;Z`3LdG)-mhH91Sz#6*dDo55U7Pvkd8ZdaG!nPk99uEZ+g0sPL`GC3UemLZM@9; zTrb*s;ee0T_tyWJM@ul88Ny;%|IiKbZDYUtWZGEZU9WPU3&m?T)~E{oN*3)m677p> za#3w{6bb|gh1=U6&wmHMIJ?KOhdst$u3&Y<36n*wZLJ{v`Fl%ELiHL-f%!m^Uq#+hS zq^r22Vwf=J8oV@b^m5Ou6?Hd=pV|(l@s?D5sL?Y-yN~qO{;%hx>P8WuvlPTD@MBJf zF^d7kD5=z(8j-b5SpwEl)2sL2^RW((uv8dd_0tO5L zf8O<)q9_PM5Z|98r+QAhU)DRINVtLdv}F*<+hL-R-NM39oUTMB7;q{-#2Vvq_ctl6 z>5!KCo%n|$+3fBiswROq|A;8{9#aLF)Kj%F8FmaxR6lQc1f3f;Uqn&cTd6HuyyA56 zJdQ|pqBRWFJ~)emzwu$-k#;unR^1!@a})d&PTuO%@l@lf_qD*ZAQFZr|^*b)*iKqNE&SY|(Ow5Lr z^c5>_!Dw$167{?idt63FY<>#KG|7vu0a?QAM7)EzZNjz-u0%~xicx%IjRd?{kBzGo zTbodtoXR{pa>_DeO~+zmjiZ%~Q5qXJgizy*-#MRCe&BjuBET$_!fppcKDC4aeF zQn&eLX-`cHB$rDMf}$l9*>r7UstD|@3kqEyc;5O`KhDMyWoo7rxW5*n75mHg7;>c5 zDR<+)k6Z3(5_{W;b%uh;o+JjRr3vBU_OVE|pcZg!x(me4gWj2$5p)8E#1sLjF8)wMajnQB;o^ML3$C&wN!dZd^BhaT&7Td3nm{ znbjI$BXk}pU?a};S()X-D#$}hx&+lFYT^E~ zdu%aDJxEhef!#I9O$(zPIkp2j8GPGH z*yK7{EoEBGq4bQVxVdnnX||y`WjR6)0FM^Y0?jh+bnbk$qI`@_diz)mls5IPuh7_y zQ($k737>J6h%@m#%?^aI`_;%NPgvH+At;QKq^!!6G!YDsG^?CCqgaMou#6Tpn9332 zMBze%9wQ9CbVU|UG;{nsA-`?a>t+GJTI0(_y@xX)X%!#?imH#Xfx51}Ge=1Dv5A0l ztGN83Fz>VKuS6NSYu7!J0&cskV5YRrT}fh2bGFmx*9`D;p61|us2B) zH5FRpsg6%BlX3k}R^VADqzQi}Botopfz_Qr{bXyu*8MC(?G?yBKZYzpOI~hFZ4C{7 zeWK|8+PvHPH=D$F{Hg(f)%+RmF7;l`Sz?C)hrqkMXOG^jJuKqAU2AE7dUYe2V${^T zf*DhklUN;mEt)L$)0Ul_QYxH3|Me#l4~h`7XSeKcGM^A^We5b*f`Vz~Q>mF!n0UqT zYc6PK4BDr9LF~193jVXdjo7W!+&0ItJDI3RuL)R|ok>*{6^TtM;c72+C%9GO02OrK z$B>54WfdvG;^Ck(%-YKj?KL*l@7i_s$-T=Zq0JDtTGRHqT^iMmtuwx~rnp|ZxVAU; zq_6%R<=|opQ%^#ZykZgV9%t;Fhj{{2WFf)7HkCP5$zOHm5kGgnU6~aZ^SWf(ld;eo z;9lk}_^ya@x_gAUqeEV_>MNLhL*=dEVF@b|@~J1blq5gaC zO~l4t2{(Cuugn?sh7>CEzEce>9~EIwJ7-FWkjh{F%lL34822K)2+YFug%Ei$v(9@v z3M-0KM=OXmtW**Bnt2!a8hLB!X8L+vj!QfT_pV3 zerH9>Xa5X~BU|rpz7>~##Jk;o#uxWHF6lho*WTk(D+_FMG2M$ZMDK<6LhNqBrur$7 z=V8CBOfoxjf|VUkA!6j~U0X7mjmlP``M=s6#ab_YnTplTV_?rjttQYdY2V#tU-L;u z`uuooc^9pi*0y6i#LAK_>_lJub0Kn+qL@uY#`r{wh+ye!I{i(vDcR;~IKR=R)tlvb zqIim^OLB5pWTdK!#v-{vqo*Y4t*hyahpnoiNFndSj?Si=LKEnKBDhRO<1L-0RNcV8 zWrSAeTYTsVyDd|T-#$$I_5rt7R*&eniM-+wZwSXO^Zw1b{wB*h8Q@mhKXEt# zB7=Oqaiei?685*kAE{*Oxe z#8%%SAaJ0hdNu!@n1@oLqej<{7KEX#N%c`P0N0^fpf!7H3!r38nGl`K_>6Wq8W*a; zloWqI%7sDX(UZ<@a(YC(&mdAH6rEokZl8l0q|^_7{YCexruYLcPEhfL8C&HHisLryUK;AP->DRkTAx%ao{j)iSBcO|c(KXCP>0AOa}b zv5+po+Pd(lP?8}#Y=II&6x4CNuv75+w{TWo7KvhI@J?4-QVTnHAFihI!t0OrWOzj* z`=j6Ab4yC`ao!nfGB7goV!1tnPV6mXBVU(aJOQTSjv)`Ag<6FTP5Y7_dzy5HPqJitQVA z9CAA1N8tBDOd*WBVb~12ODfcrd~sM#A$WWt_?q@1q`u6e-1OcCGeVNSV;-xH@6;Yx zJ$y{xq!(`{BBHQRd(v84dm_0@W^Ehu%1;tC<{jhwRS`D;Ur%VBMk!ut%&m)V8O7}# z{_FZ;bpN=Doj8+vdKstB>fd8E{(xcjp|my}w-n~~o#Y4s+dt$(<{q@fTlK+vR!##$ zm$REb^zc?~b(0i3{q}6&(>I7&Khe1J6q9dfa(FiT>lYj~Zj!41LNQnJvFx5S``d*% z|Fg`g*MXVsC=#Y>w}p6aah7EO_T^oED7LmC$nxzFDo-ft*?f9b6pVJ$v_3_8pHnLi z%*@m92aI|OJ<5(fsS!-1KvR>y|E={T?cnTHg+7{YiJNZI<(Xuaa2oZ|D;h6Uy)SE4 zFSVj7$dvmLq$m9mgz6L5PM8^9vcmUEs!!aTQGs~tn@PzL8Qm{lz?Jhb3vKN`7!8L# z5#KGyswi2;K+2HHe!uA-&1|@AYa@W{CQFwm}JkrF1 z9=#=b4&k>L@Ov&+IR0gqLu+q}DFYXdFI1WN%j6CVXW(9y^OE~JKBT;j7^)+?w!OmZ=pSrJt@6BoSw8KhgmRg3 zWqdyJIQBz*LYC>(%bCu@huoXbFbP^qV?8mEuShz)0AJBqtm z#`hH8%dCY;;2vj^d1>lrpP2ut$i!|@l>I#QBYIgvnfI*um)TE7MQDPo(vy;3zjeT7 zs~$V?I7QWb_rSw!W=?l3NaMC9rW0tC%2~g5(qV>gJd#tm11$|3KxAnT;cmJ@Oi z8xa=vQhf@{!I@<^=$+BdJpr;1Y@-7z?Pnd;iHNSCenH}nn_!nlOTc15Hp*J2ms)O| z!erQ}@jxNw1Gy?Tc?wK}>GdNv>j8sCF`=a7Z#X=57MA;j5ne)Z1lFe>xus=n?Wi`K zz0iWPJRE>pKnu#H9m9LA9z^V?W)zA}=YG>+5M=UTpq$s1-$}CLDb_&#{N&eHBUE`x zLVMJAC&V3x0z)P(%t^(Stej6CJlr?HPU6%diz|6$^r?#wX-SAgXXK*lx=3lyU=<62 zTrA6H1vHla0w)VWmq>>{n1?_&ZNYNcq;-_Ba8A|2;irasF?M~2?4vl(i6UDzGzzHA z@e3~Ud%Bca)TI4v<>Bb3(T}?@$gMenj=NY+>d_tsDz>1O|_S5D*U~cT3Z+U`P z8T)~d#!G`k-5gc1z^iV?VIbxZLcVW*wN^CS2joC-D{y45B7a;2nGqsnbMB$U^!T>J zvf8T^#aEqLD;D;=54!&t;e#DT1j&}!LL-`Z-$#55-TXd2qm8bVZmYw=Mm&;Re*Ph! z+?X=12XV!qeIjnj$cVCJ*bEFw;=f{?JBG{+lVhDU-8g(qBu@$#=wi2+82Xd;&6)o1 z)9KI#Zc-u^i=U8F&ZCPryiJkV2@k!@PnMpRRJpoLD_9+IRBov=sHcJv{JaO5iiXog9 zEfJvfI$&_Akn#&V)(oW3a$V}R$AZ$Inf7K;`SIIzQ(D`;1dFp9>VdN9Gs98QdUtcZ zvT-t!p@d!|$zjf$`*}*)NhV#*IOG(RN?K^n;6k1fhGe{#pPp98lVIs*Xr(Ip0c)8iWFyds#P4vCR(yFHVM!3Zj}UjuE|eQw8BveS@2nq6Pkq zjl@ms$5L%fl@$!YPE?vy5$W&~`NC!>W6^&?suZpt8JuLTAJi@G%`(%AN1h^-LZB`d zOVR#a?GXtc<|0vkUFjIz6i)X(DmoYx!4&=VQ0;3GLH;)! zp&-T(0z%|(0x^hFRAGu)QVJ9B`^P>m=!ONRikwg8`OITpZH30)T{9<~=$laxLJD&( z1$^4=G{)TS5jvkf!K_aX_y2%&B%USw+D|!Bz2o%n(%Ji^iVuksht5lSQU9AL`W6f- zV*0mP+&xi|zR4qDH%B>S)Idxu%FN0l&RX6Gwf_Ee(T}R^u}R;RqUhJZ8)XKq+YBiV z(jWL-? zjwdPX;rtV0;Ze1u>K^VEpT3X~Q|OX+j{Y8_U}DwZch+v^0)OYQtllP1?UNJ4RlV%O z!xW;?#{^ogKwN>}gOwzEGKLJihZ`)0&!Z|@gF(YROX%HgzSSUTM0c2e-PH0HxjF2^MlI-dYb(1m4 zwBBFGmy|F%b|cgqveOm>6Q{driZO>BtHX85v)^yhmX}qK1PE*72Wo7NZ&>q>a&V50 zLlFW{&T3ccCMVa=1V}x`?ja9cdU{O)zJbo1rxu6VWd_an5-B(SitN}+P`{^^9TU1~ zjc@tbM`lrDS5?j@Q4|eSo_kmaxk_v-f>=*mS@UTP;g%`1<|d==_lL(9VZ+-W`}hu* zdhA0+>+(qn;{_IOS>*f8Rgb0yLJ1}_5{_`{)9B(WCm%_`TdS=n7uzMBhh+oeo@oxO zK>5WHUSI1_UHOVK=CM;lMq=K|9oelE`|Sqxe&n>m#4UI@8dlJrI&8HOy%)f9ud- z8MaIZVYQzB#@eCPsrs+#O_3lAD{)2(bVoW0ncGKb2JTwH!{Cx*E+i#7D*M^=b@tl)5#xd zB72gQema9JY~%SQB~hdMuQ?CBa>E2=C@54kdqXbit6ptsrhRje?dWG6dd+DVU=lpA zlZ*@F4(#12^5eH1&@^b-V(ASOp?c3+MGzmE2pAj?*f{=6`x~LZmiSTQR`T*L2L*>I zS%&Ycl3p+MNtZaE^;*rnJwfwhoWI+Jo0F11!|=zFB?;L_u)dE9ra((!`kSGZ)~pPI zgO0ywEj9N_ubryS|LNZNuj2(ux$6Grdh+be)9C1HR+xn0NttSVB()YALgIrjkX60HW(W;{?@*!0-R^{m( zqRwE56mCa4UuZ#dH7MnEPC-mu>4C%qvx;9jFGwJ{mX(AiDO(A#n0um2wA5=~^n=q7 zKt|X-s9po`=6+j5A4YyV%on~FPE@xqn%i?CMpy#4v$685JkXaAvQFbY-db3SMP5nBV;u$pN;i`DENybZAE zZLRV7VmKbSe=Rh^?SM@Ch4TuyZ%fp8yq&KG)TxPSY$u>!#eg^Nq0L|;CZoZ-ZO3b@ zRd+&fH3u)kC;kr1CS-kfWo^6McK@0sL0XY1)>-DH?dX-ih#Wx|Cd``Y58292*Gzqn z^i1Ir|2`2zOiZ<5a$v||6aihN>5PkBCS)4F?j_(OP-ro>=tQ*$TuUK(m@DyQzHorg zT<1%|ndFx0AU2s`hnShVD#nm0u z4(Yt9z3uV`QW!^2dWNs=5=rwR$T2OrI5zavf%J#w6wPq z$It#ZgT*{MPMmflE7nHwy=q)|wqT;PGp5Lho>(2Y@9c;i{4E2OGUM*3{L?QHa(wIS z!e448FkZN%whzM>SLl4WN1fI1$4?6BeUKcJ^Ma%$a&?J*==R+%`~79QCzh(AjrV~T zZIS(<(G!_Zme;#ox~TiPpiG~KEtIC=n`c7*`8!!?3}59kKXRE<{)t;!uz-)QGv)NxBK0}+B-J!GtkPf{q_qA1Hi;~$}8ch-nZ#phO% zrdeBZwbc(~cn$vc7~JNGN({6fPs+iu{KNzHg}d;W1?{AX)pJF~dHFM})E}sESrg+6 zJ83$(B+0%N5oF+B_C`x6RkefVt)+Q=+hkES5YN#OV#mz(S`--}Np%Hd&E6rCcoWl;1NC!GrbzlkwF#-g?A;Ayy z!Q~?G{%_lE{)!~M4sg^ve-+d2@bi<4yw@K@Jy$E@(M$cyr>ue%+Od71TM{}&uWTP7 z^?v>AEg#--GXx3FVxYIW_>^y5l-m_!$7WGoHe3u9LPcCCQKd0 z&nJc?ZVEpf_>-VXOG-7|zAK^QgA3Qe`#U`c4lARy-iUN)(BA=&aBb^)8E?~4Xh!ir zi8Ezp&B}sGqq*pnBcKbi!-X1?BD|R8h)2Re%vvkrh6?Ys*_W$2sB4#5u-1MDu(Nt| zjowUu5t>-fU61;lLdkN6pT%v?xZL-%;V^vRCtK_#=O-*wN2E}L1g8>#Q=$4vFeX!y zUjtH4Houhub(;fBP;`tQkcWqSJC&!YMu*)v5%cEXfcyLH5vD43-9w~uHQP%Dl?sH8xGg7 zy)?R(y;+^Pnb;UTSQ_-54?X~;Y<9gkxfFT2yBHH4OA4IZKSqeO(n)?`OU;xca^qMB>c!-I;Qku;xi*=Q%`*j}gH_Gm-}Z|w_*IDg zOnS`ZKp3oDc`6`0ZfxwRIlO%ju3P%Pc!_3TEKyek6JthcSx)Mw%-fG!lX>;+JJ1m*JMes)-zrixqy5LK&$4^@64HFS{}S!_h|Y(4NSTA({YwI_|q z*X5@;K&z~ySByhvR?~TytLsxpiYD(JiSr4ty-_Z~>ghM>;?*En^c`3cYshsW85*DW z1VArZ)b}~0@n*2prP}-NtQ9drd+#QC!TC_M%soL}-XHct)!c{mb&PopFaWe3@WFX0AUXifTVzFj7{B0Kj*`Jt;&D0zn16LG z@H{qYSVP~OgzvHoyuKHysx1JRnThwJX^5h0XwZU-NJ;=IB>+U@fPxk$^%KLxBQ>~) zYnroLjGQ30FO(>pI7DHFdSy#EJu|^dD(G{w++a+lebD*0mF|_gQxwPDgCmqQDX?MX z^c2OGH0T!*2_pHW&s|sUmizEL^^gAj7mCmFoa-*=m6ahn?Q%1nWV}^(94Q7j=wEbP zlH~yKU#S~10fP+KQQ<8 zN(~GKM=gypNW$MqEPrX530fj~-gHH>v9H8z3l$Z($;9wc2>1n5VE9PwW-t4bIGgHr zXo8^|FF6{|p)pnMef8-98amN~Qs0Yz7L2A5K%g+$mj!UHx4gz^8Y-0Hu%0CHknyKe zU4FwsM$g$9-wzd*!;g(+WA1f0AL9(0sG&>31O`q$d92zVe_ir?)6O=9_?JHbA+ys0izT*$uSn1OaeCfV^`6dnJitK&4s)d}~83 zA~p1h-CEE&Z{{y{Z0HSmjRIR3OIU#UfXc;pF-4{tuObWY0*VB_ZYD7FH1ct zmRLXMLJqs08O4MJ`Q`QdloGsWva%@gaGlifJ0z}#M`h;|G3!=;GvtN*qnu7fYj&nB z$oXwZv^isEkp5N`cv1=;={^~Tj z^x1=Eh}lN`@X4Opa$Hx_ut*CpA2#eNf9H599!j)s#1a?e0hoxP?fd8uDN)}{ zMbmpekPw&l2||~o#%94g|6V$QDS@wfliJrElRC$KuHZi~{7%#GA36#kXgQNWS?TH83j&ErjdMDOzi?}82k=@0zy zDLAe5_hmXq*pQk`l0#0f z^g4?^(_oP9o9bDy`gfUfq2$`_8WE)$Bxz{*arhd9K|Kr?#*_Wg{8@BjU$51v*Uq8I zI9Fb{#$*%^7&4|886z^WzI5n?qq_*P-r7IX4)Qe8zYZl|7nzS}(hG37-c~nn{>72u z*?M4ma=bEJR^!_3Eo}P&P$9?FnPpVgsUpu+__2l}MgxomP$Geplxj$klQw64@7u9M zi!kvQy|lTFmqcc6UCl>poQ-c`qYfPJR-5HOaNNeOT{v{4Y!&NHdwP(yQj0(h5-!O@ zDi|5bU+l1R{QDz!>Gzj7DvgVeuQDl#!tO*5tVEl{6^Ftpcnvf|dCBK*_%N z>o&RQ7LAL=mCH*AJB#4E#y0}aJOb}29|TR63zn|>kj09wXHfQNbL#E{- zp+QD*2l4WARFn>kpFbC-s@7wPN@DHnV@HB`QN@13kFlwI84Yyt766@4tIOS0BW)Fi zGeE(Z99Z+Z5J{D&>Wu~s!Jrt{^yr~8(7j%lVqBlErjk&M=SGo|V!{%fGYXJQ77irQ zm&bSO)Oi2htNVdSTEvM|3M0p|^Ze`ILjead1Kcj5}BxqxKen2|LsO~LJ~Dgd!g%N0fji*Y<`Ts9Z?WNBj`V_p^fBGK{@ zaCJm&oM{r<*2}p0(kA}sgpZ+=0T*waVVr!lOND=Ps^RcRg33)oCr($hCWbp#WY_#;0Gg4eCs;!hPaaZ19ifbK2 z2Y`V1h1-U0p|1jZa+rL%8^`#%ZNX;bP-u4y0JcZ$m$SyYCYD@vshAzQJ1AJ^?GuIw zPhlm-=po0;YA4z7EL&T$k+_y^<0VCT>Hsg%L9s4a9lkFcK#1xJm;7V?-4u2X5R>}O z3I5#mj{F%gvxDK{tIo$%?T$Vv$~NP{1Inbx+eyn^@7l~iKK-!i;d^?nr?eLF@S}Y! zRkjbN3s|{dxLSRZld6<;uoD%f=Y(n8a4StKz^cpVqQ7uDR<{Hu`HC$rF}xb5*l+3b zjKB@MaK*O&t00?8vr&fDKlc{*r{R+aMp>!C=R;Yvx->@FqoFP-^6~_Og~@Rg6M<`d zjOE|pRZ`%F_+X$p7Q8*cYVWtDu||RnuW_pb-x8@}!OBKzudNAwq*(oeBwj=Dhb&4b zx8XBLe=}5@zJu_|gn8V_A4UumMQw!?;kU*bNS_vK_9wtOS>+pt+xVR8GRyvA|~Rqp|&PJ9}kk&?UnN3c>{ILznKTt%{Sy``B3qi zOe}f7as)-1QCAoWSAb=gJ(`DAXJESg)6e{KL&c&1O{r{ho2ylw9BoYp*3()03~r-h zMzx`HZkIKIpEtuza_u5>u^jO686#T0$k?{-dn31aBVmzM9`~Eu#c-Rqor-UXBK6nO zo#8H!F+3qjWon+%Tz5TOQ1T+k4uq`e4|Amb$sil`WJo>Ic(a?AS$nPN2Q`ZW_?CYF zbH5}V9X>d?AaNuJ_!i$s#I4s7ic#D6Jejk$6C=s3;*Gzz!p?I~W3^yLg{2e)LDIx! z5Cd6*rVd|~^Ac6-2&($~6uUk)6JVsTWGE0;r06BlpK*dFJSG_gRrA0VgW`%FrDZ&& zl=|>E0*6so$Fgk0(00tve{3JzGl{6cfpllA9DkaUBkrzLSoHs`EBRi}t-ha57sX;o zNXUoim0Zgo-F@@@6aODW&cfmu#y8uK+GC*PxC~odvWMbjKjz5n!mLok7D^D#x`zK^ zGfUKcdE9^q-Pg{xPy|`j!~euWLeJ2lbPALm_DU##5@}I;BY8iywE6K*(^`A+EaAC; zSHg3?Stw>{vmYE%9wPA+&&kRTILfnwP*Ve@s&VgdEIiyM#*+Xgy%!Y%`##0?w*JjPU4v?E z4E-Zl+%7kLG^_thbIBs&3Vu-k5D-@5yo=W7p5eBeI_;CAAr&utL)-mDa6Hv2@nYBU zWbl@{2UDkxBa;s-JylZ`y2?##*X+fSlw|+DjF{R3kp;=hdgK>V=o7FhBt)N8PK8{) z;GU=0P{wbfazw?SnV7Ixju$=A`zeQtB#W`6RMWS4ZLby9r6QFzlSU@ofvvO=sFQy^ zc!8%#=U3(3(ZxxL7=qwWMGZ;Nl^nbFsDop|;ZjI=C(vJfeF#ACTV@XzXiVO6!$PBJ zxQuphL2T3d#)j2MmdT{|)+es0pI-4PAqYX#zR6#ojg_4xtt0OOi*TAr92Axv&-m{4 zMC_?ke_=LpS_KdIatMYY3A8VwJFF{2eEGTKpRtLUE1!^Zy#}Ja< zJ)+!f0cLh>5RA{tAp7Oz4mB}iZbYRoo^YA?znA|oG6XtB?|R3iGK;Kjrx$cRuoswcmZJj29XVR!X$1EE`-5s&2s`mq8kxe-1~I-I+EY9 zyB^l)cPb;Q@;u>~&Tffn*p4I5iHD#9r%2W2B#bnzv7XsW1b4 zJo%jGUAOauC%M=5!r@o4ow(CESK_}=+IK_j7}X6G1>r(MTrWgtRh-#o4uk+9q4*w( zm;{d=i?<5M0YUZA2up&fhI)2RbW*_~Tu@TzLqv{0?e93cvuSq^QJ_KfQykCmFQ_1l zsJ>^yLKUs|G9SFWew^t#H~bzH9C7#JIwZQU zz$K95-N4KyV`lgw0Pg?xMB!Wf16>ifdqyPbcZvCbNi=mi-38+&8TxdVJ-U+jid1N0 zye!ppYQkwr{A8Bj7m@@pT2N{S>Jb8IWjx1OUPnUveG;AoOH?P@_y@N1wvofHQAwjgDogl`Ufs$P zjd#w%)(5%#j>%6k;(kL^&VRV*^xB<~If1GRJ)CUOhM4hsCWC7~8V?80-?a4ZX6Ew2 zybUdK_dVtk+*5w0mL9V2eIpCqX!!1I+{T1CN@M~hSF{xtE8$~>UcphoD>(g?5to`} zd?EJcN^AdWoo257qkT(YG-=4`(wtaZ0d)=Y#c5^NK(nI$?ssNbaE86TtswaW{sLYE ziTXD_327NYw@iGAI(OPD3y zt_fTd7iN(mnTP>(egE@J{OucZ`igfF%^x{P>wLz9BxuNL2V?09dMEps>VtpOjNOZf zx-VzGbrSZniV9@Pp!rZ%Jr0R}^X5+s#?ju5myl~P=@Rd%TN9@p?CUldNUmhdfQ3^h z_-d{FQaf1L-4ca|^$bF$|30m$`w)e=qV;tbiWvSG^Tbjuu8E(My|8EU>vjO9Yt?mx z;9WMPcQ}0~Bj!E+TO;bUx2Kn-emXj9s9N_6@TOWBSy1wD^E-*|jLFIxH(gnnYakXr z_H4Y1y5V@>mQtZN!BVX9esxy=Rj+FhTiMRuc5YU<_IpQ;PnwXP;cC1%GL=Hk`W`dZ z+dYq#(S8#5=u>yQRWx>`t>!Qxyfg&7+oEp2&njG>IoA~3wJ3sHf@`V9r9Wv2gZ`Wm z1|T-5kZ~o0mJztKUBN=^S6z5XCQPD~B`&UsL|48utq?xnOT+t=cB#mDd?Y#6*B7da z+uewBCb@eb8cu0OX#k>Cv-aY#m_fzT(4s)M1jQ)}ujdUii6WVlR201L^ySATr0cA# z2Uy>d$rfJei8U|L?l0mIrS0{0=Iz%k;uGayG%hTUrDf{R0|`PLkhFB_&s|x3)YMYZ z2{w%h6wjt9L6w}?CMh%f!#Ym$noyODn?R;74R)!W10xmYb*s>f$0{kkb0btw264mv zwLYukgy=7G5Q3Lif)YeUaPNS`>G^g5D&1hGAGxOT&#y(Fmv;Ik5sqCw>*u=1Oa=zl zyp|DmkfCCULo*Ct2exOKU39&FnSIct3v;ye5~M4CB7hp)`bT(thVn<8xNNBHo;Pqj zd!$`}9|?J+0lmBR!3C`UU~FXsgVVvxLUo~Pe9kmyl)6+Oz8G7Wr~GjIivy|M*s4nu zJfgfXqv`3$BNZ=qu_H!sw7oSN)-bSE66{hpW?PDa+R@!3WMxl|)DUkYRI#R8Tai>x z?CxEh6~+^l49O9hJ`Xq8*33^bHSo1%?9_fxEEutQNgiF0*!C~)gtdZiWn4%RC{ycJ zZtzu$n{D-(lh z^C@+#qWtAA)mEaP5xjs&puIUXw|vaqG97?e&t~Jx?-}fA^e06BapGY}zfHc$PsI_b zCm+JnnZV!fz7LOWu~dsK$q@ffPa}sik?Kex-A>}sz$z%gP|)JiJ)21?&@it34AT8* zV86PO(lUf9D%x53T~@QV3v8f(ePS z>Gti7NgrdQ!=><_9v8SR5!pCtvsg5#jdlU^Iwe@ndl`0>gNV(zS~}jlJki*UZiVB@ zG#aOYcN;}og#BQjvmTg9+Wdw`LxW#|y|twX?Mt)yxD-3B{lkkX>PxK;T?ab`a+}fbJ+$J{JFEN7nXss2^_|lx1s$eI%ctW&Z`wpS0*JCnrycFS*Q8hxM#-b0mptr7hJiocA>&3GMKhiMI z9T>trU+?dECTiGq+tJOPf;vLL*ZuEvi|)y9?`AXXm4~&E#^V_T-1FoM3IwR^>7E0! zoGV6&BJy0 zrI~d7@y;c2Tpm#%)|t&xa+mP@=Ge*OvvICxDJ(xNR&m2~j2j5U_GbZ@ga>`DR*OLz zC9wCrD-z^5ek5<4+OsFF-a)V(0@vzxbz5K@H2@(1)TLc~o_y6{>v%dv(AAD;A6^A= z*on@^M?9xrQmb*;W+M@50M9hj;~S$Ocx*bK{XQEFMT$8wVvqM0iLM&XNArw7oB#1* z5PjwpeVm1<8VC``dLpIVhrxkg@)f{`a#X{Z4lyCx*dIUm^7>SZ$|}&Y`qU?=V6eq( z=QSFEhyn1)2(t_pemskb=HnG+ICR*ZqSORftXX$QcB+wpyg?=Z*49R!Igy;zo(A6p zit|Ol$nfx}em*H(as=W~f<#x)se4>X5?lGevV+C2sLPm(RmUD0wIUu7Rf8_MID-vM zQR{RXv;2rj3~Sn{3G5XWHuwK8vfp3#ni+@|b(}Q<@%x4Ji;?IujbDDsDsY~9<3!jz z6_tRVkzF`K8Yp(je$j(oJ6}c@>v=)Pl`?!gd1+`NvxpxU^SJT)E2rYm)2#tp+`~e4 zE~zBUH+`i$XeCcLa#_QyZa7;>*nmLzt@g5-6y!w)T`-mHjh{79>|XzZ-2Y(aJpl}r z^Ce}wNMh#An%tBw!3yw52~%yIw7ww-j9-k_MV5W%pt^MvK4kb4!7Z4Y91Q?Q`Yy&1 z^G6(1$(7h?N-ADbhr&LY`7$RULfuLaHD=V=fX^`hBF-zPJwhSEjb1hg3|e&nxkJv+ z3Nr18-T|#GWQYO0fI1meXF2adIf5wd9w$e6Sxm8HBLv;$XsoV!mpwE2N8n#` zW^gLL(C(>`w6j@}-F>nPaNviFhkuI{KI;bRvk$CV{#)G~id)9=mI5(~ zAKfEx{Njb5K5wCMgeE4gG3(VzbTh`Q*`YglpjvLHtVmh-at^;%?qTPA1)7eZZY?dyx+l+fY!`p8S!cNl-DR5Q zYCo%48n_hvi|zLyWC(R;*H_Kd$gL^|8dK#E*KBC&OkmgaZO~ikju+;QP-ahM zsAhEIQ-A>J(c17z;LX4F5J~sQDidBH+A^LyT{vaB=kVFJ!2I?{`2%+DpD)0ywS(wl zo%i_D#fhkC6&T}BnMsGiGf39$A{GAc8IF!_{I@vMD~=A-_n}|6P2v=uRfvD65@-`1 z>dabW0nr}yq!P*9yKTi|qfK`B$R^FbD2XkALK+af@_9x0>u;Oz2c$c-&i0%cG<%VM zoTBY_T#9RhzPXa%*@W4q!h*WDCEBtme~vPtq8FA+Cdu#Hs9Sn7FyiftDru-~oHn=J)V`zHFCGSuHArLAl7RZVA~{rr61nD0O#^EyAZh{atl2q8 ziJ!5bZ!qn@5w=#}@{CJo%ki90U{ISr>Svkpio>$#tS@r{AVH(R5Wj6k2|txd%5T>?7QHr<|7{Bn6K`VA#=C%e+H9G zxYp*?{sy%D^kb3Q`WxW>cV$9>T_Wf@WmCmdF%)*}umd60Yw&7};g16w2J6VwbIHeP z`z^kBb^&e3Zw0UJ0F#7X#bCqD_-&4gRb4KA5K7ZN6l%8ddJ8Yh{k2C|~}d5c{<%^1TtCunhs+%|R}t9YJ3v zJ|iFfElrsp;&qrDW#)xL`_Uwf(wkZZ?NkqN^HSqlVK|&CpOKD`7FDO7q==<;Z@RA- zi*6UE4fxkmq6YJpHGca7Y%VxGv);#J{|yM zq8%cxBAh*LNS#05hkMtRr@lb@rulQAr+sSdVkw16vHiRP{9KyONtwO91$?sc1#oC< z5ua;#yoSL&hIg=HV@^hGT~#+%2A`{lwB_F^<^f{P5WgfAai$Lst9v7+LL{CnK)x17 zh4khnn792S$+-4oBE$$fS2)XRV?m#3uKjBJJqYc3v~0M(3!(qq9IKmCpuxue9?kWX)s-wYwM6Tg z65UbOGxWayuW^&y&o>MLPn3IW*+*+`zR^Fvb0oy{SRv{yp?A7j&OKJ~2zfVfNA9)V z2&)dEFSw76Z@BFfM3Gz_GxKm*r{`9o-|HSYuYe45X_K<%Gu*||_2y4^N;fchD)|(s zE7kT&qCBEoj?q!i%SM;&(TbBXD_5dVL|R_BZ8^;$40*^y=@0}og;4%EI^|_K6kq{@ z-yw+J1F1ATyuh~rtw1%)cl>bB6ae13*>eAz`6lD*h({#*&6AFkE_f;yw}A@O&86k5 zqiu1X_Pje*PbOWa3j%`0?v>%w!_BaDS^5moWwDC<3eO!Jt-J*zD_W&i-g`h?JfmD; zQW|V*yh8(&4#A3)-@b)aH&eCT!vl4L!T7P3x%WaSAZr}eYlrcsVx;n@co!E`RArRr z-^p!1S14(m=WP-~o&BR5g}-IB#iNgT74>eg5;b?(?pQ$y61`Rvfz8uR-gO-p6BA?J zCRTjxoDZRbRqRNQ_uDE#!clP`eYS4J8)E!Na;_I|UNGtc2>;3)G!_}KcTtAHSx8dS zx7#H|8qclK)WnH_t&C#nbavNfErm6aG5(J z)L8gdSLXBQ=Qy!v7urI7Pg*or&e;k59mA8vfl^?VBtNaPdZb%XLPz=K<4_x`@ajjp z67}-*-M;h^RY;orj0ejJc}-_U!W4Ed*X?~QMB9W1dpCku&-i3$)6cmwLvFDl`xjst6`Q(&Y#@J6nLlm z?T%kPk-U^csvhvP)+ja(hHGHO2zOVJiPd<1r=|`2-`%*)5)wwXGX7{wamkm19r_gH z>lY;YUtd4guz}Fuw&FD*f$%naID3$(OX&sQ3Ayk5*)?&~75=XEoAJGnPib*`a!cYg z7A%VV565K0qmtWzCx3A;3NPbZsX)g2N&^tc_p|NVD=&n)}F zR-#Oo$qH+>$fK9?XMLTWVr+Yzapl~1i2Fsa;`{xY6$bx6k`O^i$e$;hvU(BF^V;Kl zw6LV#nr57c&7$Vhn*}{$M1yU6-_%C+;g@tX`Qs&#T3bA)0Y3Zp3Me3g@jhlt`(e6-e~0IASvxsOhL74h1fyZ(7Cy zsnuCRltU>sLP?{X?Y~jN03bC39_SDKYXCeHbcjF#shBZ1_8cAxghY9K+<%mmG~@E5 zSbq69bpvOTA@!m(?dsu!6LpR&Ws9^y7KK2*b+HS`7g^5UA`t=26kbuAn$0pP^P`Dd z!izzu_eH2biT~q@*pL|H3DJyv$tcBq2o`#Bplht9YBK`{j+Y`DcN?Dh$EJ;&TCVoZ{h(f983m9?`$rTGU znU;>kebTO`790Gr`aK&pc$6=;I```~Mmbp0T5STTYhCbYiNwQ+Zdt@w#w()gC39l# zCB)7=iB(8$CDV?3bx*3fAm4}CpqY}rP@}m#r~ccx=0!E(_NV9JsoxWr>kg7MgsQpj zbT{NbL%d^K*AOU5-BjxT!fxR#k^z8B5mX=1aQ;sDqSGv%lO($Cur(w|H;#$z znFr=lPv!qU|3{WFec!>-le|qgx%>NDU>2SwDf~GX@`EfPV||bF0Wm-8g&#!LS_ zN^9nHXU|ca>tV6v_mh_4eHB;CM4SL#sCIiy;{Qy&e0y8nMvt5A2l*J20j0uYb@8Gv zpG^J8@GS4PI?WBtRO6!F&QU2g8xlJ>)-Y3dgtvHD`2 zC#5?Y5<-I}M|eX8tGao%yzsRfS-f@NU-AvE*51L8Cte5BLc6U;9G}IMndkP}Z9md~ zf|c>{m!+J|vFJX|C5(3rRPHh0yW+dK-AkJgV!FCb&HbEBVPeF1T-19t9iLzcoJj)V znY#lgAGbyE%|moHc>4w!b*lEzrzM)N3*a%8v-4oqROc8n0!BdsU!s*p#$~{VK_?|? zg*wCeA|uK0H6)iL?1)In3rkAurCRo23Xx{4u=%yZfE*#m=5uX;jPpM%8hwQ|CRhla zUEH;~12Rcl8m7+s^cMa;T?F^OE0vM9pPIyF#Kh7beagE< z!UE7Qk=uGi6yPTAJvB`s?c$vWjvRFIuF4@DY$rts6C8vq7W9noSB%fbl)LqdLoN9C z>!T%3!>bEJ_~$AWFH*f1N|9o3s`@${($jK&QcI-ikmxqj8IpGr#dy?_{8ZP`C5l<) zi^?>Qz-8ksPu}kew7@DmPi#PMIb$6F{M~~8>{Y!>ky1aQy1^GARLHk9N18TEAv)l@ z+-%r84xRgqT>O)AeAeZ5&RG5BG`~bO6~%@>X|?4E`WpLL(%F$8G-uv$6YJdM3W9_y zyO#*P8MeFgJkm7<#8<}`vcdYnh5YY9jB)44q!Cqzz=-n8Z1vToex2+Ow{g3DCEWgZQ5=FlcH~WEYuolsr&XSum zwLpDBDGMwS&R-iw-btkw0ZB@JjU^~Z4uz#;+D=Zy@Oe*^Y8-$+boT(b|87|cSB2S~ zq*+i5VBY>w`k9CxXh=AWvd#o45HFbZ|NqvxVZhhGk;W$9!=p1;MI5iuVvjl+pO`sx z_VpbMr{xe@XQ{c3$$$EvP>B=5Zshklo1^#5eyiP#mUXKXQnJ0_!i)z*SG~<7qL)#3 z$@+}#g7I<6!1x_jM+G!P_U&{|bwZ7OrWNdBLyd3p!w4XX*zd>hP}MCgDuaA7s%}zIwIQIbcplu5}?UDHT=Nq>wnEXfKht zIZpQ0!=A)I8CJfznSRn^Y+;t7p|Vp8D$wWYY`X2rrH|xBAgB-N~7p$BQ0(-&roUvHW3+{h+sn^X&Qg z9pe9zau`XMf45$h5tum-A1h(KrKXE+dS0PLS&7)6EJopojYO50ak25&P6rdUc7WLV z;&A_jO1-LQ-3kaO{y^3?8bWBpi}ZhKuQ~YuCb$LR&YNcwQ4@}HSaUBUhx_?r?{94xf?dhJL z#iqs4p6-8)B|=+ix_74O-vy25ofoi2Mb?35>?8BfVo0q$uV-v3=X_aBm>+k} z7`YTxx~TN@Kje{>XB*^QF1n%lj$95Fd)tmQekp7IzzX zubp3Md16?tVd^6>On!|*i!Z0oGP*+Uu3ME+-BVSL;YbNBegh0t&DXpj z+OoJogFrCI1?sZsH(KO#b^-&y^}FA6!hj(LEQT{qe8<^-k4Ok?16N;L9T@(Itqflq=|$gRcFnAD;OeUJbFr}(DV7T)?T z=LVAXku!kHfRDv@O=$;-}4X9V>yog=194kzXvoCsqE%2j>u(m zo8yuMUJw=yM#6=w59D7F>Tp^&H4NV8{^B(>Vei7(KPD;_daj{-B3}o9a0xqyy}67t zA%EFKRRVRG6>PjlXYRhVi5(Vwl)W6}^8|>%WiOQ&i*P?_GWS|3476E&=Y2D61Nwa% zqpE}bEau3eocfD3EFui!9P*EMuoGg;q%qF)Ft%1&voZ>Tdu))lZ67YJt+y5;?}+gM zF@ZS4)TP?`m-qRdc48f}Y^<@~(%y9Z?hcp&=4e2$lWQuo7WTq1u$-CvOriM4EC<;` zOZ2zR#3jR!SBe-jcQRE5@vYBt$aMC9%E@ z^3gA;pwNJ)s48af-4D#YX@>s2cXh=@+58OW<%MLLZ1kbKZ)VR3%KE5DQ85*v%k{?7 z$;EzeqFA(J_Ng{I)XN-@d%o8bEkQU4I#^{XJ<@Ir{=Q zVYa8a5BUibFXYIm8n5x9jd|sS{Q5f*EBrdbVS|g9`KP?G>aYqQJ*1Ybt2xEs7K~-< zR+z?PGD9H<2A6#odoKbvxyb;J)_~>lZ?FV#Lylqt{;0-(7LaUhO`~5D3WKW%Qz}5h z2M{cS$y7{3d;=qi32MO{7PA2Oe_a^}F$^9J8Q;oUTjit_+b0SPA_E2mlT$T?jHiWl zeOaLE1jrl$SXm{!k%=kHaaDxxWSD#-(cKJq5O~HHw+ItZWF+0uT1pUOUi$KOM?7fn z{$-7$%EKyUEUWtqreO}3${&#y?tdLd`XT`W{k48O-ojSxbmyg48fVen4!ISpta%Z+ zL)SB*OO@rCM?zbQ#0Y`)<0?_Z$IlLmY71coqBvf}u#GSm-A(*|@v9_ObYnej3g=(^ zd=W*JQcz?<%Hs0;Re=2SRhg&xArT(^&wC?2{W}=`$hbN8g5#SBHJF|)@@%P(OaA%} ziSFG{C1=9<5e0MHvVKEA{f%_A>ID}U)`f>T7o;BGCTaR86>0ZPQ&5CJX1-Nen;UC+ zLW;UfrsuY__-lHKW$V6JSI;J8E zp#kU_{N-~eBDy)z(LmjMwmLB;aEqPBt#>ouIGI?%lm-9ODo``}C2hx89ZIcxh=Q8t z78kOkgtwjUVtu+W;34BX0#yfLyoIDP0wcD4uhde1FUNqG*^cWC(c%qSmA8fuwfbVE z$JAL^gF*bn0RB6Vh7RuCe?;{kcj-T%BcZqFqp#@y7zYpl@e}$tj$&~wW!O@k6g_*# zlA><_#C(?IKrb1$-(_PlNQ(`TZ$uEsN~?y{7McZt5?L*$87(nT!VHHb6cw$gJgl#*Yb=+w%066>mL63*b?Pdz;mnvTB3=#E4za*}w}X+1KZcIYvJ_-nfSC4-F;adp*?B_JiOPj8j70n8*4eJ@T}PbSUb{b@S+7)O zkGieA5yFY7wXq-?Hg15(wCiz8ULW1O#TSVdDqq1?;Af9*Tpj{JkfIao(Ze*Q$_Hv^%cpEu*Z4! zd3`qxOS059cdt7wq0s*{$#(nXQNsJ?-Knv$$w*0J(o@B|n{T2G;{`Y84H#{jD`ZSI zxVF_^<0r>8HR)~eQ)8w&Z#@01Ua^xx!(73Y=(+Tu3LhzCVKG@}!sF8<@>`#qAuS%KH{|$O4Kqvg zK=%z(LRnTVcx&tSvWUVlVcnU3me4I{=kT+)tSIy>{|T~UcF>ty z*m*Fnx@x!(8zQXP%lwH7L4ZZT3CCooocZKmG@)N(wkM#D*;|dAS5+bKzLrrW=p#xk zpCTP&hk@h-Fa`%e`VEe^xkCT+e@Ge|8V-ed)&R+dufHf@~1y}!u|cOMx6>JGXPMsUQfrFGbq+bQ{9oD z?e4KSPw_pXxC0!+6!qvp>=BA((HEVrbq`efj{+#ps@mt*-V!|N^1Ud#Dl!j9hUD!K zrZv*?c2zne+958n#fl4^&w7=X8`=2(k=v~BfafHNNU>mO%d4}|Dex_SD^$T25Ls?X0mWB9`3 z8W$)LxJ->#{GRs%G+DExPctsLbgxAT0~q1$baM;o@QEBT=;x?yU>gy%lOhvINac!b z>@D?wIK|fIJ;QpmD|N-^j}nxrIn0cU(r##afx{XNqjCU?Ia&9h7+F(m^y(J{_nMs( zn%t% z7~kvAp1i+##%>xD4zVx{Q09{wCB!c*PgLpN%U-U(V09a8&L%I~j{RDZ&GALZyCg>F zpFd;YN9jxw5^4+HFt-g2bu6W-f{F*PzI+V4OwHHoch!%j?&>+S56xjsnnk#oTfU5Z z@G0s{QHr?OF=A|Pfm{KAJQVautDGi(DZ9Dbs))Hi9qmX* z<7a$NQ-JJ&-{$;kD+7M4FoEjFt%1q53PDBWyR>^_weEC_2@PID+M5)CUbR}K-2Xxk}FoB%KO^-HcfWx4}TtU>6(9N$OEfN zKAV7qHaz0K^ZElTtj#9;V;;&5O-6sy|#%Xi%tejr2eJcwA z@}a*J{^qu(aHm-J6QJc|;-3Fw>MY}$eE&8qFk&>LM(1E49n#%hl7dnyC`d{-BSteO zAU#0ApGZk}ccXyPp@ejo@ZA1iJ#Tq4K5*~4uKRnP=W%c;n*??)@Y6(-t_szWQQKD_ zbDz`zGdD_9Qdq1DqL+rX`hAJ2*`R3z3cbycsl1q(WZq=Qu20cI7InTxci}Sc?F}%!SYa9Mw=F` zHh1^)@Yb~Yl-wd(Mn>5c+XF&Da|2a81iO?7VPjPlTz`eX^8iyU&1D@1<}MP=0ruh_ zAj<%&)TuX-Z*`>*>#SOZuiR<$f&&GtJ-r~`$Aub6dh^fj>G z@rcf{ihriZcw8M48pMPKkzR*B!hLwoOws&7p!J%heX6ll&jjDx;@zv%7S=ETw|-)( zQ;SGeFn;}yw)8g(strW|g?}1rwew@j2}y3D#uHL*u+v3K)#dt~SEhU@$<8&ghNp7V zgBE!E1Ea(Y89dP(&Z{G{19vQ#)DfMYq45*z#JhLFLJc3=CnjD+P~fFy;SpDq6{)pD zB0Y&FQ__(kNMz}z7dd^bG#+YzoH&8lb&3_+0xv}ggpOPmwQXC|W+(*5`Lantm zln)-B{j6TWSJAEk&C7ym?p#NqDLBtyEew6Sbmh`vn3w<+QzFHS*CDTl_c?9sQ7eCCX&T?7HWb{m) zl`;f${uC#*(|QLz`i0H6?6eAgU(HI6v8a`I;q+MgNqz|Rl26>CgbG1hI-aFZl zC!f^W%C`mIWpP#F`B}(x_K$!)^szL3$kfq^4A{i{6t=c;igFy6PR`wWT3TU9GLpvv z8oO#lm7ldGCXb~@6lv|~tw3COa1T%Q{Ei2w$ES+nU#NG2WDot-AvE95d)Asf`O10v zc8~c+`1JeZt|5%MvOwN_q;v3~z2m*}^2((|zFqMBQz*+SlD)fp!1#t-P1@D4;I9Gk z*+kz6v71YoLGKT@>-8TyZin`JRMy!Nq%VIbb?+bG+3j6gjWAn8P+WOvp4CKsP3I+U z=2dKdZSKU&tMnzC9^L%8C{V%_J^|hThGZ>vFt2f|h$Ure0@wZ-*a`Q^MI(NCn<>u= z46V(Td->LIlOKGuOnthnLbdp3vMA;OU)9{1v0wm7E4~O+RApn;rIbSZm>j$^xq2d?h@v|<(KddD0R94_wX4ZGg>MMK73ul5W)bM|PwyJaeG zy(H;jZMfW!$O*k<2=PB;NU{#(DsY_LZl3d7;cd%lrlS+v{&`)ZyeviI;I&yv?@kcj2O2qT+@rY zgPnXRQNMrXdJ+hCRcyL+*Zjg)?UK)su&6nL)4Y-7j7u7|Y9v$O`;mA+yVtRCV9w4~ z%N^n1xk{HFJ+SMkYtu^2y|2&>qZewQ@OOYWYS=eW`E#mL7=OabE3z81;rn;85|4q< z*YENGID2^G#j*Gsxlq{7zWdp0(p3VtL5^$di>1`m3;Oj$#Taru z;a^HC#i0aZwS($T@H!L3RDczud-}g^!q2! ze8g<5bU9XGot7V<>E?-cQNcnrrTGK^A0}a69NQrv@zvDa&Lq@QxCN|>M@>R*m(x^6 z|G4CFK}0!`fZQ{x^oWQ8=*CSH$LvG$_n^*CK4Y47bxPIma8aXrvI&sKV$z@`C zG=M$`z|4Mv=zX->w_&ayRBN&|MZm>4woPn;0&y|+0Wh5o)ei6xR=geJgG$9T5V)WD zDa}6keSU_fv%H+3Rh+vBCzQ;B)g)HX72X;2*iZ_es>N)1p$ zPniT71D}7L+z+X+S1d=lH~AE`f099?zhnNhBQSYw!09*}Ck^{^ZqqsTHMys*mkIHE zUT}$WZC*y;FxUWL#?%r^_vfPUpuyRlbO;fRWZ}!D(+t48n5cJ5yhV`QjIX~8*c*J3 z>=7B8PedwL9G_)VFh0n;qHH3#z4Jmc)m9ZHwyo2_CWys;`jij2Y%gr)L_X#8_BbI+ zK9KAB8e`zGy^Blr@mEKG#MZaIG`uw42!2LnwD@Yp%Q!<0qRXi;593`@4XZi-*O_n` z-N@u@F-r*S2_;3~U+l%d=xagdD?X4SF;_MlOs+q)3%$On1*NfqX8?^&@{m~>l@DQu5EFd z`sOo=pS(XOSlyjw>nP>#iX#vGf{uj~P3Sjsom%Q&FRO(OYKYw_xD>H=6!R+)>frI& z;G(^awnznb^im?{?u>eDF*ttOcWG^tDEYZv&SHDP0Ya*hY%Kaypse?9 z7lA%IVzXz4gH+&d@Q`Sj#-0_)^;t;%3pSF@l+$vuhSL~O3yDm{rKX}IN9Me%QIsib zED<1V6lYfEa}0yv2Hs_?yeKiJn&V%Q6sjHsyFwC8NCb}MB^Mr@wZSmV_7`<$)cU!pIo$c!`ve!eAvM33aOc7=r$mF=NZx*`Ko02DO?tz~gKMV?(tA z&ihs(Jc-A6dJ0Zmh&6SU6(aiX7?Ut3T}u>TbqkekMlEt6KEMf9jppVScUINrjV}3^ zCL)~kd(95?SYi+Xw^@n# zn8Vtx&PqqOU@fo@Mn4MUg#x=zf;dt(nGlQ-$GY6U#Xo*<^!}`-LnHn;vuQp_Kiv5+ z6{Dfg4N+F!kpOC5HWn zt*u)oOQ8K9Sli6*@7?FQvtf?iwo|HR0fjyTb7sOLSApA_KgV8}v;K0svEM3AnL&<7Z+yt&bmX zwl!$#(?a#ybu1ov_v;9xD31pQU9i#rx3l7~7e^ieiD&*vzz(n4Q%9G*PGIHmx^&th zgnJn7s^b_M^-z9khIgRws3@y(bKRau_a}MpFK#!V8X0pb8Y!h@i9|dGn>}t~o7BXQ zB29;TRjH>&O8qCdCnUhb_&WOA+FF-$haEO5vN=587rS|8{p`B2LC#B7Kk0MdQZ%s( zoTPI>H6ZZ`nOJ6U0+yMpFpnWnak8%ZBtU5Xg1BS7_Sstf;>n@?W{~wW84?Yeph$ib zF1w@Rs>?D=ekS@9{kTAT{T-!otym2h9#CMyP0ziEc9OkNjPc2xj8^<08pB0xI{7i! z{C0hP?2Dq7L<9u;9Hz(6sIitEAQW`&KsPc72loo3 z#tt+a&`hmWxz9VZou^mQ?90YWDddscia4)6!h*H-kE+@RkchleUq8Y9Q|UNs$Jlgd z=*PA{X^~QZ;0|P_uU=*IsvnLX2JU$(O-E(KIpK|ecO(|r;dVk4%#_%abpe9nR&8Al zo_B0@jQ7-(FWr=NClxaTxK)M)7@K@3Di1XgUtY53{52-f^rV2kkBM!7V8J{b_qdC_ z0J|wJYI+E0KfI>^Yn~A)6*kkN7*4bh8JrWeQJ8Sx`KoGh;AjGCLpTbfUUv5{(vBsv zcG<6NsJ=K4vzTurVy&w52^a2+$)l*xsie?|rc7_EBH`m_THRV93>8!`YRmiF{~{W{ zh?N~dgSIuAtj&_w;pYzkuFR;F43+aI$60vFpAHak`VI1RW@7Rkc23`Bwx#rai_3SG z&80T%64z_nSA@1P?VY z_OyWsZx*&HtY%_HiLRtI`~NG|9kI5ft+L_qTCHaFbD_qo1bJGVy&{PQ_j{5ticH2r zfB((N__@nzwgl#T>O%H)@-^<)L@7`zZAA!I7$?7&m7n(Ux~P%1LlJKU_w~COdqY#X z=``VIqZvG%E2!!eSNBNKsEAAs#xMty{8KBq!8P93N#TX0`!TbE3I> zC2&v_JcEg^5Gb@u1SDdpCMW_0G(qUNP*3o|g5Yj^mBGs<@Mvf8i-ZU1tJK{>H9@ft z(xM|mwsMUk|3l}&lLs}l{J01sAx0}KYOD+qvf~dNDMwyNNRx`#4Wal{n#D2I1T9$)~>0bi9`g9HB7pc2?T@Vkj&*r)31 zLjdg}HpY!SJci^}-wREe5-#7`00VjcD-PCFW;Zb1{|Zm??J!_n$^@3C(h2)6Lr8{Y z6jGtACpy2vZaj*6&i4%W{Mga|FOqzDDKPOM5LS~^;5d`6QpzB~q_6Z|sD>ownIli! zYc9Jkbgjkpy7Owf{M#F9%V;-`YytT?N!87n*$Uhg0w-2sMF1~U!-d6CZ5q9wqP5Up z$YOch7PK)KnLqp#60-Ca-$3Zi7Tj-MvU_-hxeoNa?S)U}&PO~0ejE^eR_Bu^1`hxa z3o)nJDU+4ASr{Gv)(a+N%C@yt-D~{U^g(s1eWYTCjLt&Rsf;ppQ6@K!4o&vsY-{&H zyo=;TpW|E@C{L3QyV2E*yZ7f_jDPQRa&qs)1;(xkXJ6`djXFEH-^AE8-28oDP5&%T zl;i7>SH6=A?|Bc(n_(nQqVp80a!dX?p;2mVPM(uQf+nHEO<@!_$&J&s`>z~>htD+O zt>jC*-y!l~9NvejD&myEOx`BDy0%IV233^OHE!{BuJU~`_m|vvN6BPIgZ-f2j5FKc zS}9bangqJiaNu@$pz*OyQ{ltJ+)!L?$)~(zFc-b%z?h`*yw*OxPB`}$s)@T8u&qfDMVXK^fFgr``K9(*>*VLe{ zf}(^PkXJD_9YJm?TB#JxBs>Hd+2aa+QNcQTx*me-h`{L&wJow`{p8cDfornT#Om7Ye=#2@(yJsUD8u zV6A(A(dyljIDf)7?@z!T5*+(S>;)$okdDBS_FSv^N2%NheV`qy1SA(7uxDZfmsaH$ z2d|mXDQ_lL+OD_61!VoAh(I+Z`>lQB?YD7q{epIVx9KAW1=B}}zDq$i`)e`Dd7d?l!5aQvX zZrg}hB`^|7MXN^+NwgDt1Xbr`rDHa@kiZ7uGsP5x;89yg$5+}#Q~w5Buad%07&=@i zO34sq6155>NLz{(qBBTn@=`p+*Fh<|rTOrr194J^0ZBSbal-BZ(*Bfc3{+9*S-xrV z&Ntr2Jv2ppBD65fCpclO3dM!UF{yHSwnTMKPO80Y5|xevXBHjnlB$894yO=!#)uZf zSfyui)jEslb?P(BkSZ^J*RT!^Bf@QG_oA$DLE?IJ&a zZ#e^Leed;6yMgyR&hG%MRf`PwLpv_)i@%OlSF9{>Y*Iu9$!oo~J+4qeGAHmYkgHJs zyyO`MMqjqeFl=)DuI6)Sv!!F=@t&M{K58oj;zpZZ&?6;@|3cs>R{yicL8pnZ|G5v4 zU%^#)wqiW!%_dhwlq0Z$@2v)~=Yh0*D}))PfDJJlCbE1Ad^?g)ZvjqPUVr^|=tAq+ zWMscyvpdarRx;~L!8uP+WmF7C%H`d+)lUu&LRB0tx3=0ZP!o-H9}jf#IBlFK-iB+% zs0(4d_*HQxP?~eqDl!(SE;2PyKQ!*cOft^hVGrE7p@+Lm?~|A)3jWii4HwvnXc<@| z=qYiY%rr|uP@BG=lVW8l={H}SnSI+JSw}7*|FCnhV%Ytqr*OIMK-Zw%k>rFRar2H! zWuq_o%nZoktt+Qb!bpGb)%wx-rg%qGWXCTPzkuKH5V;Tn{JOIK1h=-1j_aqI20)hb z3r~}`GftGg>txlUhFG*r0ltl6?$*KOWs#55e7UH!kI^d-YX6HevXDKIqe)U6y`+MC zpB4T9qGO86qH%c()~D~5AcnbE241Qbl)ZxfuJ{>=%RmNZwNw_W-YxkGV&AN^ANMa? z2n2sVx1sqr7`E*iEPp0AA4#E5rgXI8rYbrRrNGob<2CDkzM2gHPLSp7-YN?5RXq=s zIh0Tv{LWGz@5=qQv;f*nyt9^Jmmb!0TjiNY+swht0!DWaTf;gLUbb(@(bnv6DYc%l zc|`J*cEjDAYfzmZexY`Bm#h$x)wz+-g=R#q0ew!8@hW9b{KS@h1WH7eJAD|)+GH@I zAG32jjFk<(nuFr2 zPMCHmB+y<0e77EX+CcKvoVjBm(Yop^;z3%}Jb|ay!@93qo1@%9k$ETlSZ{oOX@X$sY>lNX zz{rn2aD1`n12+iEJLJuDV;XP0Cq}GXtLx-l=4Z~MIrdsc+S7c);hSH*4$&CI>ibUB z2$Y5(IATj5ti3NA%J0MH3Duw(^5^i>6#)3iydbYBvCUnkR&V@2b$cqVe-(TBIN5o) zu#kXvk}wS*GD-+gv{WiB(^yiO0|IZB%w!VXB>!SB8;lENELy^J)3&lah zh}ce~Ru_W^p8y^QfiiHaO4N*X#$zu_M?oc*ZN|y zguDF}5EZUEW0lVnQMV5br@nkG3`5Pdz{(UNQUQgDGykM1c3L~&8v+}e8Bsn_BN?$K ze{URJwJgwk{Wn96B&t0EMZ*2YZojT*>tfr*PnD``Qh`Y7mxHj&nz61;3z-7*^*e#g z4DVHdFo)fyLd!x6YC2h?V{Q#Oy2EyBY53KfT)eQ1$?ma;q&@GDt;!mJV9(;M z6VC7>md+2KiS_Nz9;dwgoGfkdFoDRocVU-xx748bQz|Y9hTHH+fXuxA`Px+GV{69T zh~afn0>ijNKXvMTlz<*j|KvDfRcH`JQphw}{Y+4@uSR_;I0WK%{czOh;&6Xoe4)*o zFvEbQYbpPc?No_MY8E3Nhum}en0v*WNB4>Qi_$7puW7wGC)O4yNPh_>R7$ed$<><| zye=AE4ukj@SUEX&MHKYp(Xeo982I@`6}8N|^I3l-i?3&-Hhq+FARTEM7}~iLOsh7U zB(Cs`y15;yD>)0WCY}ie|E18i^m>plFc%$Nk#2t+w`kFFK~)E+%iR$nu4a zgqt`5^Jd9=1iP5f-6lr${HZMHo=_XA89N#UHB@zwDC7phUAB(y3LX~{jLl>&GWVeA zfvyUA3EH;zZ-tJv!yA1GcW`IS2LlxQHk zOsf>S*n?S}1MTP^IHWAW76MNqpi(r3Fexi`1(3nsPXam9BvmV2K2(u??>^}>iD!~O zASo8oU1(c`Qcp*ZnV*_BaT(@|8?GMC!&SO%%o}1{n4I?xCUQ)>X{)eILnGLGzZ@r+ zL&w76XV>>1Bv?q@q$lO)DQ{*YPdsGbh>LZ=bZy&hm=enUWIAG zEz1NW+0FlKB(&eHGjk9hupb{xlJo?2TtY|iWWn)xh&i_zMJ?Sqt-Ftt{ zI6YNmNhK|(1WnI3L)=<}8m2zu>hMo}DNk#mmL`Hdb_}a9HbXj7eRoz_n3|rU2)Y2# z%GSN^fQuH2tyJggBOHtzDE(G^@d}hWx$Ug%ATp)(9{MgX#^`+%^qmo~l)|8SHcIUk zcpUN9_KrUkv5Qur)31s9F7BxE&#xHs&;BYiMqP)@i~vLrkz((LFjN!p`J4b2#RPF2 z%ZEmA7D>YC|G^i5UQ}MTj0lrUirvGLbRl#P{Wj}QMIAqF<(lu$nJM|jLGEx3HLyI0 z>#6qQV8eziC2kc*f4PR28?y8nu+je7l9AZ&!`xT`lYNo>j|2}%YTKhx{|Lv1>`i-j z;q@EIVX6TwFvtI;P_Kf(+IIxHcckbo`gsnqDsql?tJvB=K|+JUyFcSq$uCA*%d(Su z_kx3#&oY#EdFW9t_lyV4o6ACVbcwmvq?Ay&W@J8canwk|1hNnRFH*A|UUO!G~Z_e}qG9(aptM(6Qv5u)=x{lvl-Wg{vSpl=&KjC_U zBsTn68zsL;lM7SxzkGDctU3ka=j-3MSt*{tyBlJn_&iVI|Kh)`z0zc4rYHMS@K8?AmBlca8D04+pXO9e-~8E_P}1XHQzVu1}GgAkgAQ{^`1M_w9DkEDIg!XmH}Z-8)=`UiE~tyt`*CON2mgV%#>Cbz~3ryR=sso0@Kc}DL)~G?RHWW zjsu1=!Ju|ef*AS3x7W8BP99Px0!+Vvj1|Oyt^N z6f~d$U1Q+iSYW9@Obf6RvdUY#fPq^?acT99w8L{7AbvJyCDlDLf))MI2L!zO(M(JT z)7sHdyPB}!p~{D@x8`gZ_Nc{sQ&)>k$Rf~heoly2lN+w>?h-0o%dWO9#hzR!zbc@u zj+8T^T8qqE4JnNyCI{HJz}cW63^fvFyV3W-es=9 zYCTx}oN{C8Vi0_*QjkJI?T_fd$?KzS8c@sXHj3eFTVgJ=a>;np|f$#=v@{2U%r2MUur(A?*RBKYVooGR<65 z?&RF@V-9%mH?KMM4B0zlAD3(>ghTw@kRT?0I|NMbTmcJa<80&t<^sm1@J~C6^Aj{m z9{$ktE7@xJn8QJDNhla*9T9S#9Al*LhGwCQaD~DwVFycL91y1T|-O9El({l6B z-2RpdCcnNK*tdy2I#H|qD$023z2f?U(AS2kq4ZOyo=RjG0*^7++$^`bGbgMELGvQg z2gK>xteo9PNZY^a+4a+vKzpNDXHz?QEZJ$MCpq*sHH^CGe6QeSGDf*&dGTX+jQjSj z!6i=!g5XzjDrS*Fd`3=a(tt(O;Y%gw54>z5YmZ`iUB$tQ{O9X4#k$yO-qv?w)b%Aa ztLGzx3)#<-`yXnoUVR+&s|$XVw`&!56F9r}{e7@s$PvL)YlWx`U%{2VuYde*cJP*3 zT9P)$1=hc(eU^Od$nY`ro^H(nXR^`cNzm<4Oc&+xs>U7yfHeI3`=6sN=%8JLeM)}X zP;JSeueN7z_~yAzP(bP&i-FXpv#)zL8>v$Xz@tMmach9Qo$k{%{Po|iy)C&fD_6h0 z-EBW3r*+1?dN(Hbq~7}N30)#?IqWD-Q;Au-SSSfZIpufldnNheq{0UR? z4$4s*7=&+^qiPg~I4?Gj(WIll2HS!ll-Zm4%LtRL3*SjnSM?Q^#Bd&h|>m0)`ySCDVLt3C? z?2KiNr$9%kuGjVREU@y`ya(T+M^fJ~3Ez?z_3*h(uQoPHTr6aUxglB{1RD;OPL5K@ z>)TE2pAd4E=hX;_tWx0Xtt&Ej|FtT!+8Urbjq{hgkGwnf0Yv)c@w#U0*u}jVI<^He z6`3LS;-5;7pq+YcexWp(=vX-6UfChPTe5wjMC$4rY{aIHh650_?3M-fX!KB`d)Rrz zNS#x);JPD9&&_zSv`DVgzuDW4(@10xvD^%W;9EO^Ny@T2qMi~9@ z2VTk8P$n8Mn60-xb{{!H2tdq>aKSKOO{gko;;5$UX+jG=%ER(~u}i|RKv%cg@tjhUA~$x9}iDt6vaDnL*SLtS*~`4FHc5c`gsQ`rxU&{ert_X#VvXK>AIWWaE{_q^Uz00c*+ z=~;eQ)bo$uaD1d4FRd)%LL^$KGs8LA;F@MH^0E)L`r9+MeinhX0jEx`oJ6FDlVIC>3T=FqvbdU-O5Fl1sUS`f zxHBmigTYeIEmObRl^f~urRuw)gTo(}KKpO@e)y5zjLUToKB*1>_`NMRVVI5mcy342 zHfq`$Spd~ftlhKjS>O9^5nCIvmG76i6q$T$Ahx;Qe|hGj-X0LCA>kIAaL@V@e^viP zL_Fei9Zk;T$1CMyfTA7PW03%IVhfV8HDR%;pOWP|uehF8XL!HiP#Sy+{zjlErf_Ew zixnluW0fDo9>DJ2tB{y1AMsP+p2zDX`1o0+%L&%5R{5U1qI(8e%BMx~iQ3PDE;Uv%0XNY0Z+I@T`5HBhl@vyPFTs(=R*8_1S%^-_r#T{Z4%S zDqRKk4=j`FH!s%CzH>Nc-&(QRlz z?J9qTk0ub4_BB?$@yXS)K}gqRMEO9qn~wdsZB6!OaIEAWZ$NC$=qYX9sun(sacfAZ zPD~ZHcClI6-Qp-Hu9+prg6Y(=bXPCF1V*6Ush{V(H}D=+6KFmnSfrXq&}q|5*>@Wr zpT)Iax~%G3d5<}qyw8?&|3fi0-4mSFhZUo#st?X}FnV}!_M|05@9<%L=0GIkcJA8u z^rc~!%*c|;VBq41anEdd%2|QNt5g2+Ny33a02!C_aeY#wBk6O6@H?9EPLo-V46gN* zkv4b2q43v=q{2m=xDUPvgvgC%OprDM%6-PAF!lHX}k}iaqnc(c4$`G}C5blDV7Qrfr zj=CNw;FKjdrBEu3BZL`(RhgBv0^H%%lv9U45N?(Jf7pyxz0a10=iE;P%$OV4RuKK9 zF*xQ2?d+cK(hu5V)no)?CrCG8XE&atZBJWpZ^jlo-(KGxOvs+4&;;P&GAj_*LQ)87 z9{{se52b&>gZ2-=1~UR@knlzxH?Rr$53Clc!&CjWtds{IT8CZ}(mIz3WmfiY(6Ya8 zeYx$n&_a|Jni+{gJ&jG)RadrEPl6lmt4>kR9od1t5l221_9qupa|`cC|Cbx%m&2d+n0z|GRJVwVs*4ulS! zFg8R^pO(ub_DBYQ-78L5zMhftc(5x`w?ObEJ>2fREM$O-tyWnRczPGCA|S(>2BR*3XhD@bTH9S&0f?MzUR=`tp$uQa(l`n0b4^cw04|AXvXvU=iULUrI>v3`j^| zYoF>et}vyCw-tqwSIrjHv(5*1%ecLfWrzE#Dt5gBw*Ba7bK%#2##@Iicscr7Ht^)XA5r|F;lns_Et0qFa$FB0 z&2gmu&RpW+&z%bRZxvk=iXp|7mn%U7Rl8d zsUW1%Km4?N-6l$Edc6{KZ)nZH6giyVyK+}%Et~l)ZvG@-t@9Ymulh=KVObit-e;s! zEh0@PFn#qp^{gTIg=n7jC551XTi54@e-77%tQOjbCNhbvgu28T)ea;`jpgi+}^9NTO6N&o^H&OVh z>{4ssG#sqGL`LWAap~L3$}UK{?7olH{I{{NY%W~IA!T?p-bT`!>M0}w0zgeyvB!8; zbE!7B2J%oUzM(sO}0qPNPG6${G*ivf*J zRG2EH8|l3Zv<%r*G?%Gf{7wgb)+ac0S3zXRtOYNmtR6(&va(=96jtd{eSqxaV{*=S z>IharP79Z}{F=kvzRM$B(O+V!oG+wY4K2q{O7Uul*5Ew_m)8xqn(s1H(nA;^!_&+=M2S6^Qo zuCIQ*wCkilWsqg2+x`$sVxY!OOJ3w*m~Ipomm~7+-M4~g~Ur>yGte%`PeFD{eC6r#^7<5Ix%Jbe(hKBMF*WH+jNY%1==EQ{; z7T5YsaMI*y4uv?SP}wV4ym!g!3KU)2$xS2jr8-}f^z5ZxtsfgvrbRua(1Mf2DI?v; zk7WtQ78z6CxW#k67VXKVW1B&A^jLg^s<={&Aty{V8j|QEYMops3?q`Q%p)MUla0CY zpR`7=q1vi%w9IicCmEd!3s`#;3uoUKAbvll6uI0TF!T}^QHqV1VQ-ael+pEe*Dv}5 z_(vfAwLpGV5s0IKfXjeI=WsU??F~83FWBHe3Sp3R`|KGE!cFI2+Xw`MWR{{n3>y~C zwPph@Tb?6gEtS6mES1M4Cz3(yHvb^W>vkLf8s|8(U_+Y&t?PzBiJUSB<4n`;aloZw zT1%MMp_W0wd9XbXgLp_Sf|f0bx51|HKk6M~WV46}vf_5R2vZS7;zA! zDrs?~h$(|rbSP6&pqdD$)!Cbk{E3^(c2MTly+k;;6S>EIkINEeK>nkMf9l&jMz@_3 z@5gzE<1<%2q;T(yOCTekS1)pjS@O{Uj(K}rSFZE+<-3)Q)hTJ&c}be&y3j=Yz?bW% zeFq*v)5MH79yI#G^sy?`$R;9xU^_+d=~?j!7PY zOrmM>*#bqK6VL8N0fkhus3fKW&6?%hz9ba3l9sutlW!;)Og+m=i0i$RQ!Het&WaeO zUOD|0$XSMv!Opsc+`5_hmO_Yi&T}Z#E`dghrXxyeFe_356g0BzL+TYO%keLnT$d00 z^h1A5$Mp6FIWi1FFGdVI2uJWOE^CU(`ju9`&V#ip-pafp(e}%T{ue_zzyP}|-#%kd zeA(d(!{f_bMsy1d?jH@qFJH<2elwW$43TqfK%taY=H^WovCc~YOj0Q5-o_4n0&rNy z6B8hq|EZ{omezS7e2@UCR&78IS!hk!S&iaTa9ee~6ovEX#wyY)DcM`Z!f{wwXh=fM z73Q*}JLWp*rGKUyPK!jMvWzHWE1S+IqLh7efnOoeS?S3*^y3Q}cUJ^TGXe#A=6mh( z6i(nm3TqK>;1yw%1Kwi@P@XC(y{b<$O=DR;j`aU#>aTo$;J+)W{=johzAiTivB%94 zJO2-S)yrC+=NDV6v2VXOiEk0QL(w-rpI{_vZa35S7w}DDoI3h#KK|(LebW5=EgHx` z@M94I$t}paOJz*aFTcy?wWEQ9{tpxz^{5j@e}JG%mm(GkA%Hf{`fV&eF?ZJgr3a#Q z;$vz(1Ig$=?cV(^BOKKAm>&OaZ1Nc9BqOP%haLSf10zy`{q{pGz`Tk0Gq4mXRQHCw zFO};XNzZ05{_0oY4YjJ;OmVQG5Rx!B*1uJwo1m}PKZib5hqHb7aLa=xU}e)%6p_wI z@^1vOh``^cJW=QEZ^+4mW;}^HifR?clqtx6VN61PFFJBQKwg%Ozr@y@GZAs_kkGSb z7gLNtjfddF7`vQFVNsEtvv$n8)iVUy-1m@yb;wrv)d>aUNKJf_ja9K|Oq8t%Fwy5g&d%Qq(i>#nn zD&;mm3iZZS=5E-K{eT}3gyfj4(PSq4v|F~jO7ikfZF}=Gm_upssnr7uJwwmq>Qd^- z!ym+#z3;lX{{sa_>vh*e1>&N2G01QX;*XGZAf7PzD>W;%{(5}%hfDkCdA5H`05u%G zYMpF*W}ZqikpZv>_&H>`ya>6%mF44Gadieu;Bd^P{9>_lCL2y#w5=#5e1iMj;;nIn zWy~9)H#*n}{AddI+{yC}0cv==TkC5FH-QX)nk&(bJNacfJ2R?EYd|IcHgdC4+3F z`+K*S`^^HOwZd1%b~)MTz>EtHQ7$MUODI90s17!2OgYzC7Cb5WV(zzxfO57C`tE_Y zSe6npu?`akdFl01QpT@)Sdfr9INIT^ueCiAb*AA)pk-KnKB1So(PVpLIWiw$r8sy2 zAme^E6@|{zG{~4uP^2o|W#$UOrKEp% zTztW{m7+;E@z72mwkA}0LkYO6nlgGCl)u~fv(T%SP6-(w=^zTUcP`ZJQYykAq(5r# zU{Y)gXOHM%jj&9qU~t{OG?FE>EjE|?z+rP6xGMY2jpt6r7?`3jcvb9Kwfeh*#1M1aK?E#4s_0I#{USKS6c!l!S7Y2#+&> z%cWb!!db9!a($Qi*d`hL!8Fql9*Gj(2GKgxK{K+#k3NBz0S3CiN5hLCv!(|qB#3q0 z^J~#N~^Vh^+Z1HP)Z3OXOQ+UHxWEF z0|ax};kI+!QzbqS$BGP0Qc{@|Ivr)2BY?FMXlrNtYx811&qHAg8f-K*vrbPk^DGRH zbgB9Q-*rU78Trcr8Ba0XOvLslHj5{8cUg<8Up^AhK3A*4iIE{75;8&~F{-6cBr?5C z5W=0YcIIl(w|}sROy5dwGsFd<+$C6gu5pRTwDesd$7?14RsuLwfMeXH>$oeoR8uCm zfRtu37yv*Ty~*Qxjm4Qrc?q;2+%Kassu6&WF*OVbYosqhfEF0f_DoT87(_4lwd7S_ z(W?o^)Xuhx!i99(tV`c#p^Eh^ViAKJm@{qxaV4ai3s|?msXm86G!Z3_1+beGFbWX%RKBv7xa{VVLzSs34gqG&_i~y_1 zYg^zA`x6Z91c`Mg=-*nuj|OAKZO7b`=v@E!G#c9ZbrJuNTL|fLk2OW5pcpk1>QL#= z5VZX<_J>lI1^t(BeoJY|rGA>(e%#f438bG$J(Yp^d3XF?{#yMyk<;&=dZKemEzQ2f z<8CZ{-G2f-{_MW6mT!V=lJWJ7QtEgFZHmb@)ljxC%EVAlw^RRpB?j*KM)epoSND+W zCr^Q>k_9*Y%Y*unhZJZy5YgvSLcS1%uR?}=eqM8`%mI9Mi-ub^beXJsIN#huJ;Um| zEq=_~7&oM<+8Foy_PvC|bWOu*`}_N3S(w4nU;!cwI98Z3HAlTy$m__oWH1tafhWSN z&cXhLlwzMly_4Ys$)x1AC>Gj? zmN`St7~I&x7e^SoSVH2+l2-hYvo8gook>lp0kAS#k%{@}i=EPfNf7%~Fa%x6{oyqk zlhYq)*SBxhipcin&tWK41+op$WdZ!(=Q(1sZT~g;c#s5YW=;gg0Grs%B1y{2%(j0? zbk65c#3%P-PI3@^NfA$*#MkNHUas z%3;`WppjaP`8xfKf+;-aoH;i2ZKUu=GAv{m3X9$QL@i(GvKp+-3qmIh4|1%qb_@)3 zU3y0()p*lo7E>Yykgc4Q)uN!3psb9CN$V#B`kwT5#lqekN=SlbG37x-p;eIC5?R`R z(JRA0g)a+3u-kSoaNC?N*L)3+uR7eK z-!`;-4qhCcw@hDd&&e^iUMr)g?v}$L zKmKqEYNa_D1)M~)Zd{qj`rnd|vnX_BZyLC}EQdJu_Og8&O&j=5KjV0G1D(DoIKKDr zr9CvtecgQM>|wyFuPjS`foN!MZpJrIR#rx=Fhi^fKahSv+w;5fSQYdx=B_ZC&r{#B3bUS;}N=2?EGzGB)2?OkJ4`K!K>X;^O{$3Q!p34Dx5d0JU zJ=^b}PmV!$BhOJ$rf)?(gZI6eo|5N{~=v$fFQMCT}RbG+t31i-(TwGvAXz%DWgZo~` ztYrPV$%1?})`k9U1pdn;2k2s$bp0zL4sjKLexqh^?Pj*i8HvQk`k-MBgZrAtWGPpK zCP462c>VaUTcc1+7H!WJFdK8P(Tq)eI->e*GVau`&u{5q@$GVl_Z8`=c13VKT1cBK z^qO*rJ2ZL(V?vQ?7Bzt|RxKeb>4#|lm&!Y9Y@DJ2A7n}jZ|pWi&*ZzOsz>>Wp@Il# zy~|H*XT9B$C7Rs)q}}a`6+AiqIwHZ!K2&U6bF@aM@=xn>UM@BKZ0JxOXZ+ckuzhD2 zo5vfywWLC8LtUfR#IsYQis814YU7H^zc73hhT=_@6TZxVZ?o)j7_wVwZ7oZ}*{N{+ z-Et~z!%-XV(iw3vE5m~Az2nUW4#REna~^AL9sNmO2P}F74i#or2E^>R?9OJn1*s(VQ6Wc6&99{InoxhJ9=m%7EgRloSct3q8 zrkUn_Wo0N5X*i__cZNGkZrHtgLHhB9BZiFwhs1dslt!hi!;Kh-dZI;NEjpoj>BQ;h z{_)r3#V>MYcy$#gG344Gf#R_w&cnink*NK0qJNx72P+c(YA^D_^wBLCCi?n!Ey9Bx z8$^dCZrKLeaU}z9#9FUMkKpLc*p_Oh>x{>Y@e)svl>s{;qJ#p_n=j{Ed z{Ul2GFHMwIR-_sT;WWI-)$Y(P3R9 z-vk-oIYnbpeE+3^5e)|&H2E=rgDtYwnOIl)AFnB@N52*DBLv^Q09))&hLw%{9 zns|v98Cee!GR-xpTfv5Ot9Dl|CfaRr4+FbCERw0!S+=PvAvVk*$8kR?2xW;OuH9cr zC9QfcBdgAry+S~X?&;|o*P-qI)>DCKWR)`e`pNF8|?#FXr3b>W`QqgeZ zEKg1ff3-*n;VUUQKH1*#4f1BXU#9-7sku$!i{l$W@2jNM_=ClVBseTmb7r}7h2_2d zsl)Q3p3^@E@DtfHcvTbmlcq80B@<%#X2^gQ@Ql>G&RjI24JzzW+h^2}m2w7raEoa< z9P~!h)%RN6Mr%qc;JQmc1XBLq2P zxEeqdG&TUkAF$t9R8yG~hW_i30k;eW1T_d%cLmx-6DZlMJzB+R?a8%A+&{*YyC`4i(TN~Rixv?)43M9HRWF%1ws%r%JeRN<2AW(!EtWn@zzZ}@ zoM$KeSeqG4*QtyFR>etLEvX3Z7!KU3^m+i_sRXO__6gBg^eefCxZjh@2XQhVX5V?< zDNOIRbHPMydo)Uyf-Oqpco*{SEtLnHWkxFGg1KO5TPVp=K!`jI9=O?cb)tgQW^<24 z#A(}Uos-m->t>bB*ixTJE zBxsr|%NPI9v{KWME=J&M%}Y*qe&_zeA2LN5aDDU zV;73gJy4pUgkNC^;z1Ix)rKwRq5Ff1&MU@z^t&qhl;$c0Db*|U)7Vi~6zuN4O; zUi(FO^EK-t`7p^}gEZCRL><|FC)~2kQHzs)rxE=mQ*Af+p*(EE0`@)%<}y%^~rzxA9y0v}k!ZMsebm$!5~;&uNn7Yt3M}GwQ@L=EnG7 z-qF236uVd;aSVLT@L{HiXsz2BDRKdBXFCKeS7*#|;qi_0@2(pMqh zcdHrA6_2M%lnSoe<=aTRsf+$+u92&Y`!JVDy1de)(d}7G%WGb1+ZvgR&5NE?0?n^1 z`_XxM@@{VKc=~}UvA4eqR)-J5echZIQ@l=3=1E$b8VMUZ=c2z9&aBQMT#v4f{Qu0K z%Lgib>F3{CwzeT$IA|R;tD<>AIhiwQ^3rn+;%&&8eFlg6%%va~<)_SG<6mHCRz!}P zPIkA&ND($zFj?Qt>nNh$l{4a5TQt(7`Kk3n&|Cuuf!W>~f_!bJAJa3T0Ol8Z(W+CE zd;~gsILuq`QB)boe=1=$oBtFcVh0t2{_OT95k(o}qd2#wS;c*@#_>6&UsCn|;#Ykb z%;|s1uk_4LbR2^taeapmhE#jhe{`ZGL3KYadWyaBxS#M;*}jOT8r_1=8Ptz=sp<5Q z2Hhgx<9!vv+~&4UeDUN~$^2#30gDD4q>2&A90EV?6yUgVRlA{&{O{OjN71V4<&mD9 z>sh-vC~v8^OTyTRJ(K<`0N62?l(c2?I7JCwgQ;HB+EWC{dy@YqF()?{{~*-feekOS zk8Py#mVED==(6K?TjJ2Cnz!kUNEg;$pQEk6`y_%bZo z9-Vm&NlncXf}!6nA9KKwGr+U6GhI~D{lya3n=AT+xEMW%L}29}rx=M7|8Ptb zZuY0PpBe7`iZ~Ui4|=?TIaqFXM9&2WS^Thb*wEE2e~ZpP;ffP-CW|eK=VuHzZQ^p+ zHZ9U;&=uxEN5L716100Ok7$XA33^!-Lo4cK3CuGR_pM?*9SQSI)7W~@DX{U&5s1j7 zMpOuOjvD47Fm8CejD$wdOR8A1KDmfD`o(t$VT#s*WWmp3VFLrIuvhz@=PSx&mp^=z z@*`P57+r}J>6}WU5RS`319oEHq~7E^Bb3|HEpTr+Q~G^?!`>LRQWdjs_pMQjy!Cr z6kfy5-x;uRlWoH$>3zB&YoA{1mc(?(Ie^^qk?Ma$6)L0X^+^I-OH&Bu$1jYjftChJb*N-|&D~m!bt7D55 zA$+$Xv3=X+0p^3_Fvle(nKQ}J-5ljD;*2%Vpwo`$3dN(+70NT%d1_D9F#!rf0D>TP zp9=k!OwD*kgr$2QhZK1Lfxo)$+^tjr`)q3a?(+~NmF)1{1131(ffdyPT)urNNX7q- zN;K#f`DY6~$agi}X*|yL$$l8pJlwbm|IKS6RegVaf(aZpZow~Zh^WbrZXrnD=aTsi zjnPb@KZ=gNNUZ=sI|0~}**xbbb>8}ujH}yLsj3!17@4CG^2h3QWnHLMSg=m!OPG>yiTo={WfARdjS ze2%1(mKII1vu_DOCX+$!*X^R8fiwo`62xJiYRn|C|+IH0mwjQm6J05Rt0ReqC^n3`n~M9 z9#RD}2x&~?9Wfo+TZ#cxiDV^O4kEFpA$JaNQxuo8I zcRtLzUr^V5ZP#uLarV5sMhg&NZjel~$RvDAzsPM`QN2>zB6r9oPdAN;j<;NnoobH? zc@rt5*d2abp%$O`#dWi+kwq>jV#`=Yt00lovNSjnblq~She|%osW`r;yqj;8_1PIR z{^jS((!SIZfvsmGVxuL(i@R^|R)qD;Ez zH*`$Ei1(%)ZI+MN^;Y_3!NBji8)EXfwNju_h=j^)?Nu#d`BVIkDLQK@c@D<*z~rzJ zzR2a_h%w(LM=rNB+vR?4-)awq@&{r31fQXvDPp7Jw=;#l0ai?G8?0{o?C8DyoY7tR zZBUC}L9(e>KIkCx@HYA(VCJ@lYld4l)S=by=iU8040LlauSGrz7O22%L8QxQph` zSH4!1nrrHuQKa9frKsBbz-&~V0CRsq0;Wmh=o+ZM6A-21pr$tOruN2NM;l1Z z@OKdx{lSOOkzBniwWfV0r&5E;$L(X2XC>lUgcB78X}P&mvaTF3Sd_pe+kX|T!+mQ3 z;r~Y@H8cwUgxnU|@U45MhoY`mV$@(F5~<>P2Akx1+rlh%Qr_>gaFhaK4$IA5e4d@3 zfWUSdEL+*x=7)h+HbY;KzOjQTcS7j2UaWSO2Qbo-v!?q|kcYO6D&^zgvI{;T`pm7@ zcd7Ui0W*D!@-PoU$>HyR9pkOk=rQt0A=Tjtoh>||eaTW{#7IPU{G&vtLwy3Cf4 zA7}Mj&cgX~lExRm$_5~RNj5#Uf=};OPLB^^Xq}%Pw48T`pfIy^19poK7rNPMo=dQd zSV@n&^HsjP$}I(j>rG1gq2Hf=uCU|;4|5U?(S=pt(HoN%cU~2brM!|%gNcHG&?79U zJxFWQIH4BPq%V!CxU46C}crSJEeHI3pr8R4i!cgkC z>q=}c4-LWY(wpnI#Yxiw)+vMCSj^AI-?S5y#x!`gtBUTyUJ z6s_d?oU&1dy&_A%eZMsEweu%WLW=yfb7wju(C?Yb*O$vm=6Y8<{ie`{+X#d4r>c4# z-Jft-oZwpx@WXkj`^y)(iW&@#0KMb-G#NjE z0rD420O4~!)WgsSO#qDWLum;k0OdbC;ZQ}}(oE5gh(0!9=73xP41!8zHIIdY=yY9T z`}4Xbxh%6eW&9w$`v26N^x9WujHKLFn1>An;PrpnRBK;`AT?Xa5PSa*VUUF&{)ZQ- zY>;J69IhrK(`kfOZj<kQN})p(7>cI=s=KDJT2 z8IOg220+)srWC)f+l8a?6Vo&45(+uBG&3kI7ZLds37oPKLIE|NuZ`r*QEPP;gKmol z%8by0HO^)m0&!Ekwz2qBqUCeCzj&3|9FMebNE=y%oQoVw(*LucF!W;iJ}c9GAUL{Dl1 zqwN?Ad8$#f@7y&Xcz@-n#lmvIFq^Sk0TgZOKYXyxjBDSQ^h=xT3snKg^+kstIsSjy zYYxizhtw@^7c8Cxw2|xmsv|Qbsn1^j6Uh7L+FlQWFooXV8l0$<4h}T80f|t#bl{3K zgA?6sxEYi>pcyw$@kOL^9u1pdFj460FLHh1X#Enlug2t14OX5)>UWJC_~2SsK%JY& z+_x1KK4Az%l&|lE%?5pnI^6oG%X>u!W)HEz0MB&}m2sksF`({=G`aue)O55f3u#t5 zsgkjD^}xr*<~yc!tYlreL)QxU+gr z@&rO|E{SN-(Eg~TZKK9nAU@cgV0LM>wGw-EK50HCie{aAihXwfH~Vx=I%l1n#QbxP z8qp$mKL5XKPKV7P9$5AM5q% zeJv*rD%w2u)TAKDyPq4$NXD0ZS|0Z#;J7c6)+%JzgeYB>7ZJT|Nh!*ZRFOS#sQpx% z2GA<;)Bf0I$+0us@r+{HG+{d$5$_t5uI~f zwS^;{7zpiNq_GeEp&j6QzyPOJCj-sDO&O3tjdIh8&I=(AD09Y!uI{9*r%JkJt1)u| z6~~ihleB0KmWY^1=hLUK6A7(*bClcq(ug(c?(;MVSi{z+qdkW2w;JZZDK(}Qw0O$< z*o&iGvyC;(=;n3JjW@E(h5B8<3-lsfqtHe8udP$xBk>AI%`-OCekq(PD6pj>( z*`6>7vC4gvp>IBxe!tmtR=+=`EYVQ==CAkmagZaV&Ly7Nd0wf?*$k1n|68>&P_}5? zR&c#`zJ?nGT%Mui%4#an*de`5ftpgIZw{uv%ilG7s%TwaL>X*<#OkT*H+F~&nDT}^ za}Db>-51fV=g7&Icko>7lIpq?S!fa8oUQK!UDmyz`xcdf8P{_I-bzEi_jVx?6ddTt zpb9(MEi|>-!m_%Rx~uxmJTpVwwU%M@e&cpP>UhXlPT@*kAp?f}rs-(%cO4rFqGD7f zo0HEs+2j-2r1Iu$cZ|vux{#B1_XZ`bg$1n<2ikE(RihBl8wSZM3Mj7wm(84yS(VcS zbHFv==Kb+kYWhG{z>2+VKppX)*%QV8+aDv#NebS$wAV4K?kN0zz@Ps*=$FNn14?7l$2WpxjYe`%b+Ux%KAr+`n{x(v_%|o*$Ou&Z88L_!T#B9V4TITWI*w8x~4|}c61|*95 zvX1u=vt=IOd0w*0HFTgmTCl+c3$>#r#}!=@p&KlxD6348LB4iT=*@*lWLfwS14R48 zo#KZpE%;Ah7r;hrMm}D-rzIl~4LxE7c!)$L&Yo`T-a)_FmQz;mjD}G8t)RYpJ|VY{ z!suoJmIh^Parq^mYkZQ=Qr?#SoXOHwsDQR}DUCr3Uf9X$j#;n@e$ws3Ib<6Ya7dOO)-2L&~Q16m@^1`@vYkn$-EFool;NUir1 zdd*K=gZ?jd2IMpbq7W&HaWK&$tRJyB*3>z6_WErfdmR(W)F2p~?vPZ(IX(D9_?i#( zg!17HBvsM@p@bjV{GJn~Tau`$Ew4c{Y2z701(^Ckx<%}1X|eNgJ7W!l9tb}c_^}18 zE`)A*GfIWqZ2h+x#}{6^m(T2TYdPoOh1i$Z2{5!Z%I%Ukultp`>R`)z(Otq|vk&mG z+LUFMdC}7d+@_d0Nsz{T?api{=-n&)JT-bV_9fGC43IPmD9>65!LGLXX5468b!J+S z+`7R@1+f1Dma*tbLjeDIjiNR6<3K3%hx66h{(6srpJNA@DP}z{nv@2pW!&pBn|aXK zczOAC#~fFEROp{z0ydHGqN4QZ-f+I7g}ScU4>vNye**4sfFf}{_!DR@-Excq2SD_@ znZg7Y-&``Uj8_@ajs=tPo}P$Q2eTCrGlcGbHIC!$@9usaPOB+QmysSn=BYeY_{~~P z1>+~0y=QyxNP+8!bzvR?L6@3Ip6yRF-DJqB);rQvIk_F`n`e)eW1^N^Ihtgf+Ao&W+;B9av?izlX~i_bC5Bn$MJTl!4PQ{ON{ zo4l0NF1@3kzm1$^c1D!^!Rc`*6M2y*0Ii+3ZqUb#6W;!ah+q=#tf8=%@$RzmQRhG2 ziz98FUyB_re}Tx4m}>OD3W@^PC7ktE(N#4Zzhuq~HY0Ej;BT) z`GV-6HOtv~xC}D&jKsRjHY*Sqh>R>eW*#2{tOJUf3ojitPOBVx~ z`GTc6OrZ+*$E@~2wN$kpZRn!wlFIGh=Ci)*psBb+Jd|4qn&CtQN{jn&n7#gz5UT(0 zK2mAm;O|o`=(B@n_*{v%O?PQhf7#dgs5k^(T#3>P6)H4E1R<*X^|N*j?csiE6y@tA zTdPf&o#q?X0U^d?=AbAqZ{_?9aT`XbL|sXn12p;ZrIN-em+w2}11(}tRnf=c2B3|< zf~HWFmX?+MbrM+$v+YZEW5{16?NV8Gvk&WspQ_KbITLAPuxFms-lG2u;*d;V9PMtg zdqd;BeJFsniv(2Kl(+-ENtBT{xhYnLl+^H+(MNW;w}hztUT&M|Kctm`hxqTa=6qHV zZv~`$bpRX6ULJ+*gKGjd^x{=eoTZS5&HzV1^$s5In;=10^}j*qssy4e)$y3}IMCeI zjlb>yFv_>6&1>V5ros0xm6kK`?1IHcu{vu+zNh}yWi_u>Q~1MxJrRot3pN(=@tg?; zxK`Bx3(94j&|T9c^0t^I;bmSgIYw_yw%uYSbdXt!@&^H~jeQWCz1`)i)4 z$M8HQJcyN2(Y9j=gwt)aY9;ic&e&0Bp=Lr}B0wv^Zof%yna1Ei^@qdYL7P01K z*}o=c(UJjF&EL<$P$>*B5s2sRl}hxaDf>|O$~5R&*m!XY%ASCn@uT2)Ac5xhcfmQ@ zG)WZ3gJfIivMCo?6T8x}p$xbupq1)A0-J0;q0C;RP%x@{%fzFAe38H-zumyVFVNut#5?e$(mtp8#!ljI?Wk9 z?jeW;2WsM!`)ysl# zC+WO8o_sLTt=WxuZ@-VvT_!wGN>yN5hmH$6wEpxQ_lduEM=mXKz{CRYkN z?8>Eu>}M!{w37M;F^bkv8?rMM3eq$WoIRTk32PI1HN?2=^mjZI`EALibBiIUXS}TC z*#LRz{19JrrXR=Bo=kj&_mMBM>uNhP@a>JeSg}37`obToE31WytDuLMdrfXS+3Prg z2Pcpf^@@8-m4P|j5x1C6ng{KakU7r-g*JASc-d^k$&Mwv#|sMd#9uPxi|`_psTw%p zt%kM$5}#wo@4SDoOw-$2{Nx88HZ%r+P5F44wA-wsd`^`;6$@t|@82s$)HiSU4jg%@ zHf70<|1(E`SapCT&CVtBY|cM@C9ktfek4&067lC0I)_@c66F*O?3@mBxDFT2|58$d zC$xlB7JRCj?RYveis3!|Z`tM$%aU6X-p~jTG5$?4B4FwJObEdlNZ1-hX+WTYkw~!@ zS<0#yf~?868+=&i*pu<328?m&MV$m}HCiyP>n~V!mVO-O^UUS`p*OR)zd7~_`r?oY z5__6{Yk(|5c4VQ)k9Qr6I#QbHOB||M;psfVG=E5ko&5f%=oaFG*LF*w>C)OQ^d-yc z_nhX7`b+xc(uIWY9y3;N)$_K8|7MAOg`xQxKam-Q_{j}S-i*Da*JFLBfluoG8pRJO z>1I?J*b5CwNizGG8iyP#-JBEOdE37^C-GeXlG@37jSG3lii+wRf{^p|-m9Yc8Jioh z!KZ&|tQY%dAn!`k;&+mQHKO10nNk$U^6 z1i$$}DI*Hye}E%>ZSw%;n@#IEFwMmDXl(3G2Q^EkCUpX-8lMbp&3r63BtSksLWjuw zBTpYvx($~!U?)ZTy55Y`YUDegl*cJs(1)WMIPl8VfSF#W`xOo)<^tS!2{~E z542!X!G&x>7YvYmKq3PfTvvz`r52tmD9$_)gU5colVX?{@(w%oZU2ZGM<;x1?z9+g zBsw8n0%2L3FcN``lD_w>#-V5EXioUFy;y0ykIy04;Kx7k0Soc0Y&1_ie7V!$?b8I= zHX)tc%WPdKgTfhc**XnZbc}VMHwIWDL#8WQK`h~5VWnb}*jm1cRrx#NI7*gXvoVZO zYd*W!$1HC0??;gcCXwC-3i}V+Hg)wRn;#r)auQ?|h{rp|h4ljHb3cXO%Zm)PiqUV+ zk`+h1Bi~K=oFBHK>U4Apf5e!U^|8be`hKks(QvXx86YOjLRYSFcIbc|xtKQkw;Y1g zba9Y_AwWXvw4cNIw|eJ0Mj&`f(m-X2BLS4YI0PA+j0khFY)F}}&(3eLmuq`bPnY%Y zicn#x?O-p|7b-4WGeFbE$%|6ZM9PXsn_N36iWRG(Tc!kgq);{%6 zu5RbY$3jV2K3DT?t{ZH_KRF9)&R{5w-yfYBC1`3Y*e<)g92*xWU+J5_u^$zyhUZif z-<*7O$CYfj^a#)TA*-^mU$}wa1h40ssC=4?g%aI1~iLp_OeDlU|12 zH@=1lF$==b|1EuBZP+KEhFTDs09+^xwYM9v{{wKX;dZ9ab{|AgPoCY=f#v#5n8Ab^ z0{5B_x+Kdm1L-c<7ZE%!9={@eU3C-P(jvEHTwFX9>Z-vy(M*w2_PtK@dApi+b|w*c z(HN%zqye;FUZ)i>o3bf0exXC>ck#k+o~!x!ae$?&vB8F>u<<&tNPsJj=ksf>RYT(` zQnMwxamIP>k8Wf@{1`aQzb6k~`xv18XrTE^+&OB@T!#(<2pC!bJiaLD(5jd1xGCt( zoN+z(bk_4sLL#F&GWjO~akK(A7)a z7$-d+cn=Jt3>VpXPy2;A0skEeC8evYMC@}i zBv&pftjSZpwu`Jnpn?)YLo`H93@vKSnAe(3^n&y%_OxmJ4OuPhft8@t)C9zR$VnOxR_5*GoSLE24yx{^fN`SWpiSVo6g`#Ty0H0TrK;+&eSZCS`?A(|ttzAne3LTQ z(LK(*`RtRMw`XMJXEQ>mjocsgOX7Nz-K}4Lxn$EcEf~9Vu^${~hXt^z9h%vkUmOlu zf~y!KckVsc>v3lveoy?jR<#>1471mlrwTE^w-pNHBYt@X8Uv#|vDi>=^ME59=oKRp zcy(O>uJeos^ymL34wRua?NOg|gW964ro22}mgLmw6z93*cuNwa+4O(l|6TAF7Th!4Y z(TBB7=8}iOy^!43fxSzm@A;36aaVK$s0ho+Tci)4=T~|>V#0k zAzf1#Xlh1j+Ay~w?9sxa0Az*A9E_SR`DFzNyk^gm1%wXY*hb<#$7rZ0HB`;*&Xfdc z`8o~A0y+ZkjcL&L9smjpXz~ec^)GpZKjn`NElNbNDSO|EY0dw$MR__e-N$czZC4#= zpD-Q&oDc_kZ31+p@j1@Bp`$3}l>0Fs8-{B=ZdZ`PqT0YyW4t?0By(0nsCaYH=+%2t z4T%7FM*|v=!{Zge+ejXNRcqtG5$rc@lI&r7^7roJGQ4~wmyFKfss}-YcYfnH; z%-_A$rE@gZ&l@1_fVD}?qhW4CsnH#28xTa_yIElM){~aKRAA-1D;~woZ-+WR7Tz*5 z*>itf zXfZb)DnK7{Z8PB#P`l6CHs?oK5-h*?^)q`(kaW0^1arr#mu%JBA)%D}IZ{YgHC7UF zmes{`hN{puSB5F%(*-|HoTkOX5la<($$GI@mU-~>C7z+e{)ZYEc|%Sf<$=h0Eg!Ri zujxrT#7`T72vJiIfcSNyDEmr#%zQB<{z5A;!s~06CVNJFWM-ju#%Gn4)@NkfQ zv54I6=9Nap<)YtE=HwrUL$~euRki62?>K<>SCv(J`;8C`xx2!N(;^DR0@%KRHhryp zPBN(4WqdsYdy5?T%37EeDU0uXbH{Ku&ZY*nu;`PJAQlQ*`qtaonOQ~+uFdU<8C^y_ zT>)!{cbI&RAO4G%o*Gk+<39HB)<{WbSe08y1oTaEh`(Ff5VpjqB=djW9W#t*t)_O# zag2Y!yoH}MoD;9LSA0q8`3ikeYK^xn? z6wdaU#^%1s84dy%yjCWk?NbU!&YJDbU4H9-t2Il0Yu{saKkCD*8KUhA$1sEc@p0^P zfy5-ufuTO2Po>ttuXyRcPwo~X>CvM3Ff?;dCh%L1+Ht@~R>Zo~kPwzIWwXC%q7UTSWU*R7~>uw3jL%cTNP_ z_BdogoH0NKiKQEeikU?qXM_Zt=-L|5Tq&ZnPy8k5+wA7$kR)W+(eXcuN3$h*^Ut@)cj`d7Ao2e zISQfYc94~W^mf(gvZnbg82Z<*Q`Q+RNz!h=TXrC?pa1IxHFTar!|vTu9cD;Ahm0Xx z=gwq~SWZ460DR}<%PPaI(U_Kv8*npN(-@*{x>ij7Ahg`PAvS_pGAvIgvQAVB_V~aMQ+)FNf4Rl!@ zLZS?H`s8@AJSq+@*bxb-(ck{o+5TQ3lzJcL!0tJ*LAbjpHfJ@X>501~$T()Bvci$X z+?0>$a%eoWgfQcO^vKw<82ne?fKIlGi ziv13hDig&Fn^F+l7IjJ8zlAZ4nQ1A9-#&#~{Cq)Q9xo71BK3+Pw9t~Mi^WlMErHl5 z#GLTE%sG$Sd!}-y%$!-T@1o{MJ%h^}VPE^0Upj8aI_$7h=h47eH62xtq!O?I9Quc&A2D9$3aJ-^@>lGYeWu(|I2_oC{WRiO~W?pRVW z?|98s#OV&hST`qqvRLm$qce+lMstM6W#;NUMN^fLGMYJ1LsN!uyJeX|Rbo*~;=?MH zHCz=NBYcEq41Mv;Zr`|TWf*(wz(WN;ypUI?@%k$P?a%l( zLhsMVY=0WPV#~MWR6Di$wPxIZ^s$E}VX2eGOyBwr$zt%To=h8#>_;OqV7brezC;IwaD0QeNqZ?0TX!WAhHbMalnZ0>qz$AAqo-w;V2JxGKh9| zx?4;$CQ{yldn}IyB=a;U@HFq7j=#L_+tj;jQ=$}M3LS~P?t4el?nRL}B*WSD!Z*_7kdD#ykr(tv zCl`Ll-WFM^0T##jT(T#ATn8pYTTCp{e}3JiSZsMj;Lf;r`>AqI?Dq+|#SRljM5D}} zZi^!n-7?y){~T7ZO04CbM!cbQmUm}b+Lwy%`6X#JSaYrQi&w+cpQKt;RD@NLr3;t1 zxBrAdx2U}5?B+eY+^CoLKdeCpY5i(|7aUr;uS9m+Q3Pcof3OttaY7|Uzk7rf!j z6OpGA+o_#P-N6F6h-gz-e;xce5QND+;Rl|z{~E>9+lci!x3k&{ibDdRKJ-<-^Iume zgbV$Poz!RMQ(XlzFG73=`C3k@Pk|gimao!Sz(#ATz-08Zz#5&XO=~1)8plnS^jsUl zqZ-(&6sJ3^>imjcL#-!A^a)0i=e;qRyPq!pNZWu9KzQ>?hRS2l+B63Gd4v3^|Nyuq6I1 z8=WR?>f1>YBRo#M3`eu7cXuV)I5{n+BlA}%V#^iQ|FV+BSk8T7N9&yS)34WsS{h-97`(+yNK zr3ELN2+Rd77Jg>P9dI66W$KzjE=LPa#v-SKPU3-g;UK*j5-0zipE;Z{Fj3;H(m!ya zHV)L?6<^z84NFNKGkVuKvgiHOGza@H$-S9H}|rK*(Ou#|Pl~+zAp<&slo0JRLgkv0NLnLcF}(kD5%n$IttFNi^s0=f zj{Vq$g#G;i90ZMPrpT55y3NI#Ue2)lhqUcN!mYmYBSlEp@FZTHeK3>ksX}G_HlZfp zXUXxAc}jf=`yE+R!v+)bmS90QNwyOTTAT)#ciQQ`r(`Dc zvyLNcIG+@7*=UIAO2zL~Yn5?ffaRFgO*7l*I9q7Vj4asfDM@{DM9)h5cJn_Waz&%8iBpV4vDa|oyS7&mMI#Ky{{Q)1v- zoOpRTZ16Z&itq?j8rvl!KrOe;GJx%Fyk;377llGV@6>04W00)4P336@NM`D=(th9d zUQRYeLG^r-+soe}6Cn=eOus#q3hS8EWsHeMeMLzbr3)8I8B)>5{9~;}f zjPq-GFq8ptu>abRM(&U%Ni2e1E{cG*qVmp`994tu{ctN=Oy8ZeT$MILPqTW^Sa3TP z5hM`88FoWUq%O-1Es+2Y9QwCo_( z@H3NV!2P@QfK7$sXDDuBky`YaIPg?W8;3Kkl(Ho7jZH_C6)^u9+*@|p8vCz#$_X_a zPY!$_Y+Gy~EvaLqytY4mtnyPCAr$dD0r>yOv6CDr>P_!Lt+3Trq zGvAF&Hm**JZV?RJw zYIv&A3Q+2RE#OZ+M!q^1$09c#xqdmGj~f}Ld7cxGH+7UZ3S5x&O{?ZJvCUU!@_m~G z+9m@{soxx-3FZID^zq+UYkrhBc~#24Y;R4(jiIUdt3Ba!lE~LGJ+-TZ(?6ntlQe9)ud*$UE+31~4`);T^_F0Wvz{)drBPWG|pBWsm>_pM1_FwB9{SFqjOMsvbX0%*YJMEhR!x(d5>ZV%hTY2{$$!FhS@zsP)qo zTRL_J^cdvcTVdHD1`=7&5&ldZVvh$^~jeNs1q%B5|KlW?fRt=OBq@wnODA=Zge zE^HP&b-w+8zfjES%rX~lrUg(}smiSH)}JBm6XRIqm~C<5I{QQECpVsDOT_YK+9WzY zc32Y=W|yI(vNpg%!ie%ti@JX^h2eF{F-eVd5=alNX#?&939Ocsz-)ZN{XZq`_&51Z zRT3`4E9pD{{G;XgW7>%bfma>1$08N2^UY;nb{`@;)l>$SI@k5G-C`3kj7|LWbbQ3m zU^C%O3OSrl9#1HmhD^0H_N1B1>3x3wTaKg2LuzSXHtg^sv-f79u=1{O0RwEbC8$bU zVPwOC<&%X4?_H0jlZyTF5XIt?)seGwu(r3r?JfYWX1MZbGH4ID&!wXm!jkDWw!EQd zc}?bb-D}{lmsfu4wF>~(MI zsRF5g^m{@Yt_iUT8eVT%e}>(OBnD}wWe^+g@vGQ`#(>AFR06a-9%;(C zxzjD3luT3pUB+Qb<7UqzK+bypx{#eRE>j)G+S<{lnz-JkHyB`-y7HsTcrwWK+n$80 zfFTKf^L7eL=h?8N^o!Wit9KQ?!?Z6ix|k79rw=+-lgxyj2Y88!(gnxQcG7|g!5|s6 z$K!X%yBR6N9CnuP9S9-Rx|z-*AT)g>`X3x5X??;4kZ&u&^>E|_DXYV=VpcHR3)j_Z z%qJ2i`9|EGZ;M?axJ5}j0Eg6pDQt4jKx=u__Mi;`Lnd`KV~If{*ksvAc~+vM&Iy!K z^2Ah}oXH(*_M{4;Y9v)rVbYI#2oRLa-Aw9|yKcA)@Ub;Fnai$iKP^Ss ztKViFkuI~DSR_6=6b&!WzqQY{XetvAf`v_Cp6tqrHRnuG_tzw26m>9&Kr+b5-E~E0Bf-9@X>5vsV zDJ*0j9Fd1b>CPOYCc#nYeg6hRyTA%_-`?a1LGr;dH1LJc-2Zv)*&nWd_3{pw>aBBR zh@Itw?@(>(ILJ+pa5JrZz>k;v>yQcJ_d$1n_~yn-X3iIT?UXcxqCRtN`J3jf$B9JU zejEH7UtNyNx^8|UHHWMKjWm#Ql$a5|f_WQ@&B<+SVgq#+pa(WZFR{!`aTl8+fxn&hB%nC7o_hIIa-;0(L$ zFWP;60akKf`UD>GGR`3gq8Bi9mQGGCD&arHP1Xcp!=xrRTCM=6se{%!3~=z2DH;el zmh$6}t29vy?f=^nk2q*?3Ga7IyrV$ffi)IGknI2kIFc^4^Qk<8GDihlf2O<`_G~7s zAO!p;Y;CO4SNfT&Vw_j=Q=5fMqbqNr5ViFhU*~h7zDoN(gR!&wm7l~ZqL+m5-i@w5 zy)60%V?aO%0F7DAU0&VK*h;zW2oC@8Q2 zS2`g%6rzo;EN}-0^mA?ed(Kz?$I)3vMb)-#SehY+p}V`0ZienuN*W14q`Mh<=mAE$ zOQ}ahI)+xHl;vNzu#K3*8H76v-f>p*LfVLf}fZquYWAR(vJp9XR|41=f!6F zk1_#~Vb=nl#>a`zcwEYL?~>j&#NP%bK8>Pb7BQQ2@}6B#P^(D1oC|oJj`OwqkKvX( zoS8_P%Wq0C+gR{t`xQ!3f>7sTKP4#q?nZJP^P2;IlXO4&p>cha*gTp{@~fsVgE+l8 zH(T@Pwnw$PeQUzz3lgPZoND6!v!GvX=da}&_!@^l|9a7O`-1#9{6%6&!E5riiy(F) z-N}I!Kr%IP@9DOVH&F;ut1H|rt-}3cEoWQ)6Eyd=(6;s`wbR#CyRwgwJv>@MCNG)O z!8#_vi9#B8HE;UNRLim0tGdPz9XTHl)hub9I_UV3#)K%Xe1o!j0p-LVh9lq04SOd- zQ(EVn``FSte~7%r6TQ6oZC2!1?)sm>Bu4*4K!VU%cI9{wY%c%rC3a@4&D+79SY87& zDeBvSYTS~CPOc!rw15a*c_TE|SbXN&=tS016*BQlIT3^bfBuA9Dhv{YTnYLceICyh zc(cw|3Y)jsv=F4svz&ZN{e0hGx7mSF^S+&Ck^B=$u7uurSEB9*Rf`F;3da-=B~9-& z7h!g@)-v8wwl8#8QtYGfZ%RfkT?;9qNRK$Bm#w(}wJ6raQbP}_X!V3PR2Gn+5*3If z3mqSbL!4#vFDAA+lz_dZSS(kqJtTn83JReQ3Nuq3QlBD?)-FYW-*umC5?0xTR!=A}mKX z`S2}5<5u5r#=FSiX3zVknTkrc_ZsaBOL7R{2phwXf><|aPZBfy{7NoOdOa7DjOV=A)+*&w@lRR&01}bE{Ty(B>WK|F&RK{hWjk$ApIJHB{+GAGD&W+{d zpjT0HeXm(p0S?G z0525)3K{a%;muDPQ|7coF$EzAly&cznn@T>h+dHwMxQrHA~561UmZ-k1P5-L-1LvTlDaZh&co%Vs6*>mC&q3WOP$13f!FXU*Jw z@4{d?zqL#^kp2=u`oAEt}baicy(7!Q;k#Gvm4>OPvy3!8`-T zwVW%#JpHAX5(`u7-#RQQNqo?gyp~&qLVL;KKy2FSvR#sg3l*a`$fWyX@OqkjMu7cU z_H8h!NvIIBJP{)iABvJa_QqXNI%fywV3@=yujAP_k~n9kb!ztBBa!jq&W`l8PZ37z z&Vs#LD!D(!g6)YS4jq@@z*t79f1P4$NlNXgEG%N&}@^vth=mc*1@4)+t4S~c%T*kFq zzk_NDn(fyO808v3)k6xcJw>J{zkR>h(4chVglgiJI?CqoS;eS+>lskz4M#bDXx&Ku ztl+@?>*BNJpjn0focqwohcDn@3A?qKE9Aw{HI+gDwRe1qy7eua&f{tRKU{W}2fvBV z9**39y8k=UtB=vrp0EDH;5_Mutm0ehEA-`c_u4(>g;7mk5{krsSJ9cEf^noM`tnS+ zQpXJPnQLp>>&Y2;9}XooPy>Im&CyC)k#aUU4t!95GcFK=Oz&nz=YI=!vD4#fR>Up5 zxAVmy`XmxWNDAWghmoLbAPXxAI1mOQKA6jS1Ct$s54hy=PS~gHjyHL1x#vSast^L_MvXZ84%}ziJ7CMRKmeMHRcn6sdGh#AvJ&*5=KCKF^!u0|F!*T034t_HK z*m8>>qLMG~V&esI|7-MoSR%bU>5aFFZ?L;sT1ASu3S*y&+TI=cWQiCc3*e>Z<~6hn zjHJAAc08pO&AR|!m4f)3IbL5s@=!-J&d)pW@d*Q$upOPe>@`~kQzlq-#6?FhGqzY? zJ3&pkjDVv68-?#|p;Z^KSzXYK%iqBoPKgoGN+m&{8ss5>Ku3bl|%3yBWX z*-1Uk&B!;1UTk|U%+#Tfw| zvq|9(x^IsJMOFCR6QN@pS@cc8Gyd@-MwMYd-s5SK99(}b-8r#6=g{j=YEC9#U+t_@ zQXY7gC+*~Ui91x|im%$=r+e^C)wqMtX8HmclB5XstS9Qvdkhpz&X;V)2nu;`y~2c5 z4~#ES3LG2a;!O@4K*tKwOdY5u(2>=(g=vH^~+vcfz(EU zE58Qt_`2|wvtHR>Os*C|Op#ol*g9E}Lk^sBc7G>0hG_3}N|lNHWMnOe8qn^hiM*>z zTtu=C6?jZZcX*l_MQKkKd2%2Y{7;BJ2$x^^!BaFZ)&EYLAooFj2kBv_8vMTIC;$T<}yhl-t&hhmLJp~ zMC#AN8pOm&<%tL{P@5uxbo9Haq`y2QjSu23W{=wp_EIj&A3W{6MfLPG`+(7}*Y@FA zV3Vsb!^1f_1N{Sup#Hm|fpRx4-ZRAc`Tl&MU!YXc$t?l#7k*SBW35xhb~0|g`04Ly zy#8*G(VL{ElhSA31n@kWhMueG%_tSmR}djO4aqoh@bf=bihI57%X#Rh4=wB4+BYjRu+o-VvN zNFwxou$F!D93sBi_;#{SXBj`tzFu-r{(?&8!pAW;RW*Fb@w8ex)ci0>6ku(%in=%Q8 zP$hZCvGDT{CPqyscwVWc*JGgbeFS1o_3U;Om|43p%RECJi*$(7h4dyY9&G7=X_?Q| zw}kt&t9JT)UY!Y;yl^TxoycP&shFlr82e!vwx|SO0%iovjG8q8Or|x@89>S2Ca!Pn z->i(stT5D%cL2*a;gK{dq|4YjO2C9_@mb9`!w^Em0XoIv82JImBTvtJ?M`Cdyt#sA zqcaD5Wz~c>h1u0L=vMqbU5)ckYh}K8u2izKu<8s*GI|~f5gNwPm0cB+$P0ZSF?$Y# z#enmea5?NG_WI!3=Zp9{?GP0N8`PcXoSisFa<}x(w@YykU!PGy_no}1SeHXC`$>eP((|IXMxyT-yY`3TY~dX+szv2U^MOF9MbI)h4@ij}o_ zHLK_}jCA1{_A8WUYS;-?_olFhhG&{3trVeRVjH!kc&2`@qaZkOxG^yMa+a8}PJ@}r zzEeU3+Z|TI>)kA6mLa|Vt`*rmLd3%h%G67e9g?E;uIMB?>6nmFFp&+-zW?N>it->iB^rHazXH>F4hO1v?5PKqqwa9MBK^AaapZwXKJ6r zW&ESP_9iadc<;a}ff#ZFt@J8XoWOA`ziS;Y%x`u;b2i z#&3MRq$Fj9ZjjTd9p<~X?YpOf(mR6;N%I;gyYHVViS zW=3i<`iYTXCxSLrB2{$7uZtY&^n?y(wZ(H_iuQU`%|iQFv`LDf?p^x|?a!EUZOFX- z#U&!N@F*%n85->#vqW=z`H`+6o6Q(~)6D_FIs360zZ=g*8b0d|8b&_Ll=k9}g9Opv zTCi-&yr$==mM?|9wT8=FZcN5+-2pJW=#!~u)bS2PtF5@m5c*mXnB-TYt1-ELeLVnso^3;`^5C! zW7;^4n)bw3cS$gFs$`gj7GR($Z8ZM|v7g0JqKLzUV8FmasPQLhW{x{tF)>BSO;s(J zDx-?UU)2i2M?I(>vQWzYZu;|Y9dPNP5xOSCs1g~Arm&_#v#{h!N9y;!4qjJ&5od}rfWX~;J%(i{pQ=BVvaBMOW^-TxH96$ z{$aACGyCrNX{vkxtrEA-nn6Luv~Wl*c}nLSObxEw{WJ5s-7H@WIn8&#WW1b`aRZ#j zxfqUzzt=dp5&foOWT!+(7-tCNN|la;{RcOJ9~Gx@zh-x-L6pKe-FM*#{yg!thLJBo z{7k}FJdTY!Zi6Ittl177SmsPrvT3%!Xlr+Vu|lznJNe@Rr>^eA?&u>lF=bTtkl0iNVYJl{aYL$OWJIB zlvECz)`B#YvnoQSEJ@|Ne{PoQWt)kyOaACK0aCU`X%VnYTlJ#p-Pk~Di9>#bqng*X z?gw#~Nv={~CWNme!a!PBhpUj9`CTP`xk`ny&zcH`I&}1~ne9KWDL11)oy4CImS5|t zW6SF!_;qJc_au{a?~2&Pian!X-vbu$6XV}&q*gM%@laFt%bBT|q9QE1yIVU?O}U<% zU{-mXGtyaWi7kiV@mtT^G_%uNi*bu{u`0n=adEN5WgcJo9Lcl$zjNZ{h|7EW8_^P$WuOdp`r>61sFiZr;_{!?K41@ zQXTm45F2PE{ngsJb?W=}fkTJg6!|xDRzOv5)}HBY+Fw_)NQS8;N097+rw!-XEzJimpHO&0j-C= zx#co{eCqJz+v9QrCZ`#%M4#HcslE_<^wrB9o{hXOL|SGf_x!PB9&C}2z4~c8^eGwF z!9Ne6VwOO=-DGxEz!0AXPw2QZvgfy)3jAjXN<){Lqx+}II5mT>u*Kh*$QM2z#XyX{ z%@)S|C@p>3IqYsb*BTHntM0IQryOk6heJj+hjQ*f)pSth%9&L{q#vYbLvvDaCcl5n)#i$B13+*diESzrD zu43yP)W7W*vR1-~eD_NIMaWKQkqDp^*x&QCyXf3UWe~nX%oS{W=TePQZhu1J<*nOn zoX045Za(o&`wehO`QOJbh|d)cfnfl? zxk5{oeMTgr!PWKi0o0+>_IYP2C08<-*xva!B57LV16>SxCsE>Y{&V8um^B{k4iT-u zx?>>1;%lwpdRu%M?JGZ>aq@!BV=SxV-3`M{x;3KXU0e1J$L8JLiQv$!SGL~%x69#V zVw+8LxgL#d=_2v)^EG@r&QSW>Kg@rNd)O^Bd(68@jX4CMhECi@1JBc`Ghkb7js&_| z(AO_%)W}J-wBpKY>+n8-nBWlXu>zn&-9`c%|IKfq-U6Id&2#P%6m)P)e&koG>h&{?Q1;=beu1eGGLV>L zr*BAznkJ%?(>^qmWRDhp6FDVeJEMg@rl2|o><~^$Dr9C`+090`p-Go_%L@OjxH4V_ zg;7FxSTTUW(^ovL{WVQAxlV2+V=J7FC61=gSBgr8QWX5=iNp%!7KhG<7XO`Y&mtc; zy>*H&q&U7mfE{Re%R+Zl*qn(X^G&Hfx_50HLE;kjWh)$W6QPcC)oy2hQp*19i3$H$enhwTl1HKunQa7Z~1%ZCiH0$x-AWveO@i%1mL7u#td4=Rj zt9OYnGrcNqmYNh15VODtjAPzQ!}-Y0I_!dAt^sSqI7qU`s@+QahrWbJ4IhG~fU47s znbzl*AogHiJx||dUzpw@(Ns`cQSUq`Z0!Uyd9H9{sue?4x<$=o(tlK9KiVSXwa)e2 zpt>QpS%y8l*t`DJEdr=;I*8x?rPucAFts!5;jD(6u6HuE|H>THcCIAf5dI>*(~@%Y zthV^{d>14e5lE=dxQe>qygq%Hwvz3Qh_Us?ntWH#zxpHO^mLq|St`#%QgCyD5YRn{cE7nL2#HFf!XT#vTA zW`VG7`Z0%4Ri|z3SZbO+(FJDEU^Pj9H49H6fDmoK?oNB^F*P%MIQ4bp_6RAU1-u9M(dc zOA4Bz5p7 z-XLc#3v(sGSZ$?-CVliJLTOZkTg~4a?L5mTLkY_`GolGeMCbTc7b&D9v>FIGpy0#$BZba-^IK*lB04gq!z8 zOJ)K^I?_NV32zX#uNXxlpPGi(x3kZbL4gzkcoIjh_f(Ah1|sh}BLm&>z92=*VWz=_ zd8~)1_ZE_7Ejc>$22pYSvo3rYpL51PB6Xg3I<;=@C$dN}$qNo}03IPU#x zV_bI9gOFj{uYJ-wTy=xUE|F=dQK3cT*FoS)tUc5;iiyBfwJQk#XXEs6`JO9=D^Q{* z0?*0KD-9!^d)#y(H3$JAfQ_$cL3F@p^S`kobop-#u)b&a^>a0sFI-l5@`8r)B2mo- zzqyl>l3Wa1k1J9cLB+P-+xGDHA~*xTIZ8?#C0VwfPfv;&lnjnZkwq~dlzn#GIMqZ-zT@t> z@!)Kw>q+<|VY49}wZmccD&SyuJY@6qd%hbY)XV##lPr9Kk|(}*B1n<4IkZiD;4`2v z>Iechs1Wi+Y7L(NCCOE@ivqeq0%{NDj3^)}@E92Rp?RP8@}+Tneo~!cBK;%(S}f!- z6+vWGIzr_-Pk8sXGikr|Fv3NPwn*>L7c)KepJ&2wA=9Q;&8RM}iZ1asW zTZ6#(z@O}^z!o3SljN7|Cr{_ok*xf{rw24^+3K>>ThfQKeYB$W?$mhGiH*Bvt2RG- z%Eye!jSXU(ew}tX^!gy;ykk%C-&mA9COSXK?LLfb%l}k$zxt^X=vhbRMju}ItnAw+ zy@1$e$uezfum#KGrQd!HAx>CyBHB=mgetzjiP_?HXs3Gt zkka}2J}XhUT+Lw%IffMRkgn48fEo|DkGlX+#PFgEQqT7N9E=+?SD2L6z*s@^h)=cz zCQ(Go(Sf}u@T4}rw%G9xb0Wh#=p!Ux)zc2ePwpFxtC#?VX<}r#2CIY8VXY*XA=mZhQDB&=2zBenI1A3Q&)1((@0S6Z<^g{+I}7Dq9*9u21T9u4dca5is0 zylAG!KA~@k!8@{v2uYGNEy7Pv2=i)?BR6hPxI3d%xfE1)9SC)o3?gyff8MUh#MB8m z^GC~pAp)Ii32*nWl>a>lqk3!@*vqn07__-IL+Bcp2e1F@^o>3{KPw|onf@A6d_wYy zTXrqM=eK;oS@+88hJm10w+Ojx~po2$LfjCL3v@uwD-ch1f=nf8D;)G&X%dlBwLF9>H9>4o=IO1n8M^A%K+ga+^4 z!QzZb=g=nF6(io^E?rtQJ9YTuIS8HOQ=ERO&Oia4xf7|z|2_nT3B&!{2O(;9-d=>m zd#1L&dWr6In%+b__QnPjszUfF{Y<@JvXGndzD4{XqT|u#6LqF$mUQHp_}ZZx8xy3u zQJpz`|A5s(Utb4?%VKhKHA8kbHx-%uAH(|G7qaYKV1}xpze_mz=FjqLwH@s6(RYKER?NBPr&7a>Vl;aOW=9{sK$btsqX3J|e z=LY2+=G2kGd#s`p7SV}6_R7Pdq-yZIXjJJy2Eq!nx5R8=DWretEB%C?(kZbjbHTU zjXhuDPc8fM65Na9Mnn6l#Ahr(1rb~D+YZI*x0EieoC&^1MD?k1C9_H--AjJ)clU)Q zXVxJuBwB&)NmyZe;`NsO8C!ZnprZvm5YVBq&?#1RX^eU`Uvx95Prk157u6~%M@MfP z^^LW_GpvQuLpKeT5@g=?sf$McOPJzph3=)gq|(2Bi35S_$Ybxc0}ZaAK*}@^>%qbc zbx*tXmjz4h45okI^{;NrkZixf79=HXyPjpLJp^mD*fuO;=!J!p+c2WAHkFdfqbQhT zPNxBnM_70YlfB}}e06g2vvcW=t$i02$K41U1l;uT)IPm~Ws~!E1C8;XyTd2;kF$v+`bt--9T6U>3I-vio}plLM8Y7m7xzJ;d=@=Z6i6>vrm6j z1&Oy*6)<@F0O@{T?NwAwdUIKrE2)XaRt}@=mA+YaIO@IxFW07T{lq|KjPL$&%`5AKF^Vcs`f^d?(HUt2}Mu@1#qD@riM zO!}8X|7ziDdHmQL1vC(WH^n+2ih8fh%eROGp9F>rId}x+`i~oi5q{ShcRmkxDP;+b z30LV_z4b?okpt{N#5{ZZU*tq?{QqRJ{*3L>R|@of(YN1(-KR7v)EpsN5Md?(!kDdX z!#ujQydyF={{#SNyk~v$zrB+q(PRhE%>o^Jm=TErvVJp&_iWhBNyjv(Q5bFnocP*x z4C(m}jf@*kTFb8Ldo>sb(P0sa3Ll2GahXHPuyg|RJdOQ1s`hqmEyB^NC@JiMr=K-b z>J3C136sX-bWiZn$C$s~77kg!{K_`Yo%P!PKxLfgeIy6^*kx3?@aHxPQoJ|^cOPC* zz%qfphPta`*R!#WKB3ENB9*8Q#Mz+Z(N;gD99;!RGYccESu)Mxu)&f!GdZil{ohO$ z>ZWXU?S~u&%A`Fs-70P4p1(C;t6n!WRgJzx9j`@0k{MR9G<1U8%lFkxQzUZI{*Z&k+UJNGAw=0qw&r3+ z-pOE^Tmt9oXJ%&Ys2LRbBOS)ZVJ<9vl+H_;pL!Nn%NWY;^oLF|gfjO8ZT{FeCGzXf zWfSj}ic>RE225>ox;pmAH`$FUZMFF}xz^jPz411CC);^klr*wB8@umJ4WE00A**uW zch1Rt!v8H%d}i*4Wr7KO{h>s&6vl8}aH+0@<;({e%{lX0&LdoBaXi5FVn0*43}nES z%9cBxw=DZoa7{BIJcIq1Rz4p>nGr3Ak!!L{Ir1Om>n#Ubu0onv5DUgDOJJRju6VXe zajLRaY_Yp~q3>n%Icpz(C%e;i>f z>0D&*_+T}_*lSZQv!dJ86+k`NP&}CRP2KZRsMK+pr(o$nbbY;l(cH>EHmj-=JY|ZC zY6*!QqT`BqR%)G&w6Id~XCtL1O!hqsYB>0Y0Do>JV^r)wJ>w%T%|x8E=kuTBUL2v4 z#^1j%KI(89N2h_pQt+hSImiWq%^q;sOZ{Ks`uHoh#q-YYvKSbdMRpj~Eh6S^(N~!` z=hILXhOENPJw)5T-GpWmWSJuMqd50xbQv z2P>EDyRf$-t5?tCoZt!ZCN#1f{+=G;9||T7#J!~#jE8AEQygRj9FM(Ok<@hy?I6;s~@`^QM8TVIx`vMjAMNnxTtr#IJWQDuRL7~^vJ zT6;ndK2apNNI`Z}aQS=*s(d0D|5-)j{zn(y_;9a$5W1-{bK4KtCm=doxLRivCYGNa zky8$|c$;h!YnaWgh%W}2R6BwO|J}tGH+c`d481=Lcb5$(aw9Gzp-p)5e83Yg>PjpI zDA&oAfxpH9P4_b=3tpQU3Zg;R)4uOYeg2ei~jB(U2#O!UF77qF2oU!Q``l<~#pj2N6-rv%qlA!zOEi#>6oID&26(zq`cMuk=dKo<&MUKv)tE^@} zJY|S97s&&Q5c$NV4jeH%2)mt9jnj$J=whgqm%6Z3?WFbHba}%kXm~6%<2W75_&BIz zl*@&=BSve^)FSm3ebn%Ed*?`zG|0!aoXyKhi1XfZboJj@r883P)gNQz_g;d-H*4 zN>2GFo1n3P*PmGHJ^5>6UknA{t~0&cWj1Brkr@=p^ltk*SCAIvW&i4ZhSt_jz9*tx z>c1m;A)r=-u$H^x(Tu>~8`_Xfn0ZeFz!;?Ab-z7d7(o@Jg92%q`~sx=JAQy>;gIsw z!hbN}Tv@PI4`PHFeR#6kG`i@VRSTa;(w4jc!s!& zSwEgjJx2K(jD_SK=V4~y?9~o-=>!-Chi~J8j+u%I7E^h98~PXdznyMO=`Y-k`C`6z zWtv%gCLi{5^Ia8T0ITi|@;55x%^+Ps-DmHWnvKmiqxzifkAlj$Bkw)?y$;G*!KhDf zWbgKq+YC3i)MAr)A9W<2%e5KH>RfHOy?OR7xVJYk!@V1yQ>OV zHi2r`m=K&tP(3V&`uErPGAA=o9j}(5lEm~(KZZfNX~H;M7Kr~du~$A*jU6zQc!OOv zafkbD{w->4o6_s5|Htm!C+D`OQ(*>!#8a7Uf?iT71`;jFuJIzi|1RS2>4RXS>Tl38 zpw$&0{k3CLpN)OX-3mB6?(O1}YDE9aA7mf(VRz~H_TFTm68dYWzS{nmt_Qgt+|%^? z(>g=4QvH2{EPJ}_V2;ClO=|>07x5H4&9v0sofNOOl`11WIkF@WX7oowR+7Y!SyKZ( zuITMcVPucX>AO>*>Wr7Z1B{%a*q)2h)yh9G6oQ&M2MOcuhADpe|_pr~kq%;zq)~r1x-m zz_j^bl>A6GfO4I&C(=thC;2!(vAAJy?qYsWao*VXX{BNkXgGu!s3pp3NJ8WRk@@Ik z4-o2?@`+IlN$I&+2AnKEWEYVS6mw0kZnyomTh540g8c42ZO?l$mv*fq-YJ5aeTIYuqt`g za~-ZvY9V776?>Uq1vT5ljZNv`%Z#stP*98t6clfW5qhYvG87*hgQ+GX^Zx=q>Nz!GwITaHu=8FSPITfal9yWsJp&F?{tZx~!~pbevly)JPgtw!Nt&CM-iKh%}Q#)il!U+)4K> zeI@lc&cMa}4%VLJ{AJ1%v4Htg=N??#u$1(@b8@RM(NZ$#jD+aix0N>yps|d-KFND2 z`wz&g@GM3gpot$Vq@7$B3@`mrKdABn^GYy+J4YM-U9pKz9RiP4xD}4R{q^y{%~ts& z_;@QyB|vb{e3@kt1r)m|A+xe$6Ah=inp)L55~;T?Q#O{3$rMi~1p5DpGJ8QzR^zAgUX2$%9l?0vE^XiL#`*F35LUQp)huWT z>dZ1}lISH)HM!l;ao`Y$5T*%`2!m0Mh@+eS{jr+GbiOZ{9d~~^^6O7U`=7udC(>ia zSIIJ+rdtP_CteXJ0aSFy(TWZ)0uQ-a5qPWtR(>~zrQ5UDezG89I*-K-Aw7#G=x66t znSNzh)27nd?+=3bbTdqpaM4p2W&2EgMcHX%sc+%oGy9YIui`jQsrIXV~ zZS9Z|jEyS=g`>q$QkIr+F;>Pda&doE)%+(*z%vSEo?V(b2unQU*3kW`_Qo5nFsqX4 zr7%%B=R|+J&Bx(gD|OGmcUFsvO6X(1aC(jZTu>hyk9h(DA)$;(WgbNa!#3Luja8v@ zX2x$!Gj!+8fqw+DMFMcy3i2n5lD}V#{x9Ucj>|^LAWQlEnA1ZZHBFngPgi}>F14b1 z!As7!Jh?JdAB-KMT2-UDXE*WeeUpNC%u3C; z_z6ld8@AQ1tqi&%_)dZ-Tio<|TqYzV`XiT?W7&SI<}Y$q(0?yycaGta|G!klZAQU zLxN}=jP$MEKZ@WY#Wd0bSW8L(=&c29slS$qOM@rW6H4=L zT3)*~|3UfD^;}VL9?MYxz=RHHHfB(&kKge!qX!KV6gt`~&@)`mNjCj!9%UWfG{)M)MUg8vSW zIAd3|E{=d5{VHY9zZ!FVQ`?{W=2Y^&qH#Mpwu<&dc;(wdOwxGlpo|)wl%dfs6ZnZu zWTG;TgO;mQ6~eSEilxKnYrMltSCA7CRpddtc^P}mNEV!sm?`qcR;NkbX9dK;fJus- zbTk@7%el?+_&N~}A{3MYksgjs_Ml^MKz;J6a;hTH`ENQsH!beLzPV)S5>@KL#Z!)O z2o`>%y*DL+z7fh2DQ~0ERb`zr6N+B5jH$h46=Lp0cMyrQb>w;B4f#)qPa32=;E-VMwai9h{VBg@MFc_1$LLHQo5Pb6A9mRdW8 zkgcsGu&E#{@P-M+spz{cq?2bj^OC8YlpNqZy5#-cXLDvO=+>{U1nQR!Z*Ed?16$r= zC;EosbN^FDXfWMYbGf2v`urs8C^gl`0y1<7Ihi89`@}9zF4!TNj*c3lWvFd1Wqwk{ zpw8e(H7g4Xn*5WU=ik#9jHtn%!_;9q?sm40G4g8uLJ~gYF;-#d#v6=9v7?A64Za%a zzq(o%vrEF49t+9E*EYlb&##-WSHg}uPcOB=nv|Z?bRU3-P~ewGD*r znB#sPSed#)n$CeGH5(Qf#F+?dcC-K3?i|vEuN{2nseCKDSDU?sSt ze)`q#x&$+J_MH#@iiujh@R=}TA3hmCfOoP^-C0iVC98{3ec|gB97&y;{db_qPJY3f zG+8bM!|U${?3KG){H~5B>NY*9_DfcV;u{)4y>P+;b5Ox6C3C`pr;NHkAwnSaqP|hBP#jPlv_X3Fvk8zYOYmxOvb)n}! zo`e$N5lJ728Md~%?=i8dwT`>9J56d<%F$KlR?q9$SH7~uqOtr!`(^EOJafHLdh%=c zucgUGdbwAO@Js=({%ij5l@)=j$CL7`ZJsz$Ma%FH%qZ~=ra1(6=u zZ0}}oOJJnDl|IC)95=Jh&7{FMRP_6RBgbP8Yb;O=KW#RFQ;1{68KJ?Y*&>XBbTqgQoSDUmbO_H>uTJsCExV{bQ3&>{ zuYc^9SoYsc{w{NN)u?_tn>t{2^$qlK$*aJ+I%)j)`OU%9>(Ia3jWx(taH4XZ@ZpE6 zn_nnhy7nvZ$ca3P@DBd&+<7IG$TOLy9HzuPrKAp+Db%qO%yyck?8)DdQ0ooy(chWV z9n*xa`mwsDv_I@%O(=wMSFt`%0@N2?f&op3DE=eakiv;v%gY;qzXiQ%HhSyBbFA}c zKYFwQs1^TabKb}7^BI%;gEt0;{y$7H)~a&vQ5OW|OIsHU<~!p`FGWYpxIvW?7Acy~ z=72>CnS2(L1maK@Zf_wo*8Vo7F;X>CiWGJP(n^3s#dqJCs;Em%41r!LpXACBm&oC z=>;;=3E`RB`{E)HVjkR=DTJcU@0kuOA9FZ|14hW+7}Ds%Ra`a(T;D4d@M9;m`vJU3 zo3I}VZn5|D4L%7&gHN1%;n2|--FQjzM1!&O=!EQ=_eONDZ{SqgC(3qf>NWNQgDGJ zqN~chwOfK~z-lJ14gX+S5n55X(v~*%fVy5iZ2V$)#wge!e5YoR!jE25)bHte9+#cc z8JQ53!B23%U`S{CbDktj*UHZ07lwA{v$mVT0Zv)cP3{D0j zJ=?3fEVIvl*mC{_;wHa*fX59T8a%%uCCkxQ5B1<@F^XdrZN^lZjv)a{fujs#2Dh6Q zN^#R@lPX%g2ZzX51jBGMm5sr6Cn+v&&V%pG$|L0;h7n{YI5#Dub2K3A4qOxC=*B#e zLNlJG?JUiVfZ;y^_6;@9ejKk(Ra3JC7fKu8vXNP#;)ovWKQH^iD8i~N-byQ$6ZV&f z;gEQ+8&=j#?Ts3~E|@a>;DEF5>w**0T0g|%CQcTB(&8!{=jK@zHuy~cre)ba$(57O z_b5qFu46O4?|6Z_HUZ;I&I{Ov?BS<)*(G4;Wp`}5yp<$M(;s+>V>z-kNR7YG-5wiz z5$L<~{MDj7IiH=0tG^R6$!uk4@Nh@+VFgu1dsR6k|gu~l7K3rHMGF7)g|Zhyml|0&^bsjv#8W9 z2TzT*`jtir2$l5!js5=OCx49CN0vv1Ss{P2}bC3+No(J~qKNSO3_ zpDRi5#OVfmx1d6B;vtMUTrf>+V_PgZJR5ar?wN8YQK$7!jeY*Lv~}6GE6*5_)qM;e zLjC4opFZP+czrnF9>f&VX!re?*X-)>b!hiCde74>{AlH$U9VY*=a?z&l+Ye2f{-!g zBiz1%-HB<16W4Gp+`b~b>kBcYI}A(QC^U5N*&NyW#{3yR8SQK(q|dm!JN@`il%s?? zTc;Lpg$2{%1lgE)Scd(qI@@%fa~m?DJfZTeII}N-N%B;ZtmrFmy$s77UFn4yg|e`% z*w>cE1Oiq%QZM)$59$o;mf`8itz4NcZLlbXI|}S47;ym5UKsfaE@U(eWEI(!0?E6uKn15jb~#L>p-#-{>JD({kTgt z=Pt*S!$tLKKJq9tnD6O#Na*!9G`gN(oIM8l0o9oiv8RvR61Ze5B7je0|H8>^>VQoV z#m^{s5DIw~bfqJpuWJ3kj4#-zb^_kcp^~Iy0Ds?34K!@|bcqrU-ke(9TL{@EX|?I$ z9UcHy`?>@_e+dh(V0{k04wAOf+xn)fetLTscH=TDz-Q4zUmSLYPvcy#684Dx({xhN z>L3uYmt*H*Bp=7_Z0Djw_jSwOAcHD~IxabNLt0YdBt{6evaQ~81D}x;?Jk?^2a9LPcy9T{{F*n(xdl>ZW#tnwm<7{7% z#S1~`1;mwqSuKr-I{QLphdJ2o-L-f)Dx7WY)hIZecEvdvvpyvYCyGcpD{5Em5LFNi zBj}=ESW|QCB5e6q@qZiR8D^y?Z%(^%5vBpy<{Aw+Da!Y)kXDjxX!_n(6rVb!z^apLs|%Vd^)8nX6kN9~8B~5jJ^>?+Kb9pj zBzcJ^m(LpFUaH7diu5yuf#mkWP#;0!dTL!!m4u;x3Q0DOVihGAVN+ss(0MUVM8lbo zje;5oV>=8DOs$n?Da9oM^qo<$Mi52(IWdF+eLaD;Jo@zE^hNCh07Khpd;WKRJrxkk z8I3gjL({@#k^5P)Xq;kDMx^^%*X4t&vi`ScY8_#A9`^XWJ~#^&ov5|B{{z}UCBGdu zHmsl{UulTnGF*debm5-~s|G-@a!V#^Sn zP=VNlawH@SMSN5tvg3;p?;A^no(H1M=tgXAgL3+S8!D)TJ}@JHJK=gG8W&{@$AO+4XAMUPOkHcF-Vnh_0Is z6oQLVhfYxL*jd0tj4f&3R-l9jyV|vG1@DgUBdSMdWU6&RNw4;(*K3Cci>_Ggtbnh4 z6!Ak?5BwUdghK?9<0?7RX zF#(r;9E!{9`{VMu{YrDB+!HBMBw3gc4qzGs)Kn$^L$#)g&`40ND{ilt5%r zEi035ZkcprOAhctg0CkM>GMqX3r1RC6mr9pQIwE_lKe814XVPJ`YHHm$x>|Fwi~C; zU&f`|cSUQ-)hADI>CqFMfAAP*?mfi02TutPf8Z*igV&?rDY`sEMl4iCuk!%vD+~;t zj(PuuShVUg6&&0Ga+$)5SDoXrP83GS*}K4*JG?0xVdN^X`}{L(Iergo_gp1-T*8VS zzhU{$m+;^fz{q zR!Jq4*qRYaOb8^#BD}a@g0%$_tz=1}&nS^TtJjgCgj+RY2oNy>BNPGzFM!6c$J6H= zZ)qYDXK5x9ZAo~bw4j8b5@ROou3?NM(0P<#rvDlwe}R&CLKLGUks!h-iKYJr9`Kq- z|4oTrPRLD;LS-4%@TX3~+_|%{VBsPx`D__JU$G8fto#AX*KNU9>vvFo!Pf+nFINAI zNwYr3fMMg1-M{Q##QKfwipE5n3aO}Mp$$Chvl2M?xaj7WJQ zP{OSzGLZ0)dnwN;&*=Z2ym~?qc`mvNxjTplLi6HzJj;g9s|$2a9e>EX8UG=sF#mYs zI=(q@US#cI0_;A*>#yhN96E(BHy_9HpN`^-^@s4usy$e;d?ywx+JMQEmZEONY}8jw z$H<}MP?24Vp$XY2OGw3#$QYDGM`3tEG^$c#MQh2Zf^>}TpM~)Qaxi63J{kt(qj5kk z8jEw#RFH+KnJHp0D(|9R7wCg}s??1R^pz#prx_-`0wp8EeNaazVVH0jB?2bRC>a|b zBr+x<1fwXUBf~I?fHI1H_Q;q>)Wt-jE-oJR35gh;l#DUSsRWcXj7=qMret7TS`Nmi z=VDxXzR38Dg60%rLS_-hXAQuZ^#08t$wp;NI)+6i5=de&$Uj_+CE-~&#h$(>aPva0 zvnw(k`XSBM9;r5V%_y-%yon4Yk%W>6LnDOg8z7Wm60E0(AYEMqXvH^y_OZP~z?241Xt21n?@$9^UZx^lV9h zmlqFoSUzj=s!qPb$7B1m1b&i0!YZUB#li(7X3E$ZM2uvJ| zz=S~rmI62jWx~lXO%|VYxcO$n)h7e)KAG_J%Z6WI0Rlsc5gaxEVPQpx4$ngpK_@Ld z3sKI&h_G};l(99kY#lI-PVg!5u^8CT4oL<)l3D}4>b$>AH`w=(%`az^n9^h8?%i5I zV%WKpKnX{}2uGXX!6=c3$zP+SqYNeO>3iGpn3C2oZ_^5n6u&NQ5u?-|3P zRL%MZuZ}FmlihQ0XG=YTH-)%DD7m(}4s&u`kzuZcJV)-YryIQ$6&B{E zGE5Ls#6BkP00#p_9wYC1j|35Uj4(nZh)B=hMoEl=4PtrOa5opkd3qp$YxRDfNb&bV zN&pqC{%+0jK)jbLVm(|D$4fJN_#w$V6ls3Z$O=nBacY0`&m4kMDqzNrnu;Zhm*K~a z+i~FdS)93Y6PNG)jth4m;Qa01arX8@oW1o3r*A(ZNIb>)JI`=|x2%_PhX8Z;g~+*^ zPjK?uBb=iuEiZ6({vKh3N~kk;Ug6Z8Kj>$00IJC1$Zs#P=geblJ#w3B-IuWJr(;;W zdN1ZI-+@`nc3{RAKV!yc+tBpcX3Y3x6Xho~ee@$5Kl~OGrhkl)DbRW$TEDfwBS&1Q1?Jgiw=g zZHW|HYmsC-!h(%8Vy&zYV`)hMHf=#kw5ib>DB&)oBti}++0ux9zmYgU870y>CA^rL z_;-s1)SA~T;gwz)B_2Fr+6Tp1$*3(a#rRQmVoLd(*$c2}(Pvon(U)R{;LnzShtF30 zAQpd|Ie!_dM>Qd@{|IE{l@bIOW9jN2vGdqjF_z=xL;B1~AB++n@JikkEgRhB^7MtQ z#Y8>~6S4Oe=hbtOr_KMz82SC>Gs+7weuSs0OZy#NzW)rDcF>U7&Uk_hV%6hmx0olL<|j!Kxt$+%3~rhA~71ZX#{|rB#bWLbxYDQsVEbZDN_nE zFeNV?Q?pYsIVC~Nl3_@U@by47U6*yd)|0I1znD#%;lgi%r-=8d{=Pda+aT1&zR zFci_cLaFC*KOz385A{bKA*C*qxB3V|ZFn%MBSKLf8G)LpNYoOXM#jcqWPE~1eL|AR zsHC*!WMFi1rpTC-ER0Ucq2yw8S|NcXA9Vzh>evhnk4!;XXdH(4M`ECFsF-oX16&y- z+)9$;*#zFigS?3r6V^O6SW!{5yz>HT*7SaRZC$wZHG!v zq}97xNLoNauggQEeRJer`#+5mX_eN$ied*DNd68b3=#7EhFgbnV^rMl?a1GN5=%(y5`W;w-hMhFi3RuZJ?u1KrwQJp@|#% zSa`yiP-12m05iuBnDz^Sv3&>(?Se#%?1N$AB!h~na}-P*LebYQ6ejc@i+)kCaf*SR zOC0Q+W8vT&hkmXJaCJ+9yGIJ#-IL+z9*-qjb4NrNn2N5Og+-+4 zsBjceAsp3P1K||zy6LCTO)PxFC^4s)D0USfVT^FMjebXNA(2JGh?IAsgd^*|>F^dx zI*9Qm+HKnilvuTS56Sc=zJ9DZnTOf*{5M*MAU@B|^DFIaDk@Bv{ zqvTx>Y3Zt=$b&>mgpGyhK4O$aIXNQI#aV2y7VF`RL@IdWy#%j_UhFx168nyy z!J)I4apc@J>_2k_JCB^j#$Cto!_Nn>amPVy*?Ab-_nyL@BNuV#)HNJFa|;JfUdOIu zSF!KZP3%2&3wuu97WwtW9qgh4WcR6i*n8#yej$i#+IIzOww%UiYX~BrZ^p!Vt5Gv; z87d}xg7WbnW7wD_C>yf~!$vPcIUR?OS%~4I7ND|zHcHFKV!)s(4;g*)>)mC|bnp8U*q}$sf-N6AF zj*dukbU+H-@Z)U=odgq}1s7v(h8R=2;mfs@@Hi4i31dWxtV_vQwB(3zSCicDW0>$@ z-9$$#Bs)8)jif(_AXFXJX#Gk1>1hCzw2S zK1S6ypk!zra&v|vJ#zrYPMnD)%T{B{zGFD}+f5w1dmkqrJ;sF>&vE6|E76T3O%G<6 z@E}z_a>OjH7q3Jf5=vxwE(;H)e)WgQeL@aT9hVkJyG9Sr-*||VS03W%g-6(a@CH`> zbQDWg?!fF%f5eo9tLYqCB{KDcZ!vYjI!s^iEt)=9j~NTsqjAo+n9}$SCQe$4(X|Uv zQ`UgmA(JqsWCF$x8i^4Z15p~Cg3^c>3=IiJX-E(%A_*9=VW>@_!aqG0qp}h)CMOx= za#JuqI~n6MlQ2F#5#v+iF*Ys=_4NMQkN{NqxC@xn_;{e!mvBOrgppKfV4T!(Lflak z>Mo8WLp@L*;w8dp;c!a}r#48I>L5RiAgELY`-_YSr+-&OcneOdqhnAL6HAE`sf$ZO zU3@Yn6(bYUMCudMQJ<70!Z4|&V@+Hps_4JDA|g??oP2XDNv?|*#X~lhgg}zz=!6V= zM}d+ITRS?(t=>S11e2)dRuc&&QfrBymX=sN%}rTZ%)qgy*ebn_4G(ywims^eQn|v* z&f96I!;!bypr7qQzt5X0%zjip`Sf#zS3eiH_j86D{kvS~-^FPq4+v@IjKBmTMl1^Pklsb2V za+mHRDqR&?qS{TdC2HM!h^Q;{Y>sjZMpS#KK}Atj9C?#IbrmgWY3M^oyAKTX%mqla zwN0U=Wh`1r7$po5fe}4x5pBKZ))He^7@2#($ifSKEWKf5?FT~}igkd9p0z)8t^A;G zLy!MI+TJ=&&g;C}cWkkiadroH2X>g5X?JFsnNcg2EU;u*GRiVj3^6m?v13Z&Bz6o< z9EJuQD5MRP(j-lrrfK_rfA@W!oz+T~+w|@G`{VkYXP$wbotfvH>zs3+`_TOwYZ_X6 z8cpszES@}xOgn6zcDViB0x#hwQ3(cn5DN7oOl6qlr8C)!ZM+n6} zYbi*{T0~3F`&3?fBWz2!4KL8~)A;U8YxhhM(BjK602ZCw~9gSWeao3iIDdNkK-=B_zz*w;7g_UN7~e16~qIKZ!{Q{UK@h*CFcN55~Fl zQ%MbKjO2vQ4aZ1UV$?{-(ilzTsnKmGf$1b+>Bd;=I2H$%urRWOd1A-H9vr{;O5AwU zM@7o|`yPH0k39VeF{J3}P-A!h9qum<`i=4TLd9z0nb`7sJ#O9dbHIM5xlY8CO=@=rL*~ z5wYv(Zy2bz+9csJ5@t-2{4nDlf_|stB+?T;mLN%lcrP3=9TldYZYqqq_6&B7^y1*` zBu?zwfs+?qglmsqifb=BiBrc<;>N3Q!ZlZ3hf5A$hC_RgV%O3>%uOtj1TNyDi!R44 zcRh$tyzwsH{r->emB0QOzWH~5kMI2YH)7P}XMd1lk$5$Z2!JLjIWsTKS%K0dG7OKd zFuZDuGg9-OHk`fnw;T-33DExh@A0*7{|s+`@z3z$OJBj=_q>K1Zh01`u73iTpL!S< zUv>{JI(`=}x%>garB^zJ!C_L)18TU|+5o2l8ngZqMT4?mR9T=)j4QPFyzLhbtyYP9_I&#rOa&8||Zp zzXz9+xLn%PCdA<={r*@=7?zT=IhKv#l6-^+<9IG2xU?lg(h?;|QV5oq~#ocHrW!ZX6*l?&%X8>m4Lv8Nwy~!-C@jWAwjF zkc>>?SpT@#0r*hopx6a?U#?RK$@XLmW`l7eO21M1ZBoO}qa@QlKc=XCm=sb%vP;rD zWHw>YM88iXi8Ik>YC^BkfKFW_IB ze){JBy_A%0-SkJo*;|VREF@wt8xoSrVo6G>N+cnvE|r9&P;zQ{785RO%Bo02s)dLY zq@=o%%F24w)+od#eJZ7%WW*$3AyFudP^io#CN{#cib8FNQsaV3=S71t44oy0Mso~W zOB@Z>q=4n4!IpvAo)M*r?yJ{_P^Sw*-4ur2MqS$lcrr%~a2uWLz;L1)!^s|uX8SSLHi*fd zF-#9mVRmd5^HU4hwy+aBw(rH>y%*uaLzm#d;Y+dq;BoBPcL{dxK8mHK3$eU>5W99B z#f1m2#L;8acwKr6j-9v_hmYNiLl@tIeTQ$t&i&V8``&A@WA6>vb>J54J^WGZKXM1= zNIs^QuE5yraSTozLEq?MbPpXsNB=&w_3lPn_b#+{Z%13#Hgt9`p{I8V{lq};0tR}f zFhq^VaAz0E2uW63E5`CI7|&-hO%?Vm^)P2LG0db%M2OiWRjNWp0)i!Z(=#jl4xXYpB+lBeo1uz#2V4nUSvlLHYDVCC!TPD(2jHfUkB}t0JFcprHPy{gQ_F%+G z0^~4b*kY7c+pI`QK}h&_$xOKOB_3>!QDI5i$jy6 zIJz*46FYW_M2c4)IEh7y>e8&k~zI+TPw;#df zB)LcW$8cf34F{T=u`e0Lh4dRb*c>Afh*N`~#U(vCoak?(2E838hPtSc@5IHuBm-S} z9PMbqk=6_jHz#p0MbAk`aU>PR#q>I7bCiCMN78;=l=0zcCLlPLE)c>cnJ__*70}<# z#&MWr=1?|4?}x}HaUuPk{n-@ut&+ih67v1cEx52HC;kudzqEGZU|Sasws+%DM-L8n z_6vlFwD)6Qz6ZOTPs_++G>y4X4AcIwKup;P=-OG45@v#gSp>RT%tA_-ezWlmDQPDu zX=~K1ib+<%%YthVtzjuCg}=J&EK1<1E{40R2thf?i&}=LRwecvOWI6GIc!MM^$?@$ zEa;YG#BF!LX|=&_w&1+8h2(50`R@W;Xfufk zvqnl*M?hAjqpWE2>hZZDDJd>Nc~Kb&2~k{5LQ*cus*(y+64j-ZVkh7aE2~PYQCVIi zM1-j-r?R4sq(nhdqJq3mhx&RQa3&E%l!ej`+W{kpN zj>Bb+!rMf>wDv(Pw|1l3>O`wXhd!MFvt+*<+`8B2!ZJ0ML+W~Tkg>MZR3KQo6;6^6 zTgg@!=(E;sU19Ag2?+!Tr>ZurgJPXTK}-rFqTIMya4sofWSgXT5*8U=4(y=U3vFJH zOwmU4Rc^tIq7r)>s&IK@5pFgY;od+cp2^7YT2~$39#P=yvl@JVNrxZpFyiM&gZTLs zS^VUhF8sx96Zp%Acj1?xyaxEjgTOmC+kB zXG;mkmGn_#*z567L+Pbs!cPsQ-z!$;407+D;F25Jv1k;-)X0rRl9)_3V~VG6VmVAC zyD*wyIqASya~EbihcG`dirK+YObw1;d~g`!Lt~g2o5s|{EM}(`MW*8UnVnSG@4}Ad z16W$vi`nU2n3~#w>8V|qnchp~K1@vR$JF#ejE-N3!Qp-A9b_&rQTg8f_bXo=Th`rPX;iX@M9)U6{-*tzgX%!K@vAcjF5@A;Mq^$<8OTt zuYdb{_~Kvw6yN;YU*daz_Z$4#uYV_2V*TRZ{!_|9^UuG>U;OjG3jXR}{$1?i%lzzj z|3|E-VSe#@mKTy3=3hu!{+Vw7>Ob-A@BS1|KleGDy!vA}eBf%#4ei2c+bp`1!{{P< zGZTWY3hmDL)RkkW92DaB+J|2+FaZR+5pN7)d#pOOYfbgv9Jm zMzAjyqUT8*hz4+w1eiN{7tw72iSfa>mvG~7%uTmFgimmU#Pw)Ah@D$^WmfrkqHlpyDx+(77^f{D$N)fCrLr7M>LaD$nD?vz6wJIed z(WJQv3HnLeLl`FyYS>+%(c_G#UIbkgPNjrbag`IxlQGA8dLrJX$Aqk|{4y#hz1Z&|Ft9wwykc zh~et)4(y-?a7w2^pS%Wb^aDy(mchMc6D*rI!o)$W>(7UF%LYL~N*InoW!N69#d1iGVVfEgehzZg zfmbthdyFIr#xta(ASC}2DfzF&q#z_~#bi}VsA1`$2CqOb^~M>oT$$kM28QDzM#4c1 zQ3E?dVlo-ekd!oIJW36DI8AcWjENL4hs|Ru-;UX?9&8&P!H%gZEKQ7KesU5EQ!`kc zp2s3d$-?9U<|h^~N9BdP4`Tb$Ud&7`VRU$oSRjE}#?&}T$|TFmL6VaTF*0%?hDP>d zaEPRYPv;GkxXDBpCTbil90qOlcmZu>Bj=~Hd#vM*GS3q$|%WXlzMt3C8J@V zfIlamt|fgjV6(oq;gAsAM_m^O2ww@X%|x{VQ_9(=Q&3x~T%E$IXPo zSct{3Kn>nvDn-{_n#yJ@CUaPd=deJcI3I7pY&?s(7(rq(6Qu?s7{WM-C&#P|({E(0 zl+4iYj9DusvnxU}Ln6XbvI~nMJNhHH#@%YI<{{cV#&F}ETU;Q)Q|MfrP$N%{IRXAB5Z=T1i zw*Hb=ZvFb-#XetuNBqM-0YCZaZ}FMWejO*Tx)Wo=JJ6mUL}#=c?fzD@d2;9ow4poP zDd-7zqd(S%?r4voFVRmjHAYgkfbAnYv1fcQ_D}4^VfvjO86_DRna7d-aU5vt!ftNJ zNl;lxcKPhs9k5}4(18o1ZX6;pxhNCF5&DfC$;WZ5Ba4gLvN+I^!~y!;_NPe}ND}sv zeDL#mk-(mi4|{_i?5E$@K{|JcUYj{gpE{CmA}QFBOk-yzi(Q!DG) zwqkoaCxTgdbcBUuCJ>|FMo|22SxES|%R(}>A|@R7R1g!EWsav}DdD&$7Lz`bl3tRM zZj&S>?fOQv=^Buuwj|%EMnmxYdlX)dH`@zA7Y5jRxq{TAWwN8B$2s&hYJmoU9d;bB&xxQbNZhBIlwo zT~nB{*-8x{Q$)RUrkEPR0wvTi7T{43X(XiRzoe9;q_nsUWhLc;^3n={Bpj8i$Cc$( z0=`{%EK^xgi;BuxDrKmwl7vK*BqdBmg#zVON>o&7P+8p|M5MY_C!~a_CMhXURZn7~ zu&$1ju#^ZPF-1vERwTp_MV&4TnKp#lMnCEryr|W-kVV1JIhUYf0qS+ zdqomIzq%EFbyFYy`ks0G>gD6Ww;m!Mz<<1T3jgw{i}0&gcj336*@M4*WdXlsRBk!&C`ms<0fBQ_rChqrN5#`J_ZtEF|qtJ;{gR1GGDvR^i*Nc0KYWGC8aEEcB}~ zvQ|jeipkmM&ZgVp6!cKV!1Pkjh2ec#m_fg11uurEav7nX_gI)3@MsECEGO|4W~jG5 z-%Jf+YaWZ#2rcz@V|l0#%j1Jso*c#U)C4h!ZBx_4ES4tcusA-Cg|RtIjZRYoF@=%A zi4~|!j7)Y8$>#0OE{0VXe+uBE$EKLFp!FzAtiIUI5nbC zEKsj@F&hyqWTKd(Mwh2>IId)pD)R}d>{&*5g$)Y{kC5=lNau=tv{G*|>j_Et=$L5s zuHXwIPrb+-iASC)?{=b-grtXhm%VNh6=J|epEo^blo$_0gkW$7V0$i)WoqEJQRA@O z+#!+fr29HZSlZ}4<}gS9+Z>7GWH>ISakxR?)j4aWM2N_Wl+2P4&yg6jkj#;c%#(01 zb8Zq5l2}HP69>tPQ!wl0W8O}Jo)d6lA><}GlH_D(Hili)^WTxnU^z#PRhEN+rIkq| z)Zh(-L+B1gFqrSgQ11u{=pwf5IgCSBT!)i)-jCa!cpmqB{F8X@jrZ`$_r8s{|MbuB z#rOXT?|%Q!@y54*fX{vFeSGHI@8fgd_yOMj&R^o)@BJ0t`{B>=r$76R*jC_sKmRSh z{Ql4IlR8DWsY|mu-iyP%;+(jNJdPe>@rgQ$0H@w$<33Pv}ha9 zOyqQpqD(5~BqCJ^$SMWFdXf`)rGOJtMwBEdL|DnwH#LYf^0pmnM4NPon)Ha0_=GGL z_^d8C%ubkeW)c!T8WfEF5rDO}olzga^oR*KWqTN*%&nd4)c|{FTE2yZHSEuW>@D z^RJGSFzTi#RE7xZ^^sL6k!b@$N_dn+MiNr1ata~gxD*x=oz?}j!3%w(4R(VER-FT0 zvkxAV8!o*IBiT;uY;62E#1s}r zXX*AV=EmnRK01ZL{t@(b4-q5i?H)sS=NLLW#*k|nLNhfWnd~T1nGqyXBZwu25RFSK z!NQSI1cJlx`Uc=~_X-)Y**jpd=3z2r;Iy~E<7`IA)qkyOsJF>6H%uS(W_zgO=h2Z?B1htp^+l0# zMUZeu5cf#%al#!Eq=+<$N5&mQ3&}{{6Qtin2%YrYE>9Re?l67sQ4ITI7z@$+qW8N% zJ=1Nu4*I;?siAMfQgav4L*mp;;?zar)IsmF71PN)W=KrNdAcnU#RSRHn3tr)X%Pw2 z#z;gshNK`SEG2>!DJh6aK}b%E$(d48ke3CY0}BBcHFh3si~6MAcY=E1^x1Bs-v4|u zECPeasYlLJT!ZvmVu9<5Wzd;w7n!RENKPjf_h8||W7vJ-8eDkQEx7#F2XO6OkKwil zK91WTc>%XP{48#K=t*4v;1k4CICnC{oD?h|%-uf0Ee&iJ#J$wpd{fp>G^`SY~MxT9(L@+Ks=U)15xa^~Hz!$?vC`Ioz zP2x#n7tdlck;7D~1(RtiGkHwY_b}H?pMR!}{=Zgfv$;r2?25ifpUZZy6}zbOvCnTI z%-HKQ3HEp;cDv2k;jz-=?AYeBW08*M-4-E+%sgGY%#z0;SSGfUH0+?yeJ6d7yGb5I zN#e7XT|TE^4?ULe-{o^-2T8^@I$rd+={s|YQLbq^W(k?5*W(~+vFzMt!JySFf}%(4 zyc&#GcS!;vreOkM!E`VtnB*`oz>^p_GuOD~CNE zv20!B(;-3VvXG3BoN(Dma?(ap(n?a&LL!oFY(PfWfGi10TB|`!r9h~@7J>R2g5-n{ z@gwpYX>^2Tga|3;hV_EY)WB`oype=tlYoUpNQoHfC|MDTvK4`-KvhLG zAxQ+EKXKFe(xhURKNr z*^Es-I4mKUo7`fA#AWi5lz8AVIuUh*utYta?aj@iqT+oEIAiM~T}T%tV>le8A1|F7 zP)hM6Yo)|QG?9?7l!#Fhy8ZuBN*Ep`;dm0`mMw77Yln(9qPb+VNSZb!E5S}x6)tKh z6Dx1-a%{o<{$f0xsT3n6?~XU%%N$d((@aw0#4j#S;jgaB;ioqb;cp+=fq#1KGT>|X z;Xl577k>ZwllZsKoxs1obqxRd&Jp~>=l0@vU%nJyd}tDT+o~}emrPx`Gz8c_ry+v;Eh!S~(wy4tb0A4ES7O`sQ3yIDZUXTp_TStgv>pgkc$3%P=*( zqakXTsrNJ)r^Y(TF&7am<`US}md0{t7R$XqBe42W|O&Vvvr9kWTd?k?cb}F@Q*{55aIRyrFJ*0zGj1 zNkY86usOS7wsoM%+$u1bbI_ZzXfmZ?v9OqA;B#gX_GA$AWsweM&=PJzTP%ytL;}6( z1csY47|UlxOvx1W@TZ!28i(Ub;!?0H!OMbqbOkw(lrDUy`tQC?Oy0&NO_rc83Z)2Vs#zkt_7Ca;+L_tpG{dA55g-1>n zV?OFd`$){am<)SKuJ||P6RVMUnybwhMlO&-Hk?6<-fxNoE8RgN+B=Qhzyf+FccX7= zkJwmrcxFF_=JsJ|VJ`-k_6hoD>Ar>i$!chf0095=Nkl9 z*888wt@k{On{Iy$mtA=~78eepwRr#u7E@0aSx+;v&L}!uL3F!3f-a|<1l^5Z7yZ_K zK_TGNJpC1;-hZ4&21&%}_cE0v(Mu&o$)i^s(8)oZQ*LVP>6)4&xmzaj*tH@fd%Q;M zaW`R?Q;(evJ(lfSY@=&;(W=Ly-Gq6&5pz6pWiw!k&P`f$tIX2%%q-CBGD~)wV4H(v z#%aTLw~d75G}}lpm}M80^gS)nHND^>fu!RpmJI4ZatsGc$1q*{EFnBy(%qy-r+x(z zfo@)sYciwXO44Abdcf|%fRj2VJhe!l88b*SJwoz4L?X?%d1P(h*{DHOr9wb1 zgP+92&tf7cK_Nm48G_0h5)wKl84>4I^$1d@IjC(!h+Z$KZxY#EJxvxkj1HI#Hs~6R zP%E?|4aa$f{bHE^jg)LUpCm*G2}#I07LpAsQnFE!l8u`rDWSi?GE%&?NN{?DLmJ7D zf=;CvkD97lI!97L=g(bAlCf4u{#YrIgrrIc$yzC4A*rZV5GqvGs7X9nKGq^l+lZ-~ zIw}=rAtMYQ%T#tDB^*=2V#3lP!2-gB1d^1nqy$A=i9+Cmnq)-RGiQQ#YJW{=!HQyQtC{ZB(OAS%)@~5{@VF z6>o*TXv>O}Y!Xt!Lc**SlK+X6s8^&!wVp-fOex`b5)*yjJY^K6zmYH9B;rYCWu@4y zuExdM3fy8V!z1BpJe!r{B7X0n);&yc&P_{N?!fcQ41kymJZu@$-l9`>$PtCoj)X4`L&xqIJ|L7^rt>$1qjO zysCwzq%$Cml;mxVtJ3jd;!!xxnHyI*eLsoKn&fH!Q!!yFDX>;d3KUj}tgaT}(Gu$E zj<2jZ;nf!$1jwiR zn9lcMrnR5MsTWgOk`wx@n3-%prZaRuF-2lBnd&4lX%(xb#-jATsev74DIwwDtgQ_1 zbHgid&J+_VrlcSyYlTFDM^7XvDTv7e_2TELA)KcMvM|CjM{+VtJ$Dw984~g7pbO(6 zsuP0z8=}UFq@ueT*$rR36W&+{Le2D>>7GWucMiF(DfIL&psjTj(O?cfTNGhy1kEI;Z6v3y zE|NcL9J{EoW;&_Y-bIZyH8c@LeTd{jr|-6#jL|gLgJ?H+9hOUh#0ilMgAI| zCh0Ix=ckeCl?DzZ)u4rr+q6_4QRCfdqI$x_BN+~KTS?fgB$Ff@y>=f-2i0XHAU)24 zgm}?o^Ptn_7PMPk=p>oxbgYysbT}l$d7BgMBqFUQD{>|i@@6Yxreh0Qj7E|WJrX1n z@dhp8jSZrV(0dFk)$l9i@X6~>!$P8{TZLtW&-+yh_~|*kAs_F5rhcEN2N@K>Us@o>a~J;m1zYt>XatP6h;ZTS&Wj@DlLKPTJ`x`2p7X=n;SZw$a>3Bzg)!eI-;VWkRm zMM_vm{1z8_v+dYDGD!yQK)*qYK8+gVM!k@dWvZ+ubXpA1kEW+yhI~ym;^igql91R) z2w6&mh-}>`jgnCLe=Q}vIUfnhhe?T%MASt@>2I)<3|4FrnOyg2s&R?795-2t@N`0k zPj%_=#-IUjkLiV!d}UUP_xIZImlyf*H&>+bH`jFFw+}4h-(Nb8KYaFDu^jmK@7{)g z``jt~=UXT7pYL3Se}3~g{_)LY_`5fF=S&C2{adJ~rNLy>A_5|Lb;c0&s`~;|0aDMY z%}HWmZCE8|p-N$e7PDG#_U$vy3qfINIh|&{ASMOrC`ihO(Lt3M(@9dobWx+jbW_8_ z6oOwx0IXLEeC7Xv|Cce6PY(7J%R-xDSZvE+xw{S92fDF)YzVt2C$WES5&IW*;?VMi zxM=559NBpshnFwK!KF*FfAKi>Y(Fk~u@mDv(bvC-?yecMwoReAWemymFw)s^B(h_O zrN$6Wjvx>l776`WNZg@8xcmdKl9(86?a-5mFa}#2jE;7g9IZqSR#!7zUTTyAEeHo& z5F;VU#BySjyUH zJrqKo8hlR1l=4OpcSlJs;s`k6@DOf$0uqY8cdBUFAF|n^^MEANugOHmymLAS=DYMB zMCkEZ`uuZ_C~`JGU4tI9JM3tq2E3gb@(yay`h$J|+ zD1x~J5vJpyUkd*9&}ZW&VW7`-$*spWl9BDMMhOQAiJgRmuJgqeDOoV-g_z758wAtD z6rE==;Sm#NoMdH!q-D}f-wiQiCONT~FlRQ2a>`=FBwhDhPLZrklc)$R^u1XLYV>(y z)NwltiBkv(kA8I1{aq{oI-QV^7PST`rBZ^9GwKFpG&^Ttk8O_M*%}A33WejG*NXI55^ac_T9m1Lhgw&0MMw9`y z8UdvSUWEc4xm=V5d~)WrsQ491`025Jjh4j30Ke7*ufPJQ)(T^T30jQ_YK0z(x<=I1 zsQFaUdMeQA#3FL_$HZl$4i9vcX~^ zNj+6f0#jdnU`qx-Cot8A!OS|L+O)T$+9YKM@LI*qiNrcT4tGLn=?VsctY z3R1#(N_c8VWuObWi7tF|7)Eml7IP3*b3p99Bc^U_Ubveah&cTi?dZosPoEg#>(ldg z(`qt%Gj{p?!qkUUN(`!%XqVL@TUCKbX^9xIux{A|C$x^eOz?XRZO>x*q>QV)9R)J%Qi6 zc^SU`@Dh&os<9BS#cWKEnW&Q*Z*IgxVx*yuDz8qLfht0hiWTWtD;~`zl^|Ddb!^8PaxR=Xf!XrN%=*dB!bImC% zcjU3FzZ-kUMsaXv7Kav>actKC9N&8hE9kxsQDOJdTRZ9`YS1HJi9 zu}f%ga}Isktk{HaAeC9ApM<0@ooQX(KAhyw54ulukMd-k0Bocp@2-vNAsYT`wS^1VCcVsqnuGFj0*SMXD#BP4@X zRY*R`G0|~x;Yp7qp`oGnC#3ob&6E2AYL!L_Rh4VD6(m8sVZX1hW;;_7y?kPlu1tW} zFXBpvRH|J*VU!8? z-C3USu3xd7?+ z25qcHuUA0=p!pF#e_GDbC0;!3q%QoBgrlDP;oYLqbRh0Eum2Fd+t>*Ei`5 z4HGicG=s!Xa%%F`;#On^ypC?IT^HZ>|F$G%G`?S5L8@K(f;HC_lslWQAfZwtuBv0Q z?&|YwV;@oE_{`;Mwk3Ajw>OsISpAq>;yhXdtE@w%(i|Ix1abYO5|zDyj=S-uVJsG$ z#5gx%!FQwDeFTOS*CIdQ3dk|Ok#xsM-_Jyewi$e9Hr@Z><>!e&mA$6*T2o$;P!on8 z#fsK0u|KztHVWa5RI}V!?NzBq?EC}SBM=yC%>JV{ukYN+@S%5Grq`&Mj%W}MzwfYq zO8R$;O?%!^@o~A{<+(V$8`t5hsbXyj0^X1}*;LA#2cvp=po^Q88!WvaPi=azKEC=! z@NeN{WjDLYCR({Uqc@!5VQ;GLVq?ZC=1s^6rA==yQ_sTE>R0y?g4|FEBVIj&Z<5Re z3Cw27(&vl#0jo!sqQ$%%xEG%!cuimo`!4+lhyq$koNK@8G2>L!I}I%*RyG$^INY`Y zV>5HS?!YK9R-f?X$x1YZ4lC8USYzJNShTKgeTlwDqh%DNQ?xqHMk`*C>~$yT?cD82 z?|h$Bj@i&vN=zvV!|Js81M>Rt!_DgDu4qB;t{tPYFDc3MfT!c*Q>!hP7N3QzkaI|f zLk16+Z?1z#vIz;GP@g9_ElZ$cR?tEnYfKh9xwbz{JB0sf&i{?Q8zfHL*PKJ$BAKomgKA)Uui zM_tsj-%w^qNtsKP92#N^2iAb77l4Fii4JKRdQeRWN>-Fgy^ySm#9!#NHbZ2C5%cD9 z5>lh6Q2*x_dM`E*jJG8tAXURTCea3R%v>sV>PZ#@U1|GiIb!rU;_4KDcz}aZvL8%L z(z%tuOnnrlkV8&!FYNp@M!<{6%*vj=vQR@TuikZ;A+0o2zQ*ktxCWdO1`@2EQ2ETiqUt1^z5JsD_;W0(JZ;<*k+2n;us@^%v^UMQ zHKezL=gqRNsB*3#4N!L$N!xGQLBV?(N|D3|4MQ<0P;qAD6M zm2G#DB}VD_&5R`ZetRyS-YDZzY%|oir!5BuT~6YJll`sY8pL#6X7%a;+ld#3hn!mP zN?mwT$H>BNS-kNOhyQ)M)rY?9UbMKV9xuYnufLpVA z-WkKg&)E0<5Cc6_Jx8&p;_`D7bfDO=;oi`cIVepEi7MuRj(smpIf#g$-^`;Yl9DQU z--;3y?&gY>hdKP(W6L}lP` z^7?MfYEhY`VCpmk;U=mnA&sGGL*?QUG2O1|uFd(DLqBN3DPl zmZ9To_Jf@x;rt6K(Tv>ePIA}18bd1Doc3lD2Q5{dEU{dbzArX{tUjFK>oRu}bv_S& z>hS;Va6$-J#0T_MyFSCnBj zzQI7W&sZ!XV>Jwy*DY4MAXYg~LuM=9tgNsc5&C@!^q(y7?Xpt9_ntWw)I6+pK5ZP$ zi2^I3Y&dDOSx*z#kBB(Ht;}tIqZ56?;x_2Zx58+t{c{jXSZH3nbXk=ZAE2`(kopyt zl!jFta)>H+O4X^FE+|xQTA#VdhanOKLK=};K-If^f4VY5^t^EHK_Jyr3a~ETCE6(2 z4l$k7(VUZrN=+nFOaV|!R)_R+1SW=znjvc&kA!{d2<8SMAhJf5rqYOVe@+wuX08FUjxb9%R_RH!g3~p z|GT_kb+!j#B3884dj=@xyHm{lfbw<XQcN{>Ep)6xPy-;bGv9wJJpEpc?|yiZ)6A=*<}rthA(y!|#e7nzC_6CA1CfYBIP2-%04`I`>>$gBqrq;{A-~>)jI(t<%&shK16@Z=*X~h(7sXnpnL#S1fnVn=b zrw>z3ZyZW??O!J9aAlf=3VxX3TN$hs>92ngiJagHp&%l-OG>q(QioyOvpMP6g_vbI z3h$im|6ti{^&CZBnviR~7Vdfrab#+Fax(oqg>d?7-1UL?Xw3D;$z2x+zX+(JMx+57Sjiak_Fv3PRuK6=dG+(NU}K)qEZ zBRjpGj0z;LZD)RFQCpXpnr1g~q>8G`gY?G1Pu@lh5ADXqv00C*j3s_yrk43(V0KDQ zeo`upGr}yb0IBh6Mwdo7Rt~VuN{G!X$s~f0-dfpl7c8Pn{P{@f7i}VByviLSDJt9o zK}w-T=*;hqBVi4h;zOafBC>W;>tt>3MG8EIz@|-cML(A$ZL3v~uqbLRlDatjVi4>o za|H%i(2OVNUE?c9m=5H?l&(ND>r{Vi>0~*w5Qq#16(fdn%1f8Y(e*hpa%pe{8FeVh z5Ieji&4-c(`JxetnmVlCM3nwY*={bS>{MIqlIIyxZ1htot{yu%r4P%x={sr|S>ZOi z-72I0YQ0Fv`{yE!_TgdF;NO_I##?D`ysdlMhd)V{=hDSW$gi(2PZg@)P6eyE09#QyN^|9>_XQcBBbb|zd`gOvzlaZ;Yv;TSN;5}>S*y0R z`Vh&|v2c7F9AeJ&BZ^ z8IR8)o8Ox*XXW$IfCtmZ8dh8yQ9i|<9(FLB?zDgY$eOG@v)5Yq*JnyCdoPA!WzRu+ zE9I5<8!XbTOLpdv?eyTo2fdw$SI@`pUw%w}br!<(a_gRVGxUJJYiF6pXKHF@Xa9O; zcRoF3@0|0-?q)~6+4Jj^+4?IA>YL5DHEWEO>yLY)pbc^^x=y4w7`K~SSpDP^o5anT zYR9W8vJA(KvemV`Jw0#>+wGvD&(rl0%4B5-@tbnuQdfDf5f?=v6i!+Q8$JvYNP$Si zg045ycj{TGP*6N^=q-w!RT2u`t?(Fvtu%bm7PBWAaA#)|otJbcLL>KBuGrGZ-;dK$ z!R-Ss+J~u6@sv@A zJ&U1-LL>;Tr1)l4{pK|e{^rroYNeb?Gl;m_m*3mnU58%zDSAl6{r#&Q%1gmF=Pin4 zHQ7pRSy8`E`obpW_0o*V^_@(b^jZyvDtz8irPd(tHS$+AE(|{<@wQs!CLKTc#Ozsy z&vH>ED=DrO7K#G+->9m6KL?`#12Zo2DJ%j+EkK;Nw`C;?}vuTFzF3O@4lu0fhJ>Mh4o zbF7*HCn4pIssJhP#?dT6Ne~BtiUAVk2;t=6HKfo~aRa~r1Fe2iVMR`r{cATcIGl_E zNLSWtB?K&@s;)O`gd0}?*UV)-dr^rxH63v>bqqr`W7iHT%<{@nqICBGJDOUd?MYq|t_808viLM@d^dby$!h8whls`j z!61g^^qg~{p`_6ge9(e^MV-|9QfYZR)_1zWHBaZ(l8(MB+%-rMxi0NS?k0F3>HB53 zEYT{_LgvK3mZ;)rJk`3Y@wWv3KODmntq!3w0U%0?U2Qh=$B(I~z)1BwLFkLOS+5zK zLzy+5s#O5N&Ur}(Qp0^ez~2ZQHp;aekAwrzSt`I`3HXjK4J(Lyv00bxUws|f=Ddf%Eed@wPK+X;L2hEKAFm}Iuw%R~GIqj-N7Aua(9 zPZPP1;Ml@FZJBdpi=-j6azUM=siiy#5y{@+XDp$wf&Z;AzQ>Zb3c~)`{pZPM_*2+; zcyYffX*dC?k~a9)f0yQ)fBO&4w;jCqiekU^7v6kK-Z;Cb^m z8s4os@#M^D<<(xXgnq*Jp6owtSHZLa_VyhkFetnZyi4r7!+8M!$&q1fGoy7$zc^go zm{dP_8r9Rfaj+egZ}fRO(Eeb(I4l@+9m^m~pOZrRQlqi}MCBT@+4Rrew6cVcGnWze zjZ0mP_#Y-Y&oU)y*#nbHg&C>Ql&3=6>sC^2J*S7~GB||+`A22`UjlkWtWBYnV^~Ay z&M0hVc|1iS@;9QGhZQ+-ez+El5Pwt`P2b-St;*E}jkH?Wz^9*dsn+y@^g(t}py%P9 z?=Y_<#AQskjpEO5>#JM=j)m5^;83{ZVf*^L$gIl-l!>1j)lE-$Tt`PiX$+BEYA_Dv zsSBK4J}yl+h=M5Ei!b#ARoDzu;RHD2TwBp^bJGFN{S1KV5W{r*P$#$Dn~!{)Adq|> z1&G}MvnrcB65KihALP&|NcH+$Hi9sYGSA2J4L3?tNF-LM| z-qjjS>d8W=bgx=N`J=nDdFhh68Uul~Z*3=5L39C!i^t_m0qu(|Y$0}XN9}U?0f%Dn z*fGe8Jb;K0Ry8Hm;K!!oCMjQ?EMuve7&m(`Xej)_qP;}q*dUesRfHs(=JUE6P}GZ&t_m{_|3s{LOlX5ID?RXIjluN!lLjo$_4V|3PLCx6)vuLd=Pv_zc9k-fIWj4Tfm zeL%bxOd+leDBD53(lpqaE2xH%r*8^B6l;|k#q74qWn`?N+af{HJatC+1b@^a)8sb0 zlm4cf*o#Tj5{EBl(^GS5A}c%f7qr( z-rgum29nVXeN)SY%HkrSM~@0+4JMb86XBr`rSfK1Sf`?VKDk`N_G3afcp7! zk?p^K!)^yS>Hb|OQQXFAkZeC!=56R5C{_}h|NMB@$8a(8ypQhj_mccM+9hQt&04Ul zb|J#>Uern+HPqNfBX2Qi=8m)#8!=aYKhI5WOV?uf4P0!_eI2=8)48CoSjA{8AZRoI ztwy{p5B&VJ$_MfS0E3M}?ZJw*0>(k+p@q)Jl9Gl^@v@2)957fc8o;EWxmT{4G_e3@ z_wC3y_x~gLYZ2SQOgp#@f&Kh%wMt$I^F;!B03Smt2d6op@M%pq4gyMhW=ha17SEy@E9dT#)v%74@pZf}dXA2hxW^pSpy z?)mx1==B~GzoT^z`?U>Ru86RYM#uaRA`y z`|fJP9kfRlf}4`=%NFJh6uRx)56ld&mvrHaprilp9a%2&d-nvw#Th*Y&Jx;tPC=}b(zbEab z+??iDr~G`J=uh&eky2HvP_5YXH%&n(N@{A}(P|Or7vQ9vyoYC@lR#DwA3$ z=?QbglMm`lVHSe_7W@5~6S@Z8nlQLn|BiP$!vK`nFhM)}CKe!77AmA@uzV&~T9&bb zWVA~y$&GLcX+lL^KS8yKxkTjS0#e(!4S~Vn0r228cZ$?a&9_5?6||utCJps0)&y2P zr<<~K|6Jxx$5+1x>z|+R=kH} zt}UD097H?3YRC+Q>?xxV<@H9WwAT0-V8#YjQ-2Qh*sOyV^zAe-oirU~ahIAw zPa*j)=rBoWwc$w%rHDEhrPE%jxWM_nttY=HPB*}ba7^(KB-h&KT2T}o2X`?*wz2BW zP^nHvNR&N*2At^aP}ErzMF%!i6h+_7$$?20n61Y6TG$ClQ;^KFHMeuQ<2g9)l@f2OChn2~v}P?RN=!{m{?+@3?~h zg5@ln==P^W|6dT-*YLOd`zqUiQ+Bv#tYdnrhGgo{6Byd`Oe{AT1DY&P=};J~ZWZ4$49n)h##NE(WT0M8(LJ z69sHlgIi(mG}mXlB28w&ef+%mCVHqAb~X=n&2k*iUUv=qQ+&dq8K>bB{j-D-goa+1 z%I>~SH2z@x5Hp-R;W7u>bRsy_wf)=R7b1LQT7?{YrV8LBW^30+qpDeV0y~ zS93JJQ%N)1zv@`1EGJm{ekd_21U>!D*b9*VZIw{rX=?9xhkth$RNCPAWGdHp*ggs$ zM}Fs`qcJ(_cF-Ea-3z+edPewV1*=mUJ6oPGR*L{iRp)48GI@T*tB1Cj>K$H;X0&5QQAUU7(aB$ibk8o=i#v9dA9K9g*I~{U8W#pt|103Z- zo;PLK7w=dnYP@n0Q8}o*a}iyVj;bkg(|)PbAeP56;4?{fw-A1)^E>X_km5xL#+=x| z+C4}Y5R=Xh&33CIQQM+c`x~^G-LrWNinWkp7dy&x^*QkeN+HR=%)v zBMn{jvM5=0Mx!a)^fv^e;lx8ZByvw|b0H4Yvt$1vz~cyZBG3KyqV13F=gw=})^@!g zLWg`Ba)^8K@g|u(N zrBvZ4^TH2l`=FT9_cAg`4}S5lAJg9A2M9vPbIc=n-=T&fNb@?ZOAybcbNgEjnDe2W z6I(7Tk}RUZ{`k8#@6qC?xvgqeBh2p|hrdK904gxV2#*cK^CaCw$}!Q9eWucG#0e!Y zT`rZUbN<^ZFPWn9HCysY?~r4z%6T?OF+gu4*nQu}bYA_5?*Mk+GZLT9QzZNb?kn5$EsxGQMfmfl?w z%UJN93*V_-UHeOcp=P|4=kVH#3iZlPlzUK z-s>~u)LzzE`Z`DM8ZY3mrgX(1stG+>9O}hhA$A>xTC|Kez@_p`Wh<*uua212L4kd)FH>2uqtRopxp2u1?_Ab^tJ0b6aqh1J3o~H=46TD$;pXCO`;T52sc`RI_-;>K*uQVyJ8LvBqoR8tbNDe~ z@b=uy-fLjSU*ibkqtpK@@9Xqr_R8@r=WJ+(MVWHig zQ!h&Xab%&~xsGyjWZ-+RN(C*GTLuDQ+P}1LJ-i`)&Xq;bp5N%5JVy{;QAcf9K(7zP zEFn)E93EUuD6(whD|VR(QC#cxoiwoYAHs?wU|ON3YAu z5|8F2%WR$Q#*S>`=GopuEW~yVB_O^eln-%3-}io!xrfRtK-U$ZW`$6TO{lq|YscR- zf4|Uw_;UBY0l2_JKm~+x@|i$Xi}nfM-kOxQM5hDa3Nm-uOS|*hzSf`CfeB4}nlr3_ zK!hhxGyAnK@uBF;;nA1a>7x6{oZT;rFNr_{QSlsE=^aAQ>)&1P`?SBZl#k{7{3o8&WGd19)95;fiI9r{&GXZv<>`z z??wm24}+3U1>Js-z4}vrn6rIB!(nv%tcB3l6)Q3b@HfO*@qw+TKs3q*>NW8Jv2PJkbNc!GbN@*q<5J0i z#_BdYe!t#uU>rxh&`%a@YtW?4m_Py0qdzY%{`eZ)&+AXB-9py7_-faC^?v)-_th40 zjGaKY- zw|hbJ@;1Fc0F!7PKu7o~P&AAr!02oymv-J+`}HbTlht{DXkA4#z3AM%cW?`Pj3)^@ z$Ybk$^H<^Fg2ME_ui=!p{HQb*MdV}f4avXV8m;pcQYPxK$Bx3=`Ek0ipR4#qYYP!| z-Ssk?^SSKl$orvFBI*W*u`i`Ajx5ktM#PiB<4$HfX0cbl^p8*f<{i^w*lwRY0O$$xE!EC~;c4A};dWf#E|&=TT}A z=@!JF3r+zYf%t%b3Byvr%!&cG&o?@@r7mHaxjzl&n)TX9?d#iF(0`POIZnh0XwC1Cqb()4q3=;-IrZ&omfp3U-Eh8-VAK=RIB$w=&fft6q` z;X!AXvH*GAgM}a)b|#f+3Jr$9xZr@8s^l1PCaf)Pj|@3OhsF2wGuO84U-`GraQYs7 zf$v&=x+VVp>`?B)fcNU9ZL_!V-QV8{bEw8G!sv|sUs|qixvE^^yg{#}81^t_Kt~L2 zz4rFlkGOWisJgWKV|N=#Al0=#*)bn3y*uUXIOXgLFF;l@lz{f+#ICk3Hkx5IRMy&o zKCP|p%k;peQcG)M759iMtmyRtj@G!JKe(BU(0=`l@)dwMPl8s0M`RN;R^7r(F$`i7 zH&h2wb#IwLN2@RU!D3~`4rUzR{Q2-`Av8z;vsc-|Y|_JauN6LM z)ecVjK@^M=ZO+e!1!Nqx;(u-~I>he)#RHI-3HD>b`yucFS{Pp*R3_*D7?ZSiOs8Ya zW}b$^LnTLMG^dKxfx)d41>&>qaiOg)?=tE0+MzYOref`lb{rRWa5%Od?2@GX>TdNRG)dde;(V8#HO>JtZ&zYrKL$Mc$rDzjv zYMaZyA$;}l--}p(!f1;i*{h0tQwk|!mpsvoX?vcf$N^CCOlfgwr6Q71g`GkN&A~O$ z$7a)-W5>4BCt2O86>8o4kr{vnqQ$KX1>WZ~o*HK`Tv7oFQDudHr=j`055K4$*6*06B9HuU%W z%-e=E?2P>1n5k0y$A{aI+X>0^;G5moz2OGZA6~EVybjv~zWz05eLLs5aZ%MNu#<1} zA#9wrk>%Rn6v4-%MK`KLmD92u|ExunC#GLM09X~|&$1lE!hN4OLF3NVF^kE-Or>z4vNG4qZ5;~>b*MejG7Is$zm&1ik ztlv`NUgsEL74d1#Ijo>4Ii#+_LUn`|7CrWKTKv?pEp(iT-n}@5DEJ3s^(FOt$_l8ukfwDebb`bJ~lksguMqJ*z7Nn*HoIk+D-dh97 zrr^*dO#{PNJxYFi8o1$e*P!r`An8U{Ta&9r!JzBa#7FDVE?9Kem7mXH@!f3uH#H)1NA7p0R&iVTojqMv^g*>!vTm(GMu>wSWb`H)>+ zo={$1c#JY(_2Hy+iunGvjZS)Z8~Lf zQaA;+9jZkC>lt`jwe>W6fK)G?)P^IlQCkJ4!47gtUakOZ!>K`2daCJlGlZ|%T&436 zqePNANb1El)twG_)O)xv-jl0ohc1j;CR`r2`nx1WL$kY_oFWVLJqs6za%1D1^I;jc z!CNxMGipgBGo}&%8O>zz8K@P`*8=I>CmmBWClNW-wI`*eHg8mQ6zSca7JbG`>atXx zTVp!}3JL@yQ~0XY*v(i5XVM+)0OH@SjA(2A2rx?NYQ=ZMS!dz!#Y>UN3U)R~PiZl&tVpp38H3Td@u^g%n z5tFE0A%qXsc?M@7qK9?C_Plk}Ig^};R7)bp^9M$OTrOIgPbk7iwGA`1ZL6~g^PogY z?Gwg%?nYRu4Tujh2w!5C$xlaa^qJe(@K!M}rt~c?@v(svGCNJ6I9ECE{yc|`bIEm@ zXfBUt#Ic&**->L~q!3-bFRmtPn6WTxoQszcSy<~EBuf2BBH%4nX34Y;Ti2pXJ zcJ;nvBz;v`Oz1mLNCrZfUH588@vUeduy3)>yG8)>M^D?ezm@U^)_GZ3cJ_C}EJ6%Z zF(*TeKMWcFVdjy6cjqX7l=xubgoD<14a1lPCLbIf_&EbhMraOo7>xp z+XU|9ok&kE zb7mfAj-%oF^T;3p7 zlrOP+e~+K-e#`zCL1S}EU=vmZib3ojjeYH3NSVJpk}P_4MXYc+>vDehMR?~SMJYkP z=@ouwQ7_F(VHXp3%2pyjXcigaSp3rO}95J#MOZDKS50@N6->g!@X zH{mxhc2Q+&dcnavM^iqWt3I2qs<0U!R!gJk$w7;md9Or}_<*q=w{1KJW0fP*i?lR!+cPgMeu6p#K0* zZd7zpHhQN>mgw3`_03t(Rp1%Wms5a)y#q0U;d9mOOUxhf4i83MeXxW=tCKCrQ4@YJ zsLU9p7R1cMH8nO?RVDV|knHHLwP537WFYt2?gGkp zTQL*e-ebO2L#sn_;jF;yGnYsXwsO8BZ+}8*u7l1fbG`6|LU{{-Qd} z1MOa;s>?GL&Gp@IqOZ=Uh(jF#O1g887?&Aq%^V>cl0VS?m`fmg7e)ZLwzfFEJQ&Sragpkzrij(r%PI z1)^Yp3M_lp4&pNKtG$0M4tq-Yv~OA+NTT%JKkTc;vUg+IUzldR(<&U!y{bv0<|~T? z+%H&V8KsuY#u^x?sz0xy0QcAIU5Cc5R*2XJavTxI|Jj;011h%QggW?MsqNV>G-36n ztrGaEkbe2fOoSFBLt(8bJaH_rfd~rSUQ2b+>oiN{%$7@(L_9QpI(@Ez1$M#>Hy^pe z%`laoeYH0eiycuh6R#}p7OEvwSs>%@$&q^%@G>Q*`{>=q9D6#F^CO3aEEf@+v_#7w zNn1_Se#DY|z1tWcnGQh0k8IIGk8`!6|iNI zFvU!5CZsFVJ)W7S%pCp4APN{VP!Rw?B2(f#nW`qbZj1|{`=S4pTgwHGn&x#cym3xC_AATZL zgD+ckH)U%_0{_tW$}o(M#cl@s_DAUH-Cg|rO}n*`JxX)KeepXQ@Nb+`_TPDdqM*Z$5v+@c{Zqp5 zgi$35foFBW+Z`_Fb9H9}Q>L59ljN`QhBRLhbtGTj?!9UnjToU=6%C|KzwZ%QeINHC z3_))X1R4_PEKB4Gm><^DxeD;|=l~W^IP6z`VAzcA^kLP@!3Gt-OEh=bq3Us(@2&L> z^w`00xQPoFTPfTwQ?uLJz$IGy2#ijq_XaX;mFDchz*`FN7LqnY?5U)4=nQD|ZcJ2C zEaLqfKp-_(Ag!P|Q6O2DAnWK~2RUC2M?bh#K_>Cr1Nr}{%znZ!*w_E40Y&ga_p@QM zMy8=Pg_vO@@18gfiUn!Wtp7KibNbY;h5LkED5Wf+IKS5GebX#Q`eozkIb}$p=oo*R zXcJSQ?|Gv-1;T=fOrkn`c5W{K_-t~N+)xcWYXfIqv3IWM63?VDdqtA?@30dE9%i-zg!E$pDAa9)~IFM?| z#mT5Rn+Nj1qZ?{&t{!M=&cqk2CtlWCPJm&tSC`_Mm>6KoN`CM=zUQwQFv>J}W(?O& za;Zo~RWGw*g_vvJ_1YvNqHNE z4T`Z>dP3F1?AK$Q5OQ*yR9ODzoB~#3^|tk95s;tSx+!^3F*t|F?1^a76`eToVhsMF zzc)yB5ydD*j~W@B2$jn!h9#jKqlTk2WA-AZqd}a+vp^RD82YV4{PN(yjEhfJDn_AM zCK!KT?nnWHMl7H~ER4M5nAr)U2@1XfUq04lG$&HdjTn$+_=&YotgA0hgm^O$wplO; z;4$=4bC(GL%^HS+2hkuKz9Yw_2i zD_)xmbwl@P=dkNMyRgUaZVJlBBZT2Xy|W%e9;&*%qTfb(CfUON41zwquBY?VVBS z(eL<)=h&e!|$H}kjP~K;pZ>O;?vg$*OW4V`;I3F(7Vvjwq z-5^0GSz>b;Gn=fjUoX0{*QC2)-`}t0U8T{)h=aNFZ4gw!wB6ztNukxih2LPoR+NqV zDp%QQ&dhHI)2|ZA(`O^&*x9>x4lCQ!9%lnzq?H8JC7C%yLw=`qo+G(GB20_#xoqxl zr7tE3pATt)Sc`3+gghwr-fq%d48A)fpbI%VdU-K#c(%Ql(ub^K`IkYK=E8DIS@h<7 zA^2aT-u4zlaerae&!Gm>&4`oaFOli7O=I6^Y!V!L8iybLXf-SNk{R~N!?37Rk^VDs z!csxvd9pzW4Gp-yguzfHA-bFGt){ypzpe&pBO<7YWugTB(lbG*_t7t4t2&? zz!4QoA1*CTzx7(SX9W22#OA*i2iVE)=dckwD*V)ms0S^83| zMGGJ3F*Cyz_Kdcu);u9bZapz_y|aBWvu?T^HC;Fok}vgwTK*69YOn7k-HUR(>V7Zx54bKCuBXI&LIB zb)2umIVhF*(vMFHM)IqcL$sDJ8-y+g15v~kVlVit$$7g|bK3#CnwpLv9!Z`pqsTVp zL{B3&l8|tAw5_Ev)g6WliLu;dJ5-mFG_?AGCOTNHdet0#0=?5JJq7YROOTFeR!&T) zu;}I^3bg<|I%sEDX-G!N0F=quc*m(4hHOWiKd*R?jNJKc9;0@=T@w&M0MvlCMme-8FZDsmLWGVnLG z+`%NV3W^GXr@>U zV~ByH}*-*$N#7gyYsopb5D;4v^BUZ z*Vjd1K(RFM5i_NfQY-4HT%tQ5@0B{|oxLDD8RaN1m+t9`LE5NWMrZiwg0|j_y+|1B zSLwS_GXEa{(?Bf0L|8%;Dj(|Tv#3{iAXCsWiHA%P5Y#CAsHqRo|K~^bDqg}3S-p!S z#VaI6XQ02OhndgfwX-{ zVXrdYWVMzWKv^YIk9tB*qH-=N$x`QzcM#^$l78wCa_*IhcogHY2u7np!FV))Hj6>z z6iO=V5G5f=kcgz}t3_;Bno}dx)d*Usv(QW(fM)6}FjY&0u~e% z$s&)IsOfuIOT&tooGl>@Bwq!@IhK$rm00#&Kuuzyu2c(HMC8==$;(s%77<>RwFW{~UJjIJyZ1@U0XSUXZu5RN}qN(%66 zvWT#l6r`jeDWx1+Qp2MqO(NKo15cZD7C6i<5nmE?coDL@5w$rHCE;Mvh*&I$nXQ7b z*>VO^yA5H74G|kXj^rd_u_MqVjg;8c25F>(Op@o%Y6#9M%cC}1%H={zHc(GuBguz& z&nr?=$X3h4pru9CDBoI&!IoBRqh48;*^B|54(*i{7^dF#cw-$#bhYSLSD}R(##o7z ztc>%6@F)ojiIGYJ$q6S-V|nlX`; zW4yKqJJqGQ(q4yqqZ&LCs>9=+5#oo@m6OAzCPK2Z!MVcwFNW2vCD^_T-k$v zx_dW%b@yR>es?!6b5voc{5)LhuELF}2Hc+4;py=JesS9Y{LQTg@asDc<9GL6j9=e* z0N*7}ZxDZSB9C`2&f&EkA$<8rE53NR6<@!4NGvt}*~16% z_fH+iKfQb%e)+<6_`_mF%ts+j7Pa8qy1Q>TDSMirMBeUVCcof2Mp zKBtae-7u@Z0X{_|LMlBX8WU0tPUH*$bUPCmqy}#?(}nGQ6S!z@JBi65+;Hq9ZoTw+ z+;#Pxc#y>8iQ7p`NGzVa`&B%9?`wGOp-d3TTa}L>o2|$R~@(-Cw58eG$qkwO2Xx7gFn!LNVFHJ!~im>A!O16$fgE_nB<#> z1i9=mNy-S_KTHBMf<$6mq?J!5rjUqFArc;g$K8h}V+%A52`E)jlBgi+Wi}B5$8|i5 z36GeRQz=2mRG&#=!uy#?o2>Hg@3mC_v7pqI)}pSYN{9*f+&OnfkXNTrJ({C>xYOxH zuh);EU>GA|iQ!OyZu>DD_JcRW&)-O|vx!GtR@g!kvXvyHKv9JX#q=SSRB2E~Qc_iKSRF0V z>Fh9@T(Dc*a9Ihmbg#(u47Yh@yIuNos5OFyXcG7K!15u|F zF}q9L?{BigL$YI|hQp{ZKqJ$lo~Mp#wL*&c{cI|eV^cZ3SGqujFwvJ)!NFn`8dO&@ zD$%=8(~ozirynydIk5)5PoqXpRVBu#5gc!<#jv&pJ&JNgzch5=LEEjwP&I`_ikEA39(pP^ zVxndXwkwKoqNx&h2NZZBQitavm3S>(i7yVS@n&xg-WpcoE8DF28VSi)_r>tzlVkYj zhc3a}`-gC`wFdJw>u|8C78mL(amZAGOB~hMrM>{C==JW*nefJrF8tW9-VOF<^3rW=krupnq7&b~ybmwUy7Bpg8GP&12)=*g6ux@p z2)=pkG=BcbG5pKRx8S$0+<~7za}(aV{zBX~-hxG^3i;}Fh;F6-tzrY(RF%jz$dDy5 zsHpcu0#c=bhe}3lvPI(Iq@Eh@U%~U~YfIj@ z!cFjoS%r!qhp7Ra&i7!~@B|LeF5$A>2XNKC zqqyP7mAL(~8*tyryYcX~58~15AH}0LK88nce;SY6@w6C4InBrM$nDSL5t0xd5n%~= z@aAW5-wjWaj65ay*fo#iwkz((HAip3Rfn#_rTb3e*sjZQc-tk|HF+VXdKb~38%K9$ z6gg@PIi`cC11z8Y#&)ovjp#UvaoB1}=O30tWbUMw?{ph)o|YhfV~ zu!!(TNi|7H6+O0+#l!+xy+cfCaBN1CAqa;x2Cq9I($*(g60)6QN8+AW&U}P&IWFs;Hw-EfYj)>qt6CJV-z|284Iy zK2vd*{Mn!E~0R^>Z z%xNjn2xQ~|EG0aHa5m?$bgX3yz3Fptww$n-h*6Ubn}`ikxgsT-HkPjLeN&jeDNNh2 zlt_EvD8%T67|kFyb8N|f!CK*9*51d@=SF@lEFh)T4FZ;s0_7wHm34a5l8|s75Ds{4 zG)TJwTPz;f%q}?0PB=(P+;m~A%8A8_fXyyMghx^$WbhG}8zC3nc9E#KorteO(h2^-WOL z>!IKsAk7ZU_4Q*g5*BHWc?sJ9S^UI`lngaiqpQ9Y$x zbi67hD?;+eNQwOX^=F7lK}gn03Gbt0T(?f_apUHA43d&0y>|2F^DtPw8B=vzuu!`m z2b3Fdv#kt|g=+C~x*l(JHQ=2=4L;LXhtG{@@U=Zb{P`8#BqSsF@{xXgdPfJA>NaAK zUT3K20?gKwk(`uZhoWpnP|9(!LxwAYYTVjv!$SjMyfBx?7miNiukX1S|NiPnfv-Id zeBoYv^~PB|xh;f8r|o!YM-X2oF?nUlkJq<{@$P{ZeCb#xzJB>2eth#HetzE}{Mj9Q z@!nOl`0Gcmz^`Av9slR;C-B?XAHa7%rNm#;0ADppMKy^A^(x#X$Gp=gZ>Yr*QrO#~u+bI^iP+Jzj(72t zcK4Lfk(B7+QyEE0tca@})KhdLXAGjl8AXpjf#G--v+Z4CJAwn#vp6!l4VP`-k83Zy z1Rp(e3LiUu6Yjt4PTY6p$MC@Q58%EVAHst-J&Xr#ehd%Y^ca;-;QpH)Ckc51cVGM1 zii|u#BJwEiyjtS+D<8!zm)(!6FS-d=9=uja$tAn5z(vc)v3uqqW(St3v7bT*^}bn3 zBK|hmZ3(eI4d)%qvI2T~Ep2%@ zv?K}*C1q$RqH--;q;rj1iDG(eQN`)ogs!9<`qBy^CcLDV#l%9A#EH=CRPqRk{VX9_ zD6fsgM%=S+Ix{;1LoQ5=GI<=*Z?GR8f5`u|-f#?RP;=1Y62i#bhl!t;S-a ztdI$K<V+4iWW##8Z$k;4uM%RiHc!b~IG%*#J9yN9WuYJt9|n(b ztcA}Np2uZ{Oef&Ro=X-F9t~lt+++r8rCW{{?n;%xI7gmc4 zHVcV~*-n*+9bStaKC1(Mn^Wx48*=&tLApo+bYTSCb_D4niF)0L)47<-hlrKLgkIO% z(t%q;Z1#oZPxVrhCfuw<@g!j1-t8G|9{)bYs zR!q*8672?(9y(`Pw_Zqz=lt^!CNW9VYv;F|hl%aLYn(2`X{vx` zDvPnRp$Zq;!10g{2dp(%RBpuf#v)wPY{ApZ9r*U02k|eTxr4;y0pcF~J#h?ODYc%9}9De>26sVCM* zVnU)p*MNh>*;b=kNp!@eO6=IlJ9#?l8{m}dsMLyb75e?U=(p@unGql<39D>EOtN|( z^41{Q-9dEuLKsY>Fx}dYrJg?Q9vH^K@o5~N--S~gSh|thlxjV-*u1RV^=?f`>rKHAwG8UQQUUa#c^emt!H-?VpVWeVR@OiUv*yFG|;v$|x zXNf>b!cgB7hKvNIw$ZyvO@l`WORdHwkTtjkbsFa?Jkr7|ZFmW=OzDxPK4cCNU%|nj z95`w=#)J&IZpy9R~%t`ROB1seS3@s543u!d$a)& z)T&U@|5h)(cM1A`h*~)bhCGPs`XH+6IG!XR1f{$-ASfY8DXH@bO65M3)8i`?Bzqix zqVS4o9HT8GP2;Rci9|O-;Vz;BfnXcFzE(J0&9K>;sdJWr)zkuuu^CN<0xbeP9kZAy zlu^j&Z`RA~sI4}mqD+s{5~`O49IUSrb-%PBE6a#9a#C2KBUb5Sk%VZd%~Wlr$5Xq>@NJe9ZAm3`^gawc>QX5MsB!?SwX~9C>P#W|Fezbl zT%JQpSV%O*JVH`JLb4UIO1$Au9R7814Ig+`;7 zDn}oh>_M3AREd$8@Q6u4Oxz?PjEC@&vHR>k38$a%!sj7KMuJ`+!u|lF{;-s-(Gfy` zUdwCt!O`S}S?7j9=Mp_6-j!ITbBgz%)H(zzx}P&vaz$kzQ8F4_u;?8mG**nZb&Cdu zvw8B?*&TH?7**Aim{6&eq$FQcj7ZTscs896*QRx_Z`!ybCA{jUASF_QGtI_7KBh!| z!3BcTQnHbRgvCVKA$YBnI4(FJUJ{bny7Q2s*Y6-HSx}VWLVY!k8>?{2Qh~euwRk*S zgXg1Fcr`1-Yn>Xr(5b>}qc*&^zXgACQ7;}G31XYR7_sxtLs!KXWa)i%(*@i|y^7}Z z&PO-B$Hlrjl9Lil)^EX-ax1nQs&Uk-!{t#cF7|7&qp1p0s`WS&RN$IU8=l$Mj^BOu zcHsNZQsRz{vJN?cbbp{fUrq$9VH%cYl_Rukp zl!QriLrO_Z5?VJ}%zor;UbNah=m~@|n&Q1rGMH&;#d2pK_76?slBs2!+;#vr?7Rdw z?Y$HqJ$5}ldg4ahdHHR)`>MNe_tp2{o>TYZ?o$uqP7;zkPCh6`OYXVuN!)(&5!`&) zgShd;{kY-yeYp1GyKv=2H{W_KpJ7rsv66pC6z-5(VfW&Az3RWg^`ku zcwA7Bk~5K}ZX_|0R_*b=HavyX=8FqjeWyoCB8~{W))4H4{d)`~4Z5IMHNz6cBRd>d z!lNc!*2%pn1iIELLL^-*Cjmj_3Kev&Tp>}R3ZhcUkdPx9MJMxSkqG-{$rpivWq zNPiC^?%%i`9aR#YERatyq@dR9XyO(H0nrieaY4xe%LSA|Wsr z^D#C4D={BykzzSGhGUJ4(DNIpaW6FTEF2|7^~ytd!#ekVRHeSw&XKIWkJ=k4v&bqC#(!OO_N75X(Zc zc>_TukD3tcHy2?83Cw!>LN*uIh?t2I`oW1252}<)Ya7Yvn^4Uu)*Eb4u^=?M1Y&co z6~z88YWwQ3bU*KH!M8ooP({oQ``X5RErpQ~h6SW>j)kCs#6U-txWN{H(drYUBrGKs zN02JZfWYbU!$tDJc<8p*6@G;GYl zZ7x?#ECm$Mc_&p?yx)h}k%q~UfW?)9)t!XR6{X6Qg~lzi#&(nF@J^H6O-<-(P@#)1 zL{5}8pytFtHE5TYB3-!|;ga?6Ze0)O=5?@a+92XQc(>ldJ~yX1ozazrq_A(zxhSNc z=gs*TUjEA{NqTtI4JTXElBn?XjrIHs;5+{#NUr|~y0%_`k&+9rPg#m1Bn>A?GVX9z z;gLWso(flsk&@S28}LlL9&d~V@%CaC4|lq7&|Zx}`9{Qx&x7qF=fS&~UXy-X;VoN` z*jkL%twrdgi*J-J=85tWj8<>Kq`VmOnlfx_ti<+)O6=5DVXv_U7uxG^aZrQ9emO1* z%W+kQ2@fo%@%9Z%_`BC`0>1Mc@Rg_V_b=auFW8~BxNf}g&V1`;eUReDK{Rz%!$21hMb2<9?5RfZ~9t9Yu$1beLshH@QMSUQ-i zECipkz*TRDUu8!`<3OarilCC@q*g1WBueL4O49T@Z*FoSXXc)zQw)2LL=u=zw_qEI z?e6Yj>>HfI;jty0nA?x5mM_9Jdye6zgO`(>T#Gv|y;X?Geb=&xJc>I`J&fB=J&KQB z{RnP3`6zC@;vrmr`F*(N(tB{~(z|f#_?@`o@J+bv!s~I#o>Mro<8mC}k&?N?*gmxv zi(@-6H@u9&wsEwj`p}sj7NaID@qQ$!K}^Ma5sY+EgDLHSWA|oZ=RI&%u#vDhyt!4@ z-p708@ckBNM!?q)!+Ymg9dunec!djHlPn{l9Ac5Yh$TtIb4Vxh$ferFURS*>ZRl&s zlaS=llWh^Om~^GH0u~g8r*wML&4Rv6iu_W4~3A9Etg2KL7 z*>JPi4=dzJh@HfFKP;Oi1QW@YSb@UZb4-Xz8>0F#LUmSDpw`D$j^j{h zW032UYoK$61e8rlXqr-JFeTv#biu{@43U(0L!AQN2r)oX5~0sO8lhu<9xgk5hQ=6m zhTX(29k+Jk_z3*G|Ji- z5CgSkJaWOXBosy)7&Se=5SPJn!NS4v!4h%?)YdUIBpwC0kuSiFya+C(=L5^??M-3R930emsxdG*TU+rsot8F(mXl9N4O$_ghc@uXsN^ zN+{b#%NZltx=KjlGRj@)sUp{v5=LLY825M-nw-wworq? zBPIngSt})5N@}sSq8_C+8WB5DCexy|_ax|i zqtOq&k$%Ly7Y6Tv(G(E#(%f6(`?MzC2jCHqvtbe8l4Znb50eDMV0J}_5QzX)5^J#2 zh2S6ov6F~6ok0?c5Q#+?UJvzlyipR87<|42y#6%2!3=x>f)gVJv#Yl~)GKpQCFJB} zNhBq9cZ@2^s3`figYM%UQ+Z=D7xh+L!93jIoOphaBq!me-fp&4M4tCqtmx5cMHWI% zlGdfDM6bFAU8)L^iBxL*&WD>CaXVq!a6WYFiE~Pc#Hx7w5mKVsz+!R%3CTKvNGng` z(?CCR{u?YMjtkZyuhQyZv}5Yr`>fHAZVTpt-O$n98z^ z7^vEWF2sK(a<0AzOR7@r(3ayuOD*=8E3wC3`Tx=Omho{VS)R6ROSYJqnVB(_ z!pu~PnVFfH(XuQvGnef$7grZ^b#--BHB|RBPQ%P}&+Opt!1m70|2-#CDNDAir+43- z56|yh%9|YV#EH0ZF%WHwsZ>v_6^G+Orvmq;D)GtjVf@9Td$0N;BVfA{iPe12>M zuS{0set!YZRY`ENC<5OaF2dVmCHROQ^W{n--Wx5#4-a$`{W`#T5m z@9$j0zrJ-9fBVt}{OIZdT&VfbrTc%(V<+xpM^T1G6|bwpS%3 z3#V{)^)gPcUB~gg*My85T)v6}OV_ZUGWIQB#Ol&H>?0P(k79A;FlGnV#Z0av z9dqby8Ap5FAeyVX(L!=kk>7v<5|g6L8lnz4vPv=5M44WWAL=gHMPY;qiHhNXSPNeNIdyeNK@HIRgH?q9c{m z&?5QsPa=6x34@Ra_e7B?2?^vuuX%`zDn(*kC6Xm|NJ*?mdU6xwsZB^vq2-iXq$SrN zHL03}uad;Cf&{Rf-fNkN39%*go{JD0Rk#_W!t+RIG7;#TgkX9B+m)8{3RPDUz~y=hb?W<*g8jYO=M4}zQ>;A3kAXKJ9>>+8eGfGT~e ztQoanhz!L>_lbwGg}}?$n&jV7HL;k9xtPm?uU1iCLhC@4Eu+qOJWEQrLbuS-Q$fO^ z!dPIbXC~mT5g{j>MIm9}E*-U$sJmu3%k#&i#GUr>@hl{2DRHD@9C?{uH{(FBT`eV6 z+T1MmGO|@ljCZTVgvXcgd*Rn-uSbHzQbO>h!z?N40kKwkPh%-Cfrb7S=sjAaQBWjy-}XoRa=|(@mw3GcH+J>qRYmHyH|Y0eJmV2LdoVyD#(gGsMX*R5G$f; zU6rQg41zb|8!Q#kJ5T~Ig4caRIQ>ie2){6?K)vo0BB4KK0{wAS=k*MX6Yw@ZE+{IM z1RxC|u_=Pkn8$=fO9f$3QWA}1L=sVSOmti-;^L^~MJ=C%1S(vp)fJbRfmkUOfJ9tU z77_^cdQ777sr5KQ9b={0h)*g+LUJ+Usc?=<$rZ;YBxN8uNrsHXG*m0HQ4$k}TyGzd zCCPQL5m}O4J2T`sm?Fd05GfYgh&RwexQ+&bs3P~@vqM~->!!KmPnHrjTZM#S8F>=* zvE1F`N;2X}&*4i#60&O-;z(Q+BoW0%I;c0*L6-$diLEa7`uEw} zqJ>QJJ;2EydSoX7Rt?yas%D3x9X-2);f!ijS9DakE8+%QXo&R~msAdNT3FS}Q)7t-||r z)%a|G8@_#@6F)pXf}dQN#P9DN!0#U%!9Tus0e|=E1^n>pe*Es$YxwHwQQV&GM_WoX z!c6uc+QJB-W}LD$Lx`mV!ff2(Z|*_`loPe!D3XA9n|hIu1i;_Y4*{0G2(<7xoEvFGM@~Ai~xMk&gZ(DS<*#q^|x*a`yq>i8PH0ZG~R|a)Kko?d(}hnlcK|Q&5AE zs&-5__F<`g3~K`mI5M%0RLok%Ou(xhS1YGj;88fRF|}&rnDV3 zC7mcOXhBI%Gl~mZk)2bAjI3&;E6R~7E8POGmm^JH@f7NPObV?hQ)H6T%aD>@LfcD` zCM!m|yaWn)F)}iWk)>3Ty+LkPF$%JaP@I)ZWTQAUi-d_#W}=YEP?AWIbkH(y=ly(K z36q_J(oM2ZmXl57itWY99C~~&yny&6(dPn z3%RTXnaVEYWcMOJZvaJwgD5QM-v-~rZ!0_jTUI8|b<#@TMayR7nPFLE5)+C@VhTuR z3Xz&vfHY~L=;~8Q^PrUGLLtdS7L}nq*Gm?axj9l9@}%jIMaCo6Hvoao&hWCahLZ`& z0|^OtUx+avRH3Uci*+$HhpUkV+>9;ZZej%wYG8X&o#e?^m(V`W3aBe#zEoC)nLu=B zkW^Uf7*l0WmGL$nONqITfj})K7P_W_&5Q|E`rQ4qRZ7I*Rgw;t5^rNe0e9J`g+xdR z)vtW)(^6u*O-k&HOkhLjwba#zxwftl4t0jaXqVPDw#o^QFR|LKuj-Pb*Ue(Ws6U7Q zV<}OyAtmOzPhznRm57*bL&L)-91PzJW)q*#P55$IS65#+IeEd+(G$)TohY)LSX()W zS^CTjO<|%>0zw}=-=jrmH)BL%VocIv4O3G`SX#J2+<4B;SKQr`FAL<%2TKFXf>%(y z5C)C{5)YP;05WDZ{$VNb3r!Z0*MlO{5gbjHA475xlP)5!2S%sTA2tR4k;&qm-k~Hh zEGyws1Vki@Ot*S)YCZ$$ZQd%~W)ANub%cVlE z0I70<3cM657-p7iM)h`CRvFT>iA*Xevr4zc^h{Nuny#!yS|+tZGD?s{=S`ym zOexPnzD$W4MJ9?Pqmb$9CTbfx(mjLJ38AE2Jha^*;n`9?K_h=xHTI1WKge2kr zkCgDXXGsZXNqC%!2g!){j-8_GCY%ICLXXMP*F}Y?KAJ2H(Q9ppNhf0*2(ZWH1W(*c z55R+Tf80)T$F+DD9P+cmn2ipqNkpRzIpPE{7x;qh}y8{U(nn*U~I}vL^Zn_(pL_SGM8GSA_HU=m$+JS0XZze(E%t@z*8QMKf z(BWlDl46c-Ukh~jn4vGg7V}bHT&c~#hYKC})x{dl-NH>UsS6 zgVXruPhPiaO?K91GF6&#&9f@AZi#Dr*P)^Fj=;RiTz_#w_5dl{#Wy@cb( zUc|AZk8tSlU92CxiGBO8V;{-O+VTzTTeyb3bC<9*a~89cCow*}j={cV^mff+pmzZs ztz&4aA3$SWKQV~9>ORy|_Mw_6E$cvGNh@*-8j+n>zXe`zL{5IwQ>gbb89DU=MRpw& zIWYA$tfa;hDsj${2$zT!LLly3p$m23t0?arHF`;b&+D}r#14$V%?u4YoQO6L@ z`i5fM3THsnQlb`){^6j+mXSbrk134wY+!2a z04tIbz5}kkT>wcaH}@#(oppdY(L zo{vOD0i+p)LME70YE22@$W%#3dR7VK+2v5=mP46SfsEWrC=05QQCN%2!a696>NcaY zpjK?p$ghEdTBho#$g74tzgiW!5Y25sPGJkOi<)Q~{rTzK*;H5-Ji-f?r9rr! z9Ds{)?l=-?iDfqu1zio)kc5=((m;XsPGsw8A&FjBBt2KK7#Fi^W70Q@Iy>P($9U;! zz=!bHCkZ1$cxreehDapR4d^^ZyHRMOjRJ#RC^z1NDl=`=lAJINRyt_5)klk?5qjM% zF&gBEnJ^EG1UjJ4+X|BrE;w5#!At$6czd#5B`4o~1bp-y{`~Sh-kGb#OT$HYzEgoa z-3q)mQHVFD%kb6FZhU#9OGwIhk96aECx`Hh8%y~0-F1BXJb4loNK~l$Q%jD;Bf%>iQO?1La12DGQ;>)};ML#K z4FOhsd9WYCH>D&H@y`B8aP@(dC!pfnru+CIlWzkb9)rrnRMCaQ<4PuKIxyQbh=uMs z>>E8mLUINt_Flp1{kL)U@C!J1;#HhJ^*Sz|e-9Tfyoa+F-p1*3Z{pbLS8(X~BkVtX z4{HbSU~TO#_N_jTy(`aQdFdJ!7p`D-_6#N_j$&kV9m6AQ=;@tDTl*wh+a}Q5GKR*c z5i~Ro3#v&{Do9dFD>_kJ*1nCR(l(TocWmrqlvi{io>+Fp&a;wn^>Ridh_9F-*%s4Ok}lVeq>>T%VjrKl+@BPuq}Q&v)r z^3p1*jOjT_t5H%?LzQ_AiB~0ZsN7IeLq$R5iHyq>g(@2)vOei$BHN>avp*G(q?IC( z)>$T!WK~F(R|}F9Dw4D6h?>oql3kC~oCe5p8X?bZ5>YHu<*&$T5iw2KfW)*a#Iwl6 zWFs_84sRcc7;x+8NaeDp1R-IWh>b5oqO=lnMGFdx22ox$iJJNaG&HZEwc`M~dJofg zdvKHPo&!(O(YZ$7`(FCa7wP+6Kz+kJ>gwlERXv6BiZPT`4AOVgN1ss-ii+twE~M|Y zpcTahoJng$VQvixUNwqIG)qV_E2xYt&Lp|xOm$EU!hJ#z>=6JTdk^qkYMtnR<7i?F z2NDm)(a;9=`c@N^go6QZvxAd?omjTv!I>m3)_UfmyTytsN>x;?TauKBtOrSn z8P#v*BqKsNgrraGLwB^KXqBfnuz~RuTm20hs~8Dmn4>4JUgJgSWRTd%{^0TN@YH zn%Rk2`S{Wxw zjBupq^$8{^A)(-`2up~6c#=v;C4d6j|n3oiA>H$OnMHIsP)36kZ`1Cmm-~{K%QSo5>X|DBZ~^L>|!$bl6vHpHXxr0 zxPr1KDgc{NP|=LSYWfpV0nZfIQo%~7*Lhz-Rof<8*Yl~RnqNlS$~sX}*@NQBc5&{) z(mMLH)}o3EH=a$hEM9^L*&>Pk(B5o!DP3{8mOg&yFEl@ zPEx``@=a1A#N_`#N*J|}sH8*-{ydgs#}0(;&_EnXiA;A7ipluvEKSg1ZHftZJM0bg zz=>#ooQm_ukx*AGxSOKSR0FjvBP25{B&9ltU0>e-k5sMmWIyy+Q zN9gxE-`IqdzWP716;cD2`*k$asKLuID7eB zoVfS~j-7oKM^3+t14mxL`oWj5cHkja_us|JzFSz_dmVF27cjGU24mAlFgUg!J%cOg z=$k`F_Y7LPrl?XQNgi&f!gXe)Ks-ntG?+G;e^)QaWm${JKwR->x24wY3zB?(bw14&f_3QKB{M-7u~Zp`GABZC?^ z+;x?aRSQKXHCQ%~5pt3YCS6%WjiFk|vKmMz8c8gu@v?!O8Z?SLl8yqBkPYMoO;m0* zQ{$+G%C2_gm31Spqzk#l9D4-Wg`Gl9QWZ5wNGwKFbQS^vQ^d{xTwJJ8>YI${*gT}9 zRU=JCy}L3RBEDr?73Sv`dE$^k0>dWjxXR&=3~B(uD<8Rf-Is3>Wo za*;mEJSv-0av_aQLqeDYF+s87D#rk~KzKX)z{AD^ZdNLs&0VSDc7&}y)l+)56dhn^ z!0QgM*0rI^+?wDkMy#l!HHU?c1wkUR5zR?H7&DTQt%&Vhx$ZWgbv;#Ns1Do;iwncu zJzVkI>!_u~NMuWRP_9}^)MBDu7FXOnktK05G1-t273yvq&XR2Hwo$|4p%#%Rg@mul zVIfgxN}iOG&ACiOH`UXqyR6J~w?Y!K1tA(+q0eMn6zFe5Ba|w671C{lZ@_~&!@?2} z5)y~t;8<~0h>v$LTwQ$NVCx1Ob30h^41FXehI=+LB$|((fH3dZ{A%X-WDlr3* z(#J$3l5mhghs1H0P6`5}lLf)CsbV`H6V2T+X*nV*!ZN}FqM#N`Mj`#ssRfx?OoaxC zK@PR7m?A2`im4!DN^06sR@aSkD)5+!hF(-sYqP3(NKoBEEk8oN&imA;x2d;RG!CGm zz8@8Js)DzQ3ePfnuF9HbG&D4!p}YdsnHi#j%JcDp(#{H5RLSStFviHW(nmH`s%aK_ zh&SFtQnCvHBqe?%B|e0wCJBk=jtwDs7F%w}M>uWZpuHVOk_C?H{d}y8HVJ~ZmbmM1 zFcCpA61`IcNhA>220ExPH%5z%1-k7lFzMllB|lfJ1h`|)!xlp}`sgs)i8^f!l#z@S z(`zlJ^A+msMh?kHhRz|HO|3%bVVx7fFYgE-mZrf;WkYui-BE zQuHT+Nkqc+H4#hu;_36?j7u85_Dln9k!Fl}6CociN`4Rr`XJ6ut^Jg$!Ux&P?Sj4${!`s9LUexm2ykywU6Jbt% z2%`T|2uXf~V=$tfgT-aSoGnSD|7WtB4>Ej6O8mo66rO+@`oDB%S74&D11o&xP0u{` zjUK|`#Y;GI@Gj0DdjS_nNG_j$4_8P=u3Y;JSDyPEmu`NJ%eTHue2$AZKgGG{KE&xO zZ{y^pw{iT;J2-OkZ5%rGI@S-rjI~1#uu5{Xvi=;F)~;f9U;*8I^XTlE-4K-VEsP3U+Q+sbwzm&I6`Sb&G_?((xs@423oSG4w6CLM zNYLIsh_=>Vw6^pJ+FHBO(%gaOmNv8y99vu4(L$(WdwVC^h-XEnxw)Ah+k)2SHZ(Q0 zi2rUKNlRUQGwK^id}>=so?1{*-GY(|Rih)1%9$K)@KEI{x|yFFvd$;s_RdG!S9n-uQljDMhMiQa=VUoUn(dAcHO|nV9-Lj%aLXoys?bSR3~Z=Uw;?I9q{`Nc zDtB|jawD3PbeKH_Z)a&S)#3@tbT_5MlWeNMS3@Jh zfTTl}F<}YWgk*!+loDFzEXh_Wu`@A-HJ!s!pX5MSk1G1d-8L*Ij9NfUcRfaZnJ`bP zX1QBO%xA(`9PVCH!&mU|fLS%01A4c>&&ikxo|F?6PYTCl2~kH9sVC6j356ab-4dnZ zlGa!rDIQJBkrLGvC!uj-I(DAe%hAqtLrSb*s%HiRvO!(?l2}UAVxqI#1O~bm;ywsG zb-J~sJM3+};o=kkcefCD`9#9opXUgPgry(>hRSaMaj!72Fk%@9KUL=9DBN+uq%PxUDuN-;h zR7eo{74?FG$|e+6H4BQUAYmzCN~$)bq=x{%o{fUE4_o7q#5#n$X(Vgr@RRRAr>2 zI4T_ZJ|4(%v_UQjNr9~i@~w=JW2uKsYXhX1>mrV%gvVI$&G38)PlAQSnJV;W3kmb5 zO9``8N_b{imJ-fjM3PLz(D@`J4r#P4-$)0wRwih-vqYc06((G5G2>y6QAZ238SO^3 zriK_l(qym$&E`5N)}zPh?LjsG>Od90omWm`BPYpG>gkBNNn*H5h%cqxp@C4^7etQ@ z;ISs!^j>v#!H>kl-*7kl3`ofIcafCrLa3gm5VXiWI}k<3N73V1PSWW)(&@D_83ww@ zGS)-3kv8)5>G}0{if*1_V@)w7e!YXCxU{&_-2x4E`a({|LLIRX?}^zMH_XR*;MKkg zyfa>hzr4DN|9JDVkd%LZbR0iAK7{wDtMKk*1s-)};@eA&`0_v}K3Zp4Hw*$2fZG9UMIV8rF}#gta60v3lqZ_8uZJ zS-*n$wR4zWI*HMlgBYAx!@&4H5|mY{*!E&*l;Y4LwWJrQqMAWh_pFHBL}%|Lditi( z-B0vRp{s9dBTk~LXM*-m(0lg_T5ZFF__3ZC4qrnk3ugMNCBK5>rrjxM4{(A3(6#+GiX&^u9G-$9kT zN=}N(>QO|ke%08QYGmhf24#c1dJ+NE*qVak7UYwJ6p?@wkz^ECbPGgwwW>#yMO)#r zrjp7U&Ky-YPy?x+8bQ?qD663Iro2y3SlmU=(*lK}4r%EXNaC?5FzJCojEU)sBC|3wepbjy&)_k1^&die-#S{m_My3BFNr0IPuo0N+ZTvA62mDpHIJjQ zX$(z`DnThPYeNBvTTW&b(vtEaMY5VQo=&QSkXBw^ys;%GB?@tI7`ApvUP09lTxCd>6L|q z=QMeil&CK)W;hG;B>bF=N+!07hZ^BQy%PU4kKOFU{^ho6GoT53_UVMLp^hG zb2+}3i?yX2>})*YRE2ndKmU|{qn>dSD0f}%u>h>W8@js&rBQZoA# zNR!f#l&XLvNsfeMIpULKh?Ay&BfOuFOG?i~T1GAu*@e^+DMmqQHT~IZsWs7nirQvT zaBQcG1fvJ_%_I-4{b*<*Yi}8#KjRh{?k}bkEw4R-i&;XT9OfN!F6?!)KJCK z(bkU9fnGEe<)c^!yHO_&JsakW;0eXr_%QBP|4LYru~xVQ&%< zmJ+_~)I(bnE?PSUPs#`n9OZEu&yo^*s_?hM+nniK3};D%l#q~kYwbd`_HM+}<5Fll zXC%0*glAiAvou7HwGq0__0esjgAS61X8j##(A$Ap9TF3s?UmLGxqHP-52Y3cC^FR- z8I4SO&J2%Pf`*`uRD_7Ul55#01?Dl6cQ9af-i#()=^y&9ihvzq=^_E zEkw~{qDW-661`_9V(2}^)A<$j{5<}IFD=eD)fN=ZUfF<#i86o}LL5?rs##LN8^_|9?{{^t4`@Wv(l>w{zX+3^v4e}6Z=HCT+- zhl=s(N(+8)co4t3G>_k2+l%j=9K#1k`tZStA^aVQ$zQ*51%LnE^Z4n5^Z4+>L40`e z7=HTdBmDCZz5xE__xK+_{t;fkbQKF!(G|ueBGAeSJ|-@3({+NsiMyDqMCKQRWcOgi z+j~LkDxGd z{sSC2^EM8W*z7<4h{WU$RuA96zQfnBynYe0E2l9re+1*RhcG(5pDMLA3{URE@aPJ$ zgwc@|42>*eWO#WaE>c{;@bEka2@ywTF*Gzo723>Z93Gw(+c}Pm%xy43=Tk8>I7y6e z#^C{Ca7@G@ii1NVf0X`#p+Cyt;2^!0A$qOD^g31B`uYb+vN#UY`UpwVFxtENNlx6Y^rafa;2ePWMCVbM?|)vs=6N)m3=5HSB>4s$!$VrMlIy&mEsPSR{!!NJ4o6V>1^?O0Hw?`d#c@qwjkEUBSNfdssVg zAM1x63RGQsDmj^7x*-HbomrWjBT<>XK(cxc!xN`5NayVzIfmZhLnNZ>B%P}ypUddz zVo8}HL75bCQd>8Gs!9?t&Io1Ki-ECxd3kzL5t0+~Af@*b7bZt^a2g^4s8Q-8L4bP< zyd1;eW*Y=2OF!6|dI>RcG@<&)(1`@Yj^x3bun}Tnsbi~>6p=aEDk-Wi9?q)pxDyL4 zBUq4(FsgASDhW|{^RT$^xDvj4hr2}7170~>;;63=XG4+`BZCb&F@`&d$5zzS+p8yX zv(r~~)v$<|6C!e^f-88=l#rP4<-Tee+1gd377?CQjb%hFBu`>P!l0HCb;d+3IO_9> z^Romo^t>w3AW7kj&BihdhB3b$sw2KJ3beMN!NQRcn}oy-q;bg`Bq1q28OgMq#QS0r zkPsCoZtoxAAA&#+U-&qCz{So14pug>Hl;6!K0s3g6(;(8MUJVE6-yH)tqu|L1RN3{qWn-*w~4Nh7Q!%w~JOzV@od;Dt()%Q^c+9!+#WY8hI=HSf-UE zr@4_@W9@zD=^miv7W8(uVYH_mwK;O+MTej$*cK)BcYi~m9 zhN!U6Lj}DrMnU3{%GnMgot{&stAnIHyAj88qU_Q_IK7@=l8X>}k0HA?1fjGZPOpil z+z+A8V{;q5k1%?j5&F9kNv}1=a1W9xrW+k+Y& z7;A5Y4kr`zxR_(e(*`pEE|?4R#8{9k=41V_R~mu?Y2mnBnud3WYw-2jAbxsy6nO0d z{`Tr#{NmUczPr+acP6Uw(LyV}e`pBbJ<_dfV*+B`)3k0_U%N7iTVh zjFacz#j!K5_2i7`$Jc8-DLztZ1Pp#&4j8E^wWXeumUW`Es1^A+jmXNVL58eS+%Z@ZlZBWFYQTl3BQaWz)PyXNfyh==p(wuvwbfi+ z&C>hWkAczSLMCQeN=QhyN(l?e{(}#MkQ_MtNG!9cu$XWrh2>;n`MFIwnO?X|a&i%4 z)8{ZUc?Lt{CoxFp?;ARVo`D1C?O#K8?+QA*mq?0c(b_gG#H6NnP+Yymmz5XhG?AFp zAyZZbMQSy%O^R>L43FZF(K&)_md)s?-=bGwJ9eq)_!m?_ZDJeyV0G)a-xD7 z(JUtmJyMMxH?A+GMOVIeW4eJUw2qsm?-CXc1W5RN1lEG5o{ z`p=XSUS}a;#B8l}tQgSB-8FwiN*Hzbjap9BQo=&=UoItEvL27cLoFXq#;4Ipi>FF{ z3$l3WHZmk60K6QRfYj(%Bt=9aE+|CYJvZ3h6Q1^VaIvw1y_q>|=!3MP509}lpf7}Q zFt>uUl`UNDo#E;14j(r!1bF$0JMl&agd#d146#8Gh!2U{AOZ=Yk&uK%K^hr_q^M}5 z#>POF5RVM01X(G`$Vp2MH z99Ni~jgo?VR2CPby1Weam8wB%&9(KS+oYqZ4IRzxM5myQS~hLXUFaYY>1^v4QMEis zGBJeSuHipQSNp&pp%1+s{pj!P#b7UqNqY-M`#LbvUXPNrIAjKUAm85&d9Jp|wlNVR zlE>K+Yjb2;7$eP0AMqx-h@cAf|6EFTz>OZm%RKG8llD$H=%}zK>~vM|GUH4Yx(ikE z;wl(|2cGgc50;Wd+Ah=8Lau?97(`l2lGH+#dzS-ZCkHkt}3rYH#NTDdBm|>{Op5&6S6q2m4Ak|ptqR~8wSX_qt>9lid=Y>9_5=Ltm0S4Yx%2qo;tBll zg4x6AHVzy{O;4Q@cQX17%#6unyV**s71whMa`oBXojaZ#Q>Cs#iA)m ziFQRHda^1+7tZ0qWt>_wId(`;UHzdn6?H zU-&WZz4$fmzVLnAe&I{pA)bHu6>i-55?6127niPmigTCV$LR}i;KaF?arD$Z96oUy zhmKyO3hE+NTxYPbauoB6hcP>U05fw3FiUbWKTXW++s54V$_7iAomv#kOwDg&dU8fE zGd256<|dzxn@mk_Y@ZfPPfvbhoSmlUn3;NJoTWI!$55P`rE^i7o|?eqMk)Jqq@9J3>q!qE~AVJF~cs)hcqff zOj;%hOF?p!4Dz^4C?wg)PAf)Hb}g#Qy3o=zfu5dKlC7g8mgh0QM8dgt8~cd0{m*0l zz+D_Tcn=2;-N&KB4{-R%LmWN!f{47GkKtoi_uazE-seb8t_$WCdF;t0OwL>&QRM-% zr!g{m3`4_5Fg$z+gM<6g*SAW~O>)w?h&Ile&}(U|A4OGp56VkAQIfBclf2A&5-F0c zvm%8-_jkL1`KBt&GWGAI6tqFX1>BO3m0k?^()f~QRYTrGUyWa_y&_QXctfuzGu zj5T>Y-o!#=N>uPwH6$A(A1ov`EFBx$_{tm>5);m%@VeNhn(O3ADRD61c~v-DVx;P( zQ9})U=5dz9SY%1IN{NXckL6HhCRhvvPe{p=84~pvlE+e_^At98K5N~_Sn24Hl(5{8 zG-zrHc-e#+hXS2Fn-XHCM}o2`B_uIhg@fvlC!+~95}!mPL&D-Ag)%Wokd>IY4ZcGr z-;j#$@xXV(lto1$IW!dU{{D#e_C|n{J$&q};bCP77c)~ho0@E3D*C^?ZEfLeZ;t>M zHz6_M-oA+P3lL%>4GD)dI1H&IB0NK1dRT;t@Nmc@BcX_jKu$s&@)F}vm@J`+Itk_S zR8(cAiA+LmUIwajvrv(njq;oKmwtT{T%}s=p4jQ_mE(O3WjIJ zVLE28Yw)Sa`$xJ5FxJb*bYZl&TVzOPhB`6SQi=TdAf$QOBiGvzxlY!|wlYSxxiRvr z%#dSkfeZ^1B%2r@+E|+^SuF(W><|N7y>{;)AtB))*8$CLPLl9bS6rLfEzG+ZV#V7Wd;M&% z5@d(HA&yuMcfx*&FZRZHVQ;(#;g02K&Oq2>GSCVW0hX8za}wPq4K{}23Yt9n(dW}2 zw7}2|*#;(%>FFX>cQ=yuXd#~7XDrD`w18jRE+Hm-KcG+@5)!@Lf?yJnKq83#0Gv&U zrawn4Ned5-mC!Q3AI|*nd&J2 zsmMWJZW(54J8)=l9)~CP;^54FTv)$|hu2=lx9)$87jA!u+t=U6&F4PC!v|mD;luBf zoO~Y-Uibm-zxX}kE8HU~x%a|XxO4w|xOL|XTzl>lT)O%mE?#;A=Pta2(`WAE@ zar`=t9=U`A>u0gHb`q;A$FO(#FqTP9mgd*7Ok%P^A|jaGD_EXc*OL7{>I41EzVAf^~Kp4k}MLI$qB*S)T9ug znTbhEjErJrU=Rb{{nYsAMkkdo?bHBjZ)kr4Y6NjZXoC)F5Vg0^@zfyVhD=ZAIkhX;j|Jke^zBlFUlfmb9a_fu65>38SM&Ff)4&OUu_tGHwak*uQ>9 zh=*E6jvRd?gyiI@S8(k3i((tg3LnGAvYhN)y(w5;xq$@|leziJn4P6!B+bf+*r zeu9MVC`LvOlb9SpfB!!8_wGec*AhD0XGyxI&`>*sy6ORvCX$n)j!ik?%n4_Clqsc< zON)>ipC`tgNFwBj3r#~*U=kvIB?$G1L9kmC0vyBOV;=}FYd;bcPpZ2}PWaBY`gY<9 z9V;D`lvwQHfv@8{@F1iH`9kXFi5O2;M7lX4 z)X5G(_SOirvl3Cg9PaFdNLLrcd3r$Nt%sIcO@(LSsQD8uFFf z;B9J}>Dac?JaknSp|7?K1N9Z?udT#DT@{8J>M+<;kJ094jI^|1l*DADt&L&_#@f3u z(b|lTidtFT1?Z%ReF4lcaaX82lN5kxJEZPaDB%U~v?28+@QMjHLgtnPIr!l8rZqD)ISB7k+(i9=|*_iT5UI@X>S=-X5#L`%?{gW4IEZE_dR0H`np& zYis!7*#&&XTwKOim-pe94^QKtKDvv4{qC#y`)|LFpTG7zzH{R=zI*F5{`&n#z|TGd z{_GR{-N!GBu_=c;s!_trHI(eolOeyZ1iFt(za?`t^5l?eZJA zeDNh*Jogai&peN_CvV`?@k=;y=p2r&pT?1WCvj-+Q5;x4iv5cRvA(chuz!Ay*r#G) zFV^N)h$S3cUL{rp2bPxUaf{nnUz!)}U!2=u9%~D8o9vsP-DK~=(^19D|8-m@FFS||PA7U>+R@Y8@obv9&_zPh)7pdH zwq8{uh#EPAJ;NC49l>zls9>ajY#Y3dkKqOrKc=g>8y$_EXs>NUTTLrktDDhSUXQAR z3Y2A)ASWpo86+j?5oy%eOhigZ0_5RRWJRSQJ2s6Pf_bRSEJI^)3%crt=rt^2a`Ye; zX3t`2=`vRLK8Lk^x3JE$|B`SVAt^aZ0>TsRF{epNPLP!Fw!@r3;Y`YbyW)6$+`iRY zVvd`oMV{m4D(2@dVQ%&!W~a_zdg2r&$4+2;1-8EKwNHX>qi?Jl;nuf5@)Q7dE z0jx+sSWI|7O9^LFR0CqSONqENSVxsDVJWdE$*?nEIoZgVY{-Zj_0;$3EQuJ@s>?#6 zFEAouV8j@W4I$xf9Q9yS^*~j%gxKtUjO`xouK9l@B`VDHR2dQhHTaOBHfnNkvvvbY$O$H$^Pfg({! z&sm)mhuV}lG^9(=oRNsOtYmcLq@X)L9eqVI43uS}zdRScWqIf+%|&-f4myjnzLBot zY;oK`Wg&)ZN-$bihLPHGiWL~HtHfwSHO3n2FivtZ-rR(VmS#+noJ_T~W4fbDFh#8# zW}>4Tlbt=ZjZy7;7BijQf>|nvn7Qs=!F*4jV6Lx^gr|+sepz8b}cB!i_yj29tcaMs-M3@Opr zkP?d8syhX;+U^g<2wUN(VH|BfL=V*v2 zS7XdL>0s7g6Duy-IOJ`Fqk*P49%hYGF%CGN?1iiH0K8I`fY+-ec()}D-|o-Gr$f1T zzfXzx1~T!%SU$czSBvkgwBzlmCS0n^#j;F_@q~Dc#3o`WDi)o7KIrsuLmU0h>ge}Y zYGaNZBLi`j4c{1$uL=?w6pBnVEi*B@Nk%q^r9V~z{pk`o+d}Utf!<>xNlKEg7EsV-V=OwsLZi9Qm^0e1^b`dMQ!%n@^84p@nC z#eS(b4y5{FCD9YJvCcSC7>kc)oAGjI0lr-91YWs_pC2B>N8|N)sUsh+_Lkr~Bqn#; zbMVE%0sP^uEBKF(Z{a7`m+{tm7d|^PiJ#p+f-jyUae4D9{`+T-@ZUbTjbFTc4nKSG z41V|4b^Oz}ABgRL|LKeP`KveZ@X#D)stQn>9E*0P9MknRSfbzXk;xfc+;@-$qNK_~;PflQIVjPR(W0)Hm#?-(d#(R4(($$Tj zj!q1=wqtilEObn`+8c@Z_{s}t& zC`P-7MK*S@txsfoyBpfjS=WNjnr5_C)uFMp614@DD3uqXD5U^72})$eq#-*x75Q;# zD3vHsnxsUvybyI+Wz?W+LRW1+hC1gkF}xphQzx*rt4cni)1%Q6{>fGE)jkPVym3%tlIF zhUlhB3Qa>&P#O~a6A|kZk4TRwgt~+wz}_FeHa_sQbc4IO3tUYd;ACV=5@AU~VNR8| zsmP3QmV{v`5s;KHmfEVZCu%7XBJ&I>vDMe#CMD|o^{6u>Pj=gEl@cQzJs4_h3)E7= zLZX%uzHC>0Nw0dm2#d&8w#tZ_|0hyHLh@Kjo|X|~9Ssr1aT||SqruX#iIhZyWI&J* zO+=zZ5{07p2o%MJp&&X0xe#73F)*w z!`l;?zTU_oA;~8pDF_ZkaaagSNlGe6NGf8YP(?ygP0v>&iP<0ub3Q{p#EW=27CPpf9F;t$1!LnTRmt>=_I19Z+nVW1~=Vd;Ij~}fn z#CT0HQL3W491}Ga7_Y0sWJ3)m8|yLE)Ic<0y15zCRCq9x#6$~8#K!VWTgRWwY zNK}}45|#NbTJNUwbTneBvk~KMHCP^OrhU~YlLR2mg+#=SB*fkf*;b~=wKPYrwG}dL ztdU}7hFC)b(H#*);=oekOY-2ekGS$w31LJ#}!*-w4M-OmRBe8W*LmxFPex>m^Zm zt1%4 zWcQv8w2(l@ah64*qlH9zZ&DIIo+VbItATiq1{#nW5hgnzqnM(>^Q>r~!AuuzHiqc5 z)km+BAx1pSNK7n6SJZrj9fp04(dVU)@h~e)McZLE&Jl+)g0UFwjN`Hp+$>MUgZfN- zf2kY){M;e@{nb_cU|$cu*xQM>$E)z>WF-g=9hw%QXVSIIK z8NYu0B>v*f)A;#Ihw$ImUb>6xXKv!^>1()r{4y>cJ&y~A z&*I#{(>T5V1WxWdhEr?I5u71T?LUOm`wrsd+B(H`iXm2vz)tmS%8- z;COs5ZQDCTQZq;UXE(PWT%0AQg{1I0N42zYe3B>k|Ecl7!i+H^q3KhbC)qSqWYWL(bLd`-nvF~ z*4CrFq8crwRjAJ;IZ>9QBDD~u(ri>DWuiJY3-z*GG|2PNm{Ekr>~gdeHK41e7ej4R znCM%@^ym?BOM!*i^H`d{DCA`S>J1#+e+!4!Z{zTR=LN@)+{e*Fcf~UAQ^WUB;^S8r zuVH2W3YKOsVPX0L=BLh+ketKpm`X^dMvh`)=rBh5)-lwxhQaQ=80cC-f9EoKJLb{d zHiM4lakSJAqp`LR4VB%fE$cvKQ47lQ>rs|lhmxFX6lGPSfZk_*Mj3Ksg~&?Ig;J6O zWo#A{kr_w}O-E8-G9-Qy#CpXd(mfpEuAvBa^hcn*FZ^vi;ce*(4|7K`J-v&uHJpvC z;G}0sWupabbxqmBcjd5%Y(?Cqc2QIfG9?14`70da4o+u3PMsa`-N`w4RL6t~VcrdD?LQxYPhB}fSHTCgfXh;Z0qcj|? zsnO_=#h^PQ9(`E}7|fMoI6oQV#pxI?lVhwb6T_uh7%9obKv4z;3l-=qkdwH`MI0_x zZf@@-gJ_$(yMWVVGlQkunt}DZILnUS!tEe?ujTw@ZndW-IbYp`` zSQ;8>xe2q)f1H`7#?9rq77~uu7Rbr@?Z$KL)%EOl3-N*auG zS5uM_YveeX3n}5Qn_OFKC^w`eh76krZw8P&sHKFZ;n`B68dI{h`-XW^O128gv!!I0 zxc>~_94~m!F2qyiooS|z5^Ez=TI-?NRu_X#dKj_O#E_W=CP+$_NlFfT>*8dv2~J0t z;e4DmuBABRW`-vo(eimXW`eO^4}eU6^47$BQYQo@5} zStK~7k({KEoFr>%33&3iM6F#yN<_9qmxM)Mi)2I-ae6xh@rFAfF(y$l(L{>TPAKTl zRiwWQrAE6^YPbuPw6DQx51OpCQE#yWjaIub;BA6#cRjQ@?Z#xd9rh*rh>Qud6zhfy z`El4U@y4l)aGc2q!)tB%_H2&h9tN7KMSMi&7ZsYI2 zcpZQE>BsorKmQWH{@@KUQQH}+G*6CC;_AKwc>ctBJh*ThFJFHN-@5lUzIFe7y!PNj zyejw@FFp83@bbM6@vVp7#;f;8T%LblNX!d2U&F&2FXR5z`?z=cdE7d89XC&1!E+}r z;QFz1xO(IaE+0CDOZ$)G+}dFk`wtT9g7f?K<1ER@dE)H;Rh(W~+F(I&YGrl{GdMx< z1WC#9WfGI6X~EIODI8gt{0624he=qr@~mxt3WpY^L}VG_cyMkS>ob#^tWAvz_Dzmq zbz&4NqeEC2>c?Dv4`zD1Fx}I+9TJtPp6-pBhO{g+E3(n9%tL2Z0os%WXw5D`dtohls@gErGKz`bIZO}j!_3G55{RRi zpFW9|xwGQ#(R`D}1N*My;2H@EarEGA99btJ*{8a(qnZP&&tZM<4HA+|Sf06n#i?_c zpE!d>VxEL#cH|g6$05uNAI8+sI>tzZM!Q!q(zPTQ>R7;F$1M8WrqRpAkrl0gB0L4@ zAyT9SCP3;R4T*0gVmv|+fs+4OEG6MWd!6${$TJfoP5mLUVi| z+7d(1nH-L;^eFTysFj=*hoM{v#tM@$S(1jC@(fIsDKS~Bz*vzCV+H9LEhJ$nq~(qE zk%BY~=cZsNF9oCdX(TjqOqVJ#Q;~(Ks%(;x?2VX9Qj({FM1`5HFWsPglNpY6BrWxo zn5wPBvMtZ98BvdJ?yKlsF>>J%TDiPT_wfq(-(Nbkho|ckb z^k-3Ft+$ITT?_UUdAy199u0W%d?<7*&k4eFfh6ndi0+ayO9Swn9-WT57;)3XxRWME zZ8R`ruYrB8S~%jTkK=&`I38kvv$4jwo@R&JIc|8VHV!X0O7Mf(LVSB59k12~hDCpu_nqabj6*D zt1Y!rXQPW|2Ys|T7@*797z3W>m<)2je3UE3Nm6EFoUs`1hNU=HG0^vr)CX6xBXPeX z1@Cqh;q%ElAt>La&*7t)8ZjB$kB$%E(|v9D&9x=`?BYCrclRLv`>Ut$H!mE)U%z++ zfBEn*et2a8Ke(}kzkKZs{`TE#`1y;c@a4^e`1;{V{PhQS@jt)+4*vB!?*l*hF8=DR z*YTI{ehV)gK8P1j9K)@H2k_R-+j#xCTX^BxExda7CA{(ITX=NmWjwh3GG2N}vhwJC zy#MfHy!HIMc=5suxPAO4?wq`V7cbqx%a?EC!PzUceh#-!oWji`$8h7&5nMZP2v_zW zz~#Lp9(z}Cao;MzQN`s|j!P7maB*!B=cux0&QgVch6Lc$+yqX}j^o747%_rlvtxuR z9-kY3iWBn_+twdHmLJED8O5>r(apFC9m^c0W0)hf{45U5j|mRa>&|+DRHZur%0-#lChd^t58Gs~IyL)X-^b#8i7DX4!Qbzs4VyQVejA&R)>a(5y8GeW_UC1?H|Mn9k<-ukEPxo%yzV6sp29Npmepafwv7a* zA7dS(81I?F{KyJP#6GM{9K_1>VXV#`$J*R!99TS$L(7+Oc<)u>Iu7l-Ay{9zihYYD zBD3ePIDH07lczUXoH&Jrv16De5t$uW$8`Tb`povz@(QMU7ctp2i;1pjjCW39w0#1@ ztz+mW5$UPx-=wRi8|{@HXe(<*OGzV9kLKc9G!|B)zMvend8MeN_gSjQMRA%EMN%0G z;**gREk$NT0y4tlAPx34z2b2yyQIh<5Qoq>~rI9Xt?X>xuwtCm|@F z77lPV;X4lVP5&&Y%rqkr*qFst%uk|5bsw3{>;=KXVY3D9%CR?OK~dpgWGEtMRII72 zwcx>|ECB=yfiacuMx3qK=t?owCLz$#CMls~iLKAY*gOT#=E@?%LZbZ?RwN^8Ea}{q zBqA2{Je!fWnUjz(EGADz0SSs4bp~aVCxnF2C=T{OQHTdP7KeJGB!md_LTRX%h`i4G zi-O#dALxoaKWF6lIU(EI0h!+R$nbcKl3+2(CP85_$@g+5A#o)kaVH`1KxKfJpgO=C zwL!k9r;4K~JOE7*erP87X(lmhiSk2Bj6Ygq1JDu|h;|7{Nm2-U(jw3=Cn-@Gff@I8;DllCl$7B(SNI@#b@>4e1x;~PdB;e(V!Zh(17Mh821;#661V;rXDrp;2 zktvv}%H1IUX(|gaURj8-%3{HIRmlcLn{iC+FH~(K$zjImv7?oF7^}#`NLh}^(hQg9 zkk}MrrlAOnEhSiKqC!9}L6)N>6eJ~lwT;5k6d5)aNTcO=V*^AO>WHoz&XjPLgr{NW zOM$mvb+i4RH!3ON8}&Vw67@jWC#8h3rOKD3g!l7RJ6`md0IGyT$a49r6{+SfDCv(< zY^;qM%RT6{+l>*I-I#RI!~_Y+tepl{Y5B0Po{*ALq58NGXM&qDTing}z{@QXyw;J5 z&&IRxevcIIcf{edp;Wv}%kK_n=6^ORaohw*47XWb_Qs%GbA}N67!u5cv+#<-3Xn&rWg#gz(|l4CW5T7 z818^03EnuH9)ctB9=NCs!^`y<_+YRMU(7e-7e@#2(k58(?~u3|;Fq-hFJHZYfB4`Qe)-Zld~#tK-@9@Q zzkTU>!5_Z-0DtxF%lP}x-^b_ouj8HT=kVb4QQSDXj$5Zsc#4^E!P?L$ZL{NW=)aBl2h!wr&-YkQY) zWqARY7Uytwei|2+W(ie1zc_`93p2RLaf5SI@t-9rU`|s7e|mBlC#jM@IX;LJ6a6?o zIfUa=15d@1Ps9@ws^iu1_&6Oq-iKq8{Y0;bN2huTj*mGqF@Qt#e2*F0j0fqwho%Q9 z_KD>Kbe{EzKI|XwCVDsH>PQEc2T4BqnlRVXgxT(T5$AduFxy^(*;ZarimIXBqxgy%}@xs6a>jhPfkAi zi^|YnQHSA%HjK6Qib4O=eG?=NQzQ?ISQ=Tz^4J?4miO29kObr~sOh2=q&b5Z=-c?L?uVA8cfzCgR$qtf`wh4?jjbgZQ z5JL@p7_RRovFb*DRVVsLKzgb=#By&nQPGah@@90DG@!Ml4sAu%Xeum6Q+_GxNWSW_ z^HE9CRW4JaBsCqS$*Cw!Oh#dx1bNYM$c~6cW>^#y!Qn^`2tle}5R$z8A@T4-yqgbV zsX-Lw=#FqZ7X;fl!Oz+eUY7Q7Gqr`Yk%bTw2YpjJ5?EfZVC zghhq3DJ&(H+FB$7nlPub$(+h{(WSz1LrDHBrDRi1NJzFy$yPCWl1(w$;8_y#BpRIY z$nyOcbY!uAo7Z8)m35 zg-Clg1+u5$E}_BV>}?E{o?hY?l(26qXeyaYc{nzB+*FQZK&Daq2=ExIr2Eq9~ao}|QC6Vom` zG2^I#1(K3|F1v8VM-L~1jc_*H1eYZixTAE&qY_`d)scdC`xSVCJo1x!` zBo<>yQp~5N;$U_r)?}%ekBh=curCRUGwSTjP-L_RS@b@54w8IB)f_81^d54Ib&z48 zEoP`q*r|b7&YaL^%9)cS`or)5*m(Nvm^k_@R8pdWgpF}0oH>!wc~e+UXg$klC-TiS zQD#LlWUVKtverSJjUMXk^-*iDgGOfqbhsO%$I}c$-sYGHu)#v86IP>Kv7d={#))KK zT*?W@^A%FO*_Drv#wtkK%J9K>4L)0J6=P4n+TVj89vKmG^26g}_|ds({OaZ!{{Ho| z`1g-);~(C-Dkf+9fcAZHc?G|H`2v3T+I9TZYq#+I>&Nl+-Lv?~3s>;(Kl%{={d@1? z_n*FjpOd6~@#6FN;Lc5a>&8{wJ98G#pE`pF=da@a*=u<1;vKwk=^kFca0f4(x{N!A zPYD^hb?^{wA6Uop2lwOF`YN7VTfvRhC0yUTh^x!k+mCmy|+$!SAU^5nb zNkY17G1F0t=?)SOl99QNYRop3W44*Qi%T(8Un1a4>P%w=?W@K@YaJF_8%Z!)glw$! zbPDlMv#+z0py#Ey+R=u+?X6g8Z^m+KGnVLab0j2FwdJCbG+I$47%t1h0F_le`I+d- zR+5Y`Bp#U=LP+{EBn$gF9vHn1p`%W^cq^xTi$~1(k673HKC`h8QtYgwBATUQj3n_ z8nhNwpslb1Erq3M$}K`eZa(U>b5WC(g-Uq_%F|`yF66{85;f}Xnyqk_#72+1QM82sune$}sHKFvQ5YWgVNN2!GQwRhTf1PM zl#@-i9K(=t1iI2mP=uVs3DFo(CJML`?^7f^MXx*_J+e3fFY|GH z{9twxx-(+YsZ`OG8Al{+(w!xt?eW{8$8JWVJ1Z4E*=gJ8%_VZuMeNU)33!alKtVc* z3@@i|!oo9Fs=z>DvY@{p2_vPcn61h{w=5cko;JvJwiM$^avUs?Ze@ZPLv4gmrOESc z_){z0cSA}%s4`^XU@1{&N}iGuEtQyvI|x&yDvsX}6Sb7Eh^XOp78Vye)}7${>x9zt zMACMi(<4J~H;U->)LQDH-9Zn7&e|9!37K}h1)fW? z!NY8Kyjl^2x7(BO@n8ntZjHk`t?{L3>gnx~24+kS1bOl7QKiWGqs_x{{uZeX=Ah zrzBu9CIsE|du(vCL79yK3M{lq9#nIZh)aJBNm%r?#XWd4U&$AnamO3c5(nhI`E-G#HQEkU^ zVt{5xV|2Khq0hq#Lq0Yb53s{jkR1+7{jeVAfkP5+!V_yz4mgnDN`exKTjlY%U6q2j z2Fvj2OrsE!uMZ95v%Ot-d$JDiFSOt*&Yql|!SC)L!~cBu2LA268~EKzr|{=@kKor2 zj^m3<%lN^K1NiFtetdoBD1QFZIsDy+_wiTn-oejby^g>8{0$)|fBDH<`0;Bm;?0Za z@$mRDymaauUOICT?_9Z!*UnzWi^tF6(a}?Qc=R~#9y}-n1uVj#CAHe6Rz@2HSA7 zpBQMx5n5JrnAX3EL;Wq=IM~-LI6$&+ps!(*^-Y=t`+6Hx^fYc`Z|@f9_?6yz!E#R> zmPi27KrO#M7Q1Q$yv}j1y%IC6<(O(N#bi^7V7jpcvyG)B4#k*lD8eiW2{T86GT&H^ zg{BIMl@zP6)Le&^)&{J$lbi@hc!;&O7QsG}5N5Td2`hB$a#Jmq8f!3HL(f@RL}g4K zMoV%9BgNEMD#%2CUIu!z6oUTD4M<1^GN@cqsOU^d6k^gPQ;A7uHp@(*kdxk$auS4E zAt+<@?U-op!BootiPs3d=P4}p&S7sv9*op=W2mMRLsjhA7^p-*B_)qxA>r*TBx;FJi-!8~V*JW8_*12X zc~VT6twQomQt~YE_+w}!I9Y&^P{qe2x>yOMuGWGiD!7?sl8$Gg-k;)XgH$&X6n7RA z2Pi})g~yyYlAJgr&({qF{vId}@Iq;j4=O_aQ56w@ny4Ux<6~;01JMvovO-eQNK(?2 z5Q26o3CV_-JkFZL2+`=4lT64+DmLg$j}dgFMGM+fqXca!RJl>)ZR%rMQzHd!biOBP zPmiV;@dUh29iz~i9{&_=^qSga2_klp{4m`lPd(X*+u(t_ttlbslGF32(|gOL_mmTh z;o>Arm8PLBF$hWrLlnAOqnJKdrL7qxCVGe>2@qM5C!~bOdx-HQLNs=53dtt4PbDYn zu_Y?DWlOZTPcP5gcpqn0ya}EmHHx;y>8dW5&7;@Cvz@ls8DPNG2;;80B17Cw=vBG29&2;%#s{)gCYBdEu>^Fp`l3eAt(Uw_9THL3=d5(=WyAjbZp? zNP&O3vw{b`h3Jm)LUoug@&W?HE%{S@BOvh%gVdX%w;$4IdwxU|Y7(U+a#W})lo(Ev zV<;&F!_)#AOGprx5l=|sFr5^SxwHh#r%SLv-%($b4_X7AQSNMtER)@0;40sHC*MFD zCB}v*Gc`s&$w`LhPRK|`_I4G=DU$+rGr8nJuw!i+*}ttwSJA29vbY7&`PhR%iV$m#R5a#mKgW9#(IJ$PNoIm zV4Mq9Laebb+y-kAwm6*Rjmw3xxK){qd-ZaBtFKhdgYwR34Zc|I!N-g3cx$pA@6EU1 zho>g-SGNz~Zyz4VKfiVn|Nh}~`0WcMBKHsA7Y`5NCwKSbC-)EHJC_#l{+VgKc6bzD z-#v++ym%RZ`OXU@DzD;4kM7{3s~7RDQzvj|-zr`@dW_;4ZY(a~=JFzLuP)-|$}DcJ zOyl|08C;tm#nrhXT%8%f<*7cwrO94g80*D3l8!SZ8>dM$m{SAof|Dd1%!$5M9Pe!r z9P4SuF%p2I-Ay>sU5_JOjUpb}!ojY(P1d_=1qXZTaiF{IDOCHbvEEtrO!jxy2v%Ck z1xqcJPeYQi&{8ItC)r@;NH%6!G6?R9Rd3_v$=ZBO)Z}5jI#7fM!WwiJR0?|YE76lzL2^_~&tHg^%px>1Sp}Ok zW#$SRmDz&&j11Ju<*1RRp*lSkRrEe8Qj$=SEJ1lv0?MgeD2j6G4oF={8~= z%{Ga1GT%nLqxq)Tu+VH3lynb!At-!>PA;`h^ZeaW803ZG5FeC<`=dNUMOlOo%EL)k zB79L9?n}brC#a3~7jnWGlNOQ_&YJMxR~8hOleVM?v?i-y=}<4XB!#0{8iuCCP(h<4 zWE<-34Ro$2X_V6Og5d2WktC_(#&Ugph@c^X&Xo|n8P(6juc0M5RM46dhPKpjB6Ksh zr;?P&LeZS;kLHvBG*N6#3nFm}Mv*^#hE{u!?`n=BH*3hP4H0LwTg>7bK?LY)!H=ZG zn<_)TrN0Nsf{>Cuns6bTW}Xz2&5X$tQo?MN67_v>#4N5<5p&lNXGy{+#_8;Ylzu!s zwS1o5E>s$6p~YGUL(Y1bblrm)XALY8Ypy$S%u5?bJ@??0pFXZeTHuz%7I)Je@oIq& z-m448J54coze|GmS|jmMXDr@riNKpJ(fH}U8vNtUB^)h?Mq`j_d{TzD7ZP0wk3f}_ z_=O`aFcR{hFl2>Bp)58LEva(!$ulvm$izsx0#hU?6KQEACkYsci6RLJLw`)D7z{g< z7>22g7);0`FqRaGfoNZ}`#Ph}-U8*u1}N6kM!mTyDh%{cpsj@hT}^Sr!2)BxX&}kQ zE`nu*rDTsvPXh? zSB~P#E3^3SlG8Ux6;w(SNjegQbd^8AagxIu!X)Lgj#S<5^80*Ntm^fAl$}KNR3)-SYVzd zDJ&>55)^e7g(W3xW88`w9?!z$(e`|Q7eR5LJ4%B+Q5ouq>Tqw=gn6TuwM)(RTRn17Ahlso`NMvh)|^82CD5<(cXf}C@;ce1NSXaMMby=D#GX( zdTo^v^g1_URiu}oI?9{yL`}38YGb@n7wdz%I8|(j^+vnY7u~6WXo~lw*X~Ag=78#0 zSCT4Ulm*#9VXKWSdjn+AXDhQZKq7rtEF~c%Cw#kpF_wgc#FMibJWHz(3{{rIY0uMe zwnUXNQHjW7DN$`#- zc3{p?1N+=GaNJiLXZ-bW(nlL-1N3n{+6vE0?Qt*N39l9U;)D7KyiWr1VFzbPBJn|M z1YWNV#8(rU_`8e4)Y5OkNQ^UT{OyopXND9PXKJnZiUF=tpD-kPhe8n=i_EYXBAA?Cp7NuQxEa`p9)P2$7zs_-OqIc6k2R{AKh*GIFLC2F1Y zNK*Eo-fAZrEj2LgZiv+|d#pt`Vj;u^i=ng}`j$%Ql%IrfEAP_S3P? zVy2XiC6=nQ1dBB}&map6Bp1wl6$?d%V3uCb480a+iq55muNHigiNX|26{KLgFm(&` z`Zk!%r^go1Yc8bo714PMm4fMl3{2%KFk6%<*t&f(PmYOP8OC$c1tXa$7?6`-$m2;o zq!>~rl7u9QZM@ELKqesxA#qQRBN2&3pEL%&iP7klM4>w&8l4GIXs6gpu{j|I&55zp zsEZeZ(w3f#PK6BJN(Fi|v(cZOi=q5tj1-m%h6_prylo)25dFD)Q^;KOFnI;&Cc0>Q z2R*J`nM)F)L}R)f^{MHoOG*_qNK>gHm`07abTm<{mn5SmUW&@tIFu7*F|jC(Ch>?O z>0qKG1x1lzCx#ELE_|qI0rjK+gc;S$_k<8<_I)3fxod4ybX=up>G5iJp(xE>VxkH zteRGyvmeGAn2M;HKZIq1gk%e?VkS>nO`vHd)D<-bHqdejf{%B4N}~!k?Lwqm5vqCXnVSgHDoT9 zkh@wT%fk*iUJfYmaX_K3BZ_^UP~zu|@<2C~2fL#r$PLB8ZYT*Mc?tCp@G@^J3UU=u z4X>*y40PGRO~99x@_JDK5$ufOAZLn>C=9SiL7*M&vwIv#777DZlmEu@-hK~62`R1!g!621(WrG&d|RAWgr#JCS0N5b=xIPTUI{Hao+ z-maDrhP!Pz`@&cC1kkxTOTxGNPu1B4rT!k|>1(0ZR2z*ZyU=c?fdLy0jM-|4u_Wsr z8aNxIhl_#wI7@PJG0+gt#aQBAvOVt0o$z{rH%UntK5CC5DT%^I9g%puDHyL-`{FkT zYw_=Q7jds$h890FRQlN?&P)%9R0yQ|_=&-0seU1lxN~1GiAiuIwRRFwAxS}TofM2{p!T%pq$7mkjEVAO=Wp@P20avy6n2RdOQE(Ghc zM4ZW#<9wz9bAG;Pol0euw{M7X zD(@T_#o-18NrwyvYtwO{CJhH`N7mEtrk7o}o}D(c0e z6f6`bW4VOHpg4V#MPi{SZIjsoDIvj3egdZR;sq0VarEDb74Wi}abk?NZH2c_JP9W9rQgVS9{o>=F`lM?7|lt*NOrtnIEyNHMbsZiY>7!crbZWd^DQqztl*g zqL!2P)D(24rHd}q9{TU~W#yoY1cT|6XP`qSLwh$_&5@d7*s|_3u;I>YDqlmNI>c+R!2smJS<#H!dVg?DkkJC3JpeKNRXJIvmn@? zmIDO&K|aV0@InsB2FJW0Pvix9BPY-UnSSn&`?^Bz<%~2hClO^nE>L*8Al=Iq87wCh zc_PqcH)<4-kVst|MOhR_4VE|?D@0mZAk@qRK_*5BFfxL#p#ePT|LjIm;Y5PKVxp20 z5)&S0LNdaUQO^zXEHM#miplmtvYc%ZnHQceev6c_kf^0ZB_=88 z8_!V4_8)xSPJ1 z-3T__gAfuHCW1v}3(?jFPZ32T6KiXLI6Ffm*cs6mZh~Y-Q=~YULgr*9P;8)dGDX$~ zV%g0CnI4wN^0Y#>mo;*{ZA9dC^>&Vo(%nLk;btySxT?-AcQ%L8g|@rW@ouW)b390h zJS~vzZjNkk3*`G)A=j6q1#*1MMJ({OM4=DK2~kAPS>SDrLVCV@YTXuiSRjucUqbux zz065I%u(cPg%YBG&d2M;be<9)Q^Ewr{$?l-wMJdM3!0NW(HQTFnotrTcVj4Rb&yOI zf1(jVG8jiK=@6>8e5j&RONlF0f=*NkI_}hf14Rd|U9jJ?dkdO^$HJk4Ga<~AQo=&Q zvch9YcwUkST}{|J5 zN*t)tcQT^yh{V;!L8MQ)e^>4o0A(NvNniwWBjQmWPc5osxk&4F$du?+WMVLbWF#va z!*V$W(y6tWo`hi;wGgRQ*qan1E;n!F>{S#=V~_)?==-Z9L2h@q$B?%xRrFrCm?6Uj zMJi6GCgMO`7^X>t`#tFx?pARzLX`!54yLD`r0CQ4OrNWi8VO1Ce_|0$HKSupHJ~JNh!XQ1 zsIk^WlfxdgJL#g+Ne^9&qXBxHjnL0`U#8#O1j+I=2{E%k63lllKA0Scqq1O}&Wgb0 zqBz{BOv05a3GQ}f;9*}jt~aOQR=Wc4Ej8oMF3satch>QTPwwKse|Q%kUtGp($7g`w zd;$FK$H3qG4Bx$f9_RY1ac!^~XW9#Jsx1d!Ut7aZZj#h|`3V2>lbiU}y@PmjUk8rX zCSg7&82d_MX*mUlE0VC17lXs)Br2sOAUQD@PY=d~ER>dGvB-jg}xLzM>0uAas>L4B1GhMu`CTo zPa=y*7`j;4qg6CVga{g`;;#!2L2Xzt>LS9?5KA(Wz=9Bkx;T;rg2kaSA`%thQK*WH zq4hWtmn1aACkmn9{ngP?sEiCl1<&do8ieAAVC2&|^Z527f&L=$%->8NulspZx$A{o zZxRY3$IAn`L>?^*d}tr-&+(ys1kYQPMgLufC-PK9)!0U!+*9UiD;mBjj+RKWHxrHH zB!VM1mXnx`^<)=YBs|MW|3g2P+h9asO3b}?ZZN2Z(s@s zLo+xTnyb!1lETu%=U1aXr;~wd*+EZ-9;*#|U2WJ=Ipe5L0z=!?&$CsI9!rw?HEc({ zUtA5Ow};Sz1=SCXIW<_#ba%m2XQ#lN8eV2p-l;LA@^35ZNz_cJJXE9M$x=div5Y){ zHx;HnEG19i%VHwf2|rr*Gt_`Ttp^zIL?B5@AXT6tBqu?pnh0eXFl_W0STo>U+yWvmY4@(JWNt{U@SVru3 z5t=(;w_EF(QliS9JeCla4;7DvMucLZ*?)WaZsuH#fe zj@$24O_t`afs=k(I3KKo%R#!h60CyzfASqFjlw?wiQbv_hGF38CYBh4IIvzbKvFJz)MN7ONiHRrb!(343 zZ;vJ~dvtg?Vvq{A34brlQ!8sNG6ctyV{s;fGbo8Tu86?_s$^EFk{|T5$4G!PhW(w; z>28T?OI^{mldrG3+_-{7ywF4&S-LwQBYBk5_r;T}Wze6MuUwMp>L8t3D`|SVNTxy~ zkv><6p{5W}DgB?4Om~uyY9N*1tVtG$Nuk9ql-uk2fhgpNBOD zz3njK=ZIln2aE?gV>;9obCGUXiuJ($WFMT!2*tVlC|s#X#O)?I?zSp%tu7T;YLfAM zdp2Gislcl8jRZIdZqT)~<7Kzf3P?Q9RpeQI1`TjmC*$D7Krk|(CNXWfh zq3~3p^l&AKaH7T|$pk|U5(No?3R`NB+C$0F)t>g#Hdi}=oCHF~nRaIz5!0Or5)3Ad zgd^3_0?8yJNp_}?+L|DdNU&o}5l_nuFH7hcM(RMaLL@m_3xtd~+6tr&Hi86OOT<`N z2r-GWFc)GHWMTq8BSX=Z<7H$7PXlAP5j+5v$C?OnAdzs?l=O z-tA+jZz80`(a2ojVrU9iT6Z-x7V!DSbMSq12$huR3MpYBaUhZ4$j_ll_0AuJnFNQm}^lu+b#evF0} zwcfVEgC@7)Lvo_Vmny+0@u$L<2{2F*Xt)DGMj8kvVF@G94eI zbRcoC*H_`73x&Ooh)gyeo5vF4MuOq2N9+11@H9b%p9LBs9MPW^hzV*rj^{_CGu0QB zp|-T&2-%KQ$x#cq$i)nKEL=85h^Ll#7|CFOp87Iik`m62Y>^TnBHDXkOLDRa$;M+j z;Vzz?+eAb?xOJybSfm$sMV38 zPrqAgQ6$p$E1~}oi%BBMNFs@UGLgz%MfAVPqW?r5{r*eoH(W+kk_^?*Z-eJxX{1(Q zD;36VR4}(wVch9zg>H8%^mcL{IFKdf{N2KaOXG<77@Gj?-`O zT)7n2nzQiMauTSHvG=w{o1Um^DX<1DZ?PHqhST!y5*lk48^U?FPMv=rsd(rFl-hiZse#ZHOg&Oi}b%#nF3|5K=V9C8H@mnIt5cWF!?W z$qKZkXVQO8iI(&%L33I*nv*l>znFohB&ArcOOTdN7)Nu-rZOoB~~MaIO($XLh;i-|i4hBIe1NID#~b>U3^eP?QnaCA~bBB6$- zniqEx);A&-6)YUz`dBwJ}Bl?w6{>pdhQ+DNmd3V}$c z7AMOHO9+$UWGKjVF-Ddv34)s{s^Rq_p5*T%+B+s25M?%7pGbN*n z2#jS!ioWcbBC0g0QfQ%yqB_JDm4Q~sb*7d!2~CNsISQzvQ`i`gr0qdCeGmNIaHfQ3 zT6NsWl-TXs0b8w|LPG3FOl-6?w_&$?m%u@5hk(Vzo_u?bLSa|l< zMB1K4d*9}knQ@M5Yx z?n*82NMVb2E4}evoi9m=Js#FN;!%?ezB3hz-<~K2UZ2L_T zV$4oSkcSxbTovkrx(Hv@yf!>xT4F3Zk|pR)OBD2_^8mhNj3|>ao}DK8)wz#-R30xF zk;RDgcOPHDl@NrkcxsKtQfri?qdS~h*&*H-4DrE8m@h^{eKF`q6`rRpVTHi}J4{pM zu$<_FwbWo7mPg@cWj5X)@4yfDPvJWYgSb_bkI7IERFPQMSZJfdWH*XQFbe6vQlPs- zkV~I!CJTz5mKdMISra)!vL`ptLb`z_Qs_UHY)B$bf+D2`fC?TYt0C^YlSZP?Gsou8 z`SVP5P-vl#5=�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≦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 uni.getStorageSync(key), + setItem: (key, value) => uni.setStorageSync(key, value), + removeItem: key => uni.clearStorageSync(key) + } +}) + +// 使用 vuex +Vue.use(Vuex) + +export default new Vuex.Store({ + plugins:[vuexPersisted], + modules:{ + login, + devList, + area, + auth, + search, + message, + loginUserInfo + } +}) \ No newline at end of file diff --git a/store/modules/area.js b/store/modules/area.js new file mode 100644 index 0000000..3f6dfaa --- /dev/null +++ b/store/modules/area.js @@ -0,0 +1,41 @@ +// 地区信息仓库 +export default { + state: { + area:{}, + }, + getters: { + // 获取国家id + getCountry(state){ + return state.area.countryid + }, + // 获取地区id + getAreaId(state){ + return state.area.areaid + } + }, + mutations: { + // 设置area信息 + 'SETAREA':function(state, payload){ + state.area = payload + }, + // 设置国家id + 'SETCOUNTRYID':function(state, payload){ + state.countryid = payload + }, + // 清除area信息 + 'CLEARAREA':function(state){ + state.area = {} + }, + }, + actions: { + setArea({ commit },payload){ + commit('SETAREA',payload) + }, + setCountryid({ commit },payload){ + commit('SETCOUNTRYID',payload) + }, + clearArea({ commit }){ + commit('CLEARAREA') + }, + } +} \ No newline at end of file diff --git a/store/modules/auth.js b/store/modules/auth.js new file mode 100644 index 0000000..a819598 --- /dev/null +++ b/store/modules/auth.js @@ -0,0 +1,71 @@ +// 权限信息仓库 +export default { + state: { + authList:[], + menuArr:[] //菜单 + }, + getters: { + // 检查菜单是否存在 + getAuth:(state) => { + return function (key) { + let arr = state.authList.filter(item => item.name == key) + return arr.length == 0 ? false : true + } + }, + // 返回菜单名 + getAuthName:(state) => { + return function (key) { + let arr = state.authList.filter(item => item.name == key) + return arr.length == 0 ? '' : arr[0].label + } + }, + // 返回用户是否拥有该按钮权限 + getOperation(state){ + return function(key){ + let curRoute = '/' + this.$mp.page.route; + let arr = state.authList.filter(item => (curRoute.indexOf(item.name) != -1 || item.name.indexOf(curRoute) != -1)) + let operation = arr[0] ? arr[0].operation : [] + return operation.indexOf(key) > -1 ? true : false + } + }, + // 获取菜单 + getMenu(state){ + return function(key){ + let arr = state.menuArr.filter(item => item.url == key) + return arr.length ? arr[0].children : [] + } + } + }, + mutations: { + // 设置权限信息 + 'SETAUTH':function(state, payload){ + state.authList = payload + }, + // 清除权限信息 + 'CLEARAUTH':function(state){ + state.authList = [] + }, + // 设置菜单信息 + 'SETMENU':function(state, payload){ + state.menuArr = payload + }, + // 清除菜单信息 + 'CLEARMENU':function(state){ + state.menuArr = [] + }, + }, + actions: { + setAuth({ commit },payload){ + commit('SETAUTH',payload) + }, + clearAuth({ commit }){ + commit('CLEARAUTH') + }, + setMenu({ commit },payload){ + commit('SETMENU',payload) + }, + clearMenu({ commit }){ + commit('CLEARMENU') + } + } +} \ No newline at end of file diff --git a/store/modules/devList.js b/store/modules/devList.js new file mode 100644 index 0000000..9a30b5c --- /dev/null +++ b/store/modules/devList.js @@ -0,0 +1,31 @@ +// 设备信息仓库 +export default { + state: { + devList:[] + }, + mutations: { + // 添加多个设备 + 'SETLISTALL':function(state, payload){ + state.devList = [...payload] + }, + // 添加单个设备 + 'SETLIST':function(state, payload){ + state.devList.push(payload) + }, + // 删除单个 + 'DELLIST':function(state, payload){ + state.devList.splice(payload,1) + } + }, + actions: { + setListAll({ commit },payload){ + commit('SETLISTALL',payload) + }, + setList({ commit },payload){ + commit('SETLIST',payload) + }, + delList({ commit },payload){ + commit('DELLIST',payload) + } + } +} \ No newline at end of file diff --git a/store/modules/login.js b/store/modules/login.js new file mode 100644 index 0000000..a1ea7cb --- /dev/null +++ b/store/modules/login.js @@ -0,0 +1,40 @@ +// 登录信息仓库 +export default { + state: { + token:'', + userInfo:{ + userName:'测试', + } + }, + getters: { + // 是否存在token + isLogin(state){ + return !!state.token + } + }, + mutations: { + // 设置token信息 + 'SETTOKEN':function(state, payload){ + state.token = payload + }, + // 清除token信息 + 'CLEARTOKEN':function(state){ + state.token = null + }, + // 设置userinfoi信息 + 'SETUSERINFO':function(state,payload){ + state.userInfo = { ...payload } + } + }, + actions: { + setToken({ commit },payload){ + commit('SETTOKEN',payload) + }, + clearToken({ commit }){ + commit('CLEARTOKEN') + }, + setUserInfo({ commit },payload){ + commit('SETUSERINFO',payload) + } + } +} \ No newline at end of file diff --git a/store/modules/message.js b/store/modules/message.js new file mode 100644 index 0000000..e3daaea --- /dev/null +++ b/store/modules/message.js @@ -0,0 +1,40 @@ +// 地区信息仓库 +export default { + state: { + message:{ + allcount:0, + notecount:0, + taskcount:0, + warncount:0 + }, + }, + getters: { + // 获取消息数量 + getCount(state){ + return state.message + }, + }, + mutations: { + // 设置message数量 + 'SETMESSAGE':function(state, payload){ + state.message = { ...state.message,...payload } + }, + // 清除message数量 + 'CLEARMESSAGE':function(state){ + state.message = { + allcount:0, + notecount:0, + taskcount:0, + warncount:0 + } + }, + }, + actions: { + setMessage({ commit },payload){ + commit('SETMESSAGE',payload) + }, + clearMessage({ commit }){ + commit('CLEARMESSAGE') + }, + } +} \ No newline at end of file diff --git a/store/modules/search.js b/store/modules/search.js new file mode 100644 index 0000000..4a265f7 --- /dev/null +++ b/store/modules/search.js @@ -0,0 +1,34 @@ +// 搜索条件 +export default { + state: { + searchObj:{} + }, + getters: { + }, + mutations: { + // 设置搜索信息 + 'SETSEARCH':function(state, payload){ + state.searchObj = payload + }, + // 清除搜索信息 + 'CLEARSEARCH':function(state){ + state.searchObj = {} + }, + }, + actions: { + setSearch({ commit },payload){ + // 过滤存储条件,只存,城市,线路,车辆,车厢,车门,时间 + let obj = JSON.parse(JSON.stringify(payload)) + let searchKey = ['areaid','lineid','metroid','carriageid','doorno','doorid','starttime','endtime'] + for(let key in obj){ + if(searchKey.indexOf(key) == -1){ + delete obj[key] + } + } + commit('SETSEARCH',obj) + }, + clearSearch({ commit }){ + commit('CLEARSEARCH') + }, + } +} \ No newline at end of file diff --git a/store/modules/userInfoApp.js b/store/modules/userInfoApp.js new file mode 100644 index 0000000..b7bcc28 --- /dev/null +++ b/store/modules/userInfoApp.js @@ -0,0 +1,30 @@ +// 登陆过的用户信息 +export default { + state: { + userInfoApp:[], + }, + getters: { + // 获取消息数量 + getUserInfoApp(state){ + return state.userInfoApp + }, + }, + mutations: { + // 设置用户信息 + 'SETUSERINFOAPP':function(state, payload){ + state.userInfoApp = payload + }, + // 清除用户登录信息 + 'CLEARUSERINFOAPP':function(state){ + state.userInfoApp = [] + }, + }, + actions: { + setUserInfoApp({ commit },payload){ + commit('SETUSERINFOAPP',payload) + }, + clearUserInfoApp({ commit }){ + commit('CLEARUSERINFOAPP') + }, + } +} \ No newline at end of file diff --git a/uni.promisify.adaptor.js b/uni.promisify.adaptor.js new file mode 100644 index 0000000..47fbce1 --- /dev/null +++ b/uni.promisify.adaptor.js @@ -0,0 +1,10 @@ +uni.addInterceptor({ + returnValue (res) { + if (!(!!res && (typeof res === "object" || typeof res === "function") && typeof res.then === "function")) { + return res; + } + return new Promise((resolve, reject) => { + res.then((res) => res[0] ? reject(res[0]) : resolve(res[1])); + }); + }, +}); \ No newline at end of file diff --git a/uni.scss b/uni.scss new file mode 100644 index 0000000..a05adb4 --- /dev/null +++ b/uni.scss @@ -0,0 +1,76 @@ +/** + * 这里是uni-app内置的常用样式变量 + * + * uni-app 官方扩展插件及插件市场(https://ext.dcloud.net.cn)上很多三方插件均使用了这些样式变量 + * 如果你是插件开发者,建议你使用scss预处理,并在插件代码中直接使用这些变量(无需 import 这个文件),方便用户通过搭积木的方式开发整体风格一致的App + * + */ + +/** + * 如果你是App开发者(插件使用者),你可以通过修改这些变量来定制自己的插件主题,实现自定义主题功能 + * + * 如果你的项目同样使用了scss预处理,你也可以直接在你的 scss 代码中使用如下变量,同时无需 import 这个文件 + */ + +/* 颜色变量 */ + +/* 行为相关颜色 */ +$uni-color-primary: #007aff; +$uni-color-success: #4cd964; +$uni-color-warning: #f0ad4e; +$uni-color-error: #dd524d; + +/* 文字基本颜色 */ +$uni-text-color:#333;//基本色 +$uni-text-color-inverse:#fff;//反色 +$uni-text-color-grey:#999;//辅助灰色,如加载更多的提示信息 +$uni-text-color-placeholder: #808080; +$uni-text-color-disable:#c0c0c0; + +/* 背景颜色 */ +$uni-bg-color:#ffffff; +$uni-bg-color-grey:#f8f8f8; +$uni-bg-color-hover:#f1f1f1;//点击状态颜色 +$uni-bg-color-mask:rgba(0, 0, 0, 0.4);//遮罩颜色 + +/* 边框颜色 */ +$uni-border-color:#c8c7cc; + +/* 尺寸变量 */ + +/* 文字尺寸 */ +$uni-font-size-sm:12px; +$uni-font-size-base:14px; +$uni-font-size-lg:16; + +/* 图片尺寸 */ +$uni-img-size-sm:20px; +$uni-img-size-base:26px; +$uni-img-size-lg:40px; + +/* Border Radius */ +$uni-border-radius-sm: 2px; +$uni-border-radius-base: 3px; +$uni-border-radius-lg: 6px; +$uni-border-radius-circle: 50%; + +/* 水平间距 */ +$uni-spacing-row-sm: 5px; +$uni-spacing-row-base: 10px; +$uni-spacing-row-lg: 15px; + +/* 垂直间距 */ +$uni-spacing-col-sm: 4px; +$uni-spacing-col-base: 8px; +$uni-spacing-col-lg: 12px; + +/* 透明度 */ +$uni-opacity-disabled: 0.3; // 组件禁用态的透明度 + +/* 文章场景相关 */ +$uni-color-title: #2C405A; // 文章标题颜色 +$uni-font-size-title:20px; +$uni-color-subtitle: #555555; // 二级标题颜色 +$uni-font-size-subtitle:26px; +$uni-color-paragraph: #3F536E; // 文章段落颜色 +$uni-font-size-paragraph:15px; diff --git a/uni_modules/uni-icons/changelog.md b/uni_modules/uni-icons/changelog.md new file mode 100644 index 0000000..6449885 --- /dev/null +++ b/uni_modules/uni-icons/changelog.md @@ -0,0 +1,22 @@ +## 1.3.5(2022-01-24) +- 优化 size 属性可以传入不带单位的字符串数值 +## 1.3.4(2022-01-24) +- 优化 size 支持其他单位 +## 1.3.3(2022-01-17) +- 修复 nvue 有些图标不显示的bug,兼容老版本图标 +## 1.3.2(2021-12-01) +- 优化 示例可复制图标名称 +## 1.3.1(2021-11-23) +- 优化 兼容旧组件 type 值 +## 1.3.0(2021-11-19) +- 新增 更多图标 +- 优化 自定义图标使用方式 +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-icons](https://uniapp.dcloud.io/component/uniui/uni-icons) +## 1.1.7(2021-11-08) +## 1.2.0(2021-07-30) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.1.5(2021-05-12) +- 新增 组件示例地址 +## 1.1.4(2021-02-05) +- 调整为uni_modules目录规范 diff --git a/uni_modules/uni-icons/components/uni-icons/icons.js b/uni_modules/uni-icons/components/uni-icons/icons.js new file mode 100644 index 0000000..7889936 --- /dev/null +++ b/uni_modules/uni-icons/components/uni-icons/icons.js @@ -0,0 +1,1169 @@ +export default { + "id": "2852637", + "name": "uniui图标库", + "font_family": "uniicons", + "css_prefix_text": "uniui-", + "description": "", + "glyphs": [ + { + "icon_id": "25027049", + "name": "yanse", + "font_class": "color", + "unicode": "e6cf", + "unicode_decimal": 59087 + }, + { + "icon_id": "25027048", + "name": "wallet", + "font_class": "wallet", + "unicode": "e6b1", + "unicode_decimal": 59057 + }, + { + "icon_id": "25015720", + "name": "settings-filled", + "font_class": "settings-filled", + "unicode": "e6ce", + "unicode_decimal": 59086 + }, + { + "icon_id": "25015434", + "name": "shimingrenzheng-filled", + "font_class": "auth-filled", + "unicode": "e6cc", + "unicode_decimal": 59084 + }, + { + "icon_id": "24934246", + "name": "shop-filled", + "font_class": "shop-filled", + "unicode": "e6cd", + "unicode_decimal": 59085 + }, + { + "icon_id": "24934159", + "name": "staff-filled-01", + "font_class": "staff-filled", + "unicode": "e6cb", + "unicode_decimal": 59083 + }, + { + "icon_id": "24932461", + "name": "VIP-filled", + "font_class": "vip-filled", + "unicode": "e6c6", + "unicode_decimal": 59078 + }, + { + "icon_id": "24932462", + "name": "plus_circle_fill", + "font_class": "plus-filled", + "unicode": "e6c7", + "unicode_decimal": 59079 + }, + { + "icon_id": "24932463", + "name": "folder_add-filled", + "font_class": "folder-add-filled", + "unicode": "e6c8", + "unicode_decimal": 59080 + }, + { + "icon_id": "24932464", + "name": "yanse-filled", + "font_class": "color-filled", + "unicode": "e6c9", + "unicode_decimal": 59081 + }, + { + "icon_id": "24932465", + "name": "tune-filled", + "font_class": "tune-filled", + "unicode": "e6ca", + "unicode_decimal": 59082 + }, + { + "icon_id": "24932455", + "name": "a-rilidaka-filled", + "font_class": "calendar-filled", + "unicode": "e6c0", + "unicode_decimal": 59072 + }, + { + "icon_id": "24932456", + "name": "notification-filled", + "font_class": "notification-filled", + "unicode": "e6c1", + "unicode_decimal": 59073 + }, + { + "icon_id": "24932457", + "name": "wallet-filled", + "font_class": "wallet-filled", + "unicode": "e6c2", + "unicode_decimal": 59074 + }, + { + "icon_id": "24932458", + "name": "paihangbang-filled", + "font_class": "medal-filled", + "unicode": "e6c3", + "unicode_decimal": 59075 + }, + { + "icon_id": "24932459", + "name": "gift-filled", + "font_class": "gift-filled", + "unicode": "e6c4", + "unicode_decimal": 59076 + }, + { + "icon_id": "24932460", + "name": "fire-filled", + "font_class": "fire-filled", + "unicode": "e6c5", + "unicode_decimal": 59077 + }, + { + "icon_id": "24928001", + "name": "refreshempty", + "font_class": "refreshempty", + "unicode": "e6bf", + "unicode_decimal": 59071 + }, + { + "icon_id": "24926853", + "name": "location-ellipse", + "font_class": "location-filled", + "unicode": "e6af", + "unicode_decimal": 59055 + }, + { + "icon_id": "24926735", + "name": "person-filled", + "font_class": "person-filled", + "unicode": "e69d", + "unicode_decimal": 59037 + }, + { + "icon_id": "24926703", + "name": "personadd-filled", + "font_class": "personadd-filled", + "unicode": "e698", + "unicode_decimal": 59032 + }, + { + "icon_id": "24923351", + "name": "back", + "font_class": "back", + "unicode": "e6b9", + "unicode_decimal": 59065 + }, + { + "icon_id": "24923352", + "name": "forward", + "font_class": "forward", + "unicode": "e6ba", + "unicode_decimal": 59066 + }, + { + "icon_id": "24923353", + "name": "arrowthinright", + "font_class": "arrow-right", + "unicode": "e6bb", + "unicode_decimal": 59067 + }, + { + "icon_id": "24923353", + "name": "arrowthinright", + "font_class": "arrowthinright", + "unicode": "e6bb", + "unicode_decimal": 59067 + }, + { + "icon_id": "24923354", + "name": "arrowthinleft", + "font_class": "arrow-left", + "unicode": "e6bc", + "unicode_decimal": 59068 + }, + { + "icon_id": "24923354", + "name": "arrowthinleft", + "font_class": "arrowthinleft", + "unicode": "e6bc", + "unicode_decimal": 59068 + }, + { + "icon_id": "24923355", + "name": "arrowthinup", + "font_class": "arrow-up", + "unicode": "e6bd", + "unicode_decimal": 59069 + }, + { + "icon_id": "24923355", + "name": "arrowthinup", + "font_class": "arrowthinup", + "unicode": "e6bd", + "unicode_decimal": 59069 + }, + { + "icon_id": "24923356", + "name": "arrowthindown", + "font_class": "arrow-down", + "unicode": "e6be", + "unicode_decimal": 59070 + },{ + "icon_id": "24923356", + "name": "arrowthindown", + "font_class": "arrowthindown", + "unicode": "e6be", + "unicode_decimal": 59070 + }, + { + "icon_id": "24923349", + "name": "arrowdown", + "font_class": "bottom", + "unicode": "e6b8", + "unicode_decimal": 59064 + },{ + "icon_id": "24923349", + "name": "arrowdown", + "font_class": "arrowdown", + "unicode": "e6b8", + "unicode_decimal": 59064 + }, + { + "icon_id": "24923346", + "name": "arrowright", + "font_class": "right", + "unicode": "e6b5", + "unicode_decimal": 59061 + }, + { + "icon_id": "24923346", + "name": "arrowright", + "font_class": "arrowright", + "unicode": "e6b5", + "unicode_decimal": 59061 + }, + { + "icon_id": "24923347", + "name": "arrowup", + "font_class": "top", + "unicode": "e6b6", + "unicode_decimal": 59062 + }, + { + "icon_id": "24923347", + "name": "arrowup", + "font_class": "arrowup", + "unicode": "e6b6", + "unicode_decimal": 59062 + }, + { + "icon_id": "24923348", + "name": "arrowleft", + "font_class": "left", + "unicode": "e6b7", + "unicode_decimal": 59063 + }, + { + "icon_id": "24923348", + "name": "arrowleft", + "font_class": "arrowleft", + "unicode": "e6b7", + "unicode_decimal": 59063 + }, + { + "icon_id": "24923334", + "name": "eye", + "font_class": "eye", + "unicode": "e651", + "unicode_decimal": 58961 + }, + { + "icon_id": "24923335", + "name": "eye-filled", + "font_class": "eye-filled", + "unicode": "e66a", + "unicode_decimal": 58986 + }, + { + "icon_id": "24923336", + "name": "eye-slash", + "font_class": "eye-slash", + "unicode": "e6b3", + "unicode_decimal": 59059 + }, + { + "icon_id": "24923337", + "name": "eye-slash-filled", + "font_class": "eye-slash-filled", + "unicode": "e6b4", + "unicode_decimal": 59060 + }, + { + "icon_id": "24923305", + "name": "info-filled", + "font_class": "info-filled", + "unicode": "e649", + "unicode_decimal": 58953 + }, + { + "icon_id": "24923299", + "name": "reload-01", + "font_class": "reload", + "unicode": "e6b2", + "unicode_decimal": 59058 + }, + { + "icon_id": "24923195", + "name": "mic_slash_fill", + "font_class": "micoff-filled", + "unicode": "e6b0", + "unicode_decimal": 59056 + }, + { + "icon_id": "24923165", + "name": "map-pin-ellipse", + "font_class": "map-pin-ellipse", + "unicode": "e6ac", + "unicode_decimal": 59052 + }, + { + "icon_id": "24923166", + "name": "map-pin", + "font_class": "map-pin", + "unicode": "e6ad", + "unicode_decimal": 59053 + }, + { + "icon_id": "24923167", + "name": "location", + "font_class": "location", + "unicode": "e6ae", + "unicode_decimal": 59054 + }, + { + "icon_id": "24923064", + "name": "starhalf", + "font_class": "starhalf", + "unicode": "e683", + "unicode_decimal": 59011 + }, + { + "icon_id": "24923065", + "name": "star", + "font_class": "star", + "unicode": "e688", + "unicode_decimal": 59016 + }, + { + "icon_id": "24923066", + "name": "star-filled", + "font_class": "star-filled", + "unicode": "e68f", + "unicode_decimal": 59023 + }, + { + "icon_id": "24899646", + "name": "a-rilidaka", + "font_class": "calendar", + "unicode": "e6a0", + "unicode_decimal": 59040 + }, + { + "icon_id": "24899647", + "name": "fire", + "font_class": "fire", + "unicode": "e6a1", + "unicode_decimal": 59041 + }, + { + "icon_id": "24899648", + "name": "paihangbang", + "font_class": "medal", + "unicode": "e6a2", + "unicode_decimal": 59042 + }, + { + "icon_id": "24899649", + "name": "font", + "font_class": "font", + "unicode": "e6a3", + "unicode_decimal": 59043 + }, + { + "icon_id": "24899650", + "name": "gift", + "font_class": "gift", + "unicode": "e6a4", + "unicode_decimal": 59044 + }, + { + "icon_id": "24899651", + "name": "link", + "font_class": "link", + "unicode": "e6a5", + "unicode_decimal": 59045 + }, + { + "icon_id": "24899652", + "name": "notification", + "font_class": "notification", + "unicode": "e6a6", + "unicode_decimal": 59046 + }, + { + "icon_id": "24899653", + "name": "staff", + "font_class": "staff", + "unicode": "e6a7", + "unicode_decimal": 59047 + }, + { + "icon_id": "24899654", + "name": "VIP", + "font_class": "vip", + "unicode": "e6a8", + "unicode_decimal": 59048 + }, + { + "icon_id": "24899655", + "name": "folder_add", + "font_class": "folder-add", + "unicode": "e6a9", + "unicode_decimal": 59049 + }, + { + "icon_id": "24899656", + "name": "tune", + "font_class": "tune", + "unicode": "e6aa", + "unicode_decimal": 59050 + }, + { + "icon_id": "24899657", + "name": "shimingrenzheng", + "font_class": "auth", + "unicode": "e6ab", + "unicode_decimal": 59051 + }, + { + "icon_id": "24899565", + "name": "person", + "font_class": "person", + "unicode": "e699", + "unicode_decimal": 59033 + }, + { + "icon_id": "24899566", + "name": "email-filled", + "font_class": "email-filled", + "unicode": "e69a", + "unicode_decimal": 59034 + }, + { + "icon_id": "24899567", + "name": "phone-filled", + "font_class": "phone-filled", + "unicode": "e69b", + "unicode_decimal": 59035 + }, + { + "icon_id": "24899568", + "name": "phone", + "font_class": "phone", + "unicode": "e69c", + "unicode_decimal": 59036 + }, + { + "icon_id": "24899570", + "name": "email", + "font_class": "email", + "unicode": "e69e", + "unicode_decimal": 59038 + }, + { + "icon_id": "24899571", + "name": "personadd", + "font_class": "personadd", + "unicode": "e69f", + "unicode_decimal": 59039 + }, + { + "icon_id": "24899558", + "name": "chatboxes-filled", + "font_class": "chatboxes-filled", + "unicode": "e692", + "unicode_decimal": 59026 + }, + { + "icon_id": "24899559", + "name": "contact", + "font_class": "contact", + "unicode": "e693", + "unicode_decimal": 59027 + }, + { + "icon_id": "24899560", + "name": "chatbubble-filled", + "font_class": "chatbubble-filled", + "unicode": "e694", + "unicode_decimal": 59028 + }, + { + "icon_id": "24899561", + "name": "contact-filled", + "font_class": "contact-filled", + "unicode": "e695", + "unicode_decimal": 59029 + }, + { + "icon_id": "24899562", + "name": "chatboxes", + "font_class": "chatboxes", + "unicode": "e696", + "unicode_decimal": 59030 + }, + { + "icon_id": "24899563", + "name": "chatbubble", + "font_class": "chatbubble", + "unicode": "e697", + "unicode_decimal": 59031 + }, + { + "icon_id": "24881290", + "name": "upload-filled", + "font_class": "upload-filled", + "unicode": "e68e", + "unicode_decimal": 59022 + }, + { + "icon_id": "24881292", + "name": "upload", + "font_class": "upload", + "unicode": "e690", + "unicode_decimal": 59024 + }, + { + "icon_id": "24881293", + "name": "weixin", + "font_class": "weixin", + "unicode": "e691", + "unicode_decimal": 59025 + }, + { + "icon_id": "24881274", + "name": "compose", + "font_class": "compose", + "unicode": "e67f", + "unicode_decimal": 59007 + }, + { + "icon_id": "24881275", + "name": "qq", + "font_class": "qq", + "unicode": "e680", + "unicode_decimal": 59008 + }, + { + "icon_id": "24881276", + "name": "download-filled", + "font_class": "download-filled", + "unicode": "e681", + "unicode_decimal": 59009 + }, + { + "icon_id": "24881277", + "name": "pengyouquan", + "font_class": "pyq", + "unicode": "e682", + "unicode_decimal": 59010 + }, + { + "icon_id": "24881279", + "name": "sound", + "font_class": "sound", + "unicode": "e684", + "unicode_decimal": 59012 + }, + { + "icon_id": "24881280", + "name": "trash-filled", + "font_class": "trash-filled", + "unicode": "e685", + "unicode_decimal": 59013 + }, + { + "icon_id": "24881281", + "name": "sound-filled", + "font_class": "sound-filled", + "unicode": "e686", + "unicode_decimal": 59014 + }, + { + "icon_id": "24881282", + "name": "trash", + "font_class": "trash", + "unicode": "e687", + "unicode_decimal": 59015 + }, + { + "icon_id": "24881284", + "name": "videocam-filled", + "font_class": "videocam-filled", + "unicode": "e689", + "unicode_decimal": 59017 + }, + { + "icon_id": "24881285", + "name": "spinner-cycle", + "font_class": "spinner-cycle", + "unicode": "e68a", + "unicode_decimal": 59018 + }, + { + "icon_id": "24881286", + "name": "weibo", + "font_class": "weibo", + "unicode": "e68b", + "unicode_decimal": 59019 + }, + { + "icon_id": "24881288", + "name": "videocam", + "font_class": "videocam", + "unicode": "e68c", + "unicode_decimal": 59020 + }, + { + "icon_id": "24881289", + "name": "download", + "font_class": "download", + "unicode": "e68d", + "unicode_decimal": 59021 + }, + { + "icon_id": "24879601", + "name": "help", + "font_class": "help", + "unicode": "e679", + "unicode_decimal": 59001 + }, + { + "icon_id": "24879602", + "name": "navigate-filled", + "font_class": "navigate-filled", + "unicode": "e67a", + "unicode_decimal": 59002 + }, + { + "icon_id": "24879603", + "name": "plusempty", + "font_class": "plusempty", + "unicode": "e67b", + "unicode_decimal": 59003 + }, + { + "icon_id": "24879604", + "name": "smallcircle", + "font_class": "smallcircle", + "unicode": "e67c", + "unicode_decimal": 59004 + }, + { + "icon_id": "24879605", + "name": "minus-filled", + "font_class": "minus-filled", + "unicode": "e67d", + "unicode_decimal": 59005 + }, + { + "icon_id": "24879606", + "name": "micoff", + "font_class": "micoff", + "unicode": "e67e", + "unicode_decimal": 59006 + }, + { + "icon_id": "24879588", + "name": "closeempty", + "font_class": "closeempty", + "unicode": "e66c", + "unicode_decimal": 58988 + }, + { + "icon_id": "24879589", + "name": "clear", + "font_class": "clear", + "unicode": "e66d", + "unicode_decimal": 58989 + }, + { + "icon_id": "24879590", + "name": "navigate", + "font_class": "navigate", + "unicode": "e66e", + "unicode_decimal": 58990 + }, + { + "icon_id": "24879591", + "name": "minus", + "font_class": "minus", + "unicode": "e66f", + "unicode_decimal": 58991 + }, + { + "icon_id": "24879592", + "name": "image", + "font_class": "image", + "unicode": "e670", + "unicode_decimal": 58992 + }, + { + "icon_id": "24879593", + "name": "mic", + "font_class": "mic", + "unicode": "e671", + "unicode_decimal": 58993 + }, + { + "icon_id": "24879594", + "name": "paperplane", + "font_class": "paperplane", + "unicode": "e672", + "unicode_decimal": 58994 + }, + { + "icon_id": "24879595", + "name": "close", + "font_class": "close", + "unicode": "e673", + "unicode_decimal": 58995 + }, + { + "icon_id": "24879596", + "name": "help-filled", + "font_class": "help-filled", + "unicode": "e674", + "unicode_decimal": 58996 + }, + { + "icon_id": "24879597", + "name": "plus-filled", + "font_class": "paperplane-filled", + "unicode": "e675", + "unicode_decimal": 58997 + }, + { + "icon_id": "24879598", + "name": "plus", + "font_class": "plus", + "unicode": "e676", + "unicode_decimal": 58998 + }, + { + "icon_id": "24879599", + "name": "mic-filled", + "font_class": "mic-filled", + "unicode": "e677", + "unicode_decimal": 58999 + }, + { + "icon_id": "24879600", + "name": "image-filled", + "font_class": "image-filled", + "unicode": "e678", + "unicode_decimal": 59000 + }, + { + "icon_id": "24855900", + "name": "locked-filled", + "font_class": "locked-filled", + "unicode": "e668", + "unicode_decimal": 58984 + }, + { + "icon_id": "24855901", + "name": "info", + "font_class": "info", + "unicode": "e669", + "unicode_decimal": 58985 + }, + { + "icon_id": "24855903", + "name": "locked", + "font_class": "locked", + "unicode": "e66b", + "unicode_decimal": 58987 + }, + { + "icon_id": "24855884", + "name": "camera-filled", + "font_class": "camera-filled", + "unicode": "e658", + "unicode_decimal": 58968 + }, + { + "icon_id": "24855885", + "name": "chat-filled", + "font_class": "chat-filled", + "unicode": "e659", + "unicode_decimal": 58969 + }, + { + "icon_id": "24855886", + "name": "camera", + "font_class": "camera", + "unicode": "e65a", + "unicode_decimal": 58970 + }, + { + "icon_id": "24855887", + "name": "circle", + "font_class": "circle", + "unicode": "e65b", + "unicode_decimal": 58971 + }, + { + "icon_id": "24855888", + "name": "checkmarkempty", + "font_class": "checkmarkempty", + "unicode": "e65c", + "unicode_decimal": 58972 + }, + { + "icon_id": "24855889", + "name": "chat", + "font_class": "chat", + "unicode": "e65d", + "unicode_decimal": 58973 + }, + { + "icon_id": "24855890", + "name": "circle-filled", + "font_class": "circle-filled", + "unicode": "e65e", + "unicode_decimal": 58974 + }, + { + "icon_id": "24855891", + "name": "flag", + "font_class": "flag", + "unicode": "e65f", + "unicode_decimal": 58975 + }, + { + "icon_id": "24855892", + "name": "flag-filled", + "font_class": "flag-filled", + "unicode": "e660", + "unicode_decimal": 58976 + }, + { + "icon_id": "24855893", + "name": "gear-filled", + "font_class": "gear-filled", + "unicode": "e661", + "unicode_decimal": 58977 + }, + { + "icon_id": "24855894", + "name": "home", + "font_class": "home", + "unicode": "e662", + "unicode_decimal": 58978 + }, + { + "icon_id": "24855895", + "name": "home-filled", + "font_class": "home-filled", + "unicode": "e663", + "unicode_decimal": 58979 + }, + { + "icon_id": "24855896", + "name": "gear", + "font_class": "gear", + "unicode": "e664", + "unicode_decimal": 58980 + }, + { + "icon_id": "24855897", + "name": "smallcircle-filled", + "font_class": "smallcircle-filled", + "unicode": "e665", + "unicode_decimal": 58981 + }, + { + "icon_id": "24855898", + "name": "map-filled", + "font_class": "map-filled", + "unicode": "e666", + "unicode_decimal": 58982 + }, + { + "icon_id": "24855899", + "name": "map", + "font_class": "map", + "unicode": "e667", + "unicode_decimal": 58983 + }, + { + "icon_id": "24855825", + "name": "refresh-filled", + "font_class": "refresh-filled", + "unicode": "e656", + "unicode_decimal": 58966 + }, + { + "icon_id": "24855826", + "name": "refresh", + "font_class": "refresh", + "unicode": "e657", + "unicode_decimal": 58967 + }, + { + "icon_id": "24855808", + "name": "cloud-upload", + "font_class": "cloud-upload", + "unicode": "e645", + "unicode_decimal": 58949 + }, + { + "icon_id": "24855809", + "name": "cloud-download-filled", + "font_class": "cloud-download-filled", + "unicode": "e646", + "unicode_decimal": 58950 + }, + { + "icon_id": "24855810", + "name": "cloud-download", + "font_class": "cloud-download", + "unicode": "e647", + "unicode_decimal": 58951 + }, + { + "icon_id": "24855811", + "name": "cloud-upload-filled", + "font_class": "cloud-upload-filled", + "unicode": "e648", + "unicode_decimal": 58952 + }, + { + "icon_id": "24855813", + "name": "redo", + "font_class": "redo", + "unicode": "e64a", + "unicode_decimal": 58954 + }, + { + "icon_id": "24855814", + "name": "images-filled", + "font_class": "images-filled", + "unicode": "e64b", + "unicode_decimal": 58955 + }, + { + "icon_id": "24855815", + "name": "undo-filled", + "font_class": "undo-filled", + "unicode": "e64c", + "unicode_decimal": 58956 + }, + { + "icon_id": "24855816", + "name": "more", + "font_class": "more", + "unicode": "e64d", + "unicode_decimal": 58957 + }, + { + "icon_id": "24855817", + "name": "more-filled", + "font_class": "more-filled", + "unicode": "e64e", + "unicode_decimal": 58958 + }, + { + "icon_id": "24855818", + "name": "undo", + "font_class": "undo", + "unicode": "e64f", + "unicode_decimal": 58959 + }, + { + "icon_id": "24855819", + "name": "images", + "font_class": "images", + "unicode": "e650", + "unicode_decimal": 58960 + }, + { + "icon_id": "24855821", + "name": "paperclip", + "font_class": "paperclip", + "unicode": "e652", + "unicode_decimal": 58962 + }, + { + "icon_id": "24855822", + "name": "settings", + "font_class": "settings", + "unicode": "e653", + "unicode_decimal": 58963 + }, + { + "icon_id": "24855823", + "name": "search", + "font_class": "search", + "unicode": "e654", + "unicode_decimal": 58964 + }, + { + "icon_id": "24855824", + "name": "redo-filled", + "font_class": "redo-filled", + "unicode": "e655", + "unicode_decimal": 58965 + }, + { + "icon_id": "24841702", + "name": "list", + "font_class": "list", + "unicode": "e644", + "unicode_decimal": 58948 + }, + { + "icon_id": "24841489", + "name": "mail-open-filled", + "font_class": "mail-open-filled", + "unicode": "e63a", + "unicode_decimal": 58938 + }, + { + "icon_id": "24841491", + "name": "hand-thumbsdown-filled", + "font_class": "hand-down-filled", + "unicode": "e63c", + "unicode_decimal": 58940 + }, + { + "icon_id": "24841492", + "name": "hand-thumbsdown", + "font_class": "hand-down", + "unicode": "e63d", + "unicode_decimal": 58941 + }, + { + "icon_id": "24841493", + "name": "hand-thumbsup-filled", + "font_class": "hand-up-filled", + "unicode": "e63e", + "unicode_decimal": 58942 + }, + { + "icon_id": "24841494", + "name": "hand-thumbsup", + "font_class": "hand-up", + "unicode": "e63f", + "unicode_decimal": 58943 + }, + { + "icon_id": "24841496", + "name": "heart-filled", + "font_class": "heart-filled", + "unicode": "e641", + "unicode_decimal": 58945 + }, + { + "icon_id": "24841498", + "name": "mail-open", + "font_class": "mail-open", + "unicode": "e643", + "unicode_decimal": 58947 + }, + { + "icon_id": "24841488", + "name": "heart", + "font_class": "heart", + "unicode": "e639", + "unicode_decimal": 58937 + }, + { + "icon_id": "24839963", + "name": "loop", + "font_class": "loop", + "unicode": "e633", + "unicode_decimal": 58931 + }, + { + "icon_id": "24839866", + "name": "pulldown", + "font_class": "pulldown", + "unicode": "e632", + "unicode_decimal": 58930 + }, + { + "icon_id": "24813798", + "name": "scan", + "font_class": "scan", + "unicode": "e62a", + "unicode_decimal": 58922 + }, + { + "icon_id": "24813786", + "name": "bars", + "font_class": "bars", + "unicode": "e627", + "unicode_decimal": 58919 + }, + { + "icon_id": "24813788", + "name": "cart-filled", + "font_class": "cart-filled", + "unicode": "e629", + "unicode_decimal": 58921 + }, + { + "icon_id": "24813790", + "name": "checkbox", + "font_class": "checkbox", + "unicode": "e62b", + "unicode_decimal": 58923 + }, + { + "icon_id": "24813791", + "name": "checkbox-filled", + "font_class": "checkbox-filled", + "unicode": "e62c", + "unicode_decimal": 58924 + }, + { + "icon_id": "24813794", + "name": "shop", + "font_class": "shop", + "unicode": "e62f", + "unicode_decimal": 58927 + }, + { + "icon_id": "24813795", + "name": "headphones", + "font_class": "headphones", + "unicode": "e630", + "unicode_decimal": 58928 + }, + { + "icon_id": "24813796", + "name": "cart", + "font_class": "cart", + "unicode": "e631", + "unicode_decimal": 58929 + } + ] +} diff --git a/uni_modules/uni-icons/components/uni-icons/uni-icons.vue b/uni_modules/uni-icons/components/uni-icons/uni-icons.vue new file mode 100644 index 0000000..86e7444 --- /dev/null +++ b/uni_modules/uni-icons/components/uni-icons/uni-icons.vue @@ -0,0 +1,96 @@ + + + + + diff --git a/uni_modules/uni-icons/components/uni-icons/uniicons.css b/uni_modules/uni-icons/components/uni-icons/uniicons.css new file mode 100644 index 0000000..2f56eab --- /dev/null +++ b/uni_modules/uni-icons/components/uni-icons/uniicons.css @@ -0,0 +1,663 @@ +.uniui-color:before { + content: "\e6cf"; +} + +.uniui-wallet:before { + content: "\e6b1"; +} + +.uniui-settings-filled:before { + content: "\e6ce"; +} + +.uniui-auth-filled:before { + content: "\e6cc"; +} + +.uniui-shop-filled:before { + content: "\e6cd"; +} + +.uniui-staff-filled:before { + content: "\e6cb"; +} + +.uniui-vip-filled:before { + content: "\e6c6"; +} + +.uniui-plus-filled:before { + content: "\e6c7"; +} + +.uniui-folder-add-filled:before { + content: "\e6c8"; +} + +.uniui-color-filled:before { + content: "\e6c9"; +} + +.uniui-tune-filled:before { + content: "\e6ca"; +} + +.uniui-calendar-filled:before { + content: "\e6c0"; +} + +.uniui-notification-filled:before { + content: "\e6c1"; +} + +.uniui-wallet-filled:before { + content: "\e6c2"; +} + +.uniui-medal-filled:before { + content: "\e6c3"; +} + +.uniui-gift-filled:before { + content: "\e6c4"; +} + +.uniui-fire-filled:before { + content: "\e6c5"; +} + +.uniui-refreshempty:before { + content: "\e6bf"; +} + +.uniui-location-filled:before { + content: "\e6af"; +} + +.uniui-person-filled:before { + content: "\e69d"; +} + +.uniui-personadd-filled:before { + content: "\e698"; +} + +.uniui-back:before { + content: "\e6b9"; +} + +.uniui-forward:before { + content: "\e6ba"; +} + +.uniui-arrow-right:before { + content: "\e6bb"; +} + +.uniui-arrowthinright:before { + content: "\e6bb"; +} + +.uniui-arrow-left:before { + content: "\e6bc"; +} + +.uniui-arrowthinleft:before { + content: "\e6bc"; +} + +.uniui-arrow-up:before { + content: "\e6bd"; +} + +.uniui-arrowthinup:before { + content: "\e6bd"; +} + +.uniui-arrow-down:before { + content: "\e6be"; +} + +.uniui-arrowthindown:before { + content: "\e6be"; +} + +.uniui-bottom:before { + content: "\e6b8"; +} + +.uniui-arrowdown:before { + content: "\e6b8"; +} + +.uniui-right:before { + content: "\e6b5"; +} + +.uniui-arrowright:before { + content: "\e6b5"; +} + +.uniui-top:before { + content: "\e6b6"; +} + +.uniui-arrowup:before { + content: "\e6b6"; +} + +.uniui-left:before { + content: "\e6b7"; +} + +.uniui-arrowleft:before { + content: "\e6b7"; +} + +.uniui-eye:before { + content: "\e651"; +} + +.uniui-eye-filled:before { + content: "\e66a"; +} + +.uniui-eye-slash:before { + content: "\e6b3"; +} + +.uniui-eye-slash-filled:before { + content: "\e6b4"; +} + +.uniui-info-filled:before { + content: "\e649"; +} + +.uniui-reload:before { + content: "\e6b2"; +} + +.uniui-micoff-filled:before { + content: "\e6b0"; +} + +.uniui-map-pin-ellipse:before { + content: "\e6ac"; +} + +.uniui-map-pin:before { + content: "\e6ad"; +} + +.uniui-location:before { + content: "\e6ae"; +} + +.uniui-starhalf:before { + content: "\e683"; +} + +.uniui-star:before { + content: "\e688"; +} + +.uniui-star-filled:before { + content: "\e68f"; +} + +.uniui-calendar:before { + content: "\e6a0"; +} + +.uniui-fire:before { + content: "\e6a1"; +} + +.uniui-medal:before { + content: "\e6a2"; +} + +.uniui-font:before { + content: "\e6a3"; +} + +.uniui-gift:before { + content: "\e6a4"; +} + +.uniui-link:before { + content: "\e6a5"; +} + +.uniui-notification:before { + content: "\e6a6"; +} + +.uniui-staff:before { + content: "\e6a7"; +} + +.uniui-vip:before { + content: "\e6a8"; +} + +.uniui-folder-add:before { + content: "\e6a9"; +} + +.uniui-tune:before { + content: "\e6aa"; +} + +.uniui-auth:before { + content: "\e6ab"; +} + +.uniui-person:before { + content: "\e699"; +} + +.uniui-email-filled:before { + content: "\e69a"; +} + +.uniui-phone-filled:before { + content: "\e69b"; +} + +.uniui-phone:before { + content: "\e69c"; +} + +.uniui-email:before { + content: "\e69e"; +} + +.uniui-personadd:before { + content: "\e69f"; +} + +.uniui-chatboxes-filled:before { + content: "\e692"; +} + +.uniui-contact:before { + content: "\e693"; +} + +.uniui-chatbubble-filled:before { + content: "\e694"; +} + +.uniui-contact-filled:before { + content: "\e695"; +} + +.uniui-chatboxes:before { + content: "\e696"; +} + +.uniui-chatbubble:before { + content: "\e697"; +} + +.uniui-upload-filled:before { + content: "\e68e"; +} + +.uniui-upload:before { + content: "\e690"; +} + +.uniui-weixin:before { + content: "\e691"; +} + +.uniui-compose:before { + content: "\e67f"; +} + +.uniui-qq:before { + content: "\e680"; +} + +.uniui-download-filled:before { + content: "\e681"; +} + +.uniui-pyq:before { + content: "\e682"; +} + +.uniui-sound:before { + content: "\e684"; +} + +.uniui-trash-filled:before { + content: "\e685"; +} + +.uniui-sound-filled:before { + content: "\e686"; +} + +.uniui-trash:before { + content: "\e687"; +} + +.uniui-videocam-filled:before { + content: "\e689"; +} + +.uniui-spinner-cycle:before { + content: "\e68a"; +} + +.uniui-weibo:before { + content: "\e68b"; +} + +.uniui-videocam:before { + content: "\e68c"; +} + +.uniui-download:before { + content: "\e68d"; +} + +.uniui-help:before { + content: "\e679"; +} + +.uniui-navigate-filled:before { + content: "\e67a"; +} + +.uniui-plusempty:before { + content: "\e67b"; +} + +.uniui-smallcircle:before { + content: "\e67c"; +} + +.uniui-minus-filled:before { + content: "\e67d"; +} + +.uniui-micoff:before { + content: "\e67e"; +} + +.uniui-closeempty:before { + content: "\e66c"; +} + +.uniui-clear:before { + content: "\e66d"; +} + +.uniui-navigate:before { + content: "\e66e"; +} + +.uniui-minus:before { + content: "\e66f"; +} + +.uniui-image:before { + content: "\e670"; +} + +.uniui-mic:before { + content: "\e671"; +} + +.uniui-paperplane:before { + content: "\e672"; +} + +.uniui-close:before { + content: "\e673"; +} + +.uniui-help-filled:before { + content: "\e674"; +} + +.uniui-paperplane-filled:before { + content: "\e675"; +} + +.uniui-plus:before { + content: "\e676"; +} + +.uniui-mic-filled:before { + content: "\e677"; +} + +.uniui-image-filled:before { + content: "\e678"; +} + +.uniui-locked-filled:before { + content: "\e668"; +} + +.uniui-info:before { + content: "\e669"; +} + +.uniui-locked:before { + content: "\e66b"; +} + +.uniui-camera-filled:before { + content: "\e658"; +} + +.uniui-chat-filled:before { + content: "\e659"; +} + +.uniui-camera:before { + content: "\e65a"; +} + +.uniui-circle:before { + content: "\e65b"; +} + +.uniui-checkmarkempty:before { + content: "\e65c"; +} + +.uniui-chat:before { + content: "\e65d"; +} + +.uniui-circle-filled:before { + content: "\e65e"; +} + +.uniui-flag:before { + content: "\e65f"; +} + +.uniui-flag-filled:before { + content: "\e660"; +} + +.uniui-gear-filled:before { + content: "\e661"; +} + +.uniui-home:before { + content: "\e662"; +} + +.uniui-home-filled:before { + content: "\e663"; +} + +.uniui-gear:before { + content: "\e664"; +} + +.uniui-smallcircle-filled:before { + content: "\e665"; +} + +.uniui-map-filled:before { + content: "\e666"; +} + +.uniui-map:before { + content: "\e667"; +} + +.uniui-refresh-filled:before { + content: "\e656"; +} + +.uniui-refresh:before { + content: "\e657"; +} + +.uniui-cloud-upload:before { + content: "\e645"; +} + +.uniui-cloud-download-filled:before { + content: "\e646"; +} + +.uniui-cloud-download:before { + content: "\e647"; +} + +.uniui-cloud-upload-filled:before { + content: "\e648"; +} + +.uniui-redo:before { + content: "\e64a"; +} + +.uniui-images-filled:before { + content: "\e64b"; +} + +.uniui-undo-filled:before { + content: "\e64c"; +} + +.uniui-more:before { + content: "\e64d"; +} + +.uniui-more-filled:before { + content: "\e64e"; +} + +.uniui-undo:before { + content: "\e64f"; +} + +.uniui-images:before { + content: "\e650"; +} + +.uniui-paperclip:before { + content: "\e652"; +} + +.uniui-settings:before { + content: "\e653"; +} + +.uniui-search:before { + content: "\e654"; +} + +.uniui-redo-filled:before { + content: "\e655"; +} + +.uniui-list:before { + content: "\e644"; +} + +.uniui-mail-open-filled:before { + content: "\e63a"; +} + +.uniui-hand-down-filled:before { + content: "\e63c"; +} + +.uniui-hand-down:before { + content: "\e63d"; +} + +.uniui-hand-up-filled:before { + content: "\e63e"; +} + +.uniui-hand-up:before { + content: "\e63f"; +} + +.uniui-heart-filled:before { + content: "\e641"; +} + +.uniui-mail-open:before { + content: "\e643"; +} + +.uniui-heart:before { + content: "\e639"; +} + +.uniui-loop:before { + content: "\e633"; +} + +.uniui-pulldown:before { + content: "\e632"; +} + +.uniui-scan:before { + content: "\e62a"; +} + +.uniui-bars:before { + content: "\e627"; +} + +.uniui-cart-filled:before { + content: "\e629"; +} + +.uniui-checkbox:before { + content: "\e62b"; +} + +.uniui-checkbox-filled:before { + content: "\e62c"; +} + +.uniui-shop:before { + content: "\e62f"; +} + +.uniui-headphones:before { + content: "\e630"; +} + +.uniui-cart:before { + content: "\e631"; +} diff --git a/uni_modules/uni-icons/components/uni-icons/uniicons.ttf b/uni_modules/uni-icons/components/uni-icons/uniicons.ttf new file mode 100644 index 0000000000000000000000000000000000000000..835f33bc9411461b8b9046b3fec742e921d6ce3a GIT binary patch literal 35760 zcmeFacbp?vl{Q?rN>WLsSXIigCAC7gI!S6tox^m`be^1}CwPJ>yxZ{uSzi{WC_=LI+*Wx!<-H!v})21fuKMZQ#fB2Fs zuEGwU_ZyDmuR3&e_s&PS@Be}0T=(JF$l;w=9Als0-iQ4lE^0cm^YDeWhnK#G<4!$@ z>-QZydhsP6Kl0Pv9Cw|EbP-?YO$@C;`+ zuKnR1zxV)MXnddfv56Dn_-W<%#_jZ^d%1f!hyI(6O8C!lXY}93nl=3f9^gzbYS03Jm0vJ;T)Z1IKntfUtypB#zx`e6wG3 zC5AhB&Me^QdH${3yL1otSUp#NN^cKN_yKnkm%XqxczWUgrT^Oo|6lL`SPy&+DZ_DX z1{?B^82rf|!cpSXHhg1*;kZecHy+MI*MqCu>g9T0eYieaf9edzAC9!tJL|pm0UQ~l zBQN;JaG!_sb8)VT%i=%By_I_#_ZIFh?(N(=xVtf?-^|^~y@`7RcMEqbcN=#*_eSmx z?)BVjxU0EqFm9T;Q`~9pTJAdTdhWH{>+qBtxEr~fxSP3Gb60T(xkKDx?g)33JH{R7 zPH-1465x0fg%5CGeb33>TxSiZCZa24wyO7(&Q z>$wfwMs5?gnVaOMxM^;NYvpFSIc_<(f-7(s&u0CxL#u8VbF$klItIryQ@x|5W z48lm`>dOtnnB(dz48rK+>MISxIOOW948n-y>Z=XH*yQSK48kbo>T3axcUVKK~8Y>od!W-aP?gVL3VKU-3CF5aP>U~L7s5+3k`x~;p%%0f{fwn z`wW7#;p+Phg52Ti2MmG);_4R}1X;w@scs-hC9Y0&13^AJNK#+l4o$3aH zH00`3HxT3^SEssxAR)Or)eQt$$+z7tkWDxWPSHIIBXb!IaW`m$ZxcXZRf;QpmZ#4*d zg{!~KAZQq_ewRVeHC+Ae20`m^^>-Kq{lnGoHVB%CtKVY~bP`v;*C1#ou700E&{JIf zeuJQ~xcWN{g6`t#?=lEljH|!fAm}r${tpI0vvKtY41$j1>hCcK+K#I~Xb|)sSAVZT z(12Y1eFi}na`pEc1g*%`|Ir}mN3Q+>gPp}tAE%avLosrF^GJG z`bQ0dZsqD9GYDFitAE@e=v%J-34@?{x%wv!f)3{DpE3yAn5#cz5cD!v|Fl8S&|Lj9 z20>SI_0JjvtVjlpxwFpV+N5QQ~$g{(D+>a3kE^= zbM-G81S^26f5{-&16=*f2Ej7m>R&MkHUd}wszKz<)E_qpb^}-cnn7g6)t@j3wggxI zxp1QBm2=klxXa|a&TVx+;Qp=WwVt{>D}O~9QXW)O>O0h5db_-@^8Ud$^pPT-1=NS-v_4k2r|_kM*0!vaW9xyNll~`AaKH zuPQxR4wv6t{%QC2?wh**v$DGKU?rS_5?F|crGafkiL7dNk-%Y_E4VmkSn6>Hb;SUukEx3l0# zej=BS$yT%Av8Uc*J`xpdRw>aQ5n{34Scli{%@0hjo|#!%t;CXMOO1~vM@By$$wu(0 z7+*JsbCF0c%-{dHFL+pQI~s3&zjaOf89{d%!`6o3fsCO(`6

PqiNa$~E4XJ#a8s%?nsx`&SiQ7Wz{CE9c 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 literal 0 HcmV?d00001 diff --git a/uni_modules/uni-icons/package.json b/uni_modules/uni-icons/package.json new file mode 100644 index 0000000..d1c4e77 --- /dev/null +++ b/uni_modules/uni-icons/package.json @@ -0,0 +1,86 @@ +{ + "id": "uni-icons", + "displayName": "uni-icons 图标", + "version": "1.3.5", + "description": "图标组件,用于展示移动端常见的图标,可自定义颜色、大小。", + "keywords": [ + "uni-ui", + "uniui", + "icon", + "图标" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.2.14" + }, + "directories": { + "example": "../../temps/example_temps" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": ["uni-scss"], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-icons/readme.md b/uni_modules/uni-icons/readme.md new file mode 100644 index 0000000..86234ba --- /dev/null +++ b/uni_modules/uni-icons/readme.md @@ -0,0 +1,8 @@ +## Icons 图标 +> **组件名:uni-icons** +> 代码块: `uIcons` + +用于展示 icons 图标 。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-icons) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 diff --git a/uni_modules/uni-list/changelog.md b/uni_modules/uni-list/changelog.md new file mode 100644 index 0000000..8254a18 --- /dev/null +++ b/uni_modules/uni-list/changelog.md @@ -0,0 +1,46 @@ +## 1.2.14(2023-04-14) +- 优化 uni-list-chat 具名插槽`header` 非app端套一层元素,方便使用时通过外层元素定位实现样式修改 +## 1.2.13(2023-03-03) +- uni-list-chat 新增 支持具名插槽`header` +## 1.2.12(2023-02-01) +- 新增 列表图标新增 customPrefix 属性 ,用法 [详见](https://uniapp.dcloud.net.cn/component/uniui/uni-icons.html#icons-props) +## 1.2.11(2023-01-31) +- 修复 无反馈效果呈现的bug +## 1.2.9(2022-11-22) +- 修复 uni-list-chat 在vue3下跳转报错的bug +## 1.2.8(2022-11-21) +- 修复 uni-list-chat avatar属性 值为本地路径时错误的问题 +## 1.2.7(2022-11-21) +- 修复 uni-list-chat avatar属性 在腾讯云版uniCloud下错误的问题 +## 1.2.6(2022-11-18) +- 修复 uni-list-chat note属性 支持:“草稿”字样功能 文本少1位的问题 +## 1.2.5(2022-11-15) +- 修复 uni-list-item 的 customStyle 属性 padding值在 H5端 无效的bug +## 1.2.4(2022-11-15) +- 修复 uni-list-item 的 customStyle 属性 padding值在nvue(vue2)下无效的bug +## 1.2.3(2022-11-14) +- uni-list-chat 新增 avatar 支持 fileId +## 1.2.2(2022-11-11) +- uni-list 新增属性 render-reverse 详情参考:[https://uniapp.dcloud.net.cn/component/list.html](https://uniapp.dcloud.net.cn/component/list.html) +- uni-list-chat note属性 支持:“草稿”字样 加红显示 详情参考uni-im:[https://ext.dcloud.net.cn/plugin?name=uni-im](https://ext.dcloud.net.cn/plugin?name=uni-im) +- uni-list-item 新增属性 customStyle 支持设置padding、backgroundColor +## 1.2.1(2022-03-30) +- 删除无用文件 +## 1.2.0(2021-11-23) +- 优化 组件UI,并提供设计资源,详见:[https://uniapp.dcloud.io/component/uniui/resource](https://uniapp.dcloud.io/component/uniui/resource) +- 文档迁移,详见:[https://uniapp.dcloud.io/component/uniui/uni-list](https://uniapp.dcloud.io/component/uniui/uni-list) +## 1.1.3(2021-08-30) +- 修复 在vue3中to属性在发行应用的时候报错的bug +## 1.1.2(2021-07-30) +- 优化 vue3下事件警告的问题 +## 1.1.1(2021-07-21) +- 修复 与其他组件嵌套使用时,点击失效的Bug +## 1.1.0(2021-07-13) +- 组件兼容 vue3,如何创建vue3项目,详见 [uni-app 项目支持 vue3 介绍](https://ask.dcloud.net.cn/article/37834) +## 1.0.17(2021-05-12) +- 新增 组件示例地址 +## 1.0.16(2021-02-05) +- 优化 组件引用关系,通过uni_modules引用组件 +## 1.0.15(2021-02-05) +- 调整为uni_modules目录规范 +- 修复 uni-list-chat 角标显示不正常的问题 diff --git a/uni_modules/uni-list/components/uni-list-ad/uni-list-ad.vue b/uni_modules/uni-list/components/uni-list-ad/uni-list-ad.vue new file mode 100644 index 0000000..b9349c2 --- /dev/null +++ b/uni_modules/uni-list/components/uni-list-ad/uni-list-ad.vue @@ -0,0 +1,107 @@ + + + + + diff --git a/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.scss b/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.scss new file mode 100644 index 0000000..311f8d9 --- /dev/null +++ b/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.scss @@ -0,0 +1,58 @@ +/** + * 这里是 uni-list 组件内置的常用样式变量 + * 如果需要覆盖样式,这里提供了基本的组件样式变量,您可以尝试修改这里的变量,去完成样式替换,而不用去修改源码 + * + */ + +// 背景色 +$background-color : #fff; +// 分割线颜色 +$divide-line-color : #e5e5e5; + +// 默认头像大小,如需要修改此值,注意同步修改 js 中的值 const avatarWidth = xx ,目前只支持方形头像 +// nvue 页面不支持修改头像大小 +$avatar-width : 45px ; + +// 头像边框 +$avatar-border-radius: 5px; +$avatar-border-color: #eee; +$avatar-border-width: 1px; + +// 标题文字样式 +$title-size : 16px; +$title-color : #3b4144; +$title-weight : normal; + +// 描述文字样式 +$note-size : 12px; +$note-color : #999; +$note-weight : normal; + +// 右侧额外内容默认样式 +$right-text-size : 12px; +$right-text-color : #999; +$right-text-weight : normal; + +// 角标样式 +// nvue 页面不支持修改圆点位置以及大小 +// 角标在左侧时,角标的位置,默认为 0 ,负数左/下移动,正数右/上移动 +$badge-left: 0px; +$badge-top: 0px; + +// 显示圆点时,圆点大小 +$dot-width: 10px; +$dot-height: 10px; + +// 显示角标时,角标大小和字体大小 +$badge-size : 18px; +$badge-font : 12px; +// 显示角标时,角标前景色 +$badge-color : #fff; +// 显示角标时,角标背景色 +$badge-background-color : #ff5a5f; +// 显示角标时,角标左右间距 +$badge-space : 6px; + +// 状态样式 +// 选中颜色 +$hover : #f5f5f5; diff --git a/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.vue b/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.vue new file mode 100644 index 0000000..d49fd7c --- /dev/null +++ b/uni_modules/uni-list/components/uni-list-chat/uni-list-chat.vue @@ -0,0 +1,593 @@ + + + + + diff --git a/uni_modules/uni-list/components/uni-list-item/uni-list-item.vue b/uni_modules/uni-list/components/uni-list-item/uni-list-item.vue new file mode 100644 index 0000000..a274ac8 --- /dev/null +++ b/uni_modules/uni-list/components/uni-list-item/uni-list-item.vue @@ -0,0 +1,534 @@ + + + + + \ No newline at end of file diff --git a/uni_modules/uni-list/components/uni-list/uni-list.vue b/uni_modules/uni-list/components/uni-list/uni-list.vue new file mode 100644 index 0000000..6ef5972 --- /dev/null +++ b/uni_modules/uni-list/components/uni-list/uni-list.vue @@ -0,0 +1,123 @@ + + + + diff --git a/uni_modules/uni-list/components/uni-list/uni-refresh.vue b/uni_modules/uni-list/components/uni-list/uni-refresh.vue new file mode 100644 index 0000000..3b4c5a2 --- /dev/null +++ b/uni_modules/uni-list/components/uni-list/uni-refresh.vue @@ -0,0 +1,65 @@ + + + + + diff --git a/uni_modules/uni-list/components/uni-list/uni-refresh.wxs b/uni_modules/uni-list/components/uni-list/uni-refresh.wxs new file mode 100644 index 0000000..818a6b7 --- /dev/null +++ b/uni_modules/uni-list/components/uni-list/uni-refresh.wxs @@ -0,0 +1,87 @@ +var pullDown = { + threshold: 95, + maxHeight: 200, + callRefresh: 'onrefresh', + callPullingDown: 'onpullingdown', + refreshSelector: '.uni-refresh' +}; + +function ready(newValue, oldValue, ownerInstance, instance) { + var state = instance.getState() + state.canPullDown = newValue; + // console.log(newValue); +} + +function touchStart(e, instance) { + var state = instance.getState(); + state.refreshInstance = instance.selectComponent(pullDown.refreshSelector); + state.canPullDown = (state.refreshInstance != null && state.refreshInstance != undefined); + if (!state.canPullDown) { + return + } + + // console.log("touchStart"); + + state.height = 0; + state.touchStartY = e.touches[0].pageY || e.changedTouches[0].pageY; + state.refreshInstance.setStyle({ + 'height': 0 + }); + state.refreshInstance.callMethod("onchange", true); +} + +function touchMove(e, ownerInstance) { + var instance = e.instance; + var state = instance.getState(); + if (!state.canPullDown) { + return + } + + var oldHeight = state.height; + var endY = e.touches[0].pageY || e.changedTouches[0].pageY; + var height = endY - state.touchStartY; + if (height > pullDown.maxHeight) { + return; + } + + var refreshInstance = state.refreshInstance; + refreshInstance.setStyle({ + 'height': height + 'px' + }); + + height = height < pullDown.maxHeight ? height : pullDown.maxHeight; + state.height = height; + refreshInstance.callMethod(pullDown.callPullingDown, { + height: height + }); +} + +function touchEnd(e, ownerInstance) { + var state = e.instance.getState(); + if (!state.canPullDown) { + return + } + + state.refreshInstance.callMethod("onchange", false); + + var refreshInstance = state.refreshInstance; + if (state.height > pullDown.threshold) { + refreshInstance.callMethod(pullDown.callRefresh); + return; + } + + refreshInstance.setStyle({ + 'height': 0 + }); +} + +function propObserver(newValue, oldValue, instance) { + pullDown = newValue; +} + +module.exports = { + touchmove: touchMove, + touchstart: touchStart, + touchend: touchEnd, + propObserver: propObserver +} diff --git a/uni_modules/uni-list/package.json b/uni_modules/uni-list/package.json new file mode 100644 index 0000000..8350efc --- /dev/null +++ b/uni_modules/uni-list/package.json @@ -0,0 +1,88 @@ +{ + "id": "uni-list", + "displayName": "uni-list 列表", + "version": "1.2.14", + "description": "List 组件 ,帮助使用者快速构建列表。", + "keywords": [ + "", + "uni-ui", + "uniui", + "列表", + "", + "list" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "" + }, + "directories": { + "example": "../../temps/example_temps" + }, +"dcloudext": { + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui", + "type": "component-vue" + }, + "uni_modules": { + "dependencies": [ + "uni-badge", + "uni-icons" + ], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "y" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-list/readme.md b/uni_modules/uni-list/readme.md new file mode 100644 index 0000000..32c2865 --- /dev/null +++ b/uni_modules/uni-list/readme.md @@ -0,0 +1,346 @@ +## List 列表 +> **组件名:uni-list** +> 代码块: `uList`、`uListItem` +> 关联组件:`uni-list-item`、`uni-badge`、`uni-icons`、`uni-list-chat`、`uni-list-ad` + + +List 列表组件,包含基本列表样式、可扩展插槽机制、长列表性能优化、多端兼容。 + +在vue页面里,它默认使用页面级滚动。在app-nvue页面里,它默认使用原生list组件滚动。这样的长列表,在滚动出屏幕外后,系统会回收不可见区域的渲染内存资源,不会造成滚动越长手机越卡的问题。 + +uni-list组件是父容器,里面的核心是uni-list-item子组件,它代表列表中的一个可重复行,子组件可以无限循环。 + +uni-list-item有很多风格,uni-list-item组件通过内置的属性,满足一些常用的场景。当内置属性不满足需求时,可以通过扩展插槽来自定义列表内容。 + +内置属性可以覆盖的场景包括:导航列表、设置列表、小图标列表、通信录列表、聊天记录列表。 + +涉及很多大图或丰富内容的列表,比如类今日头条的新闻列表、类淘宝的电商列表,需要通过扩展插槽实现。 + +下文均有样例给出。 + +uni-list不包含下拉刷新和上拉翻页。上拉翻页另见组件:[uni-load-more](https://ext.dcloud.net.cn/plugin?id=29) + + +### 安装方式 + +本组件符合[easycom](https://uniapp.dcloud.io/collocation/pages?id=easycom)规范,`HBuilderX 2.5.5`起,只需将本组件导入项目,在页面`template`中即可直接使用,无需在页面中`import`和注册`components`。 + +如需通过`npm`方式使用`uni-ui`组件,另见文档:[https://ext.dcloud.net.cn/plugin?id=55](https://ext.dcloud.net.cn/plugin?id=55) + +> **注意事项** +> 为了避免错误使用,给大家带来不好的开发体验,请在使用组件前仔细阅读下面的注意事项,可以帮你避免一些错误。 +> - 组件需要依赖 `sass` 插件 ,请自行手动安装 +> - 组件内部依赖 `'uni-icons'` 、`uni-badge` 组件 +> - `uni-list` 和 `uni-list-item` 需要配套使用,暂不支持单独使用 `uni-list-item` +> - 只有开启点击反馈后,会有点击选中效果 +> - 使用插槽时,可以完全自定义内容 +> - note 、rightText 属性暂时没做限制,不支持文字溢出隐藏,使用时应该控制长度显示或通过默认插槽自行扩展 +> - 支付宝小程序平台需要在支付宝小程序开发者工具里开启 component2 编译模式,开启方式: 详情 --> 项目配置 --> 启用 component2 编译 +> - 如果需要修改 `switch`、`badge` 样式,请使用插槽自定义 +> - 在 `HBuilderX` 低版本中,可能会出现组件显示 `undefined` 的问题,请升级最新的 `HBuilderX` 或者 `cli` +> - 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 + + +### 基本用法 + +- 设置 `title` 属性,可以显示列表标题 +- 设置 `disabled` 属性,可以禁用当前项 + +```html + + + + + +``` + +### 多行内容显示 + +- 设置 `note` 属性 ,可以在第二行显示描述文本信息 + +```html + + + + + +``` + +### 右侧显示角标、switch + +- 设置 `show-badge` 属性 ,可以显示角标内容 +- 设置 `show-switch` 属性,可以显示 switch 开关 + +```html + + + + + +``` + +### 左侧显示略缩图、图标 + +- 设置 `thumb` 属性 ,可以在列表左侧显示略缩图 +- 设置 `show-extra-icon` 属性,并指定 `extra-icon` 可以在左侧显示图标 + +```html + + + + +``` + +### 开启点击反馈和右侧箭头 +- 设置 `clickable` 为 `true` ,则表示这是一个可点击的列表,会默认给一个点击效果,并可以监听 `click` 事件 +- 设置 `link` 属性,会自动开启点击反馈,并给列表右侧添加一个箭头 +- 设置 `to` 属性,可以跳转页面,`link` 的值表示跳转方式,如果不指定,默认为 `navigateTo` + +```html + + + + + + + +``` + + +### 聊天列表示例 +- 设置 `clickable` 为 `true` ,则表示这是一个可点击的列表,会默认给一个点击效果,并可以监听 `click` 事件 +- 设置 `link` 属性,会自动开启点击反馈,`link` 的值表示跳转方式,如果不指定,默认为 `navigateTo` +- 设置 `to` 属性,可以跳转页面 +- `time` 属性,通常会设置成时间显示,但是这个属性不仅仅可以设置时间,你可以传入任何文本,注意文本长度可能会影响显示 +- `avatar` 和 `avatarList` 属性同时只会有一个生效,同时设置的话,`avatarList` 属性的长度大于1 ,`avatar` 属性将失效 +- 可以通过默认插槽自定义列表右侧内容 + +```html + + + + + + + + + + + + + + + + + 刚刚 + + + + + + + +``` + +```javascript + +export default { + components: {}, + data() { + return { + avatarList: [{ + url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/460d46d0-4fcc-11eb-8ff1-d5dcf8779628.png' + }, { + url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/460d46d0-4fcc-11eb-8ff1-d5dcf8779628.png' + }, { + url: 'https://vkceyugu.cdn.bspapp.com/VKCEYUGU-dc-site/460d46d0-4fcc-11eb-8ff1-d5dcf8779628.png' + }] + } + } +} + +``` + + +```css + +.chat-custom-right { + flex: 1; + /* #ifndef APP-NVUE */ + display: flex; + /* #endif */ + flex-direction: column; + justify-content: space-between; + align-items: flex-end; +} + +.chat-custom-text { + font-size: 12px; + color: #999; +} + +``` + +## API + +### List Props + +属性名 |类型 |默认值 | 说明 +:-: |:-: |:-: | :-: +border |Boolean |true | 是否显示边框 + + +### ListItem Props + +属性名 |类型 |默认值 | 说明 +:-: |:-: |:-: | :-: +title |String |- | 标题 +note |String |- | 描述 +ellipsis |Number |0 | title 是否溢出隐藏,可选值,0:默认; 1:显示一行; 2:显示两行;【nvue 暂不支持】 +thumb |String |- | 左侧缩略图,若thumb有值,则不会显示扩展图标 +thumbSize |String |medium | 略缩图尺寸,可选值,lg:大图; medium:一般; sm:小图; +showBadge |Boolean |false | 是否显示数字角标 +badgeText |String |- | 数字角标内容 +badgeType |String |- | 数字角标类型,参考[uni-icons](https://ext.dcloud.net.cn/plugin?id=21) +badgeStyle |Object |- | 数字角标样式,使用uni-badge的custom-style参数 +rightText |String |- | 右侧文字内容 +disabled |Boolean |false | 是否禁用 +showArrow |Boolean |true | 是否显示箭头图标 +link |String |navigateTo | 新页面跳转方式,可选值见下表 +to |String |- | 新页面跳转地址,如填写此属性,click 会返回页面是否跳转成功 +clickable |Boolean |false | 是否开启点击反馈 +showSwitch |Boolean |false | 是否显示Switch +switchChecked |Boolean |false | Switch是否被选中 +showExtraIcon |Boolean |false | 左侧是否显示扩展图标 +extraIcon |Object |- | 扩展图标参数,格式为 ``{color: '#4cd964',size: '22',type: 'spinner'}``,参考 [uni-icons](https://ext.dcloud.net.cn/plugin?id=28) +direction | String |row | 排版方向,可选值,row:水平排列; column:垂直排列; 3个插槽是水平排还是垂直排,也受此属性控制 + + +#### Link Options + +属性名 | 说明 +:-: | :-: +navigateTo | 同 uni.navigateTo() +redirectTo | 同 uni.reLaunch() +reLaunch | 同 uni.reLaunch() +switchTab | 同 uni.switchTab() + +### ListItem Events + +事件称名 |说明 |返回参数 +:-: |:-: |:-: +click |点击 uniListItem 触发事件,需开启点击反馈 |- +switchChange |点击切换 Switch 时触发,需显示 switch |e={value:checked} + + + +### ListItem Slots + +名称 | 说明 +:-: | :-: +header | 左/上内容插槽,可完全自定义默认显示 +body | 中间内容插槽,可完全自定义中间内容 +footer | 右/下内容插槽,可完全自定义右侧内容 + + +> **通过插槽扩展** +> 需要注意的是当使用插槽时,内置样式将会失效,只保留排版样式,此时的样式需要开发者自己实现 +> 如果 `uni-list-item` 组件内置属性样式无法满足需求,可以使用插槽来自定义uni-list-item里的内容。 +> uni-list-item提供了3个可扩展的插槽:`header`、`body`、`footer` +> - 当 `direction` 属性为 `row` 时表示水平排列,此时 `header` 表示列表的左边部分,`body` 表示列表的中间部分,`footer` 表示列表的右边部分 +> - 当 `direction` 属性为 `column` 时表示垂直排列,此时 `header` 表示列表的上边部分,`body` 表示列表的中间部分,`footer` 表示列表的下边部分 +> 开发者可以只用1个插槽,也可以3个一起使用。在插槽中可自主编写view标签,实现自己所需的效果。 + + +**示例** + +```html + + + + + + + + + 自定义插槽 + + + + +``` + + + + + +### ListItemChat Props + +属性名 |类型 |默认值 | 说明 +:-: |:-: |:-: | :-: +title |String |- | 标题 +note |String |- | 描述 +clickable |Boolean |false | 是否开启点击反馈 +badgeText |String |- | 数字角标内容,设置为 `dot` 将显示圆点 +badgePositon |String |right | 角标位置 +link |String |navigateTo | 是否展示右侧箭头并开启点击反馈,可选值见下表 +clickable |Boolean |false | 是否开启点击反馈 +to |String |- | 跳转页面地址,如填写此属性,click 会返回页面是否跳转成功 +time |String |- | 右侧时间显示 +avatarCircle |Boolean |false | 是否显示圆形头像 +avatar |String |- | 头像地址,avatarCircle 不填时生效 +avatarList |Array |- | 头像组,格式为 [{url:''}] + +#### Link Options + +属性名 | 说明 +:-: | :-: +navigateTo | 同 uni.navigateTo() +redirectTo | 同 uni.reLaunch() +reLaunch | 同 uni.reLaunch() +switchTab | 同 uni.switchTab() + +### ListItemChat Slots + +名称 | 说明 +:- | :- +default | 自定义列表右侧内容(包括时间和角标显示) + +### ListItemChat Events +事件称名 | 说明 | 返回参数 +:-: | :-: | :-: +@click | 点击 uniListChat 触发事件 | {data:{}} ,如有 to 属性,会返回页面跳转信息 + + + + + + +## 基于uni-list扩展的页面模板 + +通过扩展插槽,可实现多种常见样式的列表 + +**新闻列表类** + +1. 云端一体混合布局:[https://ext.dcloud.net.cn/plugin?id=2546](https://ext.dcloud.net.cn/plugin?id=2546) +2. 云端一体垂直布局,大图模式:[https://ext.dcloud.net.cn/plugin?id=2583](https://ext.dcloud.net.cn/plugin?id=2583) +3. 云端一体垂直布局,多行图文混排:[https://ext.dcloud.net.cn/plugin?id=2584](https://ext.dcloud.net.cn/plugin?id=2584) +4. 云端一体垂直布局,多图模式:[https://ext.dcloud.net.cn/plugin?id=2585](https://ext.dcloud.net.cn/plugin?id=2585) +5. 云端一体水平布局,左图右文:[https://ext.dcloud.net.cn/plugin?id=2586](https://ext.dcloud.net.cn/plugin?id=2586) +6. 云端一体水平布局,左文右图:[https://ext.dcloud.net.cn/plugin?id=2587](https://ext.dcloud.net.cn/plugin?id=2587) +7. 云端一体垂直布局,无图模式,主标题+副标题:[https://ext.dcloud.net.cn/plugin?id=2588](https://ext.dcloud.net.cn/plugin?id=2588) + +**商品列表类** + +1. 云端一体列表/宫格视图互切:[https://ext.dcloud.net.cn/plugin?id=2651](https://ext.dcloud.net.cn/plugin?id=2651) +2. 云端一体列表(宫格模式):[https://ext.dcloud.net.cn/plugin?id=2671](https://ext.dcloud.net.cn/plugin?id=2671) +3. 云端一体列表(列表模式):[https://ext.dcloud.net.cn/plugin?id=2672](https://ext.dcloud.net.cn/plugin?id=2672) + +## 组件示例 + +点击查看:[https://hellouniapp.dcloud.net.cn/pages/extUI/list/list](https://hellouniapp.dcloud.net.cn/pages/extUI/list/list) \ No newline at end of file diff --git a/uni_modules/uni-scss/changelog.md b/uni_modules/uni-scss/changelog.md new file mode 100644 index 0000000..b863bb0 --- /dev/null +++ b/uni_modules/uni-scss/changelog.md @@ -0,0 +1,8 @@ +## 1.0.3(2022-01-21) +- 优化 组件示例 +## 1.0.2(2021-11-22) +- 修复 / 符号在 vue 不同版本兼容问题引起的报错问题 +## 1.0.1(2021-11-22) +- 修复 vue3中scss语法兼容问题 +## 1.0.0(2021-11-18) +- init diff --git a/uni_modules/uni-scss/index.scss b/uni_modules/uni-scss/index.scss new file mode 100644 index 0000000..1744a5f --- /dev/null +++ b/uni_modules/uni-scss/index.scss @@ -0,0 +1 @@ +@import './styles/index.scss'; diff --git a/uni_modules/uni-scss/package.json b/uni_modules/uni-scss/package.json new file mode 100644 index 0000000..7cc0ccb --- /dev/null +++ b/uni_modules/uni-scss/package.json @@ -0,0 +1,82 @@ +{ + "id": "uni-scss", + "displayName": "uni-scss 辅助样式", + "version": "1.0.3", + "description": "uni-sass是uni-ui提供的一套全局样式 ,通过一些简单的类名和sass变量,实现简单的页面布局操作,比如颜色、边距、圆角等。", + "keywords": [ + "uni-scss", + "uni-ui", + "辅助样式" +], + "repository": "https://github.com/dcloudio/uni-ui", + "engines": { + "HBuilderX": "^3.1.0" + }, + "dcloudext": { + "category": [ + "JS SDK", + "通用 SDK" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "https://www.npmjs.com/package/@dcloudio/uni-ui" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "u" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "n", + "联盟": "n" + }, + "Vue": { + "vue2": "y", + "vue3": "y" + } + } + } + } +} diff --git a/uni_modules/uni-scss/readme.md b/uni_modules/uni-scss/readme.md new file mode 100644 index 0000000..b7d1c25 --- /dev/null +++ b/uni_modules/uni-scss/readme.md @@ -0,0 +1,4 @@ +`uni-sass` 是 `uni-ui`提供的一套全局样式 ,通过一些简单的类名和`sass`变量,实现简单的页面布局操作,比如颜色、边距、圆角等。 + +### [查看文档](https://uniapp.dcloud.io/component/uniui/uni-sass) +#### 如使用过程中有任何问题,或者您对uni-ui有一些好的建议,欢迎加入 uni-ui 交流群:871950839 \ No newline at end of file diff --git a/uni_modules/uni-scss/styles/index.scss b/uni_modules/uni-scss/styles/index.scss new file mode 100644 index 0000000..ffac4fe --- /dev/null +++ b/uni_modules/uni-scss/styles/index.scss @@ -0,0 +1,7 @@ +@import './setting/_variables.scss'; +@import './setting/_border.scss'; +@import './setting/_color.scss'; +@import './setting/_space.scss'; +@import './setting/_radius.scss'; +@import './setting/_text.scss'; +@import './setting/_styles.scss'; diff --git a/uni_modules/uni-scss/styles/setting/_border.scss b/uni_modules/uni-scss/styles/setting/_border.scss new file mode 100644 index 0000000..12a11c3 --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_border.scss @@ -0,0 +1,3 @@ +.uni-border { + border: 1px $uni-border-1 solid; +} \ No newline at end of file diff --git a/uni_modules/uni-scss/styles/setting/_color.scss b/uni_modules/uni-scss/styles/setting/_color.scss new file mode 100644 index 0000000..1ededd9 --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_color.scss @@ -0,0 +1,66 @@ + +// TODO 暂时不需要 class ,需要用户使用变量实现 ,如果使用类名其实并不推荐 +// @mixin get-styles($k,$c) { +// @if $k == size or $k == weight{ +// font-#{$k}:#{$c} +// }@else{ +// #{$k}:#{$c} +// } +// } +$uni-ui-color:( + // 主色 + primary: $uni-primary, + primary-disable: $uni-primary-disable, + primary-light: $uni-primary-light, + // 辅助色 + success: $uni-success, + success-disable: $uni-success-disable, + success-light: $uni-success-light, + warning: $uni-warning, + warning-disable: $uni-warning-disable, + warning-light: $uni-warning-light, + error: $uni-error, + error-disable: $uni-error-disable, + error-light: $uni-error-light, + info: $uni-info, + info-disable: $uni-info-disable, + info-light: $uni-info-light, + // 中性色 + main-color: $uni-main-color, + base-color: $uni-base-color, + secondary-color: $uni-secondary-color, + extra-color: $uni-extra-color, + // 背景色 + bg-color: $uni-bg-color, + // 边框颜色 + border-1: $uni-border-1, + border-2: $uni-border-2, + border-3: $uni-border-3, + border-4: $uni-border-4, + // 黑色 + black:$uni-black, + // 白色 + white:$uni-white, + // 透明 + transparent:$uni-transparent +) !default; +@each $key, $child in $uni-ui-color { + .uni-#{"" + $key} { + color: $child; + } + .uni-#{"" + $key}-bg { + background-color: $child; + } +} +.uni-shadow-sm { + box-shadow: $uni-shadow-sm; +} +.uni-shadow-base { + box-shadow: $uni-shadow-base; +} +.uni-shadow-lg { + box-shadow: $uni-shadow-lg; +} +.uni-mask { + background-color:$uni-mask; +} diff --git a/uni_modules/uni-scss/styles/setting/_radius.scss b/uni_modules/uni-scss/styles/setting/_radius.scss new file mode 100644 index 0000000..9a0428b --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_radius.scss @@ -0,0 +1,55 @@ +@mixin radius($r,$d:null ,$important: false){ + $radius-value:map-get($uni-radius, $r) if($important, !important, null); + // Key exists within the $uni-radius variable + @if (map-has-key($uni-radius, $r) and $d){ + @if $d == t { + border-top-left-radius:$radius-value; + border-top-right-radius:$radius-value; + }@else if $d == r { + border-top-right-radius:$radius-value; + border-bottom-right-radius:$radius-value; + }@else if $d == b { + border-bottom-left-radius:$radius-value; + border-bottom-right-radius:$radius-value; + }@else if $d == l { + border-top-left-radius:$radius-value; + border-bottom-left-radius:$radius-value; + }@else if $d == tl { + border-top-left-radius:$radius-value; + }@else if $d == tr { + border-top-right-radius:$radius-value; + }@else if $d == br { + border-bottom-right-radius:$radius-value; + }@else if $d == bl { + border-bottom-left-radius:$radius-value; + } + }@else{ + border-radius:$radius-value; + } +} + +@each $key, $child in $uni-radius { + @if($key){ + .uni-radius-#{"" + $key} { + @include radius($key) + } + }@else{ + .uni-radius { + @include radius($key) + } + } +} + +@each $direction in t, r, b, l,tl, tr, br, bl { + @each $key, $child in $uni-radius { + @if($key){ + .uni-radius-#{"" + $direction}-#{"" + $key} { + @include radius($key,$direction,false) + } + }@else{ + .uni-radius-#{$direction} { + @include radius($key,$direction,false) + } + } + } +} diff --git a/uni_modules/uni-scss/styles/setting/_space.scss b/uni_modules/uni-scss/styles/setting/_space.scss new file mode 100644 index 0000000..3c89528 --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_space.scss @@ -0,0 +1,56 @@ + +@mixin fn($space,$direction,$size,$n) { + @if $n { + #{$space}-#{$direction}: #{$size*$uni-space-root}px + } @else { + #{$space}-#{$direction}: #{-$size*$uni-space-root}px + } +} +@mixin get-styles($direction,$i,$space,$n){ + @if $direction == t { + @include fn($space, top,$i,$n); + } + @if $direction == r { + @include fn($space, right,$i,$n); + } + @if $direction == b { + @include fn($space, bottom,$i,$n); + } + @if $direction == l { + @include fn($space, left,$i,$n); + } + @if $direction == x { + @include fn($space, left,$i,$n); + @include fn($space, right,$i,$n); + } + @if $direction == y { + @include fn($space, top,$i,$n); + @include fn($space, bottom,$i,$n); + } + @if $direction == a { + @if $n { + #{$space}:#{$i*$uni-space-root}px; + } @else { + #{$space}:#{-$i*$uni-space-root}px; + } + } +} + +@each $orientation in m,p { + $space: margin; + @if $orientation == m { + $space: margin; + } @else { + $space: padding; + } + @for $i from 0 through 16 { + @each $direction in t, r, b, l, x, y, a { + .uni-#{$orientation}#{$direction}-#{$i} { + @include get-styles($direction,$i,$space,true); + } + .uni-#{$orientation}#{$direction}-n#{$i} { + @include get-styles($direction,$i,$space,false); + } + } + } +} \ No newline at end of file diff --git a/uni_modules/uni-scss/styles/setting/_styles.scss b/uni_modules/uni-scss/styles/setting/_styles.scss new file mode 100644 index 0000000..689afec --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_styles.scss @@ -0,0 +1,167 @@ +/* #ifndef APP-NVUE */ + +$-color-white:#fff; +$-color-black:#000; +@mixin base-style($color) { + color: #fff; + background-color: $color; + border-color: mix($-color-black, $color, 8%); + &:not([hover-class]):active { + background: mix($-color-black, $color, 10%); + border-color: mix($-color-black, $color, 20%); + color: $-color-white; + outline: none; + } +} +@mixin is-color($color) { + @include base-style($color); + &[loading] { + @include base-style($color); + &::before { + margin-right:5px; + } + } + &[disabled] { + &, + &[loading], + &:not([hover-class]):active { + color: $-color-white; + border-color: mix(darken($color,10%), $-color-white); + background-color: mix($color, $-color-white); + } + } + +} +@mixin base-plain-style($color) { + color:$color; + background-color: mix($-color-white, $color, 90%); + border-color: mix($-color-white, $color, 70%); + &:not([hover-class]):active { + background: mix($-color-white, $color, 80%); + color: $color; + outline: none; + border-color: mix($-color-white, $color, 50%); + } +} +@mixin is-plain($color){ + &[plain] { + @include base-plain-style($color); + &[loading] { + @include base-plain-style($color); + &::before { + margin-right:5px; + } + } + &[disabled] { + &, + &:active { + color: mix($-color-white, $color, 40%); + background-color: mix($-color-white, $color, 90%); + border-color: mix($-color-white, $color, 80%); + } + } + } +} + + +.uni-btn { + margin: 5px; + color: #393939; + border:1px solid #ccc; + font-size: 16px; + font-weight: 200; + background-color: #F9F9F9; + // TODO 暂时处理边框隐藏一边的问题 + overflow: visible; + &::after{ + border: none; + } + + &:not([type]),&[type=default] { + color: #999; + &[loading] { + background: none; + &::before { + margin-right:5px; + } + } + + + + &[disabled]{ + color: mix($-color-white, #999, 60%); + &, + &[loading], + &:active { + color: mix($-color-white, #999, 60%); + background-color: mix($-color-white,$-color-black , 98%); + border-color: mix($-color-white, #999, 85%); + } + } + + &[plain] { + color: #999; + background: none; + border-color: $uni-border-1; + &:not([hover-class]):active { + background: none; + color: mix($-color-white, $-color-black, 80%); + border-color: mix($-color-white, $-color-black, 90%); + outline: none; + } + &[disabled]{ + &, + &[loading], + &:active { + background: none; + color: mix($-color-white, #999, 60%); + border-color: mix($-color-white, #999, 85%); + } + } + } + } + + &:not([hover-class]):active { + color: mix($-color-white, $-color-black, 50%); + } + + &[size=mini] { + font-size: 16px; + font-weight: 200; + border-radius: 8px; + } + + + + &.uni-btn-small { + font-size: 14px; + } + &.uni-btn-mini { + font-size: 12px; + } + + &.uni-btn-radius { + border-radius: 999px; + } + &[type=primary] { + @include is-color($uni-primary); + @include is-plain($uni-primary) + } + &[type=success] { + @include is-color($uni-success); + @include is-plain($uni-success) + } + &[type=error] { + @include is-color($uni-error); + @include is-plain($uni-error) + } + &[type=warning] { + @include is-color($uni-warning); + @include is-plain($uni-warning) + } + &[type=info] { + @include is-color($uni-info); + @include is-plain($uni-info) + } +} +/* #endif */ diff --git a/uni_modules/uni-scss/styles/setting/_text.scss b/uni_modules/uni-scss/styles/setting/_text.scss new file mode 100644 index 0000000..a34d08f --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_text.scss @@ -0,0 +1,24 @@ +@mixin get-styles($k,$c) { + @if $k == size or $k == weight{ + font-#{$k}:#{$c} + }@else{ + #{$k}:#{$c} + } +} + +@each $key, $child in $uni-headings { + /* #ifndef APP-NVUE */ + .uni-#{$key} { + @each $k, $c in $child { + @include get-styles($k,$c) + } + } + /* #endif */ + /* #ifdef APP-NVUE */ + .container .uni-#{$key} { + @each $k, $c in $child { + @include get-styles($k,$c) + } + } + /* #endif */ +} diff --git a/uni_modules/uni-scss/styles/setting/_variables.scss b/uni_modules/uni-scss/styles/setting/_variables.scss new file mode 100644 index 0000000..557d3d7 --- /dev/null +++ b/uni_modules/uni-scss/styles/setting/_variables.scss @@ -0,0 +1,146 @@ +// @use "sass:math"; +@import '../tools/functions.scss'; +// 间距基础倍数 +$uni-space-root: 2 !default; +// 边框半径默认值 +$uni-radius-root:5px !default; +$uni-radius: () !default; +// 边框半径断点 +$uni-radius: map-deep-merge( + ( + 0: 0, + // TODO 当前版本暂时不支持 sm 属性 + // 'sm': math.div($uni-radius-root, 2), + null: $uni-radius-root, + 'lg': $uni-radius-root * 2, + 'xl': $uni-radius-root * 6, + 'pill': 9999px, + 'circle': 50% + ), + $uni-radius +); +// 字体家族 +$body-font-family: 'Roboto', sans-serif !default; +// 文本 +$heading-font-family: $body-font-family !default; +$uni-headings: () !default; +$letterSpacing: -0.01562em; +$uni-headings: map-deep-merge( + ( + 'h1': ( + size: 32px, + weight: 300, + line-height: 50px, + // letter-spacing:-0.01562em + ), + 'h2': ( + size: 28px, + weight: 300, + line-height: 40px, + // letter-spacing: -0.00833em + ), + 'h3': ( + size: 24px, + weight: 400, + line-height: 32px, + // letter-spacing: normal + ), + 'h4': ( + size: 20px, + weight: 400, + line-height: 30px, + // letter-spacing: 0.00735em + ), + 'h5': ( + size: 16px, + weight: 400, + line-height: 24px, + // letter-spacing: normal + ), + 'h6': ( + size: 14px, + weight: 500, + line-height: 18px, + // letter-spacing: 0.0125em + ), + 'subtitle': ( + size: 12px, + weight: 400, + line-height: 20px, + // letter-spacing: 0.00937em + ), + 'body': ( + font-size: 14px, + font-weight: 400, + line-height: 22px, + // letter-spacing: 0.03125em + ), + 'caption': ( + 'size': 12px, + 'weight': 400, + 'line-height': 20px, + // 'letter-spacing': 0.03333em, + // 'text-transform': false + ) + ), + $uni-headings +); + + + +// 主色 +$uni-primary: #2979ff !default; +$uni-primary-disable:lighten($uni-primary,20%) !default; +$uni-primary-light: lighten($uni-primary,25%) !default; + +// 辅助色 +// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。 +$uni-success: #18bc37 !default; +$uni-success-disable:lighten($uni-success,20%) !default; +$uni-success-light: lighten($uni-success,25%) !default; + +$uni-warning: #f3a73f !default; +$uni-warning-disable:lighten($uni-warning,20%) !default; +$uni-warning-light: lighten($uni-warning,25%) !default; + +$uni-error: #e43d33 !default; +$uni-error-disable:lighten($uni-error,20%) !default; +$uni-error-light: lighten($uni-error,25%) !default; + +$uni-info: #8f939c !default; +$uni-info-disable:lighten($uni-info,20%) !default; +$uni-info-light: lighten($uni-info,25%) !default; + +// 中性色 +// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。 +$uni-main-color: #3a3a3a !default; // 主要文字 +$uni-base-color: #6a6a6a !default; // 常规文字 +$uni-secondary-color: #909399 !default; // 次要文字 +$uni-extra-color: #c7c7c7 !default; // 辅助说明 + +// 边框颜色 +$uni-border-1: #F0F0F0 !default; +$uni-border-2: #EDEDED !default; +$uni-border-3: #DCDCDC !default; +$uni-border-4: #B9B9B9 !default; + +// 常规色 +$uni-black: #000000 !default; +$uni-white: #ffffff !default; +$uni-transparent: rgba($color: #000000, $alpha: 0) !default; + +// 背景色 +$uni-bg-color: #f7f7f7 !default; + +/* 水平间距 */ +$uni-spacing-sm: 8px !default; +$uni-spacing-base: 15px !default; +$uni-spacing-lg: 30px !default; + +// 阴影 +$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5) !default; +$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2) !default; +$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5) !default; + +// 蒙版 +$uni-mask: rgba($color: #000000, $alpha: 0.4) !default; diff --git a/uni_modules/uni-scss/styles/tools/functions.scss b/uni_modules/uni-scss/styles/tools/functions.scss new file mode 100644 index 0000000..ac6f63e --- /dev/null +++ b/uni_modules/uni-scss/styles/tools/functions.scss @@ -0,0 +1,19 @@ +// 合并 map +@function map-deep-merge($parent-map, $child-map){ + $result: $parent-map; + @each $key, $child in $child-map { + $parent-has-key: map-has-key($result, $key); + $parent-value: map-get($result, $key); + $parent-type: type-of($parent-value); + $child-type: type-of($child); + $parent-is-map: $parent-type == map; + $child-is-map: $child-type == map; + + @if (not $parent-has-key) or ($parent-type != $child-type) or (not ($parent-is-map and $child-is-map)){ + $result: map-merge($result, ( $key: $child )); + }@else { + $result: map-merge($result, ( $key: map-deep-merge($parent-value, $child) )); + } + } + @return $result; +}; diff --git a/uni_modules/uni-scss/theme.scss b/uni_modules/uni-scss/theme.scss new file mode 100644 index 0000000..80ee62f --- /dev/null +++ b/uni_modules/uni-scss/theme.scss @@ -0,0 +1,31 @@ +// 间距基础倍数 +$uni-space-root: 2; +// 边框半径默认值 +$uni-radius-root:5px; +// 主色 +$uni-primary: #2979ff; +// 辅助色 +$uni-success: #4cd964; +// 警告色 +$uni-warning: #f0ad4e; +// 错误色 +$uni-error: #dd524d; +// 描述色 +$uni-info: #909399; +// 中性色 +$uni-main-color: #303133; +$uni-base-color: #606266; +$uni-secondary-color: #909399; +$uni-extra-color: #C0C4CC; +// 背景色 +$uni-bg-color: #f5f5f5; +// 边框颜色 +$uni-border-1: #DCDFE6; +$uni-border-2: #E4E7ED; +$uni-border-3: #EBEEF5; +$uni-border-4: #F2F6FC; + +// 常规色 +$uni-black: #000000; +$uni-white: #ffffff; +$uni-transparent: rgba($color: #000000, $alpha: 0); diff --git a/uni_modules/uni-scss/variables.scss b/uni_modules/uni-scss/variables.scss new file mode 100644 index 0000000..1c062d4 --- /dev/null +++ b/uni_modules/uni-scss/variables.scss @@ -0,0 +1,62 @@ +@import './styles/setting/_variables.scss'; +// 间距基础倍数 +$uni-space-root: 2; +// 边框半径默认值 +$uni-radius-root:5px; + +// 主色 +$uni-primary: #2979ff; +$uni-primary-disable:mix(#fff,$uni-primary,50%); +$uni-primary-light: mix(#fff,$uni-primary,80%); + +// 辅助色 +// 除了主色外的场景色,需要在不同的场景中使用(例如危险色表示危险的操作)。 +$uni-success: #18bc37; +$uni-success-disable:mix(#fff,$uni-success,50%); +$uni-success-light: mix(#fff,$uni-success,80%); + +$uni-warning: #f3a73f; +$uni-warning-disable:mix(#fff,$uni-warning,50%); +$uni-warning-light: mix(#fff,$uni-warning,80%); + +$uni-error: #e43d33; +$uni-error-disable:mix(#fff,$uni-error,50%); +$uni-error-light: mix(#fff,$uni-error,80%); + +$uni-info: #8f939c; +$uni-info-disable:mix(#fff,$uni-info,50%); +$uni-info-light: mix(#fff,$uni-info,80%); + +// 中性色 +// 中性色用于文本、背景和边框颜色。通过运用不同的中性色,来表现层次结构。 +$uni-main-color: #3a3a3a; // 主要文字 +$uni-base-color: #6a6a6a; // 常规文字 +$uni-secondary-color: #909399; // 次要文字 +$uni-extra-color: #c7c7c7; // 辅助说明 + +// 边框颜色 +$uni-border-1: #F0F0F0; +$uni-border-2: #EDEDED; +$uni-border-3: #DCDCDC; +$uni-border-4: #B9B9B9; + +// 常规色 +$uni-black: #000000; +$uni-white: #ffffff; +$uni-transparent: rgba($color: #000000, $alpha: 0); + +// 背景色 +$uni-bg-color: #f7f7f7; + +/* 水平间距 */ +$uni-spacing-sm: 8px; +$uni-spacing-base: 15px; +$uni-spacing-lg: 30px; + +// 阴影 +$uni-shadow-sm:0 0 5px rgba($color: #d8d8d8, $alpha: 0.5); +$uni-shadow-base:0 1px 8px 1px rgba($color: #a5a5a5, $alpha: 0.2); +$uni-shadow-lg:0px 1px 10px 2px rgba($color: #a5a4a4, $alpha: 0.5); + +// 蒙版 +$uni-mask: rgba($color: #000000, $alpha: 0.4); diff --git a/unpackage/dist/dev/.automator/mp-weixin/.automator.json b/unpackage/dist/dev/.automator/mp-weixin/.automator.json new file mode 100644 index 0000000..e69de29 diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map new file mode 100644 index 0000000..c042efa --- /dev/null +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/common/main.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["uni-app:///main.js",null,"webpack:///D:/work/云美/legalAffairs-app/App.vue?8589","uni-app:///App.vue","webpack:///D:/work/云美/legalAffairs-app/App.vue?6a68","webpack:///D:/work/云美/legalAffairs-app/App.vue?88be"],"names":["wx","__webpack_require_UNI_MP_PLUGIN__","__webpack_require__","Vue","config","productionTip","App","mpType","app","store","$mount","onLaunch","console","onShow","onHide"],"mappings":";;;;;;;;;;;;;;AAAA;AAE2D;AAC3D;AAGA;AACA;AAAgC;AAAA;AANhC;AACAA,EAAE,CAACC,iCAAiC,GAAGC,mBAAmB;AAM1DC,YAAG,CAACC,MAAM,CAACC,aAAa,GAAG,KAAK;AAChCC,YAAG,CAACC,MAAM,GAAG,KAAK;AAClB,IAAMC,GAAG,GAAG,IAAIL,YAAG;EAClBM,KAAK,EAALA;AAAK,GACDH,YAAG,EACN;AACF,UAAAE,GAAG,EAACE,MAAM,EAAE,C;;;;;;;;;;;;;ACdZ;AAAA;AAAA;AAAA;AAAA;AAAA;AACA;AACuD;AACL;AACa;;;AAG/D;AACwK;AACxK,gBAAgB,qLAAU;AAC1B,EAAE,yEAAM;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACe,gF;;;;;;;;;;;;ACvBf;AAAA;AAAA;AAAA;AAAynB,CAAgB,qpBAAG,EAAC,C;;;;;;;;;;;;;;;;;;eCC7oB;EACAC;IACAC;EACA;EACAC;IACAD;EACA;EACAE;IACAF;EACA;AACA;AAAA,2B;;;;;;;;;;;;ACXA;AAAA;AAAA;AAAA;AAAs5B,CAAgB,05BAAG,EAAC,C;;;;;;;;;;;ACA16B;AACA,OAAO,KAAU,EAAE,kBAKd","file":"common/main.js","sourcesContent":["import 'uni-pages';\r\n// @ts-ignore\r\nwx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;import App from './App'\r\nimport store from './store/index.js'\r\n\r\n\r\nimport Vue from 'vue'\r\nimport './uni.promisify.adaptor'\r\nVue.config.productionTip = false\r\nApp.mpType = 'app'\r\nconst app = new Vue({\r\n\tstore,\r\n ...App\r\n})\r\napp.$mount()","var render, staticRenderFns, recyclableRender, components\nvar renderjs\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../Desktop/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"App.vue\"\nexport default component.exports","import mod from \"-!../../../Desktop/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../../Desktop/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--13-1!../../../Desktop/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../Desktop/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../Desktop/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../Desktop/HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../../Desktop/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--13-1!../../../Desktop/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../Desktop/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../Desktop/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=script&lang=js&\"","\r\n\r\n\n","import mod from \"-!../../../Desktop/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../Desktop/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../Desktop/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../Desktop/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--6-oneOf-1-2!../../../Desktop/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-3!../../../Desktop/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../Desktop/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=style&index=0&lang=css&\"; export default mod; export * from \"-!../../../Desktop/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../Desktop/HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../Desktop/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../Desktop/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--6-oneOf-1-2!../../../Desktop/HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-3!../../../Desktop/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../Desktop/HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./App.vue?vue&type=style&index=0&lang=css&\"","// extracted by mini-css-extract-plugin\n if(module.hot) {\n // 1693297458649\n var cssReload = require(\"D:/Desktop/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"hmr\":true,\"publicPath\":\"../../\",\"locals\":false});\n module.hot.dispose(cssReload);\n module.hot.accept(undefined, cssReload);\n }\n "],"sourceRoot":""} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map new file mode 100644 index 0000000..03b92e0 --- /dev/null +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/common/runtime.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///webpack/bootstrap?7f80"],"names":[],"mappings":";QAAA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA,QAAQ,oBAAoB;QAC5B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA,iBAAiB,4BAA4B;QAC7C;QACA;QACA,kBAAkB,2BAA2B;QAC7C;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;;QAEA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;;;QAGA;QACA,oBAAoB;QACpB;QACA;QACA;QACA,uBAAuB,kVAAkV;QACzW;QACA;QACA,mBAAmB,6BAA6B;QAChD;QACA;QACA;QACA;QACA;QACA,mBAAmB,8BAA8B;QACjD;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA,KAAK;QACL;QACA,KAAK;QACL;;QAEA;;QAEA;QACA,iCAAiC;;QAEjC;QACA;QACA;QACA,KAAK;QACL;QACA;QACA;QACA,MAAM;QACN;;QAEA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,wBAAwB,kCAAkC;QAC1D,MAAM;QACN;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;QAEA;QACA,0CAA0C,oBAAoB,WAAW;;QAEzE;QACA;QACA;QACA;QACA,gBAAgB,uBAAuB;QACvC;;;QAGA;QACA","file":"common/runtime.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"common/runtime\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"common/runtime\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"\" + chunkId + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"uni_modules/uni-list/components/uni-list-item/uni-list-item\":1,\"uni_modules/uni-list/components/uni-list/uni-list\":1,\"uni_modules/uni-icons/components/uni-icons/uni-icons\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"\" + ({\"uni_modules/uni-list/components/uni-list-item/uni-list-item\":\"uni_modules/uni-list/components/uni-list-item/uni-list-item\",\"uni_modules/uni-list/components/uni-list/uni-list\":\"uni_modules/uni-list/components/uni-list/uni-list\",\"uni_modules/uni-icons/components/uni-icons/uni-icons\":\"uni_modules/uni-icons/components/uni-icons/uni-icons\"}[chunkId]||chunkId) + \".wxss\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = global[\"webpackJsonp\"] = global[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// run deferred modules from other chunks\n \tcheckDeferredModules();\n"],"sourceRoot":""} \ No newline at end of file diff --git a/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map b/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map new file mode 100644 index 0000000..fbd3967 --- /dev/null +++ b/unpackage/dist/dev/.sourcemap/mp-weixin/common/vendor.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["webpack:///./node_modules/@dcloudio/uni-mp-weixin/dist/wx.js?bc2e","webpack:///./node_modules/@dcloudio/uni-mp-weixin/dist/index.js?543d","webpack:///(webpack)/buildin/global.js?cd00","webpack:///./node_modules/@babel/runtime/helpers/interopRequireDefault.js?4ea4","webpack:///./node_modules/@babel/runtime/helpers/slicedToArray.js?278c","webpack:///./node_modules/@babel/runtime/helpers/arrayWithHoles.js?c135","webpack:///./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js?9b42","webpack:///./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js?6613","webpack:///./node_modules/@babel/runtime/helpers/arrayLikeToArray.js?5a43","webpack:///./node_modules/@babel/runtime/helpers/nonIterableRest.js?c240","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js?9523","webpack:///./node_modules/@babel/runtime/helpers/toPropertyKey.js?a395","webpack:///./node_modules/@babel/runtime/helpers/typeof.js?7037","webpack:///./node_modules/@babel/runtime/helpers/toPrimitive.js?e50d","webpack:///./node_modules/@babel/runtime/helpers/construct.js?b17c","webpack:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js?4a4b","webpack:///./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js?6f8f","webpack:///./node_modules/@babel/runtime/helpers/toConsumableArray.js?448a","webpack:///./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js?2236","webpack:///./node_modules/@babel/runtime/helpers/iterableToArray.js?11b0","webpack:///./node_modules/@babel/runtime/helpers/nonIterableSpread.js?0676","webpack:///./node_modules/@dcloudio/uni-i18n/dist/uni-i18n.es.js?37dc","webpack:///./node_modules/@babel/runtime/helpers/classCallCheck.js?970b","webpack:///./node_modules/@babel/runtime/helpers/createClass.js?5bc3","webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/mp-vue/dist/mp.runtime.esm.js?66fd","webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js?f0c5","uni-app:///store/index.js","webpack:///./node_modules/@dcloudio/vue-cli-plugin-uni/packages/vuex3/dist/vuex.common.js?26cb","webpack:///../node_modules/deepmerge/dist/cjs.js?586a",null,"webpack:///../node_modules/shvl/dist/shvl.mjs?0efd","uni-app:///store/modules/login.js","uni-app:///store/modules/devList.js","uni-app:///store/modules/area.js","uni-app:///store/modules/auth.js","uni-app:///store/modules/search.js","uni-app:///store/modules/message.js","uni-app:///store/modules/userInfoApp.js","uni-app:///uni.promisify.adaptor.js","uni-app:///uni_modules/uni-icons/components/uni-icons/icons.js"],"names":["objectKeys","singlePageDisableKey","target","globalThis","key","join","oldWx","launchOption","getLaunchOptionsSync","isWxKey","scene","includes","indexOf","initWx","newWx","realAtob","b64","b64re","atob","str","String","replace","test","Error","slice","length","bitmap","result","r1","r2","i","charAt","fromCharCode","b64DecodeUnicode","decodeURIComponent","split","map","c","charCodeAt","toString","getCurrentUserInfo","token","wx","getStorageSync","tokenArr","uid","role","permission","tokenExpired","userInfo","JSON","parse","error","message","exp","iat","uniIdMixin","Vue","prototype","uniIDHasRole","roleId","uniIDHasPermission","permissionId","uniIDTokenValid","Date","now","_toString","Object","hasOwnProperty","isFn","fn","isStr","isObject","obj","isPlainObject","call","hasOwn","noop","cached","cache","create","cachedFn","hit","camelizeRE","camelize","_","toUpperCase","sortObject","sortObj","keys","sort","forEach","HOOKS","globalInterceptors","scopedInterceptors","mergeHook","parentVal","childVal","res","concat","Array","isArray","dedupeHooks","hooks","push","removeHook","hook","index","splice","mergeInterceptorHook","interceptor","option","removeInterceptorHook","addInterceptor","method","removeInterceptor","wrapperHook","params","data","isPromise","then","queue","promise","Promise","resolve","callback","wrapperOptions","options","name","oldCallback","callbackInterceptor","wrapperReturnValue","returnValue","returnValueHooks","getApiInterceptorHooks","scopedInterceptor","invokeApi","api","invoke","promiseInterceptor","reject","SYNC_API_RE","CONTEXT_API_RE","CONTEXT_API_RE_EXC","ASYNC_API","CALLBACK_API_RE","isContextApi","isSyncApi","isCallbackApi","handlePromise","catch","err","shouldPromise","finally","constructor","value","reason","promisify","promiseApi","success","fail","complete","assign","EPS","BASE_DEVICE_WIDTH","isIOS","deviceWidth","deviceDPR","checkDeviceWidth","getSystemInfoSync","platform","pixelRatio","windowWidth","upx2px","number","newDeviceWidth","Number","Math","floor","LOCALE_ZH_HANS","LOCALE_ZH_HANT","LOCALE_EN","LOCALE_FR","LOCALE_ES","messages","locale","normalizeLocale","language","initI18nMessages","isEnableLocale","localeKeys","__uniConfig","locales","curMessages","userMessages","i18n","initVueI18n","t","i18nMixin","mixin","beforeCreate","unwatch","watchLocale","$forceUpdate","$once","methods","$$t","values","setLocale","getLocale","initAppLocale","appVm","state","observable","localeWatchers","$watchLocale","defineProperty","get","set","v","watch","include","parts","find","part","startsWith","trim","toLowerCase","lang","getLocale$1","getApp","app","allowDefault","$vm","$locale","setLocale$1","oldLocale","onLocaleChangeCallbacks","onLocaleChange","global","interceptors","baseApi","freeze","__proto__","findExistsPageIndex","url","pages","getCurrentPages","len","page","$page","fullPath","redirectTo","fromArgs","exists","delta","args","existsPageIndex","previewImage","currentIndex","parseInt","current","isNaN","urls","filter","item","indicator","loop","UUID_KEY","deviceId","useDeviceId","random","setStorage","addSafeAreaInsets","safeArea","safeAreaInsets","top","left","right","bottom","screenHeight","populateParameters","brand","model","system","theme","version","fontSizeSetting","SDKVersion","deviceOrientation","extraParam","osName","osVersion","hostVersion","deviceType","getGetDeviceType","deviceBrand","getDeviceBrand","_hostName","getHostName","_deviceOrientation","_devicePixelRatio","_SDKVersion","hostLanguage","parameters","appId","process","appName","appVersion","appVersionCode","appLanguage","getAppLanguage","uniCompileVersion","uniRuntimeVersion","uniPlatform","deviceModel","devicePixelRatio","toLocaleLowerCase","hostTheme","hostName","hostSDKVersion","hostFontSizeSetting","windowTop","windowBottom","osLanguage","undefined","osTheme","ua","hostPackageName","browserName","browserVersion","deviceTypeMaps","ipad","windows","mac","deviceTypeMapsKeys","_model","_m","defaultLanguage","_platform","environment","host","env","getSystemInfo","showActionSheet","alertText","title","getAppBaseInfo","getDeviceInfo","getWindowInfo","getAppAuthorizeSetting","locationReducedAccuracy","locationAccuracy","compressImage","compressedHeight","compressHeight","compressedWidth","compressWidth","protocols","todos","canIUses","CALLBACKS","processCallback","methodName","processReturnValue","processArgs","argsOption","keepFromArgs","toArgs","keyOption","console","warn","keepReturnValue","wrapper","protocol","arg1","arg2","apply","todoApis","TODOS","createTodoApi","todoApi","errMsg","providers","oauth","share","payment","getProvider","service","provider","extraApi","getEmitter","Emitter","getUniEmitter","ctx","$on","arguments","$off","$emit","eventApi","tryCatch","e","getApiCallbacks","apiCallbacks","param","cid","cidErrMsg","enabled","normalizePushMessage","invokePushCallback","type","invokeGetPushCidCallbacks","onPushMessageCallbacks","stopped","getPushCidCallbacks","getPushClientId","hasSuccess","hasFail","hasComplete","onPushMessage","offPushMessage","baseInfo","shareVideoMessage","miniapp","mocks","findVmByVueId","vm","vuePid","$children","childVm","$scope","_$vueId","parentVm","initBehavior","Behavior","isPage","route","initRelation","detail","triggerEvent","selectAllComponents","mpInstance","selector","$refs","components","component","ref","dataset","toSkip","vueGeneric","scopedComponent","syncRefs","refs","newRefs","oldKeys","Set","newKeys","oldValue","newValue","every","delete","initRefs","forComponents","handleLink","event","vueOptions","parent","markMPComponent","IS_MP","configurable","enumerable","OB","SKIP","isExtensible","WORKLET_RE","initWorkletMethods","mpMethods","vueMethods","matches","match","workletName","MPPage","Page","MPComponent","Component","customizeRE","customize","initTriggerEvent","oldTriggerEvent","newTriggerEvent","comType","newEvent","_triggerEvent","initHook","isComponent","oldHook","__$wrappered","after","PAGE_EVENT_HOOKS","initMocks","$mp","mpType","mock","hasHook","default","extendOptions","super","mixins","initHooks","mpOptions","__call_hook","initUnknownHooks","excludes","findHooks","initHook$1","initVueComponent","VueComponent","extend","initSlots","vueSlots","$slots","slotName","$scopedSlots","initVueIds","vueIds","_$vuePid","initData","context","VUE_APP_DEBUG","stringify","__lifecycle_hooks__","PROP_TYPES","Boolean","createObserver","observer","newVal","oldVal","initBehaviors","vueBehaviors","behaviors","vueExtends","extends","vueMixins","vueProps","props","behavior","properties","initProperties","vueMixin","parsePropType","defaultValue","file","isBehavior","vueId","virtualHost","virtualHostStyle","virtualHostClass","scopedSlotsCompiler","setData","opts","wrapper$1","mp","stopPropagation","preventDefault","markerId","getExtraValue","dataPathsArray","dataPathArray","dataPath","propPath","valuePath","vFor","isInteger","substr","__get_value","vForItem","vForKey","processEventExtra","extra","__args__","extraObj","getObjByArray","arr","element","processEventArgs","isCustom","isCustomMPEvent","currentTarget","ret","arg","ONCE","CUSTOM","isMatchEventType","eventType","optType","getContextVm","$parent","$options","generic","handleEvent","eventOpts","eventOpt","eventsArray","isOnce","eventArray","handlerCtx","handler","path","is","once","eventChannels","getEventChannel","id","eventChannel","initEventChannel","getOpenerEventChannel","callHook","__id__","__eventChannel__","initScopedSlotsParams","center","parents","currentId","propsData","$hasSSP","slot","$getSSP","needAll","$setSSP","$initSSP","$callSSP","destroyed","parseBaseApp","store","$store","mpHost","$i18n","_i18n","appOptions","onLaunch","canIUse","globalData","_isMounted","parseApp","createApp","App","encodeReserveRE","encodeReserveReplacer","commaRE","encode","encodeURIComponent","stringifyQuery","encodeStr","val","val2","x","parseBaseComponent","vueComponentOptions","needVueOptions","multipleSlots","addGlobalClass","componentOptions","__file","lifetimes","attached","$mount","ready","detached","$destroy","pageLifetimes","show","hide","resize","size","__l","__e","externalClasses","wxsCallMethods","callMethod","parseComponent","hooks$1","parseBasePage","vuePageOptions","pageOptions","onLoad","query","copyQuery","parsePage","createPage","createComponent","createSubpackageApp","onShow","onAppShow","onHide","onAppHide","createPlugin","canIUseApi","apiName","uni","Proxy","uni$1","_interopRequireDefault","__esModule","module","exports","arrayWithHoles","require","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","_i","Symbol","iterator","_s","_e","_x","_r","_arr","_n","_d","next","done","arrayLikeToArray","_unsupportedIterableToArray","o","minLen","n","from","_arrayLikeToArray","arr2","_nonIterableRest","TypeError","toPropertyKey","_defineProperty","writable","_typeof","toPrimitive","_toPropertyKey","_toPrimitive","input","hint","prim","setPrototypeOf","isNativeReflectConstruct","_construct","Parent","Class","Reflect","construct","bind","a","Constructor","Function","instance","_setPrototypeOf","p","_isNativeReflectConstruct","sham","valueOf","arrayWithoutHoles","iterableToArray","nonIterableSpread","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","iter","_nonIterableSpread","defaultDelimiters","BaseFormatter","_caches","delimiters","tokens","compile","RE_TOKEN_LIST_VALUE","RE_TOKEN_NAMED_VALUE","format","startDelimiter","endDelimiter","position","text","char","sub","isClosed","compiled","mode","defaultFormatter","I18n","fallbackLocale","watcher","formater","watchers","override","interpolate","watchAppLocale","newLocale","$watch","getDefaultLocale","isWatchedAppLocale","f","add","isString","hasI18nJson","jsonObj","walkJsonObj","isI18nStr","parseI18nJson","compileStr","compileI18nJsonStr","jsonStr","localeValues","unshift","compileJsonObj","compileValue","valueLocales","localValue","walk","resolveLocale","resolveLocaleChain","chain","pop","_classCallCheck","_defineProperties","descriptor","_createClass","protoProps","staticProps","vuexPersisted","createPersistedState","storage","getItem","setItem","setStorageSync","removeItem","clearStorageSync","use","Vuex","Store","plugins","modules","login","devList","area","auth","search","loginUserInfo","isMergeableObject","isNonNullObject","stringValue","$$typeof","REACT_ELEMENT_TYPE","isReactElement","isSpecial","for","cloneUnlessOtherwiseSpecified","clone","deepmerge","defaultArrayMerge","source","getKeys","getOwnPropertySymbols","symbol","propertyIsEnumerable","getEnumerableOwnPropertySymbols","propertyIsOnObject","object","property","arrayMerge","sourceIsArray","destination","customMerge","getMergeFunction","mergeObject","all","array","reduce","prev","window","localStorage","getState","setState","reducer","paths","substate","r","shvl","subscriber","subscribe","assertStorage","savedState","fetchSavedState","fetchBeforeUse","replaceState","overwrite","merge","arrayMerger","saved","rehydrated","mutation","userName","getters","isLogin","mutations","payload","actions","setToken","commit","clearToken","setUserInfo","setListAll","setList","delList","getCountry","countryid","getAreaId","areaid","setArea","setCountryid","clearArea","authList","menuArr","getAuth","getAuthName","label","getOperation","curRoute","operation","getMenu","children","setAuth","clearAuth","setMenu","clearMenu","searchObj","setSearch","searchKey","clearSearch","allcount","notecount","taskcount","warncount","getCount","setMessage","clearMessage","userInfoApp","getUserInfoApp","setUserInfoApp","clearUserInfoApp"],"mappings":";;;;;;;;;;;;;;;;AAAA,IAAMA,UAAU,GAAG,CACjB,IAAI,EACJ,KAAK,EACL,OAAO,EACP,SAAS,EACT,UAAU,EACV,OAAO,EACP,eAAe,EACf,QAAQ,EACR,SAAS,EACT,mCAAmC,CACpC;AACD,IAAMC,oBAAoB,GAAG,CAC3B,UAAU,EACV,QAAQ,EACR,SAAS,CACV;AACD,IAAMC,MAAM,GAAG,OAAOC,UAAU,KAAK,WAAW,GAAGA,UAAU,GAAI,YAAY;EAC3E,OAAO,IAAI;AACb,CAAC,EAAG;AAEJ,IAAMC,GAAG,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAACC,IAAI,CAAC,EAAE,CAAC;AAC/B,IAAMC,KAAK,GAAGJ,MAAM,CAACE,GAAG,CAAC;AACzB,IAAMG,YAAY,GAAGD,KAAK,CAACE,oBAAoB,GAAGF,KAAK,CAACE,oBAAoB,EAAE,GAAG,IAAI;AAErF,SAASC,OAAO,CAAEL,GAAG,EAAE;EACrB,IAAIG,YAAY,IAAIA,YAAY,CAACG,KAAK,KAAK,IAAI,IAAIT,oBAAoB,CAACU,QAAQ,CAACP,GAAG,CAAC,EAAE;IACrF,OAAO,KAAK;EACd;EACA,OAAOJ,UAAU,CAACY,OAAO,CAACR,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,OAAOE,KAAK,CAACF,GAAG,CAAC,KAAK,UAAU;AACzE;AAEA,SAASS,MAAM,GAAI;EACjB,IAAMC,KAAK,GAAG,CAAC,CAAC;EAChB,KAAK,IAAMV,IAAG,IAAIE,KAAK,EAAE;IACvB,IAAIG,OAAO,CAACL,IAAG,CAAC,EAAE;MAChB;MACAU,KAAK,CAACV,IAAG,CAAC,GAAGE,KAAK,CAACF,IAAG,CAAC;IACzB;EACF;EACA,OAAOU,KAAK;AACd;AACAZ,MAAM,CAACE,GAAG,CAAC,GAAGS,MAAM,EAAE;AAAA,eACPX,MAAM,CAACE,GAAG,CAAC;AAAA,2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3C1B;AACA;AAAsB;AAAA;AAEtB,IAAIW,QAAQ;AAEZ,IAAMC,GAAG,GAAG,mEAAmE;AAC/E,IAAMC,KAAK,GAAG,sEAAsE;AAEpF,IAAI,OAAOC,IAAI,KAAK,UAAU,EAAE;EAC9BH,QAAQ,GAAG,kBAAUI,GAAG,EAAE;IACxBA,GAAG,GAAGC,MAAM,CAACD,GAAG,CAAC,CAACE,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;IAC9C,IAAI,CAACJ,KAAK,CAACK,IAAI,CAACH,GAAG,CAAC,EAAE;MAAE,MAAM,IAAII,KAAK,CAAC,0FAA0F,CAAC;IAAC;;IAEpI;IACAJ,GAAG,IAAI,IAAI,CAACK,KAAK,CAAC,CAAC,IAAIL,GAAG,CAACM,MAAM,GAAG,CAAC,CAAC,CAAC;IACvC,IAAIC,MAAM;IAAE,IAAIC,MAAM,GAAG,EAAE;IAAE,IAAIC,EAAE;IAAE,IAAIC,EAAE;IAAE,IAAIC,CAAC,GAAG,CAAC;IACtD,OAAOA,CAAC,GAAGX,GAAG,CAACM,MAAM,GAAG;MACtBC,MAAM,GAAGV,GAAG,CAACJ,OAAO,CAACO,GAAG,CAACY,MAAM,CAACD,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,GAAGd,GAAG,CAACJ,OAAO,CAACO,GAAG,CAACY,MAAM,CAACD,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,GAClE,CAACF,EAAE,GAAGZ,GAAG,CAACJ,OAAO,CAACO,GAAG,CAACY,MAAM,CAACD,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,IAAID,EAAE,GAAGb,GAAG,CAACJ,OAAO,CAACO,GAAG,CAACY,MAAM,CAACD,CAAC,EAAE,CAAC,CAAC,CAAC;MAE5FH,MAAM,IAAIC,EAAE,KAAK,EAAE,GAAGR,MAAM,CAACY,YAAY,CAACN,MAAM,IAAI,EAAE,GAAG,GAAG,CAAC,GACzDG,EAAE,KAAK,EAAE,GAAGT,MAAM,CAACY,YAAY,CAACN,MAAM,IAAI,EAAE,GAAG,GAAG,EAAEA,MAAM,IAAI,CAAC,GAAG,GAAG,CAAC,GACpEN,MAAM,CAACY,YAAY,CAACN,MAAM,IAAI,EAAE,GAAG,GAAG,EAAEA,MAAM,IAAI,CAAC,GAAG,GAAG,EAAEA,MAAM,GAAG,GAAG,CAAC;IAChF;IACA,OAAOC,MAAM;EACf,CAAC;AACH,CAAC,MAAM;EACL;EACAZ,QAAQ,GAAGG,IAAI;AACjB;AAEA,SAASe,gBAAgB,CAAEd,GAAG,EAAE;EAC9B,OAAOe,kBAAkB,CAACnB,QAAQ,CAACI,GAAG,CAAC,CAACgB,KAAK,CAAC,EAAE,CAAC,CAACC,GAAG,CAAC,UAAUC,CAAC,EAAE;IACjE,OAAO,GAAG,GAAG,CAAC,IAAI,GAAGA,CAAC,CAACC,UAAU,CAAC,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,EAAEf,KAAK,CAAC,CAAC,CAAC,CAAC;EAC9D,CAAC,CAAC,CAACnB,IAAI,CAAC,EAAE,CAAC,CAAC;AACd;AAEA,SAASmC,kBAAkB,GAAI;EAC7B,IAAMC,KAAK,GAAKC,EAAE,CAAEC,cAAc,CAAC,cAAc,CAAC,IAAI,EAAE;EACxD,IAAMC,QAAQ,GAAGH,KAAK,CAACN,KAAK,CAAC,GAAG,CAAC;EACjC,IAAI,CAACM,KAAK,IAAIG,QAAQ,CAACnB,MAAM,KAAK,CAAC,EAAE;IACnC,OAAO;MACLoB,GAAG,EAAE,IAAI;MACTC,IAAI,EAAE,EAAE;MACRC,UAAU,EAAE,EAAE;MACdC,YAAY,EAAE;IAChB,CAAC;EACH;EACA,IAAIC,QAAQ;EACZ,IAAI;IACFA,QAAQ,GAAGC,IAAI,CAACC,KAAK,CAAClB,gBAAgB,CAACW,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;EACtD,CAAC,CAAC,OAAOQ,KAAK,EAAE;IACd,MAAM,IAAI7B,KAAK,CAAC,qBAAqB,GAAG6B,KAAK,CAACC,OAAO,CAAC;EACxD;EACAJ,QAAQ,CAACD,YAAY,GAAGC,QAAQ,CAACK,GAAG,GAAG,IAAI;EAC3C,OAAOL,QAAQ,CAACK,GAAG;EACnB,OAAOL,QAAQ,CAACM,GAAG;EACnB,OAAON,QAAQ;AACjB;AAEA,SAASO,UAAU,CAAEC,GAAG,EAAE;EACxBA,GAAG,CAACC,SAAS,CAACC,YAAY,GAAG,UAAUC,MAAM,EAAE;IAC7C,0BAEIpB,kBAAkB,EAAE;MADtBM,IAAI,uBAAJA,IAAI;IAEN,OAAOA,IAAI,CAAClC,OAAO,CAACgD,MAAM,CAAC,GAAG,CAAC,CAAC;EAClC,CAAC;EACDH,GAAG,CAACC,SAAS,CAACG,kBAAkB,GAAG,UAAUC,YAAY,EAAE;IACzD,2BAEItB,kBAAkB,EAAE;MADtBO,UAAU,wBAAVA,UAAU;IAEZ,OAAO,IAAI,CAACY,YAAY,CAAC,OAAO,CAAC,IAAIZ,UAAU,CAACnC,OAAO,CAACkD,YAAY,CAAC,GAAG,CAAC,CAAC;EAC5E,CAAC;EACDL,GAAG,CAACC,SAAS,CAACK,eAAe,GAAG,YAAY;IAC1C,2BAEIvB,kBAAkB,EAAE;MADtBQ,YAAY,wBAAZA,YAAY;IAEd,OAAOA,YAAY,GAAGgB,IAAI,CAACC,GAAG,EAAE;EAClC,CAAC;AACH;AAEA,IAAMC,SAAS,GAAGC,MAAM,CAACT,SAAS,CAACnB,QAAQ;AAC3C,IAAM6B,cAAc,GAAGD,MAAM,CAACT,SAAS,CAACU,cAAc;AAEtD,SAASC,IAAI,CAAEC,EAAE,EAAE;EACjB,OAAO,OAAOA,EAAE,KAAK,UAAU;AACjC;AAEA,SAASC,KAAK,CAAEpD,GAAG,EAAE;EACnB,OAAO,OAAOA,GAAG,KAAK,QAAQ;AAChC;AAEA,SAASqD,QAAQ,CAAEC,GAAG,EAAE;EACtB,OAAOA,GAAG,KAAK,IAAI,IAAI,sBAAOA,GAAG,MAAK,QAAQ;AAChD;AAEA,SAASC,aAAa,CAAED,GAAG,EAAE;EAC3B,OAAOP,SAAS,CAACS,IAAI,CAACF,GAAG,CAAC,KAAK,iBAAiB;AAClD;AAEA,SAASG,MAAM,CAAEH,GAAG,EAAErE,GAAG,EAAE;EACzB,OAAOgE,cAAc,CAACO,IAAI,CAACF,GAAG,EAAErE,GAAG,CAAC;AACtC;AAEA,SAASyE,IAAI,GAAI,CAAC;;AAElB;AACA;AACA;AACA,SAASC,MAAM,CAAER,EAAE,EAAE;EACnB,IAAMS,KAAK,GAAGZ,MAAM,CAACa,MAAM,CAAC,IAAI,CAAC;EACjC,OAAO,SAASC,QAAQ,CAAE9D,GAAG,EAAE;IAC7B,IAAM+D,GAAG,GAAGH,KAAK,CAAC5D,GAAG,CAAC;IACtB,OAAO+D,GAAG,KAAKH,KAAK,CAAC5D,GAAG,CAAC,GAAGmD,EAAE,CAACnD,GAAG,CAAC,CAAC;EACtC,CAAC;AACH;;AAEA;AACA;AACA;AACA,IAAMgE,UAAU,GAAG,QAAQ;AAC3B,IAAMC,QAAQ,GAAGN,MAAM,CAAC,UAAC3D,GAAG,EAAK;EAC/B,OAAOA,GAAG,CAACE,OAAO,CAAC8D,UAAU,EAAE,UAACE,CAAC,EAAEhD,CAAC;IAAA,OAAKA,CAAC,GAAGA,CAAC,CAACiD,WAAW,EAAE,GAAG,EAAE;EAAA,EAAC;AACpE,CAAC,CAAC;AAEF,SAASC,UAAU,CAAEd,GAAG,EAAE;EACxB,IAAMe,OAAO,GAAG,CAAC,CAAC;EAClB,IAAId,aAAa,CAACD,GAAG,CAAC,EAAE;IACtBN,MAAM,CAACsB,IAAI,CAAChB,GAAG,CAAC,CAACiB,IAAI,EAAE,CAACC,OAAO,CAAC,UAAAvF,GAAG,EAAI;MACrCoF,OAAO,CAACpF,GAAG,CAAC,GAAGqE,GAAG,CAACrE,GAAG,CAAC;IACzB,CAAC,CAAC;EACJ;EACA,OAAO,CAAC+D,MAAM,CAACsB,IAAI,CAACD,OAAO,CAAC,GAAGf,GAAG,GAAGe,OAAO;AAC9C;AAEA,IAAMI,KAAK,GAAG,CACZ,QAAQ,EACR,SAAS,EACT,MAAM,EACN,UAAU,EACV,aAAa,CACd;AAED,IAAMC,kBAAkB,GAAG,CAAC,CAAC;AAC7B,IAAMC,kBAAkB,GAAG,CAAC,CAAC;AAE7B,SAASC,SAAS,CAAEC,SAAS,EAAEC,QAAQ,EAAE;EACvC,IAAMC,GAAG,GAAGD,QAAQ,GAChBD,SAAS,GACPA,SAAS,CAACG,MAAM,CAACF,QAAQ,CAAC,GAC1BG,KAAK,CAACC,OAAO,CAACJ,QAAQ,CAAC,GACrBA,QAAQ,GAAG,CAACA,QAAQ,CAAC,GACzBD,SAAS;EACb,OAAOE,GAAG,GACNI,WAAW,CAACJ,GAAG,CAAC,GAChBA,GAAG;AACT;AAEA,SAASI,WAAW,CAAEC,KAAK,EAAE;EAC3B,IAAML,GAAG,GAAG,EAAE;EACd,KAAK,IAAIpE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGyE,KAAK,CAAC9E,MAAM,EAAEK,CAAC,EAAE,EAAE;IACrC,IAAIoE,GAAG,CAACtF,OAAO,CAAC2F,KAAK,CAACzE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;MAChCoE,GAAG,CAACM,IAAI,CAACD,KAAK,CAACzE,CAAC,CAAC,CAAC;IACpB;EACF;EACA,OAAOoE,GAAG;AACZ;AAEA,SAASO,UAAU,CAAEF,KAAK,EAAEG,IAAI,EAAE;EAChC,IAAMC,KAAK,GAAGJ,KAAK,CAAC3F,OAAO,CAAC8F,IAAI,CAAC;EACjC,IAAIC,KAAK,KAAK,CAAC,CAAC,EAAE;IAChBJ,KAAK,CAACK,MAAM,CAACD,KAAK,EAAE,CAAC,CAAC;EACxB;AACF;AAEA,SAASE,oBAAoB,CAAEC,WAAW,EAAEC,MAAM,EAAE;EAClD5C,MAAM,CAACsB,IAAI,CAACsB,MAAM,CAAC,CAACpB,OAAO,CAAC,UAAAe,IAAI,EAAI;IAClC,IAAId,KAAK,CAAChF,OAAO,CAAC8F,IAAI,CAAC,KAAK,CAAC,CAAC,IAAIrC,IAAI,CAAC0C,MAAM,CAACL,IAAI,CAAC,CAAC,EAAE;MACpDI,WAAW,CAACJ,IAAI,CAAC,GAAGX,SAAS,CAACe,WAAW,CAACJ,IAAI,CAAC,EAAEK,MAAM,CAACL,IAAI,CAAC,CAAC;IAChE;EACF,CAAC,CAAC;AACJ;AAEA,SAASM,qBAAqB,CAAEF,WAAW,EAAEC,MAAM,EAAE;EACnD,IAAI,CAACD,WAAW,IAAI,CAACC,MAAM,EAAE;IAC3B;EACF;EACA5C,MAAM,CAACsB,IAAI,CAACsB,MAAM,CAAC,CAACpB,OAAO,CAAC,UAAAe,IAAI,EAAI;IAClC,IAAId,KAAK,CAAChF,OAAO,CAAC8F,IAAI,CAAC,KAAK,CAAC,CAAC,IAAIrC,IAAI,CAAC0C,MAAM,CAACL,IAAI,CAAC,CAAC,EAAE;MACpDD,UAAU,CAACK,WAAW,CAACJ,IAAI,CAAC,EAAEK,MAAM,CAACL,IAAI,CAAC,CAAC;IAC7C;EACF,CAAC,CAAC;AACJ;AAEA,SAASO,cAAc,CAAEC,MAAM,EAAEH,MAAM,EAAE;EACvC,IAAI,OAAOG,MAAM,KAAK,QAAQ,IAAIxC,aAAa,CAACqC,MAAM,CAAC,EAAE;IACvDF,oBAAoB,CAACf,kBAAkB,CAACoB,MAAM,CAAC,KAAKpB,kBAAkB,CAACoB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAEH,MAAM,CAAC;EAC/F,CAAC,MAAM,IAAIrC,aAAa,CAACwC,MAAM,CAAC,EAAE;IAChCL,oBAAoB,CAAChB,kBAAkB,EAAEqB,MAAM,CAAC;EAClD;AACF;AAEA,SAASC,iBAAiB,CAAED,MAAM,EAAEH,MAAM,EAAE;EAC1C,IAAI,OAAOG,MAAM,KAAK,QAAQ,EAAE;IAC9B,IAAIxC,aAAa,CAACqC,MAAM,CAAC,EAAE;MACzBC,qBAAqB,CAAClB,kBAAkB,CAACoB,MAAM,CAAC,EAAEH,MAAM,CAAC;IAC3D,CAAC,MAAM;MACL,OAAOjB,kBAAkB,CAACoB,MAAM,CAAC;IACnC;EACF,CAAC,MAAM,IAAIxC,aAAa,CAACwC,MAAM,CAAC,EAAE;IAChCF,qBAAqB,CAACnB,kBAAkB,EAAEqB,MAAM,CAAC;EACnD;AACF;AAEA,SAASE,WAAW,CAAEV,IAAI,EAAEW,MAAM,EAAE;EAClC,OAAO,UAAUC,IAAI,EAAE;IACrB,OAAOZ,IAAI,CAACY,IAAI,EAAED,MAAM,CAAC,IAAIC,IAAI;EACnC,CAAC;AACH;AAEA,SAASC,SAAS,CAAE9C,GAAG,EAAE;EACvB,OAAO,CAAC,CAACA,GAAG,KAAK,sBAAOA,GAAG,MAAK,QAAQ,IAAI,OAAOA,GAAG,KAAK,UAAU,CAAC,IAAI,OAAOA,GAAG,CAAC+C,IAAI,KAAK,UAAU;AAC1G;AAEA,SAASC,KAAK,CAAElB,KAAK,EAAEe,IAAI,EAAED,MAAM,EAAE;EACnC,IAAIK,OAAO,GAAG,KAAK;EACnB,KAAK,IAAI5F,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGyE,KAAK,CAAC9E,MAAM,EAAEK,CAAC,EAAE,EAAE;IACrC,IAAM4E,IAAI,GAAGH,KAAK,CAACzE,CAAC,CAAC;IACrB,IAAI4F,OAAO,EAAE;MACXA,OAAO,GAAGC,OAAO,CAACC,OAAO,CAACR,WAAW,CAACV,IAAI,EAAEW,MAAM,CAAC,CAAC;IACtD,CAAC,MAAM;MACL,IAAMnB,GAAG,GAAGQ,IAAI,CAACY,IAAI,EAAED,MAAM,CAAC;MAC9B,IAAIE,SAAS,CAACrB,GAAG,CAAC,EAAE;QAClBwB,OAAO,GAAGC,OAAO,CAACC,OAAO,CAAC1B,GAAG,CAAC;MAChC;MACA,IAAIA,GAAG,KAAK,KAAK,EAAE;QACjB,OAAO;UACLsB,IAAI,kBAAI,CAAE;QACZ,CAAC;MACH;IACF;EACF;EACA,OAAOE,OAAO,IAAI;IAChBF,IAAI,gBAAEK,QAAQ,EAAE;MACd,OAAOA,QAAQ,CAACP,IAAI,CAAC;IACvB;EACF,CAAC;AACH;AAEA,SAASQ,cAAc,CAAEhB,WAAW,EAAgB;EAAA,IAAdiB,OAAO,uEAAG,CAAC,CAAC;EAChD,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAACpC,OAAO,CAAC,UAAAqC,IAAI,EAAI;IAC9C,IAAI5B,KAAK,CAACC,OAAO,CAACS,WAAW,CAACkB,IAAI,CAAC,CAAC,EAAE;MACpC,IAAMC,WAAW,GAAGF,OAAO,CAACC,IAAI,CAAC;MACjCD,OAAO,CAACC,IAAI,CAAC,GAAG,SAASE,mBAAmB,CAAEhC,GAAG,EAAE;QACjDuB,KAAK,CAACX,WAAW,CAACkB,IAAI,CAAC,EAAE9B,GAAG,EAAE6B,OAAO,CAAC,CAACP,IAAI,CAAC,UAACtB,GAAG,EAAK;UACnD;UACA,OAAO7B,IAAI,CAAC4D,WAAW,CAAC,IAAIA,WAAW,CAAC/B,GAAG,CAAC,IAAIA,GAAG;QACrD,CAAC,CAAC;MACJ,CAAC;IACH;EACF,CAAC,CAAC;EACF,OAAO6B,OAAO;AAChB;AAEA,SAASI,kBAAkB,CAAEjB,MAAM,EAAEkB,WAAW,EAAE;EAChD,IAAMC,gBAAgB,GAAG,EAAE;EAC3B,IAAIjC,KAAK,CAACC,OAAO,CAACR,kBAAkB,CAACuC,WAAW,CAAC,EAAE;IACjDC,gBAAgB,CAAC7B,IAAI,OAArB6B,gBAAgB,mCAASxC,kBAAkB,CAACuC,WAAW,EAAC;EAC1D;EACA,IAAMtB,WAAW,GAAGhB,kBAAkB,CAACoB,MAAM,CAAC;EAC9C,IAAIJ,WAAW,IAAIV,KAAK,CAACC,OAAO,CAACS,WAAW,CAACsB,WAAW,CAAC,EAAE;IACzDC,gBAAgB,CAAC7B,IAAI,OAArB6B,gBAAgB,mCAASvB,WAAW,CAACsB,WAAW,EAAC;EACnD;EACAC,gBAAgB,CAAC1C,OAAO,CAAC,UAAAe,IAAI,EAAI;IAC/B0B,WAAW,GAAG1B,IAAI,CAAC0B,WAAW,CAAC,IAAIA,WAAW;EAChD,CAAC,CAAC;EACF,OAAOA,WAAW;AACpB;AAEA,SAASE,sBAAsB,CAAEpB,MAAM,EAAE;EACvC,IAAMJ,WAAW,GAAG3C,MAAM,CAACa,MAAM,CAAC,IAAI,CAAC;EACvCb,MAAM,CAACsB,IAAI,CAACI,kBAAkB,CAAC,CAACF,OAAO,CAAC,UAAAe,IAAI,EAAI;IAC9C,IAAIA,IAAI,KAAK,aAAa,EAAE;MAC1BI,WAAW,CAACJ,IAAI,CAAC,GAAGb,kBAAkB,CAACa,IAAI,CAAC,CAAClF,KAAK,EAAE;IACtD;EACF,CAAC,CAAC;EACF,IAAM+G,iBAAiB,GAAGzC,kBAAkB,CAACoB,MAAM,CAAC;EACpD,IAAIqB,iBAAiB,EAAE;IACrBpE,MAAM,CAACsB,IAAI,CAAC8C,iBAAiB,CAAC,CAAC5C,OAAO,CAAC,UAAAe,IAAI,EAAI;MAC7C,IAAIA,IAAI,KAAK,aAAa,EAAE;QAC1BI,WAAW,CAACJ,IAAI,CAAC,GAAG,CAACI,WAAW,CAACJ,IAAI,CAAC,IAAI,EAAE,EAAEP,MAAM,CAACoC,iBAAiB,CAAC7B,IAAI,CAAC,CAAC;MAC/E;IACF,CAAC,CAAC;EACJ;EACA,OAAOI,WAAW;AACpB;AAEA,SAAS0B,SAAS,CAAEtB,MAAM,EAAEuB,GAAG,EAAEV,OAAO,EAAa;EAAA,kCAARV,MAAM;IAANA,MAAM;EAAA;EACjD,IAAMP,WAAW,GAAGwB,sBAAsB,CAACpB,MAAM,CAAC;EAClD,IAAIJ,WAAW,IAAI3C,MAAM,CAACsB,IAAI,CAACqB,WAAW,CAAC,CAACrF,MAAM,EAAE;IAClD,IAAI2E,KAAK,CAACC,OAAO,CAACS,WAAW,CAAC4B,MAAM,CAAC,EAAE;MACrC,IAAMxC,GAAG,GAAGuB,KAAK,CAACX,WAAW,CAAC4B,MAAM,EAAEX,OAAO,CAAC;MAC9C,OAAO7B,GAAG,CAACsB,IAAI,CAAC,UAACO,OAAO,EAAK;QAC3B;QACA,OAAOU,GAAG,gBACRX,cAAc,CAACQ,sBAAsB,CAACpB,MAAM,CAAC,EAAEa,OAAO,CAAC,SACpDV,MAAM,EACV;MACH,CAAC,CAAC;IACJ,CAAC,MAAM;MACL,OAAOoB,GAAG,gBAACX,cAAc,CAAChB,WAAW,EAAEiB,OAAO,CAAC,SAAKV,MAAM,EAAC;IAC7D;EACF;EACA,OAAOoB,GAAG,gBAACV,OAAO,SAAKV,MAAM,EAAC;AAChC;AAEA,IAAMsB,kBAAkB,GAAG;EACzBP,WAAW,uBAAElC,GAAG,EAAE;IAChB,IAAI,CAACqB,SAAS,CAACrB,GAAG,CAAC,EAAE;MACnB,OAAOA,GAAG;IACZ;IACA,OAAO,IAAIyB,OAAO,CAAC,UAACC,OAAO,EAAEgB,MAAM,EAAK;MACtC1C,GAAG,CAACsB,IAAI,CAAC,UAAAtB,GAAG,EAAI;QACd,IAAIA,GAAG,CAAC,CAAC,CAAC,EAAE;UACV0C,MAAM,CAAC1C,GAAG,CAAC,CAAC,CAAC,CAAC;QAChB,CAAC,MAAM;UACL0B,OAAO,CAAC1B,GAAG,CAAC,CAAC,CAAC,CAAC;QACjB;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;AACF,CAAC;AAED,IAAM2C,WAAW,GACf,+bAA+b;AAEjc,IAAMC,cAAc,GAAG,kBAAkB;;AAEzC;AACA,IAAMC,kBAAkB,GAAG,CAAC,qBAAqB,CAAC;;AAElD;AACA,IAAMC,SAAS,GAAG,CAAC,qBAAqB,EAAE,mBAAmB,CAAC;AAE9D,IAAMC,eAAe,GAAG,UAAU;AAElC,SAASC,YAAY,CAAElB,IAAI,EAAE;EAC3B,OAAOc,cAAc,CAACxH,IAAI,CAAC0G,IAAI,CAAC,IAAIe,kBAAkB,CAACnI,OAAO,CAACoH,IAAI,CAAC,KAAK,CAAC,CAAC;AAC7E;AACA,SAASmB,SAAS,CAAEnB,IAAI,EAAE;EACxB,OAAOa,WAAW,CAACvH,IAAI,CAAC0G,IAAI,CAAC,IAAIgB,SAAS,CAACpI,OAAO,CAACoH,IAAI,CAAC,KAAK,CAAC,CAAC;AACjE;AAEA,SAASoB,aAAa,CAAEpB,IAAI,EAAE;EAC5B,OAAOiB,eAAe,CAAC3H,IAAI,CAAC0G,IAAI,CAAC,IAAIA,IAAI,KAAK,QAAQ;AACxD;AAEA,SAASqB,aAAa,CAAE3B,OAAO,EAAE;EAC/B,OAAOA,OAAO,CAACF,IAAI,CAAC,UAAAF,IAAI,EAAI;IAC1B,OAAO,CAAC,IAAI,EAAEA,IAAI,CAAC;EACrB,CAAC,CAAC,CACCgC,KAAK,CAAC,UAAAC,GAAG;IAAA,OAAI,CAACA,GAAG,CAAC;EAAA,EAAC;AACxB;AAEA,SAASC,aAAa,CAAExB,IAAI,EAAE;EAC5B,IACEkB,YAAY,CAAClB,IAAI,CAAC,IAClBmB,SAAS,CAACnB,IAAI,CAAC,IACfoB,aAAa,CAACpB,IAAI,CAAC,EACnB;IACA,OAAO,KAAK;EACd;EACA,OAAO,IAAI;AACb;;AAEA;AACA,IAAI,CAACL,OAAO,CAACjE,SAAS,CAAC+F,OAAO,EAAE;EAC9B9B,OAAO,CAACjE,SAAS,CAAC+F,OAAO,GAAG,UAAU5B,QAAQ,EAAE;IAC9C,IAAMH,OAAO,GAAG,IAAI,CAACgC,WAAW;IAChC,OAAO,IAAI,CAAClC,IAAI,CACd,UAAAmC,KAAK;MAAA,OAAIjC,OAAO,CAACE,OAAO,CAACC,QAAQ,EAAE,CAAC,CAACL,IAAI,CAAC;QAAA,OAAMmC,KAAK;MAAA,EAAC;IAAA,GACtD,UAAAC,MAAM;MAAA,OAAIlC,OAAO,CAACE,OAAO,CAACC,QAAQ,EAAE,CAAC,CAACL,IAAI,CAAC,YAAM;QAC/C,MAAMoC,MAAM;MACd,CAAC,CAAC;IAAA,EACH;EACH,CAAC;AACH;AAEA,SAASC,SAAS,CAAE7B,IAAI,EAAES,GAAG,EAAE;EAC7B,IAAI,CAACe,aAAa,CAACxB,IAAI,CAAC,IAAI,CAAC3D,IAAI,CAACoE,GAAG,CAAC,EAAE;IACtC,OAAOA,GAAG;EACZ;EACA,OAAO,SAASqB,UAAU,GAA2B;IAAA,IAAzB/B,OAAO,uEAAG,CAAC,CAAC;IAAA,mCAAKV,MAAM;MAANA,MAAM;IAAA;IACjD,IAAIhD,IAAI,CAAC0D,OAAO,CAACgC,OAAO,CAAC,IAAI1F,IAAI,CAAC0D,OAAO,CAACiC,IAAI,CAAC,IAAI3F,IAAI,CAAC0D,OAAO,CAACkC,QAAQ,CAAC,EAAE;MACzE,OAAO9B,kBAAkB,CAACH,IAAI,EAAEQ,SAAS,gBAACR,IAAI,EAAES,GAAG,EAAEV,OAAO,SAAKV,MAAM,EAAC,CAAC;IAC3E;IACA,OAAOc,kBAAkB,CAACH,IAAI,EAAEqB,aAAa,CAAC,IAAI1B,OAAO,CAAC,UAACC,OAAO,EAAEgB,MAAM,EAAK;MAC7EJ,SAAS,gBAACR,IAAI,EAAES,GAAG,EAAEtE,MAAM,CAAC+F,MAAM,CAAC,CAAC,CAAC,EAAEnC,OAAO,EAAE;QAC9CgC,OAAO,EAAEnC,OAAO;QAChBoC,IAAI,EAAEpB;MACR,CAAC,CAAC,SAAKvB,MAAM,EAAC;IAChB,CAAC,CAAC,CAAC,CAAC;EACN,CAAC;AACH;AAEA,IAAM8C,GAAG,GAAG,IAAI;AAChB,IAAMC,iBAAiB,GAAG,GAAG;AAC7B,IAAIC,KAAK,GAAG,KAAK;AACjB,IAAIC,WAAW,GAAG,CAAC;AACnB,IAAIC,SAAS,GAAG,CAAC;AAEjB,SAASC,gBAAgB,GAAI;EAC3B,4BAII9H,EAAE,CAAC+H,iBAAiB,EAAE;IAHxBC,QAAQ,yBAARA,QAAQ;IACRC,UAAU,yBAAVA,UAAU;IACVC,WAAW,yBAAXA,WAAW,CACc,CAAC;;EAE5BN,WAAW,GAAGM,WAAW;EACzBL,SAAS,GAAGI,UAAU;EACtBN,KAAK,GAAGK,QAAQ,KAAK,KAAK;AAC5B;AAEA,SAASG,MAAM,CAAEC,MAAM,EAAEC,cAAc,EAAE;EACvC,IAAIT,WAAW,KAAK,CAAC,EAAE;IACrBE,gBAAgB,EAAE;EACpB;EAEAM,MAAM,GAAGE,MAAM,CAACF,MAAM,CAAC;EACvB,IAAIA,MAAM,KAAK,CAAC,EAAE;IAChB,OAAO,CAAC;EACV;EACA,IAAInJ,MAAM,GAAImJ,MAAM,GAAGV,iBAAiB,IAAKW,cAAc,IAAIT,WAAW,CAAC;EAC3E,IAAI3I,MAAM,GAAG,CAAC,EAAE;IACdA,MAAM,GAAG,CAACA,MAAM;EAClB;EACAA,MAAM,GAAGsJ,IAAI,CAACC,KAAK,CAACvJ,MAAM,GAAGwI,GAAG,CAAC;EACjC,IAAIxI,MAAM,KAAK,CAAC,EAAE;IAChB,IAAI4I,SAAS,KAAK,CAAC,IAAI,CAACF,KAAK,EAAE;MAC7B1I,MAAM,GAAG,CAAC;IACZ,CAAC,MAAM;MACLA,MAAM,GAAG,GAAG;IACd;EACF;EACA,OAAOmJ,MAAM,GAAG,CAAC,GAAG,CAACnJ,MAAM,GAAGA,MAAM;AACtC;AAEA,IAAMwJ,cAAc,GAAG,SAAS;AAChC,IAAMC,cAAc,GAAG,SAAS;AAChC,IAAMC,SAAS,GAAG,IAAI;AACtB,IAAMC,SAAS,GAAG,IAAI;AACtB,IAAMC,SAAS,GAAG,IAAI;AAEtB,IAAMC,QAAQ,GAAG,CAAC,CAAC;AAEnB,IAAIC,MAAM;AAEV;EACEA,MAAM,GAAGC,eAAe,CAAChJ,EAAE,CAAC+H,iBAAiB,EAAE,CAACkB,QAAQ,CAAC,IAAIN,SAAS;AACxE;AAEA,SAASO,gBAAgB,GAAI;EAC3B,IAAI,CAACC,cAAc,EAAE,EAAE;IACrB;EACF;EACA,IAAMC,UAAU,GAAG3H,MAAM,CAACsB,IAAI,CAACsG,WAAW,CAACC,OAAO,CAAC;EACnD,IAAIF,UAAU,CAACrK,MAAM,EAAE;IACrBqK,UAAU,CAACnG,OAAO,CAAC,UAAC8F,MAAM,EAAK;MAC7B,IAAMQ,WAAW,GAAGT,QAAQ,CAACC,MAAM,CAAC;MACpC,IAAMS,YAAY,GAAGH,WAAW,CAACC,OAAO,CAACP,MAAM,CAAC;MAChD,IAAIQ,WAAW,EAAE;QACf9H,MAAM,CAAC+F,MAAM,CAAC+B,WAAW,EAAEC,YAAY,CAAC;MAC1C,CAAC,MAAM;QACLV,QAAQ,CAACC,MAAM,CAAC,GAAGS,YAAY;MACjC;IACF,CAAC,CAAC;EACJ;AACF;AAEAN,gBAAgB,EAAE;AAElB,IAAMO,IAAI,GAAG,IAAAC,oBAAW,EACtBX,MAAM,EACL,CAAC,CAAC,CACJ;AACD,IAAMY,CAAC,GAAGF,IAAI,CAACE,CAAC;AAChB,IAAMC,SAAS,GAAIH,IAAI,CAACI,KAAK,GAAG;EAC9BC,YAAY,0BAAI;IAAA;IACd,IAAMC,OAAO,GAAGN,IAAI,CAACA,IAAI,CAACO,WAAW,CAAC,YAAM;MAC1C,KAAI,CAACC,YAAY,EAAE;IACrB,CAAC,CAAC;IACF,IAAI,CAACC,KAAK,CAAC,oBAAoB,EAAE,YAAY;MAC3CH,OAAO,EAAE;IACX,CAAC,CAAC;EACJ,CAAC;EACDI,OAAO,EAAE;IACPC,GAAG,eAAE1M,GAAG,EAAE2M,MAAM,EAAE;MAChB,OAAOV,CAAC,CAACjM,GAAG,EAAE2M,MAAM,CAAC;IACvB;EACF;AACF,CAAE;AACF,IAAMC,SAAS,GAAGb,IAAI,CAACa,SAAS;AAChC,IAAMC,SAAS,GAAGd,IAAI,CAACc,SAAS;AAEhC,SAASC,aAAa,CAAEzJ,GAAG,EAAE0J,KAAK,EAAE1B,MAAM,EAAE;EAC1C,IAAM2B,KAAK,GAAG3J,GAAG,CAAC4J,UAAU,CAAC;IAC3B5B,MAAM,EAAEA,MAAM,IAAIU,IAAI,CAACc,SAAS;EAClC,CAAC,CAAC;EACF,IAAMK,cAAc,GAAG,EAAE;EACzBH,KAAK,CAACI,YAAY,GAAG,UAAAjJ,EAAE,EAAI;IACzBgJ,cAAc,CAAC9G,IAAI,CAAClC,EAAE,CAAC;EACzB,CAAC;EACDH,MAAM,CAACqJ,cAAc,CAACL,KAAK,EAAE,SAAS,EAAE;IACtCM,GAAG,iBAAI;MACL,OAAOL,KAAK,CAAC3B,MAAM;IACrB,CAAC;IACDiC,GAAG,eAAEC,CAAC,EAAE;MACNP,KAAK,CAAC3B,MAAM,GAAGkC,CAAC;MAChBL,cAAc,CAAC3H,OAAO,CAAC,UAAAiI,KAAK;QAAA,OAAIA,KAAK,CAACD,CAAC,CAAC;MAAA,EAAC;IAC3C;EACF,CAAC,CAAC;AACJ;AAEA,SAAS9B,cAAc,GAAI;EACzB,OAAO,OAAOE,WAAW,KAAK,WAAW,IAAIA,WAAW,CAACC,OAAO,IAAI,CAAC,CAAC7H,MAAM,CAACsB,IAAI,CAACsG,WAAW,CAACC,OAAO,CAAC,CAACvK,MAAM;AAC/G;AAEA,SAASoM,OAAO,CAAE1M,GAAG,EAAE2M,KAAK,EAAE;EAC5B,OAAO,CAAC,CAACA,KAAK,CAACC,IAAI,CAAC,UAACC,IAAI;IAAA,OAAK7M,GAAG,CAACP,OAAO,CAACoN,IAAI,CAAC,KAAK,CAAC,CAAC;EAAA,EAAC;AACzD;AAEA,SAASC,UAAU,CAAE9M,GAAG,EAAE2M,KAAK,EAAE;EAC/B,OAAOA,KAAK,CAACC,IAAI,CAAC,UAACC,IAAI;IAAA,OAAK7M,GAAG,CAACP,OAAO,CAACoN,IAAI,CAAC,KAAK,CAAC;EAAA,EAAC;AACtD;AAEA,SAAStC,eAAe,CAAED,MAAM,EAAED,QAAQ,EAAE;EAC1C,IAAI,CAACC,MAAM,EAAE;IACX;EACF;EACAA,MAAM,GAAGA,MAAM,CAACyC,IAAI,EAAE,CAAC7M,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;EACzC,IAAImK,QAAQ,IAAIA,QAAQ,CAACC,MAAM,CAAC,EAAE;IAChC,OAAOA,MAAM;EACf;EACAA,MAAM,GAAGA,MAAM,CAAC0C,WAAW,EAAE;EAC7B,IAAI1C,MAAM,KAAK,SAAS,EAAE;IACxB;IACA,OAAON,cAAc;EACvB;EACA,IAAIM,MAAM,CAAC7K,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;IAC9B,IAAI6K,MAAM,CAAC7K,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;MAChC,OAAOuK,cAAc;IACvB;IACA,IAAIM,MAAM,CAAC7K,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;MAChC,OAAOwK,cAAc;IACvB;IACA,IAAIyC,OAAO,CAACpC,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE;MAClD,OAAOL,cAAc;IACvB;IACA,OAAOD,cAAc;EACvB;EACA,IAAMiD,IAAI,GAAGH,UAAU,CAACxC,MAAM,EAAE,CAACJ,SAAS,EAAEC,SAAS,EAAEC,SAAS,CAAC,CAAC;EAClE,IAAI6C,IAAI,EAAE;IACR,OAAOA,IAAI;EACb;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASC,WAAW,GAAI;EACtB;EACA,IAAIhK,IAAI,CAACiK,MAAM,CAAC,EAAE;IAChB,IAAMC,GAAG,GAAGD,MAAM,CAAC;MACjBE,YAAY,EAAE;IAChB,CAAC,CAAC;IACF,IAAID,GAAG,IAAIA,GAAG,CAACE,GAAG,EAAE;MAClB,OAAOF,GAAG,CAACE,GAAG,CAACC,OAAO;IACxB;EACF;EACA,OAAOhD,eAAe,CAAChJ,EAAE,CAAC+H,iBAAiB,EAAE,CAACkB,QAAQ,CAAC,IAAIN,SAAS;AACtE;AAEA,SAASsD,WAAW,CAAElD,MAAM,EAAE;EAC5B,IAAM8C,GAAG,GAAGlK,IAAI,CAACiK,MAAM,CAAC,GAAGA,MAAM,EAAE,GAAG,KAAK;EAC3C,IAAI,CAACC,GAAG,EAAE;IACR,OAAO,KAAK;EACd;EACA,IAAMK,SAAS,GAAGL,GAAG,CAACE,GAAG,CAACC,OAAO;EACjC,IAAIE,SAAS,KAAKnD,MAAM,EAAE;IACxB8C,GAAG,CAACE,GAAG,CAACC,OAAO,GAAGjD,MAAM;IACxBoD,uBAAuB,CAAClJ,OAAO,CAAC,UAACrB,EAAE;MAAA,OAAKA,EAAE,CAAC;QACzCmH,MAAM,EAANA;MACF,CAAC,CAAC;IAAA,EAAC;IACH,OAAO,IAAI;EACb;EACA,OAAO,KAAK;AACd;AAEA,IAAMoD,uBAAuB,GAAG,EAAE;AAClC,SAASC,cAAc,CAAExK,EAAE,EAAE;EAC3B,IAAIuK,uBAAuB,CAACjO,OAAO,CAAC0D,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE;IAC9CuK,uBAAuB,CAACrI,IAAI,CAAClC,EAAE,CAAC;EAClC;AACF;AAEA,IAAI,OAAOyK,MAAM,KAAK,WAAW,EAAE;EACjCA,MAAM,CAAC9B,SAAS,GAAGoB,WAAW;AAChC;AAEA,IAAMW,YAAY,GAAG;EACnBrG,kBAAkB,EAAlBA;AACF,CAAC;AAED,IAAIsG,OAAO,GAAG,aAAa9K,MAAM,CAAC+K,MAAM,CAAC;EACvCC,SAAS,EAAE,IAAI;EACftE,MAAM,EAAEA,MAAM;EACdoC,SAAS,EAAEoB,WAAW;EACtBrB,SAAS,EAAE2B,WAAW;EACtBG,cAAc,EAAEA,cAAc;EAC9B7H,cAAc,EAAEA,cAAc;EAC9BE,iBAAiB,EAAEA,iBAAiB;EACpC6H,YAAY,EAAEA;AAChB,CAAC,CAAC;AAEF,SAASI,mBAAmB,CAAEC,GAAG,EAAE;EACjC,IAAMC,KAAK,GAAGC,eAAe,EAAE;EAC/B,IAAIC,GAAG,GAAGF,KAAK,CAAC7N,MAAM;EACtB,OAAO+N,GAAG,EAAE,EAAE;IACZ,IAAMC,IAAI,GAAGH,KAAK,CAACE,GAAG,CAAC;IACvB,IAAIC,IAAI,CAACC,KAAK,IAAID,IAAI,CAACC,KAAK,CAACC,QAAQ,KAAKN,GAAG,EAAE;MAC7C,OAAOG,GAAG;IACZ;EACF;EACA,OAAO,CAAC,CAAC;AACX;AAEA,IAAII,UAAU,GAAG;EACf5H,IAAI,gBAAE6H,QAAQ,EAAE;IACd,IAAIA,QAAQ,CAACC,MAAM,KAAK,MAAM,IAAID,QAAQ,CAACE,KAAK,EAAE;MAChD,OAAO,cAAc;IACvB;IACA,OAAO,YAAY;EACrB,CAAC;EACDC,IAAI,gBAAEH,QAAQ,EAAE;IACd,IAAIA,QAAQ,CAACC,MAAM,KAAK,MAAM,IAAID,QAAQ,CAACR,GAAG,EAAE;MAC9C,IAAMY,eAAe,GAAGb,mBAAmB,CAACS,QAAQ,CAACR,GAAG,CAAC;MACzD,IAAIY,eAAe,KAAK,CAAC,CAAC,EAAE;QAC1B,IAAMF,KAAK,GAAGR,eAAe,EAAE,CAAC9N,MAAM,GAAG,CAAC,GAAGwO,eAAe;QAC5D,IAAIF,KAAK,GAAG,CAAC,EAAE;UACbF,QAAQ,CAACE,KAAK,GAAGA,KAAK;QACxB;MACF;IACF;EACF;AACF,CAAC;AAED,IAAIG,YAAY,GAAG;EACjBF,IAAI,gBAAEH,QAAQ,EAAE;IACd,IAAIM,YAAY,GAAGC,QAAQ,CAACP,QAAQ,CAACQ,OAAO,CAAC;IAC7C,IAAIC,KAAK,CAACH,YAAY,CAAC,EAAE;MACvB;IACF;IACA,IAAMI,IAAI,GAAGV,QAAQ,CAACU,IAAI;IAC1B,IAAI,CAACnK,KAAK,CAACC,OAAO,CAACkK,IAAI,CAAC,EAAE;MACxB;IACF;IACA,IAAMf,GAAG,GAAGe,IAAI,CAAC9O,MAAM;IACvB,IAAI,CAAC+N,GAAG,EAAE;MACR;IACF;IACA,IAAIW,YAAY,GAAG,CAAC,EAAE;MACpBA,YAAY,GAAG,CAAC;IAClB,CAAC,MAAM,IAAIA,YAAY,IAAIX,GAAG,EAAE;MAC9BW,YAAY,GAAGX,GAAG,GAAG,CAAC;IACxB;IACA,IAAIW,YAAY,GAAG,CAAC,EAAE;MACpBN,QAAQ,CAACQ,OAAO,GAAGE,IAAI,CAACJ,YAAY,CAAC;MACrCN,QAAQ,CAACU,IAAI,GAAGA,IAAI,CAACC,MAAM,CACzB,UAACC,IAAI,EAAE9J,KAAK;QAAA,OAAKA,KAAK,GAAGwJ,YAAY,GAAGM,IAAI,KAAKF,IAAI,CAACJ,YAAY,CAAC,GAAG,IAAI;MAAA,EAC3E;IACH,CAAC,MAAM;MACLN,QAAQ,CAACQ,OAAO,GAAGE,IAAI,CAAC,CAAC,CAAC;IAC5B;IACA,OAAO;MACLG,SAAS,EAAE,KAAK;MAChBC,IAAI,EAAE;IACR,CAAC;EACH;AACF,CAAC;AAED,IAAMC,QAAQ,GAAG,gBAAgB;AACjC,IAAIC,QAAQ;AACZ,SAASC,WAAW,CAAEnP,MAAM,EAAE;EAC5BkP,QAAQ,GAAGA,QAAQ,IAAInO,EAAE,CAACC,cAAc,CAACiO,QAAQ,CAAC;EAClD,IAAI,CAACC,QAAQ,EAAE;IACbA,QAAQ,GAAG7M,IAAI,CAACC,GAAG,EAAE,GAAG,EAAE,GAAGgH,IAAI,CAACC,KAAK,CAACD,IAAI,CAAC8F,MAAM,EAAE,GAAG,GAAG,CAAC;IAC5DrO,EAAE,CAACsO,UAAU,CAAC;MACZ5Q,GAAG,EAAEwQ,QAAQ;MACbtJ,IAAI,EAAEuJ;IACR,CAAC,CAAC;EACJ;EACAlP,MAAM,CAACkP,QAAQ,GAAGA,QAAQ;AAC5B;AAEA,SAASI,iBAAiB,CAAEtP,MAAM,EAAE;EAClC,IAAIA,MAAM,CAACuP,QAAQ,EAAE;IACnB,IAAMA,QAAQ,GAAGvP,MAAM,CAACuP,QAAQ;IAChCvP,MAAM,CAACwP,cAAc,GAAG;MACtBC,GAAG,EAAEF,QAAQ,CAACE,GAAG;MACjBC,IAAI,EAAEH,QAAQ,CAACG,IAAI;MACnBC,KAAK,EAAE3P,MAAM,CAACiJ,WAAW,GAAGsG,QAAQ,CAACI,KAAK;MAC1CC,MAAM,EAAE5P,MAAM,CAAC6P,YAAY,GAAGN,QAAQ,CAACK;IACzC,CAAC;EACH;AACF;AAEA,SAASE,kBAAkB,CAAE9P,MAAM,EAAE;EACnC,oBAKIA,MAAM,CAJR+P,KAAK;IAALA,KAAK,8BAAG,EAAE;IAAA,gBAIR/P,MAAM,CAJIgQ,KAAK;IAALA,KAAK,8BAAG,EAAE;IAAA,iBAIpBhQ,MAAM,CAJgBiQ,MAAM;IAANA,MAAM,+BAAG,EAAE;IAAA,mBAIjCjQ,MAAM,CAHRgK,QAAQ;IAARA,QAAQ,iCAAG,EAAE;IAAEkG,KAAK,GAGlBlQ,MAAM,CAHOkQ,KAAK;IAAEC,OAAO,GAG3BnQ,MAAM,CAHcmQ,OAAO;IAC7BpH,QAAQ,GAEN/I,MAAM,CAFR+I,QAAQ;IAAEqH,eAAe,GAEvBpQ,MAAM,CAFEoQ,eAAe;IACzBC,UAAU,GACRrQ,MAAM,CADRqQ,UAAU;IAAErH,UAAU,GACpBhJ,MAAM,CADIgJ,UAAU;IAAEsH,iBAAiB,GACvCtQ,MAAM,CADgBsQ,iBAAiB;EAE3C;;EAEA,IAAMC,UAAU,GAAG,CAAC,CAAC;;EAErB;EACA,IAAIC,MAAM,GAAG,EAAE;EACf,IAAIC,SAAS,GAAG,EAAE;EAClB;IACED,MAAM,GAAGP,MAAM,CAACzP,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;IACnCiQ,SAAS,GAAGR,MAAM,CAACzP,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;EACxC;EACA,IAAIkQ,WAAW,GAAGP,OAAO;;EAEzB;EACA,IAAMQ,UAAU,GAAGC,gBAAgB,CAAC5Q,MAAM,EAAEgQ,KAAK,CAAC;;EAElD;EACA,IAAMa,WAAW,GAAGC,cAAc,CAACf,KAAK,CAAC;;EAEzC;EACA,IAAMgB,SAAS,GAAGC,WAAW,CAAChR,MAAM,CAAC;;EAErC;EACA,IAAIiR,kBAAkB,GAAGX,iBAAiB,CAAC,CAAC;;EAE5C;EACA,IAAIY,iBAAiB,GAAGlI,UAAU;;EAElC;EACA,IAAImI,WAAW,GAAGd,UAAU;;EAE5B;EACA,IAAMe,YAAY,GAAGpH,QAAQ,CAACtK,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;;EAEhD;;EAEA,IAAM2R,UAAU,GAAG;IACjBC,KAAK,EAAEC,gBAAsB;IAC7BC,OAAO,EAAED,kBAAwB;IACjCE,UAAU,EAAEF,OAAgC;IAC5CG,cAAc,EAAEH,KAAgC;IAChDI,WAAW,EAAEC,cAAc,CAACR,YAAY,CAAC;IACzCS,iBAAiB,EAAEN,QAAgC;IACnDO,iBAAiB,EAAEP,QAAgC;IACnDQ,WAAW,EAAER,SAA4B,IAAIA,WAAwB;IACrEV,WAAW,EAAXA,WAAW;IACXmB,WAAW,EAAEhC,KAAK;IAClBW,UAAU,EAAVA,UAAU;IACVsB,gBAAgB,EAAEf,iBAAiB;IACnCZ,iBAAiB,EAAEW,kBAAkB;IACrCT,MAAM,EAAEA,MAAM,CAAC0B,iBAAiB,EAAE;IAClCzB,SAAS,EAATA,SAAS;IACT0B,SAAS,EAAEjC,KAAK;IAChBQ,WAAW,EAAXA,WAAW;IACXU,YAAY,EAAZA,YAAY;IACZgB,QAAQ,EAAErB,SAAS;IACnBsB,cAAc,EAAElB,WAAW;IAC3BmB,mBAAmB,EAAElC,eAAe;IACpCmC,SAAS,EAAE,CAAC;IACZC,YAAY,EAAE,CAAC;IACf;IACAC,UAAU,EAAEC,SAAS;IACrBC,OAAO,EAAED,SAAS;IAClBE,EAAE,EAAEF,SAAS;IACbG,eAAe,EAAEH,SAAS;IAC1BI,WAAW,EAAEJ,SAAS;IACtBK,cAAc,EAAEL;EAClB,CAAC;EAEDlQ,MAAM,CAAC+F,MAAM,CAACvI,MAAM,EAAEqR,UAAU,EAAEd,UAAU,CAAC;AAC/C;AAEA,SAASK,gBAAgB,CAAE5Q,MAAM,EAAEgQ,KAAK,EAAE;EACxC,IAAIW,UAAU,GAAG3Q,MAAM,CAAC2Q,UAAU,IAAI,OAAO;EAC7C;IACE,IAAMqC,cAAc,GAAG;MACrBC,IAAI,EAAE,KAAK;MACXC,OAAO,EAAE,IAAI;MACbC,GAAG,EAAE;IACP,CAAC;IACD,IAAMC,kBAAkB,GAAG5Q,MAAM,CAACsB,IAAI,CAACkP,cAAc,CAAC;IACtD,IAAMK,MAAM,GAAGrD,KAAK,CAACkC,iBAAiB,EAAE;IACxC,KAAK,IAAIlN,KAAK,GAAG,CAAC,EAAEA,KAAK,GAAGoO,kBAAkB,CAACtT,MAAM,EAAEkF,KAAK,EAAE,EAAE;MAC9D,IAAMsO,EAAE,GAAGF,kBAAkB,CAACpO,KAAK,CAAC;MACpC,IAAIqO,MAAM,CAACpU,OAAO,CAACqU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE;QAC7B3C,UAAU,GAAGqC,cAAc,CAACM,EAAE,CAAC;QAC/B;MACF;IACF;EACF;EACA,OAAO3C,UAAU;AACnB;AAEA,SAASG,cAAc,CAAEf,KAAK,EAAE;EAC9B,IAAIc,WAAW,GAAGd,KAAK;EACvB,IAAIc,WAAW,EAAE;IACfA,WAAW,GAAGd,KAAK,CAACmC,iBAAiB,EAAE;EACzC;EACA,OAAOrB,WAAW;AACpB;AAEA,SAASe,cAAc,CAAE2B,eAAe,EAAE;EACxC,OAAO7G,WAAW,GACdA,WAAW,EAAE,GACb6G,eAAe;AACrB;AAEA,SAASvC,WAAW,CAAEhR,MAAM,EAAE;EAC5B,IAAMwT,SAAS,GAAI,QAAQ;EAC3B,IAAIzC,SAAS,GAAG/Q,MAAM,CAACoS,QAAQ,IAAIoB,SAAS,CAAC,CAAC;EAC9C;IACE,IAAIxT,MAAM,CAACyT,WAAW,EAAE;MACtB1C,SAAS,GAAG/Q,MAAM,CAACyT,WAAW;IAChC,CAAC,MAAM,IAAIzT,MAAM,CAAC0T,IAAI,IAAI1T,MAAM,CAAC0T,IAAI,CAACC,GAAG,EAAE;MACzC5C,SAAS,GAAG/Q,MAAM,CAAC0T,IAAI,CAACC,GAAG;IAC7B;EACF;EAEA,OAAO5C,SAAS;AAClB;AAEA,IAAI6C,aAAa,GAAG;EAClBnN,WAAW,EAAE,qBAAUzG,MAAM,EAAE;IAC7BmP,WAAW,CAACnP,MAAM,CAAC;IACnBsP,iBAAiB,CAACtP,MAAM,CAAC;IACzB8P,kBAAkB,CAAC9P,MAAM,CAAC;EAC5B;AACF,CAAC;AAED,IAAI6T,eAAe,GAAG;EACpBxF,IAAI,gBAAEH,QAAQ,EAAE;IACd,IAAI,sBAAOA,QAAQ,MAAK,QAAQ,EAAE;MAChCA,QAAQ,CAAC4F,SAAS,GAAG5F,QAAQ,CAAC6F,KAAK;IACrC;EACF;AACF,CAAC;AAED,IAAIC,cAAc,GAAG;EACnBvN,WAAW,EAAE,qBAAUzG,MAAM,EAAE;IAC7B,cAAiDA,MAAM;MAA/CmQ,OAAO,WAAPA,OAAO;MAAEnG,QAAQ,WAARA,QAAQ;MAAEqG,UAAU,WAAVA,UAAU;MAAEH,KAAK,WAALA,KAAK;IAE5C,IAAMa,SAAS,GAAGC,WAAW,CAAChR,MAAM,CAAC;IAErC,IAAMoR,YAAY,GAAGpH,QAAQ,CAACtK,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;IAE/CM,MAAM,GAAG4D,UAAU,CAACpB,MAAM,CAAC+F,MAAM,CAACvI,MAAM,EAAE;MACxCsR,KAAK,EAAEC,gBAAsB;MAC7BC,OAAO,EAAED,kBAAwB;MACjCE,UAAU,EAAEF,OAAgC;MAC5CG,cAAc,EAAEH,KAAgC;MAChDI,WAAW,EAAEC,cAAc,CAACR,YAAY,CAAC;MACzCV,WAAW,EAAEP,OAAO;MACpBiB,YAAY,EAAZA,YAAY;MACZgB,QAAQ,EAAErB,SAAS;MACnBsB,cAAc,EAAEhC,UAAU;MAC1B8B,SAAS,EAAEjC;IACb,CAAC,CAAC,CAAC;EACL;AACF,CAAC;AAED,IAAI+D,aAAa,GAAG;EAClBxN,WAAW,EAAE,qBAAUzG,MAAM,EAAE;IAC7B,eAAyBA,MAAM;MAAvB+P,KAAK,YAALA,KAAK;MAAEC,KAAK,YAALA,KAAK;IACpB,IAAMW,UAAU,GAAGC,gBAAgB,CAAC5Q,MAAM,EAAEgQ,KAAK,CAAC;IAClD,IAAMa,WAAW,GAAGC,cAAc,CAACf,KAAK,CAAC;IACzCZ,WAAW,CAACnP,MAAM,CAAC;IAEnBA,MAAM,GAAG4D,UAAU,CAACpB,MAAM,CAAC+F,MAAM,CAACvI,MAAM,EAAE;MACxC2Q,UAAU,EAAVA,UAAU;MACVE,WAAW,EAAXA,WAAW;MACXmB,WAAW,EAAEhC;IACf,CAAC,CAAC,CAAC;EACL;AACF,CAAC;AAED,IAAIkE,aAAa,GAAG;EAClBzN,WAAW,EAAE,qBAAUzG,MAAM,EAAE;IAC7BsP,iBAAiB,CAACtP,MAAM,CAAC;IAEzBA,MAAM,GAAG4D,UAAU,CAACpB,MAAM,CAAC+F,MAAM,CAACvI,MAAM,EAAE;MACxCuS,SAAS,EAAE,CAAC;MACZC,YAAY,EAAE;IAChB,CAAC,CAAC,CAAC;EACL;AACF,CAAC;AAED,IAAI2B,sBAAsB,GAAG;EAC3B1N,WAAW,EAAE,qBAAUzG,MAAM,EAAE;IAC7B,IAAQoU,uBAAuB,GAAKpU,MAAM,CAAlCoU,uBAAuB;IAE/BpU,MAAM,CAACqU,gBAAgB,GAAG,aAAa;IACvC,IAAID,uBAAuB,KAAK,IAAI,EAAE;MACpCpU,MAAM,CAACqU,gBAAgB,GAAG,SAAS;IACrC,CAAC,MAAM,IAAID,uBAAuB,KAAK,KAAK,EAAE;MAC5CpU,MAAM,CAACqU,gBAAgB,GAAG,MAAM;IAClC;EACF;AACF,CAAC;;AAED;;AAEA,IAAMC,aAAa,GAAG;EACpBjG,IAAI,gBAAEH,QAAQ,EAAE;IACd;IACA,IAAIA,QAAQ,CAACqG,gBAAgB,IAAI,CAACrG,QAAQ,CAACsG,cAAc,EAAE;MACzDtG,QAAQ,CAACsG,cAAc,GAAGtG,QAAQ,CAACqG,gBAAgB;IACrD;IACA,IAAIrG,QAAQ,CAACuG,eAAe,IAAI,CAACvG,QAAQ,CAACwG,aAAa,EAAE;MACvDxG,QAAQ,CAACwG,aAAa,GAAGxG,QAAQ,CAACuG,eAAe;IACnD;EACF;AACF,CAAC;AAED,IAAME,SAAS,GAAG;EAChB1G,UAAU,EAAVA,UAAU;EACV;EACAM,YAAY,EAAZA,YAAY;EACZqF,aAAa,EAAbA,aAAa;EACb9K,iBAAiB,EAAE8K,aAAa;EAChCC,eAAe,EAAfA,eAAe;EACfG,cAAc,EAAdA,cAAc;EACdC,aAAa,EAAbA,aAAa;EACbC,aAAa,EAAbA,aAAa;EACbC,sBAAsB,EAAtBA,sBAAsB;EACtBG,aAAa,EAAbA;AACF,CAAC;AACD,IAAMM,KAAK,GAAG,CACZ,SAAS,EACT,aAAa,EACb,eAAe,EACf,gBAAgB,CACjB;AACD,IAAMC,QAAQ,GAAG,EAAE;AAEnB,IAAMC,SAAS,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,CAAC;AAE3D,SAASC,eAAe,CAAEC,UAAU,EAAEzP,MAAM,EAAEkB,WAAW,EAAE;EACzD,OAAO,UAAUlC,GAAG,EAAE;IACpB,OAAOgB,MAAM,CAAC0P,kBAAkB,CAACD,UAAU,EAAEzQ,GAAG,EAAEkC,WAAW,CAAC,CAAC;EACjE,CAAC;AACH;AAEA,SAASyO,WAAW,CAAEF,UAAU,EAAE9G,QAAQ,EAA2D;EAAA,IAAzDiH,UAAU,uEAAG,CAAC,CAAC;EAAA,IAAE1O,WAAW,uEAAG,CAAC,CAAC;EAAA,IAAE2O,YAAY,uEAAG,KAAK;EACjG,IAAIrS,aAAa,CAACmL,QAAQ,CAAC,EAAE;IAAE;IAC7B,IAAMmH,MAAM,GAAGD,YAAY,KAAK,IAAI,GAAGlH,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC;IACtD,IAAIxL,IAAI,CAACyS,UAAU,CAAC,EAAE;MACpBA,UAAU,GAAGA,UAAU,CAACjH,QAAQ,EAAEmH,MAAM,CAAC,IAAI,CAAC,CAAC;IACjD;IACA,KAAK,IAAM5W,GAAG,IAAIyP,QAAQ,EAAE;MAC1B,IAAIjL,MAAM,CAACkS,UAAU,EAAE1W,GAAG,CAAC,EAAE;QAC3B,IAAI6W,SAAS,GAAGH,UAAU,CAAC1W,GAAG,CAAC;QAC/B,IAAIiE,IAAI,CAAC4S,SAAS,CAAC,EAAE;UACnBA,SAAS,GAAGA,SAAS,CAACpH,QAAQ,CAACzP,GAAG,CAAC,EAAEyP,QAAQ,EAAEmH,MAAM,CAAC;QACxD;QACA,IAAI,CAACC,SAAS,EAAE;UAAE;UAChBC,OAAO,CAACC,IAAI,gBAASR,UAAU,4FAAyDvW,GAAG,OAAI;QACjG,CAAC,MAAM,IAAImE,KAAK,CAAC0S,SAAS,CAAC,EAAE;UAAE;UAC7BD,MAAM,CAACC,SAAS,CAAC,GAAGpH,QAAQ,CAACzP,GAAG,CAAC;QACnC,CAAC,MAAM,IAAIsE,aAAa,CAACuS,SAAS,CAAC,EAAE;UAAE;UACrCD,MAAM,CAACC,SAAS,CAACjP,IAAI,GAAGiP,SAAS,CAACjP,IAAI,GAAG5H,GAAG,CAAC,GAAG6W,SAAS,CAACtN,KAAK;QACjE;MACF,CAAC,MAAM,IAAI8M,SAAS,CAAC7V,OAAO,CAACR,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;QACxC,IAAIiE,IAAI,CAACwL,QAAQ,CAACzP,GAAG,CAAC,CAAC,EAAE;UACvB4W,MAAM,CAAC5W,GAAG,CAAC,GAAGsW,eAAe,CAACC,UAAU,EAAE9G,QAAQ,CAACzP,GAAG,CAAC,EAAEgI,WAAW,CAAC;QACvE;MACF,CAAC,MAAM;QACL,IAAI,CAAC2O,YAAY,EAAE;UACjBC,MAAM,CAAC5W,GAAG,CAAC,GAAGyP,QAAQ,CAACzP,GAAG,CAAC;QAC7B;MACF;IACF;IACA,OAAO4W,MAAM;EACf,CAAC,MAAM,IAAI3S,IAAI,CAACwL,QAAQ,CAAC,EAAE;IACzBA,QAAQ,GAAG6G,eAAe,CAACC,UAAU,EAAE9G,QAAQ,EAAEzH,WAAW,CAAC;EAC/D;EACA,OAAOyH,QAAQ;AACjB;AAEA,SAAS+G,kBAAkB,CAAED,UAAU,EAAEzQ,GAAG,EAAEkC,WAAW,EAA2B;EAAA,IAAzBgP,eAAe,uEAAG,KAAK;EAChF,IAAI/S,IAAI,CAACiS,SAAS,CAAClO,WAAW,CAAC,EAAE;IAAE;IACjClC,GAAG,GAAGoQ,SAAS,CAAClO,WAAW,CAACuO,UAAU,EAAEzQ,GAAG,CAAC;EAC9C;EACA,OAAO2Q,WAAW,CAACF,UAAU,EAAEzQ,GAAG,EAAEkC,WAAW,EAAE,CAAC,CAAC,EAAEgP,eAAe,CAAC;AACvE;AAEA,SAASC,OAAO,CAAEV,UAAU,EAAEzP,MAAM,EAAE;EACpC,IAAItC,MAAM,CAAC0R,SAAS,EAAEK,UAAU,CAAC,EAAE;IACjC,IAAMW,QAAQ,GAAGhB,SAAS,CAACK,UAAU,CAAC;IACtC,IAAI,CAACW,QAAQ,EAAE;MAAE;MACf,OAAO,YAAY;QACjBJ,OAAO,CAAC9T,KAAK,uEAAuCuT,UAAU,QAAK;MACrE,CAAC;IACH;IACA,OAAO,UAAUY,IAAI,EAAEC,IAAI,EAAE;MAAE;MAC7B,IAAIzP,OAAO,GAAGuP,QAAQ;MACtB,IAAIjT,IAAI,CAACiT,QAAQ,CAAC,EAAE;QAClBvP,OAAO,GAAGuP,QAAQ,CAACC,IAAI,CAAC;MAC1B;MAEAA,IAAI,GAAGV,WAAW,CAACF,UAAU,EAAEY,IAAI,EAAExP,OAAO,CAACiI,IAAI,EAAEjI,OAAO,CAACK,WAAW,CAAC;MAEvE,IAAM4H,IAAI,GAAG,CAACuH,IAAI,CAAC;MACnB,IAAI,OAAOC,IAAI,KAAK,WAAW,EAAE;QAC/BxH,IAAI,CAACxJ,IAAI,CAACgR,IAAI,CAAC;MACjB;MACA,IAAInT,IAAI,CAAC0D,OAAO,CAACC,IAAI,CAAC,EAAE;QACtB2O,UAAU,GAAG5O,OAAO,CAACC,IAAI,CAACuP,IAAI,CAAC;MACjC,CAAC,MAAM,IAAIhT,KAAK,CAACwD,OAAO,CAACC,IAAI,CAAC,EAAE;QAC9B2O,UAAU,GAAG5O,OAAO,CAACC,IAAI;MAC3B;MACA,IAAMI,WAAW,GAAG1F,EAAE,CAACiU,UAAU,CAAC,CAACc,KAAK,CAAC/U,EAAE,EAAEsN,IAAI,CAAC;MAClD,IAAI7G,SAAS,CAACwN,UAAU,CAAC,EAAE;QAAE;QAC3B,OAAOC,kBAAkB,CAACD,UAAU,EAAEvO,WAAW,EAAEL,OAAO,CAACK,WAAW,EAAEc,YAAY,CAACyN,UAAU,CAAC,CAAC;MACnG;MACA,OAAOvO,WAAW;IACpB,CAAC;EACH;EACA,OAAOlB,MAAM;AACf;AAEA,IAAMwQ,QAAQ,GAAGvT,MAAM,CAACa,MAAM,CAAC,IAAI,CAAC;AAEpC,IAAM2S,KAAK,GAAG,CACZ,sBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,QAAQ,EACR,SAAS,EACT,OAAO,CACR;AAED,SAASC,aAAa,CAAE5P,IAAI,EAAE;EAC5B,OAAO,SAAS6P,OAAO,OAGpB;IAAA,IAFD7N,IAAI,QAAJA,IAAI;MACJC,QAAQ,QAARA,QAAQ;IAER,IAAM/D,GAAG,GAAG;MACV4R,MAAM,YAAK9P,IAAI,2BAAiBA,IAAI;IACtC,CAAC;IACD3D,IAAI,CAAC2F,IAAI,CAAC,IAAIA,IAAI,CAAC9D,GAAG,CAAC;IACvB7B,IAAI,CAAC4F,QAAQ,CAAC,IAAIA,QAAQ,CAAC/D,GAAG,CAAC;EACjC,CAAC;AACH;AAEAyR,KAAK,CAAChS,OAAO,CAAC,UAAUqC,IAAI,EAAE;EAC5B0P,QAAQ,CAAC1P,IAAI,CAAC,GAAG4P,aAAa,CAAC5P,IAAI,CAAC;AACtC,CAAC,CAAC;AAEF,IAAI+P,SAAS,GAAG;EACdC,KAAK,EAAE,CAAC,QAAQ,CAAC;EACjBC,KAAK,EAAE,CAAC,QAAQ,CAAC;EACjBC,OAAO,EAAE,CAAC,OAAO,CAAC;EAClB1R,IAAI,EAAE,CAAC,QAAQ;AACjB,CAAC;AAED,SAAS2R,WAAW,QAKjB;EAAA,IAJDC,OAAO,SAAPA,OAAO;IACPrO,OAAO,SAAPA,OAAO;IACPC,IAAI,SAAJA,IAAI;IACJC,QAAQ,SAARA,QAAQ;EAER,IAAI/D,GAAG,GAAG,KAAK;EACf,IAAI6R,SAAS,CAACK,OAAO,CAAC,EAAE;IACtBlS,GAAG,GAAG;MACJ4R,MAAM,EAAE,gBAAgB;MACxBM,OAAO,EAAPA,OAAO;MACPC,QAAQ,EAAEN,SAAS,CAACK,OAAO;IAC7B,CAAC;IACD/T,IAAI,CAAC0F,OAAO,CAAC,IAAIA,OAAO,CAAC7D,GAAG,CAAC;EAC/B,CAAC,MAAM;IACLA,GAAG,GAAG;MACJ4R,MAAM,EAAE;IACV,CAAC;IACDzT,IAAI,CAAC2F,IAAI,CAAC,IAAIA,IAAI,CAAC9D,GAAG,CAAC;EACzB;EACA7B,IAAI,CAAC4F,QAAQ,CAAC,IAAIA,QAAQ,CAAC/D,GAAG,CAAC;AACjC;AAEA,IAAIoS,QAAQ,GAAG,aAAanU,MAAM,CAAC+K,MAAM,CAAC;EACxCC,SAAS,EAAE,IAAI;EACfgJ,WAAW,EAAEA;AACf,CAAC,CAAC;AAEF,IAAMI,UAAU,GAAI,YAAY;EAC9B,IAAIC,OAAO;EACX,OAAO,SAASC,aAAa,GAAI;IAC/B,IAAI,CAACD,OAAO,EAAE;MACZA,OAAO,GAAG,IAAI/U,YAAG,EAAE;IACrB;IACA,OAAO+U,OAAO;EAChB,CAAC;AACH,CAAC,EAAG;AAEJ,SAASf,KAAK,CAAEiB,GAAG,EAAExR,MAAM,EAAE8I,IAAI,EAAE;EACjC,OAAO0I,GAAG,CAACxR,MAAM,CAAC,CAACuQ,KAAK,CAACiB,GAAG,EAAE1I,IAAI,CAAC;AACrC;AAEA,SAAS2I,GAAG,GAAI;EACd,OAAOlB,KAAK,CAACc,UAAU,EAAE,EAAE,KAAK,6BAAMK,SAAS,EAAE;AACnD;AACA,SAASC,IAAI,GAAI;EACf,OAAOpB,KAAK,CAACc,UAAU,EAAE,EAAE,MAAM,6BAAMK,SAAS,EAAE;AACpD;AACA,SAAShM,KAAK,GAAI;EAChB,OAAO6K,KAAK,CAACc,UAAU,EAAE,EAAE,OAAO,6BAAMK,SAAS,EAAE;AACrD;AACA,SAASE,KAAK,GAAI;EAChB,OAAOrB,KAAK,CAACc,UAAU,EAAE,EAAE,OAAO,6BAAMK,SAAS,EAAE;AACrD;AAEA,IAAIG,QAAQ,GAAG,aAAa5U,MAAM,CAAC+K,MAAM,CAAC;EACxCC,SAAS,EAAE,IAAI;EACfwJ,GAAG,EAAEA,GAAG;EACRE,IAAI,EAAEA,IAAI;EACVjM,KAAK,EAAEA,KAAK;EACZkM,KAAK,EAAEA;AACT,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,SAASE,QAAQ,CAAE1U,EAAE,EAAE;EACrB,OAAO,YAAY;IACjB,IAAI;MACF,OAAOA,EAAE,CAACmT,KAAK,CAACnT,EAAE,EAAEsU,SAAS,CAAC;IAChC,CAAC,CAAC,OAAOK,CAAC,EAAE;MACV;MACA/B,OAAO,CAAC9T,KAAK,CAAC6V,CAAC,CAAC;IAClB;EACF,CAAC;AACH;AAEA,SAASC,eAAe,CAAE7R,MAAM,EAAE;EAChC,IAAM8R,YAAY,GAAG,CAAC,CAAC;EACvB,KAAK,IAAMnR,IAAI,IAAIX,MAAM,EAAE;IACzB,IAAM+R,KAAK,GAAG/R,MAAM,CAACW,IAAI,CAAC;IAC1B,IAAI3D,IAAI,CAAC+U,KAAK,CAAC,EAAE;MACfD,YAAY,CAACnR,IAAI,CAAC,GAAGgR,QAAQ,CAACI,KAAK,CAAC;MACpC,OAAO/R,MAAM,CAACW,IAAI,CAAC;IACrB;EACF;EACA,OAAOmR,YAAY;AACrB;AAEA,IAAIE,GAAG;AACP,IAAIC,SAAS;AACb,IAAIC,OAAO;AAEX,SAASC,oBAAoB,CAAEnW,OAAO,EAAE;EACtC,IAAI;IACF,OAAOH,IAAI,CAACC,KAAK,CAACE,OAAO,CAAC;EAC5B,CAAC,CAAC,OAAO4V,CAAC,EAAE,CAAC;EACb,OAAO5V,OAAO;AAChB;AAEA,SAASoW,kBAAkB,CACzBzJ,IAAI,EACJ;EACA,IAAIA,IAAI,CAAC0J,IAAI,KAAK,SAAS,EAAE;IAC3BH,OAAO,GAAG,IAAI;EAChB,CAAC,MAAM,IAAIvJ,IAAI,CAAC0J,IAAI,KAAK,UAAU,EAAE;IACnCL,GAAG,GAAGrJ,IAAI,CAACqJ,GAAG;IACdC,SAAS,GAAGtJ,IAAI,CAAC8H,MAAM;IACvB6B,yBAAyB,CAACN,GAAG,EAAErJ,IAAI,CAAC8H,MAAM,CAAC;EAC7C,CAAC,MAAM,IAAI9H,IAAI,CAAC0J,IAAI,KAAK,SAAS,EAAE;IAClC,IAAMrW,OAAO,GAAG;MACdqW,IAAI,EAAE,SAAS;MACfpS,IAAI,EAAEkS,oBAAoB,CAACxJ,IAAI,CAAC3M,OAAO;IACzC,CAAC;IACD,KAAK,IAAIvB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG8X,sBAAsB,CAACnY,MAAM,EAAEK,CAAC,EAAE,EAAE;MACtD,IAAM+F,QAAQ,GAAG+R,sBAAsB,CAAC9X,CAAC,CAAC;MAC1C+F,QAAQ,CAACxE,OAAO,CAAC;MACjB;MACA,IAAIA,OAAO,CAACwW,OAAO,EAAE;QACnB;MACF;IACF;EACF,CAAC,MAAM,IAAI7J,IAAI,CAAC0J,IAAI,KAAK,OAAO,EAAE;IAChCE,sBAAsB,CAACjU,OAAO,CAAC,UAACkC,QAAQ,EAAK;MAC3CA,QAAQ,CAAC;QACP6R,IAAI,EAAE,OAAO;QACbpS,IAAI,EAAEkS,oBAAoB,CAACxJ,IAAI,CAAC3M,OAAO;MACzC,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ;AACF;AAEA,IAAMyW,mBAAmB,GAAG,EAAE;AAE9B,SAASH,yBAAyB,CAAEN,GAAG,EAAEvB,MAAM,EAAE;EAC/CgC,mBAAmB,CAACnU,OAAO,CAAC,UAACkC,QAAQ,EAAK;IACxCA,QAAQ,CAACwR,GAAG,EAAEvB,MAAM,CAAC;EACvB,CAAC,CAAC;EACFgC,mBAAmB,CAACrY,MAAM,GAAG,CAAC;AAChC;AAEA,SAASsY,eAAe,CAAE/J,IAAI,EAAE;EAC9B,IAAI,CAACtL,aAAa,CAACsL,IAAI,CAAC,EAAE;IACxBA,IAAI,GAAG,CAAC,CAAC;EACX;EACA,uBAIIkJ,eAAe,CAAClJ,IAAI,CAAC;IAHvBjG,OAAO,oBAAPA,OAAO;IACPC,IAAI,oBAAJA,IAAI;IACJC,QAAQ,oBAARA,QAAQ;EAEV,IAAM+P,UAAU,GAAG3V,IAAI,CAAC0F,OAAO,CAAC;EAChC,IAAMkQ,OAAO,GAAG5V,IAAI,CAAC2F,IAAI,CAAC;EAC1B,IAAMkQ,WAAW,GAAG7V,IAAI,CAAC4F,QAAQ,CAAC;EAElCtC,OAAO,CAACC,OAAO,EAAE,CAACJ,IAAI,CAAC,YAAM;IAC3B,IAAI,OAAO+R,OAAO,KAAK,WAAW,EAAE;MAClCA,OAAO,GAAG,KAAK;MACfF,GAAG,GAAG,EAAE;MACRC,SAAS,GAAG,wBAAwB;IACtC;IACAQ,mBAAmB,CAACtT,IAAI,CAAC,UAAC6S,GAAG,EAAEvB,MAAM,EAAK;MACxC,IAAI5R,GAAG;MACP,IAAImT,GAAG,EAAE;QACPnT,GAAG,GAAG;UACJ4R,MAAM,EAAE,oBAAoB;UAC5BuB,GAAG,EAAHA;QACF,CAAC;QACDW,UAAU,IAAIjQ,OAAO,CAAC7D,GAAG,CAAC;MAC5B,CAAC,MAAM;QACLA,GAAG,GAAG;UACJ4R,MAAM,EAAE,sBAAsB,IAAIA,MAAM,GAAG,GAAG,GAAGA,MAAM,GAAG,EAAE;QAC9D,CAAC;QACDmC,OAAO,IAAIjQ,IAAI,CAAC9D,GAAG,CAAC;MACtB;MACAgU,WAAW,IAAIjQ,QAAQ,CAAC/D,GAAG,CAAC;IAC9B,CAAC,CAAC;IACF,IAAI,OAAOmT,GAAG,KAAK,WAAW,EAAE;MAC9BM,yBAAyB,CAACN,GAAG,EAAEC,SAAS,CAAC;IAC3C;EACF,CAAC,CAAC;AACJ;AAEA,IAAMM,sBAAsB,GAAG,EAAE;AACjC;AACA,IAAMO,aAAa,GAAG,SAAhBA,aAAa,CAAI7V,EAAE,EAAK;EAC5B,IAAIsV,sBAAsB,CAAChZ,OAAO,CAAC0D,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE;IAC7CsV,sBAAsB,CAACpT,IAAI,CAAClC,EAAE,CAAC;EACjC;AACF,CAAC;AAED,IAAM8V,cAAc,GAAG,SAAjBA,cAAc,CAAI9V,EAAE,EAAK;EAC7B,IAAI,CAACA,EAAE,EAAE;IACPsV,sBAAsB,CAACnY,MAAM,GAAG,CAAC;EACnC,CAAC,MAAM;IACL,IAAMkF,KAAK,GAAGiT,sBAAsB,CAAChZ,OAAO,CAAC0D,EAAE,CAAC;IAChD,IAAIqC,KAAK,GAAG,CAAC,CAAC,EAAE;MACdiT,sBAAsB,CAAChT,MAAM,CAACD,KAAK,EAAE,CAAC,CAAC;IACzC;EACF;AACF,CAAC;AAED,IAAI0T,QAAQ,GAAG3X,EAAE,CAACiT,cAAc,IAAIjT,EAAE,CAACiT,cAAc,EAAE;AACvD,IAAI,CAAC0E,QAAQ,EAAE;EACbA,QAAQ,GAAG3X,EAAE,CAAC+H,iBAAiB,EAAE;AACnC;AACA,IAAM4K,IAAI,GAAGgF,QAAQ,GAAGA,QAAQ,CAAChF,IAAI,GAAG,IAAI;AAC5C,IAAMiF,iBAAiB,GACrBjF,IAAI,IAAIA,IAAI,CAACC,GAAG,KAAK,SAAS,GAAG5S,EAAE,CAAC6X,OAAO,CAACD,iBAAiB,GAAG5X,EAAE,CAAC4X,iBAAiB;AAEtF,IAAI7R,GAAG,GAAG,aAAatE,MAAM,CAAC+K,MAAM,CAAC;EACnCC,SAAS,EAAE,IAAI;EACfmL,iBAAiB,EAAEA,iBAAiB;EACpCP,eAAe,EAAEA,eAAe;EAChCI,aAAa,EAAEA,aAAa;EAC5BC,cAAc,EAAEA,cAAc;EAC9BX,kBAAkB,EAAEA;AACtB,CAAC,CAAC;AAEF,IAAMe,KAAK,GAAG,CAAC,WAAW,EAAE,sBAAsB,EAAE,iBAAiB,CAAC;AAEtE,SAASC,aAAa,CAAEC,EAAE,EAAEC,MAAM,EAAE;EAClC,IAAMC,SAAS,GAAGF,EAAE,CAACE,SAAS;EAC9B;EACA,KAAK,IAAI9Y,CAAC,GAAG8Y,SAAS,CAACnZ,MAAM,GAAG,CAAC,EAAEK,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;IAC9C,IAAM+Y,OAAO,GAAGD,SAAS,CAAC9Y,CAAC,CAAC;IAC5B,IAAI+Y,OAAO,CAACC,MAAM,CAACC,OAAO,KAAKJ,MAAM,EAAE;MACrC,OAAOE,OAAO;IAChB;EACF;EACA;EACA,IAAIG,QAAQ;EACZ,KAAK,IAAIlZ,EAAC,GAAG8Y,SAAS,CAACnZ,MAAM,GAAG,CAAC,EAAEK,EAAC,IAAI,CAAC,EAAEA,EAAC,EAAE,EAAE;IAC9CkZ,QAAQ,GAAGP,aAAa,CAACG,SAAS,CAAC9Y,EAAC,CAAC,EAAE6Y,MAAM,CAAC;IAC9C,IAAIK,QAAQ,EAAE;MACZ,OAAOA,QAAQ;IACjB;EACF;AACF;AAEA,SAASC,YAAY,CAAElT,OAAO,EAAE;EAC9B,OAAOmT,QAAQ,CAACnT,OAAO,CAAC;AAC1B;AAEA,SAASoT,MAAM,GAAI;EACjB,OAAO,CAAC,CAAC,IAAI,CAACC,KAAK;AACrB;AAEA,SAASC,YAAY,CAAEC,MAAM,EAAE;EAC7B,IAAI,CAACC,YAAY,CAAC,KAAK,EAAED,MAAM,CAAC;AAClC;AAEA,SAASE,mBAAmB,CAAEC,UAAU,EAAEC,QAAQ,EAAEC,KAAK,EAAE;EACzD,IAAMC,UAAU,GAAGH,UAAU,CAACD,mBAAmB,CAACE,QAAQ,CAAC,IAAI,EAAE;EACjEE,UAAU,CAACjW,OAAO,CAAC,UAAAkW,SAAS,EAAI;IAC9B,IAAMC,GAAG,GAAGD,SAAS,CAACE,OAAO,CAACD,GAAG;IACjCH,KAAK,CAACG,GAAG,CAAC,GAAGD,SAAS,CAACpN,GAAG,IAAIuN,MAAM,CAACH,SAAS,CAAC;IAC/C;MACE,IAAIA,SAAS,CAACE,OAAO,CAACE,UAAU,KAAK,QAAQ,EAAE;QAC7CJ,SAAS,CAACL,mBAAmB,CAAC,aAAa,CAAC,CAAC7V,OAAO,CAAC,UAAAuW,eAAe,EAAI;UACtEV,mBAAmB,CAACU,eAAe,EAAER,QAAQ,EAAEC,KAAK,CAAC;QACvD,CAAC,CAAC;MACJ;IACF;EACF,CAAC,CAAC;AACJ;AAEA,SAASQ,QAAQ,CAAEC,IAAI,EAAEC,OAAO,EAAE;EAChC,IAAMC,OAAO,4BAAOC,GAAG,mCAAIpY,MAAM,CAACsB,IAAI,CAAC2W,IAAI,CAAC,EAAC;EAC7C,IAAMI,OAAO,GAAGrY,MAAM,CAACsB,IAAI,CAAC4W,OAAO,CAAC;EACpCG,OAAO,CAAC7W,OAAO,CAAC,UAAAvF,GAAG,EAAI;IACrB,IAAMqc,QAAQ,GAAGL,IAAI,CAAChc,GAAG,CAAC;IAC1B,IAAMsc,QAAQ,GAAGL,OAAO,CAACjc,GAAG,CAAC;IAC7B,IAAIgG,KAAK,CAACC,OAAO,CAACoW,QAAQ,CAAC,IAAIrW,KAAK,CAACC,OAAO,CAACqW,QAAQ,CAAC,IAAID,QAAQ,CAAChb,MAAM,KAAKib,QAAQ,CAACjb,MAAM,IAAIib,QAAQ,CAACC,KAAK,CAAC,UAAAhT,KAAK;MAAA,OAAI8S,QAAQ,CAAC9b,QAAQ,CAACgJ,KAAK,CAAC;IAAA,EAAC,EAAE;MAClJ;IACF;IACAyS,IAAI,CAAChc,GAAG,CAAC,GAAGsc,QAAQ;IACpBJ,OAAO,CAACM,MAAM,CAACxc,GAAG,CAAC;EACrB,CAAC,CAAC;EACFkc,OAAO,CAAC3W,OAAO,CAAC,UAAAvF,GAAG,EAAI;IACrB,OAAOgc,IAAI,CAAChc,GAAG,CAAC;EAClB,CAAC,CAAC;EACF,OAAOgc,IAAI;AACb;AAEA,SAASS,QAAQ,CAAEnC,EAAE,EAAE;EACrB,IAAMe,UAAU,GAAGf,EAAE,CAACI,MAAM;EAC5B,IAAMsB,IAAI,GAAG,CAAC,CAAC;EACfjY,MAAM,CAACqJ,cAAc,CAACkN,EAAE,EAAE,OAAO,EAAE;IACjCjN,GAAG,iBAAI;MACL,IAAMkO,KAAK,GAAG,CAAC,CAAC;MAChBH,mBAAmB,CAACC,UAAU,EAAE,UAAU,EAAEE,KAAK,CAAC;MAClD;MACA,IAAMmB,aAAa,GAAGrB,UAAU,CAACD,mBAAmB,CAAC,iBAAiB,CAAC,IAAI,EAAE;MAC7EsB,aAAa,CAACnX,OAAO,CAAC,UAAAkW,SAAS,EAAI;QACjC,IAAMC,GAAG,GAAGD,SAAS,CAACE,OAAO,CAACD,GAAG;QACjC,IAAI,CAACH,KAAK,CAACG,GAAG,CAAC,EAAE;UACfH,KAAK,CAACG,GAAG,CAAC,GAAG,EAAE;QACjB;QACAH,KAAK,CAACG,GAAG,CAAC,CAACtV,IAAI,CAACqV,SAAS,CAACpN,GAAG,IAAIuN,MAAM,CAACH,SAAS,CAAC,CAAC;MACrD,CAAC,CAAC;MACF,OAAOM,QAAQ,CAACC,IAAI,EAAET,KAAK,CAAC;IAC9B;EACF,CAAC,CAAC;AACJ;AAEA,SAASoB,UAAU,CAAEC,KAAK,EAAE;EAC1B,YAGIA,KAAK,CAAC1B,MAAM,IAAI0B,KAAK,CAACrT,KAAK;IAF7BgR,MAAM,SAANA,MAAM;IACNsC,UAAU,SAAVA,UAAU,CACoB,CAAC;;EAEjC,IAAIjC,QAAQ;EAEZ,IAAIL,MAAM,EAAE;IACVK,QAAQ,GAAGP,aAAa,CAAC,IAAI,CAAChM,GAAG,EAAEkM,MAAM,CAAC;EAC5C;EAEA,IAAI,CAACK,QAAQ,EAAE;IACbA,QAAQ,GAAG,IAAI,CAACvM,GAAG;EACrB;EAEAwO,UAAU,CAACC,MAAM,GAAGlC,QAAQ;AAC9B;AAEA,SAASmC,eAAe,CAAEtB,SAAS,EAAE;EACnC;EACA,IAAMuB,KAAK,GAAG,mBAAmB;EACjCjZ,MAAM,CAACqJ,cAAc,CAACqO,SAAS,EAAEuB,KAAK,EAAE;IACtCC,YAAY,EAAE,IAAI;IAClBC,UAAU,EAAE,KAAK;IACjB3T,KAAK,EAAE;EACT,CAAC,CAAC;EACF,OAAOkS,SAAS;AAClB;AAEA,SAASG,MAAM,CAAEvX,GAAG,EAAE;EACpB,IAAM8Y,EAAE,GAAG,QAAQ;EACnB,IAAMC,IAAI,GAAG,UAAU;EACvB,IAAIhZ,QAAQ,CAACC,GAAG,CAAC,IAAIN,MAAM,CAACsZ,YAAY,CAAChZ,GAAG,CAAC,EAAE;IAC7C;IACAN,MAAM,CAACqJ,cAAc,CAAC/I,GAAG,EAAE8Y,EAAE,EAAE;MAC7BF,YAAY,EAAE,IAAI;MAClBC,UAAU,EAAE,KAAK;MACjB3T,KAAK,oCACF6T,IAAI,EAAG,IAAI;IAEhB,CAAC,CAAC;EACJ;EACA,OAAO/Y,GAAG;AACZ;AAEA,IAAMiZ,UAAU,GAAG,wBAAwB;AAC3C,SAASC,kBAAkB,CAAEC,SAAS,EAAEC,UAAU,EAAE;EAClD,IAAIA,UAAU,EAAE;IACd1Z,MAAM,CAACsB,IAAI,CAACoY,UAAU,CAAC,CAAClY,OAAO,CAAC,UAACqC,IAAI,EAAK;MACxC,IAAM8V,OAAO,GAAG9V,IAAI,CAAC+V,KAAK,CAACL,UAAU,CAAC;MACtC,IAAII,OAAO,EAAE;QACX,IAAME,WAAW,GAAGF,OAAO,CAAC,CAAC,CAAC;QAC9BF,SAAS,CAAC5V,IAAI,CAAC,GAAG6V,UAAU,CAAC7V,IAAI,CAAC;QAClC4V,SAAS,CAACI,WAAW,CAAC,GAAGH,UAAU,CAACG,WAAW,CAAC;MAClD;IACF,CAAC,CAAC;EACJ;AACF;AAEA,IAAMC,MAAM,GAAGC,IAAI;AACnB,IAAMC,WAAW,GAAGC,SAAS;AAE7B,IAAMC,WAAW,GAAG,IAAI;AAExB,IAAMC,SAAS,GAAGxZ,MAAM,CAAC,UAAC3D,GAAG,EAAK;EAChC,OAAOiE,QAAQ,CAACjE,GAAG,CAACE,OAAO,CAACgd,WAAW,EAAE,GAAG,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,SAASE,gBAAgB,CAAE9C,UAAU,EAAE;EACrC,IAAM+C,eAAe,GAAG/C,UAAU,CAACF,YAAY;EAC/C,IAAMkD,eAAe,GAAG,SAAlBA,eAAe,CAAazB,KAAK,EAAW;IAAA,mCAANhN,IAAI;MAAJA,IAAI;IAAA;IAC9C;IACA,IAAI,IAAI,CAACvB,GAAG,IAAK,IAAI,CAACsN,OAAO,IAAI,IAAI,CAACA,OAAO,CAAC2C,OAAQ,EAAE;MACtD1B,KAAK,GAAGsB,SAAS,CAACtB,KAAK,CAAC;IAC1B,CAAC,MAAM;MACL;MACA,IAAM2B,QAAQ,GAAGL,SAAS,CAACtB,KAAK,CAAC;MACjC,IAAI2B,QAAQ,KAAK3B,KAAK,EAAE;QACtBwB,eAAe,CAAC/G,KAAK,CAAC,IAAI,GAAGkH,QAAQ,SAAK3O,IAAI,EAAE;MAClD;IACF;IACA,OAAOwO,eAAe,CAAC/G,KAAK,CAAC,IAAI,GAAGuF,KAAK,SAAKhN,IAAI,EAAE;EACtD,CAAC;EACD,IAAI;IACF;IACAyL,UAAU,CAACF,YAAY,GAAGkD,eAAe;EAC3C,CAAC,CAAC,OAAOrb,KAAK,EAAE;IACdqY,UAAU,CAACmD,aAAa,GAAGH,eAAe;EAC5C;AACF;AAEA,SAASI,QAAQ,CAAE7W,IAAI,EAAED,OAAO,EAAE+W,WAAW,EAAE;EAC7C,IAAMC,OAAO,GAAGhX,OAAO,CAACC,IAAI,CAAC;EAC7BD,OAAO,CAACC,IAAI,CAAC,GAAG,YAAmB;IACjCmV,eAAe,CAAC,IAAI,CAAC;IACrBoB,gBAAgB,CAAC,IAAI,CAAC;IACtB,IAAIQ,OAAO,EAAE;MAAA,mCAHc/O,IAAI;QAAJA,IAAI;MAAA;MAI7B,OAAO+O,OAAO,CAACtH,KAAK,CAAC,IAAI,EAAEzH,IAAI,CAAC;IAClC;EACF,CAAC;AACH;AACA,IAAI,CAACiO,MAAM,CAACe,YAAY,EAAE;EACxBf,MAAM,CAACe,YAAY,GAAG,IAAI;EAC1Bd,IAAI,GAAG,gBAAwB;IAAA,IAAdnW,OAAO,uEAAG,CAAC,CAAC;IAC3B8W,QAAQ,CAAC,QAAQ,EAAE9W,OAAO,CAAC;IAC3B,OAAOkW,MAAM,CAAClW,OAAO,CAAC;EACxB,CAAC;EACDmW,IAAI,CAACe,KAAK,GAAGhB,MAAM,CAACgB,KAAK;EAEzBb,SAAS,GAAG,qBAAwB;IAAA,IAAdrW,OAAO,uEAAG,CAAC,CAAC;IAChC8W,QAAQ,CAAC,SAAS,EAAE9W,OAAO,CAAC;IAC5B,OAAOoW,WAAW,CAACpW,OAAO,CAAC;EAC7B,CAAC;AACH;AAEA,IAAMmX,gBAAgB,GAAG,CACvB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,UAAU,EACV,cAAc,CACf;AAED,SAASC,SAAS,CAAEzE,EAAE,EAAEF,KAAK,EAAE;EAC7B,IAAMiB,UAAU,GAAGf,EAAE,CAAC0E,GAAG,CAAC1E,EAAE,CAAC2E,MAAM,CAAC;EACpC7E,KAAK,CAAC7U,OAAO,CAAC,UAAA2Z,IAAI,EAAI;IACpB,IAAI1a,MAAM,CAAC6W,UAAU,EAAE6D,IAAI,CAAC,EAAE;MAC5B5E,EAAE,CAAC4E,IAAI,CAAC,GAAG7D,UAAU,CAAC6D,IAAI,CAAC;IAC7B;EACF,CAAC,CAAC;AACJ;AAEA,SAASC,OAAO,CAAE7Y,IAAI,EAAEuW,UAAU,EAAE;EAClC,IAAI,CAACA,UAAU,EAAE;IACf,OAAO,IAAI;EACb;EAEA,IAAIxZ,YAAG,CAACsE,OAAO,IAAI3B,KAAK,CAACC,OAAO,CAAC5C,YAAG,CAACsE,OAAO,CAACrB,IAAI,CAAC,CAAC,EAAE;IACnD,OAAO,IAAI;EACb;EAEAuW,UAAU,GAAGA,UAAU,CAACuC,OAAO,IAAIvC,UAAU;EAE7C,IAAI5Y,IAAI,CAAC4Y,UAAU,CAAC,EAAE;IACpB,IAAI5Y,IAAI,CAAC4Y,UAAU,CAACwC,aAAa,CAAC/Y,IAAI,CAAC,CAAC,EAAE;MACxC,OAAO,IAAI;IACb;IACA,IAAIuW,UAAU,CAACyC,KAAK,IAClBzC,UAAU,CAACyC,KAAK,CAAC3X,OAAO,IACxB3B,KAAK,CAACC,OAAO,CAAC4W,UAAU,CAACyC,KAAK,CAAC3X,OAAO,CAACrB,IAAI,CAAC,CAAC,EAAE;MAC/C,OAAO,IAAI;IACb;IACA,OAAO,KAAK;EACd;EAEA,IAAIrC,IAAI,CAAC4Y,UAAU,CAACvW,IAAI,CAAC,CAAC,IAAIN,KAAK,CAACC,OAAO,CAAC4W,UAAU,CAACvW,IAAI,CAAC,CAAC,EAAE;IAC7D,OAAO,IAAI;EACb;EACA,IAAMiZ,MAAM,GAAG1C,UAAU,CAAC0C,MAAM;EAChC,IAAIvZ,KAAK,CAACC,OAAO,CAACsZ,MAAM,CAAC,EAAE;IACzB,OAAO,CAAC,CAACA,MAAM,CAAC5R,IAAI,CAAC,UAAAxB,KAAK;MAAA,OAAIgT,OAAO,CAAC7Y,IAAI,EAAE6F,KAAK,CAAC;IAAA,EAAC;EACrD;AACF;AAEA,SAASqT,SAAS,CAAEC,SAAS,EAAEtZ,KAAK,EAAE0W,UAAU,EAAE;EAChD1W,KAAK,CAACZ,OAAO,CAAC,UAAAe,IAAI,EAAI;IACpB,IAAI6Y,OAAO,CAAC7Y,IAAI,EAAEuW,UAAU,CAAC,EAAE;MAC7B4C,SAAS,CAACnZ,IAAI,CAAC,GAAG,UAAUsJ,IAAI,EAAE;QAChC,OAAO,IAAI,CAACvB,GAAG,IAAI,IAAI,CAACA,GAAG,CAACqR,WAAW,CAACpZ,IAAI,EAAEsJ,IAAI,CAAC;MACrD,CAAC;IACH;EACF,CAAC,CAAC;AACJ;AAEA,SAAS+P,gBAAgB,CAAEF,SAAS,EAAE5C,UAAU,EAAiB;EAAA,IAAf+C,QAAQ,uEAAG,EAAE;EAC7DC,SAAS,CAAChD,UAAU,CAAC,CAACtX,OAAO,CAAC,UAACe,IAAI;IAAA,OAAKwZ,UAAU,CAACL,SAAS,EAAEnZ,IAAI,EAAEsZ,QAAQ,CAAC;EAAA,EAAC;AAChF;AAEA,SAASC,SAAS,CAAEhD,UAAU,EAAc;EAAA,IAAZ1W,KAAK,uEAAG,EAAE;EACxC,IAAI0W,UAAU,EAAE;IACd9Y,MAAM,CAACsB,IAAI,CAACwX,UAAU,CAAC,CAACtX,OAAO,CAAC,UAACqC,IAAI,EAAK;MACxC,IAAIA,IAAI,CAACpH,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAIyD,IAAI,CAAC4Y,UAAU,CAACjV,IAAI,CAAC,CAAC,EAAE;QACtDzB,KAAK,CAACC,IAAI,CAACwB,IAAI,CAAC;MAClB;IACF,CAAC,CAAC;EACJ;EACA,OAAOzB,KAAK;AACd;AAEA,SAAS2Z,UAAU,CAAEL,SAAS,EAAEnZ,IAAI,EAAEsZ,QAAQ,EAAE;EAC9C,IAAIA,QAAQ,CAACpf,OAAO,CAAC8F,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC9B,MAAM,CAACib,SAAS,EAAEnZ,IAAI,CAAC,EAAE;IAC7DmZ,SAAS,CAACnZ,IAAI,CAAC,GAAG,UAAUsJ,IAAI,EAAE;MAChC,OAAO,IAAI,CAACvB,GAAG,IAAI,IAAI,CAACA,GAAG,CAACqR,WAAW,CAACpZ,IAAI,EAAEsJ,IAAI,CAAC;IACrD,CAAC;EACH;AACF;AAEA,SAASmQ,gBAAgB,CAAE1c,GAAG,EAAEwZ,UAAU,EAAE;EAC1CA,UAAU,GAAGA,UAAU,CAACuC,OAAO,IAAIvC,UAAU;EAC7C,IAAImD,YAAY;EAChB,IAAI/b,IAAI,CAAC4Y,UAAU,CAAC,EAAE;IACpBmD,YAAY,GAAGnD,UAAU;EAC3B,CAAC,MAAM;IACLmD,YAAY,GAAG3c,GAAG,CAAC4c,MAAM,CAACpD,UAAU,CAAC;EACvC;EACAA,UAAU,GAAGmD,YAAY,CAACrY,OAAO;EACjC,OAAO,CAACqY,YAAY,EAAEnD,UAAU,CAAC;AACnC;AAEA,SAASqD,SAAS,CAAE5F,EAAE,EAAE6F,QAAQ,EAAE;EAChC,IAAIna,KAAK,CAACC,OAAO,CAACka,QAAQ,CAAC,IAAIA,QAAQ,CAAC9e,MAAM,EAAE;IAC9C,IAAM+e,MAAM,GAAGrc,MAAM,CAACa,MAAM,CAAC,IAAI,CAAC;IAClCub,QAAQ,CAAC5a,OAAO,CAAC,UAAA8a,QAAQ,EAAI;MAC3BD,MAAM,CAACC,QAAQ,CAAC,GAAG,IAAI;IACzB,CAAC,CAAC;IACF/F,EAAE,CAACgG,YAAY,GAAGhG,EAAE,CAAC8F,MAAM,GAAGA,MAAM;EACtC;AACF;AAEA,SAASG,UAAU,CAAEC,MAAM,EAAEnF,UAAU,EAAE;EACvCmF,MAAM,GAAG,CAACA,MAAM,IAAI,EAAE,EAAEze,KAAK,CAAC,GAAG,CAAC;EAClC,IAAMqN,GAAG,GAAGoR,MAAM,CAACnf,MAAM;EAEzB,IAAI+N,GAAG,KAAK,CAAC,EAAE;IACbiM,UAAU,CAACV,OAAO,GAAG6F,MAAM,CAAC,CAAC,CAAC;EAChC,CAAC,MAAM,IAAIpR,GAAG,KAAK,CAAC,EAAE;IACpBiM,UAAU,CAACV,OAAO,GAAG6F,MAAM,CAAC,CAAC,CAAC;IAC9BnF,UAAU,CAACoF,QAAQ,GAAGD,MAAM,CAAC,CAAC,CAAC;EACjC;AACF;AAEA,SAASE,QAAQ,CAAE7D,UAAU,EAAE8D,OAAO,EAAE;EACtC,IAAIzZ,IAAI,GAAG2V,UAAU,CAAC3V,IAAI,IAAI,CAAC,CAAC;EAChC,IAAMuF,OAAO,GAAGoQ,UAAU,CAACpQ,OAAO,IAAI,CAAC,CAAC;EAExC,IAAI,OAAOvF,IAAI,KAAK,UAAU,EAAE;IAC9B,IAAI;MACFA,IAAI,GAAGA,IAAI,CAAC3C,IAAI,CAACoc,OAAO,CAAC,CAAC,CAAC;IAC7B,CAAC,CAAC,OAAO9H,CAAC,EAAE;MACV,IAAI/F,8IAAW,CAAC8N,aAAa,EAAE;QAC7B9J,OAAO,CAACC,IAAI,CAAC,wEAAwE,EAAE7P,IAAI,CAAC;MAC9F;IACF;EACF,CAAC,MAAM;IACL,IAAI;MACF;MACAA,IAAI,GAAGpE,IAAI,CAACC,KAAK,CAACD,IAAI,CAAC+d,SAAS,CAAC3Z,IAAI,CAAC,CAAC;IACzC,CAAC,CAAC,OAAO2R,CAAC,EAAE,CAAE;EAChB;EAEA,IAAI,CAACvU,aAAa,CAAC4C,IAAI,CAAC,EAAE;IACxBA,IAAI,GAAG,CAAC,CAAC;EACX;EAEAnD,MAAM,CAACsB,IAAI,CAACoH,OAAO,CAAC,CAAClH,OAAO,CAAC,UAAAgR,UAAU,EAAI;IACzC,IAAIoK,OAAO,CAACG,mBAAmB,CAACtgB,OAAO,CAAC+V,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC/R,MAAM,CAAC0C,IAAI,EAAEqP,UAAU,CAAC,EAAE;MACvFrP,IAAI,CAACqP,UAAU,CAAC,GAAG9J,OAAO,CAAC8J,UAAU,CAAC;IACxC;EACF,CAAC,CAAC;EAEF,OAAOrP,IAAI;AACb;AAEA,IAAM6Z,UAAU,GAAG,CAAC/f,MAAM,EAAE4J,MAAM,EAAEoW,OAAO,EAAEjd,MAAM,EAAEiC,KAAK,EAAE,IAAI,CAAC;AAEjE,SAASib,cAAc,CAAErZ,IAAI,EAAE;EAC7B,OAAO,SAASsZ,QAAQ,CAAEC,MAAM,EAAEC,MAAM,EAAE;IACxC,IAAI,IAAI,CAAC/S,GAAG,EAAE;MACZ,IAAI,CAACA,GAAG,CAACzG,IAAI,CAAC,GAAGuZ,MAAM,CAAC,CAAC;IAC3B;EACF,CAAC;AACH;;AAEA,SAASE,aAAa,CAAExE,UAAU,EAAEhC,YAAY,EAAE;EAChD,IAAMyG,YAAY,GAAGzE,UAAU,CAAC0E,SAAS;EACzC,IAAMC,UAAU,GAAG3E,UAAU,CAAC4E,OAAO;EACrC,IAAMC,SAAS,GAAG7E,UAAU,CAAC0C,MAAM;EAEnC,IAAIoC,QAAQ,GAAG9E,UAAU,CAAC+E,KAAK;EAE/B,IAAI,CAACD,QAAQ,EAAE;IACb9E,UAAU,CAAC+E,KAAK,GAAGD,QAAQ,GAAG,EAAE;EAClC;EAEA,IAAMJ,SAAS,GAAG,EAAE;EACpB,IAAIvb,KAAK,CAACC,OAAO,CAACqb,YAAY,CAAC,EAAE;IAC/BA,YAAY,CAAC/b,OAAO,CAAC,UAAAsc,QAAQ,EAAI;MAC/BN,SAAS,CAACnb,IAAI,CAACyb,QAAQ,CAAC5gB,OAAO,CAAC,QAAQ,EAAK,IAAI,eAAM,CAAC;MACxD,IAAI4gB,QAAQ,KAAK,kBAAkB,EAAE;QACnC,IAAI7b,KAAK,CAACC,OAAO,CAAC0b,QAAQ,CAAC,EAAE;UAC3BA,QAAQ,CAACvb,IAAI,CAAC,MAAM,CAAC;UACrBub,QAAQ,CAACvb,IAAI,CAAC,OAAO,CAAC;QACxB,CAAC,MAAM;UACLub,QAAQ,CAAC/Z,IAAI,GAAG;YACd0R,IAAI,EAAEtY,MAAM;YACZoe,OAAO,EAAE;UACX,CAAC;UACDuC,QAAQ,CAACpY,KAAK,GAAG;YACf+P,IAAI,EAAE,CAACtY,MAAM,EAAE4J,MAAM,EAAEoW,OAAO,EAAEhb,KAAK,EAAEjC,MAAM,EAAEH,IAAI,CAAC;YACpDwb,OAAO,EAAE;UACX,CAAC;QACH;MACF;IACF,CAAC,CAAC;EACJ;EACA,IAAI9a,aAAa,CAACkd,UAAU,CAAC,IAAIA,UAAU,CAACI,KAAK,EAAE;IACjDL,SAAS,CAACnb,IAAI,CACZyU,YAAY,CAAC;MACXiH,UAAU,EAAEC,cAAc,CAACP,UAAU,CAACI,KAAK,EAAE,IAAI;IACnD,CAAC,CAAC,CACH;EACH;EACA,IAAI5b,KAAK,CAACC,OAAO,CAACyb,SAAS,CAAC,EAAE;IAC5BA,SAAS,CAACnc,OAAO,CAAC,UAAAyc,QAAQ,EAAI;MAC5B,IAAI1d,aAAa,CAAC0d,QAAQ,CAAC,IAAIA,QAAQ,CAACJ,KAAK,EAAE;QAC7CL,SAAS,CAACnb,IAAI,CACZyU,YAAY,CAAC;UACXiH,UAAU,EAAEC,cAAc,CAACC,QAAQ,CAACJ,KAAK,EAAE,IAAI;QACjD,CAAC,CAAC,CACH;MACH;IACF,CAAC,CAAC;EACJ;EACA,OAAOL,SAAS;AAClB;AAEA,SAASU,aAAa,CAAEjiB,GAAG,EAAEsZ,IAAI,EAAE4I,YAAY,EAAEC,IAAI,EAAE;EACrD;EACA,IAAInc,KAAK,CAACC,OAAO,CAACqT,IAAI,CAAC,IAAIA,IAAI,CAACjY,MAAM,KAAK,CAAC,EAAE;IAC5C,OAAOiY,IAAI,CAAC,CAAC,CAAC;EAChB;EACA,OAAOA,IAAI;AACb;AAEA,SAASyI,cAAc,CAAEH,KAAK,EAA0C;EAAA,IAAxCQ,UAAU,uEAAG,KAAK;EAAA,IAAED,IAAI,uEAAG,EAAE;EAAA,IAAExa,OAAO;EACpE,IAAMma,UAAU,GAAG,CAAC,CAAC;EACrB,IAAI,CAACM,UAAU,EAAE;IACfN,UAAU,CAACO,KAAK,GAAG;MACjB/I,IAAI,EAAEtY,MAAM;MACZuI,KAAK,EAAE;IACT,CAAC;IACD;MACE,IAAK5B,OAAO,CAAC2a,WAAW,EAAE;QACxBR,UAAU,CAACS,gBAAgB,GAAG;UAC5BjJ,IAAI,EAAE,IAAI;UACV/P,KAAK,EAAE;QACT,CAAC;QACDuY,UAAU,CAACU,gBAAgB,GAAG;UAC5BlJ,IAAI,EAAE,IAAI;UACV/P,KAAK,EAAE;QACT,CAAC;MACH;IACF;IACA;IACAuY,UAAU,CAACW,mBAAmB,GAAG;MAC/BnJ,IAAI,EAAEtY,MAAM;MACZuI,KAAK,EAAE;IACT,CAAC;IACDuY,UAAU,CAAC3B,QAAQ,GAAG;MAAE;MACtB7G,IAAI,EAAE,IAAI;MACV/P,KAAK,EAAE,EAAE;MACT2X,QAAQ,EAAE,kBAAUC,MAAM,EAAEC,MAAM,EAAE;QAClC,IAAMhB,MAAM,GAAGrc,MAAM,CAACa,MAAM,CAAC,IAAI,CAAC;QAClCuc,MAAM,CAAC5b,OAAO,CAAC,UAAA8a,QAAQ,EAAI;UACzBD,MAAM,CAACC,QAAQ,CAAC,GAAG,IAAI;QACzB,CAAC,CAAC;QACF,IAAI,CAACqC,OAAO,CAAC;UACXtC,MAAM,EAANA;QACF,CAAC,CAAC;MACJ;IACF,CAAC;EACH;EACA,IAAIpa,KAAK,CAACC,OAAO,CAAC2b,KAAK,CAAC,EAAE;IAAE;IAC1BA,KAAK,CAACrc,OAAO,CAAC,UAAAvF,GAAG,EAAI;MACnB8hB,UAAU,CAAC9hB,GAAG,CAAC,GAAG;QAChBsZ,IAAI,EAAE,IAAI;QACV4H,QAAQ,EAAED,cAAc,CAACjhB,GAAG;MAC9B,CAAC;IACH,CAAC,CAAC;EACJ,CAAC,MAAM,IAAIsE,aAAa,CAACsd,KAAK,CAAC,EAAE;IAAE;IACjC7d,MAAM,CAACsB,IAAI,CAACuc,KAAK,CAAC,CAACrc,OAAO,CAAC,UAAAvF,GAAG,EAAI;MAChC,IAAM2iB,IAAI,GAAGf,KAAK,CAAC5hB,GAAG,CAAC;MACvB,IAAIsE,aAAa,CAACqe,IAAI,CAAC,EAAE;QAAE;QACzB,IAAIpZ,KAAK,GAAGoZ,IAAI,CAACvD,OAAO;QACxB,IAAInb,IAAI,CAACsF,KAAK,CAAC,EAAE;UACfA,KAAK,GAAGA,KAAK,EAAE;QACjB;QAEAoZ,IAAI,CAACrJ,IAAI,GAAG2I,aAAa,CAACjiB,GAAG,EAAE2iB,IAAI,CAACrJ,IAAI,CAAC;QAEzCwI,UAAU,CAAC9hB,GAAG,CAAC,GAAG;UAChBsZ,IAAI,EAAEyH,UAAU,CAACvgB,OAAO,CAACmiB,IAAI,CAACrJ,IAAI,CAAC,KAAK,CAAC,CAAC,GAAGqJ,IAAI,CAACrJ,IAAI,GAAG,IAAI;UAC7D/P,KAAK,EAALA,KAAK;UACL2X,QAAQ,EAAED,cAAc,CAACjhB,GAAG;QAC9B,CAAC;MACH,CAAC,MAAM;QAAE;QACP,IAAMsZ,IAAI,GAAG2I,aAAa,CAACjiB,GAAG,EAAE2iB,IAAI,CAAC;QACrCb,UAAU,CAAC9hB,GAAG,CAAC,GAAG;UAChBsZ,IAAI,EAAEyH,UAAU,CAACvgB,OAAO,CAAC8Y,IAAI,CAAC,KAAK,CAAC,CAAC,GAAGA,IAAI,GAAG,IAAI;UACnD4H,QAAQ,EAAED,cAAc,CAACjhB,GAAG;QAC9B,CAAC;MACH;IACF,CAAC,CAAC;EACJ;EACA,OAAO8hB,UAAU;AACnB;AAEA,SAASc,SAAS,CAAEhG,KAAK,EAAE;EACzB;EACA,IAAI;IACFA,KAAK,CAACiG,EAAE,GAAG/f,IAAI,CAACC,KAAK,CAACD,IAAI,CAAC+d,SAAS,CAACjE,KAAK,CAAC,CAAC;EAC9C,CAAC,CAAC,OAAO/D,CAAC,EAAE,CAAE;EAEd+D,KAAK,CAACkG,eAAe,GAAGre,IAAI;EAC5BmY,KAAK,CAACmG,cAAc,GAAGte,IAAI;EAE3BmY,KAAK,CAAC9c,MAAM,GAAG8c,KAAK,CAAC9c,MAAM,IAAI,CAAC,CAAC;EAEjC,IAAI,CAAC0E,MAAM,CAACoY,KAAK,EAAE,QAAQ,CAAC,EAAE;IAC5BA,KAAK,CAAC1B,MAAM,GAAG,CAAC,CAAC;EACnB;EAEA,IAAI1W,MAAM,CAACoY,KAAK,EAAE,UAAU,CAAC,EAAE;IAC7BA,KAAK,CAAC1B,MAAM,GAAG,sBAAO0B,KAAK,CAAC1B,MAAM,MAAK,QAAQ,GAAG0B,KAAK,CAAC1B,MAAM,GAAG,CAAC,CAAC;IACnE0B,KAAK,CAAC1B,MAAM,CAAC8H,QAAQ,GAAGpG,KAAK,CAACoG,QAAQ;EACxC;EAEA,IAAI1e,aAAa,CAACsY,KAAK,CAAC1B,MAAM,CAAC,EAAE;IAC/B0B,KAAK,CAAC9c,MAAM,GAAGiE,MAAM,CAAC+F,MAAM,CAAC,CAAC,CAAC,EAAE8S,KAAK,CAAC9c,MAAM,EAAE8c,KAAK,CAAC1B,MAAM,CAAC;EAC9D;EAEA,OAAO0B,KAAK;AACd;AAEA,SAASqG,aAAa,CAAE3I,EAAE,EAAE4I,cAAc,EAAE;EAC1C,IAAIvC,OAAO,GAAGrG,EAAE;EAChB4I,cAAc,CAAC3d,OAAO,CAAC,UAAA4d,aAAa,EAAI;IACtC,IAAMC,QAAQ,GAAGD,aAAa,CAAC,CAAC,CAAC;IACjC,IAAM5Z,KAAK,GAAG4Z,aAAa,CAAC,CAAC,CAAC;IAC9B,IAAIC,QAAQ,IAAI,OAAO7Z,KAAK,KAAK,WAAW,EAAE;MAAE;MAC9C,IAAM8Z,QAAQ,GAAGF,aAAa,CAAC,CAAC,CAAC;MACjC,IAAMG,SAAS,GAAGH,aAAa,CAAC,CAAC,CAAC;MAElC,IAAII,IAAI;MACR,IAAI3Y,MAAM,CAAC4Y,SAAS,CAACJ,QAAQ,CAAC,EAAE;QAC9BG,IAAI,GAAGH,QAAQ;MACjB,CAAC,MAAM,IAAI,CAACA,QAAQ,EAAE;QACpBG,IAAI,GAAG5C,OAAO;MAChB,CAAC,MAAM,IAAI,OAAOyC,QAAQ,KAAK,QAAQ,IAAIA,QAAQ,EAAE;QACnD,IAAIA,QAAQ,CAAC5iB,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;UACjC+iB,IAAI,GAAGH,QAAQ,CAACK,MAAM,CAAC,CAAC,CAAC;QAC3B,CAAC,MAAM;UACLF,IAAI,GAAGjJ,EAAE,CAACoJ,WAAW,CAACN,QAAQ,EAAEzC,OAAO,CAAC;QAC1C;MACF;MAEA,IAAI/V,MAAM,CAAC4Y,SAAS,CAACD,IAAI,CAAC,EAAE;QAC1B5C,OAAO,GAAGpX,KAAK;MACjB,CAAC,MAAM,IAAI,CAAC8Z,QAAQ,EAAE;QACpB1C,OAAO,GAAG4C,IAAI,CAACha,KAAK,CAAC;MACvB,CAAC,MAAM;QACL,IAAIvD,KAAK,CAACC,OAAO,CAACsd,IAAI,CAAC,EAAE;UACvB5C,OAAO,GAAG4C,IAAI,CAAC5V,IAAI,CAAC,UAAAgW,QAAQ,EAAI;YAC9B,OAAOrJ,EAAE,CAACoJ,WAAW,CAACL,QAAQ,EAAEM,QAAQ,CAAC,KAAKpa,KAAK;UACrD,CAAC,CAAC;QACJ,CAAC,MAAM,IAAIjF,aAAa,CAACif,IAAI,CAAC,EAAE;UAC9B5C,OAAO,GAAG5c,MAAM,CAACsB,IAAI,CAACke,IAAI,CAAC,CAAC5V,IAAI,CAAC,UAAAiW,OAAO,EAAI;YAC1C,OAAOtJ,EAAE,CAACoJ,WAAW,CAACL,QAAQ,EAAEE,IAAI,CAACK,OAAO,CAAC,CAAC,KAAKra,KAAK;UAC1D,CAAC,CAAC;QACJ,CAAC,MAAM;UACLuN,OAAO,CAAC9T,KAAK,CAAC,iBAAiB,EAAEugB,IAAI,CAAC;QACxC;MACF;MAEA,IAAID,SAAS,EAAE;QACb3C,OAAO,GAAGrG,EAAE,CAACoJ,WAAW,CAACJ,SAAS,EAAE3C,OAAO,CAAC;MAC9C;IACF;EACF,CAAC,CAAC;EACF,OAAOA,OAAO;AAChB;AAEA,SAASkD,iBAAiB,CAAEvJ,EAAE,EAAEwJ,KAAK,EAAElH,KAAK,EAAEmH,QAAQ,EAAE;EACtD,IAAMC,QAAQ,GAAG,CAAC,CAAC;EAEnB,IAAIhe,KAAK,CAACC,OAAO,CAAC6d,KAAK,CAAC,IAAIA,KAAK,CAACziB,MAAM,EAAE;IACxC;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IACIyiB,KAAK,CAACve,OAAO,CAAC,UAAC6d,QAAQ,EAAE7c,KAAK,EAAK;MACjC,IAAI,OAAO6c,QAAQ,KAAK,QAAQ,EAAE;QAChC,IAAI,CAACA,QAAQ,EAAE;UAAE;UACfY,QAAQ,CAAC,GAAG,GAAGzd,KAAK,CAAC,GAAG+T,EAAE;QAC5B,CAAC,MAAM;UACL,IAAI8I,QAAQ,KAAK,QAAQ,EAAE;YAAE;YAC3BY,QAAQ,CAAC,GAAG,GAAGzd,KAAK,CAAC,GAAGqW,KAAK;UAC/B,CAAC,MAAM,IAAIwG,QAAQ,KAAK,WAAW,EAAE;YACnCY,QAAQ,CAAC,GAAG,GAAGzd,KAAK,CAAC,GAAGqW,KAAK,CAAC1B,MAAM,GAAG0B,KAAK,CAAC1B,MAAM,CAAC6I,QAAQ,IAAIA,QAAQ,GAAGA,QAAQ;UACrF,CAAC,MAAM,IAAIX,QAAQ,CAAC5iB,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;YAAE;YAC9CwjB,QAAQ,CAAC,GAAG,GAAGzd,KAAK,CAAC,GAAG+T,EAAE,CAACoJ,WAAW,CAACN,QAAQ,CAACniB,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE2b,KAAK,CAAC;UAChF,CAAC,MAAM;YACLoH,QAAQ,CAAC,GAAG,GAAGzd,KAAK,CAAC,GAAG+T,EAAE,CAACoJ,WAAW,CAACN,QAAQ,CAAC;UAClD;QACF;MACF,CAAC,MAAM;QACLY,QAAQ,CAAC,GAAG,GAAGzd,KAAK,CAAC,GAAG0c,aAAa,CAAC3I,EAAE,EAAE8I,QAAQ,CAAC;MACrD;IACF,CAAC,CAAC;EACJ;EAEA,OAAOY,QAAQ;AACjB;AAEA,SAASC,aAAa,CAAEC,GAAG,EAAE;EAC3B,IAAM7f,GAAG,GAAG,CAAC,CAAC;EACd,KAAK,IAAI3C,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGwiB,GAAG,CAAC7iB,MAAM,EAAEK,CAAC,EAAE,EAAE;IACnC,IAAMyiB,OAAO,GAAGD,GAAG,CAACxiB,CAAC,CAAC;IACtB2C,GAAG,CAAC8f,OAAO,CAAC,CAAC,CAAC,CAAC,GAAGA,OAAO,CAAC,CAAC,CAAC;EAC9B;EACA,OAAO9f,GAAG;AACZ;AAEA,SAAS+f,gBAAgB,CAAE9J,EAAE,EAAEsC,KAAK,EAA+C;EAAA,IAA7ChN,IAAI,uEAAG,EAAE;EAAA,IAAEkU,KAAK,uEAAG,EAAE;EAAA,IAAEO,QAAQ;EAAA,IAAE9N,UAAU;EAC/E,IAAI+N,eAAe,GAAG,KAAK,CAAC,CAAC;;EAE7B;EACA,IAAMP,QAAQ,GAAGzf,aAAa,CAACsY,KAAK,CAAC1B,MAAM,CAAC,GACxC0B,KAAK,CAAC1B,MAAM,CAAC6I,QAAQ,IAAI,CAACnH,KAAK,CAAC1B,MAAM,CAAC,GACvC,CAAC0B,KAAK,CAAC1B,MAAM,CAAC;EAElB,IAAImJ,QAAQ,EAAE;IAAE;IACdC,eAAe,GAAG1H,KAAK,CAAC2H,aAAa,IACnC3H,KAAK,CAAC2H,aAAa,CAAC5I,OAAO,IAC3BiB,KAAK,CAAC2H,aAAa,CAAC5I,OAAO,CAAC2C,OAAO,KAAK,IAAI;IAC9C,IAAI,CAAC1O,IAAI,CAACvO,MAAM,EAAE;MAAE;MAClB,IAAIijB,eAAe,EAAE;QACnB,OAAO,CAAC1H,KAAK,CAAC;MAChB;MACA,OAAOmH,QAAQ;IACjB;EACF;EAEA,IAAMC,QAAQ,GAAGH,iBAAiB,CAACvJ,EAAE,EAAEwJ,KAAK,EAAElH,KAAK,EAAEmH,QAAQ,CAAC;EAE9D,IAAMS,GAAG,GAAG,EAAE;EACd5U,IAAI,CAACrK,OAAO,CAAC,UAAAkf,GAAG,EAAI;IAClB,IAAIA,GAAG,KAAK,QAAQ,EAAE;MACpB,IAAIlO,UAAU,KAAK,aAAa,IAAI,CAAC8N,QAAQ,EAAE;QAAE;QAC/CG,GAAG,CAACpe,IAAI,CAACwW,KAAK,CAAC9c,MAAM,CAACyJ,KAAK,CAAC;MAC9B,CAAC,MAAM;QACL,IAAI8a,QAAQ,IAAI,CAACC,eAAe,EAAE;UAChCE,GAAG,CAACpe,IAAI,CAAC2d,QAAQ,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC,MAAM;UAAE;UACPS,GAAG,CAACpe,IAAI,CAACwW,KAAK,CAAC;QACjB;MACF;IACF,CAAC,MAAM;MACL,IAAI5W,KAAK,CAACC,OAAO,CAACwe,GAAG,CAAC,IAAIA,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;QACxCD,GAAG,CAACpe,IAAI,CAAC6d,aAAa,CAACQ,GAAG,CAAC,CAAC;MAC9B,CAAC,MAAM,IAAI,OAAOA,GAAG,KAAK,QAAQ,IAAIjgB,MAAM,CAACwf,QAAQ,EAAES,GAAG,CAAC,EAAE;QAC3DD,GAAG,CAACpe,IAAI,CAAC4d,QAAQ,CAACS,GAAG,CAAC,CAAC;MACzB,CAAC,MAAM;QACLD,GAAG,CAACpe,IAAI,CAACqe,GAAG,CAAC;MACf;IACF;EACF,CAAC,CAAC;EAEF,OAAOD,GAAG;AACZ;AAEA,IAAME,IAAI,GAAG,GAAG;AAChB,IAAMC,MAAM,GAAG,GAAG;AAElB,SAASC,gBAAgB,CAAEC,SAAS,EAAEC,OAAO,EAAE;EAC7C,OAAQD,SAAS,KAAKC,OAAO,IAEzBA,OAAO,KAAK,cAAc,KAExBD,SAAS,KAAK,OAAO,IACrBA,SAAS,KAAK,KAAK,CAEtB;AACL;AAEA,SAASE,YAAY,CAAEzK,EAAE,EAAE;EACzB,IAAI0K,OAAO,GAAG1K,EAAE,CAAC0K,OAAO;EACxB;EACA,OAAOA,OAAO,IAAIA,OAAO,CAACA,OAAO,KAAKA,OAAO,CAACC,QAAQ,CAACC,OAAO,IAAIF,OAAO,CAACA,OAAO,CAACC,QAAQ,CAACC,OAAO,IAAIF,OAAO,CAACtK,MAAM,CAAC+F,QAAQ,CAAC,EAAE;IAC9HuE,OAAO,GAAGA,OAAO,CAACA,OAAO;EAC3B;EACA,OAAOA,OAAO,IAAIA,OAAO,CAACA,OAAO;AACnC;AAEA,SAASG,WAAW,CAAEvI,KAAK,EAAE;EAAA;EAC3BA,KAAK,GAAGgG,SAAS,CAAChG,KAAK,CAAC;;EAExB;EACA,IAAMjB,OAAO,GAAG,CAACiB,KAAK,CAAC2H,aAAa,IAAI3H,KAAK,CAAC9c,MAAM,EAAE6b,OAAO;EAC7D,IAAI,CAACA,OAAO,EAAE;IACZ,OAAO7E,OAAO,CAACC,IAAI,CAAC,SAAS,CAAC;EAChC;EACA,IAAMqO,SAAS,GAAGzJ,OAAO,CAACyJ,SAAS,IAAIzJ,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;EAC9D,IAAI,CAACyJ,SAAS,EAAE;IACd,OAAOtO,OAAO,CAACC,IAAI,CAAC,SAAS,CAAC;EAChC;;EAEA;EACA,IAAM8N,SAAS,GAAGjI,KAAK,CAACtD,IAAI;EAE5B,IAAMkL,GAAG,GAAG,EAAE;EAEdY,SAAS,CAAC7f,OAAO,CAAC,UAAA8f,QAAQ,EAAI;IAC5B,IAAI/L,IAAI,GAAG+L,QAAQ,CAAC,CAAC,CAAC;IACtB,IAAMC,WAAW,GAAGD,QAAQ,CAAC,CAAC,CAAC;IAE/B,IAAMhB,QAAQ,GAAG/K,IAAI,CAAC3X,MAAM,CAAC,CAAC,CAAC,KAAKgjB,MAAM;IAC1CrL,IAAI,GAAG+K,QAAQ,GAAG/K,IAAI,CAAClY,KAAK,CAAC,CAAC,CAAC,GAAGkY,IAAI;IACtC,IAAMiM,MAAM,GAAGjM,IAAI,CAAC3X,MAAM,CAAC,CAAC,CAAC,KAAK+iB,IAAI;IACtCpL,IAAI,GAAGiM,MAAM,GAAGjM,IAAI,CAAClY,KAAK,CAAC,CAAC,CAAC,GAAGkY,IAAI;IAEpC,IAAIgM,WAAW,IAAIV,gBAAgB,CAACC,SAAS,EAAEvL,IAAI,CAAC,EAAE;MACpDgM,WAAW,CAAC/f,OAAO,CAAC,UAAAigB,UAAU,EAAI;QAChC,IAAMjP,UAAU,GAAGiP,UAAU,CAAC,CAAC,CAAC;QAChC,IAAIjP,UAAU,EAAE;UACd,IAAIkP,UAAU,GAAG,MAAI,CAACpX,GAAG;UACzB,IAAIoX,UAAU,CAACR,QAAQ,CAACC,OAAO,EAAE;YAAE;YACjCO,UAAU,GAAGV,YAAY,CAACU,UAAU,CAAC,IAAIA,UAAU;UACrD;UACA,IAAIlP,UAAU,KAAK,OAAO,EAAE;YAC1BkP,UAAU,CAAC/M,KAAK,CAACrB,KAAK,CAACoO,UAAU,EAC/BrB,gBAAgB,CACd,MAAI,CAAC/V,GAAG,EACRuO,KAAK,EACL4I,UAAU,CAAC,CAAC,CAAC,EACbA,UAAU,CAAC,CAAC,CAAC,EACbnB,QAAQ,EACR9N,UAAU,CACX,CAAC;YACJ;UACF;UACA,IAAMmP,OAAO,GAAGD,UAAU,CAAClP,UAAU,CAAC;UACtC,IAAI,CAACtS,IAAI,CAACyhB,OAAO,CAAC,EAAE;YAClB,IAAMpM,KAAI,GAAG,MAAI,CAACjL,GAAG,CAAC4Q,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,WAAW;YAC9D,IAAM0G,IAAI,GAAG,MAAI,CAAC3K,KAAK,IAAI,MAAI,CAAC4K,EAAE;YAClC,MAAM,IAAIzkB,KAAK,WAAImY,KAAI,gBAAKqM,IAAI,yCAA6BpP,UAAU,QAAI;UAC7E;UACA,IAAIgP,MAAM,EAAE;YACV,IAAIG,OAAO,CAACG,IAAI,EAAE;cAChB;YACF;YACAH,OAAO,CAACG,IAAI,GAAG,IAAI;UACrB;UACA,IAAI5e,MAAM,GAAGmd,gBAAgB,CAC3B,MAAI,CAAC/V,GAAG,EACRuO,KAAK,EACL4I,UAAU,CAAC,CAAC,CAAC,EACbA,UAAU,CAAC,CAAC,CAAC,EACbnB,QAAQ,EACR9N,UAAU,CACX;UACDtP,MAAM,GAAGjB,KAAK,CAACC,OAAO,CAACgB,MAAM,CAAC,GAAGA,MAAM,GAAG,EAAE;UAC5C;UACA,IAAI,2DAA2D,CAAC/F,IAAI,CAACwkB,OAAO,CAACvjB,QAAQ,EAAE,CAAC,EAAE;YACxF;YACA8E,MAAM,GAAGA,MAAM,CAAClB,MAAM,CAAC,YAAqB6W,KAAK,CAAC,CAAC;UACrD;UACA4H,GAAG,CAACpe,IAAI,CAACsf,OAAO,CAACrO,KAAK,CAACoO,UAAU,EAAExe,MAAM,CAAC,CAAC;QAC7C;MACF,CAAC,CAAC;IACJ;EACF,CAAC,CAAC;EAEF,IACE4d,SAAS,KAAK,OAAO,IACrBL,GAAG,CAACnjB,MAAM,KAAK,CAAC,IAChB,OAAOmjB,GAAG,CAAC,CAAC,CAAC,KAAK,WAAW,EAC7B;IACA,OAAOA,GAAG,CAAC,CAAC,CAAC;EACf;AACF;AAEA,IAAMsB,aAAa,GAAG,CAAC,CAAC;AAExB,SAASC,eAAe,CAAEC,EAAE,EAAE;EAC5B,IAAMC,YAAY,GAAGH,aAAa,CAACE,EAAE,CAAC;EACtC,OAAOF,aAAa,CAACE,EAAE,CAAC;EACxB,OAAOC,YAAY;AACrB;AAEA,IAAM9f,KAAK,GAAG,CACZ,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,sBAAsB,CACvB;AAED,SAAS+f,gBAAgB,GAAI;EAC3B7iB,YAAG,CAACC,SAAS,CAAC6iB,qBAAqB,GAAG,YAAY;IAChD;IACA;MACE,OAAO,IAAI,CAACzL,MAAM,CAACyL,qBAAqB,EAAE;IAC5C;EACF,CAAC;EACD,IAAMC,QAAQ,GAAG/iB,YAAG,CAACC,SAAS,CAACoc,WAAW;EAC1Crc,YAAG,CAACC,SAAS,CAACoc,WAAW,GAAG,UAAUpZ,IAAI,EAAEsJ,IAAI,EAAE;IAChD,IAAItJ,IAAI,KAAK,QAAQ,IAAIsJ,IAAI,IAAIA,IAAI,CAACyW,MAAM,EAAE;MAC5C,IAAI,CAACC,gBAAgB,GAAGP,eAAe,CAACnW,IAAI,CAACyW,MAAM,CAAC;MACpD,OAAOzW,IAAI,CAACyW,MAAM;IACpB;IACA,OAAOD,QAAQ,CAAC7hB,IAAI,CAAC,IAAI,EAAE+B,IAAI,EAAEsJ,IAAI,CAAC;EACxC,CAAC;AACH;AAEA,SAAS2W,qBAAqB,GAAI;EAChC,IAAMC,MAAM,GAAG,CAAC,CAAC;EACjB,IAAMC,OAAO,GAAG,CAAC,CAAC;EAElB,SAASC,SAAS,CAAExiB,EAAE,EAAE;IACtB,IAAMsc,MAAM,GAAG,IAAI,CAACyE,QAAQ,CAAC0B,SAAS,CAACtE,KAAK;IAC5C,IAAI7B,MAAM,EAAE;MACV,IAAM6B,KAAK,GAAG7B,MAAM,CAACze,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;MAClCmC,EAAE,CAACme,KAAK,CAAC;IACX;EACF;EAEAhf,YAAG,CAACC,SAAS,CAACsjB,OAAO,GAAG,UAAUvE,KAAK,EAAE;IACvC,IAAMwE,IAAI,GAAGL,MAAM,CAACnE,KAAK,CAAC;IAC1B,IAAI,CAACwE,IAAI,EAAE;MACTJ,OAAO,CAACpE,KAAK,CAAC,GAAG,IAAI;MACrB,IAAI,CAAC9J,GAAG,CAAC,gBAAgB,EAAE,YAAM;QAC/B,OAAOkO,OAAO,CAACpE,KAAK,CAAC;MACvB,CAAC,CAAC;IACJ;IACA,OAAOwE,IAAI;EACb,CAAC;EAEDxjB,YAAG,CAACC,SAAS,CAACwjB,OAAO,GAAG,UAAUzE,KAAK,EAAEza,IAAI,EAAEmf,OAAO,EAAE;IACtD,IAAMF,IAAI,GAAGL,MAAM,CAACnE,KAAK,CAAC;IAC1B,IAAIwE,IAAI,EAAE;MACR,IAAM5f,MAAM,GAAG4f,IAAI,CAACjf,IAAI,CAAC,IAAI,EAAE;MAC/B,IAAImf,OAAO,EAAE;QACX,OAAO9f,MAAM;MACf;MACA,OAAOA,MAAM,CAAC,CAAC,CAAC;IAClB;EACF,CAAC;EAED5D,YAAG,CAACC,SAAS,CAAC0jB,OAAO,GAAG,UAAUpf,IAAI,EAAE2B,KAAK,EAAE;IAC7C,IAAIhD,KAAK,GAAG,CAAC;IACbmgB,SAAS,CAACniB,IAAI,CAAC,IAAI,EAAE,UAAA8d,KAAK,EAAI;MAC5B,IAAMwE,IAAI,GAAGL,MAAM,CAACnE,KAAK,CAAC;MAC1B,IAAMpb,MAAM,GAAG4f,IAAI,CAACjf,IAAI,CAAC,GAAGif,IAAI,CAACjf,IAAI,CAAC,IAAI,EAAE;MAC5CX,MAAM,CAACb,IAAI,CAACmD,KAAK,CAAC;MAClBhD,KAAK,GAAGU,MAAM,CAAC5F,MAAM,GAAG,CAAC;IAC3B,CAAC,CAAC;IACF,OAAOkF,KAAK;EACd,CAAC;EAEDlD,YAAG,CAACC,SAAS,CAAC2jB,QAAQ,GAAG,YAAY;IACnCP,SAAS,CAACniB,IAAI,CAAC,IAAI,EAAE,UAAA8d,KAAK,EAAI;MAC5BmE,MAAM,CAACnE,KAAK,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC,CAAC;EACJ,CAAC;EAEDhf,YAAG,CAACC,SAAS,CAAC4jB,QAAQ,GAAG,YAAY;IACnCR,SAAS,CAACniB,IAAI,CAAC,IAAI,EAAE,UAAA8d,KAAK,EAAI;MAC5B,IAAIoE,OAAO,CAACpE,KAAK,CAAC,EAAE;QAClBoE,OAAO,CAACpE,KAAK,CAAC,CAAC9V,YAAY,EAAE;MAC/B;IACF,CAAC,CAAC;EACJ,CAAC;EAEDlJ,YAAG,CAAC8I,KAAK,CAAC;IACRgb,SAAS,uBAAI;MACX,IAAMR,SAAS,GAAG,IAAI,CAAC1B,QAAQ,CAAC0B,SAAS;MACzC,IAAMtE,KAAK,GAAGsE,SAAS,IAAIA,SAAS,CAACtE,KAAK;MAC1C,IAAIA,KAAK,EAAE;QACT,OAAOmE,MAAM,CAACnE,KAAK,CAAC;QACpB,OAAOoE,OAAO,CAACpE,KAAK,CAAC;MACvB;IACF;EACF,CAAC,CAAC;AACJ;AAEA,SAAS+E,YAAY,CAAE9M,EAAE,SAGtB;EAAA,IAFDF,KAAK,SAALA,KAAK;IACLqC,QAAQ,SAARA,QAAQ;EAERyJ,gBAAgB,EAAE;EAClB;IACEK,qBAAqB,EAAE;EACzB;EACA,IAAIjM,EAAE,CAAC2K,QAAQ,CAACoC,KAAK,EAAE;IACrBhkB,YAAG,CAACC,SAAS,CAACgkB,MAAM,GAAGhN,EAAE,CAAC2K,QAAQ,CAACoC,KAAK;EAC1C;EACAjkB,UAAU,CAACC,YAAG,CAAC;EAEfA,YAAG,CAACC,SAAS,CAACikB,MAAM,GAAG,WAAW;EAElClkB,YAAG,CAAC8I,KAAK,CAAC;IACRC,YAAY,0BAAI;MACd,IAAI,CAAC,IAAI,CAAC6Y,QAAQ,CAAChG,MAAM,EAAE;QACzB;MACF;MAEA,IAAI,CAACA,MAAM,GAAG,IAAI,CAACgG,QAAQ,CAAChG,MAAM;MAElC,IAAI,CAACD,GAAG;QACN9X,IAAI,EAAE,CAAC;MAAC,GACP,IAAI,CAAC+X,MAAM,EAAG,IAAI,CAACgG,QAAQ,CAAC5J,UAAU,CACxC;MAED,IAAI,CAACX,MAAM,GAAG,IAAI,CAACuK,QAAQ,CAAC5J,UAAU;MAEtC,OAAO,IAAI,CAAC4J,QAAQ,CAAChG,MAAM;MAC3B,OAAO,IAAI,CAACgG,QAAQ,CAAC5J,UAAU;MAC/B,IAAI,IAAI,CAAC4D,MAAM,KAAK,MAAM,IAAI,OAAO/Q,MAAM,KAAK,UAAU,EAAE;QAAE;QAC5D,IAAMC,GAAG,GAAGD,MAAM,EAAE;QACpB,IAAIC,GAAG,CAACE,GAAG,IAAIF,GAAG,CAACE,GAAG,CAACmZ,KAAK,EAAE;UAC5B,IAAI,CAACC,KAAK,GAAGtZ,GAAG,CAACE,GAAG,CAACmZ,KAAK;QAC5B;MACF;MACA,IAAI,IAAI,CAACvI,MAAM,KAAK,KAAK,EAAE;QACzBxC,QAAQ,CAAC,IAAI,CAAC;QACdsC,SAAS,CAAC,IAAI,EAAE3E,KAAK,CAAC;MACxB;IACF;EACF,CAAC,CAAC;EAEF,IAAMsN,UAAU,GAAG;IACjBC,QAAQ,oBAAE/X,IAAI,EAAE;MACd,IAAI,IAAI,CAACvB,GAAG,EAAE;QAAE;QACd;MACF;MACA;QACE,IAAI/L,EAAE,CAACslB,OAAO,IAAI,CAACtlB,EAAE,CAACslB,OAAO,CAAC,UAAU,CAAC,EAAE;UAAE;UAC3C9Q,OAAO,CAAC9T,KAAK,CAAC,qDAAqD,CAAC;QACtE;MACF;MAEA,IAAI,CAACqL,GAAG,GAAGiM,EAAE;MAEb,IAAI,CAACjM,GAAG,CAAC2Q,GAAG,GAAG;QACb7Q,GAAG,EAAE;MACP,CAAC;MAED,IAAI,CAACE,GAAG,CAACqM,MAAM,GAAG,IAAI;MACtB;MACA,IAAI,CAACrM,GAAG,CAACwZ,UAAU,GAAG,IAAI,CAACA,UAAU;MAErC,IAAI,CAACxZ,GAAG,CAACyZ,UAAU,GAAG,IAAI;MAC1B,IAAI,CAACzZ,GAAG,CAACqR,WAAW,CAAC,SAAS,EAAE9P,IAAI,CAAC;MAErC,IAAI,CAACvB,GAAG,CAACqR,WAAW,CAAC,UAAU,EAAE9P,IAAI,CAAC;IACxC;EACF,CAAC;;EAED;EACA8X,UAAU,CAACG,UAAU,GAAGvN,EAAE,CAAC2K,QAAQ,CAAC4C,UAAU,IAAI,CAAC,CAAC;EACpD;EACA,IAAMpb,OAAO,GAAG6N,EAAE,CAAC2K,QAAQ,CAACxY,OAAO;EACnC,IAAIA,OAAO,EAAE;IACX1I,MAAM,CAACsB,IAAI,CAACoH,OAAO,CAAC,CAAClH,OAAO,CAAC,UAAAqC,IAAI,EAAI;MACnC8f,UAAU,CAAC9f,IAAI,CAAC,GAAG6E,OAAO,CAAC7E,IAAI,CAAC;IAClC,CAAC,CAAC;EACJ;EAEAkF,aAAa,CAACzJ,YAAG,EAAEiX,EAAE,EAAEhP,eAAe,CAAChJ,EAAE,CAAC+H,iBAAiB,EAAE,CAACkB,QAAQ,CAAC,IAAIN,SAAS,CAAC;EAErFuU,SAAS,CAACkI,UAAU,EAAEvhB,KAAK,CAAC;EAC5BwZ,gBAAgB,CAAC+H,UAAU,EAAEpN,EAAE,CAAC2K,QAAQ,CAAC;EAEzC,OAAOyC,UAAU;AACnB;AAEA,SAASK,QAAQ,CAAEzN,EAAE,EAAE;EACrB,OAAO8M,YAAY,CAAC9M,EAAE,EAAE;IACtBF,KAAK,EAALA,KAAK;IACLqC,QAAQ,EAARA;EACF,CAAC,CAAC;AACJ;AAEA,SAASuL,SAAS,CAAE1N,EAAE,EAAE;EACtB2N,GAAG,CAACF,QAAQ,CAACzN,EAAE,CAAC,CAAC;EACjB,OAAOA,EAAE;AACX;AAEA,IAAM4N,eAAe,GAAG,UAAU;AAClC,IAAMC,qBAAqB,GAAG,SAAxBA,qBAAqB,CAAGlmB,CAAC;EAAA,OAAI,GAAG,GAAGA,CAAC,CAACC,UAAU,CAAC,CAAC,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC;AAAA;AACrE,IAAMimB,OAAO,GAAG,MAAM;;AAEtB;AACA;AACA;AACA,IAAMC,MAAM,GAAG,SAATA,MAAM,CAAGtnB,GAAG;EAAA,OAAIunB,kBAAkB,CAACvnB,GAAG,CAAC,CAC1CE,OAAO,CAACinB,eAAe,EAAEC,qBAAqB,CAAC,CAC/ClnB,OAAO,CAACmnB,OAAO,EAAE,GAAG,CAAC;AAAA;AAExB,SAASG,cAAc,CAAElkB,GAAG,EAAsB;EAAA,IAApBmkB,SAAS,uEAAGH,MAAM;EAC9C,IAAMviB,GAAG,GAAGzB,GAAG,GAAGN,MAAM,CAACsB,IAAI,CAAChB,GAAG,CAAC,CAACrC,GAAG,CAAC,UAAAhC,GAAG,EAAI;IAC5C,IAAMyoB,GAAG,GAAGpkB,GAAG,CAACrE,GAAG,CAAC;IAEpB,IAAIyoB,GAAG,KAAKxU,SAAS,EAAE;MACrB,OAAO,EAAE;IACX;IAEA,IAAIwU,GAAG,KAAK,IAAI,EAAE;MAChB,OAAOD,SAAS,CAACxoB,GAAG,CAAC;IACvB;IAEA,IAAIgG,KAAK,CAACC,OAAO,CAACwiB,GAAG,CAAC,EAAE;MACtB,IAAMlnB,MAAM,GAAG,EAAE;MACjBknB,GAAG,CAACljB,OAAO,CAAC,UAAAmjB,IAAI,EAAI;QAClB,IAAIA,IAAI,KAAKzU,SAAS,EAAE;UACtB;QACF;QACA,IAAIyU,IAAI,KAAK,IAAI,EAAE;UACjBnnB,MAAM,CAAC6E,IAAI,CAACoiB,SAAS,CAACxoB,GAAG,CAAC,CAAC;QAC7B,CAAC,MAAM;UACLuB,MAAM,CAAC6E,IAAI,CAACoiB,SAAS,CAACxoB,GAAG,CAAC,GAAG,GAAG,GAAGwoB,SAAS,CAACE,IAAI,CAAC,CAAC;QACrD;MACF,CAAC,CAAC;MACF,OAAOnnB,MAAM,CAACtB,IAAI,CAAC,GAAG,CAAC;IACzB;IAEA,OAAOuoB,SAAS,CAACxoB,GAAG,CAAC,GAAG,GAAG,GAAGwoB,SAAS,CAACC,GAAG,CAAC;EAC9C,CAAC,CAAC,CAACrY,MAAM,CAAC,UAAAuY,CAAC;IAAA,OAAIA,CAAC,CAACtnB,MAAM,GAAG,CAAC;EAAA,EAAC,CAACpB,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI;EAC7C,OAAO6F,GAAG,cAAOA,GAAG,IAAK,EAAE;AAC7B;AAEA,SAAS8iB,kBAAkB,CAAEC,mBAAmB,EAGxB;EAAA,gFAApB,CAAC,CAAC;IAFJ9N,MAAM,SAANA,MAAM;IACNE,YAAY,SAAZA,YAAY;EAAA,IACN6N,cAAc;EACpB,wBAAmC/I,gBAAgB,CAAC1c,YAAG,EAAEwlB,mBAAmB,CAAC;IAAA;IAAtE7I,YAAY;IAAEnD,UAAU;EAE/B,IAAMlV,OAAO;IACXohB,aAAa,EAAE,IAAI;IACnB;IACAC,cAAc,EAAE;EAAI,GAChBnM,UAAU,CAAClV,OAAO,IAAI,CAAC,CAAC,CAC7B;EAED;IACE;IACA,IAAIkV,UAAU,CAAC,WAAW,CAAC,IAAIA,UAAU,CAAC,WAAW,CAAC,CAAClV,OAAO,EAAE;MAC9D5D,MAAM,CAAC+F,MAAM,CAACnC,OAAO,EAAEkV,UAAU,CAAC,WAAW,CAAC,CAAClV,OAAO,CAAC;IACzD;EACF;EAEA,IAAMshB,gBAAgB,GAAG;IACvBthB,OAAO,EAAPA,OAAO;IACPT,IAAI,EAAEwZ,QAAQ,CAAC7D,UAAU,EAAExZ,YAAG,CAACC,SAAS,CAAC;IACzCie,SAAS,EAAEF,aAAa,CAACxE,UAAU,EAAEhC,YAAY,CAAC;IAClDiH,UAAU,EAAEC,cAAc,CAAClF,UAAU,CAAC+E,KAAK,EAAE,KAAK,EAAE/E,UAAU,CAACqM,MAAM,EAAEvhB,OAAO,CAAC;IAC/EwhB,SAAS,EAAE;MACTC,QAAQ,sBAAI;QACV,IAAMtH,UAAU,GAAG,IAAI,CAACA,UAAU;QAElC,IAAMna,OAAO,GAAG;UACdsX,MAAM,EAAElE,MAAM,CAACxW,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,WAAW;UAChD8W,UAAU,EAAE,IAAI;UAChBsL,SAAS,EAAE7E;QACb,CAAC;QAEDvB,UAAU,CAACuB,UAAU,CAACO,KAAK,EAAE,IAAI,CAAC;;QAElC;QACApH,YAAY,CAAC1W,IAAI,CAAC,IAAI,EAAE;UACtBgW,MAAM,EAAE,IAAI,CAACkG,QAAQ;UACrB5D,UAAU,EAAElV;QACd,CAAC,CAAC;;QAEF;QACA,IAAI,CAAC0G,GAAG,GAAG,IAAI2R,YAAY,CAACrY,OAAO,CAAC;;QAEpC;QACAuY,SAAS,CAAC,IAAI,CAAC7R,GAAG,EAAEyT,UAAU,CAAC3B,QAAQ,CAAC;;QAExC;QACA,IAAI,CAAC9R,GAAG,CAACgb,MAAM,EAAE;MACnB,CAAC;MACDC,KAAK,mBAAI;QACP;QACA;QACA,IAAI,IAAI,CAACjb,GAAG,EAAE;UACZ,IAAI,CAACA,GAAG,CAACyZ,UAAU,GAAG,IAAI;UAC1B,IAAI,CAACzZ,GAAG,CAACqR,WAAW,CAAC,SAAS,CAAC;UAC/B,IAAI,CAACrR,GAAG,CAACqR,WAAW,CAAC,SAAS,CAAC;QACjC;MACF,CAAC;MACD6J,QAAQ,sBAAI;QACV,IAAI,CAAClb,GAAG,IAAI,IAAI,CAACA,GAAG,CAACmb,QAAQ,EAAE;MACjC;IACF,CAAC;IACDC,aAAa,EAAE;MACbC,IAAI,gBAAE9Z,IAAI,EAAE;QACV,IAAI,CAACvB,GAAG,IAAI,IAAI,CAACA,GAAG,CAACqR,WAAW,CAAC,YAAY,EAAE9P,IAAI,CAAC;MACtD,CAAC;MACD+Z,IAAI,kBAAI;QACN,IAAI,CAACtb,GAAG,IAAI,IAAI,CAACA,GAAG,CAACqR,WAAW,CAAC,YAAY,CAAC;MAChD,CAAC;MACDkK,MAAM,kBAAEC,IAAI,EAAE;QACZ,IAAI,CAACxb,GAAG,IAAI,IAAI,CAACA,GAAG,CAACqR,WAAW,CAAC,cAAc,EAAEmK,IAAI,CAAC;MACxD;IACF,CAAC;IACDpd,OAAO,EAAE;MACPqd,GAAG,EAAEnN,UAAU;MACfoN,GAAG,EAAE5E;IACP;EACF,CAAC;EACD;EACA,IAAItI,UAAU,CAACmN,eAAe,EAAE;IAC9Bf,gBAAgB,CAACe,eAAe,GAAGnN,UAAU,CAACmN,eAAe;EAC/D;EAEA,IAAIhkB,KAAK,CAACC,OAAO,CAAC4W,UAAU,CAACoN,cAAc,CAAC,EAAE;IAC5CpN,UAAU,CAACoN,cAAc,CAAC1kB,OAAO,CAAC,UAAA2kB,UAAU,EAAI;MAC9CjB,gBAAgB,CAACxc,OAAO,CAACyd,UAAU,CAAC,GAAG,UAAUta,IAAI,EAAE;QACrD,OAAO,IAAI,CAACvB,GAAG,CAAC6b,UAAU,CAAC,CAACta,IAAI,CAAC;MACnC,CAAC;IACH,CAAC,CAAC;EACJ;EAEA,IAAIkZ,cAAc,EAAE;IAClB,OAAO,CAACG,gBAAgB,EAAEpM,UAAU,EAAEmD,YAAY,CAAC;EACrD;EACA,IAAIjF,MAAM,EAAE;IACV,OAAOkO,gBAAgB;EACzB;EACA,OAAO,CAACA,gBAAgB,EAAEjJ,YAAY,CAAC;AACzC;AAEA,SAASmK,cAAc,CAAEtB,mBAAmB,EAAEC,cAAc,EAAE;EAC5D,OAAOF,kBAAkB,CAACC,mBAAmB,EAAE;IAC7C9N,MAAM,EAANA,MAAM;IACNE,YAAY,EAAZA;EACF,CAAC,EAAE6N,cAAc,CAAC;AACpB;AAEA,IAAMsB,OAAO,GAAG,CACd,QAAQ,EACR,QAAQ,EACR,UAAU,CACX;AAEDA,OAAO,CAAChkB,IAAI,OAAZgkB,OAAO,EAAStL,gBAAgB,CAAC;AAEjC,SAASuL,aAAa,CAAEC,cAAc,EAAE;EACtC,sBAAkCH,cAAc,CAACG,cAAc,EAAE,IAAI,CAAC;IAAA;IAA/DC,WAAW;IAAE1N,UAAU;EAE9B2C,SAAS,CAAC+K,WAAW,CAAC9d,OAAO,EAAE2d,OAAO,EAAEvN,UAAU,CAAC;EAEnD0N,WAAW,CAAC9d,OAAO,CAAC+d,MAAM,GAAG,UAAUC,KAAK,EAAE;IAC5C,IAAI,CAAC9iB,OAAO,GAAG8iB,KAAK;IACpB,IAAMC,SAAS,GAAG3mB,MAAM,CAAC+F,MAAM,CAAC,CAAC,CAAC,EAAE2gB,KAAK,CAAC;IAC1C,OAAOC,SAAS,CAACrE,MAAM;IACvB,IAAI,CAAC/W,KAAK,GAAG;MACXC,QAAQ,EAAE,GAAG,IAAI,IAAI,CAACyL,KAAK,IAAI,IAAI,CAAC4K,EAAE,CAAC,GAAG2C,cAAc,CAACmC,SAAS;IACpE,CAAC;IACD,IAAI,CAACrc,GAAG,CAAC2Q,GAAG,CAACyL,KAAK,GAAGA,KAAK,CAAC,CAAC;IAC5B,IAAI,CAACpc,GAAG,CAACqR,WAAW,CAAC,QAAQ,EAAE+K,KAAK,CAAC;EACvC,CAAC;EACD;IACE9K,gBAAgB,CAAC4K,WAAW,CAAC9d,OAAO,EAAE6d,cAAc,EAAE,CAAC,SAAS,CAAC,CAAC;EACpE;EACA;IACE/M,kBAAkB,CAACgN,WAAW,CAAC9d,OAAO,EAAEoQ,UAAU,CAACpQ,OAAO,CAAC;EAC7D;EAEA,OAAO8d,WAAW;AACpB;AAEA,SAASI,SAAS,CAAEL,cAAc,EAAE;EAClC,OAAOD,aAAa,CAACC,cAAc,CAAC;AACtC;AAEA,SAASM,UAAU,CAAEN,cAAc,EAAE;EACnC;IACE,OAAOtM,SAAS,CAAC2M,SAAS,CAACL,cAAc,CAAC,CAAC;EAC7C;AACF;AAEA,SAASO,eAAe,CAAEhO,UAAU,EAAE;EACpC;IACE,OAAOmB,SAAS,CAACmM,cAAc,CAACtN,UAAU,CAAC,CAAC;EAC9C;AACF;AAEA,SAASiO,mBAAmB,CAAExQ,EAAE,EAAE;EAChC,IAAMoN,UAAU,GAAGK,QAAQ,CAACzN,EAAE,CAAC;EAC/B,IAAMnM,GAAG,GAAGD,MAAM,CAAC;IACjBE,YAAY,EAAE;EAChB,CAAC,CAAC;EACFkM,EAAE,CAACI,MAAM,GAAGvM,GAAG;EACf,IAAM0Z,UAAU,GAAG1Z,GAAG,CAAC0Z,UAAU;EACjC,IAAIA,UAAU,EAAE;IACd9jB,MAAM,CAACsB,IAAI,CAACqiB,UAAU,CAACG,UAAU,CAAC,CAACtiB,OAAO,CAAC,UAAAqC,IAAI,EAAI;MACjD,IAAI,CAACpD,MAAM,CAACqjB,UAAU,EAAEjgB,IAAI,CAAC,EAAE;QAC7BigB,UAAU,CAACjgB,IAAI,CAAC,GAAG8f,UAAU,CAACG,UAAU,CAACjgB,IAAI,CAAC;MAChD;IACF,CAAC,CAAC;EACJ;EACA7D,MAAM,CAACsB,IAAI,CAACqiB,UAAU,CAAC,CAACniB,OAAO,CAAC,UAAAqC,IAAI,EAAI;IACtC,IAAI,CAACpD,MAAM,CAAC2J,GAAG,EAAEvG,IAAI,CAAC,EAAE;MACtBuG,GAAG,CAACvG,IAAI,CAAC,GAAG8f,UAAU,CAAC9f,IAAI,CAAC;IAC9B;EACF,CAAC,CAAC;EACF,IAAI3D,IAAI,CAACyjB,UAAU,CAACqD,MAAM,CAAC,IAAIzoB,EAAE,CAAC0oB,SAAS,EAAE;IAC3C1oB,EAAE,CAAC0oB,SAAS,CAAC,YAAa;MAAA,mCAATpb,IAAI;QAAJA,IAAI;MAAA;MACnB0K,EAAE,CAACoF,WAAW,CAAC,QAAQ,EAAE9P,IAAI,CAAC;IAChC,CAAC,CAAC;EACJ;EACA,IAAI3L,IAAI,CAACyjB,UAAU,CAACuD,MAAM,CAAC,IAAI3oB,EAAE,CAAC4oB,SAAS,EAAE;IAC3C5oB,EAAE,CAAC4oB,SAAS,CAAC,YAAa;MAAA,mCAATtb,IAAI;QAAJA,IAAI;MAAA;MACnB0K,EAAE,CAACoF,WAAW,CAAC,QAAQ,EAAE9P,IAAI,CAAC;IAChC,CAAC,CAAC;EACJ;EACA,IAAI3L,IAAI,CAACyjB,UAAU,CAACC,QAAQ,CAAC,EAAE;IAC7B,IAAM/X,IAAI,GAAGtN,EAAE,CAAClC,oBAAoB,IAAIkC,EAAE,CAAClC,oBAAoB,EAAE;IACjEka,EAAE,CAACoF,WAAW,CAAC,UAAU,EAAE9P,IAAI,CAAC;EAClC;EACA,OAAO0K,EAAE;AACX;AAEA,SAAS6Q,YAAY,CAAE7Q,EAAE,EAAE;EACzB,IAAMoN,UAAU,GAAGK,QAAQ,CAACzN,EAAE,CAAC;EAC/B,IAAIrW,IAAI,CAACyjB,UAAU,CAACqD,MAAM,CAAC,IAAIzoB,EAAE,CAAC0oB,SAAS,EAAE;IAC3C1oB,EAAE,CAAC0oB,SAAS,CAAC,YAAa;MAAA,mCAATpb,IAAI;QAAJA,IAAI;MAAA;MACnB0K,EAAE,CAACoF,WAAW,CAAC,QAAQ,EAAE9P,IAAI,CAAC;IAChC,CAAC,CAAC;EACJ;EACA,IAAI3L,IAAI,CAACyjB,UAAU,CAACuD,MAAM,CAAC,IAAI3oB,EAAE,CAAC4oB,SAAS,EAAE;IAC3C5oB,EAAE,CAAC4oB,SAAS,CAAC,YAAa;MAAA,mCAATtb,IAAI;QAAJA,IAAI;MAAA;MACnB0K,EAAE,CAACoF,WAAW,CAAC,QAAQ,EAAE9P,IAAI,CAAC;IAChC,CAAC,CAAC;EACJ;EACA,IAAI3L,IAAI,CAACyjB,UAAU,CAACC,QAAQ,CAAC,EAAE;IAC7B,IAAM/X,IAAI,GAAGtN,EAAE,CAAClC,oBAAoB,IAAIkC,EAAE,CAAClC,oBAAoB,EAAE;IACjEka,EAAE,CAACoF,WAAW,CAAC,UAAU,EAAE9P,IAAI,CAAC;EAClC;EACA,OAAO0K,EAAE;AACX;AAEAnE,KAAK,CAAC5Q,OAAO,CAAC,UAAAkS,OAAO,EAAI;EACvBvB,SAAS,CAACuB,OAAO,CAAC,GAAG,KAAK;AAC5B,CAAC,CAAC;AAEFrB,QAAQ,CAAC7Q,OAAO,CAAC,UAAA6lB,UAAU,EAAI;EAC7B,IAAMC,OAAO,GAAGnV,SAAS,CAACkV,UAAU,CAAC,IAAIlV,SAAS,CAACkV,UAAU,CAAC,CAACxjB,IAAI,GAAGsO,SAAS,CAACkV,UAAU,CAAC,CAACxjB,IAAI,GAC5FwjB,UAAU;EACd,IAAI,CAAC9oB,EAAE,CAACslB,OAAO,CAACyD,OAAO,CAAC,EAAE;IACxBnV,SAAS,CAACkV,UAAU,CAAC,GAAG,KAAK;EAC/B;AACF,CAAC,CAAC;AAEF,IAAIE,GAAG,GAAG,CAAC,CAAC;AAEZ,IAAI,OAAOC,KAAK,KAAK,WAAW,IAAI,WAAW,KAAK,UAAU,EAAE;EAC9DD,GAAG,GAAG,IAAIC,KAAK,CAAC,CAAC,CAAC,EAAE;IAClBle,GAAG,eAAEvN,MAAM,EAAE8H,IAAI,EAAE;MACjB,IAAIpD,MAAM,CAAC1E,MAAM,EAAE8H,IAAI,CAAC,EAAE;QACxB,OAAO9H,MAAM,CAAC8H,IAAI,CAAC;MACrB;MACA,IAAIiH,OAAO,CAACjH,IAAI,CAAC,EAAE;QACjB,OAAOiH,OAAO,CAACjH,IAAI,CAAC;MACtB;MACA,IAAIS,GAAG,CAACT,IAAI,CAAC,EAAE;QACb,OAAO6B,SAAS,CAAC7B,IAAI,EAAES,GAAG,CAACT,IAAI,CAAC,CAAC;MACnC;MACA;QACE,IAAIsQ,QAAQ,CAACtQ,IAAI,CAAC,EAAE;UAClB,OAAO6B,SAAS,CAAC7B,IAAI,EAAEsQ,QAAQ,CAACtQ,IAAI,CAAC,CAAC;QACxC;QACA,IAAI0P,QAAQ,CAAC1P,IAAI,CAAC,EAAE;UAClB,OAAO6B,SAAS,CAAC7B,IAAI,EAAE0P,QAAQ,CAAC1P,IAAI,CAAC,CAAC;QACxC;MACF;MACA,IAAI+Q,QAAQ,CAAC/Q,IAAI,CAAC,EAAE;QAClB,OAAO+Q,QAAQ,CAAC/Q,IAAI,CAAC;MACvB;MACA,OAAO6B,SAAS,CAAC7B,IAAI,EAAEqP,OAAO,CAACrP,IAAI,EAAEtF,EAAE,CAACsF,IAAI,CAAC,CAAC,CAAC;IACjD,CAAC;IACD0F,GAAG,eAAExN,MAAM,EAAE8H,IAAI,EAAE2B,KAAK,EAAE;MACxBzJ,MAAM,CAAC8H,IAAI,CAAC,GAAG2B,KAAK;MACpB,OAAO,IAAI;IACb;EACF,CAAC,CAAC;AACJ,CAAC,MAAM;EACLxF,MAAM,CAACsB,IAAI,CAACwJ,OAAO,CAAC,CAACtJ,OAAO,CAAC,UAAAqC,IAAI,EAAI;IACnC0jB,GAAG,CAAC1jB,IAAI,CAAC,GAAGiH,OAAO,CAACjH,IAAI,CAAC;EAC3B,CAAC,CAAC;EAEF;IACE7D,MAAM,CAACsB,IAAI,CAACiS,QAAQ,CAAC,CAAC/R,OAAO,CAAC,UAAAqC,IAAI,EAAI;MACpC0jB,GAAG,CAAC1jB,IAAI,CAAC,GAAG6B,SAAS,CAAC7B,IAAI,EAAE0P,QAAQ,CAAC1P,IAAI,CAAC,CAAC;IAC7C,CAAC,CAAC;IACF7D,MAAM,CAACsB,IAAI,CAAC6S,QAAQ,CAAC,CAAC3S,OAAO,CAAC,UAAAqC,IAAI,EAAI;MACpC0jB,GAAG,CAAC1jB,IAAI,CAAC,GAAG6B,SAAS,CAAC7B,IAAI,EAAEsQ,QAAQ,CAACtQ,IAAI,CAAC,CAAC;IAC7C,CAAC,CAAC;EACJ;EAEA7D,MAAM,CAACsB,IAAI,CAACsT,QAAQ,CAAC,CAACpT,OAAO,CAAC,UAAAqC,IAAI,EAAI;IACpC0jB,GAAG,CAAC1jB,IAAI,CAAC,GAAG+Q,QAAQ,CAAC/Q,IAAI,CAAC;EAC5B,CAAC,CAAC;EAEF7D,MAAM,CAACsB,IAAI,CAACgD,GAAG,CAAC,CAAC9C,OAAO,CAAC,UAAAqC,IAAI,EAAI;IAC/B0jB,GAAG,CAAC1jB,IAAI,CAAC,GAAG6B,SAAS,CAAC7B,IAAI,EAAES,GAAG,CAACT,IAAI,CAAC,CAAC;EACxC,CAAC,CAAC;EAEF7D,MAAM,CAACsB,IAAI,CAAC/C,EAAE,CAAC,CAACiD,OAAO,CAAC,UAAAqC,IAAI,EAAI;IAC9B,IAAIpD,MAAM,CAAClC,EAAE,EAAEsF,IAAI,CAAC,IAAIpD,MAAM,CAAC0R,SAAS,EAAEtO,IAAI,CAAC,EAAE;MAC/C0jB,GAAG,CAAC1jB,IAAI,CAAC,GAAG6B,SAAS,CAAC7B,IAAI,EAAEqP,OAAO,CAACrP,IAAI,EAAEtF,EAAE,CAACsF,IAAI,CAAC,CAAC,CAAC;IACtD;EACF,CAAC,CAAC;AACJ;AAEAtF,EAAE,CAAC0lB,SAAS,GAAGA,SAAS;AACxB1lB,EAAE,CAACsoB,UAAU,GAAGA,UAAU;AAC1BtoB,EAAE,CAACuoB,eAAe,GAAGA,eAAe;AACpCvoB,EAAE,CAACwoB,mBAAmB,GAAGA,mBAAmB;AAC5CxoB,EAAE,CAAC6oB,YAAY,GAAGA,YAAY;AAE9B,IAAIK,KAAK,GAAGF,GAAG;AAAC,eAEDE,KAAK;AAAA,2B;;;;;;;;;;;ACtkFpB;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;;;;ACnBA,SAASC,sBAAsB,CAACpnB,GAAG,EAAE;EACnC,OAAOA,GAAG,IAAIA,GAAG,CAACqnB,UAAU,GAAGrnB,GAAG,GAAG;IACnC,SAAS,EAAEA;EACb,CAAC;AACH;AACAsnB,MAAM,CAACC,OAAO,GAAGH,sBAAsB,EAAEE,MAAM,CAACC,OAAO,CAACF,UAAU,GAAG,IAAI,EAAEC,MAAM,CAACC,OAAO,CAAC,SAAS,CAAC,GAAGD,MAAM,CAACC,OAAO,C;;;;;;;;;;ACLrH,IAAIC,cAAc,GAAGC,mBAAO,CAAC,4BAAqB,CAAC;AACnD,IAAIC,oBAAoB,GAAGD,mBAAO,CAAC,kCAA2B,CAAC;AAC/D,IAAIE,0BAA0B,GAAGF,mBAAO,CAAC,wCAAiC,CAAC;AAC3E,IAAIG,eAAe,GAAGH,mBAAO,CAAC,8BAAsB,CAAC;AACrD,SAASI,cAAc,CAAChI,GAAG,EAAExiB,CAAC,EAAE;EAC9B,OAAOmqB,cAAc,CAAC3H,GAAG,CAAC,IAAI6H,oBAAoB,CAAC7H,GAAG,EAAExiB,CAAC,CAAC,IAAIsqB,0BAA0B,CAAC9H,GAAG,EAAExiB,CAAC,CAAC,IAAIuqB,eAAe,EAAE;AACvH;AACAN,MAAM,CAACC,OAAO,GAAGM,cAAc,EAAEP,MAAM,CAACC,OAAO,CAACF,UAAU,GAAG,IAAI,EAAEC,MAAM,CAACC,OAAO,CAAC,SAAS,CAAC,GAAGD,MAAM,CAACC,OAAO,C;;;;;;;;;;ACP7G,SAASO,eAAe,CAACjI,GAAG,EAAE;EAC5B,IAAIle,KAAK,CAACC,OAAO,CAACie,GAAG,CAAC,EAAE,OAAOA,GAAG;AACpC;AACAyH,MAAM,CAACC,OAAO,GAAGO,eAAe,EAAER,MAAM,CAACC,OAAO,CAACF,UAAU,GAAG,IAAI,EAAEC,MAAM,CAACC,OAAO,CAAC,SAAS,CAAC,GAAGD,MAAM,CAACC,OAAO,C;;;;;;;;;;ACH9G,SAASQ,qBAAqB,CAAClI,GAAG,EAAExiB,CAAC,EAAE;EACrC,IAAI2qB,EAAE,GAAG,IAAI,IAAInI,GAAG,GAAG,IAAI,GAAG,WAAW,IAAI,OAAOoI,MAAM,IAAIpI,GAAG,CAACoI,MAAM,CAACC,QAAQ,CAAC,IAAIrI,GAAG,CAAC,YAAY,CAAC;EACvG,IAAI,IAAI,IAAImI,EAAE,EAAE;IACd,IAAIG,EAAE;MACJC,EAAE;MACFC,EAAE;MACFC,EAAE;MACFC,IAAI,GAAG,EAAE;MACTC,EAAE,GAAG,CAAC,CAAC;MACPC,EAAE,GAAG,CAAC,CAAC;IACT,IAAI;MACF,IAAIJ,EAAE,GAAG,CAACL,EAAE,GAAGA,EAAE,CAAC9nB,IAAI,CAAC2f,GAAG,CAAC,EAAE6I,IAAI,EAAE,CAAC,KAAKrrB,CAAC,EAAE;QAC1C,IAAIqC,MAAM,CAACsoB,EAAE,CAAC,KAAKA,EAAE,EAAE;QACvBQ,EAAE,GAAG,CAAC,CAAC;MACT,CAAC,MAAM,OAAO,EAAEA,EAAE,GAAG,CAACL,EAAE,GAAGE,EAAE,CAACnoB,IAAI,CAAC8nB,EAAE,CAAC,EAAEW,IAAI,CAAC,KAAKJ,IAAI,CAACxmB,IAAI,CAAComB,EAAE,CAACjjB,KAAK,CAAC,EAAEqjB,IAAI,CAACvrB,MAAM,KAAKK,CAAC,CAAC,EAAEmrB,EAAE,GAAG,CAAC,CAAC,EAAE;QAClG;MACF;IACF,CAAC,CAAC,OAAO1jB,GAAG,EAAE;MACZ2jB,EAAE,GAAG,CAAC,CAAC,EAAEL,EAAE,GAAGtjB,GAAG;IACnB,CAAC,SAAS;MACR,IAAI;QACF,IAAI,CAAC0jB,EAAE,IAAI,IAAI,IAAIR,EAAE,CAAC,QAAQ,CAAC,KAAKM,EAAE,GAAGN,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAEtoB,MAAM,CAAC4oB,EAAE,CAAC,KAAKA,EAAE,CAAC,EAAE;MAC/E,CAAC,SAAS;QACR,IAAIG,EAAE,EAAE,MAAML,EAAE;MAClB;IACF;IACA,OAAOG,IAAI;EACb;AACF;AACAjB,MAAM,CAACC,OAAO,GAAGQ,qBAAqB,EAAET,MAAM,CAACC,OAAO,CAACF,UAAU,GAAG,IAAI,EAAEC,MAAM,CAACC,OAAO,CAAC,SAAS,CAAC,GAAGD,MAAM,CAACC,OAAO,C;;;;;;;;;;AC7BpH,IAAIqB,gBAAgB,GAAGnB,mBAAO,CAAC,8BAAuB,CAAC;AACvD,SAASoB,2BAA2B,CAACC,CAAC,EAAEC,MAAM,EAAE;EAC9C,IAAI,CAACD,CAAC,EAAE;EACR,IAAI,OAAOA,CAAC,KAAK,QAAQ,EAAE,OAAOF,gBAAgB,CAACE,CAAC,EAAEC,MAAM,CAAC;EAC7D,IAAIC,CAAC,GAAGtpB,MAAM,CAACT,SAAS,CAACnB,QAAQ,CAACoC,IAAI,CAAC4oB,CAAC,CAAC,CAAC/rB,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EACtD,IAAIisB,CAAC,KAAK,QAAQ,IAAIF,CAAC,CAAC7jB,WAAW,EAAE+jB,CAAC,GAAGF,CAAC,CAAC7jB,WAAW,CAAC1B,IAAI;EAC3D,IAAIylB,CAAC,KAAK,KAAK,IAAIA,CAAC,KAAK,KAAK,EAAE,OAAOrnB,KAAK,CAACsnB,IAAI,CAACH,CAAC,CAAC;EACpD,IAAIE,CAAC,KAAK,WAAW,IAAI,0CAA0C,CAACnsB,IAAI,CAACmsB,CAAC,CAAC,EAAE,OAAOJ,gBAAgB,CAACE,CAAC,EAAEC,MAAM,CAAC;AACjH;AACAzB,MAAM,CAACC,OAAO,GAAGsB,2BAA2B,EAAEvB,MAAM,CAACC,OAAO,CAACF,UAAU,GAAG,IAAI,EAAEC,MAAM,CAACC,OAAO,CAAC,SAAS,CAAC,GAAGD,MAAM,CAACC,OAAO,C;;;;;;;;;;ACT1H,SAAS2B,iBAAiB,CAACrJ,GAAG,EAAE9U,GAAG,EAAE;EACnC,IAAIA,GAAG,IAAI,IAAI,IAAIA,GAAG,GAAG8U,GAAG,CAAC7iB,MAAM,EAAE+N,GAAG,GAAG8U,GAAG,CAAC7iB,MAAM;EACrD,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAE8rB,IAAI,GAAG,IAAIxnB,KAAK,CAACoJ,GAAG,CAAC,EAAE1N,CAAC,GAAG0N,GAAG,EAAE1N,CAAC,EAAE,EAAE;IACnD8rB,IAAI,CAAC9rB,CAAC,CAAC,GAAGwiB,GAAG,CAACxiB,CAAC,CAAC;EAClB;EACA,OAAO8rB,IAAI;AACb;AACA7B,MAAM,CAACC,OAAO,GAAG2B,iBAAiB,EAAE5B,MAAM,CAACC,OAAO,CAACF,UAAU,GAAG,IAAI,EAAEC,MAAM,CAACC,OAAO,CAAC,SAAS,CAAC,GAAGD,MAAM,CAACC,OAAO,C;;;;;;;;;;ACPhH,SAAS6B,gBAAgB,GAAG;EAC1B,MAAM,IAAIC,SAAS,CAAC,2IAA2I,CAAC;AAClK;AACA/B,MAAM,CAACC,OAAO,GAAG6B,gBAAgB,EAAE9B,MAAM,CAACC,OAAO,CAACF,UAAU,GAAG,IAAI,EAAEC,MAAM,CAACC,OAAO,CAAC,SAAS,CAAC,GAAGD,MAAM,CAACC,OAAO,C;;;;;;;;;;ACH/G,IAAI+B,aAAa,GAAG7B,mBAAO,CAAC,4BAAoB,CAAC;AACjD,SAAS8B,eAAe,CAACvpB,GAAG,EAAErE,GAAG,EAAEuJ,KAAK,EAAE;EACxCvJ,GAAG,GAAG2tB,aAAa,CAAC3tB,GAAG,CAAC;EACxB,IAAIA,GAAG,IAAIqE,GAAG,EAAE;IACdN,MAAM,CAACqJ,cAAc,CAAC/I,GAAG,EAAErE,GAAG,EAAE;MAC9BuJ,KAAK,EAAEA,KAAK;MACZ2T,UAAU,EAAE,IAAI;MAChBD,YAAY,EAAE,IAAI;MAClB4Q,QAAQ,EAAE;IACZ,CAAC,CAAC;EACJ,CAAC,MAAM;IACLxpB,GAAG,CAACrE,GAAG,CAAC,GAAGuJ,KAAK;EAClB;EACA,OAAOlF,GAAG;AACZ;AACAsnB,MAAM,CAACC,OAAO,GAAGgC,eAAe,EAAEjC,MAAM,CAACC,OAAO,CAACF,UAAU,GAAG,IAAI,EAAEC,MAAM,CAACC,OAAO,CAAC,SAAS,CAAC,GAAGD,MAAM,CAACC,OAAO,C;;;;;;;;;;ACf9G,IAAIkC,OAAO,GAAGhC,mBAAO,CAAC,qBAAa,CAAC,CAAC,SAAS,CAAC;AAC/C,IAAIiC,WAAW,GAAGjC,mBAAO,CAAC,0BAAkB,CAAC;AAC7C,SAASkC,cAAc,CAACvJ,GAAG,EAAE;EAC3B,IAAIzkB,GAAG,GAAG+tB,WAAW,CAACtJ,GAAG,EAAE,QAAQ,CAAC;EACpC,OAAOqJ,OAAO,CAAC9tB,GAAG,CAAC,KAAK,QAAQ,GAAGA,GAAG,GAAGgB,MAAM,CAAChB,GAAG,CAAC;AACtD;AACA2rB,MAAM,CAACC,OAAO,GAAGoC,cAAc,EAAErC,MAAM,CAACC,OAAO,CAACF,UAAU,GAAG,IAAI,EAAEC,MAAM,CAACC,OAAO,CAAC,SAAS,CAAC,GAAGD,MAAM,CAACC,OAAO,C;;;;;;;;;;ACN7G,SAASkC,OAAO,CAACzpB,GAAG,EAAE;EACpB,yBAAyB;;EAEzB,OAAO,CAACsnB,MAAM,CAACC,OAAO,GAAGkC,OAAO,GAAG,UAAU,IAAI,OAAOxB,MAAM,IAAI,QAAQ,IAAI,OAAOA,MAAM,CAACC,QAAQ,GAAG,UAAUloB,GAAG,EAAE;IACpH,OAAO,OAAOA,GAAG;EACnB,CAAC,GAAG,UAAUA,GAAG,EAAE;IACjB,OAAOA,GAAG,IAAI,UAAU,IAAI,OAAOioB,MAAM,IAAIjoB,GAAG,CAACiF,WAAW,KAAKgjB,MAAM,IAAIjoB,GAAG,KAAKioB,MAAM,CAAChpB,SAAS,GAAG,QAAQ,GAAG,OAAOe,GAAG;EAC7H,CAAC,EAAEsnB,MAAM,CAACC,OAAO,CAACF,UAAU,GAAG,IAAI,EAAEC,MAAM,CAACC,OAAO,CAAC,SAAS,CAAC,GAAGD,MAAM,CAACC,OAAO,GAAGkC,OAAO,CAACzpB,GAAG,CAAC;AAChG;AACAsnB,MAAM,CAACC,OAAO,GAAGkC,OAAO,EAAEnC,MAAM,CAACC,OAAO,CAACF,UAAU,GAAG,IAAI,EAAEC,MAAM,CAACC,OAAO,CAAC,SAAS,CAAC,GAAGD,MAAM,CAACC,OAAO,C;;;;;;;;;;ACTtG,IAAIkC,OAAO,GAAGhC,mBAAO,CAAC,qBAAa,CAAC,CAAC,SAAS,CAAC;AAC/C,SAASmC,YAAY,CAACC,KAAK,EAAEC,IAAI,EAAE;EACjC,IAAIL,OAAO,CAACI,KAAK,CAAC,KAAK,QAAQ,IAAIA,KAAK,KAAK,IAAI,EAAE,OAAOA,KAAK;EAC/D,IAAIE,IAAI,GAAGF,KAAK,CAAC5B,MAAM,CAACyB,WAAW,CAAC;EACpC,IAAIK,IAAI,KAAKna,SAAS,EAAE;IACtB,IAAInO,GAAG,GAAGsoB,IAAI,CAAC7pB,IAAI,CAAC2pB,KAAK,EAAEC,IAAI,IAAI,SAAS,CAAC;IAC7C,IAAIL,OAAO,CAAChoB,GAAG,CAAC,KAAK,QAAQ,EAAE,OAAOA,GAAG;IACzC,MAAM,IAAI4nB,SAAS,CAAC,8CAA8C,CAAC;EACrE;EACA,OAAO,CAACS,IAAI,KAAK,QAAQ,GAAGntB,MAAM,GAAG4J,MAAM,EAAEsjB,KAAK,CAAC;AACrD;AACAvC,MAAM,CAACC,OAAO,GAAGqC,YAAY,EAAEtC,MAAM,CAACC,OAAO,CAACF,UAAU,GAAG,IAAI,EAAEC,MAAM,CAACC,OAAO,CAAC,SAAS,CAAC,GAAGD,MAAM,CAACC,OAAO,C;;;;;;;;;;ACX3G,IAAIyC,cAAc,GAAGvC,mBAAO,CAAC,6BAAqB,CAAC;AACnD,IAAIwC,wBAAwB,GAAGxC,mBAAO,CAAC,uCAA+B,CAAC;AACvE,SAASyC,UAAU,CAACC,MAAM,EAAE5e,IAAI,EAAE6e,KAAK,EAAE;EACvC,IAAIH,wBAAwB,EAAE,EAAE;IAC9B3C,MAAM,CAACC,OAAO,GAAG2C,UAAU,GAAGG,OAAO,CAACC,SAAS,CAACC,IAAI,EAAE,EAAEjD,MAAM,CAACC,OAAO,CAACF,UAAU,GAAG,IAAI,EAAEC,MAAM,CAACC,OAAO,CAAC,SAAS,CAAC,GAAGD,MAAM,CAACC,OAAO;EACtI,CAAC,MAAM;IACLD,MAAM,CAACC,OAAO,GAAG2C,UAAU,GAAG,SAASA,UAAU,CAACC,MAAM,EAAE5e,IAAI,EAAE6e,KAAK,EAAE;MACrE,IAAII,CAAC,GAAG,CAAC,IAAI,CAAC;MACdA,CAAC,CAACzoB,IAAI,CAACiR,KAAK,CAACwX,CAAC,EAAEjf,IAAI,CAAC;MACrB,IAAIkf,WAAW,GAAGC,QAAQ,CAACH,IAAI,CAACvX,KAAK,CAACmX,MAAM,EAAEK,CAAC,CAAC;MAChD,IAAIG,QAAQ,GAAG,IAAIF,WAAW,EAAE;MAChC,IAAIL,KAAK,EAAEJ,cAAc,CAACW,QAAQ,EAAEP,KAAK,CAACnrB,SAAS,CAAC;MACpD,OAAO0rB,QAAQ;IACjB,CAAC,EAAErD,MAAM,CAACC,OAAO,CAACF,UAAU,GAAG,IAAI,EAAEC,MAAM,CAACC,OAAO,CAAC,SAAS,CAAC,GAAGD,MAAM,CAACC,OAAO;EACjF;EACA,OAAO2C,UAAU,CAAClX,KAAK,CAAC,IAAI,EAAEmB,SAAS,CAAC;AAC1C;AACAmT,MAAM,CAACC,OAAO,GAAG2C,UAAU,EAAE5C,MAAM,CAACC,OAAO,CAACF,UAAU,GAAG,IAAI,EAAEC,MAAM,CAACC,OAAO,CAAC,SAAS,CAAC,GAAGD,MAAM,CAACC,OAAO,C;;;;;;;;;;ACjBzG,SAASqD,eAAe,CAAC9B,CAAC,EAAE+B,CAAC,EAAE;EAC7BvD,MAAM,CAACC,OAAO,GAAGqD,eAAe,GAAGlrB,MAAM,CAACsqB,cAAc,GAAGtqB,MAAM,CAACsqB,cAAc,CAACO,IAAI,EAAE,GAAG,SAASK,eAAe,CAAC9B,CAAC,EAAE+B,CAAC,EAAE;IACvH/B,CAAC,CAACpe,SAAS,GAAGmgB,CAAC;IACf,OAAO/B,CAAC;EACV,CAAC,EAAExB,MAAM,CAACC,OAAO,CAACF,UAAU,GAAG,IAAI,EAAEC,MAAM,CAACC,OAAO,CAAC,SAAS,CAAC,GAAGD,MAAM,CAACC,OAAO;EAC/E,OAAOqD,eAAe,CAAC9B,CAAC,EAAE+B,CAAC,CAAC;AAC9B;AACAvD,MAAM,CAACC,OAAO,GAAGqD,eAAe,EAAEtD,MAAM,CAACC,OAAO,CAACF,UAAU,GAAG,IAAI,EAAEC,MAAM,CAACC,OAAO,CAAC,SAAS,CAAC,GAAGD,MAAM,CAACC,OAAO,C;;;;;;;;;;ACP9G,SAASuD,yBAAyB,GAAG;EACnC,IAAI,OAAOT,OAAO,KAAK,WAAW,IAAI,CAACA,OAAO,CAACC,SAAS,EAAE,OAAO,KAAK;EACtE,IAAID,OAAO,CAACC,SAAS,CAACS,IAAI,EAAE,OAAO,KAAK;EACxC,IAAI,OAAO7D,KAAK,KAAK,UAAU,EAAE,OAAO,IAAI;EAC5C,IAAI;IACFvK,OAAO,CAAC1d,SAAS,CAAC+rB,OAAO,CAAC9qB,IAAI,CAACmqB,OAAO,CAACC,SAAS,CAAC3N,OAAO,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;IAC9E,OAAO,IAAI;EACb,CAAC,CAAC,OAAOnI,CAAC,EAAE;IACV,OAAO,KAAK;EACd;AACF;AACA8S,MAAM,CAACC,OAAO,GAAGuD,yBAAyB,EAAExD,MAAM,CAACC,OAAO,CAACF,UAAU,GAAG,IAAI,EAAEC,MAAM,CAACC,OAAO,CAAC,SAAS,CAAC,GAAGD,MAAM,CAACC,OAAO,C;;;;;;;;;;ACXxH,IAAI0D,iBAAiB,GAAGxD,mBAAO,CAAC,gCAAwB,CAAC;AACzD,IAAIyD,eAAe,GAAGzD,mBAAO,CAAC,8BAAsB,CAAC;AACrD,IAAIE,0BAA0B,GAAGF,mBAAO,CAAC,wCAAiC,CAAC;AAC3E,IAAI0D,iBAAiB,GAAG1D,mBAAO,CAAC,gCAAwB,CAAC;AACzD,SAAS2D,kBAAkB,CAACvL,GAAG,EAAE;EAC/B,OAAOoL,iBAAiB,CAACpL,GAAG,CAAC,IAAIqL,eAAe,CAACrL,GAAG,CAAC,IAAI8H,0BAA0B,CAAC9H,GAAG,CAAC,IAAIsL,iBAAiB,EAAE;AACjH;AACA7D,MAAM,CAACC,OAAO,GAAG6D,kBAAkB,EAAE9D,MAAM,CAACC,OAAO,CAACF,UAAU,GAAG,IAAI,EAAEC,MAAM,CAACC,OAAO,CAAC,SAAS,CAAC,GAAGD,MAAM,CAACC,OAAO,C;;;;;;;;;;ACPjH,IAAIqB,gBAAgB,GAAGnB,mBAAO,CAAC,8BAAuB,CAAC;AACvD,SAAS4D,kBAAkB,CAACxL,GAAG,EAAE;EAC/B,IAAIle,KAAK,CAACC,OAAO,CAACie,GAAG,CAAC,EAAE,OAAO+I,gBAAgB,CAAC/I,GAAG,CAAC;AACtD;AACAyH,MAAM,CAACC,OAAO,GAAG8D,kBAAkB,EAAE/D,MAAM,CAACC,OAAO,CAACF,UAAU,GAAG,IAAI,EAAEC,MAAM,CAACC,OAAO,CAAC,SAAS,CAAC,GAAGD,MAAM,CAACC,OAAO,C;;;;;;;;;;ACJjH,SAAS+D,gBAAgB,CAACC,IAAI,EAAE;EAC9B,IAAI,OAAOtD,MAAM,KAAK,WAAW,IAAIsD,IAAI,CAACtD,MAAM,CAACC,QAAQ,CAAC,IAAI,IAAI,IAAIqD,IAAI,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE,OAAO5pB,KAAK,CAACsnB,IAAI,CAACsC,IAAI,CAAC;AAC3H;AACAjE,MAAM,CAACC,OAAO,GAAG+D,gBAAgB,EAAEhE,MAAM,CAACC,OAAO,CAACF,UAAU,GAAG,IAAI,EAAEC,MAAM,CAACC,OAAO,CAAC,SAAS,CAAC,GAAGD,MAAM,CAACC,OAAO,C;;;;;;;;;;ACH/G,SAASiE,kBAAkB,GAAG;EAC5B,MAAM,IAAInC,SAAS,CAAC,sIAAsI,CAAC;AAC7J;AACA/B,MAAM,CAACC,OAAO,GAAGiE,kBAAkB,EAAElE,MAAM,CAACC,OAAO,CAACF,UAAU,GAAG,IAAI,EAAEC,MAAM,CAACC,OAAO,CAAC,SAAS,CAAC,GAAGD,MAAM,CAACC,OAAO,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACHjH,IAAMxnB,QAAQ,GAAG,SAAXA,QAAQ,CAAIqkB,GAAG;EAAA,OAAKA,GAAG,KAAK,IAAI,IAAI,sBAAOA,GAAG,MAAK,QAAQ;AAAA;AACjE,IAAMqH,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC;AAAC,IAC/BC,aAAa;EACf,yBAAc;IAAA;IACV,IAAI,CAACC,OAAO,GAAGjsB,MAAM,CAACa,MAAM,CAAC,IAAI,CAAC;EACtC;EAAC;IAAA;IAAA,OACD,qBAAY3B,OAAO,EAAE0J,MAAM,EAAkC;MAAA,IAAhCsjB,UAAU,uEAAGH,iBAAiB;MACvD,IAAI,CAACnjB,MAAM,EAAE;QACT,OAAO,CAAC1J,OAAO,CAAC;MACpB;MACA,IAAIitB,MAAM,GAAG,IAAI,CAACF,OAAO,CAAC/sB,OAAO,CAAC;MAClC,IAAI,CAACitB,MAAM,EAAE;QACTA,MAAM,GAAGntB,KAAK,CAACE,OAAO,EAAEgtB,UAAU,CAAC;QACnC,IAAI,CAACD,OAAO,CAAC/sB,OAAO,CAAC,GAAGitB,MAAM;MAClC;MACA,OAAOC,OAAO,CAACD,MAAM,EAAEvjB,MAAM,CAAC;IAClC;EAAC;EAAA;AAAA;AAAA;AAEL,IAAMyjB,mBAAmB,GAAG,UAAU;AACtC,IAAMC,oBAAoB,GAAG,UAAU;AACvC,SAASttB,KAAK,CAACutB,MAAM,QAAkC;EAAA;IAA/BC,cAAc;IAAEC,YAAY;EAChD,IAAMN,MAAM,GAAG,EAAE;EACjB,IAAIO,QAAQ,GAAG,CAAC;EAChB,IAAIC,IAAI,GAAG,EAAE;EACb,OAAOD,QAAQ,GAAGH,MAAM,CAACjvB,MAAM,EAAE;IAC7B,IAAIsvB,IAAI,GAAGL,MAAM,CAACG,QAAQ,EAAE,CAAC;IAC7B,IAAIE,IAAI,KAAKJ,cAAc,EAAE;MACzB,IAAIG,IAAI,EAAE;QACNR,MAAM,CAAC9pB,IAAI,CAAC;UAAEkT,IAAI,EAAE,MAAM;UAAE/P,KAAK,EAAEmnB;QAAK,CAAC,CAAC;MAC9C;MACAA,IAAI,GAAG,EAAE;MACT,IAAIE,GAAG,GAAG,EAAE;MACZD,IAAI,GAAGL,MAAM,CAACG,QAAQ,EAAE,CAAC;MACzB,OAAOE,IAAI,KAAK1c,SAAS,IAAI0c,IAAI,KAAKH,YAAY,EAAE;QAChDI,GAAG,IAAID,IAAI;QACXA,IAAI,GAAGL,MAAM,CAACG,QAAQ,EAAE,CAAC;MAC7B;MACA,IAAMI,QAAQ,GAAGF,IAAI,KAAKH,YAAY;MACtC,IAAMlX,IAAI,GAAG8W,mBAAmB,CAAClvB,IAAI,CAAC0vB,GAAG,CAAC,GACpC,MAAM,GACNC,QAAQ,IAAIR,oBAAoB,CAACnvB,IAAI,CAAC0vB,GAAG,CAAC,GACtC,OAAO,GACP,SAAS;MACnBV,MAAM,CAAC9pB,IAAI,CAAC;QAAEmD,KAAK,EAAEqnB,GAAG;QAAEtX,IAAI,EAAJA;MAAK,CAAC,CAAC;IACrC;IACA;IACA;IACA;IACA;IACA;IACA;IAAA,KACK;MACDoX,IAAI,IAAIC,IAAI;IAChB;EACJ;EACAD,IAAI,IAAIR,MAAM,CAAC9pB,IAAI,CAAC;IAAEkT,IAAI,EAAE,MAAM;IAAE/P,KAAK,EAAEmnB;EAAK,CAAC,CAAC;EAClD,OAAOR,MAAM;AACjB;AACA,SAASC,OAAO,CAACD,MAAM,EAAEvjB,MAAM,EAAE;EAC7B,IAAMmkB,QAAQ,GAAG,EAAE;EACnB,IAAIvqB,KAAK,GAAG,CAAC;EACb,IAAMwqB,IAAI,GAAG/qB,KAAK,CAACC,OAAO,CAAC0G,MAAM,CAAC,GAC5B,MAAM,GACNvI,QAAQ,CAACuI,MAAM,CAAC,GACZ,OAAO,GACP,SAAS;EACnB,IAAIokB,IAAI,KAAK,SAAS,EAAE;IACpB,OAAOD,QAAQ;EACnB;EACA,OAAOvqB,KAAK,GAAG2pB,MAAM,CAAC7uB,MAAM,EAAE;IAC1B,IAAMgB,KAAK,GAAG6tB,MAAM,CAAC3pB,KAAK,CAAC;IAC3B,QAAQlE,KAAK,CAACiX,IAAI;MACd,KAAK,MAAM;QACPwX,QAAQ,CAAC1qB,IAAI,CAAC/D,KAAK,CAACkH,KAAK,CAAC;QAC1B;MACJ,KAAK,MAAM;QACPunB,QAAQ,CAAC1qB,IAAI,CAACuG,MAAM,CAACqD,QAAQ,CAAC3N,KAAK,CAACkH,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;QAChD;MACJ,KAAK,OAAO;QACR,IAAIwnB,IAAI,KAAK,OAAO,EAAE;UAClBD,QAAQ,CAAC1qB,IAAI,CAACuG,MAAM,CAACtK,KAAK,CAACkH,KAAK,CAAC,CAAC;QACtC,CAAC,MACI;UACD,IAAIuJ,IAAqC,EAAE;YACvCgE,OAAO,CAACC,IAAI,0BAAmB1U,KAAK,CAACiX,IAAI,oCAA0ByX,IAAI,oBAAiB;UAC5F;QACJ;QACA;MACJ,KAAK,SAAS;QACV,IAAIje,IAAqC,EAAE;UACvCgE,OAAO,CAACC,IAAI,mCAAmC;QACnD;QACA;IAAM;IAEdxQ,KAAK,EAAE;EACX;EACA,OAAOuqB,QAAQ;AACnB;AAEA,IAAM/lB,cAAc,GAAG,SAAS;AAAC;AACjC,IAAMC,cAAc,GAAG,SAAS;AAAC;AACjC,IAAMC,SAAS,GAAG,IAAI;AAAC;AACvB,IAAMC,SAAS,GAAG,IAAI;AAAC;AACvB,IAAMC,SAAS,GAAG,IAAI;AAAC;AACvB,IAAMnH,cAAc,GAAGD,MAAM,CAACT,SAAS,CAACU,cAAc;AACtD,IAAMQ,MAAM,GAAG,SAATA,MAAM,CAAIikB,GAAG,EAAEzoB,GAAG;EAAA,OAAKgE,cAAc,CAACO,IAAI,CAACkkB,GAAG,EAAEzoB,GAAG,CAAC;AAAA;AAC1D,IAAMgxB,gBAAgB,GAAG,IAAIjB,aAAa,EAAE;AAC5C,SAAStiB,OAAO,CAAC1M,GAAG,EAAE2M,KAAK,EAAE;EACzB,OAAO,CAAC,CAACA,KAAK,CAACC,IAAI,CAAC,UAACC,IAAI;IAAA,OAAK7M,GAAG,CAACP,OAAO,CAACoN,IAAI,CAAC,KAAK,CAAC,CAAC;EAAA,EAAC;AAC3D;AACA,SAASC,UAAU,CAAC9M,GAAG,EAAE2M,KAAK,EAAE;EAC5B,OAAOA,KAAK,CAACC,IAAI,CAAC,UAACC,IAAI;IAAA,OAAK7M,GAAG,CAACP,OAAO,CAACoN,IAAI,CAAC,KAAK,CAAC;EAAA,EAAC;AACxD;AACA,SAAStC,eAAe,CAACD,MAAM,EAAED,QAAQ,EAAE;EACvC,IAAI,CAACC,MAAM,EAAE;IACT;EACJ;EACAA,MAAM,GAAGA,MAAM,CAACyC,IAAI,EAAE,CAAC7M,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;EACzC,IAAImK,QAAQ,IAAIA,QAAQ,CAACC,MAAM,CAAC,EAAE;IAC9B,OAAOA,MAAM;EACjB;EACAA,MAAM,GAAGA,MAAM,CAAC0C,WAAW,EAAE;EAC7B,IAAI1C,MAAM,KAAK,SAAS,EAAE;IACtB;IACA,OAAON,cAAc;EACzB;EACA,IAAIM,MAAM,CAAC7K,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;IAC5B,IAAI6K,MAAM,CAAC7K,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;MAC9B,OAAOuK,cAAc;IACzB;IACA,IAAIM,MAAM,CAAC7K,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE;MAC9B,OAAOwK,cAAc;IACzB;IACA,IAAIyC,OAAO,CAACpC,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,EAAE;MAChD,OAAOL,cAAc;IACzB;IACA,OAAOD,cAAc;EACzB;EACA,IAAIa,OAAO,GAAG,CAACX,SAAS,EAAEC,SAAS,EAAEC,SAAS,CAAC;EAC/C,IAAIC,QAAQ,IAAIrH,MAAM,CAACsB,IAAI,CAAC+F,QAAQ,CAAC,CAAC/J,MAAM,GAAG,CAAC,EAAE;IAC9CuK,OAAO,GAAG7H,MAAM,CAACsB,IAAI,CAAC+F,QAAQ,CAAC;EACnC;EACA,IAAM4C,IAAI,GAAGH,UAAU,CAACxC,MAAM,EAAEO,OAAO,CAAC;EACxC,IAAIoC,IAAI,EAAE;IACN,OAAOA,IAAI;EACf;AACJ;AAAC,IACKijB,IAAI;EACN,qBAAsE;IAAA,IAAxD5lB,MAAM,SAANA,MAAM;MAAE6lB,cAAc,SAAdA,cAAc;MAAE9lB,QAAQ,SAARA,QAAQ;MAAE+lB,OAAO,SAAPA,OAAO;MAAEC,QAAQ,SAARA,QAAQ;IAAA;IAC7D,IAAI,CAAC/lB,MAAM,GAAGJ,SAAS;IACvB,IAAI,CAACimB,cAAc,GAAGjmB,SAAS;IAC/B,IAAI,CAAChI,OAAO,GAAG,CAAC,CAAC;IACjB,IAAI,CAACmI,QAAQ,GAAG,CAAC,CAAC;IAClB,IAAI,CAACimB,QAAQ,GAAG,EAAE;IAClB,IAAIH,cAAc,EAAE;MAChB,IAAI,CAACA,cAAc,GAAGA,cAAc;IACxC;IACA,IAAI,CAACE,QAAQ,GAAGA,QAAQ,IAAIJ,gBAAgB;IAC5C,IAAI,CAAC5lB,QAAQ,GAAGA,QAAQ,IAAI,CAAC,CAAC;IAC9B,IAAI,CAACwB,SAAS,CAACvB,MAAM,IAAIJ,SAAS,CAAC;IACnC,IAAIkmB,OAAO,EAAE;MACT,IAAI,CAAC7kB,WAAW,CAAC6kB,OAAO,CAAC;IAC7B;EACJ;EAAC;IAAA;IAAA,OACD,mBAAU9lB,MAAM,EAAE;MAAA;MACd,IAAMmD,SAAS,GAAG,IAAI,CAACnD,MAAM;MAC7B,IAAI,CAACA,MAAM,GAAGC,eAAe,CAACD,MAAM,EAAE,IAAI,CAACD,QAAQ,CAAC,IAAI,IAAI,CAAC8lB,cAAc;MAC3E,IAAI,CAAC,IAAI,CAAC9lB,QAAQ,CAAC,IAAI,CAACC,MAAM,CAAC,EAAE;QAC7B;QACA,IAAI,CAACD,QAAQ,CAAC,IAAI,CAACC,MAAM,CAAC,GAAG,CAAC,CAAC;MACnC;MACA,IAAI,CAACpI,OAAO,GAAG,IAAI,CAACmI,QAAQ,CAAC,IAAI,CAACC,MAAM,CAAC;MACzC;MACA,IAAImD,SAAS,KAAK,IAAI,CAACnD,MAAM,EAAE;QAC3B,IAAI,CAACgmB,QAAQ,CAAC9rB,OAAO,CAAC,UAAC4rB,OAAO,EAAK;UAC/BA,OAAO,CAAC,KAAI,CAAC9lB,MAAM,EAAEmD,SAAS,CAAC;QACnC,CAAC,CAAC;MACN;IACJ;EAAC;IAAA;IAAA,OACD,qBAAY;MACR,OAAO,IAAI,CAACnD,MAAM;IACtB;EAAC;IAAA;IAAA,OACD,qBAAYnH,EAAE,EAAE;MAAA;MACZ,IAAMqC,KAAK,GAAG,IAAI,CAAC8qB,QAAQ,CAACjrB,IAAI,CAAClC,EAAE,CAAC,GAAG,CAAC;MACxC,OAAO,YAAM;QACT,MAAI,CAACmtB,QAAQ,CAAC7qB,MAAM,CAACD,KAAK,EAAE,CAAC,CAAC;MAClC,CAAC;IACL;EAAC;IAAA;IAAA,OACD,aAAI8E,MAAM,EAAEpI,OAAO,EAAmB;MAAA,IAAjBquB,QAAQ,uEAAG,IAAI;MAChC,IAAMzlB,WAAW,GAAG,IAAI,CAACT,QAAQ,CAACC,MAAM,CAAC;MACzC,IAAIQ,WAAW,EAAE;QACb,IAAIylB,QAAQ,EAAE;UACVvtB,MAAM,CAAC+F,MAAM,CAAC+B,WAAW,EAAE5I,OAAO,CAAC;QACvC,CAAC,MACI;UACDc,MAAM,CAACsB,IAAI,CAACpC,OAAO,CAAC,CAACsC,OAAO,CAAC,UAACvF,GAAG,EAAK;YAClC,IAAI,CAACwE,MAAM,CAACqH,WAAW,EAAE7L,GAAG,CAAC,EAAE;cAC3B6L,WAAW,CAAC7L,GAAG,CAAC,GAAGiD,OAAO,CAACjD,GAAG,CAAC;YACnC;UACJ,CAAC,CAAC;QACN;MACJ,CAAC,MACI;QACD,IAAI,CAACoL,QAAQ,CAACC,MAAM,CAAC,GAAGpI,OAAO;MACnC;IACJ;EAAC;IAAA;IAAA,OACD,WAAEA,OAAO,EAAE0J,MAAM,EAAEsjB,UAAU,EAAE;MAC3B,OAAO,IAAI,CAACmB,QAAQ,CAACG,WAAW,CAACtuB,OAAO,EAAE0J,MAAM,EAAEsjB,UAAU,CAAC,CAAChwB,IAAI,CAAC,EAAE,CAAC;IAC1E;EAAC;IAAA;IAAA,OACD,WAAED,GAAG,EAAEqL,MAAM,EAAEsB,MAAM,EAAE;MACnB,IAAI1J,OAAO,GAAG,IAAI,CAACA,OAAO;MAC1B,IAAI,OAAOoI,MAAM,KAAK,QAAQ,EAAE;QAC5BA,MAAM,GAAGC,eAAe,CAACD,MAAM,EAAE,IAAI,CAACD,QAAQ,CAAC;QAC/CC,MAAM,KAAKpI,OAAO,GAAG,IAAI,CAACmI,QAAQ,CAACC,MAAM,CAAC,CAAC;MAC/C,CAAC,MACI;QACDsB,MAAM,GAAGtB,MAAM;MACnB;MACA,IAAI,CAAC7G,MAAM,CAACvB,OAAO,EAAEjD,GAAG,CAAC,EAAE;QACvB8W,OAAO,CAACC,IAAI,iDAA0C/W,GAAG,4CAAyC;QAClG,OAAOA,GAAG;MACd;MACA,OAAO,IAAI,CAACoxB,QAAQ,CAACG,WAAW,CAACtuB,OAAO,CAACjD,GAAG,CAAC,EAAE2M,MAAM,CAAC,CAAC1M,IAAI,CAAC,EAAE,CAAC;IACnE;EAAC;EAAA;AAAA;AAAA;AAGL,SAASuxB,cAAc,CAACzkB,KAAK,EAAEhB,IAAI,EAAE;EACjC;EACA,IAAIgB,KAAK,CAACI,YAAY,EAAE;IACpB;IACAJ,KAAK,CAACI,YAAY,CAAC,UAACskB,SAAS,EAAK;MAC9B1lB,IAAI,CAACa,SAAS,CAAC6kB,SAAS,CAAC;IAC7B,CAAC,CAAC;EACN,CAAC,MACI;IACD1kB,KAAK,CAAC2kB,MAAM,CAAC;MAAA,OAAM3kB,KAAK,CAACuB,OAAO;IAAA,GAAE,UAACmjB,SAAS,EAAK;MAC7C1lB,IAAI,CAACa,SAAS,CAAC6kB,SAAS,CAAC;IAC7B,CAAC,CAAC;EACN;AACJ;AACA,SAASE,gBAAgB,GAAG;EACxB,IAAI,OAAOrG,GAAG,KAAK,WAAW,IAAIA,GAAG,CAACze,SAAS,EAAE;IAC7C,OAAOye,GAAG,CAACze,SAAS,EAAE;EAC1B;EACA;EACA,IAAI,OAAO8B,MAAM,KAAK,WAAW,IAAIA,MAAM,CAAC9B,SAAS,EAAE;IACnD,OAAO8B,MAAM,CAAC9B,SAAS,EAAE;EAC7B;EACA,OAAO5B,SAAS;AACpB;AACA,SAASe,WAAW,CAACX,MAAM,EAA0C;EAAA,IAAxCD,QAAQ,uEAAG,CAAC,CAAC;EAAA,IAAE8lB,cAAc;EAAA,IAAEC,OAAO;EAC/D;EACA,IAAI,OAAO9lB,MAAM,KAAK,QAAQ,EAAE;IAAA,YACP,CACjBD,QAAQ,EACRC,MAAM,CACT;IAHAA,MAAM;IAAED,QAAQ;EAIrB;EACA,IAAI,OAAOC,MAAM,KAAK,QAAQ,EAAE;IAC5B;IACAA,MAAM,GAAGsmB,gBAAgB,EAAE;EAC/B;EACA,IAAI,OAAOT,cAAc,KAAK,QAAQ,EAAE;IACpCA,cAAc,GACT,OAAOvlB,WAAW,KAAK,WAAW,IAAIA,WAAW,CAACulB,cAAc,IAC7DjmB,SAAS;EACrB;EACA,IAAMc,IAAI,GAAG,IAAIklB,IAAI,CAAC;IAClB5lB,MAAM,EAANA,MAAM;IACN6lB,cAAc,EAAdA,cAAc;IACd9lB,QAAQ,EAARA,QAAQ;IACR+lB,OAAO,EAAPA;EACJ,CAAC,CAAC;EACF,IAAIllB,EAAC,GAAG,WAACjM,GAAG,EAAE2M,MAAM,EAAK;IACrB,IAAI,OAAOuB,MAAM,KAAK,UAAU,EAAE;MAC9B;MACA;MACAjC,EAAC,GAAG,WAAUjM,GAAG,EAAE2M,MAAM,EAAE;QACvB,OAAOZ,IAAI,CAACE,CAAC,CAACjM,GAAG,EAAE2M,MAAM,CAAC;MAC9B,CAAC;IACL,CAAC,MACI;MACD,IAAIilB,kBAAkB,GAAG,KAAK;MAC9B3lB,EAAC,GAAG,WAAUjM,GAAG,EAAE2M,MAAM,EAAE;QACvB,IAAMI,KAAK,GAAGmB,MAAM,EAAE,CAACG,GAAG;QAC1B;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,IAAItB,KAAK,EAAE;UACP;UACAA,KAAK,CAACuB,OAAO;UACb,IAAI,CAACsjB,kBAAkB,EAAE;YACrBA,kBAAkB,GAAG,IAAI;YACzBJ,cAAc,CAACzkB,KAAK,EAAEhB,IAAI,CAAC;UAC/B;QACJ;QACA,OAAOA,IAAI,CAACE,CAAC,CAACjM,GAAG,EAAE2M,MAAM,CAAC;MAC9B,CAAC;IACL;IACA,OAAOV,EAAC,CAACjM,GAAG,EAAE2M,MAAM,CAAC;EACzB,CAAC;EACD,OAAO;IACHZ,IAAI,EAAJA,IAAI;IACJ8lB,CAAC,aAAC5uB,OAAO,EAAE0J,MAAM,EAAEsjB,UAAU,EAAE;MAC3B,OAAOlkB,IAAI,CAAC8lB,CAAC,CAAC5uB,OAAO,EAAE0J,MAAM,EAAEsjB,UAAU,CAAC;IAC9C,CAAC;IACDhkB,CAAC,aAACjM,GAAG,EAAE2M,MAAM,EAAE;MACX,OAAOV,EAAC,CAACjM,GAAG,EAAE2M,MAAM,CAAC;IACzB,CAAC;IACDmlB,GAAG,eAACzmB,MAAM,EAAEpI,OAAO,EAAmB;MAAA,IAAjBquB,QAAQ,uEAAG,IAAI;MAChC,OAAOvlB,IAAI,CAAC+lB,GAAG,CAACzmB,MAAM,EAAEpI,OAAO,EAAEquB,QAAQ,CAAC;IAC9C,CAAC;IACD9jB,KAAK,iBAACtJ,EAAE,EAAE;MACN,OAAO6H,IAAI,CAACO,WAAW,CAACpI,EAAE,CAAC;IAC/B,CAAC;IACD2I,SAAS,uBAAG;MACR,OAAOd,IAAI,CAACc,SAAS,EAAE;IAC3B,CAAC;IACDD,SAAS,qBAAC6kB,SAAS,EAAE;MACjB,OAAO1lB,IAAI,CAACa,SAAS,CAAC6kB,SAAS,CAAC;IACpC;EACJ,CAAC;AACL;AAEA,IAAMM,QAAQ,GAAG,SAAXA,QAAQ,CAAItJ,GAAG;EAAA,OAAK,OAAOA,GAAG,KAAK,QAAQ;AAAA;AAAC;AAClD,IAAI2I,QAAQ;AACZ,SAASY,WAAW,CAACC,OAAO,EAAEhC,UAAU,EAAE;EACtC,IAAI,CAACmB,QAAQ,EAAE;IACXA,QAAQ,GAAG,IAAIrB,aAAa,EAAE;EAClC;EACA,OAAOmC,WAAW,CAACD,OAAO,EAAE,UAACA,OAAO,EAAEjyB,GAAG,EAAK;IAC1C,IAAMuJ,KAAK,GAAG0oB,OAAO,CAACjyB,GAAG,CAAC;IAC1B,IAAI+xB,QAAQ,CAACxoB,KAAK,CAAC,EAAE;MACjB,IAAI4oB,SAAS,CAAC5oB,KAAK,EAAE0mB,UAAU,CAAC,EAAE;QAC9B,OAAO,IAAI;MACf;IACJ,CAAC,MACI;MACD,OAAO+B,WAAW,CAACzoB,KAAK,EAAE0mB,UAAU,CAAC;IACzC;EACJ,CAAC,CAAC;AACN;AACA,SAASmC,aAAa,CAACH,OAAO,EAAEtlB,MAAM,EAAEsjB,UAAU,EAAE;EAChD,IAAI,CAACmB,QAAQ,EAAE;IACXA,QAAQ,GAAG,IAAIrB,aAAa,EAAE;EAClC;EACAmC,WAAW,CAACD,OAAO,EAAE,UAACA,OAAO,EAAEjyB,GAAG,EAAK;IACnC,IAAMuJ,KAAK,GAAG0oB,OAAO,CAACjyB,GAAG,CAAC;IAC1B,IAAI+xB,QAAQ,CAACxoB,KAAK,CAAC,EAAE;MACjB,IAAI4oB,SAAS,CAAC5oB,KAAK,EAAE0mB,UAAU,CAAC,EAAE;QAC9BgC,OAAO,CAACjyB,GAAG,CAAC,GAAGqyB,UAAU,CAAC9oB,KAAK,EAAEoD,MAAM,EAAEsjB,UAAU,CAAC;MACxD;IACJ,CAAC,MACI;MACDmC,aAAa,CAAC7oB,KAAK,EAAEoD,MAAM,EAAEsjB,UAAU,CAAC;IAC5C;EACJ,CAAC,CAAC;EACF,OAAOgC,OAAO;AAClB;AACA,SAASK,kBAAkB,CAACC,OAAO,SAAoC;EAAA,IAAhClnB,MAAM,SAANA,MAAM;IAAEO,OAAO,SAAPA,OAAO;IAAEqkB,UAAU,SAAVA,UAAU;EAC9D,IAAI,CAACkC,SAAS,CAACI,OAAO,EAAEtC,UAAU,CAAC,EAAE;IACjC,OAAOsC,OAAO;EAClB;EACA,IAAI,CAACnB,QAAQ,EAAE;IACXA,QAAQ,GAAG,IAAIrB,aAAa,EAAE;EAClC;EACA,IAAMyC,YAAY,GAAG,EAAE;EACvBzuB,MAAM,CAACsB,IAAI,CAACuG,OAAO,CAAC,CAACrG,OAAO,CAAC,UAACqC,IAAI,EAAK;IACnC,IAAIA,IAAI,KAAKyD,MAAM,EAAE;MACjBmnB,YAAY,CAACpsB,IAAI,CAAC;QACdiF,MAAM,EAAEzD,IAAI;QACZ+E,MAAM,EAAEf,OAAO,CAAChE,IAAI;MACxB,CAAC,CAAC;IACN;EACJ,CAAC,CAAC;EACF4qB,YAAY,CAACC,OAAO,CAAC;IAAEpnB,MAAM,EAANA,MAAM;IAAEsB,MAAM,EAAEf,OAAO,CAACP,MAAM;EAAE,CAAC,CAAC;EACzD,IAAI;IACA,OAAOvI,IAAI,CAAC+d,SAAS,CAAC6R,cAAc,CAAC5vB,IAAI,CAACC,KAAK,CAACwvB,OAAO,CAAC,EAAEC,YAAY,EAAEvC,UAAU,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;EACjG,CAAC,CACD,OAAOpX,CAAC,EAAE,CAAE;EACZ,OAAO0Z,OAAO;AAClB;AACA,SAASJ,SAAS,CAAC5oB,KAAK,EAAE0mB,UAAU,EAAE;EAClC,OAAO1mB,KAAK,CAAC/I,OAAO,CAACyvB,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAC5C;AACA,SAASoC,UAAU,CAAC9oB,KAAK,EAAEoD,MAAM,EAAEsjB,UAAU,EAAE;EAC3C,OAAOmB,QAAQ,CAACG,WAAW,CAAChoB,KAAK,EAAEoD,MAAM,EAAEsjB,UAAU,CAAC,CAAChwB,IAAI,CAAC,EAAE,CAAC;AACnE;AACA,SAAS0yB,YAAY,CAACV,OAAO,EAAEjyB,GAAG,EAAEwyB,YAAY,EAAEvC,UAAU,EAAE;EAC1D,IAAM1mB,KAAK,GAAG0oB,OAAO,CAACjyB,GAAG,CAAC;EAC1B,IAAI+xB,QAAQ,CAACxoB,KAAK,CAAC,EAAE;IACjB;IACA,IAAI4oB,SAAS,CAAC5oB,KAAK,EAAE0mB,UAAU,CAAC,EAAE;MAC9BgC,OAAO,CAACjyB,GAAG,CAAC,GAAGqyB,UAAU,CAAC9oB,KAAK,EAAEipB,YAAY,CAAC,CAAC,CAAC,CAAC7lB,MAAM,EAAEsjB,UAAU,CAAC;MACpE,IAAIuC,YAAY,CAACnxB,MAAM,GAAG,CAAC,EAAE;QACzB;QACA,IAAMuxB,YAAY,GAAIX,OAAO,CAACjyB,GAAG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAE;QACpDwyB,YAAY,CAACjtB,OAAO,CAAC,UAACstB,UAAU,EAAK;UACjCD,YAAY,CAACC,UAAU,CAACxnB,MAAM,CAAC,GAAGgnB,UAAU,CAAC9oB,KAAK,EAAEspB,UAAU,CAAClmB,MAAM,EAAEsjB,UAAU,CAAC;QACtF,CAAC,CAAC;MACN;IACJ;EACJ,CAAC,MACI;IACDyC,cAAc,CAACnpB,KAAK,EAAEipB,YAAY,EAAEvC,UAAU,CAAC;EACnD;AACJ;AACA,SAASyC,cAAc,CAACT,OAAO,EAAEO,YAAY,EAAEvC,UAAU,EAAE;EACvDiC,WAAW,CAACD,OAAO,EAAE,UAACA,OAAO,EAAEjyB,GAAG,EAAK;IACnC2yB,YAAY,CAACV,OAAO,EAAEjyB,GAAG,EAAEwyB,YAAY,EAAEvC,UAAU,CAAC;EACxD,CAAC,CAAC;EACF,OAAOgC,OAAO;AAClB;AACA,SAASC,WAAW,CAACD,OAAO,EAAEa,IAAI,EAAE;EAChC,IAAI9sB,KAAK,CAACC,OAAO,CAACgsB,OAAO,CAAC,EAAE;IACxB,KAAK,IAAIvwB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGuwB,OAAO,CAAC5wB,MAAM,EAAEK,CAAC,EAAE,EAAE;MACrC,IAAIoxB,IAAI,CAACb,OAAO,EAAEvwB,CAAC,CAAC,EAAE;QAClB,OAAO,IAAI;MACf;IACJ;EACJ,CAAC,MACI,IAAI0C,QAAQ,CAAC6tB,OAAO,CAAC,EAAE;IACxB,KAAK,IAAMjyB,GAAG,IAAIiyB,OAAO,EAAE;MACvB,IAAIa,IAAI,CAACb,OAAO,EAAEjyB,GAAG,CAAC,EAAE;QACpB,OAAO,IAAI;MACf;IACJ;EACJ;EACA,OAAO,KAAK;AAChB;AAEA,SAAS+yB,aAAa,CAACnnB,OAAO,EAAE;EAC5B,OAAO,UAACP,MAAM,EAAK;IACf,IAAI,CAACA,MAAM,EAAE;MACT,OAAOA,MAAM;IACjB;IACAA,MAAM,GAAGC,eAAe,CAACD,MAAM,CAAC,IAAIA,MAAM;IAC1C,OAAO2nB,kBAAkB,CAAC3nB,MAAM,CAAC,CAACsC,IAAI,CAAC,UAACtC,MAAM;MAAA,OAAKO,OAAO,CAACpL,OAAO,CAAC6K,MAAM,CAAC,GAAG,CAAC,CAAC;IAAA,EAAC;EACpF,CAAC;AACL;AACA,SAAS2nB,kBAAkB,CAAC3nB,MAAM,EAAE;EAChC,IAAM4nB,KAAK,GAAG,EAAE;EAChB,IAAM/C,MAAM,GAAG7kB,MAAM,CAACtJ,KAAK,CAAC,GAAG,CAAC;EAChC,OAAOmuB,MAAM,CAAC7uB,MAAM,EAAE;IAClB4xB,KAAK,CAAC7sB,IAAI,CAAC8pB,MAAM,CAACjwB,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5BiwB,MAAM,CAACgD,GAAG,EAAE;EAChB;EACA,OAAOD,KAAK;AAChB,C;;;;;;;;;;;AC1cA,SAASE,eAAe,CAACnE,QAAQ,EAAEF,WAAW,EAAE;EAC9C,IAAI,EAAEE,QAAQ,YAAYF,WAAW,CAAC,EAAE;IACtC,MAAM,IAAIpB,SAAS,CAAC,mCAAmC,CAAC;EAC1D;AACF;AACA/B,MAAM,CAACC,OAAO,GAAGuH,eAAe,EAAExH,MAAM,CAACC,OAAO,CAACF,UAAU,GAAG,IAAI,EAAEC,MAAM,CAACC,OAAO,CAAC,SAAS,CAAC,GAAGD,MAAM,CAACC,OAAO,C;;;;;;;;;;ACL9G,IAAI+B,aAAa,GAAG7B,mBAAO,CAAC,4BAAoB,CAAC;AACjD,SAASsH,iBAAiB,CAACtzB,MAAM,EAAE8hB,KAAK,EAAE;EACxC,KAAK,IAAIlgB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGkgB,KAAK,CAACvgB,MAAM,EAAEK,CAAC,EAAE,EAAE;IACrC,IAAI2xB,UAAU,GAAGzR,KAAK,CAAClgB,CAAC,CAAC;IACzB2xB,UAAU,CAACnW,UAAU,GAAGmW,UAAU,CAACnW,UAAU,IAAI,KAAK;IACtDmW,UAAU,CAACpW,YAAY,GAAG,IAAI;IAC9B,IAAI,OAAO,IAAIoW,UAAU,EAAEA,UAAU,CAACxF,QAAQ,GAAG,IAAI;IACrD9pB,MAAM,CAACqJ,cAAc,CAACtN,MAAM,EAAE6tB,aAAa,CAAC0F,UAAU,CAACrzB,GAAG,CAAC,EAAEqzB,UAAU,CAAC;EAC1E;AACF;AACA,SAASC,YAAY,CAACxE,WAAW,EAAEyE,UAAU,EAAEC,WAAW,EAAE;EAC1D,IAAID,UAAU,EAAEH,iBAAiB,CAACtE,WAAW,CAACxrB,SAAS,EAAEiwB,UAAU,CAAC;EACpE,IAAIC,WAAW,EAAEJ,iBAAiB,CAACtE,WAAW,EAAE0E,WAAW,CAAC;EAC5DzvB,MAAM,CAACqJ,cAAc,CAAC0hB,WAAW,EAAE,WAAW,EAAE;IAC9CjB,QAAQ,EAAE;EACZ,CAAC,CAAC;EACF,OAAOiB,WAAW;AACpB;AACAnD,MAAM,CAACC,OAAO,GAAG0H,YAAY,EAAE3H,MAAM,CAACC,OAAO,CAACF,UAAU,GAAG,IAAI,EAAEC,MAAM,CAACC,OAAO,CAAC,SAAS,CAAC,GAAGD,MAAM,CAACC,OAAO,C;;;;;;;;;;;AClB3G;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA,kCAAkC;;AAElC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;AACA,sBAAsB,+BAA+B;AACrD,sBAAsB,iBAAiB;AACvC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,kDAAkD,iCAAiC,EAAE;AACrF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,6BAA6B,cAAc;;AAE3C;;AAEA;AACA;AACA;AACA,6BAA6B,UAAU;;AAEvC;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC,kCAAkC;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,aAAoB;;AAErC;AACA;AACA;AACA,YAAY,aAAoB;;AAEhC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC,iBAAiB;AACjB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;;AAEA;;AAEA;AACA;AACA,oCAAoC;AACpC;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA,iCAAiC;AACjC,uCAAuC,wBAAwB,EAAE;AACjE,0BAA0B;;AAE1B;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,YAAY;AACpC,kBAAkB,YAAY;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA,wCAAwC,EAAE;AAC1C;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,+BAA+B,oBAAoB,EAAE;AACrD;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,0BAA0B,SAAS,qBAAqB;;AAExD;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA,GAAG;AACH,CAAC;;AAED;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,iBAAiB;AAClC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAc;AACd;;AAEA;AACA;AACA;;AAEA,iBAAiB,iBAAiB;AAClC;AACA;AACA,2BAA2B;AAC3B;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,uBAAuB;AACzD,iCAAiC,sBAAsB;AACvD;AACA,kBAAkB;AAClB,MAAM,IAAqC;AAC3C;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,aAAoB;AACtC;AACA;AACA,mBAAmB;AACnB;AACA;AACA,iBAAiB,uBAAuB;AACxC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,OAAO,UAAU,IAAqC;AACtD;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA,GAAG,UAAU,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA,mBAAmB,mBAAmB;AACtC,+BAA+B;AAC/B;AACA,GAAG;AACH;AACA;AACA;AACA,kBAAkB,YAAY;AAC9B,WAAW;AACX;AACA,GAAG,UAAU,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B;AAC3B;AACA,oCAAoC;AACpC;AACA,qCAAqC;AACrC;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAEQ;AACZ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6CAA6C,SAAS;AACtD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA,6CAA6C,qCAAqC,EAAE;AACpF;;AAEA;AACA;AACA;;AAEA,oCAAoC,yCAAyC,EAAE;AAC/E;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,kBAAkB;AAC3C;AACA;AACA,4BAA4B;AAC5B,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,sDAAsD,EAAE;AACtF;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,kBAAkB;AAClC;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;;AAEA;;AAEA;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,iCAAiC;AACnE,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,kCAAkC,iCAAiC;AACnE,cAAc,6BAA6B;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,yBAAyB;AAC1C,GAAG;AACH;AACA;AACA,iBAAiB,+BAA+B;AAChD;AACA;;AAEA;AACA;;AAEA,IAAI,IAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,uBAAuB;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,mBAAmB;AACxC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wDAAwD;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,aAAa,qBAAqB;AAClC;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,IAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO,MAAM,EAEN;AACP,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,mBAAmB,iBAAiB;AACpC;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,UAAU,IAAqC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kEAAkE;AAClE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA,sBAAsB,mBAAmB;AACzC;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,OAAO;AACtC,uCAAuC;AACvC;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB,sCAAsC;AACtC;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D;AACA;AACA,KAAK;AACL;AACA;AACA,kCAAkC,OAAO;AACzC;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA,4CAA4C,eAAe;AAC3D,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,kDAAkD;AAClD,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA,6CAA6C;AAC7C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,iBAAiB;AACpC;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA,KAAK;AACL,4CAA4C;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,iBAAiB,mBAAmB;AACpC;AACA;AACA;AACA,KAAK,UAAU,KAAqC;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,qCAAqC,gEAAgE;AACrG;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,4BAA4B,+BAA+B;AAC3D,4BAA4B,+BAA+B;AAC3D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,mBAAmB;AACtC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C,kDAAkD;AAClD;AACA;AACA,mCAAmC;AACnC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sEAAsE;;AAEtE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,uFAAuF;AAC5F;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0CAA0C;AAC1C,iBAAiB,yBAAyB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG,+BAA+B;AAClC,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,oBAAoB,oBAAoB;AACxC,sBAAsB,4BAA4B;AAClD;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,OAAO;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,mBAAmB;AACnB,yBAAyB;AACzB;AACA,qDAAqD;AACrD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iCAAiC,6CAA6C;AAC9E;AACA;AACA,6CAA6C,4CAA4C;;AAEzF;AACA;AACA;;AAEA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,GAAG,MAAM,EAGN;AACH;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,KAAK,2CAA2C,8BAA8B,EAAE;;AAEhF;AACA,wCAAwC,OAAO;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;;AAEL;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,KAAqC;AACrD;AACA,oBAAoB,SAAI;AACxB;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uCAAuC,OAAO;AAC9C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,SAAS;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC,OAAO;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;;AAE1B,kBAAkB;AAClB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB,qBAAqB;AACxC;AACA,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,MAAM,IAAqC;AAC3C;AACA;AACA;;AAEA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC,OAAO;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0BAA0B;AACpD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8BAA8B,oBAAoB,EAAE;;AAEpD;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,UAAU,KAAqC;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;AAIA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,oBAAoB;AACpB;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA,oBAAoB,KAAqC;AACzD;AACA,MAAM,SAAE;AACR;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,KAAK;AACL;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,2BAA2B;AAC9C,qBAAqB,+BAA+B;AACpD;AACA;AACA,GAAG;AACH,yBAAyB;AACzB;AACA,sBAAsB,iCAAiC;AACvD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kGAAkG;AAClG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK,MAAM,EAEN;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,KAAqC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK,UAAU,IAAqC;AACpD;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,qBAAqB,oBAAoB;AACzC;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA,8BAA8B;AAC9B,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA,KAAK,MAAM,EAEN;AACL;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA,sCAAsC;AACtC,8C;;AAEA;AACA,QAAQ,KAAqC;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,eAAe;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAM,KAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sEAAsE;AACtE;AACA;AACA;;AAEA;AACA,QAAQ,KAAqC;AAC7C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC;;AAEjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,YAAY,KAAqC;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;;;;AAIA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA,0CAA0C,2BAA2B,EAAE;AACvE,KAAK;AACL;AACA,0CAA0C,4BAA4B,EAAE;AACxE,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,+BAA+B,eAAe;AAC9C,MAAM,IAAqC;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;;AAED;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA,yBAAyB;AACzB;AACA;AACA,6BAA6B;AAC7B;AACA;AACA,iBAAiB;AACjB;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA,SAAS;AACT;AACA;AACA,aAAa;AACb;AACA;AACA,iBAAiB;AACjB;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,YAAY,8IAAW;AACvB;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA;;AAEA;AACA,0CAA0C,gCAAgC,EAAE;AAC5E;;AAEA;AACA;AACA;AACA;AACA,WAAW,8IAAW;AACtB;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,WAAW,8IAAW;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B,0CAA0C;;AAE1C;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA,sCAAsC;AACtC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA,KAAK;AACL;AACA;AACA,UAAU,8IAAW;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,IAAqC;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mCAAmC,OAAO;AAC1C;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB,YAAY;AAC5B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;;AAET;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sDAAsD,qDAAqD,EAAE,SAAS;AACtH;;AAEA;AACA;AACA;AACA;AACA;AACA,iCAAiC,OAAO;AACxC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,kCAAkC,OAAO;AACzC;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,0BAA0B,OAAO;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEe,kEAAG,EAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC97LnB;AAAA;AAAA;;AAEA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,qBAAqB;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;;;;;ACrHA;AACA;AACA;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AAPA;;AASA;AACA,IAAM6H,aAAa,GAAG,IAAIC,2BAAoB,CAAC;EAC9CC,OAAO,EAAE;IACRC,OAAO,EAAE,iBAAA5zB,GAAG;MAAA,OAAIsrB,GAAG,CAAC/oB,cAAc,CAACvC,GAAG,CAAC;IAAA;IACjC6zB,OAAO,EAAE,iBAAC7zB,GAAG,EAAEuJ,KAAK;MAAA,OAAK+hB,GAAG,CAACwI,cAAc,CAAC9zB,GAAG,EAAEuJ,KAAK,CAAC;IAAA;IACvDwqB,UAAU,EAAE,oBAAA/zB,GAAG;MAAA,OAAIsrB,GAAG,CAAC0I,gBAAgB,CAACh0B,GAAG,CAAC;IAAA;EACnD;AACD,CAAC,CAAC;;AAEF;AACAqD,YAAG,CAAC4wB,GAAG,CAACC,aAAI,CAAC;AAAA,eAEE,IAAIA,aAAI,CAACC,KAAK,CAAC;EAC7BC,OAAO,EAAC,CAACX,aAAa,CAAC;EACvBY,OAAO,EAAC;IACPC,KAAK,EAALA,cAAK;IACLC,OAAO,EAAPA,gBAAO;IACPC,IAAI,EAAJA,aAAI;IACJC,IAAI,EAAJA,aAAI;IACJC,MAAM,EAANA,eAAM;IACNzxB,OAAO,EAAPA,gBAAO;IACP0xB,aAAa,EAAbA;EACD;AACD,CAAC,CAAC;AAAA,2B;;;;;;;;;;;;ACpCF;AACA;AACA;AACA;AACA;AACa;;AAEb;AACA;;AAEA;AACA,eAAe,yBAAyB;AACxC,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,qBAAqB;;AAErB;;AAEA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG,GAAG,gBAAgB;;AAEtB;AACA;AACA,GAAG,GAAG,gBAAgB;AACtB;;AAEA;AACA;AACA;AACA;AACA,WAAW,MAAM;AACjB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,EAAE;AACb,WAAW,cAAc;AACzB,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,sCAAsC,2BAA2B,EAAE;AACnE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA,2CAA2C,0BAA0B,EAAE;AACvE;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,mBAAmB;AACnB;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,0BAA0B,cAAc,qBAAqB;;AAE7D;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,OAAO,IAAqC;AAC5C;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,SAAS,IAAqC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,OAAO,IAAqC;AAC5C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,4BAA4B,oCAAoC,EAAE;AAClE;AACA;;AAEA;AACA,4BAA4B;AAC5B,uEAAuE,EAAE;AACzE;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0BAA0B;;AAE1B;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,QAAQ;;AAER;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,IAAqC;AAC5C;AACA;AACA;AACA;;AAEA,gCAAgC;AAChC,8BAA8B;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,qCAAqC,uBAAuB,EAAE;;AAE9D;AACA;AACA;AACA;AACA;;AAEA,4BAA4B,SAAS,qBAAqB;;AAE1D;AACA;AACA;;AAEA;AACA,OAAO,IAAqC;AAC5C;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;AACA,SAAS,IAAqC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA,6BAA6B,oCAAoC,EAAE;;AAEnE;AACA,KAAK,KAAqC;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,gBAAgB;AAChB;AACA;AACA,SAAS,IAAqC;AAC9C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B,mBAAmB,EAAE;AACnD,+BAA+B,yCAAyC,EAAE;AAC1E,GAAG;AACH,SAAS,IAAqC;AAC9C;AACA;AACA;AACA;;AAEA;AACA,gDAAgD,yBAAyB,EAAE;AAC3E;;AAEA;AACA;AACA;AACA;AACA,kCAAkC,kBAAkB,EAAE;AACtD,mCAAmC,wCAAwC,EAAE;AAC7E,OAAO;AACP,aAAa,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,kCAAkC,kBAAkB,EAAE;AACtD,mCAAmC,+CAA+C,EAAE;AACpF,OAAO;AACP,aAAa,IAAqC;AAClD;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;;AAEA;AACA;AACA;;AAEA;AACA,yCAAyC,aAAa;AACtD;AACA;;AAEA;AACA;;AAEA,OAAO,IAAqC;AAC5C;AACA;AACA,6CAA6C,6CAA6C,EAAE;AAC5F;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA,iCAAiC,eAAe;;AAEhD,OAAO,IAAqC;AAC5C;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iCAAiC,eAAe;;AAEhD,OAAO,IAAqC;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA,iCAAiC,eAAe;;AAEhD,OAAO,IAAqC;AAC5C;AACA;;AAEA;AACA;;AAEA,yEAAyE,iCAAiC;AAC1G;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB,uBAAuB,EAAE;AACjD;AACA,KAAK;AACL,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,8BAA8B,yBAAyB,EAAE;AACzD;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,kDAAkD,aAAoB;AACtE;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,IAAqC;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,KAAqC;AAClD;AACA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,aAAa,KAAqC;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C,uBAAuB,2CAA2C;AAClE,KAAK;AACL;AACA,wBAAwB,0CAA0C;AAClE;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;;AAElD;AACA;;AAEA;AACA;AACA;AACA;AACA,0BAA0B,4BAA4B,EAAE;AACxD;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA,SAAS,IAAqC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,gCAAgC,4BAA4B;AAC5D,SAAS,IAAqC;AAC9C;AACA;AACA,GAAG,GAAG,yBAAyB;AAC/B;;AAEA;AACA,4CAA4C,mBAAmB,EAAE;AACjE;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAO,IAAqC;AAC5C;AACA;;AAEA,UAAU;AACV;;AAEA;AACA;AACA,SAAS,IAAqC;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,WAAW;AACX;AACA;AACA;AACA,OAAO,KAAqC;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,YAAY;AACZ;AACA;AACA;AACA,OAAO,KAAqC;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,CAAC;;AAED;AACA;AACA,WAAW,OAAO;AAClB,WAAW,aAAa;AACxB,YAAY;AACZ;AACA;AACA;AACA,OAAO,KAAqC;AAC5C;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,KAAqC;AAChD;AACA;AACA;AACA;AA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","file":"common/vendor.js","sourcesContent":["const objectKeys = [\r\n 'qy',\r\n 'env',\r\n 'error',\r\n 'version',\r\n 'lanDebug',\r\n 'cloud',\r\n 'serviceMarket',\r\n 'router',\r\n 'worklet',\r\n '__webpack_require_UNI_MP_PLUGIN__'\r\n]\r\nconst singlePageDisableKey = [\r\n 'lanDebug',\r\n 'router',\r\n 'worklet'\r\n]\r\nconst target = typeof globalThis !== 'undefined' ? globalThis : (function () {\r\n return this\r\n})()\r\n\r\nconst key = ['w', 'x'].join('')\r\nconst oldWx = target[key]\r\nconst launchOption = oldWx.getLaunchOptionsSync ? oldWx.getLaunchOptionsSync() : null\r\n\r\nfunction isWxKey (key) {\r\n if (launchOption && launchOption.scene === 1154 && singlePageDisableKey.includes(key)) {\r\n return false\r\n }\r\n return objectKeys.indexOf(key) > -1 || typeof oldWx[key] === 'function'\r\n}\r\n\r\nfunction initWx () {\r\n const newWx = {}\r\n for (const key in oldWx) {\r\n if (isWxKey(key)) {\r\n // TODO wrapper function\r\n newWx[key] = oldWx[key]\r\n }\r\n }\r\n return newWx\r\n}\r\ntarget[key] = initWx()\r\nexport default target[key]\r\n","import { initVueI18n } from '@dcloudio/uni-i18n';\r\nimport Vue from 'vue';\r\n\r\nlet realAtob;\r\n\r\nconst b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\r\nconst b64re = /^(?:[A-Za-z\\d+/]{4})*?(?:[A-Za-z\\d+/]{2}(?:==)?|[A-Za-z\\d+/]{3}=?)?$/;\r\n\r\nif (typeof atob !== 'function') {\r\n realAtob = function (str) {\r\n str = String(str).replace(/[\\t\\n\\f\\r ]+/g, '');\r\n if (!b64re.test(str)) { throw new Error(\"Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.\") }\r\n\r\n // Adding the padding if missing, for semplicity\r\n str += '=='.slice(2 - (str.length & 3));\r\n var bitmap; var result = ''; var r1; var r2; var i = 0;\r\n for (; i < str.length;) {\r\n bitmap = b64.indexOf(str.charAt(i++)) << 18 | b64.indexOf(str.charAt(i++)) << 12 |\r\n (r1 = b64.indexOf(str.charAt(i++))) << 6 | (r2 = b64.indexOf(str.charAt(i++)));\r\n\r\n result += r1 === 64 ? String.fromCharCode(bitmap >> 16 & 255)\r\n : r2 === 64 ? String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255)\r\n : String.fromCharCode(bitmap >> 16 & 255, bitmap >> 8 & 255, bitmap & 255);\r\n }\r\n return result\r\n };\r\n} else {\r\n // 注意atob只能在全局对象上调用,例如:`const Base64 = {atob};Base64.atob('xxxx')`是错误的用法\r\n realAtob = atob;\r\n}\r\n\r\nfunction b64DecodeUnicode (str) {\r\n return decodeURIComponent(realAtob(str).split('').map(function (c) {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)\r\n }).join(''))\r\n}\r\n\r\nfunction getCurrentUserInfo () {\r\n const token = ( wx).getStorageSync('uni_id_token') || '';\r\n const tokenArr = token.split('.');\r\n if (!token || tokenArr.length !== 3) {\r\n return {\r\n uid: null,\r\n role: [],\r\n permission: [],\r\n tokenExpired: 0\r\n }\r\n }\r\n let userInfo;\r\n try {\r\n userInfo = JSON.parse(b64DecodeUnicode(tokenArr[1]));\r\n } catch (error) {\r\n throw new Error('获取当前用户信息出错,详细错误信息为:' + error.message)\r\n }\r\n userInfo.tokenExpired = userInfo.exp * 1000;\r\n delete userInfo.exp;\r\n delete userInfo.iat;\r\n return userInfo\r\n}\r\n\r\nfunction uniIdMixin (Vue) {\r\n Vue.prototype.uniIDHasRole = function (roleId) {\r\n const {\r\n role\r\n } = getCurrentUserInfo();\r\n return role.indexOf(roleId) > -1\r\n };\r\n Vue.prototype.uniIDHasPermission = function (permissionId) {\r\n const {\r\n permission\r\n } = getCurrentUserInfo();\r\n return this.uniIDHasRole('admin') || permission.indexOf(permissionId) > -1\r\n };\r\n Vue.prototype.uniIDTokenValid = function () {\r\n const {\r\n tokenExpired\r\n } = getCurrentUserInfo();\r\n return tokenExpired > Date.now()\r\n };\r\n}\r\n\r\nconst _toString = Object.prototype.toString;\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\n\r\nfunction isFn (fn) {\r\n return typeof fn === 'function'\r\n}\r\n\r\nfunction isStr (str) {\r\n return typeof str === 'string'\r\n}\r\n\r\nfunction isObject (obj) {\r\n return obj !== null && typeof obj === 'object'\r\n}\r\n\r\nfunction isPlainObject (obj) {\r\n return _toString.call(obj) === '[object Object]'\r\n}\r\n\r\nfunction hasOwn (obj, key) {\r\n return hasOwnProperty.call(obj, key)\r\n}\r\n\r\nfunction noop () {}\r\n\r\n/**\r\n * Create a cached version of a pure function.\r\n */\r\nfunction cached (fn) {\r\n const cache = Object.create(null);\r\n return function cachedFn (str) {\r\n const hit = cache[str];\r\n return hit || (cache[str] = fn(str))\r\n }\r\n}\r\n\r\n/**\r\n * Camelize a hyphen-delimited string.\r\n */\r\nconst camelizeRE = /-(\\w)/g;\r\nconst camelize = cached((str) => {\r\n return str.replace(camelizeRE, (_, c) => c ? c.toUpperCase() : '')\r\n});\r\n\r\nfunction sortObject (obj) {\r\n const sortObj = {};\r\n if (isPlainObject(obj)) {\r\n Object.keys(obj).sort().forEach(key => {\r\n sortObj[key] = obj[key];\r\n });\r\n }\r\n return !Object.keys(sortObj) ? obj : sortObj\r\n}\r\n\r\nconst HOOKS = [\r\n 'invoke',\r\n 'success',\r\n 'fail',\r\n 'complete',\r\n 'returnValue'\r\n];\r\n\r\nconst globalInterceptors = {};\r\nconst scopedInterceptors = {};\r\n\r\nfunction mergeHook (parentVal, childVal) {\r\n const res = childVal\r\n ? parentVal\r\n ? parentVal.concat(childVal)\r\n : Array.isArray(childVal)\r\n ? childVal : [childVal]\r\n : parentVal;\r\n return res\r\n ? dedupeHooks(res)\r\n : res\r\n}\r\n\r\nfunction dedupeHooks (hooks) {\r\n const res = [];\r\n for (let i = 0; i < hooks.length; i++) {\r\n if (res.indexOf(hooks[i]) === -1) {\r\n res.push(hooks[i]);\r\n }\r\n }\r\n return res\r\n}\r\n\r\nfunction removeHook (hooks, hook) {\r\n const index = hooks.indexOf(hook);\r\n if (index !== -1) {\r\n hooks.splice(index, 1);\r\n }\r\n}\r\n\r\nfunction mergeInterceptorHook (interceptor, option) {\r\n Object.keys(option).forEach(hook => {\r\n if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {\r\n interceptor[hook] = mergeHook(interceptor[hook], option[hook]);\r\n }\r\n });\r\n}\r\n\r\nfunction removeInterceptorHook (interceptor, option) {\r\n if (!interceptor || !option) {\r\n return\r\n }\r\n Object.keys(option).forEach(hook => {\r\n if (HOOKS.indexOf(hook) !== -1 && isFn(option[hook])) {\r\n removeHook(interceptor[hook], option[hook]);\r\n }\r\n });\r\n}\r\n\r\nfunction addInterceptor (method, option) {\r\n if (typeof method === 'string' && isPlainObject(option)) {\r\n mergeInterceptorHook(scopedInterceptors[method] || (scopedInterceptors[method] = {}), option);\r\n } else if (isPlainObject(method)) {\r\n mergeInterceptorHook(globalInterceptors, method);\r\n }\r\n}\r\n\r\nfunction removeInterceptor (method, option) {\r\n if (typeof method === 'string') {\r\n if (isPlainObject(option)) {\r\n removeInterceptorHook(scopedInterceptors[method], option);\r\n } else {\r\n delete scopedInterceptors[method];\r\n }\r\n } else if (isPlainObject(method)) {\r\n removeInterceptorHook(globalInterceptors, method);\r\n }\r\n}\r\n\r\nfunction wrapperHook (hook, params) {\r\n return function (data) {\r\n return hook(data, params) || data\r\n }\r\n}\r\n\r\nfunction isPromise (obj) {\r\n return !!obj && (typeof obj === 'object' || typeof obj === 'function') && typeof obj.then === 'function'\r\n}\r\n\r\nfunction queue (hooks, data, params) {\r\n let promise = false;\r\n for (let i = 0; i < hooks.length; i++) {\r\n const hook = hooks[i];\r\n if (promise) {\r\n promise = Promise.resolve(wrapperHook(hook, params));\r\n } else {\r\n const res = hook(data, params);\r\n if (isPromise(res)) {\r\n promise = Promise.resolve(res);\r\n }\r\n if (res === false) {\r\n return {\r\n then () { }\r\n }\r\n }\r\n }\r\n }\r\n return promise || {\r\n then (callback) {\r\n return callback(data)\r\n }\r\n }\r\n}\r\n\r\nfunction wrapperOptions (interceptor, options = {}) {\r\n ['success', 'fail', 'complete'].forEach(name => {\r\n if (Array.isArray(interceptor[name])) {\r\n const oldCallback = options[name];\r\n options[name] = function callbackInterceptor (res) {\r\n queue(interceptor[name], res, options).then((res) => {\r\n /* eslint-disable no-mixed-operators */\r\n return isFn(oldCallback) && oldCallback(res) || res\r\n });\r\n };\r\n }\r\n });\r\n return options\r\n}\r\n\r\nfunction wrapperReturnValue (method, returnValue) {\r\n const returnValueHooks = [];\r\n if (Array.isArray(globalInterceptors.returnValue)) {\r\n returnValueHooks.push(...globalInterceptors.returnValue);\r\n }\r\n const interceptor = scopedInterceptors[method];\r\n if (interceptor && Array.isArray(interceptor.returnValue)) {\r\n returnValueHooks.push(...interceptor.returnValue);\r\n }\r\n returnValueHooks.forEach(hook => {\r\n returnValue = hook(returnValue) || returnValue;\r\n });\r\n return returnValue\r\n}\r\n\r\nfunction getApiInterceptorHooks (method) {\r\n const interceptor = Object.create(null);\r\n Object.keys(globalInterceptors).forEach(hook => {\r\n if (hook !== 'returnValue') {\r\n interceptor[hook] = globalInterceptors[hook].slice();\r\n }\r\n });\r\n const scopedInterceptor = scopedInterceptors[method];\r\n if (scopedInterceptor) {\r\n Object.keys(scopedInterceptor).forEach(hook => {\r\n if (hook !== 'returnValue') {\r\n interceptor[hook] = (interceptor[hook] || []).concat(scopedInterceptor[hook]);\r\n }\r\n });\r\n }\r\n return interceptor\r\n}\r\n\r\nfunction invokeApi (method, api, options, ...params) {\r\n const interceptor = getApiInterceptorHooks(method);\r\n if (interceptor && Object.keys(interceptor).length) {\r\n if (Array.isArray(interceptor.invoke)) {\r\n const res = queue(interceptor.invoke, options);\r\n return res.then((options) => {\r\n // 重新访问 getApiInterceptorHooks, 允许 invoke 中再次调用 addInterceptor,removeInterceptor\r\n return api(\r\n wrapperOptions(getApiInterceptorHooks(method), options),\r\n ...params\r\n )\r\n })\r\n } else {\r\n return api(wrapperOptions(interceptor, options), ...params)\r\n }\r\n }\r\n return api(options, ...params)\r\n}\r\n\r\nconst promiseInterceptor = {\r\n returnValue (res) {\r\n if (!isPromise(res)) {\r\n return res\r\n }\r\n return new Promise((resolve, reject) => {\r\n res.then(res => {\r\n if (res[0]) {\r\n reject(res[0]);\r\n } else {\r\n resolve(res[1]);\r\n }\r\n });\r\n })\r\n }\r\n};\r\n\r\nconst SYNC_API_RE =\r\n /^\\$|Window$|WindowStyle$|sendHostEvent|sendNativeEvent|restoreGlobal|requireGlobal|getCurrentSubNVue|getMenuButtonBoundingClientRect|^report|interceptors|Interceptor$|getSubNVueById|requireNativePlugin|upx2px|hideKeyboard|canIUse|^create|Sync$|Manager$|base64ToArrayBuffer|arrayBufferToBase64|getLocale|setLocale|invokePushCallback|getWindowInfo|getDeviceInfo|getAppBaseInfo|getSystemSetting|getAppAuthorizeSetting|initUTS|requireUTS|registerUTS/;\r\n\r\nconst CONTEXT_API_RE = /^create|Manager$/;\r\n\r\n// Context例外情况\r\nconst CONTEXT_API_RE_EXC = ['createBLEConnection'];\r\n\r\n// 同步例外情况\r\nconst ASYNC_API = ['createBLEConnection', 'createPushMessage'];\r\n\r\nconst CALLBACK_API_RE = /^on|^off/;\r\n\r\nfunction isContextApi (name) {\r\n return CONTEXT_API_RE.test(name) && CONTEXT_API_RE_EXC.indexOf(name) === -1\r\n}\r\nfunction isSyncApi (name) {\r\n return SYNC_API_RE.test(name) && ASYNC_API.indexOf(name) === -1\r\n}\r\n\r\nfunction isCallbackApi (name) {\r\n return CALLBACK_API_RE.test(name) && name !== 'onPush'\r\n}\r\n\r\nfunction handlePromise (promise) {\r\n return promise.then(data => {\r\n return [null, data]\r\n })\r\n .catch(err => [err])\r\n}\r\n\r\nfunction shouldPromise (name) {\r\n if (\r\n isContextApi(name) ||\r\n isSyncApi(name) ||\r\n isCallbackApi(name)\r\n ) {\r\n return false\r\n }\r\n return true\r\n}\r\n\r\n/* eslint-disable no-extend-native */\r\nif (!Promise.prototype.finally) {\r\n Promise.prototype.finally = function (callback) {\r\n const promise = this.constructor;\r\n return this.then(\r\n value => promise.resolve(callback()).then(() => value),\r\n reason => promise.resolve(callback()).then(() => {\r\n throw reason\r\n })\r\n )\r\n };\r\n}\r\n\r\nfunction promisify (name, api) {\r\n if (!shouldPromise(name) || !isFn(api)) {\r\n return api\r\n }\r\n return function promiseApi (options = {}, ...params) {\r\n if (isFn(options.success) || isFn(options.fail) || isFn(options.complete)) {\r\n return wrapperReturnValue(name, invokeApi(name, api, options, ...params))\r\n }\r\n return wrapperReturnValue(name, handlePromise(new Promise((resolve, reject) => {\r\n invokeApi(name, api, Object.assign({}, options, {\r\n success: resolve,\r\n fail: reject\r\n }), ...params);\r\n })))\r\n }\r\n}\r\n\r\nconst EPS = 1e-4;\r\nconst BASE_DEVICE_WIDTH = 750;\r\nlet isIOS = false;\r\nlet deviceWidth = 0;\r\nlet deviceDPR = 0;\r\n\r\nfunction checkDeviceWidth () {\r\n const {\r\n platform,\r\n pixelRatio,\r\n windowWidth\r\n } = wx.getSystemInfoSync(); // uni=>wx runtime 编译目标是 uni 对象,内部不允许直接使用 uni\r\n\r\n deviceWidth = windowWidth;\r\n deviceDPR = pixelRatio;\r\n isIOS = platform === 'ios';\r\n}\r\n\r\nfunction upx2px (number, newDeviceWidth) {\r\n if (deviceWidth === 0) {\r\n checkDeviceWidth();\r\n }\r\n\r\n number = Number(number);\r\n if (number === 0) {\r\n return 0\r\n }\r\n let result = (number / BASE_DEVICE_WIDTH) * (newDeviceWidth || deviceWidth);\r\n if (result < 0) {\r\n result = -result;\r\n }\r\n result = Math.floor(result + EPS);\r\n if (result === 0) {\r\n if (deviceDPR === 1 || !isIOS) {\r\n result = 1;\r\n } else {\r\n result = 0.5;\r\n }\r\n }\r\n return number < 0 ? -result : result\r\n}\r\n\r\nconst LOCALE_ZH_HANS = 'zh-Hans';\r\nconst LOCALE_ZH_HANT = 'zh-Hant';\r\nconst LOCALE_EN = 'en';\r\nconst LOCALE_FR = 'fr';\r\nconst LOCALE_ES = 'es';\r\n\r\nconst messages = {};\r\n\r\nlet locale;\r\n\r\n{\r\n locale = normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN;\r\n}\r\n\r\nfunction initI18nMessages () {\r\n if (!isEnableLocale()) {\r\n return\r\n }\r\n const localeKeys = Object.keys(__uniConfig.locales);\r\n if (localeKeys.length) {\r\n localeKeys.forEach((locale) => {\r\n const curMessages = messages[locale];\r\n const userMessages = __uniConfig.locales[locale];\r\n if (curMessages) {\r\n Object.assign(curMessages, userMessages);\r\n } else {\r\n messages[locale] = userMessages;\r\n }\r\n });\r\n }\r\n}\r\n\r\ninitI18nMessages();\r\n\r\nconst i18n = initVueI18n(\r\n locale,\r\n {}\r\n);\r\nconst t = i18n.t;\r\nconst i18nMixin = (i18n.mixin = {\r\n beforeCreate () {\r\n const unwatch = i18n.i18n.watchLocale(() => {\r\n this.$forceUpdate();\r\n });\r\n this.$once('hook:beforeDestroy', function () {\r\n unwatch();\r\n });\r\n },\r\n methods: {\r\n $$t (key, values) {\r\n return t(key, values)\r\n }\r\n }\r\n});\r\nconst setLocale = i18n.setLocale;\r\nconst getLocale = i18n.getLocale;\r\n\r\nfunction initAppLocale (Vue, appVm, locale) {\r\n const state = Vue.observable({\r\n locale: locale || i18n.getLocale()\r\n });\r\n const localeWatchers = [];\r\n appVm.$watchLocale = fn => {\r\n localeWatchers.push(fn);\r\n };\r\n Object.defineProperty(appVm, '$locale', {\r\n get () {\r\n return state.locale\r\n },\r\n set (v) {\r\n state.locale = v;\r\n localeWatchers.forEach(watch => watch(v));\r\n }\r\n });\r\n}\r\n\r\nfunction isEnableLocale () {\r\n return typeof __uniConfig !== 'undefined' && __uniConfig.locales && !!Object.keys(__uniConfig.locales).length\r\n}\r\n\r\nfunction include (str, parts) {\r\n return !!parts.find((part) => str.indexOf(part) !== -1)\r\n}\r\n\r\nfunction startsWith (str, parts) {\r\n return parts.find((part) => str.indexOf(part) === 0)\r\n}\r\n\r\nfunction normalizeLocale (locale, messages) {\r\n if (!locale) {\r\n return\r\n }\r\n locale = locale.trim().replace(/_/g, '-');\r\n if (messages && messages[locale]) {\r\n return locale\r\n }\r\n locale = locale.toLowerCase();\r\n if (locale === 'chinese') {\r\n // 支付宝\r\n return LOCALE_ZH_HANS\r\n }\r\n if (locale.indexOf('zh') === 0) {\r\n if (locale.indexOf('-hans') > -1) {\r\n return LOCALE_ZH_HANS\r\n }\r\n if (locale.indexOf('-hant') > -1) {\r\n return LOCALE_ZH_HANT\r\n }\r\n if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) {\r\n return LOCALE_ZH_HANT\r\n }\r\n return LOCALE_ZH_HANS\r\n }\r\n const lang = startsWith(locale, [LOCALE_EN, LOCALE_FR, LOCALE_ES]);\r\n if (lang) {\r\n return lang\r\n }\r\n}\r\n// export function initI18n() {\r\n// const localeKeys = Object.keys(__uniConfig.locales || {})\r\n// if (localeKeys.length) {\r\n// localeKeys.forEach((locale) =>\r\n// i18n.add(locale, __uniConfig.locales[locale])\r\n// )\r\n// }\r\n// }\r\n\r\nfunction getLocale$1 () {\r\n // 优先使用 $locale\r\n if (isFn(getApp)) {\r\n const app = getApp({\r\n allowDefault: true\r\n });\r\n if (app && app.$vm) {\r\n return app.$vm.$locale\r\n }\r\n }\r\n return normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN\r\n}\r\n\r\nfunction setLocale$1 (locale) {\r\n const app = isFn(getApp) ? getApp() : false;\r\n if (!app) {\r\n return false\r\n }\r\n const oldLocale = app.$vm.$locale;\r\n if (oldLocale !== locale) {\r\n app.$vm.$locale = locale;\r\n onLocaleChangeCallbacks.forEach((fn) => fn({\r\n locale\r\n }));\r\n return true\r\n }\r\n return false\r\n}\r\n\r\nconst onLocaleChangeCallbacks = [];\r\nfunction onLocaleChange (fn) {\r\n if (onLocaleChangeCallbacks.indexOf(fn) === -1) {\r\n onLocaleChangeCallbacks.push(fn);\r\n }\r\n}\r\n\r\nif (typeof global !== 'undefined') {\r\n global.getLocale = getLocale$1;\r\n}\r\n\r\nconst interceptors = {\r\n promiseInterceptor\r\n};\r\n\r\nvar baseApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n upx2px: upx2px,\r\n getLocale: getLocale$1,\r\n setLocale: setLocale$1,\r\n onLocaleChange: onLocaleChange,\r\n addInterceptor: addInterceptor,\r\n removeInterceptor: removeInterceptor,\r\n interceptors: interceptors\r\n});\r\n\r\nfunction findExistsPageIndex (url) {\r\n const pages = getCurrentPages();\r\n let len = pages.length;\r\n while (len--) {\r\n const page = pages[len];\r\n if (page.$page && page.$page.fullPath === url) {\r\n return len\r\n }\r\n }\r\n return -1\r\n}\r\n\r\nvar redirectTo = {\r\n name (fromArgs) {\r\n if (fromArgs.exists === 'back' && fromArgs.delta) {\r\n return 'navigateBack'\r\n }\r\n return 'redirectTo'\r\n },\r\n args (fromArgs) {\r\n if (fromArgs.exists === 'back' && fromArgs.url) {\r\n const existsPageIndex = findExistsPageIndex(fromArgs.url);\r\n if (existsPageIndex !== -1) {\r\n const delta = getCurrentPages().length - 1 - existsPageIndex;\r\n if (delta > 0) {\r\n fromArgs.delta = delta;\r\n }\r\n }\r\n }\r\n }\r\n};\r\n\r\nvar previewImage = {\r\n args (fromArgs) {\r\n let currentIndex = parseInt(fromArgs.current);\r\n if (isNaN(currentIndex)) {\r\n return\r\n }\r\n const urls = fromArgs.urls;\r\n if (!Array.isArray(urls)) {\r\n return\r\n }\r\n const len = urls.length;\r\n if (!len) {\r\n return\r\n }\r\n if (currentIndex < 0) {\r\n currentIndex = 0;\r\n } else if (currentIndex >= len) {\r\n currentIndex = len - 1;\r\n }\r\n if (currentIndex > 0) {\r\n fromArgs.current = urls[currentIndex];\r\n fromArgs.urls = urls.filter(\r\n (item, index) => index < currentIndex ? item !== urls[currentIndex] : true\r\n );\r\n } else {\r\n fromArgs.current = urls[0];\r\n }\r\n return {\r\n indicator: false,\r\n loop: false\r\n }\r\n }\r\n};\r\n\r\nconst UUID_KEY = '__DC_STAT_UUID';\r\nlet deviceId;\r\nfunction useDeviceId (result) {\r\n deviceId = deviceId || wx.getStorageSync(UUID_KEY);\r\n if (!deviceId) {\r\n deviceId = Date.now() + '' + Math.floor(Math.random() * 1e7);\r\n wx.setStorage({\r\n key: UUID_KEY,\r\n data: deviceId\r\n });\r\n }\r\n result.deviceId = deviceId;\r\n}\r\n\r\nfunction addSafeAreaInsets (result) {\r\n if (result.safeArea) {\r\n const safeArea = result.safeArea;\r\n result.safeAreaInsets = {\r\n top: safeArea.top,\r\n left: safeArea.left,\r\n right: result.windowWidth - safeArea.right,\r\n bottom: result.screenHeight - safeArea.bottom\r\n };\r\n }\r\n}\r\n\r\nfunction populateParameters (result) {\r\n const {\r\n brand = '', model = '', system = '',\r\n language = '', theme, version,\r\n platform, fontSizeSetting,\r\n SDKVersion, pixelRatio, deviceOrientation\r\n } = result;\r\n // const isQuickApp = \"mp-weixin\".indexOf('quickapp-webview') !== -1\r\n\r\n const extraParam = {};\r\n\r\n // osName osVersion\r\n let osName = '';\r\n let osVersion = '';\r\n {\r\n osName = system.split(' ')[0] || '';\r\n osVersion = system.split(' ')[1] || '';\r\n }\r\n let hostVersion = version;\r\n\r\n // deviceType\r\n const deviceType = getGetDeviceType(result, model);\r\n\r\n // deviceModel\r\n const deviceBrand = getDeviceBrand(brand);\r\n\r\n // hostName\r\n const _hostName = getHostName(result);\r\n\r\n // deviceOrientation\r\n let _deviceOrientation = deviceOrientation; // 仅 微信 百度 支持\r\n\r\n // devicePixelRatio\r\n let _devicePixelRatio = pixelRatio;\r\n\r\n // SDKVersion\r\n let _SDKVersion = SDKVersion;\r\n\r\n // hostLanguage\r\n const hostLanguage = language.replace(/_/g, '-');\r\n\r\n // wx.getAccountInfoSync\r\n\r\n const parameters = {\r\n appId: process.env.UNI_APP_ID,\r\n appName: process.env.UNI_APP_NAME,\r\n appVersion: process.env.UNI_APP_VERSION_NAME,\r\n appVersionCode: process.env.UNI_APP_VERSION_CODE,\r\n appLanguage: getAppLanguage(hostLanguage),\r\n uniCompileVersion: process.env.UNI_COMPILER_VERSION,\r\n uniRuntimeVersion: process.env.UNI_COMPILER_VERSION,\r\n uniPlatform: process.env.UNI_SUB_PLATFORM || process.env.UNI_PLATFORM,\r\n deviceBrand,\r\n deviceModel: model,\r\n deviceType,\r\n devicePixelRatio: _devicePixelRatio,\r\n deviceOrientation: _deviceOrientation,\r\n osName: osName.toLocaleLowerCase(),\r\n osVersion,\r\n hostTheme: theme,\r\n hostVersion,\r\n hostLanguage,\r\n hostName: _hostName,\r\n hostSDKVersion: _SDKVersion,\r\n hostFontSizeSetting: fontSizeSetting,\r\n windowTop: 0,\r\n windowBottom: 0,\r\n // TODO\r\n osLanguage: undefined,\r\n osTheme: undefined,\r\n ua: undefined,\r\n hostPackageName: undefined,\r\n browserName: undefined,\r\n browserVersion: undefined\r\n };\r\n\r\n Object.assign(result, parameters, extraParam);\r\n}\r\n\r\nfunction getGetDeviceType (result, model) {\r\n let deviceType = result.deviceType || 'phone';\r\n {\r\n const deviceTypeMaps = {\r\n ipad: 'pad',\r\n windows: 'pc',\r\n mac: 'pc'\r\n };\r\n const deviceTypeMapsKeys = Object.keys(deviceTypeMaps);\r\n const _model = model.toLocaleLowerCase();\r\n for (let index = 0; index < deviceTypeMapsKeys.length; index++) {\r\n const _m = deviceTypeMapsKeys[index];\r\n if (_model.indexOf(_m) !== -1) {\r\n deviceType = deviceTypeMaps[_m];\r\n break\r\n }\r\n }\r\n }\r\n return deviceType\r\n}\r\n\r\nfunction getDeviceBrand (brand) {\r\n let deviceBrand = brand;\r\n if (deviceBrand) {\r\n deviceBrand = brand.toLocaleLowerCase();\r\n }\r\n return deviceBrand\r\n}\r\n\r\nfunction getAppLanguage (defaultLanguage) {\r\n return getLocale$1\r\n ? getLocale$1()\r\n : defaultLanguage\r\n}\r\n\r\nfunction getHostName (result) {\r\n const _platform = 'WeChat' ;\r\n let _hostName = result.hostName || _platform; // mp-jd\r\n {\r\n if (result.environment) {\r\n _hostName = result.environment;\r\n } else if (result.host && result.host.env) {\r\n _hostName = result.host.env;\r\n }\r\n }\r\n\r\n return _hostName\r\n}\r\n\r\nvar getSystemInfo = {\r\n returnValue: function (result) {\r\n useDeviceId(result);\r\n addSafeAreaInsets(result);\r\n populateParameters(result);\r\n }\r\n};\r\n\r\nvar showActionSheet = {\r\n args (fromArgs) {\r\n if (typeof fromArgs === 'object') {\r\n fromArgs.alertText = fromArgs.title;\r\n }\r\n }\r\n};\r\n\r\nvar getAppBaseInfo = {\r\n returnValue: function (result) {\r\n const { version, language, SDKVersion, theme } = result;\r\n\r\n const _hostName = getHostName(result);\r\n\r\n const hostLanguage = language.replace('_', '-');\r\n\r\n result = sortObject(Object.assign(result, {\r\n appId: process.env.UNI_APP_ID,\r\n appName: process.env.UNI_APP_NAME,\r\n appVersion: process.env.UNI_APP_VERSION_NAME,\r\n appVersionCode: process.env.UNI_APP_VERSION_CODE,\r\n appLanguage: getAppLanguage(hostLanguage),\r\n hostVersion: version,\r\n hostLanguage,\r\n hostName: _hostName,\r\n hostSDKVersion: SDKVersion,\r\n hostTheme: theme\r\n }));\r\n }\r\n};\r\n\r\nvar getDeviceInfo = {\r\n returnValue: function (result) {\r\n const { brand, model } = result;\r\n const deviceType = getGetDeviceType(result, model);\r\n const deviceBrand = getDeviceBrand(brand);\r\n useDeviceId(result);\r\n\r\n result = sortObject(Object.assign(result, {\r\n deviceType,\r\n deviceBrand,\r\n deviceModel: model\r\n }));\r\n }\r\n};\r\n\r\nvar getWindowInfo = {\r\n returnValue: function (result) {\r\n addSafeAreaInsets(result);\r\n\r\n result = sortObject(Object.assign(result, {\r\n windowTop: 0,\r\n windowBottom: 0\r\n }));\r\n }\r\n};\r\n\r\nvar getAppAuthorizeSetting = {\r\n returnValue: function (result) {\r\n const { locationReducedAccuracy } = result;\r\n\r\n result.locationAccuracy = 'unsupported';\r\n if (locationReducedAccuracy === true) {\r\n result.locationAccuracy = 'reduced';\r\n } else if (locationReducedAccuracy === false) {\r\n result.locationAccuracy = 'full';\r\n }\r\n }\r\n};\r\n\r\n// import navigateTo from 'uni-helpers/navigate-to'\r\n\r\nconst compressImage = {\r\n args (fromArgs) {\r\n // https://developers.weixin.qq.com/community/develop/doc/000c08940c865011298e0a43256800?highLine=compressHeight\r\n if (fromArgs.compressedHeight && !fromArgs.compressHeight) {\r\n fromArgs.compressHeight = fromArgs.compressedHeight;\r\n }\r\n if (fromArgs.compressedWidth && !fromArgs.compressWidth) {\r\n fromArgs.compressWidth = fromArgs.compressedWidth;\r\n }\r\n }\r\n};\r\n\r\nconst protocols = {\r\n redirectTo,\r\n // navigateTo, // 由于在微信开发者工具的页面参数,会显示__id__参数,因此暂时关闭mp-weixin对于navigateTo的AOP\r\n previewImage,\r\n getSystemInfo,\r\n getSystemInfoSync: getSystemInfo,\r\n showActionSheet,\r\n getAppBaseInfo,\r\n getDeviceInfo,\r\n getWindowInfo,\r\n getAppAuthorizeSetting,\r\n compressImage\r\n};\r\nconst todos = [\r\n 'vibrate',\r\n 'preloadPage',\r\n 'unPreloadPage',\r\n 'loadSubPackage'\r\n];\r\nconst canIUses = [];\r\n\r\nconst CALLBACKS = ['success', 'fail', 'cancel', 'complete'];\r\n\r\nfunction processCallback (methodName, method, returnValue) {\r\n return function (res) {\r\n return method(processReturnValue(methodName, res, returnValue))\r\n }\r\n}\r\n\r\nfunction processArgs (methodName, fromArgs, argsOption = {}, returnValue = {}, keepFromArgs = false) {\r\n if (isPlainObject(fromArgs)) { // 一般 api 的参数解析\r\n const toArgs = keepFromArgs === true ? fromArgs : {}; // returnValue 为 false 时,说明是格式化返回值,直接在返回值对象上修改赋值\r\n if (isFn(argsOption)) {\r\n argsOption = argsOption(fromArgs, toArgs) || {};\r\n }\r\n for (const key in fromArgs) {\r\n if (hasOwn(argsOption, key)) {\r\n let keyOption = argsOption[key];\r\n if (isFn(keyOption)) {\r\n keyOption = keyOption(fromArgs[key], fromArgs, toArgs);\r\n }\r\n if (!keyOption) { // 不支持的参数\r\n console.warn(`The '${methodName}' method of platform '微信小程序' does not support option '${key}'`);\r\n } else if (isStr(keyOption)) { // 重写参数 key\r\n toArgs[keyOption] = fromArgs[key];\r\n } else if (isPlainObject(keyOption)) { // {name:newName,value:value}可重新指定参数 key:value\r\n toArgs[keyOption.name ? keyOption.name : key] = keyOption.value;\r\n }\r\n } else if (CALLBACKS.indexOf(key) !== -1) {\r\n if (isFn(fromArgs[key])) {\r\n toArgs[key] = processCallback(methodName, fromArgs[key], returnValue);\r\n }\r\n } else {\r\n if (!keepFromArgs) {\r\n toArgs[key] = fromArgs[key];\r\n }\r\n }\r\n }\r\n return toArgs\r\n } else if (isFn(fromArgs)) {\r\n fromArgs = processCallback(methodName, fromArgs, returnValue);\r\n }\r\n return fromArgs\r\n}\r\n\r\nfunction processReturnValue (methodName, res, returnValue, keepReturnValue = false) {\r\n if (isFn(protocols.returnValue)) { // 处理通用 returnValue\r\n res = protocols.returnValue(methodName, res);\r\n }\r\n return processArgs(methodName, res, returnValue, {}, keepReturnValue)\r\n}\r\n\r\nfunction wrapper (methodName, method) {\r\n if (hasOwn(protocols, methodName)) {\r\n const protocol = protocols[methodName];\r\n if (!protocol) { // 暂不支持的 api\r\n return function () {\r\n console.error(`Platform '微信小程序' does not support '${methodName}'.`);\r\n }\r\n }\r\n return function (arg1, arg2) { // 目前 api 最多两个参数\r\n let options = protocol;\r\n if (isFn(protocol)) {\r\n options = protocol(arg1);\r\n }\r\n\r\n arg1 = processArgs(methodName, arg1, options.args, options.returnValue);\r\n\r\n const args = [arg1];\r\n if (typeof arg2 !== 'undefined') {\r\n args.push(arg2);\r\n }\r\n if (isFn(options.name)) {\r\n methodName = options.name(arg1);\r\n } else if (isStr(options.name)) {\r\n methodName = options.name;\r\n }\r\n const returnValue = wx[methodName].apply(wx, args);\r\n if (isSyncApi(methodName)) { // 同步 api\r\n return processReturnValue(methodName, returnValue, options.returnValue, isContextApi(methodName))\r\n }\r\n return returnValue\r\n }\r\n }\r\n return method\r\n}\r\n\r\nconst todoApis = Object.create(null);\r\n\r\nconst TODOS = [\r\n 'onTabBarMidButtonTap',\r\n 'subscribePush',\r\n 'unsubscribePush',\r\n 'onPush',\r\n 'offPush',\r\n 'share'\r\n];\r\n\r\nfunction createTodoApi (name) {\r\n return function todoApi ({\r\n fail,\r\n complete\r\n }) {\r\n const res = {\r\n errMsg: `${name}:fail method '${name}' not supported`\r\n };\r\n isFn(fail) && fail(res);\r\n isFn(complete) && complete(res);\r\n }\r\n}\r\n\r\nTODOS.forEach(function (name) {\r\n todoApis[name] = createTodoApi(name);\r\n});\r\n\r\nvar providers = {\r\n oauth: ['weixin'],\r\n share: ['weixin'],\r\n payment: ['wxpay'],\r\n push: ['weixin']\r\n};\r\n\r\nfunction getProvider ({\r\n service,\r\n success,\r\n fail,\r\n complete\r\n}) {\r\n let res = false;\r\n if (providers[service]) {\r\n res = {\r\n errMsg: 'getProvider:ok',\r\n service,\r\n provider: providers[service]\r\n };\r\n isFn(success) && success(res);\r\n } else {\r\n res = {\r\n errMsg: 'getProvider:fail service not found'\r\n };\r\n isFn(fail) && fail(res);\r\n }\r\n isFn(complete) && complete(res);\r\n}\r\n\r\nvar extraApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n getProvider: getProvider\r\n});\r\n\r\nconst getEmitter = (function () {\r\n let Emitter;\r\n return function getUniEmitter () {\r\n if (!Emitter) {\r\n Emitter = new Vue();\r\n }\r\n return Emitter\r\n }\r\n})();\r\n\r\nfunction apply (ctx, method, args) {\r\n return ctx[method].apply(ctx, args)\r\n}\r\n\r\nfunction $on () {\r\n return apply(getEmitter(), '$on', [...arguments])\r\n}\r\nfunction $off () {\r\n return apply(getEmitter(), '$off', [...arguments])\r\n}\r\nfunction $once () {\r\n return apply(getEmitter(), '$once', [...arguments])\r\n}\r\nfunction $emit () {\r\n return apply(getEmitter(), '$emit', [...arguments])\r\n}\r\n\r\nvar eventApi = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n $on: $on,\r\n $off: $off,\r\n $once: $once,\r\n $emit: $emit\r\n});\r\n\r\n/**\r\n * 框架内 try-catch\r\n */\r\n/**\r\n * 开发者 try-catch\r\n */\r\nfunction tryCatch (fn) {\r\n return function () {\r\n try {\r\n return fn.apply(fn, arguments)\r\n } catch (e) {\r\n // TODO\r\n console.error(e);\r\n }\r\n }\r\n}\r\n\r\nfunction getApiCallbacks (params) {\r\n const apiCallbacks = {};\r\n for (const name in params) {\r\n const param = params[name];\r\n if (isFn(param)) {\r\n apiCallbacks[name] = tryCatch(param);\r\n delete params[name];\r\n }\r\n }\r\n return apiCallbacks\r\n}\r\n\r\nlet cid;\r\nlet cidErrMsg;\r\nlet enabled;\r\n\r\nfunction normalizePushMessage (message) {\r\n try {\r\n return JSON.parse(message)\r\n } catch (e) {}\r\n return message\r\n}\r\n\r\nfunction invokePushCallback (\r\n args\r\n) {\r\n if (args.type === 'enabled') {\r\n enabled = true;\r\n } else if (args.type === 'clientId') {\r\n cid = args.cid;\r\n cidErrMsg = args.errMsg;\r\n invokeGetPushCidCallbacks(cid, args.errMsg);\r\n } else if (args.type === 'pushMsg') {\r\n const message = {\r\n type: 'receive',\r\n data: normalizePushMessage(args.message)\r\n };\r\n for (let i = 0; i < onPushMessageCallbacks.length; i++) {\r\n const callback = onPushMessageCallbacks[i];\r\n callback(message);\r\n // 该消息已被阻止\r\n if (message.stopped) {\r\n break\r\n }\r\n }\r\n } else if (args.type === 'click') {\r\n onPushMessageCallbacks.forEach((callback) => {\r\n callback({\r\n type: 'click',\r\n data: normalizePushMessage(args.message)\r\n });\r\n });\r\n }\r\n}\r\n\r\nconst getPushCidCallbacks = [];\r\n\r\nfunction invokeGetPushCidCallbacks (cid, errMsg) {\r\n getPushCidCallbacks.forEach((callback) => {\r\n callback(cid, errMsg);\r\n });\r\n getPushCidCallbacks.length = 0;\r\n}\r\n\r\nfunction getPushClientId (args) {\r\n if (!isPlainObject(args)) {\r\n args = {};\r\n }\r\n const {\r\n success,\r\n fail,\r\n complete\r\n } = getApiCallbacks(args);\r\n const hasSuccess = isFn(success);\r\n const hasFail = isFn(fail);\r\n const hasComplete = isFn(complete);\r\n\r\n Promise.resolve().then(() => {\r\n if (typeof enabled === 'undefined') {\r\n enabled = false;\r\n cid = '';\r\n cidErrMsg = 'uniPush is not enabled';\r\n }\r\n getPushCidCallbacks.push((cid, errMsg) => {\r\n let res;\r\n if (cid) {\r\n res = {\r\n errMsg: 'getPushClientId:ok',\r\n cid\r\n };\r\n hasSuccess && success(res);\r\n } else {\r\n res = {\r\n errMsg: 'getPushClientId:fail' + (errMsg ? ' ' + errMsg : '')\r\n };\r\n hasFail && fail(res);\r\n }\r\n hasComplete && complete(res);\r\n });\r\n if (typeof cid !== 'undefined') {\r\n invokeGetPushCidCallbacks(cid, cidErrMsg);\r\n }\r\n });\r\n}\r\n\r\nconst onPushMessageCallbacks = [];\r\n// 不使用 defineOnApi 实现,是因为 defineOnApi 依赖 UniServiceJSBridge ,该对象目前在小程序上未提供,故简单实现\r\nconst onPushMessage = (fn) => {\r\n if (onPushMessageCallbacks.indexOf(fn) === -1) {\r\n onPushMessageCallbacks.push(fn);\r\n }\r\n};\r\n\r\nconst offPushMessage = (fn) => {\r\n if (!fn) {\r\n onPushMessageCallbacks.length = 0;\r\n } else {\r\n const index = onPushMessageCallbacks.indexOf(fn);\r\n if (index > -1) {\r\n onPushMessageCallbacks.splice(index, 1);\r\n }\r\n }\r\n};\r\n\r\nlet baseInfo = wx.getAppBaseInfo && wx.getAppBaseInfo();\r\nif (!baseInfo) {\r\n baseInfo = wx.getSystemInfoSync();\r\n}\r\nconst host = baseInfo ? baseInfo.host : null;\r\nconst shareVideoMessage =\r\n host && host.env === 'SAAASDK' ? wx.miniapp.shareVideoMessage : wx.shareVideoMessage;\r\n\r\nvar api = /*#__PURE__*/Object.freeze({\r\n __proto__: null,\r\n shareVideoMessage: shareVideoMessage,\r\n getPushClientId: getPushClientId,\r\n onPushMessage: onPushMessage,\r\n offPushMessage: offPushMessage,\r\n invokePushCallback: invokePushCallback\r\n});\r\n\r\nconst mocks = ['__route__', '__wxExparserNodeId__', '__wxWebviewId__'];\r\n\r\nfunction findVmByVueId (vm, vuePid) {\r\n const $children = vm.$children;\r\n // 优先查找直属(反向查找:https://github.com/dcloudio/uni-app/issues/1200)\r\n for (let i = $children.length - 1; i >= 0; i--) {\r\n const childVm = $children[i];\r\n if (childVm.$scope._$vueId === vuePid) {\r\n return childVm\r\n }\r\n }\r\n // 反向递归查找\r\n let parentVm;\r\n for (let i = $children.length - 1; i >= 0; i--) {\r\n parentVm = findVmByVueId($children[i], vuePid);\r\n if (parentVm) {\r\n return parentVm\r\n }\r\n }\r\n}\r\n\r\nfunction initBehavior (options) {\r\n return Behavior(options)\r\n}\r\n\r\nfunction isPage () {\r\n return !!this.route\r\n}\r\n\r\nfunction initRelation (detail) {\r\n this.triggerEvent('__l', detail);\r\n}\r\n\r\nfunction selectAllComponents (mpInstance, selector, $refs) {\r\n const components = mpInstance.selectAllComponents(selector) || [];\r\n components.forEach(component => {\r\n const ref = component.dataset.ref;\r\n $refs[ref] = component.$vm || toSkip(component);\r\n {\r\n if (component.dataset.vueGeneric === 'scoped') {\r\n component.selectAllComponents('.scoped-ref').forEach(scopedComponent => {\r\n selectAllComponents(scopedComponent, selector, $refs);\r\n });\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction syncRefs (refs, newRefs) {\r\n const oldKeys = new Set(...Object.keys(refs));\r\n const newKeys = Object.keys(newRefs);\r\n newKeys.forEach(key => {\r\n const oldValue = refs[key];\r\n const newValue = newRefs[key];\r\n if (Array.isArray(oldValue) && Array.isArray(newValue) && oldValue.length === newValue.length && newValue.every(value => oldValue.includes(value))) {\r\n return\r\n }\r\n refs[key] = newValue;\r\n oldKeys.delete(key);\r\n });\r\n oldKeys.forEach(key => {\r\n delete refs[key];\r\n });\r\n return refs\r\n}\r\n\r\nfunction initRefs (vm) {\r\n const mpInstance = vm.$scope;\r\n const refs = {};\r\n Object.defineProperty(vm, '$refs', {\r\n get () {\r\n const $refs = {};\r\n selectAllComponents(mpInstance, '.vue-ref', $refs);\r\n // TODO 暂不考虑 for 中的 scoped\r\n const forComponents = mpInstance.selectAllComponents('.vue-ref-in-for') || [];\r\n forComponents.forEach(component => {\r\n const ref = component.dataset.ref;\r\n if (!$refs[ref]) {\r\n $refs[ref] = [];\r\n }\r\n $refs[ref].push(component.$vm || toSkip(component));\r\n });\r\n return syncRefs(refs, $refs)\r\n }\r\n });\r\n}\r\n\r\nfunction handleLink (event) {\r\n const {\r\n vuePid,\r\n vueOptions\r\n } = event.detail || event.value; // detail 是微信,value 是百度(dipatch)\r\n\r\n let parentVm;\r\n\r\n if (vuePid) {\r\n parentVm = findVmByVueId(this.$vm, vuePid);\r\n }\r\n\r\n if (!parentVm) {\r\n parentVm = this.$vm;\r\n }\r\n\r\n vueOptions.parent = parentVm;\r\n}\r\n\r\nfunction markMPComponent (component) {\r\n // 在 Vue 中标记为小程序组件\r\n const IS_MP = '__v_isMPComponent';\r\n Object.defineProperty(component, IS_MP, {\r\n configurable: true,\r\n enumerable: false,\r\n value: true\r\n });\r\n return component\r\n}\r\n\r\nfunction toSkip (obj) {\r\n const OB = '__ob__';\r\n const SKIP = '__v_skip';\r\n if (isObject(obj) && Object.isExtensible(obj)) {\r\n // 避免被 @vue/composition-api 观测\r\n Object.defineProperty(obj, OB, {\r\n configurable: true,\r\n enumerable: false,\r\n value: {\r\n [SKIP]: true\r\n }\r\n });\r\n }\r\n return obj\r\n}\r\n\r\nconst WORKLET_RE = /_(.*)_worklet_factory_/;\r\nfunction initWorkletMethods (mpMethods, vueMethods) {\r\n if (vueMethods) {\r\n Object.keys(vueMethods).forEach((name) => {\r\n const matches = name.match(WORKLET_RE);\r\n if (matches) {\r\n const workletName = matches[1];\r\n mpMethods[name] = vueMethods[name];\r\n mpMethods[workletName] = vueMethods[workletName];\r\n }\r\n });\r\n }\r\n}\r\n\r\nconst MPPage = Page;\r\nconst MPComponent = Component;\r\n\r\nconst customizeRE = /:/g;\r\n\r\nconst customize = cached((str) => {\r\n return camelize(str.replace(customizeRE, '-'))\r\n});\r\n\r\nfunction initTriggerEvent (mpInstance) {\r\n const oldTriggerEvent = mpInstance.triggerEvent;\r\n const newTriggerEvent = function (event, ...args) {\r\n // 事件名统一转驼峰格式,仅处理:当前组件为 vue 组件、当前组件为 vue 组件子组件\r\n if (this.$vm || (this.dataset && this.dataset.comType)) {\r\n event = customize(event);\r\n } else {\r\n // 针对微信/QQ小程序单独补充驼峰格式事件,以兼容历史项目\r\n const newEvent = customize(event);\r\n if (newEvent !== event) {\r\n oldTriggerEvent.apply(this, [newEvent, ...args]);\r\n }\r\n }\r\n return oldTriggerEvent.apply(this, [event, ...args])\r\n };\r\n try {\r\n // 京东小程序 triggerEvent 为只读\r\n mpInstance.triggerEvent = newTriggerEvent;\r\n } catch (error) {\r\n mpInstance._triggerEvent = newTriggerEvent;\r\n }\r\n}\r\n\r\nfunction initHook (name, options, isComponent) {\r\n const oldHook = options[name];\r\n options[name] = function (...args) {\r\n markMPComponent(this);\r\n initTriggerEvent(this);\r\n if (oldHook) {\r\n return oldHook.apply(this, args)\r\n }\r\n };\r\n}\r\nif (!MPPage.__$wrappered) {\r\n MPPage.__$wrappered = true;\r\n Page = function (options = {}) {\r\n initHook('onLoad', options);\r\n return MPPage(options)\r\n };\r\n Page.after = MPPage.after;\r\n\r\n Component = function (options = {}) {\r\n initHook('created', options);\r\n return MPComponent(options)\r\n };\r\n}\r\n\r\nconst PAGE_EVENT_HOOKS = [\r\n 'onPullDownRefresh',\r\n 'onReachBottom',\r\n 'onAddToFavorites',\r\n 'onShareTimeline',\r\n 'onShareAppMessage',\r\n 'onPageScroll',\r\n 'onResize',\r\n 'onTabItemTap'\r\n];\r\n\r\nfunction initMocks (vm, mocks) {\r\n const mpInstance = vm.$mp[vm.mpType];\r\n mocks.forEach(mock => {\r\n if (hasOwn(mpInstance, mock)) {\r\n vm[mock] = mpInstance[mock];\r\n }\r\n });\r\n}\r\n\r\nfunction hasHook (hook, vueOptions) {\r\n if (!vueOptions) {\r\n return true\r\n }\r\n\r\n if (Vue.options && Array.isArray(Vue.options[hook])) {\r\n return true\r\n }\r\n\r\n vueOptions = vueOptions.default || vueOptions;\r\n\r\n if (isFn(vueOptions)) {\r\n if (isFn(vueOptions.extendOptions[hook])) {\r\n return true\r\n }\r\n if (vueOptions.super &&\r\n vueOptions.super.options &&\r\n Array.isArray(vueOptions.super.options[hook])) {\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n if (isFn(vueOptions[hook]) || Array.isArray(vueOptions[hook])) {\r\n return true\r\n }\r\n const mixins = vueOptions.mixins;\r\n if (Array.isArray(mixins)) {\r\n return !!mixins.find(mixin => hasHook(hook, mixin))\r\n }\r\n}\r\n\r\nfunction initHooks (mpOptions, hooks, vueOptions) {\r\n hooks.forEach(hook => {\r\n if (hasHook(hook, vueOptions)) {\r\n mpOptions[hook] = function (args) {\r\n return this.$vm && this.$vm.__call_hook(hook, args)\r\n };\r\n }\r\n });\r\n}\r\n\r\nfunction initUnknownHooks (mpOptions, vueOptions, excludes = []) {\r\n findHooks(vueOptions).forEach((hook) => initHook$1(mpOptions, hook, excludes));\r\n}\r\n\r\nfunction findHooks (vueOptions, hooks = []) {\r\n if (vueOptions) {\r\n Object.keys(vueOptions).forEach((name) => {\r\n if (name.indexOf('on') === 0 && isFn(vueOptions[name])) {\r\n hooks.push(name);\r\n }\r\n });\r\n }\r\n return hooks\r\n}\r\n\r\nfunction initHook$1 (mpOptions, hook, excludes) {\r\n if (excludes.indexOf(hook) === -1 && !hasOwn(mpOptions, hook)) {\r\n mpOptions[hook] = function (args) {\r\n return this.$vm && this.$vm.__call_hook(hook, args)\r\n };\r\n }\r\n}\r\n\r\nfunction initVueComponent (Vue, vueOptions) {\r\n vueOptions = vueOptions.default || vueOptions;\r\n let VueComponent;\r\n if (isFn(vueOptions)) {\r\n VueComponent = vueOptions;\r\n } else {\r\n VueComponent = Vue.extend(vueOptions);\r\n }\r\n vueOptions = VueComponent.options;\r\n return [VueComponent, vueOptions]\r\n}\r\n\r\nfunction initSlots (vm, vueSlots) {\r\n if (Array.isArray(vueSlots) && vueSlots.length) {\r\n const $slots = Object.create(null);\r\n vueSlots.forEach(slotName => {\r\n $slots[slotName] = true;\r\n });\r\n vm.$scopedSlots = vm.$slots = $slots;\r\n }\r\n}\r\n\r\nfunction initVueIds (vueIds, mpInstance) {\r\n vueIds = (vueIds || '').split(',');\r\n const len = vueIds.length;\r\n\r\n if (len === 1) {\r\n mpInstance._$vueId = vueIds[0];\r\n } else if (len === 2) {\r\n mpInstance._$vueId = vueIds[0];\r\n mpInstance._$vuePid = vueIds[1];\r\n }\r\n}\r\n\r\nfunction initData (vueOptions, context) {\r\n let data = vueOptions.data || {};\r\n const methods = vueOptions.methods || {};\r\n\r\n if (typeof data === 'function') {\r\n try {\r\n data = data.call(context); // 支持 Vue.prototype 上挂的数据\r\n } catch (e) {\r\n if (process.env.VUE_APP_DEBUG) {\r\n console.warn('根据 Vue 的 data 函数初始化小程序 data 失败,请尽量确保 data 函数中不访问 vm 对象,否则可能影响首次数据渲染速度。', data);\r\n }\r\n }\r\n } else {\r\n try {\r\n // 对 data 格式化\r\n data = JSON.parse(JSON.stringify(data));\r\n } catch (e) { }\r\n }\r\n\r\n if (!isPlainObject(data)) {\r\n data = {};\r\n }\r\n\r\n Object.keys(methods).forEach(methodName => {\r\n if (context.__lifecycle_hooks__.indexOf(methodName) === -1 && !hasOwn(data, methodName)) {\r\n data[methodName] = methods[methodName];\r\n }\r\n });\r\n\r\n return data\r\n}\r\n\r\nconst PROP_TYPES = [String, Number, Boolean, Object, Array, null];\r\n\r\nfunction createObserver (name) {\r\n return function observer (newVal, oldVal) {\r\n if (this.$vm) {\r\n this.$vm[name] = newVal; // 为了触发其他非 render watcher\r\n }\r\n }\r\n}\r\n\r\nfunction initBehaviors (vueOptions, initBehavior) {\r\n const vueBehaviors = vueOptions.behaviors;\r\n const vueExtends = vueOptions.extends;\r\n const vueMixins = vueOptions.mixins;\r\n\r\n let vueProps = vueOptions.props;\r\n\r\n if (!vueProps) {\r\n vueOptions.props = vueProps = [];\r\n }\r\n\r\n const behaviors = [];\r\n if (Array.isArray(vueBehaviors)) {\r\n vueBehaviors.forEach(behavior => {\r\n behaviors.push(behavior.replace('uni://', `${\"wx\"}://`));\r\n if (behavior === 'uni://form-field') {\r\n if (Array.isArray(vueProps)) {\r\n vueProps.push('name');\r\n vueProps.push('value');\r\n } else {\r\n vueProps.name = {\r\n type: String,\r\n default: ''\r\n };\r\n vueProps.value = {\r\n type: [String, Number, Boolean, Array, Object, Date],\r\n default: ''\r\n };\r\n }\r\n }\r\n });\r\n }\r\n if (isPlainObject(vueExtends) && vueExtends.props) {\r\n behaviors.push(\r\n initBehavior({\r\n properties: initProperties(vueExtends.props, true)\r\n })\r\n );\r\n }\r\n if (Array.isArray(vueMixins)) {\r\n vueMixins.forEach(vueMixin => {\r\n if (isPlainObject(vueMixin) && vueMixin.props) {\r\n behaviors.push(\r\n initBehavior({\r\n properties: initProperties(vueMixin.props, true)\r\n })\r\n );\r\n }\r\n });\r\n }\r\n return behaviors\r\n}\r\n\r\nfunction parsePropType (key, type, defaultValue, file) {\r\n // [String]=>String\r\n if (Array.isArray(type) && type.length === 1) {\r\n return type[0]\r\n }\r\n return type\r\n}\r\n\r\nfunction initProperties (props, isBehavior = false, file = '', options) {\r\n const properties = {};\r\n if (!isBehavior) {\r\n properties.vueId = {\r\n type: String,\r\n value: ''\r\n };\r\n {\r\n if ( options.virtualHost) {\r\n properties.virtualHostStyle = {\r\n type: null,\r\n value: ''\r\n };\r\n properties.virtualHostClass = {\r\n type: null,\r\n value: ''\r\n };\r\n }\r\n }\r\n // scopedSlotsCompiler auto\r\n properties.scopedSlotsCompiler = {\r\n type: String,\r\n value: ''\r\n };\r\n properties.vueSlots = { // 小程序不能直接定义 $slots 的 props,所以通过 vueSlots 转换到 $slots\r\n type: null,\r\n value: [],\r\n observer: function (newVal, oldVal) {\r\n const $slots = Object.create(null);\r\n newVal.forEach(slotName => {\r\n $slots[slotName] = true;\r\n });\r\n this.setData({\r\n $slots\r\n });\r\n }\r\n };\r\n }\r\n if (Array.isArray(props)) { // ['title']\r\n props.forEach(key => {\r\n properties[key] = {\r\n type: null,\r\n observer: createObserver(key)\r\n };\r\n });\r\n } else if (isPlainObject(props)) { // {title:{type:String,default:''},content:String}\r\n Object.keys(props).forEach(key => {\r\n const opts = props[key];\r\n if (isPlainObject(opts)) { // title:{type:String,default:''}\r\n let value = opts.default;\r\n if (isFn(value)) {\r\n value = value();\r\n }\r\n\r\n opts.type = parsePropType(key, opts.type);\r\n\r\n properties[key] = {\r\n type: PROP_TYPES.indexOf(opts.type) !== -1 ? opts.type : null,\r\n value,\r\n observer: createObserver(key)\r\n };\r\n } else { // content:String\r\n const type = parsePropType(key, opts);\r\n properties[key] = {\r\n type: PROP_TYPES.indexOf(type) !== -1 ? type : null,\r\n observer: createObserver(key)\r\n };\r\n }\r\n });\r\n }\r\n return properties\r\n}\r\n\r\nfunction wrapper$1 (event) {\r\n // TODO 又得兼容 mpvue 的 mp 对象\r\n try {\r\n event.mp = JSON.parse(JSON.stringify(event));\r\n } catch (e) { }\r\n\r\n event.stopPropagation = noop;\r\n event.preventDefault = noop;\r\n\r\n event.target = event.target || {};\r\n\r\n if (!hasOwn(event, 'detail')) {\r\n event.detail = {};\r\n }\r\n\r\n if (hasOwn(event, 'markerId')) {\r\n event.detail = typeof event.detail === 'object' ? event.detail : {};\r\n event.detail.markerId = event.markerId;\r\n }\r\n\r\n if (isPlainObject(event.detail)) {\r\n event.target = Object.assign({}, event.target, event.detail);\r\n }\r\n\r\n return event\r\n}\r\n\r\nfunction getExtraValue (vm, dataPathsArray) {\r\n let context = vm;\r\n dataPathsArray.forEach(dataPathArray => {\r\n const dataPath = dataPathArray[0];\r\n const value = dataPathArray[2];\r\n if (dataPath || typeof value !== 'undefined') { // ['','',index,'disable']\r\n const propPath = dataPathArray[1];\r\n const valuePath = dataPathArray[3];\r\n\r\n let vFor;\r\n if (Number.isInteger(dataPath)) {\r\n vFor = dataPath;\r\n } else if (!dataPath) {\r\n vFor = context;\r\n } else if (typeof dataPath === 'string' && dataPath) {\r\n if (dataPath.indexOf('#s#') === 0) {\r\n vFor = dataPath.substr(3);\r\n } else {\r\n vFor = vm.__get_value(dataPath, context);\r\n }\r\n }\r\n\r\n if (Number.isInteger(vFor)) {\r\n context = value;\r\n } else if (!propPath) {\r\n context = vFor[value];\r\n } else {\r\n if (Array.isArray(vFor)) {\r\n context = vFor.find(vForItem => {\r\n return vm.__get_value(propPath, vForItem) === value\r\n });\r\n } else if (isPlainObject(vFor)) {\r\n context = Object.keys(vFor).find(vForKey => {\r\n return vm.__get_value(propPath, vFor[vForKey]) === value\r\n });\r\n } else {\r\n console.error('v-for 暂不支持循环数据:', vFor);\r\n }\r\n }\r\n\r\n if (valuePath) {\r\n context = vm.__get_value(valuePath, context);\r\n }\r\n }\r\n });\r\n return context\r\n}\r\n\r\nfunction processEventExtra (vm, extra, event, __args__) {\r\n const extraObj = {};\r\n\r\n if (Array.isArray(extra) && extra.length) {\r\n /**\r\n *[\r\n * ['data.items', 'data.id', item.data.id],\r\n * ['metas', 'id', meta.id]\r\n *],\r\n *[\r\n * ['data.items', 'data.id', item.data.id],\r\n * ['metas', 'id', meta.id]\r\n *],\r\n *'test'\r\n */\r\n extra.forEach((dataPath, index) => {\r\n if (typeof dataPath === 'string') {\r\n if (!dataPath) { // model,prop.sync\r\n extraObj['$' + index] = vm;\r\n } else {\r\n if (dataPath === '$event') { // $event\r\n extraObj['$' + index] = event;\r\n } else if (dataPath === 'arguments') {\r\n extraObj['$' + index] = event.detail ? event.detail.__args__ || __args__ : __args__;\r\n } else if (dataPath.indexOf('$event.') === 0) { // $event.target.value\r\n extraObj['$' + index] = vm.__get_value(dataPath.replace('$event.', ''), event);\r\n } else {\r\n extraObj['$' + index] = vm.__get_value(dataPath);\r\n }\r\n }\r\n } else {\r\n extraObj['$' + index] = getExtraValue(vm, dataPath);\r\n }\r\n });\r\n }\r\n\r\n return extraObj\r\n}\r\n\r\nfunction getObjByArray (arr) {\r\n const obj = {};\r\n for (let i = 1; i < arr.length; i++) {\r\n const element = arr[i];\r\n obj[element[0]] = element[1];\r\n }\r\n return obj\r\n}\r\n\r\nfunction processEventArgs (vm, event, args = [], extra = [], isCustom, methodName) {\r\n let isCustomMPEvent = false; // wxcomponent 组件,传递原始 event 对象\r\n\r\n // fixed 用户直接触发 mpInstance.triggerEvent\r\n const __args__ = isPlainObject(event.detail)\r\n ? event.detail.__args__ || [event.detail]\r\n : [event.detail];\r\n\r\n if (isCustom) { // 自定义事件\r\n isCustomMPEvent = event.currentTarget &&\r\n event.currentTarget.dataset &&\r\n event.currentTarget.dataset.comType === 'wx';\r\n if (!args.length) { // 无参数,直接传入 event 或 detail 数组\r\n if (isCustomMPEvent) {\r\n return [event]\r\n }\r\n return __args__\r\n }\r\n }\r\n\r\n const extraObj = processEventExtra(vm, extra, event, __args__);\r\n\r\n const ret = [];\r\n args.forEach(arg => {\r\n if (arg === '$event') {\r\n if (methodName === '__set_model' && !isCustom) { // input v-model value\r\n ret.push(event.target.value);\r\n } else {\r\n if (isCustom && !isCustomMPEvent) {\r\n ret.push(__args__[0]);\r\n } else { // wxcomponent 组件或内置组件\r\n ret.push(event);\r\n }\r\n }\r\n } else {\r\n if (Array.isArray(arg) && arg[0] === 'o') {\r\n ret.push(getObjByArray(arg));\r\n } else if (typeof arg === 'string' && hasOwn(extraObj, arg)) {\r\n ret.push(extraObj[arg]);\r\n } else {\r\n ret.push(arg);\r\n }\r\n }\r\n });\r\n\r\n return ret\r\n}\r\n\r\nconst ONCE = '~';\r\nconst CUSTOM = '^';\r\n\r\nfunction isMatchEventType (eventType, optType) {\r\n return (eventType === optType) ||\r\n (\r\n optType === 'regionchange' &&\r\n (\r\n eventType === 'begin' ||\r\n eventType === 'end'\r\n )\r\n )\r\n}\r\n\r\nfunction getContextVm (vm) {\r\n let $parent = vm.$parent;\r\n // 父组件是 scoped slots 或者其他自定义组件时继续查找\r\n while ($parent && $parent.$parent && ($parent.$options.generic || $parent.$parent.$options.generic || $parent.$scope._$vuePid)) {\r\n $parent = $parent.$parent;\r\n }\r\n return $parent && $parent.$parent\r\n}\r\n\r\nfunction handleEvent (event) {\r\n event = wrapper$1(event);\r\n\r\n // [['tap',[['handle',[1,2,a]],['handle1',[1,2,a]]]]]\r\n const dataset = (event.currentTarget || event.target).dataset;\r\n if (!dataset) {\r\n return console.warn('事件信息不存在')\r\n }\r\n const eventOpts = dataset.eventOpts || dataset['event-opts']; // 支付宝 web-view 组件 dataset 非驼峰\r\n if (!eventOpts) {\r\n return console.warn('事件信息不存在')\r\n }\r\n\r\n // [['handle',[1,2,a]],['handle1',[1,2,a]]]\r\n const eventType = event.type;\r\n\r\n const ret = [];\r\n\r\n eventOpts.forEach(eventOpt => {\r\n let type = eventOpt[0];\r\n const eventsArray = eventOpt[1];\r\n\r\n const isCustom = type.charAt(0) === CUSTOM;\r\n type = isCustom ? type.slice(1) : type;\r\n const isOnce = type.charAt(0) === ONCE;\r\n type = isOnce ? type.slice(1) : type;\r\n\r\n if (eventsArray && isMatchEventType(eventType, type)) {\r\n eventsArray.forEach(eventArray => {\r\n const methodName = eventArray[0];\r\n if (methodName) {\r\n let handlerCtx = this.$vm;\r\n if (handlerCtx.$options.generic) { // mp-weixin,mp-toutiao 抽象节点模拟 scoped slots\r\n handlerCtx = getContextVm(handlerCtx) || handlerCtx;\r\n }\r\n if (methodName === '$emit') {\r\n handlerCtx.$emit.apply(handlerCtx,\r\n processEventArgs(\r\n this.$vm,\r\n event,\r\n eventArray[1],\r\n eventArray[2],\r\n isCustom,\r\n methodName\r\n ));\r\n return\r\n }\r\n const handler = handlerCtx[methodName];\r\n if (!isFn(handler)) {\r\n const type = this.$vm.mpType === 'page' ? 'Page' : 'Component';\r\n const path = this.route || this.is;\r\n throw new Error(`${type} \"${path}\" does not have a method \"${methodName}\"`)\r\n }\r\n if (isOnce) {\r\n if (handler.once) {\r\n return\r\n }\r\n handler.once = true;\r\n }\r\n let params = processEventArgs(\r\n this.$vm,\r\n event,\r\n eventArray[1],\r\n eventArray[2],\r\n isCustom,\r\n methodName\r\n );\r\n params = Array.isArray(params) ? params : [];\r\n // 参数尾部增加原始事件对象用于复杂表达式内获取额外数据\r\n if (/=\\s*\\S+\\.eventParams\\s*\\|\\|\\s*\\S+\\[['\"]event-params['\"]\\]/.test(handler.toString())) {\r\n // eslint-disable-next-line no-sparse-arrays\r\n params = params.concat([, , , , , , , , , , event]);\r\n }\r\n ret.push(handler.apply(handlerCtx, params));\r\n }\r\n });\r\n }\r\n });\r\n\r\n if (\r\n eventType === 'input' &&\r\n ret.length === 1 &&\r\n typeof ret[0] !== 'undefined'\r\n ) {\r\n return ret[0]\r\n }\r\n}\r\n\r\nconst eventChannels = {};\r\n\r\nfunction getEventChannel (id) {\r\n const eventChannel = eventChannels[id];\r\n delete eventChannels[id];\r\n return eventChannel\r\n}\r\n\r\nconst hooks = [\r\n 'onShow',\r\n 'onHide',\r\n 'onError',\r\n 'onPageNotFound',\r\n 'onThemeChange',\r\n 'onUnhandledRejection'\r\n];\r\n\r\nfunction initEventChannel () {\r\n Vue.prototype.getOpenerEventChannel = function () {\r\n // 微信小程序使用自身getOpenerEventChannel\r\n {\r\n return this.$scope.getOpenerEventChannel()\r\n }\r\n };\r\n const callHook = Vue.prototype.__call_hook;\r\n Vue.prototype.__call_hook = function (hook, args) {\r\n if (hook === 'onLoad' && args && args.__id__) {\r\n this.__eventChannel__ = getEventChannel(args.__id__);\r\n delete args.__id__;\r\n }\r\n return callHook.call(this, hook, args)\r\n };\r\n}\r\n\r\nfunction initScopedSlotsParams () {\r\n const center = {};\r\n const parents = {};\r\n\r\n function currentId (fn) {\r\n const vueIds = this.$options.propsData.vueId;\r\n if (vueIds) {\r\n const vueId = vueIds.split(',')[0];\r\n fn(vueId);\r\n }\r\n }\r\n\r\n Vue.prototype.$hasSSP = function (vueId) {\r\n const slot = center[vueId];\r\n if (!slot) {\r\n parents[vueId] = this;\r\n this.$on('hook:destroyed', () => {\r\n delete parents[vueId];\r\n });\r\n }\r\n return slot\r\n };\r\n\r\n Vue.prototype.$getSSP = function (vueId, name, needAll) {\r\n const slot = center[vueId];\r\n if (slot) {\r\n const params = slot[name] || [];\r\n if (needAll) {\r\n return params\r\n }\r\n return params[0]\r\n }\r\n };\r\n\r\n Vue.prototype.$setSSP = function (name, value) {\r\n let index = 0;\r\n currentId.call(this, vueId => {\r\n const slot = center[vueId];\r\n const params = slot[name] = slot[name] || [];\r\n params.push(value);\r\n index = params.length - 1;\r\n });\r\n return index\r\n };\r\n\r\n Vue.prototype.$initSSP = function () {\r\n currentId.call(this, vueId => {\r\n center[vueId] = {};\r\n });\r\n };\r\n\r\n Vue.prototype.$callSSP = function () {\r\n currentId.call(this, vueId => {\r\n if (parents[vueId]) {\r\n parents[vueId].$forceUpdate();\r\n }\r\n });\r\n };\r\n\r\n Vue.mixin({\r\n destroyed () {\r\n const propsData = this.$options.propsData;\r\n const vueId = propsData && propsData.vueId;\r\n if (vueId) {\r\n delete center[vueId];\r\n delete parents[vueId];\r\n }\r\n }\r\n });\r\n}\r\n\r\nfunction parseBaseApp (vm, {\r\n mocks,\r\n initRefs\r\n}) {\r\n initEventChannel();\r\n {\r\n initScopedSlotsParams();\r\n }\r\n if (vm.$options.store) {\r\n Vue.prototype.$store = vm.$options.store;\r\n }\r\n uniIdMixin(Vue);\r\n\r\n Vue.prototype.mpHost = \"mp-weixin\";\r\n\r\n Vue.mixin({\r\n beforeCreate () {\r\n if (!this.$options.mpType) {\r\n return\r\n }\r\n\r\n this.mpType = this.$options.mpType;\r\n\r\n this.$mp = {\r\n data: {},\r\n [this.mpType]: this.$options.mpInstance\r\n };\r\n\r\n this.$scope = this.$options.mpInstance;\r\n\r\n delete this.$options.mpType;\r\n delete this.$options.mpInstance;\r\n if (this.mpType === 'page' && typeof getApp === 'function') { // hack vue-i18n\r\n const app = getApp();\r\n if (app.$vm && app.$vm.$i18n) {\r\n this._i18n = app.$vm.$i18n;\r\n }\r\n }\r\n if (this.mpType !== 'app') {\r\n initRefs(this);\r\n initMocks(this, mocks);\r\n }\r\n }\r\n });\r\n\r\n const appOptions = {\r\n onLaunch (args) {\r\n if (this.$vm) { // 已经初始化过了,主要是为了百度,百度 onShow 在 onLaunch 之前\r\n return\r\n }\r\n {\r\n if (wx.canIUse && !wx.canIUse('nextTick')) { // 事实 上2.2.3 即可,简单使用 2.3.0 的 nextTick 判断\r\n console.error('当前微信基础库版本过低,请将 微信开发者工具-详情-项目设置-调试基础库版本 更换为`2.3.0`以上');\r\n }\r\n }\r\n\r\n this.$vm = vm;\r\n\r\n this.$vm.$mp = {\r\n app: this\r\n };\r\n\r\n this.$vm.$scope = this;\r\n // vm 上也挂载 globalData\r\n this.$vm.globalData = this.globalData;\r\n\r\n this.$vm._isMounted = true;\r\n this.$vm.__call_hook('mounted', args);\r\n\r\n this.$vm.__call_hook('onLaunch', args);\r\n }\r\n };\r\n\r\n // 兼容旧版本 globalData\r\n appOptions.globalData = vm.$options.globalData || {};\r\n // 将 methods 中的方法挂在 getApp() 中\r\n const methods = vm.$options.methods;\r\n if (methods) {\r\n Object.keys(methods).forEach(name => {\r\n appOptions[name] = methods[name];\r\n });\r\n }\r\n\r\n initAppLocale(Vue, vm, normalizeLocale(wx.getSystemInfoSync().language) || LOCALE_EN);\r\n\r\n initHooks(appOptions, hooks);\r\n initUnknownHooks(appOptions, vm.$options);\r\n\r\n return appOptions\r\n}\r\n\r\nfunction parseApp (vm) {\r\n return parseBaseApp(vm, {\r\n mocks,\r\n initRefs\r\n })\r\n}\r\n\r\nfunction createApp (vm) {\r\n App(parseApp(vm));\r\n return vm\r\n}\r\n\r\nconst encodeReserveRE = /[!'()*]/g;\r\nconst encodeReserveReplacer = c => '%' + c.charCodeAt(0).toString(16);\r\nconst commaRE = /%2C/g;\r\n\r\n// fixed encodeURIComponent which is more conformant to RFC3986:\r\n// - escapes [!'()*]\r\n// - preserve commas\r\nconst encode = str => encodeURIComponent(str)\r\n .replace(encodeReserveRE, encodeReserveReplacer)\r\n .replace(commaRE, ',');\r\n\r\nfunction stringifyQuery (obj, encodeStr = encode) {\r\n const res = obj ? Object.keys(obj).map(key => {\r\n const val = obj[key];\r\n\r\n if (val === undefined) {\r\n return ''\r\n }\r\n\r\n if (val === null) {\r\n return encodeStr(key)\r\n }\r\n\r\n if (Array.isArray(val)) {\r\n const result = [];\r\n val.forEach(val2 => {\r\n if (val2 === undefined) {\r\n return\r\n }\r\n if (val2 === null) {\r\n result.push(encodeStr(key));\r\n } else {\r\n result.push(encodeStr(key) + '=' + encodeStr(val2));\r\n }\r\n });\r\n return result.join('&')\r\n }\r\n\r\n return encodeStr(key) + '=' + encodeStr(val)\r\n }).filter(x => x.length > 0).join('&') : null;\r\n return res ? `?${res}` : ''\r\n}\r\n\r\nfunction parseBaseComponent (vueComponentOptions, {\r\n isPage,\r\n initRelation\r\n} = {}, needVueOptions) {\r\n const [VueComponent, vueOptions] = initVueComponent(Vue, vueComponentOptions);\r\n\r\n const options = {\r\n multipleSlots: true,\r\n // styleIsolation: 'apply-shared',\r\n addGlobalClass: true,\r\n ...(vueOptions.options || {})\r\n };\r\n\r\n {\r\n // 微信 multipleSlots 部分情况有 bug,导致内容顺序错乱 如 u-list,提供覆盖选项\r\n if (vueOptions['mp-weixin'] && vueOptions['mp-weixin'].options) {\r\n Object.assign(options, vueOptions['mp-weixin'].options);\r\n }\r\n }\r\n\r\n const componentOptions = {\r\n options,\r\n data: initData(vueOptions, Vue.prototype),\r\n behaviors: initBehaviors(vueOptions, initBehavior),\r\n properties: initProperties(vueOptions.props, false, vueOptions.__file, options),\r\n lifetimes: {\r\n attached () {\r\n const properties = this.properties;\r\n\r\n const options = {\r\n mpType: isPage.call(this) ? 'page' : 'component',\r\n mpInstance: this,\r\n propsData: properties\r\n };\r\n\r\n initVueIds(properties.vueId, this);\r\n\r\n // 处理父子关系\r\n initRelation.call(this, {\r\n vuePid: this._$vuePid,\r\n vueOptions: options\r\n });\r\n\r\n // 初始化 vue 实例\r\n this.$vm = new VueComponent(options);\r\n\r\n // 处理$slots,$scopedSlots(暂不支持动态变化$slots)\r\n initSlots(this.$vm, properties.vueSlots);\r\n\r\n // 触发首次 setData\r\n this.$vm.$mount();\r\n },\r\n ready () {\r\n // 当组件 props 默认值为 true,初始化时传入 false 会导致 created,ready 触发, 但 attached 不触发\r\n // https://developers.weixin.qq.com/community/develop/doc/00066ae2844cc0f8eb883e2a557800\r\n if (this.$vm) {\r\n this.$vm._isMounted = true;\r\n this.$vm.__call_hook('mounted');\r\n this.$vm.__call_hook('onReady');\r\n }\r\n },\r\n detached () {\r\n this.$vm && this.$vm.$destroy();\r\n }\r\n },\r\n pageLifetimes: {\r\n show (args) {\r\n this.$vm && this.$vm.__call_hook('onPageShow', args);\r\n },\r\n hide () {\r\n this.$vm && this.$vm.__call_hook('onPageHide');\r\n },\r\n resize (size) {\r\n this.$vm && this.$vm.__call_hook('onPageResize', size);\r\n }\r\n },\r\n methods: {\r\n __l: handleLink,\r\n __e: handleEvent\r\n }\r\n };\r\n // externalClasses\r\n if (vueOptions.externalClasses) {\r\n componentOptions.externalClasses = vueOptions.externalClasses;\r\n }\r\n\r\n if (Array.isArray(vueOptions.wxsCallMethods)) {\r\n vueOptions.wxsCallMethods.forEach(callMethod => {\r\n componentOptions.methods[callMethod] = function (args) {\r\n return this.$vm[callMethod](args)\r\n };\r\n });\r\n }\r\n\r\n if (needVueOptions) {\r\n return [componentOptions, vueOptions, VueComponent]\r\n }\r\n if (isPage) {\r\n return componentOptions\r\n }\r\n return [componentOptions, VueComponent]\r\n}\r\n\r\nfunction parseComponent (vueComponentOptions, needVueOptions) {\r\n return parseBaseComponent(vueComponentOptions, {\r\n isPage,\r\n initRelation\r\n }, needVueOptions)\r\n}\r\n\r\nconst hooks$1 = [\r\n 'onShow',\r\n 'onHide',\r\n 'onUnload'\r\n];\r\n\r\nhooks$1.push(...PAGE_EVENT_HOOKS);\r\n\r\nfunction parseBasePage (vuePageOptions) {\r\n const [pageOptions, vueOptions] = parseComponent(vuePageOptions, true);\r\n\r\n initHooks(pageOptions.methods, hooks$1, vueOptions);\r\n\r\n pageOptions.methods.onLoad = function (query) {\r\n this.options = query;\r\n const copyQuery = Object.assign({}, query);\r\n delete copyQuery.__id__;\r\n this.$page = {\r\n fullPath: '/' + (this.route || this.is) + stringifyQuery(copyQuery)\r\n };\r\n this.$vm.$mp.query = query; // 兼容 mpvue\r\n this.$vm.__call_hook('onLoad', query);\r\n };\r\n {\r\n initUnknownHooks(pageOptions.methods, vuePageOptions, ['onReady']);\r\n }\r\n {\r\n initWorkletMethods(pageOptions.methods, vueOptions.methods);\r\n }\r\n\r\n return pageOptions\r\n}\r\n\r\nfunction parsePage (vuePageOptions) {\r\n return parseBasePage(vuePageOptions)\r\n}\r\n\r\nfunction createPage (vuePageOptions) {\r\n {\r\n return Component(parsePage(vuePageOptions))\r\n }\r\n}\r\n\r\nfunction createComponent (vueOptions) {\r\n {\r\n return Component(parseComponent(vueOptions))\r\n }\r\n}\r\n\r\nfunction createSubpackageApp (vm) {\r\n const appOptions = parseApp(vm);\r\n const app = getApp({\r\n allowDefault: true\r\n });\r\n vm.$scope = app;\r\n const globalData = app.globalData;\r\n if (globalData) {\r\n Object.keys(appOptions.globalData).forEach(name => {\r\n if (!hasOwn(globalData, name)) {\r\n globalData[name] = appOptions.globalData[name];\r\n }\r\n });\r\n }\r\n Object.keys(appOptions).forEach(name => {\r\n if (!hasOwn(app, name)) {\r\n app[name] = appOptions[name];\r\n }\r\n });\r\n if (isFn(appOptions.onShow) && wx.onAppShow) {\r\n wx.onAppShow((...args) => {\r\n vm.__call_hook('onShow', args);\r\n });\r\n }\r\n if (isFn(appOptions.onHide) && wx.onAppHide) {\r\n wx.onAppHide((...args) => {\r\n vm.__call_hook('onHide', args);\r\n });\r\n }\r\n if (isFn(appOptions.onLaunch)) {\r\n const args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync();\r\n vm.__call_hook('onLaunch', args);\r\n }\r\n return vm\r\n}\r\n\r\nfunction createPlugin (vm) {\r\n const appOptions = parseApp(vm);\r\n if (isFn(appOptions.onShow) && wx.onAppShow) {\r\n wx.onAppShow((...args) => {\r\n vm.__call_hook('onShow', args);\r\n });\r\n }\r\n if (isFn(appOptions.onHide) && wx.onAppHide) {\r\n wx.onAppHide((...args) => {\r\n vm.__call_hook('onHide', args);\r\n });\r\n }\r\n if (isFn(appOptions.onLaunch)) {\r\n const args = wx.getLaunchOptionsSync && wx.getLaunchOptionsSync();\r\n vm.__call_hook('onLaunch', args);\r\n }\r\n return vm\r\n}\r\n\r\ntodos.forEach(todoApi => {\r\n protocols[todoApi] = false;\r\n});\r\n\r\ncanIUses.forEach(canIUseApi => {\r\n const apiName = protocols[canIUseApi] && protocols[canIUseApi].name ? protocols[canIUseApi].name\r\n : canIUseApi;\r\n if (!wx.canIUse(apiName)) {\r\n protocols[canIUseApi] = false;\r\n }\r\n});\r\n\r\nlet uni = {};\r\n\r\nif (typeof Proxy !== 'undefined' && \"mp-weixin\" !== 'app-plus') {\r\n uni = new Proxy({}, {\r\n get (target, name) {\r\n if (hasOwn(target, name)) {\r\n return target[name]\r\n }\r\n if (baseApi[name]) {\r\n return baseApi[name]\r\n }\r\n if (api[name]) {\r\n return promisify(name, api[name])\r\n }\r\n {\r\n if (extraApi[name]) {\r\n return promisify(name, extraApi[name])\r\n }\r\n if (todoApis[name]) {\r\n return promisify(name, todoApis[name])\r\n }\r\n }\r\n if (eventApi[name]) {\r\n return eventApi[name]\r\n }\r\n return promisify(name, wrapper(name, wx[name]))\r\n },\r\n set (target, name, value) {\r\n target[name] = value;\r\n return true\r\n }\r\n });\r\n} else {\r\n Object.keys(baseApi).forEach(name => {\r\n uni[name] = baseApi[name];\r\n });\r\n\r\n {\r\n Object.keys(todoApis).forEach(name => {\r\n uni[name] = promisify(name, todoApis[name]);\r\n });\r\n Object.keys(extraApi).forEach(name => {\r\n uni[name] = promisify(name, extraApi[name]);\r\n });\r\n }\r\n\r\n Object.keys(eventApi).forEach(name => {\r\n uni[name] = eventApi[name];\r\n });\r\n\r\n Object.keys(api).forEach(name => {\r\n uni[name] = promisify(name, api[name]);\r\n });\r\n\r\n Object.keys(wx).forEach(name => {\r\n if (hasOwn(wx, name) || hasOwn(protocols, name)) {\r\n uni[name] = promisify(name, wrapper(name, wx[name]));\r\n }\r\n });\r\n}\r\n\r\nwx.createApp = createApp;\r\nwx.createPage = createPage;\r\nwx.createComponent = createComponent;\r\nwx.createSubpackageApp = createSubpackageApp;\r\nwx.createPlugin = createPlugin;\r\n\r\nvar uni$1 = uni;\r\n\r\nexport default uni$1;\r\nexport { createApp, createComponent, createPage, createPlugin, createSubpackageApp };\r\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableRest = require(\"./nonIterableRest.js\");\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) {\n ;\n }\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n return arr2;\n}\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nvar toPrimitive = require(\"./toPrimitive.js\");\nfunction _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\nmodule.exports = _toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(obj);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\nmodule.exports = _toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct.js\");\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct.bind(), module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n }\n return _construct.apply(null, arguments);\n}\nmodule.exports = _construct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\nvar iterableToArray = require(\"./iterableToArray.js\");\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","const isObject = (val) => val !== null && typeof val === 'object';\nconst defaultDelimiters = ['{', '}'];\nclass BaseFormatter {\n constructor() {\n this._caches = Object.create(null);\n }\n interpolate(message, values, delimiters = defaultDelimiters) {\n if (!values) {\n return [message];\n }\n let tokens = this._caches[message];\n if (!tokens) {\n tokens = parse(message, delimiters);\n this._caches[message] = tokens;\n }\n return compile(tokens, values);\n }\n}\nconst RE_TOKEN_LIST_VALUE = /^(?:\\d)+/;\nconst RE_TOKEN_NAMED_VALUE = /^(?:\\w)+/;\nfunction parse(format, [startDelimiter, endDelimiter]) {\n const tokens = [];\n let position = 0;\n let text = '';\n while (position < format.length) {\n let char = format[position++];\n if (char === startDelimiter) {\n if (text) {\n tokens.push({ type: 'text', value: text });\n }\n text = '';\n let sub = '';\n char = format[position++];\n while (char !== undefined && char !== endDelimiter) {\n sub += char;\n char = format[position++];\n }\n const isClosed = char === endDelimiter;\n const type = RE_TOKEN_LIST_VALUE.test(sub)\n ? 'list'\n : isClosed && RE_TOKEN_NAMED_VALUE.test(sub)\n ? 'named'\n : 'unknown';\n tokens.push({ value: sub, type });\n }\n // else if (char === '%') {\n // // when found rails i18n syntax, skip text capture\n // if (format[position] !== '{') {\n // text += char\n // }\n // }\n else {\n text += char;\n }\n }\n text && tokens.push({ type: 'text', value: text });\n return tokens;\n}\nfunction compile(tokens, values) {\n const compiled = [];\n let index = 0;\n const mode = Array.isArray(values)\n ? 'list'\n : isObject(values)\n ? 'named'\n : 'unknown';\n if (mode === 'unknown') {\n return compiled;\n }\n while (index < tokens.length) {\n const token = tokens[index];\n switch (token.type) {\n case 'text':\n compiled.push(token.value);\n break;\n case 'list':\n compiled.push(values[parseInt(token.value, 10)]);\n break;\n case 'named':\n if (mode === 'named') {\n compiled.push(values[token.value]);\n }\n else {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Type of token '${token.type}' and format of value '${mode}' don't match!`);\n }\n }\n break;\n case 'unknown':\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`Detect 'unknown' type of token!`);\n }\n break;\n }\n index++;\n }\n return compiled;\n}\n\nconst LOCALE_ZH_HANS = 'zh-Hans';\nconst LOCALE_ZH_HANT = 'zh-Hant';\nconst LOCALE_EN = 'en';\nconst LOCALE_FR = 'fr';\nconst LOCALE_ES = 'es';\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nconst hasOwn = (val, key) => hasOwnProperty.call(val, key);\nconst defaultFormatter = new BaseFormatter();\nfunction include(str, parts) {\n return !!parts.find((part) => str.indexOf(part) !== -1);\n}\nfunction startsWith(str, parts) {\n return parts.find((part) => str.indexOf(part) === 0);\n}\nfunction normalizeLocale(locale, messages) {\n if (!locale) {\n return;\n }\n locale = locale.trim().replace(/_/g, '-');\n if (messages && messages[locale]) {\n return locale;\n }\n locale = locale.toLowerCase();\n if (locale === 'chinese') {\n // 支付宝\n return LOCALE_ZH_HANS;\n }\n if (locale.indexOf('zh') === 0) {\n if (locale.indexOf('-hans') > -1) {\n return LOCALE_ZH_HANS;\n }\n if (locale.indexOf('-hant') > -1) {\n return LOCALE_ZH_HANT;\n }\n if (include(locale, ['-tw', '-hk', '-mo', '-cht'])) {\n return LOCALE_ZH_HANT;\n }\n return LOCALE_ZH_HANS;\n }\n let locales = [LOCALE_EN, LOCALE_FR, LOCALE_ES];\n if (messages && Object.keys(messages).length > 0) {\n locales = Object.keys(messages);\n }\n const lang = startsWith(locale, locales);\n if (lang) {\n return lang;\n }\n}\nclass I18n {\n constructor({ locale, fallbackLocale, messages, watcher, formater, }) {\n this.locale = LOCALE_EN;\n this.fallbackLocale = LOCALE_EN;\n this.message = {};\n this.messages = {};\n this.watchers = [];\n if (fallbackLocale) {\n this.fallbackLocale = fallbackLocale;\n }\n this.formater = formater || defaultFormatter;\n this.messages = messages || {};\n this.setLocale(locale || LOCALE_EN);\n if (watcher) {\n this.watchLocale(watcher);\n }\n }\n setLocale(locale) {\n const oldLocale = this.locale;\n this.locale = normalizeLocale(locale, this.messages) || this.fallbackLocale;\n if (!this.messages[this.locale]) {\n // 可能初始化时不存在\n this.messages[this.locale] = {};\n }\n this.message = this.messages[this.locale];\n // 仅发生变化时,通知\n if (oldLocale !== this.locale) {\n this.watchers.forEach((watcher) => {\n watcher(this.locale, oldLocale);\n });\n }\n }\n getLocale() {\n return this.locale;\n }\n watchLocale(fn) {\n const index = this.watchers.push(fn) - 1;\n return () => {\n this.watchers.splice(index, 1);\n };\n }\n add(locale, message, override = true) {\n const curMessages = this.messages[locale];\n if (curMessages) {\n if (override) {\n Object.assign(curMessages, message);\n }\n else {\n Object.keys(message).forEach((key) => {\n if (!hasOwn(curMessages, key)) {\n curMessages[key] = message[key];\n }\n });\n }\n }\n else {\n this.messages[locale] = message;\n }\n }\n f(message, values, delimiters) {\n return this.formater.interpolate(message, values, delimiters).join('');\n }\n t(key, locale, values) {\n let message = this.message;\n if (typeof locale === 'string') {\n locale = normalizeLocale(locale, this.messages);\n locale && (message = this.messages[locale]);\n }\n else {\n values = locale;\n }\n if (!hasOwn(message, key)) {\n console.warn(`Cannot translate the value of keypath ${key}. Use the value of keypath as default.`);\n return key;\n }\n return this.formater.interpolate(message[key], values).join('');\n }\n}\n\nfunction watchAppLocale(appVm, i18n) {\n // 需要保证 watch 的触发在组件渲染之前\n if (appVm.$watchLocale) {\n // vue2\n appVm.$watchLocale((newLocale) => {\n i18n.setLocale(newLocale);\n });\n }\n else {\n appVm.$watch(() => appVm.$locale, (newLocale) => {\n i18n.setLocale(newLocale);\n });\n }\n}\nfunction getDefaultLocale() {\n if (typeof uni !== 'undefined' && uni.getLocale) {\n return uni.getLocale();\n }\n // 小程序平台,uni 和 uni-i18n 互相引用,导致访问不到 uni,故在 global 上挂了 getLocale\n if (typeof global !== 'undefined' && global.getLocale) {\n return global.getLocale();\n }\n return LOCALE_EN;\n}\nfunction initVueI18n(locale, messages = {}, fallbackLocale, watcher) {\n // 兼容旧版本入参\n if (typeof locale !== 'string') {\n [locale, messages] = [\n messages,\n locale,\n ];\n }\n if (typeof locale !== 'string') {\n // 因为小程序平台,uni-i18n 和 uni 互相引用,导致此时访问 uni 时,为 undefined\n locale = getDefaultLocale();\n }\n if (typeof fallbackLocale !== 'string') {\n fallbackLocale =\n (typeof __uniConfig !== 'undefined' && __uniConfig.fallbackLocale) ||\n LOCALE_EN;\n }\n const i18n = new I18n({\n locale,\n fallbackLocale,\n messages,\n watcher,\n });\n let t = (key, values) => {\n if (typeof getApp !== 'function') {\n // app view\n /* eslint-disable no-func-assign */\n t = function (key, values) {\n return i18n.t(key, values);\n };\n }\n else {\n let isWatchedAppLocale = false;\n t = function (key, values) {\n const appVm = getApp().$vm;\n // 可能$vm还不存在,比如在支付宝小程序中,组件定义较早,在props的default里使用了t()函数(如uni-goods-nav),此时app还未初始化\n // options: {\n // \ttype: Array,\n // \tdefault () {\n // \t\treturn [{\n // \t\t\ticon: 'shop',\n // \t\t\ttext: t(\"uni-goods-nav.options.shop\"),\n // \t\t}, {\n // \t\t\ticon: 'cart',\n // \t\t\ttext: t(\"uni-goods-nav.options.cart\")\n // \t\t}]\n // \t}\n // },\n if (appVm) {\n // 触发响应式\n appVm.$locale;\n if (!isWatchedAppLocale) {\n isWatchedAppLocale = true;\n watchAppLocale(appVm, i18n);\n }\n }\n return i18n.t(key, values);\n };\n }\n return t(key, values);\n };\n return {\n i18n,\n f(message, values, delimiters) {\n return i18n.f(message, values, delimiters);\n },\n t(key, values) {\n return t(key, values);\n },\n add(locale, message, override = true) {\n return i18n.add(locale, message, override);\n },\n watch(fn) {\n return i18n.watchLocale(fn);\n },\n getLocale() {\n return i18n.getLocale();\n },\n setLocale(newLocale) {\n return i18n.setLocale(newLocale);\n },\n };\n}\n\nconst isString = (val) => typeof val === 'string';\nlet formater;\nfunction hasI18nJson(jsonObj, delimiters) {\n if (!formater) {\n formater = new BaseFormatter();\n }\n return walkJsonObj(jsonObj, (jsonObj, key) => {\n const value = jsonObj[key];\n if (isString(value)) {\n if (isI18nStr(value, delimiters)) {\n return true;\n }\n }\n else {\n return hasI18nJson(value, delimiters);\n }\n });\n}\nfunction parseI18nJson(jsonObj, values, delimiters) {\n if (!formater) {\n formater = new BaseFormatter();\n }\n walkJsonObj(jsonObj, (jsonObj, key) => {\n const value = jsonObj[key];\n if (isString(value)) {\n if (isI18nStr(value, delimiters)) {\n jsonObj[key] = compileStr(value, values, delimiters);\n }\n }\n else {\n parseI18nJson(value, values, delimiters);\n }\n });\n return jsonObj;\n}\nfunction compileI18nJsonStr(jsonStr, { locale, locales, delimiters, }) {\n if (!isI18nStr(jsonStr, delimiters)) {\n return jsonStr;\n }\n if (!formater) {\n formater = new BaseFormatter();\n }\n const localeValues = [];\n Object.keys(locales).forEach((name) => {\n if (name !== locale) {\n localeValues.push({\n locale: name,\n values: locales[name],\n });\n }\n });\n localeValues.unshift({ locale, values: locales[locale] });\n try {\n return JSON.stringify(compileJsonObj(JSON.parse(jsonStr), localeValues, delimiters), null, 2);\n }\n catch (e) { }\n return jsonStr;\n}\nfunction isI18nStr(value, delimiters) {\n return value.indexOf(delimiters[0]) > -1;\n}\nfunction compileStr(value, values, delimiters) {\n return formater.interpolate(value, values, delimiters).join('');\n}\nfunction compileValue(jsonObj, key, localeValues, delimiters) {\n const value = jsonObj[key];\n if (isString(value)) {\n // 存在国际化\n if (isI18nStr(value, delimiters)) {\n jsonObj[key] = compileStr(value, localeValues[0].values, delimiters);\n if (localeValues.length > 1) {\n // 格式化国际化语言\n const valueLocales = (jsonObj[key + 'Locales'] = {});\n localeValues.forEach((localValue) => {\n valueLocales[localValue.locale] = compileStr(value, localValue.values, delimiters);\n });\n }\n }\n }\n else {\n compileJsonObj(value, localeValues, delimiters);\n }\n}\nfunction compileJsonObj(jsonObj, localeValues, delimiters) {\n walkJsonObj(jsonObj, (jsonObj, key) => {\n compileValue(jsonObj, key, localeValues, delimiters);\n });\n return jsonObj;\n}\nfunction walkJsonObj(jsonObj, walk) {\n if (Array.isArray(jsonObj)) {\n for (let i = 0; i < jsonObj.length; i++) {\n if (walk(jsonObj, i)) {\n return true;\n }\n }\n }\n else if (isObject(jsonObj)) {\n for (const key in jsonObj) {\n if (walk(jsonObj, key)) {\n return true;\n }\n }\n }\n return false;\n}\n\nfunction resolveLocale(locales) {\n return (locale) => {\n if (!locale) {\n return locale;\n }\n locale = normalizeLocale(locale) || locale;\n return resolveLocaleChain(locale).find((locale) => locales.indexOf(locale) > -1);\n };\n}\nfunction resolveLocaleChain(locale) {\n const chain = [];\n const tokens = locale.split('-');\n while (tokens.length) {\n chain.push(tokens.join('-'));\n tokens.pop();\n }\n return chain;\n}\n\nexport { BaseFormatter as Formatter, I18n, LOCALE_EN, LOCALE_ES, LOCALE_FR, LOCALE_ZH_HANS, LOCALE_ZH_HANT, compileI18nJsonStr, hasI18nJson, initVueI18n, isI18nStr, isString, normalizeLocale, parseI18nJson, resolveLocale };\n","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/*!\n * Vue.js v2.6.11\n * (c) 2014-2023 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n];\n\n/* */\n\n\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n if (vm.$options && vm.$options.__file) { // fixed by xxxxxx\n return ('') + vm.$options.__file\n }\n return ''\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm && vm.$options.name !== 'PageBody') {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n !vm.$options.isReserved && tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.SharedObject.target) {\n Dep.SharedObject.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\n// fixed by xxxxxx (nvue shared vuex)\n/* eslint-disable no-undef */\nDep.SharedObject = {};\nDep.SharedObject.target = null;\nDep.SharedObject.targetStack = [];\n\nfunction pushTarget (target) {\n Dep.SharedObject.targetStack.push(target);\n Dep.SharedObject.target = target;\n Dep.target = target;\n}\n\nfunction popTarget () {\n Dep.SharedObject.targetStack.pop();\n Dep.SharedObject.target = Dep.SharedObject.targetStack[Dep.SharedObject.targetStack.length - 1];\n Dep.target = Dep.SharedObject.target;\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(),\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n if (hasProto) {\n {// fixed by xxxxxx 微信小程序使用 plugins 之后,数组方法被直接挂载到了数组对象上,需要执行 copyAugment 逻辑\n if(value.push !== value.__proto__.push){\n copyAugment(value, arrayMethods, arrayKeys);\n } else {\n protoAugment(value, arrayMethods);\n }\n }\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue &&\n !value.__v_isMPComponent\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.SharedObject.target) { // fixed by xxxxxx\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n // #7981: for accessor properties without setter\n if (getter && !setter) { return }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__') { continue }\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (\n toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)\n ) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n if (typeof def$$1 === 'function') {\n dirs[key] = { bind: def$$1, update: def$$1 };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\n\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false)\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n if (!valid) {\n warn(\n getInvalidTypeMessage(name, value, expectedTypes),\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n var expectedValue = styleValue(value, expectedType);\n var receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += \" with value \" + expectedValue;\n }\n message += \", got \" + receivedType + \" \";\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \" + receivedValue + \".\";\n }\n return message\n}\n\nfunction styleValue (value, type) {\n if (type === 'String') {\n return (\"\\\"\" + value + \"\\\"\")\n } else if (type === 'Number') {\n return (\"\" + (Number(value)))\n } else {\n return (\"\" + value)\n }\n}\n\nfunction isExplicable (value) {\n var explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n}\n\nfunction invokeWithErrorHandling (\n handler,\n context,\n args,\n vm,\n info\n) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n // issue #9511\n // avoid catch triggering multiple times when nested calls\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n return res\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n timerFunc = function () {\n p.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Technically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\n \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://vuejs.org/v2/api/#data',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) ||\n (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns, vm) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n createOnceHandler,\n vm\n) {\n var name, def$$1, cur, old, event;\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\n/* */\n\n// fixed by xxxxxx (mp properties)\r\nfunction extractPropertiesFromVNodeData(data, Ctor, res, context) {\r\n var propOptions = Ctor.options.mpOptions && Ctor.options.mpOptions.properties;\r\n if (isUndef(propOptions)) {\r\n return res\r\n }\n var externalClasses = Ctor.options.mpOptions.externalClasses || [];\r\n var attrs = data.attrs;\n var props = data.props;\r\n if (isDef(attrs) || isDef(props)) {\r\n for (var key in propOptions) {\r\n var altKey = hyphenate(key);\n var result = checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n // externalClass\n if (\n result &&\n res[key] &&\n externalClasses.indexOf(altKey) !== -1 &&\n context[camelize(res[key])]\n ) {\n // 赋值 externalClass 真正的值(模板里 externalClass 的值可能是字符串)\n res[key] = context[camelize(res[key])];\n }\r\n }\r\n }\r\n return res\r\n}\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag,\n context// fixed by xxxxxx\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n // fixed by xxxxxx\n return extractPropertiesFromVNodeData(data, Ctor, {}, context)\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n // fixed by xxxxxx\n return extractPropertiesFromVNodeData(data, Ctor, res, context)\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g.