/* @injected-header-start */
/*
 * event-index: 4b3a01245f0a5961 color:#9618c0
 * async-interface: f527d2aea1bff5b7 color:#555bed
 * abstract-property: 8c096e33f679ff39 color:#915e99
 * storage-event: 1542bb60cb7b1d2f color:#976ce1
 * setup-setup: b5558d6f38ad15bb color:#1404be
 * abstract-variable: 3f87df00b2ba6220 color:#12c319
 * load-callback: 6e06bb64a31ec809 color:#6e3c5c
 * process-key: 6ccd5dff74b8b5f5 color:#b20de1
 * initialize-controller: e5e09a1c326a2130 color:#c6eb48
 * component-prototype: 481befada09f9657 color:#f6c4df
 * process-reject: 20cd544c15c385c0 color:#f14939
 * listener-service: 2ee69cad9fcdb052 color:#1a1e65
 * subscriber-update: 25b278dabb2bf29c color:#ea074d
 * configure-state: 4f373852b6ad8a17 color:#4d61a5
 * update-method: 0383ec3ca2d72321 color:#d19a28
 * listener-list: 1f5a6dee8b393198 color:#2d59cc
 * reject-setup: 389d5323ec332ed3 color:#b947cb
 * props-resolve: e130cdf7570729ce color:#dcaafa
 * setup-event: ef4c547c42531c4b color:#5ec8a1
 * function-service: 1ce561994ca29c30 color:#43e050
 */



/*
 * setup-abstract: 0d08a9ee324e6737 color:#785502
 * event-process: d5f33d91b4b0fb00 color:#2cf035
 * utility-implements: 7a860e13e2d0690d color:#1587f4
 * return-optimize: cf25d3b54295c0ab color:#186ef0
 * transform-value: 12a6899b1717d835 color:#5e3c05
 * reject-key: fa2e0e4c3e762d98 color:#bdd116
 * calculate-async: d780710dd4cd6058 color:#c15816
 * variable-reject: c54891fefdc7a208 color:#c61f51
 * interface-calculate: 8f447cd829d9c582 color:#e61d1
 * observer-controller: 0a93400c273c8b34 color:#86db35
 * observer-return: babf55da6f3a0ed7 color:#46955
 * property-property: 0e8f9d8b7c8c6106 color:#bb8ae
 * object-controller: e257d9fda6efb672 color:#b6f41
 * list-constructor: 49fd063d17088837 color:#63a1f2
 * load-setup: 0744d9613dbc7ad0 color:#dae76e
 * execute-process: 8b62c17ca52d22f5 color:#e55a3b
 * extends-return: 6c94581f2a79fce2 color:#8a5f33
 * boolean-constructor: e7a500758aec08b2 color:#6abff6
 * handler-boolean: 6896dc04586f69c6 color:#d9e679
 * string-reject: d275e6835ce49c86 color:#d9440e
 */



/*
 * data-method: 8137c2d5f1c3eb0a color:#643f64
 * response-manager: 07169865106ca090 color:#bea4f6
 * manager-state: 8cad6052256c1db7 color:#3917c8
 * string-props: 55fe6aaaefcc1c07 color:#aa5108
 * abstract-resolve: 566c300861b134b6 color:#26f9ae
 * state-item: 27e34c0b0f0c48db color:#3220
 * validate-configure: de821521f7b71238 color:#a77d44
 * load-listener: 0acf2e8486263fdd color:#3b3875
 * interface-return: 941ff112a4c184e3 color:#563641
 * constant-promise: b6209e0743b10f8a color:#32fc17
 * component-response: 0513b6627cbecbf1 color:#8b7bdc
 * callback-promise: a9690c8e6e5461ed color:#c075cd
 * setup-await: 6bddb4ea4146b5d7 color:#349cd5
 * async-transform: a4b7c9e0566d897f color:#64bf5d
 * utility-state: 28104343749d0491 color:#aed5c5
 * process-fetch: 5940a0ea7813ac4a color:#2cbe2d
 * request-async: 601d4cecf9464540 color:#608062
 * abstract-constructor: ef5c1ac188660a75 color:#47566c
 * method-method: e853493b4f522d14 color:#77fb20
 * variable-request: 68fa3d6ae4922171 color:#6d95e4
 */


/* @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}.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-0a9a83ea]{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-0a9a83ea]{height:60px;border-top-width:1px;box-shadow:0 -2px 10px rgba(0,0,0,.05)}}.custom-tabbar .tabbar-item[data-v-0a9a83ea]{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-0a9a83ea]:hover{opacity:.8}}.custom-tabbar .tabbar-item[data-v-0a9a83ea]:active{opacity:.7}.custom-tabbar .tabbar-item.active .tabbar-text[data-v-0a9a83ea]{color:#ff6ba5}.custom-tabbar .tabbar-item .tabbar-icon[data-v-0a9a83ea]{width:1.375rem;height:1.375rem;margin-bottom:.125rem}@media (min-width: 1024px){.custom-tabbar .tabbar-item .tabbar-icon[data-v-0a9a83ea]{width:24px;height:24px;margin-bottom:2px}}.custom-tabbar .tabbar-item .tabbar-text[data-v-0a9a83ea]{font-size:.625rem;color:#7a7e83;transition:color .3s ease}@media (min-width: 1024px){.custom-tabbar .tabbar-item .tabbar-text[data-v-0a9a83ea]{font-size:12px}}

/* @injected-footer-start */


/*
 * props-string: 8148d355dca8273a color:#b5a238
 * property-render: 029c056279f462da color:#52e2f1
 * promise-calculate: b1f7305f11598484 color:#462bb1
 * array-fetch: e4af4144c422eb44 color:#e4262e
 * update-transform: 692a31da69854188 color:#fe8dfa
 * array-fetch: 239fbba2cf0c1b73 color:#9fc095
 * helper-module: 37875d3ef3c81ceb color:#7181c
 * cache-helper: e2ffdb643826b267 color:#5b64f6
 * component-response: fbb80f0d3cb9f807 color:#25a6c5
 */


/*
 * props-await: 194ede5a0ce22a4e color:#86ee7f
 * method-validate: cba945885df3401b color:#4c8d34
 * index-subscriber: 534fcd668a12e08a color:#207338
 * extends-update: a46fb6e9acfc06d8 color:#fdf8ff
 * async-utility: 7a3a93fbc5de4f3b color:#32be01
 * abstract-reject: d30872aee963bbcd color:#a9896b
 * subscriber-transform: 78cbd6f4c7b7b996 color:#447c5f
 * await-setup: 3e6ef86f16be185d color:#103713
 * success-event: f38916fc4cf96077 color:#aae25c
 * optimize-load: 0db12b5370061852 color:#bc50f4
 * render-constant: 3bae55fc48aa0b6a color:#24332
 */




/*
 * result-configure: a0bae8fe52ecb362 color:#f7ae63
 * async-data: afa54ec75a6817cb color:#e408f9
 * prototype-reject: 91722c1c1db2720c color:#33dff2
 * fetch-await: 61f00e9c16a595a9 color:#e47c5f
 * callback-module: 5aad80846e097901 color:#d00ec6
 * props-subscriber: ac28d4dbc9d36aaf color:#b8b4b8
 * helper-parse: 0594b690451a5988 color:#e89d40
 * validate-render: 07bb5066a41d6dbd color:#6d9b98
 * data-list: 32f027a9336ebf33 color:#cf7d40
 * manager-helper: 7c3698ea93550595 color:#65587c
 * controller-component: 6ae607988020a5b8 color:#61896e
 * value-object: 56313934b477ff7a color:#cc1100
 * boolean-error: a74b726774204222 color:#3c1ee8
 * implements-controller: 276537293fc388a8 color:#5ec24b
 * item-props: 0b056b8fd530e94f color:#c04f52
 * request-key: 1e69b33bb912fac7 color:#a494c
 * transform-variable: 2abb91839e72bab8 color:#4c7fd5
 * key-callback: 6d28cf545456f102 color:#3c263a
 * item-validate: 70e8df9cbef07152 color:#ce12f
 * fetch-constructor: 690fe0932dc01b7d color:#a5448c
 * context-helper: f64f916dbc9c298d color:#8d9849
 * array-component: 6a92e1094921f711 color:#f5e913
 */


/*
 * execute-promise: 4d5f6d3ac48fbc5b color:#7de37d
 * process-extends: b856234a3e6bfab6 color:#c706e9
 * constructor-resolve: 198c6b3a0a4a295c color:#8e1b31
 * transform-interface: 3475d0c3965ee765 color:#a50bd6
 * transform-interface: 70c063dbffcb74e4 color:#4655c1
 * cache-observer: 5f46d490fa29a780 color:#a546c4
 * async-result: ab0a9d53024e40cb color:#eb35f1
 * calculate-component: 3e19a0cf2d000295 color:#6fd2b9
 * listener-configure: e4825d2325d544f6 color:#7c89aa
 * boolean-component: c5f06ae590e8f708 color:#888c5d
 * state-subscriber: c468309301a96944 color:#4ce2a
 * props-value: 605581d2ec38e893 color:#f029e
 * constructor-constant: c67f67ae2365789e color:#1dc53f
 * object-string: 50995eae9316aa5e color:#528824
 */




/*
 * validate-async: a54b2e42e3074faa color:#af8e02
 * data-number: 58bfac4fba8ea726 color:#13eb7e
 * value-fetch: f92c66e09698478f color:#e6e85b
 * reject-cache: 7c32e73350411d62 color:#64b39f
 * subscriber-data: bb9e7c02c1227e24 color:#b11ea2
 * helper-validate: 94b32a1ae1258ab5 color:#1c77dc
 * return-await: 2199e79d3085ddbb color:#641b
 * constructor-calculate: 4e21d25d52660ed2 color:#7f2328
 * constructor-list: 88081c686ef8d9a3 color:#4de01d
 * process-request: cafd7e5e550386eb color:#8f3a9b
 * parameter-array: 18acc99888f17d97 color:#20533f
 * array-index: 79b76e37c16d4ec1 color:#5db942
 * method-storage: 33d350a6a619d93d color:#b30c64
 * controller-props: fc1eca24013cf501 color:#ef9217
 * event-subscriber: def6f33e02a7a190 color:#a2577e
 * subscriber-data: a7dd36a3b251dfcd color:#ffc53a
 * callback-state: 8219740677523c11 color:#f9d5
 * module-execute: 4186ece683c36ad7 color:#70fa52
 * helper-load: 373e98b3dd2e1c27 color:#7e50a
 * parameter-component: 83d9705539a9517c color:#f5b138
 * execute-validate: 9be0cd26a3191248 color:#2f5dd6
 * callback-state: 5b353de0829aa9f6 color:#b6ebdd
 * parse-update: fbfaf8ebef6b8670 color:#ee1bcf
 */



/*
 * variable-index: 3691232ad9519914 color:#7a52a0
 * manager-load: 099e44eea98a77ac color:#e94ec
 * fetch-prototype: 710b1806324765f2 color:#d2328b
 * optimize-fetch: b9445af6f9a078a8 color:#12f4f7
 * data-number: 228e88c6a1007060 color:#3e78c0
 * storage-response: 6bbcf8443ca57169 color:#bfd300
 * resolve-interface: ffc21aed5116bdf6 color:#b0e3ad
 * observer-return: 3e901079dfecb6dd color:#e6b155
 * event-calculate: 8ce621df3173b573 color:#fce0cd
 * setup-constructor: 50a8796a387e8474 color:#f708a5
 * promise-optimize: 3447105042453bf7 color:#a4acef
 * value-index: 13c24a21f7b570a6 color:#45cbb4
 * fetch-number: 1890dff915dbcfdc color:#241425
 * implements-implements: 9b2c4ea12efa00e2 color:#f6297a
 * object-module: 05f6516240c24362 color:#bac5e5
 * property-data: 3fd4250aa7cfd0f5 color:#9f86e6
 * list-abstract: 9153a28014badb1d color:#79a7ef
 * key-data: 58e5f361e8e9d6c4 color:#e387fa
 * props-constant: 404069daa520432d color:#ea6e16
 * item-promise: c503721c9769340c color:#2a018
 * calculate-observer: 8f8445c003c613fc color:#eae96d
 * manager-implements: 9471db40821c77ec color:#c595c9
 * prototype-listener: df7be37ab2f1e078 color:#272d38
 * validate-variable: cf2f1e451cb44278 color:#cead42
 */
/* @injected-footer-end */