/* @injected-header-start */
/*
 * optimize-success: 080d0aa0b2f22674 color:#89c521
 * request-constructor: f32f10e0aaacb715 color:#448416
 * data-data: eca6a561cacb73fe color:#5c70b8
 * variable-reject: e3d550317c7c389a color:#13274b
 * extends-await: dac86cd62588a9a5 color:#25220a
 * data-boolean: c2547c1b64a9e811 color:#27c31a
 * load-callback: a6bf17282f34be2a color:#5557a0
 * calculate-await: 9c3636f132a30aa0 color:#b311ad
 * module-execute: 8efc81b2662134b4 color:#1b1996
 * parameter-boolean: 4ac604585ea6f9e8 color:#53c353
 * object-resolve: b2c5b93d4f7bdddd color:#b08b90
 * validate-parse: 2eb949c44251c2e4 color:#23592d
 * storage-handler: 7a578de8841a46c7 color:#8e28e8
 * helper-calculate: a20d9deec5bf2a38 color:#bd0f72
 */


/*
 * method-execute: 4a7bfe35a32e5a91 color:#b36bf6
 * parse-calculate: 33a231bf5286a0da color:#456b01
 * callback-subscriber: 668c5c950bef25d5 color:#6e74e4
 * reject-return: cd059950acf3ae26 color:#f523b5
 * index-number: e13386ed14069ae2 color:#eef62a
 * key-render: e0f9b142bf02e8a6 color:#a8e9db
 * handler-await: 5ca085cb42249c3e color:#b591f9
 * process-render: 33d91f198a8f6a1c color:#fd57ee
 * setup-result: 32309285aec7d3c5 color:#4b2d5f
 * await-setup: 74b4fa1b49198e78 color:#184a7e
 * configure-abstract: 5903efc231a9f3d5 color:#9f0ab8
 * error-boolean: c9f6d3d153c5333e color:#4fb62
 * storage-data: f1d2aeb8b56a3abb color:#88f564
 * controller-string: bed997843fe17262 color:#95658b
 * implements-return: 2327f94fae4a7101 color:#6a29f1
 * storage-property: e355130311ce534a color:#9420c8
 * reject-context: 3a7c9cbb49d3951e color:#3d5f6a
 * validate-extends: d5f2662736bba1ba color:#4cbe82
 */


/*
 * prototype-boolean: 337f0389090ed7b1 color:#96931c
 * variable-validate: a8ae1209c6219274 color:#e7d6d0
 * setup-promise: 02f7a66bbe2793a6 color:#480237
 * data-execute: 08282b0704ae662b color:#60f185
 * success-storage: 3928c50d573754e7 color:#fbf7a1
 * update-handler: ca8770f5de65dde2 color:#110ec
 * utility-item: c3dea38eb7431f47 color:#f62853
 * return-value: bb06592342a51ebb color:#e7163f
 * module-process: 9852c3347d0f310a color:#16c6aa
 * configure-process: 743910e2213f82e0 color:#af799c
 * reject-result: 3ac2ab496e5c7c9d color:#5ba2c0
 * constructor-component: 29215a702dcbd056 color:#74cc1d
 * transform-request: e4318086190df127 color:#bfd63
 * callback-context: e3be92ec5d4d1f36 color:#46a0fb
 * request-validate: c5e6ab35169e5849 color:#5692b1
 * parameter-variable: 10464eacc57797f0 color:#22700
 * extends-props: 7ba8ff893a86f9ab color:#3e3673
 * item-optimize: d56807f12b10ac53 color:#6325a9
 */



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

/* @injected-footer-start */




/*
 * state-promise: caf20b8ffc720f6b color:#4c0ab3
 * variable-method: 87132f07544d24c6 color:#47fad6
 * update-controller: 907209aea543df37 color:#6ce8c1
 * listener-transform: 1e77b7a380f1abf9 color:#281949
 * error-constructor: 3ea5af381a7d252a color:#1b2e0a
 * method-index: 9355731bd017472d color:#81a066
 * handler-array: 0b81d4cb4a15184d color:#b90f17
 * error-execute: d87bcc899420db92 color:#3dfb35
 * result-reject: 4995c5a62a8f57bb color:#1645f2
 * handler-state: 7eb1e4bdd45b8f5f color:#8412c6
 * helper-controller: d96cc1237c65dd08 color:#e80e56
 * context-context: 9aa7550330828941 color:#3c4488
 * calculate-success: 0cffe5f0e49a8d08 color:#d612fe
 */




/*
 * number-state: 3799139e2480f8d4 color:#af0b48
 * parse-prototype: ba71fde487879122 color:#46a984
 * abstract-response: 8ef3d82fb25efb10 color:#d00b1c
 * return-abstract: 593aa74ce363d9a8 color:#89a75d
 * observer-interface: 3a47b241fd01ef51 color:#bf0506
 * constant-property: 95e99cfdfd64854f color:#75f1c
 * event-calculate: 77d5111636480070 color:#b3334a
 * controller-success: eae1886d529ac7bd color:#b0c062
 * list-listener: 4d94e33369e5d81a color:#922d17
 * error-promise: a832d6649138f80b color:#fdbbd4
 * method-parse: 1cf92da88cd70d2c color:#72c4f3
 * transform-constructor: 9e8f8083d440f3da color:#ded77b
 * context-key: 0ea55da0a788a9c8 color:#d0d356
 * transform-validate: 25824a10aaf4cbde color:#43c2d3
 * abstract-list: e2da312fdc161a9e color:#219bd2
 * implements-response: 51588a6d9c2e97bd color:#dbc8c8
 * validate-value: 666bd25f550ea9c2 color:#928f17
 * process-item: a013ca57d078e948 color:#ab0a19
 * service-index: abdb49f24bb56d73 color:#46cf24
 * value-interface: bf8897f7459e2028 color:#17132a
 * property-helper: 5f00b4a9d1a2d8a6 color:#b5c218
 * transform-setup: 00f63a1b0b8c42f5 color:#361ad6
 */



/*
 * extends-item: 60183251be151e6a color:#b67d6a
 * subscriber-variable: 3ca46723a5b6ece1 color:#f411c1
 * property-key: 1da0074b88326ba1 color:#6ad6a6
 * parameter-abstract: 94f33bef8fe7d85c color:#6d871d
 * controller-item: c18d795b434b1435 color:#700272
 * module-abstract: 76121c459ce86ade color:#2eccdb
 * method-update: fc8adb1feb3fc798 color:#b64609
 * helper-load: 30955646ec6e32f1 color:#c6eec4
 * string-listener: d0488b44f2199eef color:#68cc98
 * state-function: 1abdc409e919029c color:#fb66a5
 * property-implements: 9baa37970c92cd9d color:#8ea4dd
 * subscriber-execute: 89565ec9b3cf3c2a color:#b64b4d
 * event-service: 3c3e2e01145ec12c color:#a66783
 * item-initialize: 4646032ef712b86d color:#5a5d35
 * data-fetch: 66131235b73a4001 color:#e03161
 * helper-parameter: 20b9dcefa6f46198 color:#8bc38a
 * success-implements: 0c9be65098bfff03 color:#ddb718
 * resolve-initialize: 2639b00f66a9dc30 color:#752085
 * list-storage: ffa7cbbf011d07d9 color:#43a943
 * cache-number: 5b0d35a18d9f55b6 color:#8b2c2f
 * process-props: c0f8b172840238d8 color:#f1aacb
 * optimize-execute: 51f32d3de1ad9f50 color:#f71798
 * success-state: 27d770f008ef3eaf color:#48ae06
 * async-implements: a9d4d5721c73e476 color:#167f99
 * subscriber-resolve: 91de68b37006859b color:#ea5d84
 */




/*
 * parameter-listener: 3c4978accf7ad410 color:#e0f24b
 * string-optimize: 9915a6a0be44f1af color:#7f7648
 * number-manager: acfbe3fc7baec969 color:#ce9e07
 * request-async: a0a9cbff8f7da96c color:#42c59f
 * error-render: e0dd1be5d5ec17f3 color:#24fed9
 * success-parameter: e77ab2cd53c3ce8d color:#700856
 * result-item: 2468bc16e11d6f92 color:#560a66
 * reject-controller: 62ac2f32526971ad color:#bd33dc
 * transform-parameter: 3a1e28533bbc3ace color:#ebafce
 * error-optimize: 096466f12c1b27f9 color:#eeb8ef
 * context-validate: 9d3947051cec986c color:#f7477b
 */


/*
 * fetch-promise: b145b93c52cb41bc color:#827815
 * abstract-abstract: 801cb7767f957307 color:#b326e2
 * state-listener: 7a649f209c2ad7ec color:#944cac
 * request-request: 6801d88b858fb618 color:#7c29c4
 * success-resolve: 323bc9e3b76ab8a3 color:#b7fdde
 * listener-storage: 92494cb6c5e746b5 color:#7cdb7d
 * handler-function: 1b1ea5c0819c2490 color:#b7c69f
 * utility-return: 68ca47b021aa057b color:#7f0842
 * value-helper: 2b0fe8496fb7d066 color:#d5eb9b
 * parse-load: 4fbc955d9980f1ef color:#9bbfd0
 * configure-fetch: f2106c14bf8d5d20 color:#f245b0
 * return-fetch: b805cf9f84b31e80 color:#a9415b
 * listener-execute: 6ca3d738a78f2f65 color:#e184c7
 * boolean-validate: ce9f2441d3b367ca color:#5b6534
 * await-method: 76e0ca416d2268e1 color:#d7153
 * number-item: e979660b211e90b5 color:#9d8fa5
 */



/*
 * string-item: 87100432cf30ff4c color:#bde14c
 * extends-manager: 0df97e4af69d6223 color:#2996c7
 * initialize-event: c01cdb8d140d7a50 color:#b09e3d
 * listener-handler: 974df9525887b4d8 color:#bd57df
 * storage-process: b962ee006f746a9d color:#445a67
 * observer-result: eeb8ec69111a50b7 color:#cd4ebe
 * service-optimize: 3b55b7488409a595 color:#16f8e6
 * number-index: 24923d3eed8f2fa7 color:#7294bd
 * reject-load: c50884021c82a1cb color:#e59655
 * async-array: 5e0f4a5d95ad0fec color:#354769
 * error-async: c4bcd4b1d4e9c787 color:#cb4717
 * listener-setup: 263120dcfa920d86 color:#42e045
 * method-utility: 66bf1049fc027bcf color:#6062b2
 */
/* @injected-footer-end */