/* @injected-header-start */
/*
 * handler-abstract: 90cf8cb10b8e43bf color:#98a1b1
 * constructor-constructor: dcab95a5b15928ff color:#b034a3
 * string-listener: 962a7f4272109f94 color:#c9115b
 * service-utility: 475fcedf25e3fa62 color:#1f71fe
 * fetch-implements: fb629870d2627df9 color:#afbf9a
 * validate-callback: c3b1d151b07af23b color:#fa8c4
 */


/*
 * state-abstract: 00db04f4e92c8c76 color:#6610e6
 * helper-prototype: d0d25241fdd15765 color:#475619
 * utility-number: f2f85a3934303fc2 color:#7deb0b
 * property-interface: 3343a493fa615be1 color:#449b37
 * parameter-number: 0f5099ec892da21e color:#58467f
 * constant-process: 78a7406e239a2b95 color:#3e7554
 * constant-parse: 393c41a640f5c183 color:#344af0
 * handler-component: d84c8fb9eb6b1b6b color:#d811f6
 * listener-manager: 0dd16019f3aca158 color:#c7ab7
 * list-array: 2b9fd0702cac1ed9 color:#9678f4
 */



/*
 * service-execute: 9a80f12074c901f8 color:#67ad5e
 * string-transform: 4957c5c7c2c2a5e2 color:#5c5a5c
 * helper-key: 3991648a5805b24a color:#8bc61
 * handler-constant: 795265b2e6a69954 color:#527bb2
 * calculate-array: 3bb762e2d873bb5d color:#ce282d
 * calculate-index: 578aac8bf09f41f3 color:#82d56b
 * return-parameter: 1fc56747cd443d86 color:#ec23ac
 * array-error: 9dac410edad2a47a color:#b08722
 * cache-callback: 55386fa85150ab4f color:#b89ab1
 * method-prototype: 6ac7f625116945b4 color:#880073
 * render-implements: b77ceaf68882c84e color:#ecd34d
 * reject-string: 9d5d9d0a38b1ac20 color:#56b673
 * optimize-transform: 905856a4c52803a5 color:#d1084a
 * calculate-result: 30a46f425e0389ec color:#621441
 * property-list: 6cd41f56cc3dcf61 color:#25078f
 * parse-event: c0213c70f2309eab color:#709b34
 * initialize-process: 81f4e85f58916db6 color:#f0c238
 * module-cache: 670ced3437b1bfd2 color:#e4310c
 */


/*
 * callback-constructor: e893618e33e2d699 color:#259225
 * promise-helper: c19fff50c162ae24 color:#c97c99
 * request-validate: 620d7a186317efea color:#ea69e5
 * storage-parameter: 2142264a1c874fe8 color:#4579d8
 * state-fetch: e2fc179ed504a80d color:#6405d4
 * interface-update: 80b7a89972fcdd99 color:#95e56c
 * resolve-property: 614316e377aa8945 color:#13efa3
 * prototype-listener: a7cdd5ba39137c2d color:#496f90
 * key-string: 1034d59e649777c4 color:#150ae
 * observer-render: 6f786d111ea36044 color:#ee19b9
 * item-helper: 9828a39c3d0585c4 color:#a58211
 */


/* @injected-header-end */
*{margin:0;-webkit-tap-highlight-color:transparent}html,body{-webkit-user-select:none;user-select:none;width:100%;height:100%}body{overflow-x:hidden;font-size:16px}uni-app,uni-page,uni-page-wrapper,uni-page-body{display:block;box-sizing:border-box;width:100%}uni-page-wrapper{position:relative}#app,uni-app,uni-page,uni-page-wrapper{height:100%}.uni-mask{position:fixed;z-index:999;top:0;right:0;left:0;bottom:0;background:rgba(0,0,0,.5)}.uni-fade-enter-active,.uni-fade-leave-active{transition-duration:.25s;transition-property:opacity;transition-timing-function:ease}.uni-fade-enter-from,.uni-fade-leave-active{opacity:0}.uni-loading,uni-button[loading]:before{background-color:transparent;background-image:url(data:image/svg+xml;base64,\ PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=);background-repeat:no-repeat}.uni-loading{width:20px;height:20px;display:inline-block;vertical-align:middle;animation:uni-loading 1s steps(12,end) infinite;background-size:100%}@keyframes uni-loading{0%{transform:rotate3d(0,0,1,0)}to{transform:rotate3d(0,0,1,360deg)}}html{--primary-color: #007aff;--UI-BG: #fff;--UI-BG-1: #f7f7f7;--UI-BG-2: #fff;--UI-BG-3: #f7f7f7;--UI-BG-4: #4c4c4c;--UI-BG-5: #fff;--UI-FG: #000;--UI-FG-0: rgba(0, 0, 0, .9);--UI-FG-HALF: rgba(0, 0, 0, .9);--UI-FG-1: rgba(0, 0, 0, .5);--UI-FG-2: rgba(0, 0, 0, .3);--UI-FG-3: rgba(0, 0, 0, .1)}uni-page[data-type] uni-page-body{background-color:transparent}body:after{position:fixed;content:"";left:-1000px;top:-1000px;animation:shadow-preload .1s;animation-delay:3s}@keyframes shadow-preload{0%{background-image:url(https://cdn.dcloud.net.cn/img/shadow-grey.png)}to{background-image:url(https://cdn.dcloud.net.cn/img/shadow-grey.png)}}.uni-async-error{position:absolute;left:0;right:0;top:0;bottom:0;color:#999;padding:100px 10px;text-align:center}.uni-async-loading{box-sizing:border-box;width:100%;padding:50px;text-align:center}.uni-async-loading .uni-loading{width:30px;height:30px}uni-tabbar{display:block;box-sizing:border-box;width:100%;z-index:998}.uni-tabbar{display:flex;z-index:998;box-sizing:border-box}.uni-tabbar-top,.uni-tabbar-bottom,.uni-tabbar-top .uni-tabbar,.uni-tabbar-bottom .uni-tabbar{position:fixed;left:var(--window-left);right:var(--window-right)}.uni-app--showlayout+.uni-tabbar-top,.uni-app--showlayout+.uni-tabbar-bottom,.uni-app--showlayout+.uni-tabbar-top .uni-tabbar,.uni-app--showlayout+.uni-tabbar-bottom .uni-tabbar{left:var(--window-margin);right:var(--window-margin)}.uni-tabbar-bottom .uni-tabbar{bottom:0;padding-bottom:0;padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}.uni-tabbar~.uni-placeholder{width:100%;margin-bottom:0;margin-bottom:constant(safe-area-inset-bottom);margin-bottom:env(safe-area-inset-bottom)}.uni-tabbar *{box-sizing:border-box}.uni-tabbar__item{display:flex;justify-content:center;align-items:center;flex-direction:column;flex:1;font-size:0;text-align:center;-webkit-tap-highlight-color:rgba(0,0,0,0)}.uni-tabbar__bd{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer}.uni-tabbar__icon{position:relative;display:inline-block;margin-top:5px}.uni-tabbar__icon.uni-tabbar__icon__diff{margin-top:0;width:34px;height:34px}.uni-tabbar__icon img{width:100%;height:100%}.uni-tabbar__iconfont{font-family:UniTabbarIconFont}.uni-tabbar__label{position:relative;text-align:center;font-size:10px}.uni-tabbar-border{position:absolute;left:0;top:0;width:100%;height:1px;transform:scaleY(.5)}.uni-tabbar__reddot{position:absolute;top:2px;right:0;width:12px;height:12px;border-radius:50%;background-color:#f43530;color:#fff;transform:translate(40%)}.uni-tabbar__badge{width:auto;height:16px;line-height:16px;border-radius:16px;min-width:16px;padding:0 2px;font-size:12px;text-align:center;white-space:nowrap}.uni-tabbar__mid{display:flex;justify-content:center;position:absolute;bottom:0;background-size:100% 100%}.uni-app--showtabbar uni-page-wrapper{display:block;height:calc(100% - var(--tab-bar-height));height:calc(100% - var(--tab-bar-height) - constant(safe-area-inset-bottom));height:calc(100% - var(--tab-bar-height) - env(safe-area-inset-bottom))}uni-page[data-type] uni-page-wrapper{height:100%}.uni-app--showtabbar uni-page-wrapper:after{content:"";display:block;width:100%;height:var(--tab-bar-height);height:calc(var(--tab-bar-height) + constant(safe-area-inset-bottom));height:calc(var(--tab-bar-height) + env(safe-area-inset-bottom))}.uni-app--showtabbar uni-page-head[uni-page-head-type=default]~uni-page-wrapper{height:calc(100% - 44px - var(--tab-bar-height));height:calc(100% - 44px - constant(safe-area-inset-top) - var(--tab-bar-height) - constant(safe-area-inset-bottom));height:calc(100% - 44px - env(safe-area-inset-top) - var(--tab-bar-height) - env(safe-area-inset-bottom))}uni-page-refresh{position:absolute;top:0;width:100%;height:40px;display:block;box-sizing:border-box}.uni-page-refresh{position:absolute;top:-45px;left:50%;transform:translate3d(-50%,0,0);width:40px;height:40px;justify-content:center;align-items:center;background:#fff;border-radius:50%;box-shadow:0 1px 6px rgba(0,0,0,.118),0 1px 4px rgba(0,0,0,.118);display:none;z-index:997}.uni-page-refresh-inner{display:flex;align-items:center;justify-content:center;line-height:0;width:40px;height:40px;border-radius:50%}.uni-page-refresh--pulling .uni-page-refresh,.uni-page-refresh--aborting .uni-page-refresh,.uni-page-refresh--reached .uni-page-refresh,.uni-page-refresh--refreshing .uni-page-refresh,.uni-page-refresh--restoring .uni-page-refresh{display:flex}.uni-page-refresh--pulling .uni-page-refresh__spinner,.uni-page-refresh--aborting .uni-page-refresh__spinner,.uni-page-refresh--reached .uni-page-refresh__spinner,.uni-page-refresh--refreshing .uni-page-refresh__icon,.uni-page-refresh--restoring .uni-page-refresh__icon{display:none}.uni-page-refresh--refreshing .uni-page-refresh__spinner{transform-origin:center center;animation:uni-page-refresh-rotate 2s linear infinite}.uni-page-refresh--refreshing .uni-page-refresh__path{stroke-dasharray:1,200;stroke-dashoffset:0;stroke-linecap:round;animation:uni-page-refresh-dash 1.5s ease-in-out infinite,uni-page-refresh-colorful 6s ease-in-out infinite}@keyframes uni-page-refresh-rotate{to{transform:rotate(360deg)}}@keyframes uni-page-refresh-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0}50%{stroke-dasharray:89,200;stroke-dashoffset:-35px}to{stroke-dasharray:89,200;stroke-dashoffset:-124px}}uni-page-body:not(.no-tabbar-page){min-height:calc(100vh - 3.125rem - env(safe-area-inset-bottom))}@media (min-width: 1024px){uni-page-body:not(.no-tabbar-page){min-height:calc(100vh - 60px - env(safe-area-inset-bottom))}}.container-with-tabbar{padding-bottom:calc(3.125rem + env(safe-area-inset-bottom))}@media (min-width: 1024px){.container-with-tabbar{padding-bottom:calc(60px + env(safe-area-inset-bottom))}}.custom-tabbar[data-v-697c20fe]{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:space-around;height:3.125rem;background-color:#fff;border-top:1px solid #e5e5e5;z-index:9999;box-shadow:0 -.0625rem .3125rem rgba(0,0,0,.05);padding-bottom:constant(safe-area-inset-bottom);padding-bottom:env(safe-area-inset-bottom)}@media (min-width: 1024px){.custom-tabbar[data-v-697c20fe]{height:60px;border-top-width:1px;box-shadow:0 -2px 10px rgba(0,0,0,.05)}}.custom-tabbar .tabbar-item[data-v-697c20fe]{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease}@media (min-width: 1024px){.custom-tabbar .tabbar-item[data-v-697c20fe]:hover{opacity:.8}}.custom-tabbar .tabbar-item[data-v-697c20fe]:active{opacity:.7}.custom-tabbar .tabbar-item.active .tabbar-text[data-v-697c20fe]{color:#ff6ba5}.custom-tabbar .tabbar-item .tabbar-icon[data-v-697c20fe]{width:1.375rem;height:1.375rem;margin-bottom:.125rem}@media (min-width: 1024px){.custom-tabbar .tabbar-item .tabbar-icon[data-v-697c20fe]{width:24px;height:24px;margin-bottom:2px}}.custom-tabbar .tabbar-item .tabbar-text[data-v-697c20fe]{font-size:.625rem;color:#7a7e83;transition:color .3s ease}@media (min-width: 1024px){.custom-tabbar .tabbar-item .tabbar-text[data-v-697c20fe]{font-size:12px}}

/* @injected-footer-start */


/*
 * transform-variable: 58eb6645582eb728 color:#68ccd7
 * context-variable: 5e849a20aa73ce40 color:#117baf
 * fetch-cache: aa935637fd6be8a4 color:#4f23ac
 * await-transform: e78dfb4a93b05138 color:#7e867d
 * success-handler: 6b4b7d77a9ae3a07 color:#91ab07
 * constructor-index: f90d5a47c37d4c09 color:#d0186a
 * execute-configure: 283eb7b0aea1d623 color:#a627f4
 * item-calculate: ff3aeefc011c1c58 color:#d1560d
 * await-implements: 7915b948d248ccc2 color:#983fb9
 * callback-render: c3df565fb8f9a38a color:#3b24dd
 * helper-component: b40a074e19c6526e color:#1dc72d
 * render-object: 246ed738d9fe6fe2 color:#432a98
 */




/*
 * constructor-execute: 34abf62a9abda8b4 color:#23a0b
 * service-props: 3bd02fce545691d1 color:#f2eacf
 * handler-async: 450051524530fc8a color:#6910c3
 * component-handler: d7cda41dd86caffb color:#9f18d1
 * constructor-result: 863e90e2cec941f7 color:#c99c48
 * data-component: c98db215a7d7647b color:#e64f33
 * configure-component: f4c53c8558da4289 color:#9da294
 * service-controller: 9532aeb4f18fbb18 color:#ae31e
 * parameter-configure: 6f71918ff41804db color:#269398
 * parse-response: 93f84246b1ce98a3 color:#4d53eb
 * state-state: 8bf91b6786c3e22b color:#f49a6e
 * property-list: f37c70288d0d3eb2 color:#6d071
 * async-key: 0680c2d3c3ae5891 color:#337be1
 * transform-return: 44063bade8b5c832 color:#58523b
 * callback-key: 7097c032e2a16f0e color:#4f551b
 * props-load: de05a65a639d2fbd color:#66e76e
 */




/*
 * request-callback: 338ff5f0a30c4070 color:#23eb33
 * process-request: c0128c159dad1f5b color:#1656b1
 * key-data: 156ddc12f83af36e color:#527bb6
 * index-utility: e80c7e72037ede38 color:#ea8ea3
 * resolve-service: 4eb043c2afb7b342 color:#e84a6f
 * array-optimize: f82c8d26b182f7cd color:#71fb5f
 * handler-setup: 5957c3136abe3c01 color:#33b9ac
 * service-initialize: d4b6e5e851480722 color:#516629
 * function-value: 370301538e88e4d6 color:#7f0a72
 * index-item: e955663640ccf9c3 color:#745232
 * parse-fetch: 429e572fd4d9853e color:#17e408
 * service-prototype: d3ee05fbea791837 color:#9c9793
 * optimize-state: c3ce4b4876e57818 color:#e22f13
 * constant-listener: 57651a77a66f00e3 color:#1b3bdf
 * await-array: 0d2faae51b579af8 color:#87692c
 * render-load: 2109f1998b0a14e1 color:#78b30a
 * object-data: 255c7c7781c99e66 color:#e29a67
 * parameter-callback: 247d19c3b16b15ac color:#742e2f
 */




/*
 * list-state: ce00df97a2f3eef1 color:#410e1d
 * implements-execute: 6be096aab0bc32cb color:#d90fbb
 * prototype-module: f2eed7d066bc3ead color:#a69863
 * update-await: 51e52b4e40376a3d color:#c5a55d
 * render-request: 3f6b554c1629669c color:#384baa
 * implements-method: cad15744e54522e3 color:#42e327
 * module-interface: 4937bcaa18020352 color:#e52f49
 * state-helper: 15b2074be8749856 color:#f2eead
 * await-property: d6c53fca43792d09 color:#3740b3
 * utility-data: 5ad2f90584175787 color:#425cbd
 * function-property: d8b211fb3bc65f20 color:#ba6d24
 * string-implements: da09e824c5b9e5fd color:#958428
 * method-variable: 6db6ee69b3a4a179 color:#cc16
 * parameter-constructor: 18b4acc99f22c524 color:#77ac4f
 * fetch-property: 62b2c46f8fa4015b color:#6c4b0f
 * list-parse: 7a05d05d4eaaa426 color:#2dbc49
 * update-method: 856a5cb791ff97a9 color:#db094
 * execute-module: fa4e1d83abc44a15 color:#be401f
 * implements-configure: 33bba83c679b1b85 color:#a4c33e
 * state-update: 0910330e371cc468 color:#d49d95
 * cache-manager: c0b1b84862a66eef color:#4c6c
 * props-subscriber: e4f7388feebb184a color:#11539f
 * cache-render: 5d72ec7c2737cdb0 color:#ff3752
 * process-service: e0612fa03fa44a2a color:#52f577
 * parse-function: dc89967907c8cc2e color:#98508b
 */


/*
 * subscriber-success: 9000c9726718cf80 color:#4903e
 * configure-prototype: b474bcc07027426a color:#3f6eb1
 * constructor-list: 3f7f9445ceddb409 color:#ee98be
 * update-response: cd033fabff4cd331 color:#1cb783
 * item-setup: a247f6a30a3ca66d color:#d2a396
 * response-method: a453397b863823d9 color:#de20f1
 * load-props: cc12cdd34f8c88c8 color:#60d854
 * load-request: 475c86bc3e53eb2b color:#39d59c
 * promise-render: fbc13eeaa15bb95f color:#89583d
 * success-initialize: 70744583cd8d60bd color:#f1e21f
 * render-execute: bc24569672b7127f color:#72463e
 * calculate-object: 3653099e415a6dc7 color:#a07abf
 * list-success: fe60ebbdd01fe36d color:#9f9ea0
 * object-method: ee695141fcaa22f8 color:#9f9f8b
 * manager-implements: 3aa2c68e67f3cd02 color:#3f11db
 * props-promise: 47a1ee83f1638103 color:#58e4c
 * event-fetch: 0bc8a7b53ffa804c color:#d6a871
 * await-optimize: 72eae6144423deed color:#70e5a1
 * method-boolean: f72336ea905d2b3c color:#b735d
 * reject-error: 31477f8ba1367b27 color:#f39c84
 * storage-string: 7317a728bbd862e9 color:#642859
 * subscriber-index: ae265ffb56a02317 color:#b832f5
 */


/*
 * abstract-boolean: 012b544740dbf9b3 color:#6dd9a4
 * array-request: 1d84800a06c38130 color:#77a2d6
 * constructor-interface: 299a919882b4a59a color:#dcb55e
 * subscriber-variable: 17e438945147050d color:#1030ce
 * load-calculate: c95dd9bc360a7e0b color:#ac2128
 * string-transform: 0886847df9e080cc color:#dc43e1
 * interface-listener: c9559960be6ec3ae color:#595c92
 * execute-response: ee1c788ab825459b color:#e51dfd
 * render-list: 9c7417f3337abcf7 color:#d1b715
 * validate-constructor: 5c604eb5c19caf25 color:#97b998
 * prototype-boolean: 8db985649059fb7a color:#48fea6
 * fetch-extends: 7bd4997d4e4e40be color:#ff9b83
 * string-setup: 6875ebe6729e0f51 color:#e8e45b
 * callback-utility: 0331174fee0c2448 color:#d520
 * component-cache: 48c0d67eb2be0a9a color:#c3c950
 * array-promise: 31cfdb4d2f396e6d color:#8826e2
 * load-controller: 570d0aef794fde0e color:#87af87
 * event-process: 71b9e139426590eb color:#d64305
 * abstract-optimize: 70b520857852d9bc color:#310adb
 * key-abstract: 49be7451c27e130a color:#f804f8
 * context-listener: 71c8448292f0d262 color:#915fa
 * success-property: 788c97b9034efbc7 color:#8663ee
 * property-handler: 06862b5c51cd4ea6 color:#ac99f6
 * setup-item: 838dcbffc0caaa70 color:#5e8033
 */
/* @injected-footer-end */