From bb32d46a65ffe7772a211fdab66385c2e7b17e4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=A6=86=E9=92=B1=E8=90=BD=E5=B0=BD=E6=A7=BF=E8=8A=B1?= =?UTF-8?q?=E7=A8=80?= <2675540038@qq.com> Date: Wed, 9 Jul 2025 09:13:08 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9B=E5=BB=BA=E4=BB=93=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 23 + App.vue | 168 + index.html | 21 + libs/components/demo-title.vue | 94 + libs/components/dynamic-demo-template.vue | 689 ++++ libs/components/multiple-options-demo.vue | 147 + libs/components/nav-index-button.vue | 169 + libs/mixin/dynamic_demo_mixin.js | 52 + libs/mixin/template_page_mixin.js | 60 + main.js | 30 + manifest.json | 105 + package.json | 7 + pages.json | 278 ++ pages/index/directory.vue | 489 +++ pages/index/home.vue | 808 +++++ pages/index/index.vue | 270 ++ pages/index/news.vue | 356 ++ pages/index/pizz.vue | 317 ++ pages/index/pizz_info.vue | 377 ++ pages/index/search.vue | 355 ++ pages/index/service.vue | 228 ++ pages/index/tissue.vue | 118 + pages/index/user.vue | 559 +++ pages/index/web.vue | 27 + pages/packageA/info/discovery.vue | 240 ++ pages/packageA/info/joinUs.vue | 291 ++ pages/packageA/info/policy.vue | 108 + pages/packageA/info/policy_info.vue | 91 + pages/packageA/info/policy_list.vue | 109 + pages/packageA/user/apply_in.vue | 798 +++++ pages/packageA/user/events_my.vue | 104 + pages/packageA/user/my_apply.vue | 108 + pages/packageA/user/my_card.vue | 604 ++++ pages/packageA/user/my_card_holder.vue | 98 + pages/packageA/user/my_desc.vue | 82 + pages/packageA/user/my_edit.vue | 674 ++++ pages/packageA/user/my_idea.vue | 163 + pages/packageA/user/my_invite.vue | 227 ++ pages/packageA/user/my_msg.vue | 359 ++ pages/packageA/user/my_sign.vue | 134 + pages/packageA/user/my_vip.vue | 220 ++ pages/packageA/user/my_vip_clerk.vue | 268 ++ pages/packageA/user/my_vip_info.vue | 127 + pages/packageA/user/my_vip_off.vue | 168 + pages/packageA/user/user_activity.vue | 511 +++ pages/packageA/user/user_auditing.vue | 259 ++ pages/packageA/user/user_auditing_info.vue | 330 ++ pages/packageB/ask/add.vue | 133 + pages/packageB/ask/index.vue | 169 + pages/packageB/ask/info.vue | 127 + pages/packageB/ask/user_list.vue | 153 + pages/packageB/event/event_info.vue | 617 ++++ pages/packageB/news/new_info.vue | 127 + pages/packageB/news/notice_info.vue | 116 + pages/webview.vue | 64 + static/01.png | Bin 0 -> 1072 bytes static/01_1.png | Bin 0 -> 1036 bytes static/02.png | Bin 0 -> 1584 bytes static/02_2.png | Bin 0 -> 1466 bytes static/03.png | Bin 0 -> 2330 bytes static/03_3.png | Bin 0 -> 2202 bytes static/04.png | Bin 0 -> 1639 bytes static/04_4.png | Bin 0 -> 1537 bytes static/allianceCoupon.png | Bin 0 -> 2863 bytes static/allianceMall.png | Bin 0 -> 2481 bytes static/ask_dai.png | Bin 0 -> 4549 bytes static/ask_no.png | Bin 0 -> 3955 bytes static/ask_ok.png | Bin 0 -> 4548 bytes static/b1.png | Bin 0 -> 1739 bytes static/book.png | Bin 0 -> 727 bytes static/c1.png | Bin 0 -> 523 bytes static/c1455.png | Bin 0 -> 547 bytes static/c2.png | Bin 0 -> 630 bytes static/c3.png | Bin 0 -> 1974 bytes static/characterIntroductionGg.png | Bin 0 -> 377442 bytes static/css/components/demo_page_common.scss | 193 ++ static/css/my.scss | 241 ++ static/css/templatePage/custom_nav_bar.scss | 38 + static/da.png | Bin 0 -> 1070 bytes static/def.png | Bin 0 -> 6816 bytes static/diverseYouth.png | Bin 0 -> 6840 bytes static/h1.png | Bin 0 -> 2308 bytes static/h2.png | Bin 0 -> 2700 bytes static/h3.png | Bin 0 -> 2280 bytes static/h4.png | Bin 0 -> 4000 bytes static/h_back.png | Bin 0 -> 1952 bytes static/hqzc.png | Bin 0 -> 1413 bytes static/hqzc_f.png | Bin 0 -> 51205 bytes static/ico1.png | Bin 0 -> 2447 bytes static/ico10.png | Bin 0 -> 3009 bytes static/ico11.png | Bin 0 -> 3538 bytes static/ico12.png | Bin 0 -> 2526 bytes static/ico13.png | Bin 0 -> 2200 bytes static/ico16.png | Bin 0 -> 8334 bytes static/ico2.png | Bin 0 -> 2839 bytes static/ico3.png | Bin 0 -> 3061 bytes static/ico4.png | Bin 0 -> 2331 bytes static/ico5.png | Bin 0 -> 2810 bytes static/ico6.png | Bin 0 -> 2188 bytes static/ico8.png | Bin 0 -> 2629 bytes static/ico9.png | Bin 0 -> 2346 bytes static/icon100.png | Bin 0 -> 1408 bytes static/icon13.png | Bin 0 -> 1000 bytes static/icon14.png | Bin 0 -> 607 bytes static/icon15.png | Bin 0 -> 1715 bytes static/jj.png | Bin 0 -> 7074 bytes static/joinus.png | Bin 0 -> 3892 bytes static/lunhua.jpg | Bin 0 -> 143344 bytes static/man.png | Bin 0 -> 48142 bytes static/messageSupply.png | Bin 0 -> 2611 bytes static/notice_icon.png | Bin 0 -> 3695 bytes static/personLogoBg.png | Bin 0 -> 36753 bytes static/pic.png | Bin 0 -> 1133 bytes static/right.png | Bin 0 -> 872 bytes static/sh.png | Bin 0 -> 6742 bytes static/t1.png | Bin 0 -> 2416 bytes static/t2.png | Bin 0 -> 2075 bytes static/tg.png | Bin 0 -> 6863 bytes static/tiwen.png | Bin 0 -> 6572 bytes static/vip.png | Bin 0 -> 1176 bytes static/w_back.png | Bin 0 -> 1815 bytes static/weman.png | Bin 0 -> 59120 bytes static/wen.png | Bin 0 -> 694 bytes static/zixingche.jpg | Bin 0 -> 26096 bytes store/$tn.mixin.js | 28 + store/index.js | 85 + template.h5.html | 30 + tuniao-ui/README.md | 4 + .../tn-action-sheet/tn-action-sheet.vue | 206 ++ .../tn-avatar-group/tn-avatar-group.vue | 95 + tuniao-ui/components/tn-avatar/tn-avatar.vue | 298 ++ tuniao-ui/components/tn-badge/tn-badge.vue | 173 + tuniao-ui/components/tn-button/tn-button.vue | 348 ++ .../components/tn-calendar/tn-calendar.vue | 707 ++++ .../tn-car-keyboard/tn-car-keyboard.vue | 320 ++ .../tn-cascade-selection.vue | 654 ++++ .../tn-checkbox-group/tn-checkbox-group.vue | 134 + .../components/tn-checkbox/tn-checkbox.vue | 328 ++ .../tn-circle-progress/tn-circle-progress.vue | 223 ++ .../tn-collapse-item/tn-collapse-item.vue | 236 ++ .../components/tn-collapse/tn-collapse.vue | 98 + .../tn-color-icon/tn-color-icon.vue | 318 ++ .../tn-column-notice/tn-column-notice.vue | 241 ++ .../tn-count-down/tn-count-down.vue | 314 ++ .../tn-count-scroll/tn-count-scroll.vue | 171 + .../components/tn-count-to/tn-count-to.vue | 231 ++ tuniao-ui/components/tn-cropper/index.wxs | 332 ++ .../components/tn-cropper/tn-cropper.vue | 574 ++++ .../tn-custom-swiper-item/index.wxs | 288 ++ .../tn-custom-swiper-item.vue | 277 ++ .../tn-custom-swiper/tn-custom-swiper.vue | 535 +++ tuniao-ui/components/tn-drag/index.wxs | 265 ++ tuniao-ui/components/tn-drag/tn-drag.vue | 278 ++ tuniao-ui/components/tn-empty/tn-empty.vue | 190 + tuniao-ui/components/tn-fab/tn-fab.vue | 523 +++ .../components/tn-form-item/tn-form-item.vue | 457 +++ tuniao-ui/components/tn-form/tn-form.vue | 139 + .../components/tn-goods-nav/tn-goods-nav.vue | 382 ++ .../components/tn-grid-item/tn-grid-item.vue | 104 + tuniao-ui/components/tn-grid/tn-grid.vue | 111 + .../tn-image-upload-drag.vue | 996 ++++++ .../tn-image-upload/tn-image-upload.vue | 695 ++++ .../tn-index-anchor/tn-index-anchor.vue | 90 + .../tn-index-list/tn-index-list.vue | 361 ++ tuniao-ui/components/tn-input/tn-input.vue | 447 +++ .../components/tn-keyboard/tn-keyboard.vue | 220 ++ .../components/tn-landscape/tn-landscape.vue | 225 ++ .../components/tn-lazy-load/tn-lazy-load.vue | 254 ++ .../tn-line-progress/tn-line-progress.vue | 143 + .../components/tn-list-cell/tn-list-cell.vue | 209 ++ .../components/tn-list-view/tn-list-view.vue | 184 + .../components/tn-load-more/tn-load-more.vue | 188 + .../components/tn-loading/tn-loading.vue | 114 + tuniao-ui/components/tn-modal/tn-modal.vue | 246 ++ .../components/tn-nav-bar/tn-nav-bar.vue | 355 ++ .../tn-notice-bar/tn-notice-bar.vue | 171 + .../tn-number-box/tn-number-box.vue | 401 +++ .../tn-number-keyboard/tn-number-keyboard.vue | 182 + tuniao-ui/components/tn-picker/tn-picker.vue | 727 ++++ tuniao-ui/components/tn-popup/tn-popup.vue | 492 +++ .../tn-radio-group/tn-radio-group.vue | 124 + tuniao-ui/components/tn-radio/tn-radio.vue | 276 ++ tuniao-ui/components/tn-rate/tn-rate.vue | 325 ++ .../components/tn-read-more/tn-read-more.vue | 222 ++ .../tn-row-notice/tn-row-notice.vue | 301 ++ .../tn-scroll-list/tn-scroll-list.vue | 177 + .../tn-scroll-view/tn-scroll-view.vue | 401 +++ tuniao-ui/components/tn-select/tn-select.vue | 428 +++ .../tn-sign-board/tn-sign-board.vue | 690 ++++ .../components/tn-skeleton/tn-skeleton.vue | 254 ++ tuniao-ui/components/tn-slider/tn-slider.vue | 255 ++ .../components/tn-stack-swiper/index-h5.wxs | 657 ++++ .../components/tn-stack-swiper/index.wxs | 657 ++++ .../tn-stack-swiper/tn-stack-swiper.vue | 284 ++ tuniao-ui/components/tn-steps/tn-steps.vue | 346 ++ tuniao-ui/components/tn-sticky/tn-sticky.vue | 186 + .../tn-subsection/tn-subsection.vue | 414 +++ .../components/tn-swipe-action-item/index.wxs | 230 ++ .../tn-swipe-action-item.vue | 215 ++ .../tn-swipe-action/tn-swipe-action.vue | 61 + tuniao-ui/components/tn-swiper/tn-swiper.vue | 364 ++ tuniao-ui/components/tn-switch/tn-switch.vue | 241 ++ tuniao-ui/components/tn-tabbar/tn-tabbar.vue | 554 +++ tuniao-ui/components/tn-table/tn-table.vue | 100 + .../tn-tabs-swiper/tn-tabs-swiper.vue | 444 +++ tuniao-ui/components/tn-tabs/tn-tabs.vue | 348 ++ tuniao-ui/components/tn-tag/tn-tag.vue | 223 ++ tuniao-ui/components/tn-td/tn-td.vue | 307 ++ .../tn-time-line-item/tn-time-line-item.vue | 71 + .../tn-time-line-item.vue_bk | 71 + .../components/tn-time-line/tn-time-line.vue | 39 + .../tn-time-line/tn-time-line.vue_bk | 39 + tuniao-ui/components/tn-tips/tn-tips.vue | 240 ++ tuniao-ui/components/tn-toast/tn-toast.vue | 227 ++ tuniao-ui/components/tn-tr/tn-tr.vue | 210 ++ .../components/tn-tree-node/tn-tree-node.vue | 143 + .../components/tn-tree-view/tn-tree-view.vue | 50 + .../tn-verification-code-input.vue | 324 ++ .../tn-verification-code.vue | 149 + .../components/tn-waterfall/tn-waterfall.vue | 165 + tuniao-ui/iconfont.css | 3061 +++++++++++++++++ tuniao-ui/index.js | 73 + tuniao-ui/index.scss | 13 + tuniao-ui/libs/config/color.js | 15 + tuniao-ui/libs/config/zIndex.js | 17 + tuniao-ui/libs/css/color.scss | 563 +++ tuniao-ui/libs/css/main.scss | 730 ++++ tuniao-ui/libs/css/style.h5.scss | 35 + tuniao-ui/libs/css/style.mp.scss | 52 + tuniao-ui/libs/function/$parent.js | 18 + tuniao-ui/libs/function/applyEven.js | 28 + tuniao-ui/libs/function/array.js | 22 + tuniao-ui/libs/function/color.js | 270 ++ tuniao-ui/libs/function/deepClone.js | 29 + tuniao-ui/libs/function/message.js | 74 + tuniao-ui/libs/function/number.js | 128 + tuniao-ui/libs/function/string.js | 69 + tuniao-ui/libs/function/test.js | 232 ++ .../libs/function/updateCustomBarInfo.js | 44 + tuniao-ui/libs/function/uuid.js | 41 + tuniao-ui/libs/luch-request/adapters/index.js | 99 + .../luch-request/core/InterceptorManager.js | 51 + tuniao-ui/libs/luch-request/core/Request.js | 200 ++ .../libs/luch-request/core/buildFullPath.js | 20 + tuniao-ui/libs/luch-request/core/defaults.js | 30 + .../libs/luch-request/core/dispatchRequest.js | 6 + .../libs/luch-request/core/mergeConfig.js | 103 + tuniao-ui/libs/luch-request/core/settle.js | 16 + .../libs/luch-request/helpers/buildURL.js | 69 + .../libs/luch-request/helpers/combineURLs.js | 14 + .../luch-request/helpers/isAbsoluteURL.js | 14 + tuniao-ui/libs/luch-request/index.d.ts | 116 + tuniao-ui/libs/luch-request/index.js | 2 + tuniao-ui/libs/luch-request/utils.js | 135 + tuniao-ui/libs/luch-request/utils/clone.js | 264 ++ tuniao-ui/libs/mixin/components_color.js | 47 + tuniao-ui/libs/mixin/mixin.js | 68 + tuniao-ui/libs/mixin/mpShare.js | 30 + tuniao-ui/libs/mixin/touch.js | 61 + tuniao-ui/libs/utils/area.js | 1 + tuniao-ui/libs/utils/async-validator.js | 1356 ++++++++ tuniao-ui/libs/utils/calendar.js | 546 +++ tuniao-ui/libs/utils/city.js | 1 + tuniao-ui/libs/utils/emitter.js | 55 + tuniao-ui/libs/utils/province.js | 1 + tuniao-ui/theme.scss | 183 + uni.promisify.adaptor.js | 10 + uni.scss | 11 + uni_modules/cc-noticeBar/changelog.md | 8 + .../components/cc-noticeBar/cc-noticeBar.vue | 94 + .../components/cc-noticeBar/notice_icon.png | Bin 0 -> 1527 bytes uni_modules/cc-noticeBar/package.json | 86 + uni_modules/cc-noticeBar/readme.md | 145 + .../jp-verification-literalness/changelog.md | 4 + .../jp-verification-literalness.vue | 170 + .../jp-verification-literalness/package.json | 85 + .../pages/index/index.vue | 38 + .../jp-verification-literalness/readme.md | 79 + uni_modules/lime-clipper/changelog.md | 56 + .../components/l-clipper/index.scss | 184 + .../components/l-clipper/l-clipper.vue | 840 +++++ .../components/l-clipper/utils.js | 248 ++ .../components/lime-clipper/lime-clipper.vue | 21 + uni_modules/lime-clipper/package.json | 76 + uni_modules/lime-clipper/readme.md | 239 ++ uni_modules/lime-clipper/static/photo.svg | 19 + uni_modules/lime-clipper/static/rotate.svg | 15 + uni_modules/lime-painter/changelog.md | 225 ++ .../components/common/relation.js | 150 + .../l-painter-image/l-painter-image.vue | 28 + .../l-painter-qrcode/l-painter-qrcode.vue | 27 + .../l-painter-text/l-painter-text.vue | 33 + .../l-painter-view/l-painter-view.vue | 34 + .../components/l-painter/l-painter.vue | 461 +++ .../lime-painter/components/l-painter/nvue.js | 214 ++ .../components/l-painter/painter.js | 1 + .../components/l-painter/props.js | 56 + .../components/l-painter/single.js | 1 + .../components/l-painter/utils.js | 368 ++ .../components/lime-painter/lime-painter.vue | 235 ++ .../lime-painter/hybrid/html/index.html | 119 + .../lime-painter/hybrid/html/painter.js | 1 + .../hybrid/html/uni.webview.1.5.3.js | 1 + uni_modules/lime-painter/package.json | 93 + uni_modules/lime-painter/parser.js | 388 +++ uni_modules/lime-painter/readme.md | 961 ++++++ uni_modules/sp-editor/changelog.md | 109 + .../components/sp-editor/color-picker.vue | 825 +++++ .../components/sp-editor/link-edit.vue | 152 + .../components/sp-editor/sp-editor.vue | 518 +++ uni_modules/sp-editor/icons/editor-icon.css | 238 ++ uni_modules/sp-editor/icons/iconfont.ttf | Bin 0 -> 11188 bytes uni_modules/sp-editor/package.json | 83 + uni_modules/sp-editor/readme.md | 11 + .../sp-editor/static/image-resize.min.js | 1 + uni_modules/sp-editor/static/quill.min.js | 8 + uni_modules/sp-editor/utils/index.js | 68 + util/api.js | 96 + util/jwexin.js | 65 + util/request.js | 71 + util/requestManager.js | 66 + util/utils.js | 136 + util/wx-sdk.js | 94 + vue.config.js | 16 + 324 files changed, 58390 insertions(+) create mode 100644 .gitignore create mode 100644 App.vue create mode 100644 index.html create mode 100644 libs/components/demo-title.vue create mode 100644 libs/components/dynamic-demo-template.vue create mode 100644 libs/components/multiple-options-demo.vue create mode 100644 libs/components/nav-index-button.vue create mode 100644 libs/mixin/dynamic_demo_mixin.js create mode 100644 libs/mixin/template_page_mixin.js create mode 100644 main.js create mode 100644 manifest.json create mode 100644 package.json create mode 100644 pages.json create mode 100644 pages/index/directory.vue create mode 100644 pages/index/home.vue create mode 100644 pages/index/index.vue create mode 100644 pages/index/news.vue create mode 100644 pages/index/pizz.vue create mode 100644 pages/index/pizz_info.vue create mode 100644 pages/index/search.vue create mode 100644 pages/index/service.vue create mode 100644 pages/index/tissue.vue create mode 100644 pages/index/user.vue create mode 100644 pages/index/web.vue create mode 100644 pages/packageA/info/discovery.vue create mode 100644 pages/packageA/info/joinUs.vue create mode 100644 pages/packageA/info/policy.vue create mode 100644 pages/packageA/info/policy_info.vue create mode 100644 pages/packageA/info/policy_list.vue create mode 100644 pages/packageA/user/apply_in.vue create mode 100644 pages/packageA/user/events_my.vue create mode 100644 pages/packageA/user/my_apply.vue create mode 100644 pages/packageA/user/my_card.vue create mode 100644 pages/packageA/user/my_card_holder.vue create mode 100644 pages/packageA/user/my_desc.vue create mode 100644 pages/packageA/user/my_edit.vue create mode 100644 pages/packageA/user/my_idea.vue create mode 100644 pages/packageA/user/my_invite.vue create mode 100644 pages/packageA/user/my_msg.vue create mode 100644 pages/packageA/user/my_sign.vue create mode 100644 pages/packageA/user/my_vip.vue create mode 100644 pages/packageA/user/my_vip_clerk.vue create mode 100644 pages/packageA/user/my_vip_info.vue create mode 100644 pages/packageA/user/my_vip_off.vue create mode 100644 pages/packageA/user/user_activity.vue create mode 100644 pages/packageA/user/user_auditing.vue create mode 100644 pages/packageA/user/user_auditing_info.vue create mode 100644 pages/packageB/ask/add.vue create mode 100644 pages/packageB/ask/index.vue create mode 100644 pages/packageB/ask/info.vue create mode 100644 pages/packageB/ask/user_list.vue create mode 100644 pages/packageB/event/event_info.vue create mode 100644 pages/packageB/news/new_info.vue create mode 100644 pages/packageB/news/notice_info.vue create mode 100644 pages/webview.vue create mode 100644 static/01.png create mode 100644 static/01_1.png create mode 100644 static/02.png create mode 100644 static/02_2.png create mode 100644 static/03.png create mode 100644 static/03_3.png create mode 100644 static/04.png create mode 100644 static/04_4.png create mode 100644 static/allianceCoupon.png create mode 100644 static/allianceMall.png create mode 100644 static/ask_dai.png create mode 100644 static/ask_no.png create mode 100644 static/ask_ok.png create mode 100644 static/b1.png create mode 100644 static/book.png create mode 100644 static/c1.png create mode 100644 static/c1455.png create mode 100644 static/c2.png create mode 100644 static/c3.png create mode 100644 static/characterIntroductionGg.png create mode 100644 static/css/components/demo_page_common.scss create mode 100644 static/css/my.scss create mode 100644 static/css/templatePage/custom_nav_bar.scss create mode 100644 static/da.png create mode 100644 static/def.png create mode 100644 static/diverseYouth.png create mode 100644 static/h1.png create mode 100644 static/h2.png create mode 100644 static/h3.png create mode 100644 static/h4.png create mode 100644 static/h_back.png create mode 100644 static/hqzc.png create mode 100644 static/hqzc_f.png create mode 100644 static/ico1.png create mode 100644 static/ico10.png create mode 100644 static/ico11.png create mode 100644 static/ico12.png create mode 100644 static/ico13.png create mode 100644 static/ico16.png create mode 100644 static/ico2.png create mode 100644 static/ico3.png create mode 100644 static/ico4.png create mode 100644 static/ico5.png create mode 100644 static/ico6.png create mode 100644 static/ico8.png create mode 100644 static/ico9.png create mode 100644 static/icon100.png create mode 100644 static/icon13.png create mode 100644 static/icon14.png create mode 100644 static/icon15.png create mode 100644 static/jj.png create mode 100644 static/joinus.png create mode 100644 static/lunhua.jpg create mode 100644 static/man.png create mode 100644 static/messageSupply.png create mode 100644 static/notice_icon.png create mode 100644 static/personLogoBg.png create mode 100644 static/pic.png create mode 100644 static/right.png create mode 100644 static/sh.png create mode 100644 static/t1.png create mode 100644 static/t2.png create mode 100644 static/tg.png create mode 100644 static/tiwen.png create mode 100644 static/vip.png create mode 100644 static/w_back.png create mode 100644 static/weman.png create mode 100644 static/wen.png create mode 100644 static/zixingche.jpg create mode 100644 store/$tn.mixin.js create mode 100644 store/index.js create mode 100644 template.h5.html create mode 100644 tuniao-ui/README.md create mode 100644 tuniao-ui/components/tn-action-sheet/tn-action-sheet.vue create mode 100644 tuniao-ui/components/tn-avatar-group/tn-avatar-group.vue create mode 100644 tuniao-ui/components/tn-avatar/tn-avatar.vue create mode 100644 tuniao-ui/components/tn-badge/tn-badge.vue create mode 100644 tuniao-ui/components/tn-button/tn-button.vue create mode 100644 tuniao-ui/components/tn-calendar/tn-calendar.vue create mode 100644 tuniao-ui/components/tn-car-keyboard/tn-car-keyboard.vue create mode 100644 tuniao-ui/components/tn-cascade-selection/tn-cascade-selection.vue create mode 100644 tuniao-ui/components/tn-checkbox-group/tn-checkbox-group.vue create mode 100644 tuniao-ui/components/tn-checkbox/tn-checkbox.vue create mode 100644 tuniao-ui/components/tn-circle-progress/tn-circle-progress.vue create mode 100644 tuniao-ui/components/tn-collapse-item/tn-collapse-item.vue create mode 100644 tuniao-ui/components/tn-collapse/tn-collapse.vue create mode 100644 tuniao-ui/components/tn-color-icon/tn-color-icon.vue create mode 100644 tuniao-ui/components/tn-column-notice/tn-column-notice.vue create mode 100644 tuniao-ui/components/tn-count-down/tn-count-down.vue create mode 100644 tuniao-ui/components/tn-count-scroll/tn-count-scroll.vue create mode 100644 tuniao-ui/components/tn-count-to/tn-count-to.vue create mode 100644 tuniao-ui/components/tn-cropper/index.wxs create mode 100644 tuniao-ui/components/tn-cropper/tn-cropper.vue create mode 100644 tuniao-ui/components/tn-custom-swiper-item/index.wxs create mode 100644 tuniao-ui/components/tn-custom-swiper-item/tn-custom-swiper-item.vue create mode 100644 tuniao-ui/components/tn-custom-swiper/tn-custom-swiper.vue create mode 100644 tuniao-ui/components/tn-drag/index.wxs create mode 100644 tuniao-ui/components/tn-drag/tn-drag.vue create mode 100644 tuniao-ui/components/tn-empty/tn-empty.vue create mode 100644 tuniao-ui/components/tn-fab/tn-fab.vue create mode 100644 tuniao-ui/components/tn-form-item/tn-form-item.vue create mode 100644 tuniao-ui/components/tn-form/tn-form.vue create mode 100644 tuniao-ui/components/tn-goods-nav/tn-goods-nav.vue create mode 100644 tuniao-ui/components/tn-grid-item/tn-grid-item.vue create mode 100644 tuniao-ui/components/tn-grid/tn-grid.vue create mode 100644 tuniao-ui/components/tn-image-upload-drag/tn-image-upload-drag.vue create mode 100644 tuniao-ui/components/tn-image-upload/tn-image-upload.vue create mode 100644 tuniao-ui/components/tn-index-anchor/tn-index-anchor.vue create mode 100644 tuniao-ui/components/tn-index-list/tn-index-list.vue create mode 100644 tuniao-ui/components/tn-input/tn-input.vue create mode 100644 tuniao-ui/components/tn-keyboard/tn-keyboard.vue create mode 100644 tuniao-ui/components/tn-landscape/tn-landscape.vue create mode 100644 tuniao-ui/components/tn-lazy-load/tn-lazy-load.vue create mode 100644 tuniao-ui/components/tn-line-progress/tn-line-progress.vue create mode 100644 tuniao-ui/components/tn-list-cell/tn-list-cell.vue create mode 100644 tuniao-ui/components/tn-list-view/tn-list-view.vue create mode 100644 tuniao-ui/components/tn-load-more/tn-load-more.vue create mode 100644 tuniao-ui/components/tn-loading/tn-loading.vue create mode 100644 tuniao-ui/components/tn-modal/tn-modal.vue create mode 100644 tuniao-ui/components/tn-nav-bar/tn-nav-bar.vue create mode 100644 tuniao-ui/components/tn-notice-bar/tn-notice-bar.vue create mode 100644 tuniao-ui/components/tn-number-box/tn-number-box.vue create mode 100644 tuniao-ui/components/tn-number-keyboard/tn-number-keyboard.vue create mode 100644 tuniao-ui/components/tn-picker/tn-picker.vue create mode 100644 tuniao-ui/components/tn-popup/tn-popup.vue create mode 100644 tuniao-ui/components/tn-radio-group/tn-radio-group.vue create mode 100644 tuniao-ui/components/tn-radio/tn-radio.vue create mode 100644 tuniao-ui/components/tn-rate/tn-rate.vue create mode 100644 tuniao-ui/components/tn-read-more/tn-read-more.vue create mode 100644 tuniao-ui/components/tn-row-notice/tn-row-notice.vue create mode 100644 tuniao-ui/components/tn-scroll-list/tn-scroll-list.vue create mode 100644 tuniao-ui/components/tn-scroll-view/tn-scroll-view.vue create mode 100644 tuniao-ui/components/tn-select/tn-select.vue create mode 100644 tuniao-ui/components/tn-sign-board/tn-sign-board.vue create mode 100644 tuniao-ui/components/tn-skeleton/tn-skeleton.vue create mode 100644 tuniao-ui/components/tn-slider/tn-slider.vue create mode 100644 tuniao-ui/components/tn-stack-swiper/index-h5.wxs create mode 100644 tuniao-ui/components/tn-stack-swiper/index.wxs create mode 100644 tuniao-ui/components/tn-stack-swiper/tn-stack-swiper.vue create mode 100644 tuniao-ui/components/tn-steps/tn-steps.vue create mode 100644 tuniao-ui/components/tn-sticky/tn-sticky.vue create mode 100644 tuniao-ui/components/tn-subsection/tn-subsection.vue create mode 100644 tuniao-ui/components/tn-swipe-action-item/index.wxs create mode 100644 tuniao-ui/components/tn-swipe-action-item/tn-swipe-action-item.vue create mode 100644 tuniao-ui/components/tn-swipe-action/tn-swipe-action.vue create mode 100644 tuniao-ui/components/tn-swiper/tn-swiper.vue create mode 100644 tuniao-ui/components/tn-switch/tn-switch.vue create mode 100644 tuniao-ui/components/tn-tabbar/tn-tabbar.vue create mode 100644 tuniao-ui/components/tn-table/tn-table.vue create mode 100644 tuniao-ui/components/tn-tabs-swiper/tn-tabs-swiper.vue create mode 100644 tuniao-ui/components/tn-tabs/tn-tabs.vue create mode 100644 tuniao-ui/components/tn-tag/tn-tag.vue create mode 100644 tuniao-ui/components/tn-td/tn-td.vue create mode 100644 tuniao-ui/components/tn-time-line-item/tn-time-line-item.vue create mode 100644 tuniao-ui/components/tn-time-line-item/tn-time-line-item.vue_bk create mode 100644 tuniao-ui/components/tn-time-line/tn-time-line.vue create mode 100644 tuniao-ui/components/tn-time-line/tn-time-line.vue_bk create mode 100644 tuniao-ui/components/tn-tips/tn-tips.vue create mode 100644 tuniao-ui/components/tn-toast/tn-toast.vue create mode 100644 tuniao-ui/components/tn-tr/tn-tr.vue create mode 100644 tuniao-ui/components/tn-tree-node/tn-tree-node.vue create mode 100644 tuniao-ui/components/tn-tree-view/tn-tree-view.vue create mode 100644 tuniao-ui/components/tn-verification-code-input/tn-verification-code-input.vue create mode 100644 tuniao-ui/components/tn-verification-code/tn-verification-code.vue create mode 100644 tuniao-ui/components/tn-waterfall/tn-waterfall.vue create mode 100644 tuniao-ui/iconfont.css create mode 100644 tuniao-ui/index.js create mode 100644 tuniao-ui/index.scss create mode 100644 tuniao-ui/libs/config/color.js create mode 100644 tuniao-ui/libs/config/zIndex.js create mode 100644 tuniao-ui/libs/css/color.scss create mode 100644 tuniao-ui/libs/css/main.scss create mode 100644 tuniao-ui/libs/css/style.h5.scss create mode 100644 tuniao-ui/libs/css/style.mp.scss create mode 100644 tuniao-ui/libs/function/$parent.js create mode 100644 tuniao-ui/libs/function/applyEven.js create mode 100644 tuniao-ui/libs/function/array.js create mode 100644 tuniao-ui/libs/function/color.js create mode 100644 tuniao-ui/libs/function/deepClone.js create mode 100644 tuniao-ui/libs/function/message.js create mode 100644 tuniao-ui/libs/function/number.js create mode 100644 tuniao-ui/libs/function/string.js create mode 100644 tuniao-ui/libs/function/test.js create mode 100644 tuniao-ui/libs/function/updateCustomBarInfo.js create mode 100644 tuniao-ui/libs/function/uuid.js create mode 100644 tuniao-ui/libs/luch-request/adapters/index.js create mode 100644 tuniao-ui/libs/luch-request/core/InterceptorManager.js create mode 100644 tuniao-ui/libs/luch-request/core/Request.js create mode 100644 tuniao-ui/libs/luch-request/core/buildFullPath.js create mode 100644 tuniao-ui/libs/luch-request/core/defaults.js create mode 100644 tuniao-ui/libs/luch-request/core/dispatchRequest.js create mode 100644 tuniao-ui/libs/luch-request/core/mergeConfig.js create mode 100644 tuniao-ui/libs/luch-request/core/settle.js create mode 100644 tuniao-ui/libs/luch-request/helpers/buildURL.js create mode 100644 tuniao-ui/libs/luch-request/helpers/combineURLs.js create mode 100644 tuniao-ui/libs/luch-request/helpers/isAbsoluteURL.js create mode 100644 tuniao-ui/libs/luch-request/index.d.ts create mode 100644 tuniao-ui/libs/luch-request/index.js create mode 100644 tuniao-ui/libs/luch-request/utils.js create mode 100644 tuniao-ui/libs/luch-request/utils/clone.js create mode 100644 tuniao-ui/libs/mixin/components_color.js create mode 100644 tuniao-ui/libs/mixin/mixin.js create mode 100644 tuniao-ui/libs/mixin/mpShare.js create mode 100644 tuniao-ui/libs/mixin/touch.js create mode 100644 tuniao-ui/libs/utils/area.js create mode 100644 tuniao-ui/libs/utils/async-validator.js create mode 100644 tuniao-ui/libs/utils/calendar.js create mode 100644 tuniao-ui/libs/utils/city.js create mode 100644 tuniao-ui/libs/utils/emitter.js create mode 100644 tuniao-ui/libs/utils/province.js create mode 100644 tuniao-ui/theme.scss create mode 100644 uni.promisify.adaptor.js create mode 100644 uni.scss create mode 100644 uni_modules/cc-noticeBar/changelog.md create mode 100644 uni_modules/cc-noticeBar/components/cc-noticeBar/cc-noticeBar.vue create mode 100644 uni_modules/cc-noticeBar/components/cc-noticeBar/notice_icon.png create mode 100644 uni_modules/cc-noticeBar/package.json create mode 100644 uni_modules/cc-noticeBar/readme.md create mode 100644 uni_modules/jp-verification-literalness/changelog.md create mode 100644 uni_modules/jp-verification-literalness/components/jp-verification-literalness/jp-verification-literalness.vue create mode 100644 uni_modules/jp-verification-literalness/package.json create mode 100644 uni_modules/jp-verification-literalness/pages/index/index.vue create mode 100644 uni_modules/jp-verification-literalness/readme.md create mode 100644 uni_modules/lime-clipper/changelog.md create mode 100644 uni_modules/lime-clipper/components/l-clipper/index.scss create mode 100644 uni_modules/lime-clipper/components/l-clipper/l-clipper.vue create mode 100644 uni_modules/lime-clipper/components/l-clipper/utils.js create mode 100644 uni_modules/lime-clipper/components/lime-clipper/lime-clipper.vue create mode 100644 uni_modules/lime-clipper/package.json create mode 100644 uni_modules/lime-clipper/readme.md create mode 100644 uni_modules/lime-clipper/static/photo.svg create mode 100644 uni_modules/lime-clipper/static/rotate.svg create mode 100644 uni_modules/lime-painter/changelog.md create mode 100644 uni_modules/lime-painter/components/common/relation.js create mode 100644 uni_modules/lime-painter/components/l-painter-image/l-painter-image.vue create mode 100644 uni_modules/lime-painter/components/l-painter-qrcode/l-painter-qrcode.vue create mode 100644 uni_modules/lime-painter/components/l-painter-text/l-painter-text.vue create mode 100644 uni_modules/lime-painter/components/l-painter-view/l-painter-view.vue create mode 100644 uni_modules/lime-painter/components/l-painter/l-painter.vue create mode 100644 uni_modules/lime-painter/components/l-painter/nvue.js create mode 100644 uni_modules/lime-painter/components/l-painter/painter.js create mode 100644 uni_modules/lime-painter/components/l-painter/props.js create mode 100644 uni_modules/lime-painter/components/l-painter/single.js create mode 100644 uni_modules/lime-painter/components/l-painter/utils.js create mode 100644 uni_modules/lime-painter/components/lime-painter/lime-painter.vue create mode 100644 uni_modules/lime-painter/hybrid/html/index.html create mode 100644 uni_modules/lime-painter/hybrid/html/painter.js create mode 100644 uni_modules/lime-painter/hybrid/html/uni.webview.1.5.3.js create mode 100644 uni_modules/lime-painter/package.json create mode 100644 uni_modules/lime-painter/parser.js create mode 100644 uni_modules/lime-painter/readme.md create mode 100644 uni_modules/sp-editor/changelog.md create mode 100644 uni_modules/sp-editor/components/sp-editor/color-picker.vue create mode 100644 uni_modules/sp-editor/components/sp-editor/link-edit.vue create mode 100644 uni_modules/sp-editor/components/sp-editor/sp-editor.vue create mode 100644 uni_modules/sp-editor/icons/editor-icon.css create mode 100644 uni_modules/sp-editor/icons/iconfont.ttf create mode 100644 uni_modules/sp-editor/package.json create mode 100644 uni_modules/sp-editor/readme.md create mode 100644 uni_modules/sp-editor/static/image-resize.min.js create mode 100644 uni_modules/sp-editor/static/quill.min.js create mode 100644 uni_modules/sp-editor/utils/index.js create mode 100644 util/api.js create mode 100644 util/jwexin.js create mode 100644 util/request.js create mode 100644 util/requestManager.js create mode 100644 util/utils.js create mode 100644 util/wx-sdk.js create mode 100644 vue.config.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bcd0c91 --- /dev/null +++ b/.gitignore @@ -0,0 +1,23 @@ +.DS_Store +node_modules/ +unpackage/ +npm-debug.log* +yarn-debug.log* +yarn-error.log* +**/*.log +.eslintignore +tests/**/coverage/ +tests/e2e/reports +selenium-debug.log +.hbuilderx +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.local + +package-lock.json +yarn.lock diff --git a/App.vue b/App.vue new file mode 100644 index 0000000..56062f3 --- /dev/null +++ b/App.vue @@ -0,0 +1,168 @@ + + + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..dbde560 --- /dev/null +++ b/index.html @@ -0,0 +1,21 @@ + + +
+ + +dF=A`gvcqvN&sE5YK(l?aAtbbb1G?jQ|$j;r?NSvKE=sTnQD+ImU9@LA6Z1+*X zDWu5Qxko8hTQrVQcqDI@4j!|Y&A1mcc6IMcy=FyI%#$m4pa#5{IkB zllZty;myPLvPt*ib#``BDolKX#JyF@asc9u6uS2=*Om_3*?p4n@1Alzh&E;NZ@QbG z-4D+1k_m4s&!PTzla8m%!r*ed3Q@}?E-yf=H&RYW_!z_zfj$6RB7=QO5yYM2HeKedOHcB?ze@uqtV==cqUuhxtvNQ787 z9suga6c+YHZMU;l$ukHZrTD#i@#@Brj?082ZjoBmMj4ym3+buyNIXA?gC&@|-nJV) zs^xa}i{|g9c%a@0tV6@aa~T`lOW|RhZ$)^GKU}?n-_A40-v!}^=frK`FG%3`q#k<9 z_T*O6&z&~t>wxZt_+2cgAh8^=HdCOUNTK*>E@Hl~M#i4rLYSYFr@Le$u?XZq-nYCc zRq?4$)+)K6xxoavN8&C@Un=i;djZTq`WQ6tis2tZBwnsJG8>7vh+ww?_dwhV;%Z3C z@c`i@$bS+#S|Sd1qC2 l2F(OCm&}jZ8P&b!vg=fdd(szEw{kmWowzK;}nF9opqQ)j{&*QF-Cu+v# z_fmSL(kZ (HpzUYDZOkl7$O5_m#8pt zwd+^&%@i>%jmZ^@+5}=zn?NjT6Np7^0 Y> zZ33~VO`suBX_#nsM=mCOQH@#fY|_@xqB9ph`l4?OJxjz$4NrI<1&p+NB5*mu_v@}b zH2l!Dd7_Tn^f9{G)j)qiUC+0xuvx3lf`TXE6`e5XMA|DliOd@n^#sHN&IgPXwBg;M z{d3R3;60U+|5>+QU!X8iyc{966_o!rz<&3-7(N&EI+RFJQ%FBjK>l|4IZpi`M-f6W zCGXwJ7abw1rWgr0bqR_;j=EMO?Pqp?G83qgoYlTCAd6qC_U7ZNk5m(O;|Vd$0Pq&B zHfIu4&3ALxd`_LP8&9OzeJ!X50ZgrX_gaf7P-7`BT{~{mHOov_^&ip<+xbBu900T# vVZGvriv+_-!kp+p*U`1)YsJLGv<3eID+!9% Px`e@R3^RCr$Poq2pz)!E0t=gyMJWSvREW>_pz1PiDLxKRUANCr@}rD{bB1r-H( z1;tmy1;i?%VqFM`fJ>`>RKx`YDMfj!)~cv4DwKjs6(x{;-)6b>oJj&9%gmh_LV$Vx z$|v`n=RD{4oaNc>9kJiV9U3g)I3nTW; A()7EoWdsRRK_!5D #z|$F5AaVeLWK2+6QtxEYwXiG2~`7c!ex!Ixb3WMGT4vj)ftd6Y !IL>seV8Ue_m7&c!C3ekmLHAyfvD=ob)tImo*im`}5_4452=L4)NXV(g@@sc5#j zURg%|_{3mYHEE~oRC@(OyR2tx$V|fQ7!>&RW8{wJkLcVU=9ocuw+ ;AClTt>wr0HCe zx`Efj
M^gwU>3BMHykqf>Iic2 zOJFS!`ptL9RuGmLQeG}XSYsP)5YN9qqUMwJ>YPuQxr)+zE=I4ZRLXH=e~GZgQ?YV3 zag!E;W}@KAPWXxs7~W*EgRb+?jw 77 z`(ix1w^DS|AT_1L*?%D><4SymITTLqgI-aBNJ_(*{S{hr2i2zHnK@Lxvd{noO`GcQ zYHbl$b^Va4uowmC95(op{|{ND#|Ylnp?lcE3XOzm+1RqK!@Kui6i)4XkfjhL-T6A! zAs3-nms2$Tbft)tzvLk7{>@jrbpxgMUW)Fn4oegv*zDH0sLNU^!(!A*=ZJtW`R8Pj zW)^JG;SjV8iY){-*9|1x@C3fH0t$cM4ZWrc+pi{qW>)7q2oi374%_evin*`o0GgvC z?rrZV1( MFVLKwsowMqWq+Ea9>olsK;kWbR)3c+`W-d@_oDhce(GZ?3{iah2++e1 z;|nPA3C`;H7T+3~Q=qmH2VV}TkH?f>!7?4D1QI|#H>ID7^T~gy6 Qty|Klxy?0|glS7DnA{Uz?ssZ; zNZa3U@$@C>{&y%_co~jIx2iM0ddu^aJ#_WK6)(-#6#Jrq?-Sf0N52kVq{)*9Dm! z-%_FWu<3|`FQq%+Vzz)qfh4sI7_KhO!zt$c@g&Z9nc`c2iF^Bd%K1vX^9^E#jBRMD zcEXH-IF^2iDJ7kPtJD2 grPETuG8PzjyCW^|w62 zyg&H=ww^wMqy=xQ`=j`dQ8<@vN5mylvEpVb-*{AA&|%Q@w81}xBf`iHw+Z-ig8MQ# z-=eYEr~*X16HDLoaDVZxvh5|=hF_)3P2F9C^ok`(M@%|oO?J*Xmr(oJM&%Jp%gM2H z2c{0)sCj?2x};^)RE8_`%2LC65Q4i?2XSwx3TQL%<;?1m^M41DgPEzY*hqf(1Bz}M z+^|Yzm^tZgnOxH;y!KQ~U3!r?=OqfS>x(b%`$lZF1SigC_fm4tINbk#F!<(J@&)D| z{qTOj15>xY)O`FFrSr!GBT|z#IxOCMfZNUrAvxcs;7iHB{}o+gENl~y8fdolKzqLV zoT6E0D@(_@{ND=r(nVJ`n3m1*F 8jH4=_ED&R}F3bIJ_3jPVSo`@A%T|7rxH##-%y+Y~2%Uac0^1^qq^vh75a{gsb zL_#Xg>}_aC9jJcydCXn=U_Rwc3MchI`VlIGt(lbX;Mwy<$U6Y|yrPofCvTxR7$!#z zd@0=4fmphC;(c9ba3Eo&l_DJ}Ut#M-2XRv##(v2x@cBT~D4u;j?j0W}_RbYwW9r;f z{p~B2v7@f&wK8@ziG&-MD^s-i=5uiG{3sk>AjhOLIGE)8Q3YRupl4vtx2uTgkU$Cu z^jtY>*DO|6P~r8b;au`1A|{rSdoHH-qqW#4%qQ-OI~5!6{% 9ABW=qcNb%IvQI5hfUz9gRc}Y4=w*=mgq1w5Wp=xH=lYAj)y)_K0wip zXX5$xa}|tpuG)i^m_qemS7IAE89cRk_H0wpPrbU5!YQXT K~>%8PkuiK%{*RG#0n&PHayB&EJoh=_Nnzopsg z+5HI#H?6`pVxm%3;kCV0yvWq;G#rnAhR{qD-<5?s61m}4!V&EXd )W>*=Zf7*A(CXWMIJ*kdTRgmY~m)~-*DL`-uXIm^_Sj1 zUO8crA`Ql+tmn 07Rd0B**%9qm&ZFwh$I#0P4N3$;XZDf}ES|@~QuTHT zzMR>CO!^CrPeXlMMp$hs{)5Sad-qm~XAV)3&cxX-5Ocxh=rtAKajWB~a?Qh3th}WW zpfZVX>Ujnp8Bfx6VlR=A*Ts1A_EI>xr`kCoP@|VM+Aa9%2pT~*la*bD%TqLslxMy} zOG#HXJ~F1G67jd3r!HJ+ib|7Il8hM@&l%nXN9U6}F{SsWbn!%}DkX958gx%BMN?11 zoAY%DxYu fU4yR_Fc!PXOMwXXbtNHiWN*jZtq;C}A1RpF9mivzs-%mr zU>}9o^ip24< FkLYWLtv zdFv{r T^2bs*zyq1LN zvOXAUKUt>&bkdrVzJTto4aX6aEZ;jOz?YKB)MQ?TD(RLlZL~@%O#JLz<-HzCN%wBV zdd5h#(hIKYti0SNBm^>=>R7%LQ(8CmSROahdh&kv6-9F{B<1Nnls|bB)qh>#cf^FW zV~l6Vjv4S32q5xY$gpOwKniH?dCCj9$`>e@(79 q;^4AWE(Ywgc-6N5mn_Z6EI2lY@lSp zIAx|vE2^GqK73sj<0`ZBr?Tew8BY;AYO(^paAJ3SL3+T)Jost{jAo#&BkzHb<|D(& z{=BfDU{ViNA0)G2vNlL1?WKo1`g-DT$X5R=n$}-szYe9i$q!<`^cKHAAd~sud=_vq zgd}W0u1BFk?ihOEQ zK?UUGd9R9aZE=*$znI#O{a=X@$sI|3zV2NwS?lTbpx4#-NPE9NLRvrH+E3o1WS+nJ zK_ocQ%Zq}t`;RN|<>dE{CpM-6=?w?`dP>aszaeqXE0iz0k*c+_OtH>Ul8%-w4%?V% z*vHL8)_NXJGS^$R_Hk;qyx@1{j&~<3*qx dAs#I{0G*0mwQqi==zjD<#P4 zHW~Yo=Y7pb>!7w8Ur8QX>PcAooQtL31z36yQ3-w7KL584e~8*39k<|19At7nrO; zfj{11vS96>LHzV(>ebU=$d|vD%9j^XC6g~9)O{Y;;420A19CDeHZ&MO)ukC@S4Ft8 z6y4OdH>Q(%t9-AoB$x6huE+EBr~chhXNCsL_waVdJ@|6M^FW*CB3p;+LIp~ip7Lc3 zS?v%hIw8QX2P>R#geth|^fU6t7|!drsH+nSe2KyV7gGgDyV4Mf&Zl-`>T(MCm&U0h zClYkRfiFSJ&tkYws8@S}{* DIJk-M;KMe2@SpkYyU_(XlC`UK){zZjDj1e{Rt1g1gLZ@ zsns5~A?Okaut+|Sf?tQ`o(z)hcK$A)UnBu;jaL->L(thi9&3k6HtRa)w}k?t;2(yv zR6treuOV<9X$3^VZvo*v7mIY5eIykS1-}(^!wE+OqqHda0Z`iSVv2_PpleX6$zVXQ zZxaPS2(%82W`xkyhb|)eDa$DML4Yrt n=CjXZd z(;_j)=*l;U;yxGMEvSH8*uSh11>Yd}vUx!k=^nur0shz7L!>D9Ap%$T?FjibUHMhr zkSGd%NU-@k=~=|&hVUiDsHqtS=!bTd3dn nZZrw&kyGN8|b70&28>-P jj~%1vMW}tQiv|A$5hDEXUZ Px^ElET{RCr$Poq2FnMIOh0{SpWPL{vl)Q791=6wqQ9FF-& hLuv{Gt`h_q|c88qU 4P0StQPpR4~0VgL}aCiba&9dRW#9BFI7rS z_W68AThfG&0Y7>IdRmsXRz!NXq{${T7p2s?Lx&EHzUQ8M4kt5CD*M(8J`X4^F7B3@ znYl_t`ls@N%{i9VdXrLWw9n@|*qrmQpB)$cC<8iXW@cit4Q~mPO~o9v)@5zlv>BL} zm$x?+<0UgjgWxmplTSX`?#PiNi$!EiG7oBDeGgcc)h|Cke|K}vD Ct%npA7H(;-H8}#`o?Ivt`iF@8wb>@Cl#CxgUfQ>B zFE73Hk{msnyzydL)~Nja{MF5|CRgA`P0_!J$ivMt*(msDoN P4fAC zFQ;G}S3|f4pV0$>z!b}}=8H&{tEYKr+^JJ1`RS*hYV{m3VuYM~?z!e~ixw@CAAkJO z{C@S-SIfKazAHcf{IlyPX|4a{^Z5cz=?!}VpOuxAl#J9`uV_pLv~Al~rcRwIWo2dZ z+H0@XlJi4`43R#4`WTRxE?p`YU38K3>eWk*962ISJ@u5)3m(W{T3Y&0Q+dOl!DnH? zU~s62ELTc(^03f^T~Mw!-gu*Q?%Y{^`Q;Z`xNxET_S ETbnD*@Y%*;&r=%bJ1t+(FtDt2O@{f3B)_xXGkjj<-iObPf5 zR8&-SdRA5zC!lX*P1ct4Fkt1%m2%y6*O^Cc*swvq{PIh=`R1D?D=SOB_~HwB{q@&V z!GQlAJ$iK1tXZ?FHF}CEW#C6eP _)u$DZg^ z4_H)Gl$Dj01p`L989O^WTc%B$)?k-?`}WDMUAtt!fC18`O`Dos|MABk*XjoYPCM;1 z!^CHwebz8BN!njoS^0;%@4kCilH=6sp3INDoCXLvzi}ff=XbjH+H1`Tz!6J9D1w1g z9*$@f@NEb}q0oa>zx$msprLjs-D|G7Mtb(_Ddpwm#_nf_V*w$ScJJPOj4x2%cmoFx zl#U%c)`%*%b0Z{OP*6aqJ!xuG@R?mG6uM7D{+aAdvFEYtIT7>b&6821Mj1wwl$6M= zx87<_0iG~&zM+^8q74zp7_mNsoB1iF#uXG4AX<~6MhBnS1%tt{mSru`TDSEwTNLqC zS6yYq&U4Q_ClwVHQczG}h5~#DO9y8xQOxJI+io*E|LLcnmP3aQd6|ygXI5!xX&@PI zxJkf|o`AthsW;p*pnLc3GIs1(V>Z6&ZQHipCL&!DF#xNFow|MdcG gi%mhT^Y@PWMZ&O7xw zU6)^exe3alxbd95h$5}^;);rjscyp&O%8ta1OWVY5$T$U0r5V!#ZEXJj_b+7Jahpk z=+jR>m38aZ)wCsIYCB-(oO6x|U!YSkO+ALB*Pw{qgd>^-d;l#fD(aM#m9 ! 3>i9fs8PHyW5R?9#&1}$VukG8>#4w@)UvEWPLlJ@3O #OBSLjn2Rqz(eK~tXj27h7B7gc-AoQyz|a8J03F@ z1|X`|uU{|3jyxo0*!cr|KHt|3t*P0;XL5eO-^$I+Ev~AmDRjetcx~C$H{EoTvHMZh zgqS%6x8HudVFmyr+flBz=@~l~&Kl+@^!D3t%ZDF+=w(`jBSsV!7XCM0=N19JJvp!8 z2s`q5>Zzw1kU0^E5#% 2|^nkypJLfHY$m@%V9hTF|?pzwwvI~d1~$GJkJ z5Err|qc~Z_i_SXhEcyKN&k=>5oUR5=;>7&?d@BEHC6-$p_$(kC4iAY$A{6RoIKW=+ zyz@>I{ru#UPmH}ja^y%OE)Y3(co|WG%qRSSgN4rEAA~oIS8P{BU~1M^7leL*Jo*Cn zm6esviS>qCB={_F?%cWkGcq#XBS+$d0kLiJ^74#bkD{c)fl~nBC{?my1k~8|{DfJA zvB`XK0$>*6X8H2vrfMRVsH8x25tQ>nbuVkQSnyfgqmMp%c6N3)F$GukLDQ#CH{eoI zLcHghXP&7E9Z>JX4u@WR@kNt4vx9OrpoFWx{`y!$W%A_7a>^;EBpa0bPiblCY^oz# zH28oK3WZ2bl0$WTU5SuEzkdB{EFBwELdjS>n3|jlb~v^@A_;|zeQ%qk_3dm-P^u_w z=giCQr;k!sA9kv({Rxl9G}gB2rx?<$!E( z0UQ|*V4MJ~BYr2`fOP}Nv5EHn{rk&hmtAI_P&d?Y#T8eWI1sua83wc}@M9RTxvETY zpabkp6I)SY%VYba4=%m5I+_7^^XJd6H}yy*92Id8))18wknI&?Md7G wkRGzM&}AxzJ0+qT7ZsBF=LbB3uJoAb39ip>v0V|4?SbvSE@sMUhc z!rX=<5F>~ah#iaQiANV-e6b7~G{}IuV8McVPX^^FJ$h7ENWvVfCdywfyzoL}sv?#e zqE-z)3**%VN-4))4 ^u*tuSQM=_&Ai1iQ^g@_H&9zqe FU_wIJ_xyY1l~+uJGnOzlNxW>@v`NSd+eB29 z1dUBp&rwB}h+IuH(O}K}dGz8o*E<~r N4WE1D^#(!x6-Thzq$QV*h~2y{<$=wu}T0mJJHncDM*t zI4Qz9F2M)1XsJ38(X$hQ82h q!3VVH&H4AL zikck1yaRbnOo*RYEmX6SoWY(aJb^85CtYx`@E3^lc%kDOd;p0C B*wq2?sul4u``dDl02jIenES2^q{vWIeV!@qH(zWFkhKkl+JKAP^X2Sr%oA z)z=ym5FRWSuI(3bU rIMj@Ew3p zlTau`-5_roah;ls_lPw34#B5cFc|D>S=KtO_319U#ci4f-zAEVKmK@+%F0Rta!G%) zMjCvV;L|+%Dofs^$U8+nQyP4a&@EW7pi_ByIbZI>TXj8A8hlT%Rd@3GCPn*^Y4DQ( zKZXIkQGJTrq0->HMJ!JHl9G~#wAK%}87>XJ8?+L%4TVB{s|Me$;fT`UJA%o1qhK(Y zS9N2Oa74nJ^J(y% abUx6|Oeg42EDKp+tJdnVK1yT{XYk7zi8SKQW0&Zoh54W+jZ#l^)PGcq#xa-U&o z57!%pN%e|eSK`~YM>9}*=O+cH`_9~!$;rv#)#uaG;Je2!B|Qj7{2x60kmSYwtv&z% N002ovPDHLkV1kS|pH=_> literal 0 HcmV?d00001 diff --git a/static/ask_ok.png b/static/ask_ok.png new file mode 100644 index 0000000000000000000000000000000000000000..708c15e73c4e27c9a8ff919d9918025c89664670 GIT binary patch literal 4548 zcmV;#5j*aQP) Px`en~_@RCr$PT?uqlMb`f6b$7Zu-Gs0QWKCcO7{Fn18-#)AD2t$?jEIgBg(QId zii#{j5=bIDILZ<-j%g2<{2GAsiKC?MecC?W)8Gk^q=UXxCD&AIi`At6h@e%-_X zUFUF)$FAkpcdKsQ`tGe47L$-W5sanc7AhWwM^7${SXbSr#7MyCge!53X)*z5tGmF; z<>RAHWJJsd7+2n=YHJGcsl+7Y_5x$80T`-Qgc~>-=V>Q0A|`=VPX!c%PY|?BwDjQc ztOuC+20~J`U31Jl(Xhriq%cp_4(xlhQs4^{6ra in5w$z)lrLi@kVeC zj9=!&CwtVJZ_aU5a=Y3ef3MD2Rl)?Rkx%f&I6b&Fx{W1+al9C$aaDEma7QiPe!&Qx z7D!v^#Nw^$6#xz=ho@WCqR9QKgb6|;W#AVL6q9I42l#{_jH|c{#(<~p*J0Ie7hG cg&2|P5avjAVR-z+!iY7h+pBEoH~6vwat8ry zF#x^FaTPV|6s^IEG2!rdfZ>ZA*z#>*aXZ=(8&{G#F<|_h<_*yZVxK;@lyvIFsPdjG@&P^+j01m`nv!FRymEie>pq1iNjw& z{iz=?_(B0gFE{2|-7Wyl{2BcEy5vHVCllR3!he5q UHV>3=@6ku1awC_w>VC?M|VdR%X!9ne;doH`9K zZ iyl0fEPFQI^2c^sEJ`#&s{!8p(23 4lM5O6R1cUeLi8gAU}Hm^zjW07I1sQQOS$^-MDg z-9YRlE6(RszGlg$Z<%63le!X4|Kbt%fadijoW1P91Cwk*iPx9W{q&%nGj^%U9dQHb zh#Lcb(afV0Ey)Z#MTr7l>Jx@n`stDH0v?}c!?E*~yNe|F+6m!k+e9O}|0R#3>v(Iq zz|-&hW}1Zu)$U~roB ide3C9EK5q;p%upif$lhTX-Cr*N96H~Q zo!|L(7Z)ZP(Y>t}caFA*ol{ZSJ 98q{RC zueAnizb-5$+=wG;*HnX^6Rn_|*niT@_$JGZVGA6vIo0_^oU!Dr2Ie%i3aB#hWd&H< zGmU2lI3j)RfaoX*YsQ5O>Uh;27bg6}S;n4IbnC*^vcP%m`+NT`z>H7x;VB2(@lWV6 zBsL7Wc8-TqY^qHW=a^HA9~*Zdvy0!sg(?M~0RQa^ml_p@=??>_>q`N~FotcZCe)2! zIC@UL@w$qv5Sb7%C3HCd_ovc_vq?|xXgC_yl7!Ds9*)-oBDdCS^ZRttV$KUjxC%LX zr`m UHE+nh_Pr1US#mb)b2D zhQ HL9JeGd`&=J21_yk(ZQI{jQOScz58(#__zkc<&aQv>R>{fb9@^UBsxufiEr`7%C zR5M6%L*B7t*Y|F8ik7haHIulIQR)AdP4Go+8f%2vA!?cw@$6hVK(F!?IOukIVoxou zb=B9L==Wa@d>XuS{C?dP={LI=aJMgE$@`i0yb(RxY2c*0z;qifmSgYfkUlu4h5(-I zedgu@G_5P)ixd+i2^c!hj@fa>BG%M}-ko%KY^oh+fAL`bMA=l0Tjs#3J=YFvU$T|_ zo#+UuP!?1TKXV8%8n=?yf`Y#u^+t>BhjBcHyd0P=@NQ{>p_% zy66P)Mij)H7YxGJr$Y62A9bT^YYpnwWC+tRyuQSNFTeMF$*WLa4krU*k1vYYQ&FAj z0e+Em{?HNB x1*v4t$zqi{W|QBo0c{E$!a;SdvHQ)esjlvi%hOI(ONF*hw}F z{DTft1{>hW=fVULxE2RM?R14jew^!TKZ 5o2*Z+X1xQ gPpS;= zw{M$qBAbi%aYQduP7s-&lI|sWLSr7&iyc6*;N3^B#S_w>F^EGtexXBzE(0w$5BM}w z&RO(u%MT1_rDWpX12y}q2eEJ3@Zy7Ec(uO_ESa2+uUg xd-Pmcqy1D@9nznb>rf_yH%dmq zoW0Y{rGTY71Kk~{e73(3eY?oY=$$IZ4wRIe8hoJu`O^jOE14{1IsA0VBmP}qe%DmO z+VOHqx_32u>vV0c#gdne_+U!`(u-VD`YkRt3`qm8JyCdaM%mkOWpds0;M3%q4!zo0 zr 0!;Z>**j}Rg8H0EHL1{i$i*m)!9WotpM=~!tu#1v z$}Ix&bcpVoWft+^q<@wLj#AINw$Wnl`g~!}DKN9+EfeTb_KGiENcx8p^&=TJr |=MnH !3JWp1( zM|d{nCFLqL1h*vkH2IdJxSqSL#{k|`2^eIri4&p&_^Fw896afUHxHCjO^5-VH_U)u zopd4wObjRSJb{#37JLFl1n0A@2N<}bk9Sa(+{QO$cQfu?J6hD2F!^Z%3JM_-t?ETE z;St^QhE;V`tE94SY4F8F2XakxoxE)ftecWmN_nCy$Cw1jlqs!Y3>m|X#rZyuzGcIa zGs-SezQ()t!6yVLJ0jb<0N@F}01+mup@el4Od{wqYi&M0-sQpr9kk*lOnJGXO8P9X z&g}ty(aim!BO2F{uyInja4WqzKx#p*sNHP^K7kOOa5a%JX}*%|2nx0ki%E|vD4l%p zY z4Stacst<5_E8z37Mle?U?d9hyKukQ=(6Gbcype+HL924xuY50(&4*lx)aW%kz|cNu z==$g=1bzvC+73Jt=B(Rv3*-F$s!%`({OeFA1?1OhLLc<*bE6dy0>1);V-oUafMLvy zR6q#)O3?L(j!>hd5cob&YZ-raD3>Jqf{M@3q`wLXfv*5D`Adp?1Hgm&Da#P}3cwea zvG^-JAxRqmrZ_a|tLqT>z7Q($d&`8&ZMhV-9h}$mqgjPjL*V;~VvCVinn`Xg5pn_l zWsMN{eu7WcTMo51=33WwfW@e2Ufd)EzDo4y+Yz1u-Fn8*U1b-_QtQ-qeyg{m^c0UP z~jmc%5q@&jBUMfpLC0Y1pzu0r7ZiZ;#BfV0IG^ZGcOmfoLCZ(o7V%dnNRpJU zw963qN|91nuVq5si(ts$3WD@D+mUPqmogxxK-qPkm)dhrss-RX^&+#9Mko;`C=> zEBrf?A@KbG)ZeNthFd#G+(Y?6 zTS%K{7{~ufKArKGMF%WGu&wFfjKH{V4>^Xpit MX3RlvUjXy>Qaf&SGtulXf~=i>6LzTwT?~X;Q}%p09lUnxtRyos;|^AQJPw z-{1H2{NML|;()ni0$2?omtQ#m+yF8F2moAMyAXgNfMoyy01E)-`SmY=C9|HwXaPx( zb&}UAjXw820H5R)(&%%ah!FxhSg_3io{_XFy&&->0gSVtD|$biUQic&4!{-w**c3B z4L^WU0AoA^XpSBNx>&Rqd5p6HG)CTHF*WVpS_`-dz$-ivSP`0lZUVTgRo%1_kh-V` zz XS+dlF5uqtccQa( zq5?hzpbWr98ww|9H4i;giA*qw2uT029U3lzt$>@?s8by6C?;M3b6GsI)^&P9ORhrh z&Wc0Bcm&L0@vqcAe?vZGlGw+{Vin-C0;z z_%=H`dtIb*0)fE2wzjtBs;a7ALZOhZd%7whqv0APUD#!0yc
gwuRdV72C>tD0D=%W)5Vhh}0 zvC4&UI2?|Wl9KWZ7cP9&-roLBUS6Kw$3o&EteGfa)GlQOGBPr9_Uzg7@z~hdXAKPv zRxvojnmKrf?QJ7VR@#N5{rSkq$i+j44mEXjboex^Rw8s#3tVGzCE~?VR8+LHwY9ae zr>E!r{QP_~9iufQV4jH;NEks7vUcs-RdeUgozG96Jo$!6)mY`^-8S2jo10ruUtfQ8 ze0=<9Wo2c7!OxN7;N7--BTH2|21bRVnZCZh^VQYWKa7lwEb38)44;!Hk)*)sbPA=V zrSA<441Cej(z26cZk?YilL{y|+JVul1 N)u&{93 znKNfT)UkXasRbm8i;H*Y`0;`r&-Gaer_;zg6=pCzJbYQlVuML7AWb6s_U${RV-X>N z&%!0uK1d)Cm^pXu+^O2y+KW1yvdbjke|&J#_L#7cUUc%|8QbIadau^h)YO-im3?QB zc!XcDyMXia^M5rrH-CNb;K8dV6u%(EI=W?Lg2CY8rAwF2R#a5{I5RV&%RM*++$RBN zZKj=-4Aoh25?Qc=tu;G4d%Ll*@tY$@jtp9$I;7c>=;r#YEa39;@_c7!=jqDI%FemD zIjgK&!>wNwknTo2Z*F}ahqpC5>+0%GTX0*GG P9_ OEj!7{Dmbx*ju6@SCl`B_%mcN~% zi2nZm^B#}qqy78$TlriJI3Gh8spU;Szh%VfRI=K;y1L%ozI}UnR#w(puh)C+*s)_R zO-)Uj-6Yo$a<{w13pnyU13Ju8VuOb;lR?hC5JqmOj+vRn#s(}&yDuUL80730X(Dq= zo<1d#r9Y}gGKM51Anm%b1PpO%kTj2SGm?8BZByy4xKK )5^K|-fSvD%ep^fJ+~6`V480$rrQ0vdjR^ixbnZk z!E-?hT>~St^j9TwfKvM^#Qs-73S7co {wiRE5A-BwDX7Ji5g*koAZkh^j<(V#)i9*8(Q`+1pT zx3h*~gfXlp({DNjs7lgFXjPI +3K8{0}VY1)ZTOV$}cu002ovPDHLkV1lcpORoR` literal 0 HcmV?d00001 diff --git a/static/book.png b/static/book.png new file mode 100644 index 0000000000000000000000000000000000000000..2dffccdc04c8ac98024dd33d8ccb1178d2d94474 GIT binary patch literal 727 zcmeAS@N?(olHy`uVBq!ia0vp^ZXnFT1|$ph9<=}|&H|6fVg?3oVGw3ym^DX&fq|*h z)5S5QV$Rz+`@4l5MULC^Z`pn7+&dS`?#&iT8Zo77xw<&a;?kGS{l|PPjOC#Ao =D(j!zUjMcMx%m8 z)7!G9CA9}M7clDd?pb7G$E3R;H|@N8nW(3@O6{eRPb$mbzw4N|g(v5UNgU&?v@#Xd z!UYnZ#Rt?j%m@y3-I0>^+I6yxp?Kr&o2sGBO9D3^@035Sv&>7!>sEeRe3wdPl9-pq z3NINpFTvnyryl3EM?H4ktgSwLX5Tlt)oUd@XCL_Z?s)Nm#(R&qiYRBc)(0^>Q(Zgb zX7~Qas4mGifyV+#GC*A&g&c-_ipLa>ShPsAlP$PVFX^6`?~3Lb*VDEIo2=wZl3S*7 zcGryaX=S#mh0~6j1TS?cG_-Gg`z~AbCgZk-X)|q4XRhd&VODVO%(h}Z3tbVx;;ni? z2^EI#i`t)UF dP^&8i2{C9Bjl?9uVw!XT<9@ee)v}cC4 z *SoUMaUwuXXaY(Tikd2a+7&%81j~?q}kS-&EbtWow<0`nNKmA z-HAuf^l$3mEHKdYzVw)}S~W&{=Z;Q=OutLV8vdD9o&W51M*BfY{2EP8tIgN*pH82?qig*8uC#>4u`_a>S&Z(-gRVW j&4Jl=pMP2da|D1!4Cucd0CwusIR zs&oXpfof~s1?+}oU i;n^z=6k>GJoF)d_?mpV9PfErIw<`yNCWMFs^Lu0IR^g7lV`(R5&7+6_NfF-AWOe z6_LlZ6xe(gfmUm7j^jbac>|aOzP$brI)E(D<`V&*PS}|8=SgG1Wh|dQkaTjU!Fkit zeZU7tz}hdxt6@?w?-J@7FsET(9;EU{p{=-Jq+Lilft%0-CLNvdFuH66zm$GDQZXI1 z)ZmxW9>+Gh4C&Y=aAnQyhe>xtE-3!pHZ(7xV&cc+bQyRk5`z~Y^9_7NE&Nyws4V~h N002ovPDHLkV1kV%>=^(6 literal 0 HcmV?d00001 diff --git a/static/c1455.png b/static/c1455.png new file mode 100644 index 0000000000000000000000000000000000000000..a40e24c799523fbb926bf94b6595efcd128ccd44 GIT binary patch literal 547 zcmV+;0^I$HP) }*rprx8&SC1A9$3kYH@iNV7B0ZRHHA{fv@l0Yhx*roHew6nC5 zG 7AA@_LHS|8=8LC-1H`jVFiBAU7+0$gu_N&! zg>iLLpyDtN& TA>nG zrlk(k$o$ype&20}W_
JP) iKtu+jT317-tXfj7WoU>vvs+y*{G-ltt-FK`H0h@^4-VZTMIv{?i Lh@FIAs<4#ShG)yB(#mB1=rCz~*V ztH42EtVw7)aIr>oAMiTz&KJ4ZQkU)bI{H2E1h@%2@AR&yql?XI;Hgrjcc7tvPqw;A zZF~pL2K!bs9gU32Khq>+giqVU)H2j0#xfJYYR^xDJ_(cYw+IoGx0b;-q?Dlxq2i5p zPhy{_Av3N3n}Bz~63;_Ph=~wE1z;I`M=BY*5IPTh^7ih8KG8z Lx-zfivD-=Zj@lA>)J Qk46{w@{;eq@4oN%{r>O& zl_tbRP4ipmClZOK8KVt}V1|X^GX=cyDE|v!@^wY0aUzlbY++0i?b| mqbOB2x z6~vjzf^1S_fpu%3)gBxWI4GWgJPx~)!#!GflotnUVH<&=Q3#){g~J7bP^u{b(laat zsbp#?i7Hi4s78jW6-td}C4|Y*Rfv2Qf-0n_8du7341>lW7)WC+Ry@)0&bTb_rG+zj z-i0HG+wGRQ6*7jkA*e>9LF5>MVN!sQa`{f4@JOB9;t2)=#gQ!S;%UYS35-Mrlgn#i zpy`+i4wskK$&I@SI1KR+E(Ddy1(QaB7SfAz<+Aos;T961?39CY@*KdTUaTvV;TbNI z`5S8Q@k;`LYfUDvj92R7aCk* lr)40>MB# z#f$q!y*`0uth5~*aEVb7kTFuPMm1`+6qBK&>Y7Zr(aG_IlcbCWEe!l4qiG9{l31uU z6jMnR7ECTh70OU4VYL##Yz>NG85tUsQcm1AFl4Tf1rzrz|MPx4OM@yT?61uu)TWR= zcr?v{z~+xvPZE_gzOvKMXvW|KDO7?MCWREBEb#a?{n{QFqjhIefb<{oVhqMHR^Cmp zRJaXz>%XKP0`y0OvK=!8`Ky(qXD^ia1RV4YVd-sH;KSSUC@1K1ENEy~0;)kL6|XfK z!p*5AeS6Mk&j}BF_n>58QOGsj+Jq`7OA=gSTD#+LaEXsP{QCU&edf+uX_z57*=Rgg zQj#1E^}Lxkw|Jl`!AKCF9(pn}xMi>B!^rz>b$9!&)Eet9`TIAxzy0djL;1PR&d4J_ z M+yDP4`HssTP=6L5hNt*c!Nz00+`bJSl(VFz+h!NHKr&kY%SNLu#oOEit z|M?5wC>l;RUF)fn;4?ReZRrTBdTdLtZ@J?TtLNPdt?!?j^~Sr4KDd w*S$$gbn{H5+_CN^acRA$|}Mb|kQ@;!#$*J~MuH-^SLTuT~gxh8|977jN0VLO%U_ z$+CsN-I+dB)Ytty?OvDi-l@rjx?dL$t?oZjr2Fx9b^CW|y!B>MZfjk~(`V)Do* zdle*x6vR&^ii4ZhhOSo7J&@_|apu(LT}X+K%B zdG>jC`M@*Du)aBdNxyDG>A|9ysw^=X(vMBrxp$!Wd6}dz@XP9!y5w8!nKc3Lb^XFG z=?R ##E_C#FCnt&@K qepf%=HTltk!JN~}dPf?XN2bKyTyP{PCbeAnvl=7g47CyI#eV|cWXsF| literal 0 HcmV?d00001 diff --git a/static/characterIntroductionGg.png b/static/characterIntroductionGg.png new file mode 100644 index 0000000000000000000000000000000000000000..b525dd5ef7464249d876f8b689794bbbc30f98c9 GIT binary patch literal 377442 zcmV()K;OTKP) StO&>uS)ve<0AYj>5 AR{$W90N^4L=L-RlQUJ& DC0@ZjPh;=*jPLSYvv5M~MFBAl0-BNIsH z15C~g000{K(ZT*WKal6< ?_01!^k@7iDG<< 3=fuAC~ 28EsPoqkpK{9G%|Vj005J}`Hw&=0RYXHq~ibpyyzHQsFW8>#s~laM4*8xut5h5 z!4#~(4xGUqyucR%VFpA%3?#rj5JCpzfE)^;7?wd9RKPme1hudO8lVxH;SjXJF*pt9 z;1XPc>u?taU>Kgl7`%oF1VP9M6Ja4bh!J9r*dopd7nzO(B4J20l7OTj>4+3jBE`sZ zqynizYLQ(?Bl0bB6giDtK>Co|$RIL`{EECsF_eL_Q3KQhbwIhO9~z3rpmWi5G!I>X zmZEFX8nhlgfVQHi(M#xcbO3#dj$?q)F%D*o* 1Pf{>6$SWH+$s3q(pv=X`qR|$iJF~TPzlc-O$C3+J1 z#CT#lv5;6stS0Uu9wDA3UMCI{Uz12A4#|?_P6{C kNG+sOq(0IRX`D yT~9-sA|ffUF>wk++Z!kWZ5P$;0Hg6gtI-;!FvmBvPc55=u2?Kjj3apE5$3psG>L zsh-pbs)#zDT1jo7c2F- (3)vyY4>O^>2$gY-Gd%Qm(Z8e zYv>2*=jns=cMJ`N4THx>VkjAF8G9M07`GWOnM|ey)0dgZR4~^v8<}UA514ONSSt1^ zd=-((5|uiYR+WC0=c-gyb5%dpd8!Lkt5pxHURHgkMpd&= fR^vEcAI*_=wwA G2sV%zY%w@v@XU~7=xdm1xY6*0;iwVIXu6TaXrs|dqbIl~ z?uTdNHFy_3W~^@ g_pF#!K2~{F^;XxcN!DEJEbDF7 zS8PxlSDOr*I-AS3sI8l=#CDr)-xT5$k15hA^;2%zG3@;83hbKf2JJcaVfH2VZT8O{ z%p4LO);n}Nd~$Sk%yw*Wyz8XlG{dRHsl(}4XB%gsbDi@w7p6;)%MzD%mlsoQr;4X; zpL)xc %+^yMd)ZNTI#eJ*$O)i@o$z8)e??LqN_gLa_%;TM>o2SC_ zkmoO6c3xRt`@J4dvz#WL)-Y|z+r(Soy~}%GIzByR`p)SCKE^%*pL(B%zNWq+-#xw~ ze%5}Oeh2)X`#bu}{g3#+;d$~F@lFL`0l@*~0lk45fwKc^10MvL1f>Tx1&sx}1}_Xg z6+#RN4Ot&@lW)Km@*DYMGu&q^n$Z=?2%QyL8~QNJCQKgI5srq>2;UHXZ>IT7>CCnW zh~P(Th`1kV8JQRPeH1AwGO8}>QM6NZadh`A)~w`N`)9q5@sFvDxjWlxwsLl7tZHmh zY-8-3xPZ8-xPf?w_(k!T5_A(J3GIpG#Ms0=iQ{tu=WLoYoaCBRmULsT<=mpV7v|~C z%bs^USv6UZd^m-e5|^?+<%1wXP%juy<)>~<9TW0|n}ttBzM_qyQL(qUN<5P0omQ3h zINdvaL;7fjPeygdGYL;pD|wL_lDQ-EO;$wK-mK5raoH_7l$?~Dqf!lNmb5F^Ft;eT zPi8AClMUo~=55LwlZVRp xOiFd;3B_8yA~shQx|tGF !j;$toK>JuS&gYLDkTP@C~gS@r~shUu{a>bfJ1` z^^VQ7&C1OKHDNXFTg C{M|V%fo{xK_dk6MK@9S!GZ*1JJzrV5xZBjOk z9!NTH<(q(S+MDf~ceQX@Dh|Ry<-sT4rhI$jQ0Sq~!`#Eo- %($2E^vo}is5J@NVEf|KK?WT&2;PCq@=ncR8z zO#GQ^T~S@VXG71PKNocFOt)Y6$@AXlk6rM*aP%VgV%sIRORYVwJx6|U{ozQjTW{-S z_si{9Jg#)~P3t?+@6&(!YQWWV*Z9{iU7vZq@5byKw{9lg9JnRA_4s!7?H6|n?o8ZW zdXIRo{Jz@#>IeD{>VLHUv1Pz*;P_y`V9&!@5AO~Mho1hF|I>%z(nrik)gwkDjgOrl z9~%uCz4Bzvli{bbrxVZ0epdf^>vOB;-~HnIOV3#R*zgPai_gEVd8zYq@2jb=I>#f& zAH2?aJ@Kaet EfQSGPr~-icPy2nUK&RrZ6Dszd zLV)+g5WyJ3a;gHVh|=Si>E(MKK3<=RKv0qb0$>Pf1bznaQu|f_3{^lTKllFxFaK#} z2*v;g)V>q-!e3Cl@c;b({J-)4Q9$wXUICzQC?+r(MM<{;6YBlJwhxF%Y2)zbYdjMH zteZ#+%U1}pZxk=@4|_Hx`=0+z1?HTVPk<={Qx!TDQ7o*&F%_!TXIbZxba=lMI#jLy zMXWB^=&LHmu=d(xO+K*BiLtaknddqoIFTdXb^-AE5&Yl&uP^-1j{tuZIww>VZxKu= zpaPkI0+@|=vAwx}c@RJsSmE7e0O_EezGz5JH>#|{4o#%q7a-ZA#|IWIG0MeX}as|>*ufzG*& z1M?Z5oOo-d41mcc@%c?Y{i73q-ir4Gbi6PX(D#gX@9j(3rU0g%`>(bEhtjUvyFR~5 zmbc33THeclyP9*~rB8Gzk}ps5D9ZtCzDs%L^H-ANr%X(pcmWtX@qhWBAN*f_UQku& zeA^r!1NvrtUboYtZ^4_B{OvkvkncvPZMuA=d~%+$?oC;))HzFEsA{~6XNT#*@!Fp~ zNb7tne_H(-`oxF<^hCs3h)OR*NZ~4dYJISFs6a6xGGVx(kN=6MTYGi1e)8^Knk>*+ z^r>}p$s-uJ z@ zmL39B#KDjQ?ywTn!E&EF(L14zUjvxafU+QjeP>n&xIY8pAW~gmwrm7Zn%@~H8GueG zjEN>G5CaXOX*9tBqd*}qf|U`#I{=*=stY gA^egN>D>l z)6i;yeyAB_6x0e#eM9wy0l^qz6E{Y6=}OeGD}Akc4ayGfdi7?Zg7oM^(WNiM4IMWy zN}tp`S9OPua-)TPGF~QBrz;vkpGVoJ^>-J5GFm-br>(TazkA!RXPbn8UDE)dw5m17 zO`In;6~=Zz@KXDUGM<1!hR _uGXkzfZqR~ z(>dRrY`iLG92^TMT*v-hbFK8=(f_Gkl^5^ZPynVIfSrbP3|z9PnBh5KMxE(0glvmE z>f*;3E#8?^BgfcqsCunF=e+XdcQtu-(7aE_e3g+_?ZdI&6l*CL-v8tS8odI{c?MNs z%(}iCV_>>2!w}cQ)CG&7Q*@9y{a&@&%e2WR(Pmr-Qg%z7s}8b_6q6UORu;#?o~9~Z z(N=GdDeK@L=zA+eWO)0FPI{0k&o*b~qf|772)a}}fDunGbtCl)>Q)^&ls&1~js3lB z>z|vN9?L RsPsWAIcTwPdOYy`Byx)WK z>m(5K4-din!om5&tWmrU$U?&)W9!6Qh`tQShzQ;)nDgyQLrvfbAU9sTM(8rIS01NO zqz(woXqb2@9Mt&)69-0|&F-a3j~s%oR2Bw^RTa|#ojH!FG;B4ZH^+b^8OuET^h68Z zvbSM~tyVw`sE7h{&{}j=L8~9>c~YIJjD~r%UJga3$yfW@1@>DfFsJpy2yq^Yse&Ix zx9sG?TLNIScKN=xvwC?^Y8JTw0|LY f5w9ycV7~<@a{Fz^rYj+^A`j3k#^Xw+7M;cZip7Z>5xx9(tCMsIGy$ zR$+Ydv4g6r1Kcn DDj>MwSFM8Da~|Y8Nl{Gzyi&J)wq(d&+coA%Y1es{ zU9l_49Ai3<{J&a_n2|bk5?Mz%#)B!3UJ(2#JfC)&d1GBrhNoOaTAQYW_P0rVn_0?s zP6zC+SY+qf-Uru4%SpCwD-U0m`EA;bOmzVLa)(38r!FtfG@PjVq}$mZaoKER>iX&^ zLkOT#P7Yj8&jh8^FV4$ct(4?9y;+emaN5VLt!!L jirAoe#+>F zXqYB%)&>vHH?Q%1w8?Zi>A->m_HT6VeA{I5GQM{!Zl|P{(WF_?5ox?Qc$XRTmbx&j z5*$2smCEvO(xzA0;oYsoki(-2YO3qV!a|!0d745m){n?PZUFvFbrB^Ign?>35EHAu z3jj$FJz(C%F@{;(rNXfY_1}t{ZNMe|0bt%-6*%Cga?;>?ReItI2$xkLrGk+Kk+|wN zuSFRkaiOlQomwd?L>F)nnH_jJ( =FeDyC=~JC5hn z=>Wm!4|$ULOuIDDw)WVj6pHb7Xw}8npP01254pGH>*dKhATZ-^ZN+MQTUs<$#TKo= z8!!|7K_$lmf~yNa7zJnxWY`#~E6`Z=QwiP(oee<7ZpcrRu&)Y+P*#IWn ^T9&oPCg!@FZQrq$ zAf&XvPU@nS!h>1b;{*Q!%%FiOE?Wgq3~^=V-|MI%c(j>X2$gWYIhJv#>Z@f` zk>Dd%(gb`BmE!a0-vnLP%2ir_-IJ1@eg1tcTd~ZaoGZz@cR@>8P>U(1kW&LvLg=db zp0RVT4okZf;%d!X<82@a^G7d16A)mx+Pq?0Ul+zA+j^g_0L&*Dwm&})n;zb+VN5#^ zJJo+uY$q?(r)c^fYLTUPPosuIqv>Y?bb)~w4 8EVsI%i4bhyfnFdqW7k6 zwPg9o10@qh`C@=nFMq4&OMsXk_TSTCXYz=m 6`tHn}Co<5 zEp;U~%Y3Fkj `LTbc^GI94S=G?N*orVM5HMfJ)anWId|ZWjf;EHVZyh*Gok-_U zuACdc{)h|=w?Z{CydkrI53%^7K>g|7#1Mr}39p}d;O(=2vlS{+6&e%#BUOonr_n9P z0~QFwR`=&MvY%ih>W$wgATJkcETk-x_(bfXBmS)e;~~RiwCNis@ElPFG&fQ*igR7k zPf;R(3~&28N(<+8fU9gD!&j!1J^>J(Aaud;NCu*h5z9C+w0VL1q)Wr6(BlIUUd}du zB>jZmebs6e0DqQxZPctB8Q%zA_0<+1 yHM*)@ R2`YO zP$UC;^pRkbV|@(!Jm}(vlGr7PJFlua5oOjAML_vYfILKUlk2CRm}*Ai+LUkR*Ip_% zCJ$k`rv^Zzeb7q{89(7}yC}Yv)k1LW=_QRTc+c