diff --git a/README.md b/README.md index aec1b0890d1b5edc29ccc79d9ce87f486c954c70..193c5d83c6d06798b4133f2d77ae4bb810ef26f0 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,10 @@ -# mock-data +# SNAKE-API mini + +### UI 2.0 新版本来了!! #### 界面 -![snake-api-mini-page](http://qiniu.seebin.com/snake-api-mini-page.png) +![snake-api-mini-home](http://qiniu.seebin.com/snake-api-home-tab.png) #### 介绍 @@ -18,44 +20,46 @@ + JSON5编辑器,JSON数据结构增强,支持添加注释,支持key无需引号包裹等强大特性 + 可选择性导入swagger接口数据,导入用到的单个接口,而非所有的swagger数据 + 新建接口支持多服务器多接口前缀配置 -+ 采用MockJS自动生成Mock数据,MockJS的Mock写法全部支持 -+ 一键清空所有的Mock接口,准备开启下个需求的Mock模拟,防止无用的Mock接口迷惑自己 ++ 采用MockJS自动生成Mock数据 ++ 一键清空非锁定状态下的所有Mock接口,准备开启下个需求的Mock模拟,防止无用的Mock接口迷惑自己 + ... #### 软件架构 -后端技术栈 -nodejs、mongodb、express +后端技术栈 +nodejs、mongodb、express... -前端技术栈 -jquery、bootstrap、json5、ace、mockjs +前端技术栈 +react、react-router、redux... #### 使用教程-Docker版(docker内部自动安装mongodb数据库)-默认方式 -> 前提需要本地安装docker以及compose(Docker-Desktop会默认安装) +> 前提需要本地安装docker以及compose(Docker-Desktop会默认安装), [Docker-Desktop官网下载地址](https://www.docker.com/products/docker-desktop) -1. `git clone https://gitee.com/seebin/mock-data.git` -2. `cd mock-data` +1. `git clone https://gitee.com/seebin/snake-api-mini.git` +2. `cd snake-api-mini` 3. `npm install` 4. 执行以下命令:`docker-compose up -d` +5. 浏览器访问`http://localhost:3004/mock` 来管理mock接口 #### 使用教程-本地版(需要自己本地安装mongodb数据库) -1. 先下载安装mongodb, [MongoDB官网下载链接](https://www.mongodb.com/download-center/community) -2. `git clone https://gitee.com/seebin/mock-data.git` -3. `cd mock-data` -4. `npm install` -5. 修改config.js文件里面的mongodb数据库链接地址,解开本地版链接地址 注释docker版链接地址 -6. `npm start` -7. 浏览器访问`http://localhost:3004/mock` +> 先下载安装mongodb, [MongoDB官网下载链接](https://www.mongodb.com/download-center/community) + +1. `git clone https://gitee.com/seebin/snake-api-mini.git` +2. `cd snake-api-mini` +3. `npm install` +4. 修改config.js文件里面的mongodb数据库链接地址,解开本地版链接地址 注释docker版链接地址 +5. `npm start` +6. 浏览器访问`http://localhost:3004/mock` 来管理mock接口 #### 使用说明 -1. 将前端工程的测试环境的ip地址改为:`127.0.0.1:3004` -2. 修改Mock工程的config.js文件,将代理地址改为自己的测试环境地址 -3. 浏览器打开页面:`127.0.0.1:3004/mock` 来访问接口管理可视化页面 -4. 试试添加一个接口,保存成功后默认开启mock功能,前端业务工程访问接口返回mock数据,关闭mock状态,则请求真实的接口 -5. 愉快的使用起来吧! +1. 第一次访问`http://localhost:3004/mock`会引导你进入项目配置页面,设置反向代理地址等配置 +2. 将现有项目工程的接口服务地址ip换为`127.0.0.1:3004` +3. 浏览器打开页面:`127.0.0.1:3004/mock` 添加一个接口 +4. 启动现有项目调用刚刚添加的接口地址,这时返回的数据为添加接口的mock数据 +5. 将刚刚添加的接口mock状态置为停用状态,再次调用该接口 这时数据返回的是代理地址返回的真实数据 #### docker 常用指令 @@ -79,8 +83,14 @@ service docker stop 停止docker(linux系统) 作者:seebin +#### 交流谈论 + +钉钉交流群:21958681 + #### 相关链接 [Mac电脑本地安装MongoDB服务教程](http://note.youdao.com/noteshare?id=ff4b17665bdab2022c67571b716c5be3) -[Window电脑本地安装MongoDB服务教程](http://note.youdao.com/noteshare?id=ae30a3d8b9ad2b8fdd81f2ae39834490) \ No newline at end of file +[Window电脑本地安装MongoDB服务教程](http://note.youdao.com/noteshare?id=ae30a3d8b9ad2b8fdd81f2ae39834490) + +[Ant-Design 国内镜像地址](https://ant-design.gitee.io/components/button-cn/) \ No newline at end of file diff --git a/client/base-data.html b/client/base-data.html deleted file mode 100644 index ec7ea553751314331a5f494c78a1c7f6588dbe8f..0000000000000000000000000000000000000000 --- a/client/base-data.html +++ /dev/null @@ -1,278 +0,0 @@ - - - - - - - - - - - - - 基础数据维护 - SNAKE-API - - - - - - -
- -
- -
-
-

响应体基础数据

-
-
- -
-
-
-

响应体基础分页数据

-
-
- -
-
-
- - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/client/build/asset-manifest.json b/client/build/asset-manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..614347215b0a1c4e1b4e6c2f63b0d5e317c38ffc --- /dev/null +++ b/client/build/asset-manifest.json @@ -0,0 +1,25 @@ +{ + "files": { + "main.css": "./static/css/main.e2c5255b.chunk.css", + "main.js": "./static/js/main.e2a43e98.chunk.js", + "main.js.map": "./static/js/main.e2a43e98.chunk.js.map", + "runtime-main.js": "./static/js/runtime-main.365f897b.js", + "runtime-main.js.map": "./static/js/runtime-main.365f897b.js.map", + "static/css/2.122cefa8.chunk.css": "./static/css/2.122cefa8.chunk.css", + "static/js/2.2e50700e.chunk.js": "./static/js/2.2e50700e.chunk.js", + "static/js/2.2e50700e.chunk.js.map": "./static/js/2.2e50700e.chunk.js.map", + "index.html": "./index.html", + "precache-manifest.ce75b07ffaf10e551eb73eb230518feb.js": "./precache-manifest.ce75b07ffaf10e551eb73eb230518feb.js", + "service-worker.js": "./service-worker.js", + "static/css/2.122cefa8.chunk.css.map": "./static/css/2.122cefa8.chunk.css.map", + "static/css/main.e2c5255b.chunk.css.map": "./static/css/main.e2c5255b.chunk.css.map", + "static/js/2.2e50700e.chunk.js.LICENSE.txt": "./static/js/2.2e50700e.chunk.js.LICENSE.txt" + }, + "entrypoints": [ + "static/js/runtime-main.365f897b.js", + "static/css/2.122cefa8.chunk.css", + "static/js/2.2e50700e.chunk.js", + "static/css/main.e2c5255b.chunk.css", + "static/js/main.e2a43e98.chunk.js" + ] +} \ No newline at end of file diff --git a/client/favicon.ico b/client/build/favicon.ico similarity index 100% rename from client/favicon.ico rename to client/build/favicon.ico diff --git a/client/build/index.html b/client/build/index.html new file mode 100644 index 0000000000000000000000000000000000000000..bf5491fa53fd4a4e614c566374c3ec16a4b5de35 --- /dev/null +++ b/client/build/index.html @@ -0,0 +1 @@ +Snake-api mini
\ No newline at end of file diff --git a/client/lib/ace-1.4.4/src/ace.js b/client/build/lib/ace-1.4.4/src/ace.js similarity index 100% rename from client/lib/ace-1.4.4/src/ace.js rename to client/build/lib/ace-1.4.4/src/ace.js diff --git a/client/lib/ace-1.4.4/src/ext-language_tools.js b/client/build/lib/ace-1.4.4/src/ext-language_tools.js similarity index 100% rename from client/lib/ace-1.4.4/src/ext-language_tools.js rename to client/build/lib/ace-1.4.4/src/ext-language_tools.js diff --git a/client/lib/ace-1.4.4/src/ext-searchbox.js b/client/build/lib/ace-1.4.4/src/ext-searchbox.js similarity index 100% rename from client/lib/ace-1.4.4/src/ext-searchbox.js rename to client/build/lib/ace-1.4.4/src/ext-searchbox.js diff --git a/client/lib/ace-1.4.4/src/mode-json.js b/client/build/lib/ace-1.4.4/src/mode-json.js similarity index 100% rename from client/lib/ace-1.4.4/src/mode-json.js rename to client/build/lib/ace-1.4.4/src/mode-json.js diff --git a/client/lib/ace-1.4.4/src/snippets/json.js b/client/build/lib/ace-1.4.4/src/snippets/json.js similarity index 100% rename from client/lib/ace-1.4.4/src/snippets/json.js rename to client/build/lib/ace-1.4.4/src/snippets/json.js diff --git a/client/lib/ace-1.4.4/src/theme-chrome.js b/client/build/lib/ace-1.4.4/src/theme-chrome.js similarity index 100% rename from client/lib/ace-1.4.4/src/theme-chrome.js rename to client/build/lib/ace-1.4.4/src/theme-chrome.js diff --git a/client/lib/ace-1.4.4/src/theme-dracula.js b/client/build/lib/ace-1.4.4/src/theme-dracula.js similarity index 100% rename from client/lib/ace-1.4.4/src/theme-dracula.js rename to client/build/lib/ace-1.4.4/src/theme-dracula.js diff --git a/client/lib/ace-1.4.4/src/worker-json.js b/client/build/lib/ace-1.4.4/src/worker-json.js similarity index 100% rename from client/lib/ace-1.4.4/src/worker-json.js rename to client/build/lib/ace-1.4.4/src/worker-json.js diff --git a/client/build/manifest.json b/client/build/manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..1f2f141fafdeb1d31d85b008ec5132840c5e6362 --- /dev/null +++ b/client/build/manifest.json @@ -0,0 +1,15 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/client/build/precache-manifest.ce75b07ffaf10e551eb73eb230518feb.js b/client/build/precache-manifest.ce75b07ffaf10e551eb73eb230518feb.js new file mode 100644 index 0000000000000000000000000000000000000000..6f26725afad9d0c5aa1367338fd430c01b8a1567 --- /dev/null +++ b/client/build/precache-manifest.ce75b07ffaf10e551eb73eb230518feb.js @@ -0,0 +1,30 @@ +self.__precacheManifest = (self.__precacheManifest || []).concat([ + { + "revision": "88fcec36bbdf86502262881dc98955f9", + "url": "./index.html" + }, + { + "revision": "6e889dfd0f9fec4497e9", + "url": "./static/css/2.122cefa8.chunk.css" + }, + { + "revision": "8bbd4d6bb6240ba56498", + "url": "./static/css/main.e2c5255b.chunk.css" + }, + { + "revision": "6e889dfd0f9fec4497e9", + "url": "./static/js/2.2e50700e.chunk.js" + }, + { + "revision": "c7fed6a06d746e594bc8112dfb0cd3a9", + "url": "./static/js/2.2e50700e.chunk.js.LICENSE.txt" + }, + { + "revision": "8bbd4d6bb6240ba56498", + "url": "./static/js/main.e2a43e98.chunk.js" + }, + { + "revision": "30fe9254b3d032034c63", + "url": "./static/js/runtime-main.365f897b.js" + } +]); \ No newline at end of file diff --git a/client/build/robots.txt b/client/build/robots.txt new file mode 100644 index 0000000000000000000000000000000000000000..e9e57dc4d41b9b46e05112e9f45b7ea6ac0ba15e --- /dev/null +++ b/client/build/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/client/build/service-worker.js b/client/build/service-worker.js new file mode 100644 index 0000000000000000000000000000000000000000..0501cd5948320ded1ad6b806ae3683f70e4f838a --- /dev/null +++ b/client/build/service-worker.js @@ -0,0 +1,39 @@ +/** + * Welcome to your Workbox-powered service worker! + * + * You'll need to register this file in your web app and you should + * disable HTTP caching for this file too. + * See https://goo.gl/nhQhGp + * + * The rest of the code is auto-generated. Please don't update this file + * directly; instead, make changes to your Workbox build configuration + * and re-run your build process. + * See https://goo.gl/2aRDsh + */ + +importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); + +importScripts( + "./precache-manifest.ce75b07ffaf10e551eb73eb230518feb.js" +); + +self.addEventListener('message', (event) => { + if (event.data && event.data.type === 'SKIP_WAITING') { + self.skipWaiting(); + } +}); + +workbox.core.clientsClaim(); + +/** + * The workboxSW.precacheAndRoute() method efficiently caches and responds to + * requests for URLs in the manifest. + * See https://goo.gl/S9QRab + */ +self.__precacheManifest = [].concat(self.__precacheManifest || []); +workbox.precaching.precacheAndRoute(self.__precacheManifest, {}); + +workbox.routing.registerNavigationRoute(workbox.precaching.getCacheKeyForURL("./index.html"), { + + blacklist: [/^\/_/,/\/[^\/?]+\.[^\/]+$/], +}); diff --git a/client/build/static/css/2.122cefa8.chunk.css b/client/build/static/css/2.122cefa8.chunk.css new file mode 100644 index 0000000000000000000000000000000000000000..20f3e7e7b931be8c3471ba7fa8f2d26e233f406a --- /dev/null +++ b/client/build/static/css/2.122cefa8.chunk.css @@ -0,0 +1,2 @@ +body,html{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,:after,:before{-webkit-box-sizing:border-box;box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}@-ms-viewport{width:device-width}article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;color:rgba(0,0,0,.65);font-size:14px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-variant:tabular-nums;line-height:1.5715;background-color:#fff;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum"}[tabindex="-1"]:focus{outline:none!important}hr{-webkit-box-sizing:content-box;box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;color:rgba(0,0,0,.85);font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=number],input[type=password],input[type=text],textarea{-webkit-appearance:none}dl,ol,ul{margin-top:0;margin-bottom:1em}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#1890ff;text-decoration:none;background-color:transparent;outline:none;cursor:pointer;-webkit-transition:color .3s;transition:color .3s;-webkit-text-decoration-skip:objects}a:hover{color:#40a9ff}a:active{color:#096dd9}a:active,a:focus,a:hover{text-decoration:none;outline:0}a[disabled]{color:rgba(0,0,0,.25);cursor:not-allowed;pointer-events:none}code,kbd,pre,samp{font-size:1em;font-family:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}svg:not(:root){overflow:hidden}[role=button],a,area,button,input:not([type=range]),label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;color:rgba(0,0,0,.45);text-align:left;caption-side:bottom}th{text-align:inherit}button,input,optgroup,select,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[type=reset],[type=submit],button,html [type=button]{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}mark{padding:.2em;background-color:#feffe6}::-moz-selection{color:#fff;background:#1890ff}::selection{color:#fff;background:#1890ff}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}.anticon{display:inline-block;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.anticon>*{line-height:1}.anticon svg{display:inline-block}.anticon:before{display:none}.anticon .anticon-icon{display:block}.anticon[tabindex]{cursor:pointer}.anticon-spin,.anticon-spin:before{display:inline-block;-webkit-animation:loadingCircle 1s linear infinite;animation:loadingCircle 1s linear infinite}.fade-appear,.fade-enter,.fade-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.fade-appear.fade-appear-active,.fade-enter.fade-enter-active{-webkit-animation-name:antFadeIn;animation-name:antFadeIn;-webkit-animation-play-state:running;animation-play-state:running}.fade-leave.fade-leave-active{-webkit-animation-name:antFadeOut;animation-name:antFadeOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.fade-appear,.fade-enter{opacity:0}.fade-appear,.fade-enter,.fade-leave{-webkit-animation-timing-function:linear;animation-timing-function:linear}@-webkit-keyframes antFadeIn{0%{opacity:0}to{opacity:1}}@keyframes antFadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes antFadeOut{0%{opacity:1}to{opacity:0}}@keyframes antFadeOut{0%{opacity:1}to{opacity:0}}.move-up-appear,.move-up-enter,.move-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-up-appear.move-up-appear-active,.move-up-enter.move-up-enter-active{-webkit-animation-name:antMoveUpIn;animation-name:antMoveUpIn;-webkit-animation-play-state:running;animation-play-state:running}.move-up-leave.move-up-leave-active{-webkit-animation-name:antMoveUpOut;animation-name:antMoveUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-up-appear,.move-up-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-up-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-down-appear,.move-down-enter,.move-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-down-appear.move-down-appear-active,.move-down-enter.move-down-enter-active{-webkit-animation-name:antMoveDownIn;animation-name:antMoveDownIn;-webkit-animation-play-state:running;animation-play-state:running}.move-down-leave.move-down-leave-active{-webkit-animation-name:antMoveDownOut;animation-name:antMoveDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-down-appear,.move-down-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-down-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-left-appear,.move-left-enter,.move-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-left-appear.move-left-appear-active,.move-left-enter.move-left-enter-active{-webkit-animation-name:antMoveLeftIn;animation-name:antMoveLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.move-left-leave.move-left-leave-active{-webkit-animation-name:antMoveLeftOut;animation-name:antMoveLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-left-appear,.move-left-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-left-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}.move-right-appear,.move-right-enter,.move-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.move-right-appear.move-right-appear-active,.move-right-enter.move-right-enter-active{-webkit-animation-name:antMoveRightIn;animation-name:antMoveRightIn;-webkit-animation-play-state:running;animation-play-state:running}.move-right-leave.move-right-leave-active{-webkit-animation-name:antMoveRightOut;animation-name:antMoveRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.move-right-appear,.move-right-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.move-right-leave{-webkit-animation-timing-function:cubic-bezier(.6,.04,.98,.34);animation-timing-function:cubic-bezier(.6,.04,.98,.34)}@-webkit-keyframes antMoveDownIn{0%{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveDownIn{0%{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveDownOut{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveDownOut{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(100%);transform:translateY(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveLeftIn{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveLeftIn{0%{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveLeftOut{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveLeftOut{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(-100%);transform:translateX(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveRightIn{0%{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveRightIn{0%{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveRightOut{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveRightOut{0%{-webkit-transform:translateX(0);transform:translateX(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateX(100%);transform:translateX(100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antMoveUpIn{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antMoveUpIn{0%{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antMoveUpOut{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antMoveUpOut{0%{-webkit-transform:translateY(0);transform:translateY(0);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:translateY(-100%);transform:translateY(-100%);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes loadingCircle{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes loadingCircle{to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}[ant-click-animating-without-extra-node=true],[ant-click-animating=true]{position:relative}html{--antd-wave-shadow-color:#1890ff;--scroll-bar:0}.ant-click-animating-node,[ant-click-animating-without-extra-node=true]:after{position:absolute;top:0;right:0;bottom:0;left:0;display:block;border-radius:inherit;-webkit-box-shadow:0 0 0 0 #1890ff;-webkit-box-shadow:0 0 0 0 var(--antd-wave-shadow-color);box-shadow:0 0 0 0 #1890ff;box-shadow:0 0 0 0 var(--antd-wave-shadow-color);opacity:.2;-webkit-animation:fadeEffect 2s cubic-bezier(.08,.82,.17,1),waveEffect .4s cubic-bezier(.08,.82,.17,1);animation:fadeEffect 2s cubic-bezier(.08,.82,.17,1),waveEffect .4s cubic-bezier(.08,.82,.17,1);-webkit-animation-fill-mode:forwards;animation-fill-mode:forwards;content:"";pointer-events:none}@-webkit-keyframes waveEffect{to{-webkit-box-shadow:0 0 0 #1890ff;box-shadow:0 0 0 #1890ff;-webkit-box-shadow:0 0 0 6px #1890ff;-webkit-box-shadow:0 0 0 6px var(--antd-wave-shadow-color);box-shadow:0 0 0 6px #1890ff;box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@keyframes waveEffect{to{-webkit-box-shadow:0 0 0 #1890ff;box-shadow:0 0 0 #1890ff;-webkit-box-shadow:0 0 0 6px #1890ff;-webkit-box-shadow:0 0 0 6px var(--antd-wave-shadow-color);box-shadow:0 0 0 6px #1890ff;box-shadow:0 0 0 6px var(--antd-wave-shadow-color)}}@-webkit-keyframes fadeEffect{to{opacity:0}}@keyframes fadeEffect{to{opacity:0}}.slide-up-appear,.slide-up-enter,.slide-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-up-appear.slide-up-appear-active,.slide-up-enter.slide-up-enter-active{-webkit-animation-name:antSlideUpIn;animation-name:antSlideUpIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-up-leave.slide-up-leave-active{-webkit-animation-name:antSlideUpOut;animation-name:antSlideUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-up-appear,.slide-up-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-up-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-down-appear,.slide-down-enter,.slide-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-down-appear.slide-down-appear-active,.slide-down-enter.slide-down-enter-active{-webkit-animation-name:antSlideDownIn;animation-name:antSlideDownIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-down-leave.slide-down-leave-active{-webkit-animation-name:antSlideDownOut;animation-name:antSlideDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-down-appear,.slide-down-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-down-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-left-appear,.slide-left-enter,.slide-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-left-appear.slide-left-appear-active,.slide-left-enter.slide-left-enter-active{-webkit-animation-name:antSlideLeftIn;animation-name:antSlideLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-left-leave.slide-left-leave-active{-webkit-animation-name:antSlideLeftOut;animation-name:antSlideLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-left-appear,.slide-left-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-left-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}.slide-right-appear,.slide-right-enter,.slide-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.slide-right-appear.slide-right-appear-active,.slide-right-enter.slide-right-enter-active{-webkit-animation-name:antSlideRightIn;animation-name:antSlideRightIn;-webkit-animation-play-state:running;animation-play-state:running}.slide-right-leave.slide-right-leave-active{-webkit-animation-name:antSlideRightOut;animation-name:antSlideRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.slide-right-appear,.slide-right-enter{opacity:0;-webkit-animation-timing-function:cubic-bezier(.23,1,.32,1);animation-timing-function:cubic-bezier(.23,1,.32,1)}.slide-right-leave{-webkit-animation-timing-function:cubic-bezier(.755,.05,.855,.06);animation-timing-function:cubic-bezier(.755,.05,.855,.06)}@-webkit-keyframes antSlideUpIn{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antSlideUpIn{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antSlideUpOut{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antSlideUpOut{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antSlideDownIn{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}}@keyframes antSlideDownIn{0%{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}to{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}}@-webkit-keyframes antSlideDownOut{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}}@keyframes antSlideDownOut{0%{-webkit-transform:scaleY(1);transform:scaleY(1);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:1}to{-webkit-transform:scaleY(.8);transform:scaleY(.8);-webkit-transform-origin:100% 100%;transform-origin:100% 100%;opacity:0}}@-webkit-keyframes antSlideLeftIn{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@keyframes antSlideLeftIn{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}}@-webkit-keyframes antSlideLeftOut{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@keyframes antSlideLeftOut{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:0 0;transform-origin:0 0;opacity:0}}@-webkit-keyframes antSlideRightIn{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}}@keyframes antSlideRightIn{0%{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}to{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}}@-webkit-keyframes antSlideRightOut{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}}@keyframes antSlideRightOut{0%{-webkit-transform:scaleX(1);transform:scaleX(1);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:1}to{-webkit-transform:scaleX(.8);transform:scaleX(.8);-webkit-transform-origin:100% 0;transform-origin:100% 0;opacity:0}}.zoom-appear,.zoom-enter,.zoom-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-appear.zoom-appear-active,.zoom-enter.zoom-enter-active{-webkit-animation-name:antZoomIn;animation-name:antZoomIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-leave.zoom-leave-active{-webkit-animation-name:antZoomOut;animation-name:antZoomOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-appear,.zoom-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-big-appear,.zoom-big-enter,.zoom-big-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-big-appear.zoom-big-appear-active,.zoom-big-enter.zoom-big-enter-active{-webkit-animation-name:antZoomBigIn;animation-name:antZoomBigIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-big-leave.zoom-big-leave-active{-webkit-animation-name:antZoomBigOut;animation-name:antZoomBigOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-big-appear,.zoom-big-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-big-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-big-fast-appear,.zoom-big-fast-enter,.zoom-big-fast-leave{-webkit-animation-duration:.1s;animation-duration:.1s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-big-fast-appear.zoom-big-fast-appear-active,.zoom-big-fast-enter.zoom-big-fast-enter-active{-webkit-animation-name:antZoomBigIn;animation-name:antZoomBigIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-big-fast-leave.zoom-big-fast-leave-active{-webkit-animation-name:antZoomBigOut;animation-name:antZoomBigOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-big-fast-appear,.zoom-big-fast-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-big-fast-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-up-appear,.zoom-up-enter,.zoom-up-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-up-appear.zoom-up-appear-active,.zoom-up-enter.zoom-up-enter-active{-webkit-animation-name:antZoomUpIn;animation-name:antZoomUpIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-up-leave.zoom-up-leave-active{-webkit-animation-name:antZoomUpOut;animation-name:antZoomUpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-up-appear,.zoom-up-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-up-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-down-appear,.zoom-down-enter,.zoom-down-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-down-appear.zoom-down-appear-active,.zoom-down-enter.zoom-down-enter-active{-webkit-animation-name:antZoomDownIn;animation-name:antZoomDownIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-down-leave.zoom-down-leave-active{-webkit-animation-name:antZoomDownOut;animation-name:antZoomDownOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-down-appear,.zoom-down-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-down-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-left-appear,.zoom-left-enter,.zoom-left-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-left-appear.zoom-left-appear-active,.zoom-left-enter.zoom-left-enter-active{-webkit-animation-name:antZoomLeftIn;animation-name:antZoomLeftIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-left-leave.zoom-left-leave-active{-webkit-animation-name:antZoomLeftOut;animation-name:antZoomLeftOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-left-appear,.zoom-left-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-left-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}.zoom-right-appear,.zoom-right-enter,.zoom-right-leave{-webkit-animation-duration:.2s;animation-duration:.2s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.zoom-right-appear.zoom-right-appear-active,.zoom-right-enter.zoom-right-enter-active{-webkit-animation-name:antZoomRightIn;animation-name:antZoomRightIn;-webkit-animation-play-state:running;animation-play-state:running}.zoom-right-leave.zoom-right-leave-active{-webkit-animation-name:antZoomRightOut;animation-name:antZoomRightOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.zoom-right-appear,.zoom-right-enter{-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-animation-timing-function:cubic-bezier(.08,.82,.17,1);animation-timing-function:cubic-bezier(.08,.82,.17,1)}.zoom-right-leave{-webkit-animation-timing-function:cubic-bezier(.78,.14,.15,.86);animation-timing-function:cubic-bezier(.78,.14,.15,.86)}@-webkit-keyframes antZoomIn{0%{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes antZoomIn{0%{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes antZoomOut{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}}@keyframes antZoomOut{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.2);transform:scale(.2);opacity:0}}@-webkit-keyframes antZoomBigIn{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@keyframes antZoomBigIn{0%{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}to{-webkit-transform:scale(1);transform:scale(1);opacity:1}}@-webkit-keyframes antZoomBigOut{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}}@keyframes antZoomBigOut{0%{-webkit-transform:scale(1);transform:scale(1)}to{-webkit-transform:scale(.8);transform:scale(.8);opacity:0}}@-webkit-keyframes antZoomUpIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}}@keyframes antZoomUpIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}}@-webkit-keyframes antZoomUpOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}}@keyframes antZoomUpOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 0;transform-origin:50% 0}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 0;transform-origin:50% 0;opacity:0}}@-webkit-keyframes antZoomLeftIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}}@keyframes antZoomLeftIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}}@-webkit-keyframes antZoomLeftOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}}@keyframes antZoomLeftOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:0 50%;transform-origin:0 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:0 50%;transform-origin:0 50%;opacity:0}}@-webkit-keyframes antZoomRightIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}}@keyframes antZoomRightIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}}@-webkit-keyframes antZoomRightOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}}@keyframes antZoomRightOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:100% 50%;transform-origin:100% 50%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;opacity:0}}@-webkit-keyframes antZoomDownIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}}@keyframes antZoomDownIn{0%{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}to{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}}@-webkit-keyframes antZoomDownOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}}@keyframes antZoomDownOut{0%{-webkit-transform:scale(1);transform:scale(1);-webkit-transform-origin:50% 100%;transform-origin:50% 100%}to{-webkit-transform:scale(.8);transform:scale(.8);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;opacity:0}}.ant-motion-collapse-legacy{overflow:hidden}.ant-motion-collapse,.ant-motion-collapse-legacy-active{-webkit-transition:height .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)!important;transition:height .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1)!important}.ant-motion-collapse{overflow:hidden}.ant-layout{display:-ms-flexbox;display:flex;-ms-flex:auto;flex:auto;-ms-flex-direction:column;flex-direction:column;min-height:0;background:#f0f2f5}.ant-layout,.ant-layout *{-webkit-box-sizing:border-box;box-sizing:border-box}.ant-layout.ant-layout-has-sider{-ms-flex-direction:row;flex-direction:row}.ant-layout.ant-layout-has-sider>.ant-layout,.ant-layout.ant-layout-has-sider>.ant-layout-content{overflow-x:hidden}.ant-layout-footer,.ant-layout-header{-ms-flex:0 0 auto;flex:0 0 auto}.ant-layout-header{height:64px;padding:0 50px;color:rgba(0,0,0,.65);line-height:64px;background:#001529}.ant-layout-footer{padding:24px 50px;color:rgba(0,0,0,.65);font-size:14px;background:#f0f2f5}.ant-layout-content{-ms-flex:auto;flex:auto;min-height:0}.ant-layout-sider{position:relative;min-width:0;background:#001529;-webkit-transition:all .2s;transition:all .2s}.ant-layout-sider-children{height:100%;margin-top:-.1px;padding-top:.1px}.ant-layout-sider-has-trigger{padding-bottom:48px}.ant-layout-sider-right{-ms-flex-order:1;order:1}.ant-layout-sider-trigger{position:fixed;bottom:0;z-index:1;height:48px;color:#fff;line-height:48px;text-align:center;background:#002140;cursor:pointer;-webkit-transition:all .2s;transition:all .2s}.ant-layout-sider-zero-width>*{overflow:hidden}.ant-layout-sider-zero-width-trigger{position:absolute;top:64px;right:-36px;z-index:1;width:36px;height:42px;color:#fff;font-size:18px;line-height:42px;text-align:center;background:#001529;border-radius:0 2px 2px 0;cursor:pointer;-webkit-transition:background .3s ease;transition:background .3s ease}.ant-layout-sider-zero-width-trigger:hover{background:#192c3e}.ant-layout-sider-zero-width-trigger-right{left:-36px;border-radius:2px 0 0 2px}.ant-layout-sider-light{background:#fff}.ant-layout-sider-light .ant-layout-sider-trigger,.ant-layout-sider-light .ant-layout-sider-zero-width-trigger,.ant-menu{color:rgba(0,0,0,.65);background:#fff}.ant-menu{-webkit-box-sizing:border-box;box-sizing:border-box;font-size:14px;font-variant:tabular-nums;line-height:1.5715;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum";margin:0;padding:0;line-height:0;list-style:none;outline:none;-webkit-box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);-webkit-transition:background .3s,width .2s;transition:background .3s,width .2s}.ant-menu:after,.ant-menu:before{display:table;content:""}.ant-menu:after{clear:both}.ant-menu ol,.ant-menu ul{margin:0;padding:0;list-style:none}.ant-menu-hidden{display:none}.ant-menu-item-group-title{height:1.5715;padding:8px 16px;color:rgba(0,0,0,.45);font-size:14px;line-height:1.5715;-webkit-transition:all .3s;transition:all .3s}.ant-menu-submenu,.ant-menu-submenu-inline{-webkit-transition:border-color .3s cubic-bezier(.645,.045,.355,1),background .3s cubic-bezier(.645,.045,.355,1),padding .15s cubic-bezier(.645,.045,.355,1);transition:border-color .3s cubic-bezier(.645,.045,.355,1),background .3s cubic-bezier(.645,.045,.355,1),padding .15s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu-selected{color:#1890ff}.ant-menu-item:active,.ant-menu-submenu-title:active{background:#e6f7ff}.ant-menu-submenu .ant-menu-sub{cursor:auto;-webkit-transition:background .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1);transition:background .3s cubic-bezier(.645,.045,.355,1),padding .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-item>a{color:rgba(0,0,0,.65)}.ant-menu-item>a:only-child{display:block}.ant-menu-item>a:hover{color:#1890ff}.ant-menu-item>a:before{position:absolute;top:0;right:0;bottom:0;left:0;background-color:transparent;content:""}.ant-menu-item>.ant-badge>a{color:rgba(0,0,0,.65)}.ant-menu-item>.ant-badge>a:hover{color:#1890ff}.ant-menu-item-divider{height:1px;overflow:hidden;line-height:0;background-color:#f0f0f0}.ant-menu-item-active,.ant-menu-item:hover,.ant-menu-submenu-active,.ant-menu-submenu-title:hover,.ant-menu:not(.ant-menu-inline) .ant-menu-submenu-open{color:#1890ff}.ant-menu-horizontal .ant-menu-item,.ant-menu-horizontal .ant-menu-submenu{margin-top:-1px}.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu .ant-menu-submenu-title:hover{background-color:transparent}.ant-menu-item-selected,.ant-menu-item-selected>a,.ant-menu-item-selected>a:hover{color:#1890ff}.ant-menu:not(.ant-menu-horizontal) .ant-menu-item-selected{background-color:#e6f7ff}.ant-menu-inline,.ant-menu-vertical,.ant-menu-vertical-left{border-right:1px solid #f0f0f0}.ant-menu-vertical-right{border-left:1px solid #f0f0f0}.ant-menu-vertical-left.ant-menu-sub,.ant-menu-vertical-right.ant-menu-sub,.ant-menu-vertical.ant-menu-sub{min-width:160px;max-height:calc(100vh - 100px);padding:0;overflow:hidden;border-right:0;-webkit-transform-origin:0 0;transform-origin:0 0}.ant-menu-vertical-left.ant-menu-sub:not(.zoom-big-enter-active):not(.zoom-big-leave-active),.ant-menu-vertical-right.ant-menu-sub:not(.zoom-big-enter-active):not(.zoom-big-leave-active),.ant-menu-vertical.ant-menu-sub:not(.zoom-big-enter-active):not(.zoom-big-leave-active){overflow-x:hidden;overflow-y:auto}.ant-menu-vertical-left.ant-menu-sub .ant-menu-item,.ant-menu-vertical-right.ant-menu-sub .ant-menu-item,.ant-menu-vertical.ant-menu-sub .ant-menu-item{left:0;margin-left:0;border-right:0}.ant-menu-vertical-left.ant-menu-sub .ant-menu-item:after,.ant-menu-vertical-right.ant-menu-sub .ant-menu-item:after,.ant-menu-vertical.ant-menu-sub .ant-menu-item:after{border-right:0}.ant-menu-vertical-left.ant-menu-sub>.ant-menu-item,.ant-menu-vertical-left.ant-menu-sub>.ant-menu-submenu,.ant-menu-vertical-right.ant-menu-sub>.ant-menu-item,.ant-menu-vertical-right.ant-menu-sub>.ant-menu-submenu,.ant-menu-vertical.ant-menu-sub>.ant-menu-item,.ant-menu-vertical.ant-menu-sub>.ant-menu-submenu{-webkit-transform-origin:0 0;transform-origin:0 0}.ant-menu-horizontal.ant-menu-sub{min-width:114px}.ant-menu-item,.ant-menu-submenu-title{position:relative;display:block;margin:0;padding:0 20px;white-space:nowrap;cursor:pointer;-webkit-transition:color .3s cubic-bezier(.645,.045,.355,1),border-color .3s cubic-bezier(.645,.045,.355,1),background .3s cubic-bezier(.645,.045,.355,1),padding .15s cubic-bezier(.645,.045,.355,1);transition:color .3s cubic-bezier(.645,.045,.355,1),border-color .3s cubic-bezier(.645,.045,.355,1),background .3s cubic-bezier(.645,.045,.355,1),padding .15s cubic-bezier(.645,.045,.355,1)}.ant-menu-item .anticon,.ant-menu-submenu-title .anticon{min-width:14px;margin-right:10px;font-size:14px;-webkit-transition:font-size .15s cubic-bezier(.215,.61,.355,1),margin .3s cubic-bezier(.645,.045,.355,1);transition:font-size .15s cubic-bezier(.215,.61,.355,1),margin .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-item .anticon+span,.ant-menu-submenu-title .anticon+span{opacity:1;-webkit-transition:opacity .3s cubic-bezier(.645,.045,.355,1),width .3s cubic-bezier(.645,.045,.355,1);transition:opacity .3s cubic-bezier(.645,.045,.355,1),width .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-item.ant-menu-item-only-child>.anticon,.ant-menu-submenu-title.ant-menu-item-only-child>.anticon{margin-right:0}.ant-menu>.ant-menu-item-divider{height:1px;margin:1px 0;padding:0;overflow:hidden;line-height:0;background-color:#f0f0f0}.ant-menu-submenu-popup{position:absolute;z-index:1050;border-radius:2px}.ant-menu-submenu-popup:before{position:absolute;top:-7px;right:0;bottom:0;left:0;width:100%;height:100%;opacity:.0001;content:" "}.ant-menu-submenu-placement-rightTop:before{top:0;left:-7px}.ant-menu-submenu>.ant-menu{background-color:#fff;border-radius:2px}.ant-menu-submenu>.ant-menu-submenu-title:after{-webkit-transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu-popup>.ant-menu{background-color:#fff}.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow{position:absolute;top:50%;right:16px;width:10px;-webkit-transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1)}.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow:before{position:absolute;width:6px;height:1.5px;background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.65)),to(rgba(0,0,0,.65)));background-image:linear-gradient(90deg,rgba(0,0,0,.65),rgba(0,0,0,.65));border-radius:2px;-webkit-transition:background .3s cubic-bezier(.645,.045,.355,1),top .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:background .3s cubic-bezier(.645,.045,.355,1),top .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:background .3s cubic-bezier(.645,.045,.355,1),transform .3s cubic-bezier(.645,.045,.355,1),top .3s cubic-bezier(.645,.045,.355,1);transition:background .3s cubic-bezier(.645,.045,.355,1),transform .3s cubic-bezier(.645,.045,.355,1),top .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1);content:""}.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow:before{-webkit-transform:rotate(45deg) translateY(-2px);transform:rotate(45deg) translateY(-2px)}.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow:after{-webkit-transform:rotate(-45deg) translateY(2px);transform:rotate(-45deg) translateY(2px)}.ant-menu-submenu-inline>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-inline>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-left>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical>.ant-menu-submenu-title:hover .ant-menu-submenu-arrow:before{background:-webkit-gradient(linear,left top,right top,from(#1890ff),to(#1890ff));background:linear-gradient(90deg,#1890ff,#1890ff)}.ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow:before{-webkit-transform:rotate(45deg) translateY(-2px);transform:rotate(45deg) translateY(-2px)}.ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow:after{-webkit-transform:rotate(-45deg) translateY(2px);transform:rotate(-45deg) translateY(2px)}.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow:before{-webkit-transform:rotate(-45deg) translateX(2px);transform:rotate(-45deg) translateX(2px)}.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow:after{-webkit-transform:rotate(45deg) translateX(-2px);transform:rotate(45deg) translateX(-2px)}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow{-webkit-transform:translateY(-2px);transform:translateY(-2px)}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow:after{-webkit-transform:rotate(-45deg) translateX(-2px);transform:rotate(-45deg) translateX(-2px)}.ant-menu-submenu-open.ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow:before{-webkit-transform:rotate(45deg) translateX(2px);transform:rotate(45deg) translateX(2px)}.ant-menu-vertical-left .ant-menu-submenu-selected,.ant-menu-vertical-left .ant-menu-submenu-selected>a,.ant-menu-vertical-right .ant-menu-submenu-selected,.ant-menu-vertical-right .ant-menu-submenu-selected>a,.ant-menu-vertical .ant-menu-submenu-selected,.ant-menu-vertical .ant-menu-submenu-selected>a{color:#1890ff}.ant-menu-horizontal{line-height:46px;white-space:nowrap;border:0;border-bottom:1px solid #f0f0f0;-webkit-box-shadow:none;box-shadow:none}.ant-menu-horizontal>.ant-menu-item,.ant-menu-horizontal>.ant-menu-submenu{position:relative;top:1px;display:inline-block;vertical-align:bottom;border-bottom:2px solid transparent}.ant-menu-horizontal>.ant-menu-item-active,.ant-menu-horizontal>.ant-menu-item-open,.ant-menu-horizontal>.ant-menu-item-selected,.ant-menu-horizontal>.ant-menu-item:hover,.ant-menu-horizontal>.ant-menu-submenu-active,.ant-menu-horizontal>.ant-menu-submenu-open,.ant-menu-horizontal>.ant-menu-submenu-selected,.ant-menu-horizontal>.ant-menu-submenu:hover{color:#1890ff;border-bottom:2px solid #1890ff}.ant-menu-horizontal>.ant-menu-item>a{color:rgba(0,0,0,.65)}.ant-menu-horizontal>.ant-menu-item>a:only-child{display:block}.ant-menu-horizontal>.ant-menu-item>a:hover{color:#1890ff}.ant-menu-horizontal>.ant-menu-item>a:before{bottom:-2px}.ant-menu-horizontal>.ant-menu-item-selected>a{color:#1890ff}.ant-menu-horizontal:after{display:block;clear:both;height:0;content:"\20"}.ant-menu-inline .ant-menu-item,.ant-menu-vertical-left .ant-menu-item,.ant-menu-vertical-right .ant-menu-item,.ant-menu-vertical .ant-menu-item{position:relative}.ant-menu-inline .ant-menu-item:after,.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-vertical-right .ant-menu-item:after,.ant-menu-vertical .ant-menu-item:after{position:absolute;top:0;right:0;bottom:0;border-right:3px solid #1890ff;-webkit-transform:scaleY(.0001);transform:scaleY(.0001);opacity:0;-webkit-transition:opacity .15s cubic-bezier(.215,.61,.355,1),-webkit-transform .15s cubic-bezier(.215,.61,.355,1);transition:opacity .15s cubic-bezier(.215,.61,.355,1),-webkit-transform .15s cubic-bezier(.215,.61,.355,1);transition:transform .15s cubic-bezier(.215,.61,.355,1),opacity .15s cubic-bezier(.215,.61,.355,1);transition:transform .15s cubic-bezier(.215,.61,.355,1),opacity .15s cubic-bezier(.215,.61,.355,1),-webkit-transform .15s cubic-bezier(.215,.61,.355,1);content:""}.ant-menu-inline .ant-menu-item,.ant-menu-inline .ant-menu-submenu-title,.ant-menu-vertical-left .ant-menu-item,.ant-menu-vertical-left .ant-menu-submenu-title,.ant-menu-vertical-right .ant-menu-item,.ant-menu-vertical-right .ant-menu-submenu-title,.ant-menu-vertical .ant-menu-item,.ant-menu-vertical .ant-menu-submenu-title{height:40px;margin-top:4px;margin-bottom:4px;padding:0 16px;overflow:hidden;font-size:14px;line-height:40px;text-overflow:ellipsis}.ant-menu-inline .ant-menu-submenu,.ant-menu-vertical-left .ant-menu-submenu,.ant-menu-vertical-right .ant-menu-submenu,.ant-menu-vertical .ant-menu-submenu{padding-bottom:.02px}.ant-menu-inline .ant-menu-item:not(:last-child),.ant-menu-vertical-left .ant-menu-item:not(:last-child),.ant-menu-vertical-right .ant-menu-item:not(:last-child),.ant-menu-vertical .ant-menu-item:not(:last-child){margin-bottom:8px}.ant-menu-inline>.ant-menu-item,.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical-left>.ant-menu-item,.ant-menu-vertical-left>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical-right>.ant-menu-item,.ant-menu-vertical-right>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-vertical>.ant-menu-item,.ant-menu-vertical>.ant-menu-submenu>.ant-menu-submenu-title{height:40px;line-height:40px}.ant-menu-vertical .ant-menu-submenu-title{padding-right:34px}.ant-menu-inline{width:100%}.ant-menu-inline .ant-menu-item-selected:after,.ant-menu-inline .ant-menu-selected:after{-webkit-transform:scaleY(1);transform:scaleY(1);opacity:1;-webkit-transition:opacity .15s cubic-bezier(.645,.045,.355,1),-webkit-transform .15s cubic-bezier(.645,.045,.355,1);transition:opacity .15s cubic-bezier(.645,.045,.355,1),-webkit-transform .15s cubic-bezier(.645,.045,.355,1);transition:transform .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1);transition:transform .15s cubic-bezier(.645,.045,.355,1),opacity .15s cubic-bezier(.645,.045,.355,1),-webkit-transform .15s cubic-bezier(.645,.045,.355,1)}.ant-menu-inline .ant-menu-item,.ant-menu-inline .ant-menu-submenu-title{width:calc(100% + 1px)}.ant-menu-inline .ant-menu-submenu-title{padding-right:34px}.ant-menu-inline-collapsed{width:80px}.ant-menu-inline-collapsed>.ant-menu-item,.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item,.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title,.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title{left:0;padding:0 32px;text-overflow:clip}.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .ant-menu-submenu-arrow,.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-inline-collapsed>.ant-menu-item .ant-menu-submenu-arrow,.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .ant-menu-submenu-arrow{display:none}.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .anticon,.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .anticon,.ant-menu-inline-collapsed>.ant-menu-item .anticon,.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .anticon{margin:0;font-size:16px;line-height:40px}.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-item .anticon+span,.ant-menu-inline-collapsed>.ant-menu-item-group>.ant-menu-item-group-list>.ant-menu-submenu>.ant-menu-submenu-title .anticon+span,.ant-menu-inline-collapsed>.ant-menu-item .anticon+span,.ant-menu-inline-collapsed>.ant-menu-submenu>.ant-menu-submenu-title .anticon+span{display:inline-block;max-width:0;opacity:0}.ant-menu-inline-collapsed .anticon{display:inline-block}.ant-menu-inline-collapsed-tooltip{pointer-events:none}.ant-menu-inline-collapsed-tooltip .anticon{display:none}.ant-menu-inline-collapsed-tooltip a{color:hsla(0,0%,100%,.85)}.ant-menu-inline-collapsed .ant-menu-item-group-title{padding-right:4px;padding-left:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-menu-item-group-list{margin:0;padding:0}.ant-menu-item-group-list .ant-menu-item,.ant-menu-item-group-list .ant-menu-submenu-title{padding:0 16px 0 28px}.ant-menu-root.ant-menu-inline,.ant-menu-root.ant-menu-vertical,.ant-menu-root.ant-menu-vertical-left,.ant-menu-root.ant-menu-vertical-right,.ant-menu-sub.ant-menu-inline{-webkit-box-shadow:none;box-shadow:none}.ant-menu-sub.ant-menu-inline{padding:0;border:0;border-radius:0}.ant-menu-sub.ant-menu-inline>.ant-menu-item,.ant-menu-sub.ant-menu-inline>.ant-menu-submenu>.ant-menu-submenu-title{height:40px;line-height:40px;list-style-position:inside;list-style-type:disc}.ant-menu-sub.ant-menu-inline .ant-menu-item-group-title{padding-left:32px}.ant-menu-item-disabled,.ant-menu-submenu-disabled{color:rgba(0,0,0,.25)!important;background:none;border-color:transparent!important;cursor:not-allowed}.ant-menu-item-disabled>a,.ant-menu-submenu-disabled>a{color:rgba(0,0,0,.25)!important;pointer-events:none}.ant-menu-item-disabled>.ant-menu-submenu-title,.ant-menu-submenu-disabled>.ant-menu-submenu-title{color:rgba(0,0,0,.25)!important;cursor:not-allowed}.ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{background:rgba(0,0,0,.25)!important}.ant-layout-header .ant-menu{line-height:inherit}.ant-menu-dark .ant-menu-sub,.ant-menu.ant-menu-dark{color:hsla(0,0%,100%,.65);background:#001529}.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow{opacity:.45;-webkit-transition:all .3s;transition:all .3s}.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-sub .ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu.ant-menu-dark .ant-menu-submenu-title .ant-menu-submenu-arrow:before{background:#fff}.ant-menu-dark.ant-menu-submenu-popup{background:transparent}.ant-menu-dark .ant-menu-inline.ant-menu-sub{background:#000c17}.ant-menu-dark.ant-menu-horizontal{border-bottom:0}.ant-menu-dark.ant-menu-horizontal>.ant-menu-item,.ant-menu-dark.ant-menu-horizontal>.ant-menu-submenu{top:0;margin-top:0;border-color:#001529;border-bottom:0}.ant-menu-dark.ant-menu-horizontal>.ant-menu-item>a:before{bottom:0}.ant-menu-dark .ant-menu-item,.ant-menu-dark .ant-menu-item-group-title,.ant-menu-dark .ant-menu-item>a{color:hsla(0,0%,100%,.65)}.ant-menu-dark.ant-menu-inline,.ant-menu-dark.ant-menu-vertical,.ant-menu-dark.ant-menu-vertical-left,.ant-menu-dark.ant-menu-vertical-right{border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item,.ant-menu-dark.ant-menu-vertical-left .ant-menu-item,.ant-menu-dark.ant-menu-vertical-right .ant-menu-item,.ant-menu-dark.ant-menu-vertical .ant-menu-item{left:0;margin-left:0;border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item:after,.ant-menu-dark.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-dark.ant-menu-vertical-right .ant-menu-item:after,.ant-menu-dark.ant-menu-vertical .ant-menu-item:after{border-right:0}.ant-menu-dark.ant-menu-inline .ant-menu-item,.ant-menu-dark.ant-menu-inline .ant-menu-submenu-title{width:100%}.ant-menu-dark .ant-menu-item-active,.ant-menu-dark .ant-menu-item:hover,.ant-menu-dark .ant-menu-submenu-active,.ant-menu-dark .ant-menu-submenu-open,.ant-menu-dark .ant-menu-submenu-selected,.ant-menu-dark .ant-menu-submenu-title:hover{color:#fff;background-color:transparent}.ant-menu-dark .ant-menu-item-active>a,.ant-menu-dark .ant-menu-item:hover>a,.ant-menu-dark .ant-menu-submenu-active>a,.ant-menu-dark .ant-menu-submenu-open>a,.ant-menu-dark .ant-menu-submenu-selected>a,.ant-menu-dark .ant-menu-submenu-title:hover>a{color:#fff}.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow{opacity:1}.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-active>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-open>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-selected>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title:hover>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-title:hover>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{background:#fff}.ant-menu-dark .ant-menu-item:hover{background-color:transparent}.ant-menu-dark.ant-menu-dark:not(.ant-menu-horizontal) .ant-menu-item-selected{background-color:#1890ff}.ant-menu-dark .ant-menu-item-selected{color:#fff;border-right:0}.ant-menu-dark .ant-menu-item-selected:after{border-right:0}.ant-menu-dark .ant-menu-item-selected .anticon,.ant-menu-dark .ant-menu-item-selected .anticon+span,.ant-menu-dark .ant-menu-item-selected>a,.ant-menu-dark .ant-menu-item-selected>a:hover{color:#fff}.ant-menu-submenu-popup.ant-menu-dark .ant-menu-item-selected,.ant-menu.ant-menu-dark .ant-menu-item-selected{background-color:#1890ff}.ant-menu-dark .ant-menu-item-disabled,.ant-menu-dark .ant-menu-item-disabled>a,.ant-menu-dark .ant-menu-submenu-disabled,.ant-menu-dark .ant-menu-submenu-disabled>a{color:hsla(0,0%,100%,.35)!important;opacity:.8}.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title{color:hsla(0,0%,100%,.35)!important}.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-item-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:after,.ant-menu-dark .ant-menu-submenu-disabled>.ant-menu-submenu-title>.ant-menu-submenu-arrow:before{background:hsla(0,0%,100%,.35)!important}.ant-menu-rtl{direction:rtl}.ant-menu-rtl .ant-menu-item-group-title{text-align:right}.ant-menu-rtl.ant-menu-inline,.ant-menu-rtl.ant-menu-vertical{border-right:none;border-left:1px solid #f0f0f0}.ant-menu-rtl.ant-menu-dark .ant-menu-inline,.ant-menu-rtl.ant-menu-dark .ant-menu-vertical{border-left:none}.ant-menu-rtl.ant-menu-vertical-left.ant-menu-sub,.ant-menu-rtl.ant-menu-vertical-left.ant-menu-sub>.ant-menu-item,.ant-menu-rtl.ant-menu-vertical-left.ant-menu-sub>.ant-menu-submenu,.ant-menu-rtl.ant-menu-vertical-right.ant-menu-sub,.ant-menu-rtl.ant-menu-vertical-right.ant-menu-sub>.ant-menu-item,.ant-menu-rtl.ant-menu-vertical-right.ant-menu-sub>.ant-menu-submenu,.ant-menu-rtl.ant-menu-vertical.ant-menu-sub,.ant-menu-rtl.ant-menu-vertical.ant-menu-sub>.ant-menu-item,.ant-menu-rtl.ant-menu-vertical.ant-menu-sub>.ant-menu-submenu{-webkit-transform-origin:top right;transform-origin:top right}.ant-menu-rtl .ant-menu-item .anticon,.ant-menu-rtl .ant-menu-submenu-title .anticon{margin-right:auto;margin-left:10px}.ant-menu-rtl .ant-menu-item.ant-menu-item-only-child>.anticon,.ant-menu-rtl .ant-menu-submenu-title.ant-menu-item-only-child>.anticon{margin-left:0}.ant-menu-rtl .ant-menu-submenu-inline>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-rtl .ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-rtl .ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow,.ant-menu-rtl .ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow{right:auto;left:16px}.ant-menu-rtl .ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-rtl .ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow:before,.ant-menu-rtl .ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow:before{-webkit-transform:rotate(-45deg) translateY(-2px);transform:rotate(-45deg) translateY(-2px)}.ant-menu-rtl .ant-menu-submenu-vertical-left>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-rtl .ant-menu-submenu-vertical-right>.ant-menu-submenu-title .ant-menu-submenu-arrow:after,.ant-menu-rtl .ant-menu-submenu-vertical>.ant-menu-submenu-title .ant-menu-submenu-arrow:after{-webkit-transform:rotate(45deg) translateY(2px);transform:rotate(45deg) translateY(2px)}.ant-menu-rtl.ant-menu-inline .ant-menu-item:after,.ant-menu-rtl.ant-menu-vertical-left .ant-menu-item:after,.ant-menu-rtl.ant-menu-vertical-right .ant-menu-item:after,.ant-menu-rtl.ant-menu-vertical .ant-menu-item:after{right:auto;left:0}.ant-menu-rtl.ant-menu-inline .ant-menu-item,.ant-menu-rtl.ant-menu-inline .ant-menu-submenu-title,.ant-menu-rtl.ant-menu-vertical-left .ant-menu-item,.ant-menu-rtl.ant-menu-vertical-left .ant-menu-submenu-title,.ant-menu-rtl.ant-menu-vertical-right .ant-menu-item,.ant-menu-rtl.ant-menu-vertical-right .ant-menu-submenu-title,.ant-menu-rtl.ant-menu-vertical .ant-menu-item,.ant-menu-rtl.ant-menu-vertical .ant-menu-submenu-title{text-align:right}.ant-menu-rtl.ant-menu-inline .ant-menu-submenu-title{padding-right:0;padding-left:34px}.ant-menu-rtl.ant-menu-vertical .ant-menu-submenu-title{padding-right:16px;padding-left:34px}.ant-menu-rtl.ant-menu-inline-collapsed.ant-menu-vertical .ant-menu-submenu-title{padding:0 32px}.ant-menu-rtl .ant-menu-item-group-list .ant-menu-item,.ant-menu-rtl .ant-menu-item-group-list .ant-menu-submenu-title{padding:0 28px 0 16px}.ant-menu-rtl.ant-menu-sub.ant-menu-inline .ant-menu-item-group-title{padding-right:32px;padding-left:0}.ant-tooltip{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum";position:absolute;z-index:1060;display:block;max-width:250px;visibility:visible}.ant-tooltip-hidden{display:none}.ant-tooltip-placement-top,.ant-tooltip-placement-topLeft,.ant-tooltip-placement-topRight{padding-bottom:8px}.ant-tooltip-placement-right,.ant-tooltip-placement-rightBottom,.ant-tooltip-placement-rightTop{padding-left:8px}.ant-tooltip-placement-bottom,.ant-tooltip-placement-bottomLeft,.ant-tooltip-placement-bottomRight{padding-top:8px}.ant-tooltip-placement-left,.ant-tooltip-placement-leftBottom,.ant-tooltip-placement-leftTop{padding-right:8px}.ant-tooltip-inner{min-width:30px;min-height:32px;padding:6px 8px;color:#fff;text-align:left;text-decoration:none;word-wrap:break-word;background-color:rgba(0,0,0,.75);border-radius:2px;-webkit-box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05)}.ant-tooltip-arrow{position:absolute;display:block;width:13.07106781px;height:13.07106781px;overflow:hidden;background:transparent;pointer-events:none}.ant-tooltip-arrow:before{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:5px;height:5px;margin:auto;background-color:rgba(0,0,0,.75);content:"";pointer-events:auto}.ant-tooltip-placement-top .ant-tooltip-arrow,.ant-tooltip-placement-topLeft .ant-tooltip-arrow,.ant-tooltip-placement-topRight .ant-tooltip-arrow{bottom:-5.07106781px}.ant-tooltip-placement-top .ant-tooltip-arrow:before,.ant-tooltip-placement-topLeft .ant-tooltip-arrow:before,.ant-tooltip-placement-topRight .ant-tooltip-arrow:before{-webkit-box-shadow:3px 3px 7px rgba(0,0,0,.07);box-shadow:3px 3px 7px rgba(0,0,0,.07);-webkit-transform:translateY(-6.53553391px) rotate(45deg);transform:translateY(-6.53553391px) rotate(45deg)}.ant-tooltip-placement-top .ant-tooltip-arrow{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.ant-tooltip-placement-topLeft .ant-tooltip-arrow{left:13px}.ant-tooltip-placement-topRight .ant-tooltip-arrow{right:13px}.ant-tooltip-placement-right .ant-tooltip-arrow,.ant-tooltip-placement-rightBottom .ant-tooltip-arrow,.ant-tooltip-placement-rightTop .ant-tooltip-arrow{left:-5.07106781px}.ant-tooltip-placement-right .ant-tooltip-arrow:before,.ant-tooltip-placement-rightBottom .ant-tooltip-arrow:before,.ant-tooltip-placement-rightTop .ant-tooltip-arrow:before{-webkit-box-shadow:-3px 3px 7px rgba(0,0,0,.07);box-shadow:-3px 3px 7px rgba(0,0,0,.07);-webkit-transform:translateX(6.53553391px) rotate(45deg);transform:translateX(6.53553391px) rotate(45deg)}.ant-tooltip-placement-right .ant-tooltip-arrow{top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.ant-tooltip-placement-rightTop .ant-tooltip-arrow{top:5px}.ant-tooltip-placement-rightBottom .ant-tooltip-arrow{bottom:5px}.ant-tooltip-placement-left .ant-tooltip-arrow,.ant-tooltip-placement-leftBottom .ant-tooltip-arrow,.ant-tooltip-placement-leftTop .ant-tooltip-arrow{right:-5.07106781px}.ant-tooltip-placement-left .ant-tooltip-arrow:before,.ant-tooltip-placement-leftBottom .ant-tooltip-arrow:before,.ant-tooltip-placement-leftTop .ant-tooltip-arrow:before{-webkit-box-shadow:3px -3px 7px rgba(0,0,0,.07);box-shadow:3px -3px 7px rgba(0,0,0,.07);-webkit-transform:translateX(-6.53553391px) rotate(45deg);transform:translateX(-6.53553391px) rotate(45deg)}.ant-tooltip-placement-left .ant-tooltip-arrow{top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.ant-tooltip-placement-leftTop .ant-tooltip-arrow{top:5px}.ant-tooltip-placement-leftBottom .ant-tooltip-arrow{bottom:5px}.ant-tooltip-placement-bottom .ant-tooltip-arrow,.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow,.ant-tooltip-placement-bottomRight .ant-tooltip-arrow{top:-5.07106781px}.ant-tooltip-placement-bottom .ant-tooltip-arrow:before,.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow:before,.ant-tooltip-placement-bottomRight .ant-tooltip-arrow:before{-webkit-box-shadow:-3px -3px 7px rgba(0,0,0,.07);box-shadow:-3px -3px 7px rgba(0,0,0,.07);-webkit-transform:translateY(6.53553391px) rotate(45deg);transform:translateY(6.53553391px) rotate(45deg)}.ant-tooltip-placement-bottom .ant-tooltip-arrow{left:50%;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.ant-tooltip-placement-bottomLeft .ant-tooltip-arrow{left:13px}.ant-tooltip-placement-bottomRight .ant-tooltip-arrow{right:13px}.ant-tooltip-rtl{direction:rtl}.ant-tooltip-rtl .ant-tooltip-inner{text-align:right}.ant-row{-ms-flex-flow:row wrap;flex-flow:row wrap}.ant-row,.ant-row:after,.ant-row:before{display:-ms-flexbox;display:flex}.ant-row-start{-ms-flex-pack:start;justify-content:flex-start}.ant-row-center{-ms-flex-pack:center;justify-content:center}.ant-row-end{-ms-flex-pack:end;justify-content:flex-end}.ant-row-space-between{-ms-flex-pack:justify;justify-content:space-between}.ant-row-space-around{-ms-flex-pack:distribute;justify-content:space-around}.ant-row-top{-ms-flex-align:start;align-items:flex-start}.ant-row-middle{-ms-flex-align:center;align-items:center}.ant-row-bottom{-ms-flex-align:end;align-items:flex-end}.ant-col{position:relative;max-width:100%;min-height:1px}.ant-col-24{display:block;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.ant-col-push-24{left:100%}.ant-col-pull-24{right:100%}.ant-col-offset-24{margin-left:100%}.ant-col-order-24{-ms-flex-order:24;order:24}.ant-col-23{display:block;-ms-flex:0 0 95.83333333%;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-push-23{left:95.83333333%}.ant-col-pull-23{right:95.83333333%}.ant-col-offset-23{margin-left:95.83333333%}.ant-col-order-23{-ms-flex-order:23;order:23}.ant-col-22{display:block;-ms-flex:0 0 91.66666667%;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-push-22{left:91.66666667%}.ant-col-pull-22{right:91.66666667%}.ant-col-offset-22{margin-left:91.66666667%}.ant-col-order-22{-ms-flex-order:22;order:22}.ant-col-21{display:block;-ms-flex:0 0 87.5%;flex:0 0 87.5%;max-width:87.5%}.ant-col-push-21{left:87.5%}.ant-col-pull-21{right:87.5%}.ant-col-offset-21{margin-left:87.5%}.ant-col-order-21{-ms-flex-order:21;order:21}.ant-col-20{display:block;-ms-flex:0 0 83.33333333%;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-push-20{left:83.33333333%}.ant-col-pull-20{right:83.33333333%}.ant-col-offset-20{margin-left:83.33333333%}.ant-col-order-20{-ms-flex-order:20;order:20}.ant-col-19{display:block;-ms-flex:0 0 79.16666667%;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-push-19{left:79.16666667%}.ant-col-pull-19{right:79.16666667%}.ant-col-offset-19{margin-left:79.16666667%}.ant-col-order-19{-ms-flex-order:19;order:19}.ant-col-18{display:block;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.ant-col-push-18{left:75%}.ant-col-pull-18{right:75%}.ant-col-offset-18{margin-left:75%}.ant-col-order-18{-ms-flex-order:18;order:18}.ant-col-17{display:block;-ms-flex:0 0 70.83333333%;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-push-17{left:70.83333333%}.ant-col-pull-17{right:70.83333333%}.ant-col-offset-17{margin-left:70.83333333%}.ant-col-order-17{-ms-flex-order:17;order:17}.ant-col-16{display:block;-ms-flex:0 0 66.66666667%;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-push-16{left:66.66666667%}.ant-col-pull-16{right:66.66666667%}.ant-col-offset-16{margin-left:66.66666667%}.ant-col-order-16{-ms-flex-order:16;order:16}.ant-col-15{display:block;-ms-flex:0 0 62.5%;flex:0 0 62.5%;max-width:62.5%}.ant-col-push-15{left:62.5%}.ant-col-pull-15{right:62.5%}.ant-col-offset-15{margin-left:62.5%}.ant-col-order-15{-ms-flex-order:15;order:15}.ant-col-14{display:block;-ms-flex:0 0 58.33333333%;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-push-14{left:58.33333333%}.ant-col-pull-14{right:58.33333333%}.ant-col-offset-14{margin-left:58.33333333%}.ant-col-order-14{-ms-flex-order:14;order:14}.ant-col-13{display:block;-ms-flex:0 0 54.16666667%;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-push-13{left:54.16666667%}.ant-col-pull-13{right:54.16666667%}.ant-col-offset-13{margin-left:54.16666667%}.ant-col-order-13{-ms-flex-order:13;order:13}.ant-col-12{display:block;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.ant-col-push-12{left:50%}.ant-col-pull-12{right:50%}.ant-col-offset-12{margin-left:50%}.ant-col-order-12{-ms-flex-order:12;order:12}.ant-col-11{display:block;-ms-flex:0 0 45.83333333%;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-push-11{left:45.83333333%}.ant-col-pull-11{right:45.83333333%}.ant-col-offset-11{margin-left:45.83333333%}.ant-col-order-11{-ms-flex-order:11;order:11}.ant-col-10{display:block;-ms-flex:0 0 41.66666667%;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-push-10{left:41.66666667%}.ant-col-pull-10{right:41.66666667%}.ant-col-offset-10{margin-left:41.66666667%}.ant-col-order-10{-ms-flex-order:10;order:10}.ant-col-9{display:block;-ms-flex:0 0 37.5%;flex:0 0 37.5%;max-width:37.5%}.ant-col-push-9{left:37.5%}.ant-col-pull-9{right:37.5%}.ant-col-offset-9{margin-left:37.5%}.ant-col-order-9{-ms-flex-order:9;order:9}.ant-col-8{display:block;-ms-flex:0 0 33.33333333%;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-push-8{left:33.33333333%}.ant-col-pull-8{right:33.33333333%}.ant-col-offset-8{margin-left:33.33333333%}.ant-col-order-8{-ms-flex-order:8;order:8}.ant-col-7{display:block;-ms-flex:0 0 29.16666667%;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-push-7{left:29.16666667%}.ant-col-pull-7{right:29.16666667%}.ant-col-offset-7{margin-left:29.16666667%}.ant-col-order-7{-ms-flex-order:7;order:7}.ant-col-6{display:block;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.ant-col-push-6{left:25%}.ant-col-pull-6{right:25%}.ant-col-offset-6{margin-left:25%}.ant-col-order-6{-ms-flex-order:6;order:6}.ant-col-5{display:block;-ms-flex:0 0 20.83333333%;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-push-5{left:20.83333333%}.ant-col-pull-5{right:20.83333333%}.ant-col-offset-5{margin-left:20.83333333%}.ant-col-order-5{-ms-flex-order:5;order:5}.ant-col-4{display:block;-ms-flex:0 0 16.66666667%;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-push-4{left:16.66666667%}.ant-col-pull-4{right:16.66666667%}.ant-col-offset-4{margin-left:16.66666667%}.ant-col-order-4{-ms-flex-order:4;order:4}.ant-col-3{display:block;-ms-flex:0 0 12.5%;flex:0 0 12.5%;max-width:12.5%}.ant-col-push-3{left:12.5%}.ant-col-pull-3{right:12.5%}.ant-col-offset-3{margin-left:12.5%}.ant-col-order-3{-ms-flex-order:3;order:3}.ant-col-2{display:block;-ms-flex:0 0 8.33333333%;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-push-2{left:8.33333333%}.ant-col-pull-2{right:8.33333333%}.ant-col-offset-2{margin-left:8.33333333%}.ant-col-order-2{-ms-flex-order:2;order:2}.ant-col-1{display:block;-ms-flex:0 0 4.16666667%;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-push-1{left:4.16666667%}.ant-col-pull-1{right:4.16666667%}.ant-col-offset-1{margin-left:4.16666667%}.ant-col-order-1{-ms-flex-order:1;order:1}.ant-col-0{display:none}.ant-col-offset-0{margin-left:0}.ant-col-order-0{-ms-flex-order:0;order:0}.ant-col-offset-0.ant-col-rtl{margin-right:0}.ant-col-push-1.ant-col-rtl{right:4.16666667%;left:auto}.ant-col-pull-1.ant-col-rtl{right:auto;left:4.16666667%}.ant-col-offset-1.ant-col-rtl{margin-right:4.16666667%;margin-left:0}.ant-col-push-2.ant-col-rtl{right:8.33333333%;left:auto}.ant-col-pull-2.ant-col-rtl{right:auto;left:8.33333333%}.ant-col-offset-2.ant-col-rtl{margin-right:8.33333333%;margin-left:0}.ant-col-push-3.ant-col-rtl{right:12.5%;left:auto}.ant-col-pull-3.ant-col-rtl{right:auto;left:12.5%}.ant-col-offset-3.ant-col-rtl{margin-right:12.5%;margin-left:0}.ant-col-push-4.ant-col-rtl{right:16.66666667%;left:auto}.ant-col-pull-4.ant-col-rtl{right:auto;left:16.66666667%}.ant-col-offset-4.ant-col-rtl{margin-right:16.66666667%;margin-left:0}.ant-col-push-5.ant-col-rtl{right:20.83333333%;left:auto}.ant-col-pull-5.ant-col-rtl{right:auto;left:20.83333333%}.ant-col-offset-5.ant-col-rtl{margin-right:20.83333333%;margin-left:0}.ant-col-push-6.ant-col-rtl{right:25%;left:auto}.ant-col-pull-6.ant-col-rtl{right:auto;left:25%}.ant-col-offset-6.ant-col-rtl{margin-right:25%;margin-left:0}.ant-col-push-7.ant-col-rtl{right:29.16666667%;left:auto}.ant-col-pull-7.ant-col-rtl{right:auto;left:29.16666667%}.ant-col-offset-7.ant-col-rtl{margin-right:29.16666667%;margin-left:0}.ant-col-push-8.ant-col-rtl{right:33.33333333%;left:auto}.ant-col-pull-8.ant-col-rtl{right:auto;left:33.33333333%}.ant-col-offset-8.ant-col-rtl{margin-right:33.33333333%;margin-left:0}.ant-col-push-9.ant-col-rtl{right:37.5%;left:auto}.ant-col-pull-9.ant-col-rtl{right:auto;left:37.5%}.ant-col-offset-9.ant-col-rtl{margin-right:37.5%;margin-left:0}.ant-col-push-10.ant-col-rtl{right:41.66666667%;left:auto}.ant-col-pull-10.ant-col-rtl{right:auto;left:41.66666667%}.ant-col-offset-10.ant-col-rtl{margin-right:41.66666667%;margin-left:0}.ant-col-push-11.ant-col-rtl{right:45.83333333%;left:auto}.ant-col-pull-11.ant-col-rtl{right:auto;left:45.83333333%}.ant-col-offset-11.ant-col-rtl{margin-right:45.83333333%;margin-left:0}.ant-col-push-12.ant-col-rtl{right:50%;left:auto}.ant-col-pull-12.ant-col-rtl{right:auto;left:50%}.ant-col-offset-12.ant-col-rtl{margin-right:50%;margin-left:0}.ant-col-push-13.ant-col-rtl{right:54.16666667%;left:auto}.ant-col-pull-13.ant-col-rtl{right:auto;left:54.16666667%}.ant-col-offset-13.ant-col-rtl{margin-right:54.16666667%;margin-left:0}.ant-col-push-14.ant-col-rtl{right:58.33333333%;left:auto}.ant-col-pull-14.ant-col-rtl{right:auto;left:58.33333333%}.ant-col-offset-14.ant-col-rtl{margin-right:58.33333333%;margin-left:0}.ant-col-push-15.ant-col-rtl{right:62.5%;left:auto}.ant-col-pull-15.ant-col-rtl{right:auto;left:62.5%}.ant-col-offset-15.ant-col-rtl{margin-right:62.5%;margin-left:0}.ant-col-push-16.ant-col-rtl{right:66.66666667%;left:auto}.ant-col-pull-16.ant-col-rtl{right:auto;left:66.66666667%}.ant-col-offset-16.ant-col-rtl{margin-right:66.66666667%;margin-left:0}.ant-col-push-17.ant-col-rtl{right:70.83333333%;left:auto}.ant-col-pull-17.ant-col-rtl{right:auto;left:70.83333333%}.ant-col-offset-17.ant-col-rtl{margin-right:70.83333333%;margin-left:0}.ant-col-push-18.ant-col-rtl{right:75%;left:auto}.ant-col-pull-18.ant-col-rtl{right:auto;left:75%}.ant-col-offset-18.ant-col-rtl{margin-right:75%;margin-left:0}.ant-col-push-19.ant-col-rtl{right:79.16666667%;left:auto}.ant-col-pull-19.ant-col-rtl{right:auto;left:79.16666667%}.ant-col-offset-19.ant-col-rtl{margin-right:79.16666667%;margin-left:0}.ant-col-push-20.ant-col-rtl{right:83.33333333%;left:auto}.ant-col-pull-20.ant-col-rtl{right:auto;left:83.33333333%}.ant-col-offset-20.ant-col-rtl{margin-right:83.33333333%;margin-left:0}.ant-col-push-21.ant-col-rtl{right:87.5%;left:auto}.ant-col-pull-21.ant-col-rtl{right:auto;left:87.5%}.ant-col-offset-21.ant-col-rtl{margin-right:87.5%;margin-left:0}.ant-col-push-22.ant-col-rtl{right:91.66666667%;left:auto}.ant-col-pull-22.ant-col-rtl{right:auto;left:91.66666667%}.ant-col-offset-22.ant-col-rtl{margin-right:91.66666667%;margin-left:0}.ant-col-push-23.ant-col-rtl{right:95.83333333%;left:auto}.ant-col-pull-23.ant-col-rtl{right:auto;left:95.83333333%}.ant-col-offset-23.ant-col-rtl{margin-right:95.83333333%;margin-left:0}.ant-col-push-24.ant-col-rtl{right:100%;left:auto}.ant-col-pull-24.ant-col-rtl{right:auto;left:100%}.ant-col-offset-24.ant-col-rtl{margin-right:100%;margin-left:0}.ant-col-xs-24{display:block;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.ant-col-xs-push-24{left:100%}.ant-col-xs-pull-24{right:100%}.ant-col-xs-offset-24{margin-left:100%}.ant-col-xs-order-24{-ms-flex-order:24;order:24}.ant-col-xs-23{display:block;-ms-flex:0 0 95.83333333%;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-xs-push-23{left:95.83333333%}.ant-col-xs-pull-23{right:95.83333333%}.ant-col-xs-offset-23{margin-left:95.83333333%}.ant-col-xs-order-23{-ms-flex-order:23;order:23}.ant-col-xs-22{display:block;-ms-flex:0 0 91.66666667%;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-xs-push-22{left:91.66666667%}.ant-col-xs-pull-22{right:91.66666667%}.ant-col-xs-offset-22{margin-left:91.66666667%}.ant-col-xs-order-22{-ms-flex-order:22;order:22}.ant-col-xs-21{display:block;-ms-flex:0 0 87.5%;flex:0 0 87.5%;max-width:87.5%}.ant-col-xs-push-21{left:87.5%}.ant-col-xs-pull-21{right:87.5%}.ant-col-xs-offset-21{margin-left:87.5%}.ant-col-xs-order-21{-ms-flex-order:21;order:21}.ant-col-xs-20{display:block;-ms-flex:0 0 83.33333333%;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-xs-push-20{left:83.33333333%}.ant-col-xs-pull-20{right:83.33333333%}.ant-col-xs-offset-20{margin-left:83.33333333%}.ant-col-xs-order-20{-ms-flex-order:20;order:20}.ant-col-xs-19{display:block;-ms-flex:0 0 79.16666667%;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-xs-push-19{left:79.16666667%}.ant-col-xs-pull-19{right:79.16666667%}.ant-col-xs-offset-19{margin-left:79.16666667%}.ant-col-xs-order-19{-ms-flex-order:19;order:19}.ant-col-xs-18{display:block;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.ant-col-xs-push-18{left:75%}.ant-col-xs-pull-18{right:75%}.ant-col-xs-offset-18{margin-left:75%}.ant-col-xs-order-18{-ms-flex-order:18;order:18}.ant-col-xs-17{display:block;-ms-flex:0 0 70.83333333%;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-xs-push-17{left:70.83333333%}.ant-col-xs-pull-17{right:70.83333333%}.ant-col-xs-offset-17{margin-left:70.83333333%}.ant-col-xs-order-17{-ms-flex-order:17;order:17}.ant-col-xs-16{display:block;-ms-flex:0 0 66.66666667%;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-xs-push-16{left:66.66666667%}.ant-col-xs-pull-16{right:66.66666667%}.ant-col-xs-offset-16{margin-left:66.66666667%}.ant-col-xs-order-16{-ms-flex-order:16;order:16}.ant-col-xs-15{display:block;-ms-flex:0 0 62.5%;flex:0 0 62.5%;max-width:62.5%}.ant-col-xs-push-15{left:62.5%}.ant-col-xs-pull-15{right:62.5%}.ant-col-xs-offset-15{margin-left:62.5%}.ant-col-xs-order-15{-ms-flex-order:15;order:15}.ant-col-xs-14{display:block;-ms-flex:0 0 58.33333333%;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-xs-push-14{left:58.33333333%}.ant-col-xs-pull-14{right:58.33333333%}.ant-col-xs-offset-14{margin-left:58.33333333%}.ant-col-xs-order-14{-ms-flex-order:14;order:14}.ant-col-xs-13{display:block;-ms-flex:0 0 54.16666667%;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-xs-push-13{left:54.16666667%}.ant-col-xs-pull-13{right:54.16666667%}.ant-col-xs-offset-13{margin-left:54.16666667%}.ant-col-xs-order-13{-ms-flex-order:13;order:13}.ant-col-xs-12{display:block;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.ant-col-xs-push-12{left:50%}.ant-col-xs-pull-12{right:50%}.ant-col-xs-offset-12{margin-left:50%}.ant-col-xs-order-12{-ms-flex-order:12;order:12}.ant-col-xs-11{display:block;-ms-flex:0 0 45.83333333%;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-xs-push-11{left:45.83333333%}.ant-col-xs-pull-11{right:45.83333333%}.ant-col-xs-offset-11{margin-left:45.83333333%}.ant-col-xs-order-11{-ms-flex-order:11;order:11}.ant-col-xs-10{display:block;-ms-flex:0 0 41.66666667%;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-xs-push-10{left:41.66666667%}.ant-col-xs-pull-10{right:41.66666667%}.ant-col-xs-offset-10{margin-left:41.66666667%}.ant-col-xs-order-10{-ms-flex-order:10;order:10}.ant-col-xs-9{display:block;-ms-flex:0 0 37.5%;flex:0 0 37.5%;max-width:37.5%}.ant-col-xs-push-9{left:37.5%}.ant-col-xs-pull-9{right:37.5%}.ant-col-xs-offset-9{margin-left:37.5%}.ant-col-xs-order-9{-ms-flex-order:9;order:9}.ant-col-xs-8{display:block;-ms-flex:0 0 33.33333333%;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-xs-push-8{left:33.33333333%}.ant-col-xs-pull-8{right:33.33333333%}.ant-col-xs-offset-8{margin-left:33.33333333%}.ant-col-xs-order-8{-ms-flex-order:8;order:8}.ant-col-xs-7{display:block;-ms-flex:0 0 29.16666667%;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-xs-push-7{left:29.16666667%}.ant-col-xs-pull-7{right:29.16666667%}.ant-col-xs-offset-7{margin-left:29.16666667%}.ant-col-xs-order-7{-ms-flex-order:7;order:7}.ant-col-xs-6{display:block;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.ant-col-xs-push-6{left:25%}.ant-col-xs-pull-6{right:25%}.ant-col-xs-offset-6{margin-left:25%}.ant-col-xs-order-6{-ms-flex-order:6;order:6}.ant-col-xs-5{display:block;-ms-flex:0 0 20.83333333%;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-xs-push-5{left:20.83333333%}.ant-col-xs-pull-5{right:20.83333333%}.ant-col-xs-offset-5{margin-left:20.83333333%}.ant-col-xs-order-5{-ms-flex-order:5;order:5}.ant-col-xs-4{display:block;-ms-flex:0 0 16.66666667%;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-xs-push-4{left:16.66666667%}.ant-col-xs-pull-4{right:16.66666667%}.ant-col-xs-offset-4{margin-left:16.66666667%}.ant-col-xs-order-4{-ms-flex-order:4;order:4}.ant-col-xs-3{display:block;-ms-flex:0 0 12.5%;flex:0 0 12.5%;max-width:12.5%}.ant-col-xs-push-3{left:12.5%}.ant-col-xs-pull-3{right:12.5%}.ant-col-xs-offset-3{margin-left:12.5%}.ant-col-xs-order-3{-ms-flex-order:3;order:3}.ant-col-xs-2{display:block;-ms-flex:0 0 8.33333333%;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-xs-push-2{left:8.33333333%}.ant-col-xs-pull-2{right:8.33333333%}.ant-col-xs-offset-2{margin-left:8.33333333%}.ant-col-xs-order-2{-ms-flex-order:2;order:2}.ant-col-xs-1{display:block;-ms-flex:0 0 4.16666667%;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-xs-push-1{left:4.16666667%}.ant-col-xs-pull-1{right:4.16666667%}.ant-col-xs-offset-1{margin-left:4.16666667%}.ant-col-xs-order-1{-ms-flex-order:1;order:1}.ant-col-xs-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-xs-push-0{left:auto}.ant-col-xs-pull-0{right:auto}.ant-col-xs-offset-0{margin-left:0}.ant-col-xs-order-0{-ms-flex-order:0;order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-xs-push-0.ant-col-rtl{right:auto}.ant-col-xs-pull-0.ant-col-rtl{left:auto}.ant-col-xs-offset-0.ant-col-rtl{margin-right:0}.ant-col-xs-push-1.ant-col-rtl{right:4.16666667%;left:auto}.ant-col-xs-pull-1.ant-col-rtl{right:auto;left:4.16666667%}.ant-col-xs-offset-1.ant-col-rtl{margin-right:4.16666667%;margin-left:0}.ant-col-xs-push-2.ant-col-rtl{right:8.33333333%;left:auto}.ant-col-xs-pull-2.ant-col-rtl{right:auto;left:8.33333333%}.ant-col-xs-offset-2.ant-col-rtl{margin-right:8.33333333%;margin-left:0}.ant-col-xs-push-3.ant-col-rtl{right:12.5%;left:auto}.ant-col-xs-pull-3.ant-col-rtl{right:auto;left:12.5%}.ant-col-xs-offset-3.ant-col-rtl{margin-right:12.5%;margin-left:0}.ant-col-xs-push-4.ant-col-rtl{right:16.66666667%;left:auto}.ant-col-xs-pull-4.ant-col-rtl{right:auto;left:16.66666667%}.ant-col-xs-offset-4.ant-col-rtl{margin-right:16.66666667%;margin-left:0}.ant-col-xs-push-5.ant-col-rtl{right:20.83333333%;left:auto}.ant-col-xs-pull-5.ant-col-rtl{right:auto;left:20.83333333%}.ant-col-xs-offset-5.ant-col-rtl{margin-right:20.83333333%;margin-left:0}.ant-col-xs-push-6.ant-col-rtl{right:25%;left:auto}.ant-col-xs-pull-6.ant-col-rtl{right:auto;left:25%}.ant-col-xs-offset-6.ant-col-rtl{margin-right:25%;margin-left:0}.ant-col-xs-push-7.ant-col-rtl{right:29.16666667%;left:auto}.ant-col-xs-pull-7.ant-col-rtl{right:auto;left:29.16666667%}.ant-col-xs-offset-7.ant-col-rtl{margin-right:29.16666667%;margin-left:0}.ant-col-xs-push-8.ant-col-rtl{right:33.33333333%;left:auto}.ant-col-xs-pull-8.ant-col-rtl{right:auto;left:33.33333333%}.ant-col-xs-offset-8.ant-col-rtl{margin-right:33.33333333%;margin-left:0}.ant-col-xs-push-9.ant-col-rtl{right:37.5%;left:auto}.ant-col-xs-pull-9.ant-col-rtl{right:auto;left:37.5%}.ant-col-xs-offset-9.ant-col-rtl{margin-right:37.5%;margin-left:0}.ant-col-xs-push-10.ant-col-rtl{right:41.66666667%;left:auto}.ant-col-xs-pull-10.ant-col-rtl{right:auto;left:41.66666667%}.ant-col-xs-offset-10.ant-col-rtl{margin-right:41.66666667%;margin-left:0}.ant-col-xs-push-11.ant-col-rtl{right:45.83333333%;left:auto}.ant-col-xs-pull-11.ant-col-rtl{right:auto;left:45.83333333%}.ant-col-xs-offset-11.ant-col-rtl{margin-right:45.83333333%;margin-left:0}.ant-col-xs-push-12.ant-col-rtl{right:50%;left:auto}.ant-col-xs-pull-12.ant-col-rtl{right:auto;left:50%}.ant-col-xs-offset-12.ant-col-rtl{margin-right:50%;margin-left:0}.ant-col-xs-push-13.ant-col-rtl{right:54.16666667%;left:auto}.ant-col-xs-pull-13.ant-col-rtl{right:auto;left:54.16666667%}.ant-col-xs-offset-13.ant-col-rtl{margin-right:54.16666667%;margin-left:0}.ant-col-xs-push-14.ant-col-rtl{right:58.33333333%;left:auto}.ant-col-xs-pull-14.ant-col-rtl{right:auto;left:58.33333333%}.ant-col-xs-offset-14.ant-col-rtl{margin-right:58.33333333%;margin-left:0}.ant-col-xs-push-15.ant-col-rtl{right:62.5%;left:auto}.ant-col-xs-pull-15.ant-col-rtl{right:auto;left:62.5%}.ant-col-xs-offset-15.ant-col-rtl{margin-right:62.5%;margin-left:0}.ant-col-xs-push-16.ant-col-rtl{right:66.66666667%;left:auto}.ant-col-xs-pull-16.ant-col-rtl{right:auto;left:66.66666667%}.ant-col-xs-offset-16.ant-col-rtl{margin-right:66.66666667%;margin-left:0}.ant-col-xs-push-17.ant-col-rtl{right:70.83333333%;left:auto}.ant-col-xs-pull-17.ant-col-rtl{right:auto;left:70.83333333%}.ant-col-xs-offset-17.ant-col-rtl{margin-right:70.83333333%;margin-left:0}.ant-col-xs-push-18.ant-col-rtl{right:75%;left:auto}.ant-col-xs-pull-18.ant-col-rtl{right:auto;left:75%}.ant-col-xs-offset-18.ant-col-rtl{margin-right:75%;margin-left:0}.ant-col-xs-push-19.ant-col-rtl{right:79.16666667%;left:auto}.ant-col-xs-pull-19.ant-col-rtl{right:auto;left:79.16666667%}.ant-col-xs-offset-19.ant-col-rtl{margin-right:79.16666667%;margin-left:0}.ant-col-xs-push-20.ant-col-rtl{right:83.33333333%;left:auto}.ant-col-xs-pull-20.ant-col-rtl{right:auto;left:83.33333333%}.ant-col-xs-offset-20.ant-col-rtl{margin-right:83.33333333%;margin-left:0}.ant-col-xs-push-21.ant-col-rtl{right:87.5%;left:auto}.ant-col-xs-pull-21.ant-col-rtl{right:auto;left:87.5%}.ant-col-xs-offset-21.ant-col-rtl{margin-right:87.5%;margin-left:0}.ant-col-xs-push-22.ant-col-rtl{right:91.66666667%;left:auto}.ant-col-xs-pull-22.ant-col-rtl{right:auto;left:91.66666667%}.ant-col-xs-offset-22.ant-col-rtl{margin-right:91.66666667%;margin-left:0}.ant-col-xs-push-23.ant-col-rtl{right:95.83333333%;left:auto}.ant-col-xs-pull-23.ant-col-rtl{right:auto;left:95.83333333%}.ant-col-xs-offset-23.ant-col-rtl{margin-right:95.83333333%;margin-left:0}.ant-col-xs-push-24.ant-col-rtl{right:100%;left:auto}.ant-col-xs-pull-24.ant-col-rtl{right:auto;left:100%}.ant-col-xs-offset-24.ant-col-rtl{margin-right:100%;margin-left:0}@media (min-width:576px){.ant-col-sm-24{display:block;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.ant-col-sm-push-24{left:100%}.ant-col-sm-pull-24{right:100%}.ant-col-sm-offset-24{margin-left:100%}.ant-col-sm-order-24{-ms-flex-order:24;order:24}.ant-col-sm-23{display:block;-ms-flex:0 0 95.83333333%;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-sm-push-23{left:95.83333333%}.ant-col-sm-pull-23{right:95.83333333%}.ant-col-sm-offset-23{margin-left:95.83333333%}.ant-col-sm-order-23{-ms-flex-order:23;order:23}.ant-col-sm-22{display:block;-ms-flex:0 0 91.66666667%;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-sm-push-22{left:91.66666667%}.ant-col-sm-pull-22{right:91.66666667%}.ant-col-sm-offset-22{margin-left:91.66666667%}.ant-col-sm-order-22{-ms-flex-order:22;order:22}.ant-col-sm-21{display:block;-ms-flex:0 0 87.5%;flex:0 0 87.5%;max-width:87.5%}.ant-col-sm-push-21{left:87.5%}.ant-col-sm-pull-21{right:87.5%}.ant-col-sm-offset-21{margin-left:87.5%}.ant-col-sm-order-21{-ms-flex-order:21;order:21}.ant-col-sm-20{display:block;-ms-flex:0 0 83.33333333%;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-sm-push-20{left:83.33333333%}.ant-col-sm-pull-20{right:83.33333333%}.ant-col-sm-offset-20{margin-left:83.33333333%}.ant-col-sm-order-20{-ms-flex-order:20;order:20}.ant-col-sm-19{display:block;-ms-flex:0 0 79.16666667%;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-sm-push-19{left:79.16666667%}.ant-col-sm-pull-19{right:79.16666667%}.ant-col-sm-offset-19{margin-left:79.16666667%}.ant-col-sm-order-19{-ms-flex-order:19;order:19}.ant-col-sm-18{display:block;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.ant-col-sm-push-18{left:75%}.ant-col-sm-pull-18{right:75%}.ant-col-sm-offset-18{margin-left:75%}.ant-col-sm-order-18{-ms-flex-order:18;order:18}.ant-col-sm-17{display:block;-ms-flex:0 0 70.83333333%;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-sm-push-17{left:70.83333333%}.ant-col-sm-pull-17{right:70.83333333%}.ant-col-sm-offset-17{margin-left:70.83333333%}.ant-col-sm-order-17{-ms-flex-order:17;order:17}.ant-col-sm-16{display:block;-ms-flex:0 0 66.66666667%;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-sm-push-16{left:66.66666667%}.ant-col-sm-pull-16{right:66.66666667%}.ant-col-sm-offset-16{margin-left:66.66666667%}.ant-col-sm-order-16{-ms-flex-order:16;order:16}.ant-col-sm-15{display:block;-ms-flex:0 0 62.5%;flex:0 0 62.5%;max-width:62.5%}.ant-col-sm-push-15{left:62.5%}.ant-col-sm-pull-15{right:62.5%}.ant-col-sm-offset-15{margin-left:62.5%}.ant-col-sm-order-15{-ms-flex-order:15;order:15}.ant-col-sm-14{display:block;-ms-flex:0 0 58.33333333%;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-sm-push-14{left:58.33333333%}.ant-col-sm-pull-14{right:58.33333333%}.ant-col-sm-offset-14{margin-left:58.33333333%}.ant-col-sm-order-14{-ms-flex-order:14;order:14}.ant-col-sm-13{display:block;-ms-flex:0 0 54.16666667%;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-sm-push-13{left:54.16666667%}.ant-col-sm-pull-13{right:54.16666667%}.ant-col-sm-offset-13{margin-left:54.16666667%}.ant-col-sm-order-13{-ms-flex-order:13;order:13}.ant-col-sm-12{display:block;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.ant-col-sm-push-12{left:50%}.ant-col-sm-pull-12{right:50%}.ant-col-sm-offset-12{margin-left:50%}.ant-col-sm-order-12{-ms-flex-order:12;order:12}.ant-col-sm-11{display:block;-ms-flex:0 0 45.83333333%;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-sm-push-11{left:45.83333333%}.ant-col-sm-pull-11{right:45.83333333%}.ant-col-sm-offset-11{margin-left:45.83333333%}.ant-col-sm-order-11{-ms-flex-order:11;order:11}.ant-col-sm-10{display:block;-ms-flex:0 0 41.66666667%;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-sm-push-10{left:41.66666667%}.ant-col-sm-pull-10{right:41.66666667%}.ant-col-sm-offset-10{margin-left:41.66666667%}.ant-col-sm-order-10{-ms-flex-order:10;order:10}.ant-col-sm-9{display:block;-ms-flex:0 0 37.5%;flex:0 0 37.5%;max-width:37.5%}.ant-col-sm-push-9{left:37.5%}.ant-col-sm-pull-9{right:37.5%}.ant-col-sm-offset-9{margin-left:37.5%}.ant-col-sm-order-9{-ms-flex-order:9;order:9}.ant-col-sm-8{display:block;-ms-flex:0 0 33.33333333%;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-sm-push-8{left:33.33333333%}.ant-col-sm-pull-8{right:33.33333333%}.ant-col-sm-offset-8{margin-left:33.33333333%}.ant-col-sm-order-8{-ms-flex-order:8;order:8}.ant-col-sm-7{display:block;-ms-flex:0 0 29.16666667%;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-sm-push-7{left:29.16666667%}.ant-col-sm-pull-7{right:29.16666667%}.ant-col-sm-offset-7{margin-left:29.16666667%}.ant-col-sm-order-7{-ms-flex-order:7;order:7}.ant-col-sm-6{display:block;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.ant-col-sm-push-6{left:25%}.ant-col-sm-pull-6{right:25%}.ant-col-sm-offset-6{margin-left:25%}.ant-col-sm-order-6{-ms-flex-order:6;order:6}.ant-col-sm-5{display:block;-ms-flex:0 0 20.83333333%;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-sm-push-5{left:20.83333333%}.ant-col-sm-pull-5{right:20.83333333%}.ant-col-sm-offset-5{margin-left:20.83333333%}.ant-col-sm-order-5{-ms-flex-order:5;order:5}.ant-col-sm-4{display:block;-ms-flex:0 0 16.66666667%;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-sm-push-4{left:16.66666667%}.ant-col-sm-pull-4{right:16.66666667%}.ant-col-sm-offset-4{margin-left:16.66666667%}.ant-col-sm-order-4{-ms-flex-order:4;order:4}.ant-col-sm-3{display:block;-ms-flex:0 0 12.5%;flex:0 0 12.5%;max-width:12.5%}.ant-col-sm-push-3{left:12.5%}.ant-col-sm-pull-3{right:12.5%}.ant-col-sm-offset-3{margin-left:12.5%}.ant-col-sm-order-3{-ms-flex-order:3;order:3}.ant-col-sm-2{display:block;-ms-flex:0 0 8.33333333%;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-sm-push-2{left:8.33333333%}.ant-col-sm-pull-2{right:8.33333333%}.ant-col-sm-offset-2{margin-left:8.33333333%}.ant-col-sm-order-2{-ms-flex-order:2;order:2}.ant-col-sm-1{display:block;-ms-flex:0 0 4.16666667%;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-sm-push-1{left:4.16666667%}.ant-col-sm-pull-1{right:4.16666667%}.ant-col-sm-offset-1{margin-left:4.16666667%}.ant-col-sm-order-1{-ms-flex-order:1;order:1}.ant-col-sm-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-sm-push-0{left:auto}.ant-col-sm-pull-0{right:auto}.ant-col-sm-offset-0{margin-left:0}.ant-col-sm-order-0{-ms-flex-order:0;order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-sm-push-0.ant-col-rtl{right:auto}.ant-col-sm-pull-0.ant-col-rtl{left:auto}.ant-col-sm-offset-0.ant-col-rtl{margin-right:0}.ant-col-sm-push-1.ant-col-rtl{right:4.16666667%;left:auto}.ant-col-sm-pull-1.ant-col-rtl{right:auto;left:4.16666667%}.ant-col-sm-offset-1.ant-col-rtl{margin-right:4.16666667%;margin-left:0}.ant-col-sm-push-2.ant-col-rtl{right:8.33333333%;left:auto}.ant-col-sm-pull-2.ant-col-rtl{right:auto;left:8.33333333%}.ant-col-sm-offset-2.ant-col-rtl{margin-right:8.33333333%;margin-left:0}.ant-col-sm-push-3.ant-col-rtl{right:12.5%;left:auto}.ant-col-sm-pull-3.ant-col-rtl{right:auto;left:12.5%}.ant-col-sm-offset-3.ant-col-rtl{margin-right:12.5%;margin-left:0}.ant-col-sm-push-4.ant-col-rtl{right:16.66666667%;left:auto}.ant-col-sm-pull-4.ant-col-rtl{right:auto;left:16.66666667%}.ant-col-sm-offset-4.ant-col-rtl{margin-right:16.66666667%;margin-left:0}.ant-col-sm-push-5.ant-col-rtl{right:20.83333333%;left:auto}.ant-col-sm-pull-5.ant-col-rtl{right:auto;left:20.83333333%}.ant-col-sm-offset-5.ant-col-rtl{margin-right:20.83333333%;margin-left:0}.ant-col-sm-push-6.ant-col-rtl{right:25%;left:auto}.ant-col-sm-pull-6.ant-col-rtl{right:auto;left:25%}.ant-col-sm-offset-6.ant-col-rtl{margin-right:25%;margin-left:0}.ant-col-sm-push-7.ant-col-rtl{right:29.16666667%;left:auto}.ant-col-sm-pull-7.ant-col-rtl{right:auto;left:29.16666667%}.ant-col-sm-offset-7.ant-col-rtl{margin-right:29.16666667%;margin-left:0}.ant-col-sm-push-8.ant-col-rtl{right:33.33333333%;left:auto}.ant-col-sm-pull-8.ant-col-rtl{right:auto;left:33.33333333%}.ant-col-sm-offset-8.ant-col-rtl{margin-right:33.33333333%;margin-left:0}.ant-col-sm-push-9.ant-col-rtl{right:37.5%;left:auto}.ant-col-sm-pull-9.ant-col-rtl{right:auto;left:37.5%}.ant-col-sm-offset-9.ant-col-rtl{margin-right:37.5%;margin-left:0}.ant-col-sm-push-10.ant-col-rtl{right:41.66666667%;left:auto}.ant-col-sm-pull-10.ant-col-rtl{right:auto;left:41.66666667%}.ant-col-sm-offset-10.ant-col-rtl{margin-right:41.66666667%;margin-left:0}.ant-col-sm-push-11.ant-col-rtl{right:45.83333333%;left:auto}.ant-col-sm-pull-11.ant-col-rtl{right:auto;left:45.83333333%}.ant-col-sm-offset-11.ant-col-rtl{margin-right:45.83333333%;margin-left:0}.ant-col-sm-push-12.ant-col-rtl{right:50%;left:auto}.ant-col-sm-pull-12.ant-col-rtl{right:auto;left:50%}.ant-col-sm-offset-12.ant-col-rtl{margin-right:50%;margin-left:0}.ant-col-sm-push-13.ant-col-rtl{right:54.16666667%;left:auto}.ant-col-sm-pull-13.ant-col-rtl{right:auto;left:54.16666667%}.ant-col-sm-offset-13.ant-col-rtl{margin-right:54.16666667%;margin-left:0}.ant-col-sm-push-14.ant-col-rtl{right:58.33333333%;left:auto}.ant-col-sm-pull-14.ant-col-rtl{right:auto;left:58.33333333%}.ant-col-sm-offset-14.ant-col-rtl{margin-right:58.33333333%;margin-left:0}.ant-col-sm-push-15.ant-col-rtl{right:62.5%;left:auto}.ant-col-sm-pull-15.ant-col-rtl{right:auto;left:62.5%}.ant-col-sm-offset-15.ant-col-rtl{margin-right:62.5%;margin-left:0}.ant-col-sm-push-16.ant-col-rtl{right:66.66666667%;left:auto}.ant-col-sm-pull-16.ant-col-rtl{right:auto;left:66.66666667%}.ant-col-sm-offset-16.ant-col-rtl{margin-right:66.66666667%;margin-left:0}.ant-col-sm-push-17.ant-col-rtl{right:70.83333333%;left:auto}.ant-col-sm-pull-17.ant-col-rtl{right:auto;left:70.83333333%}.ant-col-sm-offset-17.ant-col-rtl{margin-right:70.83333333%;margin-left:0}.ant-col-sm-push-18.ant-col-rtl{right:75%;left:auto}.ant-col-sm-pull-18.ant-col-rtl{right:auto;left:75%}.ant-col-sm-offset-18.ant-col-rtl{margin-right:75%;margin-left:0}.ant-col-sm-push-19.ant-col-rtl{right:79.16666667%;left:auto}.ant-col-sm-pull-19.ant-col-rtl{right:auto;left:79.16666667%}.ant-col-sm-offset-19.ant-col-rtl{margin-right:79.16666667%;margin-left:0}.ant-col-sm-push-20.ant-col-rtl{right:83.33333333%;left:auto}.ant-col-sm-pull-20.ant-col-rtl{right:auto;left:83.33333333%}.ant-col-sm-offset-20.ant-col-rtl{margin-right:83.33333333%;margin-left:0}.ant-col-sm-push-21.ant-col-rtl{right:87.5%;left:auto}.ant-col-sm-pull-21.ant-col-rtl{right:auto;left:87.5%}.ant-col-sm-offset-21.ant-col-rtl{margin-right:87.5%;margin-left:0}.ant-col-sm-push-22.ant-col-rtl{right:91.66666667%;left:auto}.ant-col-sm-pull-22.ant-col-rtl{right:auto;left:91.66666667%}.ant-col-sm-offset-22.ant-col-rtl{margin-right:91.66666667%;margin-left:0}.ant-col-sm-push-23.ant-col-rtl{right:95.83333333%;left:auto}.ant-col-sm-pull-23.ant-col-rtl{right:auto;left:95.83333333%}.ant-col-sm-offset-23.ant-col-rtl{margin-right:95.83333333%;margin-left:0}.ant-col-sm-push-24.ant-col-rtl{right:100%;left:auto}.ant-col-sm-pull-24.ant-col-rtl{right:auto;left:100%}.ant-col-sm-offset-24.ant-col-rtl{margin-right:100%;margin-left:0}}@media (min-width:768px){.ant-col-md-24{display:block;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.ant-col-md-push-24{left:100%}.ant-col-md-pull-24{right:100%}.ant-col-md-offset-24{margin-left:100%}.ant-col-md-order-24{-ms-flex-order:24;order:24}.ant-col-md-23{display:block;-ms-flex:0 0 95.83333333%;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-md-push-23{left:95.83333333%}.ant-col-md-pull-23{right:95.83333333%}.ant-col-md-offset-23{margin-left:95.83333333%}.ant-col-md-order-23{-ms-flex-order:23;order:23}.ant-col-md-22{display:block;-ms-flex:0 0 91.66666667%;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-md-push-22{left:91.66666667%}.ant-col-md-pull-22{right:91.66666667%}.ant-col-md-offset-22{margin-left:91.66666667%}.ant-col-md-order-22{-ms-flex-order:22;order:22}.ant-col-md-21{display:block;-ms-flex:0 0 87.5%;flex:0 0 87.5%;max-width:87.5%}.ant-col-md-push-21{left:87.5%}.ant-col-md-pull-21{right:87.5%}.ant-col-md-offset-21{margin-left:87.5%}.ant-col-md-order-21{-ms-flex-order:21;order:21}.ant-col-md-20{display:block;-ms-flex:0 0 83.33333333%;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-md-push-20{left:83.33333333%}.ant-col-md-pull-20{right:83.33333333%}.ant-col-md-offset-20{margin-left:83.33333333%}.ant-col-md-order-20{-ms-flex-order:20;order:20}.ant-col-md-19{display:block;-ms-flex:0 0 79.16666667%;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-md-push-19{left:79.16666667%}.ant-col-md-pull-19{right:79.16666667%}.ant-col-md-offset-19{margin-left:79.16666667%}.ant-col-md-order-19{-ms-flex-order:19;order:19}.ant-col-md-18{display:block;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.ant-col-md-push-18{left:75%}.ant-col-md-pull-18{right:75%}.ant-col-md-offset-18{margin-left:75%}.ant-col-md-order-18{-ms-flex-order:18;order:18}.ant-col-md-17{display:block;-ms-flex:0 0 70.83333333%;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-md-push-17{left:70.83333333%}.ant-col-md-pull-17{right:70.83333333%}.ant-col-md-offset-17{margin-left:70.83333333%}.ant-col-md-order-17{-ms-flex-order:17;order:17}.ant-col-md-16{display:block;-ms-flex:0 0 66.66666667%;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-md-push-16{left:66.66666667%}.ant-col-md-pull-16{right:66.66666667%}.ant-col-md-offset-16{margin-left:66.66666667%}.ant-col-md-order-16{-ms-flex-order:16;order:16}.ant-col-md-15{display:block;-ms-flex:0 0 62.5%;flex:0 0 62.5%;max-width:62.5%}.ant-col-md-push-15{left:62.5%}.ant-col-md-pull-15{right:62.5%}.ant-col-md-offset-15{margin-left:62.5%}.ant-col-md-order-15{-ms-flex-order:15;order:15}.ant-col-md-14{display:block;-ms-flex:0 0 58.33333333%;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-md-push-14{left:58.33333333%}.ant-col-md-pull-14{right:58.33333333%}.ant-col-md-offset-14{margin-left:58.33333333%}.ant-col-md-order-14{-ms-flex-order:14;order:14}.ant-col-md-13{display:block;-ms-flex:0 0 54.16666667%;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-md-push-13{left:54.16666667%}.ant-col-md-pull-13{right:54.16666667%}.ant-col-md-offset-13{margin-left:54.16666667%}.ant-col-md-order-13{-ms-flex-order:13;order:13}.ant-col-md-12{display:block;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.ant-col-md-push-12{left:50%}.ant-col-md-pull-12{right:50%}.ant-col-md-offset-12{margin-left:50%}.ant-col-md-order-12{-ms-flex-order:12;order:12}.ant-col-md-11{display:block;-ms-flex:0 0 45.83333333%;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-md-push-11{left:45.83333333%}.ant-col-md-pull-11{right:45.83333333%}.ant-col-md-offset-11{margin-left:45.83333333%}.ant-col-md-order-11{-ms-flex-order:11;order:11}.ant-col-md-10{display:block;-ms-flex:0 0 41.66666667%;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-md-push-10{left:41.66666667%}.ant-col-md-pull-10{right:41.66666667%}.ant-col-md-offset-10{margin-left:41.66666667%}.ant-col-md-order-10{-ms-flex-order:10;order:10}.ant-col-md-9{display:block;-ms-flex:0 0 37.5%;flex:0 0 37.5%;max-width:37.5%}.ant-col-md-push-9{left:37.5%}.ant-col-md-pull-9{right:37.5%}.ant-col-md-offset-9{margin-left:37.5%}.ant-col-md-order-9{-ms-flex-order:9;order:9}.ant-col-md-8{display:block;-ms-flex:0 0 33.33333333%;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-md-push-8{left:33.33333333%}.ant-col-md-pull-8{right:33.33333333%}.ant-col-md-offset-8{margin-left:33.33333333%}.ant-col-md-order-8{-ms-flex-order:8;order:8}.ant-col-md-7{display:block;-ms-flex:0 0 29.16666667%;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-md-push-7{left:29.16666667%}.ant-col-md-pull-7{right:29.16666667%}.ant-col-md-offset-7{margin-left:29.16666667%}.ant-col-md-order-7{-ms-flex-order:7;order:7}.ant-col-md-6{display:block;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.ant-col-md-push-6{left:25%}.ant-col-md-pull-6{right:25%}.ant-col-md-offset-6{margin-left:25%}.ant-col-md-order-6{-ms-flex-order:6;order:6}.ant-col-md-5{display:block;-ms-flex:0 0 20.83333333%;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-md-push-5{left:20.83333333%}.ant-col-md-pull-5{right:20.83333333%}.ant-col-md-offset-5{margin-left:20.83333333%}.ant-col-md-order-5{-ms-flex-order:5;order:5}.ant-col-md-4{display:block;-ms-flex:0 0 16.66666667%;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-md-push-4{left:16.66666667%}.ant-col-md-pull-4{right:16.66666667%}.ant-col-md-offset-4{margin-left:16.66666667%}.ant-col-md-order-4{-ms-flex-order:4;order:4}.ant-col-md-3{display:block;-ms-flex:0 0 12.5%;flex:0 0 12.5%;max-width:12.5%}.ant-col-md-push-3{left:12.5%}.ant-col-md-pull-3{right:12.5%}.ant-col-md-offset-3{margin-left:12.5%}.ant-col-md-order-3{-ms-flex-order:3;order:3}.ant-col-md-2{display:block;-ms-flex:0 0 8.33333333%;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-md-push-2{left:8.33333333%}.ant-col-md-pull-2{right:8.33333333%}.ant-col-md-offset-2{margin-left:8.33333333%}.ant-col-md-order-2{-ms-flex-order:2;order:2}.ant-col-md-1{display:block;-ms-flex:0 0 4.16666667%;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-md-push-1{left:4.16666667%}.ant-col-md-pull-1{right:4.16666667%}.ant-col-md-offset-1{margin-left:4.16666667%}.ant-col-md-order-1{-ms-flex-order:1;order:1}.ant-col-md-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-md-push-0{left:auto}.ant-col-md-pull-0{right:auto}.ant-col-md-offset-0{margin-left:0}.ant-col-md-order-0{-ms-flex-order:0;order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-md-push-0.ant-col-rtl{right:auto}.ant-col-md-pull-0.ant-col-rtl{left:auto}.ant-col-md-offset-0.ant-col-rtl{margin-right:0}.ant-col-md-push-1.ant-col-rtl{right:4.16666667%;left:auto}.ant-col-md-pull-1.ant-col-rtl{right:auto;left:4.16666667%}.ant-col-md-offset-1.ant-col-rtl{margin-right:4.16666667%;margin-left:0}.ant-col-md-push-2.ant-col-rtl{right:8.33333333%;left:auto}.ant-col-md-pull-2.ant-col-rtl{right:auto;left:8.33333333%}.ant-col-md-offset-2.ant-col-rtl{margin-right:8.33333333%;margin-left:0}.ant-col-md-push-3.ant-col-rtl{right:12.5%;left:auto}.ant-col-md-pull-3.ant-col-rtl{right:auto;left:12.5%}.ant-col-md-offset-3.ant-col-rtl{margin-right:12.5%;margin-left:0}.ant-col-md-push-4.ant-col-rtl{right:16.66666667%;left:auto}.ant-col-md-pull-4.ant-col-rtl{right:auto;left:16.66666667%}.ant-col-md-offset-4.ant-col-rtl{margin-right:16.66666667%;margin-left:0}.ant-col-md-push-5.ant-col-rtl{right:20.83333333%;left:auto}.ant-col-md-pull-5.ant-col-rtl{right:auto;left:20.83333333%}.ant-col-md-offset-5.ant-col-rtl{margin-right:20.83333333%;margin-left:0}.ant-col-md-push-6.ant-col-rtl{right:25%;left:auto}.ant-col-md-pull-6.ant-col-rtl{right:auto;left:25%}.ant-col-md-offset-6.ant-col-rtl{margin-right:25%;margin-left:0}.ant-col-md-push-7.ant-col-rtl{right:29.16666667%;left:auto}.ant-col-md-pull-7.ant-col-rtl{right:auto;left:29.16666667%}.ant-col-md-offset-7.ant-col-rtl{margin-right:29.16666667%;margin-left:0}.ant-col-md-push-8.ant-col-rtl{right:33.33333333%;left:auto}.ant-col-md-pull-8.ant-col-rtl{right:auto;left:33.33333333%}.ant-col-md-offset-8.ant-col-rtl{margin-right:33.33333333%;margin-left:0}.ant-col-md-push-9.ant-col-rtl{right:37.5%;left:auto}.ant-col-md-pull-9.ant-col-rtl{right:auto;left:37.5%}.ant-col-md-offset-9.ant-col-rtl{margin-right:37.5%;margin-left:0}.ant-col-md-push-10.ant-col-rtl{right:41.66666667%;left:auto}.ant-col-md-pull-10.ant-col-rtl{right:auto;left:41.66666667%}.ant-col-md-offset-10.ant-col-rtl{margin-right:41.66666667%;margin-left:0}.ant-col-md-push-11.ant-col-rtl{right:45.83333333%;left:auto}.ant-col-md-pull-11.ant-col-rtl{right:auto;left:45.83333333%}.ant-col-md-offset-11.ant-col-rtl{margin-right:45.83333333%;margin-left:0}.ant-col-md-push-12.ant-col-rtl{right:50%;left:auto}.ant-col-md-pull-12.ant-col-rtl{right:auto;left:50%}.ant-col-md-offset-12.ant-col-rtl{margin-right:50%;margin-left:0}.ant-col-md-push-13.ant-col-rtl{right:54.16666667%;left:auto}.ant-col-md-pull-13.ant-col-rtl{right:auto;left:54.16666667%}.ant-col-md-offset-13.ant-col-rtl{margin-right:54.16666667%;margin-left:0}.ant-col-md-push-14.ant-col-rtl{right:58.33333333%;left:auto}.ant-col-md-pull-14.ant-col-rtl{right:auto;left:58.33333333%}.ant-col-md-offset-14.ant-col-rtl{margin-right:58.33333333%;margin-left:0}.ant-col-md-push-15.ant-col-rtl{right:62.5%;left:auto}.ant-col-md-pull-15.ant-col-rtl{right:auto;left:62.5%}.ant-col-md-offset-15.ant-col-rtl{margin-right:62.5%;margin-left:0}.ant-col-md-push-16.ant-col-rtl{right:66.66666667%;left:auto}.ant-col-md-pull-16.ant-col-rtl{right:auto;left:66.66666667%}.ant-col-md-offset-16.ant-col-rtl{margin-right:66.66666667%;margin-left:0}.ant-col-md-push-17.ant-col-rtl{right:70.83333333%;left:auto}.ant-col-md-pull-17.ant-col-rtl{right:auto;left:70.83333333%}.ant-col-md-offset-17.ant-col-rtl{margin-right:70.83333333%;margin-left:0}.ant-col-md-push-18.ant-col-rtl{right:75%;left:auto}.ant-col-md-pull-18.ant-col-rtl{right:auto;left:75%}.ant-col-md-offset-18.ant-col-rtl{margin-right:75%;margin-left:0}.ant-col-md-push-19.ant-col-rtl{right:79.16666667%;left:auto}.ant-col-md-pull-19.ant-col-rtl{right:auto;left:79.16666667%}.ant-col-md-offset-19.ant-col-rtl{margin-right:79.16666667%;margin-left:0}.ant-col-md-push-20.ant-col-rtl{right:83.33333333%;left:auto}.ant-col-md-pull-20.ant-col-rtl{right:auto;left:83.33333333%}.ant-col-md-offset-20.ant-col-rtl{margin-right:83.33333333%;margin-left:0}.ant-col-md-push-21.ant-col-rtl{right:87.5%;left:auto}.ant-col-md-pull-21.ant-col-rtl{right:auto;left:87.5%}.ant-col-md-offset-21.ant-col-rtl{margin-right:87.5%;margin-left:0}.ant-col-md-push-22.ant-col-rtl{right:91.66666667%;left:auto}.ant-col-md-pull-22.ant-col-rtl{right:auto;left:91.66666667%}.ant-col-md-offset-22.ant-col-rtl{margin-right:91.66666667%;margin-left:0}.ant-col-md-push-23.ant-col-rtl{right:95.83333333%;left:auto}.ant-col-md-pull-23.ant-col-rtl{right:auto;left:95.83333333%}.ant-col-md-offset-23.ant-col-rtl{margin-right:95.83333333%;margin-left:0}.ant-col-md-push-24.ant-col-rtl{right:100%;left:auto}.ant-col-md-pull-24.ant-col-rtl{right:auto;left:100%}.ant-col-md-offset-24.ant-col-rtl{margin-right:100%;margin-left:0}}@media (min-width:992px){.ant-col-lg-24{display:block;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.ant-col-lg-push-24{left:100%}.ant-col-lg-pull-24{right:100%}.ant-col-lg-offset-24{margin-left:100%}.ant-col-lg-order-24{-ms-flex-order:24;order:24}.ant-col-lg-23{display:block;-ms-flex:0 0 95.83333333%;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-lg-push-23{left:95.83333333%}.ant-col-lg-pull-23{right:95.83333333%}.ant-col-lg-offset-23{margin-left:95.83333333%}.ant-col-lg-order-23{-ms-flex-order:23;order:23}.ant-col-lg-22{display:block;-ms-flex:0 0 91.66666667%;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-lg-push-22{left:91.66666667%}.ant-col-lg-pull-22{right:91.66666667%}.ant-col-lg-offset-22{margin-left:91.66666667%}.ant-col-lg-order-22{-ms-flex-order:22;order:22}.ant-col-lg-21{display:block;-ms-flex:0 0 87.5%;flex:0 0 87.5%;max-width:87.5%}.ant-col-lg-push-21{left:87.5%}.ant-col-lg-pull-21{right:87.5%}.ant-col-lg-offset-21{margin-left:87.5%}.ant-col-lg-order-21{-ms-flex-order:21;order:21}.ant-col-lg-20{display:block;-ms-flex:0 0 83.33333333%;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-lg-push-20{left:83.33333333%}.ant-col-lg-pull-20{right:83.33333333%}.ant-col-lg-offset-20{margin-left:83.33333333%}.ant-col-lg-order-20{-ms-flex-order:20;order:20}.ant-col-lg-19{display:block;-ms-flex:0 0 79.16666667%;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-lg-push-19{left:79.16666667%}.ant-col-lg-pull-19{right:79.16666667%}.ant-col-lg-offset-19{margin-left:79.16666667%}.ant-col-lg-order-19{-ms-flex-order:19;order:19}.ant-col-lg-18{display:block;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.ant-col-lg-push-18{left:75%}.ant-col-lg-pull-18{right:75%}.ant-col-lg-offset-18{margin-left:75%}.ant-col-lg-order-18{-ms-flex-order:18;order:18}.ant-col-lg-17{display:block;-ms-flex:0 0 70.83333333%;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-lg-push-17{left:70.83333333%}.ant-col-lg-pull-17{right:70.83333333%}.ant-col-lg-offset-17{margin-left:70.83333333%}.ant-col-lg-order-17{-ms-flex-order:17;order:17}.ant-col-lg-16{display:block;-ms-flex:0 0 66.66666667%;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-lg-push-16{left:66.66666667%}.ant-col-lg-pull-16{right:66.66666667%}.ant-col-lg-offset-16{margin-left:66.66666667%}.ant-col-lg-order-16{-ms-flex-order:16;order:16}.ant-col-lg-15{display:block;-ms-flex:0 0 62.5%;flex:0 0 62.5%;max-width:62.5%}.ant-col-lg-push-15{left:62.5%}.ant-col-lg-pull-15{right:62.5%}.ant-col-lg-offset-15{margin-left:62.5%}.ant-col-lg-order-15{-ms-flex-order:15;order:15}.ant-col-lg-14{display:block;-ms-flex:0 0 58.33333333%;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-lg-push-14{left:58.33333333%}.ant-col-lg-pull-14{right:58.33333333%}.ant-col-lg-offset-14{margin-left:58.33333333%}.ant-col-lg-order-14{-ms-flex-order:14;order:14}.ant-col-lg-13{display:block;-ms-flex:0 0 54.16666667%;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-lg-push-13{left:54.16666667%}.ant-col-lg-pull-13{right:54.16666667%}.ant-col-lg-offset-13{margin-left:54.16666667%}.ant-col-lg-order-13{-ms-flex-order:13;order:13}.ant-col-lg-12{display:block;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.ant-col-lg-push-12{left:50%}.ant-col-lg-pull-12{right:50%}.ant-col-lg-offset-12{margin-left:50%}.ant-col-lg-order-12{-ms-flex-order:12;order:12}.ant-col-lg-11{display:block;-ms-flex:0 0 45.83333333%;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-lg-push-11{left:45.83333333%}.ant-col-lg-pull-11{right:45.83333333%}.ant-col-lg-offset-11{margin-left:45.83333333%}.ant-col-lg-order-11{-ms-flex-order:11;order:11}.ant-col-lg-10{display:block;-ms-flex:0 0 41.66666667%;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-lg-push-10{left:41.66666667%}.ant-col-lg-pull-10{right:41.66666667%}.ant-col-lg-offset-10{margin-left:41.66666667%}.ant-col-lg-order-10{-ms-flex-order:10;order:10}.ant-col-lg-9{display:block;-ms-flex:0 0 37.5%;flex:0 0 37.5%;max-width:37.5%}.ant-col-lg-push-9{left:37.5%}.ant-col-lg-pull-9{right:37.5%}.ant-col-lg-offset-9{margin-left:37.5%}.ant-col-lg-order-9{-ms-flex-order:9;order:9}.ant-col-lg-8{display:block;-ms-flex:0 0 33.33333333%;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-lg-push-8{left:33.33333333%}.ant-col-lg-pull-8{right:33.33333333%}.ant-col-lg-offset-8{margin-left:33.33333333%}.ant-col-lg-order-8{-ms-flex-order:8;order:8}.ant-col-lg-7{display:block;-ms-flex:0 0 29.16666667%;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-lg-push-7{left:29.16666667%}.ant-col-lg-pull-7{right:29.16666667%}.ant-col-lg-offset-7{margin-left:29.16666667%}.ant-col-lg-order-7{-ms-flex-order:7;order:7}.ant-col-lg-6{display:block;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.ant-col-lg-push-6{left:25%}.ant-col-lg-pull-6{right:25%}.ant-col-lg-offset-6{margin-left:25%}.ant-col-lg-order-6{-ms-flex-order:6;order:6}.ant-col-lg-5{display:block;-ms-flex:0 0 20.83333333%;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-lg-push-5{left:20.83333333%}.ant-col-lg-pull-5{right:20.83333333%}.ant-col-lg-offset-5{margin-left:20.83333333%}.ant-col-lg-order-5{-ms-flex-order:5;order:5}.ant-col-lg-4{display:block;-ms-flex:0 0 16.66666667%;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-lg-push-4{left:16.66666667%}.ant-col-lg-pull-4{right:16.66666667%}.ant-col-lg-offset-4{margin-left:16.66666667%}.ant-col-lg-order-4{-ms-flex-order:4;order:4}.ant-col-lg-3{display:block;-ms-flex:0 0 12.5%;flex:0 0 12.5%;max-width:12.5%}.ant-col-lg-push-3{left:12.5%}.ant-col-lg-pull-3{right:12.5%}.ant-col-lg-offset-3{margin-left:12.5%}.ant-col-lg-order-3{-ms-flex-order:3;order:3}.ant-col-lg-2{display:block;-ms-flex:0 0 8.33333333%;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-lg-push-2{left:8.33333333%}.ant-col-lg-pull-2{right:8.33333333%}.ant-col-lg-offset-2{margin-left:8.33333333%}.ant-col-lg-order-2{-ms-flex-order:2;order:2}.ant-col-lg-1{display:block;-ms-flex:0 0 4.16666667%;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-lg-push-1{left:4.16666667%}.ant-col-lg-pull-1{right:4.16666667%}.ant-col-lg-offset-1{margin-left:4.16666667%}.ant-col-lg-order-1{-ms-flex-order:1;order:1}.ant-col-lg-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-lg-push-0{left:auto}.ant-col-lg-pull-0{right:auto}.ant-col-lg-offset-0{margin-left:0}.ant-col-lg-order-0{-ms-flex-order:0;order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-lg-push-0.ant-col-rtl{right:auto}.ant-col-lg-pull-0.ant-col-rtl{left:auto}.ant-col-lg-offset-0.ant-col-rtl{margin-right:0}.ant-col-lg-push-1.ant-col-rtl{right:4.16666667%;left:auto}.ant-col-lg-pull-1.ant-col-rtl{right:auto;left:4.16666667%}.ant-col-lg-offset-1.ant-col-rtl{margin-right:4.16666667%;margin-left:0}.ant-col-lg-push-2.ant-col-rtl{right:8.33333333%;left:auto}.ant-col-lg-pull-2.ant-col-rtl{right:auto;left:8.33333333%}.ant-col-lg-offset-2.ant-col-rtl{margin-right:8.33333333%;margin-left:0}.ant-col-lg-push-3.ant-col-rtl{right:12.5%;left:auto}.ant-col-lg-pull-3.ant-col-rtl{right:auto;left:12.5%}.ant-col-lg-offset-3.ant-col-rtl{margin-right:12.5%;margin-left:0}.ant-col-lg-push-4.ant-col-rtl{right:16.66666667%;left:auto}.ant-col-lg-pull-4.ant-col-rtl{right:auto;left:16.66666667%}.ant-col-lg-offset-4.ant-col-rtl{margin-right:16.66666667%;margin-left:0}.ant-col-lg-push-5.ant-col-rtl{right:20.83333333%;left:auto}.ant-col-lg-pull-5.ant-col-rtl{right:auto;left:20.83333333%}.ant-col-lg-offset-5.ant-col-rtl{margin-right:20.83333333%;margin-left:0}.ant-col-lg-push-6.ant-col-rtl{right:25%;left:auto}.ant-col-lg-pull-6.ant-col-rtl{right:auto;left:25%}.ant-col-lg-offset-6.ant-col-rtl{margin-right:25%;margin-left:0}.ant-col-lg-push-7.ant-col-rtl{right:29.16666667%;left:auto}.ant-col-lg-pull-7.ant-col-rtl{right:auto;left:29.16666667%}.ant-col-lg-offset-7.ant-col-rtl{margin-right:29.16666667%;margin-left:0}.ant-col-lg-push-8.ant-col-rtl{right:33.33333333%;left:auto}.ant-col-lg-pull-8.ant-col-rtl{right:auto;left:33.33333333%}.ant-col-lg-offset-8.ant-col-rtl{margin-right:33.33333333%;margin-left:0}.ant-col-lg-push-9.ant-col-rtl{right:37.5%;left:auto}.ant-col-lg-pull-9.ant-col-rtl{right:auto;left:37.5%}.ant-col-lg-offset-9.ant-col-rtl{margin-right:37.5%;margin-left:0}.ant-col-lg-push-10.ant-col-rtl{right:41.66666667%;left:auto}.ant-col-lg-pull-10.ant-col-rtl{right:auto;left:41.66666667%}.ant-col-lg-offset-10.ant-col-rtl{margin-right:41.66666667%;margin-left:0}.ant-col-lg-push-11.ant-col-rtl{right:45.83333333%;left:auto}.ant-col-lg-pull-11.ant-col-rtl{right:auto;left:45.83333333%}.ant-col-lg-offset-11.ant-col-rtl{margin-right:45.83333333%;margin-left:0}.ant-col-lg-push-12.ant-col-rtl{right:50%;left:auto}.ant-col-lg-pull-12.ant-col-rtl{right:auto;left:50%}.ant-col-lg-offset-12.ant-col-rtl{margin-right:50%;margin-left:0}.ant-col-lg-push-13.ant-col-rtl{right:54.16666667%;left:auto}.ant-col-lg-pull-13.ant-col-rtl{right:auto;left:54.16666667%}.ant-col-lg-offset-13.ant-col-rtl{margin-right:54.16666667%;margin-left:0}.ant-col-lg-push-14.ant-col-rtl{right:58.33333333%;left:auto}.ant-col-lg-pull-14.ant-col-rtl{right:auto;left:58.33333333%}.ant-col-lg-offset-14.ant-col-rtl{margin-right:58.33333333%;margin-left:0}.ant-col-lg-push-15.ant-col-rtl{right:62.5%;left:auto}.ant-col-lg-pull-15.ant-col-rtl{right:auto;left:62.5%}.ant-col-lg-offset-15.ant-col-rtl{margin-right:62.5%;margin-left:0}.ant-col-lg-push-16.ant-col-rtl{right:66.66666667%;left:auto}.ant-col-lg-pull-16.ant-col-rtl{right:auto;left:66.66666667%}.ant-col-lg-offset-16.ant-col-rtl{margin-right:66.66666667%;margin-left:0}.ant-col-lg-push-17.ant-col-rtl{right:70.83333333%;left:auto}.ant-col-lg-pull-17.ant-col-rtl{right:auto;left:70.83333333%}.ant-col-lg-offset-17.ant-col-rtl{margin-right:70.83333333%;margin-left:0}.ant-col-lg-push-18.ant-col-rtl{right:75%;left:auto}.ant-col-lg-pull-18.ant-col-rtl{right:auto;left:75%}.ant-col-lg-offset-18.ant-col-rtl{margin-right:75%;margin-left:0}.ant-col-lg-push-19.ant-col-rtl{right:79.16666667%;left:auto}.ant-col-lg-pull-19.ant-col-rtl{right:auto;left:79.16666667%}.ant-col-lg-offset-19.ant-col-rtl{margin-right:79.16666667%;margin-left:0}.ant-col-lg-push-20.ant-col-rtl{right:83.33333333%;left:auto}.ant-col-lg-pull-20.ant-col-rtl{right:auto;left:83.33333333%}.ant-col-lg-offset-20.ant-col-rtl{margin-right:83.33333333%;margin-left:0}.ant-col-lg-push-21.ant-col-rtl{right:87.5%;left:auto}.ant-col-lg-pull-21.ant-col-rtl{right:auto;left:87.5%}.ant-col-lg-offset-21.ant-col-rtl{margin-right:87.5%;margin-left:0}.ant-col-lg-push-22.ant-col-rtl{right:91.66666667%;left:auto}.ant-col-lg-pull-22.ant-col-rtl{right:auto;left:91.66666667%}.ant-col-lg-offset-22.ant-col-rtl{margin-right:91.66666667%;margin-left:0}.ant-col-lg-push-23.ant-col-rtl{right:95.83333333%;left:auto}.ant-col-lg-pull-23.ant-col-rtl{right:auto;left:95.83333333%}.ant-col-lg-offset-23.ant-col-rtl{margin-right:95.83333333%;margin-left:0}.ant-col-lg-push-24.ant-col-rtl{right:100%;left:auto}.ant-col-lg-pull-24.ant-col-rtl{right:auto;left:100%}.ant-col-lg-offset-24.ant-col-rtl{margin-right:100%;margin-left:0}}@media (min-width:1200px){.ant-col-xl-24{display:block;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.ant-col-xl-push-24{left:100%}.ant-col-xl-pull-24{right:100%}.ant-col-xl-offset-24{margin-left:100%}.ant-col-xl-order-24{-ms-flex-order:24;order:24}.ant-col-xl-23{display:block;-ms-flex:0 0 95.83333333%;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-xl-push-23{left:95.83333333%}.ant-col-xl-pull-23{right:95.83333333%}.ant-col-xl-offset-23{margin-left:95.83333333%}.ant-col-xl-order-23{-ms-flex-order:23;order:23}.ant-col-xl-22{display:block;-ms-flex:0 0 91.66666667%;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-xl-push-22{left:91.66666667%}.ant-col-xl-pull-22{right:91.66666667%}.ant-col-xl-offset-22{margin-left:91.66666667%}.ant-col-xl-order-22{-ms-flex-order:22;order:22}.ant-col-xl-21{display:block;-ms-flex:0 0 87.5%;flex:0 0 87.5%;max-width:87.5%}.ant-col-xl-push-21{left:87.5%}.ant-col-xl-pull-21{right:87.5%}.ant-col-xl-offset-21{margin-left:87.5%}.ant-col-xl-order-21{-ms-flex-order:21;order:21}.ant-col-xl-20{display:block;-ms-flex:0 0 83.33333333%;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-xl-push-20{left:83.33333333%}.ant-col-xl-pull-20{right:83.33333333%}.ant-col-xl-offset-20{margin-left:83.33333333%}.ant-col-xl-order-20{-ms-flex-order:20;order:20}.ant-col-xl-19{display:block;-ms-flex:0 0 79.16666667%;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-xl-push-19{left:79.16666667%}.ant-col-xl-pull-19{right:79.16666667%}.ant-col-xl-offset-19{margin-left:79.16666667%}.ant-col-xl-order-19{-ms-flex-order:19;order:19}.ant-col-xl-18{display:block;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.ant-col-xl-push-18{left:75%}.ant-col-xl-pull-18{right:75%}.ant-col-xl-offset-18{margin-left:75%}.ant-col-xl-order-18{-ms-flex-order:18;order:18}.ant-col-xl-17{display:block;-ms-flex:0 0 70.83333333%;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-xl-push-17{left:70.83333333%}.ant-col-xl-pull-17{right:70.83333333%}.ant-col-xl-offset-17{margin-left:70.83333333%}.ant-col-xl-order-17{-ms-flex-order:17;order:17}.ant-col-xl-16{display:block;-ms-flex:0 0 66.66666667%;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-xl-push-16{left:66.66666667%}.ant-col-xl-pull-16{right:66.66666667%}.ant-col-xl-offset-16{margin-left:66.66666667%}.ant-col-xl-order-16{-ms-flex-order:16;order:16}.ant-col-xl-15{display:block;-ms-flex:0 0 62.5%;flex:0 0 62.5%;max-width:62.5%}.ant-col-xl-push-15{left:62.5%}.ant-col-xl-pull-15{right:62.5%}.ant-col-xl-offset-15{margin-left:62.5%}.ant-col-xl-order-15{-ms-flex-order:15;order:15}.ant-col-xl-14{display:block;-ms-flex:0 0 58.33333333%;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-xl-push-14{left:58.33333333%}.ant-col-xl-pull-14{right:58.33333333%}.ant-col-xl-offset-14{margin-left:58.33333333%}.ant-col-xl-order-14{-ms-flex-order:14;order:14}.ant-col-xl-13{display:block;-ms-flex:0 0 54.16666667%;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-xl-push-13{left:54.16666667%}.ant-col-xl-pull-13{right:54.16666667%}.ant-col-xl-offset-13{margin-left:54.16666667%}.ant-col-xl-order-13{-ms-flex-order:13;order:13}.ant-col-xl-12{display:block;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.ant-col-xl-push-12{left:50%}.ant-col-xl-pull-12{right:50%}.ant-col-xl-offset-12{margin-left:50%}.ant-col-xl-order-12{-ms-flex-order:12;order:12}.ant-col-xl-11{display:block;-ms-flex:0 0 45.83333333%;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-xl-push-11{left:45.83333333%}.ant-col-xl-pull-11{right:45.83333333%}.ant-col-xl-offset-11{margin-left:45.83333333%}.ant-col-xl-order-11{-ms-flex-order:11;order:11}.ant-col-xl-10{display:block;-ms-flex:0 0 41.66666667%;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-xl-push-10{left:41.66666667%}.ant-col-xl-pull-10{right:41.66666667%}.ant-col-xl-offset-10{margin-left:41.66666667%}.ant-col-xl-order-10{-ms-flex-order:10;order:10}.ant-col-xl-9{display:block;-ms-flex:0 0 37.5%;flex:0 0 37.5%;max-width:37.5%}.ant-col-xl-push-9{left:37.5%}.ant-col-xl-pull-9{right:37.5%}.ant-col-xl-offset-9{margin-left:37.5%}.ant-col-xl-order-9{-ms-flex-order:9;order:9}.ant-col-xl-8{display:block;-ms-flex:0 0 33.33333333%;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-xl-push-8{left:33.33333333%}.ant-col-xl-pull-8{right:33.33333333%}.ant-col-xl-offset-8{margin-left:33.33333333%}.ant-col-xl-order-8{-ms-flex-order:8;order:8}.ant-col-xl-7{display:block;-ms-flex:0 0 29.16666667%;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-xl-push-7{left:29.16666667%}.ant-col-xl-pull-7{right:29.16666667%}.ant-col-xl-offset-7{margin-left:29.16666667%}.ant-col-xl-order-7{-ms-flex-order:7;order:7}.ant-col-xl-6{display:block;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.ant-col-xl-push-6{left:25%}.ant-col-xl-pull-6{right:25%}.ant-col-xl-offset-6{margin-left:25%}.ant-col-xl-order-6{-ms-flex-order:6;order:6}.ant-col-xl-5{display:block;-ms-flex:0 0 20.83333333%;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-xl-push-5{left:20.83333333%}.ant-col-xl-pull-5{right:20.83333333%}.ant-col-xl-offset-5{margin-left:20.83333333%}.ant-col-xl-order-5{-ms-flex-order:5;order:5}.ant-col-xl-4{display:block;-ms-flex:0 0 16.66666667%;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-xl-push-4{left:16.66666667%}.ant-col-xl-pull-4{right:16.66666667%}.ant-col-xl-offset-4{margin-left:16.66666667%}.ant-col-xl-order-4{-ms-flex-order:4;order:4}.ant-col-xl-3{display:block;-ms-flex:0 0 12.5%;flex:0 0 12.5%;max-width:12.5%}.ant-col-xl-push-3{left:12.5%}.ant-col-xl-pull-3{right:12.5%}.ant-col-xl-offset-3{margin-left:12.5%}.ant-col-xl-order-3{-ms-flex-order:3;order:3}.ant-col-xl-2{display:block;-ms-flex:0 0 8.33333333%;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-xl-push-2{left:8.33333333%}.ant-col-xl-pull-2{right:8.33333333%}.ant-col-xl-offset-2{margin-left:8.33333333%}.ant-col-xl-order-2{-ms-flex-order:2;order:2}.ant-col-xl-1{display:block;-ms-flex:0 0 4.16666667%;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-xl-push-1{left:4.16666667%}.ant-col-xl-pull-1{right:4.16666667%}.ant-col-xl-offset-1{margin-left:4.16666667%}.ant-col-xl-order-1{-ms-flex-order:1;order:1}.ant-col-xl-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-xl-push-0{left:auto}.ant-col-xl-pull-0{right:auto}.ant-col-xl-offset-0{margin-left:0}.ant-col-xl-order-0{-ms-flex-order:0;order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-xl-push-0.ant-col-rtl{right:auto}.ant-col-xl-pull-0.ant-col-rtl{left:auto}.ant-col-xl-offset-0.ant-col-rtl{margin-right:0}.ant-col-xl-push-1.ant-col-rtl{right:4.16666667%;left:auto}.ant-col-xl-pull-1.ant-col-rtl{right:auto;left:4.16666667%}.ant-col-xl-offset-1.ant-col-rtl{margin-right:4.16666667%;margin-left:0}.ant-col-xl-push-2.ant-col-rtl{right:8.33333333%;left:auto}.ant-col-xl-pull-2.ant-col-rtl{right:auto;left:8.33333333%}.ant-col-xl-offset-2.ant-col-rtl{margin-right:8.33333333%;margin-left:0}.ant-col-xl-push-3.ant-col-rtl{right:12.5%;left:auto}.ant-col-xl-pull-3.ant-col-rtl{right:auto;left:12.5%}.ant-col-xl-offset-3.ant-col-rtl{margin-right:12.5%;margin-left:0}.ant-col-xl-push-4.ant-col-rtl{right:16.66666667%;left:auto}.ant-col-xl-pull-4.ant-col-rtl{right:auto;left:16.66666667%}.ant-col-xl-offset-4.ant-col-rtl{margin-right:16.66666667%;margin-left:0}.ant-col-xl-push-5.ant-col-rtl{right:20.83333333%;left:auto}.ant-col-xl-pull-5.ant-col-rtl{right:auto;left:20.83333333%}.ant-col-xl-offset-5.ant-col-rtl{margin-right:20.83333333%;margin-left:0}.ant-col-xl-push-6.ant-col-rtl{right:25%;left:auto}.ant-col-xl-pull-6.ant-col-rtl{right:auto;left:25%}.ant-col-xl-offset-6.ant-col-rtl{margin-right:25%;margin-left:0}.ant-col-xl-push-7.ant-col-rtl{right:29.16666667%;left:auto}.ant-col-xl-pull-7.ant-col-rtl{right:auto;left:29.16666667%}.ant-col-xl-offset-7.ant-col-rtl{margin-right:29.16666667%;margin-left:0}.ant-col-xl-push-8.ant-col-rtl{right:33.33333333%;left:auto}.ant-col-xl-pull-8.ant-col-rtl{right:auto;left:33.33333333%}.ant-col-xl-offset-8.ant-col-rtl{margin-right:33.33333333%;margin-left:0}.ant-col-xl-push-9.ant-col-rtl{right:37.5%;left:auto}.ant-col-xl-pull-9.ant-col-rtl{right:auto;left:37.5%}.ant-col-xl-offset-9.ant-col-rtl{margin-right:37.5%;margin-left:0}.ant-col-xl-push-10.ant-col-rtl{right:41.66666667%;left:auto}.ant-col-xl-pull-10.ant-col-rtl{right:auto;left:41.66666667%}.ant-col-xl-offset-10.ant-col-rtl{margin-right:41.66666667%;margin-left:0}.ant-col-xl-push-11.ant-col-rtl{right:45.83333333%;left:auto}.ant-col-xl-pull-11.ant-col-rtl{right:auto;left:45.83333333%}.ant-col-xl-offset-11.ant-col-rtl{margin-right:45.83333333%;margin-left:0}.ant-col-xl-push-12.ant-col-rtl{right:50%;left:auto}.ant-col-xl-pull-12.ant-col-rtl{right:auto;left:50%}.ant-col-xl-offset-12.ant-col-rtl{margin-right:50%;margin-left:0}.ant-col-xl-push-13.ant-col-rtl{right:54.16666667%;left:auto}.ant-col-xl-pull-13.ant-col-rtl{right:auto;left:54.16666667%}.ant-col-xl-offset-13.ant-col-rtl{margin-right:54.16666667%;margin-left:0}.ant-col-xl-push-14.ant-col-rtl{right:58.33333333%;left:auto}.ant-col-xl-pull-14.ant-col-rtl{right:auto;left:58.33333333%}.ant-col-xl-offset-14.ant-col-rtl{margin-right:58.33333333%;margin-left:0}.ant-col-xl-push-15.ant-col-rtl{right:62.5%;left:auto}.ant-col-xl-pull-15.ant-col-rtl{right:auto;left:62.5%}.ant-col-xl-offset-15.ant-col-rtl{margin-right:62.5%;margin-left:0}.ant-col-xl-push-16.ant-col-rtl{right:66.66666667%;left:auto}.ant-col-xl-pull-16.ant-col-rtl{right:auto;left:66.66666667%}.ant-col-xl-offset-16.ant-col-rtl{margin-right:66.66666667%;margin-left:0}.ant-col-xl-push-17.ant-col-rtl{right:70.83333333%;left:auto}.ant-col-xl-pull-17.ant-col-rtl{right:auto;left:70.83333333%}.ant-col-xl-offset-17.ant-col-rtl{margin-right:70.83333333%;margin-left:0}.ant-col-xl-push-18.ant-col-rtl{right:75%;left:auto}.ant-col-xl-pull-18.ant-col-rtl{right:auto;left:75%}.ant-col-xl-offset-18.ant-col-rtl{margin-right:75%;margin-left:0}.ant-col-xl-push-19.ant-col-rtl{right:79.16666667%;left:auto}.ant-col-xl-pull-19.ant-col-rtl{right:auto;left:79.16666667%}.ant-col-xl-offset-19.ant-col-rtl{margin-right:79.16666667%;margin-left:0}.ant-col-xl-push-20.ant-col-rtl{right:83.33333333%;left:auto}.ant-col-xl-pull-20.ant-col-rtl{right:auto;left:83.33333333%}.ant-col-xl-offset-20.ant-col-rtl{margin-right:83.33333333%;margin-left:0}.ant-col-xl-push-21.ant-col-rtl{right:87.5%;left:auto}.ant-col-xl-pull-21.ant-col-rtl{right:auto;left:87.5%}.ant-col-xl-offset-21.ant-col-rtl{margin-right:87.5%;margin-left:0}.ant-col-xl-push-22.ant-col-rtl{right:91.66666667%;left:auto}.ant-col-xl-pull-22.ant-col-rtl{right:auto;left:91.66666667%}.ant-col-xl-offset-22.ant-col-rtl{margin-right:91.66666667%;margin-left:0}.ant-col-xl-push-23.ant-col-rtl{right:95.83333333%;left:auto}.ant-col-xl-pull-23.ant-col-rtl{right:auto;left:95.83333333%}.ant-col-xl-offset-23.ant-col-rtl{margin-right:95.83333333%;margin-left:0}.ant-col-xl-push-24.ant-col-rtl{right:100%;left:auto}.ant-col-xl-pull-24.ant-col-rtl{right:auto;left:100%}.ant-col-xl-offset-24.ant-col-rtl{margin-right:100%;margin-left:0}}@media (min-width:1600px){.ant-col-xxl-24{display:block;-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.ant-col-xxl-push-24{left:100%}.ant-col-xxl-pull-24{right:100%}.ant-col-xxl-offset-24{margin-left:100%}.ant-col-xxl-order-24{-ms-flex-order:24;order:24}.ant-col-xxl-23{display:block;-ms-flex:0 0 95.83333333%;flex:0 0 95.83333333%;max-width:95.83333333%}.ant-col-xxl-push-23{left:95.83333333%}.ant-col-xxl-pull-23{right:95.83333333%}.ant-col-xxl-offset-23{margin-left:95.83333333%}.ant-col-xxl-order-23{-ms-flex-order:23;order:23}.ant-col-xxl-22{display:block;-ms-flex:0 0 91.66666667%;flex:0 0 91.66666667%;max-width:91.66666667%}.ant-col-xxl-push-22{left:91.66666667%}.ant-col-xxl-pull-22{right:91.66666667%}.ant-col-xxl-offset-22{margin-left:91.66666667%}.ant-col-xxl-order-22{-ms-flex-order:22;order:22}.ant-col-xxl-21{display:block;-ms-flex:0 0 87.5%;flex:0 0 87.5%;max-width:87.5%}.ant-col-xxl-push-21{left:87.5%}.ant-col-xxl-pull-21{right:87.5%}.ant-col-xxl-offset-21{margin-left:87.5%}.ant-col-xxl-order-21{-ms-flex-order:21;order:21}.ant-col-xxl-20{display:block;-ms-flex:0 0 83.33333333%;flex:0 0 83.33333333%;max-width:83.33333333%}.ant-col-xxl-push-20{left:83.33333333%}.ant-col-xxl-pull-20{right:83.33333333%}.ant-col-xxl-offset-20{margin-left:83.33333333%}.ant-col-xxl-order-20{-ms-flex-order:20;order:20}.ant-col-xxl-19{display:block;-ms-flex:0 0 79.16666667%;flex:0 0 79.16666667%;max-width:79.16666667%}.ant-col-xxl-push-19{left:79.16666667%}.ant-col-xxl-pull-19{right:79.16666667%}.ant-col-xxl-offset-19{margin-left:79.16666667%}.ant-col-xxl-order-19{-ms-flex-order:19;order:19}.ant-col-xxl-18{display:block;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.ant-col-xxl-push-18{left:75%}.ant-col-xxl-pull-18{right:75%}.ant-col-xxl-offset-18{margin-left:75%}.ant-col-xxl-order-18{-ms-flex-order:18;order:18}.ant-col-xxl-17{display:block;-ms-flex:0 0 70.83333333%;flex:0 0 70.83333333%;max-width:70.83333333%}.ant-col-xxl-push-17{left:70.83333333%}.ant-col-xxl-pull-17{right:70.83333333%}.ant-col-xxl-offset-17{margin-left:70.83333333%}.ant-col-xxl-order-17{-ms-flex-order:17;order:17}.ant-col-xxl-16{display:block;-ms-flex:0 0 66.66666667%;flex:0 0 66.66666667%;max-width:66.66666667%}.ant-col-xxl-push-16{left:66.66666667%}.ant-col-xxl-pull-16{right:66.66666667%}.ant-col-xxl-offset-16{margin-left:66.66666667%}.ant-col-xxl-order-16{-ms-flex-order:16;order:16}.ant-col-xxl-15{display:block;-ms-flex:0 0 62.5%;flex:0 0 62.5%;max-width:62.5%}.ant-col-xxl-push-15{left:62.5%}.ant-col-xxl-pull-15{right:62.5%}.ant-col-xxl-offset-15{margin-left:62.5%}.ant-col-xxl-order-15{-ms-flex-order:15;order:15}.ant-col-xxl-14{display:block;-ms-flex:0 0 58.33333333%;flex:0 0 58.33333333%;max-width:58.33333333%}.ant-col-xxl-push-14{left:58.33333333%}.ant-col-xxl-pull-14{right:58.33333333%}.ant-col-xxl-offset-14{margin-left:58.33333333%}.ant-col-xxl-order-14{-ms-flex-order:14;order:14}.ant-col-xxl-13{display:block;-ms-flex:0 0 54.16666667%;flex:0 0 54.16666667%;max-width:54.16666667%}.ant-col-xxl-push-13{left:54.16666667%}.ant-col-xxl-pull-13{right:54.16666667%}.ant-col-xxl-offset-13{margin-left:54.16666667%}.ant-col-xxl-order-13{-ms-flex-order:13;order:13}.ant-col-xxl-12{display:block;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.ant-col-xxl-push-12{left:50%}.ant-col-xxl-pull-12{right:50%}.ant-col-xxl-offset-12{margin-left:50%}.ant-col-xxl-order-12{-ms-flex-order:12;order:12}.ant-col-xxl-11{display:block;-ms-flex:0 0 45.83333333%;flex:0 0 45.83333333%;max-width:45.83333333%}.ant-col-xxl-push-11{left:45.83333333%}.ant-col-xxl-pull-11{right:45.83333333%}.ant-col-xxl-offset-11{margin-left:45.83333333%}.ant-col-xxl-order-11{-ms-flex-order:11;order:11}.ant-col-xxl-10{display:block;-ms-flex:0 0 41.66666667%;flex:0 0 41.66666667%;max-width:41.66666667%}.ant-col-xxl-push-10{left:41.66666667%}.ant-col-xxl-pull-10{right:41.66666667%}.ant-col-xxl-offset-10{margin-left:41.66666667%}.ant-col-xxl-order-10{-ms-flex-order:10;order:10}.ant-col-xxl-9{display:block;-ms-flex:0 0 37.5%;flex:0 0 37.5%;max-width:37.5%}.ant-col-xxl-push-9{left:37.5%}.ant-col-xxl-pull-9{right:37.5%}.ant-col-xxl-offset-9{margin-left:37.5%}.ant-col-xxl-order-9{-ms-flex-order:9;order:9}.ant-col-xxl-8{display:block;-ms-flex:0 0 33.33333333%;flex:0 0 33.33333333%;max-width:33.33333333%}.ant-col-xxl-push-8{left:33.33333333%}.ant-col-xxl-pull-8{right:33.33333333%}.ant-col-xxl-offset-8{margin-left:33.33333333%}.ant-col-xxl-order-8{-ms-flex-order:8;order:8}.ant-col-xxl-7{display:block;-ms-flex:0 0 29.16666667%;flex:0 0 29.16666667%;max-width:29.16666667%}.ant-col-xxl-push-7{left:29.16666667%}.ant-col-xxl-pull-7{right:29.16666667%}.ant-col-xxl-offset-7{margin-left:29.16666667%}.ant-col-xxl-order-7{-ms-flex-order:7;order:7}.ant-col-xxl-6{display:block;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.ant-col-xxl-push-6{left:25%}.ant-col-xxl-pull-6{right:25%}.ant-col-xxl-offset-6{margin-left:25%}.ant-col-xxl-order-6{-ms-flex-order:6;order:6}.ant-col-xxl-5{display:block;-ms-flex:0 0 20.83333333%;flex:0 0 20.83333333%;max-width:20.83333333%}.ant-col-xxl-push-5{left:20.83333333%}.ant-col-xxl-pull-5{right:20.83333333%}.ant-col-xxl-offset-5{margin-left:20.83333333%}.ant-col-xxl-order-5{-ms-flex-order:5;order:5}.ant-col-xxl-4{display:block;-ms-flex:0 0 16.66666667%;flex:0 0 16.66666667%;max-width:16.66666667%}.ant-col-xxl-push-4{left:16.66666667%}.ant-col-xxl-pull-4{right:16.66666667%}.ant-col-xxl-offset-4{margin-left:16.66666667%}.ant-col-xxl-order-4{-ms-flex-order:4;order:4}.ant-col-xxl-3{display:block;-ms-flex:0 0 12.5%;flex:0 0 12.5%;max-width:12.5%}.ant-col-xxl-push-3{left:12.5%}.ant-col-xxl-pull-3{right:12.5%}.ant-col-xxl-offset-3{margin-left:12.5%}.ant-col-xxl-order-3{-ms-flex-order:3;order:3}.ant-col-xxl-2{display:block;-ms-flex:0 0 8.33333333%;flex:0 0 8.33333333%;max-width:8.33333333%}.ant-col-xxl-push-2{left:8.33333333%}.ant-col-xxl-pull-2{right:8.33333333%}.ant-col-xxl-offset-2{margin-left:8.33333333%}.ant-col-xxl-order-2{-ms-flex-order:2;order:2}.ant-col-xxl-1{display:block;-ms-flex:0 0 4.16666667%;flex:0 0 4.16666667%;max-width:4.16666667%}.ant-col-xxl-push-1{left:4.16666667%}.ant-col-xxl-pull-1{right:4.16666667%}.ant-col-xxl-offset-1{margin-left:4.16666667%}.ant-col-xxl-order-1{-ms-flex-order:1;order:1}.ant-col-xxl-0{display:none}.ant-col-push-0{left:auto}.ant-col-pull-0{right:auto}.ant-col-xxl-push-0{left:auto}.ant-col-xxl-pull-0{right:auto}.ant-col-xxl-offset-0{margin-left:0}.ant-col-xxl-order-0{-ms-flex-order:0;order:0}.ant-col-push-0.ant-col-rtl{right:auto}.ant-col-pull-0.ant-col-rtl{left:auto}.ant-col-xxl-push-0.ant-col-rtl{right:auto}.ant-col-xxl-pull-0.ant-col-rtl{left:auto}.ant-col-xxl-offset-0.ant-col-rtl{margin-right:0}.ant-col-xxl-push-1.ant-col-rtl{right:4.16666667%;left:auto}.ant-col-xxl-pull-1.ant-col-rtl{right:auto;left:4.16666667%}.ant-col-xxl-offset-1.ant-col-rtl{margin-right:4.16666667%;margin-left:0}.ant-col-xxl-push-2.ant-col-rtl{right:8.33333333%;left:auto}.ant-col-xxl-pull-2.ant-col-rtl{right:auto;left:8.33333333%}.ant-col-xxl-offset-2.ant-col-rtl{margin-right:8.33333333%;margin-left:0}.ant-col-xxl-push-3.ant-col-rtl{right:12.5%;left:auto}.ant-col-xxl-pull-3.ant-col-rtl{right:auto;left:12.5%}.ant-col-xxl-offset-3.ant-col-rtl{margin-right:12.5%;margin-left:0}.ant-col-xxl-push-4.ant-col-rtl{right:16.66666667%;left:auto}.ant-col-xxl-pull-4.ant-col-rtl{right:auto;left:16.66666667%}.ant-col-xxl-offset-4.ant-col-rtl{margin-right:16.66666667%;margin-left:0}.ant-col-xxl-push-5.ant-col-rtl{right:20.83333333%;left:auto}.ant-col-xxl-pull-5.ant-col-rtl{right:auto;left:20.83333333%}.ant-col-xxl-offset-5.ant-col-rtl{margin-right:20.83333333%;margin-left:0}.ant-col-xxl-push-6.ant-col-rtl{right:25%;left:auto}.ant-col-xxl-pull-6.ant-col-rtl{right:auto;left:25%}.ant-col-xxl-offset-6.ant-col-rtl{margin-right:25%;margin-left:0}.ant-col-xxl-push-7.ant-col-rtl{right:29.16666667%;left:auto}.ant-col-xxl-pull-7.ant-col-rtl{right:auto;left:29.16666667%}.ant-col-xxl-offset-7.ant-col-rtl{margin-right:29.16666667%;margin-left:0}.ant-col-xxl-push-8.ant-col-rtl{right:33.33333333%;left:auto}.ant-col-xxl-pull-8.ant-col-rtl{right:auto;left:33.33333333%}.ant-col-xxl-offset-8.ant-col-rtl{margin-right:33.33333333%;margin-left:0}.ant-col-xxl-push-9.ant-col-rtl{right:37.5%;left:auto}.ant-col-xxl-pull-9.ant-col-rtl{right:auto;left:37.5%}.ant-col-xxl-offset-9.ant-col-rtl{margin-right:37.5%;margin-left:0}.ant-col-xxl-push-10.ant-col-rtl{right:41.66666667%;left:auto}.ant-col-xxl-pull-10.ant-col-rtl{right:auto;left:41.66666667%}.ant-col-xxl-offset-10.ant-col-rtl{margin-right:41.66666667%;margin-left:0}.ant-col-xxl-push-11.ant-col-rtl{right:45.83333333%;left:auto}.ant-col-xxl-pull-11.ant-col-rtl{right:auto;left:45.83333333%}.ant-col-xxl-offset-11.ant-col-rtl{margin-right:45.83333333%;margin-left:0}.ant-col-xxl-push-12.ant-col-rtl{right:50%;left:auto}.ant-col-xxl-pull-12.ant-col-rtl{right:auto;left:50%}.ant-col-xxl-offset-12.ant-col-rtl{margin-right:50%;margin-left:0}.ant-col-xxl-push-13.ant-col-rtl{right:54.16666667%;left:auto}.ant-col-xxl-pull-13.ant-col-rtl{right:auto;left:54.16666667%}.ant-col-xxl-offset-13.ant-col-rtl{margin-right:54.16666667%;margin-left:0}.ant-col-xxl-push-14.ant-col-rtl{right:58.33333333%;left:auto}.ant-col-xxl-pull-14.ant-col-rtl{right:auto;left:58.33333333%}.ant-col-xxl-offset-14.ant-col-rtl{margin-right:58.33333333%;margin-left:0}.ant-col-xxl-push-15.ant-col-rtl{right:62.5%;left:auto}.ant-col-xxl-pull-15.ant-col-rtl{right:auto;left:62.5%}.ant-col-xxl-offset-15.ant-col-rtl{margin-right:62.5%;margin-left:0}.ant-col-xxl-push-16.ant-col-rtl{right:66.66666667%;left:auto}.ant-col-xxl-pull-16.ant-col-rtl{right:auto;left:66.66666667%}.ant-col-xxl-offset-16.ant-col-rtl{margin-right:66.66666667%;margin-left:0}.ant-col-xxl-push-17.ant-col-rtl{right:70.83333333%;left:auto}.ant-col-xxl-pull-17.ant-col-rtl{right:auto;left:70.83333333%}.ant-col-xxl-offset-17.ant-col-rtl{margin-right:70.83333333%;margin-left:0}.ant-col-xxl-push-18.ant-col-rtl{right:75%;left:auto}.ant-col-xxl-pull-18.ant-col-rtl{right:auto;left:75%}.ant-col-xxl-offset-18.ant-col-rtl{margin-right:75%;margin-left:0}.ant-col-xxl-push-19.ant-col-rtl{right:79.16666667%;left:auto}.ant-col-xxl-pull-19.ant-col-rtl{right:auto;left:79.16666667%}.ant-col-xxl-offset-19.ant-col-rtl{margin-right:79.16666667%;margin-left:0}.ant-col-xxl-push-20.ant-col-rtl{right:83.33333333%;left:auto}.ant-col-xxl-pull-20.ant-col-rtl{right:auto;left:83.33333333%}.ant-col-xxl-offset-20.ant-col-rtl{margin-right:83.33333333%;margin-left:0}.ant-col-xxl-push-21.ant-col-rtl{right:87.5%;left:auto}.ant-col-xxl-pull-21.ant-col-rtl{right:auto;left:87.5%}.ant-col-xxl-offset-21.ant-col-rtl{margin-right:87.5%;margin-left:0}.ant-col-xxl-push-22.ant-col-rtl{right:91.66666667%;left:auto}.ant-col-xxl-pull-22.ant-col-rtl{right:auto;left:91.66666667%}.ant-col-xxl-offset-22.ant-col-rtl{margin-right:91.66666667%;margin-left:0}.ant-col-xxl-push-23.ant-col-rtl{right:95.83333333%;left:auto}.ant-col-xxl-pull-23.ant-col-rtl{right:auto;left:95.83333333%}.ant-col-xxl-offset-23.ant-col-rtl{margin-right:95.83333333%;margin-left:0}.ant-col-xxl-push-24.ant-col-rtl{right:100%;left:auto}.ant-col-xxl-pull-24.ant-col-rtl{right:auto;left:100%}.ant-col-xxl-offset-24.ant-col-rtl{margin-right:100%;margin-left:0}}.ant-row-rtl{direction:rtl}.ant-col.ant-col-rtl{float:right}.ant-radio-group{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum";display:inline-block;line-height:unset}.ant-radio-group .ant-badge-count{z-index:1}.ant-radio-group>.ant-badge:not(:first-child)>.ant-radio-button-wrapper{border-left:none}.ant-radio-wrapper{margin:0 8px 0 0}.ant-radio,.ant-radio-wrapper{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum";position:relative;display:inline-block;white-space:nowrap;cursor:pointer}.ant-radio{margin:0;line-height:1;vertical-align:sub;outline:none}.ant-radio-input:focus+.ant-radio-inner,.ant-radio-wrapper:hover .ant-radio,.ant-radio:hover .ant-radio-inner{border-color:#1890ff}.ant-radio-input:focus+.ant-radio-inner{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}.ant-radio-checked:after{position:absolute;top:0;left:0;width:100%;height:100%;border:1px solid #1890ff;border-radius:50%;visibility:hidden;-webkit-animation:antRadioEffect .36s ease-in-out;animation:antRadioEffect .36s ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both;content:""}.ant-radio-wrapper:hover .ant-radio:after,.ant-radio:hover:after{visibility:visible}.ant-radio-inner{position:relative;top:0;left:0;display:block;width:16px;height:16px;background-color:#fff;border:1px solid #d9d9d9;border-radius:100px;-webkit-transition:all .3s;transition:all .3s}.ant-radio-inner:after{position:absolute;top:3px;left:3px;display:table;width:8px;height:8px;background-color:#1890ff;border-top:0;border-left:0;border-radius:8px;-webkit-transform:scale(0);transform:scale(0);opacity:0;-webkit-transition:all .3s cubic-bezier(.78,.14,.15,.86);transition:all .3s cubic-bezier(.78,.14,.15,.86);content:" "}.ant-radio-input{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;cursor:pointer;opacity:0}.ant-radio-checked .ant-radio-inner{border-color:#1890ff}.ant-radio-checked .ant-radio-inner:after{-webkit-transform:scale(1);transform:scale(1);opacity:1;-webkit-transition:all .3s cubic-bezier(.78,.14,.15,.86);transition:all .3s cubic-bezier(.78,.14,.15,.86)}.ant-radio-disabled .ant-radio-inner{background-color:#f5f5f5;border-color:#d9d9d9!important;cursor:not-allowed}.ant-radio-disabled .ant-radio-inner:after{background-color:rgba(0,0,0,.2)}.ant-radio-disabled .ant-radio-input{cursor:not-allowed}.ant-radio-disabled+span{color:rgba(0,0,0,.25);cursor:not-allowed}span.ant-radio+*{padding-right:8px;padding-left:8px}.ant-radio-button-wrapper{position:relative;display:inline-block;height:32px;margin:0;padding:0 15px;color:rgba(0,0,0,.65);line-height:30px;background:#fff;border-color:#d9d9d9;border-style:solid;border-width:1.02px 1px 1px 0;cursor:pointer;-webkit-transition:color .3s,background .3s,border-color .3s,-webkit-box-shadow .3s;transition:color .3s,background .3s,border-color .3s,-webkit-box-shadow .3s;transition:color .3s,background .3s,border-color .3s,box-shadow .3s;transition:color .3s,background .3s,border-color .3s,box-shadow .3s,-webkit-box-shadow .3s}.ant-radio-button-wrapper a{color:rgba(0,0,0,.65)}.ant-radio-button-wrapper>.ant-radio-button{display:block;width:0;height:0;margin-left:0}.ant-radio-group-large .ant-radio-button-wrapper{height:40px;font-size:16px;line-height:38px}.ant-radio-group-small .ant-radio-button-wrapper{height:24px;padding:0 7px;line-height:22px}.ant-radio-button-wrapper:not(:first-child):before{position:absolute;top:-1px;left:-1px;display:block;-webkit-box-sizing:content-box;box-sizing:content-box;width:1px;height:100%;padding:1px 0;background-color:#d9d9d9;-webkit-transition:background-color .3s;transition:background-color .3s;content:""}.ant-radio-button-wrapper:first-child{border-left:1px solid #d9d9d9;border-radius:2px 0 0 2px}.ant-radio-button-wrapper:last-child{border-radius:0 2px 2px 0}.ant-radio-button-wrapper:first-child:last-child{border-radius:2px}.ant-radio-button-wrapper:hover{position:relative;color:#1890ff}.ant-radio-button-wrapper:focus-within{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}.ant-radio-button-wrapper .ant-radio-inner,.ant-radio-button-wrapper input[type=checkbox],.ant-radio-button-wrapper input[type=radio]{width:0;height:0;opacity:0;pointer-events:none}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){z-index:1;color:#1890ff;background:#fff;border-color:#1890ff}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):before{background-color:#1890ff}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):first-child{border-color:#1890ff}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{color:#40a9ff;border-color:#40a9ff}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover:before{background-color:#40a9ff}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{color:#096dd9;border-color:#096dd9}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active:before{background-color:#096dd9}.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled){color:#fff;background:#1890ff;border-color:#1890ff}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):hover{color:#fff;background:#40a9ff;border-color:#40a9ff}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):active{color:#fff;background:#096dd9;border-color:#096dd9}.ant-radio-group-solid .ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within{-webkit-box-shadow:0 0 0 3px rgba(24,144,255,.08);box-shadow:0 0 0 3px rgba(24,144,255,.08)}.ant-radio-button-wrapper-disabled{cursor:not-allowed}.ant-radio-button-wrapper-disabled,.ant-radio-button-wrapper-disabled:first-child,.ant-radio-button-wrapper-disabled:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9}.ant-radio-button-wrapper-disabled:first-child{border-left-color:#d9d9d9}.ant-radio-button-wrapper-disabled.ant-radio-button-wrapper-checked{color:#fff;background-color:#e6e6e6;border-color:#d9d9d9;-webkit-box-shadow:none;box-shadow:none}@-webkit-keyframes antRadioEffect{0%{-webkit-transform:scale(1);transform:scale(1);opacity:.5}to{-webkit-transform:scale(1.6);transform:scale(1.6);opacity:0}}@keyframes antRadioEffect{0%{-webkit-transform:scale(1);transform:scale(1);opacity:.5}to{-webkit-transform:scale(1.6);transform:scale(1.6);opacity:0}}@supports (-moz-appearance:meterbar) and (background-blend-mode:difference,normal){.ant-radio{vertical-align:text-bottom}}.ant-radio-group.ant-radio-group-rtl{direction:rtl}.ant-radio-wrapper.ant-radio-wrapper-rtl{margin-right:0;margin-left:8px;direction:rtl}.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl{border-right-width:0;border-left-width:1px}.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper:not(:first-child):before{right:-1px;left:0}.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper:first-child{border-right:1px solid #d9d9d9;border-radius:0 2px 2px 0}.ant-radio-button-wrapper-checked:not([class*=" ant-radio-button-wrapper-disabled"]).ant-radio-button-wrapper:first-child{border-right-color:#40a9ff}.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper:last-child{border-radius:2px 0 0 2px}.ant-radio-button-wrapper.ant-radio-button-wrapper-rtl.ant-radio-button-wrapper-disabled:first-child{border-right-color:#d9d9d9}.ant-table.ant-table-middle .ant-table-footer,.ant-table.ant-table-middle .ant-table-tbody>tr>td,.ant-table.ant-table-middle .ant-table-thead>tr>th,.ant-table.ant-table-middle .ant-table-title,.ant-table.ant-table-middle tfoot>tr>td,.ant-table.ant-table-middle tfoot>tr>th{padding:12px 8px}.ant-table.ant-table-middle .ant-table-thead th.ant-table-column-has-sorters{padding:0}.ant-table.ant-table-middle .ant-table-thead .ant-table-filter-column{margin:-12px -8px}.ant-table.ant-table-middle .ant-table-thead .ant-table-filter-column-title{padding:12px 2.3em 12px 8px}.ant-table.ant-table-middle .ant-table-thead .ant-table-column-sorters{padding:12px 8px}.ant-table.ant-table-middle .ant-table-expanded-row-fixed{margin:-12px -8px}.ant-table.ant-table-small .ant-table-footer,.ant-table.ant-table-small .ant-table-tbody>tr>td,.ant-table.ant-table-small .ant-table-thead>tr>th,.ant-table.ant-table-small .ant-table-title,.ant-table.ant-table-small tfoot>tr>td,.ant-table.ant-table-small tfoot>tr>th{padding:8px}.ant-table.ant-table-small .ant-table-thead th.ant-table-column-has-sorters{padding:0}.ant-table.ant-table-small .ant-table-thead .ant-table-filter-column{margin:-8px}.ant-table.ant-table-small .ant-table-thead .ant-table-filter-column-title{padding:8px 2.3em 8px 8px}.ant-table.ant-table-small .ant-table-thead .ant-table-column-sorters{padding:8px}.ant-table.ant-table-small .ant-table-expanded-row-fixed{margin:-8px}.ant-table-small .ant-table-thead>tr>th{background-color:#fafafa}.ant-table.ant-table-bordered .ant-table-title{border:1px solid #f0f0f0;border-bottom:0}.ant-table.ant-table-bordered .ant-table-cell-fix-right-first:after,.ant-table.ant-table-bordered tbody>tr>td,.ant-table.ant-table-bordered tfoot>tr>td,.ant-table.ant-table-bordered tfoot>tr>th,.ant-table.ant-table-bordered thead>tr>th{border-right:1px solid #f0f0f0}.ant-table.ant-table-bordered table thead>tr:not(:last-child)>th{border-bottom:1px solid #f0f0f0}.ant-table.ant-table-bordered .ant-table-container{border:1px solid #f0f0f0;border-right:0;border-bottom:0}.ant-table.ant-table-bordered .ant-table-expanded-row-fixed{margin:-16px -17px}.ant-table.ant-table-bordered .ant-table-expanded-row-fixed:after{position:absolute;top:0;right:1px;bottom:0;border-right:1px solid #f0f0f0;content:""}.ant-table.ant-table-bordered.ant-table-scroll-horizontal tr.ant-table-expanded-row>td,.ant-table.ant-table-bordered.ant-table-scroll-horizontal tr.ant-table-placeholder>td{border-right:0}.ant-table.ant-table-bordered.ant-table-middle .ant-table-expanded-row-fixed{margin:-12px -9px}.ant-table.ant-table-bordered.ant-table-small .ant-table-expanded-row-fixed{margin:-8px -9px}.ant-table.ant-table-bordered .ant-table-footer{border:1px solid #f0f0f0;border-top:0}.ant-table-wrapper:before{display:table;content:""}.ant-table-wrapper:after{display:table;clear:both;content:""}.ant-table{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum";position:relative;z-index:0;clear:both;background:#fff;border-radius:2px}.ant-table table{width:100%;text-align:left;border-radius:2px 2px 0 0;border-collapse:separate;border-spacing:0}.ant-table-tbody>tr>td,.ant-table-thead>tr>th,.ant-table tfoot>tr>td,.ant-table tfoot>tr>th{position:relative;padding:16px;overflow-wrap:break-word}.ant-table-cell-ellipsis{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;word-break:keep-all}.ant-table-cell-ellipsis.ant-table-cell-fix-left-last,.ant-table-cell-ellipsis.ant-table-cell-fix-right-first{overflow:visible}.ant-table-cell-ellipsis.ant-table-cell-fix-left-last .ant-table-cell-content,.ant-table-cell-ellipsis.ant-table-cell-fix-right-first .ant-table-cell-content{display:block;overflow:hidden;text-overflow:ellipsis}.ant-table-title{padding:16px}.ant-table-footer{padding:16px;color:rgba(0,0,0,.85);background:#fafafa}.ant-table-thead>tr>th{color:rgba(0,0,0,.85);font-weight:500;text-align:left;background:#fafafa;border-bottom:1px solid #f0f0f0;-webkit-transition:background .3s ease;transition:background .3s ease}.ant-table-thead>tr>th[colspan]:not([colspan="1"]){text-align:center}.ant-table-thead>tr:not(:last-child)>th[colspan]{border-bottom:0}.ant-table-tbody>tr>td{border-bottom:1px solid #f0f0f0;-webkit-transition:background .3s;transition:background .3s}.ant-table-tbody>tr.ant-table-row:hover>td{background:#fafafa}.ant-table-tbody>tr.ant-table-row-selected>td{background:#e6f7ff;border-color:rgba(0,0,0,.03)}.ant-table-tbody>tr.ant-table-row-selected:hover>td{background:#dcf4ff}.ant-table-tbody>tr .ant-table-wrapper:only-child .ant-table{margin:-16px -16px -16px 33px}.ant-table-tbody>tr .ant-table-wrapper:only-child .ant-table td{background:transparent}.ant-table-tbody>tr .ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td{border-bottom:0}.ant-table-tbody>tr .ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td:first-child,.ant-table-tbody>tr .ant-table-wrapper:only-child .ant-table-tbody>tr:last-child>td:last-child{border-radius:0}.ant-table tfoot>tr>td,.ant-table tfoot>tr>th{border-bottom:1px solid #f0f0f0}.ant-table-pagination.ant-pagination{margin:16px 0}.ant-table-pagination-left{float:left}.ant-table-pagination-center{text-align:center}.ant-table-pagination-right{float:right}.ant-table-thead th.ant-table-column-has-sorters{padding:0;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ant-table-thead th.ant-table-column-has-sorters:hover{background:#f2f2f2}.ant-table-thead th.ant-table-column-has-sorters:hover .ant-table-filter-trigger-container{background:#f7f7f7}.ant-table-thead th.ant-table-column-sort{background:#f5f5f5}td.ant-table-column-sort{background:#fafafa}.ant-table-column-sorters-with-tooltip{display:inline-block;width:100%}.ant-table-column-sorters{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding:16px}.ant-table-column-sorter{margin-top:.15em;margin-bottom:-.15em;margin-left:8px;color:#bfbfbf}.ant-table-column-sorter-full{margin-top:-.2em;margin-bottom:0}.ant-table-column-sorter-inner{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center}.ant-table-column-sorter-down,.ant-table-column-sorter-up{display:inline-block;font-size:11px}.ant-table-column-sorter-down.active,.ant-table-column-sorter-up.active{color:#1890ff}.ant-table-column-sorter-up+.ant-table-column-sorter-down{margin-top:-.3em}.ant-table-filter-column{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;margin:-16px}.ant-table-filter-column-title{-ms-flex:auto;flex:auto;padding:16px 2.3em 16px 16px}.ant-table-thead tr th.ant-table-column-has-sorters .ant-table-filter-column{margin:0}.ant-table-thead tr th.ant-table-column-has-sorters .ant-table-filter-column-title{padding:0 2.3em 0 0}.ant-table-filter-trigger-container{position:absolute;top:0;right:0;bottom:0;display:-ms-flexbox;display:flex;-ms-flex:none;flex:none;-ms-flex-align:stretch;align-items:stretch;-ms-flex-item-align:stretch;align-self:stretch;cursor:pointer;-webkit-transition:background-color .3s;transition:background-color .3s}.ant-table-filter-trigger-container-open,.ant-table-filter-trigger-container:hover,.ant-table-thead th.ant-table-column-has-sorters:hover .ant-table-filter-trigger-container:hover{background:#e5e5e5}.ant-table-filter-trigger{display:block;width:2.3em;color:#bfbfbf;font-size:12px;-webkit-transition:color .3s;transition:color .3s}.ant-table-filter-trigger .anticon{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.ant-table-filter-trigger-container-open .ant-table-filter-trigger,.ant-table-filter-trigger:hover{color:rgba(0,0,0,.45)}.ant-table-filter-trigger.active{color:#1890ff}.ant-table-filter-dropdown{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum";min-width:120px;background-color:#fff;border-radius:2px;-webkit-box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05)}.ant-table-filter-dropdown .ant-dropdown-menu{max-height:calc(100vh - 130px);overflow-x:hidden;border:0;-webkit-box-shadow:none;box-shadow:none}.ant-table-filter-dropdown-submenu>ul{max-height:calc(100vh - 130px);overflow-x:hidden;overflow-y:auto}.ant-table-filter-dropdown-submenu .ant-checkbox-wrapper+span,.ant-table-filter-dropdown .ant-checkbox-wrapper+span{padding-left:8px}.ant-table-filter-dropdown-btns{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;padding:7px 8px 7px 3px;overflow:hidden;background-color:inherit;border-top:1px solid #f0f0f0}.ant-table colgroup>col.ant-table-selection-col{width:60px}table tr td.ant-table-selection-column,table tr th.ant-table-selection-column{text-align:center}table tr td.ant-table-selection-column .ant-radio-wrapper,table tr th.ant-table-selection-column .ant-radio-wrapper{margin-right:0}.ant-table-selection{position:relative}.ant-table-selection-extra{position:absolute;top:0;right:-10px;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ant-table-selection-extra .anticon{display:inline-block;font-size:10px;color:#bfbfbf}.ant-table-selection-extra .anticon:hover{color:#a6a6a6}.ant-table-expand-icon-col{width:48px}.ant-table-row-expand-icon-cell{text-align:center}.ant-table-row-indent{float:left;height:1px}.ant-table-row-expand-icon{color:#1890ff;text-decoration:none;cursor:pointer;-webkit-transition:color .3s;transition:color .3s;position:relative;display:-ms-inline-flexbox;display:inline-flex;float:left;-webkit-box-sizing:border-box;box-sizing:border-box;width:17px;height:17px;padding:0;color:inherit;line-height:12px;vertical-align:-2px;background:#fff;border:1px solid #f0f0f0;border-radius:2px;outline:none;-webkit-transition:all .3s;transition:all .3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover{color:#40a9ff}.ant-table-row-expand-icon:active{color:#096dd9}.ant-table-row-expand-icon:active,.ant-table-row-expand-icon:focus,.ant-table-row-expand-icon:hover{border-color:currentColor}.ant-table-row-expand-icon:after,.ant-table-row-expand-icon:before{position:absolute;background:currentColor;-webkit-transition:-webkit-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;content:""}.ant-table-row-expand-icon:before{top:7px;right:3px;left:3px;height:1px}.ant-table-row-expand-icon:after{top:3px;bottom:3px;left:7px;width:1px;-webkit-transform:rotate(90deg);transform:rotate(90deg)}.ant-table-row-expand-icon-collapsed:before{-webkit-transform:rotate(-180deg);transform:rotate(-180deg)}.ant-table-row-expand-icon-collapsed:after{-webkit-transform:rotate(0deg);transform:rotate(0deg)}.ant-table-row-expand-icon-spaced{background:transparent;border:0}.ant-table-row-expand-icon-spaced:after,.ant-table-row-expand-icon-spaced:before{display:none;content:none}.ant-table-row-indent+.ant-table-row-expand-icon{margin-top:2.5005px;margin-right:8px}tr.ant-table-expanded-row:hover>td,tr.ant-table-expanded-row>td{background:#fbfbfb}.ant-table .ant-table-expanded-row-fixed{position:relative;margin:-16px;padding:16px}.ant-table-tbody>tr.ant-table-placeholder{text-align:center}.ant-table-tbody>tr.ant-table-placeholder:hover>td{background:#fff}.ant-table-cell-fix-left,.ant-table-cell-fix-right{position:-webkit-sticky!important;position:sticky!important;z-index:2;background:#fff}.ant-table-cell-fix-left-first:after,.ant-table-cell-fix-left-last:after{right:0;-webkit-transform:translateX(100%);transform:translateX(100%)}.ant-table-cell-fix-left-first:after,.ant-table-cell-fix-left-last:after,.ant-table-cell-fix-right-first:after,.ant-table-cell-fix-right-last:after{position:absolute;top:0;bottom:-1px;width:30px;-webkit-transition:-webkit-box-shadow .3s;transition:-webkit-box-shadow .3s;transition:box-shadow .3s;transition:box-shadow .3s,-webkit-box-shadow .3s;content:"";pointer-events:none}.ant-table-cell-fix-right-first:after,.ant-table-cell-fix-right-last:after{left:0;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.ant-table .ant-table-container:after,.ant-table .ant-table-container:before{position:absolute;top:0;bottom:0;z-index:1;width:30px;-webkit-transition:-webkit-box-shadow .3s;transition:-webkit-box-shadow .3s;transition:box-shadow .3s;transition:box-shadow .3s,-webkit-box-shadow .3s;content:"";pointer-events:none}.ant-table .ant-table-container:before{left:0}.ant-table .ant-table-container:after{right:0}.ant-table-ping-left:not(.ant-table-has-fix-left) .ant-table-container{position:relative}.ant-table-ping-left .ant-table-cell-fix-left-first:after,.ant-table-ping-left .ant-table-cell-fix-left-last:after,.ant-table-ping-left:not(.ant-table-has-fix-left) .ant-table-container:before{-webkit-box-shadow:inset 10px 0 8px -8px rgba(0,0,0,.15);box-shadow:inset 10px 0 8px -8px rgba(0,0,0,.15)}.ant-table-ping-right:not(.ant-table-has-fix-right) .ant-table-container{position:relative}.ant-table-ping-right .ant-table-cell-fix-right-first:after,.ant-table-ping-right .ant-table-cell-fix-right-last:after,.ant-table-ping-right:not(.ant-table-has-fix-right) .ant-table-container:after{-webkit-box-shadow:inset -10px 0 8px -8px rgba(0,0,0,.15);box-shadow:inset -10px 0 8px -8px rgba(0,0,0,.15)}@media (-ms-high-contrast:none){.ant-table-ping-left .ant-table-cell-fix-left-last:after,.ant-table-ping-right .ant-table-cell-fix-right-first:after{-webkit-box-shadow:none!important;box-shadow:none!important}}.ant-table-title{border-radius:2px 2px 0 0}.ant-table-title+.ant-table-container{border-top-left-radius:0;border-top-right-radius:0}.ant-table-title+.ant-table-container table>thead>tr:first-child th:first-child,.ant-table-title+.ant-table-container table>thead>tr:first-child th:last-child{border-radius:0}.ant-table-container{border-top-right-radius:2px}.ant-table-container,.ant-table-container table>thead>tr:first-child th:first-child{border-top-left-radius:2px}.ant-table-container table>thead>tr:first-child th:last-child{border-top-right-radius:2px}.ant-table-footer{border-radius:0 0 2px 2px}.ant-table-rtl,.ant-table-wrapper-rtl{direction:rtl}.ant-table-wrapper-rtl .ant-table table{text-align:right}.ant-table-wrapper-rtl .ant-table-thead>tr>th[colspan]:not([colspan="1"]){text-align:center}.ant-table-wrapper-rtl .ant-table-thead>tr>th{text-align:right}.ant-table-tbody>tr .ant-table.ant-table-rtl{margin:-16px 33px -16px -16px}.ant-table-wrapper-rtl .ant-table-pagination.ant-pagination{float:left}.ant-table-wrapper-rtl .ant-table-column-sorter{margin-right:8px;margin-left:0}.ant-table-wrapper-rtl .ant-table-filter-column-title{padding:16px 16px 16px 2.3em}.ant-table-wrapper-rtl .ant-table-filter-trigger-container{right:auto;left:0}.ant-dropdown-rtl .ant-table-filter-dropdown-submenu .ant-checkbox-wrapper+span,.ant-dropdown-rtl .ant-table-filter-dropdown .ant-checkbox-wrapper+span{padding-right:8px;padding-left:0}.ant-table-wrapper-rtl .ant-table-selection{text-align:center}.ant-table-wrapper-rtl .ant-table-selection-extra{right:auto;left:0;-webkit-transform:translate(-100%,-50%);transform:translate(-100%,-50%)}.ant-table-wrapper-rtl .ant-table-row-expand-icon,.ant-table-wrapper-rtl .ant-table-row-indent{float:right}.ant-table-wrapper-rtl .ant-table-row-indent+.ant-table-row-expand-icon{margin-right:0;margin-left:8px}.ant-btn{line-height:1.5715;position:relative;display:inline-block;font-weight:400;white-space:nowrap;text-align:center;background-image:none;-webkit-box-shadow:0 2px 0 rgba(0,0,0,.015);box-shadow:0 2px 0 rgba(0,0,0,.015);cursor:pointer;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-ms-touch-action:manipulation;touch-action:manipulation;height:32px;padding:4px 15px;font-size:14px;border-radius:2px;color:rgba(0,0,0,.65);background-color:#fff;border:1px solid #d9d9d9}.ant-btn>.anticon{line-height:1}.ant-btn,.ant-btn:active,.ant-btn:focus{outline:0}.ant-btn:not([disabled]):hover{text-decoration:none}.ant-btn:not([disabled]):active{outline:0;-webkit-box-shadow:none;box-shadow:none}.ant-btn.disabled,.ant-btn[disabled]{cursor:not-allowed}.ant-btn.disabled>*,.ant-btn[disabled]>*{pointer-events:none}.ant-btn-lg{height:40px;padding:6.4px 15px;font-size:16px;border-radius:2px}.ant-btn-sm{height:24px;padding:0 7px;font-size:14px;border-radius:2px;line-height:22px}.ant-btn>a:only-child{color:currentColor}.ant-btn>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn:focus,.ant-btn:hover{color:#40a9ff;background-color:#fff;border-color:#40a9ff}.ant-btn:focus>a:only-child,.ant-btn:hover>a:only-child{color:currentColor}.ant-btn:focus>a:only-child:after,.ant-btn:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn.active,.ant-btn:active{color:#096dd9;background-color:#fff;border-color:#096dd9}.ant-btn.active>a:only-child,.ant-btn:active>a:only-child{color:currentColor}.ant-btn.active>a:only-child:after,.ant-btn:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-disabled,.ant-btn-disabled.active,.ant-btn-disabled:active,.ant-btn-disabled:focus,.ant-btn-disabled:hover,.ant-btn.disabled,.ant-btn.disabled.active,.ant-btn.disabled:active,.ant-btn.disabled:focus,.ant-btn.disabled:hover,.ant-btn[disabled],.ant-btn[disabled].active,.ant-btn[disabled]:active,.ant-btn[disabled]:focus,.ant-btn[disabled]:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-disabled.active>a:only-child,.ant-btn-disabled:active>a:only-child,.ant-btn-disabled:focus>a:only-child,.ant-btn-disabled:hover>a:only-child,.ant-btn-disabled>a:only-child,.ant-btn.disabled.active>a:only-child,.ant-btn.disabled:active>a:only-child,.ant-btn.disabled:focus>a:only-child,.ant-btn.disabled:hover>a:only-child,.ant-btn.disabled>a:only-child,.ant-btn[disabled].active>a:only-child,.ant-btn[disabled]:active>a:only-child,.ant-btn[disabled]:focus>a:only-child,.ant-btn[disabled]:hover>a:only-child,.ant-btn[disabled]>a:only-child{color:currentColor}.ant-btn-disabled.active>a:only-child:after,.ant-btn-disabled:active>a:only-child:after,.ant-btn-disabled:focus>a:only-child:after,.ant-btn-disabled:hover>a:only-child:after,.ant-btn-disabled>a:only-child:after,.ant-btn.disabled.active>a:only-child:after,.ant-btn.disabled:active>a:only-child:after,.ant-btn.disabled:focus>a:only-child:after,.ant-btn.disabled:hover>a:only-child:after,.ant-btn.disabled>a:only-child:after,.ant-btn[disabled].active>a:only-child:after,.ant-btn[disabled]:active>a:only-child:after,.ant-btn[disabled]:focus>a:only-child:after,.ant-btn[disabled]:hover>a:only-child:after,.ant-btn[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn.active,.ant-btn:active,.ant-btn:focus,.ant-btn:hover{text-decoration:none;background:#fff}.ant-btn>i,.ant-btn>span{display:inline-block;pointer-events:none}.ant-btn-primary{color:#fff;background-color:#1890ff;border-color:#1890ff;text-shadow:0 -1px 0 rgba(0,0,0,.12);-webkit-box-shadow:0 2px 0 rgba(0,0,0,.045);box-shadow:0 2px 0 rgba(0,0,0,.045)}.ant-btn-primary>a:only-child{color:currentColor}.ant-btn-primary>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-primary:focus,.ant-btn-primary:hover{color:#fff;background-color:#40a9ff;border-color:#40a9ff}.ant-btn-primary:focus>a:only-child,.ant-btn-primary:hover>a:only-child{color:currentColor}.ant-btn-primary:focus>a:only-child:after,.ant-btn-primary:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-primary.active,.ant-btn-primary:active{color:#fff;background-color:#096dd9;border-color:#096dd9}.ant-btn-primary.active>a:only-child,.ant-btn-primary:active>a:only-child{color:currentColor}.ant-btn-primary.active>a:only-child:after,.ant-btn-primary:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-primary-disabled,.ant-btn-primary-disabled.active,.ant-btn-primary-disabled:active,.ant-btn-primary-disabled:focus,.ant-btn-primary-disabled:hover,.ant-btn-primary.disabled,.ant-btn-primary.disabled.active,.ant-btn-primary.disabled:active,.ant-btn-primary.disabled:focus,.ant-btn-primary.disabled:hover,.ant-btn-primary[disabled],.ant-btn-primary[disabled].active,.ant-btn-primary[disabled]:active,.ant-btn-primary[disabled]:focus,.ant-btn-primary[disabled]:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-primary-disabled.active>a:only-child,.ant-btn-primary-disabled:active>a:only-child,.ant-btn-primary-disabled:focus>a:only-child,.ant-btn-primary-disabled:hover>a:only-child,.ant-btn-primary-disabled>a:only-child,.ant-btn-primary.disabled.active>a:only-child,.ant-btn-primary.disabled:active>a:only-child,.ant-btn-primary.disabled:focus>a:only-child,.ant-btn-primary.disabled:hover>a:only-child,.ant-btn-primary.disabled>a:only-child,.ant-btn-primary[disabled].active>a:only-child,.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-primary[disabled]>a:only-child{color:currentColor}.ant-btn-primary-disabled.active>a:only-child:after,.ant-btn-primary-disabled:active>a:only-child:after,.ant-btn-primary-disabled:focus>a:only-child:after,.ant-btn-primary-disabled:hover>a:only-child:after,.ant-btn-primary-disabled>a:only-child:after,.ant-btn-primary.disabled.active>a:only-child:after,.ant-btn-primary.disabled:active>a:only-child:after,.ant-btn-primary.disabled:focus>a:only-child:after,.ant-btn-primary.disabled:hover>a:only-child:after,.ant-btn-primary.disabled>a:only-child:after,.ant-btn-primary[disabled].active>a:only-child:after,.ant-btn-primary[disabled]:active>a:only-child:after,.ant-btn-primary[disabled]:focus>a:only-child:after,.ant-btn-primary[disabled]:hover>a:only-child:after,.ant-btn-primary[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child){border-right-color:#40a9ff;border-left-color:#40a9ff}.ant-btn-group .ant-btn-primary:not(:first-child):not(:last-child):disabled{border-color:#d9d9d9}.ant-btn-group .ant-btn-primary:first-child:not(:last-child){border-right-color:#40a9ff}.ant-btn-group .ant-btn-primary:first-child:not(:last-child)[disabled]{border-right-color:#d9d9d9}.ant-btn-group .ant-btn-primary+.ant-btn-primary,.ant-btn-group .ant-btn-primary:last-child:not(:first-child){border-left-color:#40a9ff}.ant-btn-group .ant-btn-primary+.ant-btn-primary[disabled],.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled]{border-left-color:#d9d9d9}.ant-btn-ghost{color:rgba(0,0,0,.65);background-color:transparent;border-color:#d9d9d9}.ant-btn-ghost>a:only-child{color:currentColor}.ant-btn-ghost>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-ghost:focus,.ant-btn-ghost:hover{color:#40a9ff;background-color:transparent;border-color:#40a9ff}.ant-btn-ghost:focus>a:only-child,.ant-btn-ghost:hover>a:only-child{color:currentColor}.ant-btn-ghost:focus>a:only-child:after,.ant-btn-ghost:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-ghost.active,.ant-btn-ghost:active{color:#096dd9;background-color:transparent;border-color:#096dd9}.ant-btn-ghost.active>a:only-child,.ant-btn-ghost:active>a:only-child{color:currentColor}.ant-btn-ghost.active>a:only-child:after,.ant-btn-ghost:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-ghost-disabled,.ant-btn-ghost-disabled.active,.ant-btn-ghost-disabled:active,.ant-btn-ghost-disabled:focus,.ant-btn-ghost-disabled:hover,.ant-btn-ghost.disabled,.ant-btn-ghost.disabled.active,.ant-btn-ghost.disabled:active,.ant-btn-ghost.disabled:focus,.ant-btn-ghost.disabled:hover,.ant-btn-ghost[disabled],.ant-btn-ghost[disabled].active,.ant-btn-ghost[disabled]:active,.ant-btn-ghost[disabled]:focus,.ant-btn-ghost[disabled]:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-ghost-disabled.active>a:only-child,.ant-btn-ghost-disabled:active>a:only-child,.ant-btn-ghost-disabled:focus>a:only-child,.ant-btn-ghost-disabled:hover>a:only-child,.ant-btn-ghost-disabled>a:only-child,.ant-btn-ghost.disabled.active>a:only-child,.ant-btn-ghost.disabled:active>a:only-child,.ant-btn-ghost.disabled:focus>a:only-child,.ant-btn-ghost.disabled:hover>a:only-child,.ant-btn-ghost.disabled>a:only-child,.ant-btn-ghost[disabled].active>a:only-child,.ant-btn-ghost[disabled]:active>a:only-child,.ant-btn-ghost[disabled]:focus>a:only-child,.ant-btn-ghost[disabled]:hover>a:only-child,.ant-btn-ghost[disabled]>a:only-child{color:currentColor}.ant-btn-ghost-disabled.active>a:only-child:after,.ant-btn-ghost-disabled:active>a:only-child:after,.ant-btn-ghost-disabled:focus>a:only-child:after,.ant-btn-ghost-disabled:hover>a:only-child:after,.ant-btn-ghost-disabled>a:only-child:after,.ant-btn-ghost.disabled.active>a:only-child:after,.ant-btn-ghost.disabled:active>a:only-child:after,.ant-btn-ghost.disabled:focus>a:only-child:after,.ant-btn-ghost.disabled:hover>a:only-child:after,.ant-btn-ghost.disabled>a:only-child:after,.ant-btn-ghost[disabled].active>a:only-child:after,.ant-btn-ghost[disabled]:active>a:only-child:after,.ant-btn-ghost[disabled]:focus>a:only-child:after,.ant-btn-ghost[disabled]:hover>a:only-child:after,.ant-btn-ghost[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dashed{color:rgba(0,0,0,.65);background-color:#fff;border-color:#d9d9d9;border-style:dashed}.ant-btn-dashed>a:only-child{color:currentColor}.ant-btn-dashed>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dashed:focus,.ant-btn-dashed:hover{color:#40a9ff;background-color:#fff;border-color:#40a9ff}.ant-btn-dashed:focus>a:only-child,.ant-btn-dashed:hover>a:only-child{color:currentColor}.ant-btn-dashed:focus>a:only-child:after,.ant-btn-dashed:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dashed.active,.ant-btn-dashed:active{color:#096dd9;background-color:#fff;border-color:#096dd9}.ant-btn-dashed.active>a:only-child,.ant-btn-dashed:active>a:only-child{color:currentColor}.ant-btn-dashed.active>a:only-child:after,.ant-btn-dashed:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dashed-disabled,.ant-btn-dashed-disabled.active,.ant-btn-dashed-disabled:active,.ant-btn-dashed-disabled:focus,.ant-btn-dashed-disabled:hover,.ant-btn-dashed.disabled,.ant-btn-dashed.disabled.active,.ant-btn-dashed.disabled:active,.ant-btn-dashed.disabled:focus,.ant-btn-dashed.disabled:hover,.ant-btn-dashed[disabled],.ant-btn-dashed[disabled].active,.ant-btn-dashed[disabled]:active,.ant-btn-dashed[disabled]:focus,.ant-btn-dashed[disabled]:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-dashed-disabled.active>a:only-child,.ant-btn-dashed-disabled:active>a:only-child,.ant-btn-dashed-disabled:focus>a:only-child,.ant-btn-dashed-disabled:hover>a:only-child,.ant-btn-dashed-disabled>a:only-child,.ant-btn-dashed.disabled.active>a:only-child,.ant-btn-dashed.disabled:active>a:only-child,.ant-btn-dashed.disabled:focus>a:only-child,.ant-btn-dashed.disabled:hover>a:only-child,.ant-btn-dashed.disabled>a:only-child,.ant-btn-dashed[disabled].active>a:only-child,.ant-btn-dashed[disabled]:active>a:only-child,.ant-btn-dashed[disabled]:focus>a:only-child,.ant-btn-dashed[disabled]:hover>a:only-child,.ant-btn-dashed[disabled]>a:only-child{color:currentColor}.ant-btn-dashed-disabled.active>a:only-child:after,.ant-btn-dashed-disabled:active>a:only-child:after,.ant-btn-dashed-disabled:focus>a:only-child:after,.ant-btn-dashed-disabled:hover>a:only-child:after,.ant-btn-dashed-disabled>a:only-child:after,.ant-btn-dashed.disabled.active>a:only-child:after,.ant-btn-dashed.disabled:active>a:only-child:after,.ant-btn-dashed.disabled:focus>a:only-child:after,.ant-btn-dashed.disabled:hover>a:only-child:after,.ant-btn-dashed.disabled>a:only-child:after,.ant-btn-dashed[disabled].active>a:only-child:after,.ant-btn-dashed[disabled]:active>a:only-child:after,.ant-btn-dashed[disabled]:focus>a:only-child:after,.ant-btn-dashed[disabled]:hover>a:only-child:after,.ant-btn-dashed[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-danger{color:#fff;background-color:#ff4d4f;border-color:#ff4d4f;text-shadow:0 -1px 0 rgba(0,0,0,.12);-webkit-box-shadow:0 2px 0 rgba(0,0,0,.045);box-shadow:0 2px 0 rgba(0,0,0,.045)}.ant-btn-danger>a:only-child{color:currentColor}.ant-btn-danger>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-danger:focus,.ant-btn-danger:hover{color:#fff;background-color:#ff7875;border-color:#ff7875}.ant-btn-danger:focus>a:only-child,.ant-btn-danger:hover>a:only-child{color:currentColor}.ant-btn-danger:focus>a:only-child:after,.ant-btn-danger:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-danger.active,.ant-btn-danger:active{color:#fff;background-color:#d9363e;border-color:#d9363e}.ant-btn-danger.active>a:only-child,.ant-btn-danger:active>a:only-child{color:currentColor}.ant-btn-danger.active>a:only-child:after,.ant-btn-danger:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-danger-disabled,.ant-btn-danger-disabled.active,.ant-btn-danger-disabled:active,.ant-btn-danger-disabled:focus,.ant-btn-danger-disabled:hover,.ant-btn-danger.disabled,.ant-btn-danger.disabled.active,.ant-btn-danger.disabled:active,.ant-btn-danger.disabled:focus,.ant-btn-danger.disabled:hover,.ant-btn-danger[disabled],.ant-btn-danger[disabled].active,.ant-btn-danger[disabled]:active,.ant-btn-danger[disabled]:focus,.ant-btn-danger[disabled]:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-danger-disabled.active>a:only-child,.ant-btn-danger-disabled:active>a:only-child,.ant-btn-danger-disabled:focus>a:only-child,.ant-btn-danger-disabled:hover>a:only-child,.ant-btn-danger-disabled>a:only-child,.ant-btn-danger.disabled.active>a:only-child,.ant-btn-danger.disabled:active>a:only-child,.ant-btn-danger.disabled:focus>a:only-child,.ant-btn-danger.disabled:hover>a:only-child,.ant-btn-danger.disabled>a:only-child,.ant-btn-danger[disabled].active>a:only-child,.ant-btn-danger[disabled]:active>a:only-child,.ant-btn-danger[disabled]:focus>a:only-child,.ant-btn-danger[disabled]:hover>a:only-child,.ant-btn-danger[disabled]>a:only-child{color:currentColor}.ant-btn-danger-disabled.active>a:only-child:after,.ant-btn-danger-disabled:active>a:only-child:after,.ant-btn-danger-disabled:focus>a:only-child:after,.ant-btn-danger-disabled:hover>a:only-child:after,.ant-btn-danger-disabled>a:only-child:after,.ant-btn-danger.disabled.active>a:only-child:after,.ant-btn-danger.disabled:active>a:only-child:after,.ant-btn-danger.disabled:focus>a:only-child:after,.ant-btn-danger.disabled:hover>a:only-child:after,.ant-btn-danger.disabled>a:only-child:after,.ant-btn-danger[disabled].active>a:only-child:after,.ant-btn-danger[disabled]:active>a:only-child:after,.ant-btn-danger[disabled]:focus>a:only-child:after,.ant-btn-danger[disabled]:hover>a:only-child:after,.ant-btn-danger[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-link{color:#1890ff;background-color:transparent;border-color:transparent;-webkit-box-shadow:none;box-shadow:none}.ant-btn-link>a:only-child{color:currentColor}.ant-btn-link>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-link:focus,.ant-btn-link:hover{color:#40a9ff;background-color:transparent;border-color:#40a9ff}.ant-btn-link:focus>a:only-child,.ant-btn-link:hover>a:only-child{color:currentColor}.ant-btn-link:focus>a:only-child:after,.ant-btn-link:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-link.active,.ant-btn-link:active{color:#096dd9;background-color:transparent;border-color:#096dd9}.ant-btn-link.active>a:only-child,.ant-btn-link:active>a:only-child{color:currentColor}.ant-btn-link.active>a:only-child:after,.ant-btn-link:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-link-disabled,.ant-btn-link-disabled.active,.ant-btn-link-disabled:active,.ant-btn-link-disabled:focus,.ant-btn-link-disabled:hover,.ant-btn-link.disabled,.ant-btn-link.disabled.active,.ant-btn-link.disabled:active,.ant-btn-link.disabled:focus,.ant-btn-link.disabled:hover,.ant-btn-link[disabled],.ant-btn-link[disabled].active,.ant-btn-link[disabled]:active,.ant-btn-link[disabled]:focus,.ant-btn-link[disabled]:hover{background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-link:active,.ant-btn-link:focus,.ant-btn-link:hover{border-color:transparent}.ant-btn-link-disabled,.ant-btn-link-disabled.active,.ant-btn-link-disabled:active,.ant-btn-link-disabled:focus,.ant-btn-link-disabled:hover,.ant-btn-link.disabled,.ant-btn-link.disabled.active,.ant-btn-link.disabled:active,.ant-btn-link.disabled:focus,.ant-btn-link.disabled:hover,.ant-btn-link[disabled],.ant-btn-link[disabled].active,.ant-btn-link[disabled]:active,.ant-btn-link[disabled]:focus,.ant-btn-link[disabled]:hover{color:rgba(0,0,0,.25);background-color:transparent;border-color:transparent;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-link-disabled.active>a:only-child,.ant-btn-link-disabled:active>a:only-child,.ant-btn-link-disabled:focus>a:only-child,.ant-btn-link-disabled:hover>a:only-child,.ant-btn-link-disabled>a:only-child,.ant-btn-link.disabled.active>a:only-child,.ant-btn-link.disabled:active>a:only-child,.ant-btn-link.disabled:focus>a:only-child,.ant-btn-link.disabled:hover>a:only-child,.ant-btn-link.disabled>a:only-child,.ant-btn-link[disabled].active>a:only-child,.ant-btn-link[disabled]:active>a:only-child,.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-link[disabled]>a:only-child{color:currentColor}.ant-btn-link-disabled.active>a:only-child:after,.ant-btn-link-disabled:active>a:only-child:after,.ant-btn-link-disabled:focus>a:only-child:after,.ant-btn-link-disabled:hover>a:only-child:after,.ant-btn-link-disabled>a:only-child:after,.ant-btn-link.disabled.active>a:only-child:after,.ant-btn-link.disabled:active>a:only-child:after,.ant-btn-link.disabled:focus>a:only-child:after,.ant-btn-link.disabled:hover>a:only-child:after,.ant-btn-link.disabled>a:only-child:after,.ant-btn-link[disabled].active>a:only-child:after,.ant-btn-link[disabled]:active>a:only-child:after,.ant-btn-link[disabled]:focus>a:only-child:after,.ant-btn-link[disabled]:hover>a:only-child:after,.ant-btn-link[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous{color:#ff4d4f;background-color:#fff;border-color:#ff4d4f}.ant-btn-dangerous>a:only-child{color:currentColor}.ant-btn-dangerous>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous:focus,.ant-btn-dangerous:hover{color:#ff7875;background-color:#fff;border-color:#ff7875}.ant-btn-dangerous:focus>a:only-child,.ant-btn-dangerous:hover>a:only-child{color:currentColor}.ant-btn-dangerous:focus>a:only-child:after,.ant-btn-dangerous:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.active,.ant-btn-dangerous:active{color:#d9363e;background-color:#fff;border-color:#d9363e}.ant-btn-dangerous.active>a:only-child,.ant-btn-dangerous:active>a:only-child{color:currentColor}.ant-btn-dangerous.active>a:only-child:after,.ant-btn-dangerous:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous-disabled,.ant-btn-dangerous-disabled.active,.ant-btn-dangerous-disabled:active,.ant-btn-dangerous-disabled:focus,.ant-btn-dangerous-disabled:hover,.ant-btn-dangerous.disabled,.ant-btn-dangerous.disabled.active,.ant-btn-dangerous.disabled:active,.ant-btn-dangerous.disabled:focus,.ant-btn-dangerous.disabled:hover,.ant-btn-dangerous[disabled],.ant-btn-dangerous[disabled].active,.ant-btn-dangerous[disabled]:active,.ant-btn-dangerous[disabled]:focus,.ant-btn-dangerous[disabled]:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-dangerous-disabled.active>a:only-child,.ant-btn-dangerous-disabled:active>a:only-child,.ant-btn-dangerous-disabled:focus>a:only-child,.ant-btn-dangerous-disabled:hover>a:only-child,.ant-btn-dangerous-disabled>a:only-child,.ant-btn-dangerous.disabled.active>a:only-child,.ant-btn-dangerous.disabled:active>a:only-child,.ant-btn-dangerous.disabled:focus>a:only-child,.ant-btn-dangerous.disabled:hover>a:only-child,.ant-btn-dangerous.disabled>a:only-child,.ant-btn-dangerous[disabled].active>a:only-child,.ant-btn-dangerous[disabled]:active>a:only-child,.ant-btn-dangerous[disabled]:focus>a:only-child,.ant-btn-dangerous[disabled]:hover>a:only-child,.ant-btn-dangerous[disabled]>a:only-child{color:currentColor}.ant-btn-dangerous-disabled.active>a:only-child:after,.ant-btn-dangerous-disabled:active>a:only-child:after,.ant-btn-dangerous-disabled:focus>a:only-child:after,.ant-btn-dangerous-disabled:hover>a:only-child:after,.ant-btn-dangerous-disabled>a:only-child:after,.ant-btn-dangerous.disabled.active>a:only-child:after,.ant-btn-dangerous.disabled:active>a:only-child:after,.ant-btn-dangerous.disabled:focus>a:only-child:after,.ant-btn-dangerous.disabled:hover>a:only-child:after,.ant-btn-dangerous.disabled>a:only-child:after,.ant-btn-dangerous[disabled].active>a:only-child:after,.ant-btn-dangerous[disabled]:active>a:only-child:after,.ant-btn-dangerous[disabled]:focus>a:only-child:after,.ant-btn-dangerous[disabled]:hover>a:only-child:after,.ant-btn-dangerous[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-primary{color:#fff;background-color:#ff4d4f;border-color:#ff4d4f;text-shadow:0 -1px 0 rgba(0,0,0,.12);-webkit-box-shadow:0 2px 0 rgba(0,0,0,.045);box-shadow:0 2px 0 rgba(0,0,0,.045)}.ant-btn-dangerous.ant-btn-primary>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-primary>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-primary:focus,.ant-btn-dangerous.ant-btn-primary:hover{color:#fff;background-color:#ff7875;border-color:#ff7875}.ant-btn-dangerous.ant-btn-primary:focus>a:only-child,.ant-btn-dangerous.ant-btn-primary:hover>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-primary:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-primary:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-primary.active,.ant-btn-dangerous.ant-btn-primary:active{color:#fff;background-color:#d9363e;border-color:#d9363e}.ant-btn-dangerous.ant-btn-primary.active>a:only-child,.ant-btn-dangerous.ant-btn-primary:active>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-primary.active>a:only-child:after,.ant-btn-dangerous.ant-btn-primary:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-primary-disabled,.ant-btn-dangerous.ant-btn-primary-disabled.active,.ant-btn-dangerous.ant-btn-primary-disabled:active,.ant-btn-dangerous.ant-btn-primary-disabled:focus,.ant-btn-dangerous.ant-btn-primary-disabled:hover,.ant-btn-dangerous.ant-btn-primary.disabled,.ant-btn-dangerous.ant-btn-primary.disabled.active,.ant-btn-dangerous.ant-btn-primary.disabled:active,.ant-btn-dangerous.ant-btn-primary.disabled:focus,.ant-btn-dangerous.ant-btn-primary.disabled:hover,.ant-btn-dangerous.ant-btn-primary[disabled],.ant-btn-dangerous.ant-btn-primary[disabled].active,.ant-btn-dangerous.ant-btn-primary[disabled]:active,.ant-btn-dangerous.ant-btn-primary[disabled]:focus,.ant-btn-dangerous.ant-btn-primary[disabled]:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-dangerous.ant-btn-primary-disabled.active>a:only-child,.ant-btn-dangerous.ant-btn-primary-disabled:active>a:only-child,.ant-btn-dangerous.ant-btn-primary-disabled:focus>a:only-child,.ant-btn-dangerous.ant-btn-primary-disabled:hover>a:only-child,.ant-btn-dangerous.ant-btn-primary-disabled>a:only-child,.ant-btn-dangerous.ant-btn-primary.disabled.active>a:only-child,.ant-btn-dangerous.ant-btn-primary.disabled:active>a:only-child,.ant-btn-dangerous.ant-btn-primary.disabled:focus>a:only-child,.ant-btn-dangerous.ant-btn-primary.disabled:hover>a:only-child,.ant-btn-dangerous.ant-btn-primary.disabled>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled].active>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-dangerous.ant-btn-primary[disabled]>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-primary-disabled.active>a:only-child:after,.ant-btn-dangerous.ant-btn-primary-disabled:active>a:only-child:after,.ant-btn-dangerous.ant-btn-primary-disabled:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-primary-disabled:hover>a:only-child:after,.ant-btn-dangerous.ant-btn-primary-disabled>a:only-child:after,.ant-btn-dangerous.ant-btn-primary.disabled.active>a:only-child:after,.ant-btn-dangerous.ant-btn-primary.disabled:active>a:only-child:after,.ant-btn-dangerous.ant-btn-primary.disabled:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-primary.disabled:hover>a:only-child:after,.ant-btn-dangerous.ant-btn-primary.disabled>a:only-child:after,.ant-btn-dangerous.ant-btn-primary[disabled].active>a:only-child:after,.ant-btn-dangerous.ant-btn-primary[disabled]:active>a:only-child:after,.ant-btn-dangerous.ant-btn-primary[disabled]:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-primary[disabled]:hover>a:only-child:after,.ant-btn-dangerous.ant-btn-primary[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-link{color:#ff4d4f;background-color:transparent;border-color:transparent;-webkit-box-shadow:none;box-shadow:none}.ant-btn-dangerous.ant-btn-link>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-link>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-link:focus,.ant-btn-dangerous.ant-btn-link:hover{color:#40a9ff;border-color:#40a9ff}.ant-btn-dangerous.ant-btn-link.active,.ant-btn-dangerous.ant-btn-link:active{color:#096dd9;background-color:transparent;border-color:#096dd9}.ant-btn-dangerous.ant-btn-link.active>a:only-child,.ant-btn-dangerous.ant-btn-link:active>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-link.active>a:only-child:after,.ant-btn-dangerous.ant-btn-link:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-link-disabled,.ant-btn-dangerous.ant-btn-link-disabled.active,.ant-btn-dangerous.ant-btn-link-disabled:active,.ant-btn-dangerous.ant-btn-link-disabled:focus,.ant-btn-dangerous.ant-btn-link-disabled:hover,.ant-btn-dangerous.ant-btn-link.disabled,.ant-btn-dangerous.ant-btn-link.disabled.active,.ant-btn-dangerous.ant-btn-link.disabled:active,.ant-btn-dangerous.ant-btn-link.disabled:focus,.ant-btn-dangerous.ant-btn-link.disabled:hover,.ant-btn-dangerous.ant-btn-link[disabled],.ant-btn-dangerous.ant-btn-link[disabled].active,.ant-btn-dangerous.ant-btn-link[disabled]:active,.ant-btn-dangerous.ant-btn-link[disabled]:focus,.ant-btn-dangerous.ant-btn-link[disabled]:hover{background-color:#f5f5f5;border-color:#d9d9d9}.ant-btn-dangerous.ant-btn-link:focus,.ant-btn-dangerous.ant-btn-link:hover{color:#ff7875;background-color:transparent;border-color:transparent}.ant-btn-dangerous.ant-btn-link:focus>a:only-child,.ant-btn-dangerous.ant-btn-link:hover>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-link:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-link:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-link:active{color:#d9363e;background-color:transparent;border-color:transparent}.ant-btn-dangerous.ant-btn-link:active>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-link:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-dangerous.ant-btn-link-disabled,.ant-btn-dangerous.ant-btn-link-disabled.active,.ant-btn-dangerous.ant-btn-link-disabled:active,.ant-btn-dangerous.ant-btn-link-disabled:focus,.ant-btn-dangerous.ant-btn-link-disabled:hover,.ant-btn-dangerous.ant-btn-link.disabled,.ant-btn-dangerous.ant-btn-link.disabled.active,.ant-btn-dangerous.ant-btn-link.disabled:active,.ant-btn-dangerous.ant-btn-link.disabled:focus,.ant-btn-dangerous.ant-btn-link.disabled:hover,.ant-btn-dangerous.ant-btn-link[disabled],.ant-btn-dangerous.ant-btn-link[disabled].active,.ant-btn-dangerous.ant-btn-link[disabled]:active,.ant-btn-dangerous.ant-btn-link[disabled]:focus,.ant-btn-dangerous.ant-btn-link[disabled]:hover{color:rgba(0,0,0,.25);background-color:transparent;border-color:transparent;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-dangerous.ant-btn-link-disabled.active>a:only-child,.ant-btn-dangerous.ant-btn-link-disabled:active>a:only-child,.ant-btn-dangerous.ant-btn-link-disabled:focus>a:only-child,.ant-btn-dangerous.ant-btn-link-disabled:hover>a:only-child,.ant-btn-dangerous.ant-btn-link-disabled>a:only-child,.ant-btn-dangerous.ant-btn-link.disabled.active>a:only-child,.ant-btn-dangerous.ant-btn-link.disabled:active>a:only-child,.ant-btn-dangerous.ant-btn-link.disabled:focus>a:only-child,.ant-btn-dangerous.ant-btn-link.disabled:hover>a:only-child,.ant-btn-dangerous.ant-btn-link.disabled>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled].active>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child{color:currentColor}.ant-btn-dangerous.ant-btn-link-disabled.active>a:only-child:after,.ant-btn-dangerous.ant-btn-link-disabled:active>a:only-child:after,.ant-btn-dangerous.ant-btn-link-disabled:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-link-disabled:hover>a:only-child:after,.ant-btn-dangerous.ant-btn-link-disabled>a:only-child:after,.ant-btn-dangerous.ant-btn-link.disabled.active>a:only-child:after,.ant-btn-dangerous.ant-btn-link.disabled:active>a:only-child:after,.ant-btn-dangerous.ant-btn-link.disabled:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-link.disabled:hover>a:only-child:after,.ant-btn-dangerous.ant-btn-link.disabled>a:only-child:after,.ant-btn-dangerous.ant-btn-link[disabled].active>a:only-child:after,.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child:after,.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child:after,.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child:after,.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-icon-only{width:32px;height:32px;padding:2.4px 0;font-size:16px;border-radius:2px}.ant-btn-icon-only>*{font-size:16px}.ant-btn-icon-only.ant-btn-lg{width:40px;height:40px;padding:4.9px 0;font-size:18px;border-radius:2px}.ant-btn-icon-only.ant-btn-lg>*{font-size:18px}.ant-btn-icon-only.ant-btn-sm{width:24px;height:24px;padding:0;font-size:14px;border-radius:2px}.ant-btn-icon-only.ant-btn-sm>*{font-size:14px}.ant-btn-icon-only>i{vertical-align:middle}.ant-btn-round{height:32px;padding:4px 16px;font-size:14px;border-radius:32px}.ant-btn-round.ant-btn-lg{height:40px;padding:6.4px 20px;font-size:16px;border-radius:40px}.ant-btn-round.ant-btn-sm{height:24px;padding:0 12px;font-size:14px;border-radius:24px}.ant-btn-round.ant-btn-icon-only{width:auto}.ant-btn-circle,.ant-btn-circle-outline{min-width:32px;padding-right:0;padding-left:0;text-align:center;border-radius:50%}.ant-btn-circle-outline.ant-btn-lg,.ant-btn-circle.ant-btn-lg{min-width:40px;border-radius:50%}.ant-btn-circle-outline.ant-btn-sm,.ant-btn-circle.ant-btn-sm{min-width:24px;border-radius:50%}.ant-btn:before{position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;z-index:1;display:none;background:#fff;border-radius:inherit;opacity:.35;-webkit-transition:opacity .2s;transition:opacity .2s;content:"";pointer-events:none}.ant-btn .anticon{-webkit-transition:margin-left .3s cubic-bezier(.645,.045,.355,1);transition:margin-left .3s cubic-bezier(.645,.045,.355,1)}.ant-btn .anticon.anticon-minus>svg,.ant-btn .anticon.anticon-plus>svg{shape-rendering:optimizeSpeed}.ant-btn.ant-btn-loading{position:relative}.ant-btn.ant-btn-loading:not([disabled]){pointer-events:none}.ant-btn.ant-btn-loading:before{display:block}.ant-btn>.ant-btn-loading-icon{-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-btn>.ant-btn-loading-icon .anticon{padding-right:8px}.ant-btn-group{display:-ms-inline-flexbox;display:inline-flex}.ant-btn-group,.ant-btn-group>.ant-btn,.ant-btn-group>span>.ant-btn{position:relative}.ant-btn-group>.ant-btn.active,.ant-btn-group>.ant-btn:active,.ant-btn-group>.ant-btn:focus,.ant-btn-group>.ant-btn:hover,.ant-btn-group>span>.ant-btn.active,.ant-btn-group>span>.ant-btn:active,.ant-btn-group>span>.ant-btn:focus,.ant-btn-group>span>.ant-btn:hover{z-index:2}.ant-btn-group>.ant-btn:disabled,.ant-btn-group>span>.ant-btn:disabled{z-index:0}.ant-btn-group .ant-btn-icon-only{font-size:14px}.ant-btn-group-lg>.ant-btn,.ant-btn-group-lg>span>.ant-btn{height:40px;padding:6.4px 15px;font-size:16px;border-radius:0}.ant-btn-group-lg .ant-btn.ant-btn-icon-only{width:40px;height:40px;padding-right:0;padding-left:0}.ant-btn-group-sm>.ant-btn,.ant-btn-group-sm>span>.ant-btn{height:24px;padding:0 7px;font-size:14px;border-radius:0}.ant-btn-group-sm>.ant-btn>.anticon,.ant-btn-group-sm>span>.ant-btn>.anticon{font-size:14px}.ant-btn-group-sm .ant-btn.ant-btn-icon-only{width:24px;height:24px;padding-right:0;padding-left:0}.ant-btn+.ant-btn-group,.ant-btn-group+.ant-btn,.ant-btn-group+.ant-btn-group,.ant-btn-group .ant-btn+.ant-btn,.ant-btn-group .ant-btn+span,.ant-btn-group>span+span,.ant-btn-group span+.ant-btn{margin-left:-1px}.ant-btn-group .ant-btn-primary+.ant-btn:not(.ant-btn-primary):not([disabled]){border-left-color:transparent}.ant-btn-group .ant-btn{border-radius:0}.ant-btn-group>.ant-btn:first-child,.ant-btn-group>span:first-child>.ant-btn{margin-left:0}.ant-btn-group>.ant-btn:only-child,.ant-btn-group>span:only-child>.ant-btn{border-radius:2px}.ant-btn-group>.ant-btn:first-child:not(:last-child),.ant-btn-group>span:first-child:not(:last-child)>.ant-btn{border-top-left-radius:2px;border-bottom-left-radius:2px}.ant-btn-group>.ant-btn:last-child:not(:first-child),.ant-btn-group>span:last-child:not(:first-child)>.ant-btn{border-top-right-radius:2px;border-bottom-right-radius:2px}.ant-btn-group-sm>.ant-btn:only-child,.ant-btn-group-sm>span:only-child>.ant-btn{border-radius:2px}.ant-btn-group-sm>.ant-btn:first-child:not(:last-child),.ant-btn-group-sm>span:first-child:not(:last-child)>.ant-btn{border-top-left-radius:2px;border-bottom-left-radius:2px}.ant-btn-group-sm>.ant-btn:last-child:not(:first-child),.ant-btn-group-sm>span:last-child:not(:first-child)>.ant-btn{border-top-right-radius:2px;border-bottom-right-radius:2px}.ant-btn-group>.ant-btn-group{float:left}.ant-btn-group>.ant-btn-group:not(:first-child):not(:last-child)>.ant-btn{border-radius:0}.ant-btn-group>.ant-btn-group:first-child:not(:last-child)>.ant-btn:last-child{padding-right:8px;border-top-right-radius:0;border-bottom-right-radius:0}.ant-btn-group>.ant-btn-group:last-child:not(:first-child)>.ant-btn:first-child{padding-left:8px;border-top-left-radius:0;border-bottom-left-radius:0}.ant-btn-group-rtl.ant-btn+.ant-btn-group,.ant-btn-group-rtl.ant-btn-group+.ant-btn,.ant-btn-group-rtl.ant-btn-group+.ant-btn-group,.ant-btn-group-rtl.ant-btn-group .ant-btn+.ant-btn,.ant-btn-group-rtl.ant-btn-group .ant-btn+span,.ant-btn-group-rtl.ant-btn-group>span+span,.ant-btn-group-rtl.ant-btn-group span+.ant-btn,.ant-btn-rtl.ant-btn+.ant-btn-group,.ant-btn-rtl.ant-btn-group+.ant-btn,.ant-btn-rtl.ant-btn-group+.ant-btn-group,.ant-btn-rtl.ant-btn-group .ant-btn+.ant-btn,.ant-btn-rtl.ant-btn-group .ant-btn+span,.ant-btn-rtl.ant-btn-group>span+span,.ant-btn-rtl.ant-btn-group span+.ant-btn{margin-right:-1px;margin-left:auto}.ant-btn-group.ant-btn-group-rtl{direction:rtl}.ant-btn-group-rtl.ant-btn-group>.ant-btn:first-child:not(:last-child),.ant-btn-group-rtl.ant-btn-group>span:first-child:not(:last-child)>.ant-btn{border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.ant-btn-group-rtl.ant-btn-group>.ant-btn:last-child:not(:first-child),.ant-btn-group-rtl.ant-btn-group>span:last-child:not(:first-child)>.ant-btn{border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.ant-btn-group-rtl.ant-btn-group-sm>.ant-btn:first-child:not(:last-child),.ant-btn-group-rtl.ant-btn-group-sm>span:first-child:not(:last-child)>.ant-btn{border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.ant-btn-group-rtl.ant-btn-group-sm>.ant-btn:last-child:not(:first-child),.ant-btn-group-rtl.ant-btn-group-sm>span:last-child:not(:first-child)>.ant-btn{border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.ant-btn:active>span,.ant-btn:focus>span{position:relative}.ant-btn>.anticon+span,.ant-btn>span+.anticon{margin-left:8px}.ant-btn-background-ghost{color:#fff;background:transparent!important;border-color:#fff}.ant-btn-background-ghost.ant-btn-primary{color:#1890ff;background-color:transparent;border-color:#1890ff;text-shadow:none}.ant-btn-background-ghost.ant-btn-primary>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-primary>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-primary:focus,.ant-btn-background-ghost.ant-btn-primary:hover{color:#40a9ff;background-color:transparent;border-color:#40a9ff}.ant-btn-background-ghost.ant-btn-primary:focus>a:only-child,.ant-btn-background-ghost.ant-btn-primary:hover>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-primary:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-primary.active,.ant-btn-background-ghost.ant-btn-primary:active{color:#096dd9;background-color:transparent;border-color:#096dd9}.ant-btn-background-ghost.ant-btn-primary.active>a:only-child,.ant-btn-background-ghost.ant-btn-primary:active>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-primary.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-primary-disabled,.ant-btn-background-ghost.ant-btn-primary-disabled.active,.ant-btn-background-ghost.ant-btn-primary-disabled:active,.ant-btn-background-ghost.ant-btn-primary-disabled:focus,.ant-btn-background-ghost.ant-btn-primary-disabled:hover,.ant-btn-background-ghost.ant-btn-primary.disabled,.ant-btn-background-ghost.ant-btn-primary.disabled.active,.ant-btn-background-ghost.ant-btn-primary.disabled:active,.ant-btn-background-ghost.ant-btn-primary.disabled:focus,.ant-btn-background-ghost.ant-btn-primary.disabled:hover,.ant-btn-background-ghost.ant-btn-primary[disabled],.ant-btn-background-ghost.ant-btn-primary[disabled].active,.ant-btn-background-ghost.ant-btn-primary[disabled]:active,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-primary-disabled.active>a:only-child,.ant-btn-background-ghost.ant-btn-primary-disabled:active>a:only-child,.ant-btn-background-ghost.ant-btn-primary-disabled:focus>a:only-child,.ant-btn-background-ghost.ant-btn-primary-disabled:hover>a:only-child,.ant-btn-background-ghost.ant-btn-primary-disabled>a:only-child,.ant-btn-background-ghost.ant-btn-primary.disabled.active>a:only-child,.ant-btn-background-ghost.ant-btn-primary.disabled:active>a:only-child,.ant-btn-background-ghost.ant-btn-primary.disabled:focus>a:only-child,.ant-btn-background-ghost.ant-btn-primary.disabled:hover>a:only-child,.ant-btn-background-ghost.ant-btn-primary.disabled>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled].active>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-primary[disabled]>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-primary-disabled.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary-disabled:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary-disabled:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary-disabled:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary-disabled>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary.disabled.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary.disabled:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary.disabled:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary.disabled:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary.disabled>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled].active>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-primary[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-danger{color:#ff4d4f;background-color:transparent;border-color:#ff4d4f;text-shadow:none}.ant-btn-background-ghost.ant-btn-danger>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-danger>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-danger:focus,.ant-btn-background-ghost.ant-btn-danger:hover{color:#ff7875;background-color:transparent;border-color:#ff7875}.ant-btn-background-ghost.ant-btn-danger:focus>a:only-child,.ant-btn-background-ghost.ant-btn-danger:hover>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-danger:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-danger.active,.ant-btn-background-ghost.ant-btn-danger:active{color:#d9363e;background-color:transparent;border-color:#d9363e}.ant-btn-background-ghost.ant-btn-danger.active>a:only-child,.ant-btn-background-ghost.ant-btn-danger:active>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-danger.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-danger-disabled,.ant-btn-background-ghost.ant-btn-danger-disabled.active,.ant-btn-background-ghost.ant-btn-danger-disabled:active,.ant-btn-background-ghost.ant-btn-danger-disabled:focus,.ant-btn-background-ghost.ant-btn-danger-disabled:hover,.ant-btn-background-ghost.ant-btn-danger.disabled,.ant-btn-background-ghost.ant-btn-danger.disabled.active,.ant-btn-background-ghost.ant-btn-danger.disabled:active,.ant-btn-background-ghost.ant-btn-danger.disabled:focus,.ant-btn-background-ghost.ant-btn-danger.disabled:hover,.ant-btn-background-ghost.ant-btn-danger[disabled],.ant-btn-background-ghost.ant-btn-danger[disabled].active,.ant-btn-background-ghost.ant-btn-danger[disabled]:active,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-danger-disabled.active>a:only-child,.ant-btn-background-ghost.ant-btn-danger-disabled:active>a:only-child,.ant-btn-background-ghost.ant-btn-danger-disabled:focus>a:only-child,.ant-btn-background-ghost.ant-btn-danger-disabled:hover>a:only-child,.ant-btn-background-ghost.ant-btn-danger-disabled>a:only-child,.ant-btn-background-ghost.ant-btn-danger.disabled.active>a:only-child,.ant-btn-background-ghost.ant-btn-danger.disabled:active>a:only-child,.ant-btn-background-ghost.ant-btn-danger.disabled:focus>a:only-child,.ant-btn-background-ghost.ant-btn-danger.disabled:hover>a:only-child,.ant-btn-background-ghost.ant-btn-danger.disabled>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled].active>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-danger[disabled]>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-danger-disabled.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger-disabled:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger-disabled:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger-disabled:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger-disabled>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger.disabled.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger.disabled:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger.disabled:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger.disabled:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger.disabled>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled].active>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-danger[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-dangerous{color:#ff4d4f;background-color:transparent;border-color:#ff4d4f;text-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-dangerous>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-dangerous:focus,.ant-btn-background-ghost.ant-btn-dangerous:hover{color:#ff7875;background-color:transparent;border-color:#ff7875}.ant-btn-background-ghost.ant-btn-dangerous:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous:hover>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-dangerous:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-dangerous.active,.ant-btn-background-ghost.ant-btn-dangerous:active{color:#d9363e;background-color:transparent;border-color:#d9363e}.ant-btn-background-ghost.ant-btn-dangerous.active>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous:active>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-dangerous.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-dangerous-disabled,.ant-btn-background-ghost.ant-btn-dangerous-disabled.active,.ant-btn-background-ghost.ant-btn-dangerous-disabled:active,.ant-btn-background-ghost.ant-btn-dangerous-disabled:focus,.ant-btn-background-ghost.ant-btn-dangerous-disabled:hover,.ant-btn-background-ghost.ant-btn-dangerous.disabled,.ant-btn-background-ghost.ant-btn-dangerous.disabled.active,.ant-btn-background-ghost.ant-btn-dangerous.disabled:active,.ant-btn-background-ghost.ant-btn-dangerous.disabled:focus,.ant-btn-background-ghost.ant-btn-dangerous.disabled:hover,.ant-btn-background-ghost.ant-btn-dangerous[disabled],.ant-btn-background-ghost.ant-btn-dangerous[disabled].active,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous-disabled.active>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous-disabled:active>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous-disabled:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous-disabled:hover>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous-disabled>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.disabled.active>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.disabled:active>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.disabled:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.disabled:hover>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.disabled>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled].active>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous[disabled]>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-dangerous-disabled.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous-disabled:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous-disabled:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous-disabled:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous-disabled>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.disabled.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.disabled:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.disabled:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.disabled:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.disabled>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous[disabled].active>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link{color:#ff4d4f;background-color:transparent;border-color:transparent;text-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover{color:#ff7875;background-color:transparent;border-color:transparent}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link.active,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active{color:#d9363e;background-color:transparent;border-color:transparent}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link.active>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link-disabled,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link-disabled.active,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link-disabled:active,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link-disabled:focus,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link-disabled:hover,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link.disabled,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link.disabled.active,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link.disabled:active,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link.disabled:focus,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link.disabled:hover,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled],.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled].active,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link-disabled.active>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link-disabled:active>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link-disabled:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link-disabled:hover>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link-disabled>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link.disabled.active>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link.disabled:active>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link.disabled:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link.disabled:hover>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link.disabled>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled].active>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link-disabled.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link-disabled:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link-disabled:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link-disabled:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link-disabled>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link.disabled.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link.disabled:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link.disabled:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link.disabled:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link.disabled>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled].active>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-dangerous.ant-btn-link[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-link{color:#1890ff;background-color:transparent;border-color:transparent;text-shadow:none;color:#fff}.ant-btn-background-ghost.ant-btn-link>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-link>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-link:focus,.ant-btn-background-ghost.ant-btn-link:hover{color:#40a9ff;background-color:transparent;border-color:transparent}.ant-btn-background-ghost.ant-btn-link:focus>a:only-child,.ant-btn-background-ghost.ant-btn-link:hover>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-link:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-link:hover>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-link.active,.ant-btn-background-ghost.ant-btn-link:active{color:#096dd9;background-color:transparent;border-color:transparent}.ant-btn-background-ghost.ant-btn-link.active>a:only-child,.ant-btn-background-ghost.ant-btn-link:active>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-link.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-link:active>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-background-ghost.ant-btn-link-disabled,.ant-btn-background-ghost.ant-btn-link-disabled.active,.ant-btn-background-ghost.ant-btn-link-disabled:active,.ant-btn-background-ghost.ant-btn-link-disabled:focus,.ant-btn-background-ghost.ant-btn-link-disabled:hover,.ant-btn-background-ghost.ant-btn-link.disabled,.ant-btn-background-ghost.ant-btn-link.disabled.active,.ant-btn-background-ghost.ant-btn-link.disabled:active,.ant-btn-background-ghost.ant-btn-link.disabled:focus,.ant-btn-background-ghost.ant-btn-link.disabled:hover,.ant-btn-background-ghost.ant-btn-link[disabled],.ant-btn-background-ghost.ant-btn-link[disabled].active,.ant-btn-background-ghost.ant-btn-link[disabled]:active,.ant-btn-background-ghost.ant-btn-link[disabled]:focus,.ant-btn-background-ghost.ant-btn-link[disabled]:hover{color:rgba(0,0,0,.25);background-color:#f5f5f5;border-color:#d9d9d9;text-shadow:none;-webkit-box-shadow:none;box-shadow:none}.ant-btn-background-ghost.ant-btn-link-disabled.active>a:only-child,.ant-btn-background-ghost.ant-btn-link-disabled:active>a:only-child,.ant-btn-background-ghost.ant-btn-link-disabled:focus>a:only-child,.ant-btn-background-ghost.ant-btn-link-disabled:hover>a:only-child,.ant-btn-background-ghost.ant-btn-link-disabled>a:only-child,.ant-btn-background-ghost.ant-btn-link.disabled.active>a:only-child,.ant-btn-background-ghost.ant-btn-link.disabled:active>a:only-child,.ant-btn-background-ghost.ant-btn-link.disabled:focus>a:only-child,.ant-btn-background-ghost.ant-btn-link.disabled:hover>a:only-child,.ant-btn-background-ghost.ant-btn-link.disabled>a:only-child,.ant-btn-background-ghost.ant-btn-link[disabled].active>a:only-child,.ant-btn-background-ghost.ant-btn-link[disabled]:active>a:only-child,.ant-btn-background-ghost.ant-btn-link[disabled]:focus>a:only-child,.ant-btn-background-ghost.ant-btn-link[disabled]:hover>a:only-child,.ant-btn-background-ghost.ant-btn-link[disabled]>a:only-child{color:currentColor}.ant-btn-background-ghost.ant-btn-link-disabled.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-link-disabled:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-link-disabled:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-link-disabled:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-link-disabled>a:only-child:after,.ant-btn-background-ghost.ant-btn-link.disabled.active>a:only-child:after,.ant-btn-background-ghost.ant-btn-link.disabled:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-link.disabled:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-link.disabled:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-link.disabled>a:only-child:after,.ant-btn-background-ghost.ant-btn-link[disabled].active>a:only-child:after,.ant-btn-background-ghost.ant-btn-link[disabled]:active>a:only-child:after,.ant-btn-background-ghost.ant-btn-link[disabled]:focus>a:only-child:after,.ant-btn-background-ghost.ant-btn-link[disabled]:hover>a:only-child:after,.ant-btn-background-ghost.ant-btn-link[disabled]>a:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;background:transparent;content:""}.ant-btn-two-chinese-chars:first-letter{letter-spacing:.34em}.ant-btn-two-chinese-chars>:not(.anticon){margin-right:-.34em;letter-spacing:.34em}.ant-btn-block{width:100%}.ant-btn:empty{display:inline-block;width:0;visibility:hidden;content:"\a0"}a.ant-btn{padding-top:.1px;line-height:30px}a.ant-btn-lg{line-height:38px}a.ant-btn-sm{line-height:22px}.ant-btn-rtl{direction:rtl}.ant-btn-group-rtl.ant-btn-group .ant-btn-primary+.ant-btn-primary,.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child){border-right-color:#40a9ff;border-left-color:#d9d9d9}.ant-btn-group-rtl.ant-btn-group .ant-btn-primary+.ant-btn-primary[disabled],.ant-btn-group-rtl.ant-btn-group .ant-btn-primary:last-child:not(:first-child)[disabled]{border-right-color:#d9d9d9;border-left-color:#40a9ff}.ant-btn-rtl.ant-btn>.ant-btn-loading-icon .anticon{padding-right:0;padding-left:8px}.ant-btn-rtl.ant-btn>.anticon+span,.ant-btn-rtl.ant-btn>span+.anticon{margin-right:8px;margin-left:0}.ant-empty{margin:0 8px;font-size:14px;line-height:22px;text-align:center}.ant-empty-image{height:100px;margin-bottom:8px}.ant-empty-image img{height:100%}.ant-empty-image svg{height:100%;margin:auto}.ant-empty-description{margin:0}.ant-empty-footer{margin-top:16px}.ant-empty-normal{margin:32px 0;color:rgba(0,0,0,.25)}.ant-empty-normal .ant-empty-image{height:40px}.ant-empty-small{margin:8px 0;color:rgba(0,0,0,.25)}.ant-empty-small .ant-empty-image{height:35px}.ant-empty-img-default-ellipse{fill-opacity:.8;fill:#f5f5f5}.ant-empty-img-default-path-1{fill:#aeb8c2}.ant-empty-img-default-path-2{fill:url(#linearGradient-1)}.ant-empty-img-default-path-3{fill:#f5f5f7}.ant-empty-img-default-path-4,.ant-empty-img-default-path-5{fill:#dce0e6}.ant-empty-img-default-g{fill:#fff}.ant-empty-img-simple-ellipse{fill:#f5f5f5}.ant-empty-img-simple-g{stroke:#d9d9d9}.ant-empty-img-simple-path{fill:#fafafa}.ant-empty-rtl{direction:rtl}@-webkit-keyframes antCheckboxEffect{0%{-webkit-transform:scale(1);transform:scale(1);opacity:.5}to{-webkit-transform:scale(1.6);transform:scale(1.6);opacity:0}}@keyframes antCheckboxEffect{0%{-webkit-transform:scale(1);transform:scale(1);opacity:.5}to{-webkit-transform:scale(1.6);transform:scale(1.6);opacity:0}}.ant-checkbox{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum";position:relative;top:-.09em;display:inline-block;line-height:1;white-space:nowrap;vertical-align:middle;outline:none;cursor:pointer}.ant-checkbox-input:focus+.ant-checkbox-inner,.ant-checkbox-wrapper:hover .ant-checkbox-inner,.ant-checkbox:hover .ant-checkbox-inner{border-color:#1890ff}.ant-checkbox-checked:after{position:absolute;top:0;left:0;width:100%;height:100%;border:1px solid #1890ff;border-radius:2px;visibility:hidden;-webkit-animation:antCheckboxEffect .36s ease-in-out;animation:antCheckboxEffect .36s ease-in-out;-webkit-animation-fill-mode:backwards;animation-fill-mode:backwards;content:""}.ant-checkbox-wrapper:hover .ant-checkbox:after,.ant-checkbox:hover:after{visibility:visible}.ant-checkbox-inner{position:relative;top:0;left:0;display:block;width:16px;height:16px;direction:ltr;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;border-collapse:separate;-webkit-transition:all .3s;transition:all .3s}.ant-checkbox-inner:after{position:absolute;top:50%;left:22%;display:table;width:5.71428571px;height:9.14285714px;border:2px solid #fff;border-top:0;border-left:0;-webkit-transform:rotate(45deg) scale(0) translate(-50%,-50%);transform:rotate(45deg) scale(0) translate(-50%,-50%);opacity:0;-webkit-transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;transition:all .1s cubic-bezier(.71,-.46,.88,.6),opacity .1s;content:" "}.ant-checkbox-input{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;cursor:pointer;opacity:0}.ant-checkbox-checked .ant-checkbox-inner:after{position:absolute;display:table;border:2px solid #fff;border-top:0;border-left:0;-webkit-transform:rotate(45deg) scale(1) translate(-50%,-50%);transform:rotate(45deg) scale(1) translate(-50%,-50%);opacity:1;-webkit-transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s;transition:all .2s cubic-bezier(.12,.4,.29,1.46) .1s;content:" "}.ant-checkbox-checked .ant-checkbox-inner{background-color:#1890ff;border-color:#1890ff}.ant-checkbox-disabled{cursor:not-allowed}.ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner:after{border-color:rgba(0,0,0,.25);-webkit-animation-name:none;animation-name:none}.ant-checkbox-disabled .ant-checkbox-input{cursor:not-allowed}.ant-checkbox-disabled .ant-checkbox-inner{background-color:#f5f5f5;border-color:#d9d9d9!important}.ant-checkbox-disabled .ant-checkbox-inner:after{border-color:#f5f5f5;border-collapse:separate;-webkit-animation-name:none;animation-name:none}.ant-checkbox-disabled+span{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-checkbox-disabled:hover:after,.ant-checkbox-wrapper:hover .ant-checkbox-disabled:after{visibility:hidden}.ant-checkbox-wrapper{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum";display:inline-block;line-height:unset;cursor:pointer}.ant-checkbox-wrapper.ant-checkbox-wrapper-disabled{cursor:not-allowed}.ant-checkbox-wrapper+.ant-checkbox-wrapper{margin-left:8px}.ant-checkbox+span{padding-right:8px;padding-left:8px}.ant-checkbox-group{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum";display:inline-block}.ant-checkbox-group-item{display:inline-block;margin-right:8px}.ant-checkbox-group-item:last-child{margin-right:0}.ant-checkbox-group-item+.ant-checkbox-group-item{margin-left:0}.ant-checkbox-indeterminate .ant-checkbox-inner{background-color:#fff;border-color:#d9d9d9}.ant-checkbox-indeterminate .ant-checkbox-inner:after{top:50%;left:50%;width:8px;height:8px;background-color:#1890ff;border:0;-webkit-transform:translate(-50%,-50%) scale(1);transform:translate(-50%,-50%) scale(1);opacity:1;content:" "}.ant-checkbox-indeterminate.ant-checkbox-disabled .ant-checkbox-inner:after{background-color:rgba(0,0,0,.25);border-color:rgba(0,0,0,.25)}.ant-checkbox-rtl{direction:rtl}.ant-checkbox-group-rtl .ant-checkbox-group-item{margin-right:0;margin-left:8px}.ant-checkbox-group-rtl .ant-checkbox-group-item:last-child{margin-left:0!important}.ant-checkbox-group-rtl .ant-checkbox-group-item+.ant-checkbox-group-item{margin-left:8px}.ant-dropdown{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum";position:absolute;top:-9999px;left:-9999px;z-index:1050;display:block}.ant-dropdown:before{position:absolute;top:-7px;right:0;bottom:-7px;left:-7px;z-index:-9999;opacity:.0001;content:" "}.ant-dropdown-wrap{position:relative}.ant-dropdown-wrap .ant-btn>.anticon-down{display:inline-block;font-size:10px}.ant-dropdown-wrap .anticon-down:before{-webkit-transition:-webkit-transform .2s;transition:-webkit-transform .2s;transition:transform .2s;transition:transform .2s,-webkit-transform .2s}.ant-dropdown-wrap-open .anticon-down:before{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.ant-dropdown-hidden,.ant-dropdown-menu-hidden{display:none}.ant-dropdown-menu{position:relative;margin:0;padding:4px 0;text-align:left;list-style-type:none;background-color:#fff;background-clip:padding-box;border-radius:2px;outline:none;-webkit-box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);-webkit-transform:translateZ(0)}.ant-dropdown-menu-item-group-title{padding:5px 12px;color:rgba(0,0,0,.45);-webkit-transition:all .3s;transition:all .3s}.ant-dropdown-menu-submenu-popup{position:absolute;z-index:1050;background:transparent;-webkit-box-shadow:none;box-shadow:none}.ant-dropdown-menu-submenu-popup>.ant-dropdown-menu{-webkit-transform-origin:0 0;transform-origin:0 0}.ant-dropdown-menu-submenu-popup li,.ant-dropdown-menu-submenu-popup ul{list-style:none}.ant-dropdown-menu-submenu-popup ul{margin-right:.3em;margin-left:.3em}.ant-dropdown-menu-item,.ant-dropdown-menu-submenu-title{clear:both;margin:0;padding:5px 12px;color:rgba(0,0,0,.65);font-weight:400;font-size:14px;line-height:22px;white-space:nowrap;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ant-dropdown-menu-item>.anticon:first-child,.ant-dropdown-menu-item>span>.anticon:first-child,.ant-dropdown-menu-submenu-title>.anticon:first-child,.ant-dropdown-menu-submenu-title>span>.anticon:first-child{min-width:12px;margin-right:8px;font-size:12px}.ant-dropdown-menu-item>a,.ant-dropdown-menu-submenu-title>a{display:block;margin:-5px -12px;padding:5px 12px;color:rgba(0,0,0,.65);-webkit-transition:all .3s;transition:all .3s}.ant-dropdown-menu-item>a:hover,.ant-dropdown-menu-submenu-title>a:hover{color:rgba(0,0,0,.65)}.ant-dropdown-menu-item-selected,.ant-dropdown-menu-item-selected>a,.ant-dropdown-menu-submenu-title-selected,.ant-dropdown-menu-submenu-title-selected>a{color:#1890ff;background-color:#e6f7ff}.ant-dropdown-menu-item:hover,.ant-dropdown-menu-submenu-title:hover{background-color:#f5f5f5}.ant-dropdown-menu-item-disabled,.ant-dropdown-menu-submenu-title-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-dropdown-menu-item-disabled:hover,.ant-dropdown-menu-submenu-title-disabled:hover{color:rgba(0,0,0,.25);background-color:#fff;cursor:not-allowed}.ant-dropdown-menu-item-divider,.ant-dropdown-menu-submenu-title-divider{height:1px;margin:4px 0;overflow:hidden;line-height:0;background-color:#f0f0f0}.ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow,.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow{position:absolute;right:8px}.ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow-icon,.ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{margin-right:0!important;color:rgba(0,0,0,.45);font-style:normal;display:inline-block;font-size:10px}.ant-dropdown-menu-item-group-list{margin:0 8px;padding:0;list-style:none}.ant-dropdown-menu-submenu-title{padding-right:24px}.ant-dropdown-menu-submenu-vertical{position:relative}.ant-dropdown-menu-submenu-vertical>.ant-dropdown-menu{position:absolute;top:0;left:100%;min-width:100%;margin-left:4px;-webkit-transform-origin:0 0;transform-origin:0 0}.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-submenu.ant-dropdown-menu-submenu-disabled .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{color:rgba(0,0,0,.25);background-color:#fff;cursor:not-allowed}.ant-dropdown-menu-submenu-selected .ant-dropdown-menu-submenu-title{color:#1890ff}.ant-dropdown.slide-down-appear.slide-down-appear-active.ant-dropdown-placement-bottomCenter,.ant-dropdown.slide-down-appear.slide-down-appear-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.slide-down-appear.slide-down-appear-active.ant-dropdown-placement-bottomRight,.ant-dropdown.slide-down-enter.slide-down-enter-active.ant-dropdown-placement-bottomCenter,.ant-dropdown.slide-down-enter.slide-down-enter-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.slide-down-enter.slide-down-enter-active.ant-dropdown-placement-bottomRight{-webkit-animation-name:antSlideUpIn;animation-name:antSlideUpIn}.ant-dropdown.slide-up-appear.slide-up-appear-active.ant-dropdown-placement-topCenter,.ant-dropdown.slide-up-appear.slide-up-appear-active.ant-dropdown-placement-topLeft,.ant-dropdown.slide-up-appear.slide-up-appear-active.ant-dropdown-placement-topRight,.ant-dropdown.slide-up-enter.slide-up-enter-active.ant-dropdown-placement-topCenter,.ant-dropdown.slide-up-enter.slide-up-enter-active.ant-dropdown-placement-topLeft,.ant-dropdown.slide-up-enter.slide-up-enter-active.ant-dropdown-placement-topRight{-webkit-animation-name:antSlideDownIn;animation-name:antSlideDownIn}.ant-dropdown.slide-down-leave.slide-down-leave-active.ant-dropdown-placement-bottomCenter,.ant-dropdown.slide-down-leave.slide-down-leave-active.ant-dropdown-placement-bottomLeft,.ant-dropdown.slide-down-leave.slide-down-leave-active.ant-dropdown-placement-bottomRight{-webkit-animation-name:antSlideUpOut;animation-name:antSlideUpOut}.ant-dropdown.slide-up-leave.slide-up-leave-active.ant-dropdown-placement-topCenter,.ant-dropdown.slide-up-leave.slide-up-leave-active.ant-dropdown-placement-topLeft,.ant-dropdown.slide-up-leave.slide-up-leave-active.ant-dropdown-placement-topRight{-webkit-animation-name:antSlideDownOut;animation-name:antSlideDownOut}.ant-dropdown-link>.anticon.anticon-down,.ant-dropdown-trigger>.anticon.anticon-down{display:inline-block;font-size:10px}.ant-dropdown-button{white-space:nowrap}.ant-dropdown-button.ant-btn-group>.ant-btn:last-child:not(:first-child){padding-right:8px;padding-left:8px}.ant-dropdown-button .anticon.anticon-down{display:inline-block;font-size:10px}.ant-dropdown-menu-dark,.ant-dropdown-menu-dark .ant-dropdown-menu{background:#001529}.ant-dropdown-menu-dark .ant-dropdown-menu-item,.ant-dropdown-menu-dark .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow:after,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a .ant-dropdown-menu-submenu-arrow:after,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow:after{color:hsla(0,0%,100%,.65)}.ant-dropdown-menu-dark .ant-dropdown-menu-item:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item>a:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-submenu-title:hover{color:#fff;background:transparent}.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected:hover,.ant-dropdown-menu-dark .ant-dropdown-menu-item-selected>a{color:#fff;background:#1890ff}.ant-dropdown-rtl{direction:rtl}.ant-dropdown-rtl.ant-dropdown:before{right:-7px;left:0}.ant-dropdown-rtl .ant-dropdown-menu-item-group-title{direction:rtl;text-align:right}.ant-dropdown-rtl .ant-dropdown-menu-item,.ant-dropdown-rtl .ant-dropdown-menu-submenu-popup li,.ant-dropdown-rtl .ant-dropdown-menu-submenu-popup ul,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title{text-align:right}.ant-dropdown-rtl .ant-dropdown-menu-item>.anticon:first-child,.ant-dropdown-rtl .ant-dropdown-menu-item>span>.anticon:first-child,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title>.anticon:first-child,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title>span>.anticon:first-child{margin-right:0;margin-left:8px}.ant-dropdown-rtl .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow{right:auto;left:8px}.ant-dropdown-rtl .ant-dropdown-menu-item .ant-dropdown-menu-submenu-arrow-icon,.ant-dropdown-rtl .ant-dropdown-menu-submenu-title .ant-dropdown-menu-submenu-arrow-icon{margin-left:0!important;-webkit-transform:scaleX(-1);transform:scaleX(-1)}.ant-dropdown-rtl .ant-dropdown-menu-submenu-title{padding-right:12px;padding-left:24px}.ant-dropdown-rtl .ant-dropdown-menu-submenu-vertical>.ant-dropdown-menu{right:100%;left:0;margin-right:4px;margin-left:0}.ant-spin{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum";position:absolute;display:none;color:#1890ff;text-align:center;vertical-align:middle;opacity:0;-webkit-transition:-webkit-transform .3s cubic-bezier(.78,.14,.15,.86);transition:-webkit-transform .3s cubic-bezier(.78,.14,.15,.86);transition:transform .3s cubic-bezier(.78,.14,.15,.86);transition:transform .3s cubic-bezier(.78,.14,.15,.86),-webkit-transform .3s cubic-bezier(.78,.14,.15,.86)}.ant-spin-spinning{position:static;display:inline-block;opacity:1}.ant-spin-nested-loading{position:relative}.ant-spin-nested-loading>div>.ant-spin{position:absolute;top:0;left:0;z-index:4;display:block;width:100%;height:100%;max-height:400px}.ant-spin-nested-loading>div>.ant-spin .ant-spin-dot{position:absolute;top:50%;left:50%;margin:-10px}.ant-spin-nested-loading>div>.ant-spin .ant-spin-text{position:absolute;top:50%;width:100%;padding-top:5px;text-shadow:0 1px 2px #fff}.ant-spin-nested-loading>div>.ant-spin.ant-spin-show-text .ant-spin-dot{margin-top:-20px}.ant-spin-nested-loading>div>.ant-spin-sm .ant-spin-dot{margin:-7px}.ant-spin-nested-loading>div>.ant-spin-sm .ant-spin-text{padding-top:2px}.ant-spin-nested-loading>div>.ant-spin-sm.ant-spin-show-text .ant-spin-dot{margin-top:-17px}.ant-spin-nested-loading>div>.ant-spin-lg .ant-spin-dot{margin:-16px}.ant-spin-nested-loading>div>.ant-spin-lg .ant-spin-text{padding-top:11px}.ant-spin-nested-loading>div>.ant-spin-lg.ant-spin-show-text .ant-spin-dot{margin-top:-26px}.ant-spin-container{position:relative;-webkit-transition:opacity .3s;transition:opacity .3s}.ant-spin-container:after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;display:none\9;width:100%;height:100%;background:#fff;opacity:0;-webkit-transition:all .3s;transition:all .3s;content:"";pointer-events:none}.ant-spin-blur{clear:both;overflow:hidden;opacity:.5;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}.ant-spin-blur:after{opacity:.4;pointer-events:auto}.ant-spin-tip{color:rgba(0,0,0,.45)}.ant-spin-dot{position:relative;display:inline-block;font-size:20px;width:1em;height:1em}.ant-spin-dot-item{position:absolute;display:block;width:9px;height:9px;background-color:#1890ff;border-radius:100%;-webkit-transform:scale(.75);transform:scale(.75);-webkit-transform-origin:50% 50%;transform-origin:50% 50%;opacity:.3;-webkit-animation:antSpinMove 1s linear infinite alternate;animation:antSpinMove 1s linear infinite alternate}.ant-spin-dot-item:first-child{top:0;left:0}.ant-spin-dot-item:nth-child(2){top:0;right:0;-webkit-animation-delay:.4s;animation-delay:.4s}.ant-spin-dot-item:nth-child(3){right:0;bottom:0;-webkit-animation-delay:.8s;animation-delay:.8s}.ant-spin-dot-item:nth-child(4){bottom:0;left:0;-webkit-animation-delay:1.2s;animation-delay:1.2s}.ant-spin-dot-spin{-webkit-transform:rotate(45deg);transform:rotate(45deg);-webkit-animation:antRotate 1.2s linear infinite;animation:antRotate 1.2s linear infinite}.ant-spin-sm .ant-spin-dot{font-size:14px}.ant-spin-sm .ant-spin-dot i{width:6px;height:6px}.ant-spin-lg .ant-spin-dot{font-size:32px}.ant-spin-lg .ant-spin-dot i{width:14px;height:14px}.ant-spin.ant-spin-show-text .ant-spin-text{display:block}@media (-ms-high-contrast:active),(-ms-high-contrast:none){.ant-spin-blur{background:#fff;opacity:.5}}@-webkit-keyframes antSpinMove{to{opacity:1}}@keyframes antSpinMove{to{opacity:1}}@-webkit-keyframes antRotate{to{-webkit-transform:rotate(405deg);transform:rotate(405deg)}}@keyframes antRotate{to{-webkit-transform:rotate(405deg);transform:rotate(405deg)}}.ant-spin-rtl{direction:rtl}.ant-spin-rtl .ant-spin-dot-spin{-webkit-transform:rotate(-45deg);transform:rotate(-45deg);-webkit-animation-name:antRotateRtl;animation-name:antRotateRtl}@-webkit-keyframes antRotateRtl{to{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}@keyframes antRotateRtl{to{-webkit-transform:rotate(-405deg);transform:rotate(-405deg)}}.ant-pagination{-webkit-box-sizing:border-box;box-sizing:border-box;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5715;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum"}.ant-pagination,.ant-pagination ol,.ant-pagination ul{margin:0;padding:0;list-style:none}.ant-pagination:after{display:block;clear:both;height:0;overflow:hidden;visibility:hidden;content:" "}.ant-pagination-item,.ant-pagination-total-text{display:inline-block;height:32px;margin-right:8px;line-height:30px;vertical-align:middle}.ant-pagination-item{min-width:32px;font-family:Arial;text-align:center;list-style:none;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;outline:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-pagination-item a{display:block;padding:0 6px;color:rgba(0,0,0,.65);-webkit-transition:none;transition:none}.ant-pagination-item a:hover{text-decoration:none}.ant-pagination-item:focus,.ant-pagination-item:hover{border-color:#1890ff;-webkit-transition:all .3s;transition:all .3s}.ant-pagination-item:focus a,.ant-pagination-item:hover a{color:#1890ff}.ant-pagination-item-active{font-weight:500;background:#fff;border-color:#1890ff}.ant-pagination-item-active a{color:#1890ff}.ant-pagination-item-active:focus,.ant-pagination-item-active:hover{border-color:#40a9ff}.ant-pagination-item-active:focus a,.ant-pagination-item-active:hover a{color:#40a9ff}.ant-pagination-jump-next,.ant-pagination-jump-prev{outline:0}.ant-pagination-jump-next .ant-pagination-item-container,.ant-pagination-jump-prev .ant-pagination-item-container{position:relative}.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon{color:#1890ff;font-size:12px;letter-spacing:-1px;opacity:0;-webkit-transition:all .2s;transition:all .2s}.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-link-icon-svg,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-link-icon-svg{top:0;right:0;bottom:0;left:0;margin:auto}.ant-pagination-jump-next .ant-pagination-item-container .ant-pagination-item-ellipsis,.ant-pagination-jump-prev .ant-pagination-item-container .ant-pagination-item-ellipsis{position:absolute;top:0;right:0;bottom:0;left:0;display:block;margin:auto;color:rgba(0,0,0,.25);letter-spacing:2px;text-align:center;text-indent:.13em;opacity:1;-webkit-transition:all .2s;transition:all .2s}.ant-pagination-jump-next:focus .ant-pagination-item-link-icon,.ant-pagination-jump-next:hover .ant-pagination-item-link-icon,.ant-pagination-jump-prev:focus .ant-pagination-item-link-icon,.ant-pagination-jump-prev:hover .ant-pagination-item-link-icon{opacity:1}.ant-pagination-jump-next:focus .ant-pagination-item-ellipsis,.ant-pagination-jump-next:hover .ant-pagination-item-ellipsis,.ant-pagination-jump-prev:focus .ant-pagination-item-ellipsis,.ant-pagination-jump-prev:hover .ant-pagination-item-ellipsis{opacity:0}.ant-pagination-jump-next,.ant-pagination-jump-prev,.ant-pagination-prev{margin-right:8px}.ant-pagination-jump-next,.ant-pagination-jump-prev,.ant-pagination-next,.ant-pagination-prev{display:inline-block;min-width:32px;height:32px;color:rgba(0,0,0,.65);font-family:Arial;line-height:32px;text-align:center;vertical-align:middle;list-style:none;border-radius:2px;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ant-pagination-next,.ant-pagination-prev{outline:0}.ant-pagination-next a,.ant-pagination-prev a{color:rgba(0,0,0,.65);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-pagination-next:hover a,.ant-pagination-prev:hover a{border-color:#40a9ff}.ant-pagination-next .ant-pagination-item-link,.ant-pagination-prev .ant-pagination-item-link{display:block;height:100%;font-size:12px;text-align:center;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;outline:none;-webkit-transition:all .3s;transition:all .3s}.ant-pagination-next:focus .ant-pagination-item-link,.ant-pagination-next:hover .ant-pagination-item-link,.ant-pagination-prev:focus .ant-pagination-item-link,.ant-pagination-prev:hover .ant-pagination-item-link{color:#1890ff;border-color:#1890ff}.ant-pagination-disabled,.ant-pagination-disabled:focus,.ant-pagination-disabled:hover{cursor:not-allowed}.ant-pagination-disabled .ant-pagination-item-link,.ant-pagination-disabled:focus .ant-pagination-item-link,.ant-pagination-disabled:focus a,.ant-pagination-disabled:hover .ant-pagination-item-link,.ant-pagination-disabled:hover a,.ant-pagination-disabled a{color:rgba(0,0,0,.25);border-color:#d9d9d9;cursor:not-allowed}.ant-pagination-slash{margin:0 10px 0 5px}.ant-pagination-options{display:inline-block;margin-left:16px;vertical-align:middle}@media (-ms-high-contrast:none){.ant-pagination-options,.ant-pagination-options ::-ms-backdrop{vertical-align:top}}.ant-pagination-options-size-changer.ant-select{display:inline-block;width:auto;margin-right:8px}.ant-pagination-options-quick-jumper{display:inline-block;height:32px;line-height:32px;vertical-align:top}.ant-pagination-options-quick-jumper input{position:relative;display:inline-block;width:100%;min-width:0;padding:4px 11px;color:rgba(0,0,0,.65);font-size:14px;line-height:1.5715;background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;-webkit-transition:all .3s;transition:all .3s;width:50px;margin:0 8px}.ant-pagination-options-quick-jumper input::-moz-placeholder{opacity:1}.ant-pagination-options-quick-jumper input::-webkit-input-placeholder{color:#bfbfbf}.ant-pagination-options-quick-jumper input:-ms-input-placeholder{color:#bfbfbf}.ant-pagination-options-quick-jumper input::-ms-input-placeholder{color:#bfbfbf}.ant-pagination-options-quick-jumper input::placeholder{color:#bfbfbf}.ant-pagination-options-quick-jumper input:placeholder-shown{text-overflow:ellipsis}.ant-pagination-options-quick-jumper input:hover{border-color:#40a9ff;border-right-width:1px!important}.ant-pagination-options-quick-jumper input-focused,.ant-pagination-options-quick-jumper input:focus{border-color:#40a9ff;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-pagination-options-quick-jumper input-disabled{color:rgba(0,0,0,.25);background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-pagination-options-quick-jumper input-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-pagination-options-quick-jumper input[disabled]{color:rgba(0,0,0,.25);background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-pagination-options-quick-jumper input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}textarea.ant-pagination-options-quick-jumper input{max-width:100%;height:auto;min-height:32px;line-height:1.5715;vertical-align:bottom;-webkit-transition:all .3s,height 0s;transition:all .3s,height 0s}.ant-pagination-options-quick-jumper input-lg{padding:6.5px 11px;font-size:16px}.ant-pagination-options-quick-jumper input-sm{padding:0 7px}.ant-pagination-simple .ant-pagination-next,.ant-pagination-simple .ant-pagination-prev{height:24px;line-height:24px;vertical-align:top}.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link,.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link{height:24px;border:0}.ant-pagination-simple .ant-pagination-next .ant-pagination-item-link:after,.ant-pagination-simple .ant-pagination-prev .ant-pagination-item-link:after{height:24px;line-height:24px}.ant-pagination-simple .ant-pagination-simple-pager{display:inline-block;height:24px;margin-right:8px}.ant-pagination-simple .ant-pagination-simple-pager input{-webkit-box-sizing:border-box;box-sizing:border-box;height:100%;margin-right:8px;padding:0 6px;text-align:center;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;outline:none;-webkit-transition:border-color .3s;transition:border-color .3s}.ant-pagination-simple .ant-pagination-simple-pager input:hover{border-color:#1890ff}.ant-pagination.mini .ant-pagination-simple-pager,.ant-pagination.mini .ant-pagination-total-text{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-item{min-width:24px;height:24px;margin:0;line-height:22px}.ant-pagination.mini .ant-pagination-item:not(.ant-pagination-item-active){background:transparent;border-color:transparent}.ant-pagination.mini .ant-pagination-next,.ant-pagination.mini .ant-pagination-prev{min-width:24px;height:24px;margin:0;line-height:24px}.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link,.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link{background:transparent;border-color:transparent}.ant-pagination.mini .ant-pagination-next .ant-pagination-item-link:after,.ant-pagination.mini .ant-pagination-prev .ant-pagination-item-link:after{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-jump-next,.ant-pagination.mini .ant-pagination-jump-prev{height:24px;margin-right:0;line-height:24px}.ant-pagination.mini .ant-pagination-options{margin-left:2px}.ant-pagination.mini .ant-pagination-options-size-changer{top:0}.ant-pagination.mini .ant-pagination-options-quick-jumper{height:24px;line-height:24px}.ant-pagination.mini .ant-pagination-options-quick-jumper input{padding:0 7px;width:44px}.ant-pagination.ant-pagination-disabled{cursor:not-allowed}.ant-pagination.ant-pagination-disabled .ant-pagination-item{background:#f5f5f5;border-color:#d9d9d9;cursor:not-allowed}.ant-pagination.ant-pagination-disabled .ant-pagination-item a{color:rgba(0,0,0,.25);background:transparent;border:none;cursor:not-allowed}.ant-pagination.ant-pagination-disabled .ant-pagination-item-active{background:#dbdbdb;border-color:transparent}.ant-pagination.ant-pagination-disabled .ant-pagination-item-active a{color:#fff}.ant-pagination.ant-pagination-disabled .ant-pagination-item-link,.ant-pagination.ant-pagination-disabled .ant-pagination-item-link:focus,.ant-pagination.ant-pagination-disabled .ant-pagination-item-link:hover{color:rgba(0,0,0,.45);background:#f5f5f5;border-color:#d9d9d9;cursor:not-allowed}.ant-pagination.ant-pagination-disabled .ant-pagination-jump-next:focus .ant-pagination-item-link-icon,.ant-pagination.ant-pagination-disabled .ant-pagination-jump-next:hover .ant-pagination-item-link-icon,.ant-pagination.ant-pagination-disabled .ant-pagination-jump-prev:focus .ant-pagination-item-link-icon,.ant-pagination.ant-pagination-disabled .ant-pagination-jump-prev:hover .ant-pagination-item-link-icon{opacity:0}.ant-pagination.ant-pagination-disabled .ant-pagination-jump-next:focus .ant-pagination-item-ellipsis,.ant-pagination.ant-pagination-disabled .ant-pagination-jump-next:hover .ant-pagination-item-ellipsis,.ant-pagination.ant-pagination-disabled .ant-pagination-jump-prev:focus .ant-pagination-item-ellipsis,.ant-pagination.ant-pagination-disabled .ant-pagination-jump-prev:hover .ant-pagination-item-ellipsis{opacity:1}@media only screen and (max-width:992px){.ant-pagination-item-after-jump-prev,.ant-pagination-item-before-jump-next{display:none}}@media only screen and (max-width:576px){.ant-pagination-options{display:none}}.ant-pagination-rtl{direction:rtl}.ant-pagination-rtl .ant-pagination-item,.ant-pagination-rtl .ant-pagination-jump-next,.ant-pagination-rtl .ant-pagination-jump-prev,.ant-pagination-rtl .ant-pagination-prev,.ant-pagination-rtl .ant-pagination-total-text{margin-right:0;margin-left:8px}.ant-pagination-rtl .ant-pagination-options{margin-right:16px;margin-left:0}.ant-pagination-rtl .ant-pagination-options-size-changer.ant-select,.ant-pagination-rtl.ant-pagination-simple .ant-pagination-simple-pager,.ant-pagination-rtl.ant-pagination-simple .ant-pagination-simple-pager input{margin-right:0;margin-left:8px}.ant-pagination-rtl.ant-pagination.mini .ant-pagination-options{margin-right:2px;margin-left:0}.ant-select-single .ant-select-selector{display:-ms-flexbox;display:flex}.ant-select-single .ant-select-selector .ant-select-selection-search{position:absolute;top:0;right:11px;bottom:0;left:11px}.ant-select-single .ant-select-selector .ant-select-selection-search-input{width:100%}.ant-select-single .ant-select-selector .ant-select-selection-item,.ant-select-single .ant-select-selector .ant-select-selection-placeholder{padding:0;line-height:30px;-webkit-transition:all .3s;transition:all .3s;pointer-events:none}@supports (-moz-appearance:meterbar){.ant-select-single .ant-select-selector .ant-select-selection-item,.ant-select-single .ant-select-selector .ant-select-selection-placeholder{line-height:30px}}.ant-select-single .ant-select-selector .ant-select-selection-item:after,.ant-select-single .ant-select-selector .ant-select-selection-placeholder:after,.ant-select-single .ant-select-selector:after{display:inline-block;width:0;visibility:hidden;content:"\a0"}.ant-select-single.ant-select-show-arrow .ant-select-selection-search{right:25px}.ant-select-single.ant-select-show-arrow .ant-select-selection-item,.ant-select-single.ant-select-show-arrow .ant-select-selection-placeholder{padding-right:18px}.ant-select-single.ant-select-open .ant-select-selection-item{opacity:.4}.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{position:relative;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);width:100%;height:32px;padding:0 11px}.ant-select-single:not(.ant-select-customize-input) .ant-select-selector input{cursor:pointer}.ant-select-show-search.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{cursor:text}.ant-select-show-search.ant-select-single:not(.ant-select-customize-input) .ant-select-selector input{cursor:auto}.ant-select-focused.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{border-color:#40a9ff;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-select-disabled.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{color:rgba(0,0,0,.25);background:#f5f5f5;cursor:not-allowed}.ant-select-disabled.ant-select-single:not(.ant-select-customize-input) .ant-select-selector input{cursor:not-allowed}.ant-select-single:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-search-input{background:transparent;border:none;outline:none;height:30px}.ant-select-single.ant-select-customize-input .ant-select-selector:after{display:none}.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-search{position:static;width:100%}.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder{position:absolute;right:0;left:0;padding:0 11px}.ant-select-single.ant-select-customize-input .ant-select-selector .ant-select-selection-placeholder:after{display:none}.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector{height:40px}.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-item,.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-placeholder{line-height:38px}.ant-select-single.ant-select-lg:not(.ant-select-customize-input):not(.ant-select-customize-input) .ant-select-selection-search-input{height:38px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector{height:24px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-item,.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector .ant-select-selection-placeholder{line-height:22px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input):not(.ant-select-customize-input) .ant-select-selection-search-input{height:22px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selection-search{right:7px;left:7px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input) .ant-select-selector{padding:0 7px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-search{right:28px}.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-item,.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-placeholder{padding-right:21px}.ant-select-single.ant-select-lg:not(.ant-select-customize-input) .ant-select-selector{padding:0 11px}.ant-select-multiple .ant-select-selector{position:relative;background-color:#fff;border:1px solid #d9d9d9;border-radius:2px;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1);display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;padding:1px 4px}.ant-select-multiple .ant-select-selector input{cursor:pointer}.ant-select-show-search.ant-select-multiple .ant-select-selector input{cursor:auto}.ant-select-focused.ant-select-multiple .ant-select-selector{border-color:#40a9ff;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-select-disabled.ant-select-multiple .ant-select-selector{color:rgba(0,0,0,.25);background:#f5f5f5;cursor:not-allowed}.ant-select-disabled.ant-select-multiple .ant-select-selector input{cursor:not-allowed}.ant-select-multiple .ant-select-selector .ant-select-selection-search-input{background:transparent;border:none;outline:none}.ant-select-show-search.ant-select-multiple .ant-select-selector{cursor:text}.ant-select-multiple .ant-select-selector:after{display:inline-block;width:0;margin:2px 0;line-height:24px;content:"\a0"}.ant-select-multiple.ant-select-allow-clear .ant-select-selector{padding-right:24px}.ant-select-multiple .ant-select-selection-item{position:relative;display:-ms-flexbox;display:flex;-ms-flex:none;flex:none;-webkit-box-sizing:border-box;box-sizing:border-box;max-width:100%;height:24px;margin-top:2px;margin-right:4px;margin-bottom:2px;padding:0 4px 0 8px;line-height:22px;background:#f5f5f5;border:1px solid #f0f0f0;border-radius:2px;cursor:default;-webkit-transition:font-size .3s,line-height .3s,height .3s;transition:font-size .3s,line-height .3s,height .3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-select-multiple .ant-select-selection-item-content{display:inline-block;margin-right:4px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-select-multiple .ant-select-selection-item-remove{color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:rgba(0,0,0,.45);font-weight:700;font-size:12px;line-height:inherit;cursor:pointer;display:inline-block;font-size:10px}.ant-select-multiple .ant-select-selection-item-remove>*{line-height:1}.ant-select-multiple .ant-select-selection-item-remove svg{display:inline-block}.ant-select-multiple .ant-select-selection-item-remove:before{display:none}.ant-select-multiple .ant-select-selection-item-remove .ant-select-multiple .ant-select-selection-item-remove-icon{display:block}.ant-select-multiple .ant-select-selection-item-remove:hover{color:rgba(0,0,0,.75)}.ant-select-multiple .ant-select-selection-search{position:relative;margin-left:.5px}.ant-select-multiple .ant-select-selection-search-input,.ant-select-multiple .ant-select-selection-search-mirror{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";line-height:1.5715;-webkit-transition:all .3s;transition:all .3s}.ant-select-multiple .ant-select-selection-search-input{width:100%;min-width:3px}.ant-select-multiple .ant-select-selection-search-mirror{position:absolute;top:0;left:0;z-index:999;white-space:nowrap;visibility:hidden}.ant-select-multiple .ant-select-selection-search:first-child .ant-select-selection-search-input{margin-left:6.5px}.ant-select-multiple .ant-select-selection-placeholder{position:absolute;top:50%;right:11px;left:11px;-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-transition:all .3s;transition:all .3s}.ant-select-multiple.ant-select-lg .ant-select-selector:after{line-height:32px}.ant-select-multiple.ant-select-lg .ant-select-selection-item{line-height:30px}.ant-select-multiple.ant-select-lg .ant-select-selection-search{height:33px;line-height:33px}.ant-select-multiple.ant-select-lg .ant-select-selection-search-input,.ant-select-multiple.ant-select-lg .ant-select-selection-search-mirror{height:32px;line-height:30px}.ant-select-multiple.ant-select-sm .ant-select-selector:after{line-height:16px}.ant-select-multiple.ant-select-sm .ant-select-selection-item{height:16px;line-height:14px}.ant-select-multiple.ant-select-sm .ant-select-selection-search{height:17px;line-height:17px}.ant-select-multiple.ant-select-sm .ant-select-selection-search-input,.ant-select-multiple.ant-select-sm .ant-select-selection-search-mirror{height:16px;line-height:14px}.ant-select-multiple.ant-select-sm .ant-select-selection-placeholder{left:7px}.ant-select-multiple.ant-select-sm .ant-select-selection-search:first-child .ant-select-selection-search-input{margin-left:3px}.ant-select-multiple.ant-select-lg .ant-select-selection-item{height:32px;line-height:32px}.ant-select-disabled .ant-select-selection-item-remove{display:none}.ant-select{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum";position:relative;display:inline-block;cursor:pointer}.ant-select:not(.ant-select-disabled):hover .ant-select-selector{border-color:#40a9ff;border-right-width:1px!important}.ant-select-selection-item{-ms-flex:1;flex:1 1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}@media (-ms-high-contrast:none){.ant-select-selection-item,.ant-select-selection-item ::-ms-backdrop{-ms-flex:auto;flex:auto}}.ant-select-selection-placeholder{-ms-flex:1;flex:1 1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;opacity:.4}@media (-ms-high-contrast:none){.ant-select-selection-placeholder,.ant-select-selection-placeholder ::-ms-backdrop{-ms-flex:auto;flex:auto}}.ant-select-arrow{display:inline-block;color:inherit;font-style:normal;line-height:0;text-transform:none;vertical-align:-.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:53%;right:11px;width:12px;height:12px;margin-top:-6px;color:rgba(0,0,0,.25);font-size:12px;line-height:1;text-align:center;pointer-events:none}.ant-select-arrow>*{line-height:1}.ant-select-arrow svg{display:inline-block}.ant-select-arrow:before{display:none}.ant-select-arrow .ant-select-arrow-icon{display:block}.ant-select-arrow .anticon{vertical-align:top;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.ant-select-arrow .anticon>svg{vertical-align:top}.ant-select-open .ant-select-arrow .anticon.anticon-down{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.ant-select-arrow .anticon:not(.anticon-down){pointer-events:auto}.ant-select-clear{position:absolute;top:50%;right:11px;z-index:1;display:inline-block;width:12px;height:12px;margin-top:-6px;color:rgba(0,0,0,.25);font-size:12px;font-style:normal;line-height:1;text-align:center;text-transform:none;background:#fff;cursor:pointer;opacity:0;-webkit-transition:color .3s ease,opacity .15s ease;transition:color .3s ease,opacity .15s ease;text-rendering:auto}.ant-select-clear:before{display:block}.ant-select-clear:hover{color:rgba(0,0,0,.45)}.ant-select:hover .ant-select-clear{opacity:1}.ant-select-dropdown{margin:0;color:rgba(0,0,0,.65);font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum",;position:absolute;top:-9999px;left:-9999px;z-index:1050;-webkit-box-sizing:border-box;box-sizing:border-box;padding:4px 0;overflow:hidden;font-size:14px;font-variant:normal;background-color:#fff;border-radius:2px;outline:none;-webkit-box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05)}.ant-select-dropdown.slide-up-appear.slide-up-appear-active.ant-select-dropdown-placement-bottomLeft,.ant-select-dropdown.slide-up-enter.slide-up-enter-active.ant-select-dropdown-placement-bottomLeft{-webkit-animation-name:antSlideUpIn;animation-name:antSlideUpIn}.ant-select-dropdown.slide-up-appear.slide-up-appear-active.ant-select-dropdown-placement-topLeft,.ant-select-dropdown.slide-up-enter.slide-up-enter-active.ant-select-dropdown-placement-topLeft{-webkit-animation-name:antSlideDownIn;animation-name:antSlideDownIn}.ant-select-dropdown.slide-up-leave.slide-up-leave-active.ant-select-dropdown-placement-bottomLeft{-webkit-animation-name:antSlideUpOut;animation-name:antSlideUpOut}.ant-select-dropdown.slide-up-leave.slide-up-leave-active.ant-select-dropdown-placement-topLeft{-webkit-animation-name:antSlideDownOut;animation-name:antSlideDownOut}.ant-select-dropdown-hidden{display:none}.ant-select-item,.ant-select-item-empty{position:relative;display:block;min-height:32px;padding:5px 12px;color:rgba(0,0,0,.65);font-weight:400;font-size:14px;line-height:22px}.ant-select-item{cursor:pointer;-webkit-transition:background .3s ease;transition:background .3s ease}.ant-select-item-group{color:rgba(0,0,0,.45);font-size:12px;cursor:default}.ant-select-item-option{display:-ms-flexbox;display:flex}.ant-select-item-option-content{-ms-flex:auto;flex:auto;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ant-select-item-option-state{-ms-flex:none;flex:none}.ant-select-item-option-active:not(.ant-select-item-option-disabled){background-color:#f5f5f5}.ant-select-item-option-selected:not(.ant-select-item-option-disabled){color:rgba(0,0,0,.65);font-weight:600;background-color:#e6f7ff}.ant-select-item-option-selected:not(.ant-select-item-option-disabled) .ant-select-item-option-state{color:#1890ff}.ant-select-item-option-disabled{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-select-item-option-grouped{padding-left:24px}.ant-select-lg{font-size:16px}.ant-select-borderless .ant-select-selector{background-color:transparent!important;border-color:transparent!important;-webkit-box-shadow:none!important;box-shadow:none!important}.ant-select-rtl{direction:rtl}.ant-select-rtl .ant-select-arrow,.ant-select-rtl .ant-select-clear{right:auto;left:11px}.ant-select-dropdown-rtl{direction:rtl}.ant-select-dropdown-rtl .ant-select-item-option-grouped{padding-right:24px;padding-left:12px}.ant-select-rtl.ant-select-multiple.ant-select-allow-clear .ant-select-selector{padding-right:4px;padding-left:24px}.ant-select-rtl.ant-select-multiple .ant-select-selection-item,.ant-select-rtl.ant-select-multiple .ant-select-selection-item-content{margin-right:0;margin-left:4px;text-align:right}.ant-select-rtl.ant-select-multiple .ant-select-selection-search{margin-right:.5px;margin-left:4px}.ant-select-rtl.ant-select-multiple .ant-select-selection-search-mirror{right:0;left:auto}.ant-select-rtl.ant-select-multiple .ant-select-selection-placeholder{right:11px;left:auto}.ant-select-rtl.ant-select-multiple.ant-select-sm .ant-select-selection-placeholder{right:7px}.ant-select-rtl.ant-select-single .ant-select-selector .ant-select-selection-item,.ant-select-rtl.ant-select-single .ant-select-selector .ant-select-selection-placeholder{right:0;left:9px;text-align:right}.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-search{right:11px;left:25px}.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-item,.ant-select-rtl.ant-select-single.ant-select-show-arrow .ant-select-selection-placeholder{padding-right:0;padding-left:18px}.ant-select-rtl.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{padding:0 11px}.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-search{right:0}.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-item,.ant-select-rtl.ant-select-single.ant-select-sm:not(.ant-select-customize-input).ant-select-show-arrow .ant-select-selection-placeholder{padding-right:0;padding-left:21px}.ant-space{display:-ms-inline-flexbox;display:inline-flex}.ant-space-horizontal{-ms-flex-align:center;align-items:center}.ant-space-vertical{-ms-flex-direction:column;flex-direction:column}.ant-space-rtl{direction:rtl}.ant-popover{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum";position:absolute;top:0;left:0;z-index:1030;font-weight:400;white-space:normal;text-align:left;cursor:auto;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.ant-popover:after{position:absolute;background:hsla(0,0%,100%,.01);content:""}.ant-popover-hidden{display:none}.ant-popover-placement-top,.ant-popover-placement-topLeft,.ant-popover-placement-topRight{padding-bottom:10px}.ant-popover-placement-right,.ant-popover-placement-rightBottom,.ant-popover-placement-rightTop{padding-left:10px}.ant-popover-placement-bottom,.ant-popover-placement-bottomLeft,.ant-popover-placement-bottomRight{padding-top:10px}.ant-popover-placement-left,.ant-popover-placement-leftBottom,.ant-popover-placement-leftTop{padding-right:10px}.ant-popover-inner{background-color:#fff;background-clip:padding-box;border-radius:2px;-webkit-box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);-webkit-box-shadow:0 0 8px rgba(0,0,0,.15)\9;box-shadow:0 0 8px rgba(0,0,0,.15)\9}@media (-ms-high-contrast:none),screen and (-ms-high-contrast:active){.ant-popover-inner{-webkit-box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05)}}.ant-popover-title{min-width:177px;min-height:32px;margin:0;padding:5px 16px 4px;color:rgba(0,0,0,.85);font-weight:500;border-bottom:1px solid #f0f0f0}.ant-popover-inner-content{padding:12px 16px;color:rgba(0,0,0,.65)}.ant-popover-message{position:relative;padding:4px 0 12px;color:rgba(0,0,0,.65);font-size:14px}.ant-popover-message>.anticon{position:absolute;top:8px;color:#faad14;font-size:14px}.ant-popover-message-title{padding-left:22px}.ant-popover-buttons{margin-bottom:4px;text-align:right}.ant-popover-buttons button{margin-left:8px}.ant-popover-arrow{position:absolute;display:block;width:8.48528137px;height:8.48528137px;background:transparent;border-style:solid;border-width:4.24264069px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.ant-popover-placement-top>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-topLeft>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-topRight>.ant-popover-content>.ant-popover-arrow{bottom:6.2px;border-color:transparent #fff #fff transparent;-webkit-box-shadow:3px 3px 7px rgba(0,0,0,.07);box-shadow:3px 3px 7px rgba(0,0,0,.07)}.ant-popover-placement-top>.ant-popover-content>.ant-popover-arrow{left:50%;-webkit-transform:translateX(-50%) rotate(45deg);transform:translateX(-50%) rotate(45deg)}.ant-popover-placement-topLeft>.ant-popover-content>.ant-popover-arrow{left:16px}.ant-popover-placement-topRight>.ant-popover-content>.ant-popover-arrow{right:16px}.ant-popover-placement-right>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-rightBottom>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-rightTop>.ant-popover-content>.ant-popover-arrow{left:6px;border-color:transparent transparent #fff #fff;-webkit-box-shadow:-3px 3px 7px rgba(0,0,0,.07);box-shadow:-3px 3px 7px rgba(0,0,0,.07)}.ant-popover-placement-right>.ant-popover-content>.ant-popover-arrow{top:50%;-webkit-transform:translateY(-50%) rotate(45deg);transform:translateY(-50%) rotate(45deg)}.ant-popover-placement-rightTop>.ant-popover-content>.ant-popover-arrow{top:12px}.ant-popover-placement-rightBottom>.ant-popover-content>.ant-popover-arrow{bottom:12px}.ant-popover-placement-bottom>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-bottomLeft>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-bottomRight>.ant-popover-content>.ant-popover-arrow{top:6px;border-color:#fff transparent transparent #fff;-webkit-box-shadow:-2px -2px 5px rgba(0,0,0,.06);box-shadow:-2px -2px 5px rgba(0,0,0,.06)}.ant-popover-placement-bottom>.ant-popover-content>.ant-popover-arrow{left:50%;-webkit-transform:translateX(-50%) rotate(45deg);transform:translateX(-50%) rotate(45deg)}.ant-popover-placement-bottomLeft>.ant-popover-content>.ant-popover-arrow{left:16px}.ant-popover-placement-bottomRight>.ant-popover-content>.ant-popover-arrow{right:16px}.ant-popover-placement-left>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-leftBottom>.ant-popover-content>.ant-popover-arrow,.ant-popover-placement-leftTop>.ant-popover-content>.ant-popover-arrow{right:6px;border-color:#fff #fff transparent transparent;-webkit-box-shadow:3px -3px 7px rgba(0,0,0,.07);box-shadow:3px -3px 7px rgba(0,0,0,.07)}.ant-popover-placement-left>.ant-popover-content>.ant-popover-arrow{top:50%;-webkit-transform:translateY(-50%) rotate(45deg);transform:translateY(-50%) rotate(45deg)}.ant-popover-placement-leftTop>.ant-popover-content>.ant-popover-arrow{top:12px}.ant-popover-placement-leftBottom>.ant-popover-content>.ant-popover-arrow{bottom:12px}.ant-popover-rtl{direction:rtl;text-align:right}.ant-popover-rtl .ant-popover-message-title{padding-right:22px;padding-left:16px}.ant-popover-rtl .ant-popover-buttons{text-align:left}.ant-popover-rtl .ant-popover-buttons button{margin-right:8px;margin-left:0}.ant-switch{margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum";position:relative;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;min-width:44px;height:22px;line-height:20px;vertical-align:middle;background-color:rgba(0,0,0,.25);border:1px solid transparent;border-radius:100px;cursor:pointer;-webkit-transition:all .36s;transition:all .36s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-switch-inner{display:block;margin-right:6px;margin-left:24px;color:#fff;font-size:12px}.ant-switch-loading-icon,.ant-switch:after{position:absolute;top:1px;left:1px;width:18px;height:18px;background-color:#fff;border-radius:18px;cursor:pointer;-webkit-transition:all .36s cubic-bezier(.78,.14,.15,.86);transition:all .36s cubic-bezier(.78,.14,.15,.86);content:" "}.ant-switch:after{-webkit-box-shadow:0 2px 4px 0 rgba(0,35,11,.2);box-shadow:0 2px 4px 0 rgba(0,35,11,.2)}.ant-switch:not(.ant-switch-disabled):active:after,.ant-switch:not(.ant-switch-disabled):active:before{width:24px}.ant-switch-loading-icon{z-index:1;display:none;font-size:12px;background:transparent}.ant-switch-loading-icon svg{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto}.ant-switch-loading .ant-switch-loading-icon{display:inline-block;color:rgba(0,0,0,.65)}.ant-switch-checked.ant-switch-loading .ant-switch-loading-icon{color:#1890ff}.ant-switch:focus{outline:0;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-switch:focus:hover{-webkit-box-shadow:none;box-shadow:none}.ant-switch-small{min-width:28px;height:16px;line-height:14px}.ant-switch-small .ant-switch-inner{margin-right:3px;margin-left:18px;font-size:12px}.ant-switch-small:after{width:12px;height:12px}.ant-switch-small:active:after,.ant-switch-small:active:before{width:16px}.ant-switch-small .ant-switch-loading-icon{width:12px;height:12px}.ant-switch-small.ant-switch-checked .ant-switch-inner{margin-right:18px;margin-left:3px}.ant-switch-small.ant-switch-checked .ant-switch-loading-icon{left:100%;margin-left:-13px}.ant-switch-small.ant-switch-loading .ant-switch-loading-icon{font-weight:700;-webkit-transform:scale(.66667);transform:scale(.66667)}.ant-switch-checked{background-color:#1890ff}.ant-switch-checked .ant-switch-inner{margin-right:24px;margin-left:6px}.ant-switch-checked:after{left:100%;margin-left:-1px;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.ant-switch-checked .ant-switch-loading-icon{left:100%;margin-left:-19px}.ant-switch-disabled,.ant-switch-loading{cursor:not-allowed;opacity:.4}.ant-switch-disabled *,.ant-switch-disabled:after,.ant-switch-disabled:before,.ant-switch-loading *,.ant-switch-loading:after,.ant-switch-loading:before{cursor:not-allowed}@-webkit-keyframes AntSwitchSmallLoadingCircle{0%{-webkit-transform:rotate(0deg) scale(.66667);transform:rotate(0deg) scale(.66667);-webkit-transform-origin:50% 50%;transform-origin:50% 50%}to{-webkit-transform:rotate(1turn) scale(.66667);transform:rotate(1turn) scale(.66667);-webkit-transform-origin:50% 50%;transform-origin:50% 50%}}@keyframes AntSwitchSmallLoadingCircle{0%{-webkit-transform:rotate(0deg) scale(.66667);transform:rotate(0deg) scale(.66667);-webkit-transform-origin:50% 50%;transform-origin:50% 50%}to{-webkit-transform:rotate(1turn) scale(.66667);transform:rotate(1turn) scale(.66667);-webkit-transform-origin:50% 50%;transform-origin:50% 50%}}.ant-switch-rtl{direction:rtl}.ant-switch-rtl .ant-switch-inner{margin-right:24px;margin-left:6px}.ant-switch-rtl.ant-switch-loading-icon,.ant-switch-rtl.ant-switch:after{left:100%;margin-left:-1px;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.ant-switch-rtl.ant-switch-small .ant-switch-inner{margin-right:18px;margin-left:3px}.ant-switch-rtl.ant-switch-small .ant-switch-loading-icon{margin-left:12px}.ant-switch-rtl.ant-switch-small.ant-switch-checked .ant-switch-inner{margin-right:3px;margin-left:18px}.ant-switch-rtl.ant-switch-checked .ant-switch-inner{margin-right:6px;margin-left:24px}.ant-switch-rtl.ant-switch-checked:after{left:1px;margin-left:0;-webkit-transform:translateX(0);transform:translateX(0)}.ant-switch-rtl.ant-switch-checked .ant-switch-loading-icon{margin-left:-41px}.ant-tag{-webkit-box-sizing:border-box;box-sizing:border-box;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum";display:inline-block;height:auto;margin:0 8px 0 0;padding:0 7px;font-size:12px;line-height:20px;white-space:nowrap;background:#fafafa;border:1px solid #d9d9d9;border-radius:2px;cursor:default;opacity:1;-webkit-transition:all .3s cubic-bezier(.78,.14,.15,.86);transition:all .3s cubic-bezier(.78,.14,.15,.86)}.ant-tag:hover{opacity:.85}.ant-tag,.ant-tag a,.ant-tag a:hover{color:rgba(0,0,0,.65)}.ant-tag>a:first-child:last-child{display:inline-block;margin:0 -8px;padding:0 8px}.ant-tag .anticon-close{display:inline-block;font-size:10px;margin-left:3px;color:rgba(0,0,0,.45);font-weight:700;cursor:pointer;-webkit-transition:all .3s cubic-bezier(.78,.14,.15,.86);transition:all .3s cubic-bezier(.78,.14,.15,.86)}.ant-tag .anticon-close:hover{color:rgba(0,0,0,.85)}.ant-tag-has-color{border-color:transparent}.ant-tag-has-color,.ant-tag-has-color .anticon-close,.ant-tag-has-color .anticon-close:hover,.ant-tag-has-color a,.ant-tag-has-color a:hover{color:#fff}.ant-tag-checkable{background-color:transparent;border-color:transparent}.ant-tag-checkable:not(.ant-tag-checkable-checked):hover{color:#1890ff}.ant-tag-checkable-checked,.ant-tag-checkable:active{color:#fff}.ant-tag-checkable-checked{background-color:#1890ff}.ant-tag-checkable:active{background-color:#096dd9}.ant-tag-hidden{display:none}.ant-tag-pink{color:#eb2f96;background:#fff0f6;border-color:#ffadd2}.ant-tag-pink-inverse{color:#fff;background:#eb2f96;border-color:#eb2f96}.ant-tag-magenta{color:#eb2f96;background:#fff0f6;border-color:#ffadd2}.ant-tag-magenta-inverse{color:#fff;background:#eb2f96;border-color:#eb2f96}.ant-tag-red{color:#f5222d;background:#fff1f0;border-color:#ffa39e}.ant-tag-red-inverse{color:#fff;background:#f5222d;border-color:#f5222d}.ant-tag-volcano{color:#fa541c;background:#fff2e8;border-color:#ffbb96}.ant-tag-volcano-inverse{color:#fff;background:#fa541c;border-color:#fa541c}.ant-tag-orange{color:#fa8c16;background:#fff7e6;border-color:#ffd591}.ant-tag-orange-inverse{color:#fff;background:#fa8c16;border-color:#fa8c16}.ant-tag-yellow{color:#fadb14;background:#feffe6;border-color:#fffb8f}.ant-tag-yellow-inverse{color:#fff;background:#fadb14;border-color:#fadb14}.ant-tag-gold{color:#faad14;background:#fffbe6;border-color:#ffe58f}.ant-tag-gold-inverse{color:#fff;background:#faad14;border-color:#faad14}.ant-tag-cyan{color:#13c2c2;background:#e6fffb;border-color:#87e8de}.ant-tag-cyan-inverse{color:#fff;background:#13c2c2;border-color:#13c2c2}.ant-tag-lime{color:#a0d911;background:#fcffe6;border-color:#eaff8f}.ant-tag-lime-inverse{color:#fff;background:#a0d911;border-color:#a0d911}.ant-tag-green{color:#52c41a;background:#f6ffed;border-color:#b7eb8f}.ant-tag-green-inverse{color:#fff;background:#52c41a;border-color:#52c41a}.ant-tag-blue{color:#1890ff;background:#e6f7ff;border-color:#91d5ff}.ant-tag-blue-inverse{color:#fff;background:#1890ff;border-color:#1890ff}.ant-tag-geekblue{color:#2f54eb;background:#f0f5ff;border-color:#adc6ff}.ant-tag-geekblue-inverse{color:#fff;background:#2f54eb;border-color:#2f54eb}.ant-tag-purple{color:#722ed1;background:#f9f0ff;border-color:#d3adf7}.ant-tag-purple-inverse{color:#fff;background:#722ed1;border-color:#722ed1}.ant-tag-success{color:#52c41a;background:#f6ffed;border-color:#b7eb8f}.ant-tag-processing{color:#1890ff;background:#e6f7ff;border-color:#91d5ff}.ant-tag-error{color:#f5222d;background:#fff1f0;border-color:#ffa39e}.ant-tag-warning{color:#fa8c16;background:#fff7e6;border-color:#ffd591}.ant-tag>.anticon+span,.ant-tag>span+.anticon{margin-left:7px}.ant-tag-rtl{margin-right:0;margin-left:8px;direction:rtl;text-align:right}.ant-tag-rtl.ant-tag .anticon-close{margin-right:3px;margin-left:0}.ant-tag-rtl.ant-tag>.anticon+span,.ant-tag-rtl.ant-tag>span+.anticon{margin-right:7px;margin-left:0}.ant-upload{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum";outline:0}.ant-upload p{margin:0}.ant-upload-btn{display:block;width:100%;outline:none}.ant-upload input[type=file]{cursor:pointer}.ant-upload.ant-upload-select{display:inline-block}.ant-upload.ant-upload-disabled{cursor:not-allowed}.ant-upload.ant-upload-select-picture-card{display:table;float:left;width:104px;height:104px;margin-right:8px;margin-bottom:8px;text-align:center;vertical-align:top;background-color:#fafafa;border:1px dashed #d9d9d9;border-radius:2px;cursor:pointer;-webkit-transition:border-color .3s ease;transition:border-color .3s ease}.ant-upload.ant-upload-select-picture-card>.ant-upload{display:table-cell;width:100%;height:100%;padding:8px;text-align:center;vertical-align:middle}.ant-upload.ant-upload-select-picture-card:hover{border-color:#1890ff}.ant-upload-disabled.ant-upload.ant-upload-select-picture-card:hover{border-color:#d9d9d9}.ant-upload.ant-upload-drag{position:relative;width:100%;height:100%;text-align:center;background:#fafafa;border:1px dashed #d9d9d9;border-radius:2px;cursor:pointer;-webkit-transition:border-color .3s;transition:border-color .3s}.ant-upload.ant-upload-drag .ant-upload{padding:16px 0}.ant-upload.ant-upload-drag.ant-upload-drag-hover:not(.ant-upload-disabled){border-color:#096dd9}.ant-upload.ant-upload-drag.ant-upload-disabled{cursor:not-allowed}.ant-upload.ant-upload-drag .ant-upload-btn{display:table;height:100%}.ant-upload.ant-upload-drag .ant-upload-drag-container{display:table-cell;vertical-align:middle}.ant-upload.ant-upload-drag:not(.ant-upload-disabled):hover{border-color:#40a9ff}.ant-upload.ant-upload-drag p.ant-upload-drag-icon{margin-bottom:20px}.ant-upload.ant-upload-drag p.ant-upload-drag-icon .anticon{color:#40a9ff;font-size:48px}.ant-upload.ant-upload-drag p.ant-upload-text{margin:0 0 4px;color:rgba(0,0,0,.85);font-size:16px}.ant-upload.ant-upload-drag p.ant-upload-hint{color:rgba(0,0,0,.45);font-size:14px}.ant-upload.ant-upload-drag .anticon-plus{color:rgba(0,0,0,.25);font-size:30px;-webkit-transition:all .3s;transition:all .3s}.ant-upload.ant-upload-drag .anticon-plus:hover,.ant-upload.ant-upload-drag:hover .anticon-plus{color:rgba(0,0,0,.45)}.ant-upload-picture-card-wrapper{display:inline-block;width:100%}.ant-upload-picture-card-wrapper:before{display:table;content:""}.ant-upload-picture-card-wrapper:after{display:table;clear:both;content:""}.ant-upload-list{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum";line-height:22px}.ant-upload-list:after,.ant-upload-list:before{display:table;content:""}.ant-upload-list:after{clear:both}.ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-1{padding-right:14px}.ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-2{padding-right:28px}.ant-upload-list-item{position:relative;height:22px;margin-top:8px;font-size:14px}.ant-upload-list-item-name{display:inline-block;width:100%;padding-left:22px;overflow:hidden;line-height:22px;white-space:nowrap;text-overflow:ellipsis}.ant-upload-list-item-name-icon-count-1{padding-right:14px}.ant-upload-list-item-card-actions{position:absolute;right:0;opacity:0}.ant-upload-list-item-card-actions.picture{top:25px;line-height:1;opacity:1}.ant-upload-list-item-card-actions .anticon{padding-right:6px;color:rgba(0,0,0,.45)}.ant-upload-list-item-info{height:100%;padding:0 12px 0 4px;-webkit-transition:background-color .3s;transition:background-color .3s}.ant-upload-list-item-info>span{display:block;width:100%;height:100%}.ant-upload-list-item-info .ant-upload-text-icon .anticon,.ant-upload-list-item-info .anticon-loading .anticon{position:absolute;top:5px;color:rgba(0,0,0,.45);font-size:14px}.ant-upload-list-item .anticon-close{display:inline-block;font-size:10px;position:absolute;top:6px;right:4px;color:rgba(0,0,0,.45);line-height:0;cursor:pointer;opacity:0;-webkit-transition:all .3s;transition:all .3s}.ant-upload-list-item .anticon-close:hover{color:rgba(0,0,0,.65)}.ant-upload-list-item:hover .ant-upload-list-item-info{background-color:#f5f5f5}.ant-upload-list-item:hover .ant-upload-list-item-card-actions,.ant-upload-list-item:hover .anticon-close{opacity:1}.ant-upload-list-item-error,.ant-upload-list-item-error .ant-upload-list-item-name,.ant-upload-list-item-error .ant-upload-text-icon>.anticon{color:#ff4d4f}.ant-upload-list-item-error .ant-upload-list-item-card-actions{opacity:1}.ant-upload-list-item-error .ant-upload-list-item-card-actions .anticon{color:#ff4d4f}.ant-upload-list-item-progress{position:absolute;bottom:-12px;width:100%;padding-left:26px;font-size:14px;line-height:0}.ant-upload-list-picture-card .ant-upload-list-item,.ant-upload-list-picture .ant-upload-list-item{position:relative;height:66px;padding:8px;border:1px solid #d9d9d9;border-radius:2px}.ant-upload-list-picture-card .ant-upload-list-item:hover,.ant-upload-list-picture .ant-upload-list-item:hover{background:transparent}.ant-upload-list-picture-card .ant-upload-list-item-error,.ant-upload-list-picture .ant-upload-list-item-error{border-color:#ff4d4f}.ant-upload-list-picture-card .ant-upload-list-item-info,.ant-upload-list-picture .ant-upload-list-item-info{padding:0}.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info,.ant-upload-list-picture .ant-upload-list-item:hover .ant-upload-list-item-info{background:transparent}.ant-upload-list-picture-card .ant-upload-list-item-uploading,.ant-upload-list-picture .ant-upload-list-item-uploading{border-style:dashed}.ant-upload-list-picture-card .ant-upload-list-item-thumbnail,.ant-upload-list-picture .ant-upload-list-item-thumbnail{position:absolute;top:8px;left:8px;width:48px;height:48px;line-height:54px;text-align:center;opacity:.8}.ant-upload-list-picture-card .ant-upload-list-item-thumbnail .anticon,.ant-upload-list-picture .ant-upload-list-item-thumbnail .anticon{font-size:26px}.ant-upload-list-picture-card .ant-upload-list-item-icon,.ant-upload-list-picture .ant-upload-list-item-icon{position:absolute;top:50%;left:50%;font-size:26px;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.ant-upload-list-picture-card .ant-upload-list-item-icon .anticon,.ant-upload-list-picture .ant-upload-list-item-icon .anticon{font-size:26px}.ant-upload-list-picture-card .ant-upload-list-item-image,.ant-upload-list-picture .ant-upload-list-item-image{max-width:100%}.ant-upload-list-picture-card .ant-upload-list-item-thumbnail img,.ant-upload-list-picture .ant-upload-list-item-thumbnail img{display:block;width:48px;height:48px;overflow:hidden}.ant-upload-list-picture-card .ant-upload-list-item-name,.ant-upload-list-picture .ant-upload-list-item-name{display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;max-width:100%;margin:0 0 0 8px;padding-right:8px;padding-left:48px;overflow:hidden;line-height:44px;white-space:nowrap;text-overflow:ellipsis;-webkit-transition:all .3s;transition:all .3s}.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-1,.ant-upload-list-picture .ant-upload-list-item-name-icon-count-1{padding-right:18px}.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-2,.ant-upload-list-picture .ant-upload-list-item-name-icon-count-2{padding-right:36px}.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-name,.ant-upload-list-picture .ant-upload-list-item-uploading .ant-upload-list-item-name{line-height:28px}.ant-upload-list-picture-card .ant-upload-list-item-progress,.ant-upload-list-picture .ant-upload-list-item-progress{bottom:14px;width:calc(100% - 24px);margin-top:0;padding-left:56px}.ant-upload-list-picture-card .anticon-close,.ant-upload-list-picture .anticon-close{position:absolute;top:8px;right:8px;line-height:1;opacity:1}.ant-upload-list-picture-card.ant-upload-list:after{display:none}.ant-upload-list-picture-card-container,.ant-upload-list-picture-card .ant-upload-list-item{float:left;width:104px;height:104px;margin:0 8px 8px 0}.ant-upload-list-picture-card .ant-upload-list-item-info{position:relative;height:100%;overflow:hidden}.ant-upload-list-picture-card .ant-upload-list-item-info:before{position:absolute;z-index:1;width:100%;height:100%;background-color:rgba(0,0,0,.5);opacity:0;-webkit-transition:all .3s;transition:all .3s;content:" "}.ant-upload-list-picture-card .ant-upload-list-item:hover .ant-upload-list-item-info:before{opacity:1}.ant-upload-list-picture-card .ant-upload-list-item-actions{position:absolute;top:50%;left:50%;z-index:10;white-space:nowrap;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);opacity:0;-webkit-transition:all .3s;transition:all .3s}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye{z-index:10;width:16px;margin:0 4px;color:hsla(0,0%,100%,.85);font-size:16px;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-delete:hover,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-download:hover,.ant-upload-list-picture-card .ant-upload-list-item-actions .anticon-eye:hover{color:#fff}.ant-upload-list-picture-card .ant-upload-list-item-actions:hover,.ant-upload-list-picture-card .ant-upload-list-item-info:hover+.ant-upload-list-item-actions{opacity:1}.ant-upload-list-picture-card .ant-upload-list-item-thumbnail,.ant-upload-list-picture-card .ant-upload-list-item-thumbnail img{position:static;display:block;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.ant-upload-list-picture-card .ant-upload-list-item-name{display:none;margin:8px 0 0;padding:0;line-height:1.5715;text-align:center}.ant-upload-list-picture-card .ant-upload-list-item-file+.ant-upload-list-item-name{position:absolute;bottom:10px;display:block}.ant-upload-list-picture-card .ant-upload-list-item-uploading.ant-upload-list-item{background-color:#fafafa}.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info{height:auto}.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-delete,.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info .anticon-eye,.ant-upload-list-picture-card .ant-upload-list-item-uploading .ant-upload-list-item-info:before{display:none}.ant-upload-list-picture-card .ant-upload-list-item-progress{bottom:32px;padding-left:0}.ant-upload-list .ant-upload-success-icon{color:#52c41a;font-weight:700}.ant-upload-list .ant-upload-animate-enter,.ant-upload-list .ant-upload-animate-inline-enter,.ant-upload-list .ant-upload-animate-inline-leave,.ant-upload-list .ant-upload-animate-leave{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:cubic-bezier(.78,.14,.15,.86);animation-fill-mode:cubic-bezier(.78,.14,.15,.86)}.ant-upload-list .ant-upload-animate-enter{-webkit-animation-name:uploadAnimateIn;animation-name:uploadAnimateIn}.ant-upload-list .ant-upload-animate-leave{-webkit-animation-name:uploadAnimateOut;animation-name:uploadAnimateOut}.ant-upload-list .ant-upload-animate-inline-enter{-webkit-animation-name:uploadAnimateInlineIn;animation-name:uploadAnimateInlineIn}.ant-upload-list .ant-upload-animate-inline-leave{-webkit-animation-name:uploadAnimateInlineOut;animation-name:uploadAnimateInlineOut}@-webkit-keyframes uploadAnimateIn{0%{height:0;margin:0;padding:0;opacity:0}}@keyframes uploadAnimateIn{0%{height:0;margin:0;padding:0;opacity:0}}@-webkit-keyframes uploadAnimateOut{to{height:0;margin:0;padding:0;opacity:0}}@keyframes uploadAnimateOut{to{height:0;margin:0;padding:0;opacity:0}}@-webkit-keyframes uploadAnimateInlineIn{0%{width:0;height:0;margin:0;padding:0;opacity:0}}@keyframes uploadAnimateInlineIn{0%{width:0;height:0;margin:0;padding:0;opacity:0}}@-webkit-keyframes uploadAnimateInlineOut{to{width:0;height:0;margin:0;padding:0;opacity:0}}@keyframes uploadAnimateInlineOut{to{width:0;height:0;margin:0;padding:0;opacity:0}}.ant-upload-rtl{direction:rtl}.ant-upload-rtl.ant-upload.ant-upload-select-picture-card{float:right;margin-right:0;margin-left:8px}.ant-upload-list-rtl{direction:rtl}.ant-upload-list-rtl .ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-1{padding-right:22px;padding-left:14px}.ant-upload-list-rtl .ant-upload-list-item-list-type-text:hover .ant-upload-list-item-name-icon-count-2{padding-right:22px;padding-left:28px}.ant-upload-list-rtl .ant-upload-list-item-name{padding-right:22px;padding-left:0}.ant-upload-list-rtl .ant-upload-list-item-name-icon-count-1{padding-left:14px}.ant-upload-list-rtl .ant-upload-list-item-card-actions{right:auto;left:0}.ant-upload-list-rtl .ant-upload-list-item-card-actions .anticon{padding-right:0;padding-left:5px}.ant-upload-list-rtl .ant-upload-list-item-info{padding:0 4px 0 12px}.ant-upload-list-rtl .ant-upload-list-item .anticon-close{right:auto;left:4px}.ant-upload-list-rtl .ant-upload-list-item-error .ant-upload-list-item-card-actions .anticon{padding-right:0;padding-left:5px}.ant-upload-list-rtl .ant-upload-list-item-progress{padding-right:26px;padding-left:0}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-thumbnail,.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-thumbnail{right:8px;left:auto}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-icon,.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-icon{right:50%;left:auto;-webkit-transform:translate(50%,-50%);transform:translate(50%,-50%)}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name,.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name{margin:0 8px 0 0;padding-right:48px;padding-left:8px}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-1,.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name-icon-count-1{padding-right:48px;padding-left:18px}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-name-icon-count-2,.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-name-icon-count-2{padding-right:48px;padding-left:36px}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-progress,.ant-upload-list-rtl.ant-upload-list-picture .ant-upload-list-item-progress{padding-right:56px;padding-left:0}.ant-upload-list-rtl.ant-upload-list-picture-card .anticon-close,.ant-upload-list-rtl.ant-upload-list-picture .anticon-close{right:auto;left:8px}.ant-upload-list-rtl .ant-upload-list-picture-card-container,.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item{float:right;margin:0 0 8px 8px}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-actions{right:50%;left:auto;-webkit-transform:translate(50%,-50%);transform:translate(50%,-50%)}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-file+.ant-upload-list-item-name{margin:8px 0 0;padding:0}.ant-upload-list-rtl.ant-upload-list-picture-card .ant-upload-list-item-info{padding:0}.ant-progress{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum";display:inline-block}.ant-progress-line{position:relative;width:100%;font-size:14px}.ant-progress-steps{display:inline-block}.ant-progress-steps-outer{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center}.ant-progress-steps-item{-ms-flex-negative:0;flex-shrink:0;min-width:2px;margin-right:2px;background:#f3f3f3}.ant-progress-small.ant-progress-line,.ant-progress-small.ant-progress-line .ant-progress-text .anticon{font-size:12px}.ant-progress-outer{display:inline-block;width:100%;margin-right:0;padding-right:0}.ant-progress-show-info .ant-progress-outer{margin-right:calc(-2em - 8px);padding-right:calc(2em + 8px)}.ant-progress-inner{position:relative;display:inline-block;width:100%;overflow:hidden;vertical-align:middle;background-color:#f5f5f5;border-radius:100px}.ant-progress-circle-trail{stroke:#f5f5f5}.ant-progress-circle-path{-webkit-animation:ant-progress-appear .3s;animation:ant-progress-appear .3s}.ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#1890ff}.ant-progress-bg,.ant-progress-success-bg{position:relative;background-color:#1890ff;border-radius:100px;-webkit-transition:all .4s cubic-bezier(.08,.82,.17,1) 0s;transition:all .4s cubic-bezier(.08,.82,.17,1) 0s}.ant-progress-success-bg{position:absolute;top:0;left:0;background-color:#52c41a}.ant-progress-text{display:inline-block;width:2em;margin-left:8px;color:rgba(0,0,0,.45);font-size:1em;line-height:1;white-space:nowrap;text-align:left;vertical-align:middle;word-break:normal}.ant-progress-text .anticon{font-size:14px}.ant-progress-status-active .ant-progress-bg:before{position:absolute;top:0;right:0;bottom:0;left:0;background:#fff;border-radius:10px;opacity:0;-webkit-animation:ant-progress-active 2.4s cubic-bezier(.23,1,.32,1) infinite;animation:ant-progress-active 2.4s cubic-bezier(.23,1,.32,1) infinite;content:""}.ant-progress-status-exception .ant-progress-bg{background-color:#ff4d4f}.ant-progress-status-exception .ant-progress-text{color:#ff4d4f}.ant-progress-status-exception .ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#ff4d4f}.ant-progress-status-success .ant-progress-bg{background-color:#52c41a}.ant-progress-status-success .ant-progress-text{color:#52c41a}.ant-progress-status-success .ant-progress-inner:not(.ant-progress-circle-gradient) .ant-progress-circle-path{stroke:#52c41a}.ant-progress-circle .ant-progress-inner{position:relative;line-height:1;background-color:transparent}.ant-progress-circle .ant-progress-text{position:absolute;top:50%;left:50%;width:100%;margin:0;padding:0;color:rgba(0,0,0,.65);line-height:1;white-space:normal;text-align:center;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.ant-progress-circle .ant-progress-text .anticon{font-size:1.16666667em}.ant-progress-circle.ant-progress-status-exception .ant-progress-text{color:#ff4d4f}.ant-progress-circle.ant-progress-status-success .ant-progress-text{color:#52c41a}@-webkit-keyframes ant-progress-active{0%{width:0;opacity:.1}20%{width:0;opacity:.5}to{width:100%;opacity:0}}@keyframes ant-progress-active{0%{width:0;opacity:.1}20%{width:0;opacity:.5}to{width:100%;opacity:0}}.ant-progress-rtl{direction:rtl}.ant-progress-rtl.ant-progress-show-info .ant-progress-outer{margin-right:0;margin-left:calc(-2em - 8px);padding-right:0;padding-left:calc(2em + 8px)}.ant-progress-rtl .ant-progress-success-bg{right:0;left:auto}.ant-progress-rtl.ant-progress-line .ant-progress-text,.ant-progress-rtl.ant-progress-steps .ant-progress-text{margin-right:8px;margin-left:0;text-align:right}.ant-form-item .ant-mentions,.ant-form-item textarea.ant-input{height:auto}.ant-form-item .ant-upload{background:transparent}.ant-form-item .ant-upload.ant-upload-drag{background:#fafafa}.ant-form-item input[type=checkbox],.ant-form-item input[type=radio]{width:14px;height:14px}.ant-form-item .ant-checkbox-inline,.ant-form-item .ant-radio-inline{display:inline-block;margin-left:8px;font-weight:400;vertical-align:middle;cursor:pointer}.ant-form-item .ant-checkbox-inline:first-child,.ant-form-item .ant-radio-inline:first-child{margin-left:0}.ant-form-item .ant-checkbox-vertical,.ant-form-item .ant-radio-vertical{display:block}.ant-form-item .ant-checkbox-vertical+.ant-checkbox-vertical,.ant-form-item .ant-radio-vertical+.ant-radio-vertical{margin-left:0}.ant-form-item .ant-input-number+.ant-form-text{margin-left:8px}.ant-form-item .ant-input-number-handler-wrap{z-index:2}.ant-form-item .ant-cascader-picker,.ant-form-item .ant-select{width:100%}.ant-form-item .ant-input-group .ant-cascader-picker,.ant-form-item .ant-input-group .ant-select{width:auto}.ant-form-inline{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.ant-form-inline .ant-form-item{-ms-flex:none;flex:none;-ms-flex-wrap:nowrap;flex-wrap:nowrap;margin-right:16px;margin-bottom:0}.ant-form-inline .ant-form-item-with-help{margin-bottom:24px}.ant-form-inline .ant-form-item>.ant-form-item-control,.ant-form-inline .ant-form-item>.ant-form-item-label{display:inline-block;vertical-align:top}.ant-form-inline .ant-form-item .ant-form-item-has-feedback,.ant-form-inline .ant-form-item .ant-form-text{display:inline-block}.ant-form-horizontal .ant-form-item-label{-ms-flex-positive:0;flex-grow:0}.ant-form-horizontal .ant-form-item-control{-ms-flex:1 1 0px;flex:1 1}.ant-form-vertical .ant-form-item{-ms-flex-direction:column;flex-direction:column}.ant-form-vertical .ant-form-item-label>label{height:auto}.ant-col-24.ant-form-item-label,.ant-col-xl-24.ant-form-item-label,.ant-form-vertical .ant-form-item-label{margin:0;padding:0 0 8px;line-height:1.5715;white-space:normal;text-align:left}.ant-col-24.ant-form-item-label>label,.ant-col-xl-24.ant-form-item-label>label,.ant-form-vertical .ant-form-item-label>label{margin:0}.ant-col-24.ant-form-item-label>label:after,.ant-col-xl-24.ant-form-item-label>label:after,.ant-form-vertical .ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-24.ant-form-item-label,.ant-form-rtl.ant-col-xl-24.ant-form-item-label,.ant-form-rtl.ant-form-vertical .ant-form-item-label{text-align:right}@media (max-width:575px){.ant-form-item .ant-form-item-label{margin:0;padding:0 0 8px;line-height:1.5715;white-space:normal;text-align:left}.ant-form-item .ant-form-item-label>label{margin:0}.ant-form-item .ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-form-item .ant-form-item-label{text-align:right}.ant-form .ant-form-item{-ms-flex-wrap:wrap;flex-wrap:wrap}.ant-form .ant-form-item .ant-form-item-control,.ant-form .ant-form-item .ant-form-item-label{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.ant-col-xs-24.ant-form-item-label{margin:0;padding:0 0 8px;line-height:1.5715;white-space:normal;text-align:left}.ant-col-xs-24.ant-form-item-label>label{margin:0}.ant-col-xs-24.ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-xs-24.ant-form-item-label{text-align:right}}@media (max-width:767px){.ant-col-sm-24.ant-form-item-label{margin:0;padding:0 0 8px;line-height:1.5715;white-space:normal;text-align:left}.ant-col-sm-24.ant-form-item-label>label{margin:0}.ant-col-sm-24.ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-sm-24.ant-form-item-label{text-align:right}}@media (max-width:991px){.ant-col-md-24.ant-form-item-label{margin:0;padding:0 0 8px;line-height:1.5715;white-space:normal;text-align:left}.ant-col-md-24.ant-form-item-label>label{margin:0}.ant-col-md-24.ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-md-24.ant-form-item-label{text-align:right}}@media (max-width:1199px){.ant-col-lg-24.ant-form-item-label{margin:0;padding:0 0 8px;line-height:1.5715;white-space:normal;text-align:left}.ant-col-lg-24.ant-form-item-label>label{margin:0}.ant-col-lg-24.ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-lg-24.ant-form-item-label{text-align:right}}@media (max-width:1599px){.ant-col-xl-24.ant-form-item-label{margin:0;padding:0 0 8px;line-height:1.5715;white-space:normal;text-align:left}.ant-col-xl-24.ant-form-item-label>label{margin:0}.ant-col-xl-24.ant-form-item-label>label:after{display:none}.ant-form-rtl.ant-col-xl-24.ant-form-item-label{text-align:right}}.ant-form-item-has-feedback .ant-input{padding-right:24px}.ant-form-item-has-feedback .ant-input-affix-wrapper .ant-input-suffix{padding-right:18px}.ant-form-item-has-feedback .ant-input-search:not(.ant-input-search-enter-button) .ant-input-suffix{right:28px}.ant-form-item-has-feedback .ant-switch{margin:2px 0 4px}.ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-arrow,.ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-selection__clear,.ant-form-item-has-feedback>.ant-select .ant-select-arrow,.ant-form-item-has-feedback>.ant-select .ant-select-selection__clear{right:28px}.ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-selection-selected-value,.ant-form-item-has-feedback>.ant-select .ant-select-selection-selected-value{padding-right:42px}.ant-form-item-has-feedback .ant-cascader-picker-arrow{margin-right:17px}.ant-form-item-has-feedback .ant-cascader-picker-clear{right:28px}.ant-form-item-has-feedback .ant-picker,.ant-form-item-has-feedback .ant-picker-large{padding-right:29.2px}.ant-form-item-has-feedback .ant-picker-small{padding-right:25.2px}.ant-form-item-has-feedback.ant-form-item-has-error .ant-form-item-children-icon,.ant-form-item-has-feedback.ant-form-item-has-success .ant-form-item-children-icon,.ant-form-item-has-feedback.ant-form-item-has-warning .ant-form-item-children-icon,.ant-form-item-has-feedback.ant-form-item-is-validating .ant-form-item-children-icon{position:absolute;top:50%;right:0;z-index:1;width:32px;height:20px;margin-top:-10px;font-size:14px;line-height:20px;text-align:center;visibility:visible;-webkit-animation:zoomIn .3s cubic-bezier(.12,.4,.29,1.46);animation:zoomIn .3s cubic-bezier(.12,.4,.29,1.46);pointer-events:none}.ant-form-item-has-feedback.ant-form-item-has-error .ant-form-item-children-icon svg,.ant-form-item-has-feedback.ant-form-item-has-success .ant-form-item-children-icon svg,.ant-form-item-has-feedback.ant-form-item-has-warning .ant-form-item-children-icon svg,.ant-form-item-has-feedback.ant-form-item-is-validating .ant-form-item-children-icon svg{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto}.ant-form-item-has-success.ant-form-item-has-feedback .ant-form-item-children-icon{color:#52c41a;-webkit-animation-name:diffZoomIn1!important;animation-name:diffZoomIn1!important}.ant-form-item-has-warning .ant-form-item-explain,.ant-form-item-has-warning .ant-form-item-split{color:#faad14}.ant-form-item-has-warning .ant-input,.ant-form-item-has-warning .ant-input-affix-wrapper,.ant-form-item-has-warning .ant-input-affix-wrapper:hover,.ant-form-item-has-warning .ant-input:hover{background-color:#fff;border-color:#faad14}.ant-form-item-has-warning .ant-input-affix-wrapper-focused,.ant-form-item-has-warning .ant-input-affix-wrapper:focus,.ant-form-item-has-warning .ant-input-focused,.ant-form-item-has-warning .ant-input:focus{border-color:#ffc53d;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(250,173,20,.2);box-shadow:0 0 0 2px rgba(250,173,20,.2)}.ant-form-item-has-warning .ant-input-affix-wrapper:not([disabled]):hover,.ant-form-item-has-warning .ant-input:not([disabled]):hover{border-color:#faad14}.ant-form-item-has-warning .ant-input-affix-wrapper input:focus{-webkit-box-shadow:none!important;box-shadow:none!important}.ant-form-item-has-warning .ant-calendar-picker-open .ant-calendar-picker-input{border-color:#ffc53d;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(250,173,20,.2);box-shadow:0 0 0 2px rgba(250,173,20,.2)}.ant-form-item-has-warning .ant-input-prefix{color:#faad14}.ant-form-item-has-warning .ant-input-group-addon{color:#faad14;background-color:#fff;border-color:#faad14}.ant-form-item-has-warning .has-feedback{color:#faad14}.ant-form-item-has-warning.ant-form-item-has-feedback .ant-form-item-children-icon{color:#faad14;-webkit-animation-name:diffZoomIn3!important;animation-name:diffZoomIn3!important}.ant-form-item-has-warning .ant-select:not(.ant-select-borderless) .ant-select-selector{border-color:#faad14!important}.ant-form-item-has-warning .ant-select:not(.ant-select-borderless).ant-select-focused .ant-select-selector,.ant-form-item-has-warning .ant-select:not(.ant-select-borderless).ant-select-open .ant-select-selector{border-color:#ffc53d;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(250,173,20,.2);box-shadow:0 0 0 2px rgba(250,173,20,.2)}.ant-form-item-has-warning .ant-input-number,.ant-form-item-has-warning .ant-picker{border-color:#faad14}.ant-form-item-has-warning .ant-input-number-focused,.ant-form-item-has-warning .ant-input-number:focus,.ant-form-item-has-warning .ant-picker-focused,.ant-form-item-has-warning .ant-picker:focus{border-color:#ffc53d;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(250,173,20,.2);box-shadow:0 0 0 2px rgba(250,173,20,.2)}.ant-form-item-has-warning .ant-input-number:not([disabled]):hover,.ant-form-item-has-warning .ant-picker:not([disabled]):hover{border-color:#faad14}.ant-form-item-has-warning .ant-cascader-picker:focus .ant-cascader-input{border-color:#ffc53d;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(250,173,20,.2);box-shadow:0 0 0 2px rgba(250,173,20,.2)}.ant-form-item-has-error .ant-form-item-explain,.ant-form-item-has-error .ant-form-item-split{color:#ff4d4f}.ant-form-item-has-error .ant-input,.ant-form-item-has-error .ant-input-affix-wrapper,.ant-form-item-has-error .ant-input-affix-wrapper:hover,.ant-form-item-has-error .ant-input:hover{background-color:#fff;border-color:#ff4d4f}.ant-form-item-has-error .ant-input-affix-wrapper-focused,.ant-form-item-has-error .ant-input-affix-wrapper:focus,.ant-form-item-has-error .ant-input-focused,.ant-form-item-has-error .ant-input:focus{border-color:#ff7875;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(255,77,79,.2);box-shadow:0 0 0 2px rgba(255,77,79,.2)}.ant-form-item-has-error .ant-input-affix-wrapper:not([disabled]):hover,.ant-form-item-has-error .ant-input:not([disabled]):hover{border-color:#ff4d4f}.ant-form-item-has-error .ant-input-affix-wrapper input:focus{-webkit-box-shadow:none!important;box-shadow:none!important}.ant-form-item-has-error .ant-calendar-picker-open .ant-calendar-picker-input{border-color:#ff7875;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(255,77,79,.2);box-shadow:0 0 0 2px rgba(255,77,79,.2)}.ant-form-item-has-error .ant-input-prefix{color:#ff4d4f}.ant-form-item-has-error .ant-input-group-addon{color:#ff4d4f;background-color:#fff;border-color:#ff4d4f}.ant-form-item-has-error .has-feedback{color:#ff4d4f}.ant-form-item-has-error.ant-form-item-has-feedback .ant-form-item-children-icon{color:#ff4d4f;-webkit-animation-name:diffZoomIn2!important;animation-name:diffZoomIn2!important}.ant-form-item-has-error .ant-select:not(.ant-select-borderless) .ant-select-selector{border-color:#ff4d4f!important}.ant-form-item-has-error .ant-select:not(.ant-select-borderless).ant-select-focused .ant-select-selector,.ant-form-item-has-error .ant-select:not(.ant-select-borderless).ant-select-open .ant-select-selector{border-color:#ff7875;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(255,77,79,.2);box-shadow:0 0 0 2px rgba(255,77,79,.2)}.ant-form-item-has-error .ant-input-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{border:0}.ant-form-item-has-error .ant-input-number,.ant-form-item-has-error .ant-picker,.ant-form-item-has-error .ant-select.ant-select-auto-complete .ant-input:focus{border-color:#ff4d4f}.ant-form-item-has-error .ant-input-number-focused,.ant-form-item-has-error .ant-input-number:focus,.ant-form-item-has-error .ant-picker-focused,.ant-form-item-has-error .ant-picker:focus{border-color:#ff7875;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(255,77,79,.2);box-shadow:0 0 0 2px rgba(255,77,79,.2)}.ant-form-item-has-error .ant-input-number:not([disabled]):hover,.ant-form-item-has-error .ant-mention-wrapper .ant-mention-editor,.ant-form-item-has-error .ant-mention-wrapper .ant-mention-editor:not([disabled]):hover,.ant-form-item-has-error .ant-picker:not([disabled]):hover{border-color:#ff4d4f}.ant-form-item-has-error .ant-cascader-picker:focus .ant-cascader-input,.ant-form-item-has-error .ant-mention-wrapper.ant-mention-active:not([disabled]) .ant-mention-editor,.ant-form-item-has-error .ant-mention-wrapper .ant-mention-editor:not([disabled]):focus{border-color:#ff7875;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(255,77,79,.2);box-shadow:0 0 0 2px rgba(255,77,79,.2)}.ant-form-item-has-error .ant-transfer-list{border-color:#ff4d4f}.ant-form-item-has-error .ant-transfer-list-search:not([disabled]){border-color:#d9d9d9}.ant-form-item-has-error .ant-transfer-list-search:not([disabled]):hover{border-color:#40a9ff;border-right-width:1px!important}.ant-form-item-has-error .ant-transfer-list-search:not([disabled]):focus{border-color:#40a9ff;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-form-item-has-error-leave .ant-form-item-explain{color:#ff4d4f}.ant-form-item-is-validating.ant-form-item-has-feedback .ant-form-item-children-icon{display:inline-block;color:#1890ff}.ant-form{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum"}.ant-form legend{display:block;width:100%;margin-bottom:20px;padding:0;color:rgba(0,0,0,.45);font-size:16px;line-height:inherit;border:0;border-bottom:1px solid #d9d9d9}.ant-form label{font-size:14px}.ant-form input[type=search]{-webkit-box-sizing:border-box;box-sizing:border-box}.ant-form input[type=checkbox],.ant-form input[type=radio]{line-height:normal}.ant-form input[type=file]{display:block}.ant-form input[type=range]{display:block;width:100%}.ant-form select[multiple],.ant-form select[size]{height:auto}.ant-form input[type=checkbox]:focus,.ant-form input[type=file]:focus,.ant-form input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.ant-form output{display:block;padding-top:15px;color:rgba(0,0,0,.65);font-size:14px;line-height:1.5715}.ant-form .ant-form-text{display:inline-block;padding-right:8px}.ant-form-small .ant-form-item-label>label{height:24px}.ant-form-small .ant-form-item-control-input{min-height:24px}.ant-form-large .ant-form-item-label>label{height:40px}.ant-form-large .ant-form-item-control-input{min-height:40px}.ant-form-item{-webkit-box-sizing:border-box;box-sizing:border-box;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum";margin:0 0 24px;vertical-align:top}.ant-form-item-with-help{margin-bottom:0}.ant-form-item-label{display:inline-block;-ms-flex-positive:0;flex-grow:0;overflow:hidden;white-space:nowrap;text-align:right;vertical-align:middle}.ant-form-item-label-left{text-align:left}.ant-form-item-label>label{position:relative;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;height:32px;color:rgba(0,0,0,.85);font-size:14px}.ant-form-item-label>label>.anticon{font-size:14px;vertical-align:top}.ant-form-item-label>label.ant-form-item-required:before{display:inline-block;margin-right:4px;color:#ff4d4f;font-size:14px;font-family:SimSun,sans-serif;line-height:1;content:"*"}.ant-form-hide-required-mark .ant-form-item-label>label.ant-form-item-required:before{display:none}.ant-form-item-label>label:after{content:":";position:relative;top:-.5px;margin:0 8px 0 2px}.ant-form-item-label>label.ant-form-item-no-colon:after{content:" "}.ant-form-item-control{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-positive:1;flex-grow:1}.ant-form-item-control:first-child:not([class^=ant-col-]):not([class*=" ant-col-"]){width:100%}.ant-form-item-control-input{position:relative;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:32px}.ant-form-item-control-input-content{-ms-flex:auto;flex:auto;max-width:100%}.ant-form-item-explain,.ant-form-item-extra{clear:both;min-height:24px;padding-top:0;color:rgba(0,0,0,.45);font-size:14px;line-height:1.5715;-webkit-transition:color .3s cubic-bezier(.215,.61,.355,1);transition:color .3s cubic-bezier(.215,.61,.355,1)}.show-help-appear,.show-help-enter,.show-help-leave{-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-play-state:paused;animation-play-state:paused}.show-help-appear.show-help-appear-active,.show-help-enter.show-help-enter-active{-webkit-animation-name:antShowHelpIn;animation-name:antShowHelpIn;-webkit-animation-play-state:running;animation-play-state:running}.show-help-leave.show-help-leave-active{-webkit-animation-name:antShowHelpOut;animation-name:antShowHelpOut;-webkit-animation-play-state:running;animation-play-state:running;pointer-events:none}.show-help-appear,.show-help-enter{opacity:0}.show-help-appear,.show-help-enter,.show-help-leave{-webkit-animation-timing-function:cubic-bezier(.645,.045,.355,1);animation-timing-function:cubic-bezier(.645,.045,.355,1)}@-webkit-keyframes antShowHelpIn{0%{-webkit-transform:translateY(-5px);transform:translateY(-5px);opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@keyframes antShowHelpIn{0%{-webkit-transform:translateY(-5px);transform:translateY(-5px);opacity:0}to{-webkit-transform:translateY(0);transform:translateY(0);opacity:1}}@-webkit-keyframes antShowHelpOut{to{-webkit-transform:translateY(-5px);transform:translateY(-5px);opacity:0}}@keyframes antShowHelpOut{to{-webkit-transform:translateY(-5px);transform:translateY(-5px);opacity:0}}@-webkit-keyframes diffZoomIn1{0%{-webkit-transform:scale(0);transform:scale(0)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes diffZoomIn1{0%{-webkit-transform:scale(0);transform:scale(0)}to{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes diffZoomIn2{0%{-webkit-transform:scale(0);transform:scale(0)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes diffZoomIn2{0%{-webkit-transform:scale(0);transform:scale(0)}to{-webkit-transform:scale(1);transform:scale(1)}}@-webkit-keyframes diffZoomIn3{0%{-webkit-transform:scale(0);transform:scale(0)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes diffZoomIn3{0%{-webkit-transform:scale(0);transform:scale(0)}to{-webkit-transform:scale(1);transform:scale(1)}}.ant-form-rtl{direction:rtl}.ant-form-rtl .ant-form-item-label{text-align:left}.ant-form-rtl .ant-form-item-label>label.ant-form-item-required:before{margin-right:0;margin-left:4px}.ant-form-rtl .ant-form-item-label>label:after{margin:0 2px 0 8px}.ant-col-rtl .ant-form-item-control:first-child{width:100%}.ant-form-rtl .ant-form-item-has-feedback .ant-input{padding-right:11px;padding-left:24px}.ant-form-rtl .ant-form-item-has-feedback .ant-input-affix-wrapper .ant-input-suffix{padding-right:11px;padding-left:18px}.ant-form-rtl .ant-form-item-has-feedback .ant-input-affix-wrapper .ant-input{padding:0}.ant-form-rtl .ant-form-item-has-feedback .ant-input-search:not(.ant-input-search-enter-button) .ant-input-suffix{right:auto;left:28px}.ant-form-rtl .ant-form-item-has-feedback .ant-input-number{padding-left:18px}.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-arrow,.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-selection__clear,.ant-form-rtl .ant-form-item-has-feedback>.ant-select .ant-select-arrow,.ant-form-rtl .ant-form-item-has-feedback>.ant-select .ant-select-selection__clear{right:auto;left:28px}.ant-form-rtl .ant-form-item-has-feedback :not(.ant-input-group-addon)>.ant-select .ant-select-selection-selected-value,.ant-form-rtl .ant-form-item-has-feedback>.ant-select .ant-select-selection-selected-value{padding-right:0;padding-left:42px}.ant-form-rtl .ant-form-item-has-feedback .ant-cascader-picker-arrow{margin-right:0;margin-left:17px}.ant-form-rtl .ant-form-item-has-feedback .ant-cascader-picker-clear{right:auto;left:28px}.ant-form-rtl .ant-form-item-has-feedback .ant-picker,.ant-form-rtl .ant-form-item-has-feedback .ant-picker-large{padding-right:11px;padding-left:29.2px}.ant-form-rtl .ant-form-item-has-feedback .ant-picker-small{padding-right:7px;padding-left:25.2px}.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-has-error .ant-form-item-children-icon,.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-has-success .ant-form-item-children-icon,.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-has-warning .ant-form-item-children-icon,.ant-form-rtl .ant-form-item-has-feedback.ant-form-item-is-validating .ant-form-item-children-icon{right:auto;left:0}.ant-form-rtl.ant-form-inline .ant-form-item{margin-right:0;margin-left:16px}.ant-drawer{position:fixed;z-index:1000;width:0;height:100%;-webkit-transition:height 0s ease .3s,width 0s ease .3s,-webkit-transform .3s cubic-bezier(.7,.3,.1,1);transition:height 0s ease .3s,width 0s ease .3s,-webkit-transform .3s cubic-bezier(.7,.3,.1,1);transition:transform .3s cubic-bezier(.7,.3,.1,1),height 0s ease .3s,width 0s ease .3s;transition:transform .3s cubic-bezier(.7,.3,.1,1),height 0s ease .3s,width 0s ease .3s,-webkit-transform .3s cubic-bezier(.7,.3,.1,1)}.ant-drawer>*{-webkit-transition:-webkit-transform .3s cubic-bezier(.7,.3,.1,1),-webkit-box-shadow .3s cubic-bezier(.7,.3,.1,1);transition:-webkit-transform .3s cubic-bezier(.7,.3,.1,1),-webkit-box-shadow .3s cubic-bezier(.7,.3,.1,1);transition:transform .3s cubic-bezier(.7,.3,.1,1),box-shadow .3s cubic-bezier(.7,.3,.1,1);transition:transform .3s cubic-bezier(.7,.3,.1,1),box-shadow .3s cubic-bezier(.7,.3,.1,1),-webkit-transform .3s cubic-bezier(.7,.3,.1,1),-webkit-box-shadow .3s cubic-bezier(.7,.3,.1,1)}.ant-drawer-content-wrapper{position:absolute}.ant-drawer .ant-drawer-content{width:100%;height:100%}.ant-drawer-left,.ant-drawer-right{top:0;width:0;height:100%}.ant-drawer-left .ant-drawer-content-wrapper,.ant-drawer-right .ant-drawer-content-wrapper{height:100%}.ant-drawer-left.ant-drawer-open,.ant-drawer-right.ant-drawer-open{width:100%;-webkit-transition:-webkit-transform .3s cubic-bezier(.7,.3,.1,1);transition:-webkit-transform .3s cubic-bezier(.7,.3,.1,1);transition:transform .3s cubic-bezier(.7,.3,.1,1);transition:transform .3s cubic-bezier(.7,.3,.1,1),-webkit-transform .3s cubic-bezier(.7,.3,.1,1)}.ant-drawer-left.ant-drawer-open.no-mask,.ant-drawer-right.ant-drawer-open.no-mask{width:0}.ant-drawer-left,.ant-drawer-left .ant-drawer-content-wrapper{left:0}.ant-drawer-left.ant-drawer-open .ant-drawer-content-wrapper{-webkit-box-shadow:6px 0 16px -8px rgba(0,0,0,.08),9px 0 28px 0 rgba(0,0,0,.05),12px 0 48px 16px rgba(0,0,0,.03);box-shadow:6px 0 16px -8px rgba(0,0,0,.08),9px 0 28px 0 rgba(0,0,0,.05),12px 0 48px 16px rgba(0,0,0,.03)}.ant-drawer-right,.ant-drawer-right .ant-drawer-content-wrapper{right:0}.ant-drawer-right.ant-drawer-open .ant-drawer-content-wrapper{-webkit-box-shadow:-6px 0 16px -8px rgba(0,0,0,.08),-9px 0 28px 0 rgba(0,0,0,.05),-12px 0 48px 16px rgba(0,0,0,.03);box-shadow:-6px 0 16px -8px rgba(0,0,0,.08),-9px 0 28px 0 rgba(0,0,0,.05),-12px 0 48px 16px rgba(0,0,0,.03)}.ant-drawer-right.ant-drawer-open.no-mask{right:1px;-webkit-transform:translateX(1px);transform:translateX(1px)}.ant-drawer-bottom,.ant-drawer-top{left:0;width:100%;height:0%}.ant-drawer-bottom .ant-drawer-content-wrapper,.ant-drawer-top .ant-drawer-content-wrapper{width:100%}.ant-drawer-bottom.ant-drawer-open,.ant-drawer-top.ant-drawer-open{height:100%;-webkit-transition:-webkit-transform .3s cubic-bezier(.7,.3,.1,1);transition:-webkit-transform .3s cubic-bezier(.7,.3,.1,1);transition:transform .3s cubic-bezier(.7,.3,.1,1);transition:transform .3s cubic-bezier(.7,.3,.1,1),-webkit-transform .3s cubic-bezier(.7,.3,.1,1)}.ant-drawer-bottom.ant-drawer-open.no-mask,.ant-drawer-top.ant-drawer-open.no-mask{height:0%}.ant-drawer-top{top:0}.ant-drawer-top.ant-drawer-open .ant-drawer-content-wrapper{-webkit-box-shadow:0 6px 16px -8px rgba(0,0,0,.08),0 9px 28px 0 rgba(0,0,0,.05),0 12px 48px 16px rgba(0,0,0,.03);box-shadow:0 6px 16px -8px rgba(0,0,0,.08),0 9px 28px 0 rgba(0,0,0,.05),0 12px 48px 16px rgba(0,0,0,.03)}.ant-drawer-bottom,.ant-drawer-bottom .ant-drawer-content-wrapper{bottom:0}.ant-drawer-bottom.ant-drawer-open .ant-drawer-content-wrapper{-webkit-box-shadow:0 -6px 16px -8px rgba(0,0,0,.08),0 -9px 28px 0 rgba(0,0,0,.05),0 -12px 48px 16px rgba(0,0,0,.03);box-shadow:0 -6px 16px -8px rgba(0,0,0,.08),0 -9px 28px 0 rgba(0,0,0,.05),0 -12px 48px 16px rgba(0,0,0,.03)}.ant-drawer-bottom.ant-drawer-open.no-mask{bottom:1px;-webkit-transform:translateY(1px);transform:translateY(1px)}.ant-drawer.ant-drawer-open .ant-drawer-mask{height:100%;opacity:1;-webkit-transition:none;transition:none;-webkit-animation:antdDrawerFadeIn .3s cubic-bezier(.7,.3,.1,1);animation:antdDrawerFadeIn .3s cubic-bezier(.7,.3,.1,1)}.ant-drawer-title{margin:0;color:rgba(0,0,0,.85);font-weight:500;font-size:16px;line-height:22px}.ant-drawer-content{position:relative;z-index:1;overflow:auto;background-color:#fff;background-clip:padding-box;border:0}.ant-drawer-close{position:absolute;top:0;right:0;z-index:10;display:block;padding:20px;color:rgba(0,0,0,.45);font-weight:700;font-size:16px;font-style:normal;line-height:1;text-align:center;text-transform:none;text-decoration:none;background:transparent;border:0;outline:0;cursor:pointer;-webkit-transition:color .3s;transition:color .3s;text-rendering:auto}.ant-drawer-close:focus,.ant-drawer-close:hover{color:rgba(0,0,0,.75);text-decoration:none}.ant-drawer-header-no-title .ant-drawer-close{margin-right:var(--scroll-bar);padding-right:calc(20px - var(--scroll-bar))}.ant-drawer-header{position:relative;padding:16px 24px;border-bottom:1px solid #f0f0f0;border-radius:2px 2px 0 0}.ant-drawer-header,.ant-drawer-header-no-title{color:rgba(0,0,0,.65);background:#fff}.ant-drawer-wrapper-body{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-wrap:nowrap;flex-wrap:nowrap;width:100%;height:100%}.ant-drawer-body{-ms-flex-positive:1;flex-grow:1;padding:24px;overflow:auto;font-size:14px;line-height:1.5715;word-wrap:break-word}.ant-drawer-footer{-ms-flex-negative:0;flex-shrink:0;padding:10px;border-top:1px solid #f0f0f0}.ant-drawer-mask{position:absolute;top:0;left:0;width:100%;height:0;background-color:rgba(0,0,0,.45);opacity:0;filter:alpha(opacity=45);-webkit-transition:opacity .3s linear,height 0s ease .3s;transition:opacity .3s linear,height 0s ease .3s}.ant-drawer-open-content{-webkit-box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05)}.ant-drawer .ant-picker-clear{background:#fff}@-webkit-keyframes antdDrawerFadeIn{0%{opacity:0}to{opacity:1}}@keyframes antdDrawerFadeIn{0%{opacity:0}to{opacity:1}}.ant-drawer-rtl{direction:rtl}.ant-drawer-rtl .ant-drawer-close{right:auto;left:0}.ant-message{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum";position:fixed;top:16px;left:0;z-index:1010;width:100%;pointer-events:none}.ant-message-notice{padding:8px;text-align:center}.ant-message-notice:first-child{margin-top:-8px}.ant-message-notice-content{display:inline-block;padding:10px 16px;background:#fff;border-radius:2px;-webkit-box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);pointer-events:all}.ant-message-success .anticon{color:#52c41a}.ant-message-error .anticon{color:#ff4d4f}.ant-message-warning .anticon{color:#faad14}.ant-message-info .anticon,.ant-message-loading .anticon{color:#1890ff}.ant-message .anticon{position:relative;top:1px;margin-right:8px;font-size:16px}.ant-message-notice.move-up-leave.move-up-leave-active{-webkit-animation-name:MessageMoveOut;animation-name:MessageMoveOut;-webkit-animation-duration:.3s;animation-duration:.3s}@-webkit-keyframes MessageMoveOut{0%{max-height:150px;padding:8px;opacity:1}to{max-height:0;padding:0;opacity:0}}@keyframes MessageMoveOut{0%{max-height:150px;padding:8px;opacity:1}to{max-height:0;padding:0;opacity:0}}.ant-message-rtl,.ant-message-rtl span{direction:rtl}.ant-message-rtl .anticon{margin-right:0;margin-left:8px}.ant-modal{-webkit-box-sizing:border-box;box-sizing:border-box;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum";position:relative;top:100px;width:auto;margin:0 auto;padding:0 0 24px;pointer-events:none}.ant-modal-wrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;overflow:auto;outline:0;-webkit-overflow-scrolling:touch}.ant-modal-title{margin:0;color:rgba(0,0,0,.85);font-weight:500;font-size:16px;line-height:22px;word-wrap:break-word}.ant-modal-content{position:relative;background-color:#fff;background-clip:padding-box;border:0;border-radius:2px;-webkit-box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);box-shadow:0 3px 6px -4px rgba(0,0,0,.12),0 6px 16px 0 rgba(0,0,0,.08),0 9px 28px 8px rgba(0,0,0,.05);pointer-events:auto}.ant-modal-close{position:absolute;top:0;right:0;z-index:10;padding:0;color:rgba(0,0,0,.45);font-weight:700;line-height:1;text-decoration:none;background:transparent;border:0;outline:0;cursor:pointer;-webkit-transition:color .3s;transition:color .3s}.ant-modal-close-x{display:block;width:56px;height:56px;font-size:16px;font-style:normal;line-height:56px;text-align:center;text-transform:none;text-rendering:auto}.ant-modal-close:focus,.ant-modal-close:hover{color:rgba(0,0,0,.75);text-decoration:none}.ant-modal-header{padding:16px 24px;color:rgba(0,0,0,.65);background:#fff;border-bottom:1px solid #f0f0f0;border-radius:2px 2px 0 0}.ant-modal-body{padding:24px;font-size:14px;line-height:1.5715;word-wrap:break-word}.ant-modal-footer{padding:10px 16px;text-align:right;background:transparent;border-top:1px solid #f0f0f0;border-radius:0 0 2px 2px}.ant-modal-footer button+button{margin-bottom:0;margin-left:8px}.ant-modal.zoom-appear,.ant-modal.zoom-enter{-webkit-transform:none;transform:none;opacity:0;-webkit-animation-duration:.3s;animation-duration:.3s;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-modal-mask{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;height:100%;background-color:rgba(0,0,0,.45);filter:alpha(opacity=50)}.ant-modal-mask-hidden{display:none}.ant-modal-open{overflow:hidden}.ant-modal-centered{text-align:center}.ant-modal-centered:before{display:inline-block;width:0;height:100%;vertical-align:middle;content:""}.ant-modal-centered .ant-modal{top:0;display:inline-block;text-align:left;vertical-align:middle}@media (max-width:767px){.ant-modal{max-width:calc(100vw - 16px);margin:8px auto}.ant-modal-centered .ant-modal{-ms-flex:1;flex:1 1}}.ant-modal-confirm .ant-modal-close,.ant-modal-confirm .ant-modal-header{display:none}.ant-modal-confirm .ant-modal-body{padding:32px 32px 24px}.ant-modal-confirm-body-wrapper:before{display:table;content:""}.ant-modal-confirm-body-wrapper:after{display:table;clear:both;content:""}.ant-modal-confirm-body .ant-modal-confirm-title{display:block;overflow:hidden;color:rgba(0,0,0,.85);font-weight:500;font-size:16px;line-height:1.4}.ant-modal-confirm-body .ant-modal-confirm-content{margin-top:8px;color:rgba(0,0,0,.65);font-size:14px}.ant-modal-confirm-body>.anticon{float:left;margin-right:16px;font-size:22px}.ant-modal-confirm-body>.anticon+.ant-modal-confirm-title+.ant-modal-confirm-content{margin-left:38px}.ant-modal-confirm .ant-modal-confirm-btns{float:right;margin-top:24px}.ant-modal-confirm .ant-modal-confirm-btns button+button{margin-bottom:0;margin-left:8px}.ant-modal-confirm-error .ant-modal-confirm-body>.anticon{color:#ff4d4f}.ant-modal-confirm-confirm .ant-modal-confirm-body>.anticon,.ant-modal-confirm-warning .ant-modal-confirm-body>.anticon{color:#faad14}.ant-modal-confirm-info .ant-modal-confirm-body>.anticon{color:#1890ff}.ant-modal-confirm-success .ant-modal-confirm-body>.anticon{color:#52c41a}.ant-modal-wrap-rtl{direction:rtl}.ant-modal-wrap-rtl .ant-modal-close{right:auto;left:0}.ant-modal-wrap-rtl .ant-modal-footer{text-align:left}.ant-modal-wrap-rtl .ant-modal-footer button+button{margin-right:8px;margin-left:0}.ant-modal-wrap-rtl.ant-modal-centered .ant-modal{text-align:right}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-ink-bar{visibility:hidden}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab{margin:0 2px 0 0;padding:8px 16px;line-height:22px;background:#fafafa;border:1px solid #f0f0f0;border-radius:2px 2px 0 0;-webkit-transition:all .3s cubic-bezier(.645,.045,.355,1);transition:all .3s cubic-bezier(.645,.045,.355,1)}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active{color:#1890ff;background:#fff;border-color:#f0f0f0;border-bottom:1px solid #fff}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-active:before{border-top:2px solid transparent}.ant-tabs.ant-tabs-small .ant-tabs-card-bar .ant-tabs-tab{padding:6px 16px}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-disabled{color:rgba(0,0,0,.25)}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab-inactive{padding:0}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-nav-wrap{margin-bottom:0}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab .ant-tabs-close-x{width:16px;height:14px;margin-right:-5px;margin-left:3px;overflow:hidden;color:rgba(0,0,0,.45);font-size:12px;vertical-align:middle;-webkit-transition:all .3s;transition:all .3s}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab .ant-tabs-close-x:hover{color:rgba(0,0,0,.85)}.ant-tabs.ant-tabs-card .ant-tabs-card-content>.ant-tabs-tabpane,.ant-tabs.ant-tabs-editable-card .ant-tabs-card-content>.ant-tabs-tabpane{-webkit-transition:none!important;transition:none!important}.ant-tabs.ant-tabs-card .ant-tabs-card-content>.ant-tabs-tabpane-inactive,.ant-tabs.ant-tabs-editable-card .ant-tabs-card-content>.ant-tabs-tabpane-inactive{overflow:hidden}.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab:hover .anticon-close{opacity:1}.ant-tabs-extra-content{line-height:46.001px}.ant-tabs-extra-content .ant-tabs-new-tab{position:relative;width:20px;height:20px;color:rgba(0,0,0,.65);font-size:12px;line-height:20px;text-align:center;border:1px solid #f0f0f0;border-radius:2px;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ant-tabs-extra-content .ant-tabs-new-tab:hover{color:#1890ff;border-color:#1890ff}.ant-tabs-extra-content .ant-tabs-new-tab svg{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto}.ant-tabs.ant-tabs-large .ant-tabs-extra-content{line-height:57.144px}.ant-tabs.ant-tabs-small .ant-tabs-extra-content{line-height:38.001px}.ant-tabs.ant-tabs-card .ant-tabs-extra-content{line-height:40px}.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-nav-container,.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-nav-container{height:100%}.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab,.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab{margin-bottom:12px;border-bottom:1px solid #f0f0f0}.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab-active,.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab-active{padding-bottom:4px}.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab:last-child,.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab:last-child{margin-bottom:12px}.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-new-tab,.ant-tabs-vertical.ant-tabs-card .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-new-tab{width:90%}.ant-tabs-vertical.ant-tabs-card.ant-tabs-left .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-nav-wrap{margin-right:0}.ant-tabs-vertical.ant-tabs-card.ant-tabs-left .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab{margin-right:1px;border-right:0;border-radius:2px 0 0 2px}.ant-tabs-vertical.ant-tabs-card.ant-tabs-left .ant-tabs-card-bar.ant-tabs-left-bar .ant-tabs-tab-active{margin-right:-1px;padding-right:18px}.ant-tabs-vertical.ant-tabs-card.ant-tabs-right .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-nav-wrap{margin-left:0}.ant-tabs-vertical.ant-tabs-card.ant-tabs-right .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab{margin-left:1px;border-left:0;border-radius:0 2px 2px 0}.ant-tabs-vertical.ant-tabs-card.ant-tabs-right .ant-tabs-card-bar.ant-tabs-right-bar .ant-tabs-tab-active{margin-left:-1px;padding-left:18px}.ant-tabs .ant-tabs-card-bar.ant-tabs-bottom-bar .ant-tabs-tab{height:auto;border-top-color:#f0f0f0;border-bottom:1px solid #f0f0f0;border-radius:0 0 2px 2px}.ant-tabs .ant-tabs-card-bar.ant-tabs-bottom-bar .ant-tabs-tab-active{color:#1890ff;border-top-color:#fff}.ant-tabs{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum";position:relative;overflow:hidden}.ant-tabs:after,.ant-tabs:before{display:table;content:""}.ant-tabs:after{clear:both}.ant-tabs-ink-bar{position:absolute;bottom:1px;left:0;z-index:1;-webkit-box-sizing:border-box;box-sizing:border-box;width:0;height:2px;background-color:#1890ff;-webkit-transform-origin:0 0;transform-origin:0 0}.ant-tabs-bar{margin:0 0 16px;border-bottom:1px solid #f0f0f0;outline:none}.ant-tabs-bar,.ant-tabs-nav-container{-webkit-transition:padding .3s cubic-bezier(.645,.045,.355,1);transition:padding .3s cubic-bezier(.645,.045,.355,1)}.ant-tabs-nav-container{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;margin-bottom:-1px;overflow:hidden;font-size:14px;line-height:1.5715;white-space:nowrap}.ant-tabs-nav-container:before{display:table;content:""}.ant-tabs-nav-container:after{display:table;clear:both;content:""}.ant-tabs-nav-container-scrolling{padding-right:32px;padding-left:32px}.ant-tabs-bottom .ant-tabs-bottom-bar{margin-top:16px;margin-bottom:0;border-top:1px solid #f0f0f0;border-bottom:none}.ant-tabs-bottom .ant-tabs-bottom-bar .ant-tabs-ink-bar{top:1px;bottom:auto}.ant-tabs-bottom .ant-tabs-bottom-bar .ant-tabs-nav-container{margin-top:-1px;margin-bottom:0}.ant-tabs-tab-next,.ant-tabs-tab-prev{position:absolute;z-index:2;width:0;height:100%;color:rgba(0,0,0,.45);text-align:center;background-color:transparent;border:0;cursor:pointer;opacity:0;-webkit-transition:width .3s cubic-bezier(.645,.045,.355,1),opacity .3s cubic-bezier(.645,.045,.355,1),color .3s cubic-bezier(.645,.045,.355,1);transition:width .3s cubic-bezier(.645,.045,.355,1),opacity .3s cubic-bezier(.645,.045,.355,1),color .3s cubic-bezier(.645,.045,.355,1);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}.ant-tabs-tab-next.ant-tabs-tab-arrow-show,.ant-tabs-tab-prev.ant-tabs-tab-arrow-show{width:32px;height:100%;opacity:1;pointer-events:auto}.ant-tabs-tab-next:hover,.ant-tabs-tab-prev:hover{color:rgba(0,0,0,.65)}.ant-tabs-tab-next-icon,.ant-tabs-tab-prev-icon{position:absolute;top:50%;left:50%;font-weight:700;font-style:normal;-webkit-font-feature-settings:normal;font-feature-settings:normal;font-variant:normal;line-height:inherit;text-align:center;text-transform:none;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.ant-tabs-tab-next-icon-target,.ant-tabs-tab-prev-icon-target{display:block;display:inline-block;font-size:10px}.ant-tabs-tab-btn-disabled{cursor:not-allowed}.ant-tabs-tab-btn-disabled,.ant-tabs-tab-btn-disabled:hover{color:rgba(0,0,0,.25)}.ant-tabs-tab-next{right:2px}.ant-tabs-tab-prev{left:0}:root .ant-tabs-tab-prev{-webkit-filter:none;filter:none}.ant-tabs-nav-wrap{margin-bottom:-1px;overflow:hidden}.ant-tabs-nav-scroll{overflow:hidden;white-space:nowrap}.ant-tabs-nav{position:relative;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding-left:0;list-style:none;-webkit-transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1)}.ant-tabs-nav:after,.ant-tabs-nav:before{display:table;content:" "}.ant-tabs-nav:after{clear:both}.ant-tabs-nav .ant-tabs-tab{position:relative;display:inline-block;-webkit-box-sizing:border-box;box-sizing:border-box;height:100%;margin:0 32px 0 0;padding:12px 0;text-decoration:none;cursor:pointer;-webkit-transition:color .3s cubic-bezier(.645,.045,.355,1);transition:color .3s cubic-bezier(.645,.045,.355,1)}.ant-tabs-nav .ant-tabs-tab:before{position:absolute;top:-1px;left:0;width:100%;border-top:2px solid transparent;border-radius:2px 2px 0 0;-webkit-transition:all .3s;transition:all .3s;content:"";pointer-events:none}.ant-tabs-nav .ant-tabs-tab:last-child{margin-right:0}.ant-tabs-nav .ant-tabs-tab:hover{color:#40a9ff}.ant-tabs-nav .ant-tabs-tab:active{color:#096dd9}.ant-tabs-nav .ant-tabs-tab .anticon{margin-right:12px}.ant-tabs-nav .ant-tabs-tab-active{color:#1890ff;font-weight:500;outline:none}.ant-tabs-nav .ant-tabs-tab-disabled,.ant-tabs-nav .ant-tabs-tab-disabled:hover{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-tabs .ant-tabs-large-bar .ant-tabs-nav-container{font-size:16px}.ant-tabs .ant-tabs-large-bar .ant-tabs-tab{padding:16px 0}.ant-tabs .ant-tabs-small-bar .ant-tabs-nav-container{font-size:14px}.ant-tabs .ant-tabs-small-bar .ant-tabs-tab{padding:8px 0}.ant-tabs-content:before{display:block;overflow:hidden;content:""}.ant-tabs .ant-tabs-tabpane{outline:none}.ant-tabs .ant-tabs-bottom-content,.ant-tabs .ant-tabs-top-content{width:100%}.ant-tabs .ant-tabs-bottom-content>.ant-tabs-tabpane,.ant-tabs .ant-tabs-top-content>.ant-tabs-tabpane{-ms-flex-negative:0;flex-shrink:0;width:100%;-webkit-backface-visibility:hidden;opacity:1;-webkit-transition:opacity .45s;transition:opacity .45s}.ant-tabs .ant-tabs-bottom-content>.ant-tabs-tabpane-inactive,.ant-tabs .ant-tabs-top-content>.ant-tabs-tabpane-inactive{height:0;padding:0!important;overflow:hidden;opacity:0;pointer-events:none}.ant-tabs .ant-tabs-bottom-content>.ant-tabs-tabpane-inactive input,.ant-tabs .ant-tabs-top-content>.ant-tabs-tabpane-inactive input{visibility:hidden}.ant-tabs .ant-tabs-bottom-content.ant-tabs-content-animated,.ant-tabs .ant-tabs-top-content.ant-tabs-content-animated{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-webkit-transition:margin-left .3s cubic-bezier(.645,.045,.355,1);transition:margin-left .3s cubic-bezier(.645,.045,.355,1);will-change:margin-left}.ant-tabs .ant-tabs-left-bar,.ant-tabs .ant-tabs-right-bar{height:100%;border-bottom:0}.ant-tabs .ant-tabs-left-bar .ant-tabs-tab-arrow-show,.ant-tabs .ant-tabs-right-bar .ant-tabs-tab-arrow-show{width:100%;height:32px}.ant-tabs .ant-tabs-left-bar .ant-tabs-tab,.ant-tabs .ant-tabs-right-bar .ant-tabs-tab{display:block;float:none;margin:0 0 16px;padding:8px 24px;text-align:center}.ant-tabs .ant-tabs-left-bar .ant-tabs-extra-content,.ant-tabs .ant-tabs-right-bar .ant-tabs-extra-content{text-align:center}.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-scroll,.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-scroll{width:auto}.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-container,.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-wrap,.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-container,.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-wrap{height:100%}.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-container,.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-container{margin-bottom:0}.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-container.ant-tabs-nav-container-scrolling,.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-container.ant-tabs-nav-container-scrolling{padding:32px 0}.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-wrap,.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-wrap{margin-bottom:0}.ant-tabs .ant-tabs-left-bar .ant-tabs-nav,.ant-tabs .ant-tabs-right-bar .ant-tabs-nav{width:100%}.ant-tabs .ant-tabs-left-bar .ant-tabs-ink-bar,.ant-tabs .ant-tabs-right-bar .ant-tabs-ink-bar{top:0;bottom:auto;left:auto;width:2px;height:0}.ant-tabs .ant-tabs-left-bar .ant-tabs-tab-next,.ant-tabs .ant-tabs-right-bar .ant-tabs-tab-next{right:0;bottom:0;width:100%;height:32px}.ant-tabs .ant-tabs-left-bar .ant-tabs-tab-prev,.ant-tabs .ant-tabs-right-bar .ant-tabs-tab-prev{top:0;width:100%;height:32px}.ant-tabs .ant-tabs-left-content,.ant-tabs .ant-tabs-right-content{width:auto;margin-top:0!important;overflow:hidden}.ant-tabs .ant-tabs-left-bar{float:left;margin-right:-1px;margin-bottom:0;border-right:1px solid #f0f0f0}.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-container,.ant-tabs .ant-tabs-left-bar .ant-tabs-nav-wrap{margin-right:-1px}.ant-tabs .ant-tabs-left-bar .ant-tabs-ink-bar{right:1px}.ant-tabs .ant-tabs-left-content{padding-left:24px;border-left:1px solid #f0f0f0}.ant-tabs .ant-tabs-right-bar{float:right;margin-bottom:0;margin-left:-1px;border-left:1px solid #f0f0f0}.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-container,.ant-tabs .ant-tabs-right-bar .ant-tabs-nav-wrap{margin-left:-1px}.ant-tabs .ant-tabs-right-bar .ant-tabs-ink-bar{left:1px}.ant-tabs .ant-tabs-right-content{padding-right:24px;border-right:1px solid #f0f0f0}.ant-tabs-bottom .ant-tabs-ink-bar-animated,.ant-tabs-top .ant-tabs-ink-bar-animated{-webkit-transition:width .2s cubic-bezier(.645,.045,.355,1),left .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:width .2s cubic-bezier(.645,.045,.355,1),left .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1),width .2s cubic-bezier(.645,.045,.355,1),left .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1),width .2s cubic-bezier(.645,.045,.355,1),left .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1)}.ant-tabs-left .ant-tabs-ink-bar-animated,.ant-tabs-right .ant-tabs-ink-bar-animated{-webkit-transition:height .2s cubic-bezier(.645,.045,.355,1),top .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:height .2s cubic-bezier(.645,.045,.355,1),top .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1),height .2s cubic-bezier(.645,.045,.355,1),top .3s cubic-bezier(.645,.045,.355,1);transition:transform .3s cubic-bezier(.645,.045,.355,1),height .2s cubic-bezier(.645,.045,.355,1),top .3s cubic-bezier(.645,.045,.355,1),-webkit-transform .3s cubic-bezier(.645,.045,.355,1)}.ant-tabs-no-animation>.ant-tabs-content>.ant-tabs-content-animated,.no-flex>.ant-tabs-content>.ant-tabs-content-animated{margin-left:0!important;-webkit-transform:none!important;transform:none!important}.ant-tabs-no-animation>.ant-tabs-content>.ant-tabs-tabpane-inactive,.no-flex>.ant-tabs-content>.ant-tabs-tabpane-inactive{height:0;padding:0!important;overflow:hidden;opacity:0;pointer-events:none}.ant-tabs-no-animation>.ant-tabs-content>.ant-tabs-tabpane-inactive input,.no-flex>.ant-tabs-content>.ant-tabs-tabpane-inactive input{visibility:hidden}.ant-tabs-left-content>.ant-tabs-content-animated,.ant-tabs-right-content>.ant-tabs-content-animated{margin-left:0!important;-webkit-transform:none!important;transform:none!important}.ant-tabs-left-content>.ant-tabs-tabpane-inactive,.ant-tabs-right-content>.ant-tabs-tabpane-inactive{height:0;padding:0!important;overflow:hidden;opacity:0;pointer-events:none}.ant-tabs-left-content>.ant-tabs-tabpane-inactive input,.ant-tabs-right-content>.ant-tabs-tabpane-inactive input{visibility:hidden}.ant-tabs-rtl{direction:rtl}.ant-tabs-rtl .ant-tabs-ink-bar{right:0;left:auto}.ant-tabs-rtl .ant-tabs-tab-next{right:auto;left:2px}.ant-tabs-rtl .ant-tabs-tab-prev{right:2px;left:auto}.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab{margin:0 0 0 32px}.ant-tabs-rtl .ant-tabs-nav .ant-tabs-tab .anticon{margin-right:0;margin-left:8px}.ant-tabs-rtl.ant-tabs .ant-tabs-left-bar .ant-tabs-tab,.ant-tabs-rtl.ant-tabs .ant-tabs-right-bar .ant-tabs-tab{margin:0 0 16px}.ant-tabs .ant-tabs-left-bar .ant-tabs-tab:last-child,.ant-tabs .ant-tabs-right-bar .ant-tabs-tab:last-child{margin-bottom:0}.ant-tabs-rtl.ant-tabs .ant-tabs-right-bar .ant-tabs-ink-bar{right:auto;left:1px}.ant-tabs-rtl.ant-tabs.ant-tabs-card .ant-tabs-card-bar .ant-tabs-tab .ant-tabs-close-x{margin-right:3px;margin-left:-5px}.ant-tabs-rtl .ant-tabs-extra-content{float:left!important}.ant-collapse{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum";background-color:#fafafa;border:1px solid #d9d9d9;border-bottom:0;border-radius:2px}.ant-collapse>.ant-collapse-item{border-bottom:1px solid #d9d9d9}.ant-collapse>.ant-collapse-item:last-child,.ant-collapse>.ant-collapse-item:last-child>.ant-collapse-header{border-radius:0 0 2px 2px}.ant-collapse>.ant-collapse-item>.ant-collapse-header{position:relative;padding:12px 16px 12px 40px;color:rgba(0,0,0,.85);line-height:22px;cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ant-collapse>.ant-collapse-item>.ant-collapse-header:before{display:table;content:""}.ant-collapse>.ant-collapse-item>.ant-collapse-header:after{display:table;clear:both;content:""}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;top:50%;left:16px;display:inline-block;font-size:12px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow>*{line-height:1}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow svg{display:inline-block}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow:before{display:none}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow .ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow-icon{display:block}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow svg{-webkit-transition:-webkit-transform .24s;transition:-webkit-transform .24s;transition:transform .24s;transition:transform .24s,-webkit-transform .24s}.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-extra{float:right}.ant-collapse>.ant-collapse-item>.ant-collapse-header:focus{outline:none}.ant-collapse>.ant-collapse-item.ant-collapse-no-arrow>.ant-collapse-header{padding-left:12px}.ant-collapse-icon-position-right>.ant-collapse-item>.ant-collapse-header{padding:12px 40px 12px 16px}.ant-collapse-icon-position-right>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow{right:16px;left:auto}.ant-collapse-anim-active{-webkit-transition:height .2s cubic-bezier(.215,.61,.355,1);transition:height .2s cubic-bezier(.215,.61,.355,1)}.ant-collapse-content{overflow:hidden;color:rgba(0,0,0,.65);background-color:#fff;border-top:1px solid #d9d9d9}.ant-collapse-content>.ant-collapse-content-box{padding:16px}.ant-collapse-content-inactive{display:none}.ant-collapse-item:last-child>.ant-collapse-content{border-radius:0 0 2px 2px}.ant-collapse-borderless{background-color:#fafafa;border:0}.ant-collapse-borderless>.ant-collapse-item{border-bottom:1px solid #d9d9d9}.ant-collapse-borderless>.ant-collapse-item:last-child,.ant-collapse-borderless>.ant-collapse-item:last-child .ant-collapse-header{border-radius:0}.ant-collapse-borderless>.ant-collapse-item>.ant-collapse-content{background-color:transparent;border-top:0}.ant-collapse-borderless>.ant-collapse-item>.ant-collapse-content>.ant-collapse-content-box{padding-top:4px}.ant-collapse .ant-collapse-item-disabled>.ant-collapse-header,.ant-collapse .ant-collapse-item-disabled>.ant-collapse-header>.arrow{color:rgba(0,0,0,.25);cursor:not-allowed}.ant-collapse-rtl{direction:rtl}.ant-collapse-rtl .ant-collapse>.ant-collapse-item>.ant-collapse-header{padding:12px 40px 12px 16px}.ant-collapse-rtl.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-arrow svg{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.ant-collapse-rtl.ant-collapse>.ant-collapse-item>.ant-collapse-header .ant-collapse-extra{float:left}.ant-collapse-rtl.ant-collapse>.ant-collapse-item.ant-collapse-no-arrow>.ant-collapse-header{padding-right:12px;padding-left:0}.ant-input-affix-wrapper{position:relative;display:inline-block;width:100%;min-width:0;color:rgba(0,0,0,.65);font-size:14px;line-height:1.5715;background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;-webkit-transition:all .3s;transition:all .3s;display:-ms-inline-flexbox;display:inline-flex;height:32px;padding:0 11px}.ant-input-affix-wrapper::-moz-placeholder{opacity:1}.ant-input-affix-wrapper::-webkit-input-placeholder{color:#bfbfbf}.ant-input-affix-wrapper:-ms-input-placeholder{color:#bfbfbf}.ant-input-affix-wrapper::-ms-input-placeholder{color:#bfbfbf}.ant-input-affix-wrapper::placeholder{color:#bfbfbf}.ant-input-affix-wrapper:placeholder-shown{text-overflow:ellipsis}.ant-input-affix-wrapper:hover{border-color:#40a9ff;border-right-width:1px!important}.ant-input-rtl .ant-input-affix-wrapper:hover{border-right-width:0;border-left-width:1px!important}.ant-input-affix-wrapper-focused,.ant-input-affix-wrapper:focus{border-color:#40a9ff;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-input-rtl .ant-input-affix-wrapper-focused,.ant-input-rtl .ant-input-affix-wrapper:focus{border-right-width:0;border-left-width:1px!important}.ant-input-affix-wrapper-disabled{color:rgba(0,0,0,.25);background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-input-affix-wrapper-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input-affix-wrapper[disabled]{color:rgba(0,0,0,.25);background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-input-affix-wrapper[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}textarea.ant-input-affix-wrapper{max-width:100%;height:auto;min-height:32px;line-height:1.5715;vertical-align:bottom;-webkit-transition:all .3s,height 0s;transition:all .3s,height 0s}.ant-input-affix-wrapper-lg{padding:6.5px 11px;font-size:16px}.ant-input-affix-wrapper-sm{padding:0 7px}.ant-input-affix-wrapper-rtl{direction:rtl}.ant-input-affix-wrapper-lg{height:40px;padding-top:0;padding-bottom:0}.ant-input-affix-wrapper-sm{height:24px;padding-top:0;padding-bottom:0}.ant-input-affix-wrapper-disabled .ant-input[disabled]{background:transparent}.ant-input-affix-wrapper>input.ant-input{padding-right:0;padding-left:0;border:none;outline:none}.ant-input-affix-wrapper>input.ant-input:focus{-webkit-box-shadow:none;box-shadow:none}.ant-input-affix-wrapper:before{width:0;visibility:hidden;content:"\a0"}.ant-input-prefix,.ant-input-suffix{display:-ms-flexbox;display:flex;-ms-flex:none;flex:none;-ms-flex-align:center;align-items:center}.ant-input-prefix{margin-right:4px}.ant-input-suffix{margin-left:4px}.ant-input-clear-icon{color:rgba(0,0,0,.25);font-size:12px;cursor:pointer;-webkit-transition:color .3s;transition:color .3s;margin:0 4px;vertical-align:-1px}.ant-input-clear-icon:hover{color:rgba(0,0,0,.45)}.ant-input-clear-icon:active{color:rgba(0,0,0,.65)}.ant-input-clear-icon+i{margin-left:6px}.ant-input-clear-icon-hidden{visibility:hidden}.ant-input-clear-icon:last-child{margin-right:0}.ant-input-affix-wrapper-textarea-with-clear-btn{padding:0!important;border:0!important}.ant-input-textarea-clear-icon{color:rgba(0,0,0,.25);font-size:12px;cursor:pointer;-webkit-transition:color .3s;transition:color .3s;position:absolute;top:0;right:0;margin:8px 8px 0 0}.ant-input-textarea-clear-icon:hover{color:rgba(0,0,0,.45)}.ant-input-textarea-clear-icon:active{color:rgba(0,0,0,.65)}.ant-input-textarea-clear-icon+i{margin-left:6px}.ant-input-textarea-clear-icon-hidden{visibility:hidden}.ant-input{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;font-variant:tabular-nums;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum";position:relative;display:inline-block;width:100%;min-width:0;padding:4px 11px;color:rgba(0,0,0,.65);font-size:14px;line-height:1.5715;background-color:#fff;background-image:none;border:1px solid #d9d9d9;border-radius:2px;-webkit-transition:all .3s;transition:all .3s}.ant-input::-moz-placeholder{opacity:1}.ant-input::-webkit-input-placeholder{color:#bfbfbf}.ant-input:-ms-input-placeholder{color:#bfbfbf}.ant-input::-ms-input-placeholder{color:#bfbfbf}.ant-input::placeholder{color:#bfbfbf}.ant-input:placeholder-shown{text-overflow:ellipsis}.ant-input:hover{border-color:#40a9ff;border-right-width:1px!important}.ant-input-rtl .ant-input:hover{border-right-width:0;border-left-width:1px!important}.ant-input-focused,.ant-input:focus{border-color:#40a9ff;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-input-rtl .ant-input-focused,.ant-input-rtl .ant-input:focus{border-right-width:0;border-left-width:1px!important}.ant-input-disabled{color:rgba(0,0,0,.25);background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-input-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input[disabled]{color:rgba(0,0,0,.25);background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-input[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}textarea.ant-input{max-width:100%;height:auto;min-height:32px;line-height:1.5715;vertical-align:bottom;-webkit-transition:all .3s,height 0s;transition:all .3s,height 0s}.ant-input-lg{padding:6.5px 11px;font-size:16px}.ant-input-sm{padding:0 7px}.ant-input-rtl{direction:rtl}.ant-input-group{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-size:14px;font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum";position:relative;display:table;width:100%;border-collapse:separate;border-spacing:0}.ant-input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.ant-input-group>[class*=col-]{padding-right:8px}.ant-input-group>[class*=col-]:last-child{padding-right:0}.ant-input-group-addon,.ant-input-group-wrap,.ant-input-group>.ant-input{display:table-cell}.ant-input-group-addon:not(:first-child):not(:last-child),.ant-input-group-wrap:not(:first-child):not(:last-child),.ant-input-group>.ant-input:not(:first-child):not(:last-child){border-radius:0}.ant-input-group-addon,.ant-input-group-wrap{width:1px;white-space:nowrap;vertical-align:middle}.ant-input-group-wrap>*{display:block!important}.ant-input-group .ant-input{float:left;width:100%;margin-bottom:0;text-align:inherit}.ant-input-group .ant-input:focus,.ant-input-group .ant-input:hover{z-index:1;border-right-width:1px}.ant-input-group-addon{position:relative;padding:0 11px;color:rgba(0,0,0,.65);font-weight:400;font-size:14px;text-align:center;background-color:#fafafa;border:1px solid #d9d9d9;border-radius:2px;-webkit-transition:all .3s;transition:all .3s}.ant-input-group-addon .ant-select{margin:-5px -11px}.ant-input-group-addon .ant-select.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{background-color:inherit;border:1px solid transparent;-webkit-box-shadow:none;box-shadow:none}.ant-input-group-addon .ant-select-focused .ant-select-selector,.ant-input-group-addon .ant-select-open .ant-select-selector{color:#1890ff}.ant-input-group-addon>i:only-child:after{position:absolute;top:0;right:0;bottom:0;left:0;content:""}.ant-input-group-addon:first-child,.ant-input-group-addon:first-child .ant-select .ant-select-selector,.ant-input-group>.ant-input:first-child,.ant-input-group>.ant-input:first-child .ant-select .ant-select-selector{border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-group>.ant-input-affix-wrapper:not(:first-child) .ant-input{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group>.ant-input-affix-wrapper:not(:last-child) .ant-input{border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-group-addon:first-child{border-right:0}.ant-input-group-addon:last-child{border-left:0}.ant-input-group-addon:last-child,.ant-input-group-addon:last-child .ant-select .ant-select-selector,.ant-input-group>.ant-input:last-child,.ant-input-group>.ant-input:last-child .ant-select .ant-select-selector{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group-lg .ant-input,.ant-input-group-lg>.ant-input-group-addon{padding:6.5px 11px;font-size:16px}.ant-input-group-sm .ant-input,.ant-input-group-sm>.ant-input-group-addon{padding:0 7px}.ant-input-group-lg .ant-select-single .ant-select-selector{height:40px}.ant-input-group-sm .ant-select-single .ant-select-selector{height:24px}.ant-input-group .ant-input-affix-wrapper:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group .ant-input-affix-wrapper:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-group.ant-input-group-compact{display:block}.ant-input-group.ant-input-group-compact:before{display:table;content:""}.ant-input-group.ant-input-group-compact:after{display:table;clear:both;content:""}.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child),.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child),.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child){border-right-width:1px}.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):focus,.ant-input-group.ant-input-group-compact-addon:not(:first-child):not(:last-child):hover,.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):focus,.ant-input-group.ant-input-group-compact-wrap:not(:first-child):not(:last-child):hover,.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child):focus,.ant-input-group.ant-input-group-compact>.ant-input:not(:first-child):not(:last-child):hover{z-index:1}.ant-input-group.ant-input-group-compact>*{display:inline-block;float:none;vertical-align:top;border-radius:0}.ant-input-group.ant-input-group-compact>.ant-input-affix-wrapper,.ant-input-group.ant-input-group-compact>.ant-picker-range{display:-ms-inline-flexbox;display:inline-flex}.ant-input-group.ant-input-group-compact>:not(:last-child){margin-right:-1px;border-right-width:1px}.ant-input-group.ant-input-group-compact .ant-input{float:none}.ant-input-group.ant-input-group-compact>.ant-calendar-picker .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input,.ant-input-group.ant-input-group-compact>.ant-mention-wrapper .ant-mention-editor,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selector,.ant-input-group.ant-input-group-compact>.ant-time-picker .ant-time-picker-input{border-right-width:1px;border-radius:0}.ant-input-group.ant-input-group-compact>.ant-calendar-picker .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-calendar-picker .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-cascader-picker .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-input-group-wrapper .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-mention-wrapper .ant-mention-editor:focus,.ant-input-group.ant-input-group-compact>.ant-mention-wrapper .ant-mention-editor:hover,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input:focus,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input:hover,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-arrow,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selector:focus,.ant-input-group.ant-input-group-compact>.ant-select>.ant-select-selector:hover,.ant-input-group.ant-input-group-compact>.ant-time-picker .ant-time-picker-input:focus,.ant-input-group.ant-input-group-compact>.ant-time-picker .ant-time-picker-input:hover{z-index:1}.ant-input-group.ant-input-group-compact>.ant-calendar-picker:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-mention-wrapper:first-child .ant-mention-editor,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:first-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select:first-child>.ant-select-selector,.ant-input-group.ant-input-group-compact>.ant-time-picker:first-child .ant-time-picker-input,.ant-input-group.ant-input-group-compact>:first-child{border-top-left-radius:2px;border-bottom-left-radius:2px}.ant-input-group.ant-input-group-compact>.ant-calendar-picker:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker-focused:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-cascader-picker:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-mention-wrapper:last-child .ant-mention-editor,.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:last-child .ant-input,.ant-input-group.ant-input-group-compact>.ant-select:last-child>.ant-select-selector,.ant-input-group.ant-input-group-compact>.ant-time-picker:last-child .ant-time-picker-input,.ant-input-group.ant-input-group-compact>:last-child{border-right-width:1px;border-top-right-radius:2px;border-bottom-right-radius:2px}.ant-input-group.ant-input-group-compact>.ant-select-auto-complete .ant-input{vertical-align:top}.ant-input-group-rtl .ant-input-group-addon:first-child,.ant-input-group>.ant-input-rtl:first-child{border-radius:2px;border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group-rtl .ant-input-group-addon:first-child{border-right:1px solid #d9d9d9;border-left:0}.ant-input-group-rtl .ant-input-group-addon:last-child{border-right:0;border-left:1px solid #d9d9d9}.ant-input-group-rtl .ant-input-group-addon:last-child,.ant-input-group-rtl .ant-input-group>.ant-input:last-child{border-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0}.ant-input-group-rtl.ant-input-group.ant-input-group-compact>:not(:last-child){margin-right:0;margin-left:-1px;border-left-width:1px}.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-calendar-picker:first-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-cascader-picker:first-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-mention-wrapper:first-child .ant-mention-editor,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:first-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select:first-child>.ant-select-selector,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-time-picker:first-child .ant-time-picker-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>:first-child{border-top-left-radius:0;border-top-right-radius:2px;border-bottom-right-radius:2px;border-bottom-left-radius:0}.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-calendar-picker:last-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-cascader-picker-focused:last-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-cascader-picker:last-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-mention-wrapper:last-child .ant-mention-editor,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select-auto-complete:last-child .ant-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-select:last-child>.ant-select-selector,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>.ant-time-picker:last-child .ant-time-picker-input,.ant-input-group-rtl.ant-input-group.ant-input-group-compact>:last-child{border-left-width:1px;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.ant-input-group-wrapper{display:inline-block;width:100%;text-align:start;vertical-align:top}.ant-input-password-icon{color:rgba(0,0,0,.45);cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ant-input-password-icon:hover{color:rgba(0,0,0,.85)}.ant-input[type=color]{height:32px}.ant-input[type=color].ant-input-lg{height:40px}.ant-input[type=color].ant-input-sm{height:24px;padding-top:3px;padding-bottom:3px}.ant-input-search-icon{color:rgba(0,0,0,.45);cursor:pointer;-webkit-transition:all .3s;transition:all .3s}.ant-input-search-icon:hover{color:rgba(0,0,0,.85)}.ant-input-search-enter-button.ant-input-affix-wrapper,.ant-input-search-enter-button input{border-right:0}.ant-input-search-enter-button+.ant-input-group-addon,.ant-input-search-enter-button input+.ant-input-group-addon{padding:0;border:0}.ant-input-search-enter-button+.ant-input-group-addon .ant-input-search-button,.ant-input-search-enter-button input+.ant-input-group-addon .ant-input-search-button{border-top-left-radius:0;border-bottom-left-radius:0}.ant-input-group-rtl,.ant-input-group-wrapper-rtl{direction:rtl}.ant-input-affix-wrapper-rtl .ant-input-prefix{margin:0 0 0 4px}.ant-input-affix-wrapper-rtl .ant-input-suffix{margin:0 4px 0 0}.ant-input-search-rtl{direction:rtl}.ant-input-search-rtl.ant-input-search-enter-button input{border:1px solid #d9d9d9;border-left:0}.ant-input-search-enter-button input:focus,.ant-input-search-enter-button input:hover{border-color:#40a9ff}.ant-input-search-rtl.ant-input-search-enter-button+.ant-input-group-addon .ant-input-search-button,.ant-input-search-rtl.ant-input-search-enter-button input+.ant-input-group-addon .ant-input-search-button{width:100%;border-top-left-radius:2px;border-top-right-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:2px}.ant-input-number{-webkit-box-sizing:border-box;box-sizing:border-box;font-variant:tabular-nums;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum";position:relative;width:100%;min-width:0;color:rgba(0,0,0,.65);font-size:14px;line-height:1.5715;background-color:#fff;background-image:none;-webkit-transition:all .3s;transition:all .3s;display:inline-block;width:90px;margin:0;padding:0;border:1px solid #d9d9d9;border-radius:2px}.ant-input-number::-moz-placeholder{opacity:1}.ant-input-number::-webkit-input-placeholder{color:#bfbfbf}.ant-input-number:-ms-input-placeholder{color:#bfbfbf}.ant-input-number::-ms-input-placeholder{color:#bfbfbf}.ant-input-number::placeholder{color:#bfbfbf}.ant-input-number:placeholder-shown{text-overflow:ellipsis}.ant-input-number-focused,.ant-input-number:focus{border-color:#40a9ff;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-input-number[disabled]{color:rgba(0,0,0,.25);background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-input-number[disabled]:hover{border-color:#d9d9d9;border-right-width:1px!important}textarea.ant-input-number{max-width:100%;height:auto;min-height:32px;line-height:1.5715;vertical-align:bottom;-webkit-transition:all .3s,height 0s;transition:all .3s,height 0s}.ant-input-number-lg{padding:6.5px 11px}.ant-input-number-sm{padding:0 7px}.ant-input-number-handler{position:relative;display:block;width:100%;height:50%;overflow:hidden;color:rgba(0,0,0,.45);font-weight:700;line-height:0;text-align:center;-webkit-transition:all .1s linear;transition:all .1s linear}.ant-input-number-handler:active{background:#f4f4f4}.ant-input-number-handler:hover .ant-input-number-handler-down-inner,.ant-input-number-handler:hover .ant-input-number-handler-up-inner{color:#40a9ff}.ant-input-number-handler-down-inner,.ant-input-number-handler-up-inner{display:inline-block;color:inherit;font-style:normal;line-height:0;text-align:center;text-transform:none;vertical-align:-.125em;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:absolute;right:4px;width:12px;height:12px;color:rgba(0,0,0,.45);line-height:12px;-webkit-transition:all .1s linear;transition:all .1s linear;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ant-input-number-handler-down-inner>*,.ant-input-number-handler-up-inner>*{line-height:1}.ant-input-number-handler-down-inner svg,.ant-input-number-handler-up-inner svg{display:inline-block}.ant-input-number-handler-down-inner:before,.ant-input-number-handler-up-inner:before{display:none}.ant-input-number-handler-down-inner .ant-input-number-handler-down-inner-icon,.ant-input-number-handler-down-inner .ant-input-number-handler-up-inner-icon,.ant-input-number-handler-up-inner .ant-input-number-handler-down-inner-icon,.ant-input-number-handler-up-inner .ant-input-number-handler-up-inner-icon{display:block}.ant-input-number:hover{border-color:#40a9ff;border-right-width:1px!important}.ant-input-number:hover+.ant-form-item-children-icon{opacity:0;-webkit-transition:opacity .24s linear .24s;transition:opacity .24s linear .24s}.ant-input-number-focused{border-color:#40a9ff;border-right-width:1px!important;outline:0;-webkit-box-shadow:0 0 0 2px rgba(24,144,255,.2);box-shadow:0 0 0 2px rgba(24,144,255,.2)}.ant-input-number-disabled{color:rgba(0,0,0,.25);background-color:#f5f5f5;cursor:not-allowed;opacity:1}.ant-input-number-disabled:hover{border-color:#d9d9d9;border-right-width:1px!important}.ant-input-number-disabled .ant-input-number-input{cursor:not-allowed}.ant-input-number-disabled .ant-input-number-handler-wrap{display:none}.ant-input-number-input{width:100%;height:30px;padding:0 11px;text-align:left;background-color:transparent;border:0;border-radius:2px;outline:0;-webkit-transition:all .3s linear;transition:all .3s linear;-moz-appearance:textfield!important}.ant-input-number-input::-moz-placeholder{opacity:1}.ant-input-number-input::-webkit-input-placeholder{color:#bfbfbf}.ant-input-number-input:-ms-input-placeholder{color:#bfbfbf}.ant-input-number-input::-ms-input-placeholder{color:#bfbfbf}.ant-input-number-input::placeholder{color:#bfbfbf}.ant-input-number-input:placeholder-shown{text-overflow:ellipsis}.ant-input-number-input[type=number]::-webkit-inner-spin-button,.ant-input-number-input[type=number]::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.ant-input-number-lg{padding:0;font-size:16px}.ant-input-number-lg input{height:38px}.ant-input-number-sm{padding:0}.ant-input-number-sm input{height:22px;padding:0 7px}.ant-input-number-handler-wrap{position:absolute;top:0;right:0;width:22px;height:100%;background:#fff;border-left:1px solid #d9d9d9;border-radius:0 2px 2px 0;opacity:0;-webkit-transition:opacity .24s linear .1s;transition:opacity .24s linear .1s}.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-down-inner,.ant-input-number-handler-wrap .ant-input-number-handler .ant-input-number-handler-up-inner{display:inline-block;font-size:7px;min-width:auto;margin-right:0}.ant-input-number-handler-wrap:hover .ant-input-number-handler{height:40%}.ant-input-number:hover .ant-input-number-handler-wrap{opacity:1}.ant-input-number-handler-up{border-top-right-radius:2px;cursor:pointer}.ant-input-number-handler-up-inner{top:50%;margin-top:-5px;text-align:center}.ant-input-number-handler-up:hover{height:60%!important}.ant-input-number-handler-down{top:0;border-top:1px solid #d9d9d9;border-bottom-right-radius:2px;cursor:pointer}.ant-input-number-handler-down-inner{top:50%;margin-top:-6px;text-align:center}.ant-input-number-handler-down:hover{height:60%!important}.ant-input-number-handler-down-disabled,.ant-input-number-handler-up-disabled{cursor:not-allowed}.ant-input-number-handler-down-disabled:hover .ant-input-number-handler-down-inner,.ant-input-number-handler-up-disabled:hover .ant-input-number-handler-up-inner{color:rgba(0,0,0,.25)}.ant-input-number-rtl{direction:rtl}.ant-input-number-rtl .ant-input-number-handler-wrap{right:auto;left:0;border-right:1px solid #d9d9d9;border-left:0;border-radius:2px 0 0 2px}.ant-input-number-rtl .ant-input-number-input{direction:rtl;text-align:right}.ant-breadcrumb{-webkit-box-sizing:border-box;box-sizing:border-box;margin:0;padding:0;color:rgba(0,0,0,.65);font-variant:tabular-nums;line-height:1.5715;list-style:none;-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum","tnum";color:rgba(0,0,0,.45);font-size:14px}.ant-breadcrumb .anticon{font-size:14px}.ant-breadcrumb a{color:rgba(0,0,0,.45);-webkit-transition:color .3s;transition:color .3s}.ant-breadcrumb a:hover{color:#40a9ff}.ant-breadcrumb>span:last-child,.ant-breadcrumb>span:last-child a{color:rgba(0,0,0,.65)}.ant-breadcrumb>span:last-child .ant-breadcrumb-separator{display:none}.ant-breadcrumb-separator{margin:0 8px;color:rgba(0,0,0,.45)}.ant-breadcrumb-link>.anticon+span,.ant-breadcrumb-overlay-link>.anticon{margin-left:4px}.ant-breadcrumb-rtl{direction:rtl}.ant-breadcrumb-rtl:before{display:table;content:""}.ant-breadcrumb-rtl:after{display:table;clear:both;content:""}.ant-breadcrumb-rtl>span{float:right}.ant-breadcrumb-rtl .ant-breadcrumb-link>.anticon+span,.ant-breadcrumb-rtl .ant-breadcrumb-overlay-link>.anticon{margin-right:4px;margin-left:0} +/*# sourceMappingURL=2.122cefa8.chunk.css.map */ \ No newline at end of file diff --git a/client/build/static/css/2.122cefa8.chunk.css.map b/client/build/static/css/2.122cefa8.chunk.css.map new file mode 100644 index 0000000000000000000000000000000000000000..1536b8ad68ce532c70b8b8e1d05474f8812eaa5b --- /dev/null +++ b/client/build/static/css/2.122cefa8.chunk.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["index.css"],"names":[],"mappings":"AAKA,UAEE,UAAW,CACX,WACF,CACA,mCAEE,YACF,CACA,iBAGE,6BAA8B,CACtB,qBACV,CACA,KACE,sBAAuB,CACvB,gBAAiB,CACjB,6BAA8B,CAC9B,yBAA0B,CAC1B,4BAA6B,CAC7B,yCACF,CACA,cACE,kBACF,CACA,6EAWE,aACF,CACA,KACE,QAAS,CACT,qBAA0B,CAC1B,cAAe,CACf,sLAAkM,CAClM,yBAA0B,CAC1B,kBAAmB,CACnB,qBAAsB,CACtB,oCAAqC,CAC7B,mCACV,CACA,sBACE,sBACF,CACA,GACE,8BAA+B,CACvB,sBAAuB,CAC/B,QAAS,CACT,gBACF,CACA,kBAME,YAAa,CACb,kBAAoB,CACpB,qBAA0B,CAC1B,eACF,CACA,EACE,YAAa,CACb,iBACF,CACA,sCAEE,yBAA0B,CAC1B,wCAAyC,CACjC,gCAAiC,CACzC,eAAgB,CAChB,WACF,CACA,QACE,iBAAkB,CAClB,iBAAkB,CAClB,mBACF,CACA,kEAIE,uBACF,CACA,SAGE,YAAa,CACb,iBACF,CACA,wBAIE,eACF,CACA,GACE,eACF,CACA,GACE,kBAAoB,CACpB,aACF,CACA,WACE,cACF,CACA,IACE,iBACF,CACA,SAEE,kBACF,CACA,MACE,aACF,CACA,QAEE,iBAAkB,CAClB,aAAc,CACd,aAAc,CACd,uBACF,CACA,IACE,aACF,CACA,IACE,SACF,CACA,EACE,aAAc,CACd,oBAAqB,CACrB,4BAA6B,CAC7B,YAAa,CACb,cAAe,CACf,4BAA8B,CAC9B,oBAAsB,CACtB,oCACF,CACA,QACE,aACF,CACA,SACE,aACF,CAMA,yBACE,oBAAqB,CACrB,SACF,CACA,YACE,qBAA0B,CAC1B,kBAAmB,CACnB,mBACF,CACA,kBAIE,aAAc,CACd,+EACF,CACA,IACE,YAAa,CACb,iBAAkB,CAClB,aACF,CACA,OACE,cACF,CACA,IACE,qBAAsB,CACtB,iBACF,CACA,eACE,eACF,CACA,kFASE,6BAA8B,CAC1B,yBACN,CACA,MACE,wBACF,CACA,QACE,iBAAmB,CACnB,mBAAqB,CACrB,qBAA0B,CAC1B,eAAgB,CAChB,mBACF,CACA,GACE,kBACF,CACA,sCAKE,QAAS,CACT,aAAc,CACd,iBAAkB,CAClB,mBAAoB,CACpB,mBACF,CACA,aAEE,gBACF,CACA,cAEE,mBACF,CACA,qDAIE,yBACF,CACA,wHAIE,SAAU,CACV,iBACF,CACA,uCAEE,6BAA8B,CACtB,qBAAsB,CAC9B,SACF,CACA,+EAIE,0BACF,CACA,SACE,aAAc,CACd,eACF,CACA,SACE,WAAY,CACZ,QAAS,CACT,SAAU,CACV,QACF,CACA,OACE,aAAc,CACd,UAAW,CACX,cAAe,CACf,kBAAoB,CACpB,SAAU,CACV,aAAc,CACd,eAAgB,CAChB,mBAAoB,CACpB,kBACF,CACA,SACE,uBACF,CACA,kFAEE,WACF,CACA,cACE,mBAAoB,CACpB,uBACF,CACA,qFAEE,uBACF,CACA,6BACE,YAAa,CACb,yBACF,CACA,OACE,oBACF,CACA,QACE,iBACF,CACA,SACE,YACF,CACA,SACE,sBACF,CACA,KACE,YAAc,CACd,wBACF,CACA,iBACE,UAAW,CACX,kBACF,CACA,YACE,UAAW,CACX,kBACF,CAKA,iCAHE,aAAc,CACd,UAMF,CAJA,gBAEE,UAEF,CACA,SACE,oBAAqB,CACrB,aAAc,CACd,iBAAkB,CAClB,aAAc,CACd,iBAAkB,CAClB,mBAAoB,CACpB,sBAAwB,CACxB,iCAAkC,CAClC,kCAAmC,CACnC,iCACF,CACA,WACE,aACF,CACA,aACE,oBACF,CACA,gBACE,YACF,CACA,uBACE,aACF,CACA,mBACE,cACF,CAMA,mCACE,oBAAqB,CACrB,kDAAmD,CAC3C,0CACV,CAUA,qCACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,8DAEE,gCAAiC,CACzB,wBAAyB,CACjC,oCAAqC,CAC7B,4BACV,CACA,8BACE,iCAAkC,CAC1B,yBAA0B,CAClC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,yBAEE,SAGF,CACA,qCAHE,wCAAyC,CACjC,gCAKV,CACA,6BACE,GACE,SACF,CACA,GACE,SACF,CACF,CACA,qBACE,GACE,SACF,CACA,GACE,SACF,CACF,CACA,8BACE,GACE,SACF,CACA,GACE,SACF,CACF,CACA,sBACE,GACE,SACF,CACA,GACE,SACF,CACF,CAUA,8CACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,0EAEE,kCAAmC,CAC3B,0BAA2B,CACnC,oCAAqC,CAC7B,4BACV,CACA,oCACE,mCAAoC,CAC5B,2BAA4B,CACpC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,+BAEE,SAAU,CACV,6DAAoE,CAC5D,qDACV,CACA,eACE,8DAAsE,CAC9D,sDACV,CAUA,oDACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,kFAEE,oCAAqC,CAC7B,4BAA6B,CACrC,oCAAqC,CAC7B,4BACV,CACA,wCACE,qCAAsC,CAC9B,6BAA8B,CACtC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,mCAEE,SAAU,CACV,6DAAoE,CAC5D,qDACV,CACA,iBACE,8DAAsE,CAC9D,sDACV,CAUA,oDACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,kFAEE,oCAAqC,CAC7B,4BAA6B,CACrC,oCAAqC,CAC7B,4BACV,CACA,wCACE,qCAAsC,CAC9B,6BAA8B,CACtC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,mCAEE,SAAU,CACV,6DAAoE,CAC5D,qDACV,CACA,iBACE,8DAAsE,CAC9D,sDACV,CAUA,uDACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,sFAEE,qCAAsC,CAC9B,6BAA8B,CACtC,oCAAqC,CAC7B,4BACV,CACA,0CACE,sCAAuC,CAC/B,8BAA+B,CACvC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,qCAEE,SAAU,CACV,6DAAoE,CAC5D,qDACV,CACA,kBACE,8DAAsE,CAC9D,sDACV,CACA,iCACE,GACE,kCAAmC,CAC3B,0BAA2B,CACnC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACA,GACE,+BAAiC,CACzB,uBAAyB,CACjC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACF,CACA,yBACE,GACE,kCAAmC,CAC3B,0BAA2B,CACnC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACA,GACE,+BAAiC,CACzB,uBAAyB,CACjC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACF,CACA,kCACE,GACE,+BAAiC,CACzB,uBAAyB,CACjC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACA,GACE,kCAAmC,CAC3B,0BAA2B,CACnC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACF,CACA,0BACE,GACE,+BAAiC,CACzB,uBAAyB,CACjC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACA,GACE,kCAAmC,CAC3B,0BAA2B,CACnC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACF,CACA,iCACE,GACE,mCAAoC,CAC5B,2BAA4B,CACpC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACA,GACE,+BAAiC,CACzB,uBAAyB,CACjC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACF,CACA,yBACE,GACE,mCAAoC,CAC5B,2BAA4B,CACpC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACA,GACE,+BAAiC,CACzB,uBAAyB,CACjC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACF,CACA,kCACE,GACE,+BAAiC,CACzB,uBAAyB,CACjC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACA,GACE,mCAAoC,CAC5B,2BAA4B,CACpC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACF,CACA,0BACE,GACE,+BAAiC,CACzB,uBAAyB,CACjC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACA,GACE,mCAAoC,CAC5B,2BAA4B,CACpC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACF,CACA,kCACE,GACE,kCAAmC,CAC3B,0BAA2B,CACnC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACA,GACE,+BAAiC,CACzB,uBAAyB,CACjC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACF,CACA,0BACE,GACE,kCAAmC,CAC3B,0BAA2B,CACnC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACA,GACE,+BAAiC,CACzB,uBAAyB,CACjC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACF,CACA,mCACE,GACE,+BAAiC,CACzB,uBAAyB,CACjC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACA,GACE,kCAAmC,CAC3B,0BAA2B,CACnC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACF,CACA,2BACE,GACE,+BAAiC,CACzB,uBAAyB,CACjC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACA,GACE,kCAAmC,CAC3B,0BAA2B,CACnC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACF,CACA,+BACE,GACE,mCAAoC,CAC5B,2BAA4B,CACpC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACA,GACE,+BAAiC,CACzB,uBAAyB,CACjC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACF,CACA,uBACE,GACE,mCAAoC,CAC5B,2BAA4B,CACpC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACA,GACE,+BAAiC,CACzB,uBAAyB,CACjC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACF,CACA,gCACE,GACE,+BAAiC,CACzB,uBAAyB,CACjC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACA,GACE,mCAAoC,CAC5B,2BAA4B,CACpC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACF,CACA,wBACE,GACE,+BAAiC,CACzB,uBAAyB,CACjC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACA,GACE,mCAAoC,CAC5B,2BAA4B,CACpC,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACF,CACA,iCACE,GACE,+BAAiC,CACzB,uBACV,CACF,CACA,yBACE,GACE,+BAAiC,CACzB,uBACV,CACF,CACA,yEAEE,iBACF,CACA,KACE,gCAAiC,CACjC,cACF,CACA,8EAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,aAAc,CACd,qBAAsB,CAGtB,kCAAyD,CAAzD,wDAAyD,CACjD,0BAAiD,CAAjD,gDAAiD,CACzD,UAAY,CACZ,sGAAqH,CAC7G,8FAA6G,CACrH,oCAAqC,CAC7B,4BAA6B,CACrC,UAAW,CACX,mBACF,CACA,8BACE,GACE,gCAAiC,CACzB,wBAAyB,CACjC,oCAA2D,CAA3D,0DAA2D,CACnD,4BAAmD,CAAnD,kDACV,CACF,CACA,sBACE,GACE,gCAAiC,CACzB,wBAAyB,CACjC,oCAA2D,CAA3D,0DAA2D,CACnD,4BAAmD,CAAnD,kDACV,CACF,CACA,8BACE,GACE,SACF,CACF,CACA,sBACE,GACE,SACF,CACF,CAUA,iDACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,8EAEE,mCAAoC,CAC5B,2BAA4B,CACpC,oCAAqC,CAC7B,4BACV,CACA,sCACE,oCAAqC,CAC7B,4BAA6B,CACrC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,iCAEE,SAAU,CACV,2DAAiE,CACzD,mDACV,CACA,gBACE,iEAAyE,CACjE,yDACV,CAUA,uDACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,sFAEE,qCAAsC,CAC9B,6BAA8B,CACtC,oCAAqC,CAC7B,4BACV,CACA,0CACE,sCAAuC,CAC/B,8BAA+B,CACvC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,qCAEE,SAAU,CACV,2DAAiE,CACzD,mDACV,CACA,kBACE,iEAAyE,CACjE,yDACV,CAUA,uDACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,sFAEE,qCAAsC,CAC9B,6BAA8B,CACtC,oCAAqC,CAC7B,4BACV,CACA,0CACE,sCAAuC,CAC/B,8BAA+B,CACvC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,qCAEE,SAAU,CACV,2DAAiE,CACzD,mDACV,CACA,kBACE,iEAAyE,CACjE,yDACV,CAUA,0DACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,0FAEE,sCAAuC,CAC/B,8BAA+B,CACvC,oCAAqC,CAC7B,4BACV,CACA,4CACE,uCAAwC,CAChC,+BAAgC,CACxC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,uCAEE,SAAU,CACV,2DAAiE,CACzD,mDACV,CACA,mBACE,iEAAyE,CACjE,yDACV,CACA,gCACE,GACE,4BAA8B,CACtB,oBAAsB,CAC9B,4BAA+B,CACvB,oBAAuB,CAC/B,SACF,CACA,GACE,2BAA4B,CACpB,mBAAoB,CAC5B,4BAA+B,CACvB,oBAAuB,CAC/B,SACF,CACF,CACA,wBACE,GACE,4BAA8B,CACtB,oBAAsB,CAC9B,4BAA+B,CACvB,oBAAuB,CAC/B,SACF,CACA,GACE,2BAA4B,CACpB,mBAAoB,CAC5B,4BAA+B,CACvB,oBAAuB,CAC/B,SACF,CACF,CACA,iCACE,GACE,2BAA4B,CACpB,mBAAoB,CAC5B,4BAA+B,CACvB,oBAAuB,CAC/B,SACF,CACA,GACE,4BAA8B,CACtB,oBAAsB,CAC9B,4BAA+B,CACvB,oBAAuB,CAC/B,SACF,CACF,CACA,yBACE,GACE,2BAA4B,CACpB,mBAAoB,CAC5B,4BAA+B,CACvB,oBAAuB,CAC/B,SACF,CACA,GACE,4BAA8B,CACtB,oBAAsB,CAC9B,4BAA+B,CACvB,oBAAuB,CAC/B,SACF,CACF,CACA,kCACE,GACE,4BAA8B,CACtB,oBAAsB,CAC9B,kCAAmC,CAC3B,0BAA2B,CACnC,SACF,CACA,GACE,2BAA4B,CACpB,mBAAoB,CAC5B,kCAAmC,CAC3B,0BAA2B,CACnC,SACF,CACF,CACA,0BACE,GACE,4BAA8B,CACtB,oBAAsB,CAC9B,kCAAmC,CAC3B,0BAA2B,CACnC,SACF,CACA,GACE,2BAA4B,CACpB,mBAAoB,CAC5B,kCAAmC,CAC3B,0BAA2B,CACnC,SACF,CACF,CACA,mCACE,GACE,2BAA4B,CACpB,mBAAoB,CAC5B,kCAAmC,CAC3B,0BAA2B,CACnC,SACF,CACA,GACE,4BAA8B,CACtB,oBAAsB,CAC9B,kCAAmC,CAC3B,0BAA2B,CACnC,SACF,CACF,CACA,2BACE,GACE,2BAA4B,CACpB,mBAAoB,CAC5B,kCAAmC,CAC3B,0BAA2B,CACnC,SACF,CACA,GACE,4BAA8B,CACtB,oBAAsB,CAC9B,kCAAmC,CAC3B,0BAA2B,CACnC,SACF,CACF,CACA,kCACE,GACE,4BAA8B,CACtB,oBAAsB,CAC9B,4BAA+B,CACvB,oBAAuB,CAC/B,SACF,CACA,GACE,2BAA4B,CACpB,mBAAoB,CAC5B,4BAA+B,CACvB,oBAAuB,CAC/B,SACF,CACF,CACA,0BACE,GACE,4BAA8B,CACtB,oBAAsB,CAC9B,4BAA+B,CACvB,oBAAuB,CAC/B,SACF,CACA,GACE,2BAA4B,CACpB,mBAAoB,CAC5B,4BAA+B,CACvB,oBAAuB,CAC/B,SACF,CACF,CACA,mCACE,GACE,2BAA4B,CACpB,mBAAoB,CAC5B,4BAA+B,CACvB,oBAAuB,CAC/B,SACF,CACA,GACE,4BAA8B,CACtB,oBAAsB,CAC9B,4BAA+B,CACvB,oBAAuB,CAC/B,SACF,CACF,CACA,2BACE,GACE,2BAA4B,CACpB,mBAAoB,CAC5B,4BAA+B,CACvB,oBAAuB,CAC/B,SACF,CACA,GACE,4BAA8B,CACtB,oBAAsB,CAC9B,4BAA+B,CACvB,oBAAuB,CAC/B,SACF,CACF,CACA,mCACE,GACE,4BAA8B,CACtB,oBAAsB,CAC9B,+BAAiC,CACzB,uBAAyB,CACjC,SACF,CACA,GACE,2BAA4B,CACpB,mBAAoB,CAC5B,+BAAiC,CACzB,uBAAyB,CACjC,SACF,CACF,CACA,2BACE,GACE,4BAA8B,CACtB,oBAAsB,CAC9B,+BAAiC,CACzB,uBAAyB,CACjC,SACF,CACA,GACE,2BAA4B,CACpB,mBAAoB,CAC5B,+BAAiC,CACzB,uBAAyB,CACjC,SACF,CACF,CACA,oCACE,GACE,2BAA4B,CACpB,mBAAoB,CAC5B,+BAAiC,CACzB,uBAAyB,CACjC,SACF,CACA,GACE,4BAA8B,CACtB,oBAAsB,CAC9B,+BAAiC,CACzB,uBAAyB,CACjC,SACF,CACF,CACA,4BACE,GACE,2BAA4B,CACpB,mBAAoB,CAC5B,+BAAiC,CACzB,uBAAyB,CACjC,SACF,CACA,GACE,4BAA8B,CACtB,oBAAsB,CAC9B,+BAAiC,CACzB,uBAAyB,CACjC,SACF,CACF,CAUA,qCACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,8DAEE,gCAAiC,CACzB,wBAAyB,CACjC,oCAAqC,CAC7B,4BACV,CACA,8BACE,iCAAkC,CAC1B,yBAA0B,CAClC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,yBAEE,0BAA2B,CACnB,kBAAmB,CAC3B,SAAU,CACV,6DAAoE,CAC5D,qDACV,CACA,YACE,+DAAuE,CAC/D,uDACV,CAUA,iDACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,8EAEE,mCAAoC,CAC5B,2BAA4B,CACpC,oCAAqC,CAC7B,4BACV,CACA,sCACE,oCAAqC,CAC7B,4BAA6B,CACrC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,iCAEE,0BAA2B,CACnB,kBAAmB,CAC3B,SAAU,CACV,6DAAoE,CAC5D,qDACV,CACA,gBACE,+DAAuE,CAC/D,uDACV,CAUA,gEACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,kGAEE,mCAAoC,CAC5B,2BAA4B,CACpC,oCAAqC,CAC7B,4BACV,CACA,gDACE,oCAAqC,CAC7B,4BAA6B,CACrC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,2CAEE,0BAA2B,CACnB,kBAAmB,CAC3B,SAAU,CACV,6DAAoE,CAC5D,qDACV,CACA,qBACE,+DAAuE,CAC/D,uDACV,CAUA,8CACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,0EAEE,kCAAmC,CAC3B,0BAA2B,CACnC,oCAAqC,CAC7B,4BACV,CACA,oCACE,mCAAoC,CAC5B,2BAA4B,CACpC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,+BAEE,0BAA2B,CACnB,kBAAmB,CAC3B,SAAU,CACV,6DAAoE,CAC5D,qDACV,CACA,eACE,+DAAuE,CAC/D,uDACV,CAUA,oDACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,kFAEE,oCAAqC,CAC7B,4BAA6B,CACrC,oCAAqC,CAC7B,4BACV,CACA,wCACE,qCAAsC,CAC9B,6BAA8B,CACtC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,mCAEE,0BAA2B,CACnB,kBAAmB,CAC3B,SAAU,CACV,6DAAoE,CAC5D,qDACV,CACA,iBACE,+DAAuE,CAC/D,uDACV,CAUA,oDACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,kFAEE,oCAAqC,CAC7B,4BAA6B,CACrC,oCAAqC,CAC7B,4BACV,CACA,wCACE,qCAAsC,CAC9B,6BAA8B,CACtC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,mCAEE,0BAA2B,CACnB,kBAAmB,CAC3B,SAAU,CACV,6DAAoE,CAC5D,qDACV,CACA,iBACE,+DAAuE,CAC/D,uDACV,CAUA,uDACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,sFAEE,qCAAsC,CAC9B,6BAA8B,CACtC,oCAAqC,CAC7B,4BACV,CACA,0CACE,sCAAuC,CAC/B,8BAA+B,CACvC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,qCAEE,0BAA2B,CACnB,kBAAmB,CAC3B,SAAU,CACV,6DAAoE,CAC5D,qDACV,CACA,kBACE,+DAAuE,CAC/D,uDACV,CACA,6BACE,GACE,2BAA6B,CACrB,mBAAqB,CAC7B,SACF,CACA,GACE,0BAA2B,CACnB,kBAAmB,CAC3B,SACF,CACF,CACA,qBACE,GACE,2BAA6B,CACrB,mBAAqB,CAC7B,SACF,CACA,GACE,0BAA2B,CACnB,kBAAmB,CAC3B,SACF,CACF,CACA,8BACE,GACE,0BAA2B,CACnB,kBACV,CACA,GACE,2BAA6B,CACrB,mBAAqB,CAC7B,SACF,CACF,CACA,sBACE,GACE,0BAA2B,CACnB,kBACV,CACA,GACE,2BAA6B,CACrB,mBAAqB,CAC7B,SACF,CACF,CACA,gCACE,GACE,2BAA6B,CACrB,mBAAqB,CAC7B,SACF,CACA,GACE,0BAA2B,CACnB,kBAAmB,CAC3B,SACF,CACF,CACA,wBACE,GACE,2BAA6B,CACrB,mBAAqB,CAC7B,SACF,CACA,GACE,0BAA2B,CACnB,kBAAmB,CAC3B,SACF,CACF,CACA,iCACE,GACE,0BAA2B,CACnB,kBACV,CACA,GACE,2BAA6B,CACrB,mBAAqB,CAC7B,SACF,CACF,CACA,yBACE,GACE,0BAA2B,CACnB,kBACV,CACA,GACE,2BAA6B,CACrB,mBAAqB,CAC7B,SACF,CACF,CACA,+BACE,GACE,2BAA6B,CACrB,mBAAqB,CAC7B,8BAAgC,CACxB,sBAAwB,CAChC,SACF,CACA,GACE,0BAA2B,CACnB,kBAAmB,CAC3B,8BAAgC,CACxB,sBACV,CACF,CACA,uBACE,GACE,2BAA6B,CACrB,mBAAqB,CAC7B,8BAAgC,CACxB,sBAAwB,CAChC,SACF,CACA,GACE,0BAA2B,CACnB,kBAAmB,CAC3B,8BAAgC,CACxB,sBACV,CACF,CACA,gCACE,GACE,0BAA2B,CACnB,kBAAmB,CAC3B,8BAAgC,CACxB,sBACV,CACA,GACE,2BAA6B,CACrB,mBAAqB,CAC7B,8BAAgC,CACxB,sBAAwB,CAChC,SACF,CACF,CACA,wBACE,GACE,0BAA2B,CACnB,kBAAmB,CAC3B,8BAAgC,CACxB,sBACV,CACA,GACE,2BAA6B,CACrB,mBAAqB,CAC7B,8BAAgC,CACxB,sBAAwB,CAChC,SACF,CACF,CACA,iCACE,GACE,2BAA6B,CACrB,mBAAqB,CAC7B,8BAAgC,CACxB,sBAAwB,CAChC,SACF,CACA,GACE,0BAA2B,CACnB,kBAAmB,CAC3B,8BAAgC,CACxB,sBACV,CACF,CACA,yBACE,GACE,2BAA6B,CACrB,mBAAqB,CAC7B,8BAAgC,CACxB,sBAAwB,CAChC,SACF,CACA,GACE,0BAA2B,CACnB,kBAAmB,CAC3B,8BAAgC,CACxB,sBACV,CACF,CACA,kCACE,GACE,0BAA2B,CACnB,kBAAmB,CAC3B,8BAAgC,CACxB,sBACV,CACA,GACE,2BAA6B,CACrB,mBAAqB,CAC7B,8BAAgC,CACxB,sBAAwB,CAChC,SACF,CACF,CACA,0BACE,GACE,0BAA2B,CACnB,kBAAmB,CAC3B,8BAAgC,CACxB,sBACV,CACA,GACE,2BAA6B,CACrB,mBAAqB,CAC7B,8BAAgC,CACxB,sBAAwB,CAChC,SACF,CACF,CACA,kCACE,GACE,2BAA6B,CACrB,mBAAqB,CAC7B,iCAAkC,CAC1B,yBAA0B,CAClC,SACF,CACA,GACE,0BAA2B,CACnB,kBAAmB,CAC3B,iCAAkC,CAC1B,yBACV,CACF,CACA,0BACE,GACE,2BAA6B,CACrB,mBAAqB,CAC7B,iCAAkC,CAC1B,yBAA0B,CAClC,SACF,CACA,GACE,0BAA2B,CACnB,kBAAmB,CAC3B,iCAAkC,CAC1B,yBACV,CACF,CACA,mCACE,GACE,0BAA2B,CACnB,kBAAmB,CAC3B,iCAAkC,CAC1B,yBACV,CACA,GACE,2BAA6B,CACrB,mBAAqB,CAC7B,iCAAkC,CAC1B,yBAA0B,CAClC,SACF,CACF,CACA,2BACE,GACE,0BAA2B,CACnB,kBAAmB,CAC3B,iCAAkC,CAC1B,yBACV,CACA,GACE,2BAA6B,CACrB,mBAAqB,CAC7B,iCAAkC,CAC1B,yBAA0B,CAClC,SACF,CACF,CACA,iCACE,GACE,2BAA6B,CACrB,mBAAqB,CAC7B,iCAAkC,CAC1B,yBAA0B,CAClC,SACF,CACA,GACE,0BAA2B,CACnB,kBAAmB,CAC3B,iCAAkC,CAC1B,yBACV,CACF,CACA,yBACE,GACE,2BAA6B,CACrB,mBAAqB,CAC7B,iCAAkC,CAC1B,yBAA0B,CAClC,SACF,CACA,GACE,0BAA2B,CACnB,kBAAmB,CAC3B,iCAAkC,CAC1B,yBACV,CACF,CACA,kCACE,GACE,0BAA2B,CACnB,kBAAmB,CAC3B,iCAAkC,CAC1B,yBACV,CACA,GACE,2BAA6B,CACrB,mBAAqB,CAC7B,iCAAkC,CAC1B,yBAA0B,CAClC,SACF,CACF,CACA,0BACE,GACE,0BAA2B,CACnB,kBAAmB,CAC3B,iCAAkC,CAC1B,yBACV,CACA,GACE,2BAA6B,CACrB,mBAAqB,CAC7B,iCAAkC,CAC1B,yBAA0B,CAClC,SACF,CACF,CACA,4BACE,eACF,CAKA,wDAHE,mHAAoI,CACpI,2GAMF,CAJA,qBACE,eAGF,CA18DA,YAEE,mBAAoB,CACpB,YAAa,CAET,aAAc,CACV,SAAU,CAGd,yBAA0B,CACtB,qBAAsB,CAE9B,YAAa,CACb,kBACF,CACA,0BAEE,6BAA8B,CACtB,qBACV,CACA,iCAGM,sBAAuB,CACnB,kBACV,CACA,kGAEE,iBACF,CACA,sCAGM,iBAAkB,CACd,aACV,CACA,mBACE,WAAY,CACZ,cAAe,CACf,qBAA0B,CAC1B,gBAAiB,CACjB,kBACF,CACA,mBACE,iBAAkB,CAClB,qBAA0B,CAC1B,cAAe,CACf,kBACF,CACA,oBAEM,aAAc,CACV,SAAU,CAElB,YACF,CACA,kBACE,iBAAkB,CAElB,WAAY,CACZ,kBAAmB,CACnB,0BAA4B,CAC5B,kBACF,CACA,2BACE,WAAY,CACZ,gBAAkB,CAClB,gBACF,CACA,8BACE,mBACF,CACA,wBAEM,gBAAiB,CACb,OACV,CACA,0BACE,cAAe,CACf,QAAS,CACT,SAAU,CACV,WAAY,CACZ,UAAW,CACX,gBAAiB,CACjB,iBAAkB,CAClB,kBAAmB,CACnB,cAAe,CACf,0BAA4B,CAC5B,kBACF,CACA,+BACE,eACF,CACA,qCACE,iBAAkB,CAClB,QAAS,CACT,WAAY,CACZ,SAAU,CACV,UAAW,CACX,WAAY,CACZ,UAAW,CACX,cAAe,CACf,gBAAiB,CACjB,iBAAkB,CAClB,kBAAmB,CACnB,yBAA0B,CAC1B,cAAe,CACf,sCAAwC,CACxC,8BACF,CACA,2CACE,kBACF,CACA,2CACE,UAAW,CACX,yBACF,CACA,wBACE,eACF,CAvHA,yHAyHE,qBAA0B,CAC1B,eArGF,CArBA,UACE,6BAA8B,CACtB,qBAAsB,CAG9B,cAAe,CACf,yBAA0B,CAC1B,kBAAmB,CACnB,oCAAqC,CAC7B,mCAA6B,CACrC,QAAgB,CAChB,SAAe,CAEf,aAAc,CACd,eAAgB,CAEhB,YAAa,CACb,6GAA4H,CACpH,qGAAoH,CAC5H,2CAA+C,CAC/C,mCACF,CAKA,iCAHE,aAAc,CACd,UAMF,CAJA,gBAEE,UAEF,CACA,0BAEE,QAAS,CACT,SAAU,CACV,eACF,CACA,iBACE,YACF,CACA,2BACE,aAAc,CACd,gBAAiB,CACjB,qBAA0B,CAC1B,cAAe,CACf,kBAAmB,CACnB,0BAA4B,CAC5B,kBACF,CACA,2CAEE,4JAAoL,CACpL,oJACF,CACA,2BACE,aACF,CACA,qDAEE,kBACF,CACA,gCACE,WAAe,CACf,2GAA2H,CAC3H,mGACF,CACA,iBACE,qBACF,CACA,4BACE,aACF,CACA,uBACE,aACF,CACA,wBACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,4BAA6B,CAC7B,UACF,CACA,4BACE,qBACF,CACA,kCACE,aACF,CACA,uBACE,UAAW,CACX,eAAgB,CAChB,aAAc,CACd,wBACF,CACA,yJAKE,aACF,CACA,2EAEE,eACF,CACA,0JAGE,4BACF,CAIA,kFAEE,aACF,CACA,4DACE,wBACF,CACA,4DAGE,8BACF,CACA,yBACE,6BACF,CACA,2GAGE,eAAgB,CAChB,8BAA+B,CAC/B,SAAU,CACV,eAAgB,CAChB,cAAe,CACf,4BAA6B,CACrB,oBACV,CACA,mRAGE,iBAAkB,CAClB,eACF,CACA,wJAGE,MAAO,CACP,aAAc,CACd,cACF,CACA,0KAGE,cACF,CACA,yTAME,4BAA6B,CACrB,oBACV,CACA,kCACE,eACF,CACA,uCAEE,iBAAkB,CAClB,aAAc,CACd,QAAS,CACT,cAAe,CACf,kBAAmB,CACnB,cAAe,CACf,qMAAqO,CACrO,6LACF,CACA,yDAEE,cAAe,CACf,iBAAkB,CAClB,cAAe,CACf,yGAAyH,CACzH,iGACF,CACA,mEAEE,SAAU,CACV,sGAAsH,CACtH,8FACF,CACA,2GAEE,cACF,CACA,iCACE,UAAW,CACX,YAAa,CACb,SAAU,CACV,eAAgB,CAChB,aAAc,CACd,wBACF,CACA,wBACE,iBAAkB,CAClB,YAAa,CACb,iBACF,CACA,+BACE,iBAAkB,CAClB,QAAS,CACT,OAAQ,CACR,QAAS,CACT,MAAO,CACP,UAAW,CACX,WAAY,CACZ,aAAe,CACf,WACF,CACA,4CACE,KAAM,CACN,SACF,CACA,4BACE,qBAAsB,CACtB,iBACF,CACA,gDACE,uEAA+E,CAC/E,+DAAuE,CACvE,uDAA+D,CAC/D,4GACF,CACA,kCACE,qBACF,CACA,qTAIE,iBAAkB,CAClB,OAAQ,CACR,UAAW,CACX,UAAW,CACX,uEAA+E,CAC/E,+DAAuE,CACvE,uDAA+D,CAC/D,4GACF,CACA,8pBAQE,iBAAkB,CAClB,SAAU,CACV,YAAa,CAEb,sGAAqF,CAArF,uEAAqF,CACrF,iBAAkB,CAClB,4JAAoL,CACpL,oJAA4K,CAC5K,4IAAoK,CACpK,iMAAiO,CACjO,UACF,CACA,iVAIE,gDAAiD,CACzC,wCACV,CACA,6UAIE,gDAAiD,CACzC,wCACV,CACA,8sBASE,gFAAuD,CAAvD,iDACF,CACA,iQAGE,gDAAiD,CACzC,wCACV,CACA,8PAGE,gDAAiD,CACzC,wCACV,CACA,gFACE,gDAAiD,CACzC,wCACV,CACA,+EACE,gDAAiD,CACzC,wCACV,CACA,+FACE,kCAAmC,CAC3B,0BACV,CACA,qGACE,iDAAkD,CAC1C,yCACV,CACA,sGACE,+CAAgD,CACxC,uCACV,CAMA,gTAGE,aACF,CACA,qBACE,gBAAiB,CACjB,kBAAmB,CACnB,QAAS,CACT,+BAAgC,CAChC,uBAAwB,CAChB,eACV,CACA,2EAEE,iBAAkB,CAClB,OAAQ,CACR,oBAAqB,CACrB,qBAAsB,CACtB,mCACF,CACA,kWAQE,aAAc,CACd,+BACF,CACA,sCACE,qBACF,CACA,iDACE,aACF,CACA,4CACE,aACF,CACA,6CACE,WACF,CACA,+CACE,aACF,CACA,2BACE,aAAc,CACd,UAAW,CACX,QAAS,CACT,aACF,CACA,iJAIE,iBACF,CACA,yKAIE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,8BAA+B,CAC/B,+BAAiC,CACzB,uBAAyB,CACjC,SAAU,CACV,kHAAkI,CAClI,0GAA0H,CAC1H,kGAAkH,CAClH,uJAA+K,CAC/K,UACF,CACA,sUAQE,WAAY,CACZ,cAAe,CACf,iBAAkB,CAClB,cAAe,CACf,eAAgB,CAChB,cAAe,CACf,gBAAiB,CACjB,sBACF,CACA,6JAIE,oBACF,CACA,qNAIE,iBACF,CACA,8YAQE,WAAY,CACZ,gBACF,CACA,2CACE,kBACF,CACA,iBACE,UACF,CACA,yFAEE,2BAA4B,CACpB,mBAAoB,CAC5B,SAAU,CACV,oHAAoI,CACpI,4GAA4H,CAC5H,oGAAoH,CACpH,0JACF,CACA,yEAEE,sBACF,CACA,yCACE,kBACF,CACA,2BACE,UACF,CACA,4TAIE,MAAO,CACP,cAAe,CACf,kBACF,CACA,4ZAIE,YACF,CACA,gWAIE,QAAS,CACT,cAAe,CACf,gBACF,CACA,oXAIE,oBAAqB,CACrB,WAAY,CACZ,SACF,CACA,oCACE,oBACF,CACA,mCACE,mBACF,CACA,4CACE,YACF,CACA,qCACE,yBACF,CACA,sDACE,iBAAkB,CAClB,gBAAiB,CACjB,eAAgB,CAChB,kBAAmB,CACnB,sBACF,CACA,0BACE,QAAS,CACT,SACF,CACA,2FAEE,qBACF,CAQA,2KAHE,uBAAwB,CAChB,eAQV,CANA,8BACE,SAAU,CACV,QAAS,CACT,eAGF,CACA,qHAEE,WAAY,CACZ,gBAAiB,CACjB,0BAA2B,CAC3B,oBACF,CACA,yDACE,iBACF,CACA,mDAEE,+BAAqC,CACrC,eAAgB,CAChB,kCAAoC,CACpC,kBACF,CACA,uDAEE,+BAAqC,CACrC,mBACF,CACA,mGAEE,+BAAqC,CACrC,kBACF,CACA,gUAIE,oCACF,CACA,6BACE,mBACF,CACA,qDAEE,yBAAgC,CAChC,kBACF,CACA,qJAEE,WAAa,CACb,0BAA4B,CAC5B,kBACF,CACA,oUAIE,eACF,CACA,sCACE,sBACF,CACA,6CACE,kBACF,CACA,mCACE,eACF,CACA,uGAEE,KAAM,CACN,YAAa,CACb,oBAAqB,CACrB,eACF,CACA,2DACE,QACF,CACA,wGAGE,yBACF,CACA,6IAIE,cACF,CACA,yMAIE,MAAO,CACP,aAAc,CACd,cACF,CACA,iOAIE,cACF,CACA,qGAEE,UACF,CACA,8OAME,UAAW,CACX,4BACF,CACA,0PAME,UACF,CACA,gkCAYE,SACF,CACA,4xEAwBE,eACF,CACA,oCACE,4BACF,CACA,+EACE,wBACF,CACA,uCACE,UAAW,CACX,cACF,CACA,6CACE,cACF,CAQA,6LACE,UACF,CACA,8GAEE,wBACF,CACA,sKAIE,mCAA2C,CAC3C,UACF,CACA,iIAEE,mCACF,CACA,4XAIE,wCACF,CACA,cACE,aACF,CACA,yCACE,gBACF,CACA,8DAEE,iBAAkB,CAClB,6BACF,CACA,4FAEE,gBACF,CAOA,yhBAME,kCAAmC,CAC3B,0BACV,CACA,qFAEE,iBAAkB,CAClB,gBACF,CACA,uIAEE,aACF,CACA,6WAIE,UAAW,CACX,SACF,CACA,2SAGE,iDAAkD,CAC1C,yCACV,CACA,wSAGE,+CAAgD,CACxC,uCACV,CACA,6NAIE,UAAW,CACX,MACF,CACA,8aAQE,gBACF,CACA,sDACE,eAAgB,CAChB,iBACF,CACA,wDACE,kBAAmB,CACnB,iBACF,CACA,kFACE,cACF,CACA,uHAEE,qBACF,CACA,sEACE,kBAAmB,CACnB,cACF,CA70BA,aACE,6BAA8B,CACtB,qBAAsB,CAC9B,QAAS,CACT,SAAU,CACV,qBAA0B,CAC1B,cAAe,CACf,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CAChB,oCAAqC,CAC7B,mCAA6B,CACrC,iBAAkB,CAClB,YAAa,CACb,aAAc,CACd,eAAgB,CAChB,kBACF,CACA,oBACE,YACF,CACA,0FAGE,kBACF,CACA,gGAGE,gBACF,CACA,mGAGE,eACF,CACA,6FAGE,iBACF,CACA,mBACE,cAAe,CACf,eAAgB,CAChB,eAAgB,CAChB,UAAW,CACX,eAAgB,CAChB,oBAAqB,CACrB,oBAAqB,CACrB,gCAAqC,CACrC,iBAAkB,CAClB,6GAA4H,CACpH,qGACV,CACA,mBACE,iBAAkB,CAClB,aAAc,CACd,mBAAoB,CACpB,oBAAqB,CACrB,eAAgB,CAChB,sBAAuB,CACvB,mBACF,CACA,0BACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,aAAc,CACd,SAAU,CACV,UAAW,CACX,WAAY,CACZ,gCAAqC,CACrC,UAAW,CACX,mBACF,CACA,mJAGE,oBACF,CACA,wKAGE,8CAAmD,CAC3C,sCAA2C,CACnD,yDAA0D,CAClD,iDACV,CACA,8CACE,QAAS,CACT,kCAAmC,CAC3B,0BACV,CACA,kDACE,SACF,CACA,mDACE,UACF,CACA,yJAGE,kBACF,CACA,8KAGE,+CAAoD,CAC5C,uCAA4C,CACpD,wDAAyD,CACjD,gDACV,CACA,gDACE,OAAQ,CACR,kCAAmC,CAC3B,0BACV,CACA,mDACE,OACF,CACA,sDACE,UACF,CACA,sJAGE,mBACF,CACA,2KAGE,+CAAoD,CAC5C,uCAA4C,CACpD,yDAA0D,CAClD,iDACV,CACA,+CACE,OAAQ,CACR,kCAAmC,CAC3B,0BACV,CACA,kDACE,OACF,CACA,qDACE,UACF,CACA,4JAGE,iBACF,CACA,iLAGE,gDAAqD,CAC7C,wCAA6C,CACrD,wDAAyD,CACjD,gDACV,CACA,iDACE,QAAS,CACT,kCAAmC,CAC3B,0BACV,CACA,qDACE,SACF,CACA,sDACE,UACF,CACA,iBACE,aACF,CACA,oCACE,gBACF,CAlLA,SAMM,sBAAuB,CACnB,kBACV,CACA,wCAPE,mBAAoB,CACpB,YAWF,CACA,eAEM,mBAAoB,CAChB,0BACV,CACA,gBAEM,oBAAqB,CACjB,sBACV,CACA,aAEM,iBAAkB,CACd,wBACV,CACA,uBAEM,qBAAsB,CAClB,6BACV,CACA,sBACE,wBAAyB,CACrB,4BACN,CACA,aAEM,oBAAqB,CACjB,sBACV,CACA,gBAEM,qBAAsB,CAClB,kBACV,CACA,gBAEM,kBAAmB,CACf,oBACV,CACA,SACE,iBAAkB,CAClB,cAAe,CACf,cACF,CACA,YACE,aAAc,CAEV,iBAAkB,CACd,aAAc,CACtB,cACF,CACA,iBACE,SACF,CACA,iBACE,UACF,CACA,mBACE,gBACF,CACA,kBAEM,iBAAkB,CACd,QACV,CACA,YACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,iBACE,iBACF,CACA,iBACE,kBACF,CACA,mBACE,wBACF,CACA,kBAEM,iBAAkB,CACd,QACV,CACA,YACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,iBACE,iBACF,CACA,iBACE,kBACF,CACA,mBACE,wBACF,CACA,kBAEM,iBAAkB,CACd,QACV,CACA,YACE,aAAc,CAEV,kBAAmB,CACf,cAAe,CACvB,eACF,CACA,iBACE,UACF,CACA,iBACE,WACF,CACA,mBACE,iBACF,CACA,kBAEM,iBAAkB,CACd,QACV,CACA,YACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,iBACE,iBACF,CACA,iBACE,kBACF,CACA,mBACE,wBACF,CACA,kBAEM,iBAAkB,CACd,QACV,CACA,YACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,iBACE,iBACF,CACA,iBACE,kBACF,CACA,mBACE,wBACF,CACA,kBAEM,iBAAkB,CACd,QACV,CACA,YACE,aAAc,CAEV,gBAAiB,CACb,YAAa,CACrB,aACF,CACA,iBACE,QACF,CACA,iBACE,SACF,CACA,mBACE,eACF,CACA,kBAEM,iBAAkB,CACd,QACV,CACA,YACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,iBACE,iBACF,CACA,iBACE,kBACF,CACA,mBACE,wBACF,CACA,kBAEM,iBAAkB,CACd,QACV,CACA,YACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,iBACE,iBACF,CACA,iBACE,kBACF,CACA,mBACE,wBACF,CACA,kBAEM,iBAAkB,CACd,QACV,CACA,YACE,aAAc,CAEV,kBAAmB,CACf,cAAe,CACvB,eACF,CACA,iBACE,UACF,CACA,iBACE,WACF,CACA,mBACE,iBACF,CACA,kBAEM,iBAAkB,CACd,QACV,CACA,YACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,iBACE,iBACF,CACA,iBACE,kBACF,CACA,mBACE,wBACF,CACA,kBAEM,iBAAkB,CACd,QACV,CACA,YACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,iBACE,iBACF,CACA,iBACE,kBACF,CACA,mBACE,wBACF,CACA,kBAEM,iBAAkB,CACd,QACV,CACA,YACE,aAAc,CAEV,gBAAiB,CACb,YAAa,CACrB,aACF,CACA,iBACE,QACF,CACA,iBACE,SACF,CACA,mBACE,eACF,CACA,kBAEM,iBAAkB,CACd,QACV,CACA,YACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,iBACE,iBACF,CACA,iBACE,kBACF,CACA,mBACE,wBACF,CACA,kBAEM,iBAAkB,CACd,QACV,CACA,YACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,iBACE,iBACF,CACA,iBACE,kBACF,CACA,mBACE,wBACF,CACA,kBAEM,iBAAkB,CACd,QACV,CACA,WACE,aAAc,CAEV,kBAAmB,CACf,cAAe,CACvB,eACF,CACA,gBACE,UACF,CACA,gBACE,WACF,CACA,kBACE,iBACF,CACA,iBAEM,gBAAiB,CACb,OACV,CACA,WACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,gBACE,iBACF,CACA,gBACE,kBACF,CACA,kBACE,wBACF,CACA,iBAEM,gBAAiB,CACb,OACV,CACA,WACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,gBACE,iBACF,CACA,gBACE,kBACF,CACA,kBACE,wBACF,CACA,iBAEM,gBAAiB,CACb,OACV,CACA,WACE,aAAc,CAEV,gBAAiB,CACb,YAAa,CACrB,aACF,CACA,gBACE,QACF,CACA,gBACE,SACF,CACA,kBACE,eACF,CACA,iBAEM,gBAAiB,CACb,OACV,CACA,WACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,gBACE,iBACF,CACA,gBACE,kBACF,CACA,kBACE,wBACF,CACA,iBAEM,gBAAiB,CACb,OACV,CACA,WACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,gBACE,iBACF,CACA,gBACE,kBACF,CACA,kBACE,wBACF,CACA,iBAEM,gBAAiB,CACb,OACV,CACA,WACE,aAAc,CAEV,kBAAmB,CACf,cAAe,CACvB,eACF,CACA,gBACE,UACF,CACA,gBACE,WACF,CACA,kBACE,iBACF,CACA,iBAEM,gBAAiB,CACb,OACV,CACA,WACE,aAAc,CAEV,wBAAyB,CACrB,oBAAqB,CAC7B,qBACF,CACA,gBACE,gBACF,CACA,gBACE,iBACF,CACA,kBACE,uBACF,CACA,iBAEM,gBAAiB,CACb,OACV,CACA,WACE,aAAc,CAEV,wBAAyB,CACrB,oBAAqB,CAC7B,qBACF,CACA,gBACE,gBACF,CACA,gBACE,iBACF,CACA,kBACE,uBACF,CACA,iBAEM,gBAAiB,CACb,OACV,CACA,WACE,YACF,CAaA,kBACE,aACF,CACA,iBAEM,gBAAiB,CACb,OACV,CAaA,8BACE,cACF,CACA,4BACE,iBAAkB,CAClB,SACF,CACA,4BACE,UAAW,CACX,gBACF,CACA,8BACE,wBAAyB,CACzB,aACF,CACA,4BACE,iBAAkB,CAClB,SACF,CACA,4BACE,UAAW,CACX,gBACF,CACA,8BACE,wBAAyB,CACzB,aACF,CACA,4BACE,WAAY,CACZ,SACF,CACA,4BACE,UAAW,CACX,UACF,CACA,8BACE,kBAAmB,CACnB,aACF,CACA,4BACE,kBAAmB,CACnB,SACF,CACA,4BACE,UAAW,CACX,iBACF,CACA,8BACE,yBAA0B,CAC1B,aACF,CACA,4BACE,kBAAmB,CACnB,SACF,CACA,4BACE,UAAW,CACX,iBACF,CACA,8BACE,yBAA0B,CAC1B,aACF,CACA,4BACE,SAAU,CACV,SACF,CACA,4BACE,UAAW,CACX,QACF,CACA,8BACE,gBAAiB,CACjB,aACF,CACA,4BACE,kBAAmB,CACnB,SACF,CACA,4BACE,UAAW,CACX,iBACF,CACA,8BACE,yBAA0B,CAC1B,aACF,CACA,4BACE,kBAAmB,CACnB,SACF,CACA,4BACE,UAAW,CACX,iBACF,CACA,8BACE,yBAA0B,CAC1B,aACF,CACA,4BACE,WAAY,CACZ,SACF,CACA,4BACE,UAAW,CACX,UACF,CACA,8BACE,kBAAmB,CACnB,aACF,CACA,6BACE,kBAAmB,CACnB,SACF,CACA,6BACE,UAAW,CACX,iBACF,CACA,+BACE,yBAA0B,CAC1B,aACF,CACA,6BACE,kBAAmB,CACnB,SACF,CACA,6BACE,UAAW,CACX,iBACF,CACA,+BACE,yBAA0B,CAC1B,aACF,CACA,6BACE,SAAU,CACV,SACF,CACA,6BACE,UAAW,CACX,QACF,CACA,+BACE,gBAAiB,CACjB,aACF,CACA,6BACE,kBAAmB,CACnB,SACF,CACA,6BACE,UAAW,CACX,iBACF,CACA,+BACE,yBAA0B,CAC1B,aACF,CACA,6BACE,kBAAmB,CACnB,SACF,CACA,6BACE,UAAW,CACX,iBACF,CACA,+BACE,yBAA0B,CAC1B,aACF,CACA,6BACE,WAAY,CACZ,SACF,CACA,6BACE,UAAW,CACX,UACF,CACA,+BACE,kBAAmB,CACnB,aACF,CACA,6BACE,kBAAmB,CACnB,SACF,CACA,6BACE,UAAW,CACX,iBACF,CACA,+BACE,yBAA0B,CAC1B,aACF,CACA,6BACE,kBAAmB,CACnB,SACF,CACA,6BACE,UAAW,CACX,iBACF,CACA,+BACE,yBAA0B,CAC1B,aACF,CACA,6BACE,SAAU,CACV,SACF,CACA,6BACE,UAAW,CACX,QACF,CACA,+BACE,gBAAiB,CACjB,aACF,CACA,6BACE,kBAAmB,CACnB,SACF,CACA,6BACE,UAAW,CACX,iBACF,CACA,+BACE,yBAA0B,CAC1B,aACF,CACA,6BACE,kBAAmB,CACnB,SACF,CACA,6BACE,UAAW,CACX,iBACF,CACA,+BACE,yBAA0B,CAC1B,aACF,CACA,6BACE,WAAY,CACZ,SACF,CACA,6BACE,UAAW,CACX,UACF,CACA,+BACE,kBAAmB,CACnB,aACF,CACA,6BACE,kBAAmB,CACnB,SACF,CACA,6BACE,UAAW,CACX,iBACF,CACA,+BACE,yBAA0B,CAC1B,aACF,CACA,6BACE,kBAAmB,CACnB,SACF,CACA,6BACE,UAAW,CACX,iBACF,CACA,+BACE,yBAA0B,CAC1B,aACF,CACA,6BACE,UAAW,CACX,SACF,CACA,6BACE,UAAW,CACX,SACF,CACA,+BACE,iBAAkB,CAClB,aACF,CACA,eACE,aAAc,CAEV,iBAAkB,CACd,aAAc,CACtB,cACF,CACA,oBACE,SACF,CACA,oBACE,UACF,CACA,sBACE,gBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,kBAAmB,CACf,cAAe,CACvB,eACF,CACA,oBACE,UACF,CACA,oBACE,WACF,CACA,sBACE,iBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,gBAAiB,CACb,YAAa,CACrB,aACF,CACA,oBACE,QACF,CACA,oBACE,SACF,CACA,sBACE,eACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,kBAAmB,CACf,cAAe,CACvB,eACF,CACA,oBACE,UACF,CACA,oBACE,WACF,CACA,sBACE,iBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,gBAAiB,CACb,YAAa,CACrB,aACF,CACA,oBACE,QACF,CACA,oBACE,SACF,CACA,sBACE,eACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,cACE,aAAc,CAEV,kBAAmB,CACf,cAAe,CACvB,eACF,CACA,mBACE,UACF,CACA,mBACE,WACF,CACA,qBACE,iBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,mBACE,iBACF,CACA,mBACE,kBACF,CACA,qBACE,wBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,mBACE,iBACF,CACA,mBACE,kBACF,CACA,qBACE,wBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,gBAAiB,CACb,YAAa,CACrB,aACF,CACA,mBACE,QACF,CACA,mBACE,SACF,CACA,qBACE,eACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,mBACE,iBACF,CACA,mBACE,kBACF,CACA,qBACE,wBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,mBACE,iBACF,CACA,mBACE,kBACF,CACA,qBACE,wBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,kBAAmB,CACf,cAAe,CACvB,eACF,CACA,mBACE,UACF,CACA,mBACE,WACF,CACA,qBACE,iBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,wBAAyB,CACrB,oBAAqB,CAC7B,qBACF,CACA,mBACE,gBACF,CACA,mBACE,iBACF,CACA,qBACE,uBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,wBAAyB,CACrB,oBAAqB,CAC7B,qBACF,CACA,mBACE,gBACF,CACA,mBACE,iBACF,CACA,qBACE,uBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,YACF,CACA,gBACE,SACF,CACA,gBACE,UACF,CACA,mBACE,SACF,CACA,mBACE,UACF,CACA,qBACE,aACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,4BACE,UACF,CACA,4BACE,SACF,CACA,+BACE,UACF,CACA,+BACE,SACF,CACA,iCACE,cACF,CACA,+BACE,iBAAkB,CAClB,SACF,CACA,+BACE,UAAW,CACX,gBACF,CACA,iCACE,wBAAyB,CACzB,aACF,CACA,+BACE,iBAAkB,CAClB,SACF,CACA,+BACE,UAAW,CACX,gBACF,CACA,iCACE,wBAAyB,CACzB,aACF,CACA,+BACE,WAAY,CACZ,SACF,CACA,+BACE,UAAW,CACX,UACF,CACA,iCACE,kBAAmB,CACnB,aACF,CACA,+BACE,kBAAmB,CACnB,SACF,CACA,+BACE,UAAW,CACX,iBACF,CACA,iCACE,yBAA0B,CAC1B,aACF,CACA,+BACE,kBAAmB,CACnB,SACF,CACA,+BACE,UAAW,CACX,iBACF,CACA,iCACE,yBAA0B,CAC1B,aACF,CACA,+BACE,SAAU,CACV,SACF,CACA,+BACE,UAAW,CACX,QACF,CACA,iCACE,gBAAiB,CACjB,aACF,CACA,+BACE,kBAAmB,CACnB,SACF,CACA,+BACE,UAAW,CACX,iBACF,CACA,iCACE,yBAA0B,CAC1B,aACF,CACA,+BACE,kBAAmB,CACnB,SACF,CACA,+BACE,UAAW,CACX,iBACF,CACA,iCACE,yBAA0B,CAC1B,aACF,CACA,+BACE,WAAY,CACZ,SACF,CACA,+BACE,UAAW,CACX,UACF,CACA,iCACE,kBAAmB,CACnB,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,SAAU,CACV,SACF,CACA,gCACE,UAAW,CACX,QACF,CACA,kCACE,gBAAiB,CACjB,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,WAAY,CACZ,SACF,CACA,gCACE,UAAW,CACX,UACF,CACA,kCACE,kBAAmB,CACnB,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,SAAU,CACV,SACF,CACA,gCACE,UAAW,CACX,QACF,CACA,kCACE,gBAAiB,CACjB,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,WAAY,CACZ,SACF,CACA,gCACE,UAAW,CACX,UACF,CACA,kCACE,kBAAmB,CACnB,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,UAAW,CACX,SACF,CACA,gCACE,UAAW,CACX,SACF,CACA,kCACE,iBAAkB,CAClB,aACF,CACA,yBACE,eACE,aAAc,CAEV,iBAAkB,CACd,aAAc,CACtB,cACF,CACA,oBACE,SACF,CACA,oBACE,UACF,CACA,sBACE,gBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,kBAAmB,CACf,cAAe,CACvB,eACF,CACA,oBACE,UACF,CACA,oBACE,WACF,CACA,sBACE,iBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,gBAAiB,CACb,YAAa,CACrB,aACF,CACA,oBACE,QACF,CACA,oBACE,SACF,CACA,sBACE,eACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,kBAAmB,CACf,cAAe,CACvB,eACF,CACA,oBACE,UACF,CACA,oBACE,WACF,CACA,sBACE,iBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,gBAAiB,CACb,YAAa,CACrB,aACF,CACA,oBACE,QACF,CACA,oBACE,SACF,CACA,sBACE,eACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,cACE,aAAc,CAEV,kBAAmB,CACf,cAAe,CACvB,eACF,CACA,mBACE,UACF,CACA,mBACE,WACF,CACA,qBACE,iBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,mBACE,iBACF,CACA,mBACE,kBACF,CACA,qBACE,wBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,mBACE,iBACF,CACA,mBACE,kBACF,CACA,qBACE,wBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,gBAAiB,CACb,YAAa,CACrB,aACF,CACA,mBACE,QACF,CACA,mBACE,SACF,CACA,qBACE,eACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,mBACE,iBACF,CACA,mBACE,kBACF,CACA,qBACE,wBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,mBACE,iBACF,CACA,mBACE,kBACF,CACA,qBACE,wBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,kBAAmB,CACf,cAAe,CACvB,eACF,CACA,mBACE,UACF,CACA,mBACE,WACF,CACA,qBACE,iBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,wBAAyB,CACrB,oBAAqB,CAC7B,qBACF,CACA,mBACE,gBACF,CACA,mBACE,iBACF,CACA,qBACE,uBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,wBAAyB,CACrB,oBAAqB,CAC7B,qBACF,CACA,mBACE,gBACF,CACA,mBACE,iBACF,CACA,qBACE,uBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,YACF,CACA,gBACE,SACF,CACA,gBACE,UACF,CACA,mBACE,SACF,CACA,mBACE,UACF,CACA,qBACE,aACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,4BACE,UACF,CACA,4BACE,SACF,CACA,+BACE,UACF,CACA,+BACE,SACF,CACA,iCACE,cACF,CACA,+BACE,iBAAkB,CAClB,SACF,CACA,+BACE,UAAW,CACX,gBACF,CACA,iCACE,wBAAyB,CACzB,aACF,CACA,+BACE,iBAAkB,CAClB,SACF,CACA,+BACE,UAAW,CACX,gBACF,CACA,iCACE,wBAAyB,CACzB,aACF,CACA,+BACE,WAAY,CACZ,SACF,CACA,+BACE,UAAW,CACX,UACF,CACA,iCACE,kBAAmB,CACnB,aACF,CACA,+BACE,kBAAmB,CACnB,SACF,CACA,+BACE,UAAW,CACX,iBACF,CACA,iCACE,yBAA0B,CAC1B,aACF,CACA,+BACE,kBAAmB,CACnB,SACF,CACA,+BACE,UAAW,CACX,iBACF,CACA,iCACE,yBAA0B,CAC1B,aACF,CACA,+BACE,SAAU,CACV,SACF,CACA,+BACE,UAAW,CACX,QACF,CACA,iCACE,gBAAiB,CACjB,aACF,CACA,+BACE,kBAAmB,CACnB,SACF,CACA,+BACE,UAAW,CACX,iBACF,CACA,iCACE,yBAA0B,CAC1B,aACF,CACA,+BACE,kBAAmB,CACnB,SACF,CACA,+BACE,UAAW,CACX,iBACF,CACA,iCACE,yBAA0B,CAC1B,aACF,CACA,+BACE,WAAY,CACZ,SACF,CACA,+BACE,UAAW,CACX,UACF,CACA,iCACE,kBAAmB,CACnB,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,SAAU,CACV,SACF,CACA,gCACE,UAAW,CACX,QACF,CACA,kCACE,gBAAiB,CACjB,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,WAAY,CACZ,SACF,CACA,gCACE,UAAW,CACX,UACF,CACA,kCACE,kBAAmB,CACnB,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,SAAU,CACV,SACF,CACA,gCACE,UAAW,CACX,QACF,CACA,kCACE,gBAAiB,CACjB,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,WAAY,CACZ,SACF,CACA,gCACE,UAAW,CACX,UACF,CACA,kCACE,kBAAmB,CACnB,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,UAAW,CACX,SACF,CACA,gCACE,UAAW,CACX,SACF,CACA,kCACE,iBAAkB,CAClB,aACF,CACF,CACA,yBACE,eACE,aAAc,CAEV,iBAAkB,CACd,aAAc,CACtB,cACF,CACA,oBACE,SACF,CACA,oBACE,UACF,CACA,sBACE,gBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,kBAAmB,CACf,cAAe,CACvB,eACF,CACA,oBACE,UACF,CACA,oBACE,WACF,CACA,sBACE,iBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,gBAAiB,CACb,YAAa,CACrB,aACF,CACA,oBACE,QACF,CACA,oBACE,SACF,CACA,sBACE,eACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,kBAAmB,CACf,cAAe,CACvB,eACF,CACA,oBACE,UACF,CACA,oBACE,WACF,CACA,sBACE,iBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,gBAAiB,CACb,YAAa,CACrB,aACF,CACA,oBACE,QACF,CACA,oBACE,SACF,CACA,sBACE,eACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,cACE,aAAc,CAEV,kBAAmB,CACf,cAAe,CACvB,eACF,CACA,mBACE,UACF,CACA,mBACE,WACF,CACA,qBACE,iBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,mBACE,iBACF,CACA,mBACE,kBACF,CACA,qBACE,wBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,mBACE,iBACF,CACA,mBACE,kBACF,CACA,qBACE,wBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,gBAAiB,CACb,YAAa,CACrB,aACF,CACA,mBACE,QACF,CACA,mBACE,SACF,CACA,qBACE,eACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,mBACE,iBACF,CACA,mBACE,kBACF,CACA,qBACE,wBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,mBACE,iBACF,CACA,mBACE,kBACF,CACA,qBACE,wBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,kBAAmB,CACf,cAAe,CACvB,eACF,CACA,mBACE,UACF,CACA,mBACE,WACF,CACA,qBACE,iBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,wBAAyB,CACrB,oBAAqB,CAC7B,qBACF,CACA,mBACE,gBACF,CACA,mBACE,iBACF,CACA,qBACE,uBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,wBAAyB,CACrB,oBAAqB,CAC7B,qBACF,CACA,mBACE,gBACF,CACA,mBACE,iBACF,CACA,qBACE,uBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,YACF,CACA,gBACE,SACF,CACA,gBACE,UACF,CACA,mBACE,SACF,CACA,mBACE,UACF,CACA,qBACE,aACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,4BACE,UACF,CACA,4BACE,SACF,CACA,+BACE,UACF,CACA,+BACE,SACF,CACA,iCACE,cACF,CACA,+BACE,iBAAkB,CAClB,SACF,CACA,+BACE,UAAW,CACX,gBACF,CACA,iCACE,wBAAyB,CACzB,aACF,CACA,+BACE,iBAAkB,CAClB,SACF,CACA,+BACE,UAAW,CACX,gBACF,CACA,iCACE,wBAAyB,CACzB,aACF,CACA,+BACE,WAAY,CACZ,SACF,CACA,+BACE,UAAW,CACX,UACF,CACA,iCACE,kBAAmB,CACnB,aACF,CACA,+BACE,kBAAmB,CACnB,SACF,CACA,+BACE,UAAW,CACX,iBACF,CACA,iCACE,yBAA0B,CAC1B,aACF,CACA,+BACE,kBAAmB,CACnB,SACF,CACA,+BACE,UAAW,CACX,iBACF,CACA,iCACE,yBAA0B,CAC1B,aACF,CACA,+BACE,SAAU,CACV,SACF,CACA,+BACE,UAAW,CACX,QACF,CACA,iCACE,gBAAiB,CACjB,aACF,CACA,+BACE,kBAAmB,CACnB,SACF,CACA,+BACE,UAAW,CACX,iBACF,CACA,iCACE,yBAA0B,CAC1B,aACF,CACA,+BACE,kBAAmB,CACnB,SACF,CACA,+BACE,UAAW,CACX,iBACF,CACA,iCACE,yBAA0B,CAC1B,aACF,CACA,+BACE,WAAY,CACZ,SACF,CACA,+BACE,UAAW,CACX,UACF,CACA,iCACE,kBAAmB,CACnB,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,SAAU,CACV,SACF,CACA,gCACE,UAAW,CACX,QACF,CACA,kCACE,gBAAiB,CACjB,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,WAAY,CACZ,SACF,CACA,gCACE,UAAW,CACX,UACF,CACA,kCACE,kBAAmB,CACnB,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,SAAU,CACV,SACF,CACA,gCACE,UAAW,CACX,QACF,CACA,kCACE,gBAAiB,CACjB,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,WAAY,CACZ,SACF,CACA,gCACE,UAAW,CACX,UACF,CACA,kCACE,kBAAmB,CACnB,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,UAAW,CACX,SACF,CACA,gCACE,UAAW,CACX,SACF,CACA,kCACE,iBAAkB,CAClB,aACF,CACF,CACA,yBACE,eACE,aAAc,CAEV,iBAAkB,CACd,aAAc,CACtB,cACF,CACA,oBACE,SACF,CACA,oBACE,UACF,CACA,sBACE,gBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,kBAAmB,CACf,cAAe,CACvB,eACF,CACA,oBACE,UACF,CACA,oBACE,WACF,CACA,sBACE,iBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,gBAAiB,CACb,YAAa,CACrB,aACF,CACA,oBACE,QACF,CACA,oBACE,SACF,CACA,sBACE,eACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,kBAAmB,CACf,cAAe,CACvB,eACF,CACA,oBACE,UACF,CACA,oBACE,WACF,CACA,sBACE,iBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,gBAAiB,CACb,YAAa,CACrB,aACF,CACA,oBACE,QACF,CACA,oBACE,SACF,CACA,sBACE,eACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,cACE,aAAc,CAEV,kBAAmB,CACf,cAAe,CACvB,eACF,CACA,mBACE,UACF,CACA,mBACE,WACF,CACA,qBACE,iBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,mBACE,iBACF,CACA,mBACE,kBACF,CACA,qBACE,wBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,mBACE,iBACF,CACA,mBACE,kBACF,CACA,qBACE,wBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,gBAAiB,CACb,YAAa,CACrB,aACF,CACA,mBACE,QACF,CACA,mBACE,SACF,CACA,qBACE,eACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,mBACE,iBACF,CACA,mBACE,kBACF,CACA,qBACE,wBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,mBACE,iBACF,CACA,mBACE,kBACF,CACA,qBACE,wBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,kBAAmB,CACf,cAAe,CACvB,eACF,CACA,mBACE,UACF,CACA,mBACE,WACF,CACA,qBACE,iBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,wBAAyB,CACrB,oBAAqB,CAC7B,qBACF,CACA,mBACE,gBACF,CACA,mBACE,iBACF,CACA,qBACE,uBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,wBAAyB,CACrB,oBAAqB,CAC7B,qBACF,CACA,mBACE,gBACF,CACA,mBACE,iBACF,CACA,qBACE,uBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,YACF,CACA,gBACE,SACF,CACA,gBACE,UACF,CACA,mBACE,SACF,CACA,mBACE,UACF,CACA,qBACE,aACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,4BACE,UACF,CACA,4BACE,SACF,CACA,+BACE,UACF,CACA,+BACE,SACF,CACA,iCACE,cACF,CACA,+BACE,iBAAkB,CAClB,SACF,CACA,+BACE,UAAW,CACX,gBACF,CACA,iCACE,wBAAyB,CACzB,aACF,CACA,+BACE,iBAAkB,CAClB,SACF,CACA,+BACE,UAAW,CACX,gBACF,CACA,iCACE,wBAAyB,CACzB,aACF,CACA,+BACE,WAAY,CACZ,SACF,CACA,+BACE,UAAW,CACX,UACF,CACA,iCACE,kBAAmB,CACnB,aACF,CACA,+BACE,kBAAmB,CACnB,SACF,CACA,+BACE,UAAW,CACX,iBACF,CACA,iCACE,yBAA0B,CAC1B,aACF,CACA,+BACE,kBAAmB,CACnB,SACF,CACA,+BACE,UAAW,CACX,iBACF,CACA,iCACE,yBAA0B,CAC1B,aACF,CACA,+BACE,SAAU,CACV,SACF,CACA,+BACE,UAAW,CACX,QACF,CACA,iCACE,gBAAiB,CACjB,aACF,CACA,+BACE,kBAAmB,CACnB,SACF,CACA,+BACE,UAAW,CACX,iBACF,CACA,iCACE,yBAA0B,CAC1B,aACF,CACA,+BACE,kBAAmB,CACnB,SACF,CACA,+BACE,UAAW,CACX,iBACF,CACA,iCACE,yBAA0B,CAC1B,aACF,CACA,+BACE,WAAY,CACZ,SACF,CACA,+BACE,UAAW,CACX,UACF,CACA,iCACE,kBAAmB,CACnB,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,SAAU,CACV,SACF,CACA,gCACE,UAAW,CACX,QACF,CACA,kCACE,gBAAiB,CACjB,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,WAAY,CACZ,SACF,CACA,gCACE,UAAW,CACX,UACF,CACA,kCACE,kBAAmB,CACnB,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,SAAU,CACV,SACF,CACA,gCACE,UAAW,CACX,QACF,CACA,kCACE,gBAAiB,CACjB,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,WAAY,CACZ,SACF,CACA,gCACE,UAAW,CACX,UACF,CACA,kCACE,kBAAmB,CACnB,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,UAAW,CACX,SACF,CACA,gCACE,UAAW,CACX,SACF,CACA,kCACE,iBAAkB,CAClB,aACF,CACF,CACA,0BACE,eACE,aAAc,CAEV,iBAAkB,CACd,aAAc,CACtB,cACF,CACA,oBACE,SACF,CACA,oBACE,UACF,CACA,sBACE,gBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,kBAAmB,CACf,cAAe,CACvB,eACF,CACA,oBACE,UACF,CACA,oBACE,WACF,CACA,sBACE,iBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,gBAAiB,CACb,YAAa,CACrB,aACF,CACA,oBACE,QACF,CACA,oBACE,SACF,CACA,sBACE,eACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,kBAAmB,CACf,cAAe,CACvB,eACF,CACA,oBACE,UACF,CACA,oBACE,WACF,CACA,sBACE,iBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,gBAAiB,CACb,YAAa,CACrB,aACF,CACA,oBACE,QACF,CACA,oBACE,SACF,CACA,sBACE,eACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,iBAAkB,CACd,QACV,CACA,cACE,aAAc,CAEV,kBAAmB,CACf,cAAe,CACvB,eACF,CACA,mBACE,UACF,CACA,mBACE,WACF,CACA,qBACE,iBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,mBACE,iBACF,CACA,mBACE,kBACF,CACA,qBACE,wBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,mBACE,iBACF,CACA,mBACE,kBACF,CACA,qBACE,wBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,gBAAiB,CACb,YAAa,CACrB,aACF,CACA,mBACE,QACF,CACA,mBACE,SACF,CACA,qBACE,eACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,mBACE,iBACF,CACA,mBACE,kBACF,CACA,qBACE,wBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,mBACE,iBACF,CACA,mBACE,kBACF,CACA,qBACE,wBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,kBAAmB,CACf,cAAe,CACvB,eACF,CACA,mBACE,UACF,CACA,mBACE,WACF,CACA,qBACE,iBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,wBAAyB,CACrB,oBAAqB,CAC7B,qBACF,CACA,mBACE,gBACF,CACA,mBACE,iBACF,CACA,qBACE,uBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,aAAc,CAEV,wBAAyB,CACrB,oBAAqB,CAC7B,qBACF,CACA,mBACE,gBACF,CACA,mBACE,iBACF,CACA,qBACE,uBACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,cACE,YACF,CACA,gBACE,SACF,CACA,gBACE,UACF,CACA,mBACE,SACF,CACA,mBACE,UACF,CACA,qBACE,aACF,CACA,oBAEM,gBAAiB,CACb,OACV,CACA,4BACE,UACF,CACA,4BACE,SACF,CACA,+BACE,UACF,CACA,+BACE,SACF,CACA,iCACE,cACF,CACA,+BACE,iBAAkB,CAClB,SACF,CACA,+BACE,UAAW,CACX,gBACF,CACA,iCACE,wBAAyB,CACzB,aACF,CACA,+BACE,iBAAkB,CAClB,SACF,CACA,+BACE,UAAW,CACX,gBACF,CACA,iCACE,wBAAyB,CACzB,aACF,CACA,+BACE,WAAY,CACZ,SACF,CACA,+BACE,UAAW,CACX,UACF,CACA,iCACE,kBAAmB,CACnB,aACF,CACA,+BACE,kBAAmB,CACnB,SACF,CACA,+BACE,UAAW,CACX,iBACF,CACA,iCACE,yBAA0B,CAC1B,aACF,CACA,+BACE,kBAAmB,CACnB,SACF,CACA,+BACE,UAAW,CACX,iBACF,CACA,iCACE,yBAA0B,CAC1B,aACF,CACA,+BACE,SAAU,CACV,SACF,CACA,+BACE,UAAW,CACX,QACF,CACA,iCACE,gBAAiB,CACjB,aACF,CACA,+BACE,kBAAmB,CACnB,SACF,CACA,+BACE,UAAW,CACX,iBACF,CACA,iCACE,yBAA0B,CAC1B,aACF,CACA,+BACE,kBAAmB,CACnB,SACF,CACA,+BACE,UAAW,CACX,iBACF,CACA,iCACE,yBAA0B,CAC1B,aACF,CACA,+BACE,WAAY,CACZ,SACF,CACA,+BACE,UAAW,CACX,UACF,CACA,iCACE,kBAAmB,CACnB,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,SAAU,CACV,SACF,CACA,gCACE,UAAW,CACX,QACF,CACA,kCACE,gBAAiB,CACjB,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,WAAY,CACZ,SACF,CACA,gCACE,UAAW,CACX,UACF,CACA,kCACE,kBAAmB,CACnB,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,SAAU,CACV,SACF,CACA,gCACE,UAAW,CACX,QACF,CACA,kCACE,gBAAiB,CACjB,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,WAAY,CACZ,SACF,CACA,gCACE,UAAW,CACX,UACF,CACA,kCACE,kBAAmB,CACnB,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,UAAW,CACX,SACF,CACA,gCACE,UAAW,CACX,SACF,CACA,kCACE,iBAAkB,CAClB,aACF,CACF,CACA,0BACE,gBACE,aAAc,CAEV,iBAAkB,CACd,aAAc,CACtB,cACF,CACA,qBACE,SACF,CACA,qBACE,UACF,CACA,uBACE,gBACF,CACA,sBAEM,iBAAkB,CACd,QACV,CACA,gBACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,qBACE,iBACF,CACA,qBACE,kBACF,CACA,uBACE,wBACF,CACA,sBAEM,iBAAkB,CACd,QACV,CACA,gBACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,qBACE,iBACF,CACA,qBACE,kBACF,CACA,uBACE,wBACF,CACA,sBAEM,iBAAkB,CACd,QACV,CACA,gBACE,aAAc,CAEV,kBAAmB,CACf,cAAe,CACvB,eACF,CACA,qBACE,UACF,CACA,qBACE,WACF,CACA,uBACE,iBACF,CACA,sBAEM,iBAAkB,CACd,QACV,CACA,gBACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,qBACE,iBACF,CACA,qBACE,kBACF,CACA,uBACE,wBACF,CACA,sBAEM,iBAAkB,CACd,QACV,CACA,gBACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,qBACE,iBACF,CACA,qBACE,kBACF,CACA,uBACE,wBACF,CACA,sBAEM,iBAAkB,CACd,QACV,CACA,gBACE,aAAc,CAEV,gBAAiB,CACb,YAAa,CACrB,aACF,CACA,qBACE,QACF,CACA,qBACE,SACF,CACA,uBACE,eACF,CACA,sBAEM,iBAAkB,CACd,QACV,CACA,gBACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,qBACE,iBACF,CACA,qBACE,kBACF,CACA,uBACE,wBACF,CACA,sBAEM,iBAAkB,CACd,QACV,CACA,gBACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,qBACE,iBACF,CACA,qBACE,kBACF,CACA,uBACE,wBACF,CACA,sBAEM,iBAAkB,CACd,QACV,CACA,gBACE,aAAc,CAEV,kBAAmB,CACf,cAAe,CACvB,eACF,CACA,qBACE,UACF,CACA,qBACE,WACF,CACA,uBACE,iBACF,CACA,sBAEM,iBAAkB,CACd,QACV,CACA,gBACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,qBACE,iBACF,CACA,qBACE,kBACF,CACA,uBACE,wBACF,CACA,sBAEM,iBAAkB,CACd,QACV,CACA,gBACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,qBACE,iBACF,CACA,qBACE,kBACF,CACA,uBACE,wBACF,CACA,sBAEM,iBAAkB,CACd,QACV,CACA,gBACE,aAAc,CAEV,gBAAiB,CACb,YAAa,CACrB,aACF,CACA,qBACE,QACF,CACA,qBACE,SACF,CACA,uBACE,eACF,CACA,sBAEM,iBAAkB,CACd,QACV,CACA,gBACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,qBACE,iBACF,CACA,qBACE,kBACF,CACA,uBACE,wBACF,CACA,sBAEM,iBAAkB,CACd,QACV,CACA,gBACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,qBACE,iBACF,CACA,qBACE,kBACF,CACA,uBACE,wBACF,CACA,sBAEM,iBAAkB,CACd,QACV,CACA,eACE,aAAc,CAEV,kBAAmB,CACf,cAAe,CACvB,eACF,CACA,oBACE,UACF,CACA,oBACE,WACF,CACA,sBACE,iBACF,CACA,qBAEM,gBAAiB,CACb,OACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,gBAAiB,CACb,OACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,gBAAiB,CACb,OACV,CACA,eACE,aAAc,CAEV,gBAAiB,CACb,YAAa,CACrB,aACF,CACA,oBACE,QACF,CACA,oBACE,SACF,CACA,sBACE,eACF,CACA,qBAEM,gBAAiB,CACb,OACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,gBAAiB,CACb,OACV,CACA,eACE,aAAc,CAEV,yBAA0B,CACtB,qBAAsB,CAC9B,sBACF,CACA,oBACE,iBACF,CACA,oBACE,kBACF,CACA,sBACE,wBACF,CACA,qBAEM,gBAAiB,CACb,OACV,CACA,eACE,aAAc,CAEV,kBAAmB,CACf,cAAe,CACvB,eACF,CACA,oBACE,UACF,CACA,oBACE,WACF,CACA,sBACE,iBACF,CACA,qBAEM,gBAAiB,CACb,OACV,CACA,eACE,aAAc,CAEV,wBAAyB,CACrB,oBAAqB,CAC7B,qBACF,CACA,oBACE,gBACF,CACA,oBACE,iBACF,CACA,sBACE,uBACF,CACA,qBAEM,gBAAiB,CACb,OACV,CACA,eACE,aAAc,CAEV,wBAAyB,CACrB,oBAAqB,CAC7B,qBACF,CACA,oBACE,gBACF,CACA,oBACE,iBACF,CACA,sBACE,uBACF,CACA,qBAEM,gBAAiB,CACb,OACV,CACA,eACE,YACF,CACA,gBACE,SACF,CACA,gBACE,UACF,CACA,oBACE,SACF,CACA,oBACE,UACF,CACA,sBACE,aACF,CACA,qBAEM,gBAAiB,CACb,OACV,CACA,4BACE,UACF,CACA,4BACE,SACF,CACA,gCACE,UACF,CACA,gCACE,SACF,CACA,kCACE,cACF,CACA,gCACE,iBAAkB,CAClB,SACF,CACA,gCACE,UAAW,CACX,gBACF,CACA,kCACE,wBAAyB,CACzB,aACF,CACA,gCACE,iBAAkB,CAClB,SACF,CACA,gCACE,UAAW,CACX,gBACF,CACA,kCACE,wBAAyB,CACzB,aACF,CACA,gCACE,WAAY,CACZ,SACF,CACA,gCACE,UAAW,CACX,UACF,CACA,kCACE,kBAAmB,CACnB,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,SAAU,CACV,SACF,CACA,gCACE,UAAW,CACX,QACF,CACA,kCACE,gBAAiB,CACjB,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,kBAAmB,CACnB,SACF,CACA,gCACE,UAAW,CACX,iBACF,CACA,kCACE,yBAA0B,CAC1B,aACF,CACA,gCACE,WAAY,CACZ,SACF,CACA,gCACE,UAAW,CACX,UACF,CACA,kCACE,kBAAmB,CACnB,aACF,CACA,iCACE,kBAAmB,CACnB,SACF,CACA,iCACE,UAAW,CACX,iBACF,CACA,mCACE,yBAA0B,CAC1B,aACF,CACA,iCACE,kBAAmB,CACnB,SACF,CACA,iCACE,UAAW,CACX,iBACF,CACA,mCACE,yBAA0B,CAC1B,aACF,CACA,iCACE,SAAU,CACV,SACF,CACA,iCACE,UAAW,CACX,QACF,CACA,mCACE,gBAAiB,CACjB,aACF,CACA,iCACE,kBAAmB,CACnB,SACF,CACA,iCACE,UAAW,CACX,iBACF,CACA,mCACE,yBAA0B,CAC1B,aACF,CACA,iCACE,kBAAmB,CACnB,SACF,CACA,iCACE,UAAW,CACX,iBACF,CACA,mCACE,yBAA0B,CAC1B,aACF,CACA,iCACE,WAAY,CACZ,SACF,CACA,iCACE,UAAW,CACX,UACF,CACA,mCACE,kBAAmB,CACnB,aACF,CACA,iCACE,kBAAmB,CACnB,SACF,CACA,iCACE,UAAW,CACX,iBACF,CACA,mCACE,yBAA0B,CAC1B,aACF,CACA,iCACE,kBAAmB,CACnB,SACF,CACA,iCACE,UAAW,CACX,iBACF,CACA,mCACE,yBAA0B,CAC1B,aACF,CACA,iCACE,SAAU,CACV,SACF,CACA,iCACE,UAAW,CACX,QACF,CACA,mCACE,gBAAiB,CACjB,aACF,CACA,iCACE,kBAAmB,CACnB,SACF,CACA,iCACE,UAAW,CACX,iBACF,CACA,mCACE,yBAA0B,CAC1B,aACF,CACA,iCACE,kBAAmB,CACnB,SACF,CACA,iCACE,UAAW,CACX,iBACF,CACA,mCACE,yBAA0B,CAC1B,aACF,CACA,iCACE,WAAY,CACZ,SACF,CACA,iCACE,UAAW,CACX,UACF,CACA,mCACE,kBAAmB,CACnB,aACF,CACA,iCACE,kBAAmB,CACnB,SACF,CACA,iCACE,UAAW,CACX,iBACF,CACA,mCACE,yBAA0B,CAC1B,aACF,CACA,iCACE,kBAAmB,CACnB,SACF,CACA,iCACE,UAAW,CACX,iBACF,CACA,mCACE,yBAA0B,CAC1B,aACF,CACA,iCACE,UAAW,CACX,SACF,CACA,iCACE,UAAW,CACX,SACF,CACA,mCACE,iBAAkB,CAClB,aACF,CACF,CACA,aACE,aACF,CACA,qBACE,WACF,CA5vLA,iBACE,6BAA8B,CACtB,qBAAsB,CAC9B,QAAS,CACT,SAAU,CACV,qBAA0B,CAC1B,cAAe,CACf,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CAChB,oCAAqC,CAC7B,mCAA6B,CACrC,oBAAqB,CACrB,iBACF,CACA,kCACE,SACF,CACA,wEACE,gBACF,CACA,mBAcE,gBAGF,CACA,8BAjBE,6BAA8B,CACtB,qBAAsB,CAE9B,SAAU,CACV,qBAA0B,CAC1B,cAAe,CACf,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CAChB,oCAAqC,CAC7B,mCAA6B,CACrC,iBAAkB,CAClB,oBAAqB,CAErB,kBAAmB,CACnB,cAqBF,CAnBA,WAGE,QAAS,CAWT,aAAc,CAEd,kBAAmB,CACnB,YAEF,CACA,8GAGE,oBACF,CACA,wCACE,iDAAsD,CAC9C,yCACV,CACA,yBACE,iBAAkB,CAClB,KAAM,CACN,MAAO,CACP,UAAW,CACX,WAAY,CACZ,wBAAyB,CACzB,iBAAkB,CAClB,iBAAkB,CAClB,iDAAmD,CAC3C,yCAA2C,CACnD,gCAAiC,CACzB,wBAAyB,CACjC,UACF,CACA,iEAEE,kBACF,CACA,iBACE,iBAAkB,CAClB,KAAM,CACN,MAAO,CACP,aAAc,CACd,UAAW,CACX,WAAY,CACZ,qBAAsB,CAGtB,wBAAiB,CACjB,mBAAoB,CACpB,0BAA4B,CAC5B,kBACF,CACA,uBACE,iBAAkB,CAClB,OAAQ,CACR,QAAS,CACT,aAAc,CACd,SAAU,CACV,UAAW,CACX,wBAAyB,CACzB,YAAa,CACb,aAAc,CACd,iBAAkB,CAClB,0BAA2B,CACnB,kBAAmB,CAC3B,SAAU,CACV,wDAAiE,CACjE,gDAAyD,CACzD,WACF,CACA,iBACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,SAAU,CACV,cAAe,CACf,SACF,CACA,oCACE,oBACF,CACA,0CACE,0BAA2B,CACnB,kBAAmB,CAC3B,SAAU,CACV,wDAAiE,CACjE,gDACF,CACA,qCACE,wBAAyB,CACzB,8BAAgC,CAChC,kBACF,CACA,2CACE,+BACF,CACA,qCACE,kBACF,CACA,yBACE,qBAA0B,CAC1B,kBACF,CACA,iBACE,iBAAkB,CAClB,gBACF,CACA,0BACE,iBAAkB,CAClB,oBAAqB,CACrB,WAAY,CACZ,QAAS,CACT,cAAe,CACf,qBAA0B,CAC1B,gBAAiB,CACjB,eAAgB,CAGhB,oBAAoB,CAApB,kBAAoB,CAApB,6BAAoB,CACpB,cAAe,CACf,mFAA2F,CAC3F,2EAAmF,CACnF,mEAA2E,CAC3E,0FACF,CACA,4BACE,qBACF,CACA,4CACE,aAAc,CACd,OAAQ,CACR,QAAS,CACT,aACF,CACA,iDACE,WAAY,CACZ,cAAe,CACf,gBACF,CACA,iDACE,WAAY,CACZ,aAAc,CACd,gBACF,CACA,mDACE,iBAAkB,CAClB,QAAS,CACT,SAAU,CACV,aAAc,CACd,8BAA+B,CACvB,sBAAuB,CAC/B,SAAU,CACV,WAAY,CACZ,aAAc,CACd,wBAAyB,CACzB,uCAAyC,CACzC,+BAAiC,CACjC,UACF,CACA,sCACE,6BAA8B,CAC9B,yBACF,CACA,qCACE,yBACF,CACA,iDACE,iBACF,CACA,gCACE,iBAAkB,CAClB,aACF,CACA,uCACE,iDAAsD,CAC9C,yCACV,CACA,sIAGE,OAAQ,CACR,QAAS,CACT,SAAU,CACV,mBACF,CACA,0EACE,SAAU,CACV,aAAc,CACd,eAAgB,CAChB,oBACF,CACA,iFACE,wBACF,CACA,sFACE,oBACF,CACA,gFACE,aAAc,CACd,oBACF,CACA,uFACE,wBACF,CACA,iFACE,aAAc,CACd,oBACF,CACA,wFACE,wBACF,CACA,uFACE,iDAAsD,CAC9C,yCACV,CACA,iGACE,UAAW,CACX,kBAAmB,CACnB,oBACF,CACA,uGACE,UAAW,CACX,kBAAmB,CACnB,oBACF,CACA,wGACE,UAAW,CACX,kBAAmB,CACnB,oBACF,CACA,8GACE,iDAAsD,CAC9C,yCACV,CACA,mCAIE,kBACF,CACA,2HALE,qBAA0B,CAC1B,wBAAyB,CACzB,oBAQF,CACA,+CACE,yBACF,CACA,oEACE,UAAW,CACX,wBAAyB,CACzB,oBAAqB,CACrB,uBAAwB,CAChB,eACV,CACA,kCACE,GACE,0BAA2B,CACnB,kBAAmB,CAC3B,UACF,CACA,GACE,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACF,CACA,0BACE,GACE,0BAA2B,CACnB,kBAAmB,CAC3B,UACF,CACA,GACE,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACF,CACA,mFACE,WACE,0BACF,CACF,CACA,qCACE,aACF,CACA,yCACE,cAAe,CACf,eAAgB,CAChB,aACF,CACA,uDACE,oBAAqB,CACrB,qBACF,CACA,yGACE,UAAW,CACX,MACF,CACA,4FACE,8BAA+B,CAC/B,yBACF,CACA,0HACE,0BACF,CACA,2FACE,yBACF,CACA,qGACE,0BACF,CA7WA,iRAME,gBACF,CACA,6EACE,SACF,CACA,sEACE,iBACF,CACA,4EACE,2BACF,CACA,uEACE,gBACF,CACA,0DACE,iBACF,CACA,2QAME,WACF,CACA,4EACE,SACF,CACA,qEACE,WACF,CACA,2EACE,yBACF,CACA,sEACE,WACF,CACA,yDACE,WACF,CACA,wCACE,wBACF,CACA,+CACE,wBAAyB,CACzB,eACF,CAOA,4OACE,8BACF,CACA,iEACE,+BACF,CACA,mDACE,wBAAyB,CACzB,cAAe,CACf,eACF,CACA,4DACE,kBACF,CACA,kEACE,iBAAkB,CAClB,KAAM,CACN,SAAU,CACV,QAAS,CACT,8BAA+B,CAC/B,UACF,CACA,6KAEE,cACF,CACA,6EACE,iBACF,CACA,4EACE,gBACF,CACA,gDACE,wBAAyB,CACzB,YACF,CACA,0BACE,aAAc,CACd,UACF,CACA,yBACE,aAAc,CACd,UAAW,CACX,UACF,CACA,WACE,6BAA8B,CACtB,qBAAsB,CAC9B,QAAS,CACT,SAAU,CACV,qBAA0B,CAC1B,cAAe,CACf,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CAChB,oCAAqC,CAC7B,mCAA6B,CACrC,iBAAkB,CAClB,SAAU,CACV,UAAW,CACX,eAAgB,CAChB,iBACF,CACA,iBACE,UAAW,CACX,eAAgB,CAChB,yBAA0B,CAC1B,wBAAyB,CACzB,gBACF,CACA,4FAIE,iBAAkB,CAClB,YAAkB,CAClB,wBACF,CACA,yBACE,eAAgB,CAChB,kBAAmB,CACnB,sBAAuB,CACvB,mBACF,CACA,8GAEE,gBACF,CACA,8JAEE,aAAc,CACd,eAAgB,CAChB,sBACF,CACA,iBACE,YACF,CACA,kBACE,YAAkB,CAClB,qBAA0B,CAC1B,kBACF,CACA,uBACE,qBAA0B,CAC1B,eAAgB,CAChB,eAAgB,CAChB,kBAAmB,CACnB,+BAAgC,CAChC,sCAAwC,CACxC,8BACF,CACA,mDACE,iBACF,CACA,iDACE,eACF,CACA,uBACE,+BAAgC,CAChC,iCAAmC,CACnC,yBACF,CACA,2CACE,kBACF,CACA,8CACE,kBAAmB,CACnB,4BACF,CACA,oDACE,kBACF,CACA,6DACE,6BACF,CACA,gEACE,sBACF,CACA,oFACE,eACF,CACA,+LAEE,eACF,CACA,8CAEE,+BACF,CACA,qCACE,aACF,CACA,2BACE,UACF,CACA,6BACE,iBACF,CACA,4BACE,WACF,CACA,iDACE,SAAU,CACV,cAAe,CACf,0BAA4B,CAC5B,kBACF,CACA,uDACE,kBACF,CACA,2FACE,kBACF,CACA,0CACE,kBACF,CACA,yBACE,kBACF,CACA,uCACE,oBAAqB,CACrB,UACF,CACA,0BAEE,0BAA2B,CAC3B,mBAAoB,CAEhB,qBAAsB,CAClB,kBAAmB,CAC3B,YACF,CACA,yBACE,gBAAkB,CAClB,oBAAsB,CACtB,eAAgB,CAChB,aACF,CACA,8BACE,gBAAkB,CAClB,eACF,CACA,+BAEE,0BAA2B,CAC3B,mBAAoB,CAGhB,yBAA0B,CACtB,qBAAsB,CAE1B,qBAAsB,CAClB,kBACV,CACA,0DAEE,oBAAqB,CACrB,cACF,CACA,wEAEE,aACF,CACA,0DACE,gBACF,CACA,yBAEE,mBAAoB,CACpB,YAAa,CAET,qBAAsB,CAClB,kBAAmB,CAC3B,YACF,CACA,+BAEM,aAAc,CACV,SAAU,CAClB,4BACF,CACA,6EACE,QACF,CACA,mFACE,mBACF,CACA,oCACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CAET,mBAAoB,CACpB,YAAa,CAET,aAAc,CACV,SAAU,CAEd,sBAAuB,CACnB,mBAAoB,CAC5B,2BAA4B,CACxB,kBAAmB,CACvB,cAAe,CACf,uCAAyC,CACzC,+BACF,CACA,oLAGE,kBACF,CACA,0BACE,aAAc,CACd,WAAY,CACZ,aAAc,CACd,cAAe,CACf,4BAA8B,CAC9B,oBACF,CACA,mCACE,iBAAkB,CAClB,OAAQ,CACR,QAAS,CACT,sCAAwC,CAChC,8BACV,CACA,mGAEE,qBACF,CACA,iCACE,aACF,CACA,2BACE,6BAA8B,CACtB,qBAAsB,CAC9B,QAAS,CACT,SAAU,CACV,qBAA0B,CAC1B,cAAe,CACf,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CAChB,oCAAqC,CAC7B,mCAA6B,CACrC,eAAgB,CAChB,qBAAsB,CACtB,iBAAkB,CAClB,6GAA4H,CACpH,qGACV,CACA,8CACE,8BAA+B,CAC/B,iBAAkB,CAClB,QAAS,CACT,uBAAwB,CAChB,eACV,CACA,sCACE,8BAA+B,CAC/B,iBAAkB,CAClB,eACF,CACA,oHAEE,gBACF,CACA,gCAEE,mBAAoB,CACpB,YAAa,CAET,qBAAsB,CAClB,6BAA8B,CACtC,uBAAwB,CACxB,eAAgB,CAChB,wBAAyB,CACzB,4BACF,CACA,gDACE,UACF,CACA,8EAEE,iBACF,CACA,oHAEE,cACF,CACA,qBACE,iBACF,CACA,2BACE,iBAAkB,CAClB,KAAM,CACN,WAAY,CACZ,cAAe,CACf,0BAA4B,CAC5B,kBACF,CACA,oCACE,oBAAqB,CACrB,cAAe,CACf,aACF,CACA,0CACE,aACF,CACA,2BACE,UACF,CACA,gCACE,iBACF,CACA,sBACE,UAAW,CACX,UACF,CACA,2BACE,aAAc,CACd,oBAAqB,CACrB,cAAe,CACf,4BAA8B,CAC9B,oBAAsB,CACtB,iBAAkB,CAElB,0BAA2B,CAC3B,mBAAoB,CACpB,UAAW,CACX,6BAA8B,CACtB,qBAAsB,CAC9B,UAAW,CACX,WAAY,CACZ,SAAU,CACV,aAAc,CACd,gBAAiB,CACjB,mBAAoB,CACpB,eAAgB,CAChB,wBAAyB,CACzB,iBAAkB,CAClB,YAAa,CACb,0BAA4B,CAC5B,kBAAoB,CACpB,wBAAyB,CACtB,qBAAsB,CACrB,oBAAqB,CACjB,gBACV,CACA,kEAEE,aACF,CACA,kCACE,aACF,CACA,oGAGE,yBACF,CACA,mEAEE,iBAAkB,CAClB,uBAAwB,CACxB,iDAAmD,CACnD,yCAA2C,CAC3C,iCAAmC,CACnC,gEAAoE,CACpE,UACF,CACA,kCACE,OAAQ,CACR,SAAU,CACV,QAAS,CACT,UACF,CACA,iCACE,OAAQ,CACR,UAAW,CACX,QAAS,CACT,SAAU,CACV,+BAAgC,CACxB,uBACV,CACA,4CACE,iCAAkC,CAC1B,yBACV,CACA,2CACE,8BAA+B,CACvB,sBACV,CACA,kCACE,sBAAuB,CACvB,QACF,CACA,iFAEE,YAAa,CACb,YACF,CACA,iDACE,mBAAoB,CACpB,gBACF,CACA,gEAEE,kBACF,CACA,yCACE,iBAAkB,CAClB,YAAmB,CACnB,YACF,CACA,0CACE,iBACF,CACA,mDACE,eACF,CACA,mDAEE,iCAAmC,CACnC,yBAA2B,CAC3B,SAAU,CACV,eACF,CACA,yEAIE,OAAQ,CAGR,kCAAmC,CAC3B,0BAOV,CACA,oJAdE,iBAAkB,CAClB,KAAM,CAEN,WAAY,CACZ,UAAW,CAGX,yCAA2C,CAC3C,iCAAmC,CACnC,yBAA2B,CAC3B,gDAAoD,CACpD,UAAW,CACX,mBAiBF,CAfA,2EAKE,MAAO,CAEP,mCAAoC,CAC5B,2BAOV,CACA,6EAEE,iBAAkB,CAClB,KAAM,CACN,QAAS,CACT,SAAU,CACV,UAAW,CACX,yCAA2C,CAC3C,iCAAmC,CACnC,yBAA2B,CAC3B,gDAAoD,CACpD,UAAW,CACX,mBACF,CACA,uCACE,MACF,CACA,sCACE,OACF,CACA,uEACE,iBACF,CAKA,iMAEE,wDAA6D,CACrD,gDACV,CACA,yEACE,iBACF,CAKA,sMAEE,yDAA8D,CACtD,iDACV,CACA,gCAKE,qHACE,iCAAmC,CAC3B,yBACV,CACF,CAMA,iBACE,yBACF,CACA,sCACE,wBAAyB,CACzB,yBACF,CAIA,+JACE,eACF,CACA,qBAEE,2BACF,CACA,oFAHE,0BAKF,CACA,8DACE,2BACF,CACA,kBACE,yBACF,CAIA,sCACE,aACF,CACA,wCACE,gBACF,CACA,0EACE,iBACF,CACA,8CACE,gBACF,CACA,6CACE,6BACF,CACA,4DACE,UACF,CACA,gDACE,gBAAiB,CACjB,aACF,CACA,sDACE,4BACF,CACA,2DACE,UAAW,CACX,MACF,CACA,wJAEE,iBAAkB,CAClB,cACF,CACA,4CACE,iBACF,CACA,kDACE,UAAW,CACX,MAAO,CACP,uCAAyC,CACjC,+BACV,CAIA,+FACE,WACF,CACA,wEACE,cAAe,CACf,eACF,CAhtBA,SACE,kBAAmB,CACnB,iBAAkB,CAClB,oBAAqB,CACrB,eAAgB,CAChB,kBAAmB,CACnB,iBAAkB,CAClB,qBAAsB,CAEtB,2CAAgD,CACxC,mCAAwC,CAChD,cAAe,CACf,yDAAiE,CACjE,iDAAyD,CACzD,wBAAyB,CACtB,qBAAsB,CACrB,oBAAqB,CACjB,gBAAiB,CACzB,6BAA8B,CAC1B,yBAA0B,CAC9B,WAAY,CACZ,gBAAiB,CACjB,cAAe,CACf,iBAAkB,CAClB,qBAA0B,CAC1B,qBAAsB,CACtB,wBACF,CACA,kBACE,aACF,CACA,wCAGE,SACF,CACA,+BACE,oBACF,CACA,gCACE,SAAU,CACV,uBAAwB,CAChB,eACV,CACA,qCAEE,kBACF,CACA,yCAEE,mBACF,CACA,YACE,WAAY,CACZ,kBAAmB,CACnB,cAAe,CACf,iBACF,CACA,YACE,WAAY,CACZ,aAAgB,CAChB,cAAe,CACf,iBAAkB,CAClB,gBACF,CACA,sBACE,kBACF,CACA,4BACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,8BAEE,aAAc,CACd,qBAAsB,CACtB,oBACF,CACA,wDAEE,kBACF,CACA,oEAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,gCAEE,aAAc,CACd,qBAAsB,CACtB,oBACF,CACA,0DAEE,kBACF,CACA,sEAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,iWAeE,qBAA0B,CAC1B,wBAAyB,CACzB,oBAAqB,CACrB,gBAAiB,CACjB,uBAAwB,CAChB,eACV,CACA,oiBAeE,kBACF,CACA,8nBAeE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,8DAIE,oBAAqB,CACrB,eACF,CACA,yBAEE,oBAAqB,CACrB,mBACF,CACA,iBACE,UAAW,CACX,wBAAyB,CACzB,oBAAqB,CACrB,oCAAyC,CACzC,2CAAgD,CACxC,mCACV,CACA,8BACE,kBACF,CACA,oCACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,8CAEE,UAAW,CACX,wBAAyB,CACzB,oBACF,CACA,wEAEE,kBACF,CACA,oFAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,gDAEE,UAAW,CACX,wBAAyB,CACzB,oBACF,CACA,0EAEE,kBACF,CACA,sFAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,ydAeE,qBAA0B,CAC1B,wBAAyB,CACzB,oBAAqB,CACrB,gBAAiB,CACjB,uBAAwB,CAChB,eACV,CACA,4pBAeE,kBACF,CACA,svBAeE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,mEACE,0BAA2B,CAC3B,yBACF,CACA,4EACE,oBACF,CACA,6DACE,0BACF,CACA,uEACE,0BACF,CACA,8GAEE,yBACF,CACA,kIAEE,yBACF,CACA,eACE,qBAA0B,CAC1B,4BAA6B,CAC7B,oBACF,CACA,4BACE,kBACF,CACA,kCACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,0CAEE,aAAc,CACd,4BAA6B,CAC7B,oBACF,CACA,oEAEE,kBACF,CACA,gFAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,4CAEE,aAAc,CACd,4BAA6B,CAC7B,oBACF,CACA,sEAEE,kBACF,CACA,kFAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,2bAeE,qBAA0B,CAC1B,wBAAyB,CACzB,oBAAqB,CACrB,gBAAiB,CACjB,uBAAwB,CAChB,eACV,CACA,8nBAeE,kBACF,CACA,wtBAeE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,gBACE,qBAA0B,CAC1B,qBAAsB,CACtB,oBAAqB,CACrB,mBACF,CACA,6BACE,kBACF,CACA,mCACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,4CAEE,aAAc,CACd,qBAAsB,CACtB,oBACF,CACA,sEAEE,kBACF,CACA,kFAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,8CAEE,aAAc,CACd,qBAAsB,CACtB,oBACF,CACA,wEAEE,kBACF,CACA,oFAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,0cAeE,qBAA0B,CAC1B,wBAAyB,CACzB,oBAAqB,CACrB,gBAAiB,CACjB,uBAAwB,CAChB,eACV,CACA,6oBAeE,kBACF,CACA,uuBAeE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,gBACE,UAAW,CACX,wBAAyB,CACzB,oBAAqB,CACrB,oCAAyC,CACzC,2CAAgD,CACxC,mCACV,CACA,6BACE,kBACF,CACA,mCACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,4CAEE,UAAW,CACX,wBAAyB,CACzB,oBACF,CACA,sEAEE,kBACF,CACA,kFAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,8CAEE,UAAW,CACX,wBAAyB,CACzB,oBACF,CACA,wEAEE,kBACF,CACA,oFAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,0cAeE,qBAA0B,CAC1B,wBAAyB,CACzB,oBAAqB,CACrB,gBAAiB,CACjB,uBAAwB,CAChB,eACV,CACA,6oBAeE,kBACF,CACA,uuBAeE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,cACE,aAAc,CACd,4BAA6B,CAC7B,wBAAyB,CACzB,uBAAwB,CAChB,eACV,CACA,2BACE,kBACF,CACA,iCACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,wCAEE,aAAc,CACd,4BAA6B,CAC7B,oBACF,CACA,kEAEE,kBACF,CACA,8EAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,0CAEE,aAAc,CACd,4BAA6B,CAC7B,oBACF,CACA,oEAEE,kBACF,CACA,gFAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,4aAgBE,wBAAyB,CACzB,oBAIF,CAyCA,6DAGE,wBACF,CACA,4aAeE,qBAA0B,CAC1B,4BAA6B,CAC7B,wBAAyB,CACzB,gBAAiB,CACjB,uBAAwB,CAChB,eACV,CACA,+mBAeE,kBACF,CACA,ysBAeE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,mBACE,aAAc,CACd,qBAAsB,CACtB,oBACF,CACA,gCACE,kBACF,CACA,sCACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,kDAEE,aAAc,CACd,qBAAsB,CACtB,oBACF,CACA,4EAEE,kBACF,CACA,wFAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,oDAEE,aAAc,CACd,qBAAsB,CACtB,oBACF,CACA,8EAEE,kBACF,CACA,0FAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,ufAeE,qBAA0B,CAC1B,wBAAyB,CACzB,oBAAqB,CACrB,gBAAiB,CACjB,uBAAwB,CAChB,eACV,CACA,0rBAeE,kBACF,CACA,oxBAeE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,mCACE,UAAW,CACX,wBAAyB,CACzB,oBAAqB,CACrB,oCAAyC,CACzC,2CAAgD,CACxC,mCACV,CACA,gDACE,kBACF,CACA,sDACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,kFAEE,UAAW,CACX,wBAAyB,CACzB,oBACF,CACA,4GAEE,kBACF,CACA,wHAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,oFAEE,UAAW,CACX,wBAAyB,CACzB,oBACF,CACA,8GAEE,kBACF,CACA,0HAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,uuBAeE,qBAA0B,CAC1B,wBAAyB,CACzB,oBAAqB,CACrB,gBAAiB,CACjB,uBAAwB,CAChB,eACV,CACA,06BAeE,kBACF,CACA,ogCAeE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,gCACE,aAAc,CACd,4BAA6B,CAC7B,wBAAyB,CACzB,uBAAwB,CAChB,eACV,CACA,6CACE,kBACF,CACA,mDACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,4EAEE,aAAc,CAEd,oBACF,CAeA,8EAEE,aAAc,CACd,4BAA6B,CAC7B,oBACF,CACA,wGAEE,kBACF,CACA,oHAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,0rBAgBE,wBAAyB,CACzB,oBAIF,CAyCA,4EAEE,aAAc,CACd,4BAA6B,CAC7B,wBACF,CACA,sGAEE,kBACF,CACA,kHAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,uCACE,aAAc,CACd,4BAA6B,CAC7B,wBACF,CACA,oDACE,kBACF,CACA,0DACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,0rBAeE,qBAA0B,CAC1B,4BAA6B,CAC7B,wBAAyB,CACzB,gBAAiB,CACjB,uBAAwB,CAChB,eACV,CACA,63BAeE,kBACF,CACA,u9BAeE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,mBACE,UAAW,CACX,WAAY,CACZ,eAAgB,CAChB,cAAe,CACf,iBACF,CACA,qBACE,cACF,CACA,8BACE,UAAW,CACX,WAAY,CACZ,eAAgB,CAChB,cAAe,CACf,iBACF,CACA,gCACE,cACF,CACA,8BACE,UAAW,CACX,WAAY,CACZ,SAAc,CACd,cAAe,CACf,iBACF,CACA,gCACE,cACF,CACA,qBACE,qBACF,CACA,eACE,WAAY,CACZ,gBAAiB,CACjB,cAAe,CACf,kBACF,CACA,0BACE,WAAY,CACZ,kBAAmB,CACnB,cAAe,CACf,kBACF,CACA,0BACE,WAAY,CACZ,cAAiB,CACjB,cAAe,CACf,kBACF,CACA,iCACE,UACF,CACA,wCAEE,cAAe,CACf,eAAgB,CAChB,cAAe,CACf,iBAAkB,CAClB,iBACF,CACA,8DAEE,cAAe,CACf,iBACF,CACA,8DAEE,cAAe,CACf,iBACF,CACA,gBACE,iBAAkB,CAClB,QAAS,CACT,UAAW,CACX,WAAY,CACZ,SAAU,CACV,SAAU,CACV,YAAa,CACb,eAAgB,CAChB,qBAAsB,CACtB,WAAa,CACb,8BAAgC,CAChC,sBAAwB,CACxB,UAAW,CACX,mBACF,CACA,kBACE,iEAAyE,CACzE,yDACF,CACA,uEAEE,6BACF,CACA,yBACE,iBACF,CACA,yCACE,mBACF,CACA,gCACE,aACF,CACA,+BACE,yDAAiE,CACjE,iDACF,CACA,wCACE,iBACF,CACA,eAGE,0BAA2B,CAC3B,mBACF,CACA,oEALE,iBAQF,CACA,wQAQE,SACF,CACA,uEAEE,SACF,CACA,kCACE,cACF,CACA,2DAEE,WAAY,CACZ,kBAAmB,CACnB,cAAe,CACf,eACF,CACA,6CACE,UAAW,CACX,WAAY,CACZ,eAAgB,CAChB,cACF,CACA,2DAEE,WAAY,CACZ,aAAgB,CAChB,cAAe,CACf,eACF,CACA,6EAEE,cACF,CACA,6CACE,UAAW,CACX,WAAY,CACZ,eAAgB,CAChB,cACF,CACA,kMAOE,gBACF,CACA,+EACE,6BACF,CACA,wBACE,eACF,CACA,6EAEE,aACF,CAIA,2EACE,iBACF,CACA,+GAEE,0BAA2B,CAC3B,6BACF,CACA,+GAEE,2BAA4B,CAC5B,8BACF,CAIA,iFACE,iBACF,CACA,qHAEE,0BAA2B,CAC3B,6BACF,CACA,qHAEE,2BAA4B,CAC5B,8BACF,CACA,8BACE,UACF,CACA,0EACE,eACF,CACA,+EACE,iBAAkB,CAClB,yBAA0B,CAC1B,4BACF,CACA,gFACE,gBAAiB,CACjB,wBAAyB,CACzB,2BACF,CACA,slBAcE,iBAAkB,CAClB,gBACF,CACA,iCACE,aACF,CACA,mJAEE,wBAAyB,CACzB,2BAA4B,CAC5B,8BAA+B,CAC/B,2BACF,CACA,mJAEE,0BAA2B,CAC3B,yBAA0B,CAC1B,4BAA6B,CAC7B,6BACF,CACA,yJAEE,wBAAyB,CACzB,2BAA4B,CAC5B,8BAA+B,CAC/B,2BACF,CACA,yJAEE,0BAA2B,CAC3B,yBAA0B,CAC1B,4BAA6B,CAC7B,6BACF,CACA,yCAEE,iBACF,CACA,8CAEE,eACF,CACA,0BACE,UAAW,CACX,gCAAkC,CAClC,iBACF,CACA,0CACE,aAAc,CACd,4BAA6B,CAC7B,oBAAqB,CACrB,gBACF,CACA,uDACE,kBACF,CACA,6DACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,gGAEE,aAAc,CACd,4BAA6B,CAC7B,oBACF,CACA,0HAEE,kBACF,CACA,sIAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,kGAEE,aAAc,CACd,4BAA6B,CAC7B,oBACF,CACA,4HAEE,kBACF,CACA,wIAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,g1BAeE,qBAA0B,CAC1B,wBAAyB,CACzB,oBAAqB,CACrB,gBAAiB,CACjB,uBAAwB,CAChB,eACV,CACA,mhCAeE,kBACF,CACA,6mCAeE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,yCACE,aAAc,CACd,4BAA6B,CAC7B,oBAAqB,CACrB,gBACF,CACA,sDACE,kBACF,CACA,4DACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,8FAEE,aAAc,CACd,4BAA6B,CAC7B,oBACF,CACA,wHAEE,kBACF,CACA,oIAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,gGAEE,aAAc,CACd,4BAA6B,CAC7B,oBACF,CACA,0HAEE,kBACF,CACA,sIAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,i0BAeE,qBAA0B,CAC1B,wBAAyB,CACzB,oBAAqB,CACrB,gBAAiB,CACjB,uBAAwB,CAChB,eACV,CACA,ogCAeE,kBACF,CACA,8lCAeE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,4CACE,aAAc,CACd,4BAA6B,CAC7B,oBAAqB,CACrB,gBACF,CACA,yDACE,kBACF,CACA,+DACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,oGAEE,aAAc,CACd,4BAA6B,CAC7B,oBACF,CACA,8HAEE,kBACF,CACA,0IAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,sGAEE,aAAc,CACd,4BAA6B,CAC7B,oBACF,CACA,gIAEE,kBACF,CACA,4IAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,82BAeE,qBAA0B,CAC1B,wBAAyB,CACzB,oBAAqB,CACrB,gBAAiB,CACjB,uBAAwB,CAChB,eACV,CACA,ijCAeE,kBACF,CACA,2oCAeE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,yDACE,aAAc,CACd,4BAA6B,CAC7B,wBAAyB,CACzB,gBACF,CACA,sEACE,kBACF,CACA,4EACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,8HAEE,aAAc,CACd,4BAA6B,CAC7B,wBACF,CACA,wJAEE,kBACF,CACA,oKAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,gIAEE,aAAc,CACd,4BAA6B,CAC7B,wBACF,CACA,0JAEE,kBACF,CACA,sKAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,ijCAeE,qBAA0B,CAC1B,wBAAyB,CACzB,oBAAqB,CACrB,gBAAiB,CACjB,uBAAwB,CAChB,eACV,CACA,ovCAeE,kBACF,CACA,80CAeE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,uCACE,aAAc,CACd,4BAA6B,CAC7B,wBAAyB,CACzB,gBAAiB,CACjB,UACF,CACA,oDACE,kBACF,CACA,0DACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,0FAEE,aAAc,CACd,4BAA6B,CAC7B,wBACF,CACA,oHAEE,kBACF,CACA,gIAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,4FAEE,aAAc,CACd,4BAA6B,CAC7B,wBACF,CACA,sHAEE,kBACF,CACA,kIAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,myBAeE,qBAA0B,CAC1B,wBAAyB,CACzB,oBAAqB,CACrB,gBAAiB,CACjB,uBAAwB,CAChB,eACV,CACA,s+BAeE,kBACF,CACA,gkCAeE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,sBAAuB,CACvB,UACF,CACA,wCACE,oBACF,CACA,0CACE,mBAAqB,CACrB,oBACF,CACA,eACE,UACF,CACA,eACE,oBAAqB,CACrB,OAAQ,CACR,iBAAkB,CAClB,aACF,CACA,UACE,gBAAkB,CAClB,gBACF,CACA,aACE,gBACF,CACA,aACE,gBACF,CACA,aACE,aACF,CACA,kJAEE,0BAA2B,CAC3B,yBACF,CACA,sKAEE,0BAA2B,CAC3B,yBACF,CACA,oDACE,eAAgB,CAChB,gBACF,CACA,sEAEE,gBAAiB,CACjB,aACF,CAjvEA,WACE,YAAa,CACb,cAAe,CACf,gBAAiB,CACjB,iBACF,CACA,iBACE,YAAa,CACb,iBACF,CACA,qBACE,WACF,CACA,qBACE,WAAY,CACZ,WACF,CACA,uBACE,QACF,CACA,kBACE,eACF,CACA,kBACE,aAAc,CACd,qBACF,CACA,mCACE,WACF,CACA,iBACE,YAAa,CACb,qBACF,CACA,kCACE,WACF,CACA,+BACE,eAAiB,CACjB,YACF,CACA,8BACE,YACF,CACA,8BACE,2BACF,CACA,8BACE,YACF,CAIA,4DACE,YACF,CACA,yBACE,SACF,CACA,8BACE,YACF,CACA,wBACE,cACF,CACA,2BACE,YACF,CACA,eACE,aACF,CAtEA,qCACE,GACE,0BAA2B,CACnB,kBAAmB,CAC3B,UACF,CACA,GACE,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACF,CACA,6BACE,GACE,0BAA2B,CACnB,kBAAmB,CAC3B,UACF,CACA,GACE,4BAA6B,CACrB,oBAAqB,CAC7B,SACF,CACF,CACA,cACE,6BAA8B,CACtB,qBAAsB,CAC9B,QAAS,CACT,SAAU,CACV,qBAA0B,CAC1B,cAAe,CACf,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CAChB,oCAAqC,CAC7B,mCAA6B,CACrC,iBAAkB,CAClB,UAAY,CACZ,oBAAqB,CACrB,aAAc,CACd,kBAAmB,CACnB,qBAAsB,CACtB,YAAa,CACb,cACF,CACA,sIAGE,oBACF,CACA,4BACE,iBAAkB,CAClB,KAAM,CACN,MAAO,CACP,UAAW,CACX,WAAY,CACZ,wBAAyB,CACzB,iBAAkB,CAClB,iBAAkB,CAClB,oDAAsD,CAC9C,4CAA8C,CACtD,qCAAsC,CAC9B,6BAA8B,CACtC,UACF,CACA,0EAEE,kBACF,CACA,oBACE,iBAAkB,CAClB,KAAM,CACN,MAAO,CACP,aAAc,CACd,UAAW,CACX,WAAY,CACZ,aAAc,CACd,qBAAsB,CACtB,wBAAyB,CACzB,iBAAkB,CAClB,wBAAyB,CACzB,0BAA4B,CAC5B,kBACF,CACA,0BACE,iBAAkB,CAClB,OAAQ,CACR,QAAS,CACT,aAAc,CACd,kBAAmB,CACnB,mBAAoB,CACpB,qBAAsB,CACtB,YAAa,CACb,aAAc,CACd,6DAA+D,CACvD,qDAAuD,CAC/D,SAAU,CACV,oEAA+E,CAC/E,4DAAuE,CACvE,WACF,CACA,oBACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,SAAU,CACV,UAAW,CACX,WAAY,CACZ,cAAe,CACf,SACF,CACA,gDACE,iBAAkB,CAClB,aAAc,CACd,qBAAsB,CACtB,YAAa,CACb,aAAc,CACd,6DAA+D,CACvD,qDAAuD,CAC/D,SAAU,CACV,4DAAqE,CACrE,oDAA6D,CAC7D,WACF,CACA,0CACE,wBAAyB,CACzB,oBACF,CACA,uBACE,kBACF,CACA,sEACE,4BAAiC,CACjC,2BAA4B,CACpB,mBACV,CACA,2CACE,kBACF,CACA,2CACE,wBAAyB,CACzB,8BACF,CACA,iDACE,oBAAqB,CACrB,wBAAyB,CACzB,2BAA4B,CACpB,mBACV,CACA,4BACE,qBAA0B,CAC1B,kBACF,CACA,4FAEE,iBACF,CACA,sBACE,6BAA8B,CACtB,qBAAsB,CAC9B,QAAS,CACT,SAAU,CACV,qBAA0B,CAC1B,cAAe,CACf,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CAChB,oCAAqC,CAC7B,mCAA6B,CACrC,oBAAqB,CACrB,iBAAkB,CAClB,cACF,CACA,oDACE,kBACF,CACA,4CACE,eACF,CACA,mBACE,iBAAkB,CAClB,gBACF,CACA,oBACE,6BAA8B,CACtB,qBAAsB,CAC9B,QAAS,CACT,SAAU,CACV,qBAA0B,CAC1B,cAAe,CACf,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CAChB,oCAAqC,CAC7B,mCAA6B,CACrC,oBACF,CACA,yBACE,oBAAqB,CACrB,gBACF,CACA,oCACE,cACF,CACA,kDACE,aACF,CACA,gDACE,qBAAsB,CACtB,oBACF,CACA,sDACE,OAAQ,CACR,QAAS,CACT,SAAU,CACV,UAAW,CACX,wBAAyB,CACzB,QAAS,CACT,+CAAiD,CACzC,uCAAyC,CACjD,SAAU,CACV,WACF,CACA,4EACE,gCAAqC,CACrC,4BACF,CACA,kBACE,aACF,CACA,iDACE,cAAe,CACf,eACF,CACA,4DACE,uBACF,CACA,0EACE,eACF,CAjPA,cACE,6BAA8B,CACtB,qBAAsB,CAC9B,QAAS,CACT,SAAU,CACV,qBAA0B,CAC1B,cAAe,CACf,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CAChB,oCAAqC,CAC7B,mCAA6B,CACrC,iBAAkB,CAClB,WAAY,CACZ,YAAa,CACb,YAAa,CACb,aACF,CACA,qBACE,iBAAkB,CAClB,QAAS,CACT,OAAQ,CACR,WAAY,CACZ,SAAU,CACV,aAAc,CACd,aAAe,CACf,WACF,CACA,mBACE,iBACF,CACA,0CACE,oBAAqB,CACrB,cACF,CACA,wCACE,wCAA0C,CAC1C,gCAAkC,CAClC,wBAA0B,CAC1B,8CACF,CACA,6CACE,gCAAiC,CACzB,wBACV,CACA,+CAEE,YACF,CACA,mBACE,iBAAkB,CAClB,QAAS,CACT,aAAc,CACd,eAAgB,CAChB,oBAAqB,CACrB,qBAAsB,CACtB,2BAA4B,CAC5B,iBAAkB,CAClB,YAAa,CACb,6GAA4H,CACpH,qGAAoH,CAC5H,+BACF,CACA,oCACE,gBAAiB,CACjB,qBAA0B,CAC1B,0BAA4B,CAC5B,kBACF,CACA,iCACE,iBAAkB,CAClB,YAAa,CACb,sBAAuB,CACvB,uBAAwB,CAChB,eACV,CACA,oDACE,4BAA6B,CACrB,oBACV,CACA,wEAEE,eACF,CACA,oCACE,iBAAmB,CACnB,gBACF,CACA,yDAEE,UAAW,CACX,QAAS,CACT,gBAAiB,CACjB,qBAA0B,CAC1B,eAAmB,CACnB,cAAe,CACf,gBAAiB,CACjB,kBAAmB,CACnB,cAAe,CACf,0BAA4B,CAC5B,kBACF,CACA,gNAIE,cAAe,CACf,gBAAiB,CACjB,cACF,CACA,6DAEE,aAAc,CACd,iBAAkB,CAClB,gBAAiB,CACjB,qBAA0B,CAC1B,0BAA4B,CAC5B,kBACF,CACA,yEAEE,qBACF,CACA,0JAIE,aAAc,CACd,wBACF,CACA,qEAEE,wBACF,CACA,2EAEE,qBAA0B,CAC1B,kBACF,CACA,uFAEE,qBAA0B,CAC1B,qBAAsB,CACtB,kBACF,CACA,yEAEE,UAAW,CACX,YAAa,CACb,eAAgB,CAChB,aAAc,CACd,wBACF,CACA,2HAEE,iBAAkB,CAClB,SACF,CACA,qIAEE,wBAA0B,CAC1B,qBAA0B,CAC1B,iBAAkB,CAClB,oBAAqB,CACrB,cACF,CACA,mCACE,YAAa,CACb,SAAU,CACV,eACF,CACA,iCACE,kBACF,CACA,oCACE,iBACF,CACA,uDACE,iBAAkB,CAClB,KAAM,CACN,SAAU,CACV,cAAe,CACf,eAAgB,CAChB,4BAA6B,CACrB,oBACV,CACA,oOAEE,qBAA0B,CAC1B,qBAAsB,CACtB,kBACF,CACA,qEACE,aACF,CACA,kiBAME,mCAAoC,CAC5B,2BACV,CACA,wfAME,qCAAsC,CAC9B,6BACV,CACA,8QAGE,oCAAqC,CAC7B,4BACV,CACA,yPAGE,sCAAuC,CAC/B,8BACV,CACA,qFAEE,oBAAqB,CACrB,cACF,CACA,qBACE,kBACF,CACA,yEACE,iBAAkB,CAClB,gBACF,CACA,2CACE,oBAAqB,CACrB,cACF,CACA,mEAEE,kBACF,CAMA,2aAGE,yBACF,CACA,6KAGE,UAAW,CACX,sBACF,CACA,mLAGE,UAAW,CACX,kBACF,CACA,kBACE,aACF,CACA,sCACE,UAAW,CACX,MACF,CACA,sDACE,aAAc,CACd,gBACF,CAKA,yMAEE,gBACF,CACA,wRAIE,cAAe,CACf,eACF,CACA,+JAEE,UAAW,CACX,QACF,CACA,yKAEE,uBAAyB,CACzB,4BAA6B,CACrB,oBACV,CACA,mDACE,kBAAmB,CACnB,iBACF,CACA,yEACE,UAAW,CACX,MAAO,CACP,gBAAiB,CACjB,aACF,CAzTA,UACE,6BAA8B,CACtB,qBAAsB,CAC9B,QAAS,CACT,SAAU,CACV,qBAA0B,CAC1B,cAAe,CACf,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CAChB,oCAAqC,CAC7B,mCAA6B,CACrC,iBAAkB,CAClB,YAAa,CACb,aAAc,CACd,iBAAkB,CAClB,qBAAsB,CACtB,SAAU,CACV,sEAA+E,CAC/E,8DAAuE,CACvE,sDAA+D,CAC/D,0GACF,CACA,mBACE,eAAgB,CAChB,oBAAqB,CACrB,SACF,CACA,yBACE,iBACF,CACA,uCACE,iBAAkB,CAClB,KAAM,CACN,MAAO,CACP,SAAU,CACV,aAAc,CACd,UAAW,CACX,WAAY,CACZ,gBACF,CACA,qDACE,iBAAkB,CAClB,OAAQ,CACR,QAAS,CACT,YACF,CACA,sDACE,iBAAkB,CAClB,OAAQ,CACR,UAAW,CACX,eAAgB,CAChB,0BACF,CACA,wEACE,gBACF,CACA,wDACE,WACF,CACA,yDACE,eACF,CACA,2EACE,gBACF,CACA,wDACE,YACF,CACA,yDACE,gBACF,CACA,2EACE,gBACF,CACA,oBACE,iBAAkB,CAClB,8BAAgC,CAChC,sBACF,CACA,0BACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,UAAW,CACX,cAAgB,CAChB,UAAW,CACX,WAAY,CACZ,eAAgB,CAChB,SAAU,CACV,0BAA4B,CAC5B,kBAAoB,CACpB,UAAW,CACX,mBACF,CACA,eACE,UAAW,CACX,eAAgB,CAChB,UAAY,CACZ,wBAAyB,CACtB,qBAAsB,CACrB,oBAAqB,CACjB,gBAAiB,CACzB,mBACF,CACA,qBACE,UAAY,CACZ,mBACF,CACA,cACE,qBACF,CACA,cACE,iBAAkB,CAClB,oBAAqB,CACrB,cAAe,CACf,SAAU,CACV,UACF,CACA,mBACE,iBAAkB,CAClB,aAAc,CACd,SAAU,CACV,UAAW,CACX,wBAAyB,CACzB,kBAAmB,CACnB,4BAA8B,CACtB,oBAAsB,CAC9B,gCAAiC,CACzB,wBAAyB,CACjC,UAAY,CACZ,0DAA2D,CACnD,kDACV,CACA,+BACE,KAAM,CACN,MACF,CACA,gCACE,KAAM,CACN,OAAQ,CACR,2BAA6B,CACrB,mBACV,CACA,gCACE,OAAQ,CACR,QAAS,CACT,2BAA6B,CACrB,mBACV,CACA,gCACE,QAAS,CACT,MAAO,CACP,4BAA6B,CACrB,oBACV,CACA,mBACE,+BAAgC,CACxB,uBAAwB,CAChC,gDAAiD,CACzC,wCACV,CACA,2BACE,cACF,CACA,6BACE,SAAU,CACV,UACF,CACA,2BACE,cACF,CACA,6BACE,UAAW,CACX,WACF,CACA,4CACE,aACF,CACA,2DAEE,eACE,eAAgB,CAChB,UACF,CACF,CACA,+BACE,GACE,SACF,CACF,CACA,uBACE,GACE,SACF,CACF,CACA,6BACE,GACE,gCAAiC,CACzB,wBACV,CACF,CACA,qBACE,GACE,gCAAiC,CACzB,wBACV,CACF,CACA,cACE,aACF,CACA,iCACE,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,gCACE,GACE,iCAAkC,CAC1B,yBACV,CACF,CACA,wBACE,GACE,iCAAkC,CAC1B,yBACV,CACF,CAtOA,gBACE,6BAA8B,CACtB,qBAAsB,CAG9B,qBAA0B,CAC1B,cAAe,CACf,yBAA0B,CAC1B,kBAAmB,CAEnB,oCAAqC,CAC7B,mCACV,CACA,sDAVE,QAAS,CACT,SAAU,CAKV,eASF,CACA,sBACE,aAAc,CACd,UAAW,CACX,QAAS,CACT,eAAgB,CAChB,iBAAkB,CAClB,WACF,CAQA,gDANE,oBAAqB,CACrB,WAAY,CACZ,gBAAiB,CACjB,gBAAiB,CACjB,qBAqBF,CAnBA,qBAEE,cAAe,CAGf,iBAAkB,CAElB,iBAAkB,CAElB,eAAgB,CAChB,qBAAsB,CACtB,wBAAyB,CACzB,iBAAkB,CAClB,SAAU,CACV,cAAe,CACf,wBAAyB,CACtB,qBAAsB,CACrB,oBAAqB,CACjB,gBACV,CACA,uBACE,aAAc,CACd,aAAc,CACd,qBAA0B,CAC1B,uBAAwB,CACxB,eACF,CACA,6BACE,oBACF,CACA,sDAEE,oBAAqB,CACrB,0BAA4B,CAC5B,kBACF,CACA,0DAEE,aACF,CACA,4BACE,eAAgB,CAChB,eAAgB,CAChB,oBACF,CACA,8BACE,aACF,CACA,oEAEE,oBACF,CACA,wEAEE,aACF,CACA,oDAEE,SACF,CACA,kHAEE,iBACF,CACA,gLAEE,aAAc,CACd,cAAe,CACf,mBAAoB,CACpB,SAAU,CACV,0BAA4B,CAC5B,kBACF,CACA,wLAEE,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,WACF,CACA,8KAEE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,aAAc,CACd,WAAY,CACZ,qBAA0B,CAC1B,kBAAmB,CACnB,iBAAkB,CAClB,iBAAmB,CACnB,SAAU,CACV,0BAA4B,CAC5B,kBACF,CACA,4PAIE,SACF,CACA,wPAIE,SACF,CACA,yEAGE,gBACF,CACA,8FAIE,oBAAqB,CACrB,cAAe,CACf,WAAY,CACZ,qBAA0B,CAC1B,iBAAkB,CAClB,gBAAiB,CACjB,iBAAkB,CAClB,qBAAsB,CACtB,eAAgB,CAChB,iBAAkB,CAClB,cAAe,CACf,0BAA4B,CAC5B,kBACF,CACA,0CAEE,SACF,CACA,8CAEE,qBAA0B,CAC1B,wBAAyB,CACtB,qBAAsB,CACrB,oBAAqB,CACjB,gBACV,CACA,0DAEE,oBACF,CACA,8FAEE,aAAc,CACd,WAAY,CACZ,cAAe,CACf,iBAAkB,CAClB,qBAAsB,CACtB,wBAAyB,CACzB,iBAAkB,CAClB,YAAa,CACb,0BAA4B,CAC5B,kBACF,CACA,oNAIE,aAAc,CACd,oBACF,CACA,uFAGE,kBACF,CACA,kQAME,qBAA0B,CAC1B,oBAAqB,CACrB,kBACF,CACA,sBACE,mBACF,CACA,wBACE,oBAAqB,CACrB,gBAAiB,CACjB,qBACF,CACA,gCACE,+DAEE,kBACF,CACF,CACA,gDACE,oBAAqB,CACrB,UAAW,CACX,gBACF,CACA,qCACE,oBAAqB,CACrB,WAAY,CACZ,gBAAiB,CACjB,kBACF,CACA,2CACE,iBAAkB,CAClB,oBAAqB,CACrB,UAAW,CACX,WAAY,CACZ,gBAAiB,CACjB,qBAA0B,CAC1B,cAAe,CACf,kBAAmB,CACnB,qBAAsB,CACtB,qBAAsB,CACtB,wBAAyB,CACzB,iBAAkB,CAClB,0BAA4B,CAC5B,kBAAoB,CACpB,UAAW,CACX,YACF,CACA,6DACE,SACF,CACA,sEACE,aACF,CACA,iEACE,aACF,CACA,kEACE,aACF,CACA,wDACE,aACF,CACA,6DACE,sBACF,CACA,iDACE,oBAAqB,CACrB,gCACF,CACA,oGAEE,oBAAqB,CACrB,gCAAkC,CAClC,SAAU,CACV,gDAAqD,CAC7C,wCACV,CACA,oDACE,qBAA0B,CAC1B,wBAAyB,CACzB,kBAAmB,CACnB,SACF,CACA,0DACE,oBAAqB,CACrB,gCACF,CACA,qDACE,qBAA0B,CAC1B,wBAAyB,CACzB,kBAAmB,CACnB,SACF,CACA,2DACE,oBAAqB,CACrB,gCACF,CACA,mDACE,cAAe,CACf,WAAY,CACZ,eAAgB,CAChB,kBAAmB,CACnB,qBAAsB,CACtB,oCAAuC,CACvC,4BACF,CACA,8CACE,kBAAmB,CACnB,cACF,CACA,8CACE,aACF,CACA,wFAEE,WAAY,CACZ,gBAAiB,CACjB,kBACF,CACA,4IAEE,WAAY,CACZ,QACF,CACA,wJAEE,WAAY,CACZ,gBACF,CACA,oDACE,oBAAqB,CACrB,WAAY,CACZ,gBACF,CACA,0DACE,6BAA8B,CACtB,qBAAsB,CAC9B,WAAY,CACZ,gBAAiB,CACjB,aAAc,CACd,iBAAkB,CAClB,qBAAsB,CACtB,wBAAyB,CACzB,iBAAkB,CAClB,YAAa,CACb,mCAAqC,CACrC,2BACF,CACA,gEACE,oBACF,CACA,kGAEE,WAAY,CACZ,gBACF,CACA,0CACE,cAAe,CACf,WAAY,CACZ,QAAS,CACT,gBACF,CACA,2EACE,sBAAuB,CACvB,wBACF,CACA,oFAEE,cAAe,CACf,WAAY,CACZ,QAAS,CACT,gBACF,CACA,wIAEE,sBAAuB,CACvB,wBACF,CACA,oJAEE,WAAY,CACZ,gBACF,CACA,8FAEE,WAAY,CACZ,cAAe,CACf,gBACF,CACA,6CACE,eACF,CACA,0DACE,KACF,CACA,0DACE,WAAY,CACZ,gBACF,CACA,gEACE,aAAgB,CAChB,UACF,CACA,wCACE,kBACF,CACA,6DACE,kBAAmB,CACnB,oBAAqB,CACrB,kBACF,CACA,+DACE,qBAA0B,CAC1B,sBAAuB,CACvB,WAAY,CACZ,kBACF,CACA,oEACE,kBAAmB,CACnB,wBACF,CACA,sEACE,UACF,CACA,kNAGE,qBAA0B,CAC1B,kBAAmB,CACnB,oBAAqB,CACrB,kBACF,CACA,4ZAIE,SACF,CACA,wZAIE,SACF,CACA,yCACE,2EAEE,YACF,CACF,CACA,yCACE,wBACE,YACF,CACF,CACA,oBACE,aACF,CASA,6NAGE,cAAe,CACf,eACF,CACA,4CACE,iBAAkB,CAClB,aACF,CASA,wNACE,cAAe,CACf,eACF,CACA,gEACE,gBAAiB,CACjB,aACF,CAzfA,wCAEE,mBAAoB,CACpB,YACF,CACA,qEACE,iBAAkB,CAClB,KAAM,CACN,UAAW,CACX,QAAS,CACT,SACF,CACA,2EACE,UACF,CACA,6IAEE,SAAU,CACV,gBAAiB,CACjB,0BAA4B,CAC5B,kBAAoB,CACpB,mBACF,CACA,qCACE,6IAEE,gBACF,CACF,CACA,uMAGE,oBAAqB,CACrB,OAAQ,CACR,iBAAkB,CAClB,aACF,CACA,sEACE,UACF,CACA,+IAEE,kBACF,CACA,8DACE,UACF,CACA,yEACE,iBAAkB,CAClB,qBAAsB,CACtB,wBAAyB,CACzB,iBAAkB,CAClB,yDAAiE,CACjE,iDAAyD,CACzD,UAAW,CACX,WAAY,CACZ,cACF,CACA,+EACE,cACF,CACA,gGACE,WACF,CACA,sGACE,WACF,CACA,4FACE,oBAAqB,CACrB,gCAAkC,CAClC,SAAU,CACV,gDAAqD,CAC7C,wCACV,CACA,6FACE,qBAA0B,CAC1B,kBAAmB,CACnB,kBACF,CACA,mGACE,kBACF,CACA,4GACE,sBAAuB,CACvB,WAAY,CACZ,YAAa,CAGb,WAFF,CAIA,yEACE,YACF,CACA,gGACE,eAAgB,CAChB,UACF,CACA,qGACE,iBAAkB,CAClB,OAAQ,CACR,MAAO,CACP,cACF,CACA,2GACE,YACF,CACA,uFACE,WACF,CACA,2OAEE,gBACF,CACA,sIACE,WACF,CACA,uFACE,WACF,CACA,2OAEE,gBACF,CACA,sIACE,WACF,CACA,+FACE,SAAU,CACV,QACF,CACA,uFACE,aACF,CACA,qHACE,UACF,CACA,6OAEE,kBACF,CACA,uFACE,cACF,CAKA,0CACE,iBAAkB,CAClB,qBAAsB,CACtB,wBAAyB,CACzB,iBAAkB,CAClB,yDAAiE,CACjE,iDAAyD,CAEzD,mBAAoB,CACpB,YAAa,CACb,kBAAmB,CACf,cAAe,CAEf,qBAAsB,CAClB,kBAAmB,CAC3B,eACF,CACA,gDACE,cACF,CAIA,uEACE,WACF,CACA,6DACE,oBAAqB,CACrB,gCAAkC,CAClC,SAAU,CACV,gDAAqD,CAC7C,wCACV,CACA,8DACE,qBAA0B,CAC1B,kBAAmB,CACnB,kBACF,CACA,oEACE,kBACF,CACA,6EACE,sBAAuB,CACvB,WAAY,CACZ,YACF,CACA,iEACE,WACF,CACA,gDACE,oBAAqB,CACrB,OAAQ,CACR,YAAa,CACb,gBAAiB,CACjB,aACF,CACA,iEACE,kBACF,CACA,gDACE,iBAAkB,CAElB,mBAAoB,CACpB,YAAa,CAET,aAAc,CACV,SAAU,CAClB,6BAA8B,CACtB,qBAAsB,CAC9B,cAAe,CACf,WAAY,CACZ,cAAe,CACf,gBAAiB,CACjB,iBAAkB,CAClB,mBAAoB,CACpB,gBAAiB,CACjB,kBAAmB,CACnB,wBAAyB,CACzB,iBAAkB,CAClB,cAAe,CACf,2DAAiE,CACjE,mDAAyD,CACzD,wBAAyB,CACtB,qBAAsB,CACrB,oBAAqB,CACjB,gBACV,CACA,wDACE,oBAAqB,CACrB,gBAAiB,CACjB,eAAgB,CAChB,kBAAmB,CACnB,sBACF,CACA,uDACE,aAAc,CACd,iBAAkB,CAClB,aAAc,CACd,iBAAkB,CAClB,mBAAoB,CACpB,sBAAwB,CACxB,iCAAkC,CAClC,kCAAmC,CACnC,iCAAkC,CAClC,qBAA0B,CAC1B,eAAiB,CACjB,cAAe,CACf,mBAAoB,CACpB,cAAe,CACf,oBAAqB,CACrB,cACF,CACA,yDACE,aACF,CACA,2DACE,oBACF,CACA,8DACE,YACF,CACA,mHACE,aACF,CACA,6DACE,qBACF,CACA,kDACE,iBAAkB,CAClB,gBACF,CACA,iHAEE,sLAAkM,CAClM,kBAAmB,CACnB,0BAA4B,CAC5B,kBACF,CACA,wDACE,UAAW,CACX,aACF,CACA,yDACE,iBAAkB,CAClB,KAAM,CACN,MAAO,CACP,WAAY,CACZ,kBAAmB,CACnB,iBACF,CACA,iGACE,iBACF,CACA,uDACE,iBAAkB,CAClB,OAAQ,CACR,UAAW,CACX,SAAU,CACV,kCAAmC,CAC3B,0BAA2B,CACnC,0BAA4B,CAC5B,kBACF,CACA,8DACE,gBACF,CACA,8DAEE,gBACF,CACA,gEACE,WAAY,CACZ,gBACF,CACA,6IAEE,WAAY,CACZ,gBACF,CACA,8DACE,gBACF,CACA,8DACE,WAAY,CACZ,gBACF,CACA,gEACE,WAAY,CACZ,gBACF,CACA,6IAEE,WAAY,CACZ,gBACF,CACA,qEACE,QACF,CACA,+GACE,eACF,CACA,8DACE,WAAY,CACZ,gBACF,CACA,uDACE,YACF,CAEA,YACE,6BAA8B,CACtB,qBAAsB,CAC9B,QAAS,CACT,SAAU,CACV,qBAA0B,CAC1B,cAAe,CACf,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CAChB,oCAAqC,CAC7B,mCAA6B,CACrC,iBAAkB,CAClB,oBAAqB,CACrB,cACF,CACA,iEACE,oBAAqB,CACrB,gCACF,CACA,2BAEM,UAAW,CACP,QAAO,CACf,eAAgB,CAChB,kBAAmB,CACnB,sBACF,CACA,gCACE,qEAEE,aAAc,CACV,SACN,CACF,CACA,kCAEM,UAAW,CACP,QAAO,CACf,eAAgB,CAChB,kBAAmB,CACnB,sBAAuB,CACvB,UACF,CACA,gCACE,mFAEE,aAAc,CACV,SACN,CACF,CACA,kBACE,oBAAqB,CACrB,aAAc,CACd,iBAAkB,CAClB,aAAc,CACd,mBAAoB,CACpB,sBAAwB,CACxB,iCAAkC,CAClC,kCAAmC,CACnC,iCAAkC,CAClC,iBAAkB,CAClB,OAAQ,CACR,UAAW,CACX,UAAW,CACX,WAAY,CACZ,eAAgB,CAChB,qBAA0B,CAC1B,cAAe,CACf,aAAc,CACd,iBAAkB,CAClB,mBACF,CACA,oBACE,aACF,CACA,sBACE,oBACF,CACA,yBACE,YACF,CACA,yCACE,aACF,CACA,2BACE,kBAAmB,CACnB,wCAA0C,CAC1C,gCAAkC,CAClC,wBAA0B,CAC1B,8CACF,CACA,+BACE,kBACF,CACA,yDACE,gCAAiC,CACzB,wBACV,CACA,8CACE,mBACF,CACA,kBACE,iBAAkB,CAClB,OAAQ,CACR,UAAW,CACX,SAAU,CACV,oBAAqB,CACrB,UAAW,CACX,WAAY,CACZ,eAAgB,CAChB,qBAA0B,CAC1B,cAAe,CACf,iBAAkB,CAClB,aAAc,CACd,iBAAkB,CAClB,mBAAoB,CACpB,eAAgB,CAChB,cAAe,CACf,SAAU,CACV,mDAAuD,CACvD,2CAA+C,CAC/C,mBACF,CACA,yBACE,aACF,CACA,wBACE,qBACF,CACA,oCACE,SACF,CACA,qBACE,QAAS,CAET,qBAA0B,CAC1B,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CAChB,oCAAqC,CAC7B,oCAA6B,CACrC,iBAAkB,CAClB,WAAY,CACZ,YAAa,CACb,YAAa,CACb,6BAA8B,CACtB,qBAAsB,CAC9B,aAAc,CACd,eAAgB,CAChB,cAAe,CACf,mBAAqB,CACrB,qBAAsB,CACtB,iBAAkB,CAClB,YAAa,CACb,6GAA4H,CACpH,qGACV,CACA,wMAEE,mCAAoC,CAC5B,2BACV,CACA,kMAEE,qCAAsC,CAC9B,6BACV,CACA,mGACE,oCAAqC,CAC7B,4BACV,CACA,gGACE,sCAAuC,CAC/B,8BACV,CACA,4BACE,YACF,CAWA,wCATE,iBAAkB,CAClB,aAAc,CACd,eAAgB,CAChB,gBAAiB,CACjB,qBAA0B,CAC1B,eAAmB,CACnB,cAAe,CACf,gBAcF,CAZA,iBASE,cAAe,CACf,sCAAwC,CACxC,8BACF,CACA,uBACE,qBAA0B,CAC1B,cAAe,CACf,cACF,CACA,wBAEE,mBAAoB,CACpB,YACF,CACA,gCAEM,aAAc,CACV,SAAU,CAClB,eAAgB,CAChB,kBAAmB,CACnB,sBACF,CACA,8BAEM,aAAc,CACV,SACV,CACA,qEACE,wBACF,CACA,uEACE,qBAA0B,CAC1B,eAAgB,CAChB,wBACF,CACA,qGACE,aACF,CACA,iCACE,qBAA0B,CAC1B,kBACF,CACA,gCACE,iBACF,CACA,eACE,cACF,CACA,4CACE,sCAAwC,CACxC,kCAAoC,CACpC,iCAAmC,CAC3B,yBACV,CACA,gBACE,aACF,CAKA,oEACE,UAAc,CACd,SACF,CACA,yBACE,aACF,CACA,yDACE,kBAAmB,CACnB,iBACF,CACA,gFACE,iBAAkB,CAClB,iBACF,CAMA,sIACE,cAAe,CACf,eAAgB,CAChB,gBACF,CACA,iEACE,iBAAmB,CACnB,eACF,CACA,wEACE,OAAQ,CACR,SACF,CACA,sEACE,UAAW,CACX,SACF,CACA,oFACE,SACF,CACA,2KAEE,OAAQ,CACR,QAAS,CACT,gBACF,CACA,qFACE,UAAW,CACX,SACF,CACA,6KAEE,eAAgB,CAChB,iBACF,CACA,wFACE,cACF,CACA,oIACE,OACF,CACA,2QAEE,eAAgB,CAChB,iBACF,CAxqBA,WAEE,0BAA2B,CAC3B,mBACF,CACA,sBAEM,qBAAsB,CAClB,kBACV,CACA,oBAGM,yBAA0B,CACtB,qBACV,CACA,eACE,aACF,CAlBA,aACE,6BAA8B,CACtB,qBAAsB,CAC9B,QAAS,CACT,SAAU,CACV,qBAA0B,CAC1B,cAAe,CACf,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CAChB,oCAAqC,CAC7B,mCAA6B,CACrC,iBAAkB,CAClB,KAAM,CACN,MAAO,CACP,YAAa,CACb,eAAmB,CACnB,kBAAmB,CACnB,eAAgB,CAChB,WAAY,CACZ,wBAAyB,CACtB,qBAAsB,CACrB,oBAAqB,CACjB,gBACV,CACA,mBACE,iBAAkB,CAClB,8BAAqC,CACrC,UACF,CACA,oBACE,YACF,CACA,0FAGE,mBACF,CACA,gGAGE,iBACF,CACA,mGAGE,gBACF,CACA,6FAGE,kBACF,CACA,mBACE,qBAAsB,CACtB,2BAA4B,CAC5B,iBAAkB,CAClB,6GAA4H,CACpH,qGAAoH,CAC5H,4CAAkD,CAC1C,oCACV,CACA,sEAIE,mBACE,6GAA4H,CACpH,qGACV,CACF,CACA,mBACE,eAAgB,CAChB,eAAgB,CAChB,QAAS,CACT,oBAAqB,CACrB,qBAA0B,CAC1B,eAAgB,CAChB,+BACF,CACA,2BACE,iBAAkB,CAClB,qBACF,CACA,qBACE,iBAAkB,CAClB,kBAAmB,CACnB,qBAA0B,CAC1B,cACF,CACA,8BACE,iBAAkB,CAClB,OAAQ,CACR,aAAc,CACd,cACF,CACA,2BACE,iBACF,CACA,qBACE,iBAAkB,CAClB,gBACF,CACA,4BACE,eACF,CACA,mBACE,iBAAkB,CAClB,aAAc,CACd,kBAAmB,CACnB,mBAAoB,CACpB,sBAAuB,CACvB,kBAAmB,CACnB,yBAA0B,CAC1B,+BAAgC,CACxB,uBACV,CACA,kNAGE,YAAa,CAIb,8CAA8B,CAC9B,8CAAmD,CAC3C,sCACV,CACA,mEACE,QAAS,CACT,gDAAiD,CACzC,wCACV,CACA,uEACE,SACF,CACA,wEACE,UACF,CACA,wNAGE,QAAS,CAIT,8CAAuB,CACvB,+CAAoD,CAC5C,uCACV,CACA,qEACE,OAAQ,CACR,gDAAiD,CACzC,wCACV,CACA,wEACE,QACF,CACA,2EACE,WACF,CACA,2NAGE,OAAQ,CAIR,8CAAuB,CACvB,gDAAqD,CAC7C,wCACV,CACA,sEACE,QAAS,CACT,gDAAiD,CACzC,wCACV,CACA,0EACE,SACF,CACA,2EACE,UACF,CACA,qNAGE,SAAU,CAIV,8CAA8B,CAC9B,+CAAoD,CAC5C,uCACV,CACA,oEACE,OAAQ,CACR,gDAAiD,CACzC,wCACV,CACA,uEACE,QACF,CACA,0EACE,WACF,CACA,iBACE,aAAc,CACd,gBACF,CACA,4CACE,kBAAmB,CACnB,iBACF,CACA,sCACE,eACF,CACA,6CACE,gBAAiB,CACjB,aACF,CA3NA,YACE,QAAS,CACT,SAAU,CACV,qBAA0B,CAC1B,cAAe,CACf,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CAChB,oCAAqC,CAC7B,mCAA6B,CACrC,iBAAkB,CAClB,oBAAqB,CACrB,6BAA8B,CACtB,qBAAsB,CAC9B,cAAe,CACf,WAAY,CACZ,gBAAiB,CACjB,qBAAsB,CACtB,gCAAqC,CACrC,4BAA6B,CAC7B,mBAAoB,CACpB,cAAe,CACf,2BAA6B,CAC7B,mBAAqB,CACrB,wBAAyB,CACtB,qBAAsB,CACrB,oBAAqB,CACjB,gBACV,CACA,kBACE,aAAc,CACd,gBAAiB,CACjB,gBAAiB,CACjB,UAAW,CACX,cACF,CACA,2CAEE,iBAAkB,CAClB,OAAQ,CACR,QAAS,CACT,UAAW,CACX,WAAY,CACZ,qBAAsB,CACtB,kBAAmB,CACnB,cAAe,CACf,yDAAkE,CAClE,iDAA0D,CAC1D,WACF,CACA,kBACE,+CAAoD,CAC5C,uCACV,CACA,uGAEE,UACF,CACA,yBACE,SAAU,CACV,YAAa,CACb,cAAe,CACf,sBACF,CACA,6BACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,WACF,CACA,6CACE,oBAAqB,CACrB,qBACF,CACA,gEACE,aACF,CACA,kBACE,SAAU,CACV,gDAAqD,CAC7C,wCACV,CACA,wBACE,uBAAwB,CAChB,eACV,CACA,kBACE,cAAe,CACf,WAAY,CACZ,gBACF,CACA,oCACE,gBAAiB,CACjB,gBAAiB,CACjB,cACF,CACA,wBACE,UAAW,CACX,WACF,CACA,+DAEE,UACF,CACA,2CACE,UAAW,CACX,WACF,CACA,uDACE,iBAAkB,CAClB,eACF,CACA,8DACE,SAAU,CACV,iBACF,CACA,8DACE,eAAiB,CACjB,+BAAiC,CACzB,uBACV,CACA,oBACE,wBACF,CACA,sCACE,iBAAkB,CAClB,eACF,CACA,0BACE,SAAU,CACV,gBAAiB,CACjB,mCAAoC,CAC5B,2BACV,CACA,6CACE,SAAU,CACV,iBACF,CACA,yCAEE,kBAAmB,CACnB,UACF,CAKA,yJAIE,kBACF,CACA,+CACE,GACE,4CAA8C,CACtC,oCAAsC,CAC9C,gCAAiC,CACzB,wBACV,CACA,GACE,6CAAgD,CACxC,qCAAwC,CAChD,gCAAiC,CACzB,wBACV,CACF,CACA,uCACE,GACE,4CAA8C,CACtC,oCAAsC,CAC9C,gCAAiC,CACzB,wBACV,CACA,GACE,6CAAgD,CACxC,qCAAwC,CAChD,gCAAiC,CACzB,wBACV,CACF,CACA,gBACE,aACF,CACA,kCACE,iBAAkB,CAClB,eACF,CACA,yEAEE,SAAU,CACV,gBAAiB,CACjB,mCAAoC,CAC5B,2BACV,CACA,mDACE,iBAAkB,CAClB,eACF,CACA,0DACE,gBACF,CACA,sEACE,gBAAiB,CACjB,gBACF,CACA,qDACE,gBAAiB,CACjB,gBACF,CACA,yCACE,QAAS,CACT,aAAc,CACd,+BAAgC,CACxB,uBACV,CACA,4DACE,iBACF,CA5NA,SACE,6BAA8B,CACtB,qBAAsB,CAG9B,qBAA0B,CAC1B,cAAe,CACf,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CAChB,oCAAqC,CAC7B,mCAA6B,CACrC,oBAAqB,CACrB,WAAY,CACZ,gBAAiB,CACjB,aAAc,CACd,cAAe,CACf,gBAAiB,CACjB,kBAAmB,CACnB,kBAAmB,CACnB,wBAAyB,CACzB,iBAAkB,CAClB,cAAe,CACf,SAAU,CACV,wDAAiE,CACjE,gDACF,CACA,eACE,WACF,CACA,qCAGE,qBACF,CACA,kCACE,oBAAqB,CACrB,aAAc,CACd,aACF,CACA,wBACE,oBAAqB,CACrB,cAAe,CACf,eAAgB,CAChB,qBAA0B,CAC1B,eAAiB,CACjB,cAAe,CACf,wDAAiE,CACjE,gDACF,CACA,8BACE,qBACF,CACA,mBACE,wBACF,CACA,6IAKE,UACF,CACA,mBACE,4BAA6B,CAC7B,wBACF,CACA,yDACE,aACF,CACA,qDAEE,UACF,CACA,2BACE,wBACF,CACA,0BACE,wBACF,CACA,gBACE,YACF,CACA,cACE,aAAc,CACd,kBAAmB,CACnB,oBACF,CACA,sBACE,UAAW,CACX,kBAAmB,CACnB,oBACF,CACA,iBACE,aAAc,CACd,kBAAmB,CACnB,oBACF,CACA,yBACE,UAAW,CACX,kBAAmB,CACnB,oBACF,CACA,aACE,aAAc,CACd,kBAAmB,CACnB,oBACF,CACA,qBACE,UAAW,CACX,kBAAmB,CACnB,oBACF,CACA,iBACE,aAAc,CACd,kBAAmB,CACnB,oBACF,CACA,yBACE,UAAW,CACX,kBAAmB,CACnB,oBACF,CACA,gBACE,aAAc,CACd,kBAAmB,CACnB,oBACF,CACA,wBACE,UAAW,CACX,kBAAmB,CACnB,oBACF,CACA,gBACE,aAAc,CACd,kBAAmB,CACnB,oBACF,CACA,wBACE,UAAW,CACX,kBAAmB,CACnB,oBACF,CACA,cACE,aAAc,CACd,kBAAmB,CACnB,oBACF,CACA,sBACE,UAAW,CACX,kBAAmB,CACnB,oBACF,CACA,cACE,aAAc,CACd,kBAAmB,CACnB,oBACF,CACA,sBACE,UAAW,CACX,kBAAmB,CACnB,oBACF,CACA,cACE,aAAc,CACd,kBAAmB,CACnB,oBACF,CACA,sBACE,UAAW,CACX,kBAAmB,CACnB,oBACF,CACA,eACE,aAAc,CACd,kBAAmB,CACnB,oBACF,CACA,uBACE,UAAW,CACX,kBAAmB,CACnB,oBACF,CACA,cACE,aAAc,CACd,kBAAmB,CACnB,oBACF,CACA,sBACE,UAAW,CACX,kBAAmB,CACnB,oBACF,CACA,kBACE,aAAc,CACd,kBAAmB,CACnB,oBACF,CACA,0BACE,UAAW,CACX,kBAAmB,CACnB,oBACF,CACA,gBACE,aAAc,CACd,kBAAmB,CACnB,oBACF,CACA,wBACE,UAAW,CACX,kBAAmB,CACnB,oBACF,CACA,iBACE,aAAc,CACd,kBAAmB,CACnB,oBACF,CACA,oBACE,aAAc,CACd,kBAAmB,CACnB,oBACF,CACA,eACE,aAAc,CACd,kBAAmB,CACnB,oBACF,CACA,iBACE,aAAc,CACd,kBAAmB,CACnB,oBACF,CACA,8CAEE,eACF,CACA,aACE,cAAe,CACf,eAAgB,CAChB,aAAc,CACd,gBACF,CACA,oCACE,gBAAiB,CACjB,aACF,CACA,sEAEE,gBAAiB,CACjB,aACF,CA3PA,YACE,6BAA8B,CACtB,qBAAsB,CAC9B,QAAS,CACT,SAAU,CACV,qBAA0B,CAC1B,cAAe,CACf,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CAChB,oCAAqC,CAC7B,mCAA6B,CACrC,SACF,CACA,cACE,QACF,CACA,gBACE,aAAc,CACd,UAAW,CACX,YACF,CACA,6BACE,cACF,CACA,8BACE,oBACF,CACA,gCACE,kBACF,CACA,2CACE,aAAc,CACd,UAAW,CACX,WAAY,CACZ,YAAa,CACb,gBAAiB,CACjB,iBAAkB,CAClB,iBAAkB,CAClB,kBAAmB,CACnB,wBAAyB,CACzB,yBAA0B,CAC1B,iBAAkB,CAClB,cAAe,CACf,wCAA0C,CAC1C,gCACF,CACA,uDACE,kBAAmB,CACnB,UAAW,CACX,WAAY,CACZ,WAAY,CACZ,iBAAkB,CAClB,qBACF,CACA,iDACE,oBACF,CACA,qEACE,oBACF,CACA,4BACE,iBAAkB,CAClB,UAAW,CACX,WAAY,CACZ,iBAAkB,CAClB,kBAAmB,CACnB,yBAA0B,CAC1B,iBAAkB,CAClB,cAAe,CACf,mCAAqC,CACrC,2BACF,CACA,wCACE,cACF,CACA,4EACE,oBACF,CACA,gDACE,kBACF,CACA,4CACE,aAAc,CACd,WACF,CACA,uDACE,kBAAmB,CACnB,qBACF,CACA,4DACE,oBACF,CACA,mDACE,kBACF,CACA,4DACE,aAAc,CACd,cACF,CACA,8CACE,cAAe,CACf,qBAA0B,CAC1B,cACF,CACA,8CACE,qBAA0B,CAC1B,cACF,CACA,0CACE,qBAA0B,CAC1B,cAAe,CACf,0BAA4B,CAC5B,kBACF,CAIA,gGACE,qBACF,CACA,iCACE,oBAAqB,CACrB,UACF,CACA,wCACE,aAAc,CACd,UACF,CACA,uCACE,aAAc,CACd,UAAW,CACX,UACF,CACA,iBACE,6BAA8B,CACtB,qBAAsB,CAC9B,QAAS,CACT,SAAU,CACV,qBAA0B,CAC1B,cAAe,CACf,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CAChB,oCAAqC,CAC7B,mCAA6B,CACrC,gBACF,CAKA,+CAHE,aAAc,CACd,UAMF,CAJA,uBAEE,UAEF,CACA,mFACE,kBACF,CACA,mFACE,kBACF,CACA,sBACE,iBAAkB,CAClB,WAAY,CACZ,cAAe,CACf,cACF,CACA,2BACE,oBAAqB,CACrB,UAAW,CACX,iBAAkB,CAClB,eAAgB,CAChB,gBAAiB,CACjB,kBAAmB,CACnB,sBACF,CACA,wCACE,kBACF,CACA,mCACE,iBAAkB,CAClB,OAAQ,CACR,SACF,CACA,2CACE,QAAS,CACT,aAAc,CACd,SACF,CACA,4CACE,iBAAkB,CAClB,qBACF,CACA,2BACE,WAAY,CACZ,oBAAqB,CACrB,uCAAyC,CACzC,+BACF,CACA,gCACE,aAAc,CACd,UAAW,CACX,WACF,CACA,+GAEE,iBAAkB,CAClB,OAAQ,CACR,qBAA0B,CAC1B,cACF,CACA,qCACE,oBAAqB,CACrB,cAAe,CACf,iBAAkB,CAClB,OAAQ,CACR,SAAU,CACV,qBAA0B,CAC1B,aAAc,CACd,cAAe,CACf,SAAU,CACV,0BAA4B,CAC5B,kBACF,CACA,2CACE,qBACF,CACA,uDACE,wBACF,CAIA,0GACE,SACF,CACA,8IAGE,aACF,CACA,+DACE,SACF,CACA,wEACE,aACF,CACA,+BACE,iBAAkB,CAClB,YAAa,CACb,UAAW,CACX,iBAAkB,CAClB,cAAe,CACf,aACF,CACA,mGAEE,iBAAkB,CAClB,WAAY,CACZ,WAAY,CACZ,wBAAyB,CACzB,iBACF,CACA,+GAEE,sBACF,CACA,+GAEE,oBACF,CACA,6GAEE,SACF,CACA,qKAEE,sBACF,CACA,uHAEE,mBACF,CACA,uHAEE,iBAAkB,CAClB,OAAQ,CACR,QAAS,CACT,UAAW,CACX,WAAY,CACZ,gBAAiB,CACjB,iBAAkB,CAClB,UACF,CACA,yIAEE,cACF,CACA,6GAEE,iBAAkB,CAClB,OAAQ,CACR,QAAS,CACT,cAAe,CACf,sCAAwC,CAChC,8BACV,CACA,+HAEE,cACF,CACA,+GAEE,cACF,CACA,+HAEE,aAAc,CACd,UAAW,CACX,WAAY,CACZ,eACF,CACA,6GAEE,oBAAqB,CACrB,6BAA8B,CACtB,qBAAsB,CAC9B,cAAe,CACf,gBAAiB,CACjB,iBAAkB,CAClB,iBAAkB,CAClB,eAAgB,CAChB,gBAAiB,CACjB,kBAAmB,CACnB,sBAAuB,CACvB,0BAA4B,CAC5B,kBACF,CACA,uIAEE,kBACF,CACA,uIAEE,kBACF,CACA,6KAEE,gBACF,CACA,qHAEE,WAAY,CACZ,uBAAwB,CACxB,YAAa,CACb,iBACF,CACA,qFAEE,iBAAkB,CAClB,OAAQ,CACR,SAAU,CACV,aAAc,CACd,SACF,CACA,oDACE,YACF,CAOA,4FACE,UAAW,CACX,WAAY,CACZ,YAAa,CACb,kBACF,CACA,yDACE,iBAAkB,CAClB,WAAY,CACZ,eACF,CACA,gEACE,iBAAkB,CAClB,SAAU,CACV,UAAW,CACX,WAAY,CACZ,+BAAoC,CACpC,SAAU,CACV,0BAA4B,CAC5B,kBAAoB,CACpB,WACF,CACA,4FACE,SACF,CACA,4DACE,iBAAkB,CAClB,OAAQ,CACR,QAAS,CACT,UAAW,CACX,kBAAmB,CACnB,sCAAwC,CAChC,8BAAgC,CACxC,SAAU,CACV,0BAA4B,CAC5B,kBACF,CACA,mOAGE,UAAW,CACX,UAAW,CACX,YAAa,CACb,yBAAgC,CAChC,cAAe,CACf,cAAe,CACf,0BAA4B,CAC5B,kBACF,CACA,qPAGE,UACF,CACA,+JAEE,SACF,CACA,gIAEE,eAAgB,CAChB,aAAc,CACd,UAAW,CACX,WAAY,CACZ,mBAAoB,CACjB,gBACL,CACA,yDACE,YAAa,CACb,cAAe,CACf,SAAU,CACV,kBAAmB,CACnB,iBACF,CACA,oFACE,iBAAkB,CAClB,WAAY,CACZ,aACF,CACA,mFACE,wBACF,CACA,yFACE,WACF,CACA,+SAGE,YACF,CACA,6DACE,WAAY,CACZ,cACF,CACA,0CACE,aAAc,CACd,eACF,CACA,0LAIE,8BAAgC,CACxB,sBAAwB,CAChC,yDAAiE,CACzD,iDACV,CACA,2CACE,sCAAuC,CAC/B,8BACV,CACA,2CACE,uCAAwC,CAChC,+BACV,CACA,kDACE,4CAA6C,CACrC,oCACV,CACA,kDACE,6CAA8C,CACtC,qCACV,CACA,mCACE,GACE,QAAS,CACT,QAAS,CACT,SAAU,CACV,SACF,CACF,CACA,2BACE,GACE,QAAS,CACT,QAAS,CACT,SAAU,CACV,SACF,CACF,CACA,oCACE,GACE,QAAS,CACT,QAAS,CACT,SAAU,CACV,SACF,CACF,CACA,4BACE,GACE,QAAS,CACT,QAAS,CACT,SAAU,CACV,SACF,CACF,CACA,yCACE,GACE,OAAQ,CACR,QAAS,CACT,QAAS,CACT,SAAU,CACV,SACF,CACF,CACA,iCACE,GACE,OAAQ,CACR,QAAS,CACT,QAAS,CACT,SAAU,CACV,SACF,CACF,CACA,0CACE,GACE,OAAQ,CACR,QAAS,CACT,QAAS,CACT,SAAU,CACV,SACF,CACF,CACA,kCACE,GACE,OAAQ,CACR,QAAS,CACT,QAAS,CACT,SAAU,CACV,SACF,CACF,CACA,gBACE,aACF,CACA,0DACE,WAAY,CACZ,cAAe,CACf,eACF,CACA,qBACE,aACF,CACA,wGACE,kBAAmB,CACnB,iBACF,CACA,wGACE,kBAAmB,CACnB,iBACF,CACA,gDACE,kBAAmB,CACnB,cACF,CACA,6DACE,iBACF,CACA,wDACE,UAAW,CACX,MACF,CACA,iEACE,eAAgB,CAChB,gBACF,CACA,gDACE,oBACF,CACA,0DACE,UAAW,CACX,QACF,CACA,6FACE,eAAgB,CAChB,gBACF,CACA,oDACE,kBAAmB,CACnB,cACF,CACA,+JAEE,SAAU,CACV,SACF,CACA,qJAEE,SAAU,CACV,SAAU,CACV,qCAAuC,CAC/B,6BACV,CACA,qJAEE,gBAAiB,CACjB,kBAAmB,CACnB,gBACF,CACA,+KAEE,kBAAmB,CACnB,iBACF,CACA,+KAEE,kBAAmB,CACnB,iBACF,CACA,6JAEE,kBAAmB,CACnB,cACF,CACA,6HAEE,UAAW,CACX,QACF,CAKA,qIACE,WAAY,CACZ,kBACF,CACA,gFACE,SAAU,CACV,SAAU,CACV,qCAAuC,CAC/B,6BACV,CACA,wGACE,cAAe,CACf,SACF,CACA,6EACE,SACF,CAlqBA,cACE,6BAA8B,CACtB,qBAAsB,CAC9B,QAAS,CACT,SAAU,CACV,qBAA0B,CAC1B,cAAe,CACf,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CAChB,oCAAqC,CAC7B,mCAA6B,CACrC,oBACF,CACA,mBACE,iBAAkB,CAClB,UAAW,CACX,cACF,CACA,oBACE,oBACF,CACA,0BAEE,mBAAoB,CACpB,YAAa,CAGT,sBAAuB,CACnB,kBAAmB,CAEvB,qBAAsB,CAClB,kBACV,CACA,yBACE,mBAAoB,CAChB,aAAc,CAClB,aAAc,CACd,gBAAiB,CACjB,kBACF,CACA,wGAEE,cACF,CACA,oBACE,oBAAqB,CACrB,UAAW,CACX,cAAe,CACf,eACF,CACA,4CACE,6BAA8B,CAC9B,6BACF,CACA,oBACE,iBAAkB,CAClB,oBAAqB,CACrB,UAAW,CACX,eAAgB,CAChB,qBAAsB,CACtB,wBAAyB,CACzB,mBACF,CACA,2BACE,cACF,CACA,0BACE,yCAA2C,CACnC,iCACV,CACA,iFACE,cACF,CACA,0CAEE,iBAAkB,CAClB,wBAAyB,CACzB,mBAAoB,CACpB,yDAAiE,CACjE,iDACF,CACA,yBACE,iBAAkB,CAClB,KAAM,CACN,MAAO,CACP,wBACF,CACA,mBACE,oBAAqB,CACrB,SAAU,CACV,eAAgB,CAChB,qBAA0B,CAC1B,aAAc,CACd,aAAc,CACd,kBAAmB,CACnB,eAAgB,CAChB,qBAAsB,CACtB,iBACF,CACA,4BACE,cACF,CACA,oDACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,eAAgB,CAChB,kBAAmB,CACnB,SAAU,CACV,6EAAmF,CAC3E,qEAA2E,CACnF,UACF,CACA,gDACE,wBACF,CACA,kDACE,aACF,CACA,gHACE,cACF,CACA,8CACE,wBACF,CACA,gDACE,aACF,CACA,8GACE,cACF,CACA,yCACE,iBAAkB,CAClB,aAAc,CACd,4BACF,CACA,wCACE,iBAAkB,CAClB,OAAQ,CACR,QAAS,CACT,UAAW,CACX,QAAS,CACT,SAAU,CACV,qBAA0B,CAC1B,aAAc,CACd,kBAAmB,CACnB,iBAAkB,CAClB,sCAAwC,CAChC,8BACV,CACA,iDACE,sBACF,CACA,sEACE,aACF,CACA,oEACE,aACF,CACA,uCACE,GACE,OAAQ,CACR,UACF,CACA,IACE,OAAQ,CACR,UACF,CACA,GACE,UAAW,CACX,SACF,CACF,CACA,+BACE,GACE,OAAQ,CACR,UACF,CACA,IACE,OAAQ,CACR,UACF,CACA,GACE,UAAW,CACX,SACF,CACF,CACA,kBACE,aACF,CACA,6DACE,cAAe,CACf,4BAA6B,CAC7B,eAAgB,CAChB,4BACF,CACA,2CACE,OAAQ,CACR,SACF,CACA,+GAEE,gBAAiB,CACjB,aAAc,CACd,gBACF,CAhNA,+DAEE,WACF,CACA,2BACE,sBACF,CACA,2CACE,kBACF,CACA,qEAEE,UAAW,CACX,WACF,CACA,qEAEE,oBAAqB,CACrB,eAAgB,CAChB,eAAmB,CACnB,qBAAsB,CACtB,cACF,CACA,6FAEE,aACF,CACA,yEAEE,aACF,CACA,oHAEE,aACF,CACA,gDACE,eACF,CACA,8CACE,SACF,CACA,+DAEE,UACF,CACA,iGAEE,UACF,CACA,iBAEE,mBAAoB,CACpB,YAAa,CACb,kBAAmB,CACf,cACN,CACA,gCAEM,aAAc,CACV,SAAU,CAClB,oBAAqB,CACjB,gBAAiB,CACrB,iBAAkB,CAClB,eACF,CACA,0CACE,kBACF,CACA,4GAEE,oBAAqB,CACrB,kBACF,CAIA,2GACE,oBACF,CACA,0CAEM,mBAAoB,CAChB,WACV,CACA,4CAEM,gBAAiB,CACb,QACV,CACA,kCAGM,yBAA0B,CACtB,qBACV,CACA,8CACE,WACF,CACA,2GAGE,QAAS,CACT,eAAgB,CAChB,kBAAmB,CACnB,kBAAoB,CACpB,eACF,CACA,6HAGE,QACF,CACA,+IAGE,YACF,CACA,kJAGE,gBACF,CACA,yBACE,oCACE,QAAS,CACT,eAAgB,CAChB,kBAAmB,CACnB,kBAAoB,CACpB,eACF,CACA,0CACE,QACF,CACA,gDACE,YACF,CACA,iDACE,gBACF,CACA,yBACE,kBAAmB,CACf,cACN,CACA,8FAGM,iBAAkB,CACd,aAAc,CACtB,cACF,CACA,mCACE,QAAS,CACT,eAAgB,CAChB,kBAAmB,CACnB,kBAAoB,CACpB,eACF,CACA,yCACE,QACF,CACA,+CACE,YACF,CACA,gDACE,gBACF,CACF,CACA,yBACE,mCACE,QAAS,CACT,eAAgB,CAChB,kBAAmB,CACnB,kBAAoB,CACpB,eACF,CACA,yCACE,QACF,CACA,+CACE,YACF,CACA,gDACE,gBACF,CACF,CACA,yBACE,mCACE,QAAS,CACT,eAAgB,CAChB,kBAAmB,CACnB,kBAAoB,CACpB,eACF,CACA,yCACE,QACF,CACA,+CACE,YACF,CACA,gDACE,gBACF,CACF,CACA,0BACE,mCACE,QAAS,CACT,eAAgB,CAChB,kBAAmB,CACnB,kBAAoB,CACpB,eACF,CACA,yCACE,QACF,CACA,+CACE,YACF,CACA,gDACE,gBACF,CACF,CACA,0BACE,mCACE,QAAS,CACT,eAAgB,CAChB,kBAAmB,CACnB,kBAAoB,CACpB,eACF,CACA,yCACE,QACF,CACA,+CACE,YACF,CACA,gDACE,gBACF,CACF,CAIA,uCACE,kBACF,CACA,uEACE,kBACF,CACA,oGACE,UACF,CACA,wCACE,gBACF,CACA,wTAIE,UACF,CACA,uLAEE,kBACF,CACA,uDACE,iBACF,CACA,uDACE,UACF,CAIA,sFACE,oBACF,CACA,8CACE,oBACF,CACA,4UAIE,iBAAkB,CAClB,OAAQ,CACR,OAAQ,CACR,SAAU,CACV,UAAW,CACX,WAAY,CACZ,gBAAiB,CACjB,cAAe,CACf,gBAAiB,CACjB,iBAAkB,CAClB,kBAAmB,CACnB,0DAAkE,CAC1D,kDAA0D,CAClE,mBACF,CACA,4VAIE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,WACF,CACA,mFACE,aAAc,CACd,4CAA8C,CACtC,oCACV,CACA,kGAEE,aACF,CACA,gMAIE,qBAAsB,CACtB,oBACF,CACA,gNAIE,oBAAqB,CACrB,gCAAkC,CAClC,SAAU,CACV,gDAAqD,CAC7C,wCACV,CACA,sIAEE,oBACF,CACA,gEACE,iCAAmC,CAC3B,yBACV,CACA,gFACE,oBAAqB,CACrB,gCAAkC,CAClC,SAAU,CACV,gDAAqD,CAC7C,wCACV,CACA,6CACE,aACF,CACA,kDACE,aAAc,CACd,qBAAsB,CACtB,oBACF,CACA,yCACE,aACF,CACA,mFACE,aAAc,CACd,4CAA8C,CACtC,oCACV,CACA,wFACE,8BACF,CACA,mNAEE,oBAAqB,CACrB,gCAAkC,CAClC,SAAU,CACV,gDAAqD,CAC7C,wCACV,CACA,oFAEE,oBACF,CACA,oMAIE,oBAAqB,CACrB,gCAAkC,CAClC,SAAU,CACV,gDAAqD,CAC7C,wCACV,CACA,gIAEE,oBACF,CACA,0EACE,oBAAqB,CACrB,gCAAkC,CAClC,SAAU,CACV,gDAAqD,CAC7C,wCACV,CACA,8FAEE,aACF,CACA,wLAIE,qBAAsB,CACtB,oBACF,CACA,wMAIE,oBAAqB,CACrB,gCAAkC,CAClC,SAAU,CACV,+CAAoD,CAC5C,uCACV,CACA,kIAEE,oBACF,CACA,8DACE,iCAAmC,CAC3B,yBACV,CACA,8EACE,oBAAqB,CACrB,gCAAkC,CAClC,SAAU,CACV,+CAAoD,CAC5C,uCACV,CACA,2CACE,aACF,CACA,gDACE,aAAc,CACd,qBAAsB,CACtB,oBACF,CACA,uCACE,aACF,CACA,iFACE,aAAc,CACd,4CAA8C,CACtC,oCACV,CACA,sFACE,8BACF,CACA,+MAEE,oBAAqB,CACrB,gCAAkC,CAClC,SAAU,CACV,+CAAoD,CAC5C,uCACV,CACA,oIACE,QACF,CAIA,+JAEE,oBACF,CACA,4LAIE,oBAAqB,CACrB,gCAAkC,CAClC,SAAU,CACV,+CAAoD,CAC5C,uCACV,CAKA,sRAEE,oBACF,CASA,qQACE,oBAAqB,CACrB,gCAAkC,CAClC,SAAU,CACV,+CAAoD,CAC5C,uCACV,CACA,4CACE,oBACF,CACA,mEACE,oBACF,CACA,yEACE,oBAAqB,CACrB,gCACF,CACA,yEACE,oBAAqB,CACrB,gCAAkC,CAClC,SAAU,CACV,gDAAqD,CAC7C,wCACV,CACA,sDACE,aACF,CACA,qFACE,oBAAqB,CACrB,aACF,CACA,UACE,6BAA8B,CACtB,qBAAsB,CAC9B,QAAS,CACT,SAAU,CACV,qBAA0B,CAC1B,cAAe,CACf,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CAChB,oCAAqC,CAC7B,mCACV,CACA,iBACE,aAAc,CACd,UAAW,CACX,kBAAmB,CACnB,SAAU,CACV,qBAA0B,CAC1B,cAAe,CACf,mBAAoB,CACpB,QAAS,CACT,+BACF,CACA,gBACE,cACF,CACA,6BACE,6BAA8B,CACtB,qBACV,CACA,2DAEE,kBACF,CACA,2BACE,aACF,CACA,4BACE,aAAc,CACd,UACF,CACA,kDAEE,WACF,CACA,wGAGE,mBAAoB,CACpB,yCAA0C,CAC1C,mBACF,CACA,iBACE,aAAc,CACd,gBAAiB,CACjB,qBAA0B,CAC1B,cAAe,CACf,kBACF,CACA,yBACE,oBAAqB,CACrB,iBACF,CACA,2CACE,WACF,CACA,6CACE,eACF,CACA,2CACE,WACF,CACA,6CACE,eACF,CACA,eACE,6BAA8B,CACtB,qBAAsB,CAE9B,SAAU,CACV,qBAA0B,CAC1B,cAAe,CACf,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CAChB,oCAAqC,CAC7B,mCAA6B,CACrC,eAAmB,CACnB,kBACF,CACA,yBACE,eACF,CACA,qBACE,oBAAqB,CAEjB,mBAAoB,CAChB,WAAY,CACpB,eAAgB,CAChB,kBAAmB,CACnB,gBAAiB,CACjB,qBACF,CACA,0BACE,eACF,CACA,2BACE,iBAAkB,CAElB,0BAA2B,CAC3B,mBAAoB,CAEhB,qBAAsB,CAClB,kBAAmB,CAC3B,WAAY,CACZ,qBAA0B,CAC1B,cACF,CACA,oCACE,cAAe,CACf,kBACF,CACA,yDACE,oBAAqB,CACrB,gBAAiB,CACjB,aAAc,CACd,cAAe,CACf,6BAA+B,CAC/B,aAAc,CACd,WACF,CACA,sFACE,YACF,CACA,iCACE,WAAY,CACZ,iBAAkB,CAClB,SAAW,CACX,kBACF,CACA,wDACE,WACF,CACA,uBAEE,mBAAoB,CACpB,YAAa,CAGT,yBAA0B,CACtB,qBAAsB,CAE1B,mBAAoB,CAChB,WACV,CACA,oFACE,UACF,CACA,6BACE,iBAAkB,CAElB,mBAAoB,CACpB,YAAa,CAET,qBAAsB,CAClB,kBAAmB,CAC3B,eACF,CACA,qCAEM,aAAc,CACV,SAAU,CAClB,cACF,CACA,4CAEE,UAAW,CACX,eAAgB,CAChB,aAAgB,CAChB,qBAA0B,CAC1B,cAAe,CACf,kBAAmB,CACnB,0DAAkE,CAClE,kDACF,CAUA,oDACE,8BAAgC,CACxB,sBAAwB,CAChC,gCAAiC,CACzB,wBAAyB,CACjC,mCAAoC,CAC5B,2BACV,CACA,kFAEE,oCAAqC,CAC7B,4BAA6B,CACrC,oCAAqC,CAC7B,4BACV,CACA,wCACE,qCAAsC,CAC9B,6BAA8B,CACtC,oCAAqC,CAC7B,4BAA6B,CACrC,mBACF,CACA,mCAEE,SAGF,CACA,oDAHE,gEAAuE,CAC/D,wDAKV,CACA,iCACE,GACE,kCAAmC,CAC3B,0BAA2B,CACnC,SACF,CACA,GACE,+BAAgC,CACxB,uBAAwB,CAChC,SACF,CACF,CACA,yBACE,GACE,kCAAmC,CAC3B,0BAA2B,CACnC,SACF,CACA,GACE,+BAAgC,CACxB,uBAAwB,CAChC,SACF,CACF,CACA,kCACE,GACE,kCAAmC,CAC3B,0BAA2B,CACnC,SACF,CACF,CACA,0BACE,GACE,kCAAmC,CAC3B,0BAA2B,CACnC,SACF,CACF,CACA,+BACE,GACE,0BAA2B,CACnB,kBACV,CACA,GACE,0BAA2B,CACnB,kBACV,CACF,CACA,uBACE,GACE,0BAA2B,CACnB,kBACV,CACA,GACE,0BAA2B,CACnB,kBACV,CACF,CACA,+BACE,GACE,0BAA2B,CACnB,kBACV,CACA,GACE,0BAA2B,CACnB,kBACV,CACF,CACA,uBACE,GACE,0BAA2B,CACnB,kBACV,CACA,GACE,0BAA2B,CACnB,kBACV,CACF,CACA,+BACE,GACE,0BAA2B,CACnB,kBACV,CACA,GACE,0BAA2B,CACnB,kBACV,CACF,CACA,uBACE,GACE,0BAA2B,CACnB,kBACV,CACA,GACE,0BAA2B,CACnB,kBACV,CACF,CACA,cACE,aACF,CACA,mCACE,eACF,CACA,uEACE,cAAe,CACf,eACF,CACA,+CACE,kBACF,CACA,gDACE,UACF,CACA,qDACE,kBAAmB,CACnB,iBACF,CACA,qFACE,kBAAmB,CACnB,iBACF,CACA,8EACE,SACF,CACA,kHACE,UAAW,CACX,SACF,CACA,4DACE,iBACF,CACA,gXAIE,UAAW,CACX,SACF,CACA,mNAEE,eAAgB,CAChB,iBACF,CACA,qEACE,cAAe,CACf,gBACF,CACA,qEACE,UAAW,CACX,SACF,CAKA,kHACE,kBAAmB,CACnB,mBACF,CACA,4DACE,iBAAkB,CAClB,mBACF,CACA,oYAIE,UAAW,CACX,MACF,CACA,6CACE,cAAe,CACf,gBACF,CAr6BA,YACE,cAAe,CACf,YAAa,CACb,OAAS,CACT,WAAY,CACZ,sGAAkH,CAClH,8FAA0G,CAC1G,sFAAkG,CAClG,qIACF,CACA,cACE,iHAAiI,CACjI,yGAAyH,CACzH,yFAAyG,CACzG,wLACF,CACA,4BACE,iBACF,CACA,gCACE,UAAW,CACX,WACF,CACA,mCAEE,KAAM,CACN,OAAS,CACT,WACF,CACA,2FAEE,WACF,CACA,mEAEE,UAAW,CACX,iEAAyE,CACzE,yDAAiE,CACjE,iDAAyD,CACzD,gGACF,CACA,mFAEE,OACF,CAIA,8DACE,MACF,CACA,6DACE,gHAA+H,CACvH,wGACV,CAIA,gEACE,OACF,CACA,8DACE,mHAAkI,CAC1H,2GACV,CACA,0CACE,SAAU,CACV,iCAAkC,CAC1B,yBACV,CACA,mCAEE,MAAO,CACP,UAAW,CACX,SACF,CACA,2FAEE,UACF,CACA,mEAEE,WAAY,CACZ,iEAAyE,CACzE,yDAAiE,CACjE,iDAAyD,CACzD,gGACF,CACA,mFAEE,SACF,CACA,gBACE,KACF,CACA,4DACE,gHAA+H,CACvH,wGACV,CAIA,kEACE,QACF,CACA,+DACE,mHAAkI,CAC1H,2GACV,CACA,2CACE,UAAW,CACX,iCAAkC,CAC1B,yBACV,CACA,6CACE,WAAY,CACZ,SAAU,CACV,uBAAwB,CACxB,eAAgB,CAChB,+DAAuE,CAC/D,uDACV,CACA,kBACE,QAAS,CACT,qBAA0B,CAC1B,eAAgB,CAChB,cAAe,CACf,gBACF,CACA,oBACE,iBAAkB,CAClB,SAAU,CACV,aAAc,CACd,qBAAsB,CACtB,2BAA4B,CAC5B,QACF,CACA,kBACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,UAAW,CACX,aAAc,CACd,YAAa,CACb,qBAA0B,CAC1B,eAAgB,CAChB,cAAe,CACf,iBAAkB,CAClB,aAAc,CACd,iBAAkB,CAClB,mBAAoB,CACpB,oBAAqB,CACrB,sBAAuB,CACvB,QAAS,CACT,SAAU,CACV,cAAe,CACf,4BAA8B,CAC9B,oBAAsB,CACtB,mBACF,CACA,gDAEE,qBAA0B,CAC1B,oBACF,CACA,8CACE,8BAA+B,CAE/B,4CACF,CACA,mBACE,iBAAkB,CAClB,iBAAkB,CAGlB,+BAAgC,CAChC,yBACF,CACA,+CALE,qBAA0B,CAC1B,eAOF,CACA,yBAEE,mBAAoB,CACpB,YAAa,CAGT,yBAA0B,CACtB,qBAAsB,CAC9B,oBAAqB,CACjB,gBAAiB,CACrB,UAAW,CACX,WACF,CACA,iBAEM,mBAAoB,CAChB,WAAY,CACpB,YAAa,CACb,aAAc,CACd,cAAe,CACf,kBAAmB,CACnB,oBACF,CACA,mBACE,mBAAoB,CAChB,aAAc,CAClB,YAAkB,CAClB,4BACF,CACA,iBACE,iBAAkB,CAClB,KAAM,CACN,MAAO,CACP,UAAW,CACX,QAAS,CACT,gCAAqC,CACrC,SAAU,CACV,wBAAyB,CACzB,wDAA4D,CAC5D,gDACF,CACA,yBACE,6GAA4H,CACpH,qGACV,CACA,8BACE,eACF,CACA,oCACE,GACE,SACF,CACA,GACE,SACF,CACF,CACA,4BACE,GACE,SACF,CACA,GACE,SACF,CACF,CACA,gBACE,aACF,CACA,kCACE,UAAW,CACX,MACF,CA5PA,aACE,6BAA8B,CACtB,qBAAsB,CAC9B,QAAS,CACT,SAAU,CACV,qBAA0B,CAC1B,cAAe,CACf,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CAChB,oCAAqC,CAC7B,mCAA6B,CACrC,cAAe,CACf,QAAS,CACT,MAAO,CACP,YAAa,CACb,UAAW,CACX,mBACF,CACA,oBACE,WAAY,CACZ,iBACF,CACA,gCACE,eACF,CACA,4BACE,oBAAqB,CACrB,iBAAkB,CAClB,eAAgB,CAChB,iBAAkB,CAClB,6GAA4H,CACpH,qGAAoH,CAC5H,kBACF,CACA,8BACE,aACF,CACA,4BACE,aACF,CACA,8BACE,aACF,CACA,yDAEE,aACF,CACA,sBACE,iBAAkB,CAClB,OAAQ,CACR,gBAAiB,CACjB,cACF,CACA,uDACE,qCAAsC,CAC9B,6BAA8B,CACtC,8BAAgC,CACxB,sBACV,CACA,kCACE,GACE,gBAAiB,CACjB,WAAY,CACZ,SACF,CACA,GACE,YAAa,CACb,SAAU,CACV,SACF,CACF,CACA,0BACE,GACE,gBAAiB,CACjB,WAAY,CACZ,SACF,CACA,GACE,YAAa,CACb,SAAU,CACV,SACF,CACF,CAIA,uCACE,aACF,CACA,0BACE,cAAe,CACf,eACF,CA7FA,WACE,6BAA8B,CACtB,qBAAsB,CAG9B,qBAA0B,CAC1B,cAAe,CACf,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CAChB,oCAAqC,CAC7B,mCAA6B,CACrC,iBAAkB,CAClB,SAAU,CACV,UAAW,CACX,aAAc,CACd,gBAAoB,CACpB,mBACF,CACA,gBACE,cAAe,CACf,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,YAAa,CACb,aAAc,CACd,SAAU,CACV,gCACF,CACA,iBACE,QAAS,CACT,qBAA0B,CAC1B,eAAgB,CAChB,cAAe,CACf,gBAAiB,CACjB,oBACF,CACA,mBACE,iBAAkB,CAClB,qBAAsB,CACtB,2BAA4B,CAC5B,QAAS,CACT,iBAAkB,CAClB,6GAA4H,CACpH,qGAAoH,CAC5H,mBACF,CACA,iBACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,UAAW,CACX,SAAU,CACV,qBAA0B,CAC1B,eAAgB,CAChB,aAAc,CACd,oBAAqB,CACrB,sBAAuB,CACvB,QAAS,CACT,SAAU,CACV,cAAe,CACf,4BAA8B,CAC9B,oBACF,CACA,mBACE,aAAc,CACd,UAAW,CACX,WAAY,CACZ,cAAe,CACf,iBAAkB,CAClB,gBAAiB,CACjB,iBAAkB,CAClB,mBAAoB,CACpB,mBACF,CACA,8CAEE,qBAA0B,CAC1B,oBACF,CACA,kBACE,iBAAkB,CAClB,qBAA0B,CAC1B,eAAgB,CAChB,+BAAgC,CAChC,yBACF,CACA,gBACE,YAAa,CACb,cAAe,CACf,kBAAmB,CACnB,oBACF,CACA,kBACE,iBAAkB,CAClB,gBAAiB,CACjB,sBAAuB,CACvB,4BAA6B,CAC7B,yBACF,CACA,gCACE,eAAgB,CAChB,eACF,CACA,6CAEE,sBAAuB,CACf,cAAe,CACvB,SAAU,CACV,8BAAgC,CACxB,sBAAwB,CAChC,wBAAyB,CACtB,qBAAsB,CACrB,oBAAqB,CACjB,gBACV,CACA,gBACE,cAAe,CACf,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,YAAa,CACb,WAAY,CACZ,gCAAqC,CACrC,wBACF,CACA,uBACE,YACF,CACA,gBACE,eACF,CACA,oBACE,iBACF,CACA,2BACE,oBAAqB,CACrB,OAAQ,CACR,WAAY,CACZ,qBAAsB,CACtB,UACF,CACA,+BACE,KAAM,CACN,oBAAqB,CACrB,eAAgB,CAChB,qBACF,CACA,yBACE,WACE,4BAA6B,CAC7B,eACF,CACA,+BAEM,UAAW,CACP,QACV,CACF,CAIA,yEACE,YACF,CACA,mCACE,sBACF,CACA,uCACE,aAAc,CACd,UACF,CACA,sCACE,aAAc,CACd,UAAW,CACX,UACF,CACA,iDACE,aAAc,CACd,eAAgB,CAChB,qBAA0B,CAC1B,eAAgB,CAChB,cAAe,CACf,eACF,CACA,mDACE,cAAe,CACf,qBAA0B,CAC1B,cACF,CACA,iCACE,UAAW,CACX,iBAAkB,CAClB,cACF,CACA,qFACE,gBACF,CACA,2CACE,WAAY,CACZ,eACF,CACA,yDACE,eAAgB,CAChB,eACF,CACA,0DACE,aACF,CACA,wHAEE,aACF,CACA,yDACE,aACF,CACA,4DACE,aACF,CACA,oBACE,aACF,CACA,qCACE,UAAc,CACd,MACF,CACA,sCACE,eACF,CACA,oDACE,gBAAiB,CACjB,aACF,CACA,kDACE,gBACF,CA7OA,6DACE,iBACF,CACA,yDAEE,gBAAiB,CACjB,gBAAiB,CACjB,gBAAiB,CACjB,kBAAmB,CACnB,wBAAyB,CACzB,yBAA0B,CAC1B,yDAAiE,CACjE,iDACF,CACA,gEACE,aAAc,CACd,eAAgB,CAChB,oBAAqB,CACrB,4BACF,CACA,uEACE,gCACF,CACA,0DACE,gBACF,CACA,kEACE,qBACF,CACA,kEACE,SACF,CACA,8DACE,eACF,CACA,2EACE,UAAW,CACX,WAAY,CACZ,iBAAkB,CAClB,eAAgB,CAChB,eAAgB,CAChB,qBAA0B,CAC1B,cAAe,CACf,qBAAsB,CACtB,0BAA4B,CAC5B,kBACF,CACA,iFACE,qBACF,CACA,2IAEE,iCAAmC,CACnC,yBACF,CACA,6JAEE,eACF,CACA,8EACE,SACF,CACA,wBACE,oBACF,CACA,0CACE,iBAAkB,CAClB,UAAW,CACX,WAAY,CACZ,qBAA0B,CAC1B,cAAe,CACf,gBAAiB,CACjB,iBAAkB,CAClB,wBAAyB,CACzB,iBAAkB,CAClB,cAAe,CACf,0BAA4B,CAC5B,kBACF,CACA,gDACE,aAAc,CACd,oBACF,CACA,8CACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,WACF,CACA,iDACE,oBACF,CACA,iDACE,oBACF,CACA,gDACE,gBACF,CACA,6LAEE,WACF,CACA,yKAEE,kBAAmB,CACnB,+BACF,CACA,uLAEE,kBACF,CACA,+LAEE,kBACF,CACA,iLAEE,SACF,CACA,uGACE,cACF,CACA,kGACE,gBAAiB,CACjB,cAAe,CACf,yBACF,CACA,yGACE,iBAAkB,CAClB,kBACF,CACA,yGACE,aACF,CACA,oGACE,eAAgB,CAChB,aAAc,CACd,yBACF,CACA,2GACE,gBAAiB,CACjB,iBACF,CACA,+DACE,WAAY,CACZ,wBAAyB,CACzB,+BAAgC,CAChC,yBACF,CACA,sEACE,aAAc,CACd,qBACF,CACA,UACE,6BAA8B,CACtB,qBAAsB,CAC9B,QAAS,CACT,SAAU,CACV,qBAA0B,CAC1B,cAAe,CACf,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CAChB,oCAAqC,CAC7B,mCAA6B,CACrC,iBAAkB,CAClB,eACF,CAKA,iCAHE,aAAc,CACd,UAMF,CAJA,gBAEE,UAEF,CACA,kBACE,iBAAkB,CAClB,UAAW,CACX,MAAO,CACP,SAAU,CACV,6BAA8B,CACtB,qBAAsB,CAC9B,OAAQ,CACR,UAAW,CACX,wBAAyB,CACzB,4BAA6B,CACrB,oBACV,CACA,cACE,eAAkB,CAClB,+BAAgC,CAChC,YAGF,CACA,sCAHE,6DAAqE,CACrE,qDAaF,CAXA,wBACE,iBAAkB,CAClB,6BAA8B,CACtB,qBAAsB,CAC9B,kBAAmB,CACnB,eAAgB,CAChB,cAAe,CACf,kBAAmB,CACnB,kBAGF,CACA,+BACE,aAAc,CACd,UACF,CACA,8BACE,aAAc,CACd,UAAW,CACX,UACF,CACA,kCACE,kBAAmB,CACnB,iBACF,CACA,sCACE,eAAgB,CAChB,eAAgB,CAChB,4BAA6B,CAC7B,kBACF,CACA,wDACE,OAAQ,CACR,WACF,CACA,8DACE,eAAgB,CAChB,eACF,CACA,sCAEE,iBAAkB,CAClB,SAAU,CACV,OAAQ,CACR,WAAY,CACZ,qBAA0B,CAC1B,iBAAkB,CAClB,4BAA6B,CAC7B,QAAS,CACT,cAAe,CACf,SAAU,CACV,+IAAuK,CACvK,uIAA+J,CAC/J,wBAAyB,CACtB,qBAAsB,CACrB,oBAAqB,CACjB,gBAAiB,CACzB,mBACF,CACA,sFAEE,UAAW,CACX,WAAY,CACZ,SAAU,CACV,mBACF,CACA,kDAEE,qBACF,CACA,gDAEE,iBAAkB,CAClB,OAAQ,CACR,QAAS,CACT,eAAiB,CACjB,iBAAkB,CAClB,oCAAoB,CAApB,4BAAoB,CAApB,mBAAoB,CACpB,mBAAoB,CACpB,iBAAkB,CAClB,mBAAoB,CACpB,sCAAwC,CAChC,8BACV,CACA,8DAEE,aAAc,CACd,oBAAqB,CACrB,cACF,CACA,2BACE,kBACF,CACA,4DAEE,qBACF,CACA,mBACE,SACF,CACA,mBACE,MACF,CACA,yBACE,mBAAoB,CACZ,WACV,CACA,mBACE,kBAAmB,CACnB,eACF,CACA,qBACE,eAAgB,CAChB,kBACF,CACA,cACE,iBAAkB,CAClB,oBAAqB,CACrB,6BAA8B,CACtB,qBAAsB,CAC9B,QAAS,CACT,cAAe,CACf,eAAgB,CAChB,uEAA+E,CAC/E,+DAAuE,CACvE,uDAA+D,CAC/D,4GACF,CACA,yCAEE,aAAc,CACd,WACF,CACA,oBACE,UACF,CACA,4BACE,iBAAkB,CAClB,oBAAqB,CACrB,6BAA8B,CACtB,qBAAsB,CAC9B,WAAY,CACZ,iBAAkB,CAClB,cAAe,CACf,oBAAqB,CACrB,cAAe,CACf,2DAAmE,CACnE,mDACF,CACA,mCACE,iBAAkB,CAClB,QAAS,CACT,MAAO,CACP,UAAW,CACX,gCAAiC,CACjC,yBAA0B,CAC1B,0BAA4B,CAC5B,kBAAoB,CACpB,UAAW,CACX,mBACF,CACA,uCACE,cACF,CACA,kCACE,aACF,CACA,mCACE,aACF,CACA,qCACE,iBACF,CACA,mCACE,aAAc,CACd,eAAgB,CAChB,YACF,CACA,gFAEE,qBAA0B,CAC1B,kBACF,CACA,sDACE,cACF,CACA,4CACE,cACF,CACA,sDACE,cACF,CACA,4CACE,aACF,CACA,yBACE,aAAc,CACd,eAAgB,CAChB,UACF,CACA,4BACE,YACF,CACA,mEAEE,UACF,CACA,uGAEE,mBAAoB,CAChB,aAAc,CAClB,UAAW,CACX,kCAAmC,CACnC,SAAU,CACV,+BAAiC,CACjC,uBACF,CACA,yHAEE,QAAS,CACT,mBAAqB,CACrB,eAAgB,CAChB,SAAU,CACV,mBACF,CACA,qIAEE,iBACF,CACA,uHAGE,mBAAoB,CACpB,YAAa,CAGT,sBAAuB,CACnB,kBAAmB,CAC3B,iEAAyE,CACzE,yDAAiE,CACjE,uBACF,CACA,2DAEE,WAAY,CACZ,eACF,CACA,6GAEE,UAAW,CACX,WACF,CACA,uFAEE,aAAc,CACd,UAAW,CACX,eAAkB,CAClB,gBAAiB,CACjB,iBACF,CAKA,2GAEE,iBACF,CACA,qGAEE,UACF,CACA,4MAIE,WACF,CACA,2GAEE,eACF,CACA,6KAEE,cACF,CACA,iGAEE,eACF,CACA,uFAEE,UACF,CACA,+FAEE,KAAM,CACN,WAAY,CACZ,SAAU,CACV,SAAU,CACV,QACF,CACA,iGAEE,OAAQ,CACR,QAAS,CACT,UAAW,CACX,WACF,CACA,iGAEE,KAAM,CACN,UAAW,CACX,WACF,CACA,mEAEE,UAAW,CACX,sBAAwB,CACxB,eACF,CACA,6BACE,UAAW,CACX,iBAAkB,CAClB,eAAgB,CAChB,8BACF,CAIA,qGACE,iBACF,CACA,+CACE,SACF,CACA,iCACE,iBAAkB,CAClB,6BACF,CACA,8BACE,WAAY,CACZ,eAAgB,CAChB,gBAAiB,CACjB,6BACF,CAIA,uGACE,gBACF,CACA,gDACE,QACF,CACA,kCACE,kBAAmB,CACnB,8BACF,CACA,qFAEE,wJAAgL,CAChL,gJAAwK,CACxK,wIAAgK,CAChK,6LACF,CACA,qFAEE,wJAAgL,CAChL,gJAAwK,CACxK,wIAAgK,CAChK,6LACF,CACA,0HAEE,uBAAyB,CACzB,gCAAkC,CAC1B,wBACV,CACA,0HAEE,QAAS,CACT,mBAAqB,CACrB,eAAgB,CAChB,SAAU,CACV,mBACF,CACA,sIAEE,iBACF,CACA,qGAEE,uBAAyB,CACzB,gCAAkC,CAC1B,wBACV,CACA,qGAEE,QAAS,CACT,mBAAqB,CACrB,eAAgB,CAChB,SAAU,CACV,mBACF,CACA,iHAEE,iBACF,CACA,cACE,aACF,CACA,gCACE,OAAQ,CACR,SACF,CACA,iCACE,UAAW,CACX,QACF,CACA,iCACE,SAAU,CACV,SACF,CACA,0CACE,iBACF,CACA,mDACE,cAAe,CACf,eACF,CACA,iHAEE,eACF,CACA,6GAEE,eACF,CACA,6DACE,UAAW,CACX,QACF,CACA,wFACE,gBAAiB,CACjB,gBACF,CACA,sCACE,oBACF,CAxoBA,cACE,6BAA8B,CACtB,qBAAsB,CAC9B,QAAS,CACT,SAAU,CACV,qBAA0B,CAC1B,cAAe,CACf,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CAChB,oCAAqC,CAC7B,mCAA6B,CACrC,wBAAyB,CACzB,wBAAyB,CACzB,eAAgB,CAChB,iBACF,CACA,iCACE,+BACF,CACA,6GAEE,yBACF,CACA,sDACE,iBAAkB,CAElB,2BAAkB,CAClB,qBAA0B,CAC1B,gBAAiB,CACjB,cAAe,CACf,0BAA4B,CAC5B,kBACF,CACA,6DACE,aAAc,CACd,UACF,CACA,4DACE,aAAc,CACd,UAAW,CACX,UACF,CACA,0EACE,aAAc,CACd,iBAAkB,CAClB,aAAc,CACd,iBAAkB,CAClB,mBAAoB,CACpB,sBAAwB,CACxB,iCAAkC,CAClC,kCAAmC,CACnC,iCAAkC,CAClC,iBAAkB,CAClB,OAAQ,CACR,SAAU,CACV,oBAAqB,CACrB,cAAe,CACf,kCAAmC,CAC3B,0BACV,CACA,4EACE,aACF,CACA,8EACE,oBACF,CACA,iFACE,YACF,CACA,yJACE,aACF,CACA,8EACE,yCAA2C,CAC3C,iCAAmC,CACnC,yBAA2B,CAC3B,gDACF,CACA,0EACE,WACF,CACA,4DACE,YACF,CACA,4EACE,iBACF,CACA,0EAEE,2BACF,CACA,8FACE,UAAW,CACX,SACF,CACA,0BACE,2DAAmE,CACnE,mDACF,CACA,sBACE,eAAgB,CAChB,qBAA0B,CAC1B,qBAAsB,CACtB,4BACF,CACA,gDACE,YACF,CACA,+BACE,YACF,CACA,oDACE,yBACF,CACA,yBACE,wBAAyB,CACzB,QACF,CACA,4CACE,+BACF,CACA,mIAEE,eACF,CACA,kEACE,4BAA6B,CAC7B,YACF,CACA,4FACE,eACF,CACA,qIAEE,qBAA0B,CAC1B,kBACF,CACA,kBACE,aACF,CACA,wEAEE,2BACF,CACA,+FACE,gCAAiC,CACzB,wBACV,CACA,2FACE,UACF,CACA,6FACE,kBAAmB,CACnB,cACF,CA3JA,yBACE,iBAAkB,CAClB,oBAAqB,CACrB,UAAW,CACX,WAAY,CAEZ,qBAA0B,CAC1B,cAAe,CACf,kBAAmB,CACnB,qBAAsB,CACtB,qBAAsB,CACtB,wBAAyB,CACzB,iBAAkB,CAClB,0BAA4B,CAC5B,kBAAoB,CAEpB,0BAA2B,CAC3B,mBAAoB,CACpB,WAAY,CAEZ,cACF,CACA,2CACE,SACF,CACA,oDACE,aACF,CACA,+CACE,aACF,CACA,gDACE,aACF,CACA,sCACE,aACF,CACA,2CACE,sBACF,CACA,+BACE,oBAAqB,CACrB,gCACF,CACA,8CACE,oBAAqB,CACrB,+BACF,CACA,gEAEE,oBAAqB,CACrB,gCAAkC,CAClC,SAAU,CACV,gDAAqD,CAC7C,wCACV,CACA,8FAEE,oBAAqB,CACrB,+BACF,CACA,kCACE,qBAA0B,CAC1B,wBAAyB,CACzB,kBAAmB,CACnB,SACF,CACA,wCACE,oBAAqB,CACrB,gCACF,CACA,mCACE,qBAA0B,CAC1B,wBAAyB,CACzB,kBAAmB,CACnB,SACF,CACA,yCACE,oBAAqB,CACrB,gCACF,CACA,iCACE,cAAe,CACf,WAAY,CACZ,eAAgB,CAChB,kBAAmB,CACnB,qBAAsB,CACtB,oCAAuC,CACvC,4BACF,CACA,4BACE,kBAAmB,CACnB,cACF,CACA,4BACE,aACF,CACA,6BACE,aACF,CACA,4BACE,WAAY,CACZ,aAAc,CACd,gBACF,CACA,4BACE,WAAY,CACZ,aAAc,CACd,gBACF,CACA,uDACE,sBACF,CACA,yCACE,eAAgB,CAChB,cAAe,CACf,WAAY,CACZ,YACF,CACA,+CACE,uBAAwB,CAChB,eACV,CACA,gCACE,OAAQ,CACR,iBAAkB,CAClB,aACF,CACA,oCAGE,mBAAoB,CACpB,YAAa,CAET,aAAc,CACV,SAAU,CAEd,qBAAsB,CAClB,kBACV,CACA,kBACE,gBACF,CACA,kBACE,eACF,CACA,sBACE,qBAA0B,CAC1B,cAAe,CACf,cAAe,CACf,4BAA8B,CAC9B,oBAAsB,CACtB,YAAa,CACb,mBACF,CACA,4BACE,qBACF,CACA,6BACE,qBACF,CACA,wBACE,eACF,CACA,6BACE,iBACF,CACA,iCACE,cACF,CACA,iDACE,mBAAqB,CACrB,kBACF,CACA,+BACE,qBAA0B,CAC1B,cAAe,CACf,cAAe,CACf,4BAA8B,CAC9B,oBAAsB,CACtB,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,kBACF,CACA,qCACE,qBACF,CACA,sCACE,qBACF,CACA,iCACE,eACF,CACA,sCACE,iBACF,CACA,WACE,6BAA8B,CACtB,qBAAsB,CAC9B,QAAS,CAET,yBAA0B,CAC1B,eAAgB,CAChB,oCAAqC,CAC7B,mCAA6B,CACrC,iBAAkB,CAClB,oBAAqB,CACrB,UAAW,CACX,WAAY,CACZ,gBAAiB,CACjB,qBAA0B,CAC1B,cAAe,CACf,kBAAmB,CACnB,qBAAsB,CACtB,qBAAsB,CACtB,wBAAyB,CACzB,iBAAkB,CAClB,0BAA4B,CAC5B,kBACF,CACA,6BACE,SACF,CACA,sCACE,aACF,CACA,iCACE,aACF,CACA,kCACE,aACF,CACA,wBACE,aACF,CACA,6BACE,sBACF,CACA,iBACE,oBAAqB,CACrB,gCACF,CACA,gCACE,oBAAqB,CACrB,+BACF,CACA,oCAEE,oBAAqB,CACrB,gCAAkC,CAClC,SAAU,CACV,gDAAqD,CAC7C,wCACV,CACA,kEAEE,oBAAqB,CACrB,+BACF,CACA,oBACE,qBAA0B,CAC1B,wBAAyB,CACzB,kBAAmB,CACnB,SACF,CACA,0BACE,oBAAqB,CACrB,gCACF,CACA,qBACE,qBAA0B,CAC1B,wBAAyB,CACzB,kBAAmB,CACnB,SACF,CACA,2BACE,oBAAqB,CACrB,gCACF,CACA,mBACE,cAAe,CACf,WAAY,CACZ,eAAgB,CAChB,kBAAmB,CACnB,qBAAsB,CACtB,oCAAuC,CACvC,4BACF,CACA,cACE,kBAAmB,CACnB,cACF,CACA,cACE,aACF,CACA,eACE,aACF,CACA,iBACE,6BAA8B,CACtB,qBAAsB,CAC9B,QAAS,CACT,SAAU,CACV,qBAA0B,CAC1B,cAAe,CACf,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CAChB,oCAAqC,CAC7B,mCAA6B,CACrC,iBAAkB,CAClB,aAAc,CACd,UAAW,CACX,wBAAyB,CACzB,gBACF,CACA,8BACE,UAAW,CACX,eAAgB,CAChB,cACF,CACA,+BACE,iBACF,CACA,0CACE,eACF,CACA,yEAGE,kBACF,CACA,kLAGE,eACF,CACA,6CAEE,SAAU,CACV,kBAAmB,CACnB,qBACF,CACA,wBACE,uBACF,CACA,4BACE,UAAW,CACX,UAAW,CACX,eAAgB,CAChB,kBACF,CAKA,oEACE,SAAU,CACV,sBACF,CACA,uBACE,iBAAkB,CAClB,cAAe,CACf,qBAA0B,CAC1B,eAAmB,CACnB,cAAe,CACf,iBAAkB,CAClB,wBAAyB,CACzB,wBAAyB,CACzB,iBAAkB,CAClB,0BAA4B,CAC5B,kBACF,CACA,mCACE,iBACF,CACA,2GACE,wBAAyB,CACzB,4BAA6B,CAC7B,uBAAwB,CAChB,eACV,CACA,6HAEE,aACF,CACA,0CACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,QAAS,CACT,MAAO,CACP,UACF,CAMA,wNAEE,yBAA0B,CAC1B,4BACF,CACA,uEACE,wBAAyB,CACzB,2BACF,CACA,sEACE,yBAA0B,CAC1B,4BACF,CACA,mCACE,cACF,CACA,kCACE,aACF,CAMA,oNAEE,wBAAyB,CACzB,2BACF,CACA,0EAEE,kBAAmB,CACnB,cACF,CACA,0EAEE,aACF,CACA,4DACE,WACF,CACA,4DACE,WACF,CACA,4DACE,wBAAyB,CACzB,2BACF,CACA,2DACE,yBAA0B,CAC1B,4BACF,CACA,yCACE,aACF,CACA,gDACE,aAAc,CACd,UACF,CACA,+CACE,aAAc,CACd,UAAW,CACX,UACF,CACA,0PAGE,sBACF,CAMA,whBAGE,SACF,CACA,2CACE,oBAAqB,CACrB,UAAW,CACX,kBAAmB,CACnB,eACF,CAMA,6HAEE,0BAA2B,CAC3B,mBACF,CACA,2DACE,iBAAkB,CAClB,sBACF,CACA,oDACE,UACF,CACA,0hBAOE,sBAAuB,CACvB,eACF,CAmBA,+sCACE,SACF,CACA,2kBAOE,0BAA2B,CAC3B,6BACF,CACA,gqBAQE,sBAAuB,CACvB,2BAA4B,CAC5B,8BACF,CACA,8EACE,kBACF,CACA,oGAEE,iBAAkB,CAClB,wBAAyB,CACzB,2BACF,CACA,wDACE,8BAA+B,CAC/B,aACF,CACA,uDACE,cAAe,CACf,6BACF,CACA,mHAEE,iBAAkB,CAClB,yBAA0B,CAC1B,4BACF,CACA,+EACE,cAAe,CACf,gBAAiB,CACjB,qBACF,CACA,utBAOE,wBAAyB,CACzB,2BAA4B,CAC5B,8BAA+B,CAC/B,2BACF,CACA,g0BAQE,qBAAsB,CACtB,0BAA2B,CAC3B,yBAA0B,CAC1B,4BAA6B,CAC7B,6BACF,CACA,yBACE,oBAAqB,CACrB,UAAW,CACX,gBAAiB,CACjB,kBACF,CACA,yBACE,qBAA0B,CAC1B,cAAe,CACf,0BAA4B,CAC5B,kBACF,CACA,+BACE,qBACF,CACA,uBACE,WACF,CACA,oCACE,WACF,CACA,oCACE,WAAY,CACZ,eAAgB,CAChB,kBACF,CACA,uBACE,qBAA0B,CAC1B,cAAe,CACf,0BAA4B,CAC5B,kBACF,CACA,6BACE,qBACF,CAQA,4FACE,cACF,CACA,kHAEE,SAAU,CACV,QACF,CACA,oKAEE,wBAAyB,CACzB,2BACF,CAIA,kDACE,aACF,CACA,+CACE,gBACF,CACA,+CACE,gBACF,CACA,sBACE,aACF,CACA,0DACE,wBAAyB,CACzB,aACF,CACA,sFAEE,oBACF,CACA,8MAEE,UAAW,CACX,0BAA2B,CAC3B,yBAA0B,CAC1B,4BAA6B,CAC7B,6BACF,CAtrBA,kBACE,6BAA8B,CACtB,qBAAsB,CAC9B,yBAA0B,CAC1B,eAAgB,CAChB,oCAAqC,CAC7B,mCAA6B,CACrC,iBAAkB,CAClB,UAAW,CACX,WAAY,CAEZ,qBAA0B,CAC1B,cAAe,CACf,kBAAmB,CACnB,qBAAsB,CACtB,qBAAsB,CACtB,0BAA4B,CAC5B,kBAAoB,CACpB,oBAAqB,CACrB,UAAW,CACX,QAAS,CACT,SAAU,CACV,wBAAyB,CACzB,iBACF,CACA,oCACE,SACF,CACA,6CACE,aACF,CACA,wCACE,aACF,CACA,yCACE,aACF,CACA,+BACE,aACF,CACA,oCACE,sBACF,CAKA,kDAEE,oBAAqB,CACrB,gCAAkC,CAClC,SAAU,CACV,gDAAqD,CAC7C,wCACV,CAWA,4BACE,qBAA0B,CAC1B,wBAAyB,CACzB,kBAAmB,CACnB,SACF,CACA,kCACE,oBAAqB,CACrB,gCACF,CACA,0BACE,cAAe,CACf,WAAY,CACZ,eAAgB,CAChB,kBAAmB,CACnB,qBAAsB,CACtB,oCAAuC,CACvC,4BACF,CACA,qBACE,kBAEF,CACA,qBACE,aACF,CACA,0BACE,iBAAkB,CAClB,aAAc,CACd,UAAW,CACX,UAAW,CACX,eAAgB,CAChB,qBAA0B,CAC1B,eAAiB,CACjB,aAAc,CACd,iBAAkB,CAClB,iCAAmC,CACnC,yBACF,CACA,iCACE,kBACF,CACA,wIAEE,aACF,CACA,wEAEE,oBAAqB,CACrB,aAAc,CACd,iBAAkB,CAClB,aAAc,CACd,iBAAkB,CAClB,mBAAoB,CACpB,sBAAwB,CACxB,iCAAkC,CAClC,kCAAmC,CACnC,iCAAkC,CAClC,iBAAkB,CAClB,SAAU,CACV,UAAW,CACX,WAAY,CACZ,qBAA0B,CAC1B,gBAAiB,CACjB,iCAAmC,CACnC,yBAA2B,CAC3B,wBAAyB,CACtB,qBAAsB,CACrB,oBAAqB,CACjB,gBACV,CACA,4EAEE,aACF,CACA,gFAEE,oBACF,CACA,sFAEE,YACF,CACA,oTAIE,aACF,CACA,wBACE,oBAAqB,CACrB,gCACF,CACA,qDACE,SAAU,CACV,2CAA8C,CAC9C,mCACF,CACA,0BACE,oBAAqB,CACrB,gCAAkC,CAClC,SAAU,CACV,gDAAqD,CAC7C,wCACV,CACA,2BACE,qBAA0B,CAC1B,wBAAyB,CACzB,kBAAmB,CACnB,SACF,CACA,iCACE,oBAAqB,CACrB,gCACF,CACA,mDACE,kBACF,CACA,0DACE,YACF,CACA,wBACE,UAAW,CACX,WAAY,CACZ,cAAe,CACf,eAAgB,CAChB,4BAA6B,CAC7B,QAAS,CACT,iBAAkB,CAClB,SAAU,CACV,iCAAmC,CACnC,yBAA2B,CAC3B,mCACF,CACA,0CACE,SACF,CACA,mDACE,aACF,CACA,8CACE,aACF,CACA,+CACE,aACF,CACA,qCACE,aACF,CACA,0CACE,sBACF,CACA,gIAEE,QAAS,CACT,uBACF,CACA,qBACE,SAAU,CACV,cACF,CACA,2BACE,WACF,CACA,qBACE,SACF,CACA,2BACE,WAAY,CACZ,aACF,CACA,+BACE,iBAAkB,CAClB,KAAM,CACN,OAAQ,CACR,UAAW,CACX,WAAY,CACZ,eAAgB,CAChB,6BAA8B,CAC9B,yBAA0B,CAC1B,SAAU,CACV,0CAA6C,CAC7C,kCACF,CACA,0LAEE,oBAAqB,CACrB,aAAc,CACd,cAAe,CACf,cACF,CACA,+DACE,UACF,CACA,uDACE,SACF,CACA,6BACE,2BAA4B,CAC5B,cACF,CACA,mCACE,OAAQ,CACR,eAAgB,CAChB,iBACF,CACA,mCACE,oBACF,CACA,+BACE,KAAM,CACN,4BAA6B,CAC7B,8BAA+B,CAC/B,cACF,CACA,qCACE,OAAQ,CACR,eAAgB,CAChB,iBACF,CACA,qCACE,oBACF,CACA,8EAEE,kBACF,CACA,kKAEE,qBACF,CACA,sBACE,aACF,CACA,qDACE,UAAW,CACX,MAAO,CACP,8BAA+B,CAC/B,aAAc,CACd,yBACF,CACA,8CACE,aAAc,CACd,gBACF,CArTA,gBACE,6BAA8B,CACtB,qBAAsB,CAC9B,QAAS,CACT,SAAU,CACV,qBAA0B,CAC1B,yBAA0B,CAC1B,kBAAmB,CACnB,eAAgB,CAChB,oCAAqC,CAC7B,mCAA6B,CACrC,qBAA0B,CAC1B,cACF,CACA,yBACE,cACF,CACA,kBACE,qBAA0B,CAC1B,4BAA8B,CAC9B,oBACF,CACA,wBACE,aACF,CAIA,kEACE,qBACF,CACA,0DACE,YACF,CACA,0BACE,YAAa,CACb,qBACF,CAIA,yEACE,eACF,CACA,oBACE,aACF,CACA,2BACE,aAAc,CACd,UACF,CACA,0BACE,aAAc,CACd,UAAW,CACX,UACF,CACA,yBACE,WACF,CAKA,iHACE,gBAAiB,CACjB,aACF","file":"2.122cefa8.chunk.css","sourcesContent":["/* stylelint-disable at-rule-empty-line-before,at-rule-name-space-after,at-rule-no-unknown */\n/* stylelint-disable no-duplicate-selectors */\n/* stylelint-disable */\n/* stylelint-disable declaration-bang-space-before,no-duplicate-selectors,string-no-newline */\n.ant-breadcrumb {\n -webkit-box-sizing: border-box;\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n color: rgba(0, 0, 0, 0.65);\n font-variant: tabular-nums;\n line-height: 1.5715;\n list-style: none;\n -webkit-font-feature-settings: 'tnum';\n font-feature-settings: 'tnum';\n color: rgba(0, 0, 0, 0.45);\n font-size: 14px;\n}\n.ant-breadcrumb .anticon {\n font-size: 14px;\n}\n.ant-breadcrumb a {\n color: rgba(0, 0, 0, 0.45);\n -webkit-transition: color 0.3s;\n transition: color 0.3s;\n}\n.ant-breadcrumb a:hover {\n color: #40a9ff;\n}\n.ant-breadcrumb > span:last-child {\n color: rgba(0, 0, 0, 0.65);\n}\n.ant-breadcrumb > span:last-child a {\n color: rgba(0, 0, 0, 0.65);\n}\n.ant-breadcrumb > span:last-child .ant-breadcrumb-separator {\n display: none;\n}\n.ant-breadcrumb-separator {\n margin: 0 8px;\n color: rgba(0, 0, 0, 0.45);\n}\n.ant-breadcrumb-link > .anticon + span {\n margin-left: 4px;\n}\n.ant-breadcrumb-overlay-link > .anticon {\n margin-left: 4px;\n}\n.ant-breadcrumb-rtl {\n direction: rtl;\n}\n.ant-breadcrumb-rtl::before {\n display: table;\n content: '';\n}\n.ant-breadcrumb-rtl::after {\n display: table;\n clear: both;\n content: '';\n}\n.ant-breadcrumb-rtl > span {\n float: right;\n}\n.ant-breadcrumb-rtl .ant-breadcrumb-link > .anticon + span {\n margin-right: 4px;\n margin-left: 0;\n}\n.ant-breadcrumb-rtl .ant-breadcrumb-overlay-link > .anticon {\n margin-right: 4px;\n margin-left: 0;\n}\n"]} \ No newline at end of file diff --git a/client/build/static/css/main.e2c5255b.chunk.css b/client/build/static/css/main.e2c5255b.chunk.css new file mode 100644 index 0000000000000000000000000000000000000000..d21ec46986a12f6d531baff46084a9106214510d --- /dev/null +++ b/client/build/static/css/main.e2c5255b.chunk.css @@ -0,0 +1,2 @@ +.float-left{float:left}.float-right{float:right}.clearfix:after{clear:both}.p-0{padding:0}.p-10{padding:10px}.p-20{padding:20px}.pt-10{padding-top:10px}.pt-20{padding-top:20px}.pb-10{padding-bottom:10px}.pb-20{padding-bottom:20px}.pl-10{padding-left:10px}.pl-20{padding-left:20px}.pr-10{padding-right:10px}.pr-20{padding-right:20px}.m-0{margin:0}.m-10{margin:10px}.m-20{margin:20px}.mt-10{margin-top:10px}.mt-20{margin-top:20px}.mb-10{margin-bottom:10px}.mb-20{margin-bottom:20px}.ml-10{margin-left:10px}.ml-20{margin-left:20px}.mr-10{margin-right:10px}.mr-20{margin-right:20px}.cursor-pointer{cursor:pointer}kbd{background-color:#333;color:#fff;border-radius:.2rem;padding:.1rem}pre{background-color:#f2f2f2;padding:.4rem;border-radius:.4rem}.d-flex{display:flex}.flex-1{flex:1 1}.flex-row{flex-direction:row!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column{flex-direction:column!important}.flex-column-reverse{flex-direction:column-reverse!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.bg-fff{background-color:#fff}body,p{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,"Courier New",monospace;background-color:#f2f2f2;padding:.1rem;border-radius:.1rem}blockquote{background-color:#f8f8f8;border-left:3px solid #ddd;padding:10px}blockquote p{margin:0}.header{background-color:#fff!important}.ace_gutter-cell.ace_error{background-image:none!important}.img-warp img{max-width:100%} +/*# sourceMappingURL=main.e2c5255b.chunk.css.map */ \ No newline at end of file diff --git a/client/build/static/css/main.e2c5255b.chunk.css.map b/client/build/static/css/main.e2c5255b.chunk.css.map new file mode 100644 index 0000000000000000000000000000000000000000..970dee0bda9224b77470b524275cc4702e734496 --- /dev/null +++ b/client/build/static/css/main.e2c5255b.chunk.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["util.css","index.css"],"names":[],"mappings":"AAAA,YACE,UACF,CAEA,aACE,WACF,CAEA,gBACE,UACF,CAEA,KACE,SACF,CAEA,MACE,YACF,CAEA,MACE,YACF,CAEA,OACE,gBACF,CAEA,OACE,gBACF,CAEA,OACE,mBACF,CAEA,OACE,mBACF,CAEA,OACE,iBACF,CAEA,OACE,iBACF,CAEA,OACE,kBACF,CAEA,OACE,kBACF,CAEA,KACE,QACF,CAEA,MACE,WACF,CAEA,MACE,WACF,CAEA,OACE,eACF,CAEA,OACE,eACF,CAEA,OACE,kBACF,CAEA,OACE,kBACF,CAEA,OACE,gBACF,CAEA,OACE,gBACF,CAEA,OACE,iBACF,CAEA,OACE,iBACF,CAEA,gBACE,cACF,CAEA,IACE,qBAAsB,CACtB,UAAW,CACX,mBAAoB,CACpB,aACF,CAEA,IACE,wBAAyB,CACzB,aAAc,CACd,mBACF,CAEA,QACE,YACF,CAEA,QACE,QACF,CAEA,UACE,4BACF,CAEA,kBACE,oCACF,CAEA,aACE,+BACF,CAEA,qBACE,uCACF,CAEA,uBACE,oCACF,CAEA,qBACE,kCACF,CAEA,wBACE,gCACF,CAEA,yBACE,uCACF,CAEA,wBACE,sCACF,CAEA,mBACE,gCACF,CAEA,iBACE,8BACF,CAEA,oBACE,4BACF,CAEA,sBACE,8BACF,CAEA,qBACE,6BACF,CAEA,QACE,qBACF,CCtLA,OACE,QAAS,CACT,mJAA8J,CAC9J,kCAAmC,CACnC,iCACF,CAEA,KACE,yEAA+E,CAC/E,wBAAyB,CACzB,aAAc,CACd,mBACF,CAEA,WACE,wBAAyB,CACzB,0BAA2B,CAC3B,YACF,CAEA,aACE,QACF,CAEA,QACE,+BACF,CAIA,2BACE,+BACF,CAEA,cACE,cACF","file":"main.e2c5255b.chunk.css","sourcesContent":[".float-left {\r\n float: left;\r\n}\r\n\r\n.float-right {\r\n float: right;\r\n}\r\n\r\n.clearfix::after {\r\n clear: both;\r\n}\r\n\r\n.p-0 {\r\n padding: 0;\r\n}\r\n\r\n.p-10 {\r\n padding: 10px;\r\n}\r\n\r\n.p-20 {\r\n padding: 20px;\r\n}\r\n\r\n.pt-10 {\r\n padding-top: 10px;\r\n}\r\n\r\n.pt-20 {\r\n padding-top: 20px;\r\n}\r\n\r\n.pb-10 {\r\n padding-bottom: 10px;\r\n}\r\n\r\n.pb-20 {\r\n padding-bottom: 20px;\r\n}\r\n\r\n.pl-10 {\r\n padding-left: 10px;\r\n}\r\n\r\n.pl-20 {\r\n padding-left: 20px;\r\n}\r\n\r\n.pr-10 {\r\n padding-right: 10px;\r\n}\r\n\r\n.pr-20 {\r\n padding-right: 20px;\r\n}\r\n\r\n.m-0 {\r\n margin: 0;\r\n}\r\n\r\n.m-10 {\r\n margin: 10px;\r\n}\r\n\r\n.m-20 {\r\n margin: 20px;\r\n}\r\n\r\n.mt-10 {\r\n margin-top: 10px;\r\n}\r\n\r\n.mt-20 {\r\n margin-top: 20px;\r\n}\r\n\r\n.mb-10 {\r\n margin-bottom: 10px;\r\n}\r\n\r\n.mb-20 {\r\n margin-bottom: 20px;\r\n}\r\n\r\n.ml-10 {\r\n margin-left: 10px;\r\n}\r\n\r\n.ml-20 {\r\n margin-left: 20px;\r\n}\r\n\r\n.mr-10 {\r\n margin-right: 10px;\r\n}\r\n\r\n.mr-20 {\r\n margin-right: 20px;\r\n}\r\n\r\n.cursor-pointer {\r\n cursor: pointer;\r\n}\r\n\r\nkbd {\r\n background-color: #333;\r\n color: #fff;\r\n border-radius: .2rem;\r\n padding: .1rem;\r\n}\r\n\r\npre {\r\n background-color: #f2f2f2;\r\n padding: .4rem;\r\n border-radius: .4rem;\r\n}\r\n\r\n.d-flex {\r\n display: flex;\r\n}\r\n\r\n.flex-1 {\r\n flex: 1;\r\n}\r\n\r\n.flex-row {\r\n flex-direction: row !important;\r\n}\r\n\r\n.flex-row-reverse {\r\n flex-direction: row-reverse !important;\r\n}\r\n\r\n.flex-column {\r\n flex-direction: column !important;\r\n}\r\n\r\n.flex-column-reverse {\r\n flex-direction: column-reverse !important;\r\n}\r\n\r\n.justify-content-start {\r\n justify-content: flex-start !important;\r\n}\r\n\r\n.justify-content-end {\r\n justify-content: flex-end !important;\r\n}\r\n\r\n.justify-content-center {\r\n justify-content: center !important;\r\n}\r\n\r\n.justify-content-between {\r\n justify-content: space-between !important;\r\n}\r\n\r\n.justify-content-around {\r\n justify-content: space-around !important;\r\n}\r\n\r\n.align-items-start {\r\n align-items: flex-start !important;\r\n}\r\n\r\n.align-items-end {\r\n align-items: flex-end !important;\r\n}\r\n\r\n.align-items-center {\r\n align-items: center !important;\r\n}\r\n\r\n.align-items-baseline {\r\n align-items: baseline !important;\r\n}\r\n\r\n.align-items-stretch {\r\n align-items: stretch !important;\r\n}\r\n\r\n.bg-fff {\r\n background-color: #fff;\r\n}","@import \"./util.css\";\r\nbody, p {\r\n margin: 0;\r\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;\r\n -webkit-font-smoothing: antialiased;\r\n -moz-osx-font-smoothing: grayscale;\r\n}\r\n\r\ncode {\r\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace;\r\n background-color: #f2f2f2;\r\n padding: .1rem;\r\n border-radius: .1rem;\r\n}\r\n\r\nblockquote {\r\n background-color: #f8f8f8;\r\n border-left: 3px #ddd solid;\r\n padding: 10px;\r\n}\r\n\r\nblockquote p {\r\n margin: 0;\r\n}\r\n\r\n.header {\r\n background-color: #fff !important;\r\n}\r\n\r\n/* 去掉json编辑器的错误图标 */\r\n\r\n.ace_gutter-cell.ace_error {\r\n background-image: none !important;\r\n}\r\n\r\n.img-warp img {\r\n max-width: 100%;\r\n}"]} \ No newline at end of file diff --git a/client/build/static/js/2.2e50700e.chunk.js b/client/build/static/js/2.2e50700e.chunk.js new file mode 100644 index 0000000000000000000000000000000000000000..d71246851be6e7a8c65d578d0f33c2fd2f5b5e7a --- /dev/null +++ b/client/build/static/js/2.2e50700e.chunk.js @@ -0,0 +1,3 @@ +/*! For license information please see 2.2e50700e.chunk.js.LICENSE.txt */ +(this.webpackJsonpclient=this.webpackJsonpclient||[]).push([[2],[function(e,t,n){"use strict";e.exports=n(423)},function(e,t,n){var r;!function(){"use strict";var n={}.hasOwnProperty;function o(){for(var e=[],t=0;t0&&(E=r.createElement(o.b,{validateMessages:O},a)),r.createElement(b.a,{size:d},r.createElement(v.b.Provider,{value:x},r.createElement(y,{locale:p||n,_ANT_MARK__:"internalMark"},E)))},e}return n=c,(i=[{key:"render",value:function(){var e=this;return r.createElement(m.a,null,(function(t,n,o){return r.createElement(v.a,null,(function(t){return e.renderProvider(t,o)}))}))}}])&&E(n.prototype,i),a&&E(n,a),c}(r.Component);t.a=A},function(e,t,n){"use strict";var r=n(0),o=n(1),i=n.n(o),a=n(9),u=n(31);var c=function e(t){return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),new Error("unreachable case: ".concat(JSON.stringify(t)))};function s(){return(s=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n2),"Button","`icon` is using ReactNode instead of string naming in v4. Please check `".concat(D,"` at https://ant.design/components/icon"));var T=v("btn",o),F=!1!==b,N="";switch(p||e){case"large":N="lg";break;case"small":N="sm"}var M=c?"loading":D,I=i()(T,d,(C(t={},"".concat(T,"-").concat(u),u),C(t,"".concat(T,"-").concat(l),l),C(t,"".concat(T,"-").concat(N),N),C(t,"".concat(T,"-icon-only"),!m&&0!==m&&M),C(t,"".concat(T,"-background-ghost"),A),C(t,"".concat(T,"-loading"),c),C(t,"".concat(T,"-two-chinese-chars"),f&&F),C(t,"".concat(T,"-block"),k),C(t,"".concat(T,"-dangerous"),!!s),C(t,"".concat(T,"-rtl"),"rtl"===g),t)),R=D&&!c?D:r.createElement(E,{existIcon:!!D,prefixCls:T,loading:c}),B=m||0===m?_(m,x()&&F):null,L=Object(a.a)(j,["htmlType","loading"]);if(void 0!==L.href)return r.createElement("a",O({},L,{className:I,onClick:S,ref:w}),R,B);var z=j,U=z.htmlType,H=P(z,["htmlType"]),V=r.createElement("button",O({},Object(a.a)(H,["loading"]),{type:U,className:I,onClick:S,ref:w}),R,B);return"link"===u?V:r.createElement(h.a,null,V)}))};T.defaultProps={loading:!1,ghost:!1,block:!1,htmlType:"button"},T.Group=p,T.__ANT_BUTTON=!0;var F=T;t.a=F},function(e,t,n){"use strict";!function e(){if("undefined"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"===typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE){0;try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}}(),e.exports=n(424)},function(e,t,n){"use strict";var r={MAC_ENTER:3,BACKSPACE:8,TAB:9,NUM_CENTER:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESC:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT:37,UP:38,RIGHT:39,DOWN:40,PRINT_SCREEN:44,INSERT:45,DELETE:46,ZERO:48,ONE:49,TWO:50,THREE:51,FOUR:52,FIVE:53,SIX:54,SEVEN:55,EIGHT:56,NINE:57,QUESTION_MARK:63,A:65,B:66,C:67,D:68,E:69,F:70,G:71,H:72,I:73,J:74,K:75,L:76,M:77,N:78,O:79,P:80,Q:81,R:82,S:83,T:84,U:85,V:86,W:87,X:88,Y:89,Z:90,META:91,WIN_KEY_RIGHT:92,CONTEXT_MENU:93,NUM_ZERO:96,NUM_ONE:97,NUM_TWO:98,NUM_THREE:99,NUM_FOUR:100,NUM_FIVE:101,NUM_SIX:102,NUM_SEVEN:103,NUM_EIGHT:104,NUM_NINE:105,NUM_MULTIPLY:106,NUM_PLUS:107,NUM_MINUS:109,NUM_PERIOD:110,NUM_DIVISION:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,NUMLOCK:144,SEMICOLON:186,DASH:189,EQUALS:187,COMMA:188,PERIOD:190,SLASH:191,APOSTROPHE:192,SINGLE_QUOTE:222,OPEN_SQUARE_BRACKET:219,BACKSLASH:220,CLOSE_SQUARE_BRACKET:221,WIN_KEY:224,MAC_FF_META:224,WIN_IME:229,isTextModifyingKeyEvent:function(e){var t=e.keyCode;if(e.altKey&&!e.ctrlKey||e.metaKey||t>=r.F1&&t<=r.F12)return!1;switch(t){case r.ALT:case r.CAPS_LOCK:case r.CONTEXT_MENU:case r.CTRL:case r.DOWN:case r.END:case r.ESC:case r.HOME:case r.INSERT:case r.LEFT:case r.MAC_FF_META:case r.META:case r.NUMLOCK:case r.NUM_CENTER:case r.PAGE_DOWN:case r.PAGE_UP:case r.PAUSE:case r.PRINT_SCREEN:case r.RIGHT:case r.SHIFT:case r.UP:case r.WIN_KEY:case r.WIN_KEY_RIGHT:return!1;default:return!0}},isCharacterKey:function(e){if(e>=r.ZERO&&e<=r.NINE)return!0;if(e>=r.NUM_ZERO&&e<=r.NUM_MULTIPLY)return!0;if(e>=r.A&&e<=r.Z)return!0;if(-1!==window.navigator.userAgent.indexOf("WebKit")&&0===e)return!0;switch(e){case r.SPACE:case r.QUESTION_MARK:case r.NUM_PLUS:case r.NUM_MINUS:case r.NUM_PERIOD:case r.NUM_DIVISION:case r.SEMICOLON:case r.DASH:case r.EQUALS:case r.COMMA:case r.PERIOD:case r.SLASH:case r.APOSTROPHE:case r.SINGLE_QUOTE:case r.OPEN_SQUARE_BRACKET:case r.BACKSLASH:case r.CLOSE_SQUARE_BRACKET:return!0;default:return!1}}};t.a=r},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(181);function o(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(r=(a=u.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(c){o=!0,i=c}finally{try{r||null==u.return||u.return()}finally{if(o)throw i}}return n}}(e,t)||Object(r.a)(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}},function(e,t,n){"use strict";var r=n(3),o=n.n(r);t.a=function(e,t){for(var n=o()({},e),r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function x(e){return(x="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function E(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function O(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function C(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function D(e,t){for(var n=0;n=o&&(t.updateKey=u[0].notice.updateKey||u[0].notice.key,u.shift()),u.push({notice:t,holderCallback:n})),{notices:u}}))},e.remove=function(t){e.setState((function(e){return{notices:e.notices.filter((function(e){return e.notice.key!==t}))}}))},e}var n,r,i;return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&P(e,t)}(t,e),n=t,(r=[{key:"getTransitionName",value:function(){var e=this.props,t=e.prefixCls,n=e.animation,r=this.props.transitionName;return!r&&n&&(r="".concat(t,"-").concat(n)),r}},{key:"render",value:function(){var e=this,t=this.state.notices,n=this.props,r=n.prefixCls,i=n.className,u=n.closeIcon,c=n.style,f=t.map((function(n,i){var a=n.notice,c=n.holderCallback,s=Boolean(i===t.length-1&&a.updateKey),f=a.updateKey?a.updateKey:a.key,p=Object(l.a)(e.remove.bind(e,a.key),a.onClose),h=function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:{},r=v(e),o=b(r,n.__INTERNAL__.name),i=o?document.getElementById(o):null;i&&Object(h.a)(i,d({scrollMode:"if-needed",block:"nearest"},t))}})}),[e,t]);return[n]}var w=n(24);function x(){return(x=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}(0,u.setTwoToneColor)("#1890ff");var d=o.forwardRef((function(e,t){var n,r,u,s=e.className,l=e.icon,p=e.spin,d=e.rotate,y=e.tabIndex,m=e.onClick,v=e.twoToneColor,b=h(e,["className","icon","spin","rotate","tabIndex","onClick","twoToneColor"]),g=(0,i.default)("anticon",(n={},r="anticon-".concat(l.name),u=Boolean(l.name),r in n?Object.defineProperty(n,r,{value:u,enumerable:!0,configurable:!0,writable:!0}):n[r]=u,n),s),w=(0,i.default)({"anticon-spin":!!p||"loading"===l.name}),x=y;void 0===x&&m&&(x=-1);var E=d?{msTransform:"rotate(".concat(d,"deg)"),transform:"rotate(".concat(d,"deg)")}:void 0,O=f((0,c.normalizeTwoToneColors)(v),2),C=O[0],D=O[1];return o.createElement("span",Object.assign({role:"img","aria-label":l.name},b,{ref:t,tabIndex:x,onClick:m,className:g}),o.createElement(a.default,{className:w,icon:l,primaryColor:C,secondaryColor:D,style:E}))}));d.displayName="AntdIcon",d.getTwoToneColor=u.getTwoToneColor,d.setTwoToneColor=u.setTwoToneColor;var y=d;t.default=y},function(e,t,n){e.exports=n(460)},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(180),i=(r=o)&&r.__esModule?r:{default:r};t.default=function(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!==("undefined"===typeof t?"undefined":(0,i.default)(t))&&"function"!==typeof t?e:t}},function(e,t,n){(function(t){for(var r=n(784),o="undefined"===typeof window?t:window,i=["moz","webkit"],a="AnimationFrame",u=o["request"+a],c=o["cancel"+a]||o["cancelRequest"+a],s=0;!u&&s0&&void 0!==arguments[0]?arguments[0]:{};return Object.keys(e).reduce((function(t,n){var r=e[n];switch(n){case"class":t.className=r,delete t.class;break;default:t[n]=r}return t}),{})}function m(e){return Object(u.generate)(e)[0]}function v(e){return e?Array.isArray(e)?e:[e]:[]}var b="\n.anticon {\n display: inline-block;\n color: inherit;\n font-style: normal;\n line-height: 0;\n text-align: center;\n text-transform: none;\n vertical-align: -0.125em;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.anticon > * {\n line-height: 1;\n}\n\n.anticon svg {\n display: inline-block;\n}\n\n.anticon::before {\n display: none;\n}\n\n.anticon .anticon-icon {\n display: block;\n}\n\n.anticon[tabindex] {\n cursor: pointer;\n}\n\n.anticon-spin::before,\n.anticon-spin {\n display: inline-block;\n -webkit-animation: loadingCircle 1s infinite linear;\n animation: loadingCircle 1s infinite linear;\n}\n\n@-webkit-keyframes loadingCircle {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes loadingCircle {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n",g=!1;function w(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function x(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function E(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:b;Object(r.useEffect)((function(){g||(Object(s.insertCss)(e,{prepend:!0}),g=!0)}),[])}(),t=d(i),n="icon should be icon definiton, but got ".concat(i),Object(c.a)(t,"[@ant-design/icons] ".concat(n)),!d(i))return null;var O=i;return O&&"function"===typeof O.icon&&(O=E({},O,{icon:O.icon(x.primaryColor,x.secondaryColor)})),function e(t,n,r){return r?o.a.createElement(t.tag,f({key:n},y(t.attrs),{},r),(t.children||[]).map((function(r,o){return e(r,"".concat(n,"-").concat(t.tag,"-").concat(o))}))):o.a.createElement(t.tag,f({key:n},y(t.attrs)),(t.children||[]).map((function(r,o){return e(r,"".concat(n,"-").concat(t.tag,"-").concat(o))})))}(O.icon,"svg-".concat(O.name),E({className:a,onClick:u,style:l,"data-icon":O.name,width:"1em",height:"1em",fill:"currentColor","aria-hidden":"true"},v))};D.displayName="IconReact",D.getTwoToneColors=function(){return E({},C)},D.setTwoToneColors=function(e){var t=e.primaryColor,n=e.secondaryColor;C.primaryColor=t,C.secondaryColor=n||m(t),C.calculated=!!n};var S=D;function A(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"===typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(r=(a=u.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(c){o=!0,i=c}finally{try{r||null==u.return||u.return()}finally{if(o)throw i}}return n}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return P(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return P(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function P(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}k("#1890ff");var F=r.forwardRef((function(e,t){var n,o,i,u=e.className,c=e.icon,s=e.spin,l=e.rotate,f=e.tabIndex,p=e.onClick,h=e.twoToneColor,d=T(e,["className","icon","spin","rotate","tabIndex","onClick","twoToneColor"]),y=a()("anticon",(n={},o="anticon-".concat(c.name),i=Boolean(c.name),o in n?Object.defineProperty(n,o,{value:i,enumerable:!0,configurable:!0,writable:!0}):n[o]=i,n),u),m=a()({"anticon-spin":!!s||"loading"===c.name}),b=f;void 0===b&&p&&(b=-1);var g=l?{msTransform:"rotate(".concat(l,"deg)"),transform:"rotate(".concat(l,"deg)")}:void 0,w=j(v(h),2),x=w[0],E=w[1];return r.createElement("span",Object.assign({role:"img","aria-label":c.name},d,{ref:t,tabIndex:b,onClick:p,className:y}),r.createElement(S,{className:m,icon:c,primaryColor:x,secondaryColor:E,style:g}))}));F.displayName="AntdIcon",F.getTwoToneColor=function(){var e=S.getTwoToneColors();return e.calculated?[e.primaryColor,e.secondaryColor]:e.primaryColor},F.setTwoToneColor=k;t.a=F},function(e,t,n){"use strict";n.d(t,"a",(function(){return r}));var r=function(){for(var e=arguments.length,t=new Array(e),n=0;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=t.subMenuTitle.offsetWidth||(e.style.minWidth="".concat(t.subMenuTitle.offsetWidth,"px"))}},t.saveSubMenuTitle=function(e){t.subMenuTitle=e},t.getBaseProps=function(){var e=fe(t).props;return{mode:"horizontal"===e.mode?"vertical":e.mode,visible:t.props.isOpen,level:e.level+1,inlineIndent:e.inlineIndent,focusable:!1,onClick:t.onSubMenuClick,onSelect:t.onSelect,onDeselect:t.onDeselect,onDestroy:t.onDestroy,selectedKeys:e.selectedKeys,eventKey:"".concat(e.eventKey,"-menu-"),openKeys:e.openKeys,motion:e.motion,onOpenChange:t.onOpenChange,subMenuOpenDelay:e.subMenuOpenDelay,parentMenu:fe(t),subMenuCloseDelay:e.subMenuCloseDelay,forceSubMenuRender:e.forceSubMenuRender,triggerSubMenuAction:e.triggerSubMenuAction,builtinPlacements:e.builtinPlacements,defaultActiveFirst:e.store.getState().defaultActiveFirst[J(e.eventKey)],multiple:e.multiple,prefixCls:e.rootPrefixCls,id:t.internalMenuId,manualRef:t.saveMenuInstance,itemIcon:e.itemIcon,expandIcon:e.expandIcon,direction:e.direction}},t.getMotion=function(e,n){var r=fe(t).haveRendered,o=t.props,i=o.motion,a=o.rootPrefixCls;return me({},i,{leavedClassName:"".concat(a,"-hidden"),removeOnLeave:!1,motionAppear:r||!n||"inline"!==e})};var n=e.store,r=e.eventKey,i=n.getState().defaultActiveFirst;t.isRootMenu=!1;var c=!1;return i&&(c=i[r]),we(n,r,c),t}return n=u,(r=[{key:"componentDidMount",value:function(){this.componentDidUpdate()}},{key:"componentDidUpdate",value:function(){var e=this,t=this.props,n=t.mode,r=t.parentMenu,o=t.manualRef;o&&o(this),"horizontal"===n&&r.isRootMenu&&this.props.isOpen&&(this.minWidthTimeout=setTimeout((function(){return e.adjustWidth()}),0))}},{key:"componentWillUnmount",value:function(){var e=this.props,t=e.onDestroy,n=e.eventKey;t&&t(n),this.minWidthTimeout&&clearTimeout(this.minWidthTimeout),this.mouseenterTimeout&&clearTimeout(this.mouseenterTimeout)}},{key:"renderChildren",value:function(e){var t=this,n=this.getBaseProps(),r=this.getMotion(n.mode,n.visible);if(this.haveRendered=!0,this.haveOpened=this.haveOpened||n.visible||n.forceSubMenuRender,!this.haveOpened)return o.a.createElement("div",null);var i=n.direction;return o.a.createElement(oe.b,Object.assign({visible:n.visible},r),(function(r){var a=r.className,u=r.style,c=C()("".concat(n.prefixCls,"-sub"),a,ve({},"".concat(n.prefixCls,"-rtl"),"rtl"===i));return o.a.createElement(nt,Object.assign({},n,{id:t.internalMenuId,className:c,style:u}),e)}))}},{key:"render",value:function(){var e,t=me({},this.props),n=t.isOpen,r=this.getPrefixCls(),i="inline"===t.mode,a=C()(r,"".concat(r,"-").concat(t.mode),(ve(e={},t.className,!!t.className),ve(e,this.getOpenClassName(),n),ve(e,this.getActiveClassName(),t.active||n&&!i),ve(e,this.getDisabledClassName(),t.disabled),ve(e,this.getSelectedClassName(),this.isChildrenSelected()),e));this.internalMenuId||(t.eventKey?this.internalMenuId="".concat(t.eventKey,"$Menu"):(be+=1,this.internalMenuId="$__$".concat(be,"$Menu")));var u={},c={},s={};t.disabled||(u={onMouseLeave:this.onMouseLeave,onMouseEnter:this.onMouseEnter},c={onClick:this.onTitleClick},s={onMouseEnter:this.onTitleMouseEnter,onMouseLeave:this.onTitleMouseLeave});var l={},f=t.direction;i&&("rtl"===f?l.paddingRight=t.inlineIndent*t.level:l.paddingLeft=t.inlineIndent*t.level);var p={};this.props.isOpen&&(p={"aria-owns":this.internalMenuId});var h=null;"horizontal"!==t.mode&&(h=this.props.expandIcon,"function"===typeof this.props.expandIcon&&(h=o.a.createElement(this.props.expandIcon,me({},this.props))));var d=o.a.createElement("div",Object.assign({ref:this.saveSubMenuTitle,style:l,className:"".concat(r,"-title"),role:"button"},s,c,{"aria-expanded":n},p,{"aria-haspopup":"true",title:"string"===typeof t.title?t.title:void 0}),t.title,h||o.a.createElement("i",{className:"".concat(r,"-arrow")})),y=this.renderChildren(t.children),m=t.parentMenu.isRootMenu?t.parentMenu.props.getPopupContainer:function(e){return e.parentNode},v=ge[t.mode],b=t.popupOffset?{offset:t.popupOffset}:{},g="inline"===t.mode?"":t.popupClassName;g+="rtl"===f?" ".concat(r,"-rtl"):"";var w=t.disabled,x=t.triggerSubMenuAction,E=t.subMenuOpenDelay,O=t.forceSubMenuRender,D=t.subMenuCloseDelay,S=t.builtinPlacements;G.forEach((function(e){return delete t[e]})),delete t.onClick;var A="rtl"===f?Object.assign({},ue,S):Object.assign({},ae,S);return delete t.direction,o.a.createElement("li",Object.assign({},t,u,{className:a,role:"menuitem"}),i&&d,i&&y,!i&&o.a.createElement(re.a,{prefixCls:r,popupClassName:C()("".concat(r,"-popup"),g),getPopupContainer:m,builtinPlacements:A,popupPlacement:v,popupVisible:n,popupAlign:b,popup:y,action:w?[]:[x],mouseEnterDelay:E,mouseLeaveDelay:D,onPopupVisibleChange:this.onPopupVisibleChange,forceRender:O},d))}}])&&se(n.prototype,r),i&&se(n,i),u}(o.a.Component);xe.defaultProps={onMouseEnter:$,onMouseLeave:$,onTitleMouseEnter:$,onTitleMouseLeave:$,onTitleClick:$,manualRef:$,mode:"vertical",title:""};var Ee=g((function(e,t){var n=e.openKeys,r=e.activeKey,o=e.selectedKeys,i=t.eventKey,a=t.subMenuKey;return{isOpen:n.indexOf(i)>-1,active:r[a]===i,selectedKeys:o}}))(xe);Ee.isSubMenu=!0;var Oe=Ee;function Ce(e){return(Ce="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function De(e){return function(e){if(Array.isArray(e))return Se(e)}(e)||function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return Se(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Se(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Se(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function _e(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Te(e,t){for(var n=0;n=0}));i.forEach((function(e){Z(e,"display","inline-block")})),e.menuItemSizes=o.map((function(e){return Q(e)})),i.forEach((function(e){Z(e,"display","none")})),e.overflowedIndicatorWidth=Q(t.children[t.children.length-1]),e.originalTotalWidth=e.menuItemSizes.reduce((function(e,t){return e+t}),0),e.handleResize(),Z(r,"display","none")}}}},e.handleResize=function(){if("horizontal"===e.props.mode){var t=te.a.findDOMNode(Ne(e));if(t){var n=Q(t);e.overflowedItems=[];var r,o=0;e.originalTotalWidth>n+.5&&(r=-1,e.menuItemSizes.forEach((function(t){(o+=t)+e.overflowedIndicatorWidth<=n&&(r+=1)}))),e.setState({lastVisibleIndex:r})}}},e}return n=u,(r=[{key:"componentDidMount",value:function(){var e=this;if(this.setChildrenWidthAndResize(),1===this.props.level&&"horizontal"===this.props.mode){var t=te.a.findDOMNode(this);if(!t)return;this.resizeObserver=new ne.a((function(t){t.forEach(e.setChildrenWidthAndResize)})),[].slice.call(t.children).concat(t).forEach((function(t){e.resizeObserver.observe(t)})),"undefined"!==typeof MutationObserver&&(this.mutationObserver=new MutationObserver((function(){e.resizeObserver.disconnect(),[].slice.call(t.children).concat(t).forEach((function(t){e.resizeObserver.observe(t)})),e.setChildrenWidthAndResize()})),this.mutationObserver.observe(t,{attributes:!1,childList:!0,subTree:!1}))}}},{key:"componentWillUnmount",value:function(){this.resizeObserver&&this.resizeObserver.disconnect(),this.mutationObserver&&this.mutationObserver.disconnect()}},{key:"renderChildren",value:function(e){var t=this,n=this.state.lastVisibleIndex;return(e||[]).reduce((function(r,i,a){var u=i;if("horizontal"===t.props.mode){var c=t.getOverflowedSubMenuItem(i.props.eventKey,[]);void 0!==n&&-1!==t.props.className.indexOf("".concat(t.props.prefixCls,"-root"))&&(a>n&&(u=o.a.cloneElement(i,{style:{display:"none"},eventKey:"".concat(i.props.eventKey,"-hidden"),className:"".concat("menuitem-overflowed")})),a===n+1&&(t.overflowedItems=e.slice(n+1).map((function(e){return o.a.cloneElement(e,{key:e.props.eventKey,mode:"vertical-left"})})),c=t.getOverflowedSubMenuItem(i.props.eventKey,t.overflowedItems)));var s=[].concat(De(r),[c,u]);return a===e.length-1&&s.push(t.getOverflowedSubMenuItem(i.props.eventKey,[],!0)),s}return[].concat(De(r),[u])}),[])}},{key:"render",value:function(){var e=this.props,t=(e.visible,e.prefixCls,e.overflowedIndicator,e.mode,e.level,e.tag),n=e.children,r=(e.theme,je(e,["visible","prefixCls","overflowedIndicator","mode","level","tag","children","theme"])),i=t;return o.a.createElement(i,Object.assign({},r),this.renderChildren(n))}}])&&Te(n.prototype,r),i&&Te(n,i),u}(o.a.Component);Be.defaultProps={tag:"div",className:""};var Le=Be;function ze(e){return(ze="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Ue(){return(Ue=Object.assign||function(e){for(var t=1;t=0;(t||i)&&o.restoreModeVerticalFromInline()},o.handleClick=function(e){o.handleOpenChange([]);var t=o.props.onClick;t&&t(e)},o.handleOpenChange=function(e){o.setOpenKeys(e);var t=o.props.onOpenChange;t&&t(e)},o.renderMenu=function(e){var t,n,i,a=e.getPopupContainer,u=e.getPrefixCls,c=e.direction,s=o.props,l=s.prefixCls,f=s.className,p=s.theme,h=s.collapsedWidth,d=Object(Wt.a)(o.props,["collapsedWidth","siderCollapsed"]),y=o.getRealMenuMode(),m=o.getOpenMotionProps(y),v=u("menu",l),b=C()(f,"".concat(v,"-").concat(p),(t={},n="".concat(v,"-inline-collapsed"),i=o.getInlineCollapsed(),n in t?Object.defineProperty(t,n,{value:i,enumerable:!0,configurable:!0,writable:!0}):t[n]=i,t)),g=Dn({openKeys:o.state.openKeys,onOpenChange:o.handleOpenChange,className:b,mode:y},m);return"inline"!==y&&(g.onClick=o.handleClick),o.getInlineCollapsed()&&(0===h||"0"===h||"0px"===h)&&(g.openKeys=[]),r.createElement(qt.Provider,{value:{inlineCollapsed:o.getInlineCollapsed()||!1,antdMenuTheme:o.props.theme,direction:c}},r.createElement(Kt,Dn({getPopupContainer:a},d,g,{prefixCls:v,onTransitionEnd:o.handleTransitionEnd,onMouseEnter:o.handleMouseEnter,direction:c})))},Object(gn.a)(!("inlineCollapsed"in e&&"inline"!==e.mode),"Menu","`inlineCollapsed` should only be used when `mode` is inline."),Object(gn.a)(!(void 0!==e.siderCollapsed&&"inlineCollapsed"in e),"Menu","`inlineCollapsed` not control Menu under Sider. Should set `collapsed` on Sider instead."),"openKeys"in e?i=e.openKeys:"defaultOpenKeys"in e&&(i=e.defaultOpenKeys),o.state={openKeys:i||[],switchingModeFromInline:!1,inlineOpenKeys:[],prevProps:e},o}return Pn(n,[{key:"componentWillUnmount",value:function(){wn.a.cancel(this.mountRafId)}},{key:"setOpenKeys",value:function(e){"openKeys"in this.props||this.setState({openKeys:e})}},{key:"getRealMenuMode",value:function(){var e=this.getInlineCollapsed();if(this.state.switchingModeFromInline&&e)return"inline";var t=this.props.mode;return e?"vertical":t}},{key:"getInlineCollapsed",value:function(){var e=this.props.inlineCollapsed;return void 0!==this.props.siderCollapsed?this.props.siderCollapsed:e}},{key:"getOpenMotionProps",value:function(e){var t=this.props,n=t.openTransitionName,r=t.openAnimation,o=t.motion;return o?{motion:o}:r?(Object(gn.a)("string"===typeof r,"Menu","`openAnimation` do not support object. Please use `motion` instead."),{openAnimation:r}):n?{openTransitionName:n}:"horizontal"===e?{motion:{motionName:"slide-up"}}:"inline"===e?{motion:On}:{motion:{motionName:this.state.switchingModeFromInline?"":"zoom-big"}}}},{key:"restoreModeVerticalFromInline",value:function(){this.state.switchingModeFromInline&&this.setState({switchingModeFromInline:!1})}},{key:"render",value:function(){return r.createElement(bn.a,null,this.renderMenu)}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=t.prevProps,r={prevProps:e};return"inline"===n.mode&&"inline"!==e.mode&&(r.switchingModeFromInline=!0),"openKeys"in e?r.openKeys=e.openKeys:((e.inlineCollapsed&&!n.inlineCollapsed||e.siderCollapsed&&!n.siderCollapsed)&&(r.switchingModeFromInline=!0,r.inlineOpenKeys=t.openKeys,r.openKeys=[]),(!e.inlineCollapsed&&n.inlineCollapsed||!e.siderCollapsed&&n.siderCollapsed)&&(r.openKeys=t.inlineOpenKeys,r.inlineOpenKeys=[])),r}}]),n}(r.Component);Mn.defaultProps={className:"",theme:"light",focusable:!1};var In=function(e){kn(n,e);var t=_n(n);function n(){return Sn(this,n),t.apply(this,arguments)}return Pn(n,[{key:"render",value:function(){var e=this;return r.createElement(an.a.Consumer,null,(function(t){return r.createElement(Mn,Dn({},e.props,t))}))}}]),n}(r.Component);In.Divider=Vt,In.Item=vn,In.SubMenu=nn,In.ItemGroup=Ut},function(e,t,n){"use strict";function r(){return(r=Object.assign||function(e){for(var t=1;t0&&(y=l.map((function(e){return"string"===typeof e?r.createElement(E,{key:e,prefixCls:h,disabled:t.props.disabled,value:e,checked:t.state.value===e},e):r.createElement(E,{key:"radio-group-value-options-".concat(e.value),prefixCls:h,disabled:e.disabled||t.props.disabled,value:e.value,checked:t.state.value===e.value,style:e.style},e.label)}))),r.createElement(O.b.Consumer,null,(function(e){var t,n=p||e,u=a()(d,"".concat(d,"-").concat(f),(D(t={},"".concat(d,"-").concat(n),n),D(t,"".concat(d,"-rtl"),"rtl"===o),t),s);return r.createElement("div",{className:u,style:i.style,onMouseEnter:i.onMouseEnter,onMouseLeave:i.onMouseLeave,id:i.id},y)}))},void 0!==e.value)n=e.value;else if(void 0!==e.defaultValue)n=e.defaultValue;else{var o=T(e.children);n=o&&o.value}return t.state={value:n,prevPropValue:e.value},t}return n=l,i=[{key:"getDerivedStateFromProps",value:function(e,t){var n={prevPropValue:e.value};if(void 0!==e.value||t.prevPropValue!==e.value)n.value=e.value;else{var r=T(e.children);r&&(n.value=r.value)}return n}}],(o=[{key:"render",value:function(){return r.createElement(s,{value:{onChange:this.onRadioChange,value:this.state.value,disabled:this.props.disabled,name:this.props.name}},r.createElement(u.a,null,this.renderGroup))}}])&&S(n.prototype,o),i&&S(n,i),l}(r.PureComponent);F.defaultProps={buttonStyle:"outline"};var N=F;function M(){return(M=Object.assign||function(e){for(var t=1;t1&&void 0!==arguments[1]&&arguments[1],n=e.getAttribute("id")||e.getAttribute("data-reactid")||e.getAttribute("name");if(t&&ie[n])return ie[n];var r=window.getComputedStyle(e),o=r.getPropertyValue("box-sizing")||r.getPropertyValue("-moz-box-sizing")||r.getPropertyValue("-webkit-box-sizing"),i=parseFloat(r.getPropertyValue("padding-bottom"))+parseFloat(r.getPropertyValue("padding-top")),a=parseFloat(r.getPropertyValue("border-bottom-width"))+parseFloat(r.getPropertyValue("border-top-width")),u=oe.map((function(e){return"".concat(e,":").concat(r.getPropertyValue(e))})).join(";"),c={sizingStyle:u,paddingSize:i,borderSize:a,boxSizing:o};return t&&n&&(ie[n]=c),c}var ue=n(43);function ce(e){return(ce="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function se(){return(se=Object.assign||function(e){for(var t=1;t1&&void 0!==arguments[1]&&arguments[1],n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null;te||((te=document.createElement("textarea")).setAttribute("tab-index","-1"),te.setAttribute("aria-hidden","true"),document.body.appendChild(te)),e.getAttribute("wrap")?te.setAttribute("wrap",e.getAttribute("wrap")):te.removeAttribute("wrap");var o=ae(e,t),i=o.paddingSize,a=o.borderSize,u=o.boxSizing,c=o.sizingStyle;te.setAttribute("style","".concat(c,";").concat(re)),te.value=e.value||e.placeholder||"";var s,l=Number.MIN_SAFE_INTEGER,f=Number.MAX_SAFE_INTEGER,p=te.scrollHeight;if("border-box"===u?p+=a:"content-box"===u&&(p-=i),null!==n||null!==r){te.value=" ";var h=te.scrollHeight-i;null!==n&&(l=h*n,"border-box"===u&&(l=l+i+a),p=Math.max(l,p)),null!==r&&(f=h*r,"border-box"===u&&(f=f+i+a),s=p>f?"":"hidden",p=Math.min(f,p))}return{height:p,minHeight:l,maxHeight:f,overflowY:s}}(t.textArea,!1,n,r);t.setState({textareaStyles:o,resizeStatus:1},(function(){ue.a.cancel(t.resizeFrameId),t.resizeFrameId=Object(ue.a)((function(){t.setState({resizeStatus:2},(function(){t.resizeFrameId=Object(ue.a)((function(){t.setState({resizeStatus:0}),t.fixFirefoxAutoScroll()}))}))}))}))}},t.renderTextArea=function(){var e,n,o,u=t.props,c=u.prefixCls,s=u.autoSize,l=u.onResize,f=u.className,p=u.disabled,h=t.state,d=h.textareaStyles,y=h.resizeStatus,m=Object(a.a)(t.props,["prefixCls","onPressEnter","autoSize","defaultValue","allowClear","onResize"]),v=i()(c,f,(e={},n="".concat(c,"-disabled"),o=p,n in e?Object.defineProperty(e,n,{value:o,enumerable:!0,configurable:!0,writable:!0}):e[n]=o,e));"value"in m&&(m.value=m.value||"");var b=se(se(se({},t.props.style),d),1===y?{overflowX:"hidden",overflowY:"hidden"}:null);return r.createElement(ne.a,{onResize:t.handleResize,disabled:!(s||l)},r.createElement("textarea",se({},m,{className:v,style:b,ref:t.saveTextArea})))},t.state={textareaStyles:{},resizeStatus:0},t}return n=s,(o=[{key:"componentDidMount",value:function(){this.resizeTextarea()}},{key:"componentDidUpdate",value:function(e){e.value!==this.props.value&&this.resizeTextarea()}},{key:"componentWillUnmount",value:function(){ue.a.cancel(this.nextFrameActionId),ue.a.cancel(this.resizeFrameId)}},{key:"fixFirefoxAutoScroll",value:function(){try{if(document.activeElement===this.textArea){var e=this.textArea.selectionStart,t=this.textArea.selectionEnd;this.textArea.setSelectionRange(e,t)}}catch(n){}}},{key:"render",value:function(){return this.renderTextArea()}}])&&le(n.prototype,o),u&&le(n,u),s}(r.Component);function me(e){return(me="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ve(){return(ve=Object.assign||function(e){for(var t=1;t=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function a(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1?t-1:0),r=1;r=r||n<0||n>=r)return e;var o=e[t],i=t-n;return i>0?[].concat(s(e.slice(0,n)),[o],s(e.slice(n,t)),s(e.slice(t+1,r))):i<0?[].concat(s(e.slice(0,t)),s(e.slice(t+1,n+1)),[o],s(e.slice(n+1,r))):e}var Y="'${name}' is not a valid ${type}",G={default:"Validation error on field '${name}'",required:"'${name}' is required",enum:"'${name}' must be one of [${enum}]",whitespace:"'${name}' cannot be empty",date:{format:"'${name}' is invalid for format date",parse:"'${name}' could not be parsed as date",invalid:"'${name}' is invalid date"},types:{string:Y,method:Y,array:Y,object:Y,number:Y,date:Y,boolean:Y,integer:Y,float:Y,regexp:Y,email:Y,url:Y,hex:Y},string:{len:"'${name}' must be exactly ${len} characters",min:"'${name}' must be at least ${min} characters",max:"'${name}' cannot be longer than ${max} characters",range:"'${name}' must be between ${min} and ${max} characters"},number:{len:"'${name}' must equal ${len}",min:"'${name}' cannot be less than ${min}",max:"'${name}' cannot be greater than ${max}",range:"'${name}' must be between ${min} and ${max}"},array:{len:"'${name}' must be exactly ${len} in length",min:"'${name}' cannot be less than ${min} in length",max:"'${name}' cannot be greater than ${max} in length",range:"'${name}' must be between ${min} and ${max} in length"},pattern:{mismatch:"'${name}' does not match pattern ${pattern}"}};function Q(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Z(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{};return Object.keys(t).forEach((function(o){var a=t[o];"string"===typeof a?n[o]=i(a,r):a&&"object"===h(a)?(n[o]={},e(a,n[o])):n[o]=a})),n}(q({},G,e))}function ne(e,t,n,r,o){return re.apply(this,arguments)}function re(){return(re=P(S.a.mark((function e(t,n,o,i,u){var c,l,f,p,h,d;return S.a.wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return c=Z({},o),l=null,c&&"array"===c.type&&c.defaultField&&(l=c.defaultField,delete c.defaultField),f=new ee(a({},t,[c])),p=te(i.validateMessages,t,c,u),f.messages(p),h=[],e.prev=7,e.next=10,Promise.resolve(f.validate(a({},t,n),Z({},i)));case 10:e.next=15;break;case 12:e.prev=12,e.t0=e.catch(7),e.t0.errors?h=e.t0.errors.map((function(e,t){var n=e.message;return r.isValidElement(n)?r.cloneElement(n,{key:"error_".concat(t)}):n})):(console.error(e.t0),h=[p.default()]);case 15:if(h.length||!l){e.next=20;break}return e.next=18,Promise.all(n.map((function(e,n){return ne("".concat(t,".").concat(n),e,l,i,u)})));case 18:return d=e.sent,e.abrupt("return",d.reduce((function(e,t){return[].concat(s(e),s(t))}),[]));case 20:return e.abrupt("return",h);case 21:case"end":return e.stop()}}),e,null,[[7,12]])})))).apply(this,arguments)}function oe(e,t,n,r,o,i){var a=e.join("."),u=n.map((function(e){var t=e.validator;return t?Z({},e,{validator:function(e,n,r){var o=!1,i=t(e,n,(function(){for(var e=arguments.length,t=new Array(e),n=0;n0&&void 0!==arguments[0]?arguments[0]:[];e.validatePromise===s&&(e.validatePromise=null,e.errors=t,e.reRender())})),s},e.isFieldValidating=function(){return!!e.validatePromise},e.isFieldTouched=function(){return e.touched},e.getErrors=function(){return e.errors},e.getMeta=function(){return e.prevValidating=e.isFieldValidating(),{touched:e.isFieldTouched(),validating:e.prevValidating,errors:e.errors,name:e.getNamePath()}},e.getOnlyChild=function(t){if("function"===typeof t){var n=e.getMeta();return ce({},e.getOnlyChild(t(e.getControlled(),n,e.context)),{isFunction:!0})}var o=Object(v.a)(t);return 1===o.length&&r.isValidElement(o[0])?{child:o[0],isFunction:!1}:{child:o,isFunction:!1}},e.getValue=function(t){var n=e.context.getFieldsValue,r=e.getNamePath();return z(t||n(!0),r)},e.getControlled=function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=e.props,r=n.trigger,o=n.validateTrigger,i=n.getValueFromEvent,u=n.normalize,c=n.valuePropName,s=e.getNamePath(),l=e.context,f=l.getInternalHooks,p=l.getFieldsValue,h=f(x),d=h.dispatch,y=e.getValue(),m=t[r],v=ce({},t,a({},c,y));v[r]=function(){var t;e.touched=!0;for(var n=arguments.length,r=new Array(n),o=0;o=t.length)){var n=i.keys.map((function(t,n){return n=n.length||t<0||t>=n.length||(i.keys=J(i.keys,e,t),a(J(n,e,t)))}}};return n(r.map((function(e,t){var n=i.keys[t];return void 0===n&&(i.keys[t]=i.id,n=i.keys[t],i.id+=1),{name:t,key:n}})),f)})))};function ye(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e)){var n=[],r=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(r=(a=u.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(c){o=!0,i=c}finally{try{r||null==u.return||u.return()}finally{if(o)throw i}}return n}}(e,t)||c(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}var me=function(){function e(){l(this,e),this.list=[]}return p(e,[{key:"set",value:function(e,t){var n=this.list.findIndex((function(t){return $(t.key,e)}));-1!==n?this.list[n].value=t:this.list.push({key:e,value:t})}},{key:"get",value:function(e){var t=this.list.find((function(t){return $(t.key,e)}));return t&&t.value}},{key:"update",value:function(e,t){var n=t(this.get(e));n?this.set(e,n):this.delete(e)}},{key:"delete",value:function(e){this.list=this.list.filter((function(t){return!$(t.key,e)}))}},{key:"map",value:function(e){return this.list.map(e)}},{key:"toJSON",value:function(){var e={};return this.map((function(t){var n=t.key,r=t.value;return e[n.join(".")]=r,null})),e}}]),e}();function ve(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function be(e){for(var t=1;t0&&void 0!==arguments[0]&&arguments[0];return e?n.fieldEntities.filter((function(e){return e.getNamePath().length})):n.fieldEntities},this.getFieldsMap=function(){var e=arguments.length>0&&void 0!==arguments[0]&&arguments[0],t=new me;return n.getFieldEntities(e).forEach((function(e){var n=e.getNamePath();t.set(n,e)})),t},this.getFieldEntitiesForNamePathList=function(e){if(!e)return n.getFieldEntities(!0);var t=n.getFieldsMap(!0);return e.map((function(e){var n=L(e);return t.get(n)||{INVALIDATE_NAME_PATH:L(e)}}))},this.getFieldsValue=function(e,t){if(n.warningUnhooked(),!0===e&&!t)return n.store;var r=n.getFieldEntitiesForNamePathList(Array.isArray(e)?e:null),o=[];return r.forEach((function(e){var n="INVALIDATE_NAME_PATH"in e?e.INVALIDATE_NAME_PATH:e.getNamePath();if(t){var r="getMeta"in e?e.getMeta():null;t(r)&&o.push(n)}else o.push(n)})),H(n.store,o.map(L))},this.getFieldValue=function(e){n.warningUnhooked();var t=L(e);return z(n.store,t)},this.getFieldsError=function(e){return n.warningUnhooked(),n.getFieldEntitiesForNamePathList(e).map((function(t,n){return t&&!("INVALIDATE_NAME_PATH"in t)?{name:t.getNamePath(),errors:t.getErrors()}:{name:L(e[n]),errors:[]}}))},this.getFieldError=function(e){n.warningUnhooked();var t=L(e);return n.getFieldsError([t])[0].errors},this.isFieldsTouched=function(){n.warningUnhooked();for(var e=arguments.length,t=new Array(e),r=0;r0&&void 0!==arguments[0]?arguments[0]:new Set;return t.add(e),t}))}))}));return function e(n){(o.get(n)||new Set).forEach((function(n){if(!t.has(n)){t.add(n);var o=n.getNamePath();n.isFieldTouched()&&o.length&&(r.push(o),e(o))}}))}(e),r},this.triggerOnFieldsChange=function(e,t){var r=n.callbacks.onFieldsChange;if(r){var o=n.getFields();if(t){var i=new me;t.forEach((function(e){var t=e.name,n=e.errors;i.set(t,n)})),o.forEach((function(e){e.errors=i.get(e.name)||e.errors}))}r(o.filter((function(t){var n=t.name;return V(e,n)})),o)}},this.validateFields=function(e,t){n.warningUnhooked();var r=!!e,o=r?e.map(L):[],i=[];n.getFieldEntities(!0).forEach((function(e){if(r||o.push(e.getNamePath()),e.props.rules&&e.props.rules.length){var a=e.getNamePath();if(!r||V(o,a)){var u=e.validateRules(be({validateMessages:be({},G,{},n.validateMessages)},t));i.push(u.then((function(){return{name:a,errors:[]}})).catch((function(e){return Promise.reject({name:a,errors:e})})))}}}));var a=function(e){var t=!1,n=e.length,r=[];return e.length?new Promise((function(o,i){e.forEach((function(e,a){e.catch((function(e){return t=!0,e})).then((function(e){n-=1,r[a]=e,n>0||(t&&i(r),o(r))}))}))})):Promise.resolve([])}(i);n.lastValidatePromise=a,a.catch((function(e){return e})).then((function(e){var t=e.map((function(e){return e.name}));n.notifyObservers(n.store,t,{type:"validateFinish"}),n.triggerOnFieldsChange(t,e)}));var u=a.then((function(){return n.lastValidatePromise===a?Promise.resolve(n.getFieldsValue(o)):Promise.reject([])})).catch((function(e){var t=e.filter((function(e){return e&&e.errors.length}));return Promise.reject({values:n.getFieldsValue(o),errorFields:t,outOfDate:n.lastValidatePromise!==a})}));return u.catch((function(e){return e})),u},this.submit=function(){n.warningUnhooked(),n.validateFields().then((function(e){var t=n.callbacks.onFinish;if(t)try{t(e)}catch(r){console.error(r)}})).catch((function(e){var t=n.callbacks.onFinishFailed;t&&t(e)}))},this.forceRootUpdate=t};var we=function(e){var t=r.useRef(),n=ye(r.useState(),2)[1];if(!t.current)if(e)t.current=e;else{var o=new ge((function(){n({})}));t.current=o.getForm()}return[t.current]};function xe(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ee(e){for(var t=1;t1?t-1:0),o=1;o1&&void 0!==arguments[1]?arguments[1]:1,n=i++,r=t;function u(){(r-=1)<=0?(e(),delete a[n]):a[n]=o()(u)}return a[n]=o()(u),n}u.cancel=function(e){void 0!==e&&(o.a.cancel(a[e]),delete a[e])},u.ids=a},function(e,t,n){"use strict";t.a=function(e,t){if(!e)throw new Error("Invariant failed")}},function(e,t,n){"use strict";var r=n(294),o=n(461),i=Object.prototype.toString;function a(e){return"[object Array]"===i.call(e)}function u(e){return null!==e&&"object"===typeof e}function c(e){return"[object Function]"===i.call(e)}function s(e,t){if(null!==e&&"undefined"!==typeof e)if("object"!==typeof e&&(e=[e]),a(e))for(var n=0,r=e.length;n=0;p--){var h=a[p];"."===h?i(a,p):".."===h?(i(a,p),f++):f&&(i(a,p),f--)}if(!s)for(;f--;f)a.unshift("..");!s||""===a[0]||a[0]&&o(a[0])||a.unshift("");var d=a.join("/");return n&&"/"!==d.substr(-1)&&(d+="/"),d};function u(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}var c=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,r){return e(t,n[r])}));if("object"===typeof t||"object"===typeof n){var r=u(t),o=u(n);return r!==t||o!==n?e(r,o):Object.keys(Object.assign({},t,n)).every((function(r){return e(t[r],n[r])}))}return!1},s=n(44);function l(e){return"/"===e.charAt(0)?e:"/"+e}function f(e){return"/"===e.charAt(0)?e.substr(1):e}function p(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function h(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function d(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function y(e,t,n,o){var i;"string"===typeof e?(i=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var i=t.indexOf("?");return-1!==i&&(n=t.substr(i),t=t.substr(0,i)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e)).state=t:(void 0===(i=Object(r.a)({},e)).pathname&&(i.pathname=""),i.search?"?"!==i.search.charAt(0)&&(i.search="?"+i.search):i.search="",i.hash?"#"!==i.hash.charAt(0)&&(i.hash="#"+i.hash):i.hash="",void 0!==t&&void 0===i.state&&(i.state=t));try{i.pathname=decodeURI(i.pathname)}catch(u){throw u instanceof URIError?new URIError('Pathname "'+i.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):u}return n&&(i.key=n),o?i.pathname?"/"!==i.pathname.charAt(0)&&(i.pathname=a(i.pathname,o.pathname)):i.pathname=o.pathname:i.pathname||(i.pathname="/"),i}function m(e,t){return e.pathname===t.pathname&&e.search===t.search&&e.hash===t.hash&&e.key===t.key&&c(e.state,t.state)}function v(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var i="function"===typeof e?e(t,n):e;"string"===typeof i?"function"===typeof r?r(i,o):o(!0):o(!1!==i)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,r):n.push(r),f({action:"PUSH",location:r,index:t,entries:n})}}))},replace:function(e,t){var r=y(e,t,p(),w.location);l.confirmTransitionTo(r,"REPLACE",n,(function(e){e&&(w.entries[w.index]=r,f({action:"REPLACE",location:r}))}))},go:g,goBack:function(){g(-1)},goForward:function(){g(1)},canGo:function(e){var t=w.index+e;return t>=0&&t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}},function(e,t,n){"use strict";n.d(t,"a",(function(){return S}));var r=n(66),o=n.n(r),i=n(3),a=n.n(i),u=n(20),c=n.n(u),s=n(37),l=n.n(s),f=n(17),p=n.n(f),h=n(21),d=n.n(h),y=n(0),m=n.n(y),v=n(2),b=n.n(v),g=n(34),w=n(83),x=n(1),E=n.n(x),O=n(18),C=n.n(O),D=n(67),S={eventProps:b.a.object,visible:b.a.bool,children:b.a.func,motionName:b.a.oneOfType([b.a.string,b.a.object]),motionAppear:b.a.bool,motionEnter:b.a.bool,motionLeave:b.a.bool,motionLeaveImmediately:b.a.bool,motionDeadline:b.a.number,removeOnLeave:b.a.bool,leavedClassName:b.a.string,onAppearStart:b.a.func,onAppearActive:b.a.func,onAppearEnd:b.a.func,onEnterStart:b.a.func,onEnterActive:b.a.func,onEnterEnd:b.a.func,onLeaveStart:b.a.func,onLeaveActive:b.a.func,onLeaveEnd:b.a.func};t.b=function(e){var t=e,n=!!m.a.forwardRef;function r(e){return!(!e.motionName||!t)}"object"===typeof e&&(t=e.transitionSupport,n="forwardRef"in e?e.forwardRef:n);var i=function(e){function t(){c()(this,t);var e=p()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this));return e.onDomUpdate=function(){var t=e.state,n=t.status,o=t.newStatus,i=e.props,a=i.onAppearStart,u=i.onEnterStart,c=i.onLeaveStart,s=i.onAppearActive,l=i.onEnterActive,f=i.onLeaveActive,p=i.motionAppear,h=i.motionEnter,d=i.motionLeave;if(r(e.props)){var y=e.getElement();e.$cacheEle!==y&&(e.removeEventListener(e.$cacheEle),e.addEventListener(y),e.$cacheEle=y),o&&"appear"===n&&p?e.updateStatus(a,null,null,(function(){e.updateActiveStatus(s,"appear")})):o&&"enter"===n&&h?e.updateStatus(u,null,null,(function(){e.updateActiveStatus(l,"enter")})):o&&"leave"===n&&d&&e.updateStatus(c,null,null,(function(){e.updateActiveStatus(f,"leave")}))}},e.onMotionEnd=function(t){var n=e.state,r=n.status,o=n.statusActive,i=e.props,a=i.onAppearEnd,u=i.onEnterEnd,c=i.onLeaveEnd;"appear"===r&&o?e.updateStatus(a,{status:"none"},t):"enter"===r&&o?e.updateStatus(u,{status:"none"},t):"leave"===r&&o&&e.updateStatus(c,{status:"none"},t)},e.setNodeRef=function(t){var n=e.props.internalRef;e.node=t,"function"===typeof n?n(t):n&&"current"in n&&(n.current=t)},e.getElement=function(){try{return Object(w.a)(e.node||e)}catch(t){return e.$cacheEle}},e.addEventListener=function(t){t&&(t.addEventListener(D.d,e.onMotionEnd),t.addEventListener(D.a,e.onMotionEnd))},e.removeEventListener=function(t){t&&(t.removeEventListener(D.d,e.onMotionEnd),t.removeEventListener(D.a,e.onMotionEnd))},e.updateStatus=function(t,n,r,o){var i=t?t(e.getElement(),r):null;if(!1!==i&&!e._destroyed){var u=void 0;o&&(u=function(){e.nextFrame(o)}),e.setState(a()({statusStyle:"object"===typeof i?i:null,newStatus:!1},n),u)}},e.updateActiveStatus=function(t,n){e.nextFrame((function(){if(e.state.status===n){var r=e.props.motionDeadline;e.updateStatus(t,{statusActive:!0}),r>0&&setTimeout((function(){e.onMotionEnd({deadline:!0})}),r)}}))},e.nextFrame=function(t){e.cancelNextFrame(),e.raf=C()(t)},e.cancelNextFrame=function(){e.raf&&(C.a.cancel(e.raf),e.raf=null)},e.state={status:"none",statusActive:!1,newStatus:!1,statusStyle:null},e.$cacheEle=null,e.node=null,e.raf=null,e}return d()(t,e),l()(t,[{key:"componentDidMount",value:function(){this.onDomUpdate()}},{key:"componentDidUpdate",value:function(){this.onDomUpdate()}},{key:"componentWillUnmount",value:function(){this._destroyed=!0,this.removeEventListener(this.$cacheEle),this.cancelNextFrame()}},{key:"render",value:function(){var e,t=this.state,n=t.status,i=t.statusActive,u=t.statusStyle,c=this.props,s=c.children,l=c.motionName,f=c.visible,p=c.removeOnLeave,h=c.leavedClassName,d=c.eventProps;return s?"none"!==n&&r(this.props)?s(a()({},d,{className:E()((e={},o()(e,Object(D.b)(l,n),"none"!==n),o()(e,Object(D.b)(l,n+"-active"),"none"!==n&&i),o()(e,l,"string"===typeof l),e)),style:u}),this.setNodeRef):f?s(a()({},d),this.setNodeRef):p?null:s(a()({},d,{className:h}),this.setNodeRef):null}}],[{key:"getDerivedStateFromProps",value:function(e,t){var n=t.prevProps,o=t.status;if(!r(e))return{};var i=e.visible,a=e.motionAppear,u=e.motionEnter,c=e.motionLeave,s=e.motionLeaveImmediately,l={prevProps:e};return("appear"===o&&!a||"enter"===o&&!u||"leave"===o&&!c)&&(l.status="none",l.statusActive=!1,l.newStatus=!1),!n&&i&&a&&(l.status="appear",l.statusActive=!1,l.newStatus=!0),n&&!n.visible&&i&&u&&(l.status="enter",l.statusActive=!1,l.newStatus=!0),(n&&n.visible&&!i&&c||!n&&s&&!i&&c)&&(l.status="leave",l.statusActive=!1,l.newStatus=!0),l}}]),t}(m.a.Component);return i.propTypes=a()({},S,{internalRef:b.a.oneOfType([b.a.object,b.a.func])}),i.defaultProps={visible:!0,motionEnter:!0,motionAppear:!0,motionLeave:!0,removeOnLeave:!0},Object(g.a)(i),n?m.a.forwardRef((function(e,t){return m.a.createElement(i,a()({internalRef:t},e))})):i}(D.c)},function(e,t,n){"use strict";var r=function(){};e.exports=r},function(e,t,n){e.exports=function(){"use strict";function e(e,t){return e(t={exports:{}},t.exports),t.exports}var t=e((function(e){var t=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=t)})),n=e((function(e){var t=e.exports={version:"2.6.5"};"number"==typeof __e&&(__e=t)})),r=(n.version,function(e){return"object"===typeof e?null!==e:"function"===typeof e}),o=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e},i=function(e){try{return!!e()}catch(t){return!0}},a=!i((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})),u=t.document,c=r(u)&&r(u.createElement),s=!a&&!i((function(){return 7!=Object.defineProperty((e="div",c?u.createElement(e):{}),"a",{get:function(){return 7}}).a;var e})),l=Object.defineProperty,f={f:a?Object.defineProperty:function(e,t,n){if(o(e),t=function(e,t){if(!r(e))return e;var n,o;if(t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;if("function"==typeof(n=e.valueOf)&&!r(o=n.call(e)))return o;if(!t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;throw TypeError("Can't convert object to primitive value")}(t,!0),o(n),s)try{return l(e,t,n)}catch(i){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},p=a?function(e,t,n){return f.f(e,t,function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}(1,n))}:function(e,t,n){return e[t]=n,e},h={}.hasOwnProperty,d=function(e,t){return h.call(e,t)},y=0,m=Math.random(),v=e((function(e){var r=t["__core-js_shared__"]||(t["__core-js_shared__"]={});(e.exports=function(e,t){return r[e]||(r[e]=void 0!==t?t:{})})("versions",[]).push({version:n.version,mode:"global",copyright:"\xa9 2019 Denis Pushkarev (zloirock.ru)"})}))("native-function-to-string",Function.toString),b=e((function(e){var r=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++y+m).toString(36))}("src"),o=(""+v).split("toString");n.inspectSource=function(e){return v.call(e)},(e.exports=function(e,n,i,a){var u="function"==typeof i;u&&(d(i,"name")||p(i,"name",n)),e[n]!==i&&(u&&(d(i,r)||p(i,r,e[n]?""+e[n]:o.join(String(n)))),e===t?e[n]=i:a?e[n]?e[n]=i:p(e,n,i):(delete e[n],p(e,n,i)))})(Function.prototype,"toString",(function(){return"function"==typeof this&&this[r]||v.call(this)}))})),g=function(e,t,n){if(function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!")}(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}},w=function e(r,o,i){var a,u,c,s,l=r&e.F,f=r&e.G,h=r&e.P,d=r&e.B,y=f?t:r&e.S?t[o]||(t[o]={}):(t[o]||{}).prototype,m=f?n:n[o]||(n[o]={}),v=m.prototype||(m.prototype={});for(a in f&&(i=o),i)c=((u=!l&&y&&void 0!==y[a])?y:i)[a],s=d&&u?g(c,t):h&&"function"==typeof c?g(Function.call,c):c,y&&b(y,a,c,r&e.U),m[a]!=c&&p(m,a,s),h&&v[a]!=c&&(v[a]=c)};t.core=n,w.F=1,w.G=2,w.S=4,w.P=8,w.B=16,w.W=32,w.U=64,w.R=128;var x,E=w,O=Math.ceil,C=Math.floor,D=function(e){return isNaN(e=+e)?0:(e>0?C:O)(e)},S=(x=!1,function(e,t){var n,r,o=String(function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}(e)),i=D(t),a=o.length;return i<0||i>=a?x?"":void 0:(n=o.charCodeAt(i))<55296||n>56319||i+1===a||(r=o.charCodeAt(i+1))<56320||r>57343?x?o.charAt(i):n:x?o.slice(i,i+2):r-56320+(n-55296<<10)+65536});E(E.P,"String",{codePointAt:function(e){return S(this,e)}}),n.String.codePointAt;var A=Math.max,P=Math.min,k=function(e,t){return(e=D(e))<0?A(e+t,0):P(e,t)},j=String.fromCharCode,_=String.fromCodePoint;E(E.S+E.F*(!!_&&1!=_.length),"String",{fromCodePoint:function(e){for(var t,n=arguments,r=[],o=arguments.length,i=0;o>i;){if(t=+n[i++],k(t,1114111)!==t)throw RangeError(t+" is not a valid code point");r.push(t<65536?j(t):j(55296+((t-=65536)>>10),t%1024+56320))}return r.join("")}}),n.String.fromCodePoint;var T,F,N,M,I,R,B,L,z,U,H,V,K,W,q={Space_Separator:/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,ID_Start:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,ID_Continue:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/},$=function(e){return"string"===typeof e&&q.Space_Separator.test(e)},X=function(e){return"string"===typeof e&&(e>="a"&&e<="z"||e>="A"&&e<="Z"||"$"===e||"_"===e||q.ID_Start.test(e))},J=function(e){return"string"===typeof e&&(e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||"$"===e||"_"===e||"\u200c"===e||"\u200d"===e||q.ID_Continue.test(e))},Y=function(e){return"string"===typeof e&&/[0-9]/.test(e)},G=function(e){return"string"===typeof e&&/[0-9A-Fa-f]/.test(e)};function Q(){for(U="default",H="",V=!1,K=1;;){W=Z();var e=te[U]();if(e)return e}}function Z(){if(T[M])return String.fromCodePoint(T.codePointAt(M))}function ee(){var e=Z();return"\n"===e?(I++,R=0):e?R+=e.length:R++,e&&(M+=e.length),e}var te={default:function(){switch(W){case"\t":case"\v":case"\f":case" ":case"\xa0":case"\ufeff":case"\n":case"\r":case"\u2028":case"\u2029":return void ee();case"/":return ee(),void(U="comment");case void 0:return ee(),ne("eof")}if(!$(W))return te[F]();ee()},comment:function(){switch(W){case"*":return ee(),void(U="multiLineComment");case"/":return ee(),void(U="singleLineComment")}throw ce(ee())},multiLineComment:function(){switch(W){case"*":return ee(),void(U="multiLineCommentAsterisk");case void 0:throw ce(ee())}ee()},multiLineCommentAsterisk:function(){switch(W){case"*":return void ee();case"/":return ee(),void(U="default");case void 0:throw ce(ee())}ee(),U="multiLineComment"},singleLineComment:function(){switch(W){case"\n":case"\r":case"\u2028":case"\u2029":return ee(),void(U="default");case void 0:return ee(),ne("eof")}ee()},value:function(){switch(W){case"{":case"[":return ne("punctuator",ee());case"n":return ee(),re("ull"),ne("null",null);case"t":return ee(),re("rue"),ne("boolean",!0);case"f":return ee(),re("alse"),ne("boolean",!1);case"-":case"+":return"-"===ee()&&(K=-1),void(U="sign");case".":return H=ee(),void(U="decimalPointLeading");case"0":return H=ee(),void(U="zero");case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return H=ee(),void(U="decimalInteger");case"I":return ee(),re("nfinity"),ne("numeric",1/0);case"N":return ee(),re("aN"),ne("numeric",NaN);case'"':case"'":return V='"'===ee(),H="",void(U="string")}throw ce(ee())},identifierNameStartEscape:function(){if("u"!==W)throw ce(ee());ee();var e=oe();switch(e){case"$":case"_":break;default:if(!X(e))throw le()}H+=e,U="identifierName"},identifierName:function(){switch(W){case"$":case"_":case"\u200c":case"\u200d":return void(H+=ee());case"\\":return ee(),void(U="identifierNameEscape")}if(!J(W))return ne("identifier",H);H+=ee()},identifierNameEscape:function(){if("u"!==W)throw ce(ee());ee();var e=oe();switch(e){case"$":case"_":case"\u200c":case"\u200d":break;default:if(!J(e))throw le()}H+=e,U="identifierName"},sign:function(){switch(W){case".":return H=ee(),void(U="decimalPointLeading");case"0":return H=ee(),void(U="zero");case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return H=ee(),void(U="decimalInteger");case"I":return ee(),re("nfinity"),ne("numeric",K*(1/0));case"N":return ee(),re("aN"),ne("numeric",NaN)}throw ce(ee())},zero:function(){switch(W){case".":return H+=ee(),void(U="decimalPoint");case"e":case"E":return H+=ee(),void(U="decimalExponent");case"x":case"X":return H+=ee(),void(U="hexadecimal")}return ne("numeric",0*K)},decimalInteger:function(){switch(W){case".":return H+=ee(),void(U="decimalPoint");case"e":case"E":return H+=ee(),void(U="decimalExponent")}if(!Y(W))return ne("numeric",K*Number(H));H+=ee()},decimalPointLeading:function(){if(Y(W))return H+=ee(),void(U="decimalFraction");throw ce(ee())},decimalPoint:function(){switch(W){case"e":case"E":return H+=ee(),void(U="decimalExponent")}return Y(W)?(H+=ee(),void(U="decimalFraction")):ne("numeric",K*Number(H))},decimalFraction:function(){switch(W){case"e":case"E":return H+=ee(),void(U="decimalExponent")}if(!Y(W))return ne("numeric",K*Number(H));H+=ee()},decimalExponent:function(){switch(W){case"+":case"-":return H+=ee(),void(U="decimalExponentSign")}if(Y(W))return H+=ee(),void(U="decimalExponentInteger");throw ce(ee())},decimalExponentSign:function(){if(Y(W))return H+=ee(),void(U="decimalExponentInteger");throw ce(ee())},decimalExponentInteger:function(){if(!Y(W))return ne("numeric",K*Number(H));H+=ee()},hexadecimal:function(){if(G(W))return H+=ee(),void(U="hexadecimalInteger");throw ce(ee())},hexadecimalInteger:function(){if(!G(W))return ne("numeric",K*Number(H));H+=ee()},string:function(){switch(W){case"\\":return ee(),void(H+=function(){switch(Z()){case"b":return ee(),"\b";case"f":return ee(),"\f";case"n":return ee(),"\n";case"r":return ee(),"\r";case"t":return ee(),"\t";case"v":return ee(),"\v";case"0":if(ee(),Y(Z()))throw ce(ee());return"\0";case"x":return ee(),function(){var e="",t=Z();if(!G(t))throw ce(ee());if(e+=ee(),t=Z(),!G(t))throw ce(ee());return e+=ee(),String.fromCodePoint(parseInt(e,16))}();case"u":return ee(),oe();case"\n":case"\u2028":case"\u2029":return ee(),"";case"\r":return ee(),"\n"===Z()&&ee(),"";case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":case void 0:throw ce(ee())}return ee()}());case'"':return V?(ee(),ne("string",H)):void(H+=ee());case"'":return V?void(H+=ee()):(ee(),ne("string",H));case"\n":case"\r":throw ce(ee());case"\u2028":case"\u2029":!function(e){console.warn("JSON5: '"+fe(e)+"' in strings is not valid ECMAScript; consider escaping")}(W);break;case void 0:throw ce(ee())}H+=ee()},start:function(){switch(W){case"{":case"[":return ne("punctuator",ee())}U="value"},beforePropertyName:function(){switch(W){case"$":case"_":return H=ee(),void(U="identifierName");case"\\":return ee(),void(U="identifierNameStartEscape");case"}":return ne("punctuator",ee());case'"':case"'":return V='"'===ee(),void(U="string")}if(X(W))return H+=ee(),void(U="identifierName");throw ce(ee())},afterPropertyName:function(){if(":"===W)return ne("punctuator",ee());throw ce(ee())},beforePropertyValue:function(){U="value"},afterPropertyValue:function(){switch(W){case",":case"}":return ne("punctuator",ee())}throw ce(ee())},beforeArrayValue:function(){if("]"===W)return ne("punctuator",ee());U="value"},afterArrayValue:function(){switch(W){case",":case"]":return ne("punctuator",ee())}throw ce(ee())},end:function(){throw ce(ee())}};function ne(e,t){return{type:e,value:t,line:I,column:R}}function re(e){for(var t=0,n=e;t0;){var n=Z();if(!G(n))throw ce(ee());e+=ee()}return String.fromCodePoint(parseInt(e,16))}var ie={start:function(){if("eof"===B.type)throw se();ae()},beforePropertyName:function(){switch(B.type){case"identifier":case"string":return L=B.value,void(F="afterPropertyName");case"punctuator":return void ue();case"eof":throw se()}},afterPropertyName:function(){if("eof"===B.type)throw se();F="beforePropertyValue"},beforePropertyValue:function(){if("eof"===B.type)throw se();ae()},beforeArrayValue:function(){if("eof"===B.type)throw se();"punctuator"!==B.type||"]"!==B.value?ae():ue()},afterPropertyValue:function(){if("eof"===B.type)throw se();switch(B.value){case",":return void(F="beforePropertyName");case"}":ue()}},afterArrayValue:function(){if("eof"===B.type)throw se();switch(B.value){case",":return void(F="beforeArrayValue");case"]":ue()}},end:function(){}};function ae(){var e;switch(B.type){case"punctuator":switch(B.value){case"{":e={};break;case"[":e=[]}break;case"null":case"boolean":case"numeric":case"string":e=B.value}if(void 0===z)z=e;else{var t=N[N.length-1];Array.isArray(t)?t.push(e):t[L]=e}if(null!==e&&"object"===typeof e)N.push(e),F=Array.isArray(e)?"beforeArrayValue":"beforePropertyName";else{var n=N[N.length-1];F=null==n?"end":Array.isArray(n)?"afterArrayValue":"afterPropertyValue"}}function ue(){N.pop();var e=N[N.length-1];F=null==e?"end":Array.isArray(e)?"afterArrayValue":"afterPropertyValue"}function ce(e){return pe(void 0===e?"JSON5: invalid end of input at "+I+":"+R:"JSON5: invalid character '"+fe(e)+"' at "+I+":"+R)}function se(){return pe("JSON5: invalid end of input at "+I+":"+R)}function le(){return pe("JSON5: invalid identifier character at "+I+":"+(R-=5))}function fe(e){var t={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(t[e])return t[e];if(e<" "){var n=e.charCodeAt(0).toString(16);return"\\x"+("00"+n).substring(n.length)}return e}function pe(e){var t=new SyntaxError(e);return t.lineNumber=I,t.columnNumber=R,t}return{parse:function(e,t){T=String(e),F="start",N=[],M=0,I=1,R=0,B=void 0,L=void 0,z=void 0;do{B=Q(),ie[F]()}while("eof"!==B.type);return"function"===typeof t?function e(t,n,r){var o=t[n];if(null!=o&&"object"===typeof o)for(var i in o){var a=e(o,i,r);void 0===a?delete o[i]:o[i]=a}return r.call(t,n,o)}({"":z},"",t):z},stringify:function(e,t,n){var r,o,i,a=[],u="",c="";if(null==t||"object"!==typeof t||Array.isArray(t)||(n=t.space,i=t.quote,t=t.replacer),"function"===typeof t)o=t;else if(Array.isArray(t)){r=[];for(var s=0,l=t;s0&&(n=Math.min(10,Math.floor(n)),c=" ".substr(0,n)):"string"===typeof n&&(c=n.substr(0,10)),h("",{"":e});function h(e,t){var n=t[e];switch(null!=n&&("function"===typeof n.toJSON5?n=n.toJSON5(e):"function"===typeof n.toJSON&&(n=n.toJSON(e))),o&&(n=o.call(t,e,n)),n instanceof Number?n=Number(n):n instanceof String?n=String(n):n instanceof Boolean&&(n=n.valueOf()),n){case null:return"null";case!0:return"true";case!1:return"false"}return"string"===typeof n?d(n):"number"===typeof n?String(n):"object"===typeof n?Array.isArray(n)?function(e){if(a.indexOf(e)>=0)throw TypeError("Converting circular structure to JSON5");a.push(e);var t=u;u+=c;for(var n,r=[],o=0;o=0)throw TypeError("Converting circular structure to JSON5");a.push(e);var t=u;u+=c;for(var n,o,i=r||Object.keys(e),s=[],l=0,f=i;l=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function v(e,t){return e<0?0:e>=t?t:e}function b(e){var t=e.scrollTop,n=e.scrollHeight,r=e.clientHeight;if(n<=r)return 0;var o=n-r;return v(t,o)/o}function g(e){return e?b(e):0}function w(e){var t=Object(y.a)(e);return t?t.offsetHeight:0}function x(e,t,n){var r=function(e,t){var n=Math.floor(e*t),r=n/t;return{index:n,offsetPtg:(e-r)/((n+1)/t-r)}}(e,t),o=r.index,i=r.offsetPtg,a=Math.ceil(e*n),u=Math.ceil((1-e)*n);return{itemIndex:o,itemOffsetPtg:i,startIndex:Math.max(0,o-a),endIndex:Math.min(t-1,o+u)}}function E(e){var t=e.itemIndex,n=e.itemOffsetPtg,r=e.itemElementHeights,o=e.scrollPtg*e.clientHeight,i=n*(r[(0,e.getItemKey)(t)]||0);return Math.floor(o-i)}function O(e){var t=e.locatedItemRelativeTop,n=e.locatedItemIndex,r=e.compareItemIndex,o=e.startIndex,i=e.endIndex,a=e.getItemKey,u=e.itemElementHeights,c=t,s=a(r);if(r<=n)for(var l=n;l>=o;l-=1){if(a(l)===s)break;c-=u[a(l-1)]||0}else for(var f=n;f<=i;f+=1){var p=a(f);if(p===s)break;c+=u[p]||0}return c}function C(e,t,n,r){return!1!==r&&"number"===typeof e&&n*t>e}function D(e,t,n,r){var o=n-e,i=t-n;if(r<=2*Math.min(o,i)){var a=Math.floor(r/2);return r%2?n+a+1:n-a}return o>i?n-(r-i):n+(r-o)}function S(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function A(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function j(e){return(j="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function _(e,t){for(var n=0;n=h}if(!r){var m=x(b,a.length,f),g=m.itemIndex,E=m.itemOffsetPtg,O=m.startIndex,C=m.endIndex;return void n.setState({scrollTop:v,itemIndex:g,itemOffsetPtg:E,startIndex:O,endIndex:C})}t=sn.listRef.current.scrollTop+h&&(O="bottom")),"top"===O?n.listRef.current.scrollTop=D:"bottom"===O&&(n.listRef.current.scrollTop=D-(h-C))}}}else n.listRef.current.scrollTop=e}))},n.renderChildren=function(e,t,o){var i=n.state.status;return e.map((function(e,a){var u=t+a,c=o(e,u,{style:"MEASURE_START"===i?{visibility:"hidden"}:{}}),s=n.getIndexKey(u);return r.cloneElement(c,{key:s,ref:function(e){n.itemElements[s]=e}})}))},n.cachedProps=e,n.state={status:"NONE",scrollTop:null,itemIndex:0,itemOffsetPtg:0,startIndex:0,endIndex:0,startItemTop:0,isVirtual:C(e.height,e.itemHeight,e.data.length,e.virtual),itemCount:e.data.length},n}var n,o,i;return function(e,t){if("function"!==typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&N(e,t)}(t,e),n=t,i=[{key:"getDerivedStateFromProps",value:function(e){return e.disabled?null:{itemCount:e.data.length}}}],(o=[{key:"componentDidMount",value:function(){this.listRef.current&&(this.listRef.current.scrollTop=0,this.onScroll(null))}},{key:"componentDidUpdate",value:function(){var e=this,t=this.state.status,n=this.props,r=n.data,o=n.height,i=n.itemHeight,a=n.disabled,u=n.onSkipRender,c=n.virtual,s=this.cachedProps.data||[],l=null;if(s.length!==r.length){var f=function(e,t,n){var r,o,i=e.length,a=t.length;if(0===i&&0===a)return null;is.length){var p=this.state,h=p.startIndex,d=p.endIndex;u&&(null===l||l=x;k-=1)P-=this.itemElementHeights[this.getIndexKey(k)]||0;this.setState({status:"MEASURE_DONE",startItemTop:P})}var j;if("SWITCH_TO_RAW"===t){for(var _=this.state.cacheScroll,T=_.itemIndex,F=_.relativeTop,N=0;N10)break}null!==l&&(this.lockScroll=!0,this.listRef.current.scrollTop=l,this.setState({status:"MEASURE_START",scrollTop:l,itemIndex:f,itemOffsetPtg:p,startIndex:h,endIndex:d}),requestAnimationFrame((function(){requestAnimationFrame((function(){t.lockScroll=!1}))})))}},{key:"render",value:function(){var e=this.state,t=e.isVirtual,n=e.itemCount,o=this.props,i=o.prefixCls,a=o.style,c=o.className,s=o.component,l=void 0===s?"div":s,f=o.height,p=o.itemHeight,h=o.fullHeight,y=void 0===h||h,m=o.data,v=o.children,b=(o.itemKey,o.onSkipRender,o.disabled,o.virtual),g=k(o,["prefixCls","style","className","component","height","itemHeight","fullHeight","data","children","itemKey","onSkipRender","disabled","virtual"]),w=u()(i,c);if(!t){var x=C(f,p,m.length,b);return r.createElement(l,Object.assign({style:f?A({},a,P({},y?"height":"maxHeight",f),M):a,className:w},g,{onScroll:this.onRawScroll,ref:this.listRef}),r.createElement(d,{prefixCls:i,height:f},this.renderChildren(x?m.slice(0,Math.ceil(f/p)):m,0,v)))}var E=A({},a,{height:f},M),O=this.state,D=O.status,S=O.startIndex,j=O.endIndex,_=O.startItemTop,T=n*p*1;return r.createElement(l,Object.assign({style:E,className:w},g,{onScroll:this.onScroll,ref:this.listRef}),r.createElement(d,{prefixCls:i,height:T,offset:"MEASURE_DONE"===D?_:0},this.renderChildren(m.slice(S,j+1),S,v)))}}])&&_(n.prototype,o),i&&_(n,i),t}(r.Component);I.defaultProps={itemHeight:15,data:[]};var R=I,B=function(e){var t,n=e.className,o=e.customizeIcon,i=e.customizeIconProps,a=e.onMouseDown,c=e.onClick,s=e.children;return t="function"===typeof o?o(i):o,r.createElement("span",{className:n,onMouseDown:function(e){e.preventDefault(),a&&a(e)},style:{userSelect:"none",WebkitUserSelect:"none"},unselectable:"on",onClick:c,"aria-hidden":!0},void 0!==t?t:r.createElement("span",{className:u()(n.split(/\s+/).map((function(e){return"".concat(e,"-icon")})))},s))};function L(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function z(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function U(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"===typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(r=(a=u.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(c){o=!0,i=c}finally{try{r||null==u.return||u.return()}finally{if(o)throw i}}return n}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return H(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return H(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function H(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:1,n=D.length,r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function ee(e){var t=e.key,n=e.props,r=n.children,o=n.value;return G({key:t,value:void 0!==o?o:t,children:r},Z(n,["children","value"]))}function te(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];return Object(J.a)(e).map((function(e,n){if(!r.isValidElement(e)||!e.type)return null;var o=e.type.isSelectOptGroup,i=e.key,a=e.props,u=a.children,c=Z(a,["children"]);return t||!o?ee(e):G({key:"__RC_SELECT_GRP__".concat(null===i?n:i,"__"),label:i},c,{options:te(u)})})).filter((function(e){return e}))}var ne=n(13);function re(e){return function(e){if(Array.isArray(e))return oe(e)}(e)||function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return oe(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return oe(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function oe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0&&e[n].disabled;n-=1);var o=null;return-1!==n&&(o=r[n],r.splice(n,1)),{values:r,removedValue:o}}var ue="undefined"!==typeof window&&window.document&&window.document.documentElement,ce=0;function se(e){return function(e){if(Array.isArray(e))return pe(e)}(e)||he(e)||fe(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function le(e){return function(e){if(Array.isArray(e))return e}(e)||he(e)||fe(e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function fe(e,t){if(e){if("string"===typeof e)return pe(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?pe(e,t):void 0}}function pe(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1,u.reduce((function(t,n){return[].concat(se(t),se(e(n,a)))}),[]).filter((function(e){return e}))}(e,t);return n?r:null}function Oe(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"===typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(r=(a=u.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(c){o=!0,i=c}finally{try{r||null==u.return||u.return()}finally{if(o)throw i}}return n}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return Ce(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ce(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Ce(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&void 0!==arguments[0]?arguments[0]:[];return e.map(He)}function Ke(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[],n=[],r=0,o=t.length,i=Ve(e),a=Ve(t);i.forEach((function(e){for(var t=!1,i=r;i1}));return c.forEach((function(e){(n=n.filter((function(t){var n=t.key,r=t.status;return n!==e||"remove"!==r}))).forEach((function(t){t.key===e&&(t.status="keep")}))})),n}var We=Object.keys(ze.a);var qe=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:ze.b,n=function(n){function r(){var e,t,n,o;je()(this,r);for(var i=arguments.length,a=Array(i),u=0;u=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function rt(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"===typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(r=(a=u.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(c){o=!0,i=c}finally{try{r||null==u.return||u.return()}finally{if(o)throw i}}return n}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return ot(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ot(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ot(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);nw&&(r="".concat(o.slice(0,w),"..."))}return function(e){for(var t=1;t0&&z.push({key:"__RC_SELECT_MAX_REST_COUNT__",label:"function"===typeof E?E(r.slice(g)):E});var U=o.a.createElement(qe,{component:!1,keys:z,motionName:b,motionAppear:j},(function(e){var t=e.key,r=e.label,i=e.value,a=e.disabled,c=e.className,s=e.style,l=t||i,f="__RC_SELECT_MAX_REST_COUNT__"!==t&&!a,p=function(e){e.preventDefault(),e.stopPropagation()},h=function(e){e&&e.stopPropagation(),C(i,{selected:!1})};return"function"===typeof O?o.a.createElement("span",{key:l,onMouseDown:p,className:c,style:s},O({label:r,value:i,disabled:a,closable:f,onClose:h})):o.a.createElement("span",{key:l,className:u()(c,"".concat(n,"-selection-item"),tt({},"".concat(n,"-selection-item-disabled"),a)),style:s},o.a.createElement("span",{className:"".concat(n,"-selection-item-content")},r),f&&o.a.createElement(B,{className:"".concat(n,"-selection-item-remove"),onMouseDown:p,onClick:h,customizeIcon:v},"\xd7"))}));return o.a.createElement(o.a.Fragment,null,U,o.a.createElement("span",{className:"".concat(n,"-selection-search"),style:{width:N}},o.a.createElement(Qe,{ref:c,open:i,prefixCls:n,id:t,inputElement:null,disabled:l,autoFocus:h,autoComplete:d,editable:R,accessibilityIndex:y,value:I,onKeyDown:A,onMouseDown:P,onChange:D,onPaste:S,tabIndex:m}),o.a.createElement("span",{ref:T,className:"".concat(n,"-selection-search-mirror"),"aria-hidden":!0},I,"\xa0")),!r.length&&!I&&o.a.createElement("span",{className:"".concat(n,"-selection-placeholder")},s))},at=function(e){var t,n=e.inputElement,r=e.prefixCls,i=e.id,a=e.inputRef,u=e.disabled,c=e.autoFocus,s=e.autoComplete,l=e.accessibilityIndex,f=e.mode,p=e.open,h=e.values,d=e.placeholder,y=e.tabIndex,m=e.showSearch,v=e.searchValue,b=e.activeValue,g=e.onInputKeyDown,w=e.onInputMouseDown,x=e.onInputChange,E=e.onInputPaste,O="combobox"===f,C=O||m&&p,D=h[0],S=v;O&&(S=D?null===(t=D.value)?"":String(t):b||v);var A=!("combobox"!==f&&!p)&&!!S;return o.a.createElement(o.a.Fragment,null,o.a.createElement("span",{className:"".concat(r,"-selection-search")},o.a.createElement(Qe,{ref:a,prefixCls:r,id:i,open:p,inputElement:n,disabled:u,autoFocus:c,autoComplete:s,editable:C,accessibilityIndex:l,value:S,onKeyDown:g,onMouseDown:w,onChange:x,onPaste:E,tabIndex:y})),!O&&D&&!A&&o.a.createElement("span",{className:"".concat(r,"-selection-item")},D.label),!D&&!A&&o.a.createElement("span",{className:"".concat(r,"-selection-placeholder")},d))};function ut(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:250,t=r.useRef(null),n=r.useRef(null);function o(r){(r||null===t.current)&&(t.current=r),window.clearTimeout(n.current),n.current=window.setTimeout((function(){t.current=null}),e)}return r.useEffect((function(){return function(){window.clearTimeout(n.current)}}),[]),[function(){return t.current},o]}function ct(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"===typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(r=(a=u.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(c){o=!0,i=c}finally{try{r||null==u.return||u.return()}finally{if(o)throw i}}return n}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return st(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return st(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function st(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var mt=r.forwardRef((function(e,t){var n=e.prefixCls,o=(e.disabled,e.visible),i=e.children,a=e.popupElement,c=e.containerWidth,s=e.animation,l=e.transitionName,f=e.dropdownStyle,p=e.dropdownClassName,h=e.direction,d=void 0===h?"ltr":h,y=e.dropdownMatchSelectWidth,m=void 0===y||y,v=e.dropdownRender,b=e.dropdownAlign,g=e.getPopupContainer,w=e.empty,x=e.getTriggerDOMNode,E=yt(e,["prefixCls","disabled","visible","children","popupElement","containerWidth","animation","transitionName","dropdownStyle","dropdownClassName","direction","dropdownMatchSelectWidth","dropdownRender","dropdownAlign","getPopupContainer","empty","getTriggerDOMNode"]),O="".concat(n,"-dropdown"),C=a;v&&(C=v(a));var D=r.useMemo((function(){return function(e){var t="number"!==typeof e?0:1;return{bottomLeft:{points:["tl","bl"],offset:[0,4],overflow:{adjustX:t,adjustY:1}},bottomRight:{points:["tr","br"],offset:[0,4],overflow:{adjustX:t,adjustY:1}},topLeft:{points:["bl","tl"],offset:[0,-4],overflow:{adjustX:t,adjustY:1}},topRight:{points:["br","tr"],offset:[0,-4],overflow:{adjustX:t,adjustY:1}}}}(m)}),[m]),S=s?"".concat(O,"-").concat(s):l,A=r.useRef(null);r.useImperativeHandle(t,(function(){return{getPopupElement:function(){return A.current}}}));var P=function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var Pt=["removeIcon","placeholder","autoFocus","maxTagCount","maxTagTextLength","maxTagPlaceholder","choiceTransitionName","onInputKeyDown"];function kt(e){return(kt="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var jt=function(e){var t=e.mode,n=e.options,r=e.children,i=e.backfill,a=e.allowClear,u=e.placeholder,c=e.getInputElement,s=e.showSearch,l=e.onSearch,f=e.defaultOpen,p=e.autoFocus,h=e.labelInValue,d=e.value,y=e.inputValue,m=e.optionLabelProp,v="multiple"===t||"tags"===t,b=void 0!==s?s:v||"combobox"===t,g=n||te(r);if(Object(ne.a)("tags"!==t||g.every((function(e){return!e.disabled})),"Please avoid setting option to disabled in tags mode since user can always type text as tag."),"tags"===t||"combobox"===t){var w=g.some((function(e){return e.options?e.options.some((function(e){return"number"===typeof("value"in e?e.value:e.key)})):"number"===typeof("value"in e?e.value:e.key)}));Object(ne.a)(!w,"`value` of Option should not use number type when `mode` is `tags` or `combobox`.")}if(Object(ne.a)("combobox"!==t||!m,"`combobox` mode not support `optionLabelProp`. Please set `value` on Option directly."),Object(ne.a)("combobox"===t||!i,"`backfill` only works with `combobox` mode."),Object(ne.a)("combobox"===t||!c,"`getInputElement` only work with `combobox` mode."),Object(ne.b)("combobox"!==t||!c||!a||!u,"Customize `getInputElement` should customize clear and placeholder logic instead of configuring `allowClear` and `placeholder`."),l&&!b&&"combobox"!==t&&"tags"!==t&&Object(ne.a)(!1,"`onSearch` should work with `showSearch` instead of use alone."),Object(ne.b)(!f||p,"`defaultOpen` makes Select open without focus which means it will not close by click outside. You can set `autoFocus` if needed."),void 0!==d&&null!==d){var x=ie(d);Object(ne.a)(!h||x.every((function(e){return"object"===kt(e)&&("key"in e||"value"in e)})),"`value` should in shape of `{ value: string | number, label?: ReactNode }` when you set `labelInValue` to `true`"),Object(ne.a)(!v||Array.isArray(d),"`value` should be array when `mode` is `multiple` or `tags`")}if(r){var E=null;Object(J.a)(r).some((function(e){if(!o.a.isValidElement(e)||!e.type)return!1;var t=e.type;return!t.isSelectOption&&(t.isSelectOptGroup?!Object(J.a)(e.props.children).every((function(t){return!(o.a.isValidElement(t)&&e.type&&!t.type.isSelectOption)||(E=t.type,!1)})):(E=t,!0))})),E&&Object(ne.a)(!1,"`children` should be `Select.Option` or `Select.OptGroup` instead of `".concat(E.displayName||E.name||E,"`.")),Object(ne.a)(void 0===y,"`inputValue` is deprecated, please use `searchValue` instead.")}};function _t(e){return(_t="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Tt(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ft(e,t){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:10,t=r.useState(!1),n=bt(t,2),o=n[0],i=n[1],a=r.useRef(null),u=function(){window.clearTimeout(a.current)};r.useEffect((function(){return u}),[]);var c=function(t,n){u(),a.current=window.setTimeout((function(){i(t),n&&n()}),e)};return[o,c,u]}(),3),ze=Le[0],Ue=Le[1],He=Le[2],Ve=Ct(r.useState(),2),Ke=Ve[0],We=Ve[1];r.useEffect((function(){We("rc_select_".concat(function(){var e;return ue?(e=ce,ce+=1):e="TEST_OR_SSR",e}()))}),[]);var qe=g||Ke,$e=X;void 0===$e&&($e=E?"label":"children");var Xe="combobox"!==C&&A,Je="tags"===C||"multiple"===C,Ye=void 0!==P?P:Je||"combobox"===C,Ge=r.useRef(null);r.useImperativeHandle(d,(function(){return{focus:Re.current.focus,blur:Re.current.blur}}));var Qe=Ct(r.useState(D||S),2),et=Qe[0],tt=Qe[1],nt=void 0!==D?D:et,rt=r.useRef(D);r.useEffect((function(){rt.current===D||void 0!==D&&null!==D||tt(void 0),rt.current=D}),[D]);var ot=r.useMemo((function(){return function(e,t){var n=t.labelInValue,r=t.combobox;if(void 0===e||""===e&&r)return[];var o=Array.isArray(e)?e:[e];return n?o.map((function(e){var t=e.key,n=e.value;return void 0!==n?n:t})):o}(nt,{labelInValue:Xe,combobox:"combobox"===C})}),[nt,Xe]),it=r.useMemo((function(){return new Set(ot)}),[ot]),at=Ct(r.useState(null),2),ct=at[0],st=at[1],lt=Ct(r.useState(""),2),pt=lt[0],ht=lt[1],dt=pt;"combobox"===C&&void 0!==D?dt=D:void 0!==j?dt=j:k&&(dt=k);var yt=r.useMemo((function(){var e=E;return void 0===e&&(e=o(O)),"tags"===C&&p&&(e=p(e,nt,$e,A)),e||[]}),[E,O,C,nt]),mt=r.useMemo((function(){return i(yt,e)}),[yt]),gt=r.useMemo((function(){if(!dt||!Ye)return Ot(yt);var e=s(dt,yt,{optionFilterProp:F,filterOption:"combobox"===C&&void 0===_?function(){return!0}:_});return"tags"===C&&e.every((function(e){return e.value!==dt}))&&e.unshift({value:dt,label:dt,key:"__RC_SELECT_TAG_PLACEHOLDER__"}),e}),[yt,dt,C,Ye]),wt=r.useMemo((function(){return i(gt,e)}),[gt]);r.useEffect((function(){Be.current&&Be.current.scrollTo&&Be.current.scrollTo(0)}),[dt]);var Dt=r.useMemo((function(){return ot.map((function(e){return xt({},a(e,{options:mt,prevValue:nt,labelInValue:Xe,optionLabelProp:$e}),{disabled:l(e,mt)})}))}),[nt,yt]),St=function(e,t,n){var r=f([e],mt)[0];if(!_e.skipTriggerSelect){var o=Xe?a(e,{options:mt,prevValue:nt,labelInValue:Xe,optionLabelProp:$e}):e;t&&Pe?Pe(o,r):!t&&ke&&ke(o,r)}Fe&&(t&&_e.onRawSelect?_e.onRawSelect(e,r,n):!t&&_e.onRawDeselect&&_e.onRawDeselect(e,r,n))},kt=function(e){if(!Fe||!_e.skipTriggerChange){var t=function(e,t){var n=t.optionLabelProp,r=t.labelInValue,o=t.prevValue,i=t.options,a=t.getLabeledValue,u=e;return r&&(u=u.map((function(e){return a(e,{options:i,prevValue:o,labelInValue:r,optionLabelProp:n})}))),u}(Array.from(e),{labelInValue:Xe,options:mt,getLabeledValue:a,prevValue:nt,optionLabelProp:$e}),n=Je?t:t[0];if(Ae&&(0!==ot.length||0!==t.length)){var r=f(e,mt);Ae(n,Je?r:r[0])}tt(n)}},jt=function(e,t){var n,r=t.selected,o=t.source;V||(Je?(n=new Set(ot),r?n.add(e):n.delete(e)):(n=new Set).add(e),(Je||!Je&&Array.from(ot)[0]!==e)&&kt(Array.from(n)),St(e,!Je||r,o),"combobox"===C?(ht(String(e)),st("")):Je&&!M||(ht(""),st("")))},_t="combobox"===C&&Y&&Y()||null,Tt=Ct(function(e,t){var n=t||{},o=n.defaultValue,i=n.value,a=n.onChange,u=n.postState,c=Oe(r.useState((function(){return void 0!==i?i:void 0!==o?"function"===typeof o?o():o:"function"===typeof e?e():e})),2),s=c[0],l=c[1],f=void 0!==i?i:s;u&&(f=u(f));var p=r.useRef(!0);return r.useEffect((function(){p.current?p.current=!1:void 0===i&&l(i)}),[i]),[f,function(e){l(e),f!==e&&a&&a(e,f)}]}(void 0,{defaultValue:x,value:w}),2),Ft=Tt[0],Nt=Tt[1],Mt=Ft,It=!$&&!gt.length;(V||It&&Mt&&"combobox"===C)&&(Mt=!1);var Rt=!It&&Mt,Bt=function(e){var t=void 0!==e?e:!Mt;Ft===t||V||(Nt(t),ge&&ge(t))};!function(e,t,n){var o=r.useRef(null);o.current={elements:e.filter((function(e){return e})),open:t,triggerOpen:n},r.useEffect((function(){function e(e){var t=e.target;o.current.open&&o.current.elements.every((function(e){return!e.contains(t)&&e!==t}))&&o.current.triggerOpen(!1)}return window.addEventListener("mousedown",e),function(){return window.removeEventListener("mousedown",e)}}),[])}([Me.current,Ie.current&&Ie.current.getPopupElement()],Rt,Bt);var Lt=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],n=!0,r=e;st(null);var o=Ee(e,me),i=o;if("combobox"===C)t&&kt([r]);else if(o){r="","tags"!==C&&(i=o.map((function(e){var t=mt.find((function(t){return t.data[$e]===e}));return t?t.data.value:null})).filter((function(e){return null!==e})));var a=Array.from(new Set([].concat(Ot(ot),Ot(i))));kt(a),a.forEach((function(e){St(e,!0,"input")})),Bt(!1),n=!1}return ht(r),I&&dt!==r&&I(r),n};r.useEffect((function(){Ft&&V&&Nt(!1)}),[V]),r.useEffect((function(){Mt||Je||"combobox"===C||Lt("",!1)}),[Mt]);var zt=Ct(ut(),2),Ut=zt[0],Ht=zt[1],Vt=r.useRef(!1),Kt=[];r.useEffect((function(){return function(){Kt.forEach((function(e){return clearTimeout(e)})),Kt.splice(0,Kt.length)}}),[]);var Wt=Ct(r.useState(0),2),qt=Wt[0],$t=Wt[1],Xt=void 0!==W?W:"combobox"!==C,Jt=Ct(r.useState(null),2),Yt=Jt[0],Gt=Jt[1];Ze((function(){if(Rt){var e=Math.ceil(Me.current.offsetWidth);Yt!==e&&Gt(e)}}),[Rt]);var Qt,Zt=r.createElement(n,{ref:Be,prefixCls:v,id:qe,open:Mt,childrenAsData:!E,options:gt,flattenOptions:wt,multiple:Je,values:it,height:Z,itemHeight:te,onSelect:function(e,t){jt(e,xt({},t,{source:"option"}))},onToggleOpen:Bt,onActiveValue:function(e,t){$t(t),J&&"combobox"===C&&null!==e&&st(String(e))},defaultActiveFirstOption:Xt,notFoundContent:$,onScroll:be,searchValue:dt,menuItemSelectedIcon:H,virtual:!1!==oe&&!1!==le});!V&&R&&(ot.length||dt)&&(Qt=r.createElement(B,{className:"".concat(v,"-clear"),onMouseDown:function(){Fe&&_e.onClear&&_e.onClear(),kt([]),Lt("",!1)},customizeIcon:L},"\xd7"));var en,tn=void 0!==z?z:K||!Je&&"combobox"!==C;tn&&(en=r.createElement(B,{className:u()("".concat(v,"-arrow"),Et({},"".concat(v,"-arrow-loading"),K)),customizeIcon:U,customizeIconProps:{loading:K,searchValue:dt,open:Mt,focused:ze,showSearch:Ye}}));var nn=u()(v,b,(Et(y={},"".concat(v,"-focused"),ze),Et(y,"".concat(v,"-multiple"),Je),Et(y,"".concat(v,"-single"),!Je),Et(y,"".concat(v,"-allow-clear"),R),Et(y,"".concat(v,"-show-arrow"),tn),Et(y,"".concat(v,"-disabled"),V),Et(y,"".concat(v,"-loading"),K),Et(y,"".concat(v,"-open"),Mt),Et(y,"".concat(v,"-customize-input"),_t),Et(y,"".concat(v,"-show-search"),Ye),y));return r.createElement("div",Object.assign({className:nn},Ne,{ref:Me,onMouseDown:function(e){var t=e.target,n=Ie.current&&Ie.current.getPopupElement();if(n&&n.contains(t)){var r=setTimeout((function(){var e=Kt.indexOf(r);-1!==e&&Kt.splice(e,1),He(),n.contains(document.activeElement)||Re.current.focus()}));Kt.push(r)}if(Se){for(var o=arguments.length,i=new Array(o>1?o-1:0),a=1;a1?i-1:0),u=1;u1?t-1:0),r=1;r children");r=e}})),r}var O=n(6),C=n.n(O),D=n(102),S={isAppearSupported:function(e){return e.transitionName&&e.transitionAppear||e.animation.appear},isEnterSupported:function(e){return e.transitionName&&e.transitionEnter||e.animation.enter},isLeaveSupported:function(e){return e.transitionName&&e.transitionLeave||e.animation.leave},allowAppearCallback:function(e){return e.transitionAppear||e.animation.appear},allowEnterCallback:function(e){return e.transitionEnter||e.animation.enter},allowLeaveCallback:function(e){return e.transitionLeave||e.animation.leave}},A={enter:"transitionEnter",appear:"transitionAppear",leave:"transitionLeave"},P=function(e){function t(){return c()(this,t),p()(this,(t.__proto__||Object.getPrototypeOf(t)).apply(this,arguments))}return d()(t,e),l()(t,[{key:"componentWillUnmount",value:function(){this.stop()}},{key:"componentWillEnter",value:function(e){S.isEnterSupported(this.props)?this.transition("enter",e):e()}},{key:"componentWillAppear",value:function(e){S.isAppearSupported(this.props)?this.transition("appear",e):e()}},{key:"componentWillLeave",value:function(e){S.isLeaveSupported(this.props)?this.transition("leave",e):e()}},{key:"transition",value:function(e,t){var n=this,r=C.a.findDOMNode(this),o=this.props,i=o.transitionName,a="object"===typeof i;this.stop();var u=function(){n.stopper=null,t()};if((D.b||!o.animation[e])&&i&&o[A[e]]){var c=a?i[e]:i+"-"+e,s=c+"-active";a&&i[e+"Active"]&&(s=i[e+"Active"]),this.stopper=Object(D.a)(r,{name:c,active:s},u)}else this.stopper=o.animation[e](r,u)}},{key:"stop",value:function(){var e=this.stopper;e&&(this.stopper=null,e.stop())}},{key:"render",value:function(){return this.props.children}}]),t}(m.a.Component);P.propTypes={children:b.a.any,animation:b.a.any,transitionName:b.a.any};var k=P,j="rc_animate_"+Date.now();function _(e){var t=e.children;return m.a.isValidElement(t)&&!t.key?m.a.cloneElement(t,{key:j}):t}function T(){}var F=function(e){function t(e){c()(this,t);var n=p()(this,(t.__proto__||Object.getPrototypeOf(t)).call(this,e));return N.call(n),n.currentlyAnimatingKeys={},n.keysToEnter=[],n.keysToLeave=[],n.state={children:w(_(e))},n.childrenRefs={},n}return d()(t,e),l()(t,[{key:"componentDidMount",value:function(){var e=this,t=this.props.showProp,n=this.state.children;t&&(n=n.filter((function(e){return!!e.props[t]}))),n.forEach((function(t){t&&e.performAppear(t.key)}))}},{key:"componentWillReceiveProps",value:function(e){var t=this;this.nextProps=e;var n=w(_(e)),r=this.props;r.exclusive&&Object.keys(this.currentlyAnimatingKeys).forEach((function(e){t.stop(e)}));var o=r.showProp,i=this.currentlyAnimatingKeys,u=r.exclusive?w(_(r)):this.state.children,c=[];o?(u.forEach((function(e){var t=e&&x(n,e.key),r=void 0;(r=t&&t.props[o]||!e.props[o]?t:m.a.cloneElement(t||e,a()({},o,!0)))&&c.push(r)})),n.forEach((function(e){e&&x(u,e.key)||c.push(e)}))):c=function(e,t){var n=[],r={},o=[];return e.forEach((function(e){e&&x(t,e.key)?o.length&&(r[e.key]=o,o=[]):o.push(e)})),t.forEach((function(e){e&&Object.prototype.hasOwnProperty.call(r,e.key)&&(n=n.concat(r[e.key])),n.push(e)})),n=n.concat(o)}(u,n),this.setState({children:c}),n.forEach((function(e){var n=e&&e.key;if(!e||!i[n]){var r=e&&x(u,n);if(o){var a=e.props[o];if(r)!E(u,n,o)&&a&&t.keysToEnter.push(n);else a&&t.keysToEnter.push(n)}else r||t.keysToEnter.push(n)}})),u.forEach((function(e){var r=e&&e.key;if(!e||!i[r]){var a=e&&x(n,r);if(o){var u=e.props[o];if(a)!E(n,r,o)&&u&&t.keysToLeave.push(r);else u&&t.keysToLeave.push(r)}else a||t.keysToLeave.push(r)}}))}},{key:"componentDidUpdate",value:function(){var e=this.keysToEnter;this.keysToEnter=[],e.forEach(this.performEnter);var t=this.keysToLeave;this.keysToLeave=[],t.forEach(this.performLeave)}},{key:"isValidChildByKey",value:function(e,t){var n=this.props.showProp;return n?E(e,t,n):x(e,t)}},{key:"stop",value:function(e){delete this.currentlyAnimatingKeys[e];var t=this.childrenRefs[e];t&&t.stop()}},{key:"render",value:function(){var e=this,t=this.props;this.nextProps=t;var n=this.state.children,r=null;n&&(r=n.map((function(n){if(null===n||void 0===n)return n;if(!n.key)throw new Error("must set key for children");return m.a.createElement(k,{key:n.key,ref:function(t){e.childrenRefs[n.key]=t},animation:t.animation,transitionName:t.transitionName,transitionEnter:t.transitionEnter,transitionAppear:t.transitionAppear,transitionLeave:t.transitionLeave},n)})));var i=t.component;if(i){var a=t;return"string"===typeof i&&(a=o()({className:t.className,style:t.style},t.componentProps)),m.a.createElement(i,a,r)}return r[0]||null}}]),t}(m.a.Component);F.isAnimate=!0,F.propTypes={className:b.a.string,style:b.a.object,component:b.a.any,componentProps:b.a.object,animation:b.a.object,transitionName:b.a.oneOfType([b.a.string,b.a.object]),transitionEnter:b.a.bool,transitionAppear:b.a.bool,exclusive:b.a.bool,transitionLeave:b.a.bool,onEnd:b.a.func,onEnter:b.a.func,onLeave:b.a.func,onAppear:b.a.func,showProp:b.a.string,children:b.a.node},F.defaultProps={animation:{},component:"span",componentProps:{},transitionEnter:!0,transitionLeave:!0,transitionAppear:!1,onEnd:T,onEnter:T,onLeave:T,onAppear:T};var N=function(){var e=this;this.performEnter=function(t){e.childrenRefs[t]&&(e.currentlyAnimatingKeys[t]=!0,e.childrenRefs[t].componentWillEnter(e.handleDoneAdding.bind(e,t,"enter")))},this.performAppear=function(t){e.childrenRefs[t]&&(e.currentlyAnimatingKeys[t]=!0,e.childrenRefs[t].componentWillAppear(e.handleDoneAdding.bind(e,t,"appear")))},this.handleDoneAdding=function(t,n){var r=e.props;if(delete e.currentlyAnimatingKeys[t],!r.exclusive||r===e.nextProps){var o=w(_(r));e.isValidChildByKey(o,t)?"appear"===n?S.allowAppearCallback(r)&&(r.onAppear(t),r.onEnd(t,!0)):S.allowEnterCallback(r)&&(r.onEnter(t),r.onEnd(t,!0)):e.performLeave(t)}},this.performLeave=function(t){e.childrenRefs[t]&&(e.currentlyAnimatingKeys[t]=!0,e.childrenRefs[t].componentWillLeave(e.handleDoneLeaving.bind(e,t)))},this.handleDoneLeaving=function(t){var n=e.props;if(delete e.currentlyAnimatingKeys[t],!n.exclusive||n===e.nextProps){var r=w(_(n));if(e.isValidChildByKey(r,t))e.performEnter(t);else{var o=function(){S.allowLeaveCallback(n)&&(n.onLeave(t),n.onEnd(t,!1))};!function(e,t,n){var r=e.length===t.length;return r&&e.forEach((function(e,o){var i=t[o];e&&i&&(e&&!i||!e&&i||e.key!==i.key||n&&e.props[n]!==i.props[n])&&(r=!1)})),r}(e.state.children,r,n.showProp)?e.setState({children:r},o):o()}}}};t.a=g(F)},function(e,t,n){"use strict";t.__esModule=!0;var r,o=n(305),i=(r=o)&&r.__esModule?r:{default:r};t.default=function(e,t,n){return t in e?(0,i.default)(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}},function(e,t,n){"use strict";n.d(t,"a",(function(){return s})),n.d(t,"d",(function(){return l})),n.d(t,"c",(function(){return f})),n.d(t,"b",(function(){return p}));var r=!("undefined"===typeof window||!window.document||!window.document.createElement);function o(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n["ms"+e]="MS"+t,n["O"+e]="o"+t.toLowerCase(),n}var i=function(e,t){var n={animationend:o("Animation","AnimationEnd"),transitionend:o("Transition","TransitionEnd")};return e&&("AnimationEvent"in t||delete n.animationend.animation,"TransitionEvent"in t||delete n.transitionend.transition),n}(r,"undefined"!==typeof window?window:{}),a={};r&&(a=document.createElement("div").style);var u={};function c(e){if(u[e])return u[e];var t=i[e];if(t)for(var n=Object.keys(t),r=n.length,o=0;o=0||(o[n]=e[n]);return o}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";var r=n(0),o=n(1),i=n.n(o),a=n(31),u=n(38),c=function(){var e=(0,r.useContext(a.b).getPrefixCls)("empty-img-default");return r.createElement("svg",{className:e,width:"184",height:"152",viewBox:"0 0 184 152",xmlns:"http://www.w3.org/2000/svg"},r.createElement("g",{fill:"none",fillRule:"evenodd"},r.createElement("g",{transform:"translate(24 31.67)"},r.createElement("ellipse",{className:"".concat(e,"-ellipse"),cx:"67.797",cy:"106.89",rx:"67.797",ry:"12.668"}),r.createElement("path",{className:"".concat(e,"-path-1"),d:"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z"}),r.createElement("path",{className:"".concat(e,"-path-2"),d:"M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z",transform:"translate(13.56)"}),r.createElement("path",{className:"".concat(e,"-path-3"),d:"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z"}),r.createElement("path",{className:"".concat(e,"-path-4"),d:"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z"})),r.createElement("path",{className:"".concat(e,"-path-5"),d:"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z"}),r.createElement("g",{className:"".concat(e,"-g"),transform:"translate(149.65 15.383)"},r.createElement("ellipse",{cx:"20.654",cy:"3.167",rx:"2.849",ry:"2.815"}),r.createElement("path",{d:"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z"}))))},s=function(){var e=(0,r.useContext(a.b).getPrefixCls)("empty-img-simple");return r.createElement("svg",{className:e,width:"64",height:"41",viewBox:"0 0 64 41",xmlns:"http://www.w3.org/2000/svg"},r.createElement("g",{transform:"translate(0 1)",fill:"none",fillRule:"evenodd"},r.createElement("ellipse",{className:"".concat(e,"-ellipse"),cx:"32",cy:"33",rx:"32",ry:"7"}),r.createElement("g",{className:"".concat(e,"-g"),fillRule:"nonzero"},r.createElement("path",{d:"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"}),r.createElement("path",{d:"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z",className:"".concat(e,"-path")}))))};function l(){return(l=Object.assign||function(e){for(var t=1;t0},e.prototype.connect_=function(){r&&!this.connected_&&(document.addEventListener("transitionend",this.onTransitionEnd_),window.addEventListener("resize",this.refresh),u?(this.mutationsObserver_=new MutationObserver(this.refresh),this.mutationsObserver_.observe(document,{attributes:!0,childList:!0,characterData:!0,subtree:!0})):(document.addEventListener("DOMSubtreeModified",this.refresh),this.mutationEventsAdded_=!0),this.connected_=!0)},e.prototype.disconnect_=function(){r&&this.connected_&&(document.removeEventListener("transitionend",this.onTransitionEnd_),window.removeEventListener("resize",this.refresh),this.mutationsObserver_&&this.mutationsObserver_.disconnect(),this.mutationEventsAdded_&&document.removeEventListener("DOMSubtreeModified",this.refresh),this.mutationsObserver_=null,this.mutationEventsAdded_=!1,this.connected_=!1)},e.prototype.onTransitionEnd_=function(e){var t=e.propertyName,n=void 0===t?"":t;a.some((function(e){return!!~n.indexOf(e)}))&&this.refresh()},e.getInstance=function(){return this.instance_||(this.instance_=new e),this.instance_},e.instance_=null,e}(),s=function(e,t){for(var n=0,r=Object.keys(t);n0},e}(),x="undefined"!==typeof WeakMap?new WeakMap:new n,E=function e(t){if(!(this instanceof e))throw new TypeError("Cannot call a class as a function.");if(!arguments.length)throw new TypeError("1 argument required, but only 0 present.");var n=c.getInstance(),r=new w(t,n,this);x.set(this,r)};["observe","unobserve","disconnect"].forEach((function(e){E.prototype[e]=function(){var t;return(t=x.get(this))[e].apply(t,arguments)}}));var O="undefined"!==typeof o.ResizeObserver?o.ResizeObserver:E;t.a=O}).call(this,n(81))},function(e,t,n){"use strict";var r;function o(e){if("undefined"===typeof document)return 0;if(e||void 0===r){var t=document.createElement("div");t.style.width="100%",t.style.height="200px";var n=document.createElement("div"),o=n.style;o.position="absolute",o.top=0,o.left=0,o.pointerEvents="none",o.visibility="hidden",o.width="200px",o.height="150px",o.overflow="hidden",n.appendChild(t),document.body.appendChild(n);var i=t.offsetWidth;n.style.overflow="scroll";var a=t.offsetWidth;i===a&&(a=n.clientWidth),document.body.removeChild(n),r=i-a}return r}n.d(t,"a",(function(){return o}))},function(e,t,n){"use strict";var r=n(0),o=n.n(r),i=n(6),a=n.n(i),u=n(88),c=n(83),s=n(39),l=n(72),f=n(184),p=n(1),h=n.n(p);function d(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function y(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function m(e,t,n){return n?e[0]===t[0]:e[0]===t[0]&&e[1]===t[1]}function v(e,t,n){return function(e){for(var t=1;t=0&&n.left>=0&&n.bottom>n.top&&n.right>n.left?n:null}function se(e){var t,n,r;if(oe.isWindow(e)||9===e.nodeType){var o=oe.getWindow(e);t={left:oe.getWindowScrollLeft(o),top:oe.getWindowScrollTop(o)},n=oe.viewportWidth(o),r=oe.viewportHeight(o)}else t=oe.offset(e),n=oe.outerWidth(e),r=oe.outerHeight(e);return t.width=n,t.height=r,t}function le(e,t){var n=t.charAt(0),r=t.charAt(1),o=e.width,i=e.height,a=e.left,u=e.top;return"c"===n?u+=i/2:"b"===n&&(u+=i),"c"===r?a+=o/2:"r"===r&&(a+=o),{left:a,top:u}}function fe(e,t,n,r,o){var i=le(t,n[1]),a=le(e,n[0]),u=[a.left-i.left,a.top-i.top];return{left:Math.round(e.left-u[0]+r[0]-o[0]),top:Math.round(e.top-u[1]+r[1]-o[1])}}function pe(e,t,n){return e.leftn.right}function he(e,t,n){return e.topn.bottom}function de(e,t,n){var r=[];return oe.each(e,(function(e){r.push(e.replace(t,(function(e){return n[e]})))})),r}function ye(e,t){return e[t]=-e[t],e}function me(e,t){return(/%$/.test(e)?parseInt(e.substring(0,e.length-1),10)/100*t:parseInt(e,10))||0}function ve(e,t){e[0]=me(e[0],t.width),e[1]=me(e[1],t.height)}function be(e,t,n,r){var o=n.points,i=n.offset||[0,0],a=n.targetOffset||[0,0],u=n.overflow,c=n.source||e;i=[].concat(i),a=[].concat(a);var s={},l=0,f=ce(c,!(!(u=u||{})||!u.alwaysByViewport)),p=se(c);ve(i,p),ve(a,t);var h=fe(p,t,o,i,a),d=oe.merge(p,h);if(f&&(u.adjustX||u.adjustY)&&r){if(u.adjustX&&pe(h,p,f)){var y=de(o,/[lr]/gi,{l:"r",r:"l"}),m=ye(i,0),v=ye(a,0);(function(e,t,n){return e.left>n.right||e.left+t.widthn.bottom||e.top+t.height=n.left&&o.left+i.width>n.right&&(i.width-=o.left+i.width-n.right),r.adjustX&&o.left+i.width>n.right&&(o.left=Math.max(n.right-i.width,n.left)),r.adjustY&&o.top=n.top&&o.top+i.height>n.bottom&&(i.height-=o.top+i.height-n.bottom),r.adjustY&&o.top+i.height>n.bottom&&(o.top=Math.max(n.bottom-i.height,n.top)),oe.mix(o,i)}(h,p,f,s))}return d.width!==p.width&&oe.css(c,"width",oe.width(c)+d.width-p.width),d.height!==p.height&&oe.css(c,"height",oe.height(c)+d.height-p.height),oe.offset(c,{left:d.left,top:d.top},{useCssRight:n.useCssRight,useCssBottom:n.useCssBottom,useCssTransform:n.useCssTransform,ignoreShake:n.ignoreShake}),{points:o,offset:i,targetOffset:a,overflow:s}}function ge(e,t,n){var r=n.target||t;return be(e,se(r),n,!function(e,t){var n=ce(e,t),r=se(e);return!n||r.left+r.width<=n.left||r.top+r.height<=n.top||r.left>=n.right||r.top>=n.bottom}(r,n.overflow&&n.overflow.alwaysByViewport))}function we(e,t,n){var r,o,i=oe.getDocument(e),a=i.defaultView||i.parentWindow,u=oe.getWindowScrollLeft(a),c=oe.getWindowScrollTop(a),s=oe.viewportWidth(a),l=oe.viewportHeight(a);r="pageX"in t?t.pageX:u+t.clientX,o="pageY"in t?t.pageY:c+t.clientY;var f=r>=0&&r<=u+s&&o>=0&&o<=c+l;return be(e,{left:r,top:o,width:0,height:0},function(e){for(var t=1;t1&&(p=o.a.createElement("div",{className:"".concat(n,"-content")},u)),o.a.createElement("div",{ref:t,className:h()(r,!i&&"".concat(e.hiddenClassName)),onMouseEnter:c,onMouseLeave:s,onMouseDown:l,onTouchStart:f,style:a},p)}));_e.displayName="PopupInner";var Te=_e;function Fe(e){var t=e.prefixCls,n=e.motion,r=e.animation,o=e.transitionName;return n||(r?{motionName:"".concat(t,"-").concat(r)}:o?{motionName:o}:null)}function Ne(e){return(Ne="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Me(e,t){if(null==e)return{};var n,r,o=function(e,t){if(null==e)return{};var n,r,o={},i=Object.keys(e);for(r=0;r=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function Ie(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Re(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var h=Object(r.forwardRef)((function(e,t){var n=e.overlayClassName,a=e.trigger,u=void 0===a?["hover"]:a,h=e.mouseEnterDelay,d=void 0===h?0:h,y=e.mouseLeaveDelay,m=void 0===y?.1:y,v=e.overlayStyle,b=e.prefixCls,g=void 0===b?"rc-tooltip":b,w=e.children,x=e.onVisibleChange,E=e.afterVisibleChange,O=e.transitionName,C=e.animation,D=e.placement,S=void 0===D?"right":D,A=e.align,P=void 0===A?{}:A,k=e.destroyTooltipOnHide,j=void 0!==k&&k,_=e.defaultVisible,T=e.getTooltipContainer,F=p(e,["overlayClassName","trigger","mouseEnterDelay","mouseLeaveDelay","overlayStyle","prefixCls","children","onVisibleChange","afterVisibleChange","transitionName","animation","placement","align","destroyTooltipOnHide","defaultVisible","getTooltipContainer"]),N=Object(r.useRef)(null);Object(r.useImperativeHandle)(t,(function(){return N.current}));var M=function(e){for(var t=1;t=0||o.indexOf("Bottom")>=0?a.top="".concat(i.height-n.offset[1],"px"):(o.indexOf("Top")>=0||o.indexOf("bottom")>=0)&&(a.top="".concat(-n.offset[1],"px")),o.indexOf("left")>=0||o.indexOf("Right")>=0?a.left="".concat(i.width-n.offset[0],"px"):(o.indexOf("right")>=0||o.indexOf("Left")>=0)&&(a.left="".concat(-n.offset[0],"px")),e.style.transformOrigin="".concat(a.left," ").concat(a.top)},t.renderTooltip=function(e){var n=e.getPopupContainer,o=e.getPrefixCls,i=e.direction,a=A(t),u=a.props,c=a.state,s=u.prefixCls,l=u.openClassName,f=u.getPopupContainer,p=u.getTooltipContainer,d=u.overlayClassName,m=u.children,v=o("tooltip",s),b=c.visible;!("visible"in u)&&t.isNoTitle()&&(b=!1);var g=_(r.isValidElement(m)?m:r.createElement("span",null,m),v),w=g.props,x=y()(w.className,O({},l||"".concat(v,"-open"),!0)),E=y()(d,O({},"".concat(v,"-rtl"),"rtl"===i));return r.createElement(h,j({},t.props,{prefixCls:v,overlayClassName:E,getTooltipContainer:f||p||n,ref:t.saveTooltip,builtinPlacements:t.getPlacements(),overlay:t.getOverlay(),visible:b,onVisibleChange:t.onVisibleChange,onPopupAlign:t.onPopupAlign}),b?r.cloneElement(g,{className:x}):g)},t.state={visible:!!e.visible||!!e.defaultVisible},t}return n=u,i=[{key:"getDerivedStateFromProps",value:function(e){return"visible"in e?{visible:e.visible}:null}}],(o=[{key:"getPopupDomNode",value:function(){return this.tooltip.getPopupDomNode()}},{key:"getPlacements",value:function(){var e=this.props,t=e.builtinPlacements,n=e.arrowPointAtCenter,r=e.autoAdjustOverflow;return t||function(e){var t=e.arrowWidth,n=void 0===t?5:t,r=e.horizontalArrowShift,o=void 0===r?16:r,i=e.verticalArrowShift,a=void 0===i?8:i,u=e.autoAdjustOverflow,s={left:{points:["cr","cl"],offset:[-4,0]},right:{points:["cl","cr"],offset:[4,0]},top:{points:["bc","tc"],offset:[0,-4]},bottom:{points:["tc","bc"],offset:[0,4]},topLeft:{points:["bl","tc"],offset:[-(o+n),-4]},leftTop:{points:["tr","cl"],offset:[-4,-(a+n)]},topRight:{points:["br","tc"],offset:[o+n,-4]},rightTop:{points:["tl","cr"],offset:[4,-(a+n)]},bottomRight:{points:["tr","bc"],offset:[o+n,4]},rightBottom:{points:["bl","cr"],offset:[4,a+n]},bottomLeft:{points:["tl","bc"],offset:[-(o+n),4]},leftBottom:{points:["br","cl"],offset:[-4,a+n]}};return Object.keys(s).forEach((function(t){s[t]=e.arrowPointAtCenter?m(m({},s[t]),{overflow:w(u),targetOffset:g}):m(m({},c[t]),{overflow:w(u)}),s[t].ignoreShake=!0})),s}({arrowPointAtCenter:n,autoAdjustOverflow:r})}},{key:"isNoTitle",value:function(){var e=this.props,t=e.title,n=e.overlay;return!t&&!n&&0!==t}},{key:"getOverlay",value:function(){var e=this.props,t=e.title,n=e.overlay;return 0===t?t:n||t||""}},{key:"render",value:function(){return r.createElement(x.a,null,this.renderTooltip)}}])&&C(n.prototype,o),i&&C(n,i),u}(r.Component);T.defaultProps={placement:"top",transitionName:"zoom-big-fast",mouseEnterDelay:.1,mouseLeaveDelay:.1,arrowPointAtCenter:!1,autoAdjustOverflow:!0};t.a=T},function(e,t,n){"use strict";function r(e,t){for(var n=t;n;){if(n===e)return!0;n=n.parentNode}return!1}n.d(t,"a",(function(){return r}))},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=(r=n(807))&&r.__esModule?r:{default:r};t.default=o,e.exports=o},function(e,t,n){"use strict";n.d(t,"a",(function(){return a})),n.d(t,"b",(function(){return u}));var r=n(42);function o(){return(o=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n2),"Modal","`icon` is using ReactNode instead of string naming in v4. Please check `".concat(t,"` at https://ant.design/components/icon"));var v,b,g,w=e.okType||"primary",x=e.prefixCls||"ant-modal",E="".concat(x,"-confirm"),O=!("okCancel"in e)||e.okCancel,C=e.width||416,D=e.style||{},A=void 0===e.mask||e.mask,P=void 0!==e.maskClosable&&e.maskClosable,k=null!==e.autoFocusButton&&(e.autoFocusButton||"ok"),j=e.transitionName||"zoom",_=e.maskTransitionName||"fade",T=S()(E,"".concat(E,"-").concat(e.type),e.className),F=O&&r.createElement(V,{actionFn:n,closeModal:i,autoFocus:"cancel"===k,buttonProps:m},y);return r.createElement(_e,{prefixCls:x,className:T,wrapClassName:S()((v={},b="".concat(E,"-centered"),g=!!e.centered,b in v?Object.defineProperty(v,b,{value:g,enumerable:!0,configurable:!0,writable:!0}):v[b]=g,v)),onCancel:function(){return i({triggerCancel:!0})},visible:c,title:"",transitionName:j,footer:"",maskTransitionName:_,mask:A,maskClosable:P,maskStyle:p,style:D,width:C,zIndex:a,afterClose:u,keyboard:s,centered:l,getContainer:f},r.createElement("div",{className:"".concat(E,"-body-wrapper")},r.createElement("div",{className:"".concat(E,"-body")},t,void 0===e.title?null:r.createElement("span",{className:"".concat(E,"-title")},e.title),r.createElement("div",{className:"".concat(E,"-content")},e.content)),r.createElement("div",{className:"".concat(E,"-btns")},F,r.createElement(V,{type:w,actionFn:o,closeModal:i,autoFocus:"ok"===k,buttonProps:d},h))))},q=n(42),$=n(38);function X(){return(X=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0&&(E=t.getOptions().map((function(e){return r.createElement(R,{prefixCls:m,key:e.value.toString(),disabled:"disabled"in e?e.disabled:u.disabled,value:e.value,checked:-1!==s.value.indexOf(e.value),onChange:e.onChange,className:"".concat(b,"-item"),style:e.style},e.label)})));var O,C,D,S={toggleOption:t.toggleOption,value:t.state.value,disabled:t.props.disabled,name:t.props.name,registerValue:t.registerValue,cancelValue:t.cancelValue},A=i()(b,p,(O={},C="".concat(b,"-rtl"),D="rtl"===o,C in O?Object.defineProperty(O,C,{value:D,enumerable:!0,configurable:!0,writable:!0}):O[C]=D,O));return r.createElement("div",f({className:A,style:h},g),r.createElement(x.Provider,{value:S},E))},t.state={value:e.value||e.defaultValue||[],registeredValues:[]},t}return n=l,a=[{key:"getDerivedStateFromProps",value:function(e){return"value"in e?{value:e.value||[]}:null}}],(o=[{key:"getOptions",value:function(){return this.props.options.map((function(e){return"string"===typeof e?{label:e,value:e}:e}))}},{key:"render",value:function(){return r.createElement(s.a,null,this.renderGroup)}}])&&d(n.prototype,o),a&&d(n,a),l}(r.PureComponent);E.defaultProps={options:[]},E.propTypes={defaultValue:u.array,value:u.array,options:u.array.isRequired,onChange:u.func};var O=E,C=n(11);function D(e){return(D="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function S(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function A(){return(A=Object.assign||function(e){for(var t=1;t=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var p=r.forwardRef((function(e,t){var n=e.prefixCls,i=void 0===n?"rc-dropdown":n,u=e.transitionName,c=e.animation,p=e.align,h=e.placement,d=void 0===h?"bottomLeft":h,y=e.placements,m=void 0===y?s:y,v=e.getPopupContainer,b=e.showAction,g=e.hideAction,w=e.overlayClassName,x=e.overlayStyle,E=e.visible,O=e.trigger,C=void 0===O?["hover"]:O,D=f(e,["prefixCls","transitionName","animation","align","placement","placements","getPopupContainer","showAction","hideAction","overlayClassName","overlayStyle","visible","trigger"]),S=l(r.useState(),2),A=S[0],P=S[1],k="visible"in e?E:A,j=r.useRef(null);r.useImperativeHandle(t,(function(){return j.current}));var _=function(){var t=e.overlay;return"function"===typeof t?t():t},T=function(t){var n=e.onOverlayClick,r=_().props;P(!1),n&&n(t),r.onClick&&r.onClick(t)},F=function(){var e=_(),t={prefixCls:"".concat(i,"-menu"),onClick:T};return"string"===typeof e.type&&delete t.prefixCls,r.cloneElement(e,t)},N=g;return N||-1===C.indexOf("contextMenu")||(N=["click"]),r.createElement(o.a,Object.assign({},D,{prefixCls:i,ref:j,popupClassName:w,popupStyle:x,builtinPlacements:m,action:C,showAction:b,hideAction:N||[],popupPlacement:d,popupAlign:p,popupTransitionName:u,popupAnimation:c,popupVisible:k,stretch:function(){var t=e.minOverlayWidthMatchTrigger,n=e.alignPoint;return"minOverlayWidthMatchTrigger"in e?t:!n}()?"minWidth":"",popup:"function"===typeof e.overlay?F:F(),onPopupVisibleChange:function(t){var n=e.onVisibleChange;P(t),"function"===typeof n&&n(t)},getPopupContainer:v}),function(){var t=e.children,n=t.props?t.props:{},o=a()(n.className,function(){var t=e.openClassName;return void 0!==t?t:"".concat(i,"-open")}());return A&&t?r.cloneElement(t,{className:o}):t}())})),h=n(50),d=n.n(h),y=n(31),m=n(11),v=n(23);function b(e){return(b="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function g(){return(g=Object.assign||function(e){for(var t=1;t=0?"slide-down":"slide-up"}},{key:"getPlacement",value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"ltr",t=this.props.placement;return void 0!==t?t:"rtl"===e?"bottomRight":"bottomLeft"}},{key:"render",value:function(){return r.createElement(y.a,null,this.renderDropDown)}}])&&E(n.prototype,o),i&&E(n,i),c}(r.Component);A.defaultProps={mouseEnterDelay:.15,mouseLeaveDelay:.1}},function(e,t,n){e.exports=n(208)},function(e,t,n){var r=n(75),o=n(76),i=n(299),a=n(106),u=n(97),c=function e(t,n,c){var s,l,f,p=t&e.F,h=t&e.G,d=t&e.S,y=t&e.P,m=t&e.B,v=t&e.W,b=h?o:o[n]||(o[n]={}),g=b.prototype,w=h?r:d?r[n]:(r[n]||{}).prototype;for(s in h&&(c=n),c)(l=!p&&w&&void 0!==w[s])&&u(b,s)||(f=l?w[s]:c[s],b[s]=h&&"function"!=typeof w[s]?c[s]:m&&l?i(f,r):v&&w[s]==f?function(e){var t=function(t,n,r){if(this instanceof e){switch(arguments.length){case 0:return new e;case 1:return new e(t);case 2:return new e(t,n)}return new e(t,n,r)}return e.apply(this,arguments)};return t.prototype=e.prototype,t}(f):y&&"function"==typeof f?i(Function.call,f):f,y&&((b.virtual||(b.virtual={}))[s]=f,t&e.R&&g&&!g[s]&&a(g,s,f)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,e.exports=c},function(e,t,n){var r=n(96),o=n(153);e.exports=n(77)?function(e,t,n){return r.f(e,t,o(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t){e.exports=function(e){return"object"===typeof e?null!==e:"function"===typeof e}},function(e,t,n){var r=n(303),o=n(210);e.exports=function(e){return r(o(e))}},function(e,t,n){var r=n(213)("wks"),o=n(156),i=n(75).Symbol,a="function"==typeof i;(e.exports=function(e){return r[e]||(r[e]=a&&i[e]||(a?i:o)("Symbol."+e))}).store=r},function(e,t,n){var r=n(223);e.exports=function(e){return Object(r(e))}},function(e,t){e.exports={}},function(e,t,n){var r=n(54).Symbol;e.exports=r},function(e,t,n){var r=n(342),o=n(611),i=n(138);e.exports=function(e){return i(e)?r(e):o(e)}},function(e,t,n){"use strict";function r(e){return"undefined"===typeof e||null===e}e.exports.isNothing=r,e.exports.isObject=function(e){return"object"===typeof e&&null!==e},e.exports.toArray=function(e){return Array.isArray(e)?e:r(e)?[]:[e]},e.exports.repeat=function(e,t){var n,r="";for(n=0;n=0)){var o=e.props.insertExtraNode;e.extraNode=document.createElement("div");var i=d(e).extraNode;i.className="ant-click-animating-node";var u=e.getAttributeName();t.setAttribute(u,"true"),r=r||document.createElement("style"),n&&"#ffffff"!==n&&"rgb(255, 255, 255)"!==n&&b(n)&&!/rgba\((?:\d*, ){3}0\)/.test(n)&&"transparent"!==n&&(e.csp&&e.csp.nonce&&(r.nonce=e.csp.nonce),i.style.borderColor=n,r.innerHTML="\n [ant-click-animating-without-extra-node='true']::after, .ant-click-animating-node {\n --antd-wave-shadow-color: ".concat(n,";\n }"),document.body.contains(r)||document.body.appendChild(r)),o&&t.appendChild(i),a.a.addStartEventListener(t,e.onTransitionStart),a.a.addEndEventListener(t,e.onTransitionEnd)}},e.onTransitionStart=function(t){if(!e.destroyed){var n=Object(i.findDOMNode)(d(e));t&&t.target===n&&!e.animationStart&&e.resetEffect(n)}},e.onTransitionEnd=function(t){t&&"fadeEffect"===t.animationName&&e.resetEffect(t.target)},e.bindAnimationEvent=function(t){if(t&&t.getAttribute&&!t.getAttribute("disabled")&&!(t.className.indexOf("disabled")>=0)){var n=function(n){if("INPUT"!==n.target.tagName&&!v(n.target)){e.resetEffect(t);var r=getComputedStyle(t).getPropertyValue("border-top-color")||getComputedStyle(t).getPropertyValue("border-color")||getComputedStyle(t).getPropertyValue("background-color");e.clickWaveTimeoutId=window.setTimeout((function(){return e.onClick(t,r)}),0),u.a.cancel(e.animationStartId),e.animationStart=!0,e.animationStartId=Object(u.a)((function(){e.animationStart=!1}),10)}};return t.addEventListener("click",n,!0),{cancel:function(){t.removeEventListener("click",n,!0)}}}},e.renderWave=function(t){var n=t.csp,r=e.props.children;return e.csp=n,r},e}return n=x,(s=[{key:"componentDidMount",value:function(){var e=Object(i.findDOMNode)(this);e&&1===e.nodeType&&(this.instance=this.bindAnimationEvent(e))}},{key:"componentWillUnmount",value:function(){this.instance&&this.instance.cancel(),this.clickWaveTimeoutId&&clearTimeout(this.clickWaveTimeoutId),this.destroyed=!0}},{key:"getAttributeName",value:function(){return this.props.insertExtraNode?"ant-click-animating":"ant-click-animating-without-extra-node"}},{key:"resetEffect",value:function(e){if(e&&e!==this.extraNode&&e instanceof Element){var t=this.props.insertExtraNode,n=this.getAttributeName();e.setAttribute(n,"false"),r&&(r.innerHTML=""),t&&this.extraNode&&e.contains(this.extraNode)&&e.removeChild(this.extraNode),a.a.removeStartEventListener(e,this.onTransitionStart),a.a.removeEndEventListener(e,this.onTransitionEnd)}}},{key:"render",value:function(){return o.createElement(c.a,null,this.renderWave)}}])&&f(n.prototype,s),g&&f(n,g),x}(o.Component)},function(e,t,n){"use strict";var r=n(0),o=n(83),i=n(29),a=n(13),u=n(39),c=n(84);function s(e){return(s="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function l(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function f(e){for(var t=1;t1)Object(a.a)(!1,"Find more than one child node with `children` in ResizeObserver. Will only observe first one.");else if(0===t.length)return Object(a.a)(!1,"`children` of ResizeObserver is empty. Nothing is in observe."),null;var n=t[0];if(r.isValidElement(n)&&Object(u.b)(n)){var o=n.ref;t[0]=r.cloneElement(n,{ref:Object(u.a)(o,this.setChildNode)})}return 1===t.length?t[0]:t.map((function(e,t){return!r.isValidElement(e)||"key"in e&&null!==e.key?e:r.cloneElement(e,{key:"".concat("rc-observer-key","-").concat(t)})}))}}])&&d(n.prototype,s),l&&d(n,l),t}(r.Component);b.displayName="ResizeObserver",t.a=b},function(e,t,n){"use strict";var r=n(0),o=n.n(r),i=n(1),a=n.n(i),u=n(9),c=n(40),s=n.n(c),l=n(13),f=n(120),p=n(85);var h=function(e){return null};var d=function(e){return null},y=n(39);function m(e){return(m="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function v(e){return void 0===e||null===e?[]:Array.isArray(e)?e:[e]}function b(e,t){if(!t&&"number"!==typeof t)return e;for(var n=v(t),r=e,o=0;o=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function D(e){return(D="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var S=r.forwardRef((function(e,t){var n,o,i,u,c=e.prefixCls,s=e.className,l=e.record,f=e.index,p=e.dataIndex,h=e.render,d=e.children,m=e.component,v=void 0===m?"td":m,g=e.colSpan,w=e.rowSpan,x=e.fixLeft,S=e.fixRight,A=e.firstFixLeft,P=e.lastFixLeft,k=e.firstFixRight,j=e.lastFixRight,_=e.appendNode,T=e.additionalProps,F=void 0===T?{}:T,N=e.ellipsis,M=e.align,I="".concat(c,"-cell");if(d)i=d;else{var R=b(l,p);if(i=R,h){var B=h(R,l,f);!(u=B)||"object"!==D(u)||Array.isArray(u)||r.isValidElement(u)?i=B:(i=B.children,o=B.props)}}"object"!==D(i)||Array.isArray(i)||r.isValidElement(i)||(i=null),N&&(P||k)&&(i=r.createElement("span",{className:"".concat(I,"-content")},i));var L=o||{},z=L.colSpan,U=L.rowSpan,H=L.style,V=L.className,K=C(L,["colSpan","rowSpan","style","className"]),W=void 0!==z?z:g,q=void 0!==U?U:w;if(0===W||0===q)return null;var $={},X="number"===typeof x,J="number"===typeof S;X&&($.position="sticky",$.left=x),J&&($.position="sticky",$.right=S);var Y,G={};M&&(G.textAlign=M),N&&("string"===typeof i?Y=i:r.isValidElement(i)&&"string"===typeof i.props.children&&(Y=i.props.children));var Q,Z=E({title:Y},K,{},F,{colSpan:W&&1!==W?W:null,rowSpan:q&&1!==q?q:null,className:a()(I,s,(n={},O(n,"".concat(I,"-fix-left"),X),O(n,"".concat(I,"-fix-left-first"),A),O(n,"".concat(I,"-fix-left-last"),P),O(n,"".concat(I,"-fix-right"),J),O(n,"".concat(I,"-fix-right-first"),k),O(n,"".concat(I,"-fix-right-last"),j),O(n,"".concat(I,"-ellipsis"),N),O(n,"".concat(I,"-with-append"),_),n),F.className,V),style:E({},F.style,{},G,{},$,{},H),ref:(Q=v,"string"===typeof Q||Object(y.b)(Q)?t:null)});return r.createElement(v,Object.assign({},Z),_,i)}));S.displayName="Cell";var A=S,P=r.createContext(null);function k(e,t,n,r,o){var i,a,u=n[e]||{},c=n[t]||{};"left"===u.fixed?i=r.left[e]:"right"===c.fixed&&(a=r.right[t]);var s=!1,l=!1,f=!1,p=!1,h=n[t+1],d=n[e-1];if("rtl"===o){if(void 0!==i)p=!(d&&"left"===d.fixed);else if(void 0!==a){f=!(h&&"right"===h.fixed)}}else if(void 0!==i){s=!(h&&"left"===h.fixed)}else if(void 0!==a){l=!(d&&"right"===d.fixed)}return{fixLeft:i,fixRight:a,lastFixLeft:s,firstFixRight:l,lastFixRight:f,firstFixLeft:p}}function j(e){var t,n=e.cells,o=e.stickyOffsets,i=e.flattenColumns,a=e.rowComponent,u=e.cellComponent,c=e.onHeaderRow,s=e.index,l=r.useContext(P),f=l.prefixCls,p=l.direction;c&&(t=c(n.map((function(e){return e.column})),s));var h=g(n.map((function(e){return e.column})));return r.createElement(a,Object.assign({},t),n.map((function(e,t){var n,a=e.column,c=k(e.colStart,e.colEnd,i,o,p);return a&&a.onHeaderCell&&(n=e.column.onHeaderCell(a)),r.createElement(A,Object.assign({},e,{ellipsis:a.ellipsis,align:a.align,component:u,prefixCls:f,key:h[t]},c,{additionalProps:n}))})))}j.displayName="HeaderRow";var _=j;var T=function(e){var t=e.stickyOffsets,n=e.columns,o=e.flattenColumns,i=e.onHeaderRow,a=r.useContext(P),u=a.prefixCls,c=a.getComponent,s=r.useMemo((function(){return function(e){var t=[];!function e(n,r){var o=arguments.length>2&&void 0!==arguments[2]?arguments[2]:0;t[o]=t[o]||[];var i=r,a=n.map((function(n){var r={key:n.key,className:n.className||"",children:n.title,column:n,colStart:i},a=1,u=n.children;return u&&u.length>0&&(a=e(u,i,o+1).reduce((function(e,t){return e+t}),0),r.hasSubColumns=!0),"colSpan"in n&&(a=n.colSpan),"rowSpan"in n&&(r.rowSpan=n.rowSpan),r.colSpan=a,r.colEnd=r.colStart+a-1,t[o].push(r),i+=a,a}));return a}(e,0);for(var n=t.length,r=function(e){t[e].forEach((function(t){"rowSpan"in t||t.hasSubColumns||(t.rowSpan=n-e)}))},o=0;o=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function I(e){var t=e.expandable,n=M(e,["expandable"]);return"expandable"in e?function(e){for(var t=1;t=0;a-=1){var u=t[a],c=n&&n[a],s=c&&c.RC_TABLE_INTERNAL_COL_DEFINE;(u||s||i)&&(o.unshift(r.createElement("col",Object.assign({key:a,style:{width:u,minWidth:u}},s))),i=!0)}return r.createElement("colgroup",null,o)};function B(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function L(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function z(e){return function(e){if(Array.isArray(e))return U(e)}(e)||function(e){if("undefined"!==typeof Symbol&&Symbol.iterator in Object(e))return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"===typeof e)return U(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return U(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function U(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}var V=function(e){for(var t=e.columns,n=e.flattenColumns,o=e.colWidths,i=e.columCount,a=e.stickyOffsets,u=e.direction,c=H(e,["columns","flattenColumns","colWidths","columCount","stickyOffsets","direction"]),s=r.useContext(P),l=s.prefixCls,f=s.scrollbarSize,p=n[n.length-1],h={fixed:p?p.fixed:null,onHeaderCell:function(){return{className:"".concat(l,"-cell-scrollbar")}}},d=r.useMemo((function(){return f?[].concat(z(t),[h]):t}),[f,t]),y=r.useMemo((function(){return f?[].concat(z(n),[h]):n}),[f,n]),m=r.useMemo((function(){var e=a.right,t=a.left;return function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n1?n-1:0),o=1;oe.length)&&(t=e.length);for(var n=0,r=new Array(t);n=0||(o[n]=e[n]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(o[n]=e[n])}return o}function se(e){return Object(ne.a)(e).filter((function(e){return r.isValidElement(e)})).map((function(e){var t=e.key,n=e.props,r=n.children,o=ae({key:t},ce(n,["children"]));return r&&(o.children=se(r)),o}))}function le(e){return e.reduce((function(e,t){var n=t.fixed,r=!0===n?"left":n,o=t.children;return o&&o.length>0?[].concat(re(e),re(le(o).map((function(e){return ae({fixed:r},e)})))):[].concat(re(e),[ae({},t,{fixed:r})])}),[])}var fe=function(e,t){var n=e.prefixCls,o=e.columns,i=e.children,a=e.expandable,u=e.expandedKeys,c=e.getRowKey,s=e.onTriggerExpand,l=e.expandIcon,f=e.rowExpandable,p=e.expandIconColumnIndex,h=e.direction,d=r.useMemo((function(){return o||se(i)}),[o,i]),y=r.useMemo((function(){if(a){var e,t=p||0,r=d[t],o=(ue(e={},"RC_TABLE_INTERNAL_COL_DEFINE",{className:"".concat(n,"-expand-icon-col")}),ue(e,"title",""),ue(e,"fixed",r?r.fixed:null),ue(e,"className","".concat(n,"-row-expand-icon-cell")),ue(e,"render",(function(e,t,r){var o=c(t,r),i=u.has(o),a=!f||f(t);return l({prefixCls:n,expanded:i,expandable:a,record:t,onExpand:s})})),e),i=d.slice();return i.splice(t,0,o),i}return d}),[a,d,c,u,l,h]),m=r.useMemo((function(){var e=y;return t&&(e=t(e)),e.length||(e=[{render:function(){return null}}]),e}),[t,y,h]),v=r.useMemo((function(){return"rtl"===h?function(e){return e.map((function(e){var t=e.fixed,n=t;return"left"===t?n="right":"right"===t&&(n="left"),ae({fixed:n},ce(e,["fixed"]))}))}(le(m)):le(m)}),[m,h]);return[m,v]},pe=n(18),he=n.n(pe);function de(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if("undefined"===typeof Symbol||!(Symbol.iterator in Object(e)))return;var n=[],r=!0,o=!1,i=void 0;try{for(var a,u=e[Symbol.iterator]();!(r=(a=u.next()).done)&&(n.push(a.value),!t||n.length!==t);r=!0);}catch(c){o=!0,i=c}finally{try{r||null==u.return||u.return()}finally{if(o)throw i}}return n}(e,t)||function(e,t){if(!e)return;if("string"===typeof e)return ye(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ye(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ye(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n0),Xe(r=0||t.relatedTarget.className.indexOf("".concat(i,"-next"))>=0)||o(e.getValidValue())},e.go=function(t){""!==e.state.goInputText&&(t.keyCode!==Ge&&"click"!==t.type||(e.setState({goInputText:""}),e.props.quickGo(e.getValidValue())))},e}return n=u,(r=[{key:"getValidValue",value:function(){var e=this.state,t=e.goInputText,n=e.current;return!t||isNaN(t)?n:Number(t)}},{key:"render",value:function(){var e=this,t=this.props,n=t.pageSize,r=t.pageSizeOptions,i=t.locale,a=t.rootPrefixCls,u=t.changeSize,c=t.quickGo,s=t.goButton,l=t.selectComponentClass,f=t.buildOptionText,p=t.selectPrefixCls,h=t.disabled,d=this.state.goInputText,y="".concat(a,"-options"),m=l,v=null,b=null,g=null;if(!u&&!c)return null;if(u&&m){var w=r.map((function(t,n){return o.a.createElement(m.Option,{key:n,value:t},(f||e.buildOptionText)(t))}));v=o.a.createElement(m,{disabled:h,prefixCls:p,showSearch:!1,className:"".concat(y,"-size-changer"),optionLabelProp:"children",dropdownMatchSelectWidth:!1,value:(n||r[0]).toString(),onChange:this.changeSize,getPopupContainer:function(e){return e.parentNode}},w)}return c&&(s&&(g="boolean"===typeof s?o.a.createElement("button",{type:"button",onClick:this.go,onKeyUp:this.go,disabled:h},i.jump_to_confirm):o.a.createElement("span",{onClick:this.go,onKeyUp:this.go},s)),b=o.a.createElement("div",{className:"".concat(y,"-quick-jumper")},i.jump_to,o.a.createElement("input",{disabled:h,type:"text",value:d,onChange:this.handleChange,onKeyUp:this.go,onBlur:this.handleBlur}),i.page,g)),o.a.createElement("li",{className:"".concat(y)},v,b)}}])&&nt(n.prototype,r),i&&nt(n,i),u}(o.a.Component);ut.defaultProps={pageSizeOptions:["10","20","50","100"]};var ct=ut,st=n(195);function lt(e){return(lt="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function ft(){return(ft=Object.assign||function(e){for(var t=1;tr?r:n,0===r&&(n=t.state.current),"number"===typeof e&&("pageSize"in t.props||t.setState({pageSize:e}),"current"in t.props||t.setState({current:n,currentInputValue:n})),t.props.onShowSizeChange(n,e)},t.handleChange=function(e){var n=t.props.disabled,r=e;if(t.isValid(r)&&!n){var o=wt(void 0,t.state,t.props);r>o?r=o:r<1&&(r=1),"current"in t.props||t.setState({current:r,currentInputValue:r});var i=t.state.pageSize;return t.props.onChange(r,i),r}return t.state.current},t.prev=function(){t.hasPrev()&&t.handleChange(t.state.current-1)},t.next=function(){t.hasNext()&&t.handleChange(t.state.current+1)},t.jumpPrev=function(){t.handleChange(t.getJumpPrevPage())},t.jumpNext=function(){t.handleChange(t.getJumpNextPage())},t.hasPrev=function(){return t.state.current>1},t.hasNext=function(){return t.state.current2?n-2:0),o=2;oo?o:r,"current"in e||(n.current=r,n.currentInputValue=r),n.pageSize=e.pageSize}return n}}],(i=[{key:"componentDidUpdate",value:function(e,t){var n=this.props.prefixCls;if(t.current!==this.state.current&&this.paginationNode){var r=this.paginationNode.querySelector(".".concat(n,"-item-").concat(t.current));r&&document.activeElement===r&&r.blur()}}},{key:"getValidValue",value:function(e){var t=e.target.value,n=wt(void 0,this.state,this.props),r=this.state.currentInputValue;return""===t?t:isNaN(Number(t))?r:t>=n?n:Number(t)}},{key:"getShowSizeChanger",value:function(){var e=this.props,t=e.showSizeChanger,n=e.total,r=e.totalBoundaryShowSizeChanger;return"undefined"!==typeof t?t:n>r}},{key:"renderPrev",value:function(e){var t=this.props,n=t.prevIcon,o=(0,t.itemRender)(e,"prev",this.getItemIcon(n)),i=!this.hasPrev();return Object(r.isValidElement)(o)?Object(r.cloneElement)(o,{disabled:i}):o}},{key:"renderNext",value:function(e){var t=this.props,n=t.nextIcon,o=(0,t.itemRender)(e,"next",this.getItemIcon(n)),i=!this.hasNext();return Object(r.isValidElement)(o)?Object(r.cloneElement)(o,{disabled:i}):o}},{key:"render",value:function(){var e=this,t=this.props,n=t.prefixCls,i=t.className,u=t.style,c=t.disabled,s=t.hideOnSinglePage,l=t.total,f=t.locale,p=t.showQuickJumper,h=t.showLessItems,d=t.showTitle,y=t.showTotal,m=t.simple,v=t.itemRender,b=t.showPrevNextJumpers,g=t.jumpPrevIcon,w=t.jumpNextIcon,x=t.selectComponentClass,E=t.selectPrefixCls,O=t.pageSizeOptions,C=this.state,D=C.current,S=C.pageSize,A=C.currentInputValue;if(!0===s&&l<=S)return null;var P=wt(void 0,this.state,this.props),k=[],j=null,_=null,T=null,F=null,N=null,M=p&&p.goButton,I=h?1:2,R=D-1>0?D-1:0,B=D+1=2*I&&3!==D&&(k[0]=Object(r.cloneElement)(k[0],{className:"".concat(n,"-item-after-jump-prev")}),k.unshift(j)),P-D>=2*I&&D!==P-2&&(k[k.length-1]=Object(r.cloneElement)(k[k.length-1],{className:"".concat(n,"-item-before-jump-next")}),k.push(_)),1!==W&&k.unshift(T),q!==P&&k.push(F)}var J=null;y&&(J=o.a.createElement("li",{className:"".concat(n,"-total-text")},y(l,[0===l?0:(D-1)*S+1,D*S>l?l:D*S])));var Y=!this.hasPrev()||!P,G=!this.hasNext()||!P;return o.a.createElement("ul",ft({className:a()(n,i,ht({},"".concat(n,"-disabled"),c)),style:u,unselectable:"unselectable",ref:this.savePaginationNode},L),J,o.a.createElement("li",{title:d?f.prev_page:null,onClick:this.prev,tabIndex:Y?null:0,onKeyPress:this.runIfEnterPrev,className:a()("".concat(n,"-prev"),ht({},"".concat(n,"-disabled"),Y)),"aria-disabled":Y},this.renderPrev(R)),k,o.a.createElement("li",{title:d?f.next_page:null,onClick:this.next,tabIndex:G?null:0,onKeyPress:this.runIfEnterNext,className:a()("".concat(n,"-next"),ht({},"".concat(n,"-disabled"),G)),"aria-disabled":G},this.renderNext(B)),o.a.createElement(ct,{disabled:c,locale:f,rootPrefixCls:n,selectComponentClass:x,selectPrefixCls:E,changeSize:this.getShowSizeChanger()?this.changePageSize:null,current:D,pageSize:S,pageSizeOptions:O,quickGo:this.shouldDisplayQuickJumper()?this.handleChange:null,goButton:M}))}}])&&dt(n.prototype,i),u&&dt(n,u),s}(o.a.Component);xt.defaultProps={defaultCurrent:1,total:0,defaultPageSize:10,onChange:gt,className:"",selectPrefixCls:"rc-select",prefixCls:"rc-pagination",selectComponentClass:null,hideOnSinglePage:!1,showPrevNextJumpers:!0,showQuickJumper:!1,showLessItems:!1,showTitle:!0,onShowSizeChange:gt,locale:st.a,style:{},itemRender:function(e,t,n){return n},totalBoundaryShowSizeChanger:50};var Et=xt,Ot=n(186),Ct=n(89),Dt=n.n(Ct),St=n(50),At=n.n(St),Pt=n(406),kt=n.n(Pt),jt=n(407),_t=n.n(jt),Tt=n(94),Ft=n(60);function Nt(e){return(Nt="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function Mt(){return(Mt=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&void 0!==arguments[1]?arguments[1]:{},n=t.getContainer,r=void 0===n?function(){return window}:n,o=t.callback,i=t.duration,a=void 0===i?450:i,u=r(),c=Rr(u,!0),s=Date.now(),l=function t(){var n=Date.now()-s,r=Br(n>a?a:n,c,e,a);Ir(u)?u.scrollTo(window.pageXOffset,r):u instanceof Document?u.documentElement.scrollTop=r:u.scrollTop=r,ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&void 0!==arguments[1]&&arguments[1],n=Xr(Xr({},Q),e);t&&(Q.resetPagination(),n.pagination.current&&(n.pagination.current=1),p&&p.onChange&&p.onChange(1,n.pagination.pageSize)),A&&!1!==A.scrollToFirstRowOnChange&&J.body.current&&Lr(0,{getContainer:function(){return J.body.current}}),g&&g(n.pagination,n.filters,n.sorter,{currentDataSource:jr(cr(U,n.sorterStates,$),n.filterStates)})},ee=qr(sr({prefixCls:V,columns:m,children:v,onSorterChange:function(e,t){Z({sorter:e,sorterStates:t},!1)},sortDirections:P||["ascend","descend"],tableLocale:z,showSorterTooltip:_}),4),te=ee[0],ne=ee[1],re=ee[2],oe=ee[3],ie=r.useMemo((function(){return cr(U,ne,$)}),[U,ne]);Q.sorter=oe(),Q.sorterStates=ne;var ae=qr(_r({prefixCls:V,locale:z,dropdownPrefixCls:K,columns:m,children:v,onFilterChange:function(e,t){Z({filters:e,filterStates:t},!0)},getPopupContainer:w}),3),ue=ae[0],ce=ae[1],se=ae[2],le=jr(ie,ce);Q.filters=se(),Q.filterStates=ce;var fe=qr(Fr(r.useMemo((function(){return Xr({},re)}),[re])),1)[0],pe=qr(function(e,t,n){var o=t&&"object"===on(t)?t:{},i=o.total,a=void 0===i?0:i,u=an(o,["total"]),c=nn(Object(r.useState)((function(){return{current:"defaultCurrent"in u?u.defaultCurrent:1,pageSize:"defaultPageSize"in u?u.defaultPageSize:10}})),2),s=c[0],l=c[1],f=tn(tn(tn({},s),u),{total:a>0?a:e});a||Math.ceil(e/f.pageSize)0&&void 0!==arguments[0]?arguments[0]:1;l(tn(tn({},f),{current:e}))};return!1===t?[{},function(){}]:[tn(tn({},f),{onChange:function(){for(var e=arguments.length,r=new Array(e),o=0;oo?(Object(jn.a)(!1,"Table","`dataSource` length is less than `pagination.total` but large than `pagination.pageSize`. Please make sure your config correct data with async mode."),le.slice((t-1)*o,t*o)):le:le.slice((t-1)*o,t*o)}),[!!p,le,he&&he.current,he&&he.pageSize,he&&he.total]),me=qr(Un(h,{prefixCls:V,data:le,pageData:ye,getRowKey:Y,getRecordByKey:G,expandType:X,childrenColumnName:$,locale:z,expandIconColumnIndex:W.expandIconColumnIndex,getPopupContainer:w}),2),ve=me[0],be=me[1];W.__PARENT_RENDER_ICON__=W.expandIcon,W.expandIcon=W.expandIcon||E||Mr(z),"nest"===X&&void 0===W.expandIconColumnIndex?W.expandIconColumnIndex=h?1:0:W.expandIconColumnIndex>0&&h&&(W.expandIconColumnIndex-=1),W.indentSize=W.indentSize||S||15;var ge,we,xe,Ee=r.useCallback((function(e){return fe(ve(ue(te(e))))}),[te,ue,ve]);if(!1!==p){var Oe;Oe=he.size?he.size:"small"===L||"middle"===L?"small":void 0;var Ce=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"right";return r.createElement(en,Xr({className:"".concat(V,"-pagination ").concat(V,"-pagination-").concat(e)},he,{size:Oe}))};if(null!==he.position&&Array.isArray(he.position)){var De=he.position.find((function(e){return-1!==e.indexOf("top")})),Se=he.position.find((function(e){return-1!==e.indexOf("bottom")}));De||Se?(De&&(ge=Ce(De.toLowerCase().replace("top",""))),Se&&(we=Ce(Se.toLowerCase().replace("bottom","")))):we=Ce()}else we=Ce()}"boolean"===typeof x?xe={spinning:x}:"object"===Kr(x)&&(xe=Xr({spinning:!0},x));var Ae=a()("".concat(V,"-wrapper"),o,Wr({},"".concat(V,"-wrapper-rtl"),"rtl"===B));return r.createElement("div",{className:Ae,style:i},r.createElement(Xe,Xr({spinning:!1},xe),ge,r.createElement(Te,Xr({},T,{direction:B,expandable:W,prefixCls:V,className:a()((t={},Wr(t,"".concat(V,"-middle"),"middle"===L),Wr(t,"".concat(V,"-small"),"small"===L),Wr(t,"".concat(V,"-bordered"),s),t)),data:ye,rowKey:Y,rowClassName:function(e,t,n){var r;return r="function"===typeof y?a()(y(e,t,n)):a()(y),a()(Wr({},"".concat(V,"-row-selected"),be.has(Y(e,t))),r)},emptyText:k&&k.emptyText||R("Table"),internalHooks:"rc-table-internal-hook",internalRefs:J,transformColumns:Ee})),ye&&ye.length>0&&we))}Yr.defaultProps={rowKey:"key"},Yr.SELECTION_ALL="SELECT_ALL",Yr.SELECTION_INVERT="SELECT_INVERT",Yr.Column=Hr,Yr.ColumnGroup=Vr;var Gr=Yr;t.a=Gr},function(e,t,n){"use strict";var r=n(0),o=n(118),i=n.n(o),a=n(87),u=n(5),c=n(38),s=n(42),l=n(31);function f(e){return(f="function"===typeof Symbol&&"symbol"===typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"===typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function p(){return(p=Object.assign||function(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:"";return e+=1,"".concat(t).concat(e)}}(),T=function(e){E(n,e);var t=C(n);function n(e){var o,u,s;return g(this,n),(o=t.call(this,e)).responsiveHandler=function(e){o.setState({below:e.matches});var t=o.props.onBreakpoint;t&&t(e.matches),o.state.collapsed!==e.matches&&o.setCollapsed(e.matches,"responsive")},o.setCollapsed=function(e,t){"collapsed"in o.props||o.setState({collapsed:e});var n=o.props.onCollapse;n&&n(e,t)},o.toggle=function(){var e=!o.state.collapsed;o.setCollapsed(e,"clickTrigger")},o.renderSider=function(e){var t,n=e.getPrefixCls,u=o.props,s=u.prefixCls,f=u.className,h=u.theme,d=u.collapsible,m=u.reverseArrow,g=u.trigger,w=u.style,x=u.width,E=u.collapsedWidth,O=u.zeroWidthTriggerStyle,C=P(u,["prefixCls","className","theme","collapsible","reverseArrow","trigger","style","width","collapsedWidth","zeroWidthTriggerStyle"]),D=n("layout-sider",s),S=Object(a.a)(C,["collapsed","defaultCollapsed","onCollapse","breakpoint","onBreakpoint","siderHook","zeroWidthTriggerStyle"]),A=o.state.collapsed?E:x,k=y(A)?"".concat(A,"px"):String(A),j=0===parseFloat(String(E||0))?r.createElement("span",{onClick:o.toggle,className:"".concat(D,"-zero-width-trigger ").concat(D,"-zero-width-trigger-").concat(m?"right":"left"),style:O},r.createElement(c.a,null)):null,_={expanded:m?r.createElement(l.a,null):r.createElement(p.a,null),collapsed:m?r.createElement(p.a,null):r.createElement(l.a,null)}[o.state.collapsed?"collapsed":"expanded"],T=null!==g?j||r.createElement("div",{className:"".concat(D,"-trigger"),onClick:o.toggle,style:{width:k}},g||_):null,F=b(b({},w),{flex:"0 0 ".concat(k),maxWidth:k,minWidth:k,width:k}),N=i()(f,D,"".concat(D,"-").concat(h),(v(t={},"".concat(D,"-collapsed"),!!o.state.collapsed),v(t,"".concat(D,"-has-trigger"),d&&null!==g&&!j),v(t,"".concat(D,"-below"),!!o.state.below),v(t,"".concat(D,"-zero-width"),0===parseFloat(k)),t));return r.createElement("aside",b({className:N},S,{style:F}),r.createElement("div",{className:"".concat(D,"-children")},o.props.children),d||o.state.below&&j?T:null)},o.uniqueId=_("ant-sider-"),"undefined"!==typeof window&&(u=window.matchMedia),u&&e.breakpoint&&e.breakpoint in k&&(o.mql=u("(max-width: ".concat(k[e.breakpoint],")"))),s="collapsed"in e?e.collapsed:e.defaultCollapsed,o.state={collapsed:s,below:!1},o}return x(n,[{key:"componentDidMount",value:function(){this.mql&&(this.mql.addListener(this.responsiveHandler),this.responsiveHandler(this.mql)),this.props.siderHook&&this.props.siderHook.addSider(this.uniqueId)}},{key:"componentWillUnmount",value:function(){this.mql&&this.mql.removeListener(this.responsiveHandler),this.props.siderHook&&this.props.siderHook.removeSider(this.uniqueId)}},{key:"render",value:function(){var e=this.state.collapsed,t=this.props.collapsedWidth;return r.createElement(j.Provider,{value:{siderCollapsed:e,collapsedWidth:t}},r.createElement(d.a,null,this.renderSider))}}],[{key:"getDerivedStateFromProps",value:function(e){return"collapsed"in e?{collapsed:e.collapsed}:null}}]),n}(r.Component);T.defaultProps={collapsible:!1,defaultCollapsed:!1,reverseArrow:!1,width:200,collapsedWidth:80,style:{},theme:"dark"};var F=function(e){E(n,e);var t=C(n);function n(){return g(this,n),t.apply(this,arguments)}return x(n,[{key:"render",value:function(){var e=this;return r.createElement(h.a.Consumer,null,(function(t){return r.createElement(T,b({},t,e.props))}))}}]),n}(r.Component)},function(e,t,n){"use strict";var r=n(147);t.a=r.a},function(e,t,n){"use strict";n(14),n(453)},function(e,t){var n,r,o=e.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function u(e){if(n===setTimeout)return setTimeout(e,0);if((n===i||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"===typeof setTimeout?setTimeout:i}catch(e){n=i}try{r="function"===typeof clearTimeout?clearTimeout:a}catch(e){r=a}}();var c,s=[],l=!1,f=-1;function p(){l&&c&&(l=!1,c.length?s=c.concat(s):f=-1,s.length&&h())}function h(){if(!l){var e=u(p);l=!0;for(var t=s.length;t;){for(c=s,s=[];++f1)for(var n=1;n=t.length?{value:void 0,done:!0}:(e=r(t,n),this._i+=e.length,{value:e,done:!1})}))},function(e,t,n){var r=n(62).f,o=n(78),i=n(35)("toStringTag");e.exports=function(e,t,n){e&&!o(e=n?e:e.prototype,i)&&r(e,i,{configurable:!0,value:t})}},function(e,t,n){n(543);for(var r=n(28),o=n(80),i=n(111),a=n(35)("toStringTag"),u="CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,TextTrackList,TouchList".split(","),c=0;c2?arguments[2]:{},i=r(t);o&&(i=a.call(i,Object.getOwnPropertySymbols(t)));for(var u=0;u=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|e}function d(e,t){if(c.isBuffer(e))return e.length;if("undefined"!==typeof ArrayBuffer&&"function"===typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!==typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return z(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return U(e).length;default:if(r)return z(e).length;t=(""+t).toLowerCase(),r=!0}}function y(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return k(this,t,n);case"utf8":case"utf-8":return S(this,t,n);case"ascii":return A(this,t,n);case"latin1":case"binary":return P(this,t,n);case"base64":return D(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return j(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}function m(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function v(e,t,n,r,o){if(0===e.length)return-1;if("string"===typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=o?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(o)return-1;n=e.length-1}else if(n<0){if(!o)return-1;n=0}if("string"===typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,o);if("number"===typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"===typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,o);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,o){var i,a=1,u=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;a=2,u/=2,c/=2,n/=2}function s(e,t){return 1===a?e[t]:e.readUInt16BE(t*a)}if(o){var l=-1;for(i=n;iu&&(n=u-c),i=n;i>=0;i--){for(var f=!0,p=0;po&&(r=o):r=o;var i=t.length;if(i%2!==0)throw new TypeError("Invalid hex string");r>i/2&&(r=i/2);for(var a=0;a>8,o=n%256,i.push(o),i.push(r);return i}(t,e.length-n),e,n,r)}function D(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function S(e,t,n){n=Math.min(e.length,n);for(var r=[],o=t;o239?4:s>223?3:s>191?2:1;if(o+f<=n)switch(f){case 1:s<128&&(l=s);break;case 2:128===(192&(i=e[o+1]))&&(c=(31&s)<<6|63&i)>127&&(l=c);break;case 3:i=e[o+1],a=e[o+2],128===(192&i)&&128===(192&a)&&(c=(15&s)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:i=e[o+1],a=e[o+2],u=e[o+3],128===(192&i)&&128===(192&a)&&128===(192&u)&&(c=(15&s)<<18|(63&i)<<12|(63&a)<<6|63&u)>65535&&c<1114112&&(l=c)}null===l?(l=65533,f=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),o+=f}return function(e){var t=e.length;if(t<=4096)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),""},c.prototype.compare=function(e,t,n,r,o){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===o&&(o=this.length),t<0||n>e.length||r<0||o>this.length)throw new RangeError("out of range index");if(r>=o&&t>=n)return 0;if(r>=o)return-1;if(t>=n)return 1;if(this===e)return 0;for(var i=(o>>>=0)-(r>>>=0),a=(n>>>=0)-(t>>>=0),u=Math.min(i,a),s=this.slice(r,o),l=e.slice(t,n),f=0;fo)&&(n=o),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var i=!1;;)switch(r){case"hex":return g(this,e,t,n);case"utf8":case"utf-8":return w(this,e,t,n);case"ascii":return x(this,e,t,n);case"latin1":case"binary":return E(this,e,t,n);case"base64":return O(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,e,t,n);default:if(i)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function A(e,t,n){var r="";n=Math.min(e.length,n);for(var o=t;or)&&(n=r);for(var o="",i=t;in)throw new RangeError("Trying to access beyond buffer length")}function T(e,t,n,r,o,i){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>o||te.length)throw new RangeError("Index out of range")}function F(e,t,n,r){t<0&&(t=65535+t+1);for(var o=0,i=Math.min(e.length-n,2);o>>8*(r?o:1-o)}function N(e,t,n,r){t<0&&(t=4294967295+t+1);for(var o=0,i=Math.min(e.length-n,4);o>>8*(r?o:3-o)&255}function M(e,t,n,r,o,i){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function I(e,t,n,r,i){return i||M(e,0,n,4),o.write(e,t,n,r,23,4),n+4}function R(e,t,n,r,i){return i||M(e,0,n,8),o.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if((e=~~e)<0?(e+=r)<0&&(e=0):e>r&&(e=r),(t=void 0===t?r:~~t)<0?(t+=r)<0&&(t=0):t>r&&(t=r),t0&&(o*=256);)r+=this[e+--t]*o;return r},c.prototype.readUInt8=function(e,t){return t||_(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||_(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||_(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||_(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||_(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||_(e,t,this.length);for(var r=this[e],o=1,i=0;++i=(o*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||_(e,t,this.length);for(var r=t,o=1,i=this[e+--r];r>0&&(o*=256);)i+=this[e+--r]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*t)),i},c.prototype.readInt8=function(e,t){return t||_(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||_(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||_(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||_(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||_(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||_(e,4,this.length),o.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||_(e,4,this.length),o.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||_(e,8,this.length),o.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||_(e,8,this.length),o.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||T(this,e,t,n,Math.pow(2,8*n)-1,0);var o=1,i=0;for(this[t]=255&e;++i=0&&(i*=256);)this[t+o]=e/i&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||T(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||T(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):F(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||T(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):F(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||T(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):N(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||T(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):N(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);T(this,e,t,n,o-1,-o)}var i=0,a=1,u=0;for(this[t]=255&e;++i>0)-u&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var o=Math.pow(2,8*n-1);T(this,e,t,n,o-1,-o)}var i=n-1,a=1,u=0;for(this[t+i]=255&e;--i>=0&&(a*=256);)e<0&&0===u&&0!==this[t+i+1]&&(u=1),this[t+i]=(e/a>>0)-u&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||T(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||T(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):F(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||T(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):F(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||T(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):N(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||T(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):N(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return I(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return I(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return R(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return R(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t=0;--o)e[o+t]=this[o+n];else if(i<1e3||!c.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"===typeof e)for(i=t;i55295&&n<57344){if(!o){if(n>56319){(t-=3)>-1&&i.push(239,191,189);continue}if(a+1===r){(t-=3)>-1&&i.push(239,191,189);continue}o=n;continue}if(n<56320){(t-=3)>-1&&i.push(239,191,189),o=n;continue}n=65536+(o-55296<<10|n-56320)}else o&&(t-=3)>-1&&i.push(239,191,189);if(o=null,n<128){if((t-=1)<0)break;i.push(n)}else if(n<2048){if((t-=2)<0)break;i.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;i.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;i.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return i}function U(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(B,"")).length<2)return"";for(;e.length%4!==0;)e+="=";return e}(e))}function H(e,t,n,r){for(var o=0;o=t.length||o>=e.length);++o)t[o+n]=e[o];return o}}).call(this,n(81))},function(e,t,n){"use strict";function r(e,t){Error.call(this),this.name="YAMLException",this.reason=e,this.mark=t,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||""}r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t},e.exports=r},function(e,t,n){"use strict";var r=n(115);e.exports=new r({include:[n(359)],implicit:[n(674),n(675)],explicit:[n(676),n(677),n(678),n(679)]})},function(e,t,n){"use strict";function r(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1)return this.getValueByKeyPath(key,options);if(templateContext&&"object"===typeof templateContext&&key in templateContext&&_placeholder!==templateContext[key])return templateContext[key]=Handler.gen(templateContext[key],key,{currentContext:obj,templateCurrentContext:templateContext}),templateContext[key];if(!(key in Random)&&!(lkey in Random)&&!(okey in Random))return _placeholder;for(var i=0;i1&&((o=t.context.path.slice(0)).pop(),o=this.normalizePath(o.concat(r)));try{e=r[r.length-1];for(var i=t.context.root,a=t.context.templateRoot,u=1;u1/(e+t)*e?!n:n):Math.random()>=.5},bool:function(e,t,n){return this.boolean(e,t,n)},natural:function(e,t){return e="undefined"!==typeof e?parseInt(e,10):0,t="undefined"!==typeof t?parseInt(t,10):9007199254740992,Math.round(Math.random()*(t-e))+e},integer:function(e,t){return e="undefined"!==typeof e?parseInt(e,10):-9007199254740992,t="undefined"!==typeof t?parseInt(t,10):9007199254740992,Math.round(Math.random()*(t-e))+e},int:function(e,t){return this.integer(e,t)},float:function(e,t,n,r){n=void 0===n?0:n,n=Math.max(Math.min(n,17),0),r=void 0===r?17:r,r=Math.max(Math.min(r,17),0);for(var o=this.integer(e,t)+".",i=0,a=this.natural(n,r);i1&&r--,i=6*r<1?t+6*(n-t)*r:2*r<1?n:3*r<2?t+(n-t)*(2/3-r)*6:t,o[s]=255*i;return o},hsl2hsv:function(e){var t=e[0],n=e[1]/100,r=e[2]/100;return[t,2*(n*=(r*=2)<=1?r:2-r)/(r+n)*100,(r+n)/2*100]},hsv2rgb:function(e){var t=e[0]/60,n=e[1]/100,r=e[2]/100,o=Math.floor(t)%6,i=t-Math.floor(t),a=255*r*(1-n),u=255*r*(1-n*i),c=255*r*(1-n*(1-i));switch(r*=255,o){case 0:return[r,c,a];case 1:return[u,r,a];case 2:return[a,r,c];case 3:return[a,u,r];case 4:return[c,a,r];case 5:return[r,a,u]}},hsv2hsl:function(e){var t,n,r=e[0],o=e[1]/100,i=e[2]/100;return t=o*i,[r,100*(t/=(n=(2-o)*i)<=1?n:2-n),100*(n/=2)]},rgb2hex:function(e,t,n){return"#"+((256+e<<8|t)<<8|n).toString(16).slice(1)},hex2rgb:function(e){return[(e="0x"+e.slice(1).replace(e.length>4?e:/./g,"$&$&")|0)>>16,e>>8&255,255&e]}}},function(e,t){e.exports={navy:{value:"#000080",nicer:"#001F3F"},blue:{value:"#0000ff",nicer:"#0074D9"},aqua:{value:"#00ffff",nicer:"#7FDBFF"},teal:{value:"#008080",nicer:"#39CCCC"},olive:{value:"#008000",nicer:"#3D9970"},green:{value:"#008000",nicer:"#2ECC40"},lime:{value:"#00ff00",nicer:"#01FF70"},yellow:{value:"#ffff00",nicer:"#FFDC00"},orange:{value:"#ffa500",nicer:"#FF851B"},red:{value:"#ff0000",nicer:"#FF4136"},maroon:{value:"#800000",nicer:"#85144B"},fuchsia:{value:"#ff00ff",nicer:"#F012BE"},purple:{value:"#800080",nicer:"#B10DC9"},silver:{value:"#c0c0c0",nicer:"#DDDDDD"},gray:{value:"#808080",nicer:"#AAAAAA"},black:{value:"#000000",nicer:"#111111"},white:{value:"#FFFFFF",nicer:"#FFFFFF"}}},function(e,t,n){var r=n(6),o=n(14);function i(e,t,n,o){return void 0===n?r.natural(e,t):void 0===o?n:r.natural(parseInt(n,10),parseInt(o,10))}e.exports={paragraph:function(e,t){for(var n=i(3,7,e,t),r=[],o=0;o1&&(t=[].slice.call(arguments,0));var n=e.options,r=n.context.templatePath.join("."),o=e.cache[r]=e.cache[r]||{index:0,array:t};return o.array[o.index++%o.array.length]}}},function(e,t){e.exports={first:function(){var e=["James","John","Robert","Michael","William","David","Richard","Charles","Joseph","Thomas","Christopher","Daniel","Paul","Mark","Donald","George","Kenneth","Steven","Edward","Brian","Ronald","Anthony","Kevin","Jason","Matthew","Gary","Timothy","Jose","Larry","Jeffrey","Frank","Scott","Eric"].concat(["Mary","Patricia","Linda","Barbara","Elizabeth","Jennifer","Maria","Susan","Margaret","Dorothy","Lisa","Nancy","Karen","Betty","Helen","Sandra","Donna","Carol","Ruth","Sharon","Michelle","Laura","Sarah","Kimberly","Deborah","Jessica","Shirley","Cynthia","Angela","Melissa","Brenda","Amy","Anna"]);return this.pick(e)},last:function(){return this.pick(["Smith","Johnson","Williams","Brown","Jones","Miller","Davis","Garcia","Rodriguez","Wilson","Martinez","Anderson","Taylor","Thomas","Hernandez","Moore","Martin","Jackson","Thompson","White","Lopez","Lee","Gonzalez","Harris","Clark","Lewis","Robinson","Walker","Perez","Hall","Young","Allen"])},name:function(e){return this.first()+" "+(e?this.first()+" ":"")+this.last()},cfirst:function(){var e="\u738b \u674e \u5f20 \u5218 \u9648 \u6768 \u8d75 \u9ec4 \u5468 \u5434 \u5f90 \u5b59 \u80e1 \u6731 \u9ad8 \u6797 \u4f55 \u90ed \u9a6c \u7f57 \u6881 \u5b8b \u90d1 \u8c22 \u97e9 \u5510 \u51af \u4e8e \u8463 \u8427 \u7a0b \u66f9 \u8881 \u9093 \u8bb8 \u5085 \u6c88 \u66fe \u5f6d \u5415 \u82cf \u5362 \u848b \u8521 \u8d3e \u4e01 \u9b4f \u859b \u53f6 \u960e \u4f59 \u6f58 \u675c \u6234 \u590f \u953a \u6c6a \u7530 \u4efb \u59dc \u8303 \u65b9 \u77f3 \u59da \u8c2d \u5ed6 \u90b9 \u718a \u91d1 \u9646 \u90dd \u5b54 \u767d \u5d14 \u5eb7 \u6bdb \u90b1 \u79e6 \u6c5f \u53f2 \u987e \u4faf \u90b5 \u5b5f \u9f99 \u4e07 \u6bb5 \u96f7 \u94b1 \u6c64 \u5c39 \u9ece \u6613 \u5e38 \u6b66 \u4e54 \u8d3a \u8d56 \u9f9a \u6587".split(" ");return this.pick(e)},clast:function(){var e="\u4f1f \u82b3 \u5a1c \u79c0\u82f1 \u654f \u9759 \u4e3d \u5f3a \u78ca \u519b \u6d0b \u52c7 \u8273 \u6770 \u5a1f \u6d9b \u660e \u8d85 \u79c0\u5170 \u971e \u5e73 \u521a \u6842\u82f1".split(" ");return this.pick(e)},cname:function(){return this.cfirst()+this.clast()}}},function(e,t){e.exports={url:function(e,t){return(e||this.protocol())+"://"+(t||this.domain())+"/"+this.word()},protocol:function(){return this.pick("http ftp gopher mailto mid cid news nntp prospero telnet rlogin tn3270 wais".split(" "))},domain:function(e){return this.word()+"."+(e||this.tld())},tld:function(){return this.pick("com net org edu gov int mil cn com.cn net.cn gov.cn org.cn \u4e2d\u56fd \u4e2d\u56fd\u4e92\u8054.\u516c\u53f8 \u4e2d\u56fd\u4e92\u8054.\u7f51\u7edc tel biz cc tv info name hk mobi asia cd travel pro museum coop aero ad ae af ag ai al am an ao aq ar as at au aw az ba bb bd be bf bg bh bi bj bm bn bo br bs bt bv bw by bz ca cc cf cg ch ci ck cl cm cn co cq cr cu cv cx cy cz de dj dk dm do dz ec ee eg eh es et ev fi fj fk fm fo fr ga gb gd ge gf gh gi gl gm gn gp gr gt gu gw gy hk hm hn hr ht hu id ie il in io iq ir is it jm jo jp ke kg kh ki km kn kp kr kw ky kz la lb lc li lk lr ls lt lu lv ly ma mc md mg mh ml mm mn mo mp mq mr ms mt mv mw mx my mz na nc ne nf ng ni nl no np nr nt nu nz om qa pa pe pf pg ph pk pl pm pn pr pt pw py re ro ru rw sa sb sc sd se sg sh si sj sk sl sm sn so sr st su sy sz tc td tf tg th tj tk tm tn to tp tr tt tv tw tz ua ug uk us uy va vc ve vg vn vu wf ws ye yu za zm zr zw".split(" "))},email:function(e){return this.character("lower")+"."+this.word()+"@"+(e||this.word()+"."+this.tld())},ip:function(){return this.natural(0,255)+"."+this.natural(0,255)+"."+this.natural(0,255)+"."+this.natural(0,255)}}},function(e,t,n){var r=n(18),o=["\u4e1c\u5317","\u534e\u5317","\u534e\u4e1c","\u534e\u4e2d","\u534e\u5357","\u897f\u5357","\u897f\u5317"];e.exports={region:function(){return this.pick(o)},province:function(){return this.pick(r).name},city:function(e){var t=this.pick(r),n=this.pick(t.children);return e?[t.name,n.name].join(" "):n.name},county:function(e){var t=this.pick(r),n=this.pick(t.children),o=this.pick(n.children)||{name:"-"};return e?[t.name,n.name,o.name].join(" "):o.name},zip:function(e){for(var t="",n=0;n<(e||6);n++)t+=this.natural(0,9);return t}}},function(e,t){var n={11e4:"\u5317\u4eac",110100:"\u5317\u4eac\u5e02",110101:"\u4e1c\u57ce\u533a",110102:"\u897f\u57ce\u533a",110105:"\u671d\u9633\u533a",110106:"\u4e30\u53f0\u533a",110107:"\u77f3\u666f\u5c71\u533a",110108:"\u6d77\u6dc0\u533a",110109:"\u95e8\u5934\u6c9f\u533a",110111:"\u623f\u5c71\u533a",110112:"\u901a\u5dde\u533a",110113:"\u987a\u4e49\u533a",110114:"\u660c\u5e73\u533a",110115:"\u5927\u5174\u533a",110116:"\u6000\u67d4\u533a",110117:"\u5e73\u8c37\u533a",110228:"\u5bc6\u4e91\u53bf",110229:"\u5ef6\u5e86\u53bf",110230:"\u5176\u5b83\u533a",12e4:"\u5929\u6d25",120100:"\u5929\u6d25\u5e02",120101:"\u548c\u5e73\u533a",120102:"\u6cb3\u4e1c\u533a",120103:"\u6cb3\u897f\u533a",120104:"\u5357\u5f00\u533a",120105:"\u6cb3\u5317\u533a",120106:"\u7ea2\u6865\u533a",120110:"\u4e1c\u4e3d\u533a",120111:"\u897f\u9752\u533a",120112:"\u6d25\u5357\u533a",120113:"\u5317\u8fb0\u533a",120114:"\u6b66\u6e05\u533a",120115:"\u5b9d\u577b\u533a",120116:"\u6ee8\u6d77\u65b0\u533a",120221:"\u5b81\u6cb3\u53bf",120223:"\u9759\u6d77\u53bf",120225:"\u84df\u53bf",120226:"\u5176\u5b83\u533a",13e4:"\u6cb3\u5317\u7701",130100:"\u77f3\u5bb6\u5e84\u5e02",130102:"\u957f\u5b89\u533a",130103:"\u6865\u4e1c\u533a",130104:"\u6865\u897f\u533a",130105:"\u65b0\u534e\u533a",130107:"\u4e95\u9649\u77ff\u533a",130108:"\u88d5\u534e\u533a",130121:"\u4e95\u9649\u53bf",130123:"\u6b63\u5b9a\u53bf",130124:"\u683e\u57ce\u53bf",130125:"\u884c\u5510\u53bf",130126:"\u7075\u5bff\u53bf",130127:"\u9ad8\u9091\u53bf",130128:"\u6df1\u6cfd\u53bf",130129:"\u8d5e\u7687\u53bf",130130:"\u65e0\u6781\u53bf",130131:"\u5e73\u5c71\u53bf",130132:"\u5143\u6c0f\u53bf",130133:"\u8d75\u53bf",130181:"\u8f9b\u96c6\u5e02",130182:"\u85c1\u57ce\u5e02",130183:"\u664b\u5dde\u5e02",130184:"\u65b0\u4e50\u5e02",130185:"\u9e7f\u6cc9\u5e02",130186:"\u5176\u5b83\u533a",130200:"\u5510\u5c71\u5e02",130202:"\u8def\u5357\u533a",130203:"\u8def\u5317\u533a",130204:"\u53e4\u51b6\u533a",130205:"\u5f00\u5e73\u533a",130207:"\u4e30\u5357\u533a",130208:"\u4e30\u6da6\u533a",130223:"\u6ee6\u53bf",130224:"\u6ee6\u5357\u53bf",130225:"\u4e50\u4ead\u53bf",130227:"\u8fc1\u897f\u53bf",130229:"\u7389\u7530\u53bf",130230:"\u66f9\u5983\u7538\u533a",130281:"\u9075\u5316\u5e02",130283:"\u8fc1\u5b89\u5e02",130284:"\u5176\u5b83\u533a",130300:"\u79e6\u7687\u5c9b\u5e02",130302:"\u6d77\u6e2f\u533a",130303:"\u5c71\u6d77\u5173\u533a",130304:"\u5317\u6234\u6cb3\u533a",130321:"\u9752\u9f99\u6ee1\u65cf\u81ea\u6cbb\u53bf",130322:"\u660c\u9ece\u53bf",130323:"\u629a\u5b81\u53bf",130324:"\u5362\u9f99\u53bf",130398:"\u5176\u5b83\u533a",130400:"\u90af\u90f8\u5e02",130402:"\u90af\u5c71\u533a",130403:"\u4e1b\u53f0\u533a",130404:"\u590d\u5174\u533a",130406:"\u5cf0\u5cf0\u77ff\u533a",130421:"\u90af\u90f8\u53bf",130423:"\u4e34\u6f33\u53bf",130424:"\u6210\u5b89\u53bf",130425:"\u5927\u540d\u53bf",130426:"\u6d89\u53bf",130427:"\u78c1\u53bf",130428:"\u80a5\u4e61\u53bf",130429:"\u6c38\u5e74\u53bf",130430:"\u90b1\u53bf",130431:"\u9e21\u6cfd\u53bf",130432:"\u5e7f\u5e73\u53bf",130433:"\u9986\u9676\u53bf",130434:"\u9b4f\u53bf",130435:"\u66f2\u5468\u53bf",130481:"\u6b66\u5b89\u5e02",130482:"\u5176\u5b83\u533a",130500:"\u90a2\u53f0\u5e02",130502:"\u6865\u4e1c\u533a",130503:"\u6865\u897f\u533a",130521:"\u90a2\u53f0\u53bf",130522:"\u4e34\u57ce\u53bf",130523:"\u5185\u4e18\u53bf",130524:"\u67cf\u4e61\u53bf",130525:"\u9686\u5c27\u53bf",130526:"\u4efb\u53bf",130527:"\u5357\u548c\u53bf",130528:"\u5b81\u664b\u53bf",130529:"\u5de8\u9e7f\u53bf",130530:"\u65b0\u6cb3\u53bf",130531:"\u5e7f\u5b97\u53bf",130532:"\u5e73\u4e61\u53bf",130533:"\u5a01\u53bf",130534:"\u6e05\u6cb3\u53bf",130535:"\u4e34\u897f\u53bf",130581:"\u5357\u5bab\u5e02",130582:"\u6c99\u6cb3\u5e02",130583:"\u5176\u5b83\u533a",130600:"\u4fdd\u5b9a\u5e02",130602:"\u65b0\u5e02\u533a",130603:"\u5317\u5e02\u533a",130604:"\u5357\u5e02\u533a",130621:"\u6ee1\u57ce\u53bf",130622:"\u6e05\u82d1\u53bf",130623:"\u6d9e\u6c34\u53bf",130624:"\u961c\u5e73\u53bf",130625:"\u5f90\u6c34\u53bf",130626:"\u5b9a\u5174\u53bf",130627:"\u5510\u53bf",130628:"\u9ad8\u9633\u53bf",130629:"\u5bb9\u57ce\u53bf",130630:"\u6d9e\u6e90\u53bf",130631:"\u671b\u90fd\u53bf",130632:"\u5b89\u65b0\u53bf",130633:"\u6613\u53bf",130634:"\u66f2\u9633\u53bf",130635:"\u8821\u53bf",130636:"\u987a\u5e73\u53bf",130637:"\u535a\u91ce\u53bf",130638:"\u96c4\u53bf",130681:"\u6dbf\u5dde\u5e02",130682:"\u5b9a\u5dde\u5e02",130683:"\u5b89\u56fd\u5e02",130684:"\u9ad8\u7891\u5e97\u5e02",130699:"\u5176\u5b83\u533a",130700:"\u5f20\u5bb6\u53e3\u5e02",130702:"\u6865\u4e1c\u533a",130703:"\u6865\u897f\u533a",130705:"\u5ba3\u5316\u533a",130706:"\u4e0b\u82b1\u56ed\u533a",130721:"\u5ba3\u5316\u53bf",130722:"\u5f20\u5317\u53bf",130723:"\u5eb7\u4fdd\u53bf",130724:"\u6cbd\u6e90\u53bf",130725:"\u5c1a\u4e49\u53bf",130726:"\u851a\u53bf",130727:"\u9633\u539f\u53bf",130728:"\u6000\u5b89\u53bf",130729:"\u4e07\u5168\u53bf",130730:"\u6000\u6765\u53bf",130731:"\u6dbf\u9e7f\u53bf",130732:"\u8d64\u57ce\u53bf",130733:"\u5d07\u793c\u53bf",130734:"\u5176\u5b83\u533a",130800:"\u627f\u5fb7\u5e02",130802:"\u53cc\u6865\u533a",130803:"\u53cc\u6ee6\u533a",130804:"\u9e70\u624b\u8425\u5b50\u77ff\u533a",130821:"\u627f\u5fb7\u53bf",130822:"\u5174\u9686\u53bf",130823:"\u5e73\u6cc9\u53bf",130824:"\u6ee6\u5e73\u53bf",130825:"\u9686\u5316\u53bf",130826:"\u4e30\u5b81\u6ee1\u65cf\u81ea\u6cbb\u53bf",130827:"\u5bbd\u57ce\u6ee1\u65cf\u81ea\u6cbb\u53bf",130828:"\u56f4\u573a\u6ee1\u65cf\u8499\u53e4\u65cf\u81ea\u6cbb\u53bf",130829:"\u5176\u5b83\u533a",130900:"\u6ca7\u5dde\u5e02",130902:"\u65b0\u534e\u533a",130903:"\u8fd0\u6cb3\u533a",130921:"\u6ca7\u53bf",130922:"\u9752\u53bf",130923:"\u4e1c\u5149\u53bf",130924:"\u6d77\u5174\u53bf",130925:"\u76d0\u5c71\u53bf",130926:"\u8083\u5b81\u53bf",130927:"\u5357\u76ae\u53bf",130928:"\u5434\u6865\u53bf",130929:"\u732e\u53bf",130930:"\u5b5f\u6751\u56de\u65cf\u81ea\u6cbb\u53bf",130981:"\u6cca\u5934\u5e02",130982:"\u4efb\u4e18\u5e02",130983:"\u9ec4\u9a85\u5e02",130984:"\u6cb3\u95f4\u5e02",130985:"\u5176\u5b83\u533a",131e3:"\u5eca\u574a\u5e02",131002:"\u5b89\u6b21\u533a",131003:"\u5e7f\u9633\u533a",131022:"\u56fa\u5b89\u53bf",131023:"\u6c38\u6e05\u53bf",131024:"\u9999\u6cb3\u53bf",131025:"\u5927\u57ce\u53bf",131026:"\u6587\u5b89\u53bf",131028:"\u5927\u5382\u56de\u65cf\u81ea\u6cbb\u53bf",131081:"\u9738\u5dde\u5e02",131082:"\u4e09\u6cb3\u5e02",131083:"\u5176\u5b83\u533a",131100:"\u8861\u6c34\u5e02",131102:"\u6843\u57ce\u533a",131121:"\u67a3\u5f3a\u53bf",131122:"\u6b66\u9091\u53bf",131123:"\u6b66\u5f3a\u53bf",131124:"\u9976\u9633\u53bf",131125:"\u5b89\u5e73\u53bf",131126:"\u6545\u57ce\u53bf",131127:"\u666f\u53bf",131128:"\u961c\u57ce\u53bf",131181:"\u5180\u5dde\u5e02",131182:"\u6df1\u5dde\u5e02",131183:"\u5176\u5b83\u533a",14e4:"\u5c71\u897f\u7701",140100:"\u592a\u539f\u5e02",140105:"\u5c0f\u5e97\u533a",140106:"\u8fce\u6cfd\u533a",140107:"\u674f\u82b1\u5cad\u533a",140108:"\u5c16\u8349\u576a\u533a",140109:"\u4e07\u67cf\u6797\u533a",140110:"\u664b\u6e90\u533a",140121:"\u6e05\u5f90\u53bf",140122:"\u9633\u66f2\u53bf",140123:"\u5a04\u70e6\u53bf",140181:"\u53e4\u4ea4\u5e02",140182:"\u5176\u5b83\u533a",140200:"\u5927\u540c\u5e02",140202:"\u57ce\u533a",140203:"\u77ff\u533a",140211:"\u5357\u90ca\u533a",140212:"\u65b0\u8363\u533a",140221:"\u9633\u9ad8\u53bf",140222:"\u5929\u9547\u53bf",140223:"\u5e7f\u7075\u53bf",140224:"\u7075\u4e18\u53bf",140225:"\u6d51\u6e90\u53bf",140226:"\u5de6\u4e91\u53bf",140227:"\u5927\u540c\u53bf",140228:"\u5176\u5b83\u533a",140300:"\u9633\u6cc9\u5e02",140302:"\u57ce\u533a",140303:"\u77ff\u533a",140311:"\u90ca\u533a",140321:"\u5e73\u5b9a\u53bf",140322:"\u76c2\u53bf",140323:"\u5176\u5b83\u533a",140400:"\u957f\u6cbb\u5e02",140421:"\u957f\u6cbb\u53bf",140423:"\u8944\u57a3\u53bf",140424:"\u5c6f\u7559\u53bf",140425:"\u5e73\u987a\u53bf",140426:"\u9ece\u57ce\u53bf",140427:"\u58f6\u5173\u53bf",140428:"\u957f\u5b50\u53bf",140429:"\u6b66\u4e61\u53bf",140430:"\u6c81\u53bf",140431:"\u6c81\u6e90\u53bf",140481:"\u6f5e\u57ce\u5e02",140482:"\u57ce\u533a",140483:"\u90ca\u533a",140485:"\u5176\u5b83\u533a",140500:"\u664b\u57ce\u5e02",140502:"\u57ce\u533a",140521:"\u6c81\u6c34\u53bf",140522:"\u9633\u57ce\u53bf",140524:"\u9675\u5ddd\u53bf",140525:"\u6cfd\u5dde\u53bf",140581:"\u9ad8\u5e73\u5e02",140582:"\u5176\u5b83\u533a",140600:"\u6714\u5dde\u5e02",140602:"\u6714\u57ce\u533a",140603:"\u5e73\u9c81\u533a",140621:"\u5c71\u9634\u53bf",140622:"\u5e94\u53bf",140623:"\u53f3\u7389\u53bf",140624:"\u6000\u4ec1\u53bf",140625:"\u5176\u5b83\u533a",140700:"\u664b\u4e2d\u5e02",140702:"\u6986\u6b21\u533a",140721:"\u6986\u793e\u53bf",140722:"\u5de6\u6743\u53bf",140723:"\u548c\u987a\u53bf",140724:"\u6614\u9633\u53bf",140725:"\u5bff\u9633\u53bf",140726:"\u592a\u8c37\u53bf",140727:"\u7941\u53bf",140728:"\u5e73\u9065\u53bf",140729:"\u7075\u77f3\u53bf",140781:"\u4ecb\u4f11\u5e02",140782:"\u5176\u5b83\u533a",140800:"\u8fd0\u57ce\u5e02",140802:"\u76d0\u6e56\u533a",140821:"\u4e34\u7317\u53bf",140822:"\u4e07\u8363\u53bf",140823:"\u95fb\u559c\u53bf",140824:"\u7a37\u5c71\u53bf",140825:"\u65b0\u7edb\u53bf",140826:"\u7edb\u53bf",140827:"\u57a3\u66f2\u53bf",140828:"\u590f\u53bf",140829:"\u5e73\u9646\u53bf",140830:"\u82ae\u57ce\u53bf",140881:"\u6c38\u6d4e\u5e02",140882:"\u6cb3\u6d25\u5e02",140883:"\u5176\u5b83\u533a",140900:"\u5ffb\u5dde\u5e02",140902:"\u5ffb\u5e9c\u533a",140921:"\u5b9a\u8944\u53bf",140922:"\u4e94\u53f0\u53bf",140923:"\u4ee3\u53bf",140924:"\u7e41\u5cd9\u53bf",140925:"\u5b81\u6b66\u53bf",140926:"\u9759\u4e50\u53bf",140927:"\u795e\u6c60\u53bf",140928:"\u4e94\u5be8\u53bf",140929:"\u5ca2\u5c9a\u53bf",140930:"\u6cb3\u66f2\u53bf",140931:"\u4fdd\u5fb7\u53bf",140932:"\u504f\u5173\u53bf",140981:"\u539f\u5e73\u5e02",140982:"\u5176\u5b83\u533a",141e3:"\u4e34\u6c7e\u5e02",141002:"\u5c27\u90fd\u533a",141021:"\u66f2\u6c83\u53bf",141022:"\u7ffc\u57ce\u53bf",141023:"\u8944\u6c7e\u53bf",141024:"\u6d2a\u6d1e\u53bf",141025:"\u53e4\u53bf",141026:"\u5b89\u6cfd\u53bf",141027:"\u6d6e\u5c71\u53bf",141028:"\u5409\u53bf",141029:"\u4e61\u5b81\u53bf",141030:"\u5927\u5b81\u53bf",141031:"\u96b0\u53bf",141032:"\u6c38\u548c\u53bf",141033:"\u84b2\u53bf",141034:"\u6c7e\u897f\u53bf",141081:"\u4faf\u9a6c\u5e02",141082:"\u970d\u5dde\u5e02",141083:"\u5176\u5b83\u533a",141100:"\u5415\u6881\u5e02",141102:"\u79bb\u77f3\u533a",141121:"\u6587\u6c34\u53bf",141122:"\u4ea4\u57ce\u53bf",141123:"\u5174\u53bf",141124:"\u4e34\u53bf",141125:"\u67f3\u6797\u53bf",141126:"\u77f3\u697c\u53bf",141127:"\u5c9a\u53bf",141128:"\u65b9\u5c71\u53bf",141129:"\u4e2d\u9633\u53bf",141130:"\u4ea4\u53e3\u53bf",141181:"\u5b5d\u4e49\u5e02",141182:"\u6c7e\u9633\u5e02",141183:"\u5176\u5b83\u533a",15e4:"\u5185\u8499\u53e4\u81ea\u6cbb\u533a",150100:"\u547c\u548c\u6d69\u7279\u5e02",150102:"\u65b0\u57ce\u533a",150103:"\u56de\u6c11\u533a",150104:"\u7389\u6cc9\u533a",150105:"\u8d5b\u7f55\u533a",150121:"\u571f\u9ed8\u7279\u5de6\u65d7",150122:"\u6258\u514b\u6258\u53bf",150123:"\u548c\u6797\u683c\u5c14\u53bf",150124:"\u6e05\u6c34\u6cb3\u53bf",150125:"\u6b66\u5ddd\u53bf",150126:"\u5176\u5b83\u533a",150200:"\u5305\u5934\u5e02",150202:"\u4e1c\u6cb3\u533a",150203:"\u6606\u90fd\u4ed1\u533a",150204:"\u9752\u5c71\u533a",150205:"\u77f3\u62d0\u533a",150206:"\u767d\u4e91\u9102\u535a\u77ff\u533a",150207:"\u4e5d\u539f\u533a",150221:"\u571f\u9ed8\u7279\u53f3\u65d7",150222:"\u56fa\u9633\u53bf",150223:"\u8fbe\u5c14\u7f55\u8302\u660e\u5b89\u8054\u5408\u65d7",150224:"\u5176\u5b83\u533a",150300:"\u4e4c\u6d77\u5e02",150302:"\u6d77\u52c3\u6e7e\u533a",150303:"\u6d77\u5357\u533a",150304:"\u4e4c\u8fbe\u533a",150305:"\u5176\u5b83\u533a",150400:"\u8d64\u5cf0\u5e02",150402:"\u7ea2\u5c71\u533a",150403:"\u5143\u5b9d\u5c71\u533a",150404:"\u677e\u5c71\u533a",150421:"\u963f\u9c81\u79d1\u5c14\u6c81\u65d7",150422:"\u5df4\u6797\u5de6\u65d7",150423:"\u5df4\u6797\u53f3\u65d7",150424:"\u6797\u897f\u53bf",150425:"\u514b\u4ec0\u514b\u817e\u65d7",150426:"\u7fc1\u725b\u7279\u65d7",150428:"\u5580\u5587\u6c81\u65d7",150429:"\u5b81\u57ce\u53bf",150430:"\u6556\u6c49\u65d7",150431:"\u5176\u5b83\u533a",150500:"\u901a\u8fbd\u5e02",150502:"\u79d1\u5c14\u6c81\u533a",150521:"\u79d1\u5c14\u6c81\u5de6\u7ffc\u4e2d\u65d7",150522:"\u79d1\u5c14\u6c81\u5de6\u7ffc\u540e\u65d7",150523:"\u5f00\u9c81\u53bf",150524:"\u5e93\u4f26\u65d7",150525:"\u5948\u66fc\u65d7",150526:"\u624e\u9c81\u7279\u65d7",150581:"\u970d\u6797\u90ed\u52d2\u5e02",150582:"\u5176\u5b83\u533a",150600:"\u9102\u5c14\u591a\u65af\u5e02",150602:"\u4e1c\u80dc\u533a",150621:"\u8fbe\u62c9\u7279\u65d7",150622:"\u51c6\u683c\u5c14\u65d7",150623:"\u9102\u6258\u514b\u524d\u65d7",150624:"\u9102\u6258\u514b\u65d7",150625:"\u676d\u9526\u65d7",150626:"\u4e4c\u5ba1\u65d7",150627:"\u4f0a\u91d1\u970d\u6d1b\u65d7",150628:"\u5176\u5b83\u533a",150700:"\u547c\u4f26\u8d1d\u5c14\u5e02",150702:"\u6d77\u62c9\u5c14\u533a",150703:"\u624e\u8d49\u8bfa\u5c14\u533a",150721:"\u963f\u8363\u65d7",150722:"\u83ab\u529b\u8fbe\u74e6\u8fbe\u65a1\u5c14\u65cf\u81ea\u6cbb\u65d7",150723:"\u9102\u4f26\u6625\u81ea\u6cbb\u65d7",150724:"\u9102\u6e29\u514b\u65cf\u81ea\u6cbb\u65d7",150725:"\u9648\u5df4\u5c14\u864e\u65d7",150726:"\u65b0\u5df4\u5c14\u864e\u5de6\u65d7",150727:"\u65b0\u5df4\u5c14\u864e\u53f3\u65d7",150781:"\u6ee1\u6d32\u91cc\u5e02",150782:"\u7259\u514b\u77f3\u5e02",150783:"\u624e\u5170\u5c6f\u5e02",150784:"\u989d\u5c14\u53e4\u7eb3\u5e02",150785:"\u6839\u6cb3\u5e02",150786:"\u5176\u5b83\u533a",150800:"\u5df4\u5f66\u6dd6\u5c14\u5e02",150802:"\u4e34\u6cb3\u533a",150821:"\u4e94\u539f\u53bf",150822:"\u78f4\u53e3\u53bf",150823:"\u4e4c\u62c9\u7279\u524d\u65d7",150824:"\u4e4c\u62c9\u7279\u4e2d\u65d7",150825:"\u4e4c\u62c9\u7279\u540e\u65d7",150826:"\u676d\u9526\u540e\u65d7",150827:"\u5176\u5b83\u533a",150900:"\u4e4c\u5170\u5bdf\u5e03\u5e02",150902:"\u96c6\u5b81\u533a",150921:"\u5353\u8d44\u53bf",150922:"\u5316\u5fb7\u53bf",150923:"\u5546\u90fd\u53bf",150924:"\u5174\u548c\u53bf",150925:"\u51c9\u57ce\u53bf",150926:"\u5bdf\u54c8\u5c14\u53f3\u7ffc\u524d\u65d7",150927:"\u5bdf\u54c8\u5c14\u53f3\u7ffc\u4e2d\u65d7",150928:"\u5bdf\u54c8\u5c14\u53f3\u7ffc\u540e\u65d7",150929:"\u56db\u5b50\u738b\u65d7",150981:"\u4e30\u9547\u5e02",150982:"\u5176\u5b83\u533a",152200:"\u5174\u5b89\u76df",152201:"\u4e4c\u5170\u6d69\u7279\u5e02",152202:"\u963f\u5c14\u5c71\u5e02",152221:"\u79d1\u5c14\u6c81\u53f3\u7ffc\u524d\u65d7",152222:"\u79d1\u5c14\u6c81\u53f3\u7ffc\u4e2d\u65d7",152223:"\u624e\u8d49\u7279\u65d7",152224:"\u7a81\u6cc9\u53bf",152225:"\u5176\u5b83\u533a",152500:"\u9521\u6797\u90ed\u52d2\u76df",152501:"\u4e8c\u8fde\u6d69\u7279\u5e02",152502:"\u9521\u6797\u6d69\u7279\u5e02",152522:"\u963f\u5df4\u560e\u65d7",152523:"\u82cf\u5c3c\u7279\u5de6\u65d7",152524:"\u82cf\u5c3c\u7279\u53f3\u65d7",152525:"\u4e1c\u4e4c\u73e0\u7a46\u6c81\u65d7",152526:"\u897f\u4e4c\u73e0\u7a46\u6c81\u65d7",152527:"\u592a\u4ec6\u5bfa\u65d7",152528:"\u9576\u9ec4\u65d7",152529:"\u6b63\u9576\u767d\u65d7",152530:"\u6b63\u84dd\u65d7",152531:"\u591a\u4f26\u53bf",152532:"\u5176\u5b83\u533a",152900:"\u963f\u62c9\u5584\u76df",152921:"\u963f\u62c9\u5584\u5de6\u65d7",152922:"\u963f\u62c9\u5584\u53f3\u65d7",152923:"\u989d\u6d4e\u7eb3\u65d7",152924:"\u5176\u5b83\u533a",21e4:"\u8fbd\u5b81\u7701",210100:"\u6c88\u9633\u5e02",210102:"\u548c\u5e73\u533a",210103:"\u6c88\u6cb3\u533a",210104:"\u5927\u4e1c\u533a",210105:"\u7687\u59d1\u533a",210106:"\u94c1\u897f\u533a",210111:"\u82cf\u5bb6\u5c6f\u533a",210112:"\u4e1c\u9675\u533a",210113:"\u65b0\u57ce\u5b50\u533a",210114:"\u4e8e\u6d2a\u533a",210122:"\u8fbd\u4e2d\u53bf",210123:"\u5eb7\u5e73\u53bf",210124:"\u6cd5\u5e93\u53bf",210181:"\u65b0\u6c11\u5e02",210184:"\u6c88\u5317\u65b0\u533a",210185:"\u5176\u5b83\u533a",210200:"\u5927\u8fde\u5e02",210202:"\u4e2d\u5c71\u533a",210203:"\u897f\u5c97\u533a",210204:"\u6c99\u6cb3\u53e3\u533a",210211:"\u7518\u4e95\u5b50\u533a",210212:"\u65c5\u987a\u53e3\u533a",210213:"\u91d1\u5dde\u533a",210224:"\u957f\u6d77\u53bf",210281:"\u74e6\u623f\u5e97\u5e02",210282:"\u666e\u5170\u5e97\u5e02",210283:"\u5e84\u6cb3\u5e02",210298:"\u5176\u5b83\u533a",210300:"\u978d\u5c71\u5e02",210302:"\u94c1\u4e1c\u533a",210303:"\u94c1\u897f\u533a",210304:"\u7acb\u5c71\u533a",210311:"\u5343\u5c71\u533a",210321:"\u53f0\u5b89\u53bf",210323:"\u5cab\u5ca9\u6ee1\u65cf\u81ea\u6cbb\u53bf",210381:"\u6d77\u57ce\u5e02",210382:"\u5176\u5b83\u533a",210400:"\u629a\u987a\u5e02",210402:"\u65b0\u629a\u533a",210403:"\u4e1c\u6d32\u533a",210404:"\u671b\u82b1\u533a",210411:"\u987a\u57ce\u533a",210421:"\u629a\u987a\u53bf",210422:"\u65b0\u5bbe\u6ee1\u65cf\u81ea\u6cbb\u53bf",210423:"\u6e05\u539f\u6ee1\u65cf\u81ea\u6cbb\u53bf",210424:"\u5176\u5b83\u533a",210500:"\u672c\u6eaa\u5e02",210502:"\u5e73\u5c71\u533a",210503:"\u6eaa\u6e56\u533a",210504:"\u660e\u5c71\u533a",210505:"\u5357\u82ac\u533a",210521:"\u672c\u6eaa\u6ee1\u65cf\u81ea\u6cbb\u53bf",210522:"\u6853\u4ec1\u6ee1\u65cf\u81ea\u6cbb\u53bf",210523:"\u5176\u5b83\u533a",210600:"\u4e39\u4e1c\u5e02",210602:"\u5143\u5b9d\u533a",210603:"\u632f\u5174\u533a",210604:"\u632f\u5b89\u533a",210624:"\u5bbd\u7538\u6ee1\u65cf\u81ea\u6cbb\u53bf",210681:"\u4e1c\u6e2f\u5e02",210682:"\u51e4\u57ce\u5e02",210683:"\u5176\u5b83\u533a",210700:"\u9526\u5dde\u5e02",210702:"\u53e4\u5854\u533a",210703:"\u51cc\u6cb3\u533a",210711:"\u592a\u548c\u533a",210726:"\u9ed1\u5c71\u53bf",210727:"\u4e49\u53bf",210781:"\u51cc\u6d77\u5e02",210782:"\u5317\u9547\u5e02",210783:"\u5176\u5b83\u533a",210800:"\u8425\u53e3\u5e02",210802:"\u7ad9\u524d\u533a",210803:"\u897f\u5e02\u533a",210804:"\u9c85\u9c7c\u5708\u533a",210811:"\u8001\u8fb9\u533a",210881:"\u76d6\u5dde\u5e02",210882:"\u5927\u77f3\u6865\u5e02",210883:"\u5176\u5b83\u533a",210900:"\u961c\u65b0\u5e02",210902:"\u6d77\u5dde\u533a",210903:"\u65b0\u90b1\u533a",210904:"\u592a\u5e73\u533a",210905:"\u6e05\u6cb3\u95e8\u533a",210911:"\u7ec6\u6cb3\u533a",210921:"\u961c\u65b0\u8499\u53e4\u65cf\u81ea\u6cbb\u53bf",210922:"\u5f70\u6b66\u53bf",210923:"\u5176\u5b83\u533a",211e3:"\u8fbd\u9633\u5e02",211002:"\u767d\u5854\u533a",211003:"\u6587\u5723\u533a",211004:"\u5b8f\u4f1f\u533a",211005:"\u5f13\u957f\u5cad\u533a",211011:"\u592a\u5b50\u6cb3\u533a",211021:"\u8fbd\u9633\u53bf",211081:"\u706f\u5854\u5e02",211082:"\u5176\u5b83\u533a",211100:"\u76d8\u9526\u5e02",211102:"\u53cc\u53f0\u5b50\u533a",211103:"\u5174\u9686\u53f0\u533a",211121:"\u5927\u6d3c\u53bf",211122:"\u76d8\u5c71\u53bf",211123:"\u5176\u5b83\u533a",211200:"\u94c1\u5cad\u5e02",211202:"\u94f6\u5dde\u533a",211204:"\u6e05\u6cb3\u533a",211221:"\u94c1\u5cad\u53bf",211223:"\u897f\u4e30\u53bf",211224:"\u660c\u56fe\u53bf",211281:"\u8c03\u5175\u5c71\u5e02",211282:"\u5f00\u539f\u5e02",211283:"\u5176\u5b83\u533a",211300:"\u671d\u9633\u5e02",211302:"\u53cc\u5854\u533a",211303:"\u9f99\u57ce\u533a",211321:"\u671d\u9633\u53bf",211322:"\u5efa\u5e73\u53bf",211324:"\u5580\u5587\u6c81\u5de6\u7ffc\u8499\u53e4\u65cf\u81ea\u6cbb\u53bf",211381:"\u5317\u7968\u5e02",211382:"\u51cc\u6e90\u5e02",211383:"\u5176\u5b83\u533a",211400:"\u846b\u82a6\u5c9b\u5e02",211402:"\u8fde\u5c71\u533a",211403:"\u9f99\u6e2f\u533a",211404:"\u5357\u7968\u533a",211421:"\u7ee5\u4e2d\u53bf",211422:"\u5efa\u660c\u53bf",211481:"\u5174\u57ce\u5e02",211482:"\u5176\u5b83\u533a",22e4:"\u5409\u6797\u7701",220100:"\u957f\u6625\u5e02",220102:"\u5357\u5173\u533a",220103:"\u5bbd\u57ce\u533a",220104:"\u671d\u9633\u533a",220105:"\u4e8c\u9053\u533a",220106:"\u7eff\u56ed\u533a",220112:"\u53cc\u9633\u533a",220122:"\u519c\u5b89\u53bf",220181:"\u4e5d\u53f0\u5e02",220182:"\u6986\u6811\u5e02",220183:"\u5fb7\u60e0\u5e02",220188:"\u5176\u5b83\u533a",220200:"\u5409\u6797\u5e02",220202:"\u660c\u9091\u533a",220203:"\u9f99\u6f6d\u533a",220204:"\u8239\u8425\u533a",220211:"\u4e30\u6ee1\u533a",220221:"\u6c38\u5409\u53bf",220281:"\u86df\u6cb3\u5e02",220282:"\u6866\u7538\u5e02",220283:"\u8212\u5170\u5e02",220284:"\u78d0\u77f3\u5e02",220285:"\u5176\u5b83\u533a",220300:"\u56db\u5e73\u5e02",220302:"\u94c1\u897f\u533a",220303:"\u94c1\u4e1c\u533a",220322:"\u68a8\u6811\u53bf",220323:"\u4f0a\u901a\u6ee1\u65cf\u81ea\u6cbb\u53bf",220381:"\u516c\u4e3b\u5cad\u5e02",220382:"\u53cc\u8fbd\u5e02",220383:"\u5176\u5b83\u533a",220400:"\u8fbd\u6e90\u5e02",220402:"\u9f99\u5c71\u533a",220403:"\u897f\u5b89\u533a",220421:"\u4e1c\u4e30\u53bf",220422:"\u4e1c\u8fbd\u53bf",220423:"\u5176\u5b83\u533a",220500:"\u901a\u5316\u5e02",220502:"\u4e1c\u660c\u533a",220503:"\u4e8c\u9053\u6c5f\u533a",220521:"\u901a\u5316\u53bf",220523:"\u8f89\u5357\u53bf",220524:"\u67f3\u6cb3\u53bf",220581:"\u6885\u6cb3\u53e3\u5e02",220582:"\u96c6\u5b89\u5e02",220583:"\u5176\u5b83\u533a",220600:"\u767d\u5c71\u5e02",220602:"\u6d51\u6c5f\u533a",220621:"\u629a\u677e\u53bf",220622:"\u9756\u5b87\u53bf",220623:"\u957f\u767d\u671d\u9c9c\u65cf\u81ea\u6cbb\u53bf",220625:"\u6c5f\u6e90\u533a",220681:"\u4e34\u6c5f\u5e02",220682:"\u5176\u5b83\u533a",220700:"\u677e\u539f\u5e02",220702:"\u5b81\u6c5f\u533a",220721:"\u524d\u90ed\u5c14\u7f57\u65af\u8499\u53e4\u65cf\u81ea\u6cbb\u53bf",220722:"\u957f\u5cad\u53bf",220723:"\u4e7e\u5b89\u53bf",220724:"\u6276\u4f59\u5e02",220725:"\u5176\u5b83\u533a",220800:"\u767d\u57ce\u5e02",220802:"\u6d2e\u5317\u533a",220821:"\u9547\u8d49\u53bf",220822:"\u901a\u6986\u53bf",220881:"\u6d2e\u5357\u5e02",220882:"\u5927\u5b89\u5e02",220883:"\u5176\u5b83\u533a",222400:"\u5ef6\u8fb9\u671d\u9c9c\u65cf\u81ea\u6cbb\u5dde",222401:"\u5ef6\u5409\u5e02",222402:"\u56fe\u4eec\u5e02",222403:"\u6566\u5316\u5e02",222404:"\u73f2\u6625\u5e02",222405:"\u9f99\u4e95\u5e02",222406:"\u548c\u9f99\u5e02",222424:"\u6c6a\u6e05\u53bf",222426:"\u5b89\u56fe\u53bf",222427:"\u5176\u5b83\u533a",23e4:"\u9ed1\u9f99\u6c5f\u7701",230100:"\u54c8\u5c14\u6ee8\u5e02",230102:"\u9053\u91cc\u533a",230103:"\u5357\u5c97\u533a",230104:"\u9053\u5916\u533a",230106:"\u9999\u574a\u533a",230108:"\u5e73\u623f\u533a",230109:"\u677e\u5317\u533a",230111:"\u547c\u5170\u533a",230123:"\u4f9d\u5170\u53bf",230124:"\u65b9\u6b63\u53bf",230125:"\u5bbe\u53bf",230126:"\u5df4\u5f66\u53bf",230127:"\u6728\u5170\u53bf",230128:"\u901a\u6cb3\u53bf",230129:"\u5ef6\u5bff\u53bf",230181:"\u963f\u57ce\u533a",230182:"\u53cc\u57ce\u5e02",230183:"\u5c1a\u5fd7\u5e02",230184:"\u4e94\u5e38\u5e02",230186:"\u5176\u5b83\u533a",230200:"\u9f50\u9f50\u54c8\u5c14\u5e02",230202:"\u9f99\u6c99\u533a",230203:"\u5efa\u534e\u533a",230204:"\u94c1\u950b\u533a",230205:"\u6602\u6602\u6eaa\u533a",230206:"\u5bcc\u62c9\u5c14\u57fa\u533a",230207:"\u78be\u5b50\u5c71\u533a",230208:"\u6885\u91cc\u65af\u8fbe\u65a1\u5c14\u65cf\u533a",230221:"\u9f99\u6c5f\u53bf",230223:"\u4f9d\u5b89\u53bf",230224:"\u6cf0\u6765\u53bf",230225:"\u7518\u5357\u53bf",230227:"\u5bcc\u88d5\u53bf",230229:"\u514b\u5c71\u53bf",230230:"\u514b\u4e1c\u53bf",230231:"\u62dc\u6cc9\u53bf",230281:"\u8bb7\u6cb3\u5e02",230282:"\u5176\u5b83\u533a",230300:"\u9e21\u897f\u5e02",230302:"\u9e21\u51a0\u533a",230303:"\u6052\u5c71\u533a",230304:"\u6ef4\u9053\u533a",230305:"\u68a8\u6811\u533a",230306:"\u57ce\u5b50\u6cb3\u533a",230307:"\u9ebb\u5c71\u533a",230321:"\u9e21\u4e1c\u53bf",230381:"\u864e\u6797\u5e02",230382:"\u5bc6\u5c71\u5e02",230383:"\u5176\u5b83\u533a",230400:"\u9e64\u5c97\u5e02",230402:"\u5411\u9633\u533a",230403:"\u5de5\u519c\u533a",230404:"\u5357\u5c71\u533a",230405:"\u5174\u5b89\u533a",230406:"\u4e1c\u5c71\u533a",230407:"\u5174\u5c71\u533a",230421:"\u841d\u5317\u53bf",230422:"\u7ee5\u6ee8\u53bf",230423:"\u5176\u5b83\u533a",230500:"\u53cc\u9e2d\u5c71\u5e02",230502:"\u5c16\u5c71\u533a",230503:"\u5cad\u4e1c\u533a",230505:"\u56db\u65b9\u53f0\u533a",230506:"\u5b9d\u5c71\u533a",230521:"\u96c6\u8d24\u53bf",230522:"\u53cb\u8c0a\u53bf",230523:"\u5b9d\u6e05\u53bf",230524:"\u9976\u6cb3\u53bf",230525:"\u5176\u5b83\u533a",230600:"\u5927\u5e86\u5e02",230602:"\u8428\u5c14\u56fe\u533a",230603:"\u9f99\u51e4\u533a",230604:"\u8ba9\u80e1\u8def\u533a",230605:"\u7ea2\u5c97\u533a",230606:"\u5927\u540c\u533a",230621:"\u8087\u5dde\u53bf",230622:"\u8087\u6e90\u53bf",230623:"\u6797\u7538\u53bf",230624:"\u675c\u5c14\u4f2f\u7279\u8499\u53e4\u65cf\u81ea\u6cbb\u53bf",230625:"\u5176\u5b83\u533a",230700:"\u4f0a\u6625\u5e02",230702:"\u4f0a\u6625\u533a",230703:"\u5357\u5c94\u533a",230704:"\u53cb\u597d\u533a",230705:"\u897f\u6797\u533a",230706:"\u7fe0\u5ce6\u533a",230707:"\u65b0\u9752\u533a",230708:"\u7f8e\u6eaa\u533a",230709:"\u91d1\u5c71\u5c6f\u533a",230710:"\u4e94\u8425\u533a",230711:"\u4e4c\u9a6c\u6cb3\u533a",230712:"\u6c64\u65fa\u6cb3\u533a",230713:"\u5e26\u5cad\u533a",230714:"\u4e4c\u4f0a\u5cad\u533a",230715:"\u7ea2\u661f\u533a",230716:"\u4e0a\u7518\u5cad\u533a",230722:"\u5609\u836b\u53bf",230781:"\u94c1\u529b\u5e02",230782:"\u5176\u5b83\u533a",230800:"\u4f73\u6728\u65af\u5e02",230803:"\u5411\u9633\u533a",230804:"\u524d\u8fdb\u533a",230805:"\u4e1c\u98ce\u533a",230811:"\u90ca\u533a",230822:"\u6866\u5357\u53bf",230826:"\u6866\u5ddd\u53bf",230828:"\u6c64\u539f\u53bf",230833:"\u629a\u8fdc\u53bf",230881:"\u540c\u6c5f\u5e02",230882:"\u5bcc\u9526\u5e02",230883:"\u5176\u5b83\u533a",230900:"\u4e03\u53f0\u6cb3\u5e02",230902:"\u65b0\u5174\u533a",230903:"\u6843\u5c71\u533a",230904:"\u8304\u5b50\u6cb3\u533a",230921:"\u52c3\u5229\u53bf",230922:"\u5176\u5b83\u533a",231e3:"\u7261\u4e39\u6c5f\u5e02",231002:"\u4e1c\u5b89\u533a",231003:"\u9633\u660e\u533a",231004:"\u7231\u6c11\u533a",231005:"\u897f\u5b89\u533a",231024:"\u4e1c\u5b81\u53bf",231025:"\u6797\u53e3\u53bf",231081:"\u7ee5\u82ac\u6cb3\u5e02",231083:"\u6d77\u6797\u5e02",231084:"\u5b81\u5b89\u5e02",231085:"\u7a46\u68f1\u5e02",231086:"\u5176\u5b83\u533a",231100:"\u9ed1\u6cb3\u5e02",231102:"\u7231\u8f89\u533a",231121:"\u5ae9\u6c5f\u53bf",231123:"\u900a\u514b\u53bf",231124:"\u5b59\u5434\u53bf",231181:"\u5317\u5b89\u5e02",231182:"\u4e94\u5927\u8fde\u6c60\u5e02",231183:"\u5176\u5b83\u533a",231200:"\u7ee5\u5316\u5e02",231202:"\u5317\u6797\u533a",231221:"\u671b\u594e\u53bf",231222:"\u5170\u897f\u53bf",231223:"\u9752\u5188\u53bf",231224:"\u5e86\u5b89\u53bf",231225:"\u660e\u6c34\u53bf",231226:"\u7ee5\u68f1\u53bf",231281:"\u5b89\u8fbe\u5e02",231282:"\u8087\u4e1c\u5e02",231283:"\u6d77\u4f26\u5e02",231284:"\u5176\u5b83\u533a",232700:"\u5927\u5174\u5b89\u5cad\u5730\u533a",232702:"\u677e\u5cad\u533a",232703:"\u65b0\u6797\u533a",232704:"\u547c\u4e2d\u533a",232721:"\u547c\u739b\u53bf",232722:"\u5854\u6cb3\u53bf",232723:"\u6f20\u6cb3\u53bf",232724:"\u52a0\u683c\u8fbe\u5947\u533a",232725:"\u5176\u5b83\u533a",31e4:"\u4e0a\u6d77",310100:"\u4e0a\u6d77\u5e02",310101:"\u9ec4\u6d66\u533a",310104:"\u5f90\u6c47\u533a",310105:"\u957f\u5b81\u533a",310106:"\u9759\u5b89\u533a",310107:"\u666e\u9640\u533a",310108:"\u95f8\u5317\u533a",310109:"\u8679\u53e3\u533a",310110:"\u6768\u6d66\u533a",310112:"\u95f5\u884c\u533a",310113:"\u5b9d\u5c71\u533a",310114:"\u5609\u5b9a\u533a",310115:"\u6d66\u4e1c\u65b0\u533a",310116:"\u91d1\u5c71\u533a",310117:"\u677e\u6c5f\u533a",310118:"\u9752\u6d66\u533a",310120:"\u5949\u8d24\u533a",310230:"\u5d07\u660e\u53bf",310231:"\u5176\u5b83\u533a",32e4:"\u6c5f\u82cf\u7701",320100:"\u5357\u4eac\u5e02",320102:"\u7384\u6b66\u533a",320104:"\u79e6\u6dee\u533a",320105:"\u5efa\u90ba\u533a",320106:"\u9f13\u697c\u533a",320111:"\u6d66\u53e3\u533a",320113:"\u6816\u971e\u533a",320114:"\u96e8\u82b1\u53f0\u533a",320115:"\u6c5f\u5b81\u533a",320116:"\u516d\u5408\u533a",320124:"\u6ea7\u6c34\u533a",320125:"\u9ad8\u6df3\u533a",320126:"\u5176\u5b83\u533a",320200:"\u65e0\u9521\u5e02",320202:"\u5d07\u5b89\u533a",320203:"\u5357\u957f\u533a",320204:"\u5317\u5858\u533a",320205:"\u9521\u5c71\u533a",320206:"\u60e0\u5c71\u533a",320211:"\u6ee8\u6e56\u533a",320281:"\u6c5f\u9634\u5e02",320282:"\u5b9c\u5174\u5e02",320297:"\u5176\u5b83\u533a",320300:"\u5f90\u5dde\u5e02",320302:"\u9f13\u697c\u533a",320303:"\u4e91\u9f99\u533a",320305:"\u8d3e\u6c6a\u533a",320311:"\u6cc9\u5c71\u533a",320321:"\u4e30\u53bf",320322:"\u6c9b\u53bf",320323:"\u94dc\u5c71\u533a",320324:"\u7762\u5b81\u53bf",320381:"\u65b0\u6c82\u5e02",320382:"\u90b3\u5dde\u5e02",320383:"\u5176\u5b83\u533a",320400:"\u5e38\u5dde\u5e02",320402:"\u5929\u5b81\u533a",320404:"\u949f\u697c\u533a",320405:"\u621a\u5885\u5830\u533a",320411:"\u65b0\u5317\u533a",320412:"\u6b66\u8fdb\u533a",320481:"\u6ea7\u9633\u5e02",320482:"\u91d1\u575b\u5e02",320483:"\u5176\u5b83\u533a",320500:"\u82cf\u5dde\u5e02",320505:"\u864e\u4e18\u533a",320506:"\u5434\u4e2d\u533a",320507:"\u76f8\u57ce\u533a",320508:"\u59d1\u82cf\u533a",320581:"\u5e38\u719f\u5e02",320582:"\u5f20\u5bb6\u6e2f\u5e02",320583:"\u6606\u5c71\u5e02",320584:"\u5434\u6c5f\u533a",320585:"\u592a\u4ed3\u5e02",320596:"\u5176\u5b83\u533a",320600:"\u5357\u901a\u5e02",320602:"\u5d07\u5ddd\u533a",320611:"\u6e2f\u95f8\u533a",320612:"\u901a\u5dde\u533a",320621:"\u6d77\u5b89\u53bf",320623:"\u5982\u4e1c\u53bf",320681:"\u542f\u4e1c\u5e02",320682:"\u5982\u768b\u5e02",320684:"\u6d77\u95e8\u5e02",320694:"\u5176\u5b83\u533a",320700:"\u8fde\u4e91\u6e2f\u5e02",320703:"\u8fde\u4e91\u533a",320705:"\u65b0\u6d66\u533a",320706:"\u6d77\u5dde\u533a",320721:"\u8d63\u6986\u53bf",320722:"\u4e1c\u6d77\u53bf",320723:"\u704c\u4e91\u53bf",320724:"\u704c\u5357\u53bf",320725:"\u5176\u5b83\u533a",320800:"\u6dee\u5b89\u5e02",320802:"\u6e05\u6cb3\u533a",320803:"\u6dee\u5b89\u533a",320804:"\u6dee\u9634\u533a",320811:"\u6e05\u6d66\u533a",320826:"\u6d9f\u6c34\u53bf",320829:"\u6d2a\u6cfd\u53bf",320830:"\u76f1\u7719\u53bf",320831:"\u91d1\u6e56\u53bf",320832:"\u5176\u5b83\u533a",320900:"\u76d0\u57ce\u5e02",320902:"\u4ead\u6e56\u533a",320903:"\u76d0\u90fd\u533a",320921:"\u54cd\u6c34\u53bf",320922:"\u6ee8\u6d77\u53bf",320923:"\u961c\u5b81\u53bf",320924:"\u5c04\u9633\u53bf",320925:"\u5efa\u6e56\u53bf",320981:"\u4e1c\u53f0\u5e02",320982:"\u5927\u4e30\u5e02",320983:"\u5176\u5b83\u533a",321e3:"\u626c\u5dde\u5e02",321002:"\u5e7f\u9675\u533a",321003:"\u9097\u6c5f\u533a",321023:"\u5b9d\u5e94\u53bf",321081:"\u4eea\u5f81\u5e02",321084:"\u9ad8\u90ae\u5e02",321088:"\u6c5f\u90fd\u533a",321093:"\u5176\u5b83\u533a",321100:"\u9547\u6c5f\u5e02",321102:"\u4eac\u53e3\u533a",321111:"\u6da6\u5dde\u533a",321112:"\u4e39\u5f92\u533a",321181:"\u4e39\u9633\u5e02",321182:"\u626c\u4e2d\u5e02",321183:"\u53e5\u5bb9\u5e02",321184:"\u5176\u5b83\u533a",321200:"\u6cf0\u5dde\u5e02",321202:"\u6d77\u9675\u533a",321203:"\u9ad8\u6e2f\u533a",321281:"\u5174\u5316\u5e02",321282:"\u9756\u6c5f\u5e02",321283:"\u6cf0\u5174\u5e02",321284:"\u59dc\u5830\u533a",321285:"\u5176\u5b83\u533a",321300:"\u5bbf\u8fc1\u5e02",321302:"\u5bbf\u57ce\u533a",321311:"\u5bbf\u8c6b\u533a",321322:"\u6cad\u9633\u53bf",321323:"\u6cd7\u9633\u53bf",321324:"\u6cd7\u6d2a\u53bf",321325:"\u5176\u5b83\u533a",33e4:"\u6d59\u6c5f\u7701",330100:"\u676d\u5dde\u5e02",330102:"\u4e0a\u57ce\u533a",330103:"\u4e0b\u57ce\u533a",330104:"\u6c5f\u5e72\u533a",330105:"\u62f1\u5885\u533a",330106:"\u897f\u6e56\u533a",330108:"\u6ee8\u6c5f\u533a",330109:"\u8427\u5c71\u533a",330110:"\u4f59\u676d\u533a",330122:"\u6850\u5e90\u53bf",330127:"\u6df3\u5b89\u53bf",330182:"\u5efa\u5fb7\u5e02",330183:"\u5bcc\u9633\u5e02",330185:"\u4e34\u5b89\u5e02",330186:"\u5176\u5b83\u533a",330200:"\u5b81\u6ce2\u5e02",330203:"\u6d77\u66d9\u533a",330204:"\u6c5f\u4e1c\u533a",330205:"\u6c5f\u5317\u533a",330206:"\u5317\u4ed1\u533a",330211:"\u9547\u6d77\u533a",330212:"\u911e\u5dde\u533a",330225:"\u8c61\u5c71\u53bf",330226:"\u5b81\u6d77\u53bf",330281:"\u4f59\u59da\u5e02",330282:"\u6148\u6eaa\u5e02",330283:"\u5949\u5316\u5e02",330284:"\u5176\u5b83\u533a",330300:"\u6e29\u5dde\u5e02",330302:"\u9e7f\u57ce\u533a",330303:"\u9f99\u6e7e\u533a",330304:"\u74ef\u6d77\u533a",330322:"\u6d1e\u5934\u53bf",330324:"\u6c38\u5609\u53bf",330326:"\u5e73\u9633\u53bf",330327:"\u82cd\u5357\u53bf",330328:"\u6587\u6210\u53bf",330329:"\u6cf0\u987a\u53bf",330381:"\u745e\u5b89\u5e02",330382:"\u4e50\u6e05\u5e02",330383:"\u5176\u5b83\u533a",330400:"\u5609\u5174\u5e02",330402:"\u5357\u6e56\u533a",330411:"\u79c0\u6d32\u533a",330421:"\u5609\u5584\u53bf",330424:"\u6d77\u76d0\u53bf",330481:"\u6d77\u5b81\u5e02",330482:"\u5e73\u6e56\u5e02",330483:"\u6850\u4e61\u5e02",330484:"\u5176\u5b83\u533a",330500:"\u6e56\u5dde\u5e02",330502:"\u5434\u5174\u533a",330503:"\u5357\u6d54\u533a",330521:"\u5fb7\u6e05\u53bf",330522:"\u957f\u5174\u53bf",330523:"\u5b89\u5409\u53bf",330524:"\u5176\u5b83\u533a",330600:"\u7ecd\u5174\u5e02",330602:"\u8d8a\u57ce\u533a",330621:"\u7ecd\u5174\u53bf",330624:"\u65b0\u660c\u53bf",330681:"\u8bf8\u66a8\u5e02",330682:"\u4e0a\u865e\u5e02",330683:"\u5d4a\u5dde\u5e02",330684:"\u5176\u5b83\u533a",330700:"\u91d1\u534e\u5e02",330702:"\u5a7a\u57ce\u533a",330703:"\u91d1\u4e1c\u533a",330723:"\u6b66\u4e49\u53bf",330726:"\u6d66\u6c5f\u53bf",330727:"\u78d0\u5b89\u53bf",330781:"\u5170\u6eaa\u5e02",330782:"\u4e49\u4e4c\u5e02",330783:"\u4e1c\u9633\u5e02",330784:"\u6c38\u5eb7\u5e02",330785:"\u5176\u5b83\u533a",330800:"\u8862\u5dde\u5e02",330802:"\u67ef\u57ce\u533a",330803:"\u8862\u6c5f\u533a",330822:"\u5e38\u5c71\u53bf",330824:"\u5f00\u5316\u53bf",330825:"\u9f99\u6e38\u53bf",330881:"\u6c5f\u5c71\u5e02",330882:"\u5176\u5b83\u533a",330900:"\u821f\u5c71\u5e02",330902:"\u5b9a\u6d77\u533a",330903:"\u666e\u9640\u533a",330921:"\u5cb1\u5c71\u53bf",330922:"\u5d4a\u6cd7\u53bf",330923:"\u5176\u5b83\u533a",331e3:"\u53f0\u5dde\u5e02",331002:"\u6912\u6c5f\u533a",331003:"\u9ec4\u5ca9\u533a",331004:"\u8def\u6865\u533a",331021:"\u7389\u73af\u53bf",331022:"\u4e09\u95e8\u53bf",331023:"\u5929\u53f0\u53bf",331024:"\u4ed9\u5c45\u53bf",331081:"\u6e29\u5cad\u5e02",331082:"\u4e34\u6d77\u5e02",331083:"\u5176\u5b83\u533a",331100:"\u4e3d\u6c34\u5e02",331102:"\u83b2\u90fd\u533a",331121:"\u9752\u7530\u53bf",331122:"\u7f19\u4e91\u53bf",331123:"\u9042\u660c\u53bf",331124:"\u677e\u9633\u53bf",331125:"\u4e91\u548c\u53bf",331126:"\u5e86\u5143\u53bf",331127:"\u666f\u5b81\u7572\u65cf\u81ea\u6cbb\u53bf",331181:"\u9f99\u6cc9\u5e02",331182:"\u5176\u5b83\u533a",34e4:"\u5b89\u5fbd\u7701",340100:"\u5408\u80a5\u5e02",340102:"\u7476\u6d77\u533a",340103:"\u5e90\u9633\u533a",340104:"\u8700\u5c71\u533a",340111:"\u5305\u6cb3\u533a",340121:"\u957f\u4e30\u53bf",340122:"\u80a5\u4e1c\u53bf",340123:"\u80a5\u897f\u53bf",340192:"\u5176\u5b83\u533a",340200:"\u829c\u6e56\u5e02",340202:"\u955c\u6e56\u533a",340203:"\u5f0b\u6c5f\u533a",340207:"\u9e20\u6c5f\u533a",340208:"\u4e09\u5c71\u533a",340221:"\u829c\u6e56\u53bf",340222:"\u7e41\u660c\u53bf",340223:"\u5357\u9675\u53bf",340224:"\u5176\u5b83\u533a",340300:"\u868c\u57e0\u5e02",340302:"\u9f99\u5b50\u6e56\u533a",340303:"\u868c\u5c71\u533a",340304:"\u79b9\u4f1a\u533a",340311:"\u6dee\u4e0a\u533a",340321:"\u6000\u8fdc\u53bf",340322:"\u4e94\u6cb3\u53bf",340323:"\u56fa\u9547\u53bf",340324:"\u5176\u5b83\u533a",340400:"\u6dee\u5357\u5e02",340402:"\u5927\u901a\u533a",340403:"\u7530\u5bb6\u5eb5\u533a",340404:"\u8c22\u5bb6\u96c6\u533a",340405:"\u516b\u516c\u5c71\u533a",340406:"\u6f58\u96c6\u533a",340421:"\u51e4\u53f0\u53bf",340422:"\u5176\u5b83\u533a",340500:"\u9a6c\u978d\u5c71\u5e02",340503:"\u82b1\u5c71\u533a",340504:"\u96e8\u5c71\u533a",340506:"\u535a\u671b\u533a",340521:"\u5f53\u6d82\u53bf",340522:"\u5176\u5b83\u533a",340600:"\u6dee\u5317\u5e02",340602:"\u675c\u96c6\u533a",340603:"\u76f8\u5c71\u533a",340604:"\u70c8\u5c71\u533a",340621:"\u6fc9\u6eaa\u53bf",340622:"\u5176\u5b83\u533a",340700:"\u94dc\u9675\u5e02",340702:"\u94dc\u5b98\u5c71\u533a",340703:"\u72ee\u5b50\u5c71\u533a",340711:"\u90ca\u533a",340721:"\u94dc\u9675\u53bf",340722:"\u5176\u5b83\u533a",340800:"\u5b89\u5e86\u5e02",340802:"\u8fce\u6c5f\u533a",340803:"\u5927\u89c2\u533a",340811:"\u5b9c\u79c0\u533a",340822:"\u6000\u5b81\u53bf",340823:"\u679e\u9633\u53bf",340824:"\u6f5c\u5c71\u53bf",340825:"\u592a\u6e56\u53bf",340826:"\u5bbf\u677e\u53bf",340827:"\u671b\u6c5f\u53bf",340828:"\u5cb3\u897f\u53bf",340881:"\u6850\u57ce\u5e02",340882:"\u5176\u5b83\u533a",341e3:"\u9ec4\u5c71\u5e02",341002:"\u5c6f\u6eaa\u533a",341003:"\u9ec4\u5c71\u533a",341004:"\u5fbd\u5dde\u533a",341021:"\u6b59\u53bf",341022:"\u4f11\u5b81\u53bf",341023:"\u9edf\u53bf",341024:"\u7941\u95e8\u53bf",341025:"\u5176\u5b83\u533a",341100:"\u6ec1\u5dde\u5e02",341102:"\u7405\u740a\u533a",341103:"\u5357\u8c2f\u533a",341122:"\u6765\u5b89\u53bf",341124:"\u5168\u6912\u53bf",341125:"\u5b9a\u8fdc\u53bf",341126:"\u51e4\u9633\u53bf",341181:"\u5929\u957f\u5e02",341182:"\u660e\u5149\u5e02",341183:"\u5176\u5b83\u533a",341200:"\u961c\u9633\u5e02",341202:"\u988d\u5dde\u533a",341203:"\u988d\u4e1c\u533a",341204:"\u988d\u6cc9\u533a",341221:"\u4e34\u6cc9\u53bf",341222:"\u592a\u548c\u53bf",341225:"\u961c\u5357\u53bf",341226:"\u988d\u4e0a\u53bf",341282:"\u754c\u9996\u5e02",341283:"\u5176\u5b83\u533a",341300:"\u5bbf\u5dde\u5e02",341302:"\u57c7\u6865\u533a",341321:"\u7800\u5c71\u53bf",341322:"\u8427\u53bf",341323:"\u7075\u74a7\u53bf",341324:"\u6cd7\u53bf",341325:"\u5176\u5b83\u533a",341400:"\u5de2\u6e56\u5e02",341421:"\u5e90\u6c5f\u53bf",341422:"\u65e0\u4e3a\u53bf",341423:"\u542b\u5c71\u53bf",341424:"\u548c\u53bf",341500:"\u516d\u5b89\u5e02",341502:"\u91d1\u5b89\u533a",341503:"\u88d5\u5b89\u533a",341521:"\u5bff\u53bf",341522:"\u970d\u90b1\u53bf",341523:"\u8212\u57ce\u53bf",341524:"\u91d1\u5be8\u53bf",341525:"\u970d\u5c71\u53bf",341526:"\u5176\u5b83\u533a",341600:"\u4eb3\u5dde\u5e02",341602:"\u8c2f\u57ce\u533a",341621:"\u6da1\u9633\u53bf",341622:"\u8499\u57ce\u53bf",341623:"\u5229\u8f9b\u53bf",341624:"\u5176\u5b83\u533a",341700:"\u6c60\u5dde\u5e02",341702:"\u8d35\u6c60\u533a",341721:"\u4e1c\u81f3\u53bf",341722:"\u77f3\u53f0\u53bf",341723:"\u9752\u9633\u53bf",341724:"\u5176\u5b83\u533a",341800:"\u5ba3\u57ce\u5e02",341802:"\u5ba3\u5dde\u533a",341821:"\u90ce\u6eaa\u53bf",341822:"\u5e7f\u5fb7\u53bf",341823:"\u6cfe\u53bf",341824:"\u7ee9\u6eaa\u53bf",341825:"\u65cc\u5fb7\u53bf",341881:"\u5b81\u56fd\u5e02",341882:"\u5176\u5b83\u533a",35e4:"\u798f\u5efa\u7701",350100:"\u798f\u5dde\u5e02",350102:"\u9f13\u697c\u533a",350103:"\u53f0\u6c5f\u533a",350104:"\u4ed3\u5c71\u533a",350105:"\u9a6c\u5c3e\u533a",350111:"\u664b\u5b89\u533a",350121:"\u95fd\u4faf\u53bf",350122:"\u8fde\u6c5f\u53bf",350123:"\u7f57\u6e90\u53bf",350124:"\u95fd\u6e05\u53bf",350125:"\u6c38\u6cf0\u53bf",350128:"\u5e73\u6f6d\u53bf",350181:"\u798f\u6e05\u5e02",350182:"\u957f\u4e50\u5e02",350183:"\u5176\u5b83\u533a",350200:"\u53a6\u95e8\u5e02",350203:"\u601d\u660e\u533a",350205:"\u6d77\u6ca7\u533a",350206:"\u6e56\u91cc\u533a",350211:"\u96c6\u7f8e\u533a",350212:"\u540c\u5b89\u533a",350213:"\u7fd4\u5b89\u533a",350214:"\u5176\u5b83\u533a",350300:"\u8386\u7530\u5e02",350302:"\u57ce\u53a2\u533a",350303:"\u6db5\u6c5f\u533a",350304:"\u8354\u57ce\u533a",350305:"\u79c0\u5c7f\u533a",350322:"\u4ed9\u6e38\u53bf",350323:"\u5176\u5b83\u533a",350400:"\u4e09\u660e\u5e02",350402:"\u6885\u5217\u533a",350403:"\u4e09\u5143\u533a",350421:"\u660e\u6eaa\u53bf",350423:"\u6e05\u6d41\u53bf",350424:"\u5b81\u5316\u53bf",350425:"\u5927\u7530\u53bf",350426:"\u5c24\u6eaa\u53bf",350427:"\u6c99\u53bf",350428:"\u5c06\u4e50\u53bf",350429:"\u6cf0\u5b81\u53bf",350430:"\u5efa\u5b81\u53bf",350481:"\u6c38\u5b89\u5e02",350482:"\u5176\u5b83\u533a",350500:"\u6cc9\u5dde\u5e02",350502:"\u9ca4\u57ce\u533a",350503:"\u4e30\u6cfd\u533a",350504:"\u6d1b\u6c5f\u533a",350505:"\u6cc9\u6e2f\u533a",350521:"\u60e0\u5b89\u53bf",350524:"\u5b89\u6eaa\u53bf",350525:"\u6c38\u6625\u53bf",350526:"\u5fb7\u5316\u53bf",350527:"\u91d1\u95e8\u53bf",350581:"\u77f3\u72ee\u5e02",350582:"\u664b\u6c5f\u5e02",350583:"\u5357\u5b89\u5e02",350584:"\u5176\u5b83\u533a",350600:"\u6f33\u5dde\u5e02",350602:"\u8297\u57ce\u533a",350603:"\u9f99\u6587\u533a",350622:"\u4e91\u9704\u53bf",350623:"\u6f33\u6d66\u53bf",350624:"\u8bcf\u5b89\u53bf",350625:"\u957f\u6cf0\u53bf",350626:"\u4e1c\u5c71\u53bf",350627:"\u5357\u9756\u53bf",350628:"\u5e73\u548c\u53bf",350629:"\u534e\u5b89\u53bf",350681:"\u9f99\u6d77\u5e02",350682:"\u5176\u5b83\u533a",350700:"\u5357\u5e73\u5e02",350702:"\u5ef6\u5e73\u533a",350721:"\u987a\u660c\u53bf",350722:"\u6d66\u57ce\u53bf",350723:"\u5149\u6cfd\u53bf",350724:"\u677e\u6eaa\u53bf",350725:"\u653f\u548c\u53bf",350781:"\u90b5\u6b66\u5e02",350782:"\u6b66\u5937\u5c71\u5e02",350783:"\u5efa\u74ef\u5e02",350784:"\u5efa\u9633\u5e02",350785:"\u5176\u5b83\u533a",350800:"\u9f99\u5ca9\u5e02",350802:"\u65b0\u7f57\u533a",350821:"\u957f\u6c40\u53bf",350822:"\u6c38\u5b9a\u53bf",350823:"\u4e0a\u676d\u53bf",350824:"\u6b66\u5e73\u53bf",350825:"\u8fde\u57ce\u53bf",350881:"\u6f33\u5e73\u5e02",350882:"\u5176\u5b83\u533a",350900:"\u5b81\u5fb7\u5e02",350902:"\u8549\u57ce\u533a",350921:"\u971e\u6d66\u53bf",350922:"\u53e4\u7530\u53bf",350923:"\u5c4f\u5357\u53bf",350924:"\u5bff\u5b81\u53bf",350925:"\u5468\u5b81\u53bf",350926:"\u67d8\u8363\u53bf",350981:"\u798f\u5b89\u5e02",350982:"\u798f\u9f0e\u5e02",350983:"\u5176\u5b83\u533a",36e4:"\u6c5f\u897f\u7701",360100:"\u5357\u660c\u5e02",360102:"\u4e1c\u6e56\u533a",360103:"\u897f\u6e56\u533a",360104:"\u9752\u4e91\u8c31\u533a",360105:"\u6e7e\u91cc\u533a",360111:"\u9752\u5c71\u6e56\u533a",360121:"\u5357\u660c\u53bf",360122:"\u65b0\u5efa\u53bf",360123:"\u5b89\u4e49\u53bf",360124:"\u8fdb\u8d24\u53bf",360128:"\u5176\u5b83\u533a",360200:"\u666f\u5fb7\u9547\u5e02",360202:"\u660c\u6c5f\u533a",360203:"\u73e0\u5c71\u533a",360222:"\u6d6e\u6881\u53bf",360281:"\u4e50\u5e73\u5e02",360282:"\u5176\u5b83\u533a",360300:"\u840d\u4e61\u5e02",360302:"\u5b89\u6e90\u533a",360313:"\u6e58\u4e1c\u533a",360321:"\u83b2\u82b1\u53bf",360322:"\u4e0a\u6817\u53bf",360323:"\u82a6\u6eaa\u53bf",360324:"\u5176\u5b83\u533a",360400:"\u4e5d\u6c5f\u5e02",360402:"\u5e90\u5c71\u533a",360403:"\u6d54\u9633\u533a",360421:"\u4e5d\u6c5f\u53bf",360423:"\u6b66\u5b81\u53bf",360424:"\u4fee\u6c34\u53bf",360425:"\u6c38\u4fee\u53bf",360426:"\u5fb7\u5b89\u53bf",360427:"\u661f\u5b50\u53bf",360428:"\u90fd\u660c\u53bf",360429:"\u6e56\u53e3\u53bf",360430:"\u5f6d\u6cfd\u53bf",360481:"\u745e\u660c\u5e02",360482:"\u5176\u5b83\u533a",360483:"\u5171\u9752\u57ce\u5e02",360500:"\u65b0\u4f59\u5e02",360502:"\u6e1d\u6c34\u533a",360521:"\u5206\u5b9c\u53bf",360522:"\u5176\u5b83\u533a",360600:"\u9e70\u6f6d\u5e02",360602:"\u6708\u6e56\u533a",360622:"\u4f59\u6c5f\u53bf",360681:"\u8d35\u6eaa\u5e02",360682:"\u5176\u5b83\u533a",360700:"\u8d63\u5dde\u5e02",360702:"\u7ae0\u8d21\u533a",360721:"\u8d63\u53bf",360722:"\u4fe1\u4e30\u53bf",360723:"\u5927\u4f59\u53bf",360724:"\u4e0a\u72b9\u53bf",360725:"\u5d07\u4e49\u53bf",360726:"\u5b89\u8fdc\u53bf",360727:"\u9f99\u5357\u53bf",360728:"\u5b9a\u5357\u53bf",360729:"\u5168\u5357\u53bf",360730:"\u5b81\u90fd\u53bf",360731:"\u4e8e\u90fd\u53bf",360732:"\u5174\u56fd\u53bf",360733:"\u4f1a\u660c\u53bf",360734:"\u5bfb\u4e4c\u53bf",360735:"\u77f3\u57ce\u53bf",360781:"\u745e\u91d1\u5e02",360782:"\u5357\u5eb7\u5e02",360783:"\u5176\u5b83\u533a",360800:"\u5409\u5b89\u5e02",360802:"\u5409\u5dde\u533a",360803:"\u9752\u539f\u533a",360821:"\u5409\u5b89\u53bf",360822:"\u5409\u6c34\u53bf",360823:"\u5ce1\u6c5f\u53bf",360824:"\u65b0\u5e72\u53bf",360825:"\u6c38\u4e30\u53bf",360826:"\u6cf0\u548c\u53bf",360827:"\u9042\u5ddd\u53bf",360828:"\u4e07\u5b89\u53bf",360829:"\u5b89\u798f\u53bf",360830:"\u6c38\u65b0\u53bf",360881:"\u4e95\u5188\u5c71\u5e02",360882:"\u5176\u5b83\u533a",360900:"\u5b9c\u6625\u5e02",360902:"\u8881\u5dde\u533a",360921:"\u5949\u65b0\u53bf",360922:"\u4e07\u8f7d\u53bf",360923:"\u4e0a\u9ad8\u53bf",360924:"\u5b9c\u4e30\u53bf",360925:"\u9756\u5b89\u53bf",360926:"\u94dc\u9f13\u53bf",360981:"\u4e30\u57ce\u5e02",360982:"\u6a1f\u6811\u5e02",360983:"\u9ad8\u5b89\u5e02",360984:"\u5176\u5b83\u533a",361e3:"\u629a\u5dde\u5e02",361002:"\u4e34\u5ddd\u533a",361021:"\u5357\u57ce\u53bf",361022:"\u9ece\u5ddd\u53bf",361023:"\u5357\u4e30\u53bf",361024:"\u5d07\u4ec1\u53bf",361025:"\u4e50\u5b89\u53bf",361026:"\u5b9c\u9ec4\u53bf",361027:"\u91d1\u6eaa\u53bf",361028:"\u8d44\u6eaa\u53bf",361029:"\u4e1c\u4e61\u53bf",361030:"\u5e7f\u660c\u53bf",361031:"\u5176\u5b83\u533a",361100:"\u4e0a\u9976\u5e02",361102:"\u4fe1\u5dde\u533a",361121:"\u4e0a\u9976\u53bf",361122:"\u5e7f\u4e30\u53bf",361123:"\u7389\u5c71\u53bf",361124:"\u94c5\u5c71\u53bf",361125:"\u6a2a\u5cf0\u53bf",361126:"\u5f0b\u9633\u53bf",361127:"\u4f59\u5e72\u53bf",361128:"\u9131\u9633\u53bf",361129:"\u4e07\u5e74\u53bf",361130:"\u5a7a\u6e90\u53bf",361181:"\u5fb7\u5174\u5e02",361182:"\u5176\u5b83\u533a",37e4:"\u5c71\u4e1c\u7701",370100:"\u6d4e\u5357\u5e02",370102:"\u5386\u4e0b\u533a",370103:"\u5e02\u4e2d\u533a",370104:"\u69d0\u836b\u533a",370105:"\u5929\u6865\u533a",370112:"\u5386\u57ce\u533a",370113:"\u957f\u6e05\u533a",370124:"\u5e73\u9634\u53bf",370125:"\u6d4e\u9633\u53bf",370126:"\u5546\u6cb3\u53bf",370181:"\u7ae0\u4e18\u5e02",370182:"\u5176\u5b83\u533a",370200:"\u9752\u5c9b\u5e02",370202:"\u5e02\u5357\u533a",370203:"\u5e02\u5317\u533a",370211:"\u9ec4\u5c9b\u533a",370212:"\u5d02\u5c71\u533a",370213:"\u674e\u6ca7\u533a",370214:"\u57ce\u9633\u533a",370281:"\u80f6\u5dde\u5e02",370282:"\u5373\u58a8\u5e02",370283:"\u5e73\u5ea6\u5e02",370285:"\u83b1\u897f\u5e02",370286:"\u5176\u5b83\u533a",370300:"\u6dc4\u535a\u5e02",370302:"\u6dc4\u5ddd\u533a",370303:"\u5f20\u5e97\u533a",370304:"\u535a\u5c71\u533a",370305:"\u4e34\u6dc4\u533a",370306:"\u5468\u6751\u533a",370321:"\u6853\u53f0\u53bf",370322:"\u9ad8\u9752\u53bf",370323:"\u6c82\u6e90\u53bf",370324:"\u5176\u5b83\u533a",370400:"\u67a3\u5e84\u5e02",370402:"\u5e02\u4e2d\u533a",370403:"\u859b\u57ce\u533a",370404:"\u5cc4\u57ce\u533a",370405:"\u53f0\u513f\u5e84\u533a",370406:"\u5c71\u4ead\u533a",370481:"\u6ed5\u5dde\u5e02",370482:"\u5176\u5b83\u533a",370500:"\u4e1c\u8425\u5e02",370502:"\u4e1c\u8425\u533a",370503:"\u6cb3\u53e3\u533a",370521:"\u57a6\u5229\u53bf",370522:"\u5229\u6d25\u53bf",370523:"\u5e7f\u9976\u53bf",370591:"\u5176\u5b83\u533a",370600:"\u70df\u53f0\u5e02",370602:"\u829d\u7f58\u533a",370611:"\u798f\u5c71\u533a",370612:"\u725f\u5e73\u533a",370613:"\u83b1\u5c71\u533a",370634:"\u957f\u5c9b\u53bf",370681:"\u9f99\u53e3\u5e02",370682:"\u83b1\u9633\u5e02",370683:"\u83b1\u5dde\u5e02",370684:"\u84ec\u83b1\u5e02",370685:"\u62db\u8fdc\u5e02",370686:"\u6816\u971e\u5e02",370687:"\u6d77\u9633\u5e02",370688:"\u5176\u5b83\u533a",370700:"\u6f4d\u574a\u5e02",370702:"\u6f4d\u57ce\u533a",370703:"\u5bd2\u4ead\u533a",370704:"\u574a\u5b50\u533a",370705:"\u594e\u6587\u533a",370724:"\u4e34\u6710\u53bf",370725:"\u660c\u4e50\u53bf",370781:"\u9752\u5dde\u5e02",370782:"\u8bf8\u57ce\u5e02",370783:"\u5bff\u5149\u5e02",370784:"\u5b89\u4e18\u5e02",370785:"\u9ad8\u5bc6\u5e02",370786:"\u660c\u9091\u5e02",370787:"\u5176\u5b83\u533a",370800:"\u6d4e\u5b81\u5e02",370802:"\u5e02\u4e2d\u533a",370811:"\u4efb\u57ce\u533a",370826:"\u5fae\u5c71\u53bf",370827:"\u9c7c\u53f0\u53bf",370828:"\u91d1\u4e61\u53bf",370829:"\u5609\u7965\u53bf",370830:"\u6c76\u4e0a\u53bf",370831:"\u6cd7\u6c34\u53bf",370832:"\u6881\u5c71\u53bf",370881:"\u66f2\u961c\u5e02",370882:"\u5156\u5dde\u5e02",370883:"\u90b9\u57ce\u5e02",370884:"\u5176\u5b83\u533a",370900:"\u6cf0\u5b89\u5e02",370902:"\u6cf0\u5c71\u533a",370903:"\u5cb1\u5cb3\u533a",370921:"\u5b81\u9633\u53bf",370923:"\u4e1c\u5e73\u53bf",370982:"\u65b0\u6cf0\u5e02",370983:"\u80a5\u57ce\u5e02",370984:"\u5176\u5b83\u533a",371e3:"\u5a01\u6d77\u5e02",371002:"\u73af\u7fe0\u533a",371081:"\u6587\u767b\u5e02",371082:"\u8363\u6210\u5e02",371083:"\u4e73\u5c71\u5e02",371084:"\u5176\u5b83\u533a",371100:"\u65e5\u7167\u5e02",371102:"\u4e1c\u6e2f\u533a",371103:"\u5c9a\u5c71\u533a",371121:"\u4e94\u83b2\u53bf",371122:"\u8392\u53bf",371123:"\u5176\u5b83\u533a",371200:"\u83b1\u829c\u5e02",371202:"\u83b1\u57ce\u533a",371203:"\u94a2\u57ce\u533a",371204:"\u5176\u5b83\u533a",371300:"\u4e34\u6c82\u5e02",371302:"\u5170\u5c71\u533a",371311:"\u7f57\u5e84\u533a",371312:"\u6cb3\u4e1c\u533a",371321:"\u6c82\u5357\u53bf",371322:"\u90ef\u57ce\u53bf",371323:"\u6c82\u6c34\u53bf",371324:"\u82cd\u5c71\u53bf",371325:"\u8d39\u53bf",371326:"\u5e73\u9091\u53bf",371327:"\u8392\u5357\u53bf",371328:"\u8499\u9634\u53bf",371329:"\u4e34\u6cad\u53bf",371330:"\u5176\u5b83\u533a",371400:"\u5fb7\u5dde\u5e02",371402:"\u5fb7\u57ce\u533a",371421:"\u9675\u53bf",371422:"\u5b81\u6d25\u53bf",371423:"\u5e86\u4e91\u53bf",371424:"\u4e34\u9091\u53bf",371425:"\u9f50\u6cb3\u53bf",371426:"\u5e73\u539f\u53bf",371427:"\u590f\u6d25\u53bf",371428:"\u6b66\u57ce\u53bf",371481:"\u4e50\u9675\u5e02",371482:"\u79b9\u57ce\u5e02",371483:"\u5176\u5b83\u533a",371500:"\u804a\u57ce\u5e02",371502:"\u4e1c\u660c\u5e9c\u533a",371521:"\u9633\u8c37\u53bf",371522:"\u8398\u53bf",371523:"\u830c\u5e73\u53bf",371524:"\u4e1c\u963f\u53bf",371525:"\u51a0\u53bf",371526:"\u9ad8\u5510\u53bf",371581:"\u4e34\u6e05\u5e02",371582:"\u5176\u5b83\u533a",371600:"\u6ee8\u5dde\u5e02",371602:"\u6ee8\u57ce\u533a",371621:"\u60e0\u6c11\u53bf",371622:"\u9633\u4fe1\u53bf",371623:"\u65e0\u68e3\u53bf",371624:"\u6cbe\u5316\u53bf",371625:"\u535a\u5174\u53bf",371626:"\u90b9\u5e73\u53bf",371627:"\u5176\u5b83\u533a",371700:"\u83cf\u6cfd\u5e02",371702:"\u7261\u4e39\u533a",371721:"\u66f9\u53bf",371722:"\u5355\u53bf",371723:"\u6210\u6b66\u53bf",371724:"\u5de8\u91ce\u53bf",371725:"\u90d3\u57ce\u53bf",371726:"\u9104\u57ce\u53bf",371727:"\u5b9a\u9676\u53bf",371728:"\u4e1c\u660e\u53bf",371729:"\u5176\u5b83\u533a",41e4:"\u6cb3\u5357\u7701",410100:"\u90d1\u5dde\u5e02",410102:"\u4e2d\u539f\u533a",410103:"\u4e8c\u4e03\u533a",410104:"\u7ba1\u57ce\u56de\u65cf\u533a",410105:"\u91d1\u6c34\u533a",410106:"\u4e0a\u8857\u533a",410108:"\u60e0\u6d4e\u533a",410122:"\u4e2d\u725f\u53bf",410181:"\u5de9\u4e49\u5e02",410182:"\u8365\u9633\u5e02",410183:"\u65b0\u5bc6\u5e02",410184:"\u65b0\u90d1\u5e02",410185:"\u767b\u5c01\u5e02",410188:"\u5176\u5b83\u533a",410200:"\u5f00\u5c01\u5e02",410202:"\u9f99\u4ead\u533a",410203:"\u987a\u6cb3\u56de\u65cf\u533a",410204:"\u9f13\u697c\u533a",410205:"\u79b9\u738b\u53f0\u533a",410211:"\u91d1\u660e\u533a",410221:"\u675e\u53bf",410222:"\u901a\u8bb8\u53bf",410223:"\u5c09\u6c0f\u53bf",410224:"\u5f00\u5c01\u53bf",410225:"\u5170\u8003\u53bf",410226:"\u5176\u5b83\u533a",410300:"\u6d1b\u9633\u5e02",410302:"\u8001\u57ce\u533a",410303:"\u897f\u5de5\u533a",410304:"\u700d\u6cb3\u56de\u65cf\u533a",410305:"\u6da7\u897f\u533a",410306:"\u5409\u5229\u533a",410307:"\u6d1b\u9f99\u533a",410322:"\u5b5f\u6d25\u53bf",410323:"\u65b0\u5b89\u53bf",410324:"\u683e\u5ddd\u53bf",410325:"\u5d69\u53bf",410326:"\u6c5d\u9633\u53bf",410327:"\u5b9c\u9633\u53bf",410328:"\u6d1b\u5b81\u53bf",410329:"\u4f0a\u5ddd\u53bf",410381:"\u5043\u5e08\u5e02",410400:"\u5e73\u9876\u5c71\u5e02",410402:"\u65b0\u534e\u533a",410403:"\u536b\u4e1c\u533a",410404:"\u77f3\u9f99\u533a",410411:"\u6e5b\u6cb3\u533a",410421:"\u5b9d\u4e30\u53bf",410422:"\u53f6\u53bf",410423:"\u9c81\u5c71\u53bf",410425:"\u90cf\u53bf",410481:"\u821e\u94a2\u5e02",410482:"\u6c5d\u5dde\u5e02",410483:"\u5176\u5b83\u533a",410500:"\u5b89\u9633\u5e02",410502:"\u6587\u5cf0\u533a",410503:"\u5317\u5173\u533a",410505:"\u6bb7\u90fd\u533a",410506:"\u9f99\u5b89\u533a",410522:"\u5b89\u9633\u53bf",410523:"\u6c64\u9634\u53bf",410526:"\u6ed1\u53bf",410527:"\u5185\u9ec4\u53bf",410581:"\u6797\u5dde\u5e02",410582:"\u5176\u5b83\u533a",410600:"\u9e64\u58c1\u5e02",410602:"\u9e64\u5c71\u533a",410603:"\u5c71\u57ce\u533a",410611:"\u6dc7\u6ee8\u533a",410621:"\u6d5a\u53bf",410622:"\u6dc7\u53bf",410623:"\u5176\u5b83\u533a",410700:"\u65b0\u4e61\u5e02",410702:"\u7ea2\u65d7\u533a",410703:"\u536b\u6ee8\u533a",410704:"\u51e4\u6cc9\u533a",410711:"\u7267\u91ce\u533a",410721:"\u65b0\u4e61\u53bf",410724:"\u83b7\u5609\u53bf",410725:"\u539f\u9633\u53bf",410726:"\u5ef6\u6d25\u53bf",410727:"\u5c01\u4e18\u53bf",410728:"\u957f\u57a3\u53bf",410781:"\u536b\u8f89\u5e02",410782:"\u8f89\u53bf\u5e02",410783:"\u5176\u5b83\u533a",410800:"\u7126\u4f5c\u5e02",410802:"\u89e3\u653e\u533a",410803:"\u4e2d\u7ad9\u533a",410804:"\u9a6c\u6751\u533a",410811:"\u5c71\u9633\u533a",410821:"\u4fee\u6b66\u53bf",410822:"\u535a\u7231\u53bf",410823:"\u6b66\u965f\u53bf",410825:"\u6e29\u53bf",410881:"\u6d4e\u6e90\u5e02",410882:"\u6c81\u9633\u5e02",410883:"\u5b5f\u5dde\u5e02",410884:"\u5176\u5b83\u533a",410900:"\u6fee\u9633\u5e02",410902:"\u534e\u9f99\u533a",410922:"\u6e05\u4e30\u53bf",410923:"\u5357\u4e50\u53bf",410926:"\u8303\u53bf",410927:"\u53f0\u524d\u53bf",410928:"\u6fee\u9633\u53bf",410929:"\u5176\u5b83\u533a",411e3:"\u8bb8\u660c\u5e02",411002:"\u9b4f\u90fd\u533a",411023:"\u8bb8\u660c\u53bf",411024:"\u9122\u9675\u53bf",411025:"\u8944\u57ce\u53bf",411081:"\u79b9\u5dde\u5e02",411082:"\u957f\u845b\u5e02",411083:"\u5176\u5b83\u533a",411100:"\u6f2f\u6cb3\u5e02",411102:"\u6e90\u6c47\u533a",411103:"\u90fe\u57ce\u533a",411104:"\u53ec\u9675\u533a",411121:"\u821e\u9633\u53bf",411122:"\u4e34\u988d\u53bf",411123:"\u5176\u5b83\u533a",411200:"\u4e09\u95e8\u5ce1\u5e02",411202:"\u6e56\u6ee8\u533a",411221:"\u6e11\u6c60\u53bf",411222:"\u9655\u53bf",411224:"\u5362\u6c0f\u53bf",411281:"\u4e49\u9a6c\u5e02",411282:"\u7075\u5b9d\u5e02",411283:"\u5176\u5b83\u533a",411300:"\u5357\u9633\u5e02",411302:"\u5b9b\u57ce\u533a",411303:"\u5367\u9f99\u533a",411321:"\u5357\u53ec\u53bf",411322:"\u65b9\u57ce\u53bf",411323:"\u897f\u5ce1\u53bf",411324:"\u9547\u5e73\u53bf",411325:"\u5185\u4e61\u53bf",411326:"\u6dc5\u5ddd\u53bf",411327:"\u793e\u65d7\u53bf",411328:"\u5510\u6cb3\u53bf",411329:"\u65b0\u91ce\u53bf",411330:"\u6850\u67cf\u53bf",411381:"\u9093\u5dde\u5e02",411382:"\u5176\u5b83\u533a",411400:"\u5546\u4e18\u5e02",411402:"\u6881\u56ed\u533a",411403:"\u7762\u9633\u533a",411421:"\u6c11\u6743\u53bf",411422:"\u7762\u53bf",411423:"\u5b81\u9675\u53bf",411424:"\u67d8\u57ce\u53bf",411425:"\u865e\u57ce\u53bf",411426:"\u590f\u9091\u53bf",411481:"\u6c38\u57ce\u5e02",411482:"\u5176\u5b83\u533a",411500:"\u4fe1\u9633\u5e02",411502:"\u6d49\u6cb3\u533a",411503:"\u5e73\u6865\u533a",411521:"\u7f57\u5c71\u53bf",411522:"\u5149\u5c71\u53bf",411523:"\u65b0\u53bf",411524:"\u5546\u57ce\u53bf",411525:"\u56fa\u59cb\u53bf",411526:"\u6f62\u5ddd\u53bf",411527:"\u6dee\u6ee8\u53bf",411528:"\u606f\u53bf",411529:"\u5176\u5b83\u533a",411600:"\u5468\u53e3\u5e02",411602:"\u5ddd\u6c47\u533a",411621:"\u6276\u6c9f\u53bf",411622:"\u897f\u534e\u53bf",411623:"\u5546\u6c34\u53bf",411624:"\u6c88\u4e18\u53bf",411625:"\u90f8\u57ce\u53bf",411626:"\u6dee\u9633\u53bf",411627:"\u592a\u5eb7\u53bf",411628:"\u9e7f\u9091\u53bf",411681:"\u9879\u57ce\u5e02",411682:"\u5176\u5b83\u533a",411700:"\u9a7b\u9a6c\u5e97\u5e02",411702:"\u9a7f\u57ce\u533a",411721:"\u897f\u5e73\u53bf",411722:"\u4e0a\u8521\u53bf",411723:"\u5e73\u8206\u53bf",411724:"\u6b63\u9633\u53bf",411725:"\u786e\u5c71\u53bf",411726:"\u6ccc\u9633\u53bf",411727:"\u6c5d\u5357\u53bf",411728:"\u9042\u5e73\u53bf",411729:"\u65b0\u8521\u53bf",411730:"\u5176\u5b83\u533a",42e4:"\u6e56\u5317\u7701",420100:"\u6b66\u6c49\u5e02",420102:"\u6c5f\u5cb8\u533a",420103:"\u6c5f\u6c49\u533a",420104:"\u785a\u53e3\u533a",420105:"\u6c49\u9633\u533a",420106:"\u6b66\u660c\u533a",420107:"\u9752\u5c71\u533a",420111:"\u6d2a\u5c71\u533a",420112:"\u4e1c\u897f\u6e56\u533a",420113:"\u6c49\u5357\u533a",420114:"\u8521\u7538\u533a",420115:"\u6c5f\u590f\u533a",420116:"\u9ec4\u9642\u533a",420117:"\u65b0\u6d32\u533a",420118:"\u5176\u5b83\u533a",420200:"\u9ec4\u77f3\u5e02",420202:"\u9ec4\u77f3\u6e2f\u533a",420203:"\u897f\u585e\u5c71\u533a",420204:"\u4e0b\u9646\u533a",420205:"\u94c1\u5c71\u533a",420222:"\u9633\u65b0\u53bf",420281:"\u5927\u51b6\u5e02",420282:"\u5176\u5b83\u533a",420300:"\u5341\u5830\u5e02",420302:"\u8305\u7bad\u533a",420303:"\u5f20\u6e7e\u533a",420321:"\u90e7\u53bf",420322:"\u90e7\u897f\u53bf",420323:"\u7af9\u5c71\u53bf",420324:"\u7af9\u6eaa\u53bf",420325:"\u623f\u53bf",420381:"\u4e39\u6c5f\u53e3\u5e02",420383:"\u5176\u5b83\u533a",420500:"\u5b9c\u660c\u5e02",420502:"\u897f\u9675\u533a",420503:"\u4f0d\u5bb6\u5c97\u533a",420504:"\u70b9\u519b\u533a",420505:"\u7307\u4ead\u533a",420506:"\u5937\u9675\u533a",420525:"\u8fdc\u5b89\u53bf",420526:"\u5174\u5c71\u53bf",420527:"\u79ed\u5f52\u53bf",420528:"\u957f\u9633\u571f\u5bb6\u65cf\u81ea\u6cbb\u53bf",420529:"\u4e94\u5cf0\u571f\u5bb6\u65cf\u81ea\u6cbb\u53bf",420581:"\u5b9c\u90fd\u5e02",420582:"\u5f53\u9633\u5e02",420583:"\u679d\u6c5f\u5e02",420584:"\u5176\u5b83\u533a",420600:"\u8944\u9633\u5e02",420602:"\u8944\u57ce\u533a",420606:"\u6a0a\u57ce\u533a",420607:"\u8944\u5dde\u533a",420624:"\u5357\u6f33\u53bf",420625:"\u8c37\u57ce\u53bf",420626:"\u4fdd\u5eb7\u53bf",420682:"\u8001\u6cb3\u53e3\u5e02",420683:"\u67a3\u9633\u5e02",420684:"\u5b9c\u57ce\u5e02",420685:"\u5176\u5b83\u533a",420700:"\u9102\u5dde\u5e02",420702:"\u6881\u5b50\u6e56\u533a",420703:"\u534e\u5bb9\u533a",420704:"\u9102\u57ce\u533a",420705:"\u5176\u5b83\u533a",420800:"\u8346\u95e8\u5e02",420802:"\u4e1c\u5b9d\u533a",420804:"\u6387\u5200\u533a",420821:"\u4eac\u5c71\u53bf",420822:"\u6c99\u6d0b\u53bf",420881:"\u949f\u7965\u5e02",420882:"\u5176\u5b83\u533a",420900:"\u5b5d\u611f\u5e02",420902:"\u5b5d\u5357\u533a",420921:"\u5b5d\u660c\u53bf",420922:"\u5927\u609f\u53bf",420923:"\u4e91\u68a6\u53bf",420981:"\u5e94\u57ce\u5e02",420982:"\u5b89\u9646\u5e02",420984:"\u6c49\u5ddd\u5e02",420985:"\u5176\u5b83\u533a",421e3:"\u8346\u5dde\u5e02",421002:"\u6c99\u5e02\u533a",421003:"\u8346\u5dde\u533a",421022:"\u516c\u5b89\u53bf",421023:"\u76d1\u5229\u53bf",421024:"\u6c5f\u9675\u53bf",421081:"\u77f3\u9996\u5e02",421083:"\u6d2a\u6e56\u5e02",421087:"\u677e\u6ecb\u5e02",421088:"\u5176\u5b83\u533a",421100:"\u9ec4\u5188\u5e02",421102:"\u9ec4\u5dde\u533a",421121:"\u56e2\u98ce\u53bf",421122:"\u7ea2\u5b89\u53bf",421123:"\u7f57\u7530\u53bf",421124:"\u82f1\u5c71\u53bf",421125:"\u6d60\u6c34\u53bf",421126:"\u8572\u6625\u53bf",421127:"\u9ec4\u6885\u53bf",421181:"\u9ebb\u57ce\u5e02",421182:"\u6b66\u7a74\u5e02",421183:"\u5176\u5b83\u533a",421200:"\u54b8\u5b81\u5e02",421202:"\u54b8\u5b89\u533a",421221:"\u5609\u9c7c\u53bf",421222:"\u901a\u57ce\u53bf",421223:"\u5d07\u9633\u53bf",421224:"\u901a\u5c71\u53bf",421281:"\u8d64\u58c1\u5e02",421283:"\u5176\u5b83\u533a",421300:"\u968f\u5dde\u5e02",421302:"\u66fe\u90fd\u533a",421321:"\u968f\u53bf",421381:"\u5e7f\u6c34\u5e02",421382:"\u5176\u5b83\u533a",422800:"\u6069\u65bd\u571f\u5bb6\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde",422801:"\u6069\u65bd\u5e02",422802:"\u5229\u5ddd\u5e02",422822:"\u5efa\u59cb\u53bf",422823:"\u5df4\u4e1c\u53bf",422825:"\u5ba3\u6069\u53bf",422826:"\u54b8\u4e30\u53bf",422827:"\u6765\u51e4\u53bf",422828:"\u9e64\u5cf0\u53bf",422829:"\u5176\u5b83\u533a",429004:"\u4ed9\u6843\u5e02",429005:"\u6f5c\u6c5f\u5e02",429006:"\u5929\u95e8\u5e02",429021:"\u795e\u519c\u67b6\u6797\u533a",43e4:"\u6e56\u5357\u7701",430100:"\u957f\u6c99\u5e02",430102:"\u8299\u84c9\u533a",430103:"\u5929\u5fc3\u533a",430104:"\u5cb3\u9e93\u533a",430105:"\u5f00\u798f\u533a",430111:"\u96e8\u82b1\u533a",430121:"\u957f\u6c99\u53bf",430122:"\u671b\u57ce\u533a",430124:"\u5b81\u4e61\u53bf",430181:"\u6d4f\u9633\u5e02",430182:"\u5176\u5b83\u533a",430200:"\u682a\u6d32\u5e02",430202:"\u8377\u5858\u533a",430203:"\u82a6\u6dde\u533a",430204:"\u77f3\u5cf0\u533a",430211:"\u5929\u5143\u533a",430221:"\u682a\u6d32\u53bf",430223:"\u6538\u53bf",430224:"\u8336\u9675\u53bf",430225:"\u708e\u9675\u53bf",430281:"\u91b4\u9675\u5e02",430282:"\u5176\u5b83\u533a",430300:"\u6e58\u6f6d\u5e02",430302:"\u96e8\u6e56\u533a",430304:"\u5cb3\u5858\u533a",430321:"\u6e58\u6f6d\u53bf",430381:"\u6e58\u4e61\u5e02",430382:"\u97f6\u5c71\u5e02",430383:"\u5176\u5b83\u533a",430400:"\u8861\u9633\u5e02",430405:"\u73e0\u6656\u533a",430406:"\u96c1\u5cf0\u533a",430407:"\u77f3\u9f13\u533a",430408:"\u84b8\u6e58\u533a",430412:"\u5357\u5cb3\u533a",430421:"\u8861\u9633\u53bf",430422:"\u8861\u5357\u53bf",430423:"\u8861\u5c71\u53bf",430424:"\u8861\u4e1c\u53bf",430426:"\u7941\u4e1c\u53bf",430481:"\u8012\u9633\u5e02",430482:"\u5e38\u5b81\u5e02",430483:"\u5176\u5b83\u533a",430500:"\u90b5\u9633\u5e02",430502:"\u53cc\u6e05\u533a",430503:"\u5927\u7965\u533a",430511:"\u5317\u5854\u533a",430521:"\u90b5\u4e1c\u53bf",430522:"\u65b0\u90b5\u53bf",430523:"\u90b5\u9633\u53bf",430524:"\u9686\u56de\u53bf",430525:"\u6d1e\u53e3\u53bf",430527:"\u7ee5\u5b81\u53bf",430528:"\u65b0\u5b81\u53bf",430529:"\u57ce\u6b65\u82d7\u65cf\u81ea\u6cbb\u53bf",430581:"\u6b66\u5188\u5e02",430582:"\u5176\u5b83\u533a",430600:"\u5cb3\u9633\u5e02",430602:"\u5cb3\u9633\u697c\u533a",430603:"\u4e91\u6eaa\u533a",430611:"\u541b\u5c71\u533a",430621:"\u5cb3\u9633\u53bf",430623:"\u534e\u5bb9\u53bf",430624:"\u6e58\u9634\u53bf",430626:"\u5e73\u6c5f\u53bf",430681:"\u6c68\u7f57\u5e02",430682:"\u4e34\u6e58\u5e02",430683:"\u5176\u5b83\u533a",430700:"\u5e38\u5fb7\u5e02",430702:"\u6b66\u9675\u533a",430703:"\u9f0e\u57ce\u533a",430721:"\u5b89\u4e61\u53bf",430722:"\u6c49\u5bff\u53bf",430723:"\u6fa7\u53bf",430724:"\u4e34\u6fa7\u53bf",430725:"\u6843\u6e90\u53bf",430726:"\u77f3\u95e8\u53bf",430781:"\u6d25\u5e02\u5e02",430782:"\u5176\u5b83\u533a",430800:"\u5f20\u5bb6\u754c\u5e02",430802:"\u6c38\u5b9a\u533a",430811:"\u6b66\u9675\u6e90\u533a",430821:"\u6148\u5229\u53bf",430822:"\u6851\u690d\u53bf",430823:"\u5176\u5b83\u533a",430900:"\u76ca\u9633\u5e02",430902:"\u8d44\u9633\u533a",430903:"\u8d6b\u5c71\u533a",430921:"\u5357\u53bf",430922:"\u6843\u6c5f\u53bf",430923:"\u5b89\u5316\u53bf",430981:"\u6c85\u6c5f\u5e02",430982:"\u5176\u5b83\u533a",431e3:"\u90f4\u5dde\u5e02",431002:"\u5317\u6e56\u533a",431003:"\u82cf\u4ed9\u533a",431021:"\u6842\u9633\u53bf",431022:"\u5b9c\u7ae0\u53bf",431023:"\u6c38\u5174\u53bf",431024:"\u5609\u79be\u53bf",431025:"\u4e34\u6b66\u53bf",431026:"\u6c5d\u57ce\u53bf",431027:"\u6842\u4e1c\u53bf",431028:"\u5b89\u4ec1\u53bf",431081:"\u8d44\u5174\u5e02",431082:"\u5176\u5b83\u533a",431100:"\u6c38\u5dde\u5e02",431102:"\u96f6\u9675\u533a",431103:"\u51b7\u6c34\u6ee9\u533a",431121:"\u7941\u9633\u53bf",431122:"\u4e1c\u5b89\u53bf",431123:"\u53cc\u724c\u53bf",431124:"\u9053\u53bf",431125:"\u6c5f\u6c38\u53bf",431126:"\u5b81\u8fdc\u53bf",431127:"\u84dd\u5c71\u53bf",431128:"\u65b0\u7530\u53bf",431129:"\u6c5f\u534e\u7476\u65cf\u81ea\u6cbb\u53bf",431130:"\u5176\u5b83\u533a",431200:"\u6000\u5316\u5e02",431202:"\u9e64\u57ce\u533a",431221:"\u4e2d\u65b9\u53bf",431222:"\u6c85\u9675\u53bf",431223:"\u8fb0\u6eaa\u53bf",431224:"\u6e86\u6d66\u53bf",431225:"\u4f1a\u540c\u53bf",431226:"\u9ebb\u9633\u82d7\u65cf\u81ea\u6cbb\u53bf",431227:"\u65b0\u6643\u4f97\u65cf\u81ea\u6cbb\u53bf",431228:"\u82b7\u6c5f\u4f97\u65cf\u81ea\u6cbb\u53bf",431229:"\u9756\u5dde\u82d7\u65cf\u4f97\u65cf\u81ea\u6cbb\u53bf",431230:"\u901a\u9053\u4f97\u65cf\u81ea\u6cbb\u53bf",431281:"\u6d2a\u6c5f\u5e02",431282:"\u5176\u5b83\u533a",431300:"\u5a04\u5e95\u5e02",431302:"\u5a04\u661f\u533a",431321:"\u53cc\u5cf0\u53bf",431322:"\u65b0\u5316\u53bf",431381:"\u51b7\u6c34\u6c5f\u5e02",431382:"\u6d9f\u6e90\u5e02",431383:"\u5176\u5b83\u533a",433100:"\u6e58\u897f\u571f\u5bb6\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde",433101:"\u5409\u9996\u5e02",433122:"\u6cf8\u6eaa\u53bf",433123:"\u51e4\u51f0\u53bf",433124:"\u82b1\u57a3\u53bf",433125:"\u4fdd\u9756\u53bf",433126:"\u53e4\u4e08\u53bf",433127:"\u6c38\u987a\u53bf",433130:"\u9f99\u5c71\u53bf",433131:"\u5176\u5b83\u533a",44e4:"\u5e7f\u4e1c\u7701",440100:"\u5e7f\u5dde\u5e02",440103:"\u8354\u6e7e\u533a",440104:"\u8d8a\u79c0\u533a",440105:"\u6d77\u73e0\u533a",440106:"\u5929\u6cb3\u533a",440111:"\u767d\u4e91\u533a",440112:"\u9ec4\u57d4\u533a",440113:"\u756a\u79ba\u533a",440114:"\u82b1\u90fd\u533a",440115:"\u5357\u6c99\u533a",440116:"\u841d\u5c97\u533a",440183:"\u589e\u57ce\u5e02",440184:"\u4ece\u5316\u5e02",440189:"\u5176\u5b83\u533a",440200:"\u97f6\u5173\u5e02",440203:"\u6b66\u6c5f\u533a",440204:"\u6d48\u6c5f\u533a",440205:"\u66f2\u6c5f\u533a",440222:"\u59cb\u5174\u53bf",440224:"\u4ec1\u5316\u53bf",440229:"\u7fc1\u6e90\u53bf",440232:"\u4e73\u6e90\u7476\u65cf\u81ea\u6cbb\u53bf",440233:"\u65b0\u4e30\u53bf",440281:"\u4e50\u660c\u5e02",440282:"\u5357\u96c4\u5e02",440283:"\u5176\u5b83\u533a",440300:"\u6df1\u5733\u5e02",440303:"\u7f57\u6e56\u533a",440304:"\u798f\u7530\u533a",440305:"\u5357\u5c71\u533a",440306:"\u5b9d\u5b89\u533a",440307:"\u9f99\u5c97\u533a",440308:"\u76d0\u7530\u533a",440309:"\u5176\u5b83\u533a",440320:"\u5149\u660e\u65b0\u533a",440321:"\u576a\u5c71\u65b0\u533a",440322:"\u5927\u9e4f\u65b0\u533a",440323:"\u9f99\u534e\u65b0\u533a",440400:"\u73e0\u6d77\u5e02",440402:"\u9999\u6d32\u533a",440403:"\u6597\u95e8\u533a",440404:"\u91d1\u6e7e\u533a",440488:"\u5176\u5b83\u533a",440500:"\u6c55\u5934\u5e02",440507:"\u9f99\u6e56\u533a",440511:"\u91d1\u5e73\u533a",440512:"\u6fe0\u6c5f\u533a",440513:"\u6f6e\u9633\u533a",440514:"\u6f6e\u5357\u533a",440515:"\u6f84\u6d77\u533a",440523:"\u5357\u6fb3\u53bf",440524:"\u5176\u5b83\u533a",440600:"\u4f5b\u5c71\u5e02",440604:"\u7985\u57ce\u533a",440605:"\u5357\u6d77\u533a",440606:"\u987a\u5fb7\u533a",440607:"\u4e09\u6c34\u533a",440608:"\u9ad8\u660e\u533a",440609:"\u5176\u5b83\u533a",440700:"\u6c5f\u95e8\u5e02",440703:"\u84ec\u6c5f\u533a",440704:"\u6c5f\u6d77\u533a",440705:"\u65b0\u4f1a\u533a",440781:"\u53f0\u5c71\u5e02",440783:"\u5f00\u5e73\u5e02",440784:"\u9e64\u5c71\u5e02",440785:"\u6069\u5e73\u5e02",440786:"\u5176\u5b83\u533a",440800:"\u6e5b\u6c5f\u5e02",440802:"\u8d64\u574e\u533a",440803:"\u971e\u5c71\u533a",440804:"\u5761\u5934\u533a",440811:"\u9ebb\u7ae0\u533a",440823:"\u9042\u6eaa\u53bf",440825:"\u5f90\u95fb\u53bf",440881:"\u5ec9\u6c5f\u5e02",440882:"\u96f7\u5dde\u5e02",440883:"\u5434\u5ddd\u5e02",440884:"\u5176\u5b83\u533a",440900:"\u8302\u540d\u5e02",440902:"\u8302\u5357\u533a",440903:"\u8302\u6e2f\u533a",440923:"\u7535\u767d\u53bf",440981:"\u9ad8\u5dde\u5e02",440982:"\u5316\u5dde\u5e02",440983:"\u4fe1\u5b9c\u5e02",440984:"\u5176\u5b83\u533a",441200:"\u8087\u5e86\u5e02",441202:"\u7aef\u5dde\u533a",441203:"\u9f0e\u6e56\u533a",441223:"\u5e7f\u5b81\u53bf",441224:"\u6000\u96c6\u53bf",441225:"\u5c01\u5f00\u53bf",441226:"\u5fb7\u5e86\u53bf",441283:"\u9ad8\u8981\u5e02",441284:"\u56db\u4f1a\u5e02",441285:"\u5176\u5b83\u533a",441300:"\u60e0\u5dde\u5e02",441302:"\u60e0\u57ce\u533a",441303:"\u60e0\u9633\u533a",441322:"\u535a\u7f57\u53bf",441323:"\u60e0\u4e1c\u53bf",441324:"\u9f99\u95e8\u53bf",441325:"\u5176\u5b83\u533a",441400:"\u6885\u5dde\u5e02",441402:"\u6885\u6c5f\u533a",441421:"\u6885\u53bf",441422:"\u5927\u57d4\u53bf",441423:"\u4e30\u987a\u53bf",441424:"\u4e94\u534e\u53bf",441426:"\u5e73\u8fdc\u53bf",441427:"\u8549\u5cad\u53bf",441481:"\u5174\u5b81\u5e02",441482:"\u5176\u5b83\u533a",441500:"\u6c55\u5c3e\u5e02",441502:"\u57ce\u533a",441521:"\u6d77\u4e30\u53bf",441523:"\u9646\u6cb3\u53bf",441581:"\u9646\u4e30\u5e02",441582:"\u5176\u5b83\u533a",441600:"\u6cb3\u6e90\u5e02",441602:"\u6e90\u57ce\u533a",441621:"\u7d2b\u91d1\u53bf",441622:"\u9f99\u5ddd\u53bf",441623:"\u8fde\u5e73\u53bf",441624:"\u548c\u5e73\u53bf",441625:"\u4e1c\u6e90\u53bf",441626:"\u5176\u5b83\u533a",441700:"\u9633\u6c5f\u5e02",441702:"\u6c5f\u57ce\u533a",441721:"\u9633\u897f\u53bf",441723:"\u9633\u4e1c\u53bf",441781:"\u9633\u6625\u5e02",441782:"\u5176\u5b83\u533a",441800:"\u6e05\u8fdc\u5e02",441802:"\u6e05\u57ce\u533a",441821:"\u4f5b\u5188\u53bf",441823:"\u9633\u5c71\u53bf",441825:"\u8fde\u5c71\u58ee\u65cf\u7476\u65cf\u81ea\u6cbb\u53bf",441826:"\u8fde\u5357\u7476\u65cf\u81ea\u6cbb\u53bf",441827:"\u6e05\u65b0\u533a",441881:"\u82f1\u5fb7\u5e02",441882:"\u8fde\u5dde\u5e02",441883:"\u5176\u5b83\u533a",441900:"\u4e1c\u839e\u5e02",442e3:"\u4e2d\u5c71\u5e02",442101:"\u4e1c\u6c99\u7fa4\u5c9b",445100:"\u6f6e\u5dde\u5e02",445102:"\u6e58\u6865\u533a",445121:"\u6f6e\u5b89\u533a",445122:"\u9976\u5e73\u53bf",445186:"\u5176\u5b83\u533a",445200:"\u63ed\u9633\u5e02",445202:"\u6995\u57ce\u533a",445221:"\u63ed\u4e1c\u533a",445222:"\u63ed\u897f\u53bf",445224:"\u60e0\u6765\u53bf",445281:"\u666e\u5b81\u5e02",445285:"\u5176\u5b83\u533a",445300:"\u4e91\u6d6e\u5e02",445302:"\u4e91\u57ce\u533a",445321:"\u65b0\u5174\u53bf",445322:"\u90c1\u5357\u53bf",445323:"\u4e91\u5b89\u53bf",445381:"\u7f57\u5b9a\u5e02",445382:"\u5176\u5b83\u533a",45e4:"\u5e7f\u897f\u58ee\u65cf\u81ea\u6cbb\u533a",450100:"\u5357\u5b81\u5e02",450102:"\u5174\u5b81\u533a",450103:"\u9752\u79c0\u533a",450105:"\u6c5f\u5357\u533a",450107:"\u897f\u4e61\u5858\u533a",450108:"\u826f\u5e86\u533a",450109:"\u9095\u5b81\u533a",450122:"\u6b66\u9e23\u53bf",450123:"\u9686\u5b89\u53bf",450124:"\u9a6c\u5c71\u53bf",450125:"\u4e0a\u6797\u53bf",450126:"\u5bbe\u9633\u53bf",450127:"\u6a2a\u53bf",450128:"\u5176\u5b83\u533a",450200:"\u67f3\u5dde\u5e02",450202:"\u57ce\u4e2d\u533a",450203:"\u9c7c\u5cf0\u533a",450204:"\u67f3\u5357\u533a",450205:"\u67f3\u5317\u533a",450221:"\u67f3\u6c5f\u53bf",450222:"\u67f3\u57ce\u53bf",450223:"\u9e7f\u5be8\u53bf",450224:"\u878d\u5b89\u53bf",450225:"\u878d\u6c34\u82d7\u65cf\u81ea\u6cbb\u53bf",450226:"\u4e09\u6c5f\u4f97\u65cf\u81ea\u6cbb\u53bf",450227:"\u5176\u5b83\u533a",450300:"\u6842\u6797\u5e02",450302:"\u79c0\u5cf0\u533a",450303:"\u53e0\u5f69\u533a",450304:"\u8c61\u5c71\u533a",450305:"\u4e03\u661f\u533a",450311:"\u96c1\u5c71\u533a",450321:"\u9633\u6714\u53bf",450322:"\u4e34\u6842\u533a",450323:"\u7075\u5ddd\u53bf",450324:"\u5168\u5dde\u53bf",450325:"\u5174\u5b89\u53bf",450326:"\u6c38\u798f\u53bf",450327:"\u704c\u9633\u53bf",450328:"\u9f99\u80dc\u5404\u65cf\u81ea\u6cbb\u53bf",450329:"\u8d44\u6e90\u53bf",450330:"\u5e73\u4e50\u53bf",450331:"\u8354\u6d66\u53bf",450332:"\u606d\u57ce\u7476\u65cf\u81ea\u6cbb\u53bf",450333:"\u5176\u5b83\u533a",450400:"\u68a7\u5dde\u5e02",450403:"\u4e07\u79c0\u533a",450405:"\u957f\u6d32\u533a",450406:"\u9f99\u5729\u533a",450421:"\u82cd\u68a7\u53bf",450422:"\u85e4\u53bf",450423:"\u8499\u5c71\u53bf",450481:"\u5c91\u6eaa\u5e02",450482:"\u5176\u5b83\u533a",450500:"\u5317\u6d77\u5e02",450502:"\u6d77\u57ce\u533a",450503:"\u94f6\u6d77\u533a",450512:"\u94c1\u5c71\u6e2f\u533a",450521:"\u5408\u6d66\u53bf",450522:"\u5176\u5b83\u533a",450600:"\u9632\u57ce\u6e2f\u5e02",450602:"\u6e2f\u53e3\u533a",450603:"\u9632\u57ce\u533a",450621:"\u4e0a\u601d\u53bf",450681:"\u4e1c\u5174\u5e02",450682:"\u5176\u5b83\u533a",450700:"\u94a6\u5dde\u5e02",450702:"\u94a6\u5357\u533a",450703:"\u94a6\u5317\u533a",450721:"\u7075\u5c71\u53bf",450722:"\u6d66\u5317\u53bf",450723:"\u5176\u5b83\u533a",450800:"\u8d35\u6e2f\u5e02",450802:"\u6e2f\u5317\u533a",450803:"\u6e2f\u5357\u533a",450804:"\u8983\u5858\u533a",450821:"\u5e73\u5357\u53bf",450881:"\u6842\u5e73\u5e02",450882:"\u5176\u5b83\u533a",450900:"\u7389\u6797\u5e02",450902:"\u7389\u5dde\u533a",450903:"\u798f\u7ef5\u533a",450921:"\u5bb9\u53bf",450922:"\u9646\u5ddd\u53bf",450923:"\u535a\u767d\u53bf",450924:"\u5174\u4e1a\u53bf",450981:"\u5317\u6d41\u5e02",450982:"\u5176\u5b83\u533a",451e3:"\u767e\u8272\u5e02",451002:"\u53f3\u6c5f\u533a",451021:"\u7530\u9633\u53bf",451022:"\u7530\u4e1c\u53bf",451023:"\u5e73\u679c\u53bf",451024:"\u5fb7\u4fdd\u53bf",451025:"\u9756\u897f\u53bf",451026:"\u90a3\u5761\u53bf",451027:"\u51cc\u4e91\u53bf",451028:"\u4e50\u4e1a\u53bf",451029:"\u7530\u6797\u53bf",451030:"\u897f\u6797\u53bf",451031:"\u9686\u6797\u5404\u65cf\u81ea\u6cbb\u53bf",451032:"\u5176\u5b83\u533a",451100:"\u8d3a\u5dde\u5e02",451102:"\u516b\u6b65\u533a",451119:"\u5e73\u6842\u7ba1\u7406\u533a",451121:"\u662d\u5e73\u53bf",451122:"\u949f\u5c71\u53bf",451123:"\u5bcc\u5ddd\u7476\u65cf\u81ea\u6cbb\u53bf",451124:"\u5176\u5b83\u533a",451200:"\u6cb3\u6c60\u5e02",451202:"\u91d1\u57ce\u6c5f\u533a",451221:"\u5357\u4e39\u53bf",451222:"\u5929\u5ce8\u53bf",451223:"\u51e4\u5c71\u53bf",451224:"\u4e1c\u5170\u53bf",451225:"\u7f57\u57ce\u4eeb\u4f6c\u65cf\u81ea\u6cbb\u53bf",451226:"\u73af\u6c5f\u6bdb\u5357\u65cf\u81ea\u6cbb\u53bf",451227:"\u5df4\u9a6c\u7476\u65cf\u81ea\u6cbb\u53bf",451228:"\u90fd\u5b89\u7476\u65cf\u81ea\u6cbb\u53bf",451229:"\u5927\u5316\u7476\u65cf\u81ea\u6cbb\u53bf",451281:"\u5b9c\u5dde\u5e02",451282:"\u5176\u5b83\u533a",451300:"\u6765\u5bbe\u5e02",451302:"\u5174\u5bbe\u533a",451321:"\u5ffb\u57ce\u53bf",451322:"\u8c61\u5dde\u53bf",451323:"\u6b66\u5ba3\u53bf",451324:"\u91d1\u79c0\u7476\u65cf\u81ea\u6cbb\u53bf",451381:"\u5408\u5c71\u5e02",451382:"\u5176\u5b83\u533a",451400:"\u5d07\u5de6\u5e02",451402:"\u6c5f\u5dde\u533a",451421:"\u6276\u7ee5\u53bf",451422:"\u5b81\u660e\u53bf",451423:"\u9f99\u5dde\u53bf",451424:"\u5927\u65b0\u53bf",451425:"\u5929\u7b49\u53bf",451481:"\u51ed\u7965\u5e02",451482:"\u5176\u5b83\u533a",46e4:"\u6d77\u5357\u7701",460100:"\u6d77\u53e3\u5e02",460105:"\u79c0\u82f1\u533a",460106:"\u9f99\u534e\u533a",460107:"\u743c\u5c71\u533a",460108:"\u7f8e\u5170\u533a",460109:"\u5176\u5b83\u533a",460200:"\u4e09\u4e9a\u5e02",460300:"\u4e09\u6c99\u5e02",460321:"\u897f\u6c99\u7fa4\u5c9b",460322:"\u5357\u6c99\u7fa4\u5c9b",460323:"\u4e2d\u6c99\u7fa4\u5c9b\u7684\u5c9b\u7901\u53ca\u5176\u6d77\u57df",469001:"\u4e94\u6307\u5c71\u5e02",469002:"\u743c\u6d77\u5e02",469003:"\u510b\u5dde\u5e02",469005:"\u6587\u660c\u5e02",469006:"\u4e07\u5b81\u5e02",469007:"\u4e1c\u65b9\u5e02",469025:"\u5b9a\u5b89\u53bf",469026:"\u5c6f\u660c\u53bf",469027:"\u6f84\u8fc8\u53bf",469028:"\u4e34\u9ad8\u53bf",469030:"\u767d\u6c99\u9ece\u65cf\u81ea\u6cbb\u53bf",469031:"\u660c\u6c5f\u9ece\u65cf\u81ea\u6cbb\u53bf",469033:"\u4e50\u4e1c\u9ece\u65cf\u81ea\u6cbb\u53bf",469034:"\u9675\u6c34\u9ece\u65cf\u81ea\u6cbb\u53bf",469035:"\u4fdd\u4ead\u9ece\u65cf\u82d7\u65cf\u81ea\u6cbb\u53bf",469036:"\u743c\u4e2d\u9ece\u65cf\u82d7\u65cf\u81ea\u6cbb\u53bf",471005:"\u5176\u5b83\u533a",5e5:"\u91cd\u5e86",500100:"\u91cd\u5e86\u5e02",500101:"\u4e07\u5dde\u533a",500102:"\u6daa\u9675\u533a",500103:"\u6e1d\u4e2d\u533a",500104:"\u5927\u6e21\u53e3\u533a",500105:"\u6c5f\u5317\u533a",500106:"\u6c99\u576a\u575d\u533a",500107:"\u4e5d\u9f99\u5761\u533a",500108:"\u5357\u5cb8\u533a",500109:"\u5317\u789a\u533a",500110:"\u4e07\u76db\u533a",500111:"\u53cc\u6865\u533a",500112:"\u6e1d\u5317\u533a",500113:"\u5df4\u5357\u533a",500114:"\u9ed4\u6c5f\u533a",500115:"\u957f\u5bff\u533a",500222:"\u7da6\u6c5f\u533a",500223:"\u6f7c\u5357\u53bf",500224:"\u94dc\u6881\u53bf",500225:"\u5927\u8db3\u533a",500226:"\u8363\u660c\u53bf",500227:"\u74a7\u5c71\u53bf",500228:"\u6881\u5e73\u53bf",500229:"\u57ce\u53e3\u53bf",500230:"\u4e30\u90fd\u53bf",500231:"\u57ab\u6c5f\u53bf",500232:"\u6b66\u9686\u53bf",500233:"\u5fe0\u53bf",500234:"\u5f00\u53bf",500235:"\u4e91\u9633\u53bf",500236:"\u5949\u8282\u53bf",500237:"\u5deb\u5c71\u53bf",500238:"\u5deb\u6eaa\u53bf",500240:"\u77f3\u67f1\u571f\u5bb6\u65cf\u81ea\u6cbb\u53bf",500241:"\u79c0\u5c71\u571f\u5bb6\u65cf\u82d7\u65cf\u81ea\u6cbb\u53bf",500242:"\u9149\u9633\u571f\u5bb6\u65cf\u82d7\u65cf\u81ea\u6cbb\u53bf",500243:"\u5f6d\u6c34\u82d7\u65cf\u571f\u5bb6\u65cf\u81ea\u6cbb\u53bf",500381:"\u6c5f\u6d25\u533a",500382:"\u5408\u5ddd\u533a",500383:"\u6c38\u5ddd\u533a",500384:"\u5357\u5ddd\u533a",500385:"\u5176\u5b83\u533a",51e4:"\u56db\u5ddd\u7701",510100:"\u6210\u90fd\u5e02",510104:"\u9526\u6c5f\u533a",510105:"\u9752\u7f8a\u533a",510106:"\u91d1\u725b\u533a",510107:"\u6b66\u4faf\u533a",510108:"\u6210\u534e\u533a",510112:"\u9f99\u6cc9\u9a7f\u533a",510113:"\u9752\u767d\u6c5f\u533a",510114:"\u65b0\u90fd\u533a",510115:"\u6e29\u6c5f\u533a",510121:"\u91d1\u5802\u53bf",510122:"\u53cc\u6d41\u53bf",510124:"\u90eb\u53bf",510129:"\u5927\u9091\u53bf",510131:"\u84b2\u6c5f\u53bf",510132:"\u65b0\u6d25\u53bf",510181:"\u90fd\u6c5f\u5830\u5e02",510182:"\u5f6d\u5dde\u5e02",510183:"\u909b\u5d03\u5e02",510184:"\u5d07\u5dde\u5e02",510185:"\u5176\u5b83\u533a",510300:"\u81ea\u8d21\u5e02",510302:"\u81ea\u6d41\u4e95\u533a",510303:"\u8d21\u4e95\u533a",510304:"\u5927\u5b89\u533a",510311:"\u6cbf\u6ee9\u533a",510321:"\u8363\u53bf",510322:"\u5bcc\u987a\u53bf",510323:"\u5176\u5b83\u533a",510400:"\u6500\u679d\u82b1\u5e02",510402:"\u4e1c\u533a",510403:"\u897f\u533a",510411:"\u4ec1\u548c\u533a",510421:"\u7c73\u6613\u53bf",510422:"\u76d0\u8fb9\u53bf",510423:"\u5176\u5b83\u533a",510500:"\u6cf8\u5dde\u5e02",510502:"\u6c5f\u9633\u533a",510503:"\u7eb3\u6eaa\u533a",510504:"\u9f99\u9a6c\u6f6d\u533a",510521:"\u6cf8\u53bf",510522:"\u5408\u6c5f\u53bf",510524:"\u53d9\u6c38\u53bf",510525:"\u53e4\u853a\u53bf",510526:"\u5176\u5b83\u533a",510600:"\u5fb7\u9633\u5e02",510603:"\u65cc\u9633\u533a",510623:"\u4e2d\u6c5f\u53bf",510626:"\u7f57\u6c5f\u53bf",510681:"\u5e7f\u6c49\u5e02",510682:"\u4ec0\u90a1\u5e02",510683:"\u7ef5\u7af9\u5e02",510684:"\u5176\u5b83\u533a",510700:"\u7ef5\u9633\u5e02",510703:"\u6daa\u57ce\u533a",510704:"\u6e38\u4ed9\u533a",510722:"\u4e09\u53f0\u53bf",510723:"\u76d0\u4ead\u53bf",510724:"\u5b89\u53bf",510725:"\u6893\u6f7c\u53bf",510726:"\u5317\u5ddd\u7f8c\u65cf\u81ea\u6cbb\u53bf",510727:"\u5e73\u6b66\u53bf",510781:"\u6c5f\u6cb9\u5e02",510782:"\u5176\u5b83\u533a",510800:"\u5e7f\u5143\u5e02",510802:"\u5229\u5dde\u533a",510811:"\u662d\u5316\u533a",510812:"\u671d\u5929\u533a",510821:"\u65fa\u82cd\u53bf",510822:"\u9752\u5ddd\u53bf",510823:"\u5251\u9601\u53bf",510824:"\u82cd\u6eaa\u53bf",510825:"\u5176\u5b83\u533a",510900:"\u9042\u5b81\u5e02",510903:"\u8239\u5c71\u533a",510904:"\u5b89\u5c45\u533a",510921:"\u84ec\u6eaa\u53bf",510922:"\u5c04\u6d2a\u53bf",510923:"\u5927\u82f1\u53bf",510924:"\u5176\u5b83\u533a",511e3:"\u5185\u6c5f\u5e02",511002:"\u5e02\u4e2d\u533a",511011:"\u4e1c\u5174\u533a",511024:"\u5a01\u8fdc\u53bf",511025:"\u8d44\u4e2d\u53bf",511028:"\u9686\u660c\u53bf",511029:"\u5176\u5b83\u533a",511100:"\u4e50\u5c71\u5e02",511102:"\u5e02\u4e2d\u533a",511111:"\u6c99\u6e7e\u533a",511112:"\u4e94\u901a\u6865\u533a",511113:"\u91d1\u53e3\u6cb3\u533a",511123:"\u728d\u4e3a\u53bf",511124:"\u4e95\u7814\u53bf",511126:"\u5939\u6c5f\u53bf",511129:"\u6c90\u5ddd\u53bf",511132:"\u5ce8\u8fb9\u5f5d\u65cf\u81ea\u6cbb\u53bf",511133:"\u9a6c\u8fb9\u5f5d\u65cf\u81ea\u6cbb\u53bf",511181:"\u5ce8\u7709\u5c71\u5e02",511182:"\u5176\u5b83\u533a",511300:"\u5357\u5145\u5e02",511302:"\u987a\u5e86\u533a",511303:"\u9ad8\u576a\u533a",511304:"\u5609\u9675\u533a",511321:"\u5357\u90e8\u53bf",511322:"\u8425\u5c71\u53bf",511323:"\u84ec\u5b89\u53bf",511324:"\u4eea\u9647\u53bf",511325:"\u897f\u5145\u53bf",511381:"\u9606\u4e2d\u5e02",511382:"\u5176\u5b83\u533a",511400:"\u7709\u5c71\u5e02",511402:"\u4e1c\u5761\u533a",511421:"\u4ec1\u5bff\u53bf",511422:"\u5f6d\u5c71\u53bf",511423:"\u6d2a\u96c5\u53bf",511424:"\u4e39\u68f1\u53bf",511425:"\u9752\u795e\u53bf",511426:"\u5176\u5b83\u533a",511500:"\u5b9c\u5bbe\u5e02",511502:"\u7fe0\u5c4f\u533a",511521:"\u5b9c\u5bbe\u53bf",511522:"\u5357\u6eaa\u533a",511523:"\u6c5f\u5b89\u53bf",511524:"\u957f\u5b81\u53bf",511525:"\u9ad8\u53bf",511526:"\u73d9\u53bf",511527:"\u7b60\u8fde\u53bf",511528:"\u5174\u6587\u53bf",511529:"\u5c4f\u5c71\u53bf",511530:"\u5176\u5b83\u533a",511600:"\u5e7f\u5b89\u5e02",511602:"\u5e7f\u5b89\u533a",511603:"\u524d\u950b\u533a",511621:"\u5cb3\u6c60\u53bf",511622:"\u6b66\u80dc\u53bf",511623:"\u90bb\u6c34\u53bf",511681:"\u534e\u84e5\u5e02",511683:"\u5176\u5b83\u533a",511700:"\u8fbe\u5dde\u5e02",511702:"\u901a\u5ddd\u533a",511721:"\u8fbe\u5ddd\u533a",511722:"\u5ba3\u6c49\u53bf",511723:"\u5f00\u6c5f\u53bf",511724:"\u5927\u7af9\u53bf",511725:"\u6e20\u53bf",511781:"\u4e07\u6e90\u5e02",511782:"\u5176\u5b83\u533a",511800:"\u96c5\u5b89\u5e02",511802:"\u96e8\u57ce\u533a",511821:"\u540d\u5c71\u533a",511822:"\u8365\u7ecf\u53bf",511823:"\u6c49\u6e90\u53bf",511824:"\u77f3\u68c9\u53bf",511825:"\u5929\u5168\u53bf",511826:"\u82a6\u5c71\u53bf",511827:"\u5b9d\u5174\u53bf",511828:"\u5176\u5b83\u533a",511900:"\u5df4\u4e2d\u5e02",511902:"\u5df4\u5dde\u533a",511903:"\u6069\u9633\u533a",511921:"\u901a\u6c5f\u53bf",511922:"\u5357\u6c5f\u53bf",511923:"\u5e73\u660c\u53bf",511924:"\u5176\u5b83\u533a",512e3:"\u8d44\u9633\u5e02",512002:"\u96c1\u6c5f\u533a",512021:"\u5b89\u5cb3\u53bf",512022:"\u4e50\u81f3\u53bf",512081:"\u7b80\u9633\u5e02",512082:"\u5176\u5b83\u533a",513200:"\u963f\u575d\u85cf\u65cf\u7f8c\u65cf\u81ea\u6cbb\u5dde",513221:"\u6c76\u5ddd\u53bf",513222:"\u7406\u53bf",513223:"\u8302\u53bf",513224:"\u677e\u6f58\u53bf",513225:"\u4e5d\u5be8\u6c9f\u53bf",513226:"\u91d1\u5ddd\u53bf",513227:"\u5c0f\u91d1\u53bf",513228:"\u9ed1\u6c34\u53bf",513229:"\u9a6c\u5c14\u5eb7\u53bf",513230:"\u58e4\u5858\u53bf",513231:"\u963f\u575d\u53bf",513232:"\u82e5\u5c14\u76d6\u53bf",513233:"\u7ea2\u539f\u53bf",513234:"\u5176\u5b83\u533a",513300:"\u7518\u5b5c\u85cf\u65cf\u81ea\u6cbb\u5dde",513321:"\u5eb7\u5b9a\u53bf",513322:"\u6cf8\u5b9a\u53bf",513323:"\u4e39\u5df4\u53bf",513324:"\u4e5d\u9f99\u53bf",513325:"\u96c5\u6c5f\u53bf",513326:"\u9053\u5b5a\u53bf",513327:"\u7089\u970d\u53bf",513328:"\u7518\u5b5c\u53bf",513329:"\u65b0\u9f99\u53bf",513330:"\u5fb7\u683c\u53bf",513331:"\u767d\u7389\u53bf",513332:"\u77f3\u6e20\u53bf",513333:"\u8272\u8fbe\u53bf",513334:"\u7406\u5858\u53bf",513335:"\u5df4\u5858\u53bf",513336:"\u4e61\u57ce\u53bf",513337:"\u7a3b\u57ce\u53bf",513338:"\u5f97\u8363\u53bf",513339:"\u5176\u5b83\u533a",513400:"\u51c9\u5c71\u5f5d\u65cf\u81ea\u6cbb\u5dde",513401:"\u897f\u660c\u5e02",513422:"\u6728\u91cc\u85cf\u65cf\u81ea\u6cbb\u53bf",513423:"\u76d0\u6e90\u53bf",513424:"\u5fb7\u660c\u53bf",513425:"\u4f1a\u7406\u53bf",513426:"\u4f1a\u4e1c\u53bf",513427:"\u5b81\u5357\u53bf",513428:"\u666e\u683c\u53bf",513429:"\u5e03\u62d6\u53bf",513430:"\u91d1\u9633\u53bf",513431:"\u662d\u89c9\u53bf",513432:"\u559c\u5fb7\u53bf",513433:"\u5195\u5b81\u53bf",513434:"\u8d8a\u897f\u53bf",513435:"\u7518\u6d1b\u53bf",513436:"\u7f8e\u59d1\u53bf",513437:"\u96f7\u6ce2\u53bf",513438:"\u5176\u5b83\u533a",52e4:"\u8d35\u5dde\u7701",520100:"\u8d35\u9633\u5e02",520102:"\u5357\u660e\u533a",520103:"\u4e91\u5ca9\u533a",520111:"\u82b1\u6eaa\u533a",520112:"\u4e4c\u5f53\u533a",520113:"\u767d\u4e91\u533a",520121:"\u5f00\u9633\u53bf",520122:"\u606f\u70fd\u53bf",520123:"\u4fee\u6587\u53bf",520151:"\u89c2\u5c71\u6e56\u533a",520181:"\u6e05\u9547\u5e02",520182:"\u5176\u5b83\u533a",520200:"\u516d\u76d8\u6c34\u5e02",520201:"\u949f\u5c71\u533a",520203:"\u516d\u679d\u7279\u533a",520221:"\u6c34\u57ce\u53bf",520222:"\u76d8\u53bf",520223:"\u5176\u5b83\u533a",520300:"\u9075\u4e49\u5e02",520302:"\u7ea2\u82b1\u5c97\u533a",520303:"\u6c47\u5ddd\u533a",520321:"\u9075\u4e49\u53bf",520322:"\u6850\u6893\u53bf",520323:"\u7ee5\u9633\u53bf",520324:"\u6b63\u5b89\u53bf",520325:"\u9053\u771f\u4ee1\u4f6c\u65cf\u82d7\u65cf\u81ea\u6cbb\u53bf",520326:"\u52a1\u5ddd\u4ee1\u4f6c\u65cf\u82d7\u65cf\u81ea\u6cbb\u53bf",520327:"\u51e4\u5188\u53bf",520328:"\u6e44\u6f6d\u53bf",520329:"\u4f59\u5e86\u53bf",520330:"\u4e60\u6c34\u53bf",520381:"\u8d64\u6c34\u5e02",520382:"\u4ec1\u6000\u5e02",520383:"\u5176\u5b83\u533a",520400:"\u5b89\u987a\u5e02",520402:"\u897f\u79c0\u533a",520421:"\u5e73\u575d\u53bf",520422:"\u666e\u5b9a\u53bf",520423:"\u9547\u5b81\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u53bf",520424:"\u5173\u5cad\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u53bf",520425:"\u7d2b\u4e91\u82d7\u65cf\u5e03\u4f9d\u65cf\u81ea\u6cbb\u53bf",520426:"\u5176\u5b83\u533a",522200:"\u94dc\u4ec1\u5e02",522201:"\u78a7\u6c5f\u533a",522222:"\u6c5f\u53e3\u53bf",522223:"\u7389\u5c4f\u4f97\u65cf\u81ea\u6cbb\u53bf",522224:"\u77f3\u9621\u53bf",522225:"\u601d\u5357\u53bf",522226:"\u5370\u6c5f\u571f\u5bb6\u65cf\u82d7\u65cf\u81ea\u6cbb\u53bf",522227:"\u5fb7\u6c5f\u53bf",522228:"\u6cbf\u6cb3\u571f\u5bb6\u65cf\u81ea\u6cbb\u53bf",522229:"\u677e\u6843\u82d7\u65cf\u81ea\u6cbb\u53bf",522230:"\u4e07\u5c71\u533a",522231:"\u5176\u5b83\u533a",522300:"\u9ed4\u897f\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde",522301:"\u5174\u4e49\u5e02",522322:"\u5174\u4ec1\u53bf",522323:"\u666e\u5b89\u53bf",522324:"\u6674\u9686\u53bf",522325:"\u8d1e\u4e30\u53bf",522326:"\u671b\u8c1f\u53bf",522327:"\u518c\u4ea8\u53bf",522328:"\u5b89\u9f99\u53bf",522329:"\u5176\u5b83\u533a",522400:"\u6bd5\u8282\u5e02",522401:"\u4e03\u661f\u5173\u533a",522422:"\u5927\u65b9\u53bf",522423:"\u9ed4\u897f\u53bf",522424:"\u91d1\u6c99\u53bf",522425:"\u7ec7\u91d1\u53bf",522426:"\u7eb3\u96cd\u53bf",522427:"\u5a01\u5b81\u5f5d\u65cf\u56de\u65cf\u82d7\u65cf\u81ea\u6cbb\u53bf",522428:"\u8d6b\u7ae0\u53bf",522429:"\u5176\u5b83\u533a",522600:"\u9ed4\u4e1c\u5357\u82d7\u65cf\u4f97\u65cf\u81ea\u6cbb\u5dde",522601:"\u51ef\u91cc\u5e02",522622:"\u9ec4\u5e73\u53bf",522623:"\u65bd\u79c9\u53bf",522624:"\u4e09\u7a57\u53bf",522625:"\u9547\u8fdc\u53bf",522626:"\u5c91\u5de9\u53bf",522627:"\u5929\u67f1\u53bf",522628:"\u9526\u5c4f\u53bf",522629:"\u5251\u6cb3\u53bf",522630:"\u53f0\u6c5f\u53bf",522631:"\u9ece\u5e73\u53bf",522632:"\u6995\u6c5f\u53bf",522633:"\u4ece\u6c5f\u53bf",522634:"\u96f7\u5c71\u53bf",522635:"\u9ebb\u6c5f\u53bf",522636:"\u4e39\u5be8\u53bf",522637:"\u5176\u5b83\u533a",522700:"\u9ed4\u5357\u5e03\u4f9d\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde",522701:"\u90fd\u5300\u5e02",522702:"\u798f\u6cc9\u5e02",522722:"\u8354\u6ce2\u53bf",522723:"\u8d35\u5b9a\u53bf",522725:"\u74ee\u5b89\u53bf",522726:"\u72ec\u5c71\u53bf",522727:"\u5e73\u5858\u53bf",522728:"\u7f57\u7538\u53bf",522729:"\u957f\u987a\u53bf",522730:"\u9f99\u91cc\u53bf",522731:"\u60e0\u6c34\u53bf",522732:"\u4e09\u90fd\u6c34\u65cf\u81ea\u6cbb\u53bf",522733:"\u5176\u5b83\u533a",53e4:"\u4e91\u5357\u7701",530100:"\u6606\u660e\u5e02",530102:"\u4e94\u534e\u533a",530103:"\u76d8\u9f99\u533a",530111:"\u5b98\u6e21\u533a",530112:"\u897f\u5c71\u533a",530113:"\u4e1c\u5ddd\u533a",530121:"\u5448\u8d21\u533a",530122:"\u664b\u5b81\u53bf",530124:"\u5bcc\u6c11\u53bf",530125:"\u5b9c\u826f\u53bf",530126:"\u77f3\u6797\u5f5d\u65cf\u81ea\u6cbb\u53bf",530127:"\u5d69\u660e\u53bf",530128:"\u7984\u529d\u5f5d\u65cf\u82d7\u65cf\u81ea\u6cbb\u53bf",530129:"\u5bfb\u7538\u56de\u65cf\u5f5d\u65cf\u81ea\u6cbb\u53bf",530181:"\u5b89\u5b81\u5e02",530182:"\u5176\u5b83\u533a",530300:"\u66f2\u9756\u5e02",530302:"\u9e92\u9e9f\u533a",530321:"\u9a6c\u9f99\u53bf",530322:"\u9646\u826f\u53bf",530323:"\u5e08\u5b97\u53bf",530324:"\u7f57\u5e73\u53bf",530325:"\u5bcc\u6e90\u53bf",530326:"\u4f1a\u6cfd\u53bf",530328:"\u6cbe\u76ca\u53bf",530381:"\u5ba3\u5a01\u5e02",530382:"\u5176\u5b83\u533a",530400:"\u7389\u6eaa\u5e02",530402:"\u7ea2\u5854\u533a",530421:"\u6c5f\u5ddd\u53bf",530422:"\u6f84\u6c5f\u53bf",530423:"\u901a\u6d77\u53bf",530424:"\u534e\u5b81\u53bf",530425:"\u6613\u95e8\u53bf",530426:"\u5ce8\u5c71\u5f5d\u65cf\u81ea\u6cbb\u53bf",530427:"\u65b0\u5e73\u5f5d\u65cf\u50a3\u65cf\u81ea\u6cbb\u53bf",530428:"\u5143\u6c5f\u54c8\u5c3c\u65cf\u5f5d\u65cf\u50a3\u65cf\u81ea\u6cbb\u53bf",530429:"\u5176\u5b83\u533a",530500:"\u4fdd\u5c71\u5e02",530502:"\u9686\u9633\u533a",530521:"\u65bd\u7538\u53bf",530522:"\u817e\u51b2\u53bf",530523:"\u9f99\u9675\u53bf",530524:"\u660c\u5b81\u53bf",530525:"\u5176\u5b83\u533a",530600:"\u662d\u901a\u5e02",530602:"\u662d\u9633\u533a",530621:"\u9c81\u7538\u53bf",530622:"\u5de7\u5bb6\u53bf",530623:"\u76d0\u6d25\u53bf",530624:"\u5927\u5173\u53bf",530625:"\u6c38\u5584\u53bf",530626:"\u7ee5\u6c5f\u53bf",530627:"\u9547\u96c4\u53bf",530628:"\u5f5d\u826f\u53bf",530629:"\u5a01\u4fe1\u53bf",530630:"\u6c34\u5bcc\u53bf",530631:"\u5176\u5b83\u533a",530700:"\u4e3d\u6c5f\u5e02",530702:"\u53e4\u57ce\u533a",530721:"\u7389\u9f99\u7eb3\u897f\u65cf\u81ea\u6cbb\u53bf",530722:"\u6c38\u80dc\u53bf",530723:"\u534e\u576a\u53bf",530724:"\u5b81\u8497\u5f5d\u65cf\u81ea\u6cbb\u53bf",530725:"\u5176\u5b83\u533a",530800:"\u666e\u6d31\u5e02",530802:"\u601d\u8305\u533a",530821:"\u5b81\u6d31\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u53bf",530822:"\u58a8\u6c5f\u54c8\u5c3c\u65cf\u81ea\u6cbb\u53bf",530823:"\u666f\u4e1c\u5f5d\u65cf\u81ea\u6cbb\u53bf",530824:"\u666f\u8c37\u50a3\u65cf\u5f5d\u65cf\u81ea\u6cbb\u53bf",530825:"\u9547\u6c85\u5f5d\u65cf\u54c8\u5c3c\u65cf\u62c9\u795c\u65cf\u81ea\u6cbb\u53bf",530826:"\u6c5f\u57ce\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u53bf",530827:"\u5b5f\u8fde\u50a3\u65cf\u62c9\u795c\u65cf\u4f64\u65cf\u81ea\u6cbb\u53bf",530828:"\u6f9c\u6ca7\u62c9\u795c\u65cf\u81ea\u6cbb\u53bf",530829:"\u897f\u76df\u4f64\u65cf\u81ea\u6cbb\u53bf",530830:"\u5176\u5b83\u533a",530900:"\u4e34\u6ca7\u5e02",530902:"\u4e34\u7fd4\u533a",530921:"\u51e4\u5e86\u53bf",530922:"\u4e91\u53bf",530923:"\u6c38\u5fb7\u53bf",530924:"\u9547\u5eb7\u53bf",530925:"\u53cc\u6c5f\u62c9\u795c\u65cf\u4f64\u65cf\u5e03\u6717\u65cf\u50a3\u65cf\u81ea\u6cbb\u53bf",530926:"\u803f\u9a6c\u50a3\u65cf\u4f64\u65cf\u81ea\u6cbb\u53bf",530927:"\u6ca7\u6e90\u4f64\u65cf\u81ea\u6cbb\u53bf",530928:"\u5176\u5b83\u533a",532300:"\u695a\u96c4\u5f5d\u65cf\u81ea\u6cbb\u5dde",532301:"\u695a\u96c4\u5e02",532322:"\u53cc\u67cf\u53bf",532323:"\u725f\u5b9a\u53bf",532324:"\u5357\u534e\u53bf",532325:"\u59da\u5b89\u53bf",532326:"\u5927\u59da\u53bf",532327:"\u6c38\u4ec1\u53bf",532328:"\u5143\u8c0b\u53bf",532329:"\u6b66\u5b9a\u53bf",532331:"\u7984\u4e30\u53bf",532332:"\u5176\u5b83\u533a",532500:"\u7ea2\u6cb3\u54c8\u5c3c\u65cf\u5f5d\u65cf\u81ea\u6cbb\u5dde",532501:"\u4e2a\u65e7\u5e02",532502:"\u5f00\u8fdc\u5e02",532522:"\u8499\u81ea\u5e02",532523:"\u5c4f\u8fb9\u82d7\u65cf\u81ea\u6cbb\u53bf",532524:"\u5efa\u6c34\u53bf",532525:"\u77f3\u5c4f\u53bf",532526:"\u5f25\u52d2\u5e02",532527:"\u6cf8\u897f\u53bf",532528:"\u5143\u9633\u53bf",532529:"\u7ea2\u6cb3\u53bf",532530:"\u91d1\u5e73\u82d7\u65cf\u7476\u65cf\u50a3\u65cf\u81ea\u6cbb\u53bf",532531:"\u7eff\u6625\u53bf",532532:"\u6cb3\u53e3\u7476\u65cf\u81ea\u6cbb\u53bf",532533:"\u5176\u5b83\u533a",532600:"\u6587\u5c71\u58ee\u65cf\u82d7\u65cf\u81ea\u6cbb\u5dde",532621:"\u6587\u5c71\u5e02",532622:"\u781a\u5c71\u53bf",532623:"\u897f\u7574\u53bf",532624:"\u9ebb\u6817\u5761\u53bf",532625:"\u9a6c\u5173\u53bf",532626:"\u4e18\u5317\u53bf",532627:"\u5e7f\u5357\u53bf",532628:"\u5bcc\u5b81\u53bf",532629:"\u5176\u5b83\u533a",532800:"\u897f\u53cc\u7248\u7eb3\u50a3\u65cf\u81ea\u6cbb\u5dde",532801:"\u666f\u6d2a\u5e02",532822:"\u52d0\u6d77\u53bf",532823:"\u52d0\u814a\u53bf",532824:"\u5176\u5b83\u533a",532900:"\u5927\u7406\u767d\u65cf\u81ea\u6cbb\u5dde",532901:"\u5927\u7406\u5e02",532922:"\u6f3e\u6fde\u5f5d\u65cf\u81ea\u6cbb\u53bf",532923:"\u7965\u4e91\u53bf",532924:"\u5bbe\u5ddd\u53bf",532925:"\u5f25\u6e21\u53bf",532926:"\u5357\u6da7\u5f5d\u65cf\u81ea\u6cbb\u53bf",532927:"\u5dcd\u5c71\u5f5d\u65cf\u56de\u65cf\u81ea\u6cbb\u53bf",532928:"\u6c38\u5e73\u53bf",532929:"\u4e91\u9f99\u53bf",532930:"\u6d31\u6e90\u53bf",532931:"\u5251\u5ddd\u53bf",532932:"\u9e64\u5e86\u53bf",532933:"\u5176\u5b83\u533a",533100:"\u5fb7\u5b8f\u50a3\u65cf\u666f\u9887\u65cf\u81ea\u6cbb\u5dde",533102:"\u745e\u4e3d\u5e02",533103:"\u8292\u5e02",533122:"\u6881\u6cb3\u53bf",533123:"\u76c8\u6c5f\u53bf",533124:"\u9647\u5ddd\u53bf",533125:"\u5176\u5b83\u533a",533300:"\u6012\u6c5f\u5088\u50f3\u65cf\u81ea\u6cbb\u5dde",533321:"\u6cf8\u6c34\u53bf",533323:"\u798f\u8d21\u53bf",533324:"\u8d21\u5c71\u72ec\u9f99\u65cf\u6012\u65cf\u81ea\u6cbb\u53bf",533325:"\u5170\u576a\u767d\u65cf\u666e\u7c73\u65cf\u81ea\u6cbb\u53bf",533326:"\u5176\u5b83\u533a",533400:"\u8fea\u5e86\u85cf\u65cf\u81ea\u6cbb\u5dde",533421:"\u9999\u683c\u91cc\u62c9\u53bf",533422:"\u5fb7\u94a6\u53bf",533423:"\u7ef4\u897f\u5088\u50f3\u65cf\u81ea\u6cbb\u53bf",533424:"\u5176\u5b83\u533a",54e4:"\u897f\u85cf\u81ea\u6cbb\u533a",540100:"\u62c9\u8428\u5e02",540102:"\u57ce\u5173\u533a",540121:"\u6797\u5468\u53bf",540122:"\u5f53\u96c4\u53bf",540123:"\u5c3c\u6728\u53bf",540124:"\u66f2\u6c34\u53bf",540125:"\u5806\u9f99\u5fb7\u5e86\u53bf",540126:"\u8fbe\u5b5c\u53bf",540127:"\u58a8\u7af9\u5de5\u5361\u53bf",540128:"\u5176\u5b83\u533a",542100:"\u660c\u90fd\u5730\u533a",542121:"\u660c\u90fd\u53bf",542122:"\u6c5f\u8fbe\u53bf",542123:"\u8d21\u89c9\u53bf",542124:"\u7c7b\u4e4c\u9f50\u53bf",542125:"\u4e01\u9752\u53bf",542126:"\u5bdf\u96c5\u53bf",542127:"\u516b\u5bbf\u53bf",542128:"\u5de6\u8d21\u53bf",542129:"\u8292\u5eb7\u53bf",542132:"\u6d1b\u9686\u53bf",542133:"\u8fb9\u575d\u53bf",542134:"\u5176\u5b83\u533a",542200:"\u5c71\u5357\u5730\u533a",542221:"\u4e43\u4e1c\u53bf",542222:"\u624e\u56ca\u53bf",542223:"\u8d21\u560e\u53bf",542224:"\u6851\u65e5\u53bf",542225:"\u743c\u7ed3\u53bf",542226:"\u66f2\u677e\u53bf",542227:"\u63aa\u7f8e\u53bf",542228:"\u6d1b\u624e\u53bf",542229:"\u52a0\u67e5\u53bf",542231:"\u9686\u5b50\u53bf",542232:"\u9519\u90a3\u53bf",542233:"\u6d6a\u5361\u5b50\u53bf",542234:"\u5176\u5b83\u533a",542300:"\u65e5\u5580\u5219\u5730\u533a",542301:"\u65e5\u5580\u5219\u5e02",542322:"\u5357\u6728\u6797\u53bf",542323:"\u6c5f\u5b5c\u53bf",542324:"\u5b9a\u65e5\u53bf",542325:"\u8428\u8fe6\u53bf",542326:"\u62c9\u5b5c\u53bf",542327:"\u6602\u4ec1\u53bf",542328:"\u8c22\u901a\u95e8\u53bf",542329:"\u767d\u6717\u53bf",542330:"\u4ec1\u5e03\u53bf",542331:"\u5eb7\u9a6c\u53bf",542332:"\u5b9a\u7ed3\u53bf",542333:"\u4ef2\u5df4\u53bf",542334:"\u4e9a\u4e1c\u53bf",542335:"\u5409\u9686\u53bf",542336:"\u8042\u62c9\u6728\u53bf",542337:"\u8428\u560e\u53bf",542338:"\u5c97\u5df4\u53bf",542339:"\u5176\u5b83\u533a",542400:"\u90a3\u66f2\u5730\u533a",542421:"\u90a3\u66f2\u53bf",542422:"\u5609\u9ece\u53bf",542423:"\u6bd4\u5982\u53bf",542424:"\u8042\u8363\u53bf",542425:"\u5b89\u591a\u53bf",542426:"\u7533\u624e\u53bf",542427:"\u7d22\u53bf",542428:"\u73ed\u6208\u53bf",542429:"\u5df4\u9752\u53bf",542430:"\u5c3c\u739b\u53bf",542431:"\u5176\u5b83\u533a",542432:"\u53cc\u6e56\u53bf",542500:"\u963f\u91cc\u5730\u533a",542521:"\u666e\u5170\u53bf",542522:"\u672d\u8fbe\u53bf",542523:"\u5676\u5c14\u53bf",542524:"\u65e5\u571f\u53bf",542525:"\u9769\u5409\u53bf",542526:"\u6539\u5219\u53bf",542527:"\u63aa\u52e4\u53bf",542528:"\u5176\u5b83\u533a",542600:"\u6797\u829d\u5730\u533a",542621:"\u6797\u829d\u53bf",542622:"\u5de5\u5e03\u6c5f\u8fbe\u53bf",542623:"\u7c73\u6797\u53bf",542624:"\u58a8\u8131\u53bf",542625:"\u6ce2\u5bc6\u53bf",542626:"\u5bdf\u9685\u53bf",542627:"\u6717\u53bf",542628:"\u5176\u5b83\u533a",61e4:"\u9655\u897f\u7701",610100:"\u897f\u5b89\u5e02",610102:"\u65b0\u57ce\u533a",610103:"\u7891\u6797\u533a",610104:"\u83b2\u6e56\u533a",610111:"\u705e\u6865\u533a",610112:"\u672a\u592e\u533a",610113:"\u96c1\u5854\u533a",610114:"\u960e\u826f\u533a",610115:"\u4e34\u6f7c\u533a",610116:"\u957f\u5b89\u533a",610122:"\u84dd\u7530\u53bf",610124:"\u5468\u81f3\u53bf",610125:"\u6237\u53bf",610126:"\u9ad8\u9675\u53bf",610127:"\u5176\u5b83\u533a",610200:"\u94dc\u5ddd\u5e02",610202:"\u738b\u76ca\u533a",610203:"\u5370\u53f0\u533a",610204:"\u8000\u5dde\u533a",610222:"\u5b9c\u541b\u53bf",610223:"\u5176\u5b83\u533a",610300:"\u5b9d\u9e21\u5e02",610302:"\u6e2d\u6ee8\u533a",610303:"\u91d1\u53f0\u533a",610304:"\u9648\u4ed3\u533a",610322:"\u51e4\u7fd4\u53bf",610323:"\u5c90\u5c71\u53bf",610324:"\u6276\u98ce\u53bf",610326:"\u7709\u53bf",610327:"\u9647\u53bf",610328:"\u5343\u9633\u53bf",610329:"\u9e9f\u6e38\u53bf",610330:"\u51e4\u53bf",610331:"\u592a\u767d\u53bf",610332:"\u5176\u5b83\u533a",610400:"\u54b8\u9633\u5e02",610402:"\u79e6\u90fd\u533a",610403:"\u6768\u9675\u533a",610404:"\u6e2d\u57ce\u533a",610422:"\u4e09\u539f\u53bf",610423:"\u6cfe\u9633\u53bf",610424:"\u4e7e\u53bf",610425:"\u793c\u6cc9\u53bf",610426:"\u6c38\u5bff\u53bf",610427:"\u5f6c\u53bf",610428:"\u957f\u6b66\u53bf",610429:"\u65ec\u9091\u53bf",610430:"\u6df3\u5316\u53bf",610431:"\u6b66\u529f\u53bf",610481:"\u5174\u5e73\u5e02",610482:"\u5176\u5b83\u533a",610500:"\u6e2d\u5357\u5e02",610502:"\u4e34\u6e2d\u533a",610521:"\u534e\u53bf",610522:"\u6f7c\u5173\u53bf",610523:"\u5927\u8354\u53bf",610524:"\u5408\u9633\u53bf",610525:"\u6f84\u57ce\u53bf",610526:"\u84b2\u57ce\u53bf",610527:"\u767d\u6c34\u53bf",610528:"\u5bcc\u5e73\u53bf",610581:"\u97e9\u57ce\u5e02",610582:"\u534e\u9634\u5e02",610583:"\u5176\u5b83\u533a",610600:"\u5ef6\u5b89\u5e02",610602:"\u5b9d\u5854\u533a",610621:"\u5ef6\u957f\u53bf",610622:"\u5ef6\u5ddd\u53bf",610623:"\u5b50\u957f\u53bf",610624:"\u5b89\u585e\u53bf",610625:"\u5fd7\u4e39\u53bf",610626:"\u5434\u8d77\u53bf",610627:"\u7518\u6cc9\u53bf",610628:"\u5bcc\u53bf",610629:"\u6d1b\u5ddd\u53bf",610630:"\u5b9c\u5ddd\u53bf",610631:"\u9ec4\u9f99\u53bf",610632:"\u9ec4\u9675\u53bf",610633:"\u5176\u5b83\u533a",610700:"\u6c49\u4e2d\u5e02",610702:"\u6c49\u53f0\u533a",610721:"\u5357\u90d1\u53bf",610722:"\u57ce\u56fa\u53bf",610723:"\u6d0b\u53bf",610724:"\u897f\u4e61\u53bf",610725:"\u52c9\u53bf",610726:"\u5b81\u5f3a\u53bf",610727:"\u7565\u9633\u53bf",610728:"\u9547\u5df4\u53bf",610729:"\u7559\u575d\u53bf",610730:"\u4f5b\u576a\u53bf",610731:"\u5176\u5b83\u533a",610800:"\u6986\u6797\u5e02",610802:"\u6986\u9633\u533a",610821:"\u795e\u6728\u53bf",610822:"\u5e9c\u8c37\u53bf",610823:"\u6a2a\u5c71\u53bf",610824:"\u9756\u8fb9\u53bf",610825:"\u5b9a\u8fb9\u53bf",610826:"\u7ee5\u5fb7\u53bf",610827:"\u7c73\u8102\u53bf",610828:"\u4f73\u53bf",610829:"\u5434\u5821\u53bf",610830:"\u6e05\u6da7\u53bf",610831:"\u5b50\u6d32\u53bf",610832:"\u5176\u5b83\u533a",610900:"\u5b89\u5eb7\u5e02",610902:"\u6c49\u6ee8\u533a",610921:"\u6c49\u9634\u53bf",610922:"\u77f3\u6cc9\u53bf",610923:"\u5b81\u9655\u53bf",610924:"\u7d2b\u9633\u53bf",610925:"\u5c9a\u768b\u53bf",610926:"\u5e73\u5229\u53bf",610927:"\u9547\u576a\u53bf",610928:"\u65ec\u9633\u53bf",610929:"\u767d\u6cb3\u53bf",610930:"\u5176\u5b83\u533a",611e3:"\u5546\u6d1b\u5e02",611002:"\u5546\u5dde\u533a",611021:"\u6d1b\u5357\u53bf",611022:"\u4e39\u51e4\u53bf",611023:"\u5546\u5357\u53bf",611024:"\u5c71\u9633\u53bf",611025:"\u9547\u5b89\u53bf",611026:"\u67de\u6c34\u53bf",611027:"\u5176\u5b83\u533a",62e4:"\u7518\u8083\u7701",620100:"\u5170\u5dde\u5e02",620102:"\u57ce\u5173\u533a",620103:"\u4e03\u91cc\u6cb3\u533a",620104:"\u897f\u56fa\u533a",620105:"\u5b89\u5b81\u533a",620111:"\u7ea2\u53e4\u533a",620121:"\u6c38\u767b\u53bf",620122:"\u768b\u5170\u53bf",620123:"\u6986\u4e2d\u53bf",620124:"\u5176\u5b83\u533a",620200:"\u5609\u5cea\u5173\u5e02",620300:"\u91d1\u660c\u5e02",620302:"\u91d1\u5ddd\u533a",620321:"\u6c38\u660c\u53bf",620322:"\u5176\u5b83\u533a",620400:"\u767d\u94f6\u5e02",620402:"\u767d\u94f6\u533a",620403:"\u5e73\u5ddd\u533a",620421:"\u9756\u8fdc\u53bf",620422:"\u4f1a\u5b81\u53bf",620423:"\u666f\u6cf0\u53bf",620424:"\u5176\u5b83\u533a",620500:"\u5929\u6c34\u5e02",620502:"\u79e6\u5dde\u533a",620503:"\u9ea6\u79ef\u533a",620521:"\u6e05\u6c34\u53bf",620522:"\u79e6\u5b89\u53bf",620523:"\u7518\u8c37\u53bf",620524:"\u6b66\u5c71\u53bf",620525:"\u5f20\u5bb6\u5ddd\u56de\u65cf\u81ea\u6cbb\u53bf",620526:"\u5176\u5b83\u533a",620600:"\u6b66\u5a01\u5e02",620602:"\u51c9\u5dde\u533a",620621:"\u6c11\u52e4\u53bf",620622:"\u53e4\u6d6a\u53bf",620623:"\u5929\u795d\u85cf\u65cf\u81ea\u6cbb\u53bf",620624:"\u5176\u5b83\u533a",620700:"\u5f20\u6396\u5e02",620702:"\u7518\u5dde\u533a",620721:"\u8083\u5357\u88d5\u56fa\u65cf\u81ea\u6cbb\u53bf",620722:"\u6c11\u4e50\u53bf",620723:"\u4e34\u6cfd\u53bf",620724:"\u9ad8\u53f0\u53bf",620725:"\u5c71\u4e39\u53bf",620726:"\u5176\u5b83\u533a",620800:"\u5e73\u51c9\u5e02",620802:"\u5d06\u5cd2\u533a",620821:"\u6cfe\u5ddd\u53bf",620822:"\u7075\u53f0\u53bf",620823:"\u5d07\u4fe1\u53bf",620824:"\u534e\u4ead\u53bf",620825:"\u5e84\u6d6a\u53bf",620826:"\u9759\u5b81\u53bf",620827:"\u5176\u5b83\u533a",620900:"\u9152\u6cc9\u5e02",620902:"\u8083\u5dde\u533a",620921:"\u91d1\u5854\u53bf",620922:"\u74dc\u5dde\u53bf",620923:"\u8083\u5317\u8499\u53e4\u65cf\u81ea\u6cbb\u53bf",620924:"\u963f\u514b\u585e\u54c8\u8428\u514b\u65cf\u81ea\u6cbb\u53bf",620981:"\u7389\u95e8\u5e02",620982:"\u6566\u714c\u5e02",620983:"\u5176\u5b83\u533a",621e3:"\u5e86\u9633\u5e02",621002:"\u897f\u5cf0\u533a",621021:"\u5e86\u57ce\u53bf",621022:"\u73af\u53bf",621023:"\u534e\u6c60\u53bf",621024:"\u5408\u6c34\u53bf",621025:"\u6b63\u5b81\u53bf",621026:"\u5b81\u53bf",621027:"\u9547\u539f\u53bf",621028:"\u5176\u5b83\u533a",621100:"\u5b9a\u897f\u5e02",621102:"\u5b89\u5b9a\u533a",621121:"\u901a\u6e2d\u53bf",621122:"\u9647\u897f\u53bf",621123:"\u6e2d\u6e90\u53bf",621124:"\u4e34\u6d2e\u53bf",621125:"\u6f33\u53bf",621126:"\u5cb7\u53bf",621127:"\u5176\u5b83\u533a",621200:"\u9647\u5357\u5e02",621202:"\u6b66\u90fd\u533a",621221:"\u6210\u53bf",621222:"\u6587\u53bf",621223:"\u5b95\u660c\u53bf",621224:"\u5eb7\u53bf",621225:"\u897f\u548c\u53bf",621226:"\u793c\u53bf",621227:"\u5fbd\u53bf",621228:"\u4e24\u5f53\u53bf",621229:"\u5176\u5b83\u533a",622900:"\u4e34\u590f\u56de\u65cf\u81ea\u6cbb\u5dde",622901:"\u4e34\u590f\u5e02",622921:"\u4e34\u590f\u53bf",622922:"\u5eb7\u4e50\u53bf",622923:"\u6c38\u9756\u53bf",622924:"\u5e7f\u6cb3\u53bf",622925:"\u548c\u653f\u53bf",622926:"\u4e1c\u4e61\u65cf\u81ea\u6cbb\u53bf",622927:"\u79ef\u77f3\u5c71\u4fdd\u5b89\u65cf\u4e1c\u4e61\u65cf\u6492\u62c9\u65cf\u81ea\u6cbb\u53bf",622928:"\u5176\u5b83\u533a",623e3:"\u7518\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde",623001:"\u5408\u4f5c\u5e02",623021:"\u4e34\u6f6d\u53bf",623022:"\u5353\u5c3c\u53bf",623023:"\u821f\u66f2\u53bf",623024:"\u8fed\u90e8\u53bf",623025:"\u739b\u66f2\u53bf",623026:"\u788c\u66f2\u53bf",623027:"\u590f\u6cb3\u53bf",623028:"\u5176\u5b83\u533a",63e4:"\u9752\u6d77\u7701",630100:"\u897f\u5b81\u5e02",630102:"\u57ce\u4e1c\u533a",630103:"\u57ce\u4e2d\u533a",630104:"\u57ce\u897f\u533a",630105:"\u57ce\u5317\u533a",630121:"\u5927\u901a\u56de\u65cf\u571f\u65cf\u81ea\u6cbb\u53bf",630122:"\u6e5f\u4e2d\u53bf",630123:"\u6e5f\u6e90\u53bf",630124:"\u5176\u5b83\u533a",632100:"\u6d77\u4e1c\u5e02",632121:"\u5e73\u5b89\u53bf",632122:"\u6c11\u548c\u56de\u65cf\u571f\u65cf\u81ea\u6cbb\u53bf",632123:"\u4e50\u90fd\u533a",632126:"\u4e92\u52a9\u571f\u65cf\u81ea\u6cbb\u53bf",632127:"\u5316\u9686\u56de\u65cf\u81ea\u6cbb\u53bf",632128:"\u5faa\u5316\u6492\u62c9\u65cf\u81ea\u6cbb\u53bf",632129:"\u5176\u5b83\u533a",632200:"\u6d77\u5317\u85cf\u65cf\u81ea\u6cbb\u5dde",632221:"\u95e8\u6e90\u56de\u65cf\u81ea\u6cbb\u53bf",632222:"\u7941\u8fde\u53bf",632223:"\u6d77\u664f\u53bf",632224:"\u521a\u5bdf\u53bf",632225:"\u5176\u5b83\u533a",632300:"\u9ec4\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde",632321:"\u540c\u4ec1\u53bf",632322:"\u5c16\u624e\u53bf",632323:"\u6cfd\u5e93\u53bf",632324:"\u6cb3\u5357\u8499\u53e4\u65cf\u81ea\u6cbb\u53bf",632325:"\u5176\u5b83\u533a",632500:"\u6d77\u5357\u85cf\u65cf\u81ea\u6cbb\u5dde",632521:"\u5171\u548c\u53bf",632522:"\u540c\u5fb7\u53bf",632523:"\u8d35\u5fb7\u53bf",632524:"\u5174\u6d77\u53bf",632525:"\u8d35\u5357\u53bf",632526:"\u5176\u5b83\u533a",632600:"\u679c\u6d1b\u85cf\u65cf\u81ea\u6cbb\u5dde",632621:"\u739b\u6c81\u53bf",632622:"\u73ed\u739b\u53bf",632623:"\u7518\u5fb7\u53bf",632624:"\u8fbe\u65e5\u53bf",632625:"\u4e45\u6cbb\u53bf",632626:"\u739b\u591a\u53bf",632627:"\u5176\u5b83\u533a",632700:"\u7389\u6811\u85cf\u65cf\u81ea\u6cbb\u5dde",632721:"\u7389\u6811\u5e02",632722:"\u6742\u591a\u53bf",632723:"\u79f0\u591a\u53bf",632724:"\u6cbb\u591a\u53bf",632725:"\u56ca\u8c26\u53bf",632726:"\u66f2\u9ebb\u83b1\u53bf",632727:"\u5176\u5b83\u533a",632800:"\u6d77\u897f\u8499\u53e4\u65cf\u85cf\u65cf\u81ea\u6cbb\u5dde",632801:"\u683c\u5c14\u6728\u5e02",632802:"\u5fb7\u4ee4\u54c8\u5e02",632821:"\u4e4c\u5170\u53bf",632822:"\u90fd\u5170\u53bf",632823:"\u5929\u5cfb\u53bf",632824:"\u5176\u5b83\u533a",64e4:"\u5b81\u590f\u56de\u65cf\u81ea\u6cbb\u533a",640100:"\u94f6\u5ddd\u5e02",640104:"\u5174\u5e86\u533a",640105:"\u897f\u590f\u533a",640106:"\u91d1\u51e4\u533a",640121:"\u6c38\u5b81\u53bf",640122:"\u8d3a\u5170\u53bf",640181:"\u7075\u6b66\u5e02",640182:"\u5176\u5b83\u533a",640200:"\u77f3\u5634\u5c71\u5e02",640202:"\u5927\u6b66\u53e3\u533a",640205:"\u60e0\u519c\u533a",640221:"\u5e73\u7f57\u53bf",640222:"\u5176\u5b83\u533a",640300:"\u5434\u5fe0\u5e02",640302:"\u5229\u901a\u533a",640303:"\u7ea2\u5bfa\u5821\u533a",640323:"\u76d0\u6c60\u53bf",640324:"\u540c\u5fc3\u53bf",640381:"\u9752\u94dc\u5ce1\u5e02",640382:"\u5176\u5b83\u533a",640400:"\u56fa\u539f\u5e02",640402:"\u539f\u5dde\u533a",640422:"\u897f\u5409\u53bf",640423:"\u9686\u5fb7\u53bf",640424:"\u6cfe\u6e90\u53bf",640425:"\u5f6d\u9633\u53bf",640426:"\u5176\u5b83\u533a",640500:"\u4e2d\u536b\u5e02",640502:"\u6c99\u5761\u5934\u533a",640521:"\u4e2d\u5b81\u53bf",640522:"\u6d77\u539f\u53bf",640523:"\u5176\u5b83\u533a",65e4:"\u65b0\u7586\u7ef4\u543e\u5c14\u81ea\u6cbb\u533a",650100:"\u4e4c\u9c81\u6728\u9f50\u5e02",650102:"\u5929\u5c71\u533a",650103:"\u6c99\u4f9d\u5df4\u514b\u533a",650104:"\u65b0\u5e02\u533a",650105:"\u6c34\u78e8\u6c9f\u533a",650106:"\u5934\u5c6f\u6cb3\u533a",650107:"\u8fbe\u5742\u57ce\u533a",650109:"\u7c73\u4e1c\u533a",650121:"\u4e4c\u9c81\u6728\u9f50\u53bf",650122:"\u5176\u5b83\u533a",650200:"\u514b\u62c9\u739b\u4f9d\u5e02",650202:"\u72ec\u5c71\u5b50\u533a",650203:"\u514b\u62c9\u739b\u4f9d\u533a",650204:"\u767d\u78b1\u6ee9\u533a",650205:"\u4e4c\u5c14\u79be\u533a",650206:"\u5176\u5b83\u533a",652100:"\u5410\u9c81\u756a\u5730\u533a",652101:"\u5410\u9c81\u756a\u5e02",652122:"\u912f\u5584\u53bf",652123:"\u6258\u514b\u900a\u53bf",652124:"\u5176\u5b83\u533a",652200:"\u54c8\u5bc6\u5730\u533a",652201:"\u54c8\u5bc6\u5e02",652222:"\u5df4\u91cc\u5764\u54c8\u8428\u514b\u81ea\u6cbb\u53bf",652223:"\u4f0a\u543e\u53bf",652224:"\u5176\u5b83\u533a",652300:"\u660c\u5409\u56de\u65cf\u81ea\u6cbb\u5dde",652301:"\u660c\u5409\u5e02",652302:"\u961c\u5eb7\u5e02",652323:"\u547c\u56fe\u58c1\u53bf",652324:"\u739b\u7eb3\u65af\u53bf",652325:"\u5947\u53f0\u53bf",652327:"\u5409\u6728\u8428\u5c14\u53bf",652328:"\u6728\u5792\u54c8\u8428\u514b\u81ea\u6cbb\u53bf",652329:"\u5176\u5b83\u533a",652700:"\u535a\u5c14\u5854\u62c9\u8499\u53e4\u81ea\u6cbb\u5dde",652701:"\u535a\u4e50\u5e02",652702:"\u963f\u62c9\u5c71\u53e3\u5e02",652722:"\u7cbe\u6cb3\u53bf",652723:"\u6e29\u6cc9\u53bf",652724:"\u5176\u5b83\u533a",652800:"\u5df4\u97f3\u90ed\u695e\u8499\u53e4\u81ea\u6cbb\u5dde",652801:"\u5e93\u5c14\u52d2\u5e02",652822:"\u8f6e\u53f0\u53bf",652823:"\u5c09\u7281\u53bf",652824:"\u82e5\u7f8c\u53bf",652825:"\u4e14\u672b\u53bf",652826:"\u7109\u8006\u56de\u65cf\u81ea\u6cbb\u53bf",652827:"\u548c\u9759\u53bf",652828:"\u548c\u7855\u53bf",652829:"\u535a\u6e56\u53bf",652830:"\u5176\u5b83\u533a",652900:"\u963f\u514b\u82cf\u5730\u533a",652901:"\u963f\u514b\u82cf\u5e02",652922:"\u6e29\u5bbf\u53bf",652923:"\u5e93\u8f66\u53bf",652924:"\u6c99\u96c5\u53bf",652925:"\u65b0\u548c\u53bf",652926:"\u62dc\u57ce\u53bf",652927:"\u4e4c\u4ec0\u53bf",652928:"\u963f\u74e6\u63d0\u53bf",652929:"\u67ef\u576a\u53bf",652930:"\u5176\u5b83\u533a",653e3:"\u514b\u5b5c\u52d2\u82cf\u67ef\u5c14\u514b\u5b5c\u81ea\u6cbb\u5dde",653001:"\u963f\u56fe\u4ec0\u5e02",653022:"\u963f\u514b\u9676\u53bf",653023:"\u963f\u5408\u5947\u53bf",653024:"\u4e4c\u6070\u53bf",653025:"\u5176\u5b83\u533a",653100:"\u5580\u4ec0\u5730\u533a",653101:"\u5580\u4ec0\u5e02",653121:"\u758f\u9644\u53bf",653122:"\u758f\u52d2\u53bf",653123:"\u82f1\u5409\u6c99\u53bf",653124:"\u6cfd\u666e\u53bf",653125:"\u838e\u8f66\u53bf",653126:"\u53f6\u57ce\u53bf",653127:"\u9ea6\u76d6\u63d0\u53bf",653128:"\u5cb3\u666e\u6e56\u53bf",653129:"\u4f3d\u5e08\u53bf",653130:"\u5df4\u695a\u53bf",653131:"\u5854\u4ec0\u5e93\u5c14\u5e72\u5854\u5409\u514b\u81ea\u6cbb\u53bf",653132:"\u5176\u5b83\u533a",653200:"\u548c\u7530\u5730\u533a",653201:"\u548c\u7530\u5e02",653221:"\u548c\u7530\u53bf",653222:"\u58a8\u7389\u53bf",653223:"\u76ae\u5c71\u53bf",653224:"\u6d1b\u6d66\u53bf",653225:"\u7b56\u52d2\u53bf",653226:"\u4e8e\u7530\u53bf",653227:"\u6c11\u4e30\u53bf",653228:"\u5176\u5b83\u533a",654e3:"\u4f0a\u7281\u54c8\u8428\u514b\u81ea\u6cbb\u5dde",654002:"\u4f0a\u5b81\u5e02",654003:"\u594e\u5c6f\u5e02",654021:"\u4f0a\u5b81\u53bf",654022:"\u5bdf\u5e03\u67e5\u5c14\u9521\u4f2f\u81ea\u6cbb\u53bf",654023:"\u970d\u57ce\u53bf",654024:"\u5de9\u7559\u53bf",654025:"\u65b0\u6e90\u53bf",654026:"\u662d\u82cf\u53bf",654027:"\u7279\u514b\u65af\u53bf",654028:"\u5c3c\u52d2\u514b\u53bf",654029:"\u5176\u5b83\u533a",654200:"\u5854\u57ce\u5730\u533a",654201:"\u5854\u57ce\u5e02",654202:"\u4e4c\u82cf\u5e02",654221:"\u989d\u654f\u53bf",654223:"\u6c99\u6e7e\u53bf",654224:"\u6258\u91cc\u53bf",654225:"\u88d5\u6c11\u53bf",654226:"\u548c\u5e03\u514b\u8d5b\u5c14\u8499\u53e4\u81ea\u6cbb\u53bf",654227:"\u5176\u5b83\u533a",654300:"\u963f\u52d2\u6cf0\u5730\u533a",654301:"\u963f\u52d2\u6cf0\u5e02",654321:"\u5e03\u5c14\u6d25\u53bf",654322:"\u5bcc\u8574\u53bf",654323:"\u798f\u6d77\u53bf",654324:"\u54c8\u5df4\u6cb3\u53bf",654325:"\u9752\u6cb3\u53bf",654326:"\u5409\u6728\u4e43\u53bf",654327:"\u5176\u5b83\u533a",659001:"\u77f3\u6cb3\u5b50\u5e02",659002:"\u963f\u62c9\u5c14\u5e02",659003:"\u56fe\u6728\u8212\u514b\u5e02",659004:"\u4e94\u5bb6\u6e20\u5e02",71e4:"\u53f0\u6e7e",710100:"\u53f0\u5317\u5e02",710101:"\u4e2d\u6b63\u533a",710102:"\u5927\u540c\u533a",710103:"\u4e2d\u5c71\u533a",710104:"\u677e\u5c71\u533a",710105:"\u5927\u5b89\u533a",710106:"\u4e07\u534e\u533a",710107:"\u4fe1\u4e49\u533a",710108:"\u58eb\u6797\u533a",710109:"\u5317\u6295\u533a",710110:"\u5185\u6e56\u533a",710111:"\u5357\u6e2f\u533a",710112:"\u6587\u5c71\u533a",710113:"\u5176\u5b83\u533a",710200:"\u9ad8\u96c4\u5e02",710201:"\u65b0\u5174\u533a",710202:"\u524d\u91d1\u533a",710203:"\u82a9\u96c5\u533a",710204:"\u76d0\u57d5\u533a",710205:"\u9f13\u5c71\u533a",710206:"\u65d7\u6d25\u533a",710207:"\u524d\u9547\u533a",710208:"\u4e09\u6c11\u533a",710209:"\u5de6\u8425\u533a",710210:"\u6960\u6893\u533a",710211:"\u5c0f\u6e2f\u533a",710212:"\u5176\u5b83\u533a",710241:"\u82d3\u96c5\u533a",710242:"\u4ec1\u6b66\u533a",710243:"\u5927\u793e\u533a",710244:"\u5188\u5c71\u533a",710245:"\u8def\u7af9\u533a",710246:"\u963f\u83b2\u533a",710247:"\u7530\u5bee\u533a",710248:"\u71d5\u5de2\u533a",710249:"\u6865\u5934\u533a",710250:"\u6893\u5b98\u533a",710251:"\u5f25\u9640\u533a",710252:"\u6c38\u5b89\u533a",710253:"\u6e56\u5185\u533a",710254:"\u51e4\u5c71\u533a",710255:"\u5927\u5bee\u533a",710256:"\u6797\u56ed\u533a",710257:"\u9e1f\u677e\u533a",710258:"\u5927\u6811\u533a",710259:"\u65d7\u5c71\u533a",710260:"\u7f8e\u6d53\u533a",710261:"\u516d\u9f9f\u533a",710262:"\u5185\u95e8\u533a",710263:"\u6749\u6797\u533a",710264:"\u7532\u4ed9\u533a",710265:"\u6843\u6e90\u533a",710266:"\u90a3\u739b\u590f\u533a",710267:"\u8302\u6797\u533a",710268:"\u8304\u8423\u533a",710300:"\u53f0\u5357\u5e02",710301:"\u4e2d\u897f\u533a",710302:"\u4e1c\u533a",710303:"\u5357\u533a",710304:"\u5317\u533a",710305:"\u5b89\u5e73\u533a",710306:"\u5b89\u5357\u533a",710307:"\u5176\u5b83\u533a",710339:"\u6c38\u5eb7\u533a",710340:"\u5f52\u4ec1\u533a",710341:"\u65b0\u5316\u533a",710342:"\u5de6\u9547\u533a",710343:"\u7389\u4e95\u533a",710344:"\u6960\u897f\u533a",710345:"\u5357\u5316\u533a",710346:"\u4ec1\u5fb7\u533a",710347:"\u5173\u5e99\u533a",710348:"\u9f99\u5d0e\u533a",710349:"\u5b98\u7530\u533a",710350:"\u9ebb\u8c46\u533a",710351:"\u4f73\u91cc\u533a",710352:"\u897f\u6e2f\u533a",710353:"\u4e03\u80a1\u533a",710354:"\u5c06\u519b\u533a",710355:"\u5b66\u7532\u533a",710356:"\u5317\u95e8\u533a",710357:"\u65b0\u8425\u533a",710358:"\u540e\u58c1\u533a",710359:"\u767d\u6cb3\u533a",710360:"\u4e1c\u5c71\u533a",710361:"\u516d\u7532\u533a",710362:"\u4e0b\u8425\u533a",710363:"\u67f3\u8425\u533a",710364:"\u76d0\u6c34\u533a",710365:"\u5584\u5316\u533a",710366:"\u5927\u5185\u533a",710367:"\u5c71\u4e0a\u533a",710368:"\u65b0\u5e02\u533a",710369:"\u5b89\u5b9a\u533a",710400:"\u53f0\u4e2d\u5e02",710401:"\u4e2d\u533a",710402:"\u4e1c\u533a",710403:"\u5357\u533a",710404:"\u897f\u533a",710405:"\u5317\u533a",710406:"\u5317\u5c6f\u533a",710407:"\u897f\u5c6f\u533a",710408:"\u5357\u5c6f\u533a",710409:"\u5176\u5b83\u533a",710431:"\u592a\u5e73\u533a",710432:"\u5927\u91cc\u533a",710433:"\u96fe\u5cf0\u533a",710434:"\u4e4c\u65e5\u533a",710435:"\u4e30\u539f\u533a",710436:"\u540e\u91cc\u533a",710437:"\u77f3\u5188\u533a",710438:"\u4e1c\u52bf\u533a",710439:"\u548c\u5e73\u533a",710440:"\u65b0\u793e\u533a",710441:"\u6f6d\u5b50\u533a",710442:"\u5927\u96c5\u533a",710443:"\u795e\u5188\u533a",710444:"\u5927\u809a\u533a",710445:"\u6c99\u9e7f\u533a",710446:"\u9f99\u4e95\u533a",710447:"\u68a7\u6816\u533a",710448:"\u6e05\u6c34\u533a",710449:"\u5927\u7532\u533a",710450:"\u5916\u57d4\u533a",710451:"\u5927\u5b89\u533a",710500:"\u91d1\u95e8\u53bf",710507:"\u91d1\u6c99\u9547",710508:"\u91d1\u6e56\u9547",710509:"\u91d1\u5b81\u4e61",710510:"\u91d1\u57ce\u9547",710511:"\u70c8\u5c7f\u4e61",710512:"\u4e4c\u5775\u4e61",710600:"\u5357\u6295\u53bf",710614:"\u5357\u6295\u5e02",710615:"\u4e2d\u5bee\u4e61",710616:"\u8349\u5c6f\u9547",710617:"\u56fd\u59d3\u4e61",710618:"\u57d4\u91cc\u9547",710619:"\u4ec1\u7231\u4e61",710620:"\u540d\u95f4\u4e61",710621:"\u96c6\u96c6\u9547",710622:"\u6c34\u91cc\u4e61",710623:"\u9c7c\u6c60\u4e61",710624:"\u4fe1\u4e49\u4e61",710625:"\u7af9\u5c71\u9547",710626:"\u9e7f\u8c37\u4e61",710700:"\u57fa\u9686\u5e02",710701:"\u4ec1\u7231\u533a",710702:"\u4fe1\u4e49\u533a",710703:"\u4e2d\u6b63\u533a",710704:"\u4e2d\u5c71\u533a",710705:"\u5b89\u4e50\u533a",710706:"\u6696\u6696\u533a",710707:"\u4e03\u5835\u533a",710708:"\u5176\u5b83\u533a",710800:"\u65b0\u7af9\u5e02",710801:"\u4e1c\u533a",710802:"\u5317\u533a",710803:"\u9999\u5c71\u533a",710804:"\u5176\u5b83\u533a",710900:"\u5609\u4e49\u5e02",710901:"\u4e1c\u533a",710902:"\u897f\u533a",710903:"\u5176\u5b83\u533a",711100:"\u65b0\u5317\u5e02",711130:"\u4e07\u91cc\u533a",711131:"\u91d1\u5c71\u533a",711132:"\u677f\u6865\u533a",711133:"\u6c50\u6b62\u533a",711134:"\u6df1\u5751\u533a",711135:"\u77f3\u7887\u533a",711136:"\u745e\u82b3\u533a",711137:"\u5e73\u6eaa\u533a",711138:"\u53cc\u6eaa\u533a",711139:"\u8d21\u5bee\u533a",711140:"\u65b0\u5e97\u533a",711141:"\u576a\u6797\u533a",711142:"\u4e4c\u6765\u533a",711143:"\u6c38\u548c\u533a",711144:"\u4e2d\u548c\u533a",711145:"\u571f\u57ce\u533a",711146:"\u4e09\u5ce1\u533a",711147:"\u6811\u6797\u533a",711148:"\u83ba\u6b4c\u533a",711149:"\u4e09\u91cd\u533a",711150:"\u65b0\u5e84\u533a",711151:"\u6cf0\u5c71\u533a",711152:"\u6797\u53e3\u533a",711153:"\u82a6\u6d32\u533a",711154:"\u4e94\u80a1\u533a",711155:"\u516b\u91cc\u533a",711156:"\u6de1\u6c34\u533a",711157:"\u4e09\u829d\u533a",711158:"\u77f3\u95e8\u533a",711200:"\u5b9c\u5170\u53bf",711214:"\u5b9c\u5170\u5e02",711215:"\u5934\u57ce\u9547",711216:"\u7901\u6eaa\u4e61",711217:"\u58ee\u56f4\u4e61",711218:"\u5458\u5c71\u4e61",711219:"\u7f57\u4e1c\u9547",711220:"\u4e09\u661f\u4e61",711221:"\u5927\u540c\u4e61",711222:"\u4e94\u7ed3\u4e61",711223:"\u51ac\u5c71\u4e61",711224:"\u82cf\u6fb3\u9547",711225:"\u5357\u6fb3\u4e61",711226:"\u9493\u9c7c\u53f0",711300:"\u65b0\u7af9\u53bf",711314:"\u7af9\u5317\u5e02",711315:"\u6e56\u53e3\u4e61",711316:"\u65b0\u4e30\u4e61",711317:"\u65b0\u57d4\u9547",711318:"\u5173\u897f\u9547",711319:"\u828e\u6797\u4e61",711320:"\u5b9d\u5c71\u4e61",711321:"\u7af9\u4e1c\u9547",711322:"\u4e94\u5cf0\u4e61",711323:"\u6a2a\u5c71\u4e61",711324:"\u5c16\u77f3\u4e61",711325:"\u5317\u57d4\u4e61",711326:"\u5ce8\u7709\u4e61",711400:"\u6843\u56ed\u53bf",711414:"\u4e2d\u575c\u5e02",711415:"\u5e73\u9547\u5e02",711416:"\u9f99\u6f6d\u4e61",711417:"\u6768\u6885\u5e02",711418:"\u65b0\u5c4b\u4e61",711419:"\u89c2\u97f3\u4e61",711420:"\u6843\u56ed\u5e02",711421:"\u9f9f\u5c71\u4e61",711422:"\u516b\u5fb7\u5e02",711423:"\u5927\u6eaa\u9547",711424:"\u590d\u5174\u4e61",711425:"\u5927\u56ed\u4e61",711426:"\u82a6\u7af9\u4e61",711500:"\u82d7\u6817\u53bf",711519:"\u7af9\u5357\u9547",711520:"\u5934\u4efd\u9547",711521:"\u4e09\u6e7e\u4e61",711522:"\u5357\u5e84\u4e61",711523:"\u72ee\u6f6d\u4e61",711524:"\u540e\u9f99\u9547",711525:"\u901a\u9704\u9547",711526:"\u82d1\u91cc\u9547",711527:"\u82d7\u6817\u5e02",711528:"\u9020\u6865\u4e61",711529:"\u5934\u5c4b\u4e61",711530:"\u516c\u9986\u4e61",711531:"\u5927\u6e56\u4e61",711532:"\u6cf0\u5b89\u4e61",711533:"\u94dc\u9523\u4e61",711534:"\u4e09\u4e49\u4e61",711535:"\u897f\u6e56\u4e61",711536:"\u5353\u5170\u9547",711700:"\u5f70\u5316\u53bf",711727:"\u5f70\u5316\u5e02",711728:"\u82ac\u56ed\u4e61",711729:"\u82b1\u575b\u4e61",711730:"\u79c0\u6c34\u4e61",711731:"\u9e7f\u6e2f\u9547",711732:"\u798f\u5174\u4e61",711733:"\u7ebf\u897f\u4e61",711734:"\u548c\u7f8e\u9547",711735:"\u4f38\u6e2f\u4e61",711736:"\u5458\u6797\u9547",711737:"\u793e\u5934\u4e61",711738:"\u6c38\u9756\u4e61",711739:"\u57d4\u5fc3\u4e61",711740:"\u6eaa\u6e56\u9547",711741:"\u5927\u6751\u4e61",711742:"\u57d4\u76d0\u4e61",711743:"\u7530\u4e2d\u9547",711744:"\u5317\u6597\u9547",711745:"\u7530\u5c3e\u4e61",711746:"\u57e4\u5934\u4e61",711747:"\u6eaa\u5dde\u4e61",711748:"\u7af9\u5858\u4e61",711749:"\u4e8c\u6797\u9547",711750:"\u5927\u57ce\u4e61",711751:"\u82b3\u82d1\u4e61",711752:"\u4e8c\u6c34\u4e61",711900:"\u5609\u4e49\u53bf",711919:"\u756a\u8def\u4e61",711920:"\u6885\u5c71\u4e61",711921:"\u7af9\u5d0e\u4e61",711922:"\u963f\u91cc\u5c71\u4e61",711923:"\u4e2d\u57d4\u4e61",711924:"\u5927\u57d4\u4e61",711925:"\u6c34\u4e0a\u4e61",711926:"\u9e7f\u8349\u4e61",711927:"\u592a\u4fdd\u5e02",711928:"\u6734\u5b50\u5e02",711929:"\u4e1c\u77f3\u4e61",711930:"\u516d\u811a\u4e61",711931:"\u65b0\u6e2f\u4e61",711932:"\u6c11\u96c4\u4e61",711933:"\u5927\u6797\u9547",711934:"\u6eaa\u53e3\u4e61",711935:"\u4e49\u7af9\u4e61",711936:"\u5e03\u888b\u9547",712100:"\u4e91\u6797\u53bf",712121:"\u6597\u5357\u9547",712122:"\u5927\u57e4\u4e61",712123:"\u864e\u5c3e\u9547",712124:"\u571f\u5e93\u9547",712125:"\u8912\u5fe0\u4e61",712126:"\u4e1c\u52bf\u4e61",712127:"\u53f0\u897f\u4e61",712128:"\u4ed1\u80cc\u4e61",712129:"\u9ea6\u5bee\u4e61",712130:"\u6597\u516d\u5e02",712131:"\u6797\u5185\u4e61",712132:"\u53e4\u5751\u4e61",712133:"\u83bf\u6850\u4e61",712134:"\u897f\u87ba\u9547",712135:"\u4e8c\u4ed1\u4e61",712136:"\u5317\u6e2f\u9547",712137:"\u6c34\u6797\u4e61",712138:"\u53e3\u6e56\u4e61",712139:"\u56db\u6e56\u4e61",712140:"\u5143\u957f\u4e61",712400:"\u5c4f\u4e1c\u53bf",712434:"\u5c4f\u4e1c\u5e02",712435:"\u4e09\u5730\u95e8\u4e61",712436:"\u96fe\u53f0\u4e61",712437:"\u739b\u5bb6\u4e61",712438:"\u4e5d\u5982\u4e61",712439:"\u91cc\u6e2f\u4e61",712440:"\u9ad8\u6811\u4e61",712441:"\u76d0\u57d4\u4e61",712442:"\u957f\u6cbb\u4e61",712443:"\u9e9f\u6d1b\u4e61",712444:"\u7af9\u7530\u4e61",712445:"\u5185\u57d4\u4e61",712446:"\u4e07\u4e39\u4e61",712447:"\u6f6e\u5dde\u9547",712448:"\u6cf0\u6b66\u4e61",712449:"\u6765\u4e49\u4e61",712450:"\u4e07\u5ce6\u4e61",712451:"\u5d01\u9876\u4e61",712452:"\u65b0\u57e4\u4e61",712453:"\u5357\u5dde\u4e61",712454:"\u6797\u8fb9\u4e61",712455:"\u4e1c\u6e2f\u9547",712456:"\u7409\u7403\u4e61",712457:"\u4f73\u51ac\u4e61",712458:"\u65b0\u56ed\u4e61",712459:"\u678b\u5bee\u4e61",712460:"\u678b\u5c71\u4e61",712461:"\u6625\u65e5\u4e61",712462:"\u72ee\u5b50\u4e61",712463:"\u8f66\u57ce\u4e61",712464:"\u7261\u4e39\u4e61",712465:"\u6052\u6625\u9547",712466:"\u6ee1\u5dde\u4e61",712500:"\u53f0\u4e1c\u53bf",712517:"\u53f0\u4e1c\u5e02",712518:"\u7eff\u5c9b\u4e61",712519:"\u5170\u5c7f\u4e61",712520:"\u5ef6\u5e73\u4e61",712521:"\u5351\u5357\u4e61",712522:"\u9e7f\u91ce\u4e61",712523:"\u5173\u5c71\u9547",712524:"\u6d77\u7aef\u4e61",712525:"\u6c60\u4e0a\u4e61",712526:"\u4e1c\u6cb3\u4e61",712527:"\u6210\u529f\u9547",712528:"\u957f\u6ee8\u4e61",712529:"\u91d1\u5cf0\u4e61",712530:"\u5927\u6b66\u4e61",712531:"\u8fbe\u4ec1\u4e61",712532:"\u592a\u9ebb\u91cc\u4e61",712600:"\u82b1\u83b2\u53bf",712615:"\u82b1\u83b2\u5e02",712616:"\u65b0\u57ce\u4e61",712617:"\u592a\u9c81\u9601",712618:"\u79c0\u6797\u4e61",712619:"\u5409\u5b89\u4e61",712620:"\u5bff\u4e30\u4e61",712621:"\u51e4\u6797\u9547",712622:"\u5149\u590d\u4e61",712623:"\u4e30\u6ee8\u4e61",712624:"\u745e\u7a57\u4e61",712625:"\u4e07\u8363\u4e61",712626:"\u7389\u91cc\u9547",712627:"\u5353\u6eaa\u4e61",712628:"\u5bcc\u91cc\u4e61",712700:"\u6f8e\u6e56\u53bf",712707:"\u9a6c\u516c\u5e02",712708:"\u897f\u5c7f\u4e61",712709:"\u671b\u5b89\u4e61",712710:"\u4e03\u7f8e\u4e61",712711:"\u767d\u6c99\u4e61",712712:"\u6e56\u897f\u4e61",712800:"\u8fde\u6c5f\u53bf",712805:"\u5357\u7aff\u4e61",712806:"\u5317\u7aff\u4e61",712807:"\u8392\u5149\u4e61",712808:"\u4e1c\u5f15\u4e61",81e4:"\u9999\u6e2f\u7279\u522b\u884c\u653f\u533a",810100:"\u9999\u6e2f\u5c9b",810101:"\u4e2d\u897f\u533a",810102:"\u6e7e\u4ed4",810103:"\u4e1c\u533a",810104:"\u5357\u533a",810200:"\u4e5d\u9f99",810201:"\u4e5d\u9f99\u57ce\u533a",810202:"\u6cb9\u5c16\u65fa\u533a",810203:"\u6df1\u6c34\u57d7\u533a",810204:"\u9ec4\u5927\u4ed9\u533a",810205:"\u89c2\u5858\u533a",810300:"\u65b0\u754c",810301:"\u5317\u533a",810302:"\u5927\u57d4\u533a",810303:"\u6c99\u7530\u533a",810304:"\u897f\u8d21\u533a",810305:"\u5143\u6717\u533a",810306:"\u5c6f\u95e8\u533a",810307:"\u8343\u6e7e\u533a",810308:"\u8475\u9752\u533a",810309:"\u79bb\u5c9b\u533a",82e4:"\u6fb3\u95e8\u7279\u522b\u884c\u653f\u533a",820100:"\u6fb3\u95e8\u534a\u5c9b",820200:"\u79bb\u5c9b",99e4:"\u6d77\u5916",990100:"\u6d77\u5916"},r=function(){var e=[];for(var t in n){var r="0000"===t.slice(2,6)?void 0:"00"==t.slice(4,6)?t.slice(0,2)+"0000":t.slice(0,4)+"00";e.push({id:t,pid:r,name:n[t]})}return function(e){for(var t,n={},r=0;re&&(er=0,tr={line:1,column:1,seenCR:!1}),function(e,n,r){var o,i;for(o=n;r>o;o++)"\n"===(i=t.charAt(o))?(e.seenCR||e.line++,e.column=1,e.seenCR=!1):"\r"===i||"\u2028"===i||"\u2029"===i?(e.line++,e.column=1,e.seenCR=!0):(e.column++,e.seenCR=!1)}(tr,er,e),er=e),tr}function w(e){nr>Qn||(Qn>nr&&(nr=Qn,rr=[]),rr.push(e))}function x(e){var t=0;for(e.sort();tQn?(r=t.charAt(Qn),Qn++):(r=null,0===or&&w(_n)),null!==r?(Zn=e,null===(n=Tn(r))?(Qn=e,e=n):e=n):(Qn=e,e=Oe)):(Qn=e,e=Oe),e}function he(){var e,n,r;return e=Qn,92===t.charCodeAt(Qn)?(n=Fn,Qn++):(n=null,0===or&&w(Nn)),null!==n?(Mn.test(t.charAt(Qn))?(r=t.charAt(Qn),Qn++):(r=null,0===or&&w(In)),null!==r?(Zn=e,null===(n=Rn(r))?(Qn=e,e=n):e=n):(Qn=e,e=Oe)):(Qn=e,e=Oe),e}function de(){var e,n,r,o;if(e=Qn,t.substr(Qn,2)===Bn?(n=Bn,Qn+=2):(n=null,0===or&&w(Ln)),null!==n){if(r=[],zn.test(t.charAt(Qn))?(o=t.charAt(Qn),Qn++):(o=null,0===or&&w(Un)),null!==o)for(;null!==o;)r.push(o),zn.test(t.charAt(Qn))?(o=t.charAt(Qn),Qn++):(o=null,0===or&&w(Un));else r=Oe;null!==r?(Zn=e,null===(n=Hn(r))?(Qn=e,e=n):e=n):(Qn=e,e=Oe)}else Qn=e,e=Oe;return e}function ye(){var e,n,r,o;if(e=Qn,t.substr(Qn,2)===Vn?(n=Vn,Qn+=2):(n=null,0===or&&w(Kn)),null!==n){if(r=[],Wn.test(t.charAt(Qn))?(o=t.charAt(Qn),Qn++):(o=null,0===or&&w(qn)),null!==o)for(;null!==o;)r.push(o),Wn.test(t.charAt(Qn))?(o=t.charAt(Qn),Qn++):(o=null,0===or&&w(qn));else r=Oe;null!==r?(Zn=e,null===(n=$n(r))?(Qn=e,e=n):e=n):(Qn=e,e=Oe)}else Qn=e,e=Oe;return e}function me(){var e,n,r,o;if(e=Qn,t.substr(Qn,2)===Xn?(n=Xn,Qn+=2):(n=null,0===or&&w(Jn)),null!==n){if(r=[],Wn.test(t.charAt(Qn))?(o=t.charAt(Qn),Qn++):(o=null,0===or&&w(qn)),null!==o)for(;null!==o;)r.push(o),Wn.test(t.charAt(Qn))?(o=t.charAt(Qn),Qn++):(o=null,0===or&&w(qn));else r=Oe;null!==r?(Zn=e,null===(n=Yn(r))?(Qn=e,e=n):e=n):(Qn=e,e=Oe)}else Qn=e,e=Oe;return e}function ve(){var e,n;return e=Qn,t.substr(Qn,2)===Bn?(n=Bn,Qn+=2):(n=null,0===or&&w(Ln)),null!==n&&(Zn=e,n=Gn()),null===n?(Qn=e,e=n):e=n,e}function be(){var e,n,r;return e=Qn,92===t.charCodeAt(Qn)?(n=Fn,Qn++):(n=null,0===or&&w(Nn)),null!==n?(t.length>Qn?(r=t.charAt(Qn),Qn++):(r=null,0===or&&w(_n)),null!==r?(Zn=e,null===(n=Mt(r))?(Qn=e,e=n):e=n):(Qn=e,e=Oe)):(Qn=e,e=Oe),e}var ge,we=arguments.length>1?arguments[1]:{},xe={regexp:E},Ee=E,Oe=null,Ce="",De="|",Se='"|"',Ae=function(e,t){return t?new r(e,t[1]):e},Pe=function(e,t,n){return new o([e].concat(t).concat([n]))},ke="^",je='"^"',_e=function(){return new n("start")},Te="$",Fe='"$"',Ne=function(){return new n("end")},Me=function(e,t){return new u(e,t)},Ie="Quantifier",Re=function(e,t){return t&&(e.greedy=!1),e},Be="{",Le='"{"',ze=",",Ue='","',He="}",Ve='"}"',Ke=function(e,t){return new c(e,t)},We=",}",qe='",}"',$e=function(e){return new c(e,1/0)},Xe=function(e){return new c(e,e)},Je="+",Ye='"+"',Ge=function(){return new c(1,1/0)},Qe="*",Ze='"*"',et=function(){return new c(0,1/0)},tt="?",nt='"?"',rt=function(){return new c(0,1)},ot=/^[0-9]/,it="[0-9]",at=function(e){return+e.join("")},ut="(",ct='"("',st=")",lt='")"',ft=function(e){return e},pt=function(e){return new a(e)},ht="?:",dt='"?:"',yt=function(e){return new i("non-capture-group",e)},mt="?=",vt='"?="',bt=function(e){return new i("positive-lookahead",e)},gt="?!",wt='"?!"',xt=function(e){return new i("negative-lookahead",e)},Et="CharacterSet",Ot="[",Ct='"["',Dt="]",St='"]"',At=function(e,t){return new s(!!e,t)},Pt="CharacterRange",kt="-",jt='"-"',_t=function(e,t){return new l(e,t)},Tt="Character",Ft=/^[^\\\]]/,Nt="[^\\\\\\]]",Mt=function(e){return new f(e)},It=".",Rt='"."',Bt=function(){return new n("any-character")},Lt="Literal",zt=/^[^|\\\/.[()?+*$\^]/,Ut="[^|\\\\\\/.[()?+*$\\^]",Ht="\\b",Vt='"\\\\b"',Kt=function(){return new n("backspace")},Wt=function(){return new n("word-boundary")},qt="\\B",$t='"\\\\B"',Xt=function(){return new n("non-word-boundary")},Jt="\\d",Yt='"\\\\d"',Gt=function(){return new n("digit")},Qt="\\D",Zt='"\\\\D"',en=function(){return new n("non-digit")},tn="\\f",nn='"\\\\f"',rn=function(){return new n("form-feed")},on="\\n",an='"\\\\n"',un=function(){return new n("line-feed")},cn="\\r",sn='"\\\\r"',ln=function(){return new n("carriage-return")},fn="\\s",pn='"\\\\s"',hn=function(){return new n("white-space")},dn="\\S",yn='"\\\\S"',mn=function(){return new n("non-white-space")},vn="\\t",bn='"\\\\t"',gn=function(){return new n("tab")},wn="\\v",xn='"\\\\v"',En=function(){return new n("vertical-tab")},On="\\w",Cn='"\\\\w"',Dn=function(){return new n("word")},Sn="\\W",An='"\\\\W"',Pn=function(){return new n("non-word")},kn="\\c",jn='"\\\\c"',_n="any character",Tn=function(e){return new m(e)},Fn="\\",Nn='"\\\\"',Mn=/^[1-9]/,In="[1-9]",Rn=function(e){return new y(e)},Bn="\\0",Ln='"\\\\0"',zn=/^[0-7]/,Un="[0-7]",Hn=function(e){return new d(e.join(""))},Vn="\\x",Kn='"\\\\x"',Wn=/^[0-9a-fA-F]/,qn="[0-9a-fA-F]",$n=function(e){return new h(e.join(""))},Xn="\\u",Jn='"\\\\u"',Yn=function(e){return new p(e.join(""))},Gn=function(){return new n("null-character")},Qn=0,Zn=0,er=0,tr={line:1,column:1,seenCR:!1},nr=0,rr=[],or=0;if("startRule"in we){if(!(we.startRule in xe))throw new Error("Can't start parsing from rule \""+we.startRule+'".');Ee=xe[we.startRule]}if(n.offset=b,n.text=v,null!==(ge=Ee())&&Qn===t.length)return ge;throw x(rr),Zn=Math.max(Qn,nr),new e(rr,Znr)return!0;var a={path:t,type:e,actual:n,expected:r,action:"is greater than",message:i};return a.message=c.message(a),o.push(a),!1},lessThan:function(e,t,n,r,o,i){if(n=r)return!0;var a={path:t,type:e,actual:n,expected:r,action:"is greater than or equal to",message:i};return a.message=c.message(a),o.push(a),!1},lessThanOrEqualTo:function(e,t,n,r,o,i){if(n<=r)return!0;var a={path:t,type:e,actual:n,expected:r,action:"is less than or equal to",message:i};return a.message=c.message(a),o.push(a),!1}};a.Diff=u,a.Assert=c,e.exports=a},function(e,t,n){e.exports=n(28)},function(e,t,n){var r=n(3);window._XMLHttpRequest=window.XMLHttpRequest,window._ActiveXObject=window.ActiveXObject;try{new window.Event("custom")}catch(l){window.Event=function(e,t,n,r){var o=document.createEvent("CustomEvent");return o.initCustomEvent(e,t,n,r),o}}var o={UNSENT:0,OPENED:1,HEADERS_RECEIVED:2,LOADING:3,DONE:4},i="readystatechange loadstart progress abort error load timeout loadend".split(" "),a="timeout withCredentials".split(" "),u="readyState responseURL status statusText responseType response responseText responseXML".split(" "),c="OK";function s(){this.custom={events:{},requestHeaders:{},responseHeaders:{}}}s._settings={timeout:"10-100"},s.setup=function(e){return r.extend(s._settings,e),s._settings},r.extend(s,o),r.extend(s.prototype,o),s.prototype.mock=!0,s.prototype.match=!1,r.extend(s.prototype,{open:function(e,t,n,o,c){var l=this;r.extend(this.custom,{method:e,url:t,async:"boolean"!==typeof n||n,username:o,password:c,options:{url:t,type:e}}),this.custom.timeout=function(e){if("number"===typeof e)return e;if("string"===typeof e&&!~e.indexOf("-"))return parseInt(e,10);if("string"===typeof e&&~e.indexOf("-")){var t=e.split("-"),n=parseInt(t[0],10),r=parseInt(t[1],10);return Math.round(Math.random()*(r-n))+n}}(s._settings.timeout);var f=function(e){for(var t in s.Mock._mocked){var n=s.Mock._mocked[t];if((!n.rurl||o(n.rurl,e.url))&&(!n.rtype||o(n.rtype,e.type.toLowerCase())))return n}function o(e,t){return"string"===r.type(e)?e===t:"regexp"===r.type(e)?e.test(t):void 0}}(this.custom.options);function p(e){for(var t=0;t0?{paddingLeft:t[0]/2,paddingRight:t[0]/2}:{}),t[1]>0?{paddingTop:t[1]/2,paddingBottom:t[1]/2}:{}),n)),O&&(n.flex=g(O)),r.createElement("div",s({},D,{style:n,className:P}),E)}))},e}return n=E,(o=[{key:"render",value:function(){return r.createElement(u.a,null,this.renderCol)}}])&&p(n.prototype,o),w&&p(n,w),E}(r.Component)},function(e,t,n){"use strict";var r=n(82),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},u={};function c(e){return r.isMemo(e)?a:u[e.$$typeof]||o}u[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},u[r.Memo]=a;var s=Object.defineProperty,l=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,h=Object.getPrototypeOf,d=Object.prototype;e.exports=function e(t,n,r){if("string"!==typeof n){if(d){var o=h(n);o&&o!==d&&e(t,o,r)}var a=l(n);f&&(a=a.concat(f(n)));for(var u=c(t),y=c(n),m=0;me.length)&&(t=e.length);for(var n=0,r=new Array(t);n0),l(n,"".concat(u,"-rtl"),"rtl"===o),n),c);return r.createElement(E.Provider,{value:{siderHook:e.getSiderHook()}},r.createElement(h,f({className:y},d),s))},e}return d(n,[{key:"getSiderHook",value:function(){var e=this;return{addSider:function(t){e.setState((function(e){return{siders:[].concat(c(e.siders),[t])}}))},removeSider:function(t){e.setState((function(e){return{siders:e.siders.filter((function(e){return e!==t}))}}))}}}},{key:"render",value:function(){return r.createElement(a.a,null,this.renderComponent)}}]),n}(r.Component),S=O({suffixCls:"layout",tagName:"section",displayName:"Layout"})(D),A=O({suffixCls:"layout-header",tagName:"header",displayName:"Header"})(C),P=O({suffixCls:"layout-footer",tagName:"footer",displayName:"Footer"})(C),k=O({suffixCls:"layout-content",tagName:"main",displayName:"Content"})(C);S.Header=A,S.Footer=P,S.Content=k,t.b=S},function(e,t,n){"use strict";var r=n(149),o=n(123);r.b.Sider=o.b,t.a=r.b},function(e,t,n){"use strict";n(14),n(450),n(203)},function(e,t,n){"use strict";n(14),n(459),n(69)},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){var r=n(302),o=n(214);e.exports=Object.keys||function(e){return r(e,o)}},function(e,t){e.exports=!0},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t){t.f={}.propertyIsEnumerable},function(e,t,n){var r=n(225),o=Math.min;e.exports=function(e){return e>0?o(r(e),9007199254740991):0}},function(e,t){var n=0,r=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++n+r).toString(36))}},function(e,t,n){e.exports=n(546)},function(e,t,n){var r=n(159)("meta"),o=n(46),i=n(78),a=n(62).f,u=0,c=Object.isExtensible||function(){return!0},s=!n(99)((function(){return c(Object.preventExtensions({}))})),l=function(e){a(e,r,{value:{i:"O"+ ++u,w:{}}})},f=e.exports={KEY:r,NEED:!1,fastKey:function(e,t){if(!o(e))return"symbol"==typeof e?e:("string"==typeof e?"S":"P")+e;if(!i(e,r)){if(!c(e))return"F";if(!t)return"E";l(e)}return e[r].i},getWeak:function(e,t){if(!i(e,r)){if(!c(e))return!0;if(!t)return!1;l(e)}return e[r].w},onFreeze:function(e){return s&&f.NEED&&c(e)&&!i(e,r)&&l(e),e}}},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t){t.f={}.propertyIsEnumerable},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){var r=n(98),o=n(325),i=n(326),a=n(52),u=n(158),c=n(242),s={},l={};(t=e.exports=function(e,t,n,f,p){var h,d,y,m,v=p?function(){return e}:c(e),b=r(n,f,t?2:1),g=0;if("function"!=typeof v)throw TypeError(e+" is not iterable!");if(i(v)){for(h=u(e.length);h>g;g++)if((m=t?b(a(d=e[g])[0],d[1]):b(e[g]))===s||m===l)return m}else for(y=v.call(e);!(d=y.next()).done;)if((m=o(y,b,d.value,t))===s||m===l)return m}).BREAK=s,t.RETURN=l},function(e,t,n){var r=n(335),o=n(167),i=Object.prototype.hasOwnProperty;e.exports=function(e,t,n){var a=e[t];i.call(e,t)&&o(a,n)&&(void 0!==n||t in e)||r(e,t,n)}},function(e,t){e.exports=function(e,t){return e===t||e!==e&&t!==t}},function(e,t){var n=/^(?:0|[1-9]\d*)$/;e.exports=function(e,t){var r=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==r||"symbol"!=r&&n.test(e))&&e>-1&&e%1==0&&e=48&&t<=57}},function(e,t,n){"use strict";e.exports=u;var r=n(876),o=r.CONTINUE,i=r.SKIP,a=r.EXIT;function u(e,t,n,o){"function"===typeof t&&"function"!==typeof n&&(o=n,n=t,t=null),r(e,t,(function(e,t){var r=t[t.length-1],o=r?r.children.indexOf(e):null;return n(e,o,r)}),o)}u.CONTINUE=o,u.SKIP=i,u.EXIT=a},function(e,t,n){"use strict";t.__esModule=!0;var r=a(n(487)),o=a(n(499)),i="function"===typeof o.default&&"symbol"===typeof r.default?function(e){return typeof e}:function(e){return e&&"function"===typeof o.default&&e.constructor===o.default&&e!==o.default.prototype?"symbol":typeof e};function a(e){return e&&e.__esModule?e:{default:e}}t.default="function"===typeof o.default&&"symbol"===i(r.default)?function(e){return"undefined"===typeof e?"undefined":i(e)}:function(e){return e&&"function"===typeof o.default&&e.constructor===o.default&&e!==o.default.prototype?"symbol":"undefined"===typeof e?"undefined":i(e)}},function(e,t,n){"use strict";n.d(t,"a",(function(){return o}));var r=n(144);function o(e,t){if(e){if("string"===typeof e)return Object(r.a)(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?Object(r.a)(e,t):void 0}}},function(e,t,n){"use strict";function r(){var e=[].slice.call(arguments,0);return 1===e.length?e[0]:function(){for(var t=0;t=t||n<0||m&&e-d>=l}function x(){var e=o();if(w(e))return E(e);p=setTimeout(x,function(e){var n=t-(e-h);return m?u(n,l-(e-d)):n}(e))}function E(e){return p=void 0,v&&c?b(e):(c=s=void 0,f)}function O(){var e=o(),n=w(e);if(c=arguments,s=this,h=e,n){if(void 0===p)return g(h);if(m)return clearTimeout(p),p=setTimeout(x,t),b(h)}return void 0===p&&(p=setTimeout(x,t)),f}return t=i(t)||0,r(n)&&(y=!!n.leading,l=(m="maxWait"in n)?a(i(n.maxWait)||0,t):l,v="trailing"in n?!!n.trailing:v),O.cancel=function(){void 0!==p&&clearTimeout(p),d=0,c=h=s=p=void 0},O.flush=function(){return void 0===p?f:E(o())},O}},function(e,t,n){"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var o=(r=n(805))&&r.__esModule?r:{default:r};t.default=o,e.exports=o},function(e,t,n){var r=n(261);e.exports=function(e,t){return r(e,t)}},function(e,t,n){"use strict";var r=n(0),o=Object(r.createContext)({});t.a=o},function(e,t,n){"use strict";var r=n(56),o=n.n(r),i=n(3),a=n.n(i),u=n(20),c=n.n(u),s=n(17),l=n.n(s),f=n(21),p=n.n(f),h=n(0),d=n.n(h),y=n(1),m=n.n(y),v=function(e){function t(n){c()(this,t);var r=l()(this,e.call(this,n));r.handleChange=function(e){var t=r.props,n=t.disabled,o=t.onChange;n||("checked"in r.props||r.setState({checked:e.target.checked}),o&&o({target:a()({},r.props,{checked:e.target.checked}),stopPropagation:function(){e.stopPropagation()},preventDefault:function(){e.preventDefault()},nativeEvent:e.nativeEvent}))},r.saveInput=function(e){r.input=e};var o="checked"in n?n.checked:n.defaultChecked;return r.state={checked:o},r}return p()(t,e),t.getDerivedStateFromProps=function(e,t){return"checked"in e?a()({},t,{checked:e.checked}):null},t.prototype.focus=function(){this.input.focus()},t.prototype.blur=function(){this.input.blur()},t.prototype.render=function(){var e,t=this.props,n=t.prefixCls,r=t.className,i=t.style,u=t.name,c=t.id,s=t.type,l=t.disabled,f=t.readOnly,p=t.tabIndex,h=t.onClick,y=t.onFocus,v=t.onBlur,b=t.autoFocus,g=t.value,w=t.required,x=o()(t,["prefixCls","className","style","name","id","type","disabled","readOnly","tabIndex","onClick","onFocus","onBlur","autoFocus","value","required"]),E=Object.keys(x).reduce((function(e,t){return"aria-"!==t.substr(0,5)&&"data-"!==t.substr(0,5)&&"role"!==t||(e[t]=x[t]),e}),{}),O=this.state.checked,C=m()(n,r,((e={})[n+"-checked"]=O,e[n+"-disabled"]=l,e));return d.a.createElement("span",{className:C,style:i},d.a.createElement("input",a()({name:u,id:c,type:s,required:w,readOnly:f,disabled:l,tabIndex:p,className:n+"-input",checked:!!O,onClick:h,onFocus:y,onBlur:v,onChange:this.handleChange,autoFocus:b,ref:this.saveInput,value:g},E)),d.a.createElement("span",{className:n+"-inner"}))},t}(h.Component);v.defaultProps={prefixCls:"rc-checkbox",className:"",style:{},type:"checkbox",defaultChecked:!1,onFocus:function(){},onBlur:function(){},onChange:function(){}},t.a=v},function(e,t,n){"use strict";var r=n(0),o=n(1),i=n.n(o),a=n(29),u=n(31);function c(){return(c=Object.assign||function(e){for(var t=1;t1&&void 0!==arguments[1]?arguments[1]:{},n=t.element,r=void 0===n?document.body:n,o={},i=Object.keys(e);return i.forEach((function(e){o[e]=r.style[e]})),i.forEach((function(t){r.style[t]=e[t]})),o};var x={},E=function(e){if(document.body.scrollHeight>(window.innerHeight||document.documentElement.clientHeight)&&window.innerWidth>document.body.offsetWidth||e){var t=new RegExp("".concat("ant-scrolling-effect"),"g"),n=document.body.className;if(e){if(!t.test(n))return;return w(x),x={},void(document.body.className=n.replace(t,"").trim())}var r=Object(g.a)();if(r&&(x=w({position:"relative",width:"calc(100% - ".concat(r,"px)")}),!t.test(n))){var o="".concat(n," ").concat("ant-scrolling-effect");document.body.className=o.trim()}}};function O(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function C(e){for(var t=1;t0&&void 0!==arguments[0]?arguments[0]:{};return n(C({},t,{},u,{ref:e.savePortal}))},getContainer:this.getContainer,forceRender:r},(function(t){var n=t.renderComponent,r=t.removeContainer;return e.renderComponent=n,e.removeContainer=r,null}))}}])&&A(n.prototype,r),i&&A(n,i),u}(o.a.Component);R.propTypes={wrapperClassName:c.a.string,forceRender:c.a.bool,getContainer:c.a.any,children:c.a.func,visible:c.a.bool};t.a=Object(s.a)(R)},function(e,t,n){"use strict";function r(e){return null!=e&&"object"===typeof e&&1===e.nodeType}function o(e,t){return(!t||"hidden"!==e)&&("visible"!==e&&"clip"!==e)}function i(e,t){if(e.clientHeightt||i>e&&a=t&&u>=n?i-e-r:a>t&&un?a-t+o:0}var u=function(e,t){var n=t.scrollMode,o=t.block,u=t.inline,c=t.boundary,s=t.skipOverflowHiddenElements,l="function"===typeof c?c:function(e){return e!==c};if(!r(e))throw new TypeError("Invalid target");for(var f=document.scrollingElement||document.documentElement,p=[],h=e;r(h)&&l(h);){if((h=h.parentNode)===f){p.push(h);break}h===document.body&&i(h)&&!i(document.documentElement)||i(h,s)&&p.push(h)}for(var d=window.visualViewport?visualViewport.width:innerWidth,y=window.visualViewport?visualViewport.height:innerHeight,m=window.scrollX||pageXOffset,v=window.scrollY||pageYOffset,b=e.getBoundingClientRect(),g=b.height,w=b.width,x=b.top,E=b.right,O=b.bottom,C=b.left,D="start"===o||"nearest"===o?x:"end"===o?O:x+g/2,S="center"===u?C+w/2:"end"===u?E:C,A=[],P=0;P=0&&C>=0&&O<=y&&E<=d&&x>=F&&O<=M&&C>=I&&E<=N)return A;var R=getComputedStyle(k),B=parseInt(R.borderLeftWidth,10),L=parseInt(R.borderTopWidth,10),z=parseInt(R.borderRightWidth,10),U=parseInt(R.borderBottomWidth,10),H=0,V=0,K="offsetWidth"in k?k.offsetWidth-k.clientWidth-B-z:0,W="offsetHeight"in k?k.offsetHeight-k.clientHeight-L-U:0;if(f===k)H="start"===o?D:"end"===o?D-y:"nearest"===o?a(v,v+y,y,L,U,v+D,v+D+g,g):D-y/2,V="start"===u?S:"center"===u?S-d/2:"end"===u?S-d:a(m,m+d,d,B,z,m+S,m+S+w,w),H=Math.max(0,H+v),V=Math.max(0,V+m);else{H="start"===o?D-F-L:"end"===o?D-M+U+W:"nearest"===o?a(F,M,_,L,U+W,D,D+g,g):D-(F+_/2)+W/2,V="start"===u?S-I-B:"center"===u?S-(I+T/2)+K/2:"end"===u?S-N+z+K:a(I,N,T,B,z+K,S,S+w,w);var q=k.scrollLeft,$=k.scrollTop;D+=$-(H=Math.max(0,Math.min($+H,k.scrollHeight-_+W))),S+=q-(V=Math.max(0,Math.min(q+V,k.scrollWidth-T+K)))}A.push({el:k,top:H,left:V})}return A};function c(e){return e===Object(e)&&0!==Object.keys(e).length}t.a=function(e,t){var n=!e.ownerDocument.documentElement.contains(e);if(c(t)&&"function"===typeof t.behavior)return t.behavior(n?[]:u(e,t));if(!n){var r=function(e){return!1===e?{block:"end",inline:"nearest"}:c(e)?e:{block:"start",inline:"nearest"}}(t);return function(e,t){void 0===t&&(t="auto");var n="scrollBehavior"in document.body.style;e.forEach((function(e){var r=e.el,o=e.top,i=e.left;r.scroll&&n?r.scroll({top:o,left:i,behavior:t}):(r.scrollTop=o,r.scrollLeft=i)}))}(u(e,r),r.behavior)}}},,function(e,t,n){"use strict";var r=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable;function a(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(o){return!1}}()?Object.assign:function(e,t){for(var n,u,c=a(e),s=1;s=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};r.forEach(["delete","get","head"],(function(e){u.headers[e]={}})),r.forEach(["post","put","patch"],(function(e){u.headers[e]=r.merge(i)})),e.exports=u}).call(this,n(126))},function(e,t,n){var r=function(e){"use strict";var t=Object.prototype,n=t.hasOwnProperty,r="function"===typeof Symbol?Symbol:{},o=r.iterator||"@@iterator",i=r.asyncIterator||"@@asyncIterator",a=r.toStringTag||"@@toStringTag";function u(e,t,n,r){var o=t&&t.prototype instanceof l?t:l,i=Object.create(o.prototype),a=new E(r||[]);return i._invoke=function(e,t,n){var r="suspendedStart";return function(o,i){if("executing"===r)throw new Error("Generator is already running");if("completed"===r){if("throw"===o)throw i;return C()}for(n.method=o,n.arg=i;;){var a=n.delegate;if(a){var u=g(a,n);if(u){if(u===s)continue;return u}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===r)throw r="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);r="executing";var l=c(e,t,n);if("normal"===l.type){if(r=n.done?"completed":"suspendedYield",l.arg===s)continue;return{value:l.arg,done:n.done}}"throw"===l.type&&(r="completed",n.method="throw",n.arg=l.arg)}}}(e,n,a),i}function c(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(r){return{type:"throw",arg:r}}}e.wrap=u;var s={};function l(){}function f(){}function p(){}var h={};h[o]=function(){return this};var d=Object.getPrototypeOf,y=d&&d(d(O([])));y&&y!==t&&n.call(y,o)&&(h=y);var m=p.prototype=l.prototype=Object.create(h);function v(e){["next","throw","return"].forEach((function(t){e[t]=function(e){return this._invoke(t,e)}}))}function b(e,t){var r;this._invoke=function(o,i){function a(){return new t((function(r,a){!function r(o,i,a,u){var s=c(e[o],e,i);if("throw"!==s.type){var l=s.arg,f=l.value;return f&&"object"===typeof f&&n.call(f,"__await")?t.resolve(f.__await).then((function(e){r("next",e,a,u)}),(function(e){r("throw",e,a,u)})):t.resolve(f).then((function(e){l.value=e,a(l)}),(function(e){return r("throw",e,a,u)}))}u(s.arg)}(o,i,r,a)}))}return r=r?r.then(a,a):a()}}function g(e,t){var n=e.iterator[t.method];if(void 0===n){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,g(e,t),"throw"===t.method))return s;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return s}var r=c(n,e.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,s;var o=r.arg;return o?o.done?(t[e.resultName]=o.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,s):o:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,s)}function w(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function x(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function E(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(w,this),this.reset(!0)}function O(e){if(e){var t=e[o];if(t)return t.call(e);if("function"===typeof e.next)return e;if(!isNaN(e.length)){var r=-1,i=function t(){for(;++r=0;--o){var i=this.tryEntries[o],a=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var u=n.call(i,"catchLoc"),c=n.call(i,"finallyLoc");if(u&&c){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),x(n),s}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;x(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:O(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),s}},e}(e.exports);try{regeneratorRuntime=r}catch(o){Function("r","regeneratorRuntime = r")(r)}},function(e,t,n){var r=n(107);e.exports=function(e,t){if(!r(e))return e;var n,o;if(t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;if("function"==typeof(n=e.valueOf)&&!r(o=n.call(e)))return o;if(!t&&"function"==typeof(n=e.toString)&&!r(o=n.call(e)))return o;throw TypeError("Can't convert object to primitive value")}},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t){var n=Math.ceil,r=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?r:n)(e)}},function(e,t,n){var r=n(213)("keys"),o=n(156);e.exports=function(e){return r[e]||(r[e]=o(e))}},function(e,t,n){var r=n(76),o=n(75),i=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(e.exports=function(e,t){return i[e]||(i[e]=void 0!==t?t:{})})("versions",[]).push({version:r.version,mode:n(155)?"pure":"global",copyright:"\xa9 2019 Denis Pushkarev (zloirock.ru)"})},function(e,t){e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t){t.f=Object.getOwnPropertySymbols},function(e,t,n){var r=n(210);e.exports=function(e){return Object(r(e))}},function(e,t){e.exports={}},function(e,t,n){var r=n(127),o=n(492),i=n(214),a=n(212)("IE_PROTO"),u=function(){},c=function(){var e,t=n(301)("iframe"),r=i.length;for(t.style.display="none",n(493).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write(" - - - - - - - - \ No newline at end of file diff --git a/client/document.html b/client/document.html deleted file mode 100644 index 4adf443c20d9a778348dd8bcf262c64866df24e6..0000000000000000000000000000000000000000 --- a/client/document.html +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - 文档说明 - SNAKE-API - - - - - - - -
- -

作者

-
-

seebin

- -

项目说明

-
-

小型API 挡板接口管理工程 -基于反向代理的前端mock方案-前后端之间架起一座过滤桥梁

-

该项目为实验性项目,可临时作为小型mock工具使用,后期重构为开源工程。

- -

功能说明

-
-
    -
  • 基于反向代理,mock请求返回mock数据,非mock请求返回真实数据
  • -
  • 可单个Mock接口开启Mock状态,关闭Mock状态则请求服务器真实数据
  • -
  • JSON5编辑器,JSON数据结构增强,支持添加注释,支持key无需引号包裹等强大特性
  • -
  • 可选择性导入swagger接口数据,导入用到的单个接口,而非所有的swagger数据
  • -
  • 新建接口支持多服务器多接口前缀配置
  • -
  • 采用MockJS自动生成Mock数据,MockJS的Mock写法全部支持
  • -
  • 键清空所有的Mock接口,准备开启下个需求的Mock模拟,防止无用的Mock接口迷惑自己
  • -
  • ...
  • -
- -

答疑解惑

-
-

如何选择变更来源

-

不同的开发环境可能会需要使用不同的配置,否则会导致代理无法使用的问题:

-

1. 如果测试环境为阿里环境或其他云服务商环境,仅支持域名访问,而本地开发使用nginx来反向代理测试环境且访问地址与测试环境一致,请选择不变更来源

-

2. 如果使用vue等自带代理工具的脚手架项目,由于本地项目访问是127.0.0.1, 这时需要选择变更来源

- -

如何使用MockJS语法生成随机mock数据

-

Mock.js 是一个可以生成生成随机数据的js库。本项目可支持下面写法以及其他写法,部分语法不支持(比如正则),这是由于JSON5数据不支持导致的。

-
// 支持以下两种写法,并且可混用
-
------------数据模板定义规范-----------
-{
-  // 属性 list 的值是一个数组,其中含有 3 个元素
-  'list|3': [{
-      // 属性 id 是一个自增数,起始值为 1,每次增 1
-      'id|+1': 1
-  }]
-}
-// 生成==>
-{
-  "list": [
-    {
-      "id": 1
-    },
-    {
-      "id": 2
-    },
-    {
-      "id": 3
-    }
-  ]
-}
------------数据占位符定义规范-----------
-{
-  name: "@cname()", // 随机生成一个中文名
-  code: "@string()", // 随机生成一串字符串
-  id: "@integer()", // 随机生成一个数字
-  age: "@integer(10,100)", // 随机生成一个10至100的数字
-  avter: "@image('100x100')", // 生成一个100x100的图片
-}
-// 生成==>
-{
-  name: "张三",
-  code: "sdfafw1212131",
-  id: 1231831283121,
-  age: 48,
-  avter: "http://dummyimage.com/100x100"
-}
-
-

更多用法可访问:https://github.com/nuysoft/Mock/wiki/Getting-Started

-
- - - \ No newline at end of file diff --git a/client/index.html b/client/index.html deleted file mode 100644 index b91a766dd84918ed47008e4d7417a4afc87e3074..0000000000000000000000000000000000000000 --- a/client/index.html +++ /dev/null @@ -1,446 +0,0 @@ - - - - - - - - - - - - - 接口列表 - SNAKE-API - - - - - - - - -
- -
-
-
-
- - -
-
- - -
- -
- -
-
-
-
-
- - - - -
-
-
- -
- - - -
- -
- - - - - - - - - - - - - -
序号接口名称接口类型接口前缀接口地址Mock启用状态操作
-
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/client/index.js b/client/index.js deleted file mode 100644 index 7f987186dae667f298f1b61c1906ac3dd5da0378..0000000000000000000000000000000000000000 --- a/client/index.js +++ /dev/null @@ -1,940 +0,0 @@ -$.get("/api/get-prefix-list", function (data) { - if (data.success) { - var str = ""; - data.data.forEach(function (prefix) { - str += - '' + - prefix.code + - ""; - }); - $("#interface-prefix-list").append(str); - } -}); - -var Random = Mock.Random; - -Handlebars.registerHelper("formatMethod", (value) => { - if (value == "GET") { - return "btn-primary"; - } else { - return "btn-success"; - } -}); -Handlebars.registerHelper("addOne", (value) => { - return value + 1; -}); -Handlebars.registerHelper("noValue", (value) => { - if (value) { - return value; - } else { - return "-"; - } -}); -var operators = { - "==": function (l, r) { - return l == r; - }, - "===": function (l, r) { - return l === r; - }, - "!=": function (l, r) { - return l != r; - }, - "!==": function (l, r) { - return l !== r; - }, - "<": function (l, r) { - return l < r; - }, - ">": function (l, r) { - return l > r; - }, - "<=": function (l, r) { - return l <= r; - }, - ">=": function (l, r) { - return l >= r; - }, - typeof: function (l, r) { - return typeof l == r; - }, -}; -Handlebars.registerHelper("compare", function (left, operator, right, options) { - if (arguments.length < 3) { - throw new Error('Handlerbars Helper "compare" needs 2 parameters'); - } - if (!operators[operator]) { - throw new Error( - 'Handlerbars Helper "compare" doesn\'t know the operator ' + operator - ); - } - var result = operators[operator](left, right); - if (result) { - return options.fn(this); - } else { - return options.inverse(this); - } -}); - -var editor = ace.edit("interface-data"); -editor.setTheme("ace/theme/chrome"); //设置主题 -var JavaScriptMode = ace.require("ace/mode/json").Mode; -editor.session.setMode(new JavaScriptMode()); //设置程序语言模式 -// 自定义补全列表 -var autoCompleteData = [ - { - name: "mock string", // 没啥用 - value: "@string", // 实际的值 - caption: "@string", // 显示在补全列表中的值 - meta: "Mock-String", // 显示在补全列表中的说明 - type: "local", //好像也没啥用 - score: 1000, //评分越高越靠前 - }, - { - name: "mock number", // 没啥用 - value: "@number", // 实际的值 - caption: "@number", // 显示在补全列表中的值 - meta: "Mock-Number", // 显示在补全列表中的说明 - score: 1000, //评分越高越靠前 - }, - { - name: "mock integer", // 没啥用 - value: "@integer", // 实际的值 - caption: "@integer", // 显示在补全列表中的值 - meta: "Mock-Integer", // 显示在补全列表中的说明 - score: 1000, //评分越高越靠前 - }, - { - name: "mock image", // 没啥用 - value: Random.image("200x100"), // 实际的值 - caption: "@image", // 显示在补全列表中的值 - meta: "Mock-Image", // 显示在补全列表中的说明 - score: 1000, //评分越高越靠前 - }, -]; -// 设置自动补全 -var tangideCompleter = { - identifierRegexps: [/[a-zA-Z_0-9\@\-\u00A2-\uFFFF]/], - getCompletions: function (editor, session, pos, prefix, callback) { - if (prefix.length === 0) { - return callback(null, []); - } else { - return callback(null, autoCompleteData); - } - }, -}; -editor.setOptions({ - enableBasicAutocompletion: true, - enableSnippets: true, - enableLiveAutocompletion: true, -}); -var langTools = ace.require("ace/ext/language_tools"); -langTools.addCompleter(tangideCompleter); - -// 设置全屏 -editor.commands.addCommand({ - name: "fullscreen", - bindKey: { win: "Ctrl-Enter", mac: "Command-Enter" }, - exec: function (editor) { - var ele = document.getElementById("interface-data"); - if (editor.isFullScreen) { - exitFullscreen(); - editor.isFullScreen = false; - } else { - launchFullscreen(ele); - editor.isFullScreen = true; - } - }, - readOnly: true, // 只读下设置可以全屏展示 -}); - -function launchFullscreen(element) { - if (element.requestFullscreen) { - element.requestFullscreen(); - } else if (element.mozRequestFullScreen) { - element.mozRequestFullScreen(); - } else if (element.webkitRequestFullscreen) { - element.webkitRequestFullscreen(); - } else if (element.msRequestFullscreen) { - element.msRequestFullscreen(); - } -} - -function exitFullscreen() { - if (document.exitFullscreen) { - document.exitFullscreen(); - } else if (document.mozCancelFullScreen) { - document.mozCancelFullScreen(); - } else if (document.webkitExitFullscreen) { - document.webkitExitFullscreen(); - } -} - -// editor.getSession().setUseWrapMode(true);//设置折叠 默认折叠的 -editor.getSession().setTabSize(2); // 设置制表符大小 - -// 切换状态 -function changeStatus(owner, id, isOpen) { - console.log("1231231", owner.text); - var param = { - id: id, - isOpen: isOpen, - }; - $.ajax({ - url: "/api/change-interface-mock-status", - method: "post", - dataType: "json", - data: JSON.stringify(param), - contentType: "application/json", - success: function (data) { - if (data.success) { - if (isOpen) { - alertInfo("Mock状态开启成功,你可以使用Mock数据了"); - } else { - alertInfo("Mock状态已停用,你可以使用真实的接口数据了"); - } - - searchlist(); - } else { - alert(data.errorMsg); - } - }, - }); -} - -// 切换接口锁状态 -function changeLockStatus(owner, id, value) { - var param = { - id: id, - isLock: value, - }; - $.ajax({ - url: "/api/change-interface-lock-status", - method: "post", - dataType: "json", - data: JSON.stringify(param), - contentType: "application/json", - success: function (data) { - if (data.success) { - if (value) { - alertInfo("已锁"); - $(owner).prev().removeClass("d-none"); - $(owner).addClass("d-none"); - $(owner).next().next().addClass("d-none"); - $(owner).next().next().next().addClass("d-none"); - } else { - alertInfo("已解锁"); - $(owner).addClass("d-none"); - $(owner).next().removeClass("d-none"); - $(owner).next().next().next().removeClass("d-none"); - $(owner).next().next().next().next().removeClass("d-none"); - } - } else { - alert(data.errorMsg); - } - }, - }); -} - -// 复制链接 -function copyPath(path) { - var currentFocus = document.activeElement; // 保存当前活动节点 - - let input = document.createElement("input"); // 创建一个input标签 - document.body.appendChild(input); // 把标签添加给body - input.style.opacity = 0; //设置input标签设置为透明(不可见) - input.value = path; // 把需要复制的值放到input上 - - // 记录当前滚动位置, 因为添加节点并选中的时候回影响页面滚动 - let scrollY = window.scrollY; - - input.focus(); // input节点获取焦点 - input.setSelectionRange(0, input.value.length); // 选中input框中的所有文字 - - var res = document.execCommand("copy", true); // 复制文字并获取结果 - - currentFocus.focus(); // 之前活动节点获得焦点 - document.body.removeChild(input); // 删除添加的input节点 - - // 页面滚动到之前位置 - window.scrollTo(0, scrollY); - - alertInfo("已复制", "success"); -} - -// 选择下拉框 -function selectedDropdown(owner) { - $(owner).parent().prev().text($(owner).text()); - $(owner).parent().prev().attr("data-value", $(owner).attr("data-value")); -} - -// 封装alert -function alertInfo(content, type) { - $("#alert").text(content); - var alertEle = document.getElementById("alert"); - alertEle.className = - "alert position-fixed w-50" + " alert-" + (type || "success"); - $("#alert").fadeIn("fast"); - - setTimeout(() => { - $("#alert").fadeOut("slow"); - }, 2500); -} - -// 切换预览与编辑 -function changePreview(owner, isPreview) { - if (isPreview) { - $("#interface-data").hide(); - $("#preview").show(); - $(owner).removeClass("btn-outline-primary").addClass("btn-primary"); - $(owner).prev().removeClass("btn-primary").addClass("btn-outline-primary"); - - //mock - try { - var mock = JSON5.parse(editor.getValue()); - $("#preview").val(JSON.stringify(Mock.mock(mock), null, 4)); - } catch (reason) { - $("#preview").val("格式错误:" + reason); - } - } else { - $("#interface-data").show(); - $("#preview").hide(); - $(owner).removeClass("btn-outline-primary").addClass("btn-primary"); - $(owner).next().removeClass("btn-primary").addClass("btn-outline-primary"); - } -} - -// 校验表单必填项 -function checkForm() { - if (!$("#interface-name").val()) { - alertInfo("请输入接口名称", "warning"); - return false; - } - if (!$("#interface-path").val()) { - alertInfo("请输入接口地址", "warning"); - return false; - } - return true; -} - -// 处理分页 -function formatPage(currentPage, pages) { - currentPage = currentPage * 1; - pages = pages * 1; - var prevPage, - nextPage, - pageList = []; - if (currentPage > 1) { - prevPage = currentPage - 1; - } else { - prevPage = 1; - } - if (currentPage < pages) { - nextPage = currentPage + 1; - } else { - nextPage = currentPage; - } - if (currentPage <= 4) { - for (var i = 1; i <= (pages < 7 ? pages : 7); i++) { - pageList.push(i); - } - } else if (currentPage > 4 && pages >= currentPage + 3) { - for (var i = currentPage - 3; i <= currentPage + 3; i++) { - pageList.push(i); - } - } else if (currentPage > 4 && pages == currentPage + 2) { - for (var i = currentPage - 4; i <= pages; i++) { - pageList.push(i); - } - } else if (currentPage > 4 && pages == currentPage + 1) { - for (var i = currentPage - 5 < 1 ? 1 : currentPage - 5; i <= pages; i++) { - pageList.push(i); - } - } else if (currentPage > 4 && pages == currentPage) { - for (var i = currentPage - 6 < 1 ? 1 : currentPage - 6; i <= pages; i++) { - pageList.push(i); - } - } - - return { - prevPage: prevPage, - nextPage: nextPage, - pageList: pageList, - page: currentPage, - pages: pages, - }; -} - -// 查询列表数据 -function searchlist(page, rows) { - var param = { - page: page, - rows: rows ? rows : $("#rows").length > 0 ? $("#rows").html() * 1 : 20, - }; - if ($("#search-name").val()) { - param.name = $("#search-name").val(); - } - if ($("#search-url").val()) { - param.url = $("#search-url").val(); - } - $.get("/api/get-interface-list", param, function (data) { - var html = Handlebars.compile($("#list-template").html()); - $("#table-tbody").html(html(data.data.list)); - - // 处理分页数据 - var pageData = formatPage(data.data.page, data.data.pages); - pageData.total = data.data.total; - pageData.rows = data.data.rows; - var page = Handlebars.compile($("#page-template").html()); - $("#page").html(page(pageData)); - }); -} - -searchlist(1); - -// 打开新增弹出框 -function openAddModal() { - $("#interface-method").attr("disabled", false); - $("#interface-prefix").attr("disabled", false); - $("#interface-method").attr("data-value", "GET"); - $("#interface-prefix").attr("data-value", ""); - $("#interface-method").text("GET"); - $("#interface-prefix").text("无接口前缀"); - - $("#exampleModalLabel").text("新增接口"); - $("#init-data-btn").show(); - - $("#save-btn").show(); - $("#update-btn").hide(); - - $("#interface-name").prop("disabled", false); - $("#interface-path").prop("disabled", false); - - $("#interface-name").val(""); - $("#interface-path").val(""); - - $("#init-mock-btn").show(); - - editor.setValue(""); - editor.setReadOnly(false); //设置编辑器取消只读 -} - -// 打开导入swagger接口弹出框 -function openImportSwaggerInterfaceModal() { - $("#importSwaggerInterfaceModal").modal("show"); - $("#swagger-json-address").val(""); - $("#swagger-path-warp").html(""); -} - -// 组装响应数据 -function getResData(data) { - if (!data) return {}; - - var res; - if (data.type === "object") { - res = {}; - data = data.properties; - if (!data) return {}; - Object.keys(data).forEach(function (propKey) { - res[propKey] = getResData(data[propKey]); - }); - } else if (data.type === "array") { - res = []; - res.push(getResData(data.items)); - } else { - if (!data.example) { - if (data.type === "integer" || data.type === "number") data.example = 0; - if (data.type === "boolean") data.example = true; - if (data.type === "string") data.example = ""; - } - res = data.example; - } - - return res; -} - -function handleSwaggerJSON(res, owner) { - Object.keys(res.paths).forEach(function (pathKey) { - var pathData = res.paths[pathKey]; - Object.keys(pathData).forEach(function (methodKey) { - var methodData = pathData[methodKey]; - // 响应数据 - var resData = {}; - - var responses = Object.keys(methodData.responses); - var response = null; - for (var i = 0; i < responses.length; i++) { - if (responses[i] == 200) { - response = methodData.responses[responses[i]].schema; - break; - } - } - resData = getResData(response); - - var api = { - name: methodData.summary, - path: pathKey, - data: resData, - sourceData: JSON5.stringify(JSON.stringify(resData, null, 2)), - method: methodKey.toLocaleUpperCase(), - prefix: res.basePath, - isOpen: true, - }; - - res.tags.forEach(function (tag) { - if (tag.name === methodData.tags[0]) { - // 同一tag - if (!tag.paths) { - tag.paths = [api]; - } else { - tag.paths.push(api); - } - } - }); - - pathList.push(api); - }); - }); - - tagList = res.tags; - var swaggerListTemplate = Handlebars.compile( - $("#swagger-path-template").html() - ); - $("#swagger-path-warp").html(swaggerListTemplate(tagList)); - - $(owner).css("display", ""); - $(owner).next().css("display", "none"); -} - -// 获取swagger数据 -var tagList = []; -var pathList = []; -function getSwaggerJsonData(owner) { - if ( - $("#swagger-json-address").val() === "" || - $("#swagger-json-address").val() === undefined - ) { - alertInfo("请输入地址", "danger"); - return; - } - $(owner).css("display", "none"); - $(owner).next().css("display", ""); - // reset - tagList = []; - pathList = []; - - new SwaggerClient($("#swagger-json-address").val()).then(function ( - swaggerData - ) { - if (JSON.stringify(swaggerData.spec) === "{}") { - alertInfo("该地址不是标准的JSON数据结构", "danger"); - $(owner).css("display", ""); - $(owner).next().css("display", "none"); - return; - } - handleSwaggerJSON(swaggerData.spec, owner); - }); -} - -function handleChangeFile(owner) { - console.log(owner.files); -} - -function getSwaggerJsonLocalData(owner) { - if ( - $("#swagger-json-local").val() === "" || - $("#swagger-json-local").val() === undefined - ) { - alertInfo("请选择swagger json文件", "danger"); - return; - } - $(owner).css("display", "none"); - $(owner).next().css("display", ""); - // reset - tagList = []; - pathList = []; - var reader = new FileReader(); - reader.readAsText($("#swagger-json-local").get(0).files[0]); - reader.onload = (res) => { - try { - res = JSON.parse(res.target.result); - - new SwaggerClient({ - spec: res, - }).then(function (swaggerData) { - handleSwaggerJSON(swaggerData.spec, owner); - }); - } catch (e) { - console.error("json 解析出错", e.message); - $(owner).css("display", ""); - $(owner).next().css("display", "none"); - } - }; -} - -// 导入全选 -function changeTagPaths(owner, e) { - e = e || window.event; - if (e.stopPropagation) { - e.stopPropagation(); - } else { - e.cancelBubble = true; - } - var isChechk = $(owner).prop("checked"); - $(owner) - .parent() - .next() - .find("input[name='swagger-tag-path']") - .each(function (index, data) { - $(data).prop("checked", isChechk); - }); -} - -// 确认导入 -function confirmImport() { - var selectedPath = []; - var param = []; // 保存的接口列表 - $("#swagger-path-warp") - .find("input[name='swagger-tag-path']:checked") - .each(function (index, data) { - selectedPath.push($(data).val()); - }); - pathList.forEach(function (path) { - selectedPath.forEach(function (pathStr) { - if (pathStr === path.path) { - param.push(path); - } - }); - }); - - $.ajax({ - url: "/api/import-interface", - method: "post", - dataType: "json", - data: JSON.stringify(param), - contentType: "application/json", - success: function (data) { - if (data.success) { - $("#importSwaggerInterfaceModal").modal("hide"); - alertInfo("保存成功", "success"); - - searchlist(1); - } else { - alertInfo(data.errorMsg, "danger"); - } - }, - }); -} - -// 清空接口 -function removeInterface() { - var emp = window.confirm("是否清空接口?"); - if (emp) { - $.get("/api/delete-all-interface", function (data) { - if (data.success) { - searchlist(1); - alertInfo("清空成功", "success"); - } else { - alertInfo(data.errorMsg, "danger"); - } - }); - } -} - -// 新增保存接口 -function saveInterface() { - if (!checkForm()) return; - - var data = editor.getValue(); - - try { - var json5Data = JSON5.parse(data); - } catch (reason) { - alertInfo(reason, "danger"); - return; - } - - var param = { - name: $("#interface-name").val(), - path: $("#interface-path").val(), - data: Mock.mock(json5Data), - sourceData: JSON5.stringify(data), - method: $("#interface-method").attr("data-value"), - prefix: $("#interface-prefix").attr("data-value"), - isOpen: true, - }; - - $.ajax({ - url: "/api/add-interface", - method: "post", - dataType: "json", - data: JSON.stringify(param), - contentType: "application/json", - success: function (data) { - if (data.success) { - alertInfo("保存成功", "success"); - $("#exampleModal").modal("hide"); - $("#interface-name").val(""); - $("#interface-path").val(""); - - searchlist(1); - } else { - alertInfo(data.errorMsg, "danger"); - } - }, - }); -} - -// 查看接口 -function getInterface(id) { - $("#exampleModalLabel").text("查看接口"); - $("#init-data-btn").hide(); - - editor.setReadOnly(true); - - $("#exampleModal").modal("show"); - $("#save-btn").hide(); - $("#update-btn").hide(); - $("#init-mock-btn").hide(); - - $.ajax({ - url: "/api/get-interface-detail", - method: "post", - dataType: "json", - data: JSON.stringify({ - id: id, - }), - contentType: "application/json", - success: function (data) { - if (data.success) { - $("#interface-name").val(data.data.name); - $("#interface-path").val(data.data.path); - $("#interface-method").attr("disabled", true); - $("#interface-method").text(data.data.method); - $("#interface-prefix").attr("disabled", true); - $("#interface-prefix").text( - data.data.prefix ? data.data.prefix : "无接口前缀" - ); - editor.setValue(JSON5.parse(data.data.sourceData)); - - $("#interface-name").prop("disabled", true); - $("#interface-path").prop("disabled", true); - } else { - alertInfo(data.errorMsg, "danger"); - } - }, - }); -} - -// 打开编辑弹出框调用编辑回显接口 -function editInterface(id) { - $("#exampleModalLabel").text("编辑接口"); - $("#init-data-btn").hide(); - $("#interface-method").attr("disabled", false); - $("#interface-prefix").attr("disabled", false); - - $("#exampleModal").modal("show"); - $("#save-btn").hide(); - $("#update-btn").show(); - $("#update-btn").prop("data-id", id); - $("#interface-name").prop("disabled", false); - $("#interface-path").prop("disabled", false); - $("#init-mock-btn").show(); - $.ajax({ - url: "/api/get-interface-detail", - method: "post", - dataType: "json", - data: JSON.stringify({ - id: id, - }), - contentType: "application/json", - success: function (data) { - if (data.success) { - $("#interface-name").val(data.data.name); - $("#interface-path").val(data.data.path); - $("#interface-method").attr("data-value", data.data.method); - $("#interface-method").text(data.data.method); - $("#interface-prefix").attr("data-value", data.data.prefix); - $("#interface-prefix").text( - data.data.prefix ? data.data.prefix : "无接口前缀" - ); - - editor.setValue(JSON5.parse(data.data.sourceData)); - editor.setReadOnly(false); - } else { - alertInfo(data.errorMsg, "danger"); - } - }, - }); -} - -// 删除接口 -function deleteInterface(id) { - var emp = confirm("是否删除该接口?"); - if (emp != 0) { - // 调删除接口 - $.ajax({ - url: "/api/delete-interface", - method: "post", - dataType: "json", - data: JSON.stringify({ - id: id, - }), - contentType: "application/json", - success: function (data) { - if (data.success) { - alertInfo("删除成功"); - - searchlist(1); - } else { - alertInfo(data.errorMsg, "danger"); - } - }, - }); - } -} - -// 更新接口 -function updateInterface() { - if (!checkForm()) return; - var data = editor.getValue(); - try { - var json5Data = JSON5.parse(data); - } catch (reason) { - alertInfo(reason, "danger"); - return; - } - var param = { - id: $("#update-btn").prop("data-id"), - name: $("#interface-name").val(), - path: $("#interface-path").val(), - data: Mock.mock(json5Data), - sourceData: JSON5.stringify(data), - method: $("#interface-method").attr("data-value"), - prefix: $("#interface-prefix").attr("data-value"), - }; - $.ajax({ - url: "/api/update-interface", - method: "post", - dataType: "json", - data: JSON.stringify(param), - contentType: "application/json", - success: function (data) { - if (data.success) { - alertInfo("更新成功", "success"); - $("#exampleModal").modal("hide"); - - searchlist(1); - } else { - alertInfo(data.errorMsg, "danger"); - } - }, - }); -} -var baseId = ""; -var basePageId = ""; -$.get("/api/get-base-list", {}, function (data) { - if (data.success && data.length != 0) { - data.data.forEach((item) => { - if (item.type == "base-data") { - baseId = item._id; - } else { - basePageId = item._id; - } - }); - } -}); - -// 初始化基础数据 -function initBaseData(type) { - var id; - if (type == "base-data") { - id = baseId; - } else { - id = basePageId; - } - if (!id) { - alertInfo("还没有维护基础数据,请去维护基础数据", "warning"); - return; - } - $.ajax({ - url: "/api/get-base-data-by-id", - method: "post", - dataType: "json", - data: JSON.stringify({ - id: id, - }), - contentType: "application/json", - success: function (data) { - if (data.success) { - editor.setValue(JSON.stringify(data.data.data, null, 2)); - } else { - alertInfo(data.errorMsg, "danger"); - } - }, - }); -} - -// 生成mock数据 -function initMock() { - try { - var mock = JSON5.parse(editor.getValue()); - $("#preview").val(JSON.stringify(Mock.mock(mock), null, 4)); - } catch (reason) { - alertInfo("格式错误:" + reason, "danger"); - } -} - -// 查询项目配置数据 -$.get("/api/get-config", function (data) { - $("#config-mock").val(data.data.mock ? "1" : "0"); - $("#config-mock-id").val(data.data._id); - if (data.data.mock) { - // 显示启用中 - $("#config-mock-warp").addClass("active"); - $("#config-mock-text").html("Mock 启用中..."); - } else { - // 显示停用中 - $("#config-mock-text").html("Mock 停用中..."); - } - - if (data.data.mock === undefined) { - alert("检测到你还没有维护代理地址, 请先维护项目代理地址"); - window.location.href = "/mock/config.html"; - } -}); - -function updateProjectMockStatus() { - if (confirm("您将要切换Mock状态,是否继续?")) { - var status = $("#config-mock").val() === "1" ? false : true; - var param = { - mock: status, - id: $("#config-mock-id").val(), - }; - $.ajax({ - url: "/api/update-config-mock", - method: "post", - dataType: "json", - data: JSON.stringify(param), - contentType: "application/json", - success: function (data) { - if (data.success) { - alertInfo("切换成功", "success"); - - $("#config-mock").val(status ? "1" : "0"); - if (status) { - $("#config-mock-warp").addClass("active"); - $("#config-mock-text").html("Mock 启用中..."); - } else { - $("#config-mock-warp").removeClass("active"); - $("#config-mock-text").html("Mock 停用中..."); - } - } else { - alertInfo(data.errorMsg, "danger"); - } - }, - }); - } -} diff --git a/client/lib/bootstrap.min.css b/client/lib/bootstrap.min.css deleted file mode 100644 index 92e3fe871295c44f8fa58ddc7ac242463f13e6bd..0000000000000000000000000000000000000000 --- a/client/lib/bootstrap.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap v4.3.1 (https://getbootstrap.com/) - * Copyright 2011-2019 The Bootstrap Authors - * Copyright 2011-2019 Twitter, Inc. - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([tabindex]){color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:2.5rem}.h2,h2{font-size:2rem}.h3,h3{font-size:1.75rem}.h4,h4{font-size:1.5rem}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300;line-height:1.2}.display-2{font-size:5.5rem;font-weight:300;line-height:1.2}.display-3{font-size:4.5rem;font-weight:300;line-height:1.2}.display-4{font-size:3.5rem;font-weight:300;line-height:1.2}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:90%;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote-footer{display:block;font-size:80%;color:#6c757d}.blockquote-footer::before{content:"\2014\00A0"}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#6c757d}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:87.5%;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;font-size:87.5%;color:#212529}pre code{font-size:inherit;color:inherit;word-break:normal}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>.col,.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col,.col-1,.col-10,.col-11,.col-12,.col-2,.col-3,.col-4,.col-5,.col-6,.col-7,.col-8,.col-9,.col-auto,.col-lg,.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-auto,.col-md,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-auto,.col-sm,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-auto,.col-xl,.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xl-auto{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-first{-ms-flex-order:-1;order:-1}.order-last{-ms-flex-order:13;order:13}.order-0{-ms-flex-order:0;order:0}.order-1{-ms-flex-order:1;order:1}.order-2{-ms-flex-order:2;order:2}.order-3{-ms-flex-order:3;order:3}.order-4{-ms-flex-order:4;order:4}.order-5{-ms-flex-order:5;order:5}.order-6{-ms-flex-order:6;order:6}.order-7{-ms-flex-order:7;order:7}.order-8{-ms-flex-order:8;order:8}.order-9{-ms-flex-order:9;order:9}.order-10{-ms-flex-order:10;order:10}.order-11{-ms-flex-order:11;order:11}.order-12{-ms-flex-order:12;order:12}.offset-1{margin-left:8.333333%}.offset-2{margin-left:16.666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.333333%}.offset-5{margin-left:41.666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.333333%}.offset-8{margin-left:66.666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.333333%}.offset-11{margin-left:91.666667%}@media (min-width:576px){.col-sm{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-sm-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-sm-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-sm-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-sm-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-sm-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-sm-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-sm-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-sm-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-sm-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-sm-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-sm-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-sm-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-sm-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-sm-first{-ms-flex-order:-1;order:-1}.order-sm-last{-ms-flex-order:13;order:13}.order-sm-0{-ms-flex-order:0;order:0}.order-sm-1{-ms-flex-order:1;order:1}.order-sm-2{-ms-flex-order:2;order:2}.order-sm-3{-ms-flex-order:3;order:3}.order-sm-4{-ms-flex-order:4;order:4}.order-sm-5{-ms-flex-order:5;order:5}.order-sm-6{-ms-flex-order:6;order:6}.order-sm-7{-ms-flex-order:7;order:7}.order-sm-8{-ms-flex-order:8;order:8}.order-sm-9{-ms-flex-order:9;order:9}.order-sm-10{-ms-flex-order:10;order:10}.order-sm-11{-ms-flex-order:11;order:11}.order-sm-12{-ms-flex-order:12;order:12}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.333333%}.offset-sm-2{margin-left:16.666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.333333%}.offset-sm-5{margin-left:41.666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.333333%}.offset-sm-8{margin-left:66.666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.333333%}.offset-sm-11{margin-left:91.666667%}}@media (min-width:768px){.col-md{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-md-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-md-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-md-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-md-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-md-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-md-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-md-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-md-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-md-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-md-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-md-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-md-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-md-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-md-first{-ms-flex-order:-1;order:-1}.order-md-last{-ms-flex-order:13;order:13}.order-md-0{-ms-flex-order:0;order:0}.order-md-1{-ms-flex-order:1;order:1}.order-md-2{-ms-flex-order:2;order:2}.order-md-3{-ms-flex-order:3;order:3}.order-md-4{-ms-flex-order:4;order:4}.order-md-5{-ms-flex-order:5;order:5}.order-md-6{-ms-flex-order:6;order:6}.order-md-7{-ms-flex-order:7;order:7}.order-md-8{-ms-flex-order:8;order:8}.order-md-9{-ms-flex-order:9;order:9}.order-md-10{-ms-flex-order:10;order:10}.order-md-11{-ms-flex-order:11;order:11}.order-md-12{-ms-flex-order:12;order:12}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.333333%}.offset-md-2{margin-left:16.666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.333333%}.offset-md-5{margin-left:41.666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.333333%}.offset-md-8{margin-left:66.666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.333333%}.offset-md-11{margin-left:91.666667%}}@media (min-width:992px){.col-lg{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-lg-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-lg-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-lg-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-lg-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-lg-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-lg-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-lg-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-lg-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-lg-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-lg-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-lg-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-lg-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-lg-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-lg-first{-ms-flex-order:-1;order:-1}.order-lg-last{-ms-flex-order:13;order:13}.order-lg-0{-ms-flex-order:0;order:0}.order-lg-1{-ms-flex-order:1;order:1}.order-lg-2{-ms-flex-order:2;order:2}.order-lg-3{-ms-flex-order:3;order:3}.order-lg-4{-ms-flex-order:4;order:4}.order-lg-5{-ms-flex-order:5;order:5}.order-lg-6{-ms-flex-order:6;order:6}.order-lg-7{-ms-flex-order:7;order:7}.order-lg-8{-ms-flex-order:8;order:8}.order-lg-9{-ms-flex-order:9;order:9}.order-lg-10{-ms-flex-order:10;order:10}.order-lg-11{-ms-flex-order:11;order:11}.order-lg-12{-ms-flex-order:12;order:12}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.333333%}.offset-lg-2{margin-left:16.666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.333333%}.offset-lg-5{margin-left:41.666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.333333%}.offset-lg-8{margin-left:66.666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.333333%}.offset-lg-11{margin-left:91.666667%}}@media (min-width:1200px){.col-xl{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;max-width:100%}.col-xl-auto{-ms-flex:0 0 auto;flex:0 0 auto;width:auto;max-width:100%}.col-xl-1{-ms-flex:0 0 8.333333%;flex:0 0 8.333333%;max-width:8.333333%}.col-xl-2{-ms-flex:0 0 16.666667%;flex:0 0 16.666667%;max-width:16.666667%}.col-xl-3{-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-xl-4{-ms-flex:0 0 33.333333%;flex:0 0 33.333333%;max-width:33.333333%}.col-xl-5{-ms-flex:0 0 41.666667%;flex:0 0 41.666667%;max-width:41.666667%}.col-xl-6{-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-xl-7{-ms-flex:0 0 58.333333%;flex:0 0 58.333333%;max-width:58.333333%}.col-xl-8{-ms-flex:0 0 66.666667%;flex:0 0 66.666667%;max-width:66.666667%}.col-xl-9{-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-xl-10{-ms-flex:0 0 83.333333%;flex:0 0 83.333333%;max-width:83.333333%}.col-xl-11{-ms-flex:0 0 91.666667%;flex:0 0 91.666667%;max-width:91.666667%}.col-xl-12{-ms-flex:0 0 100%;flex:0 0 100%;max-width:100%}.order-xl-first{-ms-flex-order:-1;order:-1}.order-xl-last{-ms-flex-order:13;order:13}.order-xl-0{-ms-flex-order:0;order:0}.order-xl-1{-ms-flex-order:1;order:1}.order-xl-2{-ms-flex-order:2;order:2}.order-xl-3{-ms-flex-order:3;order:3}.order-xl-4{-ms-flex-order:4;order:4}.order-xl-5{-ms-flex-order:5;order:5}.order-xl-6{-ms-flex-order:6;order:6}.order-xl-7{-ms-flex-order:7;order:7}.order-xl-8{-ms-flex-order:8;order:8}.order-xl-9{-ms-flex-order:9;order:9}.order-xl-10{-ms-flex-order:10;order:10}.order-xl-11{-ms-flex-order:11;order:11}.order-xl-12{-ms-flex-order:12;order:12}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.333333%}.offset-xl-2{margin-left:16.666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.333333%}.offset-xl-5{margin-left:41.666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.333333%}.offset-xl-8{margin-left:66.666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.333333%}.offset-xl-11{margin-left:91.666667%}}.table{width:100%;margin-bottom:1rem;color:#212529}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #dee2e6}.table thead th{vertical-align:bottom;border-bottom:2px solid #dee2e6}.table tbody+tbody{border-top:2px solid #dee2e6}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #dee2e6}.table-bordered td,.table-bordered th{border:1px solid #dee2e6}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-borderless tbody+tbody,.table-borderless td,.table-borderless th,.table-borderless thead th{border:0}.table-striped tbody tr:nth-of-type(odd){background-color:rgba(0,0,0,.05)}.table-hover tbody tr:hover{color:#212529;background-color:rgba(0,0,0,.075)}.table-primary,.table-primary>td,.table-primary>th{background-color:#b8daff}.table-primary tbody+tbody,.table-primary td,.table-primary th,.table-primary thead th{border-color:#7abaff}.table-hover .table-primary:hover{background-color:#9fcdff}.table-hover .table-primary:hover>td,.table-hover .table-primary:hover>th{background-color:#9fcdff}.table-secondary,.table-secondary>td,.table-secondary>th{background-color:#d6d8db}.table-secondary tbody+tbody,.table-secondary td,.table-secondary th,.table-secondary thead th{border-color:#b3b7bb}.table-hover .table-secondary:hover{background-color:#c8cbcf}.table-hover .table-secondary:hover>td,.table-hover .table-secondary:hover>th{background-color:#c8cbcf}.table-success,.table-success>td,.table-success>th{background-color:#c3e6cb}.table-success tbody+tbody,.table-success td,.table-success th,.table-success thead th{border-color:#8fd19e}.table-hover .table-success:hover{background-color:#b1dfbb}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#b1dfbb}.table-info,.table-info>td,.table-info>th{background-color:#bee5eb}.table-info tbody+tbody,.table-info td,.table-info th,.table-info thead th{border-color:#86cfda}.table-hover .table-info:hover{background-color:#abdde5}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#abdde5}.table-warning,.table-warning>td,.table-warning>th{background-color:#ffeeba}.table-warning tbody+tbody,.table-warning td,.table-warning th,.table-warning thead th{border-color:#ffdf7e}.table-hover .table-warning:hover{background-color:#ffe8a1}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#ffe8a1}.table-danger,.table-danger>td,.table-danger>th{background-color:#f5c6cb}.table-danger tbody+tbody,.table-danger td,.table-danger th,.table-danger thead th{border-color:#ed969e}.table-hover .table-danger:hover{background-color:#f1b0b7}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#f1b0b7}.table-light,.table-light>td,.table-light>th{background-color:#fdfdfe}.table-light tbody+tbody,.table-light td,.table-light th,.table-light thead th{border-color:#fbfcfc}.table-hover .table-light:hover{background-color:#ececf6}.table-hover .table-light:hover>td,.table-hover .table-light:hover>th{background-color:#ececf6}.table-dark,.table-dark>td,.table-dark>th{background-color:#c6c8ca}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#95999c}.table-hover .table-dark:hover{background-color:#b9bbbe}.table-hover .table-dark:hover>td,.table-hover .table-dark:hover>th{background-color:#b9bbbe}.table-active,.table-active>td,.table-active>th{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover{background-color:rgba(0,0,0,.075)}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:rgba(0,0,0,.075)}.table .thead-dark th{color:#fff;background-color:#343a40;border-color:#454d55}.table .thead-light th{color:#495057;background-color:#e9ecef;border-color:#dee2e6}.table-dark{color:#fff;background-color:#343a40}.table-dark td,.table-dark th,.table-dark thead th{border-color:#454d55}.table-dark.table-bordered{border:0}.table-dark.table-striped tbody tr:nth-of-type(odd){background-color:rgba(255,255,255,.05)}.table-dark.table-hover tbody tr:hover{color:#fff;background-color:rgba(255,255,255,.075)}@media (max-width:575.98px){.table-responsive-sm{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-sm>.table-bordered{border:0}}@media (max-width:767.98px){.table-responsive-md{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-md>.table-bordered{border:0}}@media (max-width:991.98px){.table-responsive-lg{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-lg>.table-bordered{border:0}}@media (max-width:1199.98px){.table-responsive-xl{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive-xl>.table-bordered{border:0}}.table-responsive{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.table-responsive>.table-bordered{border:0}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.form-control-file,.form-control-range{display:block;width:100%}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem;line-height:1.5}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem;line-height:1.5}.form-control-plaintext{display:block;width:100%;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control-lg{height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}select.form-control[multiple],select.form-control[size]{height:auto}textarea.form-control{height:auto}.form-group{margin-bottom:1rem}.form-text{display:block;margin-top:.25rem}.form-row{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin-right:-5px;margin-left:-5px}.form-row>.col,.form-row>[class*=col-]{padding-right:5px;padding-left:5px}.form-check{position:relative;display:block;padding-left:1.25rem}.form-check-input{position:absolute;margin-top:.3rem;margin-left:-1.25rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;padding-left:0;margin-right:.75rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.3125rem;margin-left:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#28a745}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(40,167,69,.9);border-radius:.25rem}.form-control.is-valid,.was-validated .form-control:valid{border-color:#28a745;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.form-control.is-valid~.valid-feedback,.form-control.is-valid~.valid-tooltip,.was-validated .form-control:valid~.valid-feedback,.was-validated .form-control:valid~.valid-tooltip{display:block}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-valid,.was-validated .custom-select:valid{border-color:#28a745;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%2328a745' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-valid:focus,.was-validated .custom-select:valid:focus{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-select.is-valid~.valid-feedback,.custom-select.is-valid~.valid-tooltip,.was-validated .custom-select:valid~.valid-feedback,.was-validated .custom-select:valid~.valid-tooltip{display:block}.form-control-file.is-valid~.valid-feedback,.form-control-file.is-valid~.valid-tooltip,.was-validated .form-control-file:valid~.valid-feedback,.was-validated .form-control-file:valid~.valid-tooltip{display:block}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#28a745}.form-check-input.is-valid~.valid-feedback,.form-check-input.is-valid~.valid-tooltip,.was-validated .form-check-input:valid~.valid-feedback,.was-validated .form-check-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid~.custom-control-label,.was-validated .custom-control-input:valid~.custom-control-label{color:#28a745}.custom-control-input.is-valid~.custom-control-label::before,.was-validated .custom-control-input:valid~.custom-control-label::before{border-color:#28a745}.custom-control-input.is-valid~.valid-feedback,.custom-control-input.is-valid~.valid-tooltip,.was-validated .custom-control-input:valid~.valid-feedback,.was-validated .custom-control-input:valid~.valid-tooltip{display:block}.custom-control-input.is-valid:checked~.custom-control-label::before,.was-validated .custom-control-input:valid:checked~.custom-control-label::before{border-color:#34ce57;background-color:#34ce57}.custom-control-input.is-valid:focus~.custom-control-label::before,.was-validated .custom-control-input:valid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.custom-control-input.is-valid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:valid:focus:not(:checked)~.custom-control-label::before{border-color:#28a745}.custom-file-input.is-valid~.custom-file-label,.was-validated .custom-file-input:valid~.custom-file-label{border-color:#28a745}.custom-file-input.is-valid~.valid-feedback,.custom-file-input.is-valid~.valid-tooltip,.was-validated .custom-file-input:valid~.valid-feedback,.was-validated .custom-file-input:valid~.valid-tooltip{display:block}.custom-file-input.is-valid:focus~.custom-file-label,.was-validated .custom-file-input:valid:focus~.custom-file-label{border-color:#28a745;box-shadow:0 0 0 .2rem rgba(40,167,69,.25)}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;line-height:1.5;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E");background-repeat:no-repeat;background-position:center right calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-control.is-invalid~.invalid-feedback,.form-control.is-invalid~.invalid-tooltip,.was-validated .form-control:invalid~.invalid-feedback,.was-validated .form-control:invalid~.invalid-tooltip{display:block}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.custom-select.is-invalid,.was-validated .custom-select:invalid{border-color:#dc3545;padding-right:calc((1em + .75rem) * 3 / 4 + 1.75rem);background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px,url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3e%3cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E") #fff no-repeat center right 1.75rem/calc(.75em + .375rem) calc(.75em + .375rem)}.custom-select.is-invalid:focus,.was-validated .custom-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-select.is-invalid~.invalid-feedback,.custom-select.is-invalid~.invalid-tooltip,.was-validated .custom-select:invalid~.invalid-feedback,.was-validated .custom-select:invalid~.invalid-tooltip{display:block}.form-control-file.is-invalid~.invalid-feedback,.form-control-file.is-invalid~.invalid-tooltip,.was-validated .form-control-file:invalid~.invalid-feedback,.was-validated .form-control-file:invalid~.invalid-tooltip{display:block}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-input.is-invalid~.invalid-feedback,.form-check-input.is-invalid~.invalid-tooltip,.was-validated .form-check-input:invalid~.invalid-feedback,.was-validated .form-check-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid~.custom-control-label,.was-validated .custom-control-input:invalid~.custom-control-label{color:#dc3545}.custom-control-input.is-invalid~.custom-control-label::before,.was-validated .custom-control-input:invalid~.custom-control-label::before{border-color:#dc3545}.custom-control-input.is-invalid~.invalid-feedback,.custom-control-input.is-invalid~.invalid-tooltip,.was-validated .custom-control-input:invalid~.invalid-feedback,.was-validated .custom-control-input:invalid~.invalid-tooltip{display:block}.custom-control-input.is-invalid:checked~.custom-control-label::before,.was-validated .custom-control-input:invalid:checked~.custom-control-label::before{border-color:#e4606d;background-color:#e4606d}.custom-control-input.is-invalid:focus~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.custom-control-input.is-invalid:focus:not(:checked)~.custom-control-label::before,.was-validated .custom-control-input:invalid:focus:not(:checked)~.custom-control-label::before{border-color:#dc3545}.custom-file-input.is-invalid~.custom-file-label,.was-validated .custom-file-input:invalid~.custom-file-label{border-color:#dc3545}.custom-file-input.is-invalid~.invalid-feedback,.custom-file-input.is-invalid~.invalid-tooltip,.was-validated .custom-file-input:invalid~.invalid-feedback,.was-validated .custom-file-input:invalid~.invalid-tooltip{display:block}.custom-file-input.is-invalid:focus~.custom-file-label,.was-validated .custom-file-input:invalid:focus~.custom-file-label{border-color:#dc3545;box-shadow:0 0 0 .2rem rgba(220,53,69,.25)}.form-inline{display:-ms-flexbox;display:flex;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin-bottom:0}.form-inline .form-group{display:-ms-flexbox;display:flex;-ms-flex:0 0 auto;flex:0 0 auto;-ms-flex-flow:row wrap;flex-flow:row wrap;-ms-flex-align:center;align-items:center;margin-bottom:0}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-plaintext{display:inline-block}.form-inline .custom-select,.form-inline .input-group{width:auto}.form-inline .form-check{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;-ms-flex-negative:0;flex-shrink:0;margin-top:0;margin-right:.25rem;margin-left:0}.form-inline .custom-control{-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.form-inline .custom-control-label{margin-bottom:0}}.btn{display:inline-block;font-weight:400;color:#212529;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled,fieldset:disabled a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:hover{color:#fff;background-color:#0069d9;border-color:#0062cc}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#007bff;border-color:#007bff}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0062cc;border-color:#005cbf}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(38,143,255,.5)}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5a6268;border-color:#545b62}.btn-secondary.focus,.btn-secondary:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:not(:disabled):not(.disabled).active,.btn-secondary:not(:disabled):not(.disabled):active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#545b62;border-color:#4e555b}.btn-secondary:not(:disabled):not(.disabled).active:focus,.btn-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(130,138,145,.5)}.btn-success{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:hover{color:#fff;background-color:#218838;border-color:#1e7e34}.btn-success.focus,.btn-success:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#28a745;border-color:#28a745}.btn-success:not(:disabled):not(.disabled).active,.btn-success:not(:disabled):not(.disabled):active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#1e7e34;border-color:#1c7430}.btn-success:not(:disabled):not(.disabled).active:focus,.btn-success:not(:disabled):not(.disabled):active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(72,180,97,.5)}.btn-info{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:hover{color:#fff;background-color:#138496;border-color:#117a8b}.btn-info.focus,.btn-info:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-info.disabled,.btn-info:disabled{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-info:not(:disabled):not(.disabled).active,.btn-info:not(:disabled):not(.disabled):active,.show>.btn-info.dropdown-toggle{color:#fff;background-color:#117a8b;border-color:#10707f}.btn-info:not(:disabled):not(.disabled).active:focus,.btn-info:not(:disabled):not(.disabled):active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(58,176,195,.5)}.btn-warning{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#212529;background-color:#e0a800;border-color:#d39e00}.btn-warning.focus,.btn-warning:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-warning:not(:disabled):not(.disabled).active,.btn-warning:not(:disabled):not(.disabled):active,.show>.btn-warning.dropdown-toggle{color:#212529;background-color:#d39e00;border-color:#c69500}.btn-warning:not(:disabled):not(.disabled).active:focus,.btn-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(222,170,12,.5)}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#c82333;border-color:#bd2130}.btn-danger.focus,.btn-danger:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:not(:disabled):not(.disabled).active,.btn-danger:not(:disabled):not(.disabled):active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#bd2130;border-color:#b21f2d}.btn-danger:not(:disabled):not(.disabled).active:focus,.btn-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(225,83,97,.5)}.btn-light{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#212529;background-color:#e2e6ea;border-color:#dae0e5}.btn-light.focus,.btn-light:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-light.disabled,.btn-light:disabled{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:not(:disabled):not(.disabled).active,.btn-light:not(:disabled):not(.disabled):active,.show>.btn-light.dropdown-toggle{color:#212529;background-color:#dae0e5;border-color:#d3d9df}.btn-light:not(:disabled):not(.disabled).active:focus,.btn-light:not(:disabled):not(.disabled):active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(216,217,219,.5)}.btn-dark{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:hover{color:#fff;background-color:#23272b;border-color:#1d2124}.btn-dark.focus,.btn-dark:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#343a40;border-color:#343a40}.btn-dark:not(:disabled):not(.disabled).active,.btn-dark:not(:disabled):not(.disabled):active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1d2124;border-color:#171a1d}.btn-dark:not(:disabled):not(.disabled).active:focus,.btn-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(82,88,93,.5)}.btn-outline-primary{color:#007bff;border-color:#007bff}.btn-outline-primary:hover{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#007bff;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active,.show>.btn-outline-primary.dropdown-toggle{color:#fff;background-color:#007bff;border-color:#007bff}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-primary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary.focus,.btn-outline-secondary:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-secondary:not(:disabled):not(.disabled).active,.btn-outline-secondary:not(:disabled):not(.disabled):active,.show>.btn-outline-secondary.dropdown-toggle{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-outline-secondary:not(:disabled):not(.disabled).active:focus,.btn-outline-secondary:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.btn-outline-success{color:#28a745;border-color:#28a745}.btn-outline-success:hover{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success.focus,.btn-outline-success:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#28a745;background-color:transparent}.btn-outline-success:not(:disabled):not(.disabled).active,.btn-outline-success:not(:disabled):not(.disabled):active,.show>.btn-outline-success.dropdown-toggle{color:#fff;background-color:#28a745;border-color:#28a745}.btn-outline-success:not(:disabled):not(.disabled).active:focus,.btn-outline-success:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-success.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.btn-outline-info{color:#17a2b8;border-color:#17a2b8}.btn-outline-info:hover{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info.focus,.btn-outline-info:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#17a2b8;background-color:transparent}.btn-outline-info:not(:disabled):not(.disabled).active,.btn-outline-info:not(:disabled):not(.disabled):active,.show>.btn-outline-info.dropdown-toggle{color:#fff;background-color:#17a2b8;border-color:#17a2b8}.btn-outline-info:not(:disabled):not(.disabled).active:focus,.btn-outline-info:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-info.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning.focus,.btn-outline-warning:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-warning:not(:disabled):not(.disabled).active,.btn-outline-warning:not(:disabled):not(.disabled):active,.show>.btn-outline-warning.dropdown-toggle{color:#212529;background-color:#ffc107;border-color:#ffc107}.btn-outline-warning:not(:disabled):not(.disabled).active:focus,.btn-outline-warning:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-warning.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger.focus,.btn-outline-danger:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-danger:not(:disabled):not(.disabled).active,.btn-outline-danger:not(:disabled):not(.disabled):active,.show>.btn-outline-danger.dropdown-toggle{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-outline-danger:not(:disabled):not(.disabled).active:focus,.btn-outline-danger:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-danger.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light.focus,.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-dark{color:#343a40;border-color:#343a40}.btn-outline-dark:hover{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark.focus,.btn-outline-dark:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#343a40;background-color:transparent}.btn-outline-dark:not(:disabled):not(.disabled).active,.btn-outline-dark:not(:disabled):not(.disabled):active,.show>.btn-outline-dark.dropdown-toggle{color:#fff;background-color:#343a40;border-color:#343a40}.btn-outline-dark:not(:disabled):not(.disabled).active:focus,.btn-outline-dark:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-dark.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.btn-link{font-weight:400;color:#007bff;text-decoration:none}.btn-link:hover{color:#0056b3;text-decoration:underline}.btn-link.focus,.btn-link:focus{text-decoration:underline;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.5rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{position:relative;height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.dropdown,.dropleft,.dropright,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:10rem;padding:.5rem 0;margin:.125rem 0 0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-left{right:auto;left:0}.dropdown-menu-right{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-left{right:auto;left:0}.dropdown-menu-sm-right{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-left{right:auto;left:0}.dropdown-menu-md-right{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-left{right:auto;left:0}.dropdown-menu-lg-right{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-left{right:auto;left:0}.dropdown-menu-xl-right{right:0;left:auto}}.dropup .dropdown-menu{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-menu{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropright .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropright .dropdown-toggle:empty::after{margin-left:0}.dropright .dropdown-toggle::after{vertical-align:0}.dropleft .dropdown-menu{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropleft .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropleft .dropdown-toggle::after{display:none}.dropleft .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropleft .dropdown-toggle:empty::after{margin-left:0}.dropleft .dropdown-toggle::before{vertical-align:0}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.25rem 1.5rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#16181b;text-decoration:none;background-color:#f8f9fa}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#007bff}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1.5rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1.5rem;color:#212529}.btn-group,.btn-group-vertical{position:relative;display:-ms-inline-flexbox;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;-ms-flex:1 1 auto;flex:1 1 auto}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{z-index:1}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:1}.btn-toolbar{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:start;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropright .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropleft .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:center;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio],.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:stretch;align-items:stretch;width:100%}.input-group>.custom-file,.input-group>.custom-select,.input-group>.form-control,.input-group>.form-control-plaintext{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.custom-file+.custom-file,.input-group>.custom-file+.custom-select,.input-group>.custom-file+.form-control,.input-group>.custom-select+.custom-file,.input-group>.custom-select+.custom-select,.input-group>.custom-select+.form-control,.input-group>.form-control+.custom-file,.input-group>.form-control+.custom-select,.input-group>.form-control+.form-control,.input-group>.form-control-plaintext+.custom-file,.input-group>.form-control-plaintext+.custom-select,.input-group>.form-control-plaintext+.form-control{margin-left:-1px}.input-group>.custom-file .custom-file-input:focus~.custom-file-label,.input-group>.custom-select:focus,.input-group>.form-control:focus{z-index:3}.input-group>.custom-file .custom-file-input:focus{z-index:4}.input-group>.custom-select:not(:last-child),.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-select:not(:first-child),.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group>.custom-file{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.input-group>.custom-file:not(:last-child) .custom-file-label,.input-group>.custom-file:not(:last-child) .custom-file-label::after{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.custom-file:not(:first-child) .custom-file-label{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append,.input-group-prepend{display:-ms-flexbox;display:flex}.input-group-append .btn,.input-group-prepend .btn{position:relative;z-index:2}.input-group-append .btn:focus,.input-group-prepend .btn:focus{z-index:3}.input-group-append .btn+.btn,.input-group-append .btn+.input-group-text,.input-group-append .input-group-text+.btn,.input-group-append .input-group-text+.input-group-text,.input-group-prepend .btn+.btn,.input-group-prepend .btn+.input-group-text,.input-group-prepend .input-group-text+.btn,.input-group-prepend .input-group-text+.input-group-text{margin-left:-1px}.input-group-prepend{margin-right:-1px}.input-group-append{margin-left:-1px}.input-group-text{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group-lg>.custom-select,.input-group-lg>.form-control:not(textarea){height:calc(1.5em + 1rem + 2px)}.input-group-lg>.custom-select,.input-group-lg>.form-control,.input-group-lg>.input-group-append>.btn,.input-group-lg>.input-group-append>.input-group-text,.input-group-lg>.input-group-prepend>.btn,.input-group-lg>.input-group-prepend>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;line-height:1.5;border-radius:.3rem}.input-group-sm>.custom-select,.input-group-sm>.form-control:not(textarea){height:calc(1.5em + .5rem + 2px)}.input-group-sm>.custom-select,.input-group-sm>.form-control,.input-group-sm>.input-group-append>.btn,.input-group-sm>.input-group-append>.input-group-text,.input-group-sm>.input-group-prepend>.btn,.input-group-sm>.input-group-prepend>.input-group-text{padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.input-group-lg>.custom-select,.input-group-sm>.custom-select{padding-right:1.75rem}.input-group>.input-group-append:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.btn,.input-group>.input-group-append:not(:last-child)>.input-group-text,.input-group>.input-group-prepend>.btn,.input-group>.input-group-prepend>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.btn,.input-group>.input-group-append>.input-group-text,.input-group>.input-group-prepend:first-child>.btn:not(:first-child),.input-group>.input-group-prepend:first-child>.input-group-text:not(:first-child),.input-group>.input-group-prepend:not(:first-child)>.btn,.input-group>.input-group-prepend:not(:first-child)>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}.custom-control{position:relative;display:block;min-height:1.5rem;padding-left:1.5rem}.custom-control-inline{display:-ms-inline-flexbox;display:inline-flex;margin-right:1rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:checked~.custom-control-label::before{color:#fff;border-color:#007bff;background-color:#007bff}.custom-control-input:focus~.custom-control-label::before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label::before{border-color:#80bdff}.custom-control-input:not(:disabled):active~.custom-control-label::before{color:#fff;background-color:#b3d7ff;border-color:#b3d7ff}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label::before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top}.custom-control-label::before{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;pointer-events:none;content:"";background-color:#fff;border:#adb5bd solid 1px}.custom-control-label::after{position:absolute;top:.25rem;left:-1.5rem;display:block;width:1rem;height:1rem;content:"";background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-label::before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='%23fff' d='M0 2h4'/%3e%3c/svg%3e")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-radio .custom-control-label::before{border-radius:50%}.custom-radio .custom-control-input:checked~.custom-control-label::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.custom-radio .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-switch{padding-left:2.25rem}.custom-switch .custom-control-label::before{left:-2.25rem;width:1.75rem;pointer-events:all;border-radius:.5rem}.custom-switch .custom-control-label::after{top:calc(.25rem + 2px);left:calc(-2.25rem + 2px);width:calc(1rem - 4px);height:calc(1rem - 4px);background-color:#adb5bd;border-radius:.5rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:transform .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,-webkit-transform .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-switch .custom-control-label::after{transition:none}}.custom-switch .custom-control-input:checked~.custom-control-label::after{background-color:#fff;-webkit-transform:translateX(.75rem);transform:translateX(.75rem)}.custom-switch .custom-control-input:disabled:checked~.custom-control-label::before{background-color:rgba(0,123,255,.5)}.custom-select{display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem 1.75rem .375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;vertical-align:middle;background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='%23343a40' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e") no-repeat right .75rem center/8px 10px;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-select:focus{border-color:#80bdff;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-select:focus::-ms-value{color:#495057;background-color:#fff}.custom-select[multiple],.custom-select[size]:not([size="1"]){height:auto;padding-right:.75rem;background-image:none}.custom-select:disabled{color:#6c757d;background-color:#e9ecef}.custom-select::-ms-expand{display:none}.custom-select-sm{height:calc(1.5em + .5rem + 2px);padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.custom-select-lg{height:calc(1.5em + 1rem + 2px);padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.custom-file{position:relative;display:inline-block;width:100%;height:calc(1.5em + .75rem + 2px);margin-bottom:0}.custom-file-input{position:relative;z-index:2;width:100%;height:calc(1.5em + .75rem + 2px);margin:0;opacity:0}.custom-file-input:focus~.custom-file-label{border-color:#80bdff;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-file-input:disabled~.custom-file-label{background-color:#e9ecef}.custom-file-input:lang(en)~.custom-file-label::after{content:"Browse"}.custom-file-input~.custom-file-label[data-browse]::after{content:attr(data-browse)}.custom-file-label{position:absolute;top:0;right:0;left:0;z-index:1;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;border:1px solid #ced4da;border-radius:.25rem}.custom-file-label::after{position:absolute;top:0;right:0;bottom:0;z-index:3;display:block;height:calc(1.5em + .75rem);padding:.375rem .75rem;line-height:1.5;color:#495057;content:"Browse";background-color:#e9ecef;border-left:inherit;border-radius:0 .25rem .25rem 0}.custom-range{width:100%;height:calc(1rem + .4rem);padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.custom-range:focus{outline:0}.custom-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range:focus::-ms-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .2rem rgba(0,123,255,.25)}.custom-range::-moz-focus-outer{border:0}.custom-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-webkit-slider-thumb{transition:none}}.custom-range::-webkit-slider-thumb:active{background-color:#b3d7ff}.custom-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-moz-range-thumb{transition:none}}.custom-range::-moz-range-thumb:active{background-color:#b3d7ff}.custom-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.custom-range::-ms-thumb{width:1rem;height:1rem;margin-top:0;margin-right:.2rem;margin-left:.2rem;background-color:#007bff;border:0;border-radius:1rem;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;appearance:none}@media (prefers-reduced-motion:reduce){.custom-range::-ms-thumb{transition:none}}.custom-range::-ms-thumb:active{background-color:#b3d7ff}.custom-range::-ms-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:transparent;border-color:transparent;border-width:.5rem}.custom-range::-ms-fill-lower{background-color:#dee2e6;border-radius:1rem}.custom-range::-ms-fill-upper{margin-right:15px;background-color:#dee2e6;border-radius:1rem}.custom-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.custom-range:disabled::-webkit-slider-runnable-track{cursor:default}.custom-range:disabled::-moz-range-thumb{background-color:#adb5bd}.custom-range:disabled::-moz-range-track{cursor:default}.custom-range:disabled::-ms-thumb{background-color:#adb5bd}.custom-control-label::before,.custom-file-label,.custom-select{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label::before,.custom-file-label,.custom-select{transition:none}}.nav{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-item{margin-bottom:-1px}.nav-tabs .nav-link{border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#007bff}.nav-fill .nav-item{-ms-flex:1 1 auto;flex:1 1 auto;text-align:center}.nav-justified .nav-item{-ms-flex-preferred-size:0;flex-basis:0;-ms-flex-positive:1;flex-grow:1;text-align:center}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:.5rem 1rem}.navbar>.container,.navbar>.container-fluid{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}.navbar-brand{display:inline-block;padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;line-height:inherit;white-space:nowrap}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-nav{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static;float:none}.navbar-text{display:inline-block;padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{-ms-flex-preferred-size:100%;flex-basis:100%;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;content:"";background:no-repeat center center;background-size:100% 100%}@media (max-width:575.98px){.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:576px){.navbar-expand-sm{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-sm .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm>.container,.navbar-expand-sm>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-sm .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}}@media (max-width:767.98px){.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:768px){.navbar-expand-md{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-md .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md>.container,.navbar-expand-md>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-md .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}}@media (max-width:991.98px){.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:992px){.navbar-expand-lg{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-lg .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg>.container,.navbar-expand-lg>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-lg .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}}@media (max-width:1199.98px){.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{padding-right:0;padding-left:0}}@media (min-width:1200px){.navbar-expand-xl{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand-xl .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl>.container,.navbar-expand-xl>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand-xl .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}}.navbar-expand{-ms-flex-flow:row nowrap;flex-flow:row nowrap;-ms-flex-pack:start;justify-content:flex-start}.navbar-expand>.container,.navbar-expand>.container-fluid{padding-right:0;padding-left:0}.navbar-expand .navbar-nav{-ms-flex-direction:row;flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand>.container,.navbar-expand>.container-fluid{-ms-flex-wrap:nowrap;flex-wrap:nowrap}.navbar-expand .navbar-collapse{display:-ms-flexbox!important;display:flex!important;-ms-flex-preferred-size:auto;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.5)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.show,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.5);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(0, 0, 0, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.5)}.navbar-light .navbar-text a{color:rgba(0,0,0,.9)}.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.show,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.5);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='rgba(255, 255, 255, 0.5)' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.5)}.navbar-dark .navbar-text a{color:#fff}.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{-ms-flex:1 1 auto;flex:1 1 auto;padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header+.list-group .list-group-item:first-child{border-top:0}.card-footer{padding:.75rem 1.25rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.625rem;margin-bottom:-.75rem;margin-left:-.625rem;border-bottom:0}.card-header-pills{margin-right:-.625rem;margin-left:-.625rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}.card-img{width:100%;border-radius:calc(.25rem - 1px)}.card-img-top{width:100%;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img-bottom{width:100%;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-deck{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-deck .card{margin-bottom:15px}@media (min-width:576px){.card-deck{-ms-flex-flow:row wrap;flex-flow:row wrap;margin-right:-15px;margin-left:-15px}.card-deck .card{display:-ms-flexbox;display:flex;-ms-flex:1 0 0%;flex:1 0 0%;-ms-flex-direction:column;flex-direction:column;margin-right:15px;margin-bottom:0;margin-left:15px}}.card-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.card-group>.card{margin-bottom:15px}@media (min-width:576px){.card-group{-ms-flex-flow:row wrap;flex-flow:row wrap}.card-group>.card{-ms-flex:1 0 0%;flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.card-columns .card{margin-bottom:.75rem}@media (min-width:576px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem;orphans:1;widows:1}.card-columns .card{display:inline-block;width:100%}}.accordion>.card{overflow:hidden}.accordion>.card:not(:first-of-type) .card-header:first-child{border-radius:0}.accordion>.card:not(:first-of-type):not(:last-of-type){border-bottom:0;border-radius:0}.accordion>.card:first-of-type{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.accordion>.card:last-of-type{border-top-left-radius:0;border-top-right-radius:0}.accordion>.card .card-header{margin-bottom:-1px}.breadcrumb{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#e9ecef;border-radius:.25rem}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{display:inline-block;padding-right:.5rem;color:#6c757d;content:"/"}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:underline}.breadcrumb-item+.breadcrumb-item:hover::before{text-decoration:none}.breadcrumb-item.active{color:#6c757d}.pagination{display:-ms-flexbox;display:flex;padding-left:0;list-style:none;border-radius:.25rem}.page-link{position:relative;display:block;padding:.5rem .75rem;margin-left:-1px;line-height:1.25;color:#007bff;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:#0056b3;text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.5}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem;line-height:1.5}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.6em;padding-left:.6em;border-radius:10rem}.badge-primary{color:#fff;background-color:#007bff}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:#0062cc}a.badge-primary.focus,a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.5)}.badge-secondary{color:#fff;background-color:#6c757d}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:#545b62}a.badge-secondary.focus,a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(108,117,125,.5)}.badge-success{color:#fff;background-color:#28a745}a.badge-success:focus,a.badge-success:hover{color:#fff;background-color:#1e7e34}a.badge-success.focus,a.badge-success:focus{outline:0;box-shadow:0 0 0 .2rem rgba(40,167,69,.5)}.badge-info{color:#fff;background-color:#17a2b8}a.badge-info:focus,a.badge-info:hover{color:#fff;background-color:#117a8b}a.badge-info.focus,a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(23,162,184,.5)}.badge-warning{color:#212529;background-color:#ffc107}a.badge-warning:focus,a.badge-warning:hover{color:#212529;background-color:#d39e00}a.badge-warning.focus,a.badge-warning:focus{outline:0;box-shadow:0 0 0 .2rem rgba(255,193,7,.5)}.badge-danger{color:#fff;background-color:#dc3545}a.badge-danger:focus,a.badge-danger:hover{color:#fff;background-color:#bd2130}a.badge-danger.focus,a.badge-danger:focus{outline:0;box-shadow:0 0 0 .2rem rgba(220,53,69,.5)}.badge-light{color:#212529;background-color:#f8f9fa}a.badge-light:focus,a.badge-light:hover{color:#212529;background-color:#dae0e5}a.badge-light.focus,a.badge-light:focus{outline:0;box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.badge-dark{color:#fff;background-color:#343a40}a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#1d2124}a.badge-dark.focus,a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(52,58,64,.5)}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#e9ecef;border-radius:.3rem}@media (min-width:576px){.jumbotron{padding:4rem 2rem}}.jumbotron-fluid{padding-right:0;padding-left:0;border-radius:0}.alert{position:relative;padding:.75rem 1.25rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:4rem}.alert-dismissible .close{position:absolute;top:0;right:0;padding:.75rem 1.25rem;color:inherit}.alert-primary{color:#004085;background-color:#cce5ff;border-color:#b8daff}.alert-primary hr{border-top-color:#9fcdff}.alert-primary .alert-link{color:#002752}.alert-secondary{color:#383d41;background-color:#e2e3e5;border-color:#d6d8db}.alert-secondary hr{border-top-color:#c8cbcf}.alert-secondary .alert-link{color:#202326}.alert-success{color:#155724;background-color:#d4edda;border-color:#c3e6cb}.alert-success hr{border-top-color:#b1dfbb}.alert-success .alert-link{color:#0b2e13}.alert-info{color:#0c5460;background-color:#d1ecf1;border-color:#bee5eb}.alert-info hr{border-top-color:#abdde5}.alert-info .alert-link{color:#062c33}.alert-warning{color:#856404;background-color:#fff3cd;border-color:#ffeeba}.alert-warning hr{border-top-color:#ffe8a1}.alert-warning .alert-link{color:#533f03}.alert-danger{color:#721c24;background-color:#f8d7da;border-color:#f5c6cb}.alert-danger hr{border-top-color:#f1b0b7}.alert-danger .alert-link{color:#491217}.alert-light{color:#818182;background-color:#fefefe;border-color:#fdfdfe}.alert-light hr{border-top-color:#ececf6}.alert-light .alert-link{color:#686868}.alert-dark{color:#1b1e21;background-color:#d6d8d9;border-color:#c6c8ca}.alert-dark hr{border-top-color:#b9bbbe}.alert-dark .alert-link{color:#040505}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:-ms-flexbox;display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;color:#fff;text-align:center;white-space:nowrap;background-color:#007bff;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:progress-bar-stripes 1s linear infinite;animation:progress-bar-stripes 1s linear infinite}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.media{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start}.media-body{-ms-flex:1;flex:1}.list-group{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#007bff;border-color:#007bff}.list-group-horizontal{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}@media (min-width:576px){.list-group-horizontal-sm{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-sm .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-sm .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:768px){.list-group-horizontal-md{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-md .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-md .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:992px){.list-group-horizontal-lg{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-lg .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-lg .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}@media (min-width:1200px){.list-group-horizontal-xl{-ms-flex-direction:row;flex-direction:row}.list-group-horizontal-xl .list-group-item{margin-right:-1px;margin-bottom:0}.list-group-horizontal-xl .list-group-item:first-child{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl .list-group-item:last-child{margin-right:0;border-top-right-radius:.25rem;border-bottom-right-radius:.25rem;border-bottom-left-radius:0}}.list-group-flush .list-group-item{border-right:0;border-left:0;border-radius:0}.list-group-flush .list-group-item:last-child{margin-bottom:-1px}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{margin-bottom:0;border-bottom:0}.list-group-item-primary{color:#004085;background-color:#b8daff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#004085;background-color:#9fcdff}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#004085;border-color:#004085}.list-group-item-secondary{color:#383d41;background-color:#d6d8db}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#383d41;background-color:#c8cbcf}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#383d41;border-color:#383d41}.list-group-item-success{color:#155724;background-color:#c3e6cb}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#155724;background-color:#b1dfbb}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#155724;border-color:#155724}.list-group-item-info{color:#0c5460;background-color:#bee5eb}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#0c5460;background-color:#abdde5}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#0c5460;border-color:#0c5460}.list-group-item-warning{color:#856404;background-color:#ffeeba}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#856404;background-color:#ffe8a1}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#856404;border-color:#856404}.list-group-item-danger{color:#721c24;background-color:#f5c6cb}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#721c24;background-color:#f1b0b7}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#721c24;border-color:#721c24}.list-group-item-light{color:#818182;background-color:#fdfdfe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#818182;background-color:#ececf6}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#818182;border-color:#818182}.list-group-item-dark{color:#1b1e21;background-color:#c6c8ca}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#1b1e21;background-color:#b9bbbe}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#1b1e21;border-color:#1b1e21}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.toast{max-width:350px;overflow:hidden;font-size:.875rem;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .25rem .75rem rgba(0,0,0,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.25rem}.toast:not(:last-child){margin-bottom:.75rem}.toast.showing{opacity:1}.toast.show{display:block;opacity:1}.toast.hide{display:none}.toast-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;padding:.25rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05)}.toast-body{padding:.75rem}.modal-open{overflow:hidden}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out;-webkit-transform:translate(0,-50px);transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{-webkit-transform:none;transform:none}.modal-dialog-scrollable{display:-ms-flexbox;display:flex;max-height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1rem);overflow:hidden}.modal-dialog-scrollable .modal-footer,.modal-dialog-scrollable .modal-header{-ms-flex-negative:0;flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-height:calc(100% - 1rem)}.modal-dialog-centered::before{display:block;height:calc(100vh - 1rem);content:""}.modal-dialog-centered.modal-dialog-scrollable{-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable::before{content:none}.modal-content{position:relative;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:-ms-flexbox;display:flex;-ms-flex-align:start;align-items:flex-start;-ms-flex-pack:justify;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem 1rem;margin:-1rem -1rem -1rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;-ms-flex:1 1 auto;flex:1 1 auto;padding:1rem}.modal-footer{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end;padding:1rem;border-top:1px solid #dee2e6;border-bottom-right-radius:.3rem;border-bottom-left-radius:.3rem}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{max-height:calc(100% - 3.5rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-dialog-centered::before{height:calc(100vh - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.tooltip{position:absolute;z-index:1070;display:block;margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[x-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[x-placement^=top] .arrow,.bs-tooltip-top .arrow{bottom:0}.bs-tooltip-auto[x-placement^=top] .arrow::before,.bs-tooltip-top .arrow::before{top:0;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[x-placement^=right],.bs-tooltip-right{padding:0 .4rem}.bs-tooltip-auto[x-placement^=right] .arrow,.bs-tooltip-right .arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=right] .arrow::before,.bs-tooltip-right .arrow::before{right:0;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[x-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[x-placement^=bottom] .arrow,.bs-tooltip-bottom .arrow{top:0}.bs-tooltip-auto[x-placement^=bottom] .arrow::before,.bs-tooltip-bottom .arrow::before{bottom:0;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[x-placement^=left],.bs-tooltip-left{padding:0 .4rem}.bs-tooltip-auto[x-placement^=left] .arrow,.bs-tooltip-left .arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[x-placement^=left] .arrow::before,.bs-tooltip-left .arrow::before{left:0;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.popover .arrow::after,.popover .arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[x-placement^=top],.bs-popover-top{margin-bottom:.5rem}.bs-popover-auto[x-placement^=top]>.arrow,.bs-popover-top>.arrow{bottom:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=top]>.arrow::before,.bs-popover-top>.arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=top]>.arrow::after,.bs-popover-top>.arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[x-placement^=right],.bs-popover-right{margin-left:.5rem}.bs-popover-auto[x-placement^=right]>.arrow,.bs-popover-right>.arrow{left:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=right]>.arrow::before,.bs-popover-right>.arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=right]>.arrow::after,.bs-popover-right>.arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[x-placement^=bottom],.bs-popover-bottom{margin-top:.5rem}.bs-popover-auto[x-placement^=bottom]>.arrow,.bs-popover-bottom>.arrow{top:calc((.5rem + 1px) * -1)}.bs-popover-auto[x-placement^=bottom]>.arrow::before,.bs-popover-bottom>.arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=bottom]>.arrow::after,.bs-popover-bottom>.arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[x-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f7f7f7}.bs-popover-auto[x-placement^=left],.bs-popover-left{margin-right:.5rem}.bs-popover-auto[x-placement^=left]>.arrow,.bs-popover-left>.arrow{right:calc((.5rem + 1px) * -1);width:.5rem;height:1rem;margin:.3rem 0}.bs-popover-auto[x-placement^=left]>.arrow::before,.bs-popover-left>.arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[x-placement^=left]>.arrow::after,.bs-popover-left>.arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem .75rem;margin-bottom:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:.5rem .75rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{-ms-touch-action:pan-y;touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-right,.carousel-item-next:not(.carousel-item-left){-webkit-transform:translateX(100%);transform:translateX(100%)}.active.carousel-item-left,.carousel-item-prev:not(.carousel-item-right){-webkit-transform:translateX(-100%);transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;-webkit-transform:none;transform:none}.carousel-fade .carousel-item-next.carousel-item-left,.carousel-fade .carousel-item-prev.carousel-item-right,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{z-index:0;opacity:0;transition:0s .6s opacity}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-left,.carousel-fade .active.carousel-item-right{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;width:15%;color:#fff;text-align:center;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:20px;height:20px;background:no-repeat 50%/100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:15;display:-ms-flexbox;display:flex;-ms-flex-pack:center;justify-content:center;padding-left:0;margin-right:15%;margin-left:15%;list-style:none}.carousel-indicators li{box-sizing:content-box;-ms-flex:0 1 auto;flex:0 1 auto;width:30px;height:3px;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators li{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center}@-webkit-keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes spinner-border{to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:spinner-border .75s linear infinite;animation:spinner-border .75s linear infinite}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}@keyframes spinner-grow{0%{-webkit-transform:scale(0);transform:scale(0)}50%{opacity:1}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:spinner-grow .75s linear infinite;animation:spinner-grow .75s linear infinite}.spinner-grow-sm{width:1rem;height:1rem}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.bg-primary{background-color:#007bff!important}a.bg-primary:focus,a.bg-primary:hover,button.bg-primary:focus,button.bg-primary:hover{background-color:#0062cc!important}.bg-secondary{background-color:#6c757d!important}a.bg-secondary:focus,a.bg-secondary:hover,button.bg-secondary:focus,button.bg-secondary:hover{background-color:#545b62!important}.bg-success{background-color:#28a745!important}a.bg-success:focus,a.bg-success:hover,button.bg-success:focus,button.bg-success:hover{background-color:#1e7e34!important}.bg-info{background-color:#17a2b8!important}a.bg-info:focus,a.bg-info:hover,button.bg-info:focus,button.bg-info:hover{background-color:#117a8b!important}.bg-warning{background-color:#ffc107!important}a.bg-warning:focus,a.bg-warning:hover,button.bg-warning:focus,button.bg-warning:hover{background-color:#d39e00!important}.bg-danger{background-color:#dc3545!important}a.bg-danger:focus,a.bg-danger:hover,button.bg-danger:focus,button.bg-danger:hover{background-color:#bd2130!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:#dae0e5!important}.bg-dark{background-color:#343a40!important}a.bg-dark:focus,a.bg-dark:hover,button.bg-dark:focus,button.bg-dark:hover{background-color:#1d2124!important}.bg-white{background-color:#fff!important}.bg-transparent{background-color:transparent!important}.border{border:1px solid #dee2e6!important}.border-top{border-top:1px solid #dee2e6!important}.border-right{border-right:1px solid #dee2e6!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-left{border-left:1px solid #dee2e6!important}.border-0{border:0!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.border-left-0{border-left:0!important}.border-primary{border-color:#007bff!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#28a745!important}.border-info{border-color:#17a2b8!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#343a40!important}.border-white{border-color:#fff!important}.rounded-sm{border-radius:.2rem!important}.rounded{border-radius:.25rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-right{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-left{border-top-left-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-lg{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-0{border-radius:0!important}.clearfix::after{display:block;clear:both;content:""}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:-ms-flexbox!important;display:flex!important}.d-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}@media (min-width:576px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:-ms-flexbox!important;display:flex!important}.d-sm-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:768px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:-ms-flexbox!important;display:flex!important}.d-md-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:992px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:-ms-flexbox!important;display:flex!important}.d-lg-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media (min-width:1200px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:-ms-flexbox!important;display:flex!important}.d-xl-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:-ms-flexbox!important;display:flex!important}.d-print-inline-flex{display:-ms-inline-flexbox!important;display:inline-flex!important}}.embed-responsive{position:relative;display:block;width:100%;padding:0;overflow:hidden}.embed-responsive::before{display:block;content:""}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9::before{padding-top:42.857143%}.embed-responsive-16by9::before{padding-top:56.25%}.embed-responsive-4by3::before{padding-top:75%}.embed-responsive-1by1::before{padding-top:100%}.flex-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-center{-ms-flex-align:center!important;align-items:center!important}.align-items-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}@media (min-width:576px){.flex-sm-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-sm-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-sm-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-sm-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-sm-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-sm-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-sm-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-sm-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-sm-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-sm-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-sm-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-sm-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-sm-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-sm-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-sm-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-sm-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-sm-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-sm-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-sm-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-sm-center{-ms-flex-align:center!important;align-items:center!important}.align-items-sm-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-sm-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-sm-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-sm-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-sm-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-sm-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-sm-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-sm-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-sm-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-sm-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-sm-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-sm-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-sm-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-sm-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:768px){.flex-md-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-md-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-md-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-md-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-md-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-md-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-md-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-md-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-md-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-md-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-md-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-md-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-md-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-md-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-md-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-md-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-md-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-md-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-md-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-md-center{-ms-flex-align:center!important;align-items:center!important}.align-items-md-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-md-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-md-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-md-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-md-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-md-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-md-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-md-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-md-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-md-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-md-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-md-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-md-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-md-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:992px){.flex-lg-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-lg-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-lg-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-lg-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-lg-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-lg-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-lg-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-lg-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-lg-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-lg-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-lg-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-lg-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-lg-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-lg-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-lg-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-lg-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-lg-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-lg-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-lg-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-lg-center{-ms-flex-align:center!important;align-items:center!important}.align-items-lg-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-lg-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-lg-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-lg-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-lg-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-lg-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-lg-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-lg-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-lg-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-lg-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-lg-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-lg-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-lg-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-lg-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}@media (min-width:1200px){.flex-xl-row{-ms-flex-direction:row!important;flex-direction:row!important}.flex-xl-column{-ms-flex-direction:column!important;flex-direction:column!important}.flex-xl-row-reverse{-ms-flex-direction:row-reverse!important;flex-direction:row-reverse!important}.flex-xl-column-reverse{-ms-flex-direction:column-reverse!important;flex-direction:column-reverse!important}.flex-xl-wrap{-ms-flex-wrap:wrap!important;flex-wrap:wrap!important}.flex-xl-nowrap{-ms-flex-wrap:nowrap!important;flex-wrap:nowrap!important}.flex-xl-wrap-reverse{-ms-flex-wrap:wrap-reverse!important;flex-wrap:wrap-reverse!important}.flex-xl-fill{-ms-flex:1 1 auto!important;flex:1 1 auto!important}.flex-xl-grow-0{-ms-flex-positive:0!important;flex-grow:0!important}.flex-xl-grow-1{-ms-flex-positive:1!important;flex-grow:1!important}.flex-xl-shrink-0{-ms-flex-negative:0!important;flex-shrink:0!important}.flex-xl-shrink-1{-ms-flex-negative:1!important;flex-shrink:1!important}.justify-content-xl-start{-ms-flex-pack:start!important;justify-content:flex-start!important}.justify-content-xl-end{-ms-flex-pack:end!important;justify-content:flex-end!important}.justify-content-xl-center{-ms-flex-pack:center!important;justify-content:center!important}.justify-content-xl-between{-ms-flex-pack:justify!important;justify-content:space-between!important}.justify-content-xl-around{-ms-flex-pack:distribute!important;justify-content:space-around!important}.align-items-xl-start{-ms-flex-align:start!important;align-items:flex-start!important}.align-items-xl-end{-ms-flex-align:end!important;align-items:flex-end!important}.align-items-xl-center{-ms-flex-align:center!important;align-items:center!important}.align-items-xl-baseline{-ms-flex-align:baseline!important;align-items:baseline!important}.align-items-xl-stretch{-ms-flex-align:stretch!important;align-items:stretch!important}.align-content-xl-start{-ms-flex-line-pack:start!important;align-content:flex-start!important}.align-content-xl-end{-ms-flex-line-pack:end!important;align-content:flex-end!important}.align-content-xl-center{-ms-flex-line-pack:center!important;align-content:center!important}.align-content-xl-between{-ms-flex-line-pack:justify!important;align-content:space-between!important}.align-content-xl-around{-ms-flex-line-pack:distribute!important;align-content:space-around!important}.align-content-xl-stretch{-ms-flex-line-pack:stretch!important;align-content:stretch!important}.align-self-xl-auto{-ms-flex-item-align:auto!important;align-self:auto!important}.align-self-xl-start{-ms-flex-item-align:start!important;align-self:flex-start!important}.align-self-xl-end{-ms-flex-item-align:end!important;align-self:flex-end!important}.align-self-xl-center{-ms-flex-item-align:center!important;align-self:center!important}.align-self-xl-baseline{-ms-flex-item-align:baseline!important;align-self:baseline!important}.align-self-xl-stretch{-ms-flex-item-align:stretch!important;align-self:stretch!important}}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}@media (min-width:576px){.float-sm-left{float:left!important}.float-sm-right{float:right!important}.float-sm-none{float:none!important}}@media (min-width:768px){.float-md-left{float:left!important}.float-md-right{float:right!important}.float-md-none{float:none!important}}@media (min-width:992px){.float-lg-left{float:left!important}.float-lg-right{float:right!important}.float-lg-none{float:none!important}}@media (min-width:1200px){.float-xl-left{float:left!important}.float-xl-right{float:right!important}.float-xl-none{float:none!important}}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}@supports ((position:-webkit-sticky) or (position:sticky)){.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mw-100{max-width:100%!important}.mh-100{max-height:100%!important}.min-vw-100{min-width:100vw!important}.min-vh-100{min-height:100vh!important}.vw-100{width:100vw!important}.vh-100{height:100vh!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:auto;content:"";background-color:rgba(0,0,0,0)}.m-0{margin:0!important}.mt-0,.my-0{margin-top:0!important}.mr-0,.mx-0{margin-right:0!important}.mb-0,.my-0{margin-bottom:0!important}.ml-0,.mx-0{margin-left:0!important}.m-1{margin:.25rem!important}.mt-1,.my-1{margin-top:.25rem!important}.mr-1,.mx-1{margin-right:.25rem!important}.mb-1,.my-1{margin-bottom:.25rem!important}.ml-1,.mx-1{margin-left:.25rem!important}.m-2{margin:.5rem!important}.mt-2,.my-2{margin-top:.5rem!important}.mr-2,.mx-2{margin-right:.5rem!important}.mb-2,.my-2{margin-bottom:.5rem!important}.ml-2,.mx-2{margin-left:.5rem!important}.m-3{margin:1rem!important}.mt-3,.my-3{margin-top:1rem!important}.mr-3,.mx-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.ml-3,.mx-3{margin-left:1rem!important}.m-4{margin:1.5rem!important}.mt-4,.my-4{margin-top:1.5rem!important}.mr-4,.mx-4{margin-right:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.ml-4,.mx-4{margin-left:1.5rem!important}.m-5{margin:3rem!important}.mt-5,.my-5{margin-top:3rem!important}.mr-5,.mx-5{margin-right:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.ml-5,.mx-5{margin-left:3rem!important}.p-0{padding:0!important}.pt-0,.py-0{padding-top:0!important}.pr-0,.px-0{padding-right:0!important}.pb-0,.py-0{padding-bottom:0!important}.pl-0,.px-0{padding-left:0!important}.p-1{padding:.25rem!important}.pt-1,.py-1{padding-top:.25rem!important}.pr-1,.px-1{padding-right:.25rem!important}.pb-1,.py-1{padding-bottom:.25rem!important}.pl-1,.px-1{padding-left:.25rem!important}.p-2{padding:.5rem!important}.pt-2,.py-2{padding-top:.5rem!important}.pr-2,.px-2{padding-right:.5rem!important}.pb-2,.py-2{padding-bottom:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.p-3{padding:1rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3,.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.pl-3,.px-3{padding-left:1rem!important}.p-4{padding:1.5rem!important}.pt-4,.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5,.py-5{padding-top:3rem!important}.pr-5,.px-5{padding-right:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.pl-5,.px-5{padding-left:3rem!important}.m-n1{margin:-.25rem!important}.mt-n1,.my-n1{margin-top:-.25rem!important}.mr-n1,.mx-n1{margin-right:-.25rem!important}.mb-n1,.my-n1{margin-bottom:-.25rem!important}.ml-n1,.mx-n1{margin-left:-.25rem!important}.m-n2{margin:-.5rem!important}.mt-n2,.my-n2{margin-top:-.5rem!important}.mr-n2,.mx-n2{margin-right:-.5rem!important}.mb-n2,.my-n2{margin-bottom:-.5rem!important}.ml-n2,.mx-n2{margin-left:-.5rem!important}.m-n3{margin:-1rem!important}.mt-n3,.my-n3{margin-top:-1rem!important}.mr-n3,.mx-n3{margin-right:-1rem!important}.mb-n3,.my-n3{margin-bottom:-1rem!important}.ml-n3,.mx-n3{margin-left:-1rem!important}.m-n4{margin:-1.5rem!important}.mt-n4,.my-n4{margin-top:-1.5rem!important}.mr-n4,.mx-n4{margin-right:-1.5rem!important}.mb-n4,.my-n4{margin-bottom:-1.5rem!important}.ml-n4,.mx-n4{margin-left:-1.5rem!important}.m-n5{margin:-3rem!important}.mt-n5,.my-n5{margin-top:-3rem!important}.mr-n5,.mx-n5{margin-right:-3rem!important}.mb-n5,.my-n5{margin-bottom:-3rem!important}.ml-n5,.mx-n5{margin-left:-3rem!important}.m-auto{margin:auto!important}.mt-auto,.my-auto{margin-top:auto!important}.mr-auto,.mx-auto{margin-right:auto!important}.mb-auto,.my-auto{margin-bottom:auto!important}.ml-auto,.mx-auto{margin-left:auto!important}@media (min-width:576px){.m-sm-0{margin:0!important}.mt-sm-0,.my-sm-0{margin-top:0!important}.mr-sm-0,.mx-sm-0{margin-right:0!important}.mb-sm-0,.my-sm-0{margin-bottom:0!important}.ml-sm-0,.mx-sm-0{margin-left:0!important}.m-sm-1{margin:.25rem!important}.mt-sm-1,.my-sm-1{margin-top:.25rem!important}.mr-sm-1,.mx-sm-1{margin-right:.25rem!important}.mb-sm-1,.my-sm-1{margin-bottom:.25rem!important}.ml-sm-1,.mx-sm-1{margin-left:.25rem!important}.m-sm-2{margin:.5rem!important}.mt-sm-2,.my-sm-2{margin-top:.5rem!important}.mr-sm-2,.mx-sm-2{margin-right:.5rem!important}.mb-sm-2,.my-sm-2{margin-bottom:.5rem!important}.ml-sm-2,.mx-sm-2{margin-left:.5rem!important}.m-sm-3{margin:1rem!important}.mt-sm-3,.my-sm-3{margin-top:1rem!important}.mr-sm-3,.mx-sm-3{margin-right:1rem!important}.mb-sm-3,.my-sm-3{margin-bottom:1rem!important}.ml-sm-3,.mx-sm-3{margin-left:1rem!important}.m-sm-4{margin:1.5rem!important}.mt-sm-4,.my-sm-4{margin-top:1.5rem!important}.mr-sm-4,.mx-sm-4{margin-right:1.5rem!important}.mb-sm-4,.my-sm-4{margin-bottom:1.5rem!important}.ml-sm-4,.mx-sm-4{margin-left:1.5rem!important}.m-sm-5{margin:3rem!important}.mt-sm-5,.my-sm-5{margin-top:3rem!important}.mr-sm-5,.mx-sm-5{margin-right:3rem!important}.mb-sm-5,.my-sm-5{margin-bottom:3rem!important}.ml-sm-5,.mx-sm-5{margin-left:3rem!important}.p-sm-0{padding:0!important}.pt-sm-0,.py-sm-0{padding-top:0!important}.pr-sm-0,.px-sm-0{padding-right:0!important}.pb-sm-0,.py-sm-0{padding-bottom:0!important}.pl-sm-0,.px-sm-0{padding-left:0!important}.p-sm-1{padding:.25rem!important}.pt-sm-1,.py-sm-1{padding-top:.25rem!important}.pr-sm-1,.px-sm-1{padding-right:.25rem!important}.pb-sm-1,.py-sm-1{padding-bottom:.25rem!important}.pl-sm-1,.px-sm-1{padding-left:.25rem!important}.p-sm-2{padding:.5rem!important}.pt-sm-2,.py-sm-2{padding-top:.5rem!important}.pr-sm-2,.px-sm-2{padding-right:.5rem!important}.pb-sm-2,.py-sm-2{padding-bottom:.5rem!important}.pl-sm-2,.px-sm-2{padding-left:.5rem!important}.p-sm-3{padding:1rem!important}.pt-sm-3,.py-sm-3{padding-top:1rem!important}.pr-sm-3,.px-sm-3{padding-right:1rem!important}.pb-sm-3,.py-sm-3{padding-bottom:1rem!important}.pl-sm-3,.px-sm-3{padding-left:1rem!important}.p-sm-4{padding:1.5rem!important}.pt-sm-4,.py-sm-4{padding-top:1.5rem!important}.pr-sm-4,.px-sm-4{padding-right:1.5rem!important}.pb-sm-4,.py-sm-4{padding-bottom:1.5rem!important}.pl-sm-4,.px-sm-4{padding-left:1.5rem!important}.p-sm-5{padding:3rem!important}.pt-sm-5,.py-sm-5{padding-top:3rem!important}.pr-sm-5,.px-sm-5{padding-right:3rem!important}.pb-sm-5,.py-sm-5{padding-bottom:3rem!important}.pl-sm-5,.px-sm-5{padding-left:3rem!important}.m-sm-n1{margin:-.25rem!important}.mt-sm-n1,.my-sm-n1{margin-top:-.25rem!important}.mr-sm-n1,.mx-sm-n1{margin-right:-.25rem!important}.mb-sm-n1,.my-sm-n1{margin-bottom:-.25rem!important}.ml-sm-n1,.mx-sm-n1{margin-left:-.25rem!important}.m-sm-n2{margin:-.5rem!important}.mt-sm-n2,.my-sm-n2{margin-top:-.5rem!important}.mr-sm-n2,.mx-sm-n2{margin-right:-.5rem!important}.mb-sm-n2,.my-sm-n2{margin-bottom:-.5rem!important}.ml-sm-n2,.mx-sm-n2{margin-left:-.5rem!important}.m-sm-n3{margin:-1rem!important}.mt-sm-n3,.my-sm-n3{margin-top:-1rem!important}.mr-sm-n3,.mx-sm-n3{margin-right:-1rem!important}.mb-sm-n3,.my-sm-n3{margin-bottom:-1rem!important}.ml-sm-n3,.mx-sm-n3{margin-left:-1rem!important}.m-sm-n4{margin:-1.5rem!important}.mt-sm-n4,.my-sm-n4{margin-top:-1.5rem!important}.mr-sm-n4,.mx-sm-n4{margin-right:-1.5rem!important}.mb-sm-n4,.my-sm-n4{margin-bottom:-1.5rem!important}.ml-sm-n4,.mx-sm-n4{margin-left:-1.5rem!important}.m-sm-n5{margin:-3rem!important}.mt-sm-n5,.my-sm-n5{margin-top:-3rem!important}.mr-sm-n5,.mx-sm-n5{margin-right:-3rem!important}.mb-sm-n5,.my-sm-n5{margin-bottom:-3rem!important}.ml-sm-n5,.mx-sm-n5{margin-left:-3rem!important}.m-sm-auto{margin:auto!important}.mt-sm-auto,.my-sm-auto{margin-top:auto!important}.mr-sm-auto,.mx-sm-auto{margin-right:auto!important}.mb-sm-auto,.my-sm-auto{margin-bottom:auto!important}.ml-sm-auto,.mx-sm-auto{margin-left:auto!important}}@media (min-width:768px){.m-md-0{margin:0!important}.mt-md-0,.my-md-0{margin-top:0!important}.mr-md-0,.mx-md-0{margin-right:0!important}.mb-md-0,.my-md-0{margin-bottom:0!important}.ml-md-0,.mx-md-0{margin-left:0!important}.m-md-1{margin:.25rem!important}.mt-md-1,.my-md-1{margin-top:.25rem!important}.mr-md-1,.mx-md-1{margin-right:.25rem!important}.mb-md-1,.my-md-1{margin-bottom:.25rem!important}.ml-md-1,.mx-md-1{margin-left:.25rem!important}.m-md-2{margin:.5rem!important}.mt-md-2,.my-md-2{margin-top:.5rem!important}.mr-md-2,.mx-md-2{margin-right:.5rem!important}.mb-md-2,.my-md-2{margin-bottom:.5rem!important}.ml-md-2,.mx-md-2{margin-left:.5rem!important}.m-md-3{margin:1rem!important}.mt-md-3,.my-md-3{margin-top:1rem!important}.mr-md-3,.mx-md-3{margin-right:1rem!important}.mb-md-3,.my-md-3{margin-bottom:1rem!important}.ml-md-3,.mx-md-3{margin-left:1rem!important}.m-md-4{margin:1.5rem!important}.mt-md-4,.my-md-4{margin-top:1.5rem!important}.mr-md-4,.mx-md-4{margin-right:1.5rem!important}.mb-md-4,.my-md-4{margin-bottom:1.5rem!important}.ml-md-4,.mx-md-4{margin-left:1.5rem!important}.m-md-5{margin:3rem!important}.mt-md-5,.my-md-5{margin-top:3rem!important}.mr-md-5,.mx-md-5{margin-right:3rem!important}.mb-md-5,.my-md-5{margin-bottom:3rem!important}.ml-md-5,.mx-md-5{margin-left:3rem!important}.p-md-0{padding:0!important}.pt-md-0,.py-md-0{padding-top:0!important}.pr-md-0,.px-md-0{padding-right:0!important}.pb-md-0,.py-md-0{padding-bottom:0!important}.pl-md-0,.px-md-0{padding-left:0!important}.p-md-1{padding:.25rem!important}.pt-md-1,.py-md-1{padding-top:.25rem!important}.pr-md-1,.px-md-1{padding-right:.25rem!important}.pb-md-1,.py-md-1{padding-bottom:.25rem!important}.pl-md-1,.px-md-1{padding-left:.25rem!important}.p-md-2{padding:.5rem!important}.pt-md-2,.py-md-2{padding-top:.5rem!important}.pr-md-2,.px-md-2{padding-right:.5rem!important}.pb-md-2,.py-md-2{padding-bottom:.5rem!important}.pl-md-2,.px-md-2{padding-left:.5rem!important}.p-md-3{padding:1rem!important}.pt-md-3,.py-md-3{padding-top:1rem!important}.pr-md-3,.px-md-3{padding-right:1rem!important}.pb-md-3,.py-md-3{padding-bottom:1rem!important}.pl-md-3,.px-md-3{padding-left:1rem!important}.p-md-4{padding:1.5rem!important}.pt-md-4,.py-md-4{padding-top:1.5rem!important}.pr-md-4,.px-md-4{padding-right:1.5rem!important}.pb-md-4,.py-md-4{padding-bottom:1.5rem!important}.pl-md-4,.px-md-4{padding-left:1.5rem!important}.p-md-5{padding:3rem!important}.pt-md-5,.py-md-5{padding-top:3rem!important}.pr-md-5,.px-md-5{padding-right:3rem!important}.pb-md-5,.py-md-5{padding-bottom:3rem!important}.pl-md-5,.px-md-5{padding-left:3rem!important}.m-md-n1{margin:-.25rem!important}.mt-md-n1,.my-md-n1{margin-top:-.25rem!important}.mr-md-n1,.mx-md-n1{margin-right:-.25rem!important}.mb-md-n1,.my-md-n1{margin-bottom:-.25rem!important}.ml-md-n1,.mx-md-n1{margin-left:-.25rem!important}.m-md-n2{margin:-.5rem!important}.mt-md-n2,.my-md-n2{margin-top:-.5rem!important}.mr-md-n2,.mx-md-n2{margin-right:-.5rem!important}.mb-md-n2,.my-md-n2{margin-bottom:-.5rem!important}.ml-md-n2,.mx-md-n2{margin-left:-.5rem!important}.m-md-n3{margin:-1rem!important}.mt-md-n3,.my-md-n3{margin-top:-1rem!important}.mr-md-n3,.mx-md-n3{margin-right:-1rem!important}.mb-md-n3,.my-md-n3{margin-bottom:-1rem!important}.ml-md-n3,.mx-md-n3{margin-left:-1rem!important}.m-md-n4{margin:-1.5rem!important}.mt-md-n4,.my-md-n4{margin-top:-1.5rem!important}.mr-md-n4,.mx-md-n4{margin-right:-1.5rem!important}.mb-md-n4,.my-md-n4{margin-bottom:-1.5rem!important}.ml-md-n4,.mx-md-n4{margin-left:-1.5rem!important}.m-md-n5{margin:-3rem!important}.mt-md-n5,.my-md-n5{margin-top:-3rem!important}.mr-md-n5,.mx-md-n5{margin-right:-3rem!important}.mb-md-n5,.my-md-n5{margin-bottom:-3rem!important}.ml-md-n5,.mx-md-n5{margin-left:-3rem!important}.m-md-auto{margin:auto!important}.mt-md-auto,.my-md-auto{margin-top:auto!important}.mr-md-auto,.mx-md-auto{margin-right:auto!important}.mb-md-auto,.my-md-auto{margin-bottom:auto!important}.ml-md-auto,.mx-md-auto{margin-left:auto!important}}@media (min-width:992px){.m-lg-0{margin:0!important}.mt-lg-0,.my-lg-0{margin-top:0!important}.mr-lg-0,.mx-lg-0{margin-right:0!important}.mb-lg-0,.my-lg-0{margin-bottom:0!important}.ml-lg-0,.mx-lg-0{margin-left:0!important}.m-lg-1{margin:.25rem!important}.mt-lg-1,.my-lg-1{margin-top:.25rem!important}.mr-lg-1,.mx-lg-1{margin-right:.25rem!important}.mb-lg-1,.my-lg-1{margin-bottom:.25rem!important}.ml-lg-1,.mx-lg-1{margin-left:.25rem!important}.m-lg-2{margin:.5rem!important}.mt-lg-2,.my-lg-2{margin-top:.5rem!important}.mr-lg-2,.mx-lg-2{margin-right:.5rem!important}.mb-lg-2,.my-lg-2{margin-bottom:.5rem!important}.ml-lg-2,.mx-lg-2{margin-left:.5rem!important}.m-lg-3{margin:1rem!important}.mt-lg-3,.my-lg-3{margin-top:1rem!important}.mr-lg-3,.mx-lg-3{margin-right:1rem!important}.mb-lg-3,.my-lg-3{margin-bottom:1rem!important}.ml-lg-3,.mx-lg-3{margin-left:1rem!important}.m-lg-4{margin:1.5rem!important}.mt-lg-4,.my-lg-4{margin-top:1.5rem!important}.mr-lg-4,.mx-lg-4{margin-right:1.5rem!important}.mb-lg-4,.my-lg-4{margin-bottom:1.5rem!important}.ml-lg-4,.mx-lg-4{margin-left:1.5rem!important}.m-lg-5{margin:3rem!important}.mt-lg-5,.my-lg-5{margin-top:3rem!important}.mr-lg-5,.mx-lg-5{margin-right:3rem!important}.mb-lg-5,.my-lg-5{margin-bottom:3rem!important}.ml-lg-5,.mx-lg-5{margin-left:3rem!important}.p-lg-0{padding:0!important}.pt-lg-0,.py-lg-0{padding-top:0!important}.pr-lg-0,.px-lg-0{padding-right:0!important}.pb-lg-0,.py-lg-0{padding-bottom:0!important}.pl-lg-0,.px-lg-0{padding-left:0!important}.p-lg-1{padding:.25rem!important}.pt-lg-1,.py-lg-1{padding-top:.25rem!important}.pr-lg-1,.px-lg-1{padding-right:.25rem!important}.pb-lg-1,.py-lg-1{padding-bottom:.25rem!important}.pl-lg-1,.px-lg-1{padding-left:.25rem!important}.p-lg-2{padding:.5rem!important}.pt-lg-2,.py-lg-2{padding-top:.5rem!important}.pr-lg-2,.px-lg-2{padding-right:.5rem!important}.pb-lg-2,.py-lg-2{padding-bottom:.5rem!important}.pl-lg-2,.px-lg-2{padding-left:.5rem!important}.p-lg-3{padding:1rem!important}.pt-lg-3,.py-lg-3{padding-top:1rem!important}.pr-lg-3,.px-lg-3{padding-right:1rem!important}.pb-lg-3,.py-lg-3{padding-bottom:1rem!important}.pl-lg-3,.px-lg-3{padding-left:1rem!important}.p-lg-4{padding:1.5rem!important}.pt-lg-4,.py-lg-4{padding-top:1.5rem!important}.pr-lg-4,.px-lg-4{padding-right:1.5rem!important}.pb-lg-4,.py-lg-4{padding-bottom:1.5rem!important}.pl-lg-4,.px-lg-4{padding-left:1.5rem!important}.p-lg-5{padding:3rem!important}.pt-lg-5,.py-lg-5{padding-top:3rem!important}.pr-lg-5,.px-lg-5{padding-right:3rem!important}.pb-lg-5,.py-lg-5{padding-bottom:3rem!important}.pl-lg-5,.px-lg-5{padding-left:3rem!important}.m-lg-n1{margin:-.25rem!important}.mt-lg-n1,.my-lg-n1{margin-top:-.25rem!important}.mr-lg-n1,.mx-lg-n1{margin-right:-.25rem!important}.mb-lg-n1,.my-lg-n1{margin-bottom:-.25rem!important}.ml-lg-n1,.mx-lg-n1{margin-left:-.25rem!important}.m-lg-n2{margin:-.5rem!important}.mt-lg-n2,.my-lg-n2{margin-top:-.5rem!important}.mr-lg-n2,.mx-lg-n2{margin-right:-.5rem!important}.mb-lg-n2,.my-lg-n2{margin-bottom:-.5rem!important}.ml-lg-n2,.mx-lg-n2{margin-left:-.5rem!important}.m-lg-n3{margin:-1rem!important}.mt-lg-n3,.my-lg-n3{margin-top:-1rem!important}.mr-lg-n3,.mx-lg-n3{margin-right:-1rem!important}.mb-lg-n3,.my-lg-n3{margin-bottom:-1rem!important}.ml-lg-n3,.mx-lg-n3{margin-left:-1rem!important}.m-lg-n4{margin:-1.5rem!important}.mt-lg-n4,.my-lg-n4{margin-top:-1.5rem!important}.mr-lg-n4,.mx-lg-n4{margin-right:-1.5rem!important}.mb-lg-n4,.my-lg-n4{margin-bottom:-1.5rem!important}.ml-lg-n4,.mx-lg-n4{margin-left:-1.5rem!important}.m-lg-n5{margin:-3rem!important}.mt-lg-n5,.my-lg-n5{margin-top:-3rem!important}.mr-lg-n5,.mx-lg-n5{margin-right:-3rem!important}.mb-lg-n5,.my-lg-n5{margin-bottom:-3rem!important}.ml-lg-n5,.mx-lg-n5{margin-left:-3rem!important}.m-lg-auto{margin:auto!important}.mt-lg-auto,.my-lg-auto{margin-top:auto!important}.mr-lg-auto,.mx-lg-auto{margin-right:auto!important}.mb-lg-auto,.my-lg-auto{margin-bottom:auto!important}.ml-lg-auto,.mx-lg-auto{margin-left:auto!important}}@media (min-width:1200px){.m-xl-0{margin:0!important}.mt-xl-0,.my-xl-0{margin-top:0!important}.mr-xl-0,.mx-xl-0{margin-right:0!important}.mb-xl-0,.my-xl-0{margin-bottom:0!important}.ml-xl-0,.mx-xl-0{margin-left:0!important}.m-xl-1{margin:.25rem!important}.mt-xl-1,.my-xl-1{margin-top:.25rem!important}.mr-xl-1,.mx-xl-1{margin-right:.25rem!important}.mb-xl-1,.my-xl-1{margin-bottom:.25rem!important}.ml-xl-1,.mx-xl-1{margin-left:.25rem!important}.m-xl-2{margin:.5rem!important}.mt-xl-2,.my-xl-2{margin-top:.5rem!important}.mr-xl-2,.mx-xl-2{margin-right:.5rem!important}.mb-xl-2,.my-xl-2{margin-bottom:.5rem!important}.ml-xl-2,.mx-xl-2{margin-left:.5rem!important}.m-xl-3{margin:1rem!important}.mt-xl-3,.my-xl-3{margin-top:1rem!important}.mr-xl-3,.mx-xl-3{margin-right:1rem!important}.mb-xl-3,.my-xl-3{margin-bottom:1rem!important}.ml-xl-3,.mx-xl-3{margin-left:1rem!important}.m-xl-4{margin:1.5rem!important}.mt-xl-4,.my-xl-4{margin-top:1.5rem!important}.mr-xl-4,.mx-xl-4{margin-right:1.5rem!important}.mb-xl-4,.my-xl-4{margin-bottom:1.5rem!important}.ml-xl-4,.mx-xl-4{margin-left:1.5rem!important}.m-xl-5{margin:3rem!important}.mt-xl-5,.my-xl-5{margin-top:3rem!important}.mr-xl-5,.mx-xl-5{margin-right:3rem!important}.mb-xl-5,.my-xl-5{margin-bottom:3rem!important}.ml-xl-5,.mx-xl-5{margin-left:3rem!important}.p-xl-0{padding:0!important}.pt-xl-0,.py-xl-0{padding-top:0!important}.pr-xl-0,.px-xl-0{padding-right:0!important}.pb-xl-0,.py-xl-0{padding-bottom:0!important}.pl-xl-0,.px-xl-0{padding-left:0!important}.p-xl-1{padding:.25rem!important}.pt-xl-1,.py-xl-1{padding-top:.25rem!important}.pr-xl-1,.px-xl-1{padding-right:.25rem!important}.pb-xl-1,.py-xl-1{padding-bottom:.25rem!important}.pl-xl-1,.px-xl-1{padding-left:.25rem!important}.p-xl-2{padding:.5rem!important}.pt-xl-2,.py-xl-2{padding-top:.5rem!important}.pr-xl-2,.px-xl-2{padding-right:.5rem!important}.pb-xl-2,.py-xl-2{padding-bottom:.5rem!important}.pl-xl-2,.px-xl-2{padding-left:.5rem!important}.p-xl-3{padding:1rem!important}.pt-xl-3,.py-xl-3{padding-top:1rem!important}.pr-xl-3,.px-xl-3{padding-right:1rem!important}.pb-xl-3,.py-xl-3{padding-bottom:1rem!important}.pl-xl-3,.px-xl-3{padding-left:1rem!important}.p-xl-4{padding:1.5rem!important}.pt-xl-4,.py-xl-4{padding-top:1.5rem!important}.pr-xl-4,.px-xl-4{padding-right:1.5rem!important}.pb-xl-4,.py-xl-4{padding-bottom:1.5rem!important}.pl-xl-4,.px-xl-4{padding-left:1.5rem!important}.p-xl-5{padding:3rem!important}.pt-xl-5,.py-xl-5{padding-top:3rem!important}.pr-xl-5,.px-xl-5{padding-right:3rem!important}.pb-xl-5,.py-xl-5{padding-bottom:3rem!important}.pl-xl-5,.px-xl-5{padding-left:3rem!important}.m-xl-n1{margin:-.25rem!important}.mt-xl-n1,.my-xl-n1{margin-top:-.25rem!important}.mr-xl-n1,.mx-xl-n1{margin-right:-.25rem!important}.mb-xl-n1,.my-xl-n1{margin-bottom:-.25rem!important}.ml-xl-n1,.mx-xl-n1{margin-left:-.25rem!important}.m-xl-n2{margin:-.5rem!important}.mt-xl-n2,.my-xl-n2{margin-top:-.5rem!important}.mr-xl-n2,.mx-xl-n2{margin-right:-.5rem!important}.mb-xl-n2,.my-xl-n2{margin-bottom:-.5rem!important}.ml-xl-n2,.mx-xl-n2{margin-left:-.5rem!important}.m-xl-n3{margin:-1rem!important}.mt-xl-n3,.my-xl-n3{margin-top:-1rem!important}.mr-xl-n3,.mx-xl-n3{margin-right:-1rem!important}.mb-xl-n3,.my-xl-n3{margin-bottom:-1rem!important}.ml-xl-n3,.mx-xl-n3{margin-left:-1rem!important}.m-xl-n4{margin:-1.5rem!important}.mt-xl-n4,.my-xl-n4{margin-top:-1.5rem!important}.mr-xl-n4,.mx-xl-n4{margin-right:-1.5rem!important}.mb-xl-n4,.my-xl-n4{margin-bottom:-1.5rem!important}.ml-xl-n4,.mx-xl-n4{margin-left:-1.5rem!important}.m-xl-n5{margin:-3rem!important}.mt-xl-n5,.my-xl-n5{margin-top:-3rem!important}.mr-xl-n5,.mx-xl-n5{margin-right:-3rem!important}.mb-xl-n5,.my-xl-n5{margin-bottom:-3rem!important}.ml-xl-n5,.mx-xl-n5{margin-left:-3rem!important}.m-xl-auto{margin:auto!important}.mt-xl-auto,.my-xl-auto{margin-top:auto!important}.mr-xl-auto,.mx-xl-auto{margin-right:auto!important}.mb-xl-auto,.my-xl-auto{margin-bottom:auto!important}.ml-xl-auto,.mx-xl-auto{margin-left:auto!important}}.text-monospace{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace!important}.text-justify{text-align:justify!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-light{font-weight:300!important}.font-weight-lighter{font-weight:lighter!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-weight-bolder{font-weight:bolder!important}.font-italic{font-style:italic!important}.text-white{color:#fff!important}.text-primary{color:#007bff!important}a.text-primary:focus,a.text-primary:hover{color:#0056b3!important}.text-secondary{color:#6c757d!important}a.text-secondary:focus,a.text-secondary:hover{color:#494f54!important}.text-success{color:#28a745!important}a.text-success:focus,a.text-success:hover{color:#19692c!important}.text-info{color:#17a2b8!important}a.text-info:focus,a.text-info:hover{color:#0f6674!important}.text-warning{color:#ffc107!important}a.text-warning:focus,a.text-warning:hover{color:#ba8b00!important}.text-danger{color:#dc3545!important}a.text-danger:focus,a.text-danger:hover{color:#a71d2a!important}.text-light{color:#f8f9fa!important}a.text-light:focus,a.text-light:hover{color:#cbd3da!important}.text-dark{color:#343a40!important}a.text-dark:focus,a.text-dark:hover{color:#121416!important}.text-body{color:#212529!important}.text-muted{color:#6c757d!important}.text-black-50{color:rgba(0,0,0,.5)!important}.text-white-50{color:rgba(255,255,255,.5)!important}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-decoration-none{text-decoration:none!important}.text-break{word-break:break-word!important;overflow-wrap:break-word!important}.text-reset{color:inherit!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media print{*,::after,::before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}pre{white-space:pre-wrap!important}blockquote,pre{border:1px solid #adb5bd;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}body{min-width:992px!important}.container{min-width:992px!important}.navbar{display:none}.badge{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #dee2e6!important}.table-dark{color:inherit}.table-dark tbody+tbody,.table-dark td,.table-dark th,.table-dark thead th{border-color:#dee2e6}.table .thead-dark th{color:inherit;border-color:#dee2e6}} -/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/client/lib/bootstrap.min.js b/client/lib/bootstrap.min.js deleted file mode 100644 index c4c0d1f95cd3ca1b97ed8e7f7f22a91fa24b4edf..0000000000000000000000000000000000000000 --- a/client/lib/bootstrap.min.js +++ /dev/null @@ -1,7 +0,0 @@ -/*! - * Bootstrap v4.3.1 (https://getbootstrap.com/) - * Copyright 2011-2019 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) - * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) - */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("jquery"),require("popper.js")):"function"==typeof define&&define.amd?define(["exports","jquery","popper.js"],e):e((t=t||self).bootstrap={},t.jQuery,t.Popper)}(this,function(t,g,u){"use strict";function i(t,e){for(var n=0;nthis._items.length-1||t<0))if(this._isSliding)g(this._element).one(Q.SLID,function(){return e.to(t)});else{if(n===t)return this.pause(),void this.cycle();var i=ndocument.documentElement.clientHeight;!this._isBodyOverflowing&&t&&(this._element.style.paddingLeft=this._scrollbarWidth+"px"),this._isBodyOverflowing&&!t&&(this._element.style.paddingRight=this._scrollbarWidth+"px")},t._resetAdjustments=function(){this._element.style.paddingLeft="",this._element.style.paddingRight=""},t._checkScrollbar=function(){var t=document.body.getBoundingClientRect();this._isBodyOverflowing=t.left+t.right
',trigger:"hover focus",title:"",delay:0,html:!1,selector:!1,placement:"top",offset:0,container:!1,fallbackPlacement:"flip",boundary:"scrollParent",sanitize:!0,sanitizeFn:null,whiteList:Ee},je="show",He="out",Re={HIDE:"hide"+De,HIDDEN:"hidden"+De,SHOW:"show"+De,SHOWN:"shown"+De,INSERTED:"inserted"+De,CLICK:"click"+De,FOCUSIN:"focusin"+De,FOCUSOUT:"focusout"+De,MOUSEENTER:"mouseenter"+De,MOUSELEAVE:"mouseleave"+De},xe="fade",Fe="show",Ue=".tooltip-inner",We=".arrow",qe="hover",Me="focus",Ke="click",Qe="manual",Be=function(){function i(t,e){if("undefined"==typeof u)throw new TypeError("Bootstrap's tooltips require Popper.js (https://popper.js.org/)");this._isEnabled=!0,this._timeout=0,this._hoverState="",this._activeTrigger={},this._popper=null,this.element=t,this.config=this._getConfig(e),this.tip=null,this._setListeners()}var t=i.prototype;return t.enable=function(){this._isEnabled=!0},t.disable=function(){this._isEnabled=!1},t.toggleEnabled=function(){this._isEnabled=!this._isEnabled},t.toggle=function(t){if(this._isEnabled)if(t){var e=this.constructor.DATA_KEY,n=g(t.currentTarget).data(e);n||(n=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(e,n)),n._activeTrigger.click=!n._activeTrigger.click,n._isWithActiveTrigger()?n._enter(null,n):n._leave(null,n)}else{if(g(this.getTipElement()).hasClass(Fe))return void this._leave(null,this);this._enter(null,this)}},t.dispose=function(){clearTimeout(this._timeout),g.removeData(this.element,this.constructor.DATA_KEY),g(this.element).off(this.constructor.EVENT_KEY),g(this.element).closest(".modal").off("hide.bs.modal"),this.tip&&g(this.tip).remove(),this._isEnabled=null,this._timeout=null,this._hoverState=null,(this._activeTrigger=null)!==this._popper&&this._popper.destroy(),this._popper=null,this.element=null,this.config=null,this.tip=null},t.show=function(){var e=this;if("none"===g(this.element).css("display"))throw new Error("Please use show on visible elements");var t=g.Event(this.constructor.Event.SHOW);if(this.isWithContent()&&this._isEnabled){g(this.element).trigger(t);var n=_.findShadowRoot(this.element),i=g.contains(null!==n?n:this.element.ownerDocument.documentElement,this.element);if(t.isDefaultPrevented()||!i)return;var o=this.getTipElement(),r=_.getUID(this.constructor.NAME);o.setAttribute("id",r),this.element.setAttribute("aria-describedby",r),this.setContent(),this.config.animation&&g(o).addClass(xe);var s="function"==typeof this.config.placement?this.config.placement.call(this,o,this.element):this.config.placement,a=this._getAttachment(s);this.addAttachmentClass(a);var l=this._getContainer();g(o).data(this.constructor.DATA_KEY,this),g.contains(this.element.ownerDocument.documentElement,this.tip)||g(o).appendTo(l),g(this.element).trigger(this.constructor.Event.INSERTED),this._popper=new u(this.element,o,{placement:a,modifiers:{offset:this._getOffset(),flip:{behavior:this.config.fallbackPlacement},arrow:{element:We},preventOverflow:{boundariesElement:this.config.boundary}},onCreate:function(t){t.originalPlacement!==t.placement&&e._handlePopperPlacementChange(t)},onUpdate:function(t){return e._handlePopperPlacementChange(t)}}),g(o).addClass(Fe),"ontouchstart"in document.documentElement&&g(document.body).children().on("mouseover",null,g.noop);var c=function(){e.config.animation&&e._fixTransition();var t=e._hoverState;e._hoverState=null,g(e.element).trigger(e.constructor.Event.SHOWN),t===He&&e._leave(null,e)};if(g(this.tip).hasClass(xe)){var h=_.getTransitionDurationFromElement(this.tip);g(this.tip).one(_.TRANSITION_END,c).emulateTransitionEnd(h)}else c()}},t.hide=function(t){var e=this,n=this.getTipElement(),i=g.Event(this.constructor.Event.HIDE),o=function(){e._hoverState!==je&&n.parentNode&&n.parentNode.removeChild(n),e._cleanTipClass(),e.element.removeAttribute("aria-describedby"),g(e.element).trigger(e.constructor.Event.HIDDEN),null!==e._popper&&e._popper.destroy(),t&&t()};if(g(this.element).trigger(i),!i.isDefaultPrevented()){if(g(n).removeClass(Fe),"ontouchstart"in document.documentElement&&g(document.body).children().off("mouseover",null,g.noop),this._activeTrigger[Ke]=!1,this._activeTrigger[Me]=!1,this._activeTrigger[qe]=!1,g(this.tip).hasClass(xe)){var r=_.getTransitionDurationFromElement(n);g(n).one(_.TRANSITION_END,o).emulateTransitionEnd(r)}else o();this._hoverState=""}},t.update=function(){null!==this._popper&&this._popper.scheduleUpdate()},t.isWithContent=function(){return Boolean(this.getTitle())},t.addAttachmentClass=function(t){g(this.getTipElement()).addClass(Ae+"-"+t)},t.getTipElement=function(){return this.tip=this.tip||g(this.config.template)[0],this.tip},t.setContent=function(){var t=this.getTipElement();this.setElementContent(g(t.querySelectorAll(Ue)),this.getTitle()),g(t).removeClass(xe+" "+Fe)},t.setElementContent=function(t,e){"object"!=typeof e||!e.nodeType&&!e.jquery?this.config.html?(this.config.sanitize&&(e=Se(e,this.config.whiteList,this.config.sanitizeFn)),t.html(e)):t.text(e):this.config.html?g(e).parent().is(t)||t.empty().append(e):t.text(g(e).text())},t.getTitle=function(){var t=this.element.getAttribute("data-original-title");return t||(t="function"==typeof this.config.title?this.config.title.call(this.element):this.config.title),t},t._getOffset=function(){var e=this,t={};return"function"==typeof this.config.offset?t.fn=function(t){return t.offsets=l({},t.offsets,e.config.offset(t.offsets,e.element)||{}),t}:t.offset=this.config.offset,t},t._getContainer=function(){return!1===this.config.container?document.body:_.isElement(this.config.container)?g(this.config.container):g(document).find(this.config.container)},t._getAttachment=function(t){return Pe[t.toUpperCase()]},t._setListeners=function(){var i=this;this.config.trigger.split(" ").forEach(function(t){if("click"===t)g(i.element).on(i.constructor.Event.CLICK,i.config.selector,function(t){return i.toggle(t)});else if(t!==Qe){var e=t===qe?i.constructor.Event.MOUSEENTER:i.constructor.Event.FOCUSIN,n=t===qe?i.constructor.Event.MOUSELEAVE:i.constructor.Event.FOCUSOUT;g(i.element).on(e,i.config.selector,function(t){return i._enter(t)}).on(n,i.config.selector,function(t){return i._leave(t)})}}),g(this.element).closest(".modal").on("hide.bs.modal",function(){i.element&&i.hide()}),this.config.selector?this.config=l({},this.config,{trigger:"manual",selector:""}):this._fixTitle()},t._fixTitle=function(){var t=typeof this.element.getAttribute("data-original-title");(this.element.getAttribute("title")||"string"!==t)&&(this.element.setAttribute("data-original-title",this.element.getAttribute("title")||""),this.element.setAttribute("title",""))},t._enter=function(t,e){var n=this.constructor.DATA_KEY;(e=e||g(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusin"===t.type?Me:qe]=!0),g(e.getTipElement()).hasClass(Fe)||e._hoverState===je?e._hoverState=je:(clearTimeout(e._timeout),e._hoverState=je,e.config.delay&&e.config.delay.show?e._timeout=setTimeout(function(){e._hoverState===je&&e.show()},e.config.delay.show):e.show())},t._leave=function(t,e){var n=this.constructor.DATA_KEY;(e=e||g(t.currentTarget).data(n))||(e=new this.constructor(t.currentTarget,this._getDelegateConfig()),g(t.currentTarget).data(n,e)),t&&(e._activeTrigger["focusout"===t.type?Me:qe]=!1),e._isWithActiveTrigger()||(clearTimeout(e._timeout),e._hoverState=He,e.config.delay&&e.config.delay.hide?e._timeout=setTimeout(function(){e._hoverState===He&&e.hide()},e.config.delay.hide):e.hide())},t._isWithActiveTrigger=function(){for(var t in this._activeTrigger)if(this._activeTrigger[t])return!0;return!1},t._getConfig=function(t){var e=g(this.element).data();return Object.keys(e).forEach(function(t){-1!==Oe.indexOf(t)&&delete e[t]}),"number"==typeof(t=l({},this.constructor.Default,e,"object"==typeof t&&t?t:{})).delay&&(t.delay={show:t.delay,hide:t.delay}),"number"==typeof t.title&&(t.title=t.title.toString()),"number"==typeof t.content&&(t.content=t.content.toString()),_.typeCheckConfig(be,t,this.constructor.DefaultType),t.sanitize&&(t.template=Se(t.template,t.whiteList,t.sanitizeFn)),t},t._getDelegateConfig=function(){var t={};if(this.config)for(var e in this.config)this.constructor.Default[e]!==this.config[e]&&(t[e]=this.config[e]);return t},t._cleanTipClass=function(){var t=g(this.getTipElement()),e=t.attr("class").match(Ne);null!==e&&e.length&&t.removeClass(e.join(""))},t._handlePopperPlacementChange=function(t){var e=t.instance;this.tip=e.popper,this._cleanTipClass(),this.addAttachmentClass(this._getAttachment(t.placement))},t._fixTransition=function(){var t=this.getTipElement(),e=this.config.animation;null===t.getAttribute("x-placement")&&(g(t).removeClass(xe),this.config.animation=!1,this.hide(),this.show(),this.config.animation=e)},i._jQueryInterface=function(n){return this.each(function(){var t=g(this).data(Ie),e="object"==typeof n&&n;if((t||!/dispose|hide/.test(n))&&(t||(t=new i(this,e),g(this).data(Ie,t)),"string"==typeof n)){if("undefined"==typeof t[n])throw new TypeError('No method named "'+n+'"');t[n]()}})},s(i,null,[{key:"VERSION",get:function(){return"4.3.1"}},{key:"Default",get:function(){return Le}},{key:"NAME",get:function(){return be}},{key:"DATA_KEY",get:function(){return Ie}},{key:"Event",get:function(){return Re}},{key:"EVENT_KEY",get:function(){return De}},{key:"DefaultType",get:function(){return ke}}]),i}();g.fn[be]=Be._jQueryInterface,g.fn[be].Constructor=Be,g.fn[be].noConflict=function(){return g.fn[be]=we,Be._jQueryInterface};var Ve="popover",Ye="bs.popover",ze="."+Ye,Xe=g.fn[Ve],$e="bs-popover",Ge=new RegExp("(^|\\s)"+$e+"\\S+","g"),Je=l({},Be.Default,{placement:"right",trigger:"click",content:"",template:''}),Ze=l({},Be.DefaultType,{content:"(string|element|function)"}),tn="fade",en="show",nn=".popover-header",on=".popover-body",rn={HIDE:"hide"+ze,HIDDEN:"hidden"+ze,SHOW:"show"+ze,SHOWN:"shown"+ze,INSERTED:"inserted"+ze,CLICK:"click"+ze,FOCUSIN:"focusin"+ze,FOCUSOUT:"focusout"+ze,MOUSEENTER:"mouseenter"+ze,MOUSELEAVE:"mouseleave"+ze},sn=function(t){var e,n;function i(){return t.apply(this,arguments)||this}n=t,(e=i).prototype=Object.create(n.prototype),(e.prototype.constructor=e).__proto__=n;var o=i.prototype;return o.isWithContent=function(){return this.getTitle()||this._getContent()},o.addAttachmentClass=function(t){g(this.getTipElement()).addClass($e+"-"+t)},o.getTipElement=function(){return this.tip=this.tip||g(this.config.template)[0],this.tip},o.setContent=function(){var t=g(this.getTipElement());this.setElementContent(t.find(nn),this.getTitle());var e=this._getContent();"function"==typeof e&&(e=e.call(this.element)),this.setElementContent(t.find(on),e),t.removeClass(tn+" "+en)},o._getContent=function(){return this.element.getAttribute("data-content")||this.config.content},o._cleanTipClass=function(){var t=g(this.getTipElement()),e=t.attr("class").match(Ge);null!==e&&0=this._offsets[o]&&("undefined"==typeof this._offsets[o+1]||t= 2.0.0-beta.1",7:">= 4.0.0"};b.REVISION_CHANGES=o;var p="[object Object]";d.prototype={constructor:d,logger:l["default"],log:l["default"].log,registerHelper:function(a,b){if(f.toString.call(a)===p){if(b)throw new h["default"]("Arg not supported with multiple helpers");f.extend(this.helpers,a)}else this.helpers[a]=b},unregisterHelper:function(a){delete this.helpers[a]},registerPartial:function(a,b){if(f.toString.call(a)===p)f.extend(this.partials,a);else{if("undefined"==typeof b)throw new h["default"]('Attempting to register a partial called "'+a+'" as undefined');this.partials[a]=b}},unregisterPartial:function(a){delete this.partials[a]},registerDecorator:function(a,b){if(f.toString.call(a)===p){if(b)throw new h["default"]("Arg not supported with multiple decorators");f.extend(this.decorators,a)}else this.decorators[a]=b},unregisterDecorator:function(a){delete this.decorators[a]}};var q=l["default"].log;b.log=q,b.createFrame=f.createFrame,b.logger=l["default"]},function(a,b){"use strict";function c(a){return k[a]}function d(a){for(var b=1;b":">",'"':""","'":"'","`":"`","=":"="},l=/[&<>"'`=]/g,m=/[&<>"'`=]/,n=Object.prototype.toString;b.toString=n;var o=function(a){return"function"==typeof a};o(/x/)&&(b.isFunction=o=function(a){return"function"==typeof a&&"[object Function]"===n.call(a)}),b.isFunction=o;var p=Array.isArray||function(a){return!(!a||"object"!=typeof a)&&"[object Array]"===n.call(a)};b.isArray=p},function(a,b,c){"use strict";function d(a,b){var c=b&&b.loc,g=void 0,h=void 0;c&&(g=c.start.line,h=c.start.column,a+=" - "+g+":"+h);for(var i=Error.prototype.constructor.call(this,a),j=0;j0?(c.ids&&(c.ids=[c.name]),a.helpers.each(b,c)):e(this);if(c.data&&c.ids){var g=d.createFrame(c.data);g.contextPath=d.appendContextPath(c.data.contextPath,c.name),c={data:g}}return f(b,c)})},a.exports=b["default"]},function(a,b,c){"use strict";var d=c(1)["default"];b.__esModule=!0;var e=c(5),f=c(6),g=d(f);b["default"]=function(a){a.registerHelper("each",function(a,b){function c(b,c,f){j&&(j.key=b,j.index=c,j.first=0===c,j.last=!!f,k&&(j.contextPath=k+b)),i+=d(a[b],{data:j,blockParams:e.blockParams([a[b],b],[k+b,null])})}if(!b)throw new g["default"]("Must pass iterator to #each");var d=b.fn,f=b.inverse,h=0,i="",j=void 0,k=void 0;if(b.data&&b.ids&&(k=e.appendContextPath(b.data.contextPath,b.ids[0])+"."),e.isFunction(a)&&(a=a.call(this)),b.data&&(j=e.createFrame(b.data)),a&&"object"==typeof a)if(e.isArray(a))for(var l=a.length;h=0?b:parseInt(a,10)}return a},log:function(a){if(a=e.lookupLevel(a),"undefined"!=typeof console&&e.lookupLevel(e.level)<=a){var b=e.methodMap[a];console[b]||(b="log");for(var c=arguments.length,d=Array(c>1?c-1:0),f=1;f2&&v.push("'"+this.terminals_[s]+"'");x=this.lexer.showPosition?"Parse error on line "+(i+1)+":\n"+this.lexer.showPosition()+"\nExpecting "+v.join(", ")+", got '"+(this.terminals_[n]||n)+"'":"Parse error on line "+(i+1)+": Unexpected "+(1==n?"end of input":"'"+(this.terminals_[n]||n)+"'"),this.parseError(x,{text:this.lexer.match,token:this.terminals_[n]||n,line:this.lexer.yylineno,loc:l,expected:v})}}if(q[0]instanceof Array&&q.length>1)throw new Error("Parse Error: multiple actions possible at state: "+p+", token: "+n);switch(q[0]){case 1:d.push(n),e.push(this.lexer.yytext),f.push(this.lexer.yylloc),d.push(q[1]),n=null,o?(n=o,o=null):(j=this.lexer.yyleng,h=this.lexer.yytext,i=this.lexer.yylineno,l=this.lexer.yylloc,k>0&&k--);break;case 2:if(t=this.productions_[q[1]][1],w.$=e[e.length-t],w._$={first_line:f[f.length-(t||1)].first_line,last_line:f[f.length-1].last_line,first_column:f[f.length-(t||1)].first_column,last_column:f[f.length-1].last_column},m&&(w._$.range=[f[f.length-(t||1)].range[0],f[f.length-1].range[1]]),r=this.performAction.call(w,h,j,i,this.yy,q[1],e,f),"undefined"!=typeof r)return r;t&&(d=d.slice(0,-1*t*2),e=e.slice(0,-1*t),f=f.slice(0,-1*t)),d.push(this.productions_[q[1]][0]),e.push(w.$),f.push(w._$),u=g[d[d.length-2]][d[d.length-1]],d.push(u);break;case 3:return!0}}return!0}},c=function(){var a={EOF:1,parseError:function(a,b){if(!this.yy.parser)throw new Error(a);this.yy.parser.parseError(a,b)},setInput:function(a){return this._input=a,this._more=this._less=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var b=a.match(/(?:\r\n?|\n).*/g);return b?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},unput:function(a){var b=a.length,c=a.split(/(?:\r\n?|\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-b-1),this.offset-=b;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),c.length-1&&(this.yylineno-=c.length-1);var e=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:c?(c.length===d.length?this.yylloc.first_column:0)+d[d.length-c.length].length-c[0].length:this.yylloc.first_column-b},this.options.ranges&&(this.yylloc.range=[e[0],e[0]+this.yyleng-b]),this},more:function(){return this._more=!0,this},less:function(a){this.unput(this.match.slice(a))},pastInput:function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},upcomingInput:function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?"...":"")).replace(/\n/g,"")},showPosition:function(){var a=this.pastInput(),b=new Array(a.length+1).join("-");return a+this.upcomingInput()+"\n"+b+"^"},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var a,b,c,d,e;this._more||(this.yytext="",this.match="");for(var f=this._currentRules(),g=0;gb[0].length)||(b=c,d=g,this.options.flex));g++);return b?(e=b[0].match(/(?:\r\n?|\n).*/g),e&&(this.yylineno+=e.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:e?e[e.length-1].length-e[e.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+b[0].length},this.yytext+=b[0],this.match+=b[0],this.matches=b,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._input=this._input.slice(b[0].length),this.matched+=b[0],a=this.performAction.call(this,this.yy,this,f[d],this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),a?a:void 0):""===this._input?this.EOF:this.parseError("Lexical error on line "+(this.yylineno+1)+". Unrecognized text.\n"+this.showPosition(),{text:"",token:null,line:this.yylineno})},lex:function(){var a=this.next();return"undefined"!=typeof a?a:this.lex()},begin:function(a){this.conditionStack.push(a)},popState:function(){return this.conditionStack.pop()},_currentRules:function(){return this.conditions[this.conditionStack[this.conditionStack.length-1]].rules},topState:function(){return this.conditionStack[this.conditionStack.length-2]},pushState:function(a){this.begin(a)}};return a.options={},a.performAction=function(a,b,c,d){function e(a,c){return b.yytext=b.yytext.substring(a,b.yyleng-c+a)}switch(c){case 0:if("\\\\"===b.yytext.slice(-2)?(e(0,1),this.begin("mu")):"\\"===b.yytext.slice(-1)?(e(0,1),this.begin("emu")):this.begin("mu"),b.yytext)return 15;break;case 1:return 15;case 2:return this.popState(),15;case 3:return this.begin("raw"),15;case 4:return this.popState(),"raw"===this.conditionStack[this.conditionStack.length-1]?15:(e(5,9),"END_RAW_BLOCK");case 5:return 15;case 6:return this.popState(),14;case 7:return 65;case 8:return 68;case 9:return 19;case 10:return this.popState(),this.begin("raw"),23;case 11:return 55;case 12:return 60;case 13:return 29;case 14:return 47;case 15:return this.popState(),44;case 16:return this.popState(),44;case 17:return 34;case 18:return 39;case 19:return 51;case 20:return 48;case 21:this.unput(b.yytext),this.popState(),this.begin("com");break;case 22:return this.popState(),14;case 23:return 48;case 24:return 73;case 25:return 72;case 26:return 72;case 27:return 87;case 28:break;case 29:return this.popState(),54;case 30:return this.popState(),33;case 31:return b.yytext=e(1,2).replace(/\\"/g,'"'),80;case 32:return b.yytext=e(1,2).replace(/\\'/g,"'"),80;case 33:return 85;case 34:return 82;case 35:return 82;case 36:return 83;case 37:return 84;case 38:return 81;case 39:return 75;case 40:return 77;case 41:return 72;case 42:return b.yytext=b.yytext.replace(/\\([\\\]])/g,"$1"),72;case 43:return"INVALID";case 44:return 5}},a.rules=[/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:\{\{\{\{(?=[^\/]))/,/^(?:\{\{\{\{\/[^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=[=}\s\/.])\}\}\}\})/,/^(?:[^\x00]*?(?=(\{\{\{\{)))/,/^(?:[\s\S]*?--(~)?\}\})/,/^(?:\()/,/^(?:\))/,/^(?:\{\{\{\{)/,/^(?:\}\}\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#>)/,/^(?:\{\{(~)?#\*?)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^\s*(~)?\}\})/,/^(?:\{\{(~)?\s*else\s*(~)?\}\})/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{(~)?!--)/,/^(?:\{\{(~)?![\s\S]*?\}\})/,/^(?:\{\{(~)?\*?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.)|])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s)])))/,/^(?:false(?=([~}\s)])))/,/^(?:undefined(?=([~}\s)])))/,/^(?:null(?=([~}\s)])))/,/^(?:-?[0-9]+(?:\.[0-9]+)?(?=([~}\s)])))/,/^(?:as\s+\|)/,/^(?:\|)/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.)|]))))/,/^(?:\[(\\\]|[^\]])*\])/,/^(?:.)/,/^(?:$)/],a.conditions={mu:{rules:[7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44],inclusive:!1},emu:{rules:[2],inclusive:!1},com:{rules:[6],inclusive:!1},raw:{rules:[3,4,5],inclusive:!1},INITIAL:{rules:[0,1,44],inclusive:!0}},a}();return b.lexer=c,a.prototype=b,b.Parser=a,new a}();b["default"]=c,a.exports=b["default"]},function(a,b,c){"use strict";function d(){var a=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];this.options=a}function e(a,b,c){void 0===b&&(b=a.length);var d=a[b-1],e=a[b-2];return d?"ContentStatement"===d.type?(e||!c?/\r?\n\s*?$/:/(^|\r?\n)\s*?$/).test(d.original):void 0:c}function f(a,b,c){void 0===b&&(b=-1);var d=a[b+1],e=a[b+2];return d?"ContentStatement"===d.type?(e||!c?/^\s*?\r?\n/:/^\s*?(\r?\n|$)/).test(d.original):void 0:c}function g(a,b,c){var d=a[null==b?0:b+1];if(d&&"ContentStatement"===d.type&&(c||!d.rightStripped)){var e=d.value;d.value=d.value.replace(c?/^\s+/:/^[ \t]*\r?\n?/,""),d.rightStripped=d.value!==e}}function h(a,b,c){var d=a[null==b?a.length-1:b-1];if(d&&"ContentStatement"===d.type&&(c||!d.leftStripped)){var e=d.value;return d.value=d.value.replace(c?/\s+$/:/[ \t]+$/,""),d.leftStripped=d.value!==e,d.leftStripped}}var i=c(1)["default"];b.__esModule=!0;var j=c(39),k=i(j);d.prototype=new k["default"],d.prototype.Program=function(a){var b=!this.options.ignoreStandalone,c=!this.isRootSeen;this.isRootSeen=!0;for(var d=a.body,i=0,j=d.length;i0)throw new q["default"]("Invalid path: "+d,{loc:c});".."===i&&f++}}return{type:"PathExpression",data:a,depth:f,parts:e,original:d,loc:c}}function j(a,b,c,d,e,f){var g=d.charAt(3)||d.charAt(2),h="{"!==g&&"&"!==g,i=/\*/.test(d);return{type:i?"Decorator":"MustacheStatement",path:a,params:b,hash:c,escaped:h,strip:e,loc:this.locInfo(f)}}function k(a,b,c,e){d(a,c),e=this.locInfo(e);var f={type:"Program",body:b,strip:{},loc:e};return{type:"BlockStatement",path:a.path,params:a.params,hash:a.hash,program:f,openStrip:{},inverseStrip:{},closeStrip:{},loc:e}}function l(a,b,c,e,f,g){e&&e.path&&d(a,e);var h=/\*/.test(a.open);b.blockParams=a.blockParams;var i=void 0,j=void 0;if(c){if(h)throw new q["default"]("Unexpected inverse block on decorator",c);c.chain&&(c.program.body[0].closeStrip=e.strip),j=c.strip,i=c.program}return f&&(f=i,i=b,b=f),{type:h?"DecoratorBlock":"BlockStatement",path:a.path,params:a.params,hash:a.hash,program:b,inverse:i,openStrip:a.strip,inverseStrip:j,closeStrip:e&&e.strip,loc:this.locInfo(g)}}function m(a,b){if(!b&&a.length){var c=a[0].loc,d=a[a.length-1].loc;c&&d&&(b={source:c.source,start:{line:c.start.line,column:c.start.column},end:{line:d.end.line,column:d.end.column}})}return{type:"Program",body:a,strip:{},loc:b}}function n(a,b,c,e){return d(a,c),{type:"PartialBlockStatement",name:a.path,params:a.params,hash:a.hash,program:b,openStrip:a.strip,closeStrip:c&&c.strip,loc:this.locInfo(e)}}var o=c(1)["default"];b.__esModule=!0,b.SourceLocation=e,b.id=f,b.stripFlags=g,b.stripComment=h,b.preparePath=i,b.prepareMustache=j,b.prepareRawBlock=k,b.prepareBlock=l,b.prepareProgram=m,b.preparePartialBlock=n;var p=c(6),q=o(p)},function(a,b,c){"use strict";function d(){}function e(a,b,c){if(null==a||"string"!=typeof a&&"Program"!==a.type)throw new k["default"]("You must pass a string or Handlebars AST to Handlebars.precompile. You passed "+a);b=b||{},"data"in b||(b.data=!0),b.compat&&(b.useDepths=!0);var d=c.parse(a,b),e=(new c.Compiler).compile(d,b);return(new c.JavaScriptCompiler).compile(e,b)}function f(a,b,c){function d(){var d=c.parse(a,b),e=(new c.Compiler).compile(d,b),f=(new c.JavaScriptCompiler).compile(e,b,void 0,!0);return c.template(f)}function e(a,b){return f||(f=d()),f.call(this,a,b)}if(void 0===b&&(b={}),null==a||"string"!=typeof a&&"Program"!==a.type)throw new k["default"]("You must pass a string or Handlebars AST to Handlebars.compile. You passed "+a);b=l.extend({},b),"data"in b||(b.data=!0),b.compat&&(b.useDepths=!0);var f=void 0;return e._setup=function(a){return f||(f=d()),f._setup(a)},e._child=function(a,b,c,e){return f||(f=d()),f._child(a,b,c,e)},e}function g(a,b){if(a===b)return!0;if(l.isArray(a)&&l.isArray(b)&&a.length===b.length){for(var c=0;c1)throw new k["default"]("Unsupported number of partial arguments: "+c.length,a);c.length||(this.options.explicitPartialContext?this.opcode("pushLiteral","undefined"):c.push({type:"PathExpression",parts:[],depth:0}));var d=a.name.original,e="SubExpression"===a.name.type;e&&this.accept(a.name),this.setupFullMustacheParams(a,b,void 0,!0);var f=a.indent||"";this.options.preventIndent&&f&&(this.opcode("appendContent",f),f=""),this.opcode("invokePartial",e,d,f),this.opcode("append")},PartialBlockStatement:function(a){this.PartialStatement(a)},MustacheStatement:function(a){this.SubExpression(a),a.escaped&&!this.options.noEscape?this.opcode("appendEscaped"):this.opcode("append")},Decorator:function(a){this.DecoratorBlock(a)},ContentStatement:function(a){a.value&&this.opcode("appendContent",a.value)},CommentStatement:function(){},SubExpression:function(a){h(a);var b=this.classifySexpr(a);"simple"===b?this.simpleSexpr(a):"helper"===b?this.helperSexpr(a):this.ambiguousSexpr(a)},ambiguousSexpr:function(a,b,c){var d=a.path,e=d.parts[0],f=null!=b||null!=c;this.opcode("getContext",d.depth),this.opcode("pushProgram",b),this.opcode("pushProgram",c),d.strict=!0,this.accept(d),this.opcode("invokeAmbiguous",e,f)},simpleSexpr:function(a){var b=a.path;b.strict=!0,this.accept(b),this.opcode("resolvePossibleLambda")},helperSexpr:function(a,b,c){var d=this.setupFullMustacheParams(a,b,c),e=a.path,f=e.parts[0];if(this.options.knownHelpers[f])this.opcode("invokeKnownHelper",d.length,f);else{if(this.options.knownHelpersOnly)throw new k["default"]("You specified knownHelpersOnly, but used the unknown helper "+f,a);e.strict=!0,e.falsy=!0,this.accept(e),this.opcode("invokeHelper",d.length,e.original,n["default"].helpers.simpleId(e))}},PathExpression:function(a){this.addDepth(a.depth),this.opcode("getContext",a.depth);var b=a.parts[0],c=n["default"].helpers.scopedId(a),d=!a.depth&&!c&&this.blockParamIndex(b);d?this.opcode("lookupBlockParam",d,a.parts):b?a.data?(this.options.data=!0,this.opcode("lookupData",a.depth,a.parts,a.strict)):this.opcode("lookupOnContext",a.parts,a.falsy,a.strict,c):this.opcode("pushContext")},StringLiteral:function(a){this.opcode("pushString",a.value)},NumberLiteral:function(a){this.opcode("pushLiteral",a.value)},BooleanLiteral:function(a){this.opcode("pushLiteral",a.value)},UndefinedLiteral:function(){this.opcode("pushLiteral","undefined")},NullLiteral:function(){this.opcode("pushLiteral","null")},Hash:function(a){var b=a.pairs,c=0,d=b.length;for(this.opcode("pushHash");c=0)return[b,e]}}}},function(a,b,c){"use strict";function d(a){this.value=a}function e(){}function f(a,b,c,d){var e=b.popStack(),f=0,g=c.length;for(a&&g--;f0&&(b+=", "+c.join(", "));var d=0;for(var e in this.aliases){var f=this.aliases[e];this.aliases.hasOwnProperty(e)&&f.children&&f.referenceCount>1&&(b+=", alias"+ ++d+"="+e,f.children[0]="alias"+d)}var g=["container","depth0","helpers","partials","data"];(this.useBlockParams||this.useDepths)&&g.push("blockParams"),this.useDepths&&g.push("depths");var h=this.mergeSource(b);return a?(g.push(h),Function.apply(this,g)):this.source.wrap(["function(",g.join(","),") {\n ",h,"}"])},mergeSource:function(a){var b=this.environment.isSimple,c=!this.forceBuffer,d=void 0,e=void 0,f=void 0,g=void 0;return this.source.each(function(a){a.appendToBuffer?(f?a.prepend(" + "):f=a,g=a):(f&&(e?f.prepend("buffer += "):d=!0,g.add(";"),f=g=void 0),e=!0,b||(c=!1))}),c?f?(f.prepend("return "),g.add(";")):e||this.source.push('return "";'):(a+=", buffer = "+(d?"":this.initializeBuffer()),f?(f.prepend("return buffer + "),g.add(";")):this.source.push("return buffer;")),a&&this.source.prepend("var "+a.substring(2)+(d?"":";\n")),this.source.merge()},blockValue:function(a){var b=this.aliasable("helpers.blockHelperMissing"),c=[this.contextName(0)];this.setupHelperArgs(a,0,c);var d=this.popStack();c.splice(1,0,d),this.push(this.source.functionCall(b,"call",c))},ambiguousBlockValue:function(){var a=this.aliasable("helpers.blockHelperMissing"),b=[this.contextName(0)];this.setupHelperArgs("",0,b,!0),this.flushInline();var c=this.topStack();b.splice(1,0,c),this.pushSource(["if (!",this.lastHelper,") { ",c," = ",this.source.functionCall(a,"call",b),"}"])},appendContent:function(a){this.pendingContent?a=this.pendingContent+a:this.pendingLocation=this.source.currentLocation,this.pendingContent=a},append:function(){if(this.isInline())this.replaceStack(function(a){return[" != null ? ",a,' : ""']}),this.pushSource(this.appendToBuffer(this.popStack()));else{var a=this.popStack();this.pushSource(["if (",a," != null) { ",this.appendToBuffer(a,void 0,!0)," }"]),this.environment.isSimple&&this.pushSource(["else { ",this.appendToBuffer("''",void 0,!0)," }"])}},appendEscaped:function(){this.pushSource(this.appendToBuffer([this.aliasable("container.escapeExpression"),"(",this.popStack(),")"]))},getContext:function(a){this.lastContext=a},pushContext:function(){this.pushStackLiteral(this.contextName(this.lastContext))},lookupOnContext:function(a,b,c,d){var e=0;d||!this.options.compat||this.lastContext?this.pushContext():this.push(this.depthedLookup(a[e++])),this.resolvePath("context",a,e,b,c)},lookupBlockParam:function(a,b){this.useBlockParams=!0,this.push(["blockParams[",a[0],"][",a[1],"]"]),this.resolvePath("context",b,1)},lookupData:function(a,b,c){a?this.pushStackLiteral("container.data(data, "+a+")"):this.pushStackLiteral("data"),this.resolvePath("data",b,0,!0,c)},resolvePath:function(a,b,c,d,e){var g=this;if(this.options.strict||this.options.assumeObjects)return void this.push(f(this.options.strict&&e,this,b,a)); -for(var h=b.length;cthis.stackVars.length&&this.stackVars.push("stack"+this.stackSlot),this.topStackName()},topStackName:function(){return"stack"+this.stackSlot},flushInline:function(){var a=this.inlineStack;this.inlineStack=[];for(var b=0,c=a.length;b+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(m.childNodes),m.childNodes),t[m.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&((e?e.ownerDocument||e:m)!==C&&T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[k]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=k,!C.getElementsByName||!C.getElementsByName(k).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",$)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e===C||e.ownerDocument===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===C?-1:t===C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ae(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ne(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ne(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n=void 0,r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n}else r&&(Q.set(this,i,k.event.trigger(k.extend(r.shift(),k.Event.prototype),r,this)),e.stopImmediatePropagation())}})):k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,k.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===k.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.fn[t]=function(e){return _(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return _(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){k.fn[n]=function(e,t){return 00?g:m)(u)},w=(p=!1,function(u,D){var e,t,r=String(function(u){if(null==u)throw TypeError("Can't call method on "+u);return u}(u)),F=y(D),n=r.length;return F<0||F>=n?p?"":void 0:(e=r.charCodeAt(F))<55296||e>56319||F+1===n||(t=r.charCodeAt(F+1))<56320||t>57343?p?r.charAt(F):e:p?r.slice(F,F+2):t-56320+(e-55296<<10)+65536});h(h.P,"String",{codePointAt:function(u){return w(this,u)}});e.String.codePointAt;var S=Math.max,b=Math.min,x=String.fromCharCode,N=String.fromCodePoint;h(h.S+h.F*(!!N&&1!=N.length),"String",{fromCodePoint:function(u){for(var D,e,t,r=arguments,F=[],n=arguments.length,C=0;n>C;){if(D=+r[C++],t=1114111,((e=y(e=D))<0?S(e+t,0):b(e,t))!==D)throw RangeError(D+" is not a valid code point");F.push(D<65536?x(D):x(55296+((D-=65536)>>10),D%1024+56320))}return F.join("")}});e.String.fromCodePoint;var P,I,O,_,j,V,J,M,L,k,T,H,$,z,R={Space_Separator:/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,ID_Start:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,ID_Continue:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/},G={isSpaceSeparator:function(u){return R.Space_Separator.test(u)},isIdStartChar:function(u){return u>="a"&&u<="z"||u>="A"&&u<="Z"||"$"===u||"_"===u||R.ID_Start.test(u)},isIdContinueChar:function(u){return u>="a"&&u<="z"||u>="A"&&u<="Z"||u>="0"&&u<="9"||"$"===u||"_"===u||"‌"===u||"‍"===u||R.ID_Continue.test(u)},isDigit:function(u){return/[0-9]/.test(u)},isHexDigit:function(u){return/[0-9A-Fa-f]/.test(u)}};function U(){for(k="default",T="",H=!1,$=1;;){z=Z();var u=W[k]();if(u)return u}}function Z(){if(P[_])return String.fromCodePoint(P.codePointAt(_))}function q(){var u=Z();return"\n"===u?(j++,V=0):u?V+=u.length:V++,u&&(_+=u.length),u}var W={default:function(){switch(z){case"\t":case"\v":case"\f":case" ":case" ":case"\ufeff":case"\n":case"\r":case"\u2028":case"\u2029":return void q();case"/":return q(),void(k="comment");case void 0:return q(),X("eof")}if(!G.isSpaceSeparator(z))return W[I]();q()},comment:function(){switch(z){case"*":return q(),void(k="multiLineComment");case"/":return q(),void(k="singleLineComment")}throw eu(q())},multiLineComment:function(){switch(z){case"*":return q(),void(k="multiLineCommentAsterisk");case void 0:throw eu(q())}q()},multiLineCommentAsterisk:function(){switch(z){case"*":return void q();case"/":return q(),void(k="default");case void 0:throw eu(q())}q(),k="multiLineComment"},singleLineComment:function(){switch(z){case"\n":case"\r":case"\u2028":case"\u2029":return q(),void(k="default");case void 0:return q(),X("eof")}q()},value:function(){switch(z){case"{":case"[":return X("punctuator",q());case"n":return q(),K("ull"),X("null",null);case"t":return q(),K("rue"),X("boolean",!0);case"f":return q(),K("alse"),X("boolean",!1);case"-":case"+":return"-"===q()&&($=-1),void(k="sign");case".":return T=q(),void(k="decimalPointLeading");case"0":return T=q(),void(k="zero");case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return T=q(),void(k="decimalInteger");case"I":return q(),K("nfinity"),X("numeric",1/0);case"N":return q(),K("aN"),X("numeric",NaN);case'"':case"'":return H='"'===q(),T="",void(k="string")}throw eu(q())},identifierNameStartEscape:function(){if("u"!==z)throw eu(q());q();var u=Q();switch(u){case"$":case"_":break;default:if(!G.isIdStartChar(u))throw ru()}T+=u,k="identifierName"},identifierName:function(){switch(z){case"$":case"_":case"‌":case"‍":return void(T+=q());case"\\":return q(),void(k="identifierNameEscape")}if(!G.isIdContinueChar(z))return X("identifier",T);T+=q()},identifierNameEscape:function(){if("u"!==z)throw eu(q());q();var u=Q();switch(u){case"$":case"_":case"‌":case"‍":break;default:if(!G.isIdContinueChar(u))throw ru()}T+=u,k="identifierName"},sign:function(){switch(z){case".":return T=q(),void(k="decimalPointLeading");case"0":return T=q(),void(k="zero");case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return T=q(),void(k="decimalInteger");case"I":return q(),K("nfinity"),X("numeric",$*(1/0));case"N":return q(),K("aN"),X("numeric",NaN)}throw eu(q())},zero:function(){switch(z){case".":return T+=q(),void(k="decimalPoint");case"e":case"E":return T+=q(),void(k="decimalExponent");case"x":case"X":return T+=q(),void(k="hexadecimal")}return X("numeric",0*$)},decimalInteger:function(){switch(z){case".":return T+=q(),void(k="decimalPoint");case"e":case"E":return T+=q(),void(k="decimalExponent")}if(!G.isDigit(z))return X("numeric",$*Number(T));T+=q()},decimalPointLeading:function(){if(G.isDigit(z))return T+=q(),void(k="decimalFraction");throw eu(q())},decimalPoint:function(){switch(z){case"e":case"E":return T+=q(),void(k="decimalExponent")}return G.isDigit(z)?(T+=q(),void(k="decimalFraction")):X("numeric",$*Number(T))},decimalFraction:function(){switch(z){case"e":case"E":return T+=q(),void(k="decimalExponent")}if(!G.isDigit(z))return X("numeric",$*Number(T));T+=q()},decimalExponent:function(){switch(z){case"+":case"-":return T+=q(),void(k="decimalExponentSign")}if(G.isDigit(z))return T+=q(),void(k="decimalExponentInteger");throw eu(q())},decimalExponentSign:function(){if(G.isDigit(z))return T+=q(),void(k="decimalExponentInteger");throw eu(q())},decimalExponentInteger:function(){if(!G.isDigit(z))return X("numeric",$*Number(T));T+=q()},hexadecimal:function(){if(G.isHexDigit(z))return T+=q(),void(k="hexadecimalInteger");throw eu(q())},hexadecimalInteger:function(){if(!G.isHexDigit(z))return X("numeric",$*Number(T));T+=q()},string:function(){switch(z){case"\\":return q(),void(T+=function(){switch(Z()){case"b":return q(),"\b";case"f":return q(),"\f";case"n":return q(),"\n";case"r":return q(),"\r";case"t":return q(),"\t";case"v":return q(),"\v";case"0":if(q(),G.isDigit(Z()))throw eu(q());return"\0";case"x":return q(),function(){var u="",D=Z();if(!G.isHexDigit(D))throw eu(q());if(u+=q(),D=Z(),!G.isHexDigit(D))throw eu(q());return u+=q(),String.fromCodePoint(parseInt(u,16))}();case"u":return q(),Q();case"\n":case"\u2028":case"\u2029":return q(),"";case"\r":return q(),"\n"===Z()&&q(),"";case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":case void 0:throw eu(q())}return q()}());case'"':return H?(q(),X("string",T)):void(T+=q());case"'":return H?void(T+=q()):(q(),X("string",T));case"\n":case"\r":throw eu(q());case"\u2028":case"\u2029":!function(u){console.warn("JSON5: '"+Fu(u)+"' in strings is not valid ECMAScript; consider escaping")}(z);break;case void 0:throw eu(q())}T+=q()},start:function(){switch(z){case"{":case"[":return X("punctuator",q())}k="value"},beforePropertyName:function(){switch(z){case"$":case"_":return T=q(),void(k="identifierName");case"\\":return q(),void(k="identifierNameStartEscape");case"}":return X("punctuator",q());case'"':case"'":return H='"'===q(),void(k="string")}if(G.isIdStartChar(z))return T+=q(),void(k="identifierName");throw eu(q())},afterPropertyName:function(){if(":"===z)return X("punctuator",q());throw eu(q())},beforePropertyValue:function(){k="value"},afterPropertyValue:function(){switch(z){case",":case"}":return X("punctuator",q())}throw eu(q())},beforeArrayValue:function(){if("]"===z)return X("punctuator",q());k="value"},afterArrayValue:function(){switch(z){case",":case"]":return X("punctuator",q())}throw eu(q())},end:function(){throw eu(q())}};function X(u,D){return{type:u,value:D,line:j,column:V}}function K(u){for(var D=0,e=u;D0;){var e=Z();if(!G.isHexDigit(e))throw eu(q());u+=q()}return String.fromCodePoint(parseInt(u,16))}var Y={start:function(){if("eof"===J.type)throw tu();uu()},beforePropertyName:function(){switch(J.type){case"identifier":case"string":return M=J.value,void(I="afterPropertyName");case"punctuator":return void Du();case"eof":throw tu()}},afterPropertyName:function(){if("eof"===J.type)throw tu();I="beforePropertyValue"},beforePropertyValue:function(){if("eof"===J.type)throw tu();uu()},beforeArrayValue:function(){if("eof"===J.type)throw tu();"punctuator"!==J.type||"]"!==J.value?uu():Du()},afterPropertyValue:function(){if("eof"===J.type)throw tu();switch(J.value){case",":return void(I="beforePropertyName");case"}":Du()}},afterArrayValue:function(){if("eof"===J.type)throw tu();switch(J.value){case",":return void(I="beforeArrayValue");case"]":Du()}},end:function(){}};function uu(){var u;switch(J.type){case"punctuator":switch(J.value){case"{":u={};break;case"[":u=[]}break;case"null":case"boolean":case"numeric":case"string":u=J.value}if(void 0===L)L=u;else{var D=O[O.length-1];Array.isArray(D)?D.push(u):D[M]=u}if(null!==u&&"object"==typeof u)O.push(u),I=Array.isArray(u)?"beforeArrayValue":"beforePropertyName";else{var e=O[O.length-1];I=null==e?"end":Array.isArray(e)?"afterArrayValue":"afterPropertyValue"}}function Du(){O.pop();var u=O[O.length-1];I=null==u?"end":Array.isArray(u)?"afterArrayValue":"afterPropertyValue"}function eu(u){return nu(void 0===u?"JSON5: invalid end of input at "+j+":"+V:"JSON5: invalid character '"+Fu(u)+"' at "+j+":"+V)}function tu(){return nu("JSON5: invalid end of input at "+j+":"+V)}function ru(){return nu("JSON5: invalid identifier character at "+j+":"+(V-=5))}function Fu(u){var D={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(D[u])return D[u];if(u<" "){var e=u.charCodeAt(0).toString(16);return"\\x"+("00"+e).substring(e.length)}return u}function nu(u){var D=new SyntaxError(u);return D.lineNumber=j,D.columnNumber=V,D}return{parse:function(u,D){P=String(u),I="start",O=[],_=0,j=1,V=0,J=void 0,M=void 0,L=void 0;do{J=U(),Y[I]()}while("eof"!==J.type);return"function"==typeof D?function u(D,e,t){var r=D[e];if(null!=r&&"object"==typeof r)for(var F in r){var n=u(r,F,t);void 0===n?delete r[F]:r[F]=n}return t.call(D,e,r)}({"":L},"",D):L},stringify:function(u,D,e){var t,r,F,n=[],C="",A="";if(null==D||"object"!=typeof D||Array.isArray(D)||(e=D.space,F=D.quote,D=D.replacer),"function"==typeof D)r=D;else if(Array.isArray(D)){t=[];for(var E=0,i=D;E0&&(e=Math.min(10,Math.floor(e)),A=" ".substr(0,e)):"string"==typeof e&&(A=e.substr(0,10)),c("",{"":u});function c(u,D){var e=D[u];switch(null!=e&&("function"==typeof e.toJSON5?e=e.toJSON5(u):"function"==typeof e.toJSON&&(e=e.toJSON(u))),r&&(e=r.call(D,u,e)),e instanceof Number?e=Number(e):e instanceof String?e=String(e):e instanceof Boolean&&(e=e.valueOf()),e){case null:return"null";case!0:return"true";case!1:return"false"}return"string"==typeof e?B(e):"number"==typeof e?String(e):"object"==typeof e?Array.isArray(e)?function(u){if(n.indexOf(u)>=0)throw TypeError("Converting circular structure to JSON5");n.push(u);var D=C;C+=A;for(var e,t=[],r=0;r=0)throw TypeError("Converting circular structure to JSON5");n.push(u);var D=C;C+=A;for(var e,r,F=t||Object.keys(u),E=[],i=0,o=F;i1)return this.getValueByKeyPath(key,options);if(templateContext&&"object"==typeof templateContext&&key in templateContext&&placeholder!==templateContext[key])return templateContext[key]=Handler.gen(templateContext[key],key,{currentContext:obj,templateCurrentContext:templateContext}),templateContext[key];if(!(key in Random||lkey in Random||okey in Random))return placeholder;for(var i=0;i1&&(a=e.context.path.slice(0),a.pop(),a=this.normalizePath(a.concat(r))),t=r[r.length-1];for(var o=e.context.root,u=e.context.templateRoot,i=1;ii;i++)if(t=arguments[i])for(e in t)r=u[e],a=t[e],u!==a&&void 0!==a&&(n.isArray(a)||n.isObject(a)?(n.isArray(a)&&(o=r&&n.isArray(r)?r:[]),n.isObject(a)&&(o=r&&n.isObject(r)?r:{}),u[e]=n.extend(o,a)):u[e]=a);return u},n.each=function(t,e,n){var r,a;if("number"===this.type(t))for(r=0;t>r;r++)e(r,r);else if(t.length===+t.length)for(r=0;r1/(t+e)*t?!n:n):Math.random()>=.5},bool:function(t,e,n){return this["boolean"](t,e,n)},natural:function(t,e){return t="undefined"!=typeof t?parseInt(t,10):0,e="undefined"!=typeof e?parseInt(e,10):9007199254740992,Math.round(Math.random()*(e-t))+t},integer:function(t,e){return t="undefined"!=typeof t?parseInt(t,10):-9007199254740992,e="undefined"!=typeof e?parseInt(e,10):9007199254740992,Math.round(Math.random()*(e-t))+t},"int":function(t,e){return this.integer(t,e)},"float":function(t,e,n,r){n=void 0===n?0:n,n=Math.max(Math.min(n,17),0),r=void 0===r?17:r,r=Math.max(Math.min(r,17),0);for(var a=this.integer(t,e)+".",o=0,u=this.natural(n,r);u>o;o++)a+=u-1>o?this.character("number"):this.character("123456789");return parseFloat(a,10)},character:function(t){var e={lower:"abcdefghijklmnopqrstuvwxyz",upper:"ABCDEFGHIJKLMNOPQRSTUVWXYZ",number:"0123456789",symbol:"!@#$%^&*()[]"};return e.alpha=e.lower+e.upper,e.undefined=e.lower+e.upper+e.number+e.symbol,t=e[(""+t).toLowerCase()]||t,t.charAt(this.natural(0,t.length-1))},"char":function(t){return this.character(t)},string:function(t,e,n){var r;switch(arguments.length){case 0:r=this.natural(3,7);break;case 1:r=t,t=void 0;break;case 2:"string"==typeof arguments[0]?r=e:(r=this.natural(t,e),t=void 0);break;case 3:r=this.natural(e,n)}for(var a="",o=0;r>o;o++)a+=this.character(t);return a},str:function(){return this.string.apply(this,arguments)},range:function(t,e,n){arguments.length<=1&&(e=t||0,t=0),n=arguments[2]||1,t=+t,e=+e,n=+n;for(var r=Math.max(Math.ceil((e-t)/n),0),a=0,o=new Array(r);r>a;)o[a++]=t,t+=n;return o}}},function(t,e){var n={yyyy:"getFullYear",yy:function(t){return(""+t.getFullYear()).slice(2)},y:"yy",MM:function(t){var e=t.getMonth()+1;return 10>e?"0"+e:e},M:function(t){return t.getMonth()+1},dd:function(t){var e=t.getDate();return 10>e?"0"+e:e},d:"getDate",HH:function(t){var e=t.getHours();return 10>e?"0"+e:e},H:"getHours",hh:function(t){var e=t.getHours()%12;return 10>e?"0"+e:e},h:function(t){return t.getHours()%12},mm:function(t){var e=t.getMinutes();return 10>e?"0"+e:e},m:"getMinutes",ss:function(t){var e=t.getSeconds();return 10>e?"0"+e:e},s:"getSeconds",SS:function(t){var e=t.getMilliseconds();return 10>e&&"00"+e||100>e&&"0"+e||e},S:"getMilliseconds",A:function(t){return t.getHours()<12?"AM":"PM"},a:function(t){return t.getHours()<12?"am":"pm"},T:"getTime"};t.exports={_patternLetters:n,_rformat:new RegExp(function(){var t=[];for(var e in n)t.push(e);return"("+t.join("|")+")"}(),"g"),_formatDate:function(t,e){return e.replace(this._rformat,function r(e,a){return"function"==typeof n[a]?n[a](t):n[a]in n?r(e,n[a]):t[n[a]]()})},_randomDate:function(t,e){return t=void 0===t?new Date(0):t,e=void 0===e?new Date:e,new Date(Math.random()*(e.getTime()-t.getTime()))},date:function(t){return t=t||"yyyy-MM-dd",this._formatDate(this._randomDate(),t)},time:function(t){return t=t||"HH:mm:ss",this._formatDate(this._randomDate(),t)},datetime:function(t){return t=t||"yyyy-MM-dd HH:mm:ss",this._formatDate(this._randomDate(),t)},now:function(t,e){1===arguments.length&&(/year|month|day|hour|minute|second|week/.test(t)||(e=t,t="")),t=(t||"").toLowerCase(),e=e||"yyyy-MM-dd HH:mm:ss";var n=new Date;switch(t){case"year":n.setMonth(0);case"month":n.setDate(1);case"week":case"day":n.setHours(0);case"hour":n.setMinutes(0);case"minute":n.setSeconds(0);case"second":n.setMilliseconds(0)}switch(t){case"week":n.setDate(n.getDate()-n.getDay())}return this._formatDate(n,e)}}},function(t,e,n){(function(t){t.exports={_adSize:["300x250","250x250","240x400","336x280","180x150","720x300","468x60","234x60","88x31","120x90","120x60","120x240","125x125","728x90","160x600","120x600","300x600"],_screenSize:["320x200","320x240","640x480","800x480","800x480","1024x600","1024x768","1280x800","1440x900","1920x1200","2560x1600"],_videoSize:["720x480","768x576","1280x720","1920x1080"],image:function(t,e,n,r,a){return 4===arguments.length&&(a=r,r=void 0),3===arguments.length&&(a=n,n=void 0),t||(t=this.pick(this._adSize)),e&&~e.indexOf("#")&&(e=e.slice(1)),n&&~n.indexOf("#")&&(n=n.slice(1)),"http://dummyimage.com/"+t+(e?"/"+e:"")+(n?"/"+n:"")+(r?"."+r:"")+(a?"&text="+a:"")},img:function(){return this.image.apply(this,arguments)},_brandColors:{"4ormat":"#fb0a2a","500px":"#02adea","About.me (blue)":"#00405d","About.me (yellow)":"#ffcc33",Addvocate:"#ff6138",Adobe:"#ff0000",Aim:"#fcd20b",Amazon:"#e47911",Android:"#a4c639","Angie's List":"#7fbb00",AOL:"#0060a3",Atlassian:"#003366",Behance:"#053eff","Big Cartel":"#97b538",bitly:"#ee6123",Blogger:"#fc4f08",Boeing:"#0039a6","Booking.com":"#003580",Carbonmade:"#613854",Cheddar:"#ff7243","Code School":"#3d4944",Delicious:"#205cc0",Dell:"#3287c1",Designmoo:"#e54a4f",Deviantart:"#4e6252","Designer News":"#2d72da",Devour:"#fd0001",DEWALT:"#febd17","Disqus (blue)":"#59a3fc","Disqus (orange)":"#db7132",Dribbble:"#ea4c89",Dropbox:"#3d9ae8",Drupal:"#0c76ab",Dunked:"#2a323a",eBay:"#89c507",Ember:"#f05e1b",Engadget:"#00bdf6",Envato:"#528036",Etsy:"#eb6d20",Evernote:"#5ba525","Fab.com":"#dd0017",Facebook:"#3b5998",Firefox:"#e66000","Flickr (blue)":"#0063dc","Flickr (pink)":"#ff0084",Forrst:"#5b9a68",Foursquare:"#25a0ca",Garmin:"#007cc3",GetGlue:"#2d75a2",Gimmebar:"#f70078",GitHub:"#171515","Google Blue":"#0140ca","Google Green":"#16a61e","Google Red":"#dd1812","Google Yellow":"#fcca03","Google+":"#dd4b39",Grooveshark:"#f77f00",Groupon:"#82b548","Hacker News":"#ff6600",HelloWallet:"#0085ca","Heroku (light)":"#c7c5e6","Heroku (dark)":"#6567a5",HootSuite:"#003366",Houzz:"#73ba37",HTML5:"#ec6231",IKEA:"#ffcc33",IMDb:"#f3ce13",Instagram:"#3f729b",Intel:"#0071c5",Intuit:"#365ebf",Kickstarter:"#76cc1e",kippt:"#e03500",Kodery:"#00af81",LastFM:"#c3000d",LinkedIn:"#0e76a8",Livestream:"#cf0005",Lumo:"#576396",Mixpanel:"#a086d3",Meetup:"#e51937",Nokia:"#183693",NVIDIA:"#76b900",Opera:"#cc0f16",Path:"#e41f11","PayPal (dark)":"#1e477a","PayPal (light)":"#3b7bbf",Pinboard:"#0000e6",Pinterest:"#c8232c",PlayStation:"#665cbe",Pocket:"#ee4056",Prezi:"#318bff",Pusha:"#0f71b4",Quora:"#a82400","QUOTE.fm":"#66ceff",Rdio:"#008fd5",Readability:"#9c0000","Red Hat":"#cc0000",Resource:"#7eb400",Rockpack:"#0ba6ab",Roon:"#62b0d9",RSS:"#ee802f",Salesforce:"#1798c1",Samsung:"#0c4da2",Shopify:"#96bf48",Skype:"#00aff0",Snagajob:"#f47a20",Softonic:"#008ace",SoundCloud:"#ff7700","Space Box":"#f86960",Spotify:"#81b71a",Sprint:"#fee100",Squarespace:"#121212",StackOverflow:"#ef8236",Staples:"#cc0000","Status Chart":"#d7584f",Stripe:"#008cdd",StudyBlue:"#00afe1",StumbleUpon:"#f74425","T-Mobile":"#ea0a8e",Technorati:"#40a800","The Next Web":"#ef4423",Treehouse:"#5cb868",Trulia:"#5eab1f",Tumblr:"#34526f","Twitch.tv":"#6441a5",Twitter:"#00acee",TYPO3:"#ff8700",Ubuntu:"#dd4814",Ustream:"#3388ff",Verizon:"#ef1d1d",Vimeo:"#86c9ef",Vine:"#00a478",Virb:"#06afd8","Virgin Media":"#cc0000",Wooga:"#5b009c","WordPress (blue)":"#21759b","WordPress (orange)":"#d54e21","WordPress (grey)":"#464646",Wunderlist:"#2b88d9",XBOX:"#9bc848",XING:"#126567","Yahoo!":"#720e9e",Yandex:"#ffcc00",Yelp:"#c41200",YouTube:"#c4302b",Zalongo:"#5498dc",Zendesk:"#78a300",Zerply:"#9dcc7a",Zootool:"#5e8b1d"},_brandNames:function(){var t=[];for(var e in this._brandColors)t.push(e);return t},dataImage:function(e,n){var r;if("undefined"!=typeof document)r=document.createElement("canvas");else{var a=t.require("canvas");r=new a}var o=r&&r.getContext&&r.getContext("2d");if(!r||!o)return"";e||(e=this.pick(this._adSize)),n=void 0!==n?n:e,e=e.split("x");var u=parseInt(e[0],10),i=parseInt(e[1],10),l=this._brandColors[this.pick(this._brandNames())],s="#FFF",c=14,h="sans-serif";return r.width=u,r.height=i,o.textAlign="center",o.textBaseline="middle",o.fillStyle=l,o.fillRect(0,0,u,i),o.fillStyle=s,o.font="bold "+c+"px "+h,o.fillText(n,u/2,i/2,u),r.toDataURL("image/png")}}}).call(e,n(9)(t))},function(t,e){t.exports=function(t){return t.webpackPolyfill||(t.deprecate=function(){},t.paths=[],t.children=[],t.webpackPolyfill=1),t}},function(t,e,n){var r=n(11),a=n(12);t.exports={color:function(t){return t||a[t]?a[t].nicer:this.hex()},hex:function(){var t=this._goldenRatioColor(),e=r.hsv2rgb(t),n=r.rgb2hex(e[0],e[1],e[2]);return n},rgb:function(){var t=this._goldenRatioColor(),e=r.hsv2rgb(t);return"rgb("+parseInt(e[0],10)+", "+parseInt(e[1],10)+", "+parseInt(e[2],10)+")"},rgba:function(){var t=this._goldenRatioColor(),e=r.hsv2rgb(t);return"rgba("+parseInt(e[0],10)+", "+parseInt(e[1],10)+", "+parseInt(e[2],10)+", "+Math.random().toFixed(2)+")"},hsl:function(){var t=this._goldenRatioColor(),e=r.hsv2hsl(t);return"hsl("+parseInt(e[0],10)+", "+parseInt(e[1],10)+", "+parseInt(e[2],10)+")"},_goldenRatioColor:function(t,e){return this._goldenRatio=.618033988749895,this._hue=this._hue||Math.random(),this._hue+=this._goldenRatio,this._hue%=1,"number"!=typeof t&&(t=.5),"number"!=typeof e&&(e=.95),[360*this._hue,100*t,100*e]}}},function(t,e){t.exports={rgb2hsl:function(t){var e,n,r,a=t[0]/255,o=t[1]/255,u=t[2]/255,i=Math.min(a,o,u),l=Math.max(a,o,u),s=l-i;return l==i?e=0:a==l?e=(o-u)/s:o==l?e=2+(u-a)/s:u==l&&(e=4+(a-o)/s),e=Math.min(60*e,360),0>e&&(e+=360),r=(i+l)/2,n=l==i?0:.5>=r?s/(l+i):s/(2-l-i),[e,100*n,100*r]},rgb2hsv:function(t){var e,n,r,a=t[0],o=t[1],u=t[2],i=Math.min(a,o,u),l=Math.max(a,o,u),s=l-i;return n=0===l?0:s/l*1e3/10,l==i?e=0:a==l?e=(o-u)/s:o==l?e=2+(u-a)/s:u==l&&(e=4+(a-o)/s),e=Math.min(60*e,360),0>e&&(e+=360),r=l/255*1e3/10,[e,n,r]},hsl2rgb:function(t){var e,n,r,a,o,u=t[0]/360,i=t[1]/100,l=t[2]/100;if(0===i)return o=255*l,[o,o,o];n=.5>l?l*(1+i):l+i-l*i,e=2*l-n,a=[0,0,0];for(var s=0;3>s;s++)r=u+1/3*-(s-1),0>r&&r++,r>1&&r--,o=1>6*r?e+6*(n-e)*r:1>2*r?n:2>3*r?e+(n-e)*(2/3-r)*6:e,a[s]=255*o;return a},hsl2hsv:function(t){var e,n,r=t[0],a=t[1]/100,o=t[2]/100;return o*=2,a*=1>=o?o:2-o,n=(o+a)/2,e=2*a/(o+a),[r,100*e,100*n]},hsv2rgb:function(t){var e=t[0]/60,n=t[1]/100,r=t[2]/100,a=Math.floor(e)%6,o=e-Math.floor(e),u=255*r*(1-n),i=255*r*(1-n*o),l=255*r*(1-n*(1-o));switch(r=255*r,a){case 0:return[r,l,u];case 1:return[i,r,u];case 2:return[u,r,l];case 3:return[u,i,r];case 4:return[l,u,r];case 5:return[r,u,i]}},hsv2hsl:function(t){var e,n,r=t[0],a=t[1]/100,o=t[2]/100;return n=(2-a)*o,e=a*o,e/=1>=n?n:2-n,n/=2,[r,100*e,100*n]},rgb2hex:function(t,e,n){return"#"+((256+t<<8|e)<<8|n).toString(16).slice(1)},hex2rgb:function(t){return t="0x"+t.slice(1).replace(t.length>4?t:/./g,"$&$&")|0,[t>>16,t>>8&255,255&t]}}},function(t,e){t.exports={navy:{value:"#000080",nicer:"#001F3F"},blue:{value:"#0000ff",nicer:"#0074D9"},aqua:{value:"#00ffff",nicer:"#7FDBFF"},teal:{value:"#008080",nicer:"#39CCCC"},olive:{value:"#008000",nicer:"#3D9970"},green:{value:"#008000",nicer:"#2ECC40"},lime:{value:"#00ff00",nicer:"#01FF70"},yellow:{value:"#ffff00",nicer:"#FFDC00"},orange:{value:"#ffa500",nicer:"#FF851B"},red:{value:"#ff0000",nicer:"#FF4136"},maroon:{value:"#800000",nicer:"#85144B"},fuchsia:{value:"#ff00ff",nicer:"#F012BE"},purple:{value:"#800080",nicer:"#B10DC9"},silver:{value:"#c0c0c0",nicer:"#DDDDDD"},gray:{value:"#808080",nicer:"#AAAAAA"},black:{value:"#000000",nicer:"#111111"},white:{value:"#FFFFFF",nicer:"#FFFFFF"}}},function(t,e,n){function r(t,e,n,r){return void 0===n?a.natural(t,e):void 0===r?n:a.natural(parseInt(n,10),parseInt(r,10))}var a=n(6),o=n(14);t.exports={paragraph:function(t,e){for(var n=r(3,7,t,e),a=[],o=0;n>o;o++)a.push(this.sentence());return a.join(" ")},cparagraph:function(t,e){for(var n=r(3,7,t,e),a=[],o=0;n>o;o++)a.push(this.csentence());return a.join("")},sentence:function(t,e){for(var n=r(12,18,t,e),a=[],u=0;n>u;u++)a.push(this.word());return o.capitalize(a.join(" "))+"."},csentence:function(t,e){for(var n=r(12,18,t,e),a=[],o=0;n>o;o++)a.push(this.cword());return a.join("")+"。"},word:function(t,e){for(var n=r(3,10,t,e),o="",u=0;n>u;u++)o+=a.character("lower");return o},cword:function(t,e,n){var r,a="的一是在不了有和人这中大为上个国我以要他时来用们生到作地于出就分对成会可主发年动同工也能下过子说产种面而方后多定行学法所民得经十三之进着等部度家电力里如水化高自二理起小物现实加量都两体制机当使点从业本去把性好应开它合还因由其些然前外天政四日那社义事平形相全表间样与关各重新线内数正心反你明看原又么利比或但质气第向道命此变条只没结解问意建月公无系军很情者最立代想已通并提直题党程展五果料象员革位入常文总次品式活设及管特件长求老头基资边流路级少图山统接知较将组见计别她手角期根论运农指几九区强放决西被干做必战先回则任取据处队南给色光门即保治北造百规热领七海口东导器压志世金增争济阶油思术极交受联什认六共权收证改清己美再采转更单风切打白教速花带安场身车例真务具万每目至达走积示议声报斗完类八离华名确才科张信马节话米整空元况今集温传土许步群广石记需段研界拉林律叫且究观越织装影算低持音众书布复容儿须际商非验连断深难近矿千周委素技备半办青省列习响约支般史感劳便团往酸历市克何除消构府称太准精值号率族维划选标写存候毛亲快效斯院查江型眼王按格养易置派层片始却专状育厂京识适属圆包火住调满县局照参红细引听该铁价严龙飞";switch(arguments.length){case 0:t=a,r=1;break;case 1:"string"==typeof arguments[0]?r=1:(r=t,t=a);break;case 2:"string"==typeof arguments[0]?r=e:(r=this.natural(t,e),t=a);break;case 3:r=this.natural(e,n)}for(var o="",u=0;r>u;u++)o+=t.charAt(this.natural(0,t.length-1));return o},title:function(t,e){for(var n=r(3,7,t,e),a=[],o=0;n>o;o++)a.push(this.capitalize(this.word()));return a.join(" ")},ctitle:function(t,e){for(var n=r(3,7,t,e),a=[],o=0;n>o;o++)a.push(this.cword());return a.join("")}}},function(t,e,n){var r=n(3);t.exports={capitalize:function(t){return(t+"").charAt(0).toUpperCase()+(t+"").substr(1)},upper:function(t){return(t+"").toUpperCase()},lower:function(t){return(t+"").toLowerCase()},pick:function(t,e,n){return r.isArray(t)?(void 0===e&&(e=1),void 0===n&&(n=e)):(t=[].slice.call(arguments),e=1,n=1),1===e&&1===n?t[this.natural(0,t.length-1)]:this.shuffle(t,e,n)},shuffle:function(t,e,n){t=t||[];for(var r=t.slice(0),a=[],o=0,u=r.length,i=0;u>i;i++)o=this.natural(0,r.length-1),a.push(r[o]),r.splice(o,1);switch(arguments.length){case 0:case 1:return a;case 2:n=e;case 3:return e=parseInt(e,10),n=parseInt(n,10),a.slice(0,this.natural(e,n))}},order:function a(t){a.cache=a.cache||{},arguments.length>1&&(t=[].slice.call(arguments,0));var e=a.options,n=e.context.templatePath.join("."),r=a.cache[n]=a.cache[n]||{index:0,array:t};return r.array[r.index++%r.array.length]}}},function(t,e){t.exports={first:function(){var t=["James","John","Robert","Michael","William","David","Richard","Charles","Joseph","Thomas","Christopher","Daniel","Paul","Mark","Donald","George","Kenneth","Steven","Edward","Brian","Ronald","Anthony","Kevin","Jason","Matthew","Gary","Timothy","Jose","Larry","Jeffrey","Frank","Scott","Eric"].concat(["Mary","Patricia","Linda","Barbara","Elizabeth","Jennifer","Maria","Susan","Margaret","Dorothy","Lisa","Nancy","Karen","Betty","Helen","Sandra","Donna","Carol","Ruth","Sharon","Michelle","Laura","Sarah","Kimberly","Deborah","Jessica","Shirley","Cynthia","Angela","Melissa","Brenda","Amy","Anna"]);return this.pick(t)},last:function(){var t=["Smith","Johnson","Williams","Brown","Jones","Miller","Davis","Garcia","Rodriguez","Wilson","Martinez","Anderson","Taylor","Thomas","Hernandez","Moore","Martin","Jackson","Thompson","White","Lopez","Lee","Gonzalez","Harris","Clark","Lewis","Robinson","Walker","Perez","Hall","Young","Allen"];return this.pick(t)},name:function(t){return this.first()+" "+(t?this.first()+" ":"")+this.last()},cfirst:function(){var t="王 李 张 刘 陈 杨 赵 黄 周 吴 徐 孙 胡 朱 高 林 何 郭 马 罗 梁 宋 郑 谢 韩 唐 冯 于 董 萧 程 曹 袁 邓 许 傅 沈 曾 彭 吕 苏 卢 蒋 蔡 贾 丁 魏 薛 叶 阎 余 潘 杜 戴 夏 锺 汪 田 任 姜 范 方 石 姚 谭 廖 邹 熊 金 陆 郝 孔 白 崔 康 毛 邱 秦 江 史 顾 侯 邵 孟 龙 万 段 雷 钱 汤 尹 黎 易 常 武 乔 贺 赖 龚 文".split(" ");return this.pick(t)},clast:function(){var t="伟 芳 娜 秀英 敏 静 丽 强 磊 军 洋 勇 艳 杰 娟 涛 明 超 秀兰 霞 平 刚 桂英".split(" ");return this.pick(t)},cname:function(){return this.cfirst()+this.clast()}}},function(t,e){t.exports={url:function(t,e){return(t||this.protocol())+"://"+(e||this.domain())+"/"+this.word()},protocol:function(){return this.pick("http ftp gopher mailto mid cid news nntp prospero telnet rlogin tn3270 wais".split(" "))},domain:function(t){return this.word()+"."+(t||this.tld())},tld:function(){return this.pick("com net org edu gov int mil cn com.cn net.cn gov.cn org.cn 中国 中国互联.公司 中国互联.网络 tel biz cc tv info name hk mobi asia cd travel pro museum coop aero ad ae af ag ai al am an ao aq ar as at au aw az ba bb bd be bf bg bh bi bj bm bn bo br bs bt bv bw by bz ca cc cf cg ch ci ck cl cm cn co cq cr cu cv cx cy cz de dj dk dm do dz ec ee eg eh es et ev fi fj fk fm fo fr ga gb gd ge gf gh gi gl gm gn gp gr gt gu gw gy hk hm hn hr ht hu id ie il in io iq ir is it jm jo jp ke kg kh ki km kn kp kr kw ky kz la lb lc li lk lr ls lt lu lv ly ma mc md mg mh ml mm mn mo mp mq mr ms mt mv mw mx my mz na nc ne nf ng ni nl no np nr nt nu nz om qa pa pe pf pg ph pk pl pm pn pr pt pw py re ro ru rw sa sb sc sd se sg sh si sj sk sl sm sn so sr st su sy sz tc td tf tg th tj tk tm tn to tp tr tt tv tw tz ua ug uk us uy va vc ve vg vn vu wf ws ye yu za zm zr zw".split(" "))},email:function(t){return this.character("lower")+"."+this.word()+"@"+(t||this.word()+"."+this.tld())},ip:function(){return this.natural(0,255)+"."+this.natural(0,255)+"."+this.natural(0,255)+"."+this.natural(0,255)}}},function(t,e,n){var r=n(18),a=["东北","华北","华东","华中","华南","西南","西北"];t.exports={region:function(){return this.pick(a)},province:function(){return this.pick(r).name},city:function(t){var e=this.pick(r),n=this.pick(e.children);return t?[e.name,n.name].join(" "):n.name},county:function(t){var e=this.pick(r),n=this.pick(e.children),a=this.pick(n.children)||{name:"-"};return t?[e.name,n.name,a.name].join(" "):a.name},zip:function(t){for(var e="",n=0;(t||6)>n;n++)e+=this.natural(0,9);return e}}},function(t,e){function n(t){for(var e,n={},r=0;ra;a++)o=t.charAt(a),"\n"===o?(e.seenCR||e.line++,e.column=1,e.seenCR=!1):"\r"===o||"\u2028"===o||"\u2029"===o?(e.line++,e.column=1,e.seenCR=!0):(e.column++,e.seenCR=!1)}return tr!==e&&(tr>e&&(tr=0,er={line:1,column:1,seenCR:!1}),n(er,tr,e),tr=e),er}function b(t){nr>Zn||(Zn>nr&&(nr=Zn,rr=[]),rr.push(t))}function w(t){var e=0;for(t.sort();eZn?(r=t.charAt(Zn),Zn++):(r=null,0===ar&&b(Hn)),null!==r?(Qn=e,n=Sn(r),null===n?(Zn=e,e=n):e=n):(Zn=e,e=kt)):(Zn=e,e=kt),e}function ft(){var e,n,r;return e=Zn,92===t.charCodeAt(Zn)?(n=Dn,Zn++):(n=null,0===ar&&b(qn)),null!==n?(Fn.test(t.charAt(Zn))?(r=t.charAt(Zn),Zn++):(r=null,0===ar&&b(Ln)),null!==r?(Qn=e,n=On(r),null===n?(Zn=e,e=n):e=n):(Zn=e,e=kt)):(Zn=e,e=kt),e}function dt(){var e,n,r,a;if(e=Zn,t.substr(Zn,2)===In?(n=In,Zn+=2):(n=null,0===ar&&b(jn)),null!==n){if(r=[],Nn.test(t.charAt(Zn))?(a=t.charAt(Zn),Zn++):(a=null,0===ar&&b(zn)),null!==a)for(;null!==a;)r.push(a),Nn.test(t.charAt(Zn))?(a=t.charAt(Zn),Zn++):(a=null,0===ar&&b(zn));else r=kt;null!==r?(Qn=e,n=Un(r),null===n?(Zn=e,e=n):e=n):(Zn=e,e=kt)}else Zn=e,e=kt;return e}function mt(){var e,n,r,a;if(e=Zn,t.substr(Zn,2)===Bn?(n=Bn,Zn+=2):(n=null,0===ar&&b(Gn)),null!==n){if(r=[],Xn.test(t.charAt(Zn))?(a=t.charAt(Zn),Zn++):(a=null,0===ar&&b(Kn)),null!==a)for(;null!==a;)r.push(a),Xn.test(t.charAt(Zn))?(a=t.charAt(Zn),Zn++):(a=null,0===ar&&b(Kn));else r=kt;null!==r?(Qn=e,n=Wn(r),null===n?(Zn=e,e=n):e=n):(Zn=e,e=kt)}else Zn=e,e=kt;return e}function gt(){var e,n,r,a;if(e=Zn,t.substr(Zn,2)===Yn?(n=Yn,Zn+=2):(n=null,0===ar&&b($n)),null!==n){if(r=[],Xn.test(t.charAt(Zn))?(a=t.charAt(Zn),Zn++):(a=null,0===ar&&b(Kn)),null!==a)for(;null!==a;)r.push(a),Xn.test(t.charAt(Zn))?(a=t.charAt(Zn),Zn++):(a=null,0===ar&&b(Kn));else r=kt;null!==r?(Qn=e,n=Jn(r),null===n?(Zn=e,e=n):e=n):(Zn=e,e=kt)}else Zn=e,e=kt;return e}function vt(){var e,n;return e=Zn,t.substr(Zn,2)===In?(n=In,Zn+=2):(n=null,0===ar&&b(jn)),null!==n&&(Qn=e,n=Vn()),null===n?(Zn=e,e=n):e=n,e}function xt(){var e,n,r;return e=Zn,92===t.charCodeAt(Zn)?(n=Dn,Zn++):(n=null,0===ar&&b(qn)),null!==n?(t.length>Zn?(r=t.charAt(Zn),Zn++):(r=null,0===ar&&b(Hn)),null!==r?(Qn=e,n=Fe(r),null===n?(Zn=e,e=n):e=n):(Zn=e,e=kt)):(Zn=e,e=kt),e}var yt,bt=arguments.length>1?arguments[1]:{},wt={regexp:C},Ct=C,kt=null,Et="",Rt="|",At='"|"',_t=function(t,e){return e?new r(t,e[1]):t},Mt=function(t,e,n){return new a([t].concat(e).concat([n]))},Pt="^",Tt='"^"',Ht=function(){return new n("start")},St="$",Dt='"$"',qt=function(){return new n("end")},Ft=function(t,e){return new i(t,e)},Lt="Quantifier",Ot=function(t,e){return e&&(t.greedy=!1),t},It="{",jt='"{"',Nt=",",zt='","',Ut="}",Bt='"}"',Gt=function(t,e){return new l(t,e)},Xt=",}",Kt='",}"',Wt=function(t){return new l(t,1/0)},Yt=function(t){return new l(t,t)},$t="+",Jt='"+"',Vt=function(){return new l(1,1/0)},Zt="*",Qt='"*"',te=function(){return new l(0,1/0)},ee="?",ne='"?"',re=function(){return new l(0,1)},ae=/^[0-9]/,oe="[0-9]",ue=function(t){return+t.join("")},ie="(",le='"("',se=")",ce='")"',he=function(t){return t},pe=function(t){return new u(t)},fe="?:",de='"?:"',me=function(t){return new o("non-capture-group",t)},ge="?=",ve='"?="',xe=function(t){return new o("positive-lookahead",t)},ye="?!",be='"?!"',we=function(t){return new o("negative-lookahead",t)},Ce="CharacterSet",ke="[",Ee='"["',Re="]",Ae='"]"',_e=function(t,e){return new s(!!t,e)},Me="CharacterRange",Pe="-",Te='"-"',He=function(t,e){return new c(t,e)},Se="Character",De=/^[^\\\]]/,qe="[^\\\\\\]]",Fe=function(t){return new h(t)},Le=".",Oe='"."',Ie=function(){return new n("any-character")},je="Literal",Ne=/^[^|\\\/.[()?+*$\^]/,ze="[^|\\\\\\/.[()?+*$\\^]",Ue="\\b",Be='"\\\\b"',Ge=function(){return new n("backspace")},Xe=function(){return new n("word-boundary")},Ke="\\B",We='"\\\\B"',Ye=function(){return new n("non-word-boundary")},$e="\\d",Je='"\\\\d"',Ve=function(){return new n("digit")},Ze="\\D",Qe='"\\\\D"',tn=function(){return new n("non-digit")},en="\\f",nn='"\\\\f"',rn=function(){return new n("form-feed")},an="\\n",on='"\\\\n"',un=function(){return new n("line-feed")},ln="\\r",sn='"\\\\r"',cn=function(){return new n("carriage-return")},hn="\\s",pn='"\\\\s"',fn=function(){return new n("white-space")},dn="\\S",mn='"\\\\S"',gn=function(){return new n("non-white-space")},vn="\\t",xn='"\\\\t"',yn=function(){return new n("tab")},bn="\\v",wn='"\\\\v"',Cn=function(){return new n("vertical-tab")},kn="\\w",En='"\\\\w"',Rn=function(){ -return new n("word")},An="\\W",_n='"\\\\W"',Mn=function(){return new n("non-word")},Pn="\\c",Tn='"\\\\c"',Hn="any character",Sn=function(t){return new g(t)},Dn="\\",qn='"\\\\"',Fn=/^[1-9]/,Ln="[1-9]",On=function(t){return new m(t)},In="\\0",jn='"\\\\0"',Nn=/^[0-7]/,zn="[0-7]",Un=function(t){return new d(t.join(""))},Bn="\\x",Gn='"\\\\x"',Xn=/^[0-9a-fA-F]/,Kn="[0-9a-fA-F]",Wn=function(t){return new f(t.join(""))},Yn="\\u",$n='"\\\\u"',Jn=function(t){return new p(t.join(""))},Vn=function(){return new n("null-character")},Zn=0,Qn=0,tr=0,er={line:1,column:1,seenCR:!1},nr=0,rr=[],ar=0;if("startRule"in bt){if(!(bt.startRule in wt))throw new Error("Can't start parsing from rule \""+bt.startRule+'".');Ct=wt[bt.startRule]}if(n.offset=x,n.text=v,yt=Ct(),null!==yt&&Zn===t.length)return yt;throw w(rr),Qn=Math.max(Zn,nr),new e(rr,Qn=r;r++)n+=String.fromCharCode(r);return n}var a=n(3),o=n(5),u={extend:a.extend},i=r(97,122),l=r(65,90),s=r(48,57),c=r(32,47)+r(58,64)+r(91,96)+r(123,126),h=r(32,126),p=" \f\n\r \x0B \u2028\u2029",f={"\\w":i+l+s+"_","\\W":c.replace("_",""),"\\s":p,"\\S":function(){for(var t=h,e=0;ea;a++)e+=this.gen(t.body,e,n);return e},quantifier:function(t,e,n){var r=Math.max(t.min,0),a=isFinite(t.max)?t.max:r+o.integer(3,7);return o.integer(r,a)},charset:function(t,e,n){if(t.invert)return this["invert-charset"](t,e,n);var r=o.pick(t.body);return this.gen(r,e,n)},"invert-charset":function(t,e,n){for(var r,a=h,u=0;u=s;s++)a=a.replace(String.fromCharCode(s),"");default:var c=f[r.text];if(c)for(var p=0;p<=c.length;p++)a=a.replace(c[p],"")}return o.pick(a.split(""))},range:function(t,e,n){var r=this.gen(t.start,e,n).charCodeAt(),a=this.gen(t.end,e,n).charCodeAt();return String.fromCharCode(o.integer(r,a))},literal:function(t,e,n){return t.escaped?t.body:t.text},unicode:function(t,e,n){return String.fromCharCode(parseInt(t.code,16))},hex:function(t,e,n){return String.fromCharCode(parseInt(t.code,16))},octal:function(t,e,n){return String.fromCharCode(parseInt(t.code,8))},"back-reference":function(t,e,n){return n[t.code]||""},CONTROL_CHARACTER_MAP:function(){for(var t="@ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \\ ] ^ _".split(" "),e="\x00        \b \n \x0B \f \r                  ".split(" "),n={},r=0;rr)return!0;var u={path:e,type:t,actual:n,expected:r,action:"is greater than",message:o};return u.message=l.message(u),a.push(u),!1},lessThan:function(t,e,n,r,a,o){if(r>n)return!0;var u={path:e,type:t,actual:n,expected:r,action:"is less to",message:o};return u.message=l.message(u),a.push(u),!1},greaterThanOrEqualTo:function(t,e,n,r,a,o){if(n>=r)return!0;var u={path:e,type:t,actual:n,expected:r,action:"is greater than or equal to",message:o};return u.message=l.message(u),a.push(u),!1},lessThanOrEqualTo:function(t,e,n,r,a,o){if(r>=n)return!0;var u={path:e,type:t,actual:n,expected:r,action:"is less than or equal to",message:o};return u.message=l.message(u),a.push(u),!1}};r.Diff=i,r.Assert=l,t.exports=r},function(t,e,n){t.exports=n(28)},function(t,e,n){function r(){this.custom={events:{},requestHeaders:{},responseHeaders:{}}}function a(){function t(){try{return new window._XMLHttpRequest}catch(t){}}function e(){try{return new window._ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}var n=function(){var t=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,e=/^([\w.+-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,n=location.href,r=e.exec(n.toLowerCase())||[];return t.test(r[1])}();return window.ActiveXObject?!n&&t()||e():t()}function o(t){function e(t,e){return"string"===i.type(t)?t===e:"regexp"===i.type(t)?t.test(e):void 0}for(var n in r.Mock._mocked){var a=r.Mock._mocked[n];if((!a.rurl||e(a.rurl,t.url))&&(!a.rtype||e(a.rtype,t.type.toLowerCase())))return a}}function u(t,e){return i.isFunction(t.template)?t.template(e):r.Mock.mock(t.template)}var i=n(3);window._XMLHttpRequest=window.XMLHttpRequest,window._ActiveXObject=window.ActiveXObject;try{new window.Event("custom")}catch(l){window.Event=function(t,e,n,r){var a=document.createEvent("CustomEvent");return a.initCustomEvent(t,e,n,r),a}}var s={UNSENT:0,OPENED:1,HEADERS_RECEIVED:2,LOADING:3,DONE:4},c="readystatechange loadstart progress abort error load timeout loadend".split(" "),h="timeout withCredentials".split(" "),p="readyState responseURL status statusText responseType response responseText responseXML".split(" "),f={100:"Continue",101:"Switching Protocols",200:"OK",201:"Created",202:"Accepted",203:"Non-Authoritative Information",204:"No Content",205:"Reset Content",206:"Partial Content",300:"Multiple Choice",301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",305:"Use Proxy",307:"Temporary Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Request Entity Too Large",414:"Request-URI Too Long",415:"Unsupported Media Type",416:"Requested Range Not Satisfiable",417:"Expectation Failed",422:"Unprocessable Entity",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported"};r._settings={timeout:"10-100"},r.setup=function(t){return i.extend(r._settings,t),r._settings},i.extend(r,s),i.extend(r.prototype,s),r.prototype.mock=!0,r.prototype.match=!1,i.extend(r.prototype,{open:function(t,e,n,u,l){function s(t){for(var e=0;e=o.clientWidth&&n>=o.clientHeight}),l=0a[e]&&!t.escapeWithReference&&(n=Q(f[o],a[e]-('right'===e?f.width:f.height))),le({},o,n)}};return l.forEach(function(e){var t=-1===['left','top'].indexOf(e)?'secondary':'primary';f=fe({},f,m[t](e))}),e.offsets.popper=f,e},priority:['left','right','top','bottom'],padding:5,boundariesElement:'scrollParent'},keepTogether:{order:400,enabled:!0,fn:function(e){var t=e.offsets,o=t.popper,n=t.reference,i=e.placement.split('-')[0],r=Z,p=-1!==['top','bottom'].indexOf(i),s=p?'right':'bottom',d=p?'left':'top',a=p?'width':'height';return o[s]r(n[s])&&(e.offsets.popper[d]=r(n[s])),e}},arrow:{order:500,enabled:!0,fn:function(e,o){var n;if(!K(e.instance.modifiers,'arrow','keepTogether'))return e;var i=o.element;if('string'==typeof i){if(i=e.instance.popper.querySelector(i),!i)return e;}else if(!e.instance.popper.contains(i))return console.warn('WARNING: `arrow.element` must be child of its popper element!'),e;var r=e.placement.split('-')[0],p=e.offsets,s=p.popper,d=p.reference,a=-1!==['left','right'].indexOf(r),l=a?'height':'width',f=a?'Top':'Left',m=f.toLowerCase(),h=a?'left':'top',c=a?'bottom':'right',u=S(i)[l];d[c]-us[c]&&(e.offsets.popper[m]+=d[m]+u-s[c]),e.offsets.popper=g(e.offsets.popper);var b=d[m]+d[l]/2-u/2,w=t(e.instance.popper),y=parseFloat(w['margin'+f],10),E=parseFloat(w['border'+f+'Width'],10),v=b-e.offsets.popper[m]-y-E;return v=ee(Q(s[l]-u,v),0),e.arrowElement=i,e.offsets.arrow=(n={},le(n,m,$(v)),le(n,h,''),n),e},element:'[x-arrow]'},flip:{order:600,enabled:!0,fn:function(e,t){if(W(e.instance.modifiers,'inner'))return e;if(e.flipped&&e.placement===e.originalPlacement)return e;var o=v(e.instance.popper,e.instance.reference,t.padding,t.boundariesElement,e.positionFixed),n=e.placement.split('-')[0],i=T(n),r=e.placement.split('-')[1]||'',p=[];switch(t.behavior){case ge.FLIP:p=[n,i];break;case ge.CLOCKWISE:p=G(n);break;case ge.COUNTERCLOCKWISE:p=G(n,!0);break;default:p=t.behavior;}return p.forEach(function(s,d){if(n!==s||p.length===d+1)return e;n=e.placement.split('-')[0],i=T(n);var a=e.offsets.popper,l=e.offsets.reference,f=Z,m='left'===n&&f(a.right)>f(l.left)||'right'===n&&f(a.left)f(l.top)||'bottom'===n&&f(a.top)f(o.right),g=f(a.top)f(o.bottom),b='left'===n&&h||'right'===n&&c||'top'===n&&g||'bottom'===n&&u,w=-1!==['top','bottom'].indexOf(n),y=!!t.flipVariations&&(w&&'start'===r&&h||w&&'end'===r&&c||!w&&'start'===r&&g||!w&&'end'===r&&u),E=!!t.flipVariationsByContent&&(w&&'start'===r&&c||w&&'end'===r&&h||!w&&'start'===r&&u||!w&&'end'===r&&g),v=y||E;(m||b||v)&&(e.flipped=!0,(m||b)&&(n=p[d+1]),v&&(r=z(r)),e.placement=n+(r?'-'+r:''),e.offsets.popper=fe({},e.offsets.popper,C(e.instance.popper,e.offsets.reference,e.placement)),e=P(e.instance.modifiers,e,'flip'))}),e},behavior:'flip',padding:5,boundariesElement:'viewport',flipVariations:!1,flipVariationsByContent:!1},inner:{order:700,enabled:!1,fn:function(e){var t=e.placement,o=t.split('-')[0],n=e.offsets,i=n.popper,r=n.reference,p=-1!==['left','right'].indexOf(o),s=-1===['top','left'].indexOf(o);return i[p?'left':'top']=r[o]-(s?i[p?'width':'height']:0),e.placement=T(t),e.offsets.popper=g(i),e}},hide:{order:800,enabled:!0,fn:function(e){if(!K(e.instance.modifiers,'hide','preventOverflow'))return e;var t=e.offsets.reference,o=D(e.instance.modifiers,function(e){return'preventOverflow'===e.name}).boundaries;if(t.bottomo.right||t.top>o.bottom||t.rightwindow.devicePixelRatio||!me),c='bottom'===o?'top':'bottom',g='right'===n?'left':'right',b=B('transform');if(d='bottom'==c?'HTML'===l.nodeName?-l.clientHeight+h.bottom:-f.height+h.bottom:h.top,s='right'==g?'HTML'===l.nodeName?-l.clientWidth+h.right:-f.width+h.right:h.left,a&&b)m[b]='translate3d('+s+'px, '+d+'px, 0)',m[c]=0,m[g]=0,m.willChange='transform';else{var w='bottom'==c?-1:1,y='right'==g?-1:1;m[c]=d*w,m[g]=s*y,m.willChange=c+', '+g}var E={"x-placement":e.placement};return e.attributes=fe({},E,e.attributes),e.styles=fe({},m,e.styles),e.arrowStyles=fe({},e.offsets.arrow,e.arrowStyles),e},gpuAcceleration:!0,x:'bottom',y:'right'},applyStyle:{order:900,enabled:!0,fn:function(e){return V(e.instance.popper,e.styles),j(e.instance.popper,e.attributes),e.arrowElement&&Object.keys(e.arrowStyles).length&&V(e.arrowElement,e.arrowStyles),e},onLoad:function(e,t,o,n,i){var r=L(i,t,e,o.positionFixed),p=O(o.placement,r,t,e,o.modifiers.flip.boundariesElement,o.modifiers.flip.padding);return t.setAttribute('x-placement',p),V(t,{position:o.positionFixed?'fixed':'absolute'}),o},gpuAcceleration:void 0}}},ue}); -//# sourceMappingURL=popper.min.js.map diff --git a/client/lib/swagger-client/3.10.0/index.js b/client/lib/swagger-client/3.10.0/index.js deleted file mode 100644 index 1ca4cbebb94838e79ddc73b861844ec9a1b7e949..0000000000000000000000000000000000000000 --- a/client/lib/swagger-client/3.10.0/index.js +++ /dev/null @@ -1,54 +0,0 @@ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(function(){try{return require("esprima")}catch(t){}}()):"function"==typeof define&&define.amd?define(["esprima"],e):"object"==typeof exports?exports.SwaggerClient=e(function(){try{return require("esprima")}catch(t){}}()):t.SwaggerClient=e(t.esprima)}(this,(function(t){return function(t){var e={};function r(n){if(e[n])return e[n].exports;var o=e[n]={i:n,l:!1,exports:{}};return t[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}return r.m=t,r.c=e,r.d=function(t,e,n){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:n})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var o in t)r.d(n,o,function(e){return t[e]}.bind(null,o));return n},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=188)}([function(t,e,r){t.exports=r(203)},function(t,e,r){t.exports=r(286)},function(t,e,r){var n=r(299),o=r(301);function i(t){return(i="function"==typeof o&&"symbol"==typeof n?function(t){return typeof t}:function(t){return t&&"function"==typeof o&&t.constructor===o&&t!==o.prototype?"symbol":typeof t})(t)}function a(e){return"function"==typeof o&&"symbol"===i(n)?t.exports=a=function(t){return i(t)}:t.exports=a=function(t){return t&&"function"==typeof o&&t.constructor===o&&t!==o.prototype?"symbol":i(t)},a(e)}t.exports=a},function(t,e,r){t.exports=r(343)},function(t,e){var r=t.exports={version:"2.6.9"};"number"==typeof __e&&(__e=r)},function(t,e,r){"use strict";var n=r(57),o=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],i=["scalar","sequence","mapping"];t.exports=function(t,e){var r,a;if(e=e||{},Object.keys(e).forEach((function(e){if(-1===o.indexOf(e))throw new n('Unknown option "'+e+'" is met in definition of "'+t+'" YAML type.')})),this.tag=t,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=(r=e.styleAliases||null,a={},null!==r&&Object.keys(r).forEach((function(t){r[t].forEach((function(e){a[String(e)]=t}))})),a),-1===i.indexOf(this.kind))throw new n('Unknown kind "'+this.kind+'" is specified for "'+t+'" YAML type.')}},function(t,e){var r=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=r)},function(t,e,r){var n=r(6),o=r(4),i=r(33),a=r(29),u=r(30),c=function(t,e,r){var s,f,l,p=t&c.F,h=t&c.G,d=t&c.S,v=t&c.P,y=t&c.B,g=t&c.W,m=h?o:o[e]||(o[e]={}),b=m.prototype,w=h?n:d?n[e]:(n[e]||{}).prototype;for(s in h&&(r=e),r)(f=!p&&w&&void 0!==w[s])&&u(m,s)||(l=f?w[s]:r[s],m[s]=h&&"function"!=typeof w[s]?r[s]:y&&f?i(l,n):g&&w[s]==l?function(t){var e=function(e,r,n){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,r)}return new t(e,r,n)}return t.apply(this,arguments)};return e.prototype=t.prototype,e}(l):v&&"function"==typeof l?i(Function.call,l):l,v&&((m.virtual||(m.virtual={}))[s]=l,t&c.R&&b&&!b[s]&&a(b,s,l)))};c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,t.exports=c},function(t,e,r){t.exports=r(200)},function(t,e,r){t.exports=r(284)},function(t,e,r){var n=r(92)("wks"),o=r(63),i=r(6).Symbol,a="function"==typeof i;(t.exports=function(t){return n[t]||(n[t]=a&&i[t]||(a?i:o)("Symbol."+t))}).store=n},function(t,e,r){t.exports=r(195)},function(t,e,r){t.exports=r(198)},function(t,e){var r=Array.isArray;t.exports=r},function(t,e){t.exports=function(t){return"object"==typeof t?null!==t:"function"==typeof t}},function(t,e){t.exports=function(t){var e=typeof t;return null!=t&&("object"==e||"function"==e)}},function(t,e,r){t.exports=r(189)},function(t,e,r){var n=r(16);t.exports=function(t,e,r){return e in t?n(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}},function(t,e,r){var n=r(14);t.exports=function(t){if(!n(t))throw TypeError(t+" is not an object!");return t}},function(t,e,r){t.exports=!r(34)((function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a}))},function(t,e,r){var n=r(18),o=r(129),i=r(87),a=Object.defineProperty;e.f=r(19)?Object.defineProperty:function(t,e,r){if(n(t),e=i(e,!0),n(r),o)try{return a(t,e,r)}catch(t){}if("get"in r||"set"in r)throw TypeError("Accessors not supported!");return"value"in r&&(t[e]=r.value),t}},function(t,e,r){var n=r(137),o="object"==typeof self&&self&&self.Object===Object&&self,i=n||o||Function("return this")();t.exports=i},function(t,e,r){t.exports=r(191)},function(t,e,r){t.exports=r(298)},function(t,e,r){"use strict";var n=r(279),o=r(280);function i(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}e.parse=b,e.resolve=function(t,e){return b(t,!1,!0).resolve(e)},e.resolveObject=function(t,e){return t?b(t,!1,!0).resolveObject(e):e},e.format=function(t){o.isString(t)&&(t=b(t));return t instanceof i?t.format():i.prototype.format.call(t)},e.Url=i;var a=/^([a-z0-9.+-]+:)/i,u=/:[0-9]*$/,c=/^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/,s=["{","}","|","\\","^","`"].concat(["<",">",'"',"`"," ","\r","\n","\t"]),f=["'"].concat(s),l=["%","/","?",";","#"].concat(f),p=["/","?","#"],h=/^[+a-z0-9A-Z_-]{0,63}$/,d=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,v={javascript:!0,"javascript:":!0},y={javascript:!0,"javascript:":!0},g={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},m=r(281);function b(t,e,r){if(t&&o.isObject(t)&&t instanceof i)return t;var n=new i;return n.parse(t,e,r),n}i.prototype.parse=function(t,e,r){if(!o.isString(t))throw new TypeError("Parameter 'url' must be a string, not "+typeof t);var i=t.indexOf("?"),u=-1!==i&&i127?R+="x":R+=I[N];if(!R.match(h)){var D=k.slice(0,P),F=k.slice(P+1),U=I.match(d);U&&(D.push(U[1]),F.unshift(U[2])),F.length&&(b="/"+F.join(".")+b),this.hostname=D.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),C||(this.hostname=n.toASCII(this.hostname));var B=this.port?":"+this.port:"",M=this.hostname||"";this.host=M+B,this.href+=this.host,C&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==b[0]&&(b="/"+b))}if(!v[A])for(P=0,T=f.length;P0)&&r.host.split("@"))&&(r.auth=C.shift(),r.host=r.hostname=C.shift());return r.search=t.search,r.query=t.query,o.isNull(r.pathname)&&o.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r}if(!O.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var _=O.slice(-1)[0],E=(r.host||t.host||O.length>1)&&("."===_||".."===_)||""===_,P=0,S=O.length;S>=0;S--)"."===(_=O[S])?O.splice(S,1):".."===_?(O.splice(S,1),P++):P&&(O.splice(S,1),P--);if(!x&&!A)for(;P--;P)O.unshift("..");!x||""===O[0]||O[0]&&"/"===O[0].charAt(0)||O.unshift(""),E&&"/"!==O.join("/").substr(-1)&&O.push("");var C,k=""===O[0]||O[0]&&"/"===O[0].charAt(0);j&&(r.hostname=r.host=k?"":O.length?O.shift():"",(C=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=C.shift(),r.host=r.hostname=C.shift()));return(x=x||r.host&&O.length)&&!k&&O.unshift(""),O.length?r.pathname=O.join("/"):(r.pathname=null,r.path=null),o.isNull(r.pathname)&&o.isNull(r.search)||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=t.auth||r.auth,r.slashes=r.slashes||t.slashes,r.href=r.format(),r},i.prototype.parseHost=function(){var t=this.host,e=u.exec(t);e&&(":"!==(e=e[0])&&(this.port=e.substr(1)),t=t.substr(0,t.length-e.length)),t&&(this.hostname=t)}},function(t,e,r){t.exports=r(305)},function(t,e){t.exports=function(t){return null!=t&&"object"==typeof t}},function(t,e,r){var n=r(122);t.exports=function(t,e,r){var o=null==t?void 0:n(t,e);return void 0===o?r:o}},function(t,e,r){var n=r(370),o=r(371),i=r(378);t.exports=function(t){return n(t)||o(t)||i()}},function(t,e,r){var n=r(20),o=r(48);t.exports=r(19)?function(t,e,r){return n.f(t,e,o(1,r))}:function(t,e,r){return t[e]=r,t}},function(t,e){var r={}.hasOwnProperty;t.exports=function(t,e){return r.call(t,e)}},function(t,e,r){var n=r(88),o=r(89);t.exports=function(t){return n(o(t))}},function(t,e,r){var n=r(72),o=r(53),i=r(268),a=r(54),u=r(75),c=r(40),s=Object.prototype.hasOwnProperty,f=i((function(t,e){if(u(e)||a(e))o(e,c(e),t);else for(var r in e)s.call(e,r)&&n(t,r,e[r])}));t.exports=f},function(t,e,r){var n=r(47);t.exports=function(t,e,r){if(n(t),void 0===e)return t;switch(r){case 1:return function(r){return t.call(e,r)};case 2:return function(r,n){return t.call(e,r,n)};case 3:return function(r,n,o){return t.call(e,r,n,o)}}return function(){return t.apply(e,arguments)}}},function(t,e){t.exports=function(t){try{return!!t()}catch(t){return!0}}},function(t,e,r){var n=r(217),o=r(222);t.exports=function(t,e){var r=o(t,e);return n(r)?r:void 0}},function(t,e,r){var n=r(39),o=r(218),i=r(219),a=n?n.toStringTag:void 0;t.exports=function(t){return null==t?void 0===t?"[object Undefined]":"[object Null]":a&&a in Object(t)?o(t):i(t)}},function(t,e,r){"use strict";(function(t){ -/*! - * The buffer module from node.js, for the browser. - * - * @author Feross Aboukhadijeh - * @license MIT - */ -var n=r(329),o=r(330),i=r(331);function a(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function u(t,e){if(a()=a())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+a().toString(16)+" bytes");return 0|t}function d(t,e){if(c.isBuffer(t))return t.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(t)||t instanceof ArrayBuffer))return t.byteLength;"string"!=typeof t&&(t=""+t);var r=t.length;if(0===r)return 0;for(var n=!1;;)switch(e){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":case void 0:return M(t).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*r;case"hex":return r>>>1;case"base64":return q(t).length;default:if(n)return M(t).length;e=(""+e).toLowerCase(),n=!0}}function v(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return"";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return"";if((r>>>=0)<=(e>>>=0))return"";for(t||(t="utf8");;)switch(t){case"hex":return C(this,e,r);case"utf8":case"utf-8":return E(this,e,r);case"ascii":return P(this,e,r);case"latin1":case"binary":return S(this,e,r);case"base64":return _(this,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return k(this,e,r);default:if(n)throw new TypeError("Unknown encoding: "+t);t=(t+"").toLowerCase(),n=!0}}function y(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function g(t,e,r,n,o){if(0===t.length)return-1;if("string"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,isNaN(r)&&(r=o?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(o)return-1;r=t.length-1}else if(r<0){if(!o)return-1;r=0}if("string"==typeof e&&(e=c.from(e,n)),c.isBuffer(e))return 0===e.length?-1:m(t,e,r,n,o);if("number"==typeof e)return e&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?o?Uint8Array.prototype.indexOf.call(t,e,r):Uint8Array.prototype.lastIndexOf.call(t,e,r):m(t,[e],r,n,o);throw new TypeError("val must be string, number or Buffer")}function m(t,e,r,n,o){var i,a=1,u=t.length,c=e.length;if(void 0!==n&&("ucs2"===(n=String(n).toLowerCase())||"ucs-2"===n||"utf16le"===n||"utf-16le"===n)){if(t.length<2||e.length<2)return-1;a=2,u/=2,c/=2,r/=2}function s(t,e){return 1===a?t[e]:t.readUInt16BE(e*a)}if(o){var f=-1;for(i=r;iu&&(r=u-c),i=r;i>=0;i--){for(var l=!0,p=0;po&&(n=o):n=o;var i=e.length;if(i%2!=0)throw new TypeError("Invalid hex string");n>i/2&&(n=i/2);for(var a=0;a>8,o=r%256,i.push(o),i.push(n);return i}(e,t.length-r),t,r,n)}function _(t,e,r){return 0===e&&r===t.length?n.fromByteArray(t):n.fromByteArray(t.slice(e,r))}function E(t,e,r){r=Math.min(t.length,r);for(var n=[],o=e;o239?4:s>223?3:s>191?2:1;if(o+l<=r)switch(l){case 1:s<128&&(f=s);break;case 2:128==(192&(i=t[o+1]))&&(c=(31&s)<<6|63&i)>127&&(f=c);break;case 3:i=t[o+1],a=t[o+2],128==(192&i)&&128==(192&a)&&(c=(15&s)<<12|(63&i)<<6|63&a)>2047&&(c<55296||c>57343)&&(f=c);break;case 4:i=t[o+1],a=t[o+2],u=t[o+3],128==(192&i)&&128==(192&a)&&128==(192&u)&&(c=(15&s)<<18|(63&i)<<12|(63&a)<<6|63&u)>65535&&c<1114112&&(f=c)}null===f?(f=65533,l=1):f>65535&&(f-=65536,n.push(f>>>10&1023|55296),f=56320|1023&f),n.push(f),o+=l}return function(t){var e=t.length;if(e<=4096)return String.fromCharCode.apply(String,t);var r="",n=0;for(;n0&&(t=this.toString("hex",0,r).match(/.{2}/g).join(" "),this.length>r&&(t+=" ... ")),""},c.prototype.compare=function(t,e,r,n,o){if(!c.isBuffer(t))throw new TypeError("Argument must be a Buffer");if(void 0===e&&(e=0),void 0===r&&(r=t?t.length:0),void 0===n&&(n=0),void 0===o&&(o=this.length),e<0||r>t.length||n<0||o>this.length)throw new RangeError("out of range index");if(n>=o&&e>=r)return 0;if(n>=o)return-1;if(e>=r)return 1;if(this===t)return 0;for(var i=(o>>>=0)-(n>>>=0),a=(r>>>=0)-(e>>>=0),u=Math.min(i,a),s=this.slice(n,o),f=t.slice(e,r),l=0;lo)&&(r=o),t.length>0&&(r<0||e<0)||e>this.length)throw new RangeError("Attempt to write outside buffer bounds");n||(n="utf8");for(var i=!1;;)switch(n){case"hex":return b(this,t,e,r);case"utf8":case"utf-8":return w(this,t,e,r);case"ascii":return x(this,t,e,r);case"latin1":case"binary":return A(this,t,e,r);case"base64":return O(this,t,e,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return j(this,t,e,r);default:if(i)throw new TypeError("Unknown encoding: "+n);n=(""+n).toLowerCase(),i=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function P(t,e,r){var n="";r=Math.min(t.length,r);for(var o=e;on)&&(r=n);for(var o="",i=e;ir)throw new RangeError("Trying to access beyond buffer length")}function I(t,e,r,n,o,i){if(!c.isBuffer(t))throw new TypeError('"buffer" argument must be a Buffer instance');if(e>o||et.length)throw new RangeError("Index out of range")}function R(t,e,r,n){e<0&&(e=65535+e+1);for(var o=0,i=Math.min(t.length-r,2);o>>8*(n?o:1-o)}function N(t,e,r,n){e<0&&(e=4294967295+e+1);for(var o=0,i=Math.min(t.length-r,4);o>>8*(n?o:3-o)&255}function L(t,e,r,n,o,i){if(r+n>t.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function D(t,e,r,n,i){return i||L(t,0,r,4),o.write(t,e,r,n,23,4),r+4}function F(t,e,r,n,i){return i||L(t,0,r,8),o.write(t,e,r,n,52,8),r+8}c.prototype.slice=function(t,e){var r,n=this.length;if((t=~~t)<0?(t+=n)<0&&(t=0):t>n&&(t=n),(e=void 0===e?n:~~e)<0?(e+=n)<0&&(e=0):e>n&&(e=n),e0&&(o*=256);)n+=this[t+--e]*o;return n},c.prototype.readUInt8=function(t,e){return e||T(t,1,this.length),this[t]},c.prototype.readUInt16LE=function(t,e){return e||T(t,2,this.length),this[t]|this[t+1]<<8},c.prototype.readUInt16BE=function(t,e){return e||T(t,2,this.length),this[t]<<8|this[t+1]},c.prototype.readUInt32LE=function(t,e){return e||T(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+16777216*this[t+3]},c.prototype.readUInt32BE=function(t,e){return e||T(t,4,this.length),16777216*this[t]+(this[t+1]<<16|this[t+2]<<8|this[t+3])},c.prototype.readIntLE=function(t,e,r){t|=0,e|=0,r||T(t,e,this.length);for(var n=this[t],o=1,i=0;++i=(o*=128)&&(n-=Math.pow(2,8*e)),n},c.prototype.readIntBE=function(t,e,r){t|=0,e|=0,r||T(t,e,this.length);for(var n=e,o=1,i=this[t+--n];n>0&&(o*=256);)i+=this[t+--n]*o;return i>=(o*=128)&&(i-=Math.pow(2,8*e)),i},c.prototype.readInt8=function(t,e){return e||T(t,1,this.length),128&this[t]?-1*(255-this[t]+1):this[t]},c.prototype.readInt16LE=function(t,e){e||T(t,2,this.length);var r=this[t]|this[t+1]<<8;return 32768&r?4294901760|r:r},c.prototype.readInt16BE=function(t,e){e||T(t,2,this.length);var r=this[t+1]|this[t]<<8;return 32768&r?4294901760|r:r},c.prototype.readInt32LE=function(t,e){return e||T(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24},c.prototype.readInt32BE=function(t,e){return e||T(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]},c.prototype.readFloatLE=function(t,e){return e||T(t,4,this.length),o.read(this,t,!0,23,4)},c.prototype.readFloatBE=function(t,e){return e||T(t,4,this.length),o.read(this,t,!1,23,4)},c.prototype.readDoubleLE=function(t,e){return e||T(t,8,this.length),o.read(this,t,!0,52,8)},c.prototype.readDoubleBE=function(t,e){return e||T(t,8,this.length),o.read(this,t,!1,52,8)},c.prototype.writeUIntLE=function(t,e,r,n){(t=+t,e|=0,r|=0,n)||I(this,t,e,r,Math.pow(2,8*r)-1,0);var o=1,i=0;for(this[e]=255&t;++i=0&&(i*=256);)this[e+o]=t/i&255;return e+r},c.prototype.writeUInt8=function(t,e,r){return t=+t,e|=0,r||I(this,t,e,1,255,0),c.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),this[e]=255&t,e+1},c.prototype.writeUInt16LE=function(t,e,r){return t=+t,e|=0,r||I(this,t,e,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):R(this,t,e,!0),e+2},c.prototype.writeUInt16BE=function(t,e,r){return t=+t,e|=0,r||I(this,t,e,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):R(this,t,e,!1),e+2},c.prototype.writeUInt32LE=function(t,e,r){return t=+t,e|=0,r||I(this,t,e,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[e+3]=t>>>24,this[e+2]=t>>>16,this[e+1]=t>>>8,this[e]=255&t):N(this,t,e,!0),e+4},c.prototype.writeUInt32BE=function(t,e,r){return t=+t,e|=0,r||I(this,t,e,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):N(this,t,e,!1),e+4},c.prototype.writeIntLE=function(t,e,r,n){if(t=+t,e|=0,!n){var o=Math.pow(2,8*r-1);I(this,t,e,r,o-1,-o)}var i=0,a=1,u=0;for(this[e]=255&t;++i>0)-u&255;return e+r},c.prototype.writeIntBE=function(t,e,r,n){if(t=+t,e|=0,!n){var o=Math.pow(2,8*r-1);I(this,t,e,r,o-1,-o)}var i=r-1,a=1,u=0;for(this[e+i]=255&t;--i>=0&&(a*=256);)t<0&&0===u&&0!==this[e+i+1]&&(u=1),this[e+i]=(t/a>>0)-u&255;return e+r},c.prototype.writeInt8=function(t,e,r){return t=+t,e|=0,r||I(this,t,e,1,127,-128),c.TYPED_ARRAY_SUPPORT||(t=Math.floor(t)),t<0&&(t=255+t+1),this[e]=255&t,e+1},c.prototype.writeInt16LE=function(t,e,r){return t=+t,e|=0,r||I(this,t,e,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8):R(this,t,e,!0),e+2},c.prototype.writeInt16BE=function(t,e,r){return t=+t,e|=0,r||I(this,t,e,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[e]=t>>>8,this[e+1]=255&t):R(this,t,e,!1),e+2},c.prototype.writeInt32LE=function(t,e,r){return t=+t,e|=0,r||I(this,t,e,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[e]=255&t,this[e+1]=t>>>8,this[e+2]=t>>>16,this[e+3]=t>>>24):N(this,t,e,!0),e+4},c.prototype.writeInt32BE=function(t,e,r){return t=+t,e|=0,r||I(this,t,e,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),c.TYPED_ARRAY_SUPPORT?(this[e]=t>>>24,this[e+1]=t>>>16,this[e+2]=t>>>8,this[e+3]=255&t):N(this,t,e,!1),e+4},c.prototype.writeFloatLE=function(t,e,r){return D(this,t,e,!0,r)},c.prototype.writeFloatBE=function(t,e,r){return D(this,t,e,!1,r)},c.prototype.writeDoubleLE=function(t,e,r){return F(this,t,e,!0,r)},c.prototype.writeDoubleBE=function(t,e,r){return F(this,t,e,!1,r)},c.prototype.copy=function(t,e,r,n){if(r||(r=0),n||0===n||(n=this.length),e>=t.length&&(e=t.length),e||(e=0),n>0&&n=this.length)throw new RangeError("sourceStart out of bounds");if(n<0)throw new RangeError("sourceEnd out of bounds");n>this.length&&(n=this.length),t.length-e=0;--o)t[o+e]=this[o+r];else if(i<1e3||!c.TYPED_ARRAY_SUPPORT)for(o=0;o>>=0,r=void 0===r?this.length:r>>>0,t||(t=0),"number"==typeof t)for(i=e;i55295&&r<57344){if(!o){if(r>56319){(e-=3)>-1&&i.push(239,191,189);continue}if(a+1===n){(e-=3)>-1&&i.push(239,191,189);continue}o=r;continue}if(r<56320){(e-=3)>-1&&i.push(239,191,189),o=r;continue}r=65536+(o-55296<<10|r-56320)}else o&&(e-=3)>-1&&i.push(239,191,189);if(o=null,r<128){if((e-=1)<0)break;i.push(r)}else if(r<2048){if((e-=2)<0)break;i.push(r>>6|192,63&r|128)}else if(r<65536){if((e-=3)<0)break;i.push(r>>12|224,r>>6&63|128,63&r|128)}else{if(!(r<1114112))throw new Error("Invalid code point");if((e-=4)<0)break;i.push(r>>18|240,r>>12&63|128,r>>6&63|128,63&r|128)}}return i}function q(t){return n.toByteArray(function(t){if((t=function(t){return t.trim?t.trim():t.replace(/^\s+|\s+$/g,"")}(t).replace(U,"")).length<2)return"";for(;t.length%4!=0;)t+="=";return t}(t))}function z(t,e,r,n){for(var o=0;o=e.length||o>=t.length);++o)e[o+r]=t[o];return o}}).call(this,r(103))},function(t,e,r){var n=r(89);t.exports=function(t){return Object(n(t))}},function(t,e,r){var n=r(21).Symbol;t.exports=n},function(t,e,r){var n=r(141),o=r(241),i=r(54);t.exports=function(t){return i(t)?n(t):o(t)}},function(t,e){t.exports={}},function(t,e,r){"use strict";function n(t){return null==t}t.exports.isNothing=n,t.exports.isObject=function(t){return"object"==typeof t&&null!==t},t.exports.toArray=function(t){return Array.isArray(t)?t:n(t)?[]:[t]},t.exports.repeat=function(t,e){var r,n="";for(r=0;r0&&(t.patches=[],t.callback&&t.callback(r)),r}function l(t,e,r,o){if(e!==t){"function"==typeof e.toJSON&&(e=e.toJSON());for(var i=n._objectKeys(e),a=n._objectKeys(t),u=!1,c=a.length-1;c>=0;c--){var s=t[p=a[c]];if(!n.hasOwnProperty(e,p)||void 0===e[p]&&void 0!==s&&!1===Array.isArray(e))Array.isArray(t)===Array.isArray(e)?(r.push({op:"remove",path:o+"/"+n.escapePathComponent(p)}),u=!0):(r.push({op:"replace",path:o,value:e}),!0);else{var f=e[p];"object"==typeof s&&null!=s&&"object"==typeof f&&null!=f?l(s,f,r,o+"/"+n.escapePathComponent(p)):s!==f&&(!0,r.push({op:"replace",path:o+"/"+n.escapePathComponent(p),value:n._deepClone(f)}))}}if(u||i.length!=a.length)for(c=0;c=e.length?{value:void 0,done:!0}:(t=n(e,r),this._i+=t.length,{value:t,done:!1})}))},function(t,e,r){"use strict";function n(t,e){Error.call(this),this.name="YAMLException",this.reason=t,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=(new Error).stack||""}n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n.prototype.toString=function(t){var e=this.name+": ";return e+=this.reason||"(unknown reason)",!t&&this.mark&&(e+=" "+this.mark.toString()),e},t.exports=n},function(t,e,r){"use strict";var n=r(43);t.exports=new n({include:[r(165)],implicit:[r(326),r(327)],explicit:[r(328),r(332),r(333),r(334)]})},function(t,e,r){var n=r(77);t.exports=function(t){if("string"==typeof t||n(t))return t;var e=t+"";return"0"==e&&1/t==-1/0?"-0":e}},function(t,e,r){(function(e){!function(){"use strict";t.exports=function(t){return(t instanceof e?t:new e(t.toString(),"binary")).toString("base64")}}()}).call(this,r(37).Buffer)},function(t,e,r){var n=r(275),o=r(152),i=r(153),a=r(154);t.exports=function(t,e,r){return t=a(t),r=null==r?0:n(i(r),0,t.length),e=o(e),t.slice(r,r+e.length)==e}},function(t,e,r){var n=r(90),o=Math.min;t.exports=function(t){return t>0?o(n(t),9007199254740991):0}},function(t,e){var r=0,n=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++r+n).toString(36))}},function(t,e){e.f=Object.getOwnPropertySymbols},function(t,e){e.f={}.propertyIsEnumerable},function(t,e,r){var n=r(63)("meta"),o=r(14),i=r(30),a=r(20).f,u=0,c=Object.isExtensible||function(){return!0},s=!r(34)((function(){return c(Object.preventExtensions({}))})),f=function(t){a(t,n,{value:{i:"O"+ ++u,w:{}}})},l=t.exports={KEY:n,NEED:!1,fastKey:function(t,e){if(!o(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,n)){if(!c(t))return"F";if(!e)return"E";f(t)}return t[n].i},getWeak:function(t,e){if(!i(t,n)){if(!c(t))return!0;if(!e)return!1;f(t)}return t[n].w},onFreeze:function(t){return s&&l.NEED&&c(t)&&!i(t,n)&&f(t),t}}},function(t,e,r){var n=r(207),o=r(208),i=r(209),a=r(210),u=r(211);function c(t){var e=-1,r=null==t?0:t.length;for(this.clear();++e-1&&t%1==0&&tb;b++)if((y=e?m(a(d=t[b])[0],d[1]):m(t[b]))===s||y===f)return y}else for(v=g.call(t);!(d=v.next()).done;)if((y=o(v,m,d.value,e))===s||y===f)return y}).BREAK=s,e.RETURN=f},function(t,e,r){"use strict";var n=r(43);t.exports=n.DEFAULT=new n({include:[r(58)],explicit:[r(335),r(336),r(337)]})},function(t,e,r){var n=r(13),o=r(123),i=r(360),a=r(154);t.exports=function(t,e){return n(t)?t:o(t,e)?[t]:i(a(t))}},function(t,e,r){var n=r(285),o=r(288),i=r(297);t.exports=function(t,e){return n(t)||o(t,e)||i()}},function(t,e,r){"use strict";var n=r(316);t.exports=n},function(t,e){t.exports=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}},function(t,e,r){var n=r(16);function o(t,e){for(var r=0;r0?n:r)(t)}},function(t,e,r){var n=r(92)("keys"),o=r(63);t.exports=function(t){return n[t]||(n[t]=o(t))}},function(t,e,r){var n=r(4),o=r(6),i=o["__core-js_shared__"]||(o["__core-js_shared__"]={});(t.exports=function(t,e){return i[t]||(i[t]=void 0!==e?e:{})})("versions",[]).push({version:n.version,mode:r(51)?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(t,e,r){var n=r(131),o=r(93).concat("length","prototype");e.f=Object.getOwnPropertyNames||function(t){return n(t,o)}},function(t,e,r){var n=r(65),o=r(48),i=r(31),a=r(87),u=r(30),c=r(129),s=Object.getOwnPropertyDescriptor;e.f=r(19)?s:function(t,e){if(t=i(t),e=a(e,!0),c)try{return s(t,e)}catch(t){}if(u(t,e))return o(!n.f.call(t,e),t[e])}},function(t,e,r){t.exports=r(29)},function(t,e,r){e.f=r(10)},function(t,e,r){var n=r(6),o=r(4),i=r(51),a=r(97),u=r(20).f;t.exports=function(t){var e=o.Symbol||(o.Symbol=i?{}:n.Symbol||{});"_"==t.charAt(0)||t in e||u(e,t,{value:a.f(t)})}},function(t,e,r){var n=r(50);t.exports=Array.isArray||function(t){return"Array"==n(t)}},function(t,e,r){var n=r(18),o=r(130),i=r(93),a=r(91)("IE_PROTO"),u=function(){},c=function(){var t,e=r(86)("iframe"),n=i.length;for(e.style.display="none",r(135).appendChild(e),e.src="javascript:",(t=e.contentWindow.document).open(),t.write(" - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/client/public/favicon.ico b/client/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c2939af6f6afabea84cd17a09746a89285e42df6 Binary files /dev/null and b/client/public/favicon.ico differ diff --git a/client/public/index.html b/client/public/index.html new file mode 100644 index 0000000000000000000000000000000000000000..b9c210a97e0fe8c7c6488c5c7c899c8dfed66810 --- /dev/null +++ b/client/public/index.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + + Snake-api mini + + + +
+ + + diff --git a/client/public/lib/ace-1.4.4/src/ace.js b/client/public/lib/ace-1.4.4/src/ace.js new file mode 100644 index 0000000000000000000000000000000000000000..9e4283fc1ad9ee344e5b9c517ca20fcf6829e3f6 --- /dev/null +++ b/client/public/lib/ace-1.4.4/src/ace.js @@ -0,0 +1,21435 @@ +/* ***** BEGIN LICENSE BLOCK ***** + * Distributed under the BSD license: + * + * Copyright (c) 2010, Ajax.org B.V. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of Ajax.org B.V. nor the + * names of its contributors may be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE + * DISCLAIMED. IN NO EVENT SHALL AJAX.ORG B.V. BE LIABLE FOR ANY + * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES + * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; + * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND + * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS + * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + * ***** END LICENSE BLOCK ***** */ + +/** + * Define a module along with a payload + * @param module a name for the payload + * @param payload a function to call with (require, exports, module) params + */ + +(function() { + +var ACE_NAMESPACE = ""; + +var global = (function() { return this; })(); +if (!global && typeof window != "undefined") global = window; // strict mode + + +if (!ACE_NAMESPACE && typeof requirejs !== "undefined") + return; + + +var define = function(module, deps, payload) { + if (typeof module !== "string") { + if (define.original) + define.original.apply(this, arguments); + else { + console.error("dropping module because define wasn\'t a string."); + console.trace(); + } + return; + } + if (arguments.length == 2) + payload = deps; + if (!define.modules[module]) { + define.payloads[module] = payload; + define.modules[module] = null; + } +}; + +define.modules = {}; +define.payloads = {}; + +/** + * Get at functionality define()ed using the function above + */ +var _require = function(parentId, module, callback) { + if (typeof module === "string") { + var payload = lookup(parentId, module); + if (payload != undefined) { + callback && callback(); + return payload; + } + } else if (Object.prototype.toString.call(module) === "[object Array]") { + var params = []; + for (var i = 0, l = module.length; i < l; ++i) { + var dep = lookup(parentId, module[i]); + if (dep == undefined && require.original) + return; + params.push(dep); + } + return callback && callback.apply(null, params) || true; + } +}; + +var require = function(module, callback) { + var packagedModule = _require("", module, callback); + if (packagedModule == undefined && require.original) + return require.original.apply(this, arguments); + return packagedModule; +}; + +var normalizeModule = function(parentId, moduleName) { + // normalize plugin requires + if (moduleName.indexOf("!") !== -1) { + var chunks = moduleName.split("!"); + return normalizeModule(parentId, chunks[0]) + "!" + normalizeModule(parentId, chunks[1]); + } + // normalize relative requires + if (moduleName.charAt(0) == ".") { + var base = parentId.split("/").slice(0, -1).join("/"); + moduleName = base + "/" + moduleName; + + while(moduleName.indexOf(".") !== -1 && previous != moduleName) { + var previous = moduleName; + moduleName = moduleName.replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, ""); + } + } + return moduleName; +}; + +/** + * Internal function to lookup moduleNames and resolve them by calling the + * definition function if needed. + */ +var lookup = function(parentId, moduleName) { + moduleName = normalizeModule(parentId, moduleName); + + var module = define.modules[moduleName]; + if (!module) { + module = define.payloads[moduleName]; + if (typeof module === 'function') { + var exports = {}; + var mod = { + id: moduleName, + uri: '', + exports: exports, + packaged: true + }; + + var req = function(module, callback) { + return _require(moduleName, module, callback); + }; + + var returnValue = module(req, exports, mod); + exports = returnValue || mod.exports; + define.modules[moduleName] = exports; + delete define.payloads[moduleName]; + } + module = define.modules[moduleName] = exports || module; + } + return module; +}; + +function exportAce(ns) { + var root = global; + if (ns) { + if (!global[ns]) + global[ns] = {}; + root = global[ns]; + } + + if (!root.define || !root.define.packaged) { + define.original = root.define; + root.define = define; + root.define.packaged = true; + } + + if (!root.require || !root.require.packaged) { + require.original = root.require; + root.require = require; + root.require.packaged = true; + } +} + +exportAce(ACE_NAMESPACE); + +})(); + +define("ace/lib/regexp",["require","exports","module"], function(require, exports, module) { +"use strict"; + + var real = { + exec: RegExp.prototype.exec, + test: RegExp.prototype.test, + match: String.prototype.match, + replace: String.prototype.replace, + split: String.prototype.split + }, + compliantExecNpcg = real.exec.call(/()??/, "")[1] === undefined, // check `exec` handling of nonparticipating capturing groups + compliantLastIndexIncrement = function () { + var x = /^/g; + real.test.call(x, ""); + return !x.lastIndex; + }(); + + if (compliantLastIndexIncrement && compliantExecNpcg) + return; + RegExp.prototype.exec = function (str) { + var match = real.exec.apply(this, arguments), + name, r2; + if ( typeof(str) == 'string' && match) { + if (!compliantExecNpcg && match.length > 1 && indexOf(match, "") > -1) { + r2 = RegExp(this.source, real.replace.call(getNativeFlags(this), "g", "")); + real.replace.call(str.slice(match.index), r2, function () { + for (var i = 1; i < arguments.length - 2; i++) { + if (arguments[i] === undefined) + match[i] = undefined; + } + }); + } + if (this._xregexp && this._xregexp.captureNames) { + for (var i = 1; i < match.length; i++) { + name = this._xregexp.captureNames[i - 1]; + if (name) + match[name] = match[i]; + } + } + if (!compliantLastIndexIncrement && this.global && !match[0].length && (this.lastIndex > match.index)) + this.lastIndex--; + } + return match; + }; + if (!compliantLastIndexIncrement) { + RegExp.prototype.test = function (str) { + var match = real.exec.call(this, str); + if (match && this.global && !match[0].length && (this.lastIndex > match.index)) + this.lastIndex--; + return !!match; + }; + } + + function getNativeFlags (regex) { + return (regex.global ? "g" : "") + + (regex.ignoreCase ? "i" : "") + + (regex.multiline ? "m" : "") + + (regex.extended ? "x" : "") + // Proposed for ES4; included in AS3 + (regex.sticky ? "y" : ""); + } + + function indexOf (array, item, from) { + if (Array.prototype.indexOf) // Use the native array method if available + return array.indexOf(item, from); + for (var i = from || 0; i < array.length; i++) { + if (array[i] === item) + return i; + } + return -1; + } + +}); + +define("ace/lib/es5-shim",["require","exports","module"], function(require, exports, module) { + +function Empty() {} + +if (!Function.prototype.bind) { + Function.prototype.bind = function bind(that) { // .length is 1 + var target = this; + if (typeof target != "function") { + throw new TypeError("Function.prototype.bind called on incompatible " + target); + } + var args = slice.call(arguments, 1); // for normal call + var bound = function () { + + if (this instanceof bound) { + + var result = target.apply( + this, + args.concat(slice.call(arguments)) + ); + if (Object(result) === result) { + return result; + } + return this; + + } else { + return target.apply( + that, + args.concat(slice.call(arguments)) + ); + + } + + }; + if(target.prototype) { + Empty.prototype = target.prototype; + bound.prototype = new Empty(); + Empty.prototype = null; + } + return bound; + }; +} +var call = Function.prototype.call; +var prototypeOfArray = Array.prototype; +var prototypeOfObject = Object.prototype; +var slice = prototypeOfArray.slice; +var _toString = call.bind(prototypeOfObject.toString); +var owns = call.bind(prototypeOfObject.hasOwnProperty); +var defineGetter; +var defineSetter; +var lookupGetter; +var lookupSetter; +var supportsAccessors; +if ((supportsAccessors = owns(prototypeOfObject, "__defineGetter__"))) { + defineGetter = call.bind(prototypeOfObject.__defineGetter__); + defineSetter = call.bind(prototypeOfObject.__defineSetter__); + lookupGetter = call.bind(prototypeOfObject.__lookupGetter__); + lookupSetter = call.bind(prototypeOfObject.__lookupSetter__); +} +if ([1,2].splice(0).length != 2) { + if(function() { // test IE < 9 to splice bug - see issue #138 + function makeArray(l) { + var a = new Array(l+2); + a[0] = a[1] = 0; + return a; + } + var array = [], lengthBefore; + + array.splice.apply(array, makeArray(20)); + array.splice.apply(array, makeArray(26)); + + lengthBefore = array.length; //46 + array.splice(5, 0, "XXX"); // add one element + + lengthBefore + 1 == array.length + + if (lengthBefore + 1 == array.length) { + return true;// has right splice implementation without bugs + } + }()) {//IE 6/7 + var array_splice = Array.prototype.splice; + Array.prototype.splice = function(start, deleteCount) { + if (!arguments.length) { + return []; + } else { + return array_splice.apply(this, [ + start === void 0 ? 0 : start, + deleteCount === void 0 ? (this.length - start) : deleteCount + ].concat(slice.call(arguments, 2))) + } + }; + } else {//IE8 + Array.prototype.splice = function(pos, removeCount){ + var length = this.length; + if (pos > 0) { + if (pos > length) + pos = length; + } else if (pos == void 0) { + pos = 0; + } else if (pos < 0) { + pos = Math.max(length + pos, 0); + } + + if (!(pos+removeCount < length)) + removeCount = length - pos; + + var removed = this.slice(pos, pos+removeCount); + var insert = slice.call(arguments, 2); + var add = insert.length; + if (pos === length) { + if (add) { + this.push.apply(this, insert); + } + } else { + var remove = Math.min(removeCount, length - pos); + var tailOldPos = pos + remove; + var tailNewPos = tailOldPos + add - remove; + var tailCount = length - tailOldPos; + var lengthAfterRemove = length - remove; + + if (tailNewPos < tailOldPos) { // case A + for (var i = 0; i < tailCount; ++i) { + this[tailNewPos+i] = this[tailOldPos+i]; + } + } else if (tailNewPos > tailOldPos) { // case B + for (i = tailCount; i--; ) { + this[tailNewPos+i] = this[tailOldPos+i]; + } + } // else, add == remove (nothing to do) + + if (add && pos === lengthAfterRemove) { + this.length = lengthAfterRemove; // truncate array + this.push.apply(this, insert); + } else { + this.length = lengthAfterRemove + add; // reserves space + for (i = 0; i < add; ++i) { + this[pos+i] = insert[i]; + } + } + } + return removed; + }; + } +} +if (!Array.isArray) { + Array.isArray = function isArray(obj) { + return _toString(obj) == "[object Array]"; + }; +} +var boxedString = Object("a"), + splitString = boxedString[0] != "a" || !(0 in boxedString); + +if (!Array.prototype.forEach) { + Array.prototype.forEach = function forEach(fun /*, thisp*/) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + thisp = arguments[1], + i = -1, + length = self.length >>> 0; + if (_toString(fun) != "[object Function]") { + throw new TypeError(); // TODO message + } + + while (++i < length) { + if (i in self) { + fun.call(thisp, self[i], i, object); + } + } + }; +} +if (!Array.prototype.map) { + Array.prototype.map = function map(fun /*, thisp*/) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + length = self.length >>> 0, + result = Array(length), + thisp = arguments[1]; + if (_toString(fun) != "[object Function]") { + throw new TypeError(fun + " is not a function"); + } + + for (var i = 0; i < length; i++) { + if (i in self) + result[i] = fun.call(thisp, self[i], i, object); + } + return result; + }; +} +if (!Array.prototype.filter) { + Array.prototype.filter = function filter(fun /*, thisp */) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + length = self.length >>> 0, + result = [], + value, + thisp = arguments[1]; + if (_toString(fun) != "[object Function]") { + throw new TypeError(fun + " is not a function"); + } + + for (var i = 0; i < length; i++) { + if (i in self) { + value = self[i]; + if (fun.call(thisp, value, i, object)) { + result.push(value); + } + } + } + return result; + }; +} +if (!Array.prototype.every) { + Array.prototype.every = function every(fun /*, thisp */) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + length = self.length >>> 0, + thisp = arguments[1]; + if (_toString(fun) != "[object Function]") { + throw new TypeError(fun + " is not a function"); + } + + for (var i = 0; i < length; i++) { + if (i in self && !fun.call(thisp, self[i], i, object)) { + return false; + } + } + return true; + }; +} +if (!Array.prototype.some) { + Array.prototype.some = function some(fun /*, thisp */) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + length = self.length >>> 0, + thisp = arguments[1]; + if (_toString(fun) != "[object Function]") { + throw new TypeError(fun + " is not a function"); + } + + for (var i = 0; i < length; i++) { + if (i in self && fun.call(thisp, self[i], i, object)) { + return true; + } + } + return false; + }; +} +if (!Array.prototype.reduce) { + Array.prototype.reduce = function reduce(fun /*, initial*/) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + length = self.length >>> 0; + if (_toString(fun) != "[object Function]") { + throw new TypeError(fun + " is not a function"); + } + if (!length && arguments.length == 1) { + throw new TypeError("reduce of empty array with no initial value"); + } + + var i = 0; + var result; + if (arguments.length >= 2) { + result = arguments[1]; + } else { + do { + if (i in self) { + result = self[i++]; + break; + } + if (++i >= length) { + throw new TypeError("reduce of empty array with no initial value"); + } + } while (true); + } + + for (; i < length; i++) { + if (i in self) { + result = fun.call(void 0, result, self[i], i, object); + } + } + + return result; + }; +} +if (!Array.prototype.reduceRight) { + Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + length = self.length >>> 0; + if (_toString(fun) != "[object Function]") { + throw new TypeError(fun + " is not a function"); + } + if (!length && arguments.length == 1) { + throw new TypeError("reduceRight of empty array with no initial value"); + } + + var result, i = length - 1; + if (arguments.length >= 2) { + result = arguments[1]; + } else { + do { + if (i in self) { + result = self[i--]; + break; + } + if (--i < 0) { + throw new TypeError("reduceRight of empty array with no initial value"); + } + } while (true); + } + + do { + if (i in this) { + result = fun.call(void 0, result, self[i], i, object); + } + } while (i--); + + return result; + }; +} +if (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) { + Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) { + var self = splitString && _toString(this) == "[object String]" ? + this.split("") : + toObject(this), + length = self.length >>> 0; + + if (!length) { + return -1; + } + + var i = 0; + if (arguments.length > 1) { + i = toInteger(arguments[1]); + } + i = i >= 0 ? i : Math.max(0, length + i); + for (; i < length; i++) { + if (i in self && self[i] === sought) { + return i; + } + } + return -1; + }; +} +if (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) { + Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) { + var self = splitString && _toString(this) == "[object String]" ? + this.split("") : + toObject(this), + length = self.length >>> 0; + + if (!length) { + return -1; + } + var i = length - 1; + if (arguments.length > 1) { + i = Math.min(i, toInteger(arguments[1])); + } + i = i >= 0 ? i : length - Math.abs(i); + for (; i >= 0; i--) { + if (i in self && sought === self[i]) { + return i; + } + } + return -1; + }; +} +if (!Object.getPrototypeOf) { + Object.getPrototypeOf = function getPrototypeOf(object) { + return object.__proto__ || ( + object.constructor ? + object.constructor.prototype : + prototypeOfObject + ); + }; +} +if (!Object.getOwnPropertyDescriptor) { + var ERR_NON_OBJECT = "Object.getOwnPropertyDescriptor called on a " + + "non-object: "; + Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) { + if ((typeof object != "object" && typeof object != "function") || object === null) + throw new TypeError(ERR_NON_OBJECT + object); + if (!owns(object, property)) + return; + + var descriptor, getter, setter; + descriptor = { enumerable: true, configurable: true }; + if (supportsAccessors) { + var prototype = object.__proto__; + object.__proto__ = prototypeOfObject; + + var getter = lookupGetter(object, property); + var setter = lookupSetter(object, property); + object.__proto__ = prototype; + + if (getter || setter) { + if (getter) descriptor.get = getter; + if (setter) descriptor.set = setter; + return descriptor; + } + } + descriptor.value = object[property]; + return descriptor; + }; +} +if (!Object.getOwnPropertyNames) { + Object.getOwnPropertyNames = function getOwnPropertyNames(object) { + return Object.keys(object); + }; +} +if (!Object.create) { + var createEmpty; + if (Object.prototype.__proto__ === null) { + createEmpty = function () { + return { "__proto__": null }; + }; + } else { + createEmpty = function () { + var empty = {}; + for (var i in empty) + empty[i] = null; + empty.constructor = + empty.hasOwnProperty = + empty.propertyIsEnumerable = + empty.isPrototypeOf = + empty.toLocaleString = + empty.toString = + empty.valueOf = + empty.__proto__ = null; + return empty; + } + } + + Object.create = function create(prototype, properties) { + var object; + if (prototype === null) { + object = createEmpty(); + } else { + if (typeof prototype != "object") + throw new TypeError("typeof prototype["+(typeof prototype)+"] != 'object'"); + var Type = function () {}; + Type.prototype = prototype; + object = new Type(); + object.__proto__ = prototype; + } + if (properties !== void 0) + Object.defineProperties(object, properties); + return object; + }; +} + +function doesDefinePropertyWork(object) { + try { + Object.defineProperty(object, "sentinel", {}); + return "sentinel" in object; + } catch (exception) { + } +} +if (Object.defineProperty) { + var definePropertyWorksOnObject = doesDefinePropertyWork({}); + var definePropertyWorksOnDom = typeof document == "undefined" || + doesDefinePropertyWork(document.createElement("div")); + if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) { + var definePropertyFallback = Object.defineProperty; + } +} + +if (!Object.defineProperty || definePropertyFallback) { + var ERR_NON_OBJECT_DESCRIPTOR = "Property description must be an object: "; + var ERR_NON_OBJECT_TARGET = "Object.defineProperty called on non-object: " + var ERR_ACCESSORS_NOT_SUPPORTED = "getters & setters can not be defined " + + "on this javascript engine"; + + Object.defineProperty = function defineProperty(object, property, descriptor) { + if ((typeof object != "object" && typeof object != "function") || object === null) + throw new TypeError(ERR_NON_OBJECT_TARGET + object); + if ((typeof descriptor != "object" && typeof descriptor != "function") || descriptor === null) + throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor); + if (definePropertyFallback) { + try { + return definePropertyFallback.call(Object, object, property, descriptor); + } catch (exception) { + } + } + if (owns(descriptor, "value")) { + + if (supportsAccessors && (lookupGetter(object, property) || + lookupSetter(object, property))) + { + var prototype = object.__proto__; + object.__proto__ = prototypeOfObject; + delete object[property]; + object[property] = descriptor.value; + object.__proto__ = prototype; + } else { + object[property] = descriptor.value; + } + } else { + if (!supportsAccessors) + throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED); + if (owns(descriptor, "get")) + defineGetter(object, property, descriptor.get); + if (owns(descriptor, "set")) + defineSetter(object, property, descriptor.set); + } + + return object; + }; +} +if (!Object.defineProperties) { + Object.defineProperties = function defineProperties(object, properties) { + for (var property in properties) { + if (owns(properties, property)) + Object.defineProperty(object, property, properties[property]); + } + return object; + }; +} +if (!Object.seal) { + Object.seal = function seal(object) { + return object; + }; +} +if (!Object.freeze) { + Object.freeze = function freeze(object) { + return object; + }; +} +try { + Object.freeze(function () {}); +} catch (exception) { + Object.freeze = (function freeze(freezeObject) { + return function freeze(object) { + if (typeof object == "function") { + return object; + } else { + return freezeObject(object); + } + }; + })(Object.freeze); +} +if (!Object.preventExtensions) { + Object.preventExtensions = function preventExtensions(object) { + return object; + }; +} +if (!Object.isSealed) { + Object.isSealed = function isSealed(object) { + return false; + }; +} +if (!Object.isFrozen) { + Object.isFrozen = function isFrozen(object) { + return false; + }; +} +if (!Object.isExtensible) { + Object.isExtensible = function isExtensible(object) { + if (Object(object) === object) { + throw new TypeError(); // TODO message + } + var name = ''; + while (owns(object, name)) { + name += '?'; + } + object[name] = true; + var returnValue = owns(object, name); + delete object[name]; + return returnValue; + }; +} +if (!Object.keys) { + var hasDontEnumBug = true, + dontEnums = [ + "toString", + "toLocaleString", + "valueOf", + "hasOwnProperty", + "isPrototypeOf", + "propertyIsEnumerable", + "constructor" + ], + dontEnumsLength = dontEnums.length; + + for (var key in {"toString": null}) { + hasDontEnumBug = false; + } + + Object.keys = function keys(object) { + + if ( + (typeof object != "object" && typeof object != "function") || + object === null + ) { + throw new TypeError("Object.keys called on a non-object"); + } + + var keys = []; + for (var name in object) { + if (owns(object, name)) { + keys.push(name); + } + } + + if (hasDontEnumBug) { + for (var i = 0, ii = dontEnumsLength; i < ii; i++) { + var dontEnum = dontEnums[i]; + if (owns(object, dontEnum)) { + keys.push(dontEnum); + } + } + } + return keys; + }; + +} +if (!Date.now) { + Date.now = function now() { + return new Date().getTime(); + }; +} +var ws = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003" + + "\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028" + + "\u2029\uFEFF"; +if (!String.prototype.trim || ws.trim()) { + ws = "[" + ws + "]"; + var trimBeginRegexp = new RegExp("^" + ws + ws + "*"), + trimEndRegexp = new RegExp(ws + ws + "*$"); + String.prototype.trim = function trim() { + return String(this).replace(trimBeginRegexp, "").replace(trimEndRegexp, ""); + }; +} + +function toInteger(n) { + n = +n; + if (n !== n) { // isNaN + n = 0; + } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) { + n = (n > 0 || -1) * Math.floor(Math.abs(n)); + } + return n; +} + +function isPrimitive(input) { + var type = typeof input; + return ( + input === null || + type === "undefined" || + type === "boolean" || + type === "number" || + type === "string" + ); +} + +function toPrimitive(input) { + var val, valueOf, toString; + if (isPrimitive(input)) { + return input; + } + valueOf = input.valueOf; + if (typeof valueOf === "function") { + val = valueOf.call(input); + if (isPrimitive(val)) { + return val; + } + } + toString = input.toString; + if (typeof toString === "function") { + val = toString.call(input); + if (isPrimitive(val)) { + return val; + } + } + throw new TypeError(); +} +var toObject = function (o) { + if (o == null) { // this matches both null and undefined + throw new TypeError("can't convert "+o+" to object"); + } + return Object(o); +}; + +}); + +define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"], function(require, exports, module) { +"use strict"; + +require("./regexp"); +require("./es5-shim"); +if (typeof Element != "undefined" && !Element.prototype.remove) { + Object.defineProperty(Element.prototype, "remove", { + enumerable: false, + writable: true, + configurable: true, + value: function() { this.parentNode && this.parentNode.removeChild(this); } + }); +} + + +}); + +define("ace/lib/useragent",["require","exports","module"], function(require, exports, module) { +"use strict"; +exports.OS = { + LINUX: "LINUX", + MAC: "MAC", + WINDOWS: "WINDOWS" +}; +exports.getOS = function() { + if (exports.isMac) { + return exports.OS.MAC; + } else if (exports.isLinux) { + return exports.OS.LINUX; + } else { + return exports.OS.WINDOWS; + } +}; +if (typeof navigator != "object") + return; + +var os = (navigator.platform.match(/mac|win|linux/i) || ["other"])[0].toLowerCase(); +var ua = navigator.userAgent; +exports.isWin = (os == "win"); +exports.isMac = (os == "mac"); +exports.isLinux = (os == "linux"); +exports.isIE = + (navigator.appName == "Microsoft Internet Explorer" || navigator.appName.indexOf("MSAppHost") >= 0) + ? parseFloat((ua.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]) + : parseFloat((ua.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]); // for ie + +exports.isOldIE = exports.isIE && exports.isIE < 9; +exports.isGecko = exports.isMozilla = ua.match(/ Gecko\/\d+/); +exports.isOpera = window.opera && Object.prototype.toString.call(window.opera) == "[object Opera]"; +exports.isWebKit = parseFloat(ua.split("WebKit/")[1]) || undefined; + +exports.isChrome = parseFloat(ua.split(" Chrome/")[1]) || undefined; + +exports.isEdge = parseFloat(ua.split(" Edge/")[1]) || undefined; + +exports.isAIR = ua.indexOf("AdobeAIR") >= 0; + +exports.isIPad = ua.indexOf("iPad") >= 0; + +exports.isAndroid = ua.indexOf("Android") >= 0; + +exports.isChromeOS = ua.indexOf(" CrOS ") >= 0; + +exports.isIOS = /iPad|iPhone|iPod/.test(ua) && !window.MSStream; + +if (exports.isIOS) exports.isMac = true; + +exports.isMobile = exports.isIPad || exports.isAndroid; + +}); + +define("ace/lib/dom",["require","exports","module","ace/lib/useragent"], function(require, exports, module) { +"use strict"; + +var useragent = require("./useragent"); +var XHTML_NS = "http://www.w3.org/1999/xhtml"; + +exports.buildDom = function buildDom(arr, parent, refs) { + if (typeof arr == "string" && arr) { + var txt = document.createTextNode(arr); + if (parent) + parent.appendChild(txt); + return txt; + } + + if (!Array.isArray(arr)) + return arr; + if (typeof arr[0] != "string" || !arr[0]) { + var els = []; + for (var i = 0; i < arr.length; i++) { + var ch = buildDom(arr[i], parent, refs); + ch && els.push(ch); + } + return els; + } + + var el = document.createElement(arr[0]); + var options = arr[1]; + var childIndex = 1; + if (options && typeof options == "object" && !Array.isArray(options)) + childIndex = 2; + for (var i = childIndex; i < arr.length; i++) + buildDom(arr[i], el, refs); + if (childIndex == 2) { + Object.keys(options).forEach(function(n) { + var val = options[n]; + if (n === "class") { + el.className = Array.isArray(val) ? val.join(" ") : val; + } else if (typeof val == "function" || n == "value") { + el[n] = val; + } else if (n === "ref") { + if (refs) refs[val] = el; + } else if (val != null) { + el.setAttribute(n, val); + } + }); + } + if (parent) + parent.appendChild(el); + return el; +}; + +exports.getDocumentHead = function(doc) { + if (!doc) + doc = document; + return doc.head || doc.getElementsByTagName("head")[0] || doc.documentElement; +}; + +exports.createElement = function(tag, ns) { + return document.createElementNS ? + document.createElementNS(ns || XHTML_NS, tag) : + document.createElement(tag); +}; + +exports.removeChildren = function(element) { + element.innerHTML = ""; +}; + +exports.createTextNode = function(textContent, element) { + var doc = element ? element.ownerDocument : document; + return doc.createTextNode(textContent); +}; + +exports.createFragment = function(element) { + var doc = element ? element.ownerDocument : document; + return doc.createDocumentFragment(); +}; + +exports.hasCssClass = function(el, name) { + var classes = (el.className + "").split(/\s+/g); + return classes.indexOf(name) !== -1; +}; +exports.addCssClass = function(el, name) { + if (!exports.hasCssClass(el, name)) { + el.className += " " + name; + } +}; +exports.removeCssClass = function(el, name) { + var classes = el.className.split(/\s+/g); + while (true) { + var index = classes.indexOf(name); + if (index == -1) { + break; + } + classes.splice(index, 1); + } + el.className = classes.join(" "); +}; + +exports.toggleCssClass = function(el, name) { + var classes = el.className.split(/\s+/g), add = true; + while (true) { + var index = classes.indexOf(name); + if (index == -1) { + break; + } + add = false; + classes.splice(index, 1); + } + if (add) + classes.push(name); + + el.className = classes.join(" "); + return add; +}; +exports.setCssClass = function(node, className, include) { + if (include) { + exports.addCssClass(node, className); + } else { + exports.removeCssClass(node, className); + } +}; + +exports.hasCssString = function(id, doc) { + var index = 0, sheets; + doc = doc || document; + if ((sheets = doc.querySelectorAll("style"))) { + while (index < sheets.length) + if (sheets[index++].id === id) + return true; + } +}; + +exports.importCssString = function importCssString(cssText, id, target) { + var container = target; + if (!target || !target.getRootNode) { + container = document; + } else { + container = target.getRootNode(); + if (!container || container == target) + container = document; + } + + var doc = container.ownerDocument || container; + if (id && exports.hasCssString(id, container)) + return null; + + if (id) + cssText += "\n/*# sourceURL=ace/css/" + id + " */"; + + var style = exports.createElement("style"); + style.appendChild(doc.createTextNode(cssText)); + if (id) + style.id = id; + + if (container == doc) + container = exports.getDocumentHead(doc); + container.insertBefore(style, container.firstChild); +}; + +exports.importCssStylsheet = function(uri, doc) { + exports.buildDom(["link", {rel: "stylesheet", href: uri}], exports.getDocumentHead(doc)); +}; +exports.scrollbarWidth = function(document) { + var inner = exports.createElement("ace_inner"); + inner.style.width = "100%"; + inner.style.minWidth = "0px"; + inner.style.height = "200px"; + inner.style.display = "block"; + + var outer = exports.createElement("ace_outer"); + var style = outer.style; + + style.position = "absolute"; + style.left = "-10000px"; + style.overflow = "hidden"; + style.width = "200px"; + style.minWidth = "0px"; + style.height = "150px"; + style.display = "block"; + + outer.appendChild(inner); + + var body = document.documentElement; + body.appendChild(outer); + + var noScrollbar = inner.offsetWidth; + + style.overflow = "scroll"; + var withScrollbar = inner.offsetWidth; + + if (noScrollbar == withScrollbar) { + withScrollbar = outer.clientWidth; + } + + body.removeChild(outer); + + return noScrollbar-withScrollbar; +}; + +if (typeof document == "undefined") { + exports.importCssString = function() {}; +} + +exports.computedStyle = function(element, style) { + return window.getComputedStyle(element, "") || {}; +}; + +exports.setStyle = function(styles, property, value) { + if (styles[property] !== value) { + styles[property] = value; + } +}; + +exports.HAS_CSS_ANIMATION = false; +exports.HAS_CSS_TRANSFORMS = false; +exports.HI_DPI = useragent.isWin + ? typeof window !== "undefined" && window.devicePixelRatio >= 1.5 + : true; + +if (typeof document !== "undefined") { + var div = document.createElement("div"); + if (exports.HI_DPI && div.style.transform !== undefined) + exports.HAS_CSS_TRANSFORMS = true; + if (!useragent.isEdge && typeof div.style.animationName !== "undefined") + exports.HAS_CSS_ANIMATION = true; + div = null; +} + +if (exports.HAS_CSS_TRANSFORMS) { + exports.translate = function(element, tx, ty) { + element.style.transform = "translate(" + Math.round(tx) + "px, " + Math.round(ty) +"px)"; + }; +} else { + exports.translate = function(element, tx, ty) { + element.style.top = Math.round(ty) + "px"; + element.style.left = Math.round(tx) + "px"; + }; +} + +}); + +define("ace/lib/oop",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.inherits = function(ctor, superCtor) { + ctor.super_ = superCtor; + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); +}; + +exports.mixin = function(obj, mixin) { + for (var key in mixin) { + obj[key] = mixin[key]; + } + return obj; +}; + +exports.implement = function(proto, mixin) { + exports.mixin(proto, mixin); +}; + +}); + +define("ace/lib/keys",["require","exports","module","ace/lib/oop"], function(require, exports, module) { +"use strict"; + +var oop = require("./oop"); +var Keys = (function() { + var ret = { + MODIFIER_KEYS: { + 16: 'Shift', 17: 'Ctrl', 18: 'Alt', 224: 'Meta' + }, + + KEY_MODS: { + "ctrl": 1, "alt": 2, "option" : 2, "shift": 4, + "super": 8, "meta": 8, "command": 8, "cmd": 8 + }, + + FUNCTION_KEYS : { + 8 : "Backspace", + 9 : "Tab", + 13 : "Return", + 19 : "Pause", + 27 : "Esc", + 32 : "Space", + 33 : "PageUp", + 34 : "PageDown", + 35 : "End", + 36 : "Home", + 37 : "Left", + 38 : "Up", + 39 : "Right", + 40 : "Down", + 44 : "Print", + 45 : "Insert", + 46 : "Delete", + 96 : "Numpad0", + 97 : "Numpad1", + 98 : "Numpad2", + 99 : "Numpad3", + 100: "Numpad4", + 101: "Numpad5", + 102: "Numpad6", + 103: "Numpad7", + 104: "Numpad8", + 105: "Numpad9", + '-13': "NumpadEnter", + 112: "F1", + 113: "F2", + 114: "F3", + 115: "F4", + 116: "F5", + 117: "F6", + 118: "F7", + 119: "F8", + 120: "F9", + 121: "F10", + 122: "F11", + 123: "F12", + 144: "Numlock", + 145: "Scrolllock" + }, + + PRINTABLE_KEYS: { + 32: ' ', 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5', + 54: '6', 55: '7', 56: '8', 57: '9', 59: ';', 61: '=', 65: 'a', + 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h', + 73: 'i', 74: 'j', 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o', + 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't', 85: 'u', 86: 'v', + 87: 'w', 88: 'x', 89: 'y', 90: 'z', 107: '+', 109: '-', 110: '.', + 186: ';', 187: '=', 188: ',', 189: '-', 190: '.', 191: '/', 192: '`', + 219: '[', 220: '\\',221: ']', 222: "'", 111: '/', 106: '*' + } + }; + var name, i; + for (i in ret.FUNCTION_KEYS) { + name = ret.FUNCTION_KEYS[i].toLowerCase(); + ret[name] = parseInt(i, 10); + } + for (i in ret.PRINTABLE_KEYS) { + name = ret.PRINTABLE_KEYS[i].toLowerCase(); + ret[name] = parseInt(i, 10); + } + oop.mixin(ret, ret.MODIFIER_KEYS); + oop.mixin(ret, ret.PRINTABLE_KEYS); + oop.mixin(ret, ret.FUNCTION_KEYS); + ret.enter = ret["return"]; + ret.escape = ret.esc; + ret.del = ret["delete"]; + ret[173] = '-'; + + (function() { + var mods = ["cmd", "ctrl", "alt", "shift"]; + for (var i = Math.pow(2, mods.length); i--;) { + ret.KEY_MODS[i] = mods.filter(function(x) { + return i & ret.KEY_MODS[x]; + }).join("-") + "-"; + } + })(); + + ret.KEY_MODS[0] = ""; + ret.KEY_MODS[-1] = "input-"; + + return ret; +})(); +oop.mixin(exports, Keys); + +exports.keyCodeToString = function(keyCode) { + var keyString = Keys[keyCode]; + if (typeof keyString != "string") + keyString = String.fromCharCode(keyCode); + return keyString.toLowerCase(); +}; + +}); + +define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"], function(require, exports, module) { +"use strict"; + +var keys = require("./keys"); +var useragent = require("./useragent"); + +var pressedKeys = null; +var ts = 0; + +exports.addListener = function(elem, type, callback) { + if (elem.addEventListener) { + return elem.addEventListener(type, callback, false); + } + if (elem.attachEvent) { + var wrapper = function() { + callback.call(elem, window.event); + }; + callback._wrapper = wrapper; + elem.attachEvent("on" + type, wrapper); + } +}; + +exports.removeListener = function(elem, type, callback) { + if (elem.removeEventListener) { + return elem.removeEventListener(type, callback, false); + } + if (elem.detachEvent) { + elem.detachEvent("on" + type, callback._wrapper || callback); + } +}; +exports.stopEvent = function(e) { + exports.stopPropagation(e); + exports.preventDefault(e); + return false; +}; + +exports.stopPropagation = function(e) { + if (e.stopPropagation) + e.stopPropagation(); + else + e.cancelBubble = true; +}; + +exports.preventDefault = function(e) { + if (e.preventDefault) + e.preventDefault(); + else + e.returnValue = false; +}; +exports.getButton = function(e) { + if (e.type == "dblclick") + return 0; + if (e.type == "contextmenu" || (useragent.isMac && (e.ctrlKey && !e.altKey && !e.shiftKey))) + return 2; + if (e.preventDefault) { + return e.button; + } + else { + return {1:0, 2:2, 4:1}[e.button]; + } +}; + +exports.capture = function(el, eventHandler, releaseCaptureHandler) { + function onMouseUp(e) { + eventHandler && eventHandler(e); + releaseCaptureHandler && releaseCaptureHandler(e); + + exports.removeListener(document, "mousemove", eventHandler, true); + exports.removeListener(document, "mouseup", onMouseUp, true); + exports.removeListener(document, "dragstart", onMouseUp, true); + } + + exports.addListener(document, "mousemove", eventHandler, true); + exports.addListener(document, "mouseup", onMouseUp, true); + exports.addListener(document, "dragstart", onMouseUp, true); + + return onMouseUp; +}; + +exports.addTouchMoveListener = function (el, callback) { + var startx, starty; + exports.addListener(el, "touchstart", function (e) { + var touches = e.touches; + var touchObj = touches[0]; + startx = touchObj.clientX; + starty = touchObj.clientY; + }); + exports.addListener(el, "touchmove", function (e) { + var touches = e.touches; + if (touches.length > 1) return; + + var touchObj = touches[0]; + + e.wheelX = startx - touchObj.clientX; + e.wheelY = starty - touchObj.clientY; + + startx = touchObj.clientX; + starty = touchObj.clientY; + + callback(e); + }); +}; + +exports.addMouseWheelListener = function(el, callback) { + if ("onmousewheel" in el) { + exports.addListener(el, "mousewheel", function(e) { + var factor = 8; + if (e.wheelDeltaX !== undefined) { + e.wheelX = -e.wheelDeltaX / factor; + e.wheelY = -e.wheelDeltaY / factor; + } else { + e.wheelX = 0; + e.wheelY = -e.wheelDelta / factor; + } + callback(e); + }); + } else if ("onwheel" in el) { + exports.addListener(el, "wheel", function(e) { + var factor = 0.35; + switch (e.deltaMode) { + case e.DOM_DELTA_PIXEL: + e.wheelX = e.deltaX * factor || 0; + e.wheelY = e.deltaY * factor || 0; + break; + case e.DOM_DELTA_LINE: + case e.DOM_DELTA_PAGE: + e.wheelX = (e.deltaX || 0) * 5; + e.wheelY = (e.deltaY || 0) * 5; + break; + } + + callback(e); + }); + } else { + exports.addListener(el, "DOMMouseScroll", function(e) { + if (e.axis && e.axis == e.HORIZONTAL_AXIS) { + e.wheelX = (e.detail || 0) * 5; + e.wheelY = 0; + } else { + e.wheelX = 0; + e.wheelY = (e.detail || 0) * 5; + } + callback(e); + }); + } +}; + +exports.addMultiMouseDownListener = function(elements, timeouts, eventHandler, callbackName) { + var clicks = 0; + var startX, startY, timer; + var eventNames = { + 2: "dblclick", + 3: "tripleclick", + 4: "quadclick" + }; + + function onMousedown(e) { + if (exports.getButton(e) !== 0) { + clicks = 0; + } else if (e.detail > 1) { + clicks++; + if (clicks > 4) + clicks = 1; + } else { + clicks = 1; + } + if (useragent.isIE) { + var isNewClick = Math.abs(e.clientX - startX) > 5 || Math.abs(e.clientY - startY) > 5; + if (!timer || isNewClick) + clicks = 1; + if (timer) + clearTimeout(timer); + timer = setTimeout(function() {timer = null;}, timeouts[clicks - 1] || 600); + + if (clicks == 1) { + startX = e.clientX; + startY = e.clientY; + } + } + + e._clicks = clicks; + + eventHandler[callbackName]("mousedown", e); + + if (clicks > 4) + clicks = 0; + else if (clicks > 1) + return eventHandler[callbackName](eventNames[clicks], e); + } + function onDblclick(e) { + clicks = 2; + if (timer) + clearTimeout(timer); + timer = setTimeout(function() {timer = null;}, timeouts[clicks - 1] || 600); + eventHandler[callbackName]("mousedown", e); + eventHandler[callbackName](eventNames[clicks], e); + } + if (!Array.isArray(elements)) + elements = [elements]; + elements.forEach(function(el) { + exports.addListener(el, "mousedown", onMousedown); + if (useragent.isOldIE) + exports.addListener(el, "dblclick", onDblclick); + }); +}; + +var getModifierHash = useragent.isMac && useragent.isOpera && !("KeyboardEvent" in window) + ? function(e) { + return 0 | (e.metaKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.ctrlKey ? 8 : 0); + } + : function(e) { + return 0 | (e.ctrlKey ? 1 : 0) | (e.altKey ? 2 : 0) | (e.shiftKey ? 4 : 0) | (e.metaKey ? 8 : 0); + }; + +exports.getModifierString = function(e) { + return keys.KEY_MODS[getModifierHash(e)]; +}; + +function normalizeCommandKeys(callback, e, keyCode) { + var hashId = getModifierHash(e); + + if (!useragent.isMac && pressedKeys) { + if (e.getModifierState && (e.getModifierState("OS") || e.getModifierState("Win"))) + hashId |= 8; + if (pressedKeys.altGr) { + if ((3 & hashId) != 3) + pressedKeys.altGr = 0; + else + return; + } + if (keyCode === 18 || keyCode === 17) { + var location = "location" in e ? e.location : e.keyLocation; + if (keyCode === 17 && location === 1) { + if (pressedKeys[keyCode] == 1) + ts = e.timeStamp; + } else if (keyCode === 18 && hashId === 3 && location === 2) { + var dt = e.timeStamp - ts; + if (dt < 50) + pressedKeys.altGr = true; + } + } + } + + if (keyCode in keys.MODIFIER_KEYS) { + keyCode = -1; + } + if (hashId & 8 && (keyCode >= 91 && keyCode <= 93)) { + keyCode = -1; + } + + if (!hashId && keyCode === 13) { + var location = "location" in e ? e.location : e.keyLocation; + if (location === 3) { + callback(e, hashId, -keyCode); + if (e.defaultPrevented) + return; + } + } + + if (useragent.isChromeOS && hashId & 8) { + callback(e, hashId, keyCode); + if (e.defaultPrevented) + return; + else + hashId &= ~8; + } + if (!hashId && !(keyCode in keys.FUNCTION_KEYS) && !(keyCode in keys.PRINTABLE_KEYS)) { + return false; + } + + return callback(e, hashId, keyCode); +} + + +exports.addCommandKeyListener = function(el, callback) { + var addListener = exports.addListener; + if (useragent.isOldGecko || (useragent.isOpera && !("KeyboardEvent" in window))) { + var lastKeyDownKeyCode = null; + addListener(el, "keydown", function(e) { + lastKeyDownKeyCode = e.keyCode; + }); + addListener(el, "keypress", function(e) { + return normalizeCommandKeys(callback, e, lastKeyDownKeyCode); + }); + } else { + var lastDefaultPrevented = null; + + addListener(el, "keydown", function(e) { + pressedKeys[e.keyCode] = (pressedKeys[e.keyCode] || 0) + 1; + var result = normalizeCommandKeys(callback, e, e.keyCode); + lastDefaultPrevented = e.defaultPrevented; + return result; + }); + + addListener(el, "keypress", function(e) { + if (lastDefaultPrevented && (e.ctrlKey || e.altKey || e.shiftKey || e.metaKey)) { + exports.stopEvent(e); + lastDefaultPrevented = null; + } + }); + + addListener(el, "keyup", function(e) { + pressedKeys[e.keyCode] = null; + }); + + if (!pressedKeys) { + resetPressedKeys(); + addListener(window, "focus", resetPressedKeys); + } + } +}; +function resetPressedKeys() { + pressedKeys = Object.create(null); +} + +if (typeof window == "object" && window.postMessage && !useragent.isOldIE) { + var postMessageId = 1; + exports.nextTick = function(callback, win) { + win = win || window; + var messageName = "zero-timeout-message-" + (postMessageId++); + + var listener = function(e) { + if (e.data == messageName) { + exports.stopPropagation(e); + exports.removeListener(win, "message", listener); + callback(); + } + }; + + exports.addListener(win, "message", listener); + win.postMessage(messageName, "*"); + }; +} + +exports.$idleBlocked = false; +exports.onIdle = function(cb, timeout) { + return setTimeout(function handler() { + if (!exports.$idleBlocked) { + cb(); + } else { + setTimeout(handler, 100); + } + }, timeout); +}; + +exports.$idleBlockId = null; +exports.blockIdle = function(delay) { + if (exports.$idleBlockId) + clearTimeout(exports.$idleBlockId); + + exports.$idleBlocked = true; + exports.$idleBlockId = setTimeout(function() { + exports.$idleBlocked = false; + }, delay || 100); +}; + +exports.nextFrame = typeof window == "object" && (window.requestAnimationFrame + || window.mozRequestAnimationFrame + || window.webkitRequestAnimationFrame + || window.msRequestAnimationFrame + || window.oRequestAnimationFrame); + +if (exports.nextFrame) + exports.nextFrame = exports.nextFrame.bind(window); +else + exports.nextFrame = function(callback) { + setTimeout(callback, 17); + }; +}); + +define("ace/range",["require","exports","module"], function(require, exports, module) { +"use strict"; +var comparePoints = function(p1, p2) { + return p1.row - p2.row || p1.column - p2.column; +}; +var Range = function(startRow, startColumn, endRow, endColumn) { + this.start = { + row: startRow, + column: startColumn + }; + + this.end = { + row: endRow, + column: endColumn + }; +}; + +(function() { + this.isEqual = function(range) { + return this.start.row === range.start.row && + this.end.row === range.end.row && + this.start.column === range.start.column && + this.end.column === range.end.column; + }; + this.toString = function() { + return ("Range: [" + this.start.row + "/" + this.start.column + + "] -> [" + this.end.row + "/" + this.end.column + "]"); + }; + + this.contains = function(row, column) { + return this.compare(row, column) == 0; + }; + this.compareRange = function(range) { + var cmp, + end = range.end, + start = range.start; + + cmp = this.compare(end.row, end.column); + if (cmp == 1) { + cmp = this.compare(start.row, start.column); + if (cmp == 1) { + return 2; + } else if (cmp == 0) { + return 1; + } else { + return 0; + } + } else if (cmp == -1) { + return -2; + } else { + cmp = this.compare(start.row, start.column); + if (cmp == -1) { + return -1; + } else if (cmp == 1) { + return 42; + } else { + return 0; + } + } + }; + this.comparePoint = function(p) { + return this.compare(p.row, p.column); + }; + this.containsRange = function(range) { + return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0; + }; + this.intersects = function(range) { + var cmp = this.compareRange(range); + return (cmp == -1 || cmp == 0 || cmp == 1); + }; + this.isEnd = function(row, column) { + return this.end.row == row && this.end.column == column; + }; + this.isStart = function(row, column) { + return this.start.row == row && this.start.column == column; + }; + this.setStart = function(row, column) { + if (typeof row == "object") { + this.start.column = row.column; + this.start.row = row.row; + } else { + this.start.row = row; + this.start.column = column; + } + }; + this.setEnd = function(row, column) { + if (typeof row == "object") { + this.end.column = row.column; + this.end.row = row.row; + } else { + this.end.row = row; + this.end.column = column; + } + }; + this.inside = function(row, column) { + if (this.compare(row, column) == 0) { + if (this.isEnd(row, column) || this.isStart(row, column)) { + return false; + } else { + return true; + } + } + return false; + }; + this.insideStart = function(row, column) { + if (this.compare(row, column) == 0) { + if (this.isEnd(row, column)) { + return false; + } else { + return true; + } + } + return false; + }; + this.insideEnd = function(row, column) { + if (this.compare(row, column) == 0) { + if (this.isStart(row, column)) { + return false; + } else { + return true; + } + } + return false; + }; + this.compare = function(row, column) { + if (!this.isMultiLine()) { + if (row === this.start.row) { + return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0); + } + } + + if (row < this.start.row) + return -1; + + if (row > this.end.row) + return 1; + + if (this.start.row === row) + return column >= this.start.column ? 0 : -1; + + if (this.end.row === row) + return column <= this.end.column ? 0 : 1; + + return 0; + }; + this.compareStart = function(row, column) { + if (this.start.row == row && this.start.column == column) { + return -1; + } else { + return this.compare(row, column); + } + }; + this.compareEnd = function(row, column) { + if (this.end.row == row && this.end.column == column) { + return 1; + } else { + return this.compare(row, column); + } + }; + this.compareInside = function(row, column) { + if (this.end.row == row && this.end.column == column) { + return 1; + } else if (this.start.row == row && this.start.column == column) { + return -1; + } else { + return this.compare(row, column); + } + }; + this.clipRows = function(firstRow, lastRow) { + if (this.end.row > lastRow) + var end = {row: lastRow + 1, column: 0}; + else if (this.end.row < firstRow) + var end = {row: firstRow, column: 0}; + + if (this.start.row > lastRow) + var start = {row: lastRow + 1, column: 0}; + else if (this.start.row < firstRow) + var start = {row: firstRow, column: 0}; + + return Range.fromPoints(start || this.start, end || this.end); + }; + this.extend = function(row, column) { + var cmp = this.compare(row, column); + + if (cmp == 0) + return this; + else if (cmp == -1) + var start = {row: row, column: column}; + else + var end = {row: row, column: column}; + + return Range.fromPoints(start || this.start, end || this.end); + }; + + this.isEmpty = function() { + return (this.start.row === this.end.row && this.start.column === this.end.column); + }; + this.isMultiLine = function() { + return (this.start.row !== this.end.row); + }; + this.clone = function() { + return Range.fromPoints(this.start, this.end); + }; + this.collapseRows = function() { + if (this.end.column == 0) + return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0); + else + return new Range(this.start.row, 0, this.end.row, 0); + }; + this.toScreenRange = function(session) { + var screenPosStart = session.documentToScreenPosition(this.start); + var screenPosEnd = session.documentToScreenPosition(this.end); + + return new Range( + screenPosStart.row, screenPosStart.column, + screenPosEnd.row, screenPosEnd.column + ); + }; + this.moveBy = function(row, column) { + this.start.row += row; + this.start.column += column; + this.end.row += row; + this.end.column += column; + }; + +}).call(Range.prototype); +Range.fromPoints = function(start, end) { + return new Range(start.row, start.column, end.row, end.column); +}; +Range.comparePoints = comparePoints; + +Range.comparePoints = function(p1, p2) { + return p1.row - p2.row || p1.column - p2.column; +}; + + +exports.Range = Range; +}); + +define("ace/lib/lang",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.last = function(a) { + return a[a.length - 1]; +}; + +exports.stringReverse = function(string) { + return string.split("").reverse().join(""); +}; + +exports.stringRepeat = function (string, count) { + var result = ''; + while (count > 0) { + if (count & 1) + result += string; + + if (count >>= 1) + string += string; + } + return result; +}; + +var trimBeginRegexp = /^\s\s*/; +var trimEndRegexp = /\s\s*$/; + +exports.stringTrimLeft = function (string) { + return string.replace(trimBeginRegexp, ''); +}; + +exports.stringTrimRight = function (string) { + return string.replace(trimEndRegexp, ''); +}; + +exports.copyObject = function(obj) { + var copy = {}; + for (var key in obj) { + copy[key] = obj[key]; + } + return copy; +}; + +exports.copyArray = function(array){ + var copy = []; + for (var i=0, l=array.length; i 63; +var MAX_LINE_LENGTH = 400; + +var KEYS = require("../lib/keys"); +var MODS = KEYS.KEY_MODS; +var isIOS = useragent.isIOS; +var valueResetRegex = isIOS ? /\s/ : /\n/; + +var TextInput = function(parentNode, host) { + var text = dom.createElement("textarea"); + text.className = "ace_text-input"; + + text.setAttribute("wrap", "off"); + text.setAttribute("autocorrect", "off"); + text.setAttribute("autocapitalize", "off"); + text.setAttribute("spellcheck", false); + + text.style.opacity = "0"; + parentNode.insertBefore(text, parentNode.firstChild); + + var copied = false; + var pasted = false; + var inComposition = false; + var sendingText = false; + var tempStyle = ''; + var isSelectionEmpty = true; + var copyWithEmptySelection = false; + + if (!useragent.isMobile) + text.style.fontSize = "1px"; + + var commandMode = false; + var ignoreFocusEvents = false; + + var lastValue = ""; + var lastSelectionStart = 0; + var lastSelectionEnd = 0; + try { var isFocused = document.activeElement === text; } catch(e) {} + + event.addListener(text, "blur", function(e) { + if (ignoreFocusEvents) return; + host.onBlur(e); + isFocused = false; + }); + event.addListener(text, "focus", function(e) { + if (ignoreFocusEvents) return; + isFocused = true; + if (useragent.isEdge) { + try { + if (!document.hasFocus()) + return; + } catch(e) {} + } + host.onFocus(e); + if (useragent.isEdge) + setTimeout(resetSelection); + else + resetSelection(); + }); + this.$focusScroll = false; + this.focus = function() { + if (tempStyle || HAS_FOCUS_ARGS || this.$focusScroll == "browser") + return text.focus({ preventScroll: true }); + + var top = text.style.top; + text.style.position = "fixed"; + text.style.top = "0px"; + try { + var isTransformed = text.getBoundingClientRect().top != 0; + } catch(e) { + return; + } + var ancestors = []; + if (isTransformed) { + var t = text.parentElement; + while (t && t.nodeType == 1) { + ancestors.push(t); + t.setAttribute("ace_nocontext", true); + if (!t.parentElement && t.getRootNode) + t = t.getRootNode().host; + else + t = t.parentElement; + } + } + text.focus({ preventScroll: true }); + if (isTransformed) { + ancestors.forEach(function(p) { + p.removeAttribute("ace_nocontext"); + }); + } + setTimeout(function() { + text.style.position = ""; + if (text.style.top == "0px") + text.style.top = top; + }, 0); + }; + this.blur = function() { + text.blur(); + }; + this.isFocused = function() { + return isFocused; + }; + + host.on("beforeEndOperation", function() { + if (host.curOp && host.curOp.command.name == "insertstring") + return; + if (inComposition) { + lastValue = text.value = ""; + onCompositionEnd(); + } + resetSelection(); + }); + + var resetSelection = isIOS + ? function(value) { + if (!isFocused || (copied && !value) || sendingText) return; + if (!value) + value = ""; + var newValue = "\n ab" + value + "cde fg\n"; + if (newValue != text.value) + text.value = lastValue = newValue; + + var selectionStart = 4; + var selectionEnd = 4 + (value.length || (host.selection.isEmpty() ? 0 : 1)); + + if (lastSelectionStart != selectionStart || lastSelectionEnd != selectionEnd) { + text.setSelectionRange(selectionStart, selectionEnd); + } + lastSelectionStart = selectionStart; + lastSelectionEnd = selectionEnd; + } + : function() { + if (inComposition || sendingText) + return; + if (!isFocused && !afterContextMenu) + return; + inComposition = true; + + var selection = host.selection; + var range = selection.getRange(); + var row = selection.cursor.row; + var selectionStart = range.start.column; + var selectionEnd = range.end.column; + var line = host.session.getLine(row); + + if (range.start.row != row) { + var prevLine = host.session.getLine(row - 1); + selectionStart = range.start.row < row - 1 ? 0 : selectionStart; + selectionEnd += prevLine.length + 1; + line = prevLine + "\n" + line; + } + else if (range.end.row != row) { + var nextLine = host.session.getLine(row + 1); + selectionEnd = range.end.row > row + 1 ? nextLine.length : selectionEnd; + selectionEnd += line.length + 1; + line = line + "\n" + nextLine; + } + + if (line.length > MAX_LINE_LENGTH) { + if (selectionStart < MAX_LINE_LENGTH && selectionEnd < MAX_LINE_LENGTH) { + line = line.slice(0, MAX_LINE_LENGTH); + } else { + line = "\n"; + selectionStart = 0; + selectionEnd = 1; + } + } + + var newValue = line + "\n\n"; + if (newValue != lastValue) { + text.value = lastValue = newValue; + lastSelectionStart = lastSelectionEnd = newValue.length; + } + if (afterContextMenu) { + lastSelectionStart = text.selectionStart; + lastSelectionEnd = text.selectionEnd; + } + if ( + lastSelectionEnd != selectionEnd + || lastSelectionStart != selectionStart + || text.selectionEnd != lastSelectionEnd // on ie edge selectionEnd changes silently after the initialization + ) { + try { + text.setSelectionRange(selectionStart, selectionEnd); + lastSelectionStart = selectionStart; + lastSelectionEnd = selectionEnd; + } catch(e){} + } + inComposition = false; + }; + + if (isFocused) + host.onFocus(); + + + var isAllSelected = function(text) { + return text.selectionStart === 0 && text.selectionEnd >= lastValue.length + && text.value === lastValue && lastValue + && text.selectionEnd !== lastSelectionEnd; + }; + + var onSelect = function(e) { + if (inComposition) + return; + if (copied) { + copied = false; + } else if (isAllSelected(text)) { + host.selectAll(); + resetSelection(); + } + }; + + var inputHandler = null; + this.setInputHandler = function(cb) {inputHandler = cb;}; + this.getInputHandler = function() {return inputHandler;}; + var afterContextMenu = false; + + var sendText = function(value, fromInput) { + if (afterContextMenu) + afterContextMenu = false; + if (pasted) { + resetSelection(); + if (value) + host.onPaste(value); + pasted = false; + return ""; + } else { + var selectionStart = text.selectionStart; + var selectionEnd = text.selectionEnd; + + var extendLeft = lastSelectionStart; + var extendRight = lastValue.length - lastSelectionEnd; + + var inserted = value; + var restoreStart = value.length - selectionStart; + var restoreEnd = value.length - selectionEnd; + + var i = 0; + while (extendLeft > 0 && lastValue[i] == value[i]) { + i++; + extendLeft--; + } + inserted = inserted.slice(i); + i = 1; + while (extendRight > 0 && lastValue.length - i > lastSelectionStart - 1 && lastValue[lastValue.length - i] == value[value.length - i]) { + i++; + extendRight--; + } + restoreStart -= i-1; + restoreEnd -= i-1; + inserted = inserted.slice(0, inserted.length - i+1); + if (!fromInput && restoreStart == inserted.length && !extendLeft && !extendRight && !restoreEnd) + return ""; + + sendingText = true; + if (inserted && !extendLeft && !extendRight && !restoreStart && !restoreEnd || commandMode) { + host.onTextInput(inserted); + } else { + host.onTextInput(inserted, { + extendLeft: extendLeft, + extendRight: extendRight, + restoreStart: restoreStart, + restoreEnd: restoreEnd + }); + } + sendingText = false; + + lastValue = value; + lastSelectionStart = selectionStart; + lastSelectionEnd = selectionEnd; + return inserted; + } + }; + var onInput = function(e) { + if (inComposition) + return onCompositionUpdate(); + var data = text.value; + var inserted = sendText(data, true); + if (data.length > MAX_LINE_LENGTH + 100 || valueResetRegex.test(inserted)) + resetSelection(); + }; + + var handleClipboardData = function(e, data, forceIEMime) { + var clipboardData = e.clipboardData || window.clipboardData; + if (!clipboardData || BROKEN_SETDATA) + return; + var mime = USE_IE_MIME_TYPE || forceIEMime ? "Text" : "text/plain"; + try { + if (data) { + return clipboardData.setData(mime, data) !== false; + } else { + return clipboardData.getData(mime); + } + } catch(e) { + if (!forceIEMime) + return handleClipboardData(e, data, true); + } + }; + + var doCopy = function(e, isCut) { + var data = host.getCopyText(); + if (!data) + return event.preventDefault(e); + + if (handleClipboardData(e, data)) { + if (isIOS) { + resetSelection(data); + copied = data; + setTimeout(function () { + copied = false; + }, 10); + } + isCut ? host.onCut() : host.onCopy(); + event.preventDefault(e); + } else { + copied = true; + text.value = data; + text.select(); + setTimeout(function(){ + copied = false; + resetSelection(); + isCut ? host.onCut() : host.onCopy(); + }); + } + }; + + var onCut = function(e) { + doCopy(e, true); + }; + + var onCopy = function(e) { + doCopy(e, false); + }; + + var onPaste = function(e) { + var data = handleClipboardData(e); + if (typeof data == "string") { + if (data) + host.onPaste(data, e); + if (useragent.isIE) + setTimeout(resetSelection); + event.preventDefault(e); + } + else { + text.value = ""; + pasted = true; + } + }; + + event.addCommandKeyListener(text, host.onCommandKey.bind(host)); + + event.addListener(text, "select", onSelect); + event.addListener(text, "input", onInput); + + event.addListener(text, "cut", onCut); + event.addListener(text, "copy", onCopy); + event.addListener(text, "paste", onPaste); + if (!('oncut' in text) || !('oncopy' in text) || !('onpaste' in text)) { + event.addListener(parentNode, "keydown", function(e) { + if ((useragent.isMac && !e.metaKey) || !e.ctrlKey) + return; + + switch (e.keyCode) { + case 67: + onCopy(e); + break; + case 86: + onPaste(e); + break; + case 88: + onCut(e); + break; + } + }); + } + var onCompositionStart = function(e) { + if (inComposition || !host.onCompositionStart || host.$readOnly) + return; + + inComposition = {}; + + if (commandMode) + return; + + setTimeout(onCompositionUpdate, 0); + host.on("mousedown", cancelComposition); + + var range = host.getSelectionRange(); + range.end.row = range.start.row; + range.end.column = range.start.column; + inComposition.markerRange = range; + inComposition.selectionStart = lastSelectionStart; + host.onCompositionStart(inComposition); + + if (inComposition.useTextareaForIME) { + text.value = ""; + lastValue = ""; + lastSelectionStart = 0; + lastSelectionEnd = 0; + } + else { + if (text.msGetInputContext) + inComposition.context = text.msGetInputContext(); + if (text.getInputContext) + inComposition.context = text.getInputContext(); + } + }; + + var onCompositionUpdate = function() { + if (!inComposition || !host.onCompositionUpdate || host.$readOnly) + return; + if (commandMode) + return cancelComposition(); + + if (inComposition.useTextareaForIME) { + host.onCompositionUpdate(text.value); + } + else { + var data = text.value; + sendText(data); + if (inComposition.markerRange) { + if (inComposition.context) { + inComposition.markerRange.start.column = inComposition.selectionStart + = inComposition.context.compositionStartOffset; + } + inComposition.markerRange.end.column = inComposition.markerRange.start.column + + lastSelectionEnd - inComposition.selectionStart; + } + } + }; + + var onCompositionEnd = function(e) { + if (!host.onCompositionEnd || host.$readOnly) return; + inComposition = false; + host.onCompositionEnd(); + host.off("mousedown", cancelComposition); + if (e) onInput(); + }; + + + function cancelComposition() { + ignoreFocusEvents = true; + text.blur(); + text.focus(); + ignoreFocusEvents = false; + } + + var syncComposition = lang.delayedCall(onCompositionUpdate, 50).schedule.bind(null, null); + + function onKeyup(e) { + if (e.keyCode == 27 && text.value.length < text.selectionStart) { + if (!inComposition) + lastValue = text.value; + lastSelectionStart = lastSelectionEnd = -1; + resetSelection(); + } + syncComposition(); + } + + event.addListener(text, "compositionstart", onCompositionStart); + event.addListener(text, "compositionupdate", onCompositionUpdate); + event.addListener(text, "keyup", onKeyup); + event.addListener(text, "keydown", syncComposition); + event.addListener(text, "compositionend", onCompositionEnd); + + this.getElement = function() { + return text; + }; + this.setCommandMode = function(value) { + commandMode = value; + text.readOnly = false; + }; + + this.setReadOnly = function(readOnly) { + if (!commandMode) + text.readOnly = readOnly; + }; + + this.setCopyWithEmptySelection = function(value) { + copyWithEmptySelection = value; + }; + + this.onContextMenu = function(e) { + afterContextMenu = true; + resetSelection(); + host._emit("nativecontextmenu", {target: host, domEvent: e}); + this.moveToMouse(e, true); + }; + + this.moveToMouse = function(e, bringToFront) { + if (!tempStyle) + tempStyle = text.style.cssText; + text.style.cssText = (bringToFront ? "z-index:100000;" : "") + + (useragent.isIE ? "opacity:0.1;" : "") + + "text-indent: -" + (lastSelectionStart + lastSelectionEnd) * host.renderer.characterWidth * 0.5 + "px;"; + + var rect = host.container.getBoundingClientRect(); + var style = dom.computedStyle(host.container); + var top = rect.top + (parseInt(style.borderTopWidth) || 0); + var left = rect.left + (parseInt(rect.borderLeftWidth) || 0); + var maxTop = rect.bottom - top - text.clientHeight -2; + var move = function(e) { + text.style.left = e.clientX - left - 2 + "px"; + text.style.top = Math.min(e.clientY - top - 2, maxTop) + "px"; + }; + move(e); + + if (e.type != "mousedown") + return; + + if (host.renderer.$keepTextAreaAtCursor) + host.renderer.$keepTextAreaAtCursor = null; + + clearTimeout(closeTimeout); + if (useragent.isWin) + event.capture(host.container, move, onContextMenuClose); + }; + + this.onContextMenuClose = onContextMenuClose; + var closeTimeout; + function onContextMenuClose() { + clearTimeout(closeTimeout); + closeTimeout = setTimeout(function () { + if (tempStyle) { + text.style.cssText = tempStyle; + tempStyle = ''; + } + if (host.renderer.$keepTextAreaAtCursor == null) { + host.renderer.$keepTextAreaAtCursor = true; + host.renderer.$moveTextAreaToCursor(); + } + }, 0); + } + + var onContextMenu = function(e) { + host.textInput.onContextMenu(e); + onContextMenuClose(); + }; + event.addListener(text, "mouseup", onContextMenu); + event.addListener(text, "mousedown", function(e) { + e.preventDefault(); + onContextMenuClose(); + }); + event.addListener(host.renderer.scroller, "contextmenu", onContextMenu); + event.addListener(text, "contextmenu", onContextMenu); + + if (isIOS) + addIosSelectionHandler(parentNode, host, text); + + function addIosSelectionHandler(parentNode, host, text) { + var typingResetTimeout = null; + var typing = false; + + text.addEventListener("keydown", function (e) { + if (typingResetTimeout) clearTimeout(typingResetTimeout); + typing = true; + }, true); + + text.addEventListener("keyup", function (e) { + typingResetTimeout = setTimeout(function () { + typing = false; + }, 100); + }, true); + var detectArrowKeys = function(e) { + if (document.activeElement !== text) return; + if (typing || inComposition) return; + + if (copied) { + return; + } + var selectionStart = text.selectionStart; + var selectionEnd = text.selectionEnd; + + var key = null; + var modifier = 0; + console.log(selectionStart, selectionEnd); + if (selectionStart == 0) { + key = KEYS.up; + } else if (selectionStart == 1) { + key = KEYS.home; + } else if (selectionEnd > lastSelectionEnd && lastValue[selectionEnd] == "\n") { + key = KEYS.end; + } else if (selectionStart < lastSelectionStart && lastValue[selectionStart - 1] == " ") { + key = KEYS.left; + modifier = MODS.option; + } else if ( + selectionStart < lastSelectionStart + || ( + selectionStart == lastSelectionStart + && lastSelectionEnd != lastSelectionStart + && selectionStart == selectionEnd + ) + ) { + key = KEYS.left; + } else if (selectionEnd > lastSelectionEnd && lastValue.slice(0, selectionEnd).split("\n").length > 2) { + key = KEYS.down; + } else if (selectionEnd > lastSelectionEnd && lastValue[selectionEnd - 1] == " ") { + key = KEYS.right; + modifier = MODS.option; + } else if ( + selectionEnd > lastSelectionEnd + || ( + selectionEnd == lastSelectionEnd + && lastSelectionEnd != lastSelectionStart + && selectionStart == selectionEnd + ) + ) { + key = KEYS.right; + } + + if (selectionStart !== selectionEnd) + modifier |= MODS.shift; + + if (key) { + host.onCommandKey(null, modifier, key); + lastSelectionStart = selectionStart; + lastSelectionEnd = selectionEnd; + resetSelection(""); + } + }; + document.addEventListener("selectionchange", detectArrowKeys); + host.on("destroy", function() { + document.removeEventListener("selectionchange", detectArrowKeys); + }); + } + +}; + +exports.TextInput = TextInput; +}); + +define("ace/mouse/default_handlers",["require","exports","module","ace/lib/useragent"], function(require, exports, module) { +"use strict"; + +var useragent = require("../lib/useragent"); + +var DRAG_OFFSET = 0; // pixels +var SCROLL_COOLDOWN_T = 550; // milliseconds + +function DefaultHandlers(mouseHandler) { + mouseHandler.$clickSelection = null; + + var editor = mouseHandler.editor; + editor.setDefaultHandler("mousedown", this.onMouseDown.bind(mouseHandler)); + editor.setDefaultHandler("dblclick", this.onDoubleClick.bind(mouseHandler)); + editor.setDefaultHandler("tripleclick", this.onTripleClick.bind(mouseHandler)); + editor.setDefaultHandler("quadclick", this.onQuadClick.bind(mouseHandler)); + editor.setDefaultHandler("mousewheel", this.onMouseWheel.bind(mouseHandler)); + editor.setDefaultHandler("touchmove", this.onTouchMove.bind(mouseHandler)); + + var exports = ["select", "startSelect", "selectEnd", "selectAllEnd", "selectByWordsEnd", + "selectByLinesEnd", "dragWait", "dragWaitEnd", "focusWait"]; + + exports.forEach(function(x) { + mouseHandler[x] = this[x]; + }, this); + + mouseHandler.selectByLines = this.extendSelectionBy.bind(mouseHandler, "getLineRange"); + mouseHandler.selectByWords = this.extendSelectionBy.bind(mouseHandler, "getWordRange"); +} + +(function() { + + this.onMouseDown = function(ev) { + var inSelection = ev.inSelection(); + var pos = ev.getDocumentPosition(); + this.mousedownEvent = ev; + var editor = this.editor; + + var button = ev.getButton(); + if (button !== 0) { + var selectionRange = editor.getSelectionRange(); + var selectionEmpty = selectionRange.isEmpty(); + if (selectionEmpty || button == 1) + editor.selection.moveToPosition(pos); + if (button == 2) { + editor.textInput.onContextMenu(ev.domEvent); + if (!useragent.isMozilla) + ev.preventDefault(); + } + return; + } + + this.mousedownEvent.time = Date.now(); + if (inSelection && !editor.isFocused()) { + editor.focus(); + if (this.$focusTimeout && !this.$clickSelection && !editor.inMultiSelectMode) { + this.setState("focusWait"); + this.captureMouse(ev); + return; + } + } + + this.captureMouse(ev); + this.startSelect(pos, ev.domEvent._clicks > 1); + return ev.preventDefault(); + }; + + this.startSelect = function(pos, waitForClickSelection) { + pos = pos || this.editor.renderer.screenToTextCoordinates(this.x, this.y); + var editor = this.editor; + if (!this.mousedownEvent) return; + if (this.mousedownEvent.getShiftKey()) + editor.selection.selectToPosition(pos); + else if (!waitForClickSelection) + editor.selection.moveToPosition(pos); + if (!waitForClickSelection) + this.select(); + if (editor.renderer.scroller.setCapture) { + editor.renderer.scroller.setCapture(); + } + editor.setStyle("ace_selecting"); + this.setState("select"); + }; + + this.select = function() { + var anchor, editor = this.editor; + var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y); + if (this.$clickSelection) { + var cmp = this.$clickSelection.comparePoint(cursor); + + if (cmp == -1) { + anchor = this.$clickSelection.end; + } else if (cmp == 1) { + anchor = this.$clickSelection.start; + } else { + var orientedRange = calcRangeOrientation(this.$clickSelection, cursor); + cursor = orientedRange.cursor; + anchor = orientedRange.anchor; + } + editor.selection.setSelectionAnchor(anchor.row, anchor.column); + } + editor.selection.selectToPosition(cursor); + editor.renderer.scrollCursorIntoView(); + }; + + this.extendSelectionBy = function(unitName) { + var anchor, editor = this.editor; + var cursor = editor.renderer.screenToTextCoordinates(this.x, this.y); + var range = editor.selection[unitName](cursor.row, cursor.column); + if (this.$clickSelection) { + var cmpStart = this.$clickSelection.comparePoint(range.start); + var cmpEnd = this.$clickSelection.comparePoint(range.end); + + if (cmpStart == -1 && cmpEnd <= 0) { + anchor = this.$clickSelection.end; + if (range.end.row != cursor.row || range.end.column != cursor.column) + cursor = range.start; + } else if (cmpEnd == 1 && cmpStart >= 0) { + anchor = this.$clickSelection.start; + if (range.start.row != cursor.row || range.start.column != cursor.column) + cursor = range.end; + } else if (cmpStart == -1 && cmpEnd == 1) { + cursor = range.end; + anchor = range.start; + } else { + var orientedRange = calcRangeOrientation(this.$clickSelection, cursor); + cursor = orientedRange.cursor; + anchor = orientedRange.anchor; + } + editor.selection.setSelectionAnchor(anchor.row, anchor.column); + } + editor.selection.selectToPosition(cursor); + editor.renderer.scrollCursorIntoView(); + }; + + this.selectEnd = + this.selectAllEnd = + this.selectByWordsEnd = + this.selectByLinesEnd = function() { + this.$clickSelection = null; + this.editor.unsetStyle("ace_selecting"); + if (this.editor.renderer.scroller.releaseCapture) { + this.editor.renderer.scroller.releaseCapture(); + } + }; + + this.focusWait = function() { + var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y); + var time = Date.now(); + + if (distance > DRAG_OFFSET || time - this.mousedownEvent.time > this.$focusTimeout) + this.startSelect(this.mousedownEvent.getDocumentPosition()); + }; + + this.onDoubleClick = function(ev) { + var pos = ev.getDocumentPosition(); + var editor = this.editor; + var session = editor.session; + + var range = session.getBracketRange(pos); + if (range) { + if (range.isEmpty()) { + range.start.column--; + range.end.column++; + } + this.setState("select"); + } else { + range = editor.selection.getWordRange(pos.row, pos.column); + this.setState("selectByWords"); + } + this.$clickSelection = range; + this.select(); + }; + + this.onTripleClick = function(ev) { + var pos = ev.getDocumentPosition(); + var editor = this.editor; + + this.setState("selectByLines"); + var range = editor.getSelectionRange(); + if (range.isMultiLine() && range.contains(pos.row, pos.column)) { + this.$clickSelection = editor.selection.getLineRange(range.start.row); + this.$clickSelection.end = editor.selection.getLineRange(range.end.row).end; + } else { + this.$clickSelection = editor.selection.getLineRange(pos.row); + } + this.select(); + }; + + this.onQuadClick = function(ev) { + var editor = this.editor; + + editor.selectAll(); + this.$clickSelection = editor.getSelectionRange(); + this.setState("selectAll"); + }; + + this.onMouseWheel = function(ev) { + if (ev.getAccelKey()) + return; + if (ev.getShiftKey() && ev.wheelY && !ev.wheelX) { + ev.wheelX = ev.wheelY; + ev.wheelY = 0; + } + + var editor = this.editor; + + if (!this.$lastScroll) + this.$lastScroll = { t: 0, vx: 0, vy: 0, allowed: 0 }; + + var prevScroll = this.$lastScroll; + var t = ev.domEvent.timeStamp; + var dt = t - prevScroll.t; + var vx = dt ? ev.wheelX / dt : prevScroll.vx; + var vy = dt ? ev.wheelY / dt : prevScroll.vy; + if (dt < SCROLL_COOLDOWN_T) { + vx = (vx + prevScroll.vx) / 2; + vy = (vy + prevScroll.vy) / 2; + } + + var direction = Math.abs(vx / vy); + + var canScroll = false; + if (direction >= 1 && editor.renderer.isScrollableBy(ev.wheelX * ev.speed, 0)) + canScroll = true; + if (direction <= 1 && editor.renderer.isScrollableBy(0, ev.wheelY * ev.speed)) + canScroll = true; + + if (canScroll) { + prevScroll.allowed = t; + } else if (t - prevScroll.allowed < SCROLL_COOLDOWN_T) { + var isSlower = Math.abs(vx) <= 1.5 * Math.abs(prevScroll.vx) + && Math.abs(vy) <= 1.5 * Math.abs(prevScroll.vy); + if (isSlower) { + canScroll = true; + prevScroll.allowed = t; + } + else { + prevScroll.allowed = 0; + } + } + + prevScroll.t = t; + prevScroll.vx = vx; + prevScroll.vy = vy; + + if (canScroll) { + editor.renderer.scrollBy(ev.wheelX * ev.speed, ev.wheelY * ev.speed); + return ev.stop(); + } + }; + + this.onTouchMove = function(ev) { + this.editor._emit("mousewheel", ev); + }; + +}).call(DefaultHandlers.prototype); + +exports.DefaultHandlers = DefaultHandlers; + +function calcDistance(ax, ay, bx, by) { + return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2)); +} + +function calcRangeOrientation(range, cursor) { + if (range.start.row == range.end.row) + var cmp = 2 * cursor.column - range.start.column - range.end.column; + else if (range.start.row == range.end.row - 1 && !range.start.column && !range.end.column) + var cmp = cursor.column - 4; + else + var cmp = 2 * cursor.row - range.start.row - range.end.row; + + if (cmp < 0) + return {cursor: range.start, anchor: range.end}; + else + return {cursor: range.end, anchor: range.start}; +} + +}); + +define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"], function(require, exports, module) { +"use strict"; + +var oop = require("./lib/oop"); +var dom = require("./lib/dom"); +function Tooltip (parentNode) { + this.isOpen = false; + this.$element = null; + this.$parentNode = parentNode; +} + +(function() { + this.$init = function() { + this.$element = dom.createElement("div"); + this.$element.className = "ace_tooltip"; + this.$element.style.display = "none"; + this.$parentNode.appendChild(this.$element); + return this.$element; + }; + this.getElement = function() { + return this.$element || this.$init(); + }; + this.setText = function(text) { + this.getElement().textContent = text; + }; + this.setHtml = function(html) { + this.getElement().innerHTML = html; + }; + this.setPosition = function(x, y) { + this.getElement().style.left = x + "px"; + this.getElement().style.top = y + "px"; + }; + this.setClassName = function(className) { + dom.addCssClass(this.getElement(), className); + }; + this.show = function(text, x, y) { + if (text != null) + this.setText(text); + if (x != null && y != null) + this.setPosition(x, y); + if (!this.isOpen) { + this.getElement().style.display = "block"; + this.isOpen = true; + } + }; + + this.hide = function() { + if (this.isOpen) { + this.getElement().style.display = "none"; + this.isOpen = false; + } + }; + this.getHeight = function() { + return this.getElement().offsetHeight; + }; + this.getWidth = function() { + return this.getElement().offsetWidth; + }; + + this.destroy = function() { + this.isOpen = false; + if (this.$element && this.$element.parentNode) { + this.$element.parentNode.removeChild(this.$element); + } + }; + +}).call(Tooltip.prototype); + +exports.Tooltip = Tooltip; +}); + +define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"], function(require, exports, module) { +"use strict"; +var dom = require("../lib/dom"); +var oop = require("../lib/oop"); +var event = require("../lib/event"); +var Tooltip = require("../tooltip").Tooltip; + +function GutterHandler(mouseHandler) { + var editor = mouseHandler.editor; + var gutter = editor.renderer.$gutterLayer; + var tooltip = new GutterTooltip(editor.container); + + mouseHandler.editor.setDefaultHandler("guttermousedown", function(e) { + if (!editor.isFocused() || e.getButton() != 0) + return; + var gutterRegion = gutter.getRegion(e); + + if (gutterRegion == "foldWidgets") + return; + + var row = e.getDocumentPosition().row; + var selection = editor.session.selection; + + if (e.getShiftKey()) + selection.selectTo(row, 0); + else { + if (e.domEvent.detail == 2) { + editor.selectAll(); + return e.preventDefault(); + } + mouseHandler.$clickSelection = editor.selection.getLineRange(row); + } + mouseHandler.setState("selectByLines"); + mouseHandler.captureMouse(e); + return e.preventDefault(); + }); + + + var tooltipTimeout, mouseEvent, tooltipAnnotation; + + function showTooltip() { + var row = mouseEvent.getDocumentPosition().row; + var annotation = gutter.$annotations[row]; + if (!annotation) + return hideTooltip(); + + var maxRow = editor.session.getLength(); + if (row == maxRow) { + var screenRow = editor.renderer.pixelToScreenCoordinates(0, mouseEvent.y).row; + var pos = mouseEvent.$pos; + if (screenRow > editor.session.documentToScreenRow(pos.row, pos.column)) + return hideTooltip(); + } + + if (tooltipAnnotation == annotation) + return; + tooltipAnnotation = annotation.text.join("
"); + + tooltip.setHtml(tooltipAnnotation); + tooltip.show(); + editor._signal("showGutterTooltip", tooltip); + editor.on("mousewheel", hideTooltip); + + if (mouseHandler.$tooltipFollowsMouse) { + moveTooltip(mouseEvent); + } else { + var gutterElement = mouseEvent.domEvent.target; + var rect = gutterElement.getBoundingClientRect(); + var style = tooltip.getElement().style; + style.left = rect.right + "px"; + style.top = rect.bottom + "px"; + } + } + + function hideTooltip() { + if (tooltipTimeout) + tooltipTimeout = clearTimeout(tooltipTimeout); + if (tooltipAnnotation) { + tooltip.hide(); + tooltipAnnotation = null; + editor._signal("hideGutterTooltip", tooltip); + editor.removeEventListener("mousewheel", hideTooltip); + } + } + + function moveTooltip(e) { + tooltip.setPosition(e.x, e.y); + } + + mouseHandler.editor.setDefaultHandler("guttermousemove", function(e) { + var target = e.domEvent.target || e.domEvent.srcElement; + if (dom.hasCssClass(target, "ace_fold-widget")) + return hideTooltip(); + + if (tooltipAnnotation && mouseHandler.$tooltipFollowsMouse) + moveTooltip(e); + + mouseEvent = e; + if (tooltipTimeout) + return; + tooltipTimeout = setTimeout(function() { + tooltipTimeout = null; + if (mouseEvent && !mouseHandler.isMousePressed) + showTooltip(); + else + hideTooltip(); + }, 50); + }); + + event.addListener(editor.renderer.$gutter, "mouseout", function(e) { + mouseEvent = null; + if (!tooltipAnnotation || tooltipTimeout) + return; + + tooltipTimeout = setTimeout(function() { + tooltipTimeout = null; + hideTooltip(); + }, 50); + }); + + editor.on("changeSession", hideTooltip); +} + +function GutterTooltip(parentNode) { + Tooltip.call(this, parentNode); +} + +oop.inherits(GutterTooltip, Tooltip); + +(function(){ + this.setPosition = function(x, y) { + var windowWidth = window.innerWidth || document.documentElement.clientWidth; + var windowHeight = window.innerHeight || document.documentElement.clientHeight; + var width = this.getWidth(); + var height = this.getHeight(); + x += 15; + y += 15; + if (x + width > windowWidth) { + x -= (x + width) - windowWidth; + } + if (y + height > windowHeight) { + y -= 20 + height; + } + Tooltip.prototype.setPosition.call(this, x, y); + }; + +}).call(GutterTooltip.prototype); + + + +exports.GutterHandler = GutterHandler; + +}); + +define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"], function(require, exports, module) { +"use strict"; + +var event = require("../lib/event"); +var useragent = require("../lib/useragent"); +var MouseEvent = exports.MouseEvent = function(domEvent, editor) { + this.domEvent = domEvent; + this.editor = editor; + + this.x = this.clientX = domEvent.clientX; + this.y = this.clientY = domEvent.clientY; + + this.$pos = null; + this.$inSelection = null; + + this.propagationStopped = false; + this.defaultPrevented = false; +}; + +(function() { + + this.stopPropagation = function() { + event.stopPropagation(this.domEvent); + this.propagationStopped = true; + }; + + this.preventDefault = function() { + event.preventDefault(this.domEvent); + this.defaultPrevented = true; + }; + + this.stop = function() { + this.stopPropagation(); + this.preventDefault(); + }; + this.getDocumentPosition = function() { + if (this.$pos) + return this.$pos; + + this.$pos = this.editor.renderer.screenToTextCoordinates(this.clientX, this.clientY); + return this.$pos; + }; + this.inSelection = function() { + if (this.$inSelection !== null) + return this.$inSelection; + + var editor = this.editor; + + + var selectionRange = editor.getSelectionRange(); + if (selectionRange.isEmpty()) + this.$inSelection = false; + else { + var pos = this.getDocumentPosition(); + this.$inSelection = selectionRange.contains(pos.row, pos.column); + } + + return this.$inSelection; + }; + this.getButton = function() { + return event.getButton(this.domEvent); + }; + this.getShiftKey = function() { + return this.domEvent.shiftKey; + }; + + this.getAccelKey = useragent.isMac + ? function() { return this.domEvent.metaKey; } + : function() { return this.domEvent.ctrlKey; }; + +}).call(MouseEvent.prototype); + +}); + +define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"], function(require, exports, module) { +"use strict"; + +var dom = require("../lib/dom"); +var event = require("../lib/event"); +var useragent = require("../lib/useragent"); + +var AUTOSCROLL_DELAY = 200; +var SCROLL_CURSOR_DELAY = 200; +var SCROLL_CURSOR_HYSTERESIS = 5; + +function DragdropHandler(mouseHandler) { + + var editor = mouseHandler.editor; + + var blankImage = dom.createElement("img"); + blankImage.src = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="; + if (useragent.isOpera) + blankImage.style.cssText = "width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;"; + + var exports = ["dragWait", "dragWaitEnd", "startDrag", "dragReadyEnd", "onMouseDrag"]; + + exports.forEach(function(x) { + mouseHandler[x] = this[x]; + }, this); + editor.addEventListener("mousedown", this.onMouseDown.bind(mouseHandler)); + + + var mouseTarget = editor.container; + var dragSelectionMarker, x, y; + var timerId, range; + var dragCursor, counter = 0; + var dragOperation; + var isInternal; + var autoScrollStartTime; + var cursorMovedTime; + var cursorPointOnCaretMoved; + + this.onDragStart = function(e) { + if (this.cancelDrag || !mouseTarget.draggable) { + var self = this; + setTimeout(function(){ + self.startSelect(); + self.captureMouse(e); + }, 0); + return e.preventDefault(); + } + range = editor.getSelectionRange(); + + var dataTransfer = e.dataTransfer; + dataTransfer.effectAllowed = editor.getReadOnly() ? "copy" : "copyMove"; + if (useragent.isOpera) { + editor.container.appendChild(blankImage); + blankImage.scrollTop = 0; + } + dataTransfer.setDragImage && dataTransfer.setDragImage(blankImage, 0, 0); + if (useragent.isOpera) { + editor.container.removeChild(blankImage); + } + dataTransfer.clearData(); + dataTransfer.setData("Text", editor.session.getTextRange()); + + isInternal = true; + this.setState("drag"); + }; + + this.onDragEnd = function(e) { + mouseTarget.draggable = false; + isInternal = false; + this.setState(null); + if (!editor.getReadOnly()) { + var dropEffect = e.dataTransfer.dropEffect; + if (!dragOperation && dropEffect == "move") + editor.session.remove(editor.getSelectionRange()); + editor.renderer.$cursorLayer.setBlinking(true); + } + this.editor.unsetStyle("ace_dragging"); + this.editor.renderer.setCursorStyle(""); + }; + + this.onDragEnter = function(e) { + if (editor.getReadOnly() || !canAccept(e.dataTransfer)) + return; + x = e.clientX; + y = e.clientY; + if (!dragSelectionMarker) + addDragMarker(); + counter++; + e.dataTransfer.dropEffect = dragOperation = getDropEffect(e); + return event.preventDefault(e); + }; + + this.onDragOver = function(e) { + if (editor.getReadOnly() || !canAccept(e.dataTransfer)) + return; + x = e.clientX; + y = e.clientY; + if (!dragSelectionMarker) { + addDragMarker(); + counter++; + } + if (onMouseMoveTimer !== null) + onMouseMoveTimer = null; + + e.dataTransfer.dropEffect = dragOperation = getDropEffect(e); + return event.preventDefault(e); + }; + + this.onDragLeave = function(e) { + counter--; + if (counter <= 0 && dragSelectionMarker) { + clearDragMarker(); + dragOperation = null; + return event.preventDefault(e); + } + }; + + this.onDrop = function(e) { + if (!dragCursor) + return; + var dataTransfer = e.dataTransfer; + if (isInternal) { + switch (dragOperation) { + case "move": + if (range.contains(dragCursor.row, dragCursor.column)) { + range = { + start: dragCursor, + end: dragCursor + }; + } else { + range = editor.moveText(range, dragCursor); + } + break; + case "copy": + range = editor.moveText(range, dragCursor, true); + break; + } + } else { + var dropData = dataTransfer.getData('Text'); + range = { + start: dragCursor, + end: editor.session.insert(dragCursor, dropData) + }; + editor.focus(); + dragOperation = null; + } + clearDragMarker(); + return event.preventDefault(e); + }; + + event.addListener(mouseTarget, "dragstart", this.onDragStart.bind(mouseHandler)); + event.addListener(mouseTarget, "dragend", this.onDragEnd.bind(mouseHandler)); + event.addListener(mouseTarget, "dragenter", this.onDragEnter.bind(mouseHandler)); + event.addListener(mouseTarget, "dragover", this.onDragOver.bind(mouseHandler)); + event.addListener(mouseTarget, "dragleave", this.onDragLeave.bind(mouseHandler)); + event.addListener(mouseTarget, "drop", this.onDrop.bind(mouseHandler)); + + function scrollCursorIntoView(cursor, prevCursor) { + var now = Date.now(); + var vMovement = !prevCursor || cursor.row != prevCursor.row; + var hMovement = !prevCursor || cursor.column != prevCursor.column; + if (!cursorMovedTime || vMovement || hMovement) { + editor.moveCursorToPosition(cursor); + cursorMovedTime = now; + cursorPointOnCaretMoved = {x: x, y: y}; + } else { + var distance = calcDistance(cursorPointOnCaretMoved.x, cursorPointOnCaretMoved.y, x, y); + if (distance > SCROLL_CURSOR_HYSTERESIS) { + cursorMovedTime = null; + } else if (now - cursorMovedTime >= SCROLL_CURSOR_DELAY) { + editor.renderer.scrollCursorIntoView(); + cursorMovedTime = null; + } + } + } + + function autoScroll(cursor, prevCursor) { + var now = Date.now(); + var lineHeight = editor.renderer.layerConfig.lineHeight; + var characterWidth = editor.renderer.layerConfig.characterWidth; + var editorRect = editor.renderer.scroller.getBoundingClientRect(); + var offsets = { + x: { + left: x - editorRect.left, + right: editorRect.right - x + }, + y: { + top: y - editorRect.top, + bottom: editorRect.bottom - y + } + }; + var nearestXOffset = Math.min(offsets.x.left, offsets.x.right); + var nearestYOffset = Math.min(offsets.y.top, offsets.y.bottom); + var scrollCursor = {row: cursor.row, column: cursor.column}; + if (nearestXOffset / characterWidth <= 2) { + scrollCursor.column += (offsets.x.left < offsets.x.right ? -3 : +2); + } + if (nearestYOffset / lineHeight <= 1) { + scrollCursor.row += (offsets.y.top < offsets.y.bottom ? -1 : +1); + } + var vScroll = cursor.row != scrollCursor.row; + var hScroll = cursor.column != scrollCursor.column; + var vMovement = !prevCursor || cursor.row != prevCursor.row; + if (vScroll || (hScroll && !vMovement)) { + if (!autoScrollStartTime) + autoScrollStartTime = now; + else if (now - autoScrollStartTime >= AUTOSCROLL_DELAY) + editor.renderer.scrollCursorIntoView(scrollCursor); + } else { + autoScrollStartTime = null; + } + } + + function onDragInterval() { + var prevCursor = dragCursor; + dragCursor = editor.renderer.screenToTextCoordinates(x, y); + scrollCursorIntoView(dragCursor, prevCursor); + autoScroll(dragCursor, prevCursor); + } + + function addDragMarker() { + range = editor.selection.toOrientedRange(); + dragSelectionMarker = editor.session.addMarker(range, "ace_selection", editor.getSelectionStyle()); + editor.clearSelection(); + if (editor.isFocused()) + editor.renderer.$cursorLayer.setBlinking(false); + clearInterval(timerId); + onDragInterval(); + timerId = setInterval(onDragInterval, 20); + counter = 0; + event.addListener(document, "mousemove", onMouseMove); + } + + function clearDragMarker() { + clearInterval(timerId); + editor.session.removeMarker(dragSelectionMarker); + dragSelectionMarker = null; + editor.selection.fromOrientedRange(range); + if (editor.isFocused() && !isInternal) + editor.renderer.$cursorLayer.setBlinking(!editor.getReadOnly()); + range = null; + dragCursor = null; + counter = 0; + autoScrollStartTime = null; + cursorMovedTime = null; + event.removeListener(document, "mousemove", onMouseMove); + } + var onMouseMoveTimer = null; + function onMouseMove() { + if (onMouseMoveTimer == null) { + onMouseMoveTimer = setTimeout(function() { + if (onMouseMoveTimer != null && dragSelectionMarker) + clearDragMarker(); + }, 20); + } + } + + function canAccept(dataTransfer) { + var types = dataTransfer.types; + return !types || Array.prototype.some.call(types, function(type) { + return type == 'text/plain' || type == 'Text'; + }); + } + + function getDropEffect(e) { + var copyAllowed = ['copy', 'copymove', 'all', 'uninitialized']; + var moveAllowed = ['move', 'copymove', 'linkmove', 'all', 'uninitialized']; + + var copyModifierState = useragent.isMac ? e.altKey : e.ctrlKey; + var effectAllowed = "uninitialized"; + try { + effectAllowed = e.dataTransfer.effectAllowed.toLowerCase(); + } catch (e) {} + var dropEffect = "none"; + + if (copyModifierState && copyAllowed.indexOf(effectAllowed) >= 0) + dropEffect = "copy"; + else if (moveAllowed.indexOf(effectAllowed) >= 0) + dropEffect = "move"; + else if (copyAllowed.indexOf(effectAllowed) >= 0) + dropEffect = "copy"; + + return dropEffect; + } +} + +(function() { + + this.dragWait = function() { + var interval = Date.now() - this.mousedownEvent.time; + if (interval > this.editor.getDragDelay()) + this.startDrag(); + }; + + this.dragWaitEnd = function() { + var target = this.editor.container; + target.draggable = false; + this.startSelect(this.mousedownEvent.getDocumentPosition()); + this.selectEnd(); + }; + + this.dragReadyEnd = function(e) { + this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()); + this.editor.unsetStyle("ace_dragging"); + this.editor.renderer.setCursorStyle(""); + this.dragWaitEnd(); + }; + + this.startDrag = function(){ + this.cancelDrag = false; + var editor = this.editor; + var target = editor.container; + target.draggable = true; + editor.renderer.$cursorLayer.setBlinking(false); + editor.setStyle("ace_dragging"); + var cursorStyle = useragent.isWin ? "default" : "move"; + editor.renderer.setCursorStyle(cursorStyle); + this.setState("dragReady"); + }; + + this.onMouseDrag = function(e) { + var target = this.editor.container; + if (useragent.isIE && this.state == "dragReady") { + var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y); + if (distance > 3) + target.dragDrop(); + } + if (this.state === "dragWait") { + var distance = calcDistance(this.mousedownEvent.x, this.mousedownEvent.y, this.x, this.y); + if (distance > 0) { + target.draggable = false; + this.startSelect(this.mousedownEvent.getDocumentPosition()); + } + } + }; + + this.onMouseDown = function(e) { + if (!this.$dragEnabled) + return; + this.mousedownEvent = e; + var editor = this.editor; + + var inSelection = e.inSelection(); + var button = e.getButton(); + var clickCount = e.domEvent.detail || 1; + if (clickCount === 1 && button === 0 && inSelection) { + if (e.editor.inMultiSelectMode && (e.getAccelKey() || e.getShiftKey())) + return; + this.mousedownEvent.time = Date.now(); + var eventTarget = e.domEvent.target || e.domEvent.srcElement; + if ("unselectable" in eventTarget) + eventTarget.unselectable = "on"; + if (editor.getDragDelay()) { + if (useragent.isWebKit) { + this.cancelDrag = true; + var mouseTarget = editor.container; + mouseTarget.draggable = true; + } + this.setState("dragWait"); + } else { + this.startDrag(); + } + this.captureMouse(e, this.onMouseDrag.bind(this)); + e.defaultPrevented = true; + } + }; + +}).call(DragdropHandler.prototype); + + +function calcDistance(ax, ay, bx, by) { + return Math.sqrt(Math.pow(bx - ax, 2) + Math.pow(by - ay, 2)); +} + +exports.DragdropHandler = DragdropHandler; + +}); + +define("ace/lib/net",["require","exports","module","ace/lib/dom"], function(require, exports, module) { +"use strict"; +var dom = require("./dom"); + +exports.get = function (url, callback) { + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, true); + xhr.onreadystatechange = function () { + if (xhr.readyState === 4) { + callback(xhr.responseText); + } + }; + xhr.send(null); +}; + +exports.loadScript = function(path, callback) { + var head = dom.getDocumentHead(); + var s = document.createElement('script'); + + s.src = path; + head.appendChild(s); + + s.onload = s.onreadystatechange = function(_, isAbort) { + if (isAbort || !s.readyState || s.readyState == "loaded" || s.readyState == "complete") { + s = s.onload = s.onreadystatechange = null; + if (!isAbort) + callback(); + } + }; +}; +exports.qualifyURL = function(url) { + var a = document.createElement('a'); + a.href = url; + return a.href; +}; + +}); + +define("ace/lib/event_emitter",["require","exports","module"], function(require, exports, module) { +"use strict"; + +var EventEmitter = {}; +var stopPropagation = function() { this.propagationStopped = true; }; +var preventDefault = function() { this.defaultPrevented = true; }; + +EventEmitter._emit = +EventEmitter._dispatchEvent = function(eventName, e) { + this._eventRegistry || (this._eventRegistry = {}); + this._defaultHandlers || (this._defaultHandlers = {}); + + var listeners = this._eventRegistry[eventName] || []; + var defaultHandler = this._defaultHandlers[eventName]; + if (!listeners.length && !defaultHandler) + return; + + if (typeof e != "object" || !e) + e = {}; + + if (!e.type) + e.type = eventName; + if (!e.stopPropagation) + e.stopPropagation = stopPropagation; + if (!e.preventDefault) + e.preventDefault = preventDefault; + + listeners = listeners.slice(); + for (var i=0; i 1) + base = parts[parts.length - 2]; + var path = options[component + "Path"]; + if (path == null) { + path = options.basePath; + } else if (sep == "/") { + component = sep = ""; + } + if (path && path.slice(-1) != "/") + path += "/"; + return path + component + sep + base + this.get("suffix"); +}; + +exports.setModuleUrl = function(name, subst) { + return options.$moduleUrls[name] = subst; +}; + +exports.$loading = {}; +exports.loadModule = function(moduleName, onLoad) { + var module, moduleType; + if (Array.isArray(moduleName)) { + moduleType = moduleName[0]; + moduleName = moduleName[1]; + } + + try { + module = require(moduleName); + } catch (e) {} + if (module && !exports.$loading[moduleName]) + return onLoad && onLoad(module); + + if (!exports.$loading[moduleName]) + exports.$loading[moduleName] = []; + + exports.$loading[moduleName].push(onLoad); + + if (exports.$loading[moduleName].length > 1) + return; + + var afterLoad = function() { + require([moduleName], function(module) { + exports._emit("load.module", {name: moduleName, module: module}); + var listeners = exports.$loading[moduleName]; + exports.$loading[moduleName] = null; + listeners.forEach(function(onLoad) { + onLoad && onLoad(module); + }); + }); + }; + + if (!exports.get("packaged")) + return afterLoad(); + + net.loadScript(exports.moduleUrl(moduleName, moduleType), afterLoad); + reportErrorIfPathIsNotConfigured(); +}; + +var reportErrorIfPathIsNotConfigured = function() { + if ( + !options.basePath && !options.workerPath + && !options.modePath && !options.themePath + && !Object.keys(options.$moduleUrls).length + ) { + console.error( + "Unable to infer path to ace from script src,", + "use ace.config.set('basePath', 'path') to enable dynamic loading of modes and themes", + "or with webpack use ace/webpack-resolver" + ); + reportErrorIfPathIsNotConfigured = function() {}; + } +}; +init(true);function init(packaged) { + + if (!global || !global.document) + return; + + options.packaged = packaged || require.packaged || module.packaged || (global.define && define.packaged); + + var scriptOptions = {}; + var scriptUrl = ""; + var currentScript = (document.currentScript || document._currentScript ); // native or polyfill + var currentDocument = currentScript && currentScript.ownerDocument || document; + + var scripts = currentDocument.getElementsByTagName("script"); + for (var i=0; i 0){ + if (action == 0x10){ + for(i = condPos; i < ix; i++){ + levels[i] = 1; + } + condPos = -1; + } else { + condPos = -1; + } + } + cond = impTab[newState][6]; + if (cond){ + if(condPos == -1){ + condPos = ix; + } + }else{ + if (condPos > -1){ + for(i = condPos; i < ix; i++){ + levels[i] = newLevel; + } + condPos = -1; + } + } + if (charTypes[ix] == B){ + levels[ix] = 0; + } + hiLevel |= newLevel; + } + if (hasUBAT_S){ + for(i = 0; i < len; i++){ + if(charTypes[i] == S){ + levels[i] = dir; + for(var j = i - 1; j >= 0; j--){ + if(charTypes[j] == WS){ + levels[j] = dir; + }else{ + break; + } + } + } + } + } +} + +function _invertLevel(lev, levels, _array) { + if (hiLevel < lev){ + return; + } + if (lev == 1 && dir == RTL && !hasUBAT_B){ + _array.reverse(); + return; + } + var len = _array.length, start = 0, end, lo, hi, tmp; + while(start < len){ + if (levels[start] >= lev){ + end = start + 1; + while(end < len && levels[end] >= lev){ + end++; + } + for(lo = start, hi = end - 1 ; lo < hi; lo++, hi--){ + tmp = _array[lo]; + _array[lo] = _array[hi]; + _array[hi] = tmp; + } + start = end; + } + start++; + } +} + +function _getCharClass(chars, types, classes, ix) { + var cType = types[ix], wType, nType, len, i; + switch(cType){ + case L: + case R: + lastArabic = false; + case ON: + case AN: + return cType; + case EN: + return lastArabic ? AN : EN; + case AL: + lastArabic = true; + hasUBAT_AL = true; + return R; + case WS: + return ON; + case CS: + if (ix < 1 || (ix + 1) >= types.length || + ((wType = classes[ix - 1]) != EN && wType != AN) || + ((nType = types[ix + 1]) != EN && nType != AN)){ + return ON; + } + if (lastArabic){nType = AN;} + return nType == wType ? nType : ON; + case ES: + wType = ix > 0 ? classes[ix - 1] : B; + if (wType == EN && (ix + 1) < types.length && types[ix + 1] == EN){ + return EN; + } + return ON; + case ET: + if (ix > 0 && classes[ix - 1] == EN){ + return EN; + } + if (lastArabic){ + return ON; + } + i = ix + 1; + len = types.length; + while (i < len && types[i] == ET){ + i++; + } + if (i < len && types[i] == EN){ + return EN; + } + return ON; + case NSM: + len = types.length; + i = ix + 1; + while (i < len && types[i] == NSM){ + i++; + } + if (i < len){ + var c = chars[ix], rtlCandidate = (c >= 0x0591 && c <= 0x08FF) || c == 0xFB1E; + + wType = types[i]; + if (rtlCandidate && (wType == R || wType == AL)){ + return R; + } + } + + if (ix < 1 || (wType = types[ix - 1]) == B){ + return ON; + } + return classes[ix - 1]; + case B: + lastArabic = false; + hasUBAT_B = true; + return dir; + case S: + hasUBAT_S = true; + return ON; + case LRE: + case RLE: + case LRO: + case RLO: + case PDF: + lastArabic = false; + case BN: + return ON; + } +} + +function _getCharacterType( ch ) { + var uc = ch.charCodeAt(0), hi = uc >> 8; + + if (hi == 0) { + return ((uc > 0x00BF) ? L : UnicodeTBL00[uc]); + } else if (hi == 5) { + return (/[\u0591-\u05f4]/.test(ch) ? R : L); + } else if (hi == 6) { + if (/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(ch)) + return NSM; + else if (/[\u0660-\u0669\u066b-\u066c]/.test(ch)) + return AN; + else if (uc == 0x066A) + return ET; + else if (/[\u06f0-\u06f9]/.test(ch)) + return EN; + else + return AL; + } else if (hi == 0x20 && uc <= 0x205F) { + return UnicodeTBL20[uc & 0xFF]; + } else if (hi == 0xFE) { + return (uc >= 0xFE70 ? AL : ON); + } + return ON; +} + +function _isArabicDiacritics( ch ) { + return (ch >= '\u064b' && ch <= '\u0655'); +} +exports.L = L; +exports.R = R; +exports.EN = EN; +exports.ON_R = 3; +exports.AN = 4; +exports.R_H = 5; +exports.B = 6; +exports.RLE = 7; + +exports.DOT = "\xB7"; +exports.doBidiReorder = function(text, textCharTypes, isRtl) { + if (text.length < 2) + return {}; + + var chars = text.split(""), logicalFromVisual = new Array(chars.length), + bidiLevels = new Array(chars.length), levels = []; + + dir = isRtl ? RTL : LTR; + + _computeLevels(chars, levels, chars.length, textCharTypes); + + for (var i = 0; i < logicalFromVisual.length; logicalFromVisual[i] = i, i++); + + _invertLevel(2, levels, logicalFromVisual); + _invertLevel(1, levels, logicalFromVisual); + + for (var i = 0; i < logicalFromVisual.length - 1; i++) { //fix levels to reflect character width + if (textCharTypes[i] === AN) { + levels[i] = exports.AN; + } else if (levels[i] === R && ((textCharTypes[i] > AL && textCharTypes[i] < LRE) + || textCharTypes[i] === ON || textCharTypes[i] === BN)) { + levels[i] = exports.ON_R; + } else if ((i > 0 && chars[i - 1] === '\u0644') && /\u0622|\u0623|\u0625|\u0627/.test(chars[i])) { + levels[i - 1] = levels[i] = exports.R_H; + i++; + } + } + if (chars[chars.length - 1] === exports.DOT) + levels[chars.length - 1] = exports.B; + + if (chars[0] === '\u202B') + levels[0] = exports.RLE; + + for (var i = 0; i < logicalFromVisual.length; i++) { + bidiLevels[i] = levels[logicalFromVisual[i]]; + } + + return {'logicalFromVisual': logicalFromVisual, 'bidiLevels': bidiLevels}; +}; +exports.hasBidiCharacters = function(text, textCharTypes){ + var ret = false; + for (var i = 0; i < text.length; i++){ + textCharTypes[i] = _getCharacterType(text.charAt(i)); + if (!ret && (textCharTypes[i] == R || textCharTypes[i] == AL || textCharTypes[i] == AN)) + ret = true; + } + return ret; +}; +exports.getVisualFromLogicalIdx = function(logIdx, rowMap) { + for (var i = 0; i < rowMap.logicalFromVisual.length; i++) { + if (rowMap.logicalFromVisual[i] == logIdx) + return i; + } + return 0; +}; + +}); + +define("ace/bidihandler",["require","exports","module","ace/lib/bidiutil","ace/lib/lang"], function(require, exports, module) { +"use strict"; + +var bidiUtil = require("./lib/bidiutil"); +var lang = require("./lib/lang"); +var bidiRE = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac\u202B]/; +var BidiHandler = function(session) { + this.session = session; + this.bidiMap = {}; + this.currentRow = null; + this.bidiUtil = bidiUtil; + this.charWidths = []; + this.EOL = "\xAC"; + this.showInvisibles = true; + this.isRtlDir = false; + this.$isRtl = false; + this.line = ""; + this.wrapIndent = 0; + this.EOF = "\xB6"; + this.RLE = "\u202B"; + this.contentWidth = 0; + this.fontMetrics = null; + this.rtlLineOffset = 0; + this.wrapOffset = 0; + this.isMoveLeftOperation = false; + this.seenBidi = bidiRE.test(session.getValue()); +}; + +(function() { + this.isBidiRow = function(screenRow, docRow, splitIndex) { + if (!this.seenBidi) + return false; + if (screenRow !== this.currentRow) { + this.currentRow = screenRow; + this.updateRowLine(docRow, splitIndex); + this.updateBidiMap(); + } + return this.bidiMap.bidiLevels; + }; + + this.onChange = function(delta) { + if (!this.seenBidi) { + if (delta.action == "insert" && bidiRE.test(delta.lines.join("\n"))) { + this.seenBidi = true; + this.currentRow = null; + } + } + else { + this.currentRow = null; + } + }; + + this.getDocumentRow = function() { + var docRow = 0; + var rowCache = this.session.$screenRowCache; + if (rowCache.length) { + var index = this.session.$getRowCacheIndex(rowCache, this.currentRow); + if (index >= 0) + docRow = this.session.$docRowCache[index]; + } + + return docRow; + }; + + this.getSplitIndex = function() { + var splitIndex = 0; + var rowCache = this.session.$screenRowCache; + if (rowCache.length) { + var currentIndex, prevIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow); + while (this.currentRow - splitIndex > 0) { + currentIndex = this.session.$getRowCacheIndex(rowCache, this.currentRow - splitIndex - 1); + if (currentIndex !== prevIndex) + break; + + prevIndex = currentIndex; + splitIndex++; + } + } else { + splitIndex = this.currentRow; + } + + return splitIndex; + }; + + this.updateRowLine = function(docRow, splitIndex) { + if (docRow === undefined) + docRow = this.getDocumentRow(); + + var isLastRow = (docRow === this.session.getLength() - 1), + endOfLine = isLastRow ? this.EOF : this.EOL; + + this.wrapIndent = 0; + this.line = this.session.getLine(docRow); + this.isRtlDir = this.$isRtl || this.line.charAt(0) === this.RLE; + if (this.session.$useWrapMode) { + var splits = this.session.$wrapData[docRow]; + if (splits) { + if (splitIndex === undefined) + splitIndex = this.getSplitIndex(); + + if(splitIndex > 0 && splits.length) { + this.wrapIndent = splits.indent; + this.wrapOffset = this.wrapIndent * this.charWidths[bidiUtil.L]; + this.line = (splitIndex < splits.length) ? + this.line.substring(splits[splitIndex - 1], splits[splitIndex]) : + this.line.substring(splits[splits.length - 1]); + } else { + this.line = this.line.substring(0, splits[splitIndex]); + } + } + if (splitIndex == splits.length) + this.line += (this.showInvisibles) ? endOfLine : bidiUtil.DOT; + } else { + this.line += this.showInvisibles ? endOfLine : bidiUtil.DOT; + } + var session = this.session, shift = 0, size; + this.line = this.line.replace(/\t|[\u1100-\u2029, \u202F-\uFFE6]/g, function(ch, i){ + if (ch === '\t' || session.isFullWidth(ch.charCodeAt(0))) { + size = (ch === '\t') ? session.getScreenTabSize(i + shift) : 2; + shift += size - 1; + return lang.stringRepeat(bidiUtil.DOT, size); + } + return ch; + }); + + if (this.isRtlDir) { + this.fontMetrics.$main.textContent = (this.line.charAt(this.line.length - 1) == bidiUtil.DOT) ? this.line.substr(0, this.line.length - 1) : this.line; + this.rtlLineOffset = this.contentWidth - this.fontMetrics.$main.getBoundingClientRect().width; + } + }; + + this.updateBidiMap = function() { + var textCharTypes = []; + if (bidiUtil.hasBidiCharacters(this.line, textCharTypes) || this.isRtlDir) { + this.bidiMap = bidiUtil.doBidiReorder(this.line, textCharTypes, this.isRtlDir); + } else { + this.bidiMap = {}; + } + }; + this.markAsDirty = function() { + this.currentRow = null; + }; + this.updateCharacterWidths = function(fontMetrics) { + if (this.characterWidth === fontMetrics.$characterSize.width) + return; + + this.fontMetrics = fontMetrics; + var characterWidth = this.characterWidth = fontMetrics.$characterSize.width; + var bidiCharWidth = fontMetrics.$measureCharWidth("\u05d4"); + + this.charWidths[bidiUtil.L] = this.charWidths[bidiUtil.EN] = this.charWidths[bidiUtil.ON_R] = characterWidth; + this.charWidths[bidiUtil.R] = this.charWidths[bidiUtil.AN] = bidiCharWidth; + this.charWidths[bidiUtil.R_H] = bidiCharWidth * 0.45; + this.charWidths[bidiUtil.B] = this.charWidths[bidiUtil.RLE] = 0; + + this.currentRow = null; + }; + + this.setShowInvisibles = function(showInvisibles) { + this.showInvisibles = showInvisibles; + this.currentRow = null; + }; + + this.setEolChar = function(eolChar) { + this.EOL = eolChar; + }; + + this.setContentWidth = function(width) { + this.contentWidth = width; + }; + + this.isRtlLine = function(row) { + if (this.$isRtl) return true; + if (row != undefined) + return (this.session.getLine(row).charAt(0) == this.RLE); + else + return this.isRtlDir; + }; + + this.setRtlDirection = function(editor, isRtlDir) { + var cursor = editor.getCursorPosition(); + for (var row = editor.selection.getSelectionAnchor().row; row <= cursor.row; row++) { + if (!isRtlDir && editor.session.getLine(row).charAt(0) === editor.session.$bidiHandler.RLE) + editor.session.doc.removeInLine(row, 0, 1); + else if (isRtlDir && editor.session.getLine(row).charAt(0) !== editor.session.$bidiHandler.RLE) + editor.session.doc.insert({column: 0, row: row}, editor.session.$bidiHandler.RLE); + } + }; + this.getPosLeft = function(col) { + col -= this.wrapIndent; + var leftBoundary = (this.line.charAt(0) === this.RLE) ? 1 : 0; + var logicalIdx = (col > leftBoundary) ? (this.session.getOverwrite() ? col : col - 1) : leftBoundary; + var visualIdx = bidiUtil.getVisualFromLogicalIdx(logicalIdx, this.bidiMap), + levels = this.bidiMap.bidiLevels, left = 0; + + if (!this.session.getOverwrite() && col <= leftBoundary && levels[visualIdx] % 2 !== 0) + visualIdx++; + + for (var i = 0; i < visualIdx; i++) { + left += this.charWidths[levels[i]]; + } + + if (!this.session.getOverwrite() && (col > leftBoundary) && (levels[visualIdx] % 2 === 0)) + left += this.charWidths[levels[visualIdx]]; + + if (this.wrapIndent) + left += this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset; + + if (this.isRtlDir) + left += this.rtlLineOffset; + + return left; + }; + this.getSelections = function(startCol, endCol) { + var map = this.bidiMap, levels = map.bidiLevels, level, selections = [], offset = 0, + selColMin = Math.min(startCol, endCol) - this.wrapIndent, selColMax = Math.max(startCol, endCol) - this.wrapIndent, + isSelected = false, isSelectedPrev = false, selectionStart = 0; + + if (this.wrapIndent) + offset += this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset; + + for (var logIdx, visIdx = 0; visIdx < levels.length; visIdx++) { + logIdx = map.logicalFromVisual[visIdx]; + level = levels[visIdx]; + isSelected = (logIdx >= selColMin) && (logIdx < selColMax); + if (isSelected && !isSelectedPrev) { + selectionStart = offset; + } else if (!isSelected && isSelectedPrev) { + selections.push({left: selectionStart, width: offset - selectionStart}); + } + offset += this.charWidths[level]; + isSelectedPrev = isSelected; + } + + if (isSelected && (visIdx === levels.length)) { + selections.push({left: selectionStart, width: offset - selectionStart}); + } + + if(this.isRtlDir) { + for (var i = 0; i < selections.length; i++) { + selections[i].left += this.rtlLineOffset; + } + } + return selections; + }; + this.offsetToCol = function(posX) { + if(this.isRtlDir) + posX -= this.rtlLineOffset; + + var logicalIdx = 0, posX = Math.max(posX, 0), + offset = 0, visualIdx = 0, levels = this.bidiMap.bidiLevels, + charWidth = this.charWidths[levels[visualIdx]]; + + if (this.wrapIndent) + posX -= this.isRtlDir ? (-1 * this.wrapOffset) : this.wrapOffset; + + while(posX > offset + charWidth/2) { + offset += charWidth; + if(visualIdx === levels.length - 1) { + charWidth = 0; + break; + } + charWidth = this.charWidths[levels[++visualIdx]]; + } + + if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && (levels[visualIdx] % 2 === 0)){ + if(posX < offset) + visualIdx--; + logicalIdx = this.bidiMap.logicalFromVisual[visualIdx]; + + } else if (visualIdx > 0 && (levels[visualIdx - 1] % 2 === 0) && (levels[visualIdx] % 2 !== 0)){ + logicalIdx = 1 + ((posX > offset) ? this.bidiMap.logicalFromVisual[visualIdx] + : this.bidiMap.logicalFromVisual[visualIdx - 1]); + + } else if ((this.isRtlDir && visualIdx === levels.length - 1 && charWidth === 0 && (levels[visualIdx - 1] % 2 === 0)) + || (!this.isRtlDir && visualIdx === 0 && (levels[visualIdx] % 2 !== 0))){ + logicalIdx = 1 + this.bidiMap.logicalFromVisual[visualIdx]; + } else { + if (visualIdx > 0 && (levels[visualIdx - 1] % 2 !== 0) && charWidth !== 0) + visualIdx--; + logicalIdx = this.bidiMap.logicalFromVisual[visualIdx]; + } + + if (logicalIdx === 0 && this.isRtlDir) + logicalIdx++; + + return (logicalIdx + this.wrapIndent); + }; + +}).call(BidiHandler.prototype); + +exports.BidiHandler = BidiHandler; +}); + +define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("./lib/oop"); +var lang = require("./lib/lang"); +var EventEmitter = require("./lib/event_emitter").EventEmitter; +var Range = require("./range").Range; +var Selection = function(session) { + this.session = session; + this.doc = session.getDocument(); + + this.clearSelection(); + this.cursor = this.lead = this.doc.createAnchor(0, 0); + this.anchor = this.doc.createAnchor(0, 0); + this.$silent = false; + + var self = this; + this.cursor.on("change", function(e) { + self.$cursorChanged = true; + if (!self.$silent) + self._emit("changeCursor"); + if (!self.$isEmpty && !self.$silent) + self._emit("changeSelection"); + if (!self.$keepDesiredColumnOnChange && e.old.column != e.value.column) + self.$desiredColumn = null; + }); + + this.anchor.on("change", function() { + self.$anchorChanged = true; + if (!self.$isEmpty && !self.$silent) + self._emit("changeSelection"); + }); +}; + +(function() { + + oop.implement(this, EventEmitter); + this.isEmpty = function() { + return this.$isEmpty || ( + this.anchor.row == this.lead.row && + this.anchor.column == this.lead.column + ); + }; + this.isMultiLine = function() { + return !this.$isEmpty && this.anchor.row != this.cursor.row; + }; + this.getCursor = function() { + return this.lead.getPosition(); + }; + this.setSelectionAnchor = function(row, column) { + this.$isEmpty = false; + this.anchor.setPosition(row, column); + }; + this.getAnchor = + this.getSelectionAnchor = function() { + if (this.$isEmpty) + return this.getSelectionLead(); + + return this.anchor.getPosition(); + }; + this.getSelectionLead = function() { + return this.lead.getPosition(); + }; + this.isBackwards = function() { + var anchor = this.anchor; + var lead = this.lead; + return (anchor.row > lead.row || (anchor.row == lead.row && anchor.column > lead.column)); + }; + this.getRange = function() { + var anchor = this.anchor; + var lead = this.lead; + + if (this.$isEmpty) + return Range.fromPoints(lead, lead); + + return this.isBackwards() + ? Range.fromPoints(lead, anchor) + : Range.fromPoints(anchor, lead); + }; + this.clearSelection = function() { + if (!this.$isEmpty) { + this.$isEmpty = true; + this._emit("changeSelection"); + } + }; + this.selectAll = function() { + this.$setSelection(0, 0, Number.MAX_VALUE, Number.MAX_VALUE); + }; + this.setRange = + this.setSelectionRange = function(range, reverse) { + var start = reverse ? range.end : range.start; + var end = reverse ? range.start : range.end; + this.$setSelection(start.row, start.column, end.row, end.column); + }; + + this.$setSelection = function(anchorRow, anchorColumn, cursorRow, cursorColumn) { + var wasEmpty = this.$isEmpty; + var wasMultiselect = this.inMultiSelectMode; + this.$silent = true; + this.$cursorChanged = this.$anchorChanged = false; + this.anchor.setPosition(anchorRow, anchorColumn); + this.cursor.setPosition(cursorRow, cursorColumn); + this.$isEmpty = !Range.comparePoints(this.anchor, this.cursor); + this.$silent = false; + if (this.$cursorChanged) + this._emit("changeCursor"); + if (this.$cursorChanged || this.$anchorChanged || wasEmpty != this.$isEmpty || wasMultiselect) + this._emit("changeSelection"); + }; + + this.$moveSelection = function(mover) { + var lead = this.lead; + if (this.$isEmpty) + this.setSelectionAnchor(lead.row, lead.column); + + mover.call(this); + }; + this.selectTo = function(row, column) { + this.$moveSelection(function() { + this.moveCursorTo(row, column); + }); + }; + this.selectToPosition = function(pos) { + this.$moveSelection(function() { + this.moveCursorToPosition(pos); + }); + }; + this.moveTo = function(row, column) { + this.clearSelection(); + this.moveCursorTo(row, column); + }; + this.moveToPosition = function(pos) { + this.clearSelection(); + this.moveCursorToPosition(pos); + }; + this.selectUp = function() { + this.$moveSelection(this.moveCursorUp); + }; + this.selectDown = function() { + this.$moveSelection(this.moveCursorDown); + }; + this.selectRight = function() { + this.$moveSelection(this.moveCursorRight); + }; + this.selectLeft = function() { + this.$moveSelection(this.moveCursorLeft); + }; + this.selectLineStart = function() { + this.$moveSelection(this.moveCursorLineStart); + }; + this.selectLineEnd = function() { + this.$moveSelection(this.moveCursorLineEnd); + }; + this.selectFileEnd = function() { + this.$moveSelection(this.moveCursorFileEnd); + }; + this.selectFileStart = function() { + this.$moveSelection(this.moveCursorFileStart); + }; + this.selectWordRight = function() { + this.$moveSelection(this.moveCursorWordRight); + }; + this.selectWordLeft = function() { + this.$moveSelection(this.moveCursorWordLeft); + }; + this.getWordRange = function(row, column) { + if (typeof column == "undefined") { + var cursor = row || this.lead; + row = cursor.row; + column = cursor.column; + } + return this.session.getWordRange(row, column); + }; + this.selectWord = function() { + this.setSelectionRange(this.getWordRange()); + }; + this.selectAWord = function() { + var cursor = this.getCursor(); + var range = this.session.getAWordRange(cursor.row, cursor.column); + this.setSelectionRange(range); + }; + + this.getLineRange = function(row, excludeLastChar) { + var rowStart = typeof row == "number" ? row : this.lead.row; + var rowEnd; + + var foldLine = this.session.getFoldLine(rowStart); + if (foldLine) { + rowStart = foldLine.start.row; + rowEnd = foldLine.end.row; + } else { + rowEnd = rowStart; + } + if (excludeLastChar === true) + return new Range(rowStart, 0, rowEnd, this.session.getLine(rowEnd).length); + else + return new Range(rowStart, 0, rowEnd + 1, 0); + }; + this.selectLine = function() { + this.setSelectionRange(this.getLineRange()); + }; + this.moveCursorUp = function() { + this.moveCursorBy(-1, 0); + }; + this.moveCursorDown = function() { + this.moveCursorBy(1, 0); + }; + this.wouldMoveIntoSoftTab = function(cursor, tabSize, direction) { + var start = cursor.column; + var end = cursor.column + tabSize; + + if (direction < 0) { + start = cursor.column - tabSize; + end = cursor.column; + } + return this.session.isTabStop(cursor) && this.doc.getLine(cursor.row).slice(start, end).split(" ").length-1 == tabSize; + }; + this.moveCursorLeft = function() { + var cursor = this.lead.getPosition(), + fold; + + if (fold = this.session.getFoldAt(cursor.row, cursor.column, -1)) { + this.moveCursorTo(fold.start.row, fold.start.column); + } else if (cursor.column === 0) { + if (cursor.row > 0) { + this.moveCursorTo(cursor.row - 1, this.doc.getLine(cursor.row - 1).length); + } + } + else { + var tabSize = this.session.getTabSize(); + if (this.wouldMoveIntoSoftTab(cursor, tabSize, -1) && !this.session.getNavigateWithinSoftTabs()) { + this.moveCursorBy(0, -tabSize); + } else { + this.moveCursorBy(0, -1); + } + } + }; + this.moveCursorRight = function() { + var cursor = this.lead.getPosition(), + fold; + if (fold = this.session.getFoldAt(cursor.row, cursor.column, 1)) { + this.moveCursorTo(fold.end.row, fold.end.column); + } + else if (this.lead.column == this.doc.getLine(this.lead.row).length) { + if (this.lead.row < this.doc.getLength() - 1) { + this.moveCursorTo(this.lead.row + 1, 0); + } + } + else { + var tabSize = this.session.getTabSize(); + var cursor = this.lead; + if (this.wouldMoveIntoSoftTab(cursor, tabSize, 1) && !this.session.getNavigateWithinSoftTabs()) { + this.moveCursorBy(0, tabSize); + } else { + this.moveCursorBy(0, 1); + } + } + }; + this.moveCursorLineStart = function() { + var row = this.lead.row; + var column = this.lead.column; + var screenRow = this.session.documentToScreenRow(row, column); + var firstColumnPosition = this.session.screenToDocumentPosition(screenRow, 0); + var beforeCursor = this.session.getDisplayLine( + row, null, firstColumnPosition.row, + firstColumnPosition.column + ); + + var leadingSpace = beforeCursor.match(/^\s*/); + if (leadingSpace[0].length != column && !this.session.$useEmacsStyleLineStart) + firstColumnPosition.column += leadingSpace[0].length; + this.moveCursorToPosition(firstColumnPosition); + }; + this.moveCursorLineEnd = function() { + var lead = this.lead; + var lineEnd = this.session.getDocumentLastRowColumnPosition(lead.row, lead.column); + if (this.lead.column == lineEnd.column) { + var line = this.session.getLine(lineEnd.row); + if (lineEnd.column == line.length) { + var textEnd = line.search(/\s+$/); + if (textEnd > 0) + lineEnd.column = textEnd; + } + } + + this.moveCursorTo(lineEnd.row, lineEnd.column); + }; + this.moveCursorFileEnd = function() { + var row = this.doc.getLength() - 1; + var column = this.doc.getLine(row).length; + this.moveCursorTo(row, column); + }; + this.moveCursorFileStart = function() { + this.moveCursorTo(0, 0); + }; + this.moveCursorLongWordRight = function() { + var row = this.lead.row; + var column = this.lead.column; + var line = this.doc.getLine(row); + var rightOfCursor = line.substring(column); + + this.session.nonTokenRe.lastIndex = 0; + this.session.tokenRe.lastIndex = 0; + var fold = this.session.getFoldAt(row, column, 1); + if (fold) { + this.moveCursorTo(fold.end.row, fold.end.column); + return; + } + if (this.session.nonTokenRe.exec(rightOfCursor)) { + column += this.session.nonTokenRe.lastIndex; + this.session.nonTokenRe.lastIndex = 0; + rightOfCursor = line.substring(column); + } + if (column >= line.length) { + this.moveCursorTo(row, line.length); + this.moveCursorRight(); + if (row < this.doc.getLength() - 1) + this.moveCursorWordRight(); + return; + } + if (this.session.tokenRe.exec(rightOfCursor)) { + column += this.session.tokenRe.lastIndex; + this.session.tokenRe.lastIndex = 0; + } + + this.moveCursorTo(row, column); + }; + this.moveCursorLongWordLeft = function() { + var row = this.lead.row; + var column = this.lead.column; + var fold; + if (fold = this.session.getFoldAt(row, column, -1)) { + this.moveCursorTo(fold.start.row, fold.start.column); + return; + } + + var str = this.session.getFoldStringAt(row, column, -1); + if (str == null) { + str = this.doc.getLine(row).substring(0, column); + } + + var leftOfCursor = lang.stringReverse(str); + this.session.nonTokenRe.lastIndex = 0; + this.session.tokenRe.lastIndex = 0; + if (this.session.nonTokenRe.exec(leftOfCursor)) { + column -= this.session.nonTokenRe.lastIndex; + leftOfCursor = leftOfCursor.slice(this.session.nonTokenRe.lastIndex); + this.session.nonTokenRe.lastIndex = 0; + } + if (column <= 0) { + this.moveCursorTo(row, 0); + this.moveCursorLeft(); + if (row > 0) + this.moveCursorWordLeft(); + return; + } + if (this.session.tokenRe.exec(leftOfCursor)) { + column -= this.session.tokenRe.lastIndex; + this.session.tokenRe.lastIndex = 0; + } + + this.moveCursorTo(row, column); + }; + + this.$shortWordEndIndex = function(rightOfCursor) { + var index = 0, ch; + var whitespaceRe = /\s/; + var tokenRe = this.session.tokenRe; + + tokenRe.lastIndex = 0; + if (this.session.tokenRe.exec(rightOfCursor)) { + index = this.session.tokenRe.lastIndex; + } else { + while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch)) + index ++; + + if (index < 1) { + tokenRe.lastIndex = 0; + while ((ch = rightOfCursor[index]) && !tokenRe.test(ch)) { + tokenRe.lastIndex = 0; + index ++; + if (whitespaceRe.test(ch)) { + if (index > 2) { + index--; + break; + } else { + while ((ch = rightOfCursor[index]) && whitespaceRe.test(ch)) + index ++; + if (index > 2) + break; + } + } + } + } + } + tokenRe.lastIndex = 0; + + return index; + }; + + this.moveCursorShortWordRight = function() { + var row = this.lead.row; + var column = this.lead.column; + var line = this.doc.getLine(row); + var rightOfCursor = line.substring(column); + + var fold = this.session.getFoldAt(row, column, 1); + if (fold) + return this.moveCursorTo(fold.end.row, fold.end.column); + + if (column == line.length) { + var l = this.doc.getLength(); + do { + row++; + rightOfCursor = this.doc.getLine(row); + } while (row < l && /^\s*$/.test(rightOfCursor)); + + if (!/^\s+/.test(rightOfCursor)) + rightOfCursor = ""; + column = 0; + } + + var index = this.$shortWordEndIndex(rightOfCursor); + + this.moveCursorTo(row, column + index); + }; + + this.moveCursorShortWordLeft = function() { + var row = this.lead.row; + var column = this.lead.column; + + var fold; + if (fold = this.session.getFoldAt(row, column, -1)) + return this.moveCursorTo(fold.start.row, fold.start.column); + + var line = this.session.getLine(row).substring(0, column); + if (column === 0) { + do { + row--; + line = this.doc.getLine(row); + } while (row > 0 && /^\s*$/.test(line)); + + column = line.length; + if (!/\s+$/.test(line)) + line = ""; + } + + var leftOfCursor = lang.stringReverse(line); + var index = this.$shortWordEndIndex(leftOfCursor); + + return this.moveCursorTo(row, column - index); + }; + + this.moveCursorWordRight = function() { + if (this.session.$selectLongWords) + this.moveCursorLongWordRight(); + else + this.moveCursorShortWordRight(); + }; + + this.moveCursorWordLeft = function() { + if (this.session.$selectLongWords) + this.moveCursorLongWordLeft(); + else + this.moveCursorShortWordLeft(); + }; + this.moveCursorBy = function(rows, chars) { + var screenPos = this.session.documentToScreenPosition( + this.lead.row, + this.lead.column + ); + + var offsetX; + + if (chars === 0) { + if (rows !== 0) { + if (this.session.$bidiHandler.isBidiRow(screenPos.row, this.lead.row)) { + offsetX = this.session.$bidiHandler.getPosLeft(screenPos.column); + screenPos.column = Math.round(offsetX / this.session.$bidiHandler.charWidths[0]); + } else { + offsetX = screenPos.column * this.session.$bidiHandler.charWidths[0]; + } + } + + if (this.$desiredColumn) + screenPos.column = this.$desiredColumn; + else + this.$desiredColumn = screenPos.column; + } + + var docPos = this.session.screenToDocumentPosition(screenPos.row + rows, screenPos.column, offsetX); + + if (rows !== 0 && chars === 0 && docPos.row === this.lead.row && docPos.column === this.lead.column) { + if (this.session.lineWidgets && this.session.lineWidgets[docPos.row]) { + if (docPos.row > 0 || rows > 0) + docPos.row++; + } + } + this.moveCursorTo(docPos.row, docPos.column + chars, chars === 0); + }; + this.moveCursorToPosition = function(position) { + this.moveCursorTo(position.row, position.column); + }; + this.moveCursorTo = function(row, column, keepDesiredColumn) { + var fold = this.session.getFoldAt(row, column, 1); + if (fold) { + row = fold.start.row; + column = fold.start.column; + } + + this.$keepDesiredColumnOnChange = true; + var line = this.session.getLine(row); + if (/[\uDC00-\uDFFF]/.test(line.charAt(column)) && line.charAt(column - 1)) { + if (this.lead.row == row && this.lead.column == column + 1) + column = column - 1; + else + column = column + 1; + } + this.lead.setPosition(row, column); + this.$keepDesiredColumnOnChange = false; + + if (!keepDesiredColumn) + this.$desiredColumn = null; + }; + this.moveCursorToScreen = function(row, column, keepDesiredColumn) { + var pos = this.session.screenToDocumentPosition(row, column); + this.moveCursorTo(pos.row, pos.column, keepDesiredColumn); + }; + this.detach = function() { + this.lead.detach(); + this.anchor.detach(); + this.session = this.doc = null; + }; + + this.fromOrientedRange = function(range) { + this.setSelectionRange(range, range.cursor == range.start); + this.$desiredColumn = range.desiredColumn || this.$desiredColumn; + }; + + this.toOrientedRange = function(range) { + var r = this.getRange(); + if (range) { + range.start.column = r.start.column; + range.start.row = r.start.row; + range.end.column = r.end.column; + range.end.row = r.end.row; + } else { + range = r; + } + + range.cursor = this.isBackwards() ? range.start : range.end; + range.desiredColumn = this.$desiredColumn; + return range; + }; + this.getRangeOfMovements = function(func) { + var start = this.getCursor(); + try { + func(this); + var end = this.getCursor(); + return Range.fromPoints(start, end); + } catch(e) { + return Range.fromPoints(start, start); + } finally { + this.moveCursorToPosition(start); + } + }; + + this.toJSON = function() { + if (this.rangeCount) { + var data = this.ranges.map(function(r) { + var r1 = r.clone(); + r1.isBackwards = r.cursor == r.start; + return r1; + }); + } else { + var data = this.getRange(); + data.isBackwards = this.isBackwards(); + } + return data; + }; + + this.fromJSON = function(data) { + if (data.start == undefined) { + if (this.rangeList && data.length > 1) { + this.toSingleRange(data[0]); + for (var i = data.length; i--; ) { + var r = Range.fromPoints(data[i].start, data[i].end); + if (data[i].isBackwards) + r.cursor = r.start; + this.addRange(r, true); + } + return; + } else { + data = data[0]; + } + } + if (this.rangeList) + this.toSingleRange(data); + this.setSelectionRange(data, data.isBackwards); + }; + + this.isEqual = function(data) { + if ((data.length || this.rangeCount) && data.length != this.rangeCount) + return false; + if (!data.length || !this.ranges) + return this.getRange().isEqual(data); + + for (var i = this.ranges.length; i--; ) { + if (!this.ranges[i].isEqual(data[i])) + return false; + } + return true; + }; + +}).call(Selection.prototype); + +exports.Selection = Selection; +}); + +define("ace/tokenizer",["require","exports","module","ace/config"], function(require, exports, module) { +"use strict"; + +var config = require("./config"); +var MAX_TOKEN_COUNT = 2000; +var Tokenizer = function(rules) { + this.states = rules; + + this.regExps = {}; + this.matchMappings = {}; + for (var key in this.states) { + var state = this.states[key]; + var ruleRegExps = []; + var matchTotal = 0; + var mapping = this.matchMappings[key] = {defaultToken: "text"}; + var flag = "g"; + + var splitterRurles = []; + for (var i = 0; i < state.length; i++) { + var rule = state[i]; + if (rule.defaultToken) + mapping.defaultToken = rule.defaultToken; + if (rule.caseInsensitive) + flag = "gi"; + if (rule.regex == null) + continue; + + if (rule.regex instanceof RegExp) + rule.regex = rule.regex.toString().slice(1, -1); + var adjustedregex = rule.regex; + var matchcount = new RegExp("(?:(" + adjustedregex + ")|(.))").exec("a").length - 2; + if (Array.isArray(rule.token)) { + if (rule.token.length == 1 || matchcount == 1) { + rule.token = rule.token[0]; + } else if (matchcount - 1 != rule.token.length) { + this.reportError("number of classes and regexp groups doesn't match", { + rule: rule, + groupCount: matchcount - 1 + }); + rule.token = rule.token[0]; + } else { + rule.tokenArray = rule.token; + rule.token = null; + rule.onMatch = this.$arrayTokens; + } + } else if (typeof rule.token == "function" && !rule.onMatch) { + if (matchcount > 1) + rule.onMatch = this.$applyToken; + else + rule.onMatch = rule.token; + } + + if (matchcount > 1) { + if (/\\\d/.test(rule.regex)) { + adjustedregex = rule.regex.replace(/\\([0-9]+)/g, function(match, digit) { + return "\\" + (parseInt(digit, 10) + matchTotal + 1); + }); + } else { + matchcount = 1; + adjustedregex = this.removeCapturingGroups(rule.regex); + } + if (!rule.splitRegex && typeof rule.token != "string") + splitterRurles.push(rule); // flag will be known only at the very end + } + + mapping[matchTotal] = i; + matchTotal += matchcount; + + ruleRegExps.push(adjustedregex); + if (!rule.onMatch) + rule.onMatch = null; + } + + if (!ruleRegExps.length) { + mapping[0] = 0; + ruleRegExps.push("$"); + } + + splitterRurles.forEach(function(rule) { + rule.splitRegex = this.createSplitterRegexp(rule.regex, flag); + }, this); + + this.regExps[key] = new RegExp("(" + ruleRegExps.join(")|(") + ")|($)", flag); + } +}; + +(function() { + this.$setMaxTokenCount = function(m) { + MAX_TOKEN_COUNT = m | 0; + }; + + this.$applyToken = function(str) { + var values = this.splitRegex.exec(str).slice(1); + var types = this.token.apply(this, values); + if (typeof types === "string") + return [{type: types, value: str}]; + + var tokens = []; + for (var i = 0, l = types.length; i < l; i++) { + if (values[i]) + tokens[tokens.length] = { + type: types[i], + value: values[i] + }; + } + return tokens; + }; + + this.$arrayTokens = function(str) { + if (!str) + return []; + var values = this.splitRegex.exec(str); + if (!values) + return "text"; + var tokens = []; + var types = this.tokenArray; + for (var i = 0, l = types.length; i < l; i++) { + if (values[i + 1]) + tokens[tokens.length] = { + type: types[i], + value: values[i + 1] + }; + } + return tokens; + }; + + this.removeCapturingGroups = function(src) { + var r = src.replace( + /\\.|\[(?:\\.|[^\\\]])*|\(\?[:=!]|(\()/g, + function(x, y) {return y ? "(?:" : x;} + ); + return r; + }; + + this.createSplitterRegexp = function(src, flag) { + if (src.indexOf("(?=") != -1) { + var stack = 0; + var inChClass = false; + var lastCapture = {}; + src.replace(/(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g, function( + m, esc, parenOpen, parenClose, square, index + ) { + if (inChClass) { + inChClass = square != "]"; + } else if (square) { + inChClass = true; + } else if (parenClose) { + if (stack == lastCapture.stack) { + lastCapture.end = index+1; + lastCapture.stack = -1; + } + stack--; + } else if (parenOpen) { + stack++; + if (parenOpen.length != 1) { + lastCapture.stack = stack; + lastCapture.start = index; + } + } + return m; + }); + + if (lastCapture.end != null && /^\)*$/.test(src.substr(lastCapture.end))) + src = src.substring(0, lastCapture.start) + src.substr(lastCapture.end); + } + if (src.charAt(0) != "^") src = "^" + src; + if (src.charAt(src.length - 1) != "$") src += "$"; + + return new RegExp(src, (flag||"").replace("g", "")); + }; + this.getLineTokens = function(line, startState) { + if (startState && typeof startState != "string") { + var stack = startState.slice(0); + startState = stack[0]; + if (startState === "#tmp") { + stack.shift(); + startState = stack.shift(); + } + } else + var stack = []; + + var currentState = startState || "start"; + var state = this.states[currentState]; + if (!state) { + currentState = "start"; + state = this.states[currentState]; + } + var mapping = this.matchMappings[currentState]; + var re = this.regExps[currentState]; + re.lastIndex = 0; + + var match, tokens = []; + var lastIndex = 0; + var matchAttempts = 0; + + var token = {type: null, value: ""}; + + while (match = re.exec(line)) { + var type = mapping.defaultToken; + var rule = null; + var value = match[0]; + var index = re.lastIndex; + + if (index - value.length > lastIndex) { + var skipped = line.substring(lastIndex, index - value.length); + if (token.type == type) { + token.value += skipped; + } else { + if (token.type) + tokens.push(token); + token = {type: type, value: skipped}; + } + } + + for (var i = 0; i < match.length-2; i++) { + if (match[i + 1] === undefined) + continue; + + rule = state[mapping[i]]; + + if (rule.onMatch) + type = rule.onMatch(value, currentState, stack, line); + else + type = rule.token; + + if (rule.next) { + if (typeof rule.next == "string") { + currentState = rule.next; + } else { + currentState = rule.next(currentState, stack); + } + + state = this.states[currentState]; + if (!state) { + this.reportError("state doesn't exist", currentState); + currentState = "start"; + state = this.states[currentState]; + } + mapping = this.matchMappings[currentState]; + lastIndex = index; + re = this.regExps[currentState]; + re.lastIndex = index; + } + if (rule.consumeLineEnd) + lastIndex = index; + break; + } + + if (value) { + if (typeof type === "string") { + if ((!rule || rule.merge !== false) && token.type === type) { + token.value += value; + } else { + if (token.type) + tokens.push(token); + token = {type: type, value: value}; + } + } else if (type) { + if (token.type) + tokens.push(token); + token = {type: null, value: ""}; + for (var i = 0; i < type.length; i++) + tokens.push(type[i]); + } + } + + if (lastIndex == line.length) + break; + + lastIndex = index; + + if (matchAttempts++ > MAX_TOKEN_COUNT) { + if (matchAttempts > 2 * line.length) { + this.reportError("infinite loop with in ace tokenizer", { + startState: startState, + line: line + }); + } + while (lastIndex < line.length) { + if (token.type) + tokens.push(token); + token = { + value: line.substring(lastIndex, lastIndex += 2000), + type: "overflow" + }; + } + currentState = "start"; + stack = []; + break; + } + } + + if (token.type) + tokens.push(token); + + if (stack.length > 1) { + if (stack[0] !== currentState) + stack.unshift("#tmp", currentState); + } + return { + tokens : tokens, + state : stack.length ? stack : currentState + }; + }; + + this.reportError = config.reportError; + +}).call(Tokenizer.prototype); + +exports.Tokenizer = Tokenizer; +}); + +define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"], function(require, exports, module) { +"use strict"; + +var lang = require("../lib/lang"); + +var TextHighlightRules = function() { + + this.$rules = { + "start" : [{ + token : "empty_line", + regex : '^$' + }, { + defaultToken : "text" + }] + }; +}; + +(function() { + + this.addRules = function(rules, prefix) { + if (!prefix) { + for (var key in rules) + this.$rules[key] = rules[key]; + return; + } + for (var key in rules) { + var state = rules[key]; + for (var i = 0; i < state.length; i++) { + var rule = state[i]; + if (rule.next || rule.onMatch) { + if (typeof rule.next == "string") { + if (rule.next.indexOf(prefix) !== 0) + rule.next = prefix + rule.next; + } + if (rule.nextState && rule.nextState.indexOf(prefix) !== 0) + rule.nextState = prefix + rule.nextState; + } + } + this.$rules[prefix + key] = state; + } + }; + + this.getRules = function() { + return this.$rules; + }; + + this.embedRules = function (HighlightRules, prefix, escapeRules, states, append) { + var embedRules = typeof HighlightRules == "function" + ? new HighlightRules().getRules() + : HighlightRules; + if (states) { + for (var i = 0; i < states.length; i++) + states[i] = prefix + states[i]; + } else { + states = []; + for (var key in embedRules) + states.push(prefix + key); + } + + this.addRules(embedRules, prefix); + + if (escapeRules) { + var addRules = Array.prototype[append ? "push" : "unshift"]; + for (var i = 0; i < states.length; i++) + addRules.apply(this.$rules[states[i]], lang.deepCopy(escapeRules)); + } + + if (!this.$embeds) + this.$embeds = []; + this.$embeds.push(prefix); + }; + + this.getEmbeds = function() { + return this.$embeds; + }; + + var pushState = function(currentState, stack) { + if (currentState != "start" || stack.length) + stack.unshift(this.nextState, currentState); + return this.nextState; + }; + var popState = function(currentState, stack) { + stack.shift(); + return stack.shift() || "start"; + }; + + this.normalizeRules = function() { + var id = 0; + var rules = this.$rules; + function processState(key) { + var state = rules[key]; + state.processed = true; + for (var i = 0; i < state.length; i++) { + var rule = state[i]; + var toInsert = null; + if (Array.isArray(rule)) { + toInsert = rule; + rule = {}; + } + if (!rule.regex && rule.start) { + rule.regex = rule.start; + if (!rule.next) + rule.next = []; + rule.next.push({ + defaultToken: rule.token + }, { + token: rule.token + ".end", + regex: rule.end || rule.start, + next: "pop" + }); + rule.token = rule.token + ".start"; + rule.push = true; + } + var next = rule.next || rule.push; + if (next && Array.isArray(next)) { + var stateName = rule.stateName; + if (!stateName) { + stateName = rule.token; + if (typeof stateName != "string") + stateName = stateName[0] || ""; + if (rules[stateName]) + stateName += id++; + } + rules[stateName] = next; + rule.next = stateName; + processState(stateName); + } else if (next == "pop") { + rule.next = popState; + } + + if (rule.push) { + rule.nextState = rule.next || rule.push; + rule.next = pushState; + delete rule.push; + } + + if (rule.rules) { + for (var r in rule.rules) { + if (rules[r]) { + if (rules[r].push) + rules[r].push.apply(rules[r], rule.rules[r]); + } else { + rules[r] = rule.rules[r]; + } + } + } + var includeName = typeof rule == "string" ? rule : rule.include; + if (includeName) { + if (Array.isArray(includeName)) + toInsert = includeName.map(function(x) { return rules[x]; }); + else + toInsert = rules[includeName]; + } + + if (toInsert) { + var args = [i, 1].concat(toInsert); + if (rule.noEscape) + args = args.filter(function(x) {return !x.next;}); + state.splice.apply(state, args); + i--; + } + + if (rule.keywordMap) { + rule.token = this.createKeywordMapper( + rule.keywordMap, rule.defaultToken || "text", rule.caseInsensitive + ); + delete rule.defaultToken; + } + } + } + Object.keys(rules).forEach(processState, this); + }; + + this.createKeywordMapper = function(map, defaultToken, ignoreCase, splitChar) { + var keywords = Object.create(null); + Object.keys(map).forEach(function(className) { + var a = map[className]; + if (ignoreCase) + a = a.toLowerCase(); + var list = a.split(splitChar || "|"); + for (var i = list.length; i--; ) + keywords[list[i]] = className; + }); + if (Object.getPrototypeOf(keywords)) { + keywords.__proto__ = null; + } + this.$keywordList = Object.keys(keywords); + map = null; + return ignoreCase + ? function(value) {return keywords[value.toLowerCase()] || defaultToken; } + : function(value) {return keywords[value] || defaultToken; }; + }; + + this.getKeywords = function() { + return this.$keywords; + }; + +}).call(TextHighlightRules.prototype); + +exports.TextHighlightRules = TextHighlightRules; +}); + +define("ace/mode/behaviour",["require","exports","module"], function(require, exports, module) { +"use strict"; + +var Behaviour = function() { + this.$behaviours = {}; +}; + +(function () { + + this.add = function (name, action, callback) { + switch (undefined) { + case this.$behaviours: + this.$behaviours = {}; + case this.$behaviours[name]: + this.$behaviours[name] = {}; + } + this.$behaviours[name][action] = callback; + }; + + this.addBehaviours = function (behaviours) { + for (var key in behaviours) { + for (var action in behaviours[key]) { + this.add(key, action, behaviours[key][action]); + } + } + }; + + this.remove = function (name) { + if (this.$behaviours && this.$behaviours[name]) { + delete this.$behaviours[name]; + } + }; + + this.inherit = function (mode, filter) { + if (typeof mode === "function") { + var behaviours = new mode().getBehaviours(filter); + } else { + var behaviours = mode.getBehaviours(filter); + } + this.addBehaviours(behaviours); + }; + + this.getBehaviours = function (filter) { + if (!filter) { + return this.$behaviours; + } else { + var ret = {}; + for (var i = 0; i < filter.length; i++) { + if (this.$behaviours[filter[i]]) { + ret[filter[i]] = this.$behaviours[filter[i]]; + } + } + return ret; + } + }; + +}).call(Behaviour.prototype); + +exports.Behaviour = Behaviour; +}); + +define("ace/token_iterator",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("./range").Range; +var TokenIterator = function(session, initialRow, initialColumn) { + this.$session = session; + this.$row = initialRow; + this.$rowTokens = session.getTokens(initialRow); + + var token = session.getTokenAt(initialRow, initialColumn); + this.$tokenIndex = token ? token.index : -1; +}; + +(function() { + this.stepBackward = function() { + this.$tokenIndex -= 1; + + while (this.$tokenIndex < 0) { + this.$row -= 1; + if (this.$row < 0) { + this.$row = 0; + return null; + } + + this.$rowTokens = this.$session.getTokens(this.$row); + this.$tokenIndex = this.$rowTokens.length - 1; + } + + return this.$rowTokens[this.$tokenIndex]; + }; + this.stepForward = function() { + this.$tokenIndex += 1; + var rowCount; + while (this.$tokenIndex >= this.$rowTokens.length) { + this.$row += 1; + if (!rowCount) + rowCount = this.$session.getLength(); + if (this.$row >= rowCount) { + this.$row = rowCount - 1; + return null; + } + + this.$rowTokens = this.$session.getTokens(this.$row); + this.$tokenIndex = 0; + } + + return this.$rowTokens[this.$tokenIndex]; + }; + this.getCurrentToken = function () { + return this.$rowTokens[this.$tokenIndex]; + }; + this.getCurrentTokenRow = function () { + return this.$row; + }; + this.getCurrentTokenColumn = function() { + var rowTokens = this.$rowTokens; + var tokenIndex = this.$tokenIndex; + var column = rowTokens[tokenIndex].start; + if (column !== undefined) + return column; + + column = 0; + while (tokenIndex > 0) { + tokenIndex -= 1; + column += rowTokens[tokenIndex].value.length; + } + + return column; + }; + this.getCurrentTokenPosition = function() { + return {row: this.$row, column: this.getCurrentTokenColumn()}; + }; + this.getCurrentTokenRange = function() { + var token = this.$rowTokens[this.$tokenIndex]; + var column = this.getCurrentTokenColumn(); + return new Range(this.$row, column, this.$row, column + token.value.length); + }; + +}).call(TokenIterator.prototype); + +exports.TokenIterator = TokenIterator; +}); + +define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Behaviour = require("../behaviour").Behaviour; +var TokenIterator = require("../../token_iterator").TokenIterator; +var lang = require("../../lib/lang"); + +var SAFE_INSERT_IN_TOKENS = + ["text", "paren.rparen", "punctuation.operator"]; +var SAFE_INSERT_BEFORE_TOKENS = + ["text", "paren.rparen", "punctuation.operator", "comment"]; + +var context; +var contextCache = {}; +var defaultQuotes = {'"' : '"', "'" : "'"}; + +var initContext = function(editor) { + var id = -1; + if (editor.multiSelect) { + id = editor.selection.index; + if (contextCache.rangeCount != editor.multiSelect.rangeCount) + contextCache = {rangeCount: editor.multiSelect.rangeCount}; + } + if (contextCache[id]) + return context = contextCache[id]; + context = contextCache[id] = { + autoInsertedBrackets: 0, + autoInsertedRow: -1, + autoInsertedLineEnd: "", + maybeInsertedBrackets: 0, + maybeInsertedRow: -1, + maybeInsertedLineStart: "", + maybeInsertedLineEnd: "" + }; +}; + +var getWrapped = function(selection, selected, opening, closing) { + var rowDiff = selection.end.row - selection.start.row; + return { + text: opening + selected + closing, + selection: [ + 0, + selection.start.column + 1, + rowDiff, + selection.end.column + (rowDiff ? 0 : 1) + ] + }; +}; + +var CstyleBehaviour = function(options) { + this.add("braces", "insertion", function(state, action, editor, session, text) { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + if (text == '{') { + initContext(editor); + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "" && selected !== "{" && editor.getWrapBehavioursEnabled()) { + return getWrapped(selection, selected, '{', '}'); + } else if (CstyleBehaviour.isSaneInsertion(editor, session)) { + if (/[\]\}\)]/.test(line[cursor.column]) || editor.inMultiSelectMode || options && options.braces) { + CstyleBehaviour.recordAutoInsert(editor, session, "}"); + return { + text: '{}', + selection: [1, 1] + }; + } else { + CstyleBehaviour.recordMaybeInsert(editor, session, "{"); + return { + text: '{', + selection: [1, 1] + }; + } + } + } else if (text == '}') { + initContext(editor); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == '}') { + var matching = session.$findOpeningBracket('}', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) { + CstyleBehaviour.popAutoInsertedClosing(); + return { + text: '', + selection: [1, 1] + }; + } + } + } else if (text == "\n" || text == "\r\n") { + initContext(editor); + var closing = ""; + if (CstyleBehaviour.isMaybeInsertedClosing(cursor, line)) { + closing = lang.stringRepeat("}", context.maybeInsertedBrackets); + CstyleBehaviour.clearMaybeInsertedClosing(); + } + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar === '}') { + var openBracePos = session.findMatchingBracket({row: cursor.row, column: cursor.column+1}, '}'); + if (!openBracePos) + return null; + var next_indent = this.$getIndent(session.getLine(openBracePos.row)); + } else if (closing) { + var next_indent = this.$getIndent(line); + } else { + CstyleBehaviour.clearMaybeInsertedClosing(); + return; + } + var indent = next_indent + session.getTabString(); + + return { + text: '\n' + indent + '\n' + next_indent + closing, + selection: [1, indent.length, 1, indent.length] + }; + } else { + CstyleBehaviour.clearMaybeInsertedClosing(); + } + }); + + this.add("braces", "deletion", function(state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '{') { + initContext(editor); + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.end.column, range.end.column + 1); + if (rightChar == '}') { + range.end.column++; + return range; + } else { + context.maybeInsertedBrackets--; + } + } + }); + + this.add("parens", "insertion", function(state, action, editor, session, text) { + if (text == '(') { + initContext(editor); + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "" && editor.getWrapBehavioursEnabled()) { + return getWrapped(selection, selected, '(', ')'); + } else if (CstyleBehaviour.isSaneInsertion(editor, session)) { + CstyleBehaviour.recordAutoInsert(editor, session, ")"); + return { + text: '()', + selection: [1, 1] + }; + } + } else if (text == ')') { + initContext(editor); + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == ')') { + var matching = session.$findOpeningBracket(')', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) { + CstyleBehaviour.popAutoInsertedClosing(); + return { + text: '', + selection: [1, 1] + }; + } + } + } + }); + + this.add("parens", "deletion", function(state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '(') { + initContext(editor); + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == ')') { + range.end.column++; + return range; + } + } + }); + + this.add("brackets", "insertion", function(state, action, editor, session, text) { + if (text == '[') { + initContext(editor); + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "" && editor.getWrapBehavioursEnabled()) { + return getWrapped(selection, selected, '[', ']'); + } else if (CstyleBehaviour.isSaneInsertion(editor, session)) { + CstyleBehaviour.recordAutoInsert(editor, session, "]"); + return { + text: '[]', + selection: [1, 1] + }; + } + } else if (text == ']') { + initContext(editor); + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var rightChar = line.substring(cursor.column, cursor.column + 1); + if (rightChar == ']') { + var matching = session.$findOpeningBracket(']', {column: cursor.column + 1, row: cursor.row}); + if (matching !== null && CstyleBehaviour.isAutoInsertedClosing(cursor, line, text)) { + CstyleBehaviour.popAutoInsertedClosing(); + return { + text: '', + selection: [1, 1] + }; + } + } + } + }); + + this.add("brackets", "deletion", function(state, action, editor, session, range) { + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && selected == '[') { + initContext(editor); + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == ']') { + range.end.column++; + return range; + } + } + }); + + this.add("string_dquotes", "insertion", function(state, action, editor, session, text) { + var quotes = session.$mode.$quotes || defaultQuotes; + if (text.length == 1 && quotes[text]) { + if (this.lineCommentStart && this.lineCommentStart.indexOf(text) != -1) + return; + initContext(editor); + var quote = text; + var selection = editor.getSelectionRange(); + var selected = session.doc.getTextRange(selection); + if (selected !== "" && (selected.length != 1 || !quotes[selected]) && editor.getWrapBehavioursEnabled()) { + return getWrapped(selection, selected, quote, quote); + } else if (!selected) { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + var leftChar = line.substring(cursor.column-1, cursor.column); + var rightChar = line.substring(cursor.column, cursor.column + 1); + + var token = session.getTokenAt(cursor.row, cursor.column); + var rightToken = session.getTokenAt(cursor.row, cursor.column + 1); + if (leftChar == "\\" && token && /escape/.test(token.type)) + return null; + + var stringBefore = token && /string|escape/.test(token.type); + var stringAfter = !rightToken || /string|escape/.test(rightToken.type); + + var pair; + if (rightChar == quote) { + pair = stringBefore !== stringAfter; + if (pair && /string\.end/.test(rightToken.type)) + pair = false; + } else { + if (stringBefore && !stringAfter) + return null; // wrap string with different quote + if (stringBefore && stringAfter) + return null; // do not pair quotes inside strings + var wordRe = session.$mode.tokenRe; + wordRe.lastIndex = 0; + var isWordBefore = wordRe.test(leftChar); + wordRe.lastIndex = 0; + var isWordAfter = wordRe.test(leftChar); + if (isWordBefore || isWordAfter) + return null; // before or after alphanumeric + if (rightChar && !/[\s;,.})\]\\]/.test(rightChar)) + return null; // there is rightChar and it isn't closing + pair = true; + } + return { + text: pair ? quote + quote : "", + selection: [1,1] + }; + } + } + }); + + this.add("string_dquotes", "deletion", function(state, action, editor, session, range) { + var quotes = session.$mode.$quotes || defaultQuotes; + + var selected = session.doc.getTextRange(range); + if (!range.isMultiLine() && quotes.hasOwnProperty(selected)) { + initContext(editor); + var line = session.doc.getLine(range.start.row); + var rightChar = line.substring(range.start.column + 1, range.start.column + 2); + if (rightChar == selected) { + range.end.column++; + return range; + } + } + }); + +}; + + +CstyleBehaviour.isSaneInsertion = function(editor, session) { + var cursor = editor.getCursorPosition(); + var iterator = new TokenIterator(session, cursor.row, cursor.column); + if (!this.$matchTokenType(iterator.getCurrentToken() || "text", SAFE_INSERT_IN_TOKENS)) { + var iterator2 = new TokenIterator(session, cursor.row, cursor.column + 1); + if (!this.$matchTokenType(iterator2.getCurrentToken() || "text", SAFE_INSERT_IN_TOKENS)) + return false; + } + iterator.stepForward(); + return iterator.getCurrentTokenRow() !== cursor.row || + this.$matchTokenType(iterator.getCurrentToken() || "text", SAFE_INSERT_BEFORE_TOKENS); +}; + +CstyleBehaviour.$matchTokenType = function(token, types) { + return types.indexOf(token.type || token) > -1; +}; + +CstyleBehaviour.recordAutoInsert = function(editor, session, bracket) { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + if (!this.isAutoInsertedClosing(cursor, line, context.autoInsertedLineEnd[0])) + context.autoInsertedBrackets = 0; + context.autoInsertedRow = cursor.row; + context.autoInsertedLineEnd = bracket + line.substr(cursor.column); + context.autoInsertedBrackets++; +}; + +CstyleBehaviour.recordMaybeInsert = function(editor, session, bracket) { + var cursor = editor.getCursorPosition(); + var line = session.doc.getLine(cursor.row); + if (!this.isMaybeInsertedClosing(cursor, line)) + context.maybeInsertedBrackets = 0; + context.maybeInsertedRow = cursor.row; + context.maybeInsertedLineStart = line.substr(0, cursor.column) + bracket; + context.maybeInsertedLineEnd = line.substr(cursor.column); + context.maybeInsertedBrackets++; +}; + +CstyleBehaviour.isAutoInsertedClosing = function(cursor, line, bracket) { + return context.autoInsertedBrackets > 0 && + cursor.row === context.autoInsertedRow && + bracket === context.autoInsertedLineEnd[0] && + line.substr(cursor.column) === context.autoInsertedLineEnd; +}; + +CstyleBehaviour.isMaybeInsertedClosing = function(cursor, line) { + return context.maybeInsertedBrackets > 0 && + cursor.row === context.maybeInsertedRow && + line.substr(cursor.column) === context.maybeInsertedLineEnd && + line.substr(0, cursor.column) == context.maybeInsertedLineStart; +}; + +CstyleBehaviour.popAutoInsertedClosing = function() { + context.autoInsertedLineEnd = context.autoInsertedLineEnd.substr(1); + context.autoInsertedBrackets--; +}; + +CstyleBehaviour.clearMaybeInsertedClosing = function() { + if (context) { + context.maybeInsertedBrackets = 0; + context.maybeInsertedRow = -1; + } +}; + + + +oop.inherits(CstyleBehaviour, Behaviour); + +exports.CstyleBehaviour = CstyleBehaviour; +}); + +define("ace/unicode",["require","exports","module"], function(require, exports, module) { +"use strict"; +var wordChars = [48,9,8,25,5,0,2,25,48,0,11,0,5,0,6,22,2,30,2,457,5,11,15,4,8,0,2,0,18,116,2,1,3,3,9,0,2,2,2,0,2,19,2,82,2,138,2,4,3,155,12,37,3,0,8,38,10,44,2,0,2,1,2,1,2,0,9,26,6,2,30,10,7,61,2,9,5,101,2,7,3,9,2,18,3,0,17,58,3,100,15,53,5,0,6,45,211,57,3,18,2,5,3,11,3,9,2,1,7,6,2,2,2,7,3,1,3,21,2,6,2,0,4,3,3,8,3,1,3,3,9,0,5,1,2,4,3,11,16,2,2,5,5,1,3,21,2,6,2,1,2,1,2,1,3,0,2,4,5,1,3,2,4,0,8,3,2,0,8,15,12,2,2,8,2,2,2,21,2,6,2,1,2,4,3,9,2,2,2,2,3,0,16,3,3,9,18,2,2,7,3,1,3,21,2,6,2,1,2,4,3,8,3,1,3,2,9,1,5,1,2,4,3,9,2,0,17,1,2,5,4,2,2,3,4,1,2,0,2,1,4,1,4,2,4,11,5,4,4,2,2,3,3,0,7,0,15,9,18,2,2,7,2,2,2,22,2,9,2,4,4,7,2,2,2,3,8,1,2,1,7,3,3,9,19,1,2,7,2,2,2,22,2,9,2,4,3,8,2,2,2,3,8,1,8,0,2,3,3,9,19,1,2,7,2,2,2,22,2,15,4,7,2,2,2,3,10,0,9,3,3,9,11,5,3,1,2,17,4,23,2,8,2,0,3,6,4,0,5,5,2,0,2,7,19,1,14,57,6,14,2,9,40,1,2,0,3,1,2,0,3,0,7,3,2,6,2,2,2,0,2,0,3,1,2,12,2,2,3,4,2,0,2,5,3,9,3,1,35,0,24,1,7,9,12,0,2,0,2,0,5,9,2,35,5,19,2,5,5,7,2,35,10,0,58,73,7,77,3,37,11,42,2,0,4,328,2,3,3,6,2,0,2,3,3,40,2,3,3,32,2,3,3,6,2,0,2,3,3,14,2,56,2,3,3,66,5,0,33,15,17,84,13,619,3,16,2,25,6,74,22,12,2,6,12,20,12,19,13,12,2,2,2,1,13,51,3,29,4,0,5,1,3,9,34,2,3,9,7,87,9,42,6,69,11,28,4,11,5,11,11,39,3,4,12,43,5,25,7,10,38,27,5,62,2,28,3,10,7,9,14,0,89,75,5,9,18,8,13,42,4,11,71,55,9,9,4,48,83,2,2,30,14,230,23,280,3,5,3,37,3,5,3,7,2,0,2,0,2,0,2,30,3,52,2,6,2,0,4,2,2,6,4,3,3,5,5,12,6,2,2,6,67,1,20,0,29,0,14,0,17,4,60,12,5,0,4,11,18,0,5,0,3,9,2,0,4,4,7,0,2,0,2,0,2,3,2,10,3,3,6,4,5,0,53,1,2684,46,2,46,2,132,7,6,15,37,11,53,10,0,17,22,10,6,2,6,2,6,2,6,2,6,2,6,2,6,2,6,2,31,48,0,470,1,36,5,2,4,6,1,5,85,3,1,3,2,2,89,2,3,6,40,4,93,18,23,57,15,513,6581,75,20939,53,1164,68,45,3,268,4,27,21,31,3,13,13,1,2,24,9,69,11,1,38,8,3,102,3,1,111,44,25,51,13,68,12,9,7,23,4,0,5,45,3,35,13,28,4,64,15,10,39,54,10,13,3,9,7,22,4,1,5,66,25,2,227,42,2,1,3,9,7,11171,13,22,5,48,8453,301,3,61,3,105,39,6,13,4,6,11,2,12,2,4,2,0,2,1,2,1,2,107,34,362,19,63,3,53,41,11,5,15,17,6,13,1,25,2,33,4,2,134,20,9,8,25,5,0,2,25,12,88,4,5,3,5,3,5,3,2]; + +var code = 0; +var str = []; +for (var i = 0; i < wordChars.length; i += 2) { + str.push(code += wordChars[i]); + if (wordChars[i + 1]) + str.push(45, code += wordChars[i + 1]); +} + +exports.wordChars = String.fromCharCode.apply(null, str); + +}); + +define("ace/mode/text",["require","exports","module","ace/config","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"], function(require, exports, module) { +"use strict"; +var config = require("../config"); + +var Tokenizer = require("../tokenizer").Tokenizer; +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var unicode = require("../unicode"); +var lang = require("../lib/lang"); +var TokenIterator = require("../token_iterator").TokenIterator; +var Range = require("../range").Range; + +var Mode = function() { + this.HighlightRules = TextHighlightRules; +}; + +(function() { + this.$defaultBehaviour = new CstyleBehaviour(); + + this.tokenRe = new RegExp("^[" + unicode.wordChars + "\\$_]+", "g"); + + this.nonTokenRe = new RegExp("^(?:[^" + unicode.wordChars + "\\$_]|\\s])+", "g"); + + this.getTokenizer = function() { + if (!this.$tokenizer) { + this.$highlightRules = this.$highlightRules || new this.HighlightRules(this.$highlightRuleConfig); + this.$tokenizer = new Tokenizer(this.$highlightRules.getRules()); + } + return this.$tokenizer; + }; + + this.lineCommentStart = ""; + this.blockComment = ""; + + this.toggleCommentLines = function(state, session, startRow, endRow) { + var doc = session.doc; + + var ignoreBlankLines = true; + var shouldRemove = true; + var minIndent = Infinity; + var tabSize = session.getTabSize(); + var insertAtTabStop = false; + + if (!this.lineCommentStart) { + if (!this.blockComment) + return false; + var lineCommentStart = this.blockComment.start; + var lineCommentEnd = this.blockComment.end; + var regexpStart = new RegExp("^(\\s*)(?:" + lang.escapeRegExp(lineCommentStart) + ")"); + var regexpEnd = new RegExp("(?:" + lang.escapeRegExp(lineCommentEnd) + ")\\s*$"); + + var comment = function(line, i) { + if (testRemove(line, i)) + return; + if (!ignoreBlankLines || /\S/.test(line)) { + doc.insertInLine({row: i, column: line.length}, lineCommentEnd); + doc.insertInLine({row: i, column: minIndent}, lineCommentStart); + } + }; + + var uncomment = function(line, i) { + var m; + if (m = line.match(regexpEnd)) + doc.removeInLine(i, line.length - m[0].length, line.length); + if (m = line.match(regexpStart)) + doc.removeInLine(i, m[1].length, m[0].length); + }; + + var testRemove = function(line, row) { + if (regexpStart.test(line)) + return true; + var tokens = session.getTokens(row); + for (var i = 0; i < tokens.length; i++) { + if (tokens[i].type === "comment") + return true; + } + }; + } else { + if (Array.isArray(this.lineCommentStart)) { + var regexpStart = this.lineCommentStart.map(lang.escapeRegExp).join("|"); + var lineCommentStart = this.lineCommentStart[0]; + } else { + var regexpStart = lang.escapeRegExp(this.lineCommentStart); + var lineCommentStart = this.lineCommentStart; + } + regexpStart = new RegExp("^(\\s*)(?:" + regexpStart + ") ?"); + + insertAtTabStop = session.getUseSoftTabs(); + + var uncomment = function(line, i) { + var m = line.match(regexpStart); + if (!m) return; + var start = m[1].length, end = m[0].length; + if (!shouldInsertSpace(line, start, end) && m[0][end - 1] == " ") + end--; + doc.removeInLine(i, start, end); + }; + var commentWithSpace = lineCommentStart + " "; + var comment = function(line, i) { + if (!ignoreBlankLines || /\S/.test(line)) { + if (shouldInsertSpace(line, minIndent, minIndent)) + doc.insertInLine({row: i, column: minIndent}, commentWithSpace); + else + doc.insertInLine({row: i, column: minIndent}, lineCommentStart); + } + }; + var testRemove = function(line, i) { + return regexpStart.test(line); + }; + + var shouldInsertSpace = function(line, before, after) { + var spaces = 0; + while (before-- && line.charAt(before) == " ") + spaces++; + if (spaces % tabSize != 0) + return false; + var spaces = 0; + while (line.charAt(after++) == " ") + spaces++; + if (tabSize > 2) + return spaces % tabSize != tabSize - 1; + else + return spaces % tabSize == 0; + }; + } + + function iter(fun) { + for (var i = startRow; i <= endRow; i++) + fun(doc.getLine(i), i); + } + + + var minEmptyLength = Infinity; + iter(function(line, i) { + var indent = line.search(/\S/); + if (indent !== -1) { + if (indent < minIndent) + minIndent = indent; + if (shouldRemove && !testRemove(line, i)) + shouldRemove = false; + } else if (minEmptyLength > line.length) { + minEmptyLength = line.length; + } + }); + + if (minIndent == Infinity) { + minIndent = minEmptyLength; + ignoreBlankLines = false; + shouldRemove = false; + } + + if (insertAtTabStop && minIndent % tabSize != 0) + minIndent = Math.floor(minIndent / tabSize) * tabSize; + + iter(shouldRemove ? uncomment : comment); + }; + + this.toggleBlockComment = function(state, session, range, cursor) { + var comment = this.blockComment; + if (!comment) + return; + if (!comment.start && comment[0]) + comment = comment[0]; + + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + + var sel = session.selection; + var initialRange = session.selection.toOrientedRange(); + var startRow, colDiff; + + if (token && /comment/.test(token.type)) { + var startRange, endRange; + while (token && /comment/.test(token.type)) { + var i = token.value.indexOf(comment.start); + if (i != -1) { + var row = iterator.getCurrentTokenRow(); + var column = iterator.getCurrentTokenColumn() + i; + startRange = new Range(row, column, row, column + comment.start.length); + break; + } + token = iterator.stepBackward(); + } + + var iterator = new TokenIterator(session, cursor.row, cursor.column); + var token = iterator.getCurrentToken(); + while (token && /comment/.test(token.type)) { + var i = token.value.indexOf(comment.end); + if (i != -1) { + var row = iterator.getCurrentTokenRow(); + var column = iterator.getCurrentTokenColumn() + i; + endRange = new Range(row, column, row, column + comment.end.length); + break; + } + token = iterator.stepForward(); + } + if (endRange) + session.remove(endRange); + if (startRange) { + session.remove(startRange); + startRow = startRange.start.row; + colDiff = -comment.start.length; + } + } else { + colDiff = comment.start.length; + startRow = range.start.row; + session.insert(range.end, comment.end); + session.insert(range.start, comment.start); + } + if (initialRange.start.row == startRow) + initialRange.start.column += colDiff; + if (initialRange.end.row == startRow) + initialRange.end.column += colDiff; + session.selection.fromOrientedRange(initialRange); + }; + + this.getNextLineIndent = function(state, line, tab) { + return this.$getIndent(line); + }; + + this.checkOutdent = function(state, line, input) { + return false; + }; + + this.autoOutdent = function(state, doc, row) { + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + + this.createWorker = function(session) { + return null; + }; + + this.createModeDelegates = function (mapping) { + this.$embeds = []; + this.$modes = {}; + for (var i in mapping) { + if (mapping[i]) { + var Mode = mapping[i]; + var id = Mode.prototype.$id; + var mode = config.$modes[id]; + if (!mode) + config.$modes[id] = mode = new Mode(); + if (!config.$modes[i]) + config.$modes[i] = mode; + this.$embeds.push(i); + this.$modes[i] = mode; + } + } + + var delegations = ["toggleBlockComment", "toggleCommentLines", "getNextLineIndent", + "checkOutdent", "autoOutdent", "transformAction", "getCompletions"]; + + for (var i = 0; i < delegations.length; i++) { + (function(scope) { + var functionName = delegations[i]; + var defaultHandler = scope[functionName]; + scope[delegations[i]] = function() { + return this.$delegator(functionName, arguments, defaultHandler); + }; + }(this)); + } + }; + + this.$delegator = function(method, args, defaultHandler) { + var state = args[0] || "start"; + if (typeof state != "string") { + if (Array.isArray(state[2])) { + var language = state[2][state[2].length - 1]; + var mode = this.$modes[language]; + if (mode) + return mode[method].apply(mode, [state[1]].concat([].slice.call(args, 1))); + } + state = state[0] || "start"; + } + + for (var i = 0; i < this.$embeds.length; i++) { + if (!this.$modes[this.$embeds[i]]) continue; + + var split = state.split(this.$embeds[i]); + if (!split[0] && split[1]) { + args[0] = split[1]; + var mode = this.$modes[this.$embeds[i]]; + return mode[method].apply(mode, args); + } + } + var ret = defaultHandler.apply(this, args); + return defaultHandler ? ret : undefined; + }; + + this.transformAction = function(state, action, editor, session, param) { + if (this.$behaviour) { + var behaviours = this.$behaviour.getBehaviours(); + for (var key in behaviours) { + if (behaviours[key][action]) { + var ret = behaviours[key][action].apply(this, arguments); + if (ret) { + return ret; + } + } + } + } + }; + + this.getKeywords = function(append) { + if (!this.completionKeywords) { + var rules = this.$tokenizer.rules; + var completionKeywords = []; + for (var rule in rules) { + var ruleItr = rules[rule]; + for (var r = 0, l = ruleItr.length; r < l; r++) { + if (typeof ruleItr[r].token === "string") { + if (/keyword|support|storage/.test(ruleItr[r].token)) + completionKeywords.push(ruleItr[r].regex); + } + else if (typeof ruleItr[r].token === "object") { + for (var a = 0, aLength = ruleItr[r].token.length; a < aLength; a++) { + if (/keyword|support|storage/.test(ruleItr[r].token[a])) { + var rule = ruleItr[r].regex.match(/\(.+?\)/g)[a]; + completionKeywords.push(rule.substr(1, rule.length - 2)); + } + } + } + } + } + this.completionKeywords = completionKeywords; + } + if (!append) + return this.$keywordList; + return completionKeywords.concat(this.$keywordList || []); + }; + + this.$createKeywordList = function() { + if (!this.$highlightRules) + this.getTokenizer(); + return this.$keywordList = this.$highlightRules.$keywordList || []; + }; + + this.getCompletions = function(state, session, pos, prefix) { + var keywords = this.$keywordList || this.$createKeywordList(); + return keywords.map(function(word) { + return { + name: word, + value: word, + score: 0, + meta: "keyword" + }; + }); + }; + + this.$id = "ace/mode/text"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + +define("ace/apply_delta",["require","exports","module"], function(require, exports, module) { +"use strict"; + +function throwDeltaError(delta, errorText){ + console.log("Invalid Delta:", delta); + throw "Invalid Delta: " + errorText; +} + +function positionInDocument(docLines, position) { + return position.row >= 0 && position.row < docLines.length && + position.column >= 0 && position.column <= docLines[position.row].length; +} + +function validateDelta(docLines, delta) { + if (delta.action != "insert" && delta.action != "remove") + throwDeltaError(delta, "delta.action must be 'insert' or 'remove'"); + if (!(delta.lines instanceof Array)) + throwDeltaError(delta, "delta.lines must be an Array"); + if (!delta.start || !delta.end) + throwDeltaError(delta, "delta.start/end must be an present"); + var start = delta.start; + if (!positionInDocument(docLines, delta.start)) + throwDeltaError(delta, "delta.start must be contained in document"); + var end = delta.end; + if (delta.action == "remove" && !positionInDocument(docLines, end)) + throwDeltaError(delta, "delta.end must contained in document for 'remove' actions"); + var numRangeRows = end.row - start.row; + var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0)); + if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars) + throwDeltaError(delta, "delta.range must match delta lines"); +} + +exports.applyDelta = function(docLines, delta, doNotValidate) { + + var row = delta.start.row; + var startColumn = delta.start.column; + var line = docLines[row] || ""; + switch (delta.action) { + case "insert": + var lines = delta.lines; + if (lines.length === 1) { + docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn); + } else { + var args = [row, 1].concat(delta.lines); + docLines.splice.apply(docLines, args); + docLines[row] = line.substring(0, startColumn) + docLines[row]; + docLines[row + delta.lines.length - 1] += line.substring(startColumn); + } + break; + case "remove": + var endColumn = delta.end.column; + var endRow = delta.end.row; + if (row === endRow) { + docLines[row] = line.substring(0, startColumn) + line.substring(endColumn); + } else { + docLines.splice( + row, endRow - row + 1, + line.substring(0, startColumn) + docLines[endRow].substring(endColumn) + ); + } + break; + } +}; +}); + +define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"], function(require, exports, module) { +"use strict"; + +var oop = require("./lib/oop"); +var EventEmitter = require("./lib/event_emitter").EventEmitter; + +var Anchor = exports.Anchor = function(doc, row, column) { + this.$onChange = this.onChange.bind(this); + this.attach(doc); + + if (typeof column == "undefined") + this.setPosition(row.row, row.column); + else + this.setPosition(row, column); +}; + +(function() { + + oop.implement(this, EventEmitter); + this.getPosition = function() { + return this.$clipPositionToDocument(this.row, this.column); + }; + this.getDocument = function() { + return this.document; + }; + this.$insertRight = false; + this.onChange = function(delta) { + if (delta.start.row == delta.end.row && delta.start.row != this.row) + return; + + if (delta.start.row > this.row) + return; + + var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight); + this.setPosition(point.row, point.column, true); + }; + + function $pointsInOrder(point1, point2, equalPointsInOrder) { + var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column; + return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter); + } + + function $getTransformedPoint(delta, point, moveIfEqual) { + var deltaIsInsert = delta.action == "insert"; + var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row); + var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column); + var deltaStart = delta.start; + var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range. + if ($pointsInOrder(point, deltaStart, moveIfEqual)) { + return { + row: point.row, + column: point.column + }; + } + if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) { + return { + row: point.row + deltaRowShift, + column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0) + }; + } + + return { + row: deltaStart.row, + column: deltaStart.column + }; + } + this.setPosition = function(row, column, noClip) { + var pos; + if (noClip) { + pos = { + row: row, + column: column + }; + } else { + pos = this.$clipPositionToDocument(row, column); + } + + if (this.row == pos.row && this.column == pos.column) + return; + + var old = { + row: this.row, + column: this.column + }; + + this.row = pos.row; + this.column = pos.column; + this._signal("change", { + old: old, + value: pos + }); + }; + this.detach = function() { + this.document.removeEventListener("change", this.$onChange); + }; + this.attach = function(doc) { + this.document = doc || this.document; + this.document.on("change", this.$onChange); + }; + this.$clipPositionToDocument = function(row, column) { + var pos = {}; + + if (row >= this.document.getLength()) { + pos.row = Math.max(0, this.document.getLength() - 1); + pos.column = this.document.getLine(pos.row).length; + } + else if (row < 0) { + pos.row = 0; + pos.column = 0; + } + else { + pos.row = row; + pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column)); + } + + if (column < 0) + pos.column = 0; + + return pos; + }; + +}).call(Anchor.prototype); + +}); + +define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"], function(require, exports, module) { +"use strict"; + +var oop = require("./lib/oop"); +var applyDelta = require("./apply_delta").applyDelta; +var EventEmitter = require("./lib/event_emitter").EventEmitter; +var Range = require("./range").Range; +var Anchor = require("./anchor").Anchor; + +var Document = function(textOrLines) { + this.$lines = [""]; + if (textOrLines.length === 0) { + this.$lines = [""]; + } else if (Array.isArray(textOrLines)) { + this.insertMergedLines({row: 0, column: 0}, textOrLines); + } else { + this.insert({row: 0, column:0}, textOrLines); + } +}; + +(function() { + + oop.implement(this, EventEmitter); + this.setValue = function(text) { + var len = this.getLength() - 1; + this.remove(new Range(0, 0, len, this.getLine(len).length)); + this.insert({row: 0, column: 0}, text); + }; + this.getValue = function() { + return this.getAllLines().join(this.getNewLineCharacter()); + }; + this.createAnchor = function(row, column) { + return new Anchor(this, row, column); + }; + if ("aaa".split(/a/).length === 0) { + this.$split = function(text) { + return text.replace(/\r\n|\r/g, "\n").split("\n"); + }; + } else { + this.$split = function(text) { + return text.split(/\r\n|\r|\n/); + }; + } + + + this.$detectNewLine = function(text) { + var match = text.match(/^.*?(\r\n|\r|\n)/m); + this.$autoNewLine = match ? match[1] : "\n"; + this._signal("changeNewLineMode"); + }; + this.getNewLineCharacter = function() { + switch (this.$newLineMode) { + case "windows": + return "\r\n"; + case "unix": + return "\n"; + default: + return this.$autoNewLine || "\n"; + } + }; + + this.$autoNewLine = ""; + this.$newLineMode = "auto"; + this.setNewLineMode = function(newLineMode) { + if (this.$newLineMode === newLineMode) + return; + + this.$newLineMode = newLineMode; + this._signal("changeNewLineMode"); + }; + this.getNewLineMode = function() { + return this.$newLineMode; + }; + this.isNewLine = function(text) { + return (text == "\r\n" || text == "\r" || text == "\n"); + }; + this.getLine = function(row) { + return this.$lines[row] || ""; + }; + this.getLines = function(firstRow, lastRow) { + return this.$lines.slice(firstRow, lastRow + 1); + }; + this.getAllLines = function() { + return this.getLines(0, this.getLength()); + }; + this.getLength = function() { + return this.$lines.length; + }; + this.getTextRange = function(range) { + return this.getLinesForRange(range).join(this.getNewLineCharacter()); + }; + this.getLinesForRange = function(range) { + var lines; + if (range.start.row === range.end.row) { + lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)]; + } else { + lines = this.getLines(range.start.row, range.end.row); + lines[0] = (lines[0] || "").substring(range.start.column); + var l = lines.length - 1; + if (range.end.row - range.start.row == l) + lines[l] = lines[l].substring(0, range.end.column); + } + return lines; + }; + this.insertLines = function(row, lines) { + console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."); + return this.insertFullLines(row, lines); + }; + this.removeLines = function(firstRow, lastRow) { + console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."); + return this.removeFullLines(firstRow, lastRow); + }; + this.insertNewLine = function(position) { + console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."); + return this.insertMergedLines(position, ["", ""]); + }; + this.insert = function(position, text) { + if (this.getLength() <= 1) + this.$detectNewLine(text); + + return this.insertMergedLines(position, this.$split(text)); + }; + this.insertInLine = function(position, text) { + var start = this.clippedPos(position.row, position.column); + var end = this.pos(position.row, position.column + text.length); + + this.applyDelta({ + start: start, + end: end, + action: "insert", + lines: [text] + }, true); + + return this.clonePos(end); + }; + + this.clippedPos = function(row, column) { + var length = this.getLength(); + if (row === undefined) { + row = length; + } else if (row < 0) { + row = 0; + } else if (row >= length) { + row = length - 1; + column = undefined; + } + var line = this.getLine(row); + if (column == undefined) + column = line.length; + column = Math.min(Math.max(column, 0), line.length); + return {row: row, column: column}; + }; + + this.clonePos = function(pos) { + return {row: pos.row, column: pos.column}; + }; + + this.pos = function(row, column) { + return {row: row, column: column}; + }; + + this.$clipPosition = function(position) { + var length = this.getLength(); + if (position.row >= length) { + position.row = Math.max(0, length - 1); + position.column = this.getLine(length - 1).length; + } else { + position.row = Math.max(0, position.row); + position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length); + } + return position; + }; + this.insertFullLines = function(row, lines) { + row = Math.min(Math.max(row, 0), this.getLength()); + var column = 0; + if (row < this.getLength()) { + lines = lines.concat([""]); + column = 0; + } else { + lines = [""].concat(lines); + row--; + column = this.$lines[row].length; + } + this.insertMergedLines({row: row, column: column}, lines); + }; + this.insertMergedLines = function(position, lines) { + var start = this.clippedPos(position.row, position.column); + var end = { + row: start.row + lines.length - 1, + column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length + }; + + this.applyDelta({ + start: start, + end: end, + action: "insert", + lines: lines + }); + + return this.clonePos(end); + }; + this.remove = function(range) { + var start = this.clippedPos(range.start.row, range.start.column); + var end = this.clippedPos(range.end.row, range.end.column); + this.applyDelta({ + start: start, + end: end, + action: "remove", + lines: this.getLinesForRange({start: start, end: end}) + }); + return this.clonePos(start); + }; + this.removeInLine = function(row, startColumn, endColumn) { + var start = this.clippedPos(row, startColumn); + var end = this.clippedPos(row, endColumn); + + this.applyDelta({ + start: start, + end: end, + action: "remove", + lines: this.getLinesForRange({start: start, end: end}) + }, true); + + return this.clonePos(start); + }; + this.removeFullLines = function(firstRow, lastRow) { + firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1); + lastRow = Math.min(Math.max(0, lastRow ), this.getLength() - 1); + var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0; + var deleteLastNewLine = lastRow < this.getLength() - 1; + var startRow = ( deleteFirstNewLine ? firstRow - 1 : firstRow ); + var startCol = ( deleteFirstNewLine ? this.getLine(startRow).length : 0 ); + var endRow = ( deleteLastNewLine ? lastRow + 1 : lastRow ); + var endCol = ( deleteLastNewLine ? 0 : this.getLine(endRow).length ); + var range = new Range(startRow, startCol, endRow, endCol); + var deletedLines = this.$lines.slice(firstRow, lastRow + 1); + + this.applyDelta({ + start: range.start, + end: range.end, + action: "remove", + lines: this.getLinesForRange(range) + }); + return deletedLines; + }; + this.removeNewLine = function(row) { + if (row < this.getLength() - 1 && row >= 0) { + this.applyDelta({ + start: this.pos(row, this.getLine(row).length), + end: this.pos(row + 1, 0), + action: "remove", + lines: ["", ""] + }); + } + }; + this.replace = function(range, text) { + if (!(range instanceof Range)) + range = Range.fromPoints(range.start, range.end); + if (text.length === 0 && range.isEmpty()) + return range.start; + if (text == this.getTextRange(range)) + return range.end; + + this.remove(range); + var end; + if (text) { + end = this.insert(range.start, text); + } + else { + end = range.start; + } + + return end; + }; + this.applyDeltas = function(deltas) { + for (var i=0; i=0; i--) { + this.revertDelta(deltas[i]); + } + }; + this.applyDelta = function(delta, doNotValidate) { + var isInsert = delta.action == "insert"; + if (isInsert ? delta.lines.length <= 1 && !delta.lines[0] + : !Range.comparePoints(delta.start, delta.end)) { + return; + } + + if (isInsert && delta.lines.length > 20000) { + this.$splitAndapplyLargeDelta(delta, 20000); + } + else { + applyDelta(this.$lines, delta, doNotValidate); + this._signal("change", delta); + } + }; + + this.$splitAndapplyLargeDelta = function(delta, MAX) { + var lines = delta.lines; + var l = lines.length - MAX + 1; + var row = delta.start.row; + var column = delta.start.column; + for (var from = 0, to = 0; from < l; from = to) { + to += MAX - 1; + var chunk = lines.slice(from, to); + chunk.push(""); + this.applyDelta({ + start: this.pos(row + from, column), + end: this.pos(row + to, column = 0), + action: delta.action, + lines: chunk + }, true); + } + delta.lines = lines.slice(from); + delta.start.row = row + from; + delta.start.column = column; + this.applyDelta(delta, true); + }; + this.revertDelta = function(delta) { + this.applyDelta({ + start: this.clonePos(delta.start), + end: this.clonePos(delta.end), + action: (delta.action == "insert" ? "remove" : "insert"), + lines: delta.lines.slice() + }); + }; + this.indexToPosition = function(index, startRow) { + var lines = this.$lines || this.getAllLines(); + var newlineLength = this.getNewLineCharacter().length; + for (var i = startRow || 0, l = lines.length; i < l; i++) { + index -= lines[i].length + newlineLength; + if (index < 0) + return {row: i, column: index + lines[i].length + newlineLength}; + } + return {row: l-1, column: index + lines[l-1].length + newlineLength}; + }; + this.positionToIndex = function(pos, startRow) { + var lines = this.$lines || this.getAllLines(); + var newlineLength = this.getNewLineCharacter().length; + var index = 0; + var row = Math.min(pos.row, lines.length); + for (var i = startRow || 0; i < row; ++i) + index += lines[i].length + newlineLength; + + return index + pos.column; + }; + +}).call(Document.prototype); + +exports.Document = Document; +}); + +define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"], function(require, exports, module) { +"use strict"; + +var oop = require("./lib/oop"); +var EventEmitter = require("./lib/event_emitter").EventEmitter; + +var BackgroundTokenizer = function(tokenizer, editor) { + this.running = false; + this.lines = []; + this.states = []; + this.currentLine = 0; + this.tokenizer = tokenizer; + + var self = this; + + this.$worker = function() { + if (!self.running) { return; } + + var workerStart = new Date(); + var currentLine = self.currentLine; + var endLine = -1; + var doc = self.doc; + + var startLine = currentLine; + while (self.lines[currentLine]) + currentLine++; + + var len = doc.getLength(); + var processedLines = 0; + self.running = false; + while (currentLine < len) { + self.$tokenizeRow(currentLine); + endLine = currentLine; + do { + currentLine++; + } while (self.lines[currentLine]); + processedLines ++; + if ((processedLines % 5 === 0) && (new Date() - workerStart) > 20) { + self.running = setTimeout(self.$worker, 20); + break; + } + } + self.currentLine = currentLine; + + if (endLine == -1) + endLine = currentLine; + + if (startLine <= endLine) + self.fireUpdateEvent(startLine, endLine); + }; +}; + +(function(){ + + oop.implement(this, EventEmitter); + this.setTokenizer = function(tokenizer) { + this.tokenizer = tokenizer; + this.lines = []; + this.states = []; + + this.start(0); + }; + this.setDocument = function(doc) { + this.doc = doc; + this.lines = []; + this.states = []; + + this.stop(); + }; + this.fireUpdateEvent = function(firstRow, lastRow) { + var data = { + first: firstRow, + last: lastRow + }; + this._signal("update", {data: data}); + }; + this.start = function(startRow) { + this.currentLine = Math.min(startRow || 0, this.currentLine, this.doc.getLength()); + this.lines.splice(this.currentLine, this.lines.length); + this.states.splice(this.currentLine, this.states.length); + + this.stop(); + this.running = setTimeout(this.$worker, 700); + }; + + this.scheduleStart = function() { + if (!this.running) + this.running = setTimeout(this.$worker, 700); + }; + + this.$updateOnChange = function(delta) { + var startRow = delta.start.row; + var len = delta.end.row - startRow; + + if (len === 0) { + this.lines[startRow] = null; + } else if (delta.action == "remove") { + this.lines.splice(startRow, len + 1, null); + this.states.splice(startRow, len + 1, null); + } else { + var args = Array(len + 1); + args.unshift(startRow, 1); + this.lines.splice.apply(this.lines, args); + this.states.splice.apply(this.states, args); + } + + this.currentLine = Math.min(startRow, this.currentLine, this.doc.getLength()); + + this.stop(); + }; + this.stop = function() { + if (this.running) + clearTimeout(this.running); + this.running = false; + }; + this.getTokens = function(row) { + return this.lines[row] || this.$tokenizeRow(row); + }; + this.getState = function(row) { + if (this.currentLine == row) + this.$tokenizeRow(row); + return this.states[row] || "start"; + }; + + this.$tokenizeRow = function(row) { + var line = this.doc.getLine(row); + var state = this.states[row - 1]; + + var data = this.tokenizer.getLineTokens(line, state, row); + + if (this.states[row] + "" !== data.state + "") { + this.states[row] = data.state; + this.lines[row + 1] = null; + if (this.currentLine > row + 1) + this.currentLine = row + 1; + } else if (this.currentLine == row) { + this.currentLine = row + 1; + } + + return this.lines[row] = data.tokens; + }; + +}).call(BackgroundTokenizer.prototype); + +exports.BackgroundTokenizer = BackgroundTokenizer; +}); + +define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"], function(require, exports, module) { +"use strict"; + +var lang = require("./lib/lang"); +var oop = require("./lib/oop"); +var Range = require("./range").Range; + +var SearchHighlight = function(regExp, clazz, type) { + this.setRegexp(regExp); + this.clazz = clazz; + this.type = type || "text"; +}; + +(function() { + this.MAX_RANGES = 500; + + this.setRegexp = function(regExp) { + if (this.regExp+"" == regExp+"") + return; + this.regExp = regExp; + this.cache = []; + }; + + this.update = function(html, markerLayer, session, config) { + if (!this.regExp) + return; + var start = config.firstRow, end = config.lastRow; + + for (var i = start; i <= end; i++) { + var ranges = this.cache[i]; + if (ranges == null) { + ranges = lang.getMatchOffsets(session.getLine(i), this.regExp); + if (ranges.length > this.MAX_RANGES) + ranges = ranges.slice(0, this.MAX_RANGES); + ranges = ranges.map(function(match) { + return new Range(i, match.offset, i, match.offset + match.length); + }); + this.cache[i] = ranges.length ? ranges : ""; + } + + for (var j = ranges.length; j --; ) { + markerLayer.drawSingleLineMarker( + html, ranges[j].toScreenRange(session), this.clazz, config); + } + } + }; + +}).call(SearchHighlight.prototype); + +exports.SearchHighlight = SearchHighlight; +}); + +define("ace/edit_session/fold_line",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; +function FoldLine(foldData, folds) { + this.foldData = foldData; + if (Array.isArray(folds)) { + this.folds = folds; + } else { + folds = this.folds = [ folds ]; + } + + var last = folds[folds.length - 1]; + this.range = new Range(folds[0].start.row, folds[0].start.column, + last.end.row, last.end.column); + this.start = this.range.start; + this.end = this.range.end; + + this.folds.forEach(function(fold) { + fold.setFoldLine(this); + }, this); +} + +(function() { + this.shiftRow = function(shift) { + this.start.row += shift; + this.end.row += shift; + this.folds.forEach(function(fold) { + fold.start.row += shift; + fold.end.row += shift; + }); + }; + + this.addFold = function(fold) { + if (fold.sameRow) { + if (fold.start.row < this.startRow || fold.endRow > this.endRow) { + throw new Error("Can't add a fold to this FoldLine as it has no connection"); + } + this.folds.push(fold); + this.folds.sort(function(a, b) { + return -a.range.compareEnd(b.start.row, b.start.column); + }); + if (this.range.compareEnd(fold.start.row, fold.start.column) > 0) { + this.end.row = fold.end.row; + this.end.column = fold.end.column; + } else if (this.range.compareStart(fold.end.row, fold.end.column) < 0) { + this.start.row = fold.start.row; + this.start.column = fold.start.column; + } + } else if (fold.start.row == this.end.row) { + this.folds.push(fold); + this.end.row = fold.end.row; + this.end.column = fold.end.column; + } else if (fold.end.row == this.start.row) { + this.folds.unshift(fold); + this.start.row = fold.start.row; + this.start.column = fold.start.column; + } else { + throw new Error("Trying to add fold to FoldRow that doesn't have a matching row"); + } + fold.foldLine = this; + }; + + this.containsRow = function(row) { + return row >= this.start.row && row <= this.end.row; + }; + + this.walk = function(callback, endRow, endColumn) { + var lastEnd = 0, + folds = this.folds, + fold, + cmp, stop, isNewRow = true; + + if (endRow == null) { + endRow = this.end.row; + endColumn = this.end.column; + } + + for (var i = 0; i < folds.length; i++) { + fold = folds[i]; + + cmp = fold.range.compareStart(endRow, endColumn); + if (cmp == -1) { + callback(null, endRow, endColumn, lastEnd, isNewRow); + return; + } + + stop = callback(null, fold.start.row, fold.start.column, lastEnd, isNewRow); + stop = !stop && callback(fold.placeholder, fold.start.row, fold.start.column, lastEnd); + if (stop || cmp === 0) { + return; + } + isNewRow = !fold.sameRow; + lastEnd = fold.end.column; + } + callback(null, endRow, endColumn, lastEnd, isNewRow); + }; + + this.getNextFoldTo = function(row, column) { + var fold, cmp; + for (var i = 0; i < this.folds.length; i++) { + fold = this.folds[i]; + cmp = fold.range.compareEnd(row, column); + if (cmp == -1) { + return { + fold: fold, + kind: "after" + }; + } else if (cmp === 0) { + return { + fold: fold, + kind: "inside" + }; + } + } + return null; + }; + + this.addRemoveChars = function(row, column, len) { + var ret = this.getNextFoldTo(row, column), + fold, folds; + if (ret) { + fold = ret.fold; + if (ret.kind == "inside" + && fold.start.column != column + && fold.start.row != row) + { + window.console && window.console.log(row, column, fold); + } else if (fold.start.row == row) { + folds = this.folds; + var i = folds.indexOf(fold); + if (i === 0) { + this.start.column += len; + } + for (i; i < folds.length; i++) { + fold = folds[i]; + fold.start.column += len; + if (!fold.sameRow) { + return; + } + fold.end.column += len; + } + this.end.column += len; + } + } + }; + + this.split = function(row, column) { + var pos = this.getNextFoldTo(row, column); + + if (!pos || pos.kind == "inside") + return null; + + var fold = pos.fold; + var folds = this.folds; + var foldData = this.foldData; + + var i = folds.indexOf(fold); + var foldBefore = folds[i - 1]; + this.end.row = foldBefore.end.row; + this.end.column = foldBefore.end.column; + folds = folds.splice(i, folds.length - i); + + var newFoldLine = new FoldLine(foldData, folds); + foldData.splice(foldData.indexOf(this) + 1, 0, newFoldLine); + return newFoldLine; + }; + + this.merge = function(foldLineNext) { + var folds = foldLineNext.folds; + for (var i = 0; i < folds.length; i++) { + this.addFold(folds[i]); + } + var foldData = this.foldData; + foldData.splice(foldData.indexOf(foldLineNext), 1); + }; + + this.toString = function() { + var ret = [this.range.toString() + ": [" ]; + + this.folds.forEach(function(fold) { + ret.push(" " + fold.toString()); + }); + ret.push("]"); + return ret.join("\n"); + }; + + this.idxToPosition = function(idx) { + var lastFoldEndColumn = 0; + + for (var i = 0; i < this.folds.length; i++) { + var fold = this.folds[i]; + + idx -= fold.start.column - lastFoldEndColumn; + if (idx < 0) { + return { + row: fold.start.row, + column: fold.start.column + idx + }; + } + + idx -= fold.placeholder.length; + if (idx < 0) { + return fold.start; + } + + lastFoldEndColumn = fold.end.column; + } + + return { + row: this.end.row, + column: this.end.column + idx + }; + }; +}).call(FoldLine.prototype); + +exports.FoldLine = FoldLine; +}); + +define("ace/range_list",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; +var Range = require("./range").Range; +var comparePoints = Range.comparePoints; + +var RangeList = function() { + this.ranges = []; +}; + +(function() { + this.comparePoints = comparePoints; + + this.pointIndex = function(pos, excludeEdges, startIndex) { + var list = this.ranges; + + for (var i = startIndex || 0; i < list.length; i++) { + var range = list[i]; + var cmpEnd = comparePoints(pos, range.end); + if (cmpEnd > 0) + continue; + var cmpStart = comparePoints(pos, range.start); + if (cmpEnd === 0) + return excludeEdges && cmpStart !== 0 ? -i-2 : i; + if (cmpStart > 0 || (cmpStart === 0 && !excludeEdges)) + return i; + + return -i-1; + } + return -i - 1; + }; + + this.add = function(range) { + var excludeEdges = !range.isEmpty(); + var startIndex = this.pointIndex(range.start, excludeEdges); + if (startIndex < 0) + startIndex = -startIndex - 1; + + var endIndex = this.pointIndex(range.end, excludeEdges, startIndex); + + if (endIndex < 0) + endIndex = -endIndex - 1; + else + endIndex++; + return this.ranges.splice(startIndex, endIndex - startIndex, range); + }; + + this.addList = function(list) { + var removed = []; + for (var i = list.length; i--; ) { + removed.push.apply(removed, this.add(list[i])); + } + return removed; + }; + + this.substractPoint = function(pos) { + var i = this.pointIndex(pos); + + if (i >= 0) + return this.ranges.splice(i, 1); + }; + this.merge = function() { + var removed = []; + var list = this.ranges; + + list = list.sort(function(a, b) { + return comparePoints(a.start, b.start); + }); + + var next = list[0], range; + for (var i = 1; i < list.length; i++) { + range = next; + next = list[i]; + var cmp = comparePoints(range.end, next.start); + if (cmp < 0) + continue; + + if (cmp == 0 && !range.isEmpty() && !next.isEmpty()) + continue; + + if (comparePoints(range.end, next.end) < 0) { + range.end.row = next.end.row; + range.end.column = next.end.column; + } + + list.splice(i, 1); + removed.push(next); + next = range; + i--; + } + + this.ranges = list; + + return removed; + }; + + this.contains = function(row, column) { + return this.pointIndex({row: row, column: column}) >= 0; + }; + + this.containsPoint = function(pos) { + return this.pointIndex(pos) >= 0; + }; + + this.rangeAtPoint = function(pos) { + var i = this.pointIndex(pos); + if (i >= 0) + return this.ranges[i]; + }; + + + this.clipRows = function(startRow, endRow) { + var list = this.ranges; + if (list[0].start.row > endRow || list[list.length - 1].start.row < startRow) + return []; + + var startIndex = this.pointIndex({row: startRow, column: 0}); + if (startIndex < 0) + startIndex = -startIndex - 1; + var endIndex = this.pointIndex({row: endRow, column: 0}, startIndex); + if (endIndex < 0) + endIndex = -endIndex - 1; + + var clipped = []; + for (var i = startIndex; i < endIndex; i++) { + clipped.push(list[i]); + } + return clipped; + }; + + this.removeAll = function() { + return this.ranges.splice(0, this.ranges.length); + }; + + this.attach = function(session) { + if (this.session) + this.detach(); + + this.session = session; + this.onChange = this.$onChange.bind(this); + + this.session.on('change', this.onChange); + }; + + this.detach = function() { + if (!this.session) + return; + this.session.removeListener('change', this.onChange); + this.session = null; + }; + + this.$onChange = function(delta) { + var start = delta.start; + var end = delta.end; + var startRow = start.row; + var endRow = end.row; + var ranges = this.ranges; + for (var i = 0, n = ranges.length; i < n; i++) { + var r = ranges[i]; + if (r.end.row >= startRow) + break; + } + + if (delta.action == "insert") { + var lineDif = endRow - startRow; + var colDiff = -start.column + end.column; + for (; i < n; i++) { + var r = ranges[i]; + if (r.start.row > startRow) + break; + + if (r.start.row == startRow && r.start.column >= start.column) { + if (r.start.column == start.column && this.$insertRight) { + } else { + r.start.column += colDiff; + r.start.row += lineDif; + } + } + if (r.end.row == startRow && r.end.column >= start.column) { + if (r.end.column == start.column && this.$insertRight) { + continue; + } + if (r.end.column == start.column && colDiff > 0 && i < n - 1) { + if (r.end.column > r.start.column && r.end.column == ranges[i+1].start.column) + r.end.column -= colDiff; + } + r.end.column += colDiff; + r.end.row += lineDif; + } + } + } else { + var lineDif = startRow - endRow; + var colDiff = start.column - end.column; + for (; i < n; i++) { + var r = ranges[i]; + + if (r.start.row > endRow) + break; + + if (r.end.row < endRow + && ( + startRow < r.end.row + || startRow == r.end.row && start.column < r.end.column + ) + ) { + r.end.row = startRow; + r.end.column = start.column; + } + else if (r.end.row == endRow) { + if (r.end.column <= end.column) { + if (lineDif || r.end.column > start.column) { + r.end.column = start.column; + r.end.row = start.row; + } + } + else { + r.end.column += colDiff; + r.end.row += lineDif; + } + } + else if (r.end.row > endRow) { + r.end.row += lineDif; + } + + if (r.start.row < endRow + && ( + startRow < r.start.row + || startRow == r.start.row && start.column < r.start.column + ) + ) { + r.start.row = startRow; + r.start.column = start.column; + } + else if (r.start.row == endRow) { + if (r.start.column <= end.column) { + if (lineDif || r.start.column > start.column) { + r.start.column = start.column; + r.start.row = start.row; + } + } + else { + r.start.column += colDiff; + r.start.row += lineDif; + } + } + else if (r.start.row > endRow) { + r.start.row += lineDif; + } + } + } + + if (lineDif != 0 && i < n) { + for (; i < n; i++) { + var r = ranges[i]; + r.start.row += lineDif; + r.end.row += lineDif; + } + } + }; + +}).call(RangeList.prototype); + +exports.RangeList = RangeList; +}); + +define("ace/edit_session/fold",["require","exports","module","ace/range","ace/range_list","ace/lib/oop"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; +var RangeList = require("../range_list").RangeList; +var oop = require("../lib/oop"); +var Fold = exports.Fold = function(range, placeholder) { + this.foldLine = null; + this.placeholder = placeholder; + this.range = range; + this.start = range.start; + this.end = range.end; + + this.sameRow = range.start.row == range.end.row; + this.subFolds = this.ranges = []; +}; + +oop.inherits(Fold, RangeList); + +(function() { + + this.toString = function() { + return '"' + this.placeholder + '" ' + this.range.toString(); + }; + + this.setFoldLine = function(foldLine) { + this.foldLine = foldLine; + this.subFolds.forEach(function(fold) { + fold.setFoldLine(foldLine); + }); + }; + + this.clone = function() { + var range = this.range.clone(); + var fold = new Fold(range, this.placeholder); + this.subFolds.forEach(function(subFold) { + fold.subFolds.push(subFold.clone()); + }); + fold.collapseChildren = this.collapseChildren; + return fold; + }; + + this.addSubFold = function(fold) { + if (this.range.isEqual(fold)) + return; + + if (!this.range.containsRange(fold)) + throw new Error("A fold can't intersect already existing fold" + fold.range + this.range); + consumeRange(fold, this.start); + + var row = fold.start.row, column = fold.start.column; + for (var i = 0, cmp = -1; i < this.subFolds.length; i++) { + cmp = this.subFolds[i].range.compare(row, column); + if (cmp != 1) + break; + } + var afterStart = this.subFolds[i]; + + if (cmp == 0) + return afterStart.addSubFold(fold); + var row = fold.range.end.row, column = fold.range.end.column; + for (var j = i, cmp = -1; j < this.subFolds.length; j++) { + cmp = this.subFolds[j].range.compare(row, column); + if (cmp != 1) + break; + } + var afterEnd = this.subFolds[j]; + + if (cmp == 0) + throw new Error("A fold can't intersect already existing fold" + fold.range + this.range); + + var consumedFolds = this.subFolds.splice(i, j - i, fold); + fold.setFoldLine(this.foldLine); + + return fold; + }; + + this.restoreRange = function(range) { + return restoreRange(range, this.start); + }; + +}).call(Fold.prototype); + +function consumePoint(point, anchor) { + point.row -= anchor.row; + if (point.row == 0) + point.column -= anchor.column; +} +function consumeRange(range, anchor) { + consumePoint(range.start, anchor); + consumePoint(range.end, anchor); +} +function restorePoint(point, anchor) { + if (point.row == 0) + point.column += anchor.column; + point.row += anchor.row; +} +function restoreRange(range, anchor) { + restorePoint(range.start, anchor); + restorePoint(range.end, anchor); +} + +}); + +define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; +var FoldLine = require("./fold_line").FoldLine; +var Fold = require("./fold").Fold; +var TokenIterator = require("../token_iterator").TokenIterator; + +function Folding() { + this.getFoldAt = function(row, column, side) { + var foldLine = this.getFoldLine(row); + if (!foldLine) + return null; + + var folds = foldLine.folds; + for (var i = 0; i < folds.length; i++) { + var fold = folds[i]; + if (fold.range.contains(row, column)) { + if (side == 1 && fold.range.isEnd(row, column)) { + continue; + } else if (side == -1 && fold.range.isStart(row, column)) { + continue; + } + return fold; + } + } + }; + this.getFoldsInRange = function(range) { + var start = range.start; + var end = range.end; + var foldLines = this.$foldData; + var foundFolds = []; + + start.column += 1; + end.column -= 1; + + for (var i = 0; i < foldLines.length; i++) { + var cmp = foldLines[i].range.compareRange(range); + if (cmp == 2) { + continue; + } + else if (cmp == -2) { + break; + } + + var folds = foldLines[i].folds; + for (var j = 0; j < folds.length; j++) { + var fold = folds[j]; + cmp = fold.range.compareRange(range); + if (cmp == -2) { + break; + } else if (cmp == 2) { + continue; + } else + if (cmp == 42) { + break; + } + foundFolds.push(fold); + } + } + start.column -= 1; + end.column += 1; + + return foundFolds; + }; + + this.getFoldsInRangeList = function(ranges) { + if (Array.isArray(ranges)) { + var folds = []; + ranges.forEach(function(range) { + folds = folds.concat(this.getFoldsInRange(range)); + }, this); + } else { + var folds = this.getFoldsInRange(ranges); + } + return folds; + }; + this.getAllFolds = function() { + var folds = []; + var foldLines = this.$foldData; + + for (var i = 0; i < foldLines.length; i++) + for (var j = 0; j < foldLines[i].folds.length; j++) + folds.push(foldLines[i].folds[j]); + + return folds; + }; + this.getFoldStringAt = function(row, column, trim, foldLine) { + foldLine = foldLine || this.getFoldLine(row); + if (!foldLine) + return null; + + var lastFold = { + end: { column: 0 } + }; + var str, fold; + for (var i = 0; i < foldLine.folds.length; i++) { + fold = foldLine.folds[i]; + var cmp = fold.range.compareEnd(row, column); + if (cmp == -1) { + str = this + .getLine(fold.start.row) + .substring(lastFold.end.column, fold.start.column); + break; + } + else if (cmp === 0) { + return null; + } + lastFold = fold; + } + if (!str) + str = this.getLine(fold.start.row).substring(lastFold.end.column); + + if (trim == -1) + return str.substring(0, column - lastFold.end.column); + else if (trim == 1) + return str.substring(column - lastFold.end.column); + else + return str; + }; + + this.getFoldLine = function(docRow, startFoldLine) { + var foldData = this.$foldData; + var i = 0; + if (startFoldLine) + i = foldData.indexOf(startFoldLine); + if (i == -1) + i = 0; + for (i; i < foldData.length; i++) { + var foldLine = foldData[i]; + if (foldLine.start.row <= docRow && foldLine.end.row >= docRow) { + return foldLine; + } else if (foldLine.end.row > docRow) { + return null; + } + } + return null; + }; + this.getNextFoldLine = function(docRow, startFoldLine) { + var foldData = this.$foldData; + var i = 0; + if (startFoldLine) + i = foldData.indexOf(startFoldLine); + if (i == -1) + i = 0; + for (i; i < foldData.length; i++) { + var foldLine = foldData[i]; + if (foldLine.end.row >= docRow) { + return foldLine; + } + } + return null; + }; + + this.getFoldedRowCount = function(first, last) { + var foldData = this.$foldData, rowCount = last-first+1; + for (var i = 0; i < foldData.length; i++) { + var foldLine = foldData[i], + end = foldLine.end.row, + start = foldLine.start.row; + if (end >= last) { + if (start < last) { + if (start >= first) + rowCount -= last-start; + else + rowCount = 0; // in one fold + } + break; + } else if (end >= first){ + if (start >= first) // fold inside range + rowCount -= end-start; + else + rowCount -= end-first+1; + } + } + return rowCount; + }; + + this.$addFoldLine = function(foldLine) { + this.$foldData.push(foldLine); + this.$foldData.sort(function(a, b) { + return a.start.row - b.start.row; + }); + return foldLine; + }; + this.addFold = function(placeholder, range) { + var foldData = this.$foldData; + var added = false; + var fold; + + if (placeholder instanceof Fold) + fold = placeholder; + else { + fold = new Fold(range, placeholder); + fold.collapseChildren = range.collapseChildren; + } + this.$clipRangeToDocument(fold.range); + + var startRow = fold.start.row; + var startColumn = fold.start.column; + var endRow = fold.end.row; + var endColumn = fold.end.column; + if (!(startRow < endRow || + startRow == endRow && startColumn <= endColumn - 2)) + throw new Error("The range has to be at least 2 characters width"); + + var startFold = this.getFoldAt(startRow, startColumn, 1); + var endFold = this.getFoldAt(endRow, endColumn, -1); + if (startFold && endFold == startFold) + return startFold.addSubFold(fold); + + if (startFold && !startFold.range.isStart(startRow, startColumn)) + this.removeFold(startFold); + + if (endFold && !endFold.range.isEnd(endRow, endColumn)) + this.removeFold(endFold); + var folds = this.getFoldsInRange(fold.range); + if (folds.length > 0) { + this.removeFolds(folds); + folds.forEach(function(subFold) { + fold.addSubFold(subFold); + }); + } + + for (var i = 0; i < foldData.length; i++) { + var foldLine = foldData[i]; + if (endRow == foldLine.start.row) { + foldLine.addFold(fold); + added = true; + break; + } else if (startRow == foldLine.end.row) { + foldLine.addFold(fold); + added = true; + if (!fold.sameRow) { + var foldLineNext = foldData[i + 1]; + if (foldLineNext && foldLineNext.start.row == endRow) { + foldLine.merge(foldLineNext); + break; + } + } + break; + } else if (endRow <= foldLine.start.row) { + break; + } + } + + if (!added) + foldLine = this.$addFoldLine(new FoldLine(this.$foldData, fold)); + + if (this.$useWrapMode) + this.$updateWrapData(foldLine.start.row, foldLine.start.row); + else + this.$updateRowLengthCache(foldLine.start.row, foldLine.start.row); + this.$modified = true; + this._signal("changeFold", { data: fold, action: "add" }); + + return fold; + }; + + this.addFolds = function(folds) { + folds.forEach(function(fold) { + this.addFold(fold); + }, this); + }; + + this.removeFold = function(fold) { + var foldLine = fold.foldLine; + var startRow = foldLine.start.row; + var endRow = foldLine.end.row; + + var foldLines = this.$foldData; + var folds = foldLine.folds; + if (folds.length == 1) { + foldLines.splice(foldLines.indexOf(foldLine), 1); + } else + if (foldLine.range.isEnd(fold.end.row, fold.end.column)) { + folds.pop(); + foldLine.end.row = folds[folds.length - 1].end.row; + foldLine.end.column = folds[folds.length - 1].end.column; + } else + if (foldLine.range.isStart(fold.start.row, fold.start.column)) { + folds.shift(); + foldLine.start.row = folds[0].start.row; + foldLine.start.column = folds[0].start.column; + } else + if (fold.sameRow) { + folds.splice(folds.indexOf(fold), 1); + } else + { + var newFoldLine = foldLine.split(fold.start.row, fold.start.column); + folds = newFoldLine.folds; + folds.shift(); + newFoldLine.start.row = folds[0].start.row; + newFoldLine.start.column = folds[0].start.column; + } + + if (!this.$updating) { + if (this.$useWrapMode) + this.$updateWrapData(startRow, endRow); + else + this.$updateRowLengthCache(startRow, endRow); + } + this.$modified = true; + this._signal("changeFold", { data: fold, action: "remove" }); + }; + + this.removeFolds = function(folds) { + var cloneFolds = []; + for (var i = 0; i < folds.length; i++) { + cloneFolds.push(folds[i]); + } + + cloneFolds.forEach(function(fold) { + this.removeFold(fold); + }, this); + this.$modified = true; + }; + + this.expandFold = function(fold) { + this.removeFold(fold); + fold.subFolds.forEach(function(subFold) { + fold.restoreRange(subFold); + this.addFold(subFold); + }, this); + if (fold.collapseChildren > 0) { + this.foldAll(fold.start.row+1, fold.end.row, fold.collapseChildren-1); + } + fold.subFolds = []; + }; + + this.expandFolds = function(folds) { + folds.forEach(function(fold) { + this.expandFold(fold); + }, this); + }; + + this.unfold = function(location, expandInner) { + var range, folds; + if (location == null) { + range = new Range(0, 0, this.getLength(), 0); + expandInner = true; + } else if (typeof location == "number") + range = new Range(location, 0, location, this.getLine(location).length); + else if ("row" in location) + range = Range.fromPoints(location, location); + else + range = location; + + folds = this.getFoldsInRangeList(range); + if (expandInner) { + this.removeFolds(folds); + } else { + var subFolds = folds; + while (subFolds.length) { + this.expandFolds(subFolds); + subFolds = this.getFoldsInRangeList(range); + } + } + if (folds.length) + return folds; + }; + this.isRowFolded = function(docRow, startFoldRow) { + return !!this.getFoldLine(docRow, startFoldRow); + }; + + this.getRowFoldEnd = function(docRow, startFoldRow) { + var foldLine = this.getFoldLine(docRow, startFoldRow); + return foldLine ? foldLine.end.row : docRow; + }; + + this.getRowFoldStart = function(docRow, startFoldRow) { + var foldLine = this.getFoldLine(docRow, startFoldRow); + return foldLine ? foldLine.start.row : docRow; + }; + + this.getFoldDisplayLine = function(foldLine, endRow, endColumn, startRow, startColumn) { + if (startRow == null) + startRow = foldLine.start.row; + if (startColumn == null) + startColumn = 0; + if (endRow == null) + endRow = foldLine.end.row; + if (endColumn == null) + endColumn = this.getLine(endRow).length; + var doc = this.doc; + var textLine = ""; + + foldLine.walk(function(placeholder, row, column, lastColumn) { + if (row < startRow) + return; + if (row == startRow) { + if (column < startColumn) + return; + lastColumn = Math.max(startColumn, lastColumn); + } + + if (placeholder != null) { + textLine += placeholder; + } else { + textLine += doc.getLine(row).substring(lastColumn, column); + } + }, endRow, endColumn); + return textLine; + }; + + this.getDisplayLine = function(row, endColumn, startRow, startColumn) { + var foldLine = this.getFoldLine(row); + + if (!foldLine) { + var line; + line = this.doc.getLine(row); + return line.substring(startColumn || 0, endColumn || line.length); + } else { + return this.getFoldDisplayLine( + foldLine, row, endColumn, startRow, startColumn); + } + }; + + this.$cloneFoldData = function() { + var fd = []; + fd = this.$foldData.map(function(foldLine) { + var folds = foldLine.folds.map(function(fold) { + return fold.clone(); + }); + return new FoldLine(fd, folds); + }); + + return fd; + }; + + this.toggleFold = function(tryToUnfold) { + var selection = this.selection; + var range = selection.getRange(); + var fold; + var bracketPos; + + if (range.isEmpty()) { + var cursor = range.start; + fold = this.getFoldAt(cursor.row, cursor.column); + + if (fold) { + this.expandFold(fold); + return; + } else if (bracketPos = this.findMatchingBracket(cursor)) { + if (range.comparePoint(bracketPos) == 1) { + range.end = bracketPos; + } else { + range.start = bracketPos; + range.start.column++; + range.end.column--; + } + } else if (bracketPos = this.findMatchingBracket({row: cursor.row, column: cursor.column + 1})) { + if (range.comparePoint(bracketPos) == 1) + range.end = bracketPos; + else + range.start = bracketPos; + + range.start.column++; + } else { + range = this.getCommentFoldRange(cursor.row, cursor.column) || range; + } + } else { + var folds = this.getFoldsInRange(range); + if (tryToUnfold && folds.length) { + this.expandFolds(folds); + return; + } else if (folds.length == 1 ) { + fold = folds[0]; + } + } + + if (!fold) + fold = this.getFoldAt(range.start.row, range.start.column); + + if (fold && fold.range.toString() == range.toString()) { + this.expandFold(fold); + return; + } + + var placeholder = "..."; + if (!range.isMultiLine()) { + placeholder = this.getTextRange(range); + if (placeholder.length < 4) + return; + placeholder = placeholder.trim().substring(0, 2) + ".."; + } + + this.addFold(placeholder, range); + }; + + this.getCommentFoldRange = function(row, column, dir) { + var iterator = new TokenIterator(this, row, column); + var token = iterator.getCurrentToken(); + var type = token.type; + if (token && /^comment|string/.test(type)) { + type = type.match(/comment|string/)[0]; + if (type == "comment") + type += "|doc-start"; + var re = new RegExp(type); + var range = new Range(); + if (dir != 1) { + do { + token = iterator.stepBackward(); + } while (token && re.test(token.type)); + iterator.stepForward(); + } + + range.start.row = iterator.getCurrentTokenRow(); + range.start.column = iterator.getCurrentTokenColumn() + 2; + + iterator = new TokenIterator(this, row, column); + + if (dir != -1) { + var lastRow = -1; + do { + token = iterator.stepForward(); + if (lastRow == -1) { + var state = this.getState(iterator.$row); + if (!re.test(state)) + lastRow = iterator.$row; + } else if (iterator.$row > lastRow) { + break; + } + } while (token && re.test(token.type)); + token = iterator.stepBackward(); + } else + token = iterator.getCurrentToken(); + + range.end.row = iterator.getCurrentTokenRow(); + range.end.column = iterator.getCurrentTokenColumn() + token.value.length - 2; + return range; + } + }; + + this.foldAll = function(startRow, endRow, depth) { + if (depth == undefined) + depth = 100000; // JSON.stringify doesn't hanle Infinity + var foldWidgets = this.foldWidgets; + if (!foldWidgets) + return; // mode doesn't support folding + endRow = endRow || this.getLength(); + startRow = startRow || 0; + for (var row = startRow; row < endRow; row++) { + if (foldWidgets[row] == null) + foldWidgets[row] = this.getFoldWidget(row); + if (foldWidgets[row] != "start") + continue; + + var range = this.getFoldWidgetRange(row); + if (range && range.isMultiLine() + && range.end.row <= endRow + && range.start.row >= startRow + ) { + row = range.end.row; + try { + var fold = this.addFold("...", range); + if (fold) + fold.collapseChildren = depth; + } catch(e) {} + } + } + }; + this.$foldStyles = { + "manual": 1, + "markbegin": 1, + "markbeginend": 1 + }; + this.$foldStyle = "markbegin"; + this.setFoldStyle = function(style) { + if (!this.$foldStyles[style]) + throw new Error("invalid fold style: " + style + "[" + Object.keys(this.$foldStyles).join(", ") + "]"); + + if (this.$foldStyle == style) + return; + + this.$foldStyle = style; + + if (style == "manual") + this.unfold(); + var mode = this.$foldMode; + this.$setFolding(null); + this.$setFolding(mode); + }; + + this.$setFolding = function(foldMode) { + if (this.$foldMode == foldMode) + return; + + this.$foldMode = foldMode; + + this.off('change', this.$updateFoldWidgets); + this.off('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets); + this._signal("changeAnnotation"); + + if (!foldMode || this.$foldStyle == "manual") { + this.foldWidgets = null; + return; + } + + this.foldWidgets = []; + this.getFoldWidget = foldMode.getFoldWidget.bind(foldMode, this, this.$foldStyle); + this.getFoldWidgetRange = foldMode.getFoldWidgetRange.bind(foldMode, this, this.$foldStyle); + + this.$updateFoldWidgets = this.updateFoldWidgets.bind(this); + this.$tokenizerUpdateFoldWidgets = this.tokenizerUpdateFoldWidgets.bind(this); + this.on('change', this.$updateFoldWidgets); + this.on('tokenizerUpdate', this.$tokenizerUpdateFoldWidgets); + }; + + this.getParentFoldRangeData = function (row, ignoreCurrent) { + var fw = this.foldWidgets; + if (!fw || (ignoreCurrent && fw[row])) + return {}; + + var i = row - 1, firstRange; + while (i >= 0) { + var c = fw[i]; + if (c == null) + c = fw[i] = this.getFoldWidget(i); + + if (c == "start") { + var range = this.getFoldWidgetRange(i); + if (!firstRange) + firstRange = range; + if (range && range.end.row >= row) + break; + } + i--; + } + + return { + range: i !== -1 && range, + firstRange: firstRange + }; + }; + + this.onFoldWidgetClick = function(row, e) { + e = e.domEvent; + var options = { + children: e.shiftKey, + all: e.ctrlKey || e.metaKey, + siblings: e.altKey + }; + + var range = this.$toggleFoldWidget(row, options); + if (!range) { + var el = (e.target || e.srcElement); + if (el && /ace_fold-widget/.test(el.className)) + el.className += " ace_invalid"; + } + }; + + this.$toggleFoldWidget = function(row, options) { + if (!this.getFoldWidget) + return; + var type = this.getFoldWidget(row); + var line = this.getLine(row); + + var dir = type === "end" ? -1 : 1; + var fold = this.getFoldAt(row, dir === -1 ? 0 : line.length, dir); + + if (fold) { + if (options.children || options.all) + this.removeFold(fold); + else + this.expandFold(fold); + return fold; + } + + var range = this.getFoldWidgetRange(row, true); + if (range && !range.isMultiLine()) { + fold = this.getFoldAt(range.start.row, range.start.column, 1); + if (fold && range.isEqual(fold.range)) { + this.removeFold(fold); + return fold; + } + } + + if (options.siblings) { + var data = this.getParentFoldRangeData(row); + if (data.range) { + var startRow = data.range.start.row + 1; + var endRow = data.range.end.row; + } + this.foldAll(startRow, endRow, options.all ? 10000 : 0); + } else if (options.children) { + endRow = range ? range.end.row : this.getLength(); + this.foldAll(row + 1, endRow, options.all ? 10000 : 0); + } else if (range) { + if (options.all) + range.collapseChildren = 10000; + this.addFold("...", range); + } + + return range; + }; + + + + this.toggleFoldWidget = function(toggleParent) { + var row = this.selection.getCursor().row; + row = this.getRowFoldStart(row); + var range = this.$toggleFoldWidget(row, {}); + + if (range) + return; + var data = this.getParentFoldRangeData(row, true); + range = data.range || data.firstRange; + + if (range) { + row = range.start.row; + var fold = this.getFoldAt(row, this.getLine(row).length, 1); + + if (fold) { + this.removeFold(fold); + } else { + this.addFold("...", range); + } + } + }; + + this.updateFoldWidgets = function(delta) { + var firstRow = delta.start.row; + var len = delta.end.row - firstRow; + + if (len === 0) { + this.foldWidgets[firstRow] = null; + } else if (delta.action == 'remove') { + this.foldWidgets.splice(firstRow, len + 1, null); + } else { + var args = Array(len + 1); + args.unshift(firstRow, 1); + this.foldWidgets.splice.apply(this.foldWidgets, args); + } + }; + this.tokenizerUpdateFoldWidgets = function(e) { + var rows = e.data; + if (rows.first != rows.last) { + if (this.foldWidgets.length > rows.first) + this.foldWidgets.splice(rows.first, this.foldWidgets.length); + } + }; +} + +exports.Folding = Folding; + +}); + +define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"], function(require, exports, module) { +"use strict"; + +var TokenIterator = require("../token_iterator").TokenIterator; +var Range = require("../range").Range; + + +function BracketMatch() { + + this.findMatchingBracket = function(position, chr) { + if (position.column == 0) return null; + + var charBeforeCursor = chr || this.getLine(position.row).charAt(position.column-1); + if (charBeforeCursor == "") return null; + + var match = charBeforeCursor.match(/([\(\[\{])|([\)\]\}])/); + if (!match) + return null; + + if (match[1]) + return this.$findClosingBracket(match[1], position); + else + return this.$findOpeningBracket(match[2], position); + }; + + this.getBracketRange = function(pos) { + var line = this.getLine(pos.row); + var before = true, range; + + var chr = line.charAt(pos.column-1); + var match = chr && chr.match(/([\(\[\{])|([\)\]\}])/); + if (!match) { + chr = line.charAt(pos.column); + pos = {row: pos.row, column: pos.column + 1}; + match = chr && chr.match(/([\(\[\{])|([\)\]\}])/); + before = false; + } + if (!match) + return null; + + if (match[1]) { + var bracketPos = this.$findClosingBracket(match[1], pos); + if (!bracketPos) + return null; + range = Range.fromPoints(pos, bracketPos); + if (!before) { + range.end.column++; + range.start.column--; + } + range.cursor = range.end; + } else { + var bracketPos = this.$findOpeningBracket(match[2], pos); + if (!bracketPos) + return null; + range = Range.fromPoints(bracketPos, pos); + if (!before) { + range.start.column++; + range.end.column--; + } + range.cursor = range.start; + } + + return range; + }; + + this.$brackets = { + ")": "(", + "(": ")", + "]": "[", + "[": "]", + "{": "}", + "}": "{", + "<": ">", + ">": "<" + }; + + this.$findOpeningBracket = function(bracket, position, typeRe) { + var openBracket = this.$brackets[bracket]; + var depth = 1; + + var iterator = new TokenIterator(this, position.row, position.column); + var token = iterator.getCurrentToken(); + if (!token) + token = iterator.stepForward(); + if (!token) + return; + + if (!typeRe){ + typeRe = new RegExp( + "(\\.?" + + token.type.replace(".", "\\.").replace("rparen", ".paren") + .replace(/\b(?:end)\b/, "(?:start|begin|end)") + + ")+" + ); + } + var valueIndex = position.column - iterator.getCurrentTokenColumn() - 2; + var value = token.value; + + while (true) { + + while (valueIndex >= 0) { + var chr = value.charAt(valueIndex); + if (chr == openBracket) { + depth -= 1; + if (depth == 0) { + return {row: iterator.getCurrentTokenRow(), + column: valueIndex + iterator.getCurrentTokenColumn()}; + } + } + else if (chr == bracket) { + depth += 1; + } + valueIndex -= 1; + } + do { + token = iterator.stepBackward(); + } while (token && !typeRe.test(token.type)); + + if (token == null) + break; + + value = token.value; + valueIndex = value.length - 1; + } + + return null; + }; + + this.$findClosingBracket = function(bracket, position, typeRe) { + var closingBracket = this.$brackets[bracket]; + var depth = 1; + + var iterator = new TokenIterator(this, position.row, position.column); + var token = iterator.getCurrentToken(); + if (!token) + token = iterator.stepForward(); + if (!token) + return; + + if (!typeRe){ + typeRe = new RegExp( + "(\\.?" + + token.type.replace(".", "\\.").replace("lparen", ".paren") + .replace(/\b(?:start|begin)\b/, "(?:start|begin|end)") + + ")+" + ); + } + var valueIndex = position.column - iterator.getCurrentTokenColumn(); + + while (true) { + + var value = token.value; + var valueLength = value.length; + while (valueIndex < valueLength) { + var chr = value.charAt(valueIndex); + if (chr == closingBracket) { + depth -= 1; + if (depth == 0) { + return {row: iterator.getCurrentTokenRow(), + column: valueIndex + iterator.getCurrentTokenColumn()}; + } + } + else if (chr == bracket) { + depth += 1; + } + valueIndex += 1; + } + do { + token = iterator.stepForward(); + } while (token && !typeRe.test(token.type)); + + if (token == null) + break; + + valueIndex = 0; + } + + return null; + }; +} +exports.BracketMatch = BracketMatch; + +}); + +define("ace/edit_session",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/bidihandler","ace/config","ace/lib/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/search_highlight","ace/edit_session/folding","ace/edit_session/bracket_match"], function(require, exports, module) { +"use strict"; + +var oop = require("./lib/oop"); +var lang = require("./lib/lang"); +var BidiHandler = require("./bidihandler").BidiHandler; +var config = require("./config"); +var EventEmitter = require("./lib/event_emitter").EventEmitter; +var Selection = require("./selection").Selection; +var TextMode = require("./mode/text").Mode; +var Range = require("./range").Range; +var Document = require("./document").Document; +var BackgroundTokenizer = require("./background_tokenizer").BackgroundTokenizer; +var SearchHighlight = require("./search_highlight").SearchHighlight; + +var EditSession = function(text, mode) { + this.$breakpoints = []; + this.$decorations = []; + this.$frontMarkers = {}; + this.$backMarkers = {}; + this.$markerId = 1; + this.$undoSelect = true; + + this.$foldData = []; + this.id = "session" + (++EditSession.$uid); + this.$foldData.toString = function() { + return this.join("\n"); + }; + this.on("changeFold", this.onChangeFold.bind(this)); + this.$onChange = this.onChange.bind(this); + + if (typeof text != "object" || !text.getLine) + text = new Document(text); + + this.setDocument(text); + this.selection = new Selection(this); + this.$bidiHandler = new BidiHandler(this); + + config.resetOptions(this); + this.setMode(mode); + config._signal("session", this); +}; + + +EditSession.$uid = 0; + +(function() { + + oop.implement(this, EventEmitter); + this.setDocument = function(doc) { + if (this.doc) + this.doc.removeListener("change", this.$onChange); + + this.doc = doc; + doc.on("change", this.$onChange); + + if (this.bgTokenizer) + this.bgTokenizer.setDocument(this.getDocument()); + + this.resetCaches(); + }; + this.getDocument = function() { + return this.doc; + }; + this.$resetRowCache = function(docRow) { + if (!docRow) { + this.$docRowCache = []; + this.$screenRowCache = []; + return; + } + var l = this.$docRowCache.length; + var i = this.$getRowCacheIndex(this.$docRowCache, docRow) + 1; + if (l > i) { + this.$docRowCache.splice(i, l); + this.$screenRowCache.splice(i, l); + } + }; + + this.$getRowCacheIndex = function(cacheArray, val) { + var low = 0; + var hi = cacheArray.length - 1; + + while (low <= hi) { + var mid = (low + hi) >> 1; + var c = cacheArray[mid]; + + if (val > c) + low = mid + 1; + else if (val < c) + hi = mid - 1; + else + return mid; + } + + return low -1; + }; + + this.resetCaches = function() { + this.$modified = true; + this.$wrapData = []; + this.$rowLengthCache = []; + this.$resetRowCache(0); + if (this.bgTokenizer) + this.bgTokenizer.start(0); + }; + + this.onChangeFold = function(e) { + var fold = e.data; + this.$resetRowCache(fold.start.row); + }; + + this.onChange = function(delta) { + this.$modified = true; + this.$bidiHandler.onChange(delta); + this.$resetRowCache(delta.start.row); + + var removedFolds = this.$updateInternalDataOnChange(delta); + if (!this.$fromUndo && this.$undoManager) { + if (removedFolds && removedFolds.length) { + this.$undoManager.add({ + action: "removeFolds", + folds: removedFolds + }, this.mergeUndoDeltas); + this.mergeUndoDeltas = true; + } + this.$undoManager.add(delta, this.mergeUndoDeltas); + this.mergeUndoDeltas = true; + + this.$informUndoManager.schedule(); + } + + this.bgTokenizer && this.bgTokenizer.$updateOnChange(delta); + this._signal("change", delta); + }; + this.setValue = function(text) { + this.doc.setValue(text); + this.selection.moveTo(0, 0); + + this.$resetRowCache(0); + this.setUndoManager(this.$undoManager); + this.getUndoManager().reset(); + }; + this.getValue = + this.toString = function() { + return this.doc.getValue(); + }; + this.getSelection = function() { + return this.selection; + }; + this.getState = function(row) { + return this.bgTokenizer.getState(row); + }; + this.getTokens = function(row) { + return this.bgTokenizer.getTokens(row); + }; + this.getTokenAt = function(row, column) { + var tokens = this.bgTokenizer.getTokens(row); + var token, c = 0; + if (column == null) { + var i = tokens.length - 1; + c = this.getLine(row).length; + } else { + for (var i = 0; i < tokens.length; i++) { + c += tokens[i].value.length; + if (c >= column) + break; + } + } + token = tokens[i]; + if (!token) + return null; + token.index = i; + token.start = c - token.value.length; + return token; + }; + this.setUndoManager = function(undoManager) { + this.$undoManager = undoManager; + + if (this.$informUndoManager) + this.$informUndoManager.cancel(); + + if (undoManager) { + var self = this; + undoManager.addSession(this); + this.$syncInformUndoManager = function() { + self.$informUndoManager.cancel(); + self.mergeUndoDeltas = false; + }; + this.$informUndoManager = lang.delayedCall(this.$syncInformUndoManager); + } else { + this.$syncInformUndoManager = function() {}; + } + }; + this.markUndoGroup = function() { + if (this.$syncInformUndoManager) + this.$syncInformUndoManager(); + }; + + this.$defaultUndoManager = { + undo: function() {}, + redo: function() {}, + reset: function() {}, + add: function() {}, + addSelection: function() {}, + startNewGroup: function() {}, + addSession: function() {} + }; + this.getUndoManager = function() { + return this.$undoManager || this.$defaultUndoManager; + }; + this.getTabString = function() { + if (this.getUseSoftTabs()) { + return lang.stringRepeat(" ", this.getTabSize()); + } else { + return "\t"; + } + }; + this.setUseSoftTabs = function(val) { + this.setOption("useSoftTabs", val); + }; + this.getUseSoftTabs = function() { + return this.$useSoftTabs && !this.$mode.$indentWithTabs; + }; + this.setTabSize = function(tabSize) { + this.setOption("tabSize", tabSize); + }; + this.getTabSize = function() { + return this.$tabSize; + }; + this.isTabStop = function(position) { + return this.$useSoftTabs && (position.column % this.$tabSize === 0); + }; + this.setNavigateWithinSoftTabs = function (navigateWithinSoftTabs) { + this.setOption("navigateWithinSoftTabs", navigateWithinSoftTabs); + }; + this.getNavigateWithinSoftTabs = function() { + return this.$navigateWithinSoftTabs; + }; + + this.$overwrite = false; + this.setOverwrite = function(overwrite) { + this.setOption("overwrite", overwrite); + }; + this.getOverwrite = function() { + return this.$overwrite; + }; + this.toggleOverwrite = function() { + this.setOverwrite(!this.$overwrite); + }; + this.addGutterDecoration = function(row, className) { + if (!this.$decorations[row]) + this.$decorations[row] = ""; + this.$decorations[row] += " " + className; + this._signal("changeBreakpoint", {}); + }; + this.removeGutterDecoration = function(row, className) { + this.$decorations[row] = (this.$decorations[row] || "").replace(" " + className, ""); + this._signal("changeBreakpoint", {}); + }; + this.getBreakpoints = function() { + return this.$breakpoints; + }; + this.setBreakpoints = function(rows) { + this.$breakpoints = []; + for (var i=0; i 0) + inToken = !!line.charAt(column - 1).match(this.tokenRe); + + if (!inToken) + inToken = !!line.charAt(column).match(this.tokenRe); + + if (inToken) + var re = this.tokenRe; + else if (/^\s+$/.test(line.slice(column-1, column+1))) + var re = /\s/; + else + var re = this.nonTokenRe; + + var start = column; + if (start > 0) { + do { + start--; + } + while (start >= 0 && line.charAt(start).match(re)); + start++; + } + + var end = column; + while (end < line.length && line.charAt(end).match(re)) { + end++; + } + + return new Range(row, start, row, end); + }; + this.getAWordRange = function(row, column) { + var wordRange = this.getWordRange(row, column); + var line = this.getLine(wordRange.end.row); + + while (line.charAt(wordRange.end.column).match(/[ \t]/)) { + wordRange.end.column += 1; + } + return wordRange; + }; + this.setNewLineMode = function(newLineMode) { + this.doc.setNewLineMode(newLineMode); + }; + this.getNewLineMode = function() { + return this.doc.getNewLineMode(); + }; + this.setUseWorker = function(useWorker) { this.setOption("useWorker", useWorker); }; + this.getUseWorker = function() { return this.$useWorker; }; + this.onReloadTokenizer = function(e) { + var rows = e.data; + this.bgTokenizer.start(rows.first); + this._signal("tokenizerUpdate", e); + }; + + this.$modes = config.$modes; + this.$mode = null; + this.$modeId = null; + this.setMode = function(mode, cb) { + if (mode && typeof mode === "object") { + if (mode.getTokenizer) + return this.$onChangeMode(mode); + var options = mode; + var path = options.path; + } else { + path = mode || "ace/mode/text"; + } + if (!this.$modes["ace/mode/text"]) + this.$modes["ace/mode/text"] = new TextMode(); + + if (this.$modes[path] && !options) { + this.$onChangeMode(this.$modes[path]); + cb && cb(); + return; + } + this.$modeId = path; + config.loadModule(["mode", path], function(m) { + if (this.$modeId !== path) + return cb && cb(); + if (this.$modes[path] && !options) { + this.$onChangeMode(this.$modes[path]); + } else if (m && m.Mode) { + m = new m.Mode(options); + if (!options) { + this.$modes[path] = m; + m.$id = path; + } + this.$onChangeMode(m); + } + cb && cb(); + }.bind(this)); + if (!this.$mode) + this.$onChangeMode(this.$modes["ace/mode/text"], true); + }; + + this.$onChangeMode = function(mode, $isPlaceholder) { + if (!$isPlaceholder) + this.$modeId = mode.$id; + if (this.$mode === mode) + return; + + this.$mode = mode; + + this.$stopWorker(); + + if (this.$useWorker) + this.$startWorker(); + + var tokenizer = mode.getTokenizer(); + + if(tokenizer.addEventListener !== undefined) { + var onReloadTokenizer = this.onReloadTokenizer.bind(this); + tokenizer.addEventListener("update", onReloadTokenizer); + } + + if (!this.bgTokenizer) { + this.bgTokenizer = new BackgroundTokenizer(tokenizer); + var _self = this; + this.bgTokenizer.addEventListener("update", function(e) { + _self._signal("tokenizerUpdate", e); + }); + } else { + this.bgTokenizer.setTokenizer(tokenizer); + } + + this.bgTokenizer.setDocument(this.getDocument()); + + this.tokenRe = mode.tokenRe; + this.nonTokenRe = mode.nonTokenRe; + + + if (!$isPlaceholder) { + if (mode.attachToSession) + mode.attachToSession(this); + this.$options.wrapMethod.set.call(this, this.$wrapMethod); + this.$setFolding(mode.foldingRules); + this.bgTokenizer.start(0); + this._emit("changeMode"); + } + }; + + this.$stopWorker = function() { + if (this.$worker) { + this.$worker.terminate(); + this.$worker = null; + } + }; + + this.$startWorker = function() { + try { + this.$worker = this.$mode.createWorker(this); + } catch (e) { + config.warn("Could not load worker", e); + this.$worker = null; + } + }; + this.getMode = function() { + return this.$mode; + }; + + this.$scrollTop = 0; + this.setScrollTop = function(scrollTop) { + if (this.$scrollTop === scrollTop || isNaN(scrollTop)) + return; + + this.$scrollTop = scrollTop; + this._signal("changeScrollTop", scrollTop); + }; + this.getScrollTop = function() { + return this.$scrollTop; + }; + + this.$scrollLeft = 0; + this.setScrollLeft = function(scrollLeft) { + if (this.$scrollLeft === scrollLeft || isNaN(scrollLeft)) + return; + + this.$scrollLeft = scrollLeft; + this._signal("changeScrollLeft", scrollLeft); + }; + this.getScrollLeft = function() { + return this.$scrollLeft; + }; + this.getScreenWidth = function() { + this.$computeWidth(); + if (this.lineWidgets) + return Math.max(this.getLineWidgetMaxWidth(), this.screenWidth); + return this.screenWidth; + }; + + this.getLineWidgetMaxWidth = function() { + if (this.lineWidgetsWidth != null) return this.lineWidgetsWidth; + var width = 0; + this.lineWidgets.forEach(function(w) { + if (w && w.screenWidth > width) + width = w.screenWidth; + }); + return this.lineWidgetWidth = width; + }; + + this.$computeWidth = function(force) { + if (this.$modified || force) { + this.$modified = false; + + if (this.$useWrapMode) + return this.screenWidth = this.$wrapLimit; + + var lines = this.doc.getAllLines(); + var cache = this.$rowLengthCache; + var longestScreenLine = 0; + var foldIndex = 0; + var foldLine = this.$foldData[foldIndex]; + var foldStart = foldLine ? foldLine.start.row : Infinity; + var len = lines.length; + + for (var i = 0; i < len; i++) { + if (i > foldStart) { + i = foldLine.end.row + 1; + if (i >= len) + break; + foldLine = this.$foldData[foldIndex++]; + foldStart = foldLine ? foldLine.start.row : Infinity; + } + + if (cache[i] == null) + cache[i] = this.$getStringScreenWidth(lines[i])[0]; + + if (cache[i] > longestScreenLine) + longestScreenLine = cache[i]; + } + this.screenWidth = longestScreenLine; + } + }; + this.getLine = function(row) { + return this.doc.getLine(row); + }; + this.getLines = function(firstRow, lastRow) { + return this.doc.getLines(firstRow, lastRow); + }; + this.getLength = function() { + return this.doc.getLength(); + }; + this.getTextRange = function(range) { + return this.doc.getTextRange(range || this.selection.getRange()); + }; + this.insert = function(position, text) { + return this.doc.insert(position, text); + }; + this.remove = function(range) { + return this.doc.remove(range); + }; + this.removeFullLines = function(firstRow, lastRow){ + return this.doc.removeFullLines(firstRow, lastRow); + }; + this.undoChanges = function(deltas, dontSelect) { + if (!deltas.length) + return; + + this.$fromUndo = true; + for (var i = deltas.length - 1; i != -1; i--) { + var delta = deltas[i]; + if (delta.action == "insert" || delta.action == "remove") { + this.doc.revertDelta(delta); + } else if (delta.folds) { + this.addFolds(delta.folds); + } + } + if (!dontSelect && this.$undoSelect) { + if (deltas.selectionBefore) + this.selection.fromJSON(deltas.selectionBefore); + else + this.selection.setRange(this.$getUndoSelection(deltas, true)); + } + this.$fromUndo = false; + }; + this.redoChanges = function(deltas, dontSelect) { + if (!deltas.length) + return; + + this.$fromUndo = true; + for (var i = 0; i < deltas.length; i++) { + var delta = deltas[i]; + if (delta.action == "insert" || delta.action == "remove") { + this.doc.applyDelta(delta); + } + } + + if (!dontSelect && this.$undoSelect) { + if (deltas.selectionAfter) + this.selection.fromJSON(deltas.selectionAfter); + else + this.selection.setRange(this.$getUndoSelection(deltas, false)); + } + this.$fromUndo = false; + }; + this.setUndoSelect = function(enable) { + this.$undoSelect = enable; + }; + + this.$getUndoSelection = function(deltas, isUndo) { + function isInsert(delta) { + return isUndo ? delta.action !== "insert" : delta.action === "insert"; + } + + var range, point; + var lastDeltaIsInsert; + + for (var i = 0; i < deltas.length; i++) { + var delta = deltas[i]; + if (!delta.start) continue; // skip folds + if (!range) { + if (isInsert(delta)) { + range = Range.fromPoints(delta.start, delta.end); + lastDeltaIsInsert = true; + } else { + range = Range.fromPoints(delta.start, delta.start); + lastDeltaIsInsert = false; + } + continue; + } + + if (isInsert(delta)) { + point = delta.start; + if (range.compare(point.row, point.column) == -1) { + range.setStart(point); + } + point = delta.end; + if (range.compare(point.row, point.column) == 1) { + range.setEnd(point); + } + lastDeltaIsInsert = true; + } else { + point = delta.start; + if (range.compare(point.row, point.column) == -1) { + range = Range.fromPoints(delta.start, delta.start); + } + lastDeltaIsInsert = false; + } + } + return range; + }; + this.replace = function(range, text) { + return this.doc.replace(range, text); + }; + this.moveText = function(fromRange, toPosition, copy) { + var text = this.getTextRange(fromRange); + var folds = this.getFoldsInRange(fromRange); + + var toRange = Range.fromPoints(toPosition, toPosition); + if (!copy) { + this.remove(fromRange); + var rowDiff = fromRange.start.row - fromRange.end.row; + var collDiff = rowDiff ? -fromRange.end.column : fromRange.start.column - fromRange.end.column; + if (collDiff) { + if (toRange.start.row == fromRange.end.row && toRange.start.column > fromRange.end.column) + toRange.start.column += collDiff; + if (toRange.end.row == fromRange.end.row && toRange.end.column > fromRange.end.column) + toRange.end.column += collDiff; + } + if (rowDiff && toRange.start.row >= fromRange.end.row) { + toRange.start.row += rowDiff; + toRange.end.row += rowDiff; + } + } + + toRange.end = this.insert(toRange.start, text); + if (folds.length) { + var oldStart = fromRange.start; + var newStart = toRange.start; + var rowDiff = newStart.row - oldStart.row; + var collDiff = newStart.column - oldStart.column; + this.addFolds(folds.map(function(x) { + x = x.clone(); + if (x.start.row == oldStart.row) + x.start.column += collDiff; + if (x.end.row == oldStart.row) + x.end.column += collDiff; + x.start.row += rowDiff; + x.end.row += rowDiff; + return x; + })); + } + + return toRange; + }; + this.indentRows = function(startRow, endRow, indentString) { + indentString = indentString.replace(/\t/g, this.getTabString()); + for (var row=startRow; row<=endRow; row++) + this.doc.insertInLine({row: row, column: 0}, indentString); + }; + this.outdentRows = function (range) { + var rowRange = range.collapseRows(); + var deleteRange = new Range(0, 0, 0, 0); + var size = this.getTabSize(); + + for (var i = rowRange.start.row; i <= rowRange.end.row; ++i) { + var line = this.getLine(i); + + deleteRange.start.row = i; + deleteRange.end.row = i; + for (var j = 0; j < size; ++j) + if (line.charAt(j) != ' ') + break; + if (j < size && line.charAt(j) == '\t') { + deleteRange.start.column = j; + deleteRange.end.column = j + 1; + } else { + deleteRange.start.column = 0; + deleteRange.end.column = j; + } + this.remove(deleteRange); + } + }; + + this.$moveLines = function(firstRow, lastRow, dir) { + firstRow = this.getRowFoldStart(firstRow); + lastRow = this.getRowFoldEnd(lastRow); + if (dir < 0) { + var row = this.getRowFoldStart(firstRow + dir); + if (row < 0) return 0; + var diff = row-firstRow; + } else if (dir > 0) { + var row = this.getRowFoldEnd(lastRow + dir); + if (row > this.doc.getLength()-1) return 0; + var diff = row-lastRow; + } else { + firstRow = this.$clipRowToDocument(firstRow); + lastRow = this.$clipRowToDocument(lastRow); + var diff = lastRow - firstRow + 1; + } + + var range = new Range(firstRow, 0, lastRow, Number.MAX_VALUE); + var folds = this.getFoldsInRange(range).map(function(x){ + x = x.clone(); + x.start.row += diff; + x.end.row += diff; + return x; + }); + + var lines = dir == 0 + ? this.doc.getLines(firstRow, lastRow) + : this.doc.removeFullLines(firstRow, lastRow); + this.doc.insertFullLines(firstRow+diff, lines); + folds.length && this.addFolds(folds); + return diff; + }; + this.moveLinesUp = function(firstRow, lastRow) { + return this.$moveLines(firstRow, lastRow, -1); + }; + this.moveLinesDown = function(firstRow, lastRow) { + return this.$moveLines(firstRow, lastRow, 1); + }; + this.duplicateLines = function(firstRow, lastRow) { + return this.$moveLines(firstRow, lastRow, 0); + }; + + + this.$clipRowToDocument = function(row) { + return Math.max(0, Math.min(row, this.doc.getLength()-1)); + }; + + this.$clipColumnToRow = function(row, column) { + if (column < 0) + return 0; + return Math.min(this.doc.getLine(row).length, column); + }; + + + this.$clipPositionToDocument = function(row, column) { + column = Math.max(0, column); + + if (row < 0) { + row = 0; + column = 0; + } else { + var len = this.doc.getLength(); + if (row >= len) { + row = len - 1; + column = this.doc.getLine(len-1).length; + } else { + column = Math.min(this.doc.getLine(row).length, column); + } + } + + return { + row: row, + column: column + }; + }; + + this.$clipRangeToDocument = function(range) { + if (range.start.row < 0) { + range.start.row = 0; + range.start.column = 0; + } else { + range.start.column = this.$clipColumnToRow( + range.start.row, + range.start.column + ); + } + + var len = this.doc.getLength() - 1; + if (range.end.row > len) { + range.end.row = len; + range.end.column = this.doc.getLine(len).length; + } else { + range.end.column = this.$clipColumnToRow( + range.end.row, + range.end.column + ); + } + return range; + }; + this.$wrapLimit = 80; + this.$useWrapMode = false; + this.$wrapLimitRange = { + min : null, + max : null + }; + this.setUseWrapMode = function(useWrapMode) { + if (useWrapMode != this.$useWrapMode) { + this.$useWrapMode = useWrapMode; + this.$modified = true; + this.$resetRowCache(0); + if (useWrapMode) { + var len = this.getLength(); + this.$wrapData = Array(len); + this.$updateWrapData(0, len - 1); + } + + this._signal("changeWrapMode"); + } + }; + this.getUseWrapMode = function() { + return this.$useWrapMode; + }; + this.setWrapLimitRange = function(min, max) { + if (this.$wrapLimitRange.min !== min || this.$wrapLimitRange.max !== max) { + this.$wrapLimitRange = { min: min, max: max }; + this.$modified = true; + this.$bidiHandler.markAsDirty(); + if (this.$useWrapMode) + this._signal("changeWrapMode"); + } + }; + this.adjustWrapLimit = function(desiredLimit, $printMargin) { + var limits = this.$wrapLimitRange; + if (limits.max < 0) + limits = {min: $printMargin, max: $printMargin}; + var wrapLimit = this.$constrainWrapLimit(desiredLimit, limits.min, limits.max); + if (wrapLimit != this.$wrapLimit && wrapLimit > 1) { + this.$wrapLimit = wrapLimit; + this.$modified = true; + if (this.$useWrapMode) { + this.$updateWrapData(0, this.getLength() - 1); + this.$resetRowCache(0); + this._signal("changeWrapLimit"); + } + return true; + } + return false; + }; + + this.$constrainWrapLimit = function(wrapLimit, min, max) { + if (min) + wrapLimit = Math.max(min, wrapLimit); + + if (max) + wrapLimit = Math.min(max, wrapLimit); + + return wrapLimit; + }; + this.getWrapLimit = function() { + return this.$wrapLimit; + }; + this.setWrapLimit = function (limit) { + this.setWrapLimitRange(limit, limit); + }; + this.getWrapLimitRange = function() { + return { + min : this.$wrapLimitRange.min, + max : this.$wrapLimitRange.max + }; + }; + + this.$updateInternalDataOnChange = function(delta) { + var useWrapMode = this.$useWrapMode; + var action = delta.action; + var start = delta.start; + var end = delta.end; + var firstRow = start.row; + var lastRow = end.row; + var len = lastRow - firstRow; + var removedFolds = null; + + this.$updating = true; + if (len != 0) { + if (action === "remove") { + this[useWrapMode ? "$wrapData" : "$rowLengthCache"].splice(firstRow, len); + + var foldLines = this.$foldData; + removedFolds = this.getFoldsInRange(delta); + this.removeFolds(removedFolds); + + var foldLine = this.getFoldLine(end.row); + var idx = 0; + if (foldLine) { + foldLine.addRemoveChars(end.row, end.column, start.column - end.column); + foldLine.shiftRow(-len); + + var foldLineBefore = this.getFoldLine(firstRow); + if (foldLineBefore && foldLineBefore !== foldLine) { + foldLineBefore.merge(foldLine); + foldLine = foldLineBefore; + } + idx = foldLines.indexOf(foldLine) + 1; + } + + for (idx; idx < foldLines.length; idx++) { + var foldLine = foldLines[idx]; + if (foldLine.start.row >= end.row) { + foldLine.shiftRow(-len); + } + } + + lastRow = firstRow; + } else { + var args = Array(len); + args.unshift(firstRow, 0); + var arr = useWrapMode ? this.$wrapData : this.$rowLengthCache; + arr.splice.apply(arr, args); + var foldLines = this.$foldData; + var foldLine = this.getFoldLine(firstRow); + var idx = 0; + if (foldLine) { + var cmp = foldLine.range.compareInside(start.row, start.column); + if (cmp == 0) { + foldLine = foldLine.split(start.row, start.column); + if (foldLine) { + foldLine.shiftRow(len); + foldLine.addRemoveChars(lastRow, 0, end.column - start.column); + } + } else + if (cmp == -1) { + foldLine.addRemoveChars(firstRow, 0, end.column - start.column); + foldLine.shiftRow(len); + } + idx = foldLines.indexOf(foldLine) + 1; + } + + for (idx; idx < foldLines.length; idx++) { + var foldLine = foldLines[idx]; + if (foldLine.start.row >= firstRow) { + foldLine.shiftRow(len); + } + } + } + } else { + len = Math.abs(delta.start.column - delta.end.column); + if (action === "remove") { + removedFolds = this.getFoldsInRange(delta); + this.removeFolds(removedFolds); + + len = -len; + } + var foldLine = this.getFoldLine(firstRow); + if (foldLine) { + foldLine.addRemoveChars(firstRow, start.column, len); + } + } + + if (useWrapMode && this.$wrapData.length != this.doc.getLength()) { + console.error("doc.getLength() and $wrapData.length have to be the same!"); + } + this.$updating = false; + + if (useWrapMode) + this.$updateWrapData(firstRow, lastRow); + else + this.$updateRowLengthCache(firstRow, lastRow); + + return removedFolds; + }; + + this.$updateRowLengthCache = function(firstRow, lastRow, b) { + this.$rowLengthCache[firstRow] = null; + this.$rowLengthCache[lastRow] = null; + }; + + this.$updateWrapData = function(firstRow, lastRow) { + var lines = this.doc.getAllLines(); + var tabSize = this.getTabSize(); + var wrapData = this.$wrapData; + var wrapLimit = this.$wrapLimit; + var tokens; + var foldLine; + + var row = firstRow; + lastRow = Math.min(lastRow, lines.length - 1); + while (row <= lastRow) { + foldLine = this.getFoldLine(row, foldLine); + if (!foldLine) { + tokens = this.$getDisplayTokens(lines[row]); + wrapData[row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize); + row ++; + } else { + tokens = []; + foldLine.walk(function(placeholder, row, column, lastColumn) { + var walkTokens; + if (placeholder != null) { + walkTokens = this.$getDisplayTokens( + placeholder, tokens.length); + walkTokens[0] = PLACEHOLDER_START; + for (var i = 1; i < walkTokens.length; i++) { + walkTokens[i] = PLACEHOLDER_BODY; + } + } else { + walkTokens = this.$getDisplayTokens( + lines[row].substring(lastColumn, column), + tokens.length); + } + tokens = tokens.concat(walkTokens); + }.bind(this), + foldLine.end.row, + lines[foldLine.end.row].length + 1 + ); + + wrapData[foldLine.start.row] = this.$computeWrapSplits(tokens, wrapLimit, tabSize); + row = foldLine.end.row + 1; + } + } + }; + var CHAR = 1, + CHAR_EXT = 2, + PLACEHOLDER_START = 3, + PLACEHOLDER_BODY = 4, + PUNCTUATION = 9, + SPACE = 10, + TAB = 11, + TAB_SPACE = 12; + + + this.$computeWrapSplits = function(tokens, wrapLimit, tabSize) { + if (tokens.length == 0) { + return []; + } + + var splits = []; + var displayLength = tokens.length; + var lastSplit = 0, lastDocSplit = 0; + + var isCode = this.$wrapAsCode; + + var indentedSoftWrap = this.$indentedSoftWrap; + var maxIndent = wrapLimit <= Math.max(2 * tabSize, 8) + || indentedSoftWrap === false ? 0 : Math.floor(wrapLimit / 2); + + function getWrapIndent() { + var indentation = 0; + if (maxIndent === 0) + return indentation; + if (indentedSoftWrap) { + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + if (token == SPACE) + indentation += 1; + else if (token == TAB) + indentation += tabSize; + else if (token == TAB_SPACE) + continue; + else + break; + } + } + if (isCode && indentedSoftWrap !== false) + indentation += tabSize; + return Math.min(indentation, maxIndent); + } + function addSplit(screenPos) { + var len = screenPos - lastSplit; + for (var i = lastSplit; i < screenPos; i++) { + var ch = tokens[i]; + if (ch === 12 || ch === 2) len -= 1; + } + + if (!splits.length) { + indent = getWrapIndent(); + splits.indent = indent; + } + lastDocSplit += len; + splits.push(lastDocSplit); + lastSplit = screenPos; + } + var indent = 0; + while (displayLength - lastSplit > wrapLimit - indent) { + var split = lastSplit + wrapLimit - indent; + if (tokens[split - 1] >= SPACE && tokens[split] >= SPACE) { + addSplit(split); + continue; + } + if (tokens[split] == PLACEHOLDER_START || tokens[split] == PLACEHOLDER_BODY) { + for (split; split != lastSplit - 1; split--) { + if (tokens[split] == PLACEHOLDER_START) { + break; + } + } + if (split > lastSplit) { + addSplit(split); + continue; + } + split = lastSplit + wrapLimit; + for (split; split < tokens.length; split++) { + if (tokens[split] != PLACEHOLDER_BODY) { + break; + } + } + if (split == tokens.length) { + break; // Breaks the while-loop. + } + addSplit(split); + continue; + } + var minSplit = Math.max(split - (wrapLimit -(wrapLimit>>2)), lastSplit - 1); + while (split > minSplit && tokens[split] < PLACEHOLDER_START) { + split --; + } + if (isCode) { + while (split > minSplit && tokens[split] < PLACEHOLDER_START) { + split --; + } + while (split > minSplit && tokens[split] == PUNCTUATION) { + split --; + } + } else { + while (split > minSplit && tokens[split] < SPACE) { + split --; + } + } + if (split > minSplit) { + addSplit(++split); + continue; + } + split = lastSplit + wrapLimit; + if (tokens[split] == CHAR_EXT) + split--; + addSplit(split - indent); + } + return splits; + }; + this.$getDisplayTokens = function(str, offset) { + var arr = []; + var tabSize; + offset = offset || 0; + + for (var i = 0; i < str.length; i++) { + var c = str.charCodeAt(i); + if (c == 9) { + tabSize = this.getScreenTabSize(arr.length + offset); + arr.push(TAB); + for (var n = 1; n < tabSize; n++) { + arr.push(TAB_SPACE); + } + } + else if (c == 32) { + arr.push(SPACE); + } else if((c > 39 && c < 48) || (c > 57 && c < 64)) { + arr.push(PUNCTUATION); + } + else if (c >= 0x1100 && isFullWidth(c)) { + arr.push(CHAR, CHAR_EXT); + } else { + arr.push(CHAR); + } + } + return arr; + }; + this.$getStringScreenWidth = function(str, maxScreenColumn, screenColumn) { + if (maxScreenColumn == 0) + return [0, 0]; + if (maxScreenColumn == null) + maxScreenColumn = Infinity; + screenColumn = screenColumn || 0; + + var c, column; + for (column = 0; column < str.length; column++) { + c = str.charCodeAt(column); + if (c == 9) { + screenColumn += this.getScreenTabSize(screenColumn); + } + else if (c >= 0x1100 && isFullWidth(c)) { + screenColumn += 2; + } else { + screenColumn += 1; + } + if (screenColumn > maxScreenColumn) { + break; + } + } + + return [screenColumn, column]; + }; + + this.lineWidgets = null; + this.getRowLength = function(row) { + if (this.lineWidgets) + var h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0; + else + h = 0; + if (!this.$useWrapMode || !this.$wrapData[row]) { + return 1 + h; + } else { + return this.$wrapData[row].length + 1 + h; + } + }; + this.getRowLineCount = function(row) { + if (!this.$useWrapMode || !this.$wrapData[row]) { + return 1; + } else { + return this.$wrapData[row].length + 1; + } + }; + + this.getRowWrapIndent = function(screenRow) { + if (this.$useWrapMode) { + var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE); + var splits = this.$wrapData[pos.row]; + return splits.length && splits[0] < pos.column ? splits.indent : 0; + } else { + return 0; + } + }; + this.getScreenLastRowColumn = function(screenRow) { + var pos = this.screenToDocumentPosition(screenRow, Number.MAX_VALUE); + return this.documentToScreenColumn(pos.row, pos.column); + }; + this.getDocumentLastRowColumn = function(docRow, docColumn) { + var screenRow = this.documentToScreenRow(docRow, docColumn); + return this.getScreenLastRowColumn(screenRow); + }; + this.getDocumentLastRowColumnPosition = function(docRow, docColumn) { + var screenRow = this.documentToScreenRow(docRow, docColumn); + return this.screenToDocumentPosition(screenRow, Number.MAX_VALUE / 10); + }; + this.getRowSplitData = function(row) { + if (!this.$useWrapMode) { + return undefined; + } else { + return this.$wrapData[row]; + } + }; + this.getScreenTabSize = function(screenColumn) { + return this.$tabSize - screenColumn % this.$tabSize; + }; + + + this.screenToDocumentRow = function(screenRow, screenColumn) { + return this.screenToDocumentPosition(screenRow, screenColumn).row; + }; + + + this.screenToDocumentColumn = function(screenRow, screenColumn) { + return this.screenToDocumentPosition(screenRow, screenColumn).column; + }; + this.screenToDocumentPosition = function(screenRow, screenColumn, offsetX) { + if (screenRow < 0) + return {row: 0, column: 0}; + + var line; + var docRow = 0; + var docColumn = 0; + var column; + var row = 0; + var rowLength = 0; + + var rowCache = this.$screenRowCache; + var i = this.$getRowCacheIndex(rowCache, screenRow); + var l = rowCache.length; + if (l && i >= 0) { + var row = rowCache[i]; + var docRow = this.$docRowCache[i]; + var doCache = screenRow > rowCache[l - 1]; + } else { + var doCache = !l; + } + + var maxRow = this.getLength() - 1; + var foldLine = this.getNextFoldLine(docRow); + var foldStart = foldLine ? foldLine.start.row : Infinity; + + while (row <= screenRow) { + rowLength = this.getRowLength(docRow); + if (row + rowLength > screenRow || docRow >= maxRow) { + break; + } else { + row += rowLength; + docRow++; + if (docRow > foldStart) { + docRow = foldLine.end.row+1; + foldLine = this.getNextFoldLine(docRow, foldLine); + foldStart = foldLine ? foldLine.start.row : Infinity; + } + } + + if (doCache) { + this.$docRowCache.push(docRow); + this.$screenRowCache.push(row); + } + } + + if (foldLine && foldLine.start.row <= docRow) { + line = this.getFoldDisplayLine(foldLine); + docRow = foldLine.start.row; + } else if (row + rowLength <= screenRow || docRow > maxRow) { + return { + row: maxRow, + column: this.getLine(maxRow).length + }; + } else { + line = this.getLine(docRow); + foldLine = null; + } + var wrapIndent = 0, splitIndex = Math.floor(screenRow - row); + if (this.$useWrapMode) { + var splits = this.$wrapData[docRow]; + if (splits) { + column = splits[splitIndex]; + if(splitIndex > 0 && splits.length) { + wrapIndent = splits.indent; + docColumn = splits[splitIndex - 1] || splits[splits.length - 1]; + line = line.substring(docColumn); + } + } + } + + if (offsetX !== undefined && this.$bidiHandler.isBidiRow(row + splitIndex, docRow, splitIndex)) + screenColumn = this.$bidiHandler.offsetToCol(offsetX); + + docColumn += this.$getStringScreenWidth(line, screenColumn - wrapIndent)[1]; + if (this.$useWrapMode && docColumn >= column) + docColumn = column - 1; + + if (foldLine) + return foldLine.idxToPosition(docColumn); + + return {row: docRow, column: docColumn}; + }; + this.documentToScreenPosition = function(docRow, docColumn) { + if (typeof docColumn === "undefined") + var pos = this.$clipPositionToDocument(docRow.row, docRow.column); + else + pos = this.$clipPositionToDocument(docRow, docColumn); + + docRow = pos.row; + docColumn = pos.column; + + var screenRow = 0; + var foldStartRow = null; + var fold = null; + fold = this.getFoldAt(docRow, docColumn, 1); + if (fold) { + docRow = fold.start.row; + docColumn = fold.start.column; + } + + var rowEnd, row = 0; + + + var rowCache = this.$docRowCache; + var i = this.$getRowCacheIndex(rowCache, docRow); + var l = rowCache.length; + if (l && i >= 0) { + var row = rowCache[i]; + var screenRow = this.$screenRowCache[i]; + var doCache = docRow > rowCache[l - 1]; + } else { + var doCache = !l; + } + + var foldLine = this.getNextFoldLine(row); + var foldStart = foldLine ?foldLine.start.row :Infinity; + + while (row < docRow) { + if (row >= foldStart) { + rowEnd = foldLine.end.row + 1; + if (rowEnd > docRow) + break; + foldLine = this.getNextFoldLine(rowEnd, foldLine); + foldStart = foldLine ?foldLine.start.row :Infinity; + } + else { + rowEnd = row + 1; + } + + screenRow += this.getRowLength(row); + row = rowEnd; + + if (doCache) { + this.$docRowCache.push(row); + this.$screenRowCache.push(screenRow); + } + } + var textLine = ""; + if (foldLine && row >= foldStart) { + textLine = this.getFoldDisplayLine(foldLine, docRow, docColumn); + foldStartRow = foldLine.start.row; + } else { + textLine = this.getLine(docRow).substring(0, docColumn); + foldStartRow = docRow; + } + var wrapIndent = 0; + if (this.$useWrapMode) { + var wrapRow = this.$wrapData[foldStartRow]; + if (wrapRow) { + var screenRowOffset = 0; + while (textLine.length >= wrapRow[screenRowOffset]) { + screenRow ++; + screenRowOffset++; + } + textLine = textLine.substring( + wrapRow[screenRowOffset - 1] || 0, textLine.length + ); + wrapIndent = screenRowOffset > 0 ? wrapRow.indent : 0; + } + } + + return { + row: screenRow, + column: wrapIndent + this.$getStringScreenWidth(textLine)[0] + }; + }; + this.documentToScreenColumn = function(row, docColumn) { + return this.documentToScreenPosition(row, docColumn).column; + }; + this.documentToScreenRow = function(docRow, docColumn) { + return this.documentToScreenPosition(docRow, docColumn).row; + }; + this.getScreenLength = function() { + var screenRows = 0; + var fold = null; + if (!this.$useWrapMode) { + screenRows = this.getLength(); + var foldData = this.$foldData; + for (var i = 0; i < foldData.length; i++) { + fold = foldData[i]; + screenRows -= fold.end.row - fold.start.row; + } + } else { + var lastRow = this.$wrapData.length; + var row = 0, i = 0; + var fold = this.$foldData[i++]; + var foldStart = fold ? fold.start.row :Infinity; + + while (row < lastRow) { + var splits = this.$wrapData[row]; + screenRows += splits ? splits.length + 1 : 1; + row ++; + if (row > foldStart) { + row = fold.end.row+1; + fold = this.$foldData[i++]; + foldStart = fold ?fold.start.row :Infinity; + } + } + } + if (this.lineWidgets) + screenRows += this.$getWidgetScreenLength(); + + return screenRows; + }; + this.$setFontMetrics = function(fm) { + if (!this.$enableVarChar) return; + this.$getStringScreenWidth = function(str, maxScreenColumn, screenColumn) { + if (maxScreenColumn === 0) + return [0, 0]; + if (!maxScreenColumn) + maxScreenColumn = Infinity; + screenColumn = screenColumn || 0; + + var c, column; + for (column = 0; column < str.length; column++) { + c = str.charAt(column); + if (c === "\t") { + screenColumn += this.getScreenTabSize(screenColumn); + } else { + screenColumn += fm.getCharacterWidth(c); + } + if (screenColumn > maxScreenColumn) { + break; + } + } + + return [screenColumn, column]; + }; + }; + + this.destroy = function() { + if (this.bgTokenizer) { + this.bgTokenizer.setDocument(null); + this.bgTokenizer = null; + } + this.$stopWorker(); + }; + + this.isFullWidth = isFullWidth; + function isFullWidth(c) { + if (c < 0x1100) + return false; + return c >= 0x1100 && c <= 0x115F || + c >= 0x11A3 && c <= 0x11A7 || + c >= 0x11FA && c <= 0x11FF || + c >= 0x2329 && c <= 0x232A || + c >= 0x2E80 && c <= 0x2E99 || + c >= 0x2E9B && c <= 0x2EF3 || + c >= 0x2F00 && c <= 0x2FD5 || + c >= 0x2FF0 && c <= 0x2FFB || + c >= 0x3000 && c <= 0x303E || + c >= 0x3041 && c <= 0x3096 || + c >= 0x3099 && c <= 0x30FF || + c >= 0x3105 && c <= 0x312D || + c >= 0x3131 && c <= 0x318E || + c >= 0x3190 && c <= 0x31BA || + c >= 0x31C0 && c <= 0x31E3 || + c >= 0x31F0 && c <= 0x321E || + c >= 0x3220 && c <= 0x3247 || + c >= 0x3250 && c <= 0x32FE || + c >= 0x3300 && c <= 0x4DBF || + c >= 0x4E00 && c <= 0xA48C || + c >= 0xA490 && c <= 0xA4C6 || + c >= 0xA960 && c <= 0xA97C || + c >= 0xAC00 && c <= 0xD7A3 || + c >= 0xD7B0 && c <= 0xD7C6 || + c >= 0xD7CB && c <= 0xD7FB || + c >= 0xF900 && c <= 0xFAFF || + c >= 0xFE10 && c <= 0xFE19 || + c >= 0xFE30 && c <= 0xFE52 || + c >= 0xFE54 && c <= 0xFE66 || + c >= 0xFE68 && c <= 0xFE6B || + c >= 0xFF01 && c <= 0xFF60 || + c >= 0xFFE0 && c <= 0xFFE6; + } + +}).call(EditSession.prototype); + +require("./edit_session/folding").Folding.call(EditSession.prototype); +require("./edit_session/bracket_match").BracketMatch.call(EditSession.prototype); + + +config.defineOptions(EditSession.prototype, "session", { + wrap: { + set: function(value) { + if (!value || value == "off") + value = false; + else if (value == "free") + value = true; + else if (value == "printMargin") + value = -1; + else if (typeof value == "string") + value = parseInt(value, 10) || false; + + if (this.$wrap == value) + return; + this.$wrap = value; + if (!value) { + this.setUseWrapMode(false); + } else { + var col = typeof value == "number" ? value : null; + this.setWrapLimitRange(col, col); + this.setUseWrapMode(true); + } + }, + get: function() { + if (this.getUseWrapMode()) { + if (this.$wrap == -1) + return "printMargin"; + if (!this.getWrapLimitRange().min) + return "free"; + return this.$wrap; + } + return "off"; + }, + handlesSet: true + }, + wrapMethod: { + set: function(val) { + val = val == "auto" + ? this.$mode.type != "text" + : val != "text"; + if (val != this.$wrapAsCode) { + this.$wrapAsCode = val; + if (this.$useWrapMode) { + this.$useWrapMode = false; + this.setUseWrapMode(true); + } + } + }, + initialValue: "auto" + }, + indentedSoftWrap: { + set: function() { + if (this.$useWrapMode) { + this.$useWrapMode = false; + this.setUseWrapMode(true); + } + }, + initialValue: true + }, + firstLineNumber: { + set: function() {this._signal("changeBreakpoint");}, + initialValue: 1 + }, + useWorker: { + set: function(useWorker) { + this.$useWorker = useWorker; + + this.$stopWorker(); + if (useWorker) + this.$startWorker(); + }, + initialValue: true + }, + useSoftTabs: {initialValue: true}, + tabSize: { + set: function(tabSize) { + tabSize = parseInt(tabSize); + if (isNaN(tabSize) || this.$tabSize === tabSize) return; + + this.$modified = true; + this.$rowLengthCache = []; + this.$tabSize = tabSize; + this._signal("changeTabSize"); + }, + initialValue: 4, + handlesSet: true + }, + navigateWithinSoftTabs: {initialValue: false}, + foldStyle: { + set: function(val) {this.setFoldStyle(val);}, + handlesSet: true + }, + overwrite: { + set: function(val) {this._signal("changeOverwrite");}, + initialValue: false + }, + newLineMode: { + set: function(val) {this.doc.setNewLineMode(val);}, + get: function() {return this.doc.getNewLineMode();}, + handlesSet: true + }, + mode: { + set: function(val) { this.setMode(val); }, + get: function() { return this.$modeId; }, + handlesSet: true + } +}); + +exports.EditSession = EditSession; +}); + +define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"], function(require, exports, module) { +"use strict"; + +var lang = require("./lib/lang"); +var oop = require("./lib/oop"); +var Range = require("./range").Range; + +var Search = function() { + this.$options = {}; +}; + +(function() { + this.set = function(options) { + oop.mixin(this.$options, options); + return this; + }; + this.getOptions = function() { + return lang.copyObject(this.$options); + }; + this.setOptions = function(options) { + this.$options = options; + }; + this.find = function(session) { + var options = this.$options; + var iterator = this.$matchIterator(session, options); + if (!iterator) + return false; + + var firstRange = null; + iterator.forEach(function(sr, sc, er, ec) { + firstRange = new Range(sr, sc, er, ec); + if (sc == ec && options.start && options.start.start + && options.skipCurrent != false && firstRange.isEqual(options.start) + ) { + firstRange = null; + return false; + } + + return true; + }); + + return firstRange; + }; + this.findAll = function(session) { + var options = this.$options; + if (!options.needle) + return []; + this.$assembleRegExp(options); + + var range = options.range; + var lines = range + ? session.getLines(range.start.row, range.end.row) + : session.doc.getAllLines(); + + var ranges = []; + var re = options.re; + if (options.$isMultiLine) { + var len = re.length; + var maxRow = lines.length - len; + var prevRange; + outer: for (var row = re.offset || 0; row <= maxRow; row++) { + for (var j = 0; j < len; j++) + if (lines[row + j].search(re[j]) == -1) + continue outer; + + var startLine = lines[row]; + var line = lines[row + len - 1]; + var startIndex = startLine.length - startLine.match(re[0])[0].length; + var endIndex = line.match(re[len - 1])[0].length; + + if (prevRange && prevRange.end.row === row && + prevRange.end.column > startIndex + ) { + continue; + } + ranges.push(prevRange = new Range( + row, startIndex, row + len - 1, endIndex + )); + if (len > 2) + row = row + len - 2; + } + } else { + for (var i = 0; i < lines.length; i++) { + var matches = lang.getMatchOffsets(lines[i], re); + for (var j = 0; j < matches.length; j++) { + var match = matches[j]; + ranges.push(new Range(i, match.offset, i, match.offset + match.length)); + } + } + } + + if (range) { + var startColumn = range.start.column; + var endColumn = range.start.column; + var i = 0, j = ranges.length - 1; + while (i < j && ranges[i].start.column < startColumn && ranges[i].start.row == range.start.row) + i++; + + while (i < j && ranges[j].end.column > endColumn && ranges[j].end.row == range.end.row) + j--; + + ranges = ranges.slice(i, j + 1); + for (i = 0, j = ranges.length; i < j; i++) { + ranges[i].start.row += range.start.row; + ranges[i].end.row += range.start.row; + } + } + + return ranges; + }; + this.replace = function(input, replacement) { + var options = this.$options; + + var re = this.$assembleRegExp(options); + if (options.$isMultiLine) + return replacement; + + if (!re) + return; + + var match = re.exec(input); + if (!match || match[0].length != input.length) + return null; + + replacement = input.replace(re, replacement); + if (options.preserveCase) { + replacement = replacement.split(""); + for (var i = Math.min(input.length, input.length); i--; ) { + var ch = input[i]; + if (ch && ch.toLowerCase() != ch) + replacement[i] = replacement[i].toUpperCase(); + else + replacement[i] = replacement[i].toLowerCase(); + } + replacement = replacement.join(""); + } + + return replacement; + }; + + this.$assembleRegExp = function(options, $disableFakeMultiline) { + if (options.needle instanceof RegExp) + return options.re = options.needle; + + var needle = options.needle; + + if (!options.needle) + return options.re = false; + + if (!options.regExp) + needle = lang.escapeRegExp(needle); + + if (options.wholeWord) + needle = addWordBoundary(needle, options); + + var modifier = options.caseSensitive ? "gm" : "gmi"; + + options.$isMultiLine = !$disableFakeMultiline && /[\n\r]/.test(needle); + if (options.$isMultiLine) + return options.re = this.$assembleMultilineRegExp(needle, modifier); + + try { + var re = new RegExp(needle, modifier); + } catch(e) { + re = false; + } + return options.re = re; + }; + + this.$assembleMultilineRegExp = function(needle, modifier) { + var parts = needle.replace(/\r\n|\r|\n/g, "$\n^").split("\n"); + var re = []; + for (var i = 0; i < parts.length; i++) try { + re.push(new RegExp(parts[i], modifier)); + } catch(e) { + return false; + } + return re; + }; + + this.$matchIterator = function(session, options) { + var re = this.$assembleRegExp(options); + if (!re) + return false; + var backwards = options.backwards == true; + var skipCurrent = options.skipCurrent != false; + + var range = options.range; + var start = options.start; + if (!start) + start = range ? range[backwards ? "end" : "start"] : session.selection.getRange(); + + if (start.start) + start = start[skipCurrent != backwards ? "end" : "start"]; + + var firstRow = range ? range.start.row : 0; + var lastRow = range ? range.end.row : session.getLength() - 1; + + if (backwards) { + var forEach = function(callback) { + var row = start.row; + if (forEachInLine(row, start.column, callback)) + return; + for (row--; row >= firstRow; row--) + if (forEachInLine(row, Number.MAX_VALUE, callback)) + return; + if (options.wrap == false) + return; + for (row = lastRow, firstRow = start.row; row >= firstRow; row--) + if (forEachInLine(row, Number.MAX_VALUE, callback)) + return; + }; + } + else { + var forEach = function(callback) { + var row = start.row; + if (forEachInLine(row, start.column, callback)) + return; + for (row = row + 1; row <= lastRow; row++) + if (forEachInLine(row, 0, callback)) + return; + if (options.wrap == false) + return; + for (row = firstRow, lastRow = start.row; row <= lastRow; row++) + if (forEachInLine(row, 0, callback)) + return; + }; + } + + if (options.$isMultiLine) { + var len = re.length; + var forEachInLine = function(row, offset, callback) { + var startRow = backwards ? row - len + 1 : row; + if (startRow < 0) return; + var line = session.getLine(startRow); + var startIndex = line.search(re[0]); + if (!backwards && startIndex < offset || startIndex === -1) return; + for (var i = 1; i < len; i++) { + line = session.getLine(startRow + i); + if (line.search(re[i]) == -1) + return; + } + var endIndex = line.match(re[len - 1])[0].length; + if (backwards && endIndex > offset) return; + if (callback(startRow, startIndex, startRow + len - 1, endIndex)) + return true; + }; + } + else if (backwards) { + var forEachInLine = function(row, endIndex, callback) { + var line = session.getLine(row); + var matches = []; + var m, last = 0; + re.lastIndex = 0; + while((m = re.exec(line))) { + var length = m[0].length; + last = m.index; + if (!length) { + if (last >= line.length) break; + re.lastIndex = last += 1; + } + if (m.index + length > endIndex) + break; + matches.push(m.index, length); + } + for (var i = matches.length - 1; i >= 0; i -= 2) { + var column = matches[i - 1]; + var length = matches[i]; + if (callback(row, column, row, column + length)) + return true; + } + }; + } + else { + var forEachInLine = function(row, startIndex, callback) { + var line = session.getLine(row); + var last; + var m; + re.lastIndex = startIndex; + while((m = re.exec(line))) { + var length = m[0].length; + last = m.index; + if (callback(row, last, row,last + length)) + return true; + if (!length) { + re.lastIndex = last += 1; + if (last >= line.length) return false; + } + } + }; + } + return {forEach: forEach}; + }; + +}).call(Search.prototype); + +function addWordBoundary(needle, options) { + function wordBoundary(c) { + if (/\w/.test(c) || options.regExp) return "\\b"; + return ""; + } + return wordBoundary(needle[0]) + needle + + wordBoundary(needle[needle.length - 1]); +} + +exports.Search = Search; +}); + +define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"], function(require, exports, module) { +"use strict"; + +var keyUtil = require("../lib/keys"); +var useragent = require("../lib/useragent"); +var KEY_MODS = keyUtil.KEY_MODS; + +function HashHandler(config, platform) { + this.platform = platform || (useragent.isMac ? "mac" : "win"); + this.commands = {}; + this.commandKeyBinding = {}; + this.addCommands(config); + this.$singleCommand = true; +} + +function MultiHashHandler(config, platform) { + HashHandler.call(this, config, platform); + this.$singleCommand = false; +} + +MultiHashHandler.prototype = HashHandler.prototype; + +(function() { + + + this.addCommand = function(command) { + if (this.commands[command.name]) + this.removeCommand(command); + + this.commands[command.name] = command; + + if (command.bindKey) + this._buildKeyHash(command); + }; + + this.removeCommand = function(command, keepCommand) { + var name = command && (typeof command === 'string' ? command : command.name); + command = this.commands[name]; + if (!keepCommand) + delete this.commands[name]; + var ckb = this.commandKeyBinding; + for (var keyId in ckb) { + var cmdGroup = ckb[keyId]; + if (cmdGroup == command) { + delete ckb[keyId]; + } else if (Array.isArray(cmdGroup)) { + var i = cmdGroup.indexOf(command); + if (i != -1) { + cmdGroup.splice(i, 1); + if (cmdGroup.length == 1) + ckb[keyId] = cmdGroup[0]; + } + } + } + }; + + this.bindKey = function(key, command, position) { + if (typeof key == "object" && key) { + if (position == undefined) + position = key.position; + key = key[this.platform]; + } + if (!key) + return; + if (typeof command == "function") + return this.addCommand({exec: command, bindKey: key, name: command.name || key}); + + key.split("|").forEach(function(keyPart) { + var chain = ""; + if (keyPart.indexOf(" ") != -1) { + var parts = keyPart.split(/\s+/); + keyPart = parts.pop(); + parts.forEach(function(keyPart) { + var binding = this.parseKeys(keyPart); + var id = KEY_MODS[binding.hashId] + binding.key; + chain += (chain ? " " : "") + id; + this._addCommandToBinding(chain, "chainKeys"); + }, this); + chain += " "; + } + var binding = this.parseKeys(keyPart); + var id = KEY_MODS[binding.hashId] + binding.key; + this._addCommandToBinding(chain + id, command, position); + }, this); + }; + + function getPosition(command) { + return typeof command == "object" && command.bindKey + && command.bindKey.position + || (command.isDefault ? -100 : 0); + } + this._addCommandToBinding = function(keyId, command, position) { + var ckb = this.commandKeyBinding, i; + if (!command) { + delete ckb[keyId]; + } else if (!ckb[keyId] || this.$singleCommand) { + ckb[keyId] = command; + } else { + if (!Array.isArray(ckb[keyId])) { + ckb[keyId] = [ckb[keyId]]; + } else if ((i = ckb[keyId].indexOf(command)) != -1) { + ckb[keyId].splice(i, 1); + } + + if (typeof position != "number") { + position = getPosition(command); + } + + var commands = ckb[keyId]; + for (i = 0; i < commands.length; i++) { + var other = commands[i]; + var otherPos = getPosition(other); + if (otherPos > position) + break; + } + commands.splice(i, 0, command); + } + }; + + this.addCommands = function(commands) { + commands && Object.keys(commands).forEach(function(name) { + var command = commands[name]; + if (!command) + return; + + if (typeof command === "string") + return this.bindKey(command, name); + + if (typeof command === "function") + command = { exec: command }; + + if (typeof command !== "object") + return; + + if (!command.name) + command.name = name; + + this.addCommand(command); + }, this); + }; + + this.removeCommands = function(commands) { + Object.keys(commands).forEach(function(name) { + this.removeCommand(commands[name]); + }, this); + }; + + this.bindKeys = function(keyList) { + Object.keys(keyList).forEach(function(key) { + this.bindKey(key, keyList[key]); + }, this); + }; + + this._buildKeyHash = function(command) { + this.bindKey(command.bindKey, command); + }; + this.parseKeys = function(keys) { + var parts = keys.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(x){return x;}); + var key = parts.pop(); + + var keyCode = keyUtil[key]; + if (keyUtil.FUNCTION_KEYS[keyCode]) + key = keyUtil.FUNCTION_KEYS[keyCode].toLowerCase(); + else if (!parts.length) + return {key: key, hashId: -1}; + else if (parts.length == 1 && parts[0] == "shift") + return {key: key.toUpperCase(), hashId: -1}; + + var hashId = 0; + for (var i = parts.length; i--;) { + var modifier = keyUtil.KEY_MODS[parts[i]]; + if (modifier == null) { + if (typeof console != "undefined") + console.error("invalid modifier " + parts[i] + " in " + keys); + return false; + } + hashId |= modifier; + } + return {key: key, hashId: hashId}; + }; + + this.findKeyCommand = function findKeyCommand(hashId, keyString) { + var key = KEY_MODS[hashId] + keyString; + return this.commandKeyBinding[key]; + }; + + this.handleKeyboard = function(data, hashId, keyString, keyCode) { + if (keyCode < 0) return; + var key = KEY_MODS[hashId] + keyString; + var command = this.commandKeyBinding[key]; + if (data.$keyChain) { + data.$keyChain += " " + key; + command = this.commandKeyBinding[data.$keyChain] || command; + } + + if (command) { + if (command == "chainKeys" || command[command.length - 1] == "chainKeys") { + data.$keyChain = data.$keyChain || key; + return {command: "null"}; + } + } + + if (data.$keyChain) { + if ((!hashId || hashId == 4) && keyString.length == 1) + data.$keyChain = data.$keyChain.slice(0, -key.length - 1); // wait for input + else if (hashId == -1 || keyCode > 0) + data.$keyChain = ""; // reset keyChain + } + return {command: command}; + }; + + this.getStatusText = function(editor, data) { + return data.$keyChain || ""; + }; + +}).call(HashHandler.prototype); + +exports.HashHandler = HashHandler; +exports.MultiHashHandler = MultiHashHandler; +}); + +define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var MultiHashHandler = require("../keyboard/hash_handler").MultiHashHandler; +var EventEmitter = require("../lib/event_emitter").EventEmitter; + +var CommandManager = function(platform, commands) { + MultiHashHandler.call(this, commands, platform); + this.byName = this.commands; + this.setDefaultHandler("exec", function(e) { + return e.command.exec(e.editor, e.args || {}); + }); +}; + +oop.inherits(CommandManager, MultiHashHandler); + +(function() { + + oop.implement(this, EventEmitter); + + this.exec = function(command, editor, args) { + if (Array.isArray(command)) { + for (var i = command.length; i--; ) { + if (this.exec(command[i], editor, args)) return true; + } + return false; + } + + if (typeof command === "string") + command = this.commands[command]; + + if (!command) + return false; + + if (editor && editor.$readOnly && !command.readOnly) + return false; + + if (this.$checkCommandState != false && command.isAvailable && !command.isAvailable(editor)) + return false; + + var e = {editor: editor, command: command, args: args}; + e.returnValue = this._emit("exec", e); + this._signal("afterExec", e); + + return e.returnValue === false ? false : true; + }; + + this.toggleRecording = function(editor) { + if (this.$inReplay) + return; + + editor && editor._emit("changeStatus"); + if (this.recording) { + this.macro.pop(); + this.removeEventListener("exec", this.$addCommandToMacro); + + if (!this.macro.length) + this.macro = this.oldMacro; + + return this.recording = false; + } + if (!this.$addCommandToMacro) { + this.$addCommandToMacro = function(e) { + this.macro.push([e.command, e.args]); + }.bind(this); + } + + this.oldMacro = this.macro; + this.macro = []; + this.on("exec", this.$addCommandToMacro); + return this.recording = true; + }; + + this.replay = function(editor) { + if (this.$inReplay || !this.macro) + return; + + if (this.recording) + return this.toggleRecording(editor); + + try { + this.$inReplay = true; + this.macro.forEach(function(x) { + if (typeof x == "string") + this.exec(x, editor); + else + this.exec(x[0], editor, x[1]); + }, this); + } finally { + this.$inReplay = false; + } + }; + + this.trimMacro = function(m) { + return m.map(function(x){ + if (typeof x[0] != "string") + x[0] = x[0].name; + if (!x[1]) + x = x[0]; + return x; + }); + }; + +}).call(CommandManager.prototype); + +exports.CommandManager = CommandManager; + +}); + +define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"], function(require, exports, module) { +"use strict"; + +var lang = require("../lib/lang"); +var config = require("../config"); +var Range = require("../range").Range; + +function bindKey(win, mac) { + return {win: win, mac: mac}; +} +exports.commands = [{ + name: "showSettingsMenu", + bindKey: bindKey("Ctrl-,", "Command-,"), + exec: function(editor) { + config.loadModule("ace/ext/settings_menu", function(module) { + module.init(editor); + editor.showSettingsMenu(); + }); + }, + readOnly: true +}, { + name: "goToNextError", + bindKey: bindKey("Alt-E", "F4"), + exec: function(editor) { + config.loadModule("./ext/error_marker", function(module) { + module.showErrorMarker(editor, 1); + }); + }, + scrollIntoView: "animate", + readOnly: true +}, { + name: "goToPreviousError", + bindKey: bindKey("Alt-Shift-E", "Shift-F4"), + exec: function(editor) { + config.loadModule("./ext/error_marker", function(module) { + module.showErrorMarker(editor, -1); + }); + }, + scrollIntoView: "animate", + readOnly: true +}, { + name: "selectall", + description: "Select all", + bindKey: bindKey("Ctrl-A", "Command-A"), + exec: function(editor) { editor.selectAll(); }, + readOnly: true +}, { + name: "centerselection", + description: "Center selection", + bindKey: bindKey(null, "Ctrl-L"), + exec: function(editor) { editor.centerSelection(); }, + readOnly: true +}, { + name: "gotoline", + description: "Go to line...", + bindKey: bindKey("Ctrl-L", "Command-L"), + exec: function(editor, line) { + if (typeof line === "number" && !isNaN(line)) + editor.gotoLine(line); + editor.prompt({ $type: "gotoLine" }); + }, + readOnly: true +}, { + name: "fold", + bindKey: bindKey("Alt-L|Ctrl-F1", "Command-Alt-L|Command-F1"), + exec: function(editor) { editor.session.toggleFold(false); }, + multiSelectAction: "forEach", + scrollIntoView: "center", + readOnly: true +}, { + name: "unfold", + bindKey: bindKey("Alt-Shift-L|Ctrl-Shift-F1", "Command-Alt-Shift-L|Command-Shift-F1"), + exec: function(editor) { editor.session.toggleFold(true); }, + multiSelectAction: "forEach", + scrollIntoView: "center", + readOnly: true +}, { + name: "toggleFoldWidget", + bindKey: bindKey("F2", "F2"), + exec: function(editor) { editor.session.toggleFoldWidget(); }, + multiSelectAction: "forEach", + scrollIntoView: "center", + readOnly: true +}, { + name: "toggleParentFoldWidget", + bindKey: bindKey("Alt-F2", "Alt-F2"), + exec: function(editor) { editor.session.toggleFoldWidget(true); }, + multiSelectAction: "forEach", + scrollIntoView: "center", + readOnly: true +}, { + name: "foldall", + description: "Fold all", + bindKey: bindKey(null, "Ctrl-Command-Option-0"), + exec: function(editor) { editor.session.foldAll(); }, + scrollIntoView: "center", + readOnly: true +}, { + name: "foldOther", + description: "Fold other", + bindKey: bindKey("Alt-0", "Command-Option-0"), + exec: function(editor) { + editor.session.foldAll(); + editor.session.unfold(editor.selection.getAllRanges()); + }, + scrollIntoView: "center", + readOnly: true +}, { + name: "unfoldall", + description: "Unfold all", + bindKey: bindKey("Alt-Shift-0", "Command-Option-Shift-0"), + exec: function(editor) { editor.session.unfold(); }, + scrollIntoView: "center", + readOnly: true +}, { + name: "findnext", + description: "Find next", + bindKey: bindKey("Ctrl-K", "Command-G"), + exec: function(editor) { editor.findNext(); }, + multiSelectAction: "forEach", + scrollIntoView: "center", + readOnly: true +}, { + name: "findprevious", + description: "Find previous", + bindKey: bindKey("Ctrl-Shift-K", "Command-Shift-G"), + exec: function(editor) { editor.findPrevious(); }, + multiSelectAction: "forEach", + scrollIntoView: "center", + readOnly: true +}, { + name: "selectOrFindNext", + description: "Select or find next", + bindKey: bindKey("Alt-K", "Ctrl-G"), + exec: function(editor) { + if (editor.selection.isEmpty()) + editor.selection.selectWord(); + else + editor.findNext(); + }, + readOnly: true +}, { + name: "selectOrFindPrevious", + description: "Select or find previous", + bindKey: bindKey("Alt-Shift-K", "Ctrl-Shift-G"), + exec: function(editor) { + if (editor.selection.isEmpty()) + editor.selection.selectWord(); + else + editor.findPrevious(); + }, + readOnly: true +}, { + name: "find", + description: "Find", + bindKey: bindKey("Ctrl-F", "Command-F"), + exec: function(editor) { + config.loadModule("ace/ext/searchbox", function(e) {e.Search(editor);}); + }, + readOnly: true +}, { + name: "overwrite", + description: "Overwrite", + bindKey: "Insert", + exec: function(editor) { editor.toggleOverwrite(); }, + readOnly: true +}, { + name: "selecttostart", + description: "Select to start", + bindKey: bindKey("Ctrl-Shift-Home", "Command-Shift-Home|Command-Shift-Up"), + exec: function(editor) { editor.getSelection().selectFileStart(); }, + multiSelectAction: "forEach", + readOnly: true, + scrollIntoView: "animate", + aceCommandGroup: "fileJump" +}, { + name: "gotostart", + description: "Go to start", + bindKey: bindKey("Ctrl-Home", "Command-Home|Command-Up"), + exec: function(editor) { editor.navigateFileStart(); }, + multiSelectAction: "forEach", + readOnly: true, + scrollIntoView: "animate", + aceCommandGroup: "fileJump" +}, { + name: "selectup", + description: "Select up", + bindKey: bindKey("Shift-Up", "Shift-Up|Ctrl-Shift-P"), + exec: function(editor) { editor.getSelection().selectUp(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "golineup", + description: "Go line up", + bindKey: bindKey("Up", "Up|Ctrl-P"), + exec: function(editor, args) { editor.navigateUp(args.times); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "selecttoend", + description: "Select to end", + bindKey: bindKey("Ctrl-Shift-End", "Command-Shift-End|Command-Shift-Down"), + exec: function(editor) { editor.getSelection().selectFileEnd(); }, + multiSelectAction: "forEach", + readOnly: true, + scrollIntoView: "animate", + aceCommandGroup: "fileJump" +}, { + name: "gotoend", + description: "Go to end", + bindKey: bindKey("Ctrl-End", "Command-End|Command-Down"), + exec: function(editor) { editor.navigateFileEnd(); }, + multiSelectAction: "forEach", + readOnly: true, + scrollIntoView: "animate", + aceCommandGroup: "fileJump" +}, { + name: "selectdown", + description: "Select down", + bindKey: bindKey("Shift-Down", "Shift-Down|Ctrl-Shift-N"), + exec: function(editor) { editor.getSelection().selectDown(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "golinedown", + description: "Go line down", + bindKey: bindKey("Down", "Down|Ctrl-N"), + exec: function(editor, args) { editor.navigateDown(args.times); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "selectwordleft", + description: "Select word left", + bindKey: bindKey("Ctrl-Shift-Left", "Option-Shift-Left"), + exec: function(editor) { editor.getSelection().selectWordLeft(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "gotowordleft", + description: "Go to word left", + bindKey: bindKey("Ctrl-Left", "Option-Left"), + exec: function(editor) { editor.navigateWordLeft(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "selecttolinestart", + description: "Select to line start", + bindKey: bindKey("Alt-Shift-Left", "Command-Shift-Left|Ctrl-Shift-A"), + exec: function(editor) { editor.getSelection().selectLineStart(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "gotolinestart", + description: "Go to line start", + bindKey: bindKey("Alt-Left|Home", "Command-Left|Home|Ctrl-A"), + exec: function(editor) { editor.navigateLineStart(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "selectleft", + description: "Select left", + bindKey: bindKey("Shift-Left", "Shift-Left|Ctrl-Shift-B"), + exec: function(editor) { editor.getSelection().selectLeft(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "gotoleft", + description: "Go to left", + bindKey: bindKey("Left", "Left|Ctrl-B"), + exec: function(editor, args) { editor.navigateLeft(args.times); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "selectwordright", + description: "Select word right", + bindKey: bindKey("Ctrl-Shift-Right", "Option-Shift-Right"), + exec: function(editor) { editor.getSelection().selectWordRight(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "gotowordright", + description: "Go to word right", + bindKey: bindKey("Ctrl-Right", "Option-Right"), + exec: function(editor) { editor.navigateWordRight(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "selecttolineend", + description: "Select to line end", + bindKey: bindKey("Alt-Shift-Right", "Command-Shift-Right|Shift-End|Ctrl-Shift-E"), + exec: function(editor) { editor.getSelection().selectLineEnd(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "gotolineend", + description: "Go to line end", + bindKey: bindKey("Alt-Right|End", "Command-Right|End|Ctrl-E"), + exec: function(editor) { editor.navigateLineEnd(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "selectright", + description: "Select right", + bindKey: bindKey("Shift-Right", "Shift-Right"), + exec: function(editor) { editor.getSelection().selectRight(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "gotoright", + description: "Go to right", + bindKey: bindKey("Right", "Right|Ctrl-F"), + exec: function(editor, args) { editor.navigateRight(args.times); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "selectpagedown", + description: "Select page down", + bindKey: "Shift-PageDown", + exec: function(editor) { editor.selectPageDown(); }, + readOnly: true +}, { + name: "pagedown", + description: "Page down", + bindKey: bindKey(null, "Option-PageDown"), + exec: function(editor) { editor.scrollPageDown(); }, + readOnly: true +}, { + name: "gotopagedown", + description: "Go to page down", + bindKey: bindKey("PageDown", "PageDown|Ctrl-V"), + exec: function(editor) { editor.gotoPageDown(); }, + readOnly: true +}, { + name: "selectpageup", + description: "Select page up", + bindKey: "Shift-PageUp", + exec: function(editor) { editor.selectPageUp(); }, + readOnly: true +}, { + name: "pageup", + description: "Page up", + bindKey: bindKey(null, "Option-PageUp"), + exec: function(editor) { editor.scrollPageUp(); }, + readOnly: true +}, { + name: "gotopageup", + description: "Go to page up", + bindKey: "PageUp", + exec: function(editor) { editor.gotoPageUp(); }, + readOnly: true +}, { + name: "scrollup", + description: "Scroll up", + bindKey: bindKey("Ctrl-Up", null), + exec: function(e) { e.renderer.scrollBy(0, -2 * e.renderer.layerConfig.lineHeight); }, + readOnly: true +}, { + name: "scrolldown", + description: "Scroll down", + bindKey: bindKey("Ctrl-Down", null), + exec: function(e) { e.renderer.scrollBy(0, 2 * e.renderer.layerConfig.lineHeight); }, + readOnly: true +}, { + name: "selectlinestart", + description: "Select line start", + bindKey: "Shift-Home", + exec: function(editor) { editor.getSelection().selectLineStart(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "selectlineend", + description: "Select line end", + bindKey: "Shift-End", + exec: function(editor) { editor.getSelection().selectLineEnd(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "togglerecording", + description: "Toggle recording", + bindKey: bindKey("Ctrl-Alt-E", "Command-Option-E"), + exec: function(editor) { editor.commands.toggleRecording(editor); }, + readOnly: true +}, { + name: "replaymacro", + description: "Replay macro", + bindKey: bindKey("Ctrl-Shift-E", "Command-Shift-E"), + exec: function(editor) { editor.commands.replay(editor); }, + readOnly: true +}, { + name: "jumptomatching", + description: "Jump to matching", + bindKey: bindKey("Ctrl-P", "Ctrl-P"), + exec: function(editor) { editor.jumpToMatching(); }, + multiSelectAction: "forEach", + scrollIntoView: "animate", + readOnly: true +}, { + name: "selecttomatching", + description: "Select to matching", + bindKey: bindKey("Ctrl-Shift-P", "Ctrl-Shift-P"), + exec: function(editor) { editor.jumpToMatching(true); }, + multiSelectAction: "forEach", + scrollIntoView: "animate", + readOnly: true +}, { + name: "expandToMatching", + description: "Expand to matching", + bindKey: bindKey("Ctrl-Shift-M", "Ctrl-Shift-M"), + exec: function(editor) { editor.jumpToMatching(true, true); }, + multiSelectAction: "forEach", + scrollIntoView: "animate", + readOnly: true +}, { + name: "passKeysToBrowser", + description: "Pass keys to browser", + bindKey: bindKey(null, null), + exec: function() {}, + passEvent: true, + readOnly: true +}, { + name: "copy", + description: "Copy", + exec: function(editor) { + }, + readOnly: true +}, +{ + name: "cut", + description: "Cut", + exec: function(editor) { + var cutLine = editor.$copyWithEmptySelection && editor.selection.isEmpty(); + var range = cutLine ? editor.selection.getLineRange() : editor.selection.getRange(); + editor._emit("cut", range); + + if (!range.isEmpty()) + editor.session.remove(range); + editor.clearSelection(); + }, + scrollIntoView: "cursor", + multiSelectAction: "forEach" +}, { + name: "paste", + description: "Paste", + exec: function(editor, args) { + editor.$handlePaste(args); + }, + scrollIntoView: "cursor" +}, { + name: "removeline", + description: "Remove line", + bindKey: bindKey("Ctrl-D", "Command-D"), + exec: function(editor) { editor.removeLines(); }, + scrollIntoView: "cursor", + multiSelectAction: "forEachLine" +}, { + name: "duplicateSelection", + description: "Duplicate selection", + bindKey: bindKey("Ctrl-Shift-D", "Command-Shift-D"), + exec: function(editor) { editor.duplicateSelection(); }, + scrollIntoView: "cursor", + multiSelectAction: "forEach" +}, { + name: "sortlines", + description: "Sort lines", + bindKey: bindKey("Ctrl-Alt-S", "Command-Alt-S"), + exec: function(editor) { editor.sortLines(); }, + scrollIntoView: "selection", + multiSelectAction: "forEachLine" +}, { + name: "togglecomment", + description: "Toggle comment", + bindKey: bindKey("Ctrl-/", "Command-/"), + exec: function(editor) { editor.toggleCommentLines(); }, + multiSelectAction: "forEachLine", + scrollIntoView: "selectionPart" +}, { + name: "toggleBlockComment", + description: "Toggle block comment", + bindKey: bindKey("Ctrl-Shift-/", "Command-Shift-/"), + exec: function(editor) { editor.toggleBlockComment(); }, + multiSelectAction: "forEach", + scrollIntoView: "selectionPart" +}, { + name: "modifyNumberUp", + description: "Modify number up", + bindKey: bindKey("Ctrl-Shift-Up", "Alt-Shift-Up"), + exec: function(editor) { editor.modifyNumber(1); }, + scrollIntoView: "cursor", + multiSelectAction: "forEach" +}, { + name: "modifyNumberDown", + description: "Modify number down", + bindKey: bindKey("Ctrl-Shift-Down", "Alt-Shift-Down"), + exec: function(editor) { editor.modifyNumber(-1); }, + scrollIntoView: "cursor", + multiSelectAction: "forEach" +}, { + name: "replace", + description: "Replace", + bindKey: bindKey("Ctrl-H", "Command-Option-F"), + exec: function(editor) { + config.loadModule("ace/ext/searchbox", function(e) {e.Search(editor, true);}); + } +}, { + name: "undo", + description: "Undo", + bindKey: bindKey("Ctrl-Z", "Command-Z"), + exec: function(editor) { editor.undo(); } +}, { + name: "redo", + description: "Redo", + bindKey: bindKey("Ctrl-Shift-Z|Ctrl-Y", "Command-Shift-Z|Command-Y"), + exec: function(editor) { editor.redo(); } +}, { + name: "copylinesup", + description: "Copy lines up", + bindKey: bindKey("Alt-Shift-Up", "Command-Option-Up"), + exec: function(editor) { editor.copyLinesUp(); }, + scrollIntoView: "cursor" +}, { + name: "movelinesup", + description: "Move lines up", + bindKey: bindKey("Alt-Up", "Option-Up"), + exec: function(editor) { editor.moveLinesUp(); }, + scrollIntoView: "cursor" +}, { + name: "copylinesdown", + description: "Copy lines down", + bindKey: bindKey("Alt-Shift-Down", "Command-Option-Down"), + exec: function(editor) { editor.copyLinesDown(); }, + scrollIntoView: "cursor" +}, { + name: "movelinesdown", + description: "Move lines down", + bindKey: bindKey("Alt-Down", "Option-Down"), + exec: function(editor) { editor.moveLinesDown(); }, + scrollIntoView: "cursor" +}, { + name: "del", + description: "Delete", + bindKey: bindKey("Delete", "Delete|Ctrl-D|Shift-Delete"), + exec: function(editor) { editor.remove("right"); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor" +}, { + name: "backspace", + description: "Backspace", + bindKey: bindKey( + "Shift-Backspace|Backspace", + "Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H" + ), + exec: function(editor) { editor.remove("left"); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor" +}, { + name: "cut_or_delete", + description: "Cut or delete", + bindKey: bindKey("Shift-Delete", null), + exec: function(editor) { + if (editor.selection.isEmpty()) { + editor.remove("left"); + } else { + return false; + } + }, + multiSelectAction: "forEach", + scrollIntoView: "cursor" +}, { + name: "removetolinestart", + description: "Remove to line start", + bindKey: bindKey("Alt-Backspace", "Command-Backspace"), + exec: function(editor) { editor.removeToLineStart(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor" +}, { + name: "removetolineend", + description: "Remove to line end", + bindKey: bindKey("Alt-Delete", "Ctrl-K|Command-Delete"), + exec: function(editor) { editor.removeToLineEnd(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor" +}, { + name: "removetolinestarthard", + description: "Remove to line start hard", + bindKey: bindKey("Ctrl-Shift-Backspace", null), + exec: function(editor) { + var range = editor.selection.getRange(); + range.start.column = 0; + editor.session.remove(range); + }, + multiSelectAction: "forEach", + scrollIntoView: "cursor" +}, { + name: "removetolineendhard", + description: "Remove to line end hard", + bindKey: bindKey("Ctrl-Shift-Delete", null), + exec: function(editor) { + var range = editor.selection.getRange(); + range.end.column = Number.MAX_VALUE; + editor.session.remove(range); + }, + multiSelectAction: "forEach", + scrollIntoView: "cursor" +}, { + name: "removewordleft", + description: "Remove word left", + bindKey: bindKey("Ctrl-Backspace", "Alt-Backspace|Ctrl-Alt-Backspace"), + exec: function(editor) { editor.removeWordLeft(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor" +}, { + name: "removewordright", + description: "Remove word right", + bindKey: bindKey("Ctrl-Delete", "Alt-Delete"), + exec: function(editor) { editor.removeWordRight(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor" +}, { + name: "outdent", + description: "Outdent", + bindKey: bindKey("Shift-Tab", "Shift-Tab"), + exec: function(editor) { editor.blockOutdent(); }, + multiSelectAction: "forEach", + scrollIntoView: "selectionPart" +}, { + name: "indent", + description: "Indent", + bindKey: bindKey("Tab", "Tab"), + exec: function(editor) { editor.indent(); }, + multiSelectAction: "forEach", + scrollIntoView: "selectionPart" +}, { + name: "blockoutdent", + description: "Block outdent", + bindKey: bindKey("Ctrl-[", "Ctrl-["), + exec: function(editor) { editor.blockOutdent(); }, + multiSelectAction: "forEachLine", + scrollIntoView: "selectionPart" +}, { + name: "blockindent", + description: "Block indent", + bindKey: bindKey("Ctrl-]", "Ctrl-]"), + exec: function(editor) { editor.blockIndent(); }, + multiSelectAction: "forEachLine", + scrollIntoView: "selectionPart" +}, { + name: "insertstring", + description: "Insert string", + exec: function(editor, str) { editor.insert(str); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor" +}, { + name: "inserttext", + description: "Insert text", + exec: function(editor, args) { + editor.insert(lang.stringRepeat(args.text || "", args.times || 1)); + }, + multiSelectAction: "forEach", + scrollIntoView: "cursor" +}, { + name: "splitline", + description: "Split line", + bindKey: bindKey(null, "Ctrl-O"), + exec: function(editor) { editor.splitLine(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor" +}, { + name: "transposeletters", + description: "Transpose letters", + bindKey: bindKey("Alt-Shift-X", "Ctrl-T"), + exec: function(editor) { editor.transposeLetters(); }, + multiSelectAction: function(editor) {editor.transposeSelections(1); }, + scrollIntoView: "cursor" +}, { + name: "touppercase", + description: "To uppercase", + bindKey: bindKey("Ctrl-U", "Ctrl-U"), + exec: function(editor) { editor.toUpperCase(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor" +}, { + name: "tolowercase", + description: "To lowercase", + bindKey: bindKey("Ctrl-Shift-U", "Ctrl-Shift-U"), + exec: function(editor) { editor.toLowerCase(); }, + multiSelectAction: "forEach", + scrollIntoView: "cursor" +}, { + name: "expandtoline", + description: "Expand to line", + bindKey: bindKey("Ctrl-Shift-L", "Command-Shift-L"), + exec: function(editor) { + var range = editor.selection.getRange(); + + range.start.column = range.end.column = 0; + range.end.row++; + editor.selection.setRange(range, false); + }, + multiSelectAction: "forEach", + scrollIntoView: "cursor", + readOnly: true +}, { + name: "joinlines", + description: "Join lines", + bindKey: bindKey(null, null), + exec: function(editor) { + var isBackwards = editor.selection.isBackwards(); + var selectionStart = isBackwards ? editor.selection.getSelectionLead() : editor.selection.getSelectionAnchor(); + var selectionEnd = isBackwards ? editor.selection.getSelectionAnchor() : editor.selection.getSelectionLead(); + var firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length; + var selectedText = editor.session.doc.getTextRange(editor.selection.getRange()); + var selectedCount = selectedText.replace(/\n\s*/, " ").length; + var insertLine = editor.session.doc.getLine(selectionStart.row); + + for (var i = selectionStart.row + 1; i <= selectionEnd.row + 1; i++) { + var curLine = lang.stringTrimLeft(lang.stringTrimRight(editor.session.doc.getLine(i))); + if (curLine.length !== 0) { + curLine = " " + curLine; + } + insertLine += curLine; + } + + if (selectionEnd.row + 1 < (editor.session.doc.getLength() - 1)) { + insertLine += editor.session.doc.getNewLineCharacter(); + } + + editor.clearSelection(); + editor.session.doc.replace(new Range(selectionStart.row, 0, selectionEnd.row + 2, 0), insertLine); + + if (selectedCount > 0) { + editor.selection.moveCursorTo(selectionStart.row, selectionStart.column); + editor.selection.selectTo(selectionStart.row, selectionStart.column + selectedCount); + } else { + firstLineEndCol = editor.session.doc.getLine(selectionStart.row).length > firstLineEndCol ? (firstLineEndCol + 1) : firstLineEndCol; + editor.selection.moveCursorTo(selectionStart.row, firstLineEndCol); + } + }, + multiSelectAction: "forEach", + readOnly: true +}, { + name: "invertSelection", + description: "Invert selection", + bindKey: bindKey(null, null), + exec: function(editor) { + var endRow = editor.session.doc.getLength() - 1; + var endCol = editor.session.doc.getLine(endRow).length; + var ranges = editor.selection.rangeList.ranges; + var newRanges = []; + if (ranges.length < 1) { + ranges = [editor.selection.getRange()]; + } + + for (var i = 0; i < ranges.length; i++) { + if (i == (ranges.length - 1)) { + if (!(ranges[i].end.row === endRow && ranges[i].end.column === endCol)) { + newRanges.push(new Range(ranges[i].end.row, ranges[i].end.column, endRow, endCol)); + } + } + + if (i === 0) { + if (!(ranges[i].start.row === 0 && ranges[i].start.column === 0)) { + newRanges.push(new Range(0, 0, ranges[i].start.row, ranges[i].start.column)); + } + } else { + newRanges.push(new Range(ranges[i-1].end.row, ranges[i-1].end.column, ranges[i].start.row, ranges[i].start.column)); + } + } + + editor.exitMultiSelectMode(); + editor.clearSelection(); + + for(var i = 0; i < newRanges.length; i++) { + editor.selection.addRange(newRanges[i], false); + } + }, + readOnly: true, + scrollIntoView: "none" +}, { + name: "openCommandPallete", + description: "Open command pallete", + bindKey: bindKey("F1", "F1"), + exec: function(editor) { + editor.prompt({ $type: "commands" }); + }, + readOnly: true +}, { + name: "modeSelect", + description: "Change language mode...", + bindKey: bindKey(null, null), + exec: function(editor) { + editor.prompt({ $type: "modes" }); + }, + readOnly: true +}]; + +}); + +define("ace/clipboard",["require","exports","module"], function(require, exports, module) { +"use strict"; + +module.exports = { lineMode: false }; + +}); + +define("ace/editor",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/keyboard/textinput","ace/mouse/mouse_handler","ace/mouse/fold_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","ace/lib/event_emitter","ace/commands/command_manager","ace/commands/default_commands","ace/config","ace/token_iterator","ace/clipboard"], function(require, exports, module) { +"use strict"; + +require("./lib/fixoldbrowsers"); + +var oop = require("./lib/oop"); +var dom = require("./lib/dom"); +var lang = require("./lib/lang"); +var useragent = require("./lib/useragent"); +var TextInput = require("./keyboard/textinput").TextInput; +var MouseHandler = require("./mouse/mouse_handler").MouseHandler; +var FoldHandler = require("./mouse/fold_handler").FoldHandler; +var KeyBinding = require("./keyboard/keybinding").KeyBinding; +var EditSession = require("./edit_session").EditSession; +var Search = require("./search").Search; +var Range = require("./range").Range; +var EventEmitter = require("./lib/event_emitter").EventEmitter; +var CommandManager = require("./commands/command_manager").CommandManager; +var defaultCommands = require("./commands/default_commands").commands; +var config = require("./config"); +var TokenIterator = require("./token_iterator").TokenIterator; + +var clipboard = require("./clipboard"); +var Editor = function(renderer, session, options) { + var container = renderer.getContainerElement(); + this.container = container; + this.renderer = renderer; + this.id = "editor" + (++Editor.$uid); + + this.commands = new CommandManager(useragent.isMac ? "mac" : "win", defaultCommands); + if (typeof document == "object") { + this.textInput = new TextInput(renderer.getTextAreaContainer(), this); + this.renderer.textarea = this.textInput.getElement(); + this.$mouseHandler = new MouseHandler(this); + new FoldHandler(this); + } + + this.keyBinding = new KeyBinding(this); + + this.$search = new Search().set({ + wrap: true + }); + + this.$historyTracker = this.$historyTracker.bind(this); + this.commands.on("exec", this.$historyTracker); + + this.$initOperationListeners(); + + this._$emitInputEvent = lang.delayedCall(function() { + this._signal("input", {}); + if (this.session && this.session.bgTokenizer) + this.session.bgTokenizer.scheduleStart(); + }.bind(this)); + + this.on("change", function(_, _self) { + _self._$emitInputEvent.schedule(31); + }); + + this.setSession(session || options && options.session || new EditSession("")); + config.resetOptions(this); + if (options) + this.setOptions(options); + config._signal("editor", this); +}; + +Editor.$uid = 0; + +(function(){ + + oop.implement(this, EventEmitter); + + this.$initOperationListeners = function() { + this.commands.on("exec", this.startOperation.bind(this), true); + this.commands.on("afterExec", this.endOperation.bind(this), true); + + this.$opResetTimer = lang.delayedCall(this.endOperation.bind(this, true)); + this.on("change", function() { + if (!this.curOp) { + this.startOperation(); + this.curOp.selectionBefore = this.$lastSel; + } + this.curOp.docChanged = true; + }.bind(this), true); + + this.on("changeSelection", function() { + if (!this.curOp) { + this.startOperation(); + this.curOp.selectionBefore = this.$lastSel; + } + this.curOp.selectionChanged = true; + }.bind(this), true); + }; + + this.curOp = null; + this.prevOp = {}; + this.startOperation = function(commandEvent) { + if (this.curOp) { + if (!commandEvent || this.curOp.command) + return; + this.prevOp = this.curOp; + } + if (!commandEvent) { + this.previousCommand = null; + commandEvent = {}; + } + + this.$opResetTimer.schedule(); + this.curOp = this.session.curOp = { + command: commandEvent.command || {}, + args: commandEvent.args, + scrollTop: this.renderer.scrollTop + }; + this.curOp.selectionBefore = this.selection.toJSON(); + }; + + this.endOperation = function(e) { + if (this.curOp) { + if (e && e.returnValue === false) + return (this.curOp = null); + if (e == true && this.curOp.command && this.curOp.command.name == "mouse") + return; + this._signal("beforeEndOperation"); + if (!this.curOp) return; + var command = this.curOp.command; + var scrollIntoView = command && command.scrollIntoView; + if (scrollIntoView) { + switch (scrollIntoView) { + case "center-animate": + scrollIntoView = "animate"; + case "center": + this.renderer.scrollCursorIntoView(null, 0.5); + break; + case "animate": + case "cursor": + this.renderer.scrollCursorIntoView(); + break; + case "selectionPart": + var range = this.selection.getRange(); + var config = this.renderer.layerConfig; + if (range.start.row >= config.lastRow || range.end.row <= config.firstRow) { + this.renderer.scrollSelectionIntoView(this.selection.anchor, this.selection.lead); + } + break; + default: + break; + } + if (scrollIntoView == "animate") + this.renderer.animateScrolling(this.curOp.scrollTop); + } + var sel = this.selection.toJSON(); + this.curOp.selectionAfter = sel; + this.$lastSel = this.selection.toJSON(); + this.session.getUndoManager().addSelection(sel); + this.prevOp = this.curOp; + this.curOp = null; + } + }; + this.$mergeableCommands = ["backspace", "del", "insertstring"]; + this.$historyTracker = function(e) { + if (!this.$mergeUndoDeltas) + return; + + var prev = this.prevOp; + var mergeableCommands = this.$mergeableCommands; + var shouldMerge = prev.command && (e.command.name == prev.command.name); + if (e.command.name == "insertstring") { + var text = e.args; + if (this.mergeNextCommand === undefined) + this.mergeNextCommand = true; + + shouldMerge = shouldMerge + && this.mergeNextCommand // previous command allows to coalesce with + && (!/\s/.test(text) || /\s/.test(prev.args)); // previous insertion was of same type + + this.mergeNextCommand = true; + } else { + shouldMerge = shouldMerge + && mergeableCommands.indexOf(e.command.name) !== -1; // the command is mergeable + } + + if ( + this.$mergeUndoDeltas != "always" + && Date.now() - this.sequenceStartTime > 2000 + ) { + shouldMerge = false; // the sequence is too long + } + + if (shouldMerge) + this.session.mergeUndoDeltas = true; + else if (mergeableCommands.indexOf(e.command.name) !== -1) + this.sequenceStartTime = Date.now(); + }; + this.setKeyboardHandler = function(keyboardHandler, cb) { + if (keyboardHandler && typeof keyboardHandler === "string" && keyboardHandler != "ace") { + this.$keybindingId = keyboardHandler; + var _self = this; + config.loadModule(["keybinding", keyboardHandler], function(module) { + if (_self.$keybindingId == keyboardHandler) + _self.keyBinding.setKeyboardHandler(module && module.handler); + cb && cb(); + }); + } else { + this.$keybindingId = null; + this.keyBinding.setKeyboardHandler(keyboardHandler); + cb && cb(); + } + }; + this.getKeyboardHandler = function() { + return this.keyBinding.getKeyboardHandler(); + }; + this.setSession = function(session) { + if (this.session == session) + return; + if (this.curOp) this.endOperation(); + this.curOp = {}; + + var oldSession = this.session; + if (oldSession) { + this.session.off("change", this.$onDocumentChange); + this.session.off("changeMode", this.$onChangeMode); + this.session.off("tokenizerUpdate", this.$onTokenizerUpdate); + this.session.off("changeTabSize", this.$onChangeTabSize); + this.session.off("changeWrapLimit", this.$onChangeWrapLimit); + this.session.off("changeWrapMode", this.$onChangeWrapMode); + this.session.off("changeFold", this.$onChangeFold); + this.session.off("changeFrontMarker", this.$onChangeFrontMarker); + this.session.off("changeBackMarker", this.$onChangeBackMarker); + this.session.off("changeBreakpoint", this.$onChangeBreakpoint); + this.session.off("changeAnnotation", this.$onChangeAnnotation); + this.session.off("changeOverwrite", this.$onCursorChange); + this.session.off("changeScrollTop", this.$onScrollTopChange); + this.session.off("changeScrollLeft", this.$onScrollLeftChange); + + var selection = this.session.getSelection(); + selection.off("changeCursor", this.$onCursorChange); + selection.off("changeSelection", this.$onSelectionChange); + } + + this.session = session; + if (session) { + this.$onDocumentChange = this.onDocumentChange.bind(this); + session.on("change", this.$onDocumentChange); + this.renderer.setSession(session); + + this.$onChangeMode = this.onChangeMode.bind(this); + session.on("changeMode", this.$onChangeMode); + + this.$onTokenizerUpdate = this.onTokenizerUpdate.bind(this); + session.on("tokenizerUpdate", this.$onTokenizerUpdate); + + this.$onChangeTabSize = this.renderer.onChangeTabSize.bind(this.renderer); + session.on("changeTabSize", this.$onChangeTabSize); + + this.$onChangeWrapLimit = this.onChangeWrapLimit.bind(this); + session.on("changeWrapLimit", this.$onChangeWrapLimit); + + this.$onChangeWrapMode = this.onChangeWrapMode.bind(this); + session.on("changeWrapMode", this.$onChangeWrapMode); + + this.$onChangeFold = this.onChangeFold.bind(this); + session.on("changeFold", this.$onChangeFold); + + this.$onChangeFrontMarker = this.onChangeFrontMarker.bind(this); + this.session.on("changeFrontMarker", this.$onChangeFrontMarker); + + this.$onChangeBackMarker = this.onChangeBackMarker.bind(this); + this.session.on("changeBackMarker", this.$onChangeBackMarker); + + this.$onChangeBreakpoint = this.onChangeBreakpoint.bind(this); + this.session.on("changeBreakpoint", this.$onChangeBreakpoint); + + this.$onChangeAnnotation = this.onChangeAnnotation.bind(this); + this.session.on("changeAnnotation", this.$onChangeAnnotation); + + this.$onCursorChange = this.onCursorChange.bind(this); + this.session.on("changeOverwrite", this.$onCursorChange); + + this.$onScrollTopChange = this.onScrollTopChange.bind(this); + this.session.on("changeScrollTop", this.$onScrollTopChange); + + this.$onScrollLeftChange = this.onScrollLeftChange.bind(this); + this.session.on("changeScrollLeft", this.$onScrollLeftChange); + + this.selection = session.getSelection(); + this.selection.on("changeCursor", this.$onCursorChange); + + this.$onSelectionChange = this.onSelectionChange.bind(this); + this.selection.on("changeSelection", this.$onSelectionChange); + + this.onChangeMode(); + + this.onCursorChange(); + + this.onScrollTopChange(); + this.onScrollLeftChange(); + this.onSelectionChange(); + this.onChangeFrontMarker(); + this.onChangeBackMarker(); + this.onChangeBreakpoint(); + this.onChangeAnnotation(); + this.session.getUseWrapMode() && this.renderer.adjustWrapLimit(); + this.renderer.updateFull(); + } else { + this.selection = null; + this.renderer.setSession(session); + } + + this._signal("changeSession", { + session: session, + oldSession: oldSession + }); + + this.curOp = null; + + oldSession && oldSession._signal("changeEditor", {oldEditor: this}); + session && session._signal("changeEditor", {editor: this}); + + if (session && session.bgTokenizer) + session.bgTokenizer.scheduleStart(); + }; + this.getSession = function() { + return this.session; + }; + this.setValue = function(val, cursorPos) { + this.session.doc.setValue(val); + + if (!cursorPos) + this.selectAll(); + else if (cursorPos == 1) + this.navigateFileEnd(); + else if (cursorPos == -1) + this.navigateFileStart(); + + return val; + }; + this.getValue = function() { + return this.session.getValue(); + }; + this.getSelection = function() { + return this.selection; + }; + this.resize = function(force) { + this.renderer.onResize(force); + }; + this.setTheme = function(theme, cb) { + this.renderer.setTheme(theme, cb); + }; + this.getTheme = function() { + return this.renderer.getTheme(); + }; + this.setStyle = function(style) { + this.renderer.setStyle(style); + }; + this.unsetStyle = function(style) { + this.renderer.unsetStyle(style); + }; + this.getFontSize = function () { + return this.getOption("fontSize") || + dom.computedStyle(this.container).fontSize; + }; + this.setFontSize = function(size) { + this.setOption("fontSize", size); + }; + + this.$highlightBrackets = function() { + if (this.session.$bracketHighlight) { + this.session.removeMarker(this.session.$bracketHighlight); + this.session.$bracketHighlight = null; + } + + if (this.$highlightPending) { + return; + } + var self = this; + this.$highlightPending = true; + setTimeout(function() { + self.$highlightPending = false; + var session = self.session; + if (!session || !session.bgTokenizer) return; + var pos = session.findMatchingBracket(self.getCursorPosition()); + if (pos) { + var range = new Range(pos.row, pos.column, pos.row, pos.column + 1); + } else if (session.$mode.getMatching) { + var range = session.$mode.getMatching(self.session); + } + if (range) + session.$bracketHighlight = session.addMarker(range, "ace_bracket", "text"); + }, 50); + }; + this.$highlightTags = function() { + if (this.$highlightTagPending) + return; + var self = this; + this.$highlightTagPending = true; + setTimeout(function() { + self.$highlightTagPending = false; + + var session = self.session; + if (!session || !session.bgTokenizer) return; + + var pos = self.getCursorPosition(); + var iterator = new TokenIterator(self.session, pos.row, pos.column); + var token = iterator.getCurrentToken(); + + if (!token || !/\b(?:tag-open|tag-name)/.test(token.type)) { + session.removeMarker(session.$tagHighlight); + session.$tagHighlight = null; + return; + } + + if (token.type.indexOf("tag-open") != -1) { + token = iterator.stepForward(); + if (!token) + return; + } + + var tag = token.value; + var depth = 0; + var prevToken = iterator.stepBackward(); + + if (prevToken.value == '<'){ + do { + prevToken = token; + token = iterator.stepForward(); + + if (token && token.value === tag && token.type.indexOf('tag-name') !== -1) { + if (prevToken.value === '<'){ + depth++; + } else if (prevToken.value === '= 0); + } else { + do { + token = prevToken; + prevToken = iterator.stepBackward(); + + if (token && token.value === tag && token.type.indexOf('tag-name') !== -1) { + if (prevToken.value === '<') { + depth++; + } else if (prevToken.value === ' 1)) + highlight = false; + } + + if (session.$highlightLineMarker && !highlight) { + session.removeMarker(session.$highlightLineMarker.id); + session.$highlightLineMarker = null; + } else if (!session.$highlightLineMarker && highlight) { + var range = new Range(highlight.row, highlight.column, highlight.row, Infinity); + range.id = session.addMarker(range, "ace_active-line", "screenLine"); + session.$highlightLineMarker = range; + } else if (highlight) { + session.$highlightLineMarker.start.row = highlight.row; + session.$highlightLineMarker.end.row = highlight.row; + session.$highlightLineMarker.start.column = highlight.column; + session._signal("changeBackMarker"); + } + }; + + this.onSelectionChange = function(e) { + var session = this.session; + + if (session.$selectionMarker) { + session.removeMarker(session.$selectionMarker); + } + session.$selectionMarker = null; + + if (!this.selection.isEmpty()) { + var range = this.selection.getRange(); + var style = this.getSelectionStyle(); + session.$selectionMarker = session.addMarker(range, "ace_selection", style); + } else { + this.$updateHighlightActiveLine(); + } + + var re = this.$highlightSelectedWord && this.$getSelectionHighLightRegexp(); + this.session.highlight(re); + + this._signal("changeSelection"); + }; + + this.$getSelectionHighLightRegexp = function() { + var session = this.session; + + var selection = this.getSelectionRange(); + if (selection.isEmpty() || selection.isMultiLine()) + return; + + var startColumn = selection.start.column; + var endColumn = selection.end.column; + var line = session.getLine(selection.start.row); + + var needle = line.substring(startColumn, endColumn); + if (needle.length > 5000 || !/[\w\d]/.test(needle)) + return; + + var re = this.$search.$assembleRegExp({ + wholeWord: true, + caseSensitive: true, + needle: needle + }); + + var wordWithBoundary = line.substring(startColumn - 1, endColumn + 1); + if (!re.test(wordWithBoundary)) + return; + + return re; + }; + + + this.onChangeFrontMarker = function() { + this.renderer.updateFrontMarkers(); + }; + + this.onChangeBackMarker = function() { + this.renderer.updateBackMarkers(); + }; + + + this.onChangeBreakpoint = function() { + this.renderer.updateBreakpoints(); + }; + + this.onChangeAnnotation = function() { + this.renderer.setAnnotations(this.session.getAnnotations()); + }; + + + this.onChangeMode = function(e) { + this.renderer.updateText(); + this._emit("changeMode", e); + }; + + + this.onChangeWrapLimit = function() { + this.renderer.updateFull(); + }; + + this.onChangeWrapMode = function() { + this.renderer.onResize(true); + }; + + + this.onChangeFold = function() { + this.$updateHighlightActiveLine(); + this.renderer.updateFull(); + }; + this.getSelectedText = function() { + return this.session.getTextRange(this.getSelectionRange()); + }; + this.getCopyText = function() { + var text = this.getSelectedText(); + var nl = this.session.doc.getNewLineCharacter(); + var copyLine= false; + if (!text && this.$copyWithEmptySelection) { + copyLine = true; + var ranges = this.selection.getAllRanges(); + for (var i = 0; i < ranges.length; i++) { + var range = ranges[i]; + if (i && ranges[i - 1].start.row == range.start.row) + continue; + text += this.session.getLine(range.start.row) + nl; + } + } + var e = {text: text}; + this._signal("copy", e); + clipboard.lineMode = copyLine ? e.text : ""; + return e.text; + }; + this.onCopy = function() { + this.commands.exec("copy", this); + }; + this.onCut = function() { + this.commands.exec("cut", this); + }; + this.onPaste = function(text, event) { + var e = {text: text, event: event}; + this.commands.exec("paste", this, e); + }; + + this.$handlePaste = function(e) { + if (typeof e == "string") + e = {text: e}; + this._signal("paste", e); + var text = e.text; + + var lineMode = text == clipboard.lineMode; + var session = this.session; + if (!this.inMultiSelectMode || this.inVirtualSelectionMode) { + if (lineMode) + session.insert({ row: this.selection.lead.row, column: 0 }, text); + else + this.insert(text); + } else if (lineMode) { + this.selection.rangeList.ranges.forEach(function(range) { + session.insert({ row: range.start.row, column: 0 }, text); + }); + } else { + var lines = text.split(/\r\n|\r|\n/); + var ranges = this.selection.rangeList.ranges; + + if (lines.length > ranges.length || lines.length < 2 || !lines[1]) + return this.commands.exec("insertstring", this, text); + + for (var i = ranges.length; i--;) { + var range = ranges[i]; + if (!range.isEmpty()) + session.remove(range); + + session.insert(range.start, lines[i]); + } + } + }; + + this.execCommand = function(command, args) { + return this.commands.exec(command, this, args); + }; + this.insert = function(text, pasted) { + var session = this.session; + var mode = session.getMode(); + var cursor = this.getCursorPosition(); + + if (this.getBehavioursEnabled() && !pasted) { + var transform = mode.transformAction(session.getState(cursor.row), 'insertion', this, session, text); + if (transform) { + if (text !== transform.text) { + if (!this.inVirtualSelectionMode) { + this.session.mergeUndoDeltas = false; + this.mergeNextCommand = false; + } + } + text = transform.text; + + } + } + + if (text == "\t") + text = this.session.getTabString(); + if (!this.selection.isEmpty()) { + var range = this.getSelectionRange(); + cursor = this.session.remove(range); + this.clearSelection(); + } + else if (this.session.getOverwrite() && text.indexOf("\n") == -1) { + var range = new Range.fromPoints(cursor, cursor); + range.end.column += text.length; + this.session.remove(range); + } + + if (text == "\n" || text == "\r\n") { + var line = session.getLine(cursor.row); + if (cursor.column > line.search(/\S|$/)) { + var d = line.substr(cursor.column).search(/\S|$/); + session.doc.removeInLine(cursor.row, cursor.column, cursor.column + d); + } + } + this.clearSelection(); + + var start = cursor.column; + var lineState = session.getState(cursor.row); + var line = session.getLine(cursor.row); + var shouldOutdent = mode.checkOutdent(lineState, line, text); + var end = session.insert(cursor, text); + + if (transform && transform.selection) { + if (transform.selection.length == 2) { // Transform relative to the current column + this.selection.setSelectionRange( + new Range(cursor.row, start + transform.selection[0], + cursor.row, start + transform.selection[1])); + } else { // Transform relative to the current row. + this.selection.setSelectionRange( + new Range(cursor.row + transform.selection[0], + transform.selection[1], + cursor.row + transform.selection[2], + transform.selection[3])); + } + } + + if (session.getDocument().isNewLine(text)) { + var lineIndent = mode.getNextLineIndent(lineState, line.slice(0, cursor.column), session.getTabString()); + + session.insert({row: cursor.row+1, column: 0}, lineIndent); + } + if (shouldOutdent) + mode.autoOutdent(lineState, session, cursor.row); + }; + + this.onTextInput = function(text, composition) { + if (!composition) + return this.keyBinding.onTextInput(text); + + this.startOperation({command: { name: "insertstring" }}); + var applyComposition = this.applyComposition.bind(this, text, composition); + if (this.selection.rangeCount) + this.forEachSelection(applyComposition); + else + applyComposition(); + this.endOperation(); + }; + + this.applyComposition = function(text, composition) { + if (composition.extendLeft || composition.extendRight) { + var r = this.selection.getRange(); + r.start.column -= composition.extendLeft; + r.end.column += composition.extendRight; + this.selection.setRange(r); + if (!text && !r.isEmpty()) + this.remove(); + } + if (text || !this.selection.isEmpty()) + this.insert(text, true); + if (composition.restoreStart || composition.restoreEnd) { + var r = this.selection.getRange(); + r.start.column -= composition.restoreStart; + r.end.column -= composition.restoreEnd; + this.selection.setRange(r); + } + }; + + this.onCommandKey = function(e, hashId, keyCode) { + this.keyBinding.onCommandKey(e, hashId, keyCode); + }; + this.setOverwrite = function(overwrite) { + this.session.setOverwrite(overwrite); + }; + this.getOverwrite = function() { + return this.session.getOverwrite(); + }; + this.toggleOverwrite = function() { + this.session.toggleOverwrite(); + }; + this.setScrollSpeed = function(speed) { + this.setOption("scrollSpeed", speed); + }; + this.getScrollSpeed = function() { + return this.getOption("scrollSpeed"); + }; + this.setDragDelay = function(dragDelay) { + this.setOption("dragDelay", dragDelay); + }; + this.getDragDelay = function() { + return this.getOption("dragDelay"); + }; + this.setSelectionStyle = function(val) { + this.setOption("selectionStyle", val); + }; + this.getSelectionStyle = function() { + return this.getOption("selectionStyle"); + }; + this.setHighlightActiveLine = function(shouldHighlight) { + this.setOption("highlightActiveLine", shouldHighlight); + }; + this.getHighlightActiveLine = function() { + return this.getOption("highlightActiveLine"); + }; + this.setHighlightGutterLine = function(shouldHighlight) { + this.setOption("highlightGutterLine", shouldHighlight); + }; + + this.getHighlightGutterLine = function() { + return this.getOption("highlightGutterLine"); + }; + this.setHighlightSelectedWord = function(shouldHighlight) { + this.setOption("highlightSelectedWord", shouldHighlight); + }; + this.getHighlightSelectedWord = function() { + return this.$highlightSelectedWord; + }; + + this.setAnimatedScroll = function(shouldAnimate){ + this.renderer.setAnimatedScroll(shouldAnimate); + }; + + this.getAnimatedScroll = function(){ + return this.renderer.getAnimatedScroll(); + }; + this.setShowInvisibles = function(showInvisibles) { + this.renderer.setShowInvisibles(showInvisibles); + }; + this.getShowInvisibles = function() { + return this.renderer.getShowInvisibles(); + }; + + this.setDisplayIndentGuides = function(display) { + this.renderer.setDisplayIndentGuides(display); + }; + + this.getDisplayIndentGuides = function() { + return this.renderer.getDisplayIndentGuides(); + }; + this.setShowPrintMargin = function(showPrintMargin) { + this.renderer.setShowPrintMargin(showPrintMargin); + }; + this.getShowPrintMargin = function() { + return this.renderer.getShowPrintMargin(); + }; + this.setPrintMarginColumn = function(showPrintMargin) { + this.renderer.setPrintMarginColumn(showPrintMargin); + }; + this.getPrintMarginColumn = function() { + return this.renderer.getPrintMarginColumn(); + }; + this.setReadOnly = function(readOnly) { + this.setOption("readOnly", readOnly); + }; + this.getReadOnly = function() { + return this.getOption("readOnly"); + }; + this.setBehavioursEnabled = function (enabled) { + this.setOption("behavioursEnabled", enabled); + }; + this.getBehavioursEnabled = function () { + return this.getOption("behavioursEnabled"); + }; + this.setWrapBehavioursEnabled = function (enabled) { + this.setOption("wrapBehavioursEnabled", enabled); + }; + this.getWrapBehavioursEnabled = function () { + return this.getOption("wrapBehavioursEnabled"); + }; + this.setShowFoldWidgets = function(show) { + this.setOption("showFoldWidgets", show); + + }; + this.getShowFoldWidgets = function() { + return this.getOption("showFoldWidgets"); + }; + + this.setFadeFoldWidgets = function(fade) { + this.setOption("fadeFoldWidgets", fade); + }; + + this.getFadeFoldWidgets = function() { + return this.getOption("fadeFoldWidgets"); + }; + this.remove = function(dir) { + if (this.selection.isEmpty()){ + if (dir == "left") + this.selection.selectLeft(); + else + this.selection.selectRight(); + } + + var range = this.getSelectionRange(); + if (this.getBehavioursEnabled()) { + var session = this.session; + var state = session.getState(range.start.row); + var new_range = session.getMode().transformAction(state, 'deletion', this, session, range); + + if (range.end.column === 0) { + var text = session.getTextRange(range); + if (text[text.length - 1] == "\n") { + var line = session.getLine(range.end.row); + if (/^\s+$/.test(line)) { + range.end.column = line.length; + } + } + } + if (new_range) + range = new_range; + } + + this.session.remove(range); + this.clearSelection(); + }; + this.removeWordRight = function() { + if (this.selection.isEmpty()) + this.selection.selectWordRight(); + + this.session.remove(this.getSelectionRange()); + this.clearSelection(); + }; + this.removeWordLeft = function() { + if (this.selection.isEmpty()) + this.selection.selectWordLeft(); + + this.session.remove(this.getSelectionRange()); + this.clearSelection(); + }; + this.removeToLineStart = function() { + if (this.selection.isEmpty()) + this.selection.selectLineStart(); + if (this.selection.isEmpty()) + this.selection.selectLeft(); + this.session.remove(this.getSelectionRange()); + this.clearSelection(); + }; + this.removeToLineEnd = function() { + if (this.selection.isEmpty()) + this.selection.selectLineEnd(); + + var range = this.getSelectionRange(); + if (range.start.column == range.end.column && range.start.row == range.end.row) { + range.end.column = 0; + range.end.row++; + } + + this.session.remove(range); + this.clearSelection(); + }; + this.splitLine = function() { + if (!this.selection.isEmpty()) { + this.session.remove(this.getSelectionRange()); + this.clearSelection(); + } + + var cursor = this.getCursorPosition(); + this.insert("\n"); + this.moveCursorToPosition(cursor); + }; + this.transposeLetters = function() { + if (!this.selection.isEmpty()) { + return; + } + + var cursor = this.getCursorPosition(); + var column = cursor.column; + if (column === 0) + return; + + var line = this.session.getLine(cursor.row); + var swap, range; + if (column < line.length) { + swap = line.charAt(column) + line.charAt(column-1); + range = new Range(cursor.row, column-1, cursor.row, column+1); + } + else { + swap = line.charAt(column-1) + line.charAt(column-2); + range = new Range(cursor.row, column-2, cursor.row, column); + } + this.session.replace(range, swap); + this.session.selection.moveToPosition(range.end); + }; + this.toLowerCase = function() { + var originalRange = this.getSelectionRange(); + if (this.selection.isEmpty()) { + this.selection.selectWord(); + } + + var range = this.getSelectionRange(); + var text = this.session.getTextRange(range); + this.session.replace(range, text.toLowerCase()); + this.selection.setSelectionRange(originalRange); + }; + this.toUpperCase = function() { + var originalRange = this.getSelectionRange(); + if (this.selection.isEmpty()) { + this.selection.selectWord(); + } + + var range = this.getSelectionRange(); + var text = this.session.getTextRange(range); + this.session.replace(range, text.toUpperCase()); + this.selection.setSelectionRange(originalRange); + }; + this.indent = function() { + var session = this.session; + var range = this.getSelectionRange(); + + if (range.start.row < range.end.row) { + var rows = this.$getSelectedRows(); + session.indentRows(rows.first, rows.last, "\t"); + return; + } else if (range.start.column < range.end.column) { + var text = session.getTextRange(range); + if (!/^\s+$/.test(text)) { + var rows = this.$getSelectedRows(); + session.indentRows(rows.first, rows.last, "\t"); + return; + } + } + + var line = session.getLine(range.start.row); + var position = range.start; + var size = session.getTabSize(); + var column = session.documentToScreenColumn(position.row, position.column); + + if (this.session.getUseSoftTabs()) { + var count = (size - column % size); + var indentString = lang.stringRepeat(" ", count); + } else { + var count = column % size; + while (line[range.start.column - 1] == " " && count) { + range.start.column--; + count--; + } + this.selection.setSelectionRange(range); + indentString = "\t"; + } + return this.insert(indentString); + }; + this.blockIndent = function() { + var rows = this.$getSelectedRows(); + this.session.indentRows(rows.first, rows.last, "\t"); + }; + this.blockOutdent = function() { + var selection = this.session.getSelection(); + this.session.outdentRows(selection.getRange()); + }; + this.sortLines = function() { + var rows = this.$getSelectedRows(); + var session = this.session; + + var lines = []; + for (var i = rows.first; i <= rows.last; i++) + lines.push(session.getLine(i)); + + lines.sort(function(a, b) { + if (a.toLowerCase() < b.toLowerCase()) return -1; + if (a.toLowerCase() > b.toLowerCase()) return 1; + return 0; + }); + + var deleteRange = new Range(0, 0, 0, 0); + for (var i = rows.first; i <= rows.last; i++) { + var line = session.getLine(i); + deleteRange.start.row = i; + deleteRange.end.row = i; + deleteRange.end.column = line.length; + session.replace(deleteRange, lines[i-rows.first]); + } + }; + this.toggleCommentLines = function() { + var state = this.session.getState(this.getCursorPosition().row); + var rows = this.$getSelectedRows(); + this.session.getMode().toggleCommentLines(state, this.session, rows.first, rows.last); + }; + + this.toggleBlockComment = function() { + var cursor = this.getCursorPosition(); + var state = this.session.getState(cursor.row); + var range = this.getSelectionRange(); + this.session.getMode().toggleBlockComment(state, this.session, range, cursor); + }; + this.getNumberAt = function(row, column) { + var _numberRx = /[\-]?[0-9]+(?:\.[0-9]+)?/g; + _numberRx.lastIndex = 0; + + var s = this.session.getLine(row); + while (_numberRx.lastIndex < column) { + var m = _numberRx.exec(s); + if(m.index <= column && m.index+m[0].length >= column){ + var number = { + value: m[0], + start: m.index, + end: m.index+m[0].length + }; + return number; + } + } + return null; + }; + this.modifyNumber = function(amount) { + var row = this.selection.getCursor().row; + var column = this.selection.getCursor().column; + var charRange = new Range(row, column-1, row, column); + + var c = this.session.getTextRange(charRange); + if (!isNaN(parseFloat(c)) && isFinite(c)) { + var nr = this.getNumberAt(row, column); + if (nr) { + var fp = nr.value.indexOf(".") >= 0 ? nr.start + nr.value.indexOf(".") + 1 : nr.end; + var decimals = nr.start + nr.value.length - fp; + + var t = parseFloat(nr.value); + t *= Math.pow(10, decimals); + + + if(fp !== nr.end && column < fp){ + amount *= Math.pow(10, nr.end - column - 1); + } else { + amount *= Math.pow(10, nr.end - column); + } + + t += amount; + t /= Math.pow(10, decimals); + var nnr = t.toFixed(decimals); + var replaceRange = new Range(row, nr.start, row, nr.end); + this.session.replace(replaceRange, nnr); + this.moveCursorTo(row, Math.max(nr.start +1, column + nnr.length - nr.value.length)); + + } + } else { + this.toggleWord(); + } + }; + + this.$toggleWordPairs = [ + ["first", "last"], + ["true", "false"], + ["yes", "no"], + ["width", "height"], + ["top", "bottom"], + ["right", "left"], + ["on", "off"], + ["x", "y"], + ["get", "set"], + ["max", "min"], + ["horizontal", "vertical"], + ["show", "hide"], + ["add", "remove"], + ["up", "down"], + ["before", "after"], + ["even", "odd"], + ["inside", "outside"], + ["next", "previous"], + ["increase", "decrease"], + ["attach", "detach"], + ["&&", "||"], + ["==", "!="] + ]; + + this.toggleWord = function () { + var row = this.selection.getCursor().row; + var column = this.selection.getCursor().column; + this.selection.selectWord(); + var currentState = this.getSelectedText(); + var currWordStart = this.selection.getWordRange().start.column; + var wordParts = currentState.replace(/([a-z]+|[A-Z]+)(?=[A-Z_]|$)/g, '$1 ').split(/\s/); + var delta = column - currWordStart - 1; + if (delta < 0) delta = 0; + var curLength = 0, itLength = 0; + var that = this; + if (currentState.match(/[A-Za-z0-9_]+/)) { + wordParts.forEach(function (item, i) { + itLength = curLength + item.length; + if (delta >= curLength && delta <= itLength) { + currentState = item; + that.selection.clearSelection(); + that.moveCursorTo(row, curLength + currWordStart); + that.selection.selectTo(row, itLength + currWordStart); + } + curLength = itLength; + }); + } + + var wordPairs = this.$toggleWordPairs; + var reg; + for (var i = 0; i < wordPairs.length; i++) { + var item = wordPairs[i]; + for (var j = 0; j <= 1; j++) { + var negate = +!j; + var firstCondition = currentState.match(new RegExp('^\\s?_?(' + lang.escapeRegExp(item[j]) + ')\\s?$', 'i')); + if (firstCondition) { + var secondCondition = currentState.match(new RegExp('([_]|^|\\s)(' + lang.escapeRegExp(firstCondition[1]) + ')($|\\s)', 'g')); + if (secondCondition) { + reg = currentState.replace(new RegExp(lang.escapeRegExp(item[j]), 'i'), function (result) { + var res = item[negate]; + if (result.toUpperCase() == result) { + res = res.toUpperCase(); + } else if (result.charAt(0).toUpperCase() == result.charAt(0)) { + res = res.substr(0, 0) + item[negate].charAt(0).toUpperCase() + res.substr(1); + } + return res; + }); + this.insert(reg); + reg = ""; + } + } + } + } + }; + this.removeLines = function() { + var rows = this.$getSelectedRows(); + this.session.removeFullLines(rows.first, rows.last); + this.clearSelection(); + }; + + this.duplicateSelection = function() { + var sel = this.selection; + var doc = this.session; + var range = sel.getRange(); + var reverse = sel.isBackwards(); + if (range.isEmpty()) { + var row = range.start.row; + doc.duplicateLines(row, row); + } else { + var point = reverse ? range.start : range.end; + var endPoint = doc.insert(point, doc.getTextRange(range), false); + range.start = point; + range.end = endPoint; + + sel.setSelectionRange(range, reverse); + } + }; + this.moveLinesDown = function() { + this.$moveLines(1, false); + }; + this.moveLinesUp = function() { + this.$moveLines(-1, false); + }; + this.moveText = function(range, toPosition, copy) { + return this.session.moveText(range, toPosition, copy); + }; + this.copyLinesUp = function() { + this.$moveLines(-1, true); + }; + this.copyLinesDown = function() { + this.$moveLines(1, true); + }; + this.$moveLines = function(dir, copy) { + var rows, moved; + var selection = this.selection; + if (!selection.inMultiSelectMode || this.inVirtualSelectionMode) { + var range = selection.toOrientedRange(); + rows = this.$getSelectedRows(range); + moved = this.session.$moveLines(rows.first, rows.last, copy ? 0 : dir); + if (copy && dir == -1) moved = 0; + range.moveBy(moved, 0); + selection.fromOrientedRange(range); + } else { + var ranges = selection.rangeList.ranges; + selection.rangeList.detach(this.session); + this.inVirtualSelectionMode = true; + + var diff = 0; + var totalDiff = 0; + var l = ranges.length; + for (var i = 0; i < l; i++) { + var rangeIndex = i; + ranges[i].moveBy(diff, 0); + rows = this.$getSelectedRows(ranges[i]); + var first = rows.first; + var last = rows.last; + while (++i < l) { + if (totalDiff) ranges[i].moveBy(totalDiff, 0); + var subRows = this.$getSelectedRows(ranges[i]); + if (copy && subRows.first != last) + break; + else if (!copy && subRows.first > last + 1) + break; + last = subRows.last; + } + i--; + diff = this.session.$moveLines(first, last, copy ? 0 : dir); + if (copy && dir == -1) rangeIndex = i + 1; + while (rangeIndex <= i) { + ranges[rangeIndex].moveBy(diff, 0); + rangeIndex++; + } + if (!copy) diff = 0; + totalDiff += diff; + } + + selection.fromOrientedRange(selection.ranges[0]); + selection.rangeList.attach(this.session); + this.inVirtualSelectionMode = false; + } + }; + this.$getSelectedRows = function(range) { + range = (range || this.getSelectionRange()).collapseRows(); + + return { + first: this.session.getRowFoldStart(range.start.row), + last: this.session.getRowFoldEnd(range.end.row) + }; + }; + + this.onCompositionStart = function(compositionState) { + this.renderer.showComposition(compositionState); + }; + + this.onCompositionUpdate = function(text) { + this.renderer.setCompositionText(text); + }; + + this.onCompositionEnd = function() { + this.renderer.hideComposition(); + }; + this.getFirstVisibleRow = function() { + return this.renderer.getFirstVisibleRow(); + }; + this.getLastVisibleRow = function() { + return this.renderer.getLastVisibleRow(); + }; + this.isRowVisible = function(row) { + return (row >= this.getFirstVisibleRow() && row <= this.getLastVisibleRow()); + }; + this.isRowFullyVisible = function(row) { + return (row >= this.renderer.getFirstFullyVisibleRow() && row <= this.renderer.getLastFullyVisibleRow()); + }; + this.$getVisibleRowCount = function() { + return this.renderer.getScrollBottomRow() - this.renderer.getScrollTopRow() + 1; + }; + + this.$moveByPage = function(dir, select) { + var renderer = this.renderer; + var config = this.renderer.layerConfig; + var rows = dir * Math.floor(config.height / config.lineHeight); + + if (select === true) { + this.selection.$moveSelection(function(){ + this.moveCursorBy(rows, 0); + }); + } else if (select === false) { + this.selection.moveCursorBy(rows, 0); + this.selection.clearSelection(); + } + + var scrollTop = renderer.scrollTop; + + renderer.scrollBy(0, rows * config.lineHeight); + if (select != null) + renderer.scrollCursorIntoView(null, 0.5); + + renderer.animateScrolling(scrollTop); + }; + this.selectPageDown = function() { + this.$moveByPage(1, true); + }; + this.selectPageUp = function() { + this.$moveByPage(-1, true); + }; + this.gotoPageDown = function() { + this.$moveByPage(1, false); + }; + this.gotoPageUp = function() { + this.$moveByPage(-1, false); + }; + this.scrollPageDown = function() { + this.$moveByPage(1); + }; + this.scrollPageUp = function() { + this.$moveByPage(-1); + }; + this.scrollToRow = function(row) { + this.renderer.scrollToRow(row); + }; + this.scrollToLine = function(line, center, animate, callback) { + this.renderer.scrollToLine(line, center, animate, callback); + }; + this.centerSelection = function() { + var range = this.getSelectionRange(); + var pos = { + row: Math.floor(range.start.row + (range.end.row - range.start.row) / 2), + column: Math.floor(range.start.column + (range.end.column - range.start.column) / 2) + }; + this.renderer.alignCursor(pos, 0.5); + }; + this.getCursorPosition = function() { + return this.selection.getCursor(); + }; + this.getCursorPositionScreen = function() { + return this.session.documentToScreenPosition(this.getCursorPosition()); + }; + this.getSelectionRange = function() { + return this.selection.getRange(); + }; + this.selectAll = function() { + this.selection.selectAll(); + }; + this.clearSelection = function() { + this.selection.clearSelection(); + }; + this.moveCursorTo = function(row, column) { + this.selection.moveCursorTo(row, column); + }; + this.moveCursorToPosition = function(pos) { + this.selection.moveCursorToPosition(pos); + }; + this.jumpToMatching = function(select, expand) { + var cursor = this.getCursorPosition(); + var iterator = new TokenIterator(this.session, cursor.row, cursor.column); + var prevToken = iterator.getCurrentToken(); + var token = prevToken || iterator.stepForward(); + + if (!token) return; + var matchType; + var found = false; + var depth = {}; + var i = cursor.column - token.start; + var bracketType; + var brackets = { + ")": "(", + "(": "(", + "]": "[", + "[": "[", + "{": "{", + "}": "{" + }; + + do { + if (token.value.match(/[{}()\[\]]/g)) { + for (; i < token.value.length && !found; i++) { + if (!brackets[token.value[i]]) { + continue; + } + + bracketType = brackets[token.value[i]] + '.' + token.type.replace("rparen", "lparen"); + + if (isNaN(depth[bracketType])) { + depth[bracketType] = 0; + } + + switch (token.value[i]) { + case '(': + case '[': + case '{': + depth[bracketType]++; + break; + case ')': + case ']': + case '}': + depth[bracketType]--; + + if (depth[bracketType] === -1) { + matchType = 'bracket'; + found = true; + } + break; + } + } + } + else if (token.type.indexOf('tag-name') !== -1) { + if (isNaN(depth[token.value])) { + depth[token.value] = 0; + } + + if (prevToken.value === '<') { + depth[token.value]++; + } + else if (prevToken.value === '= 0; --i) { + if(this.$tryReplace(ranges[i], replacement)) { + replaced++; + } + } + + this.selection.setSelectionRange(selection); + + return replaced; + }; + + this.$tryReplace = function(range, replacement) { + var input = this.session.getTextRange(range); + replacement = this.$search.replace(input, replacement); + if (replacement !== null) { + range.end = this.session.replace(range, replacement); + return range; + } else { + return null; + } + }; + this.getLastSearchOptions = function() { + return this.$search.getOptions(); + }; + this.find = function(needle, options, animate) { + if (!options) + options = {}; + + if (typeof needle == "string" || needle instanceof RegExp) + options.needle = needle; + else if (typeof needle == "object") + oop.mixin(options, needle); + + var range = this.selection.getRange(); + if (options.needle == null) { + needle = this.session.getTextRange(range) + || this.$search.$options.needle; + if (!needle) { + range = this.session.getWordRange(range.start.row, range.start.column); + needle = this.session.getTextRange(range); + } + this.$search.set({needle: needle}); + } + + this.$search.set(options); + if (!options.start) + this.$search.set({start: range}); + + var newRange = this.$search.find(this.session); + if (options.preventScroll) + return newRange; + if (newRange) { + this.revealRange(newRange, animate); + return newRange; + } + if (options.backwards) + range.start = range.end; + else + range.end = range.start; + this.selection.setRange(range); + }; + this.findNext = function(options, animate) { + this.find({skipCurrent: true, backwards: false}, options, animate); + }; + this.findPrevious = function(options, animate) { + this.find(options, {skipCurrent: true, backwards: true}, animate); + }; + + this.revealRange = function(range, animate) { + this.session.unfold(range); + this.selection.setSelectionRange(range); + + var scrollTop = this.renderer.scrollTop; + this.renderer.scrollSelectionIntoView(range.start, range.end, 0.5); + if (animate !== false) + this.renderer.animateScrolling(scrollTop); + }; + this.undo = function() { + this.session.getUndoManager().undo(this.session); + this.renderer.scrollCursorIntoView(null, 0.5); + }; + this.redo = function() { + this.session.getUndoManager().redo(this.session); + this.renderer.scrollCursorIntoView(null, 0.5); + }; + this.destroy = function() { + this.renderer.destroy(); + this._signal("destroy", this); + if (this.session) { + this.session.destroy(); + } + }; + this.setAutoScrollEditorIntoView = function(enable) { + if (!enable) + return; + var rect; + var self = this; + var shouldScroll = false; + if (!this.$scrollAnchor) + this.$scrollAnchor = document.createElement("div"); + var scrollAnchor = this.$scrollAnchor; + scrollAnchor.style.cssText = "position:absolute"; + this.container.insertBefore(scrollAnchor, this.container.firstChild); + var onChangeSelection = this.on("changeSelection", function() { + shouldScroll = true; + }); + var onBeforeRender = this.renderer.on("beforeRender", function() { + if (shouldScroll) + rect = self.renderer.container.getBoundingClientRect(); + }); + var onAfterRender = this.renderer.on("afterRender", function() { + if (shouldScroll && rect && (self.isFocused() + || self.searchBox && self.searchBox.isFocused()) + ) { + var renderer = self.renderer; + var pos = renderer.$cursorLayer.$pixelPos; + var config = renderer.layerConfig; + var top = pos.top - config.offset; + if (pos.top >= 0 && top + rect.top < 0) { + shouldScroll = true; + } else if (pos.top < config.height && + pos.top + rect.top + config.lineHeight > window.innerHeight) { + shouldScroll = false; + } else { + shouldScroll = null; + } + if (shouldScroll != null) { + scrollAnchor.style.top = top + "px"; + scrollAnchor.style.left = pos.left + "px"; + scrollAnchor.style.height = config.lineHeight + "px"; + scrollAnchor.scrollIntoView(shouldScroll); + } + shouldScroll = rect = null; + } + }); + this.setAutoScrollEditorIntoView = function(enable) { + if (enable) + return; + delete this.setAutoScrollEditorIntoView; + this.off("changeSelection", onChangeSelection); + this.renderer.off("afterRender", onAfterRender); + this.renderer.off("beforeRender", onBeforeRender); + }; + }; + + + this.$resetCursorStyle = function() { + var style = this.$cursorStyle || "ace"; + var cursorLayer = this.renderer.$cursorLayer; + if (!cursorLayer) + return; + cursorLayer.setSmoothBlinking(/smooth/.test(style)); + cursorLayer.isBlinking = !this.$readOnly && style != "wide"; + dom.setCssClass(cursorLayer.element, "ace_slim-cursors", /slim/.test(style)); + }; + this.prompt = function(message, options, callback) { + var editor = this; + config.loadModule("./ext/prompt", function (module) { + module.prompt(editor, message, options, callback); + }); + }; + +}).call(Editor.prototype); + + + +config.defineOptions(Editor.prototype, "editor", { + selectionStyle: { + set: function(style) { + this.onSelectionChange(); + this._signal("changeSelectionStyle", {data: style}); + }, + initialValue: "line" + }, + highlightActiveLine: { + set: function() {this.$updateHighlightActiveLine();}, + initialValue: true + }, + highlightSelectedWord: { + set: function(shouldHighlight) {this.$onSelectionChange();}, + initialValue: true + }, + readOnly: { + set: function(readOnly) { + this.textInput.setReadOnly(readOnly); + this.$resetCursorStyle(); + }, + initialValue: false + }, + copyWithEmptySelection: { + set: function(value) { + this.textInput.setCopyWithEmptySelection(value); + }, + initialValue: false + }, + cursorStyle: { + set: function(val) { this.$resetCursorStyle(); }, + values: ["ace", "slim", "smooth", "wide"], + initialValue: "ace" + }, + mergeUndoDeltas: { + values: [false, true, "always"], + initialValue: true + }, + behavioursEnabled: {initialValue: true}, + wrapBehavioursEnabled: {initialValue: true}, + autoScrollEditorIntoView: { + set: function(val) {this.setAutoScrollEditorIntoView(val);} + }, + keyboardHandler: { + set: function(val) { this.setKeyboardHandler(val); }, + get: function() { return this.$keybindingId; }, + handlesSet: true + }, + value: { + set: function(val) { this.session.setValue(val); }, + get: function() { return this.getValue(); }, + handlesSet: true, + hidden: true + }, + session: { + set: function(val) { this.setSession(val); }, + get: function() { return this.session; }, + handlesSet: true, + hidden: true + }, + + showLineNumbers: { + set: function(show) { + this.renderer.$gutterLayer.setShowLineNumbers(show); + this.renderer.$loop.schedule(this.renderer.CHANGE_GUTTER); + if (show && this.$relativeLineNumbers) + relativeNumberRenderer.attach(this); + else + relativeNumberRenderer.detach(this); + }, + initialValue: true + }, + relativeLineNumbers: { + set: function(value) { + if (this.$showLineNumbers && value) + relativeNumberRenderer.attach(this); + else + relativeNumberRenderer.detach(this); + } + }, + + hScrollBarAlwaysVisible: "renderer", + vScrollBarAlwaysVisible: "renderer", + highlightGutterLine: "renderer", + animatedScroll: "renderer", + showInvisibles: "renderer", + showPrintMargin: "renderer", + printMarginColumn: "renderer", + printMargin: "renderer", + fadeFoldWidgets: "renderer", + showFoldWidgets: "renderer", + displayIndentGuides: "renderer", + showGutter: "renderer", + fontSize: "renderer", + fontFamily: "renderer", + maxLines: "renderer", + minLines: "renderer", + scrollPastEnd: "renderer", + fixedWidthGutter: "renderer", + theme: "renderer", + hasCssTransforms: "renderer", + maxPixelHeight: "renderer", + useTextareaForIME: "renderer", + + scrollSpeed: "$mouseHandler", + dragDelay: "$mouseHandler", + dragEnabled: "$mouseHandler", + focusTimeout: "$mouseHandler", + tooltipFollowsMouse: "$mouseHandler", + + firstLineNumber: "session", + overwrite: "session", + newLineMode: "session", + useWorker: "session", + useSoftTabs: "session", + navigateWithinSoftTabs: "session", + tabSize: "session", + wrap: "session", + indentedSoftWrap: "session", + foldStyle: "session", + mode: "session" +}); + + +var relativeNumberRenderer = { + getText: function(session, row) { + return (Math.abs(session.selection.lead.row - row) || (row + 1 + (row < 9 ? "\xb7" : ""))) + ""; + }, + getWidth: function(session, lastLineNumber, config) { + return Math.max( + lastLineNumber.toString().length, + (config.lastRow + 1).toString().length, + 2 + ) * config.characterWidth; + }, + update: function(e, editor) { + editor.renderer.$loop.schedule(editor.renderer.CHANGE_GUTTER); + }, + attach: function(editor) { + editor.renderer.$gutterLayer.$renderer = this; + editor.on("changeSelection", this.update); + this.update(null, editor); + }, + detach: function(editor) { + if (editor.renderer.$gutterLayer.$renderer == this) + editor.renderer.$gutterLayer.$renderer = null; + editor.off("changeSelection", this.update); + this.update(null, editor); + } +}; + +exports.Editor = Editor; +}); + +define("ace/undomanager",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; +var UndoManager = function() { + this.$maxRev = 0; + this.$fromUndo = false; + this.reset(); +}; + +(function() { + + this.addSession = function(session) { + this.$session = session; + }; + this.add = function(delta, allowMerge, session) { + if (this.$fromUndo) return; + if (delta == this.$lastDelta) return; + if (allowMerge === false || !this.lastDeltas) { + this.lastDeltas = []; + this.$undoStack.push(this.lastDeltas); + delta.id = this.$rev = ++this.$maxRev; + } + if (delta.action == "remove" || delta.action == "insert") + this.$lastDelta = delta; + this.lastDeltas.push(delta); + }; + + this.addSelection = function(selection, rev) { + this.selections.push({ + value: selection, + rev: rev || this.$rev + }); + }; + + this.startNewGroup = function() { + this.lastDeltas = null; + return this.$rev; + }; + + this.markIgnored = function(from, to) { + if (to == null) to = this.$rev + 1; + var stack = this.$undoStack; + for (var i = stack.length; i--;) { + var delta = stack[i][0]; + if (delta.id <= from) + break; + if (delta.id < to) + delta.ignore = true; + } + this.lastDeltas = null; + }; + + this.getSelection = function(rev, after) { + var stack = this.selections; + for (var i = stack.length; i--;) { + var selection = stack[i]; + if (selection.rev < rev) { + if (after) + selection = stack[i + 1]; + return selection; + } + } + }; + + this.getRevision = function() { + return this.$rev; + }; + + this.getDeltas = function(from, to) { + if (to == null) to = this.$rev + 1; + var stack = this.$undoStack; + var end = null, start = 0; + for (var i = stack.length; i--;) { + var delta = stack[i][0]; + if (delta.id < to && !end) + end = i+1; + if (delta.id <= from) { + start = i + 1; + break; + } + } + return stack.slice(start, end); + }; + + this.getChangedRanges = function(from, to) { + if (to == null) to = this.$rev + 1; + + }; + + this.getChangedLines = function(from, to) { + if (to == null) to = this.$rev + 1; + + }; + this.undo = function(session, dontSelect) { + this.lastDeltas = null; + var stack = this.$undoStack; + + if (!rearrangeUndoStack(stack, stack.length)) + return; + + if (!session) + session = this.$session; + + if (this.$redoStackBaseRev !== this.$rev && this.$redoStack.length) + this.$redoStack = []; + + this.$fromUndo = true; + + var deltaSet = stack.pop(); + var undoSelectionRange = null; + if (deltaSet && deltaSet.length) { + undoSelectionRange = session.undoChanges(deltaSet, dontSelect); + this.$redoStack.push(deltaSet); + this.$syncRev(); + } + + this.$fromUndo = false; + + return undoSelectionRange; + }; + this.redo = function(session, dontSelect) { + this.lastDeltas = null; + + if (!session) + session = this.$session; + + this.$fromUndo = true; + if (this.$redoStackBaseRev != this.$rev) { + var diff = this.getDeltas(this.$redoStackBaseRev, this.$rev + 1); + rebaseRedoStack(this.$redoStack, diff); + this.$redoStackBaseRev = this.$rev; + this.$redoStack.forEach(function(x) { + x[0].id = ++this.$maxRev; + }, this); + } + var deltaSet = this.$redoStack.pop(); + var redoSelectionRange = null; + + if (deltaSet) { + redoSelectionRange = session.redoChanges(deltaSet, dontSelect); + this.$undoStack.push(deltaSet); + this.$syncRev(); + } + this.$fromUndo = false; + + return redoSelectionRange; + }; + + this.$syncRev = function() { + var stack = this.$undoStack; + var nextDelta = stack[stack.length - 1]; + var id = nextDelta && nextDelta[0].id || 0; + this.$redoStackBaseRev = id; + this.$rev = id; + }; + this.reset = function() { + this.lastDeltas = null; + this.$lastDelta = null; + this.$undoStack = []; + this.$redoStack = []; + this.$rev = 0; + this.mark = 0; + this.$redoStackBaseRev = this.$rev; + this.selections = []; + }; + this.canUndo = function() { + return this.$undoStack.length > 0; + }; + this.canRedo = function() { + return this.$redoStack.length > 0; + }; + this.bookmark = function(rev) { + if (rev == undefined) + rev = this.$rev; + this.mark = rev; + }; + this.isAtBookmark = function() { + return this.$rev === this.mark; + }; + + this.toJSON = function() { + + }; + + this.fromJSON = function() { + + }; + + this.hasUndo = this.canUndo; + this.hasRedo = this.canRedo; + this.isClean = this.isAtBookmark; + this.markClean = this.bookmark; + + this.$prettyPrint = function(delta) { + if (delta) return stringifyDelta(delta); + return stringifyDelta(this.$undoStack) + "\n---\n" + stringifyDelta(this.$redoStack); + }; +}).call(UndoManager.prototype); + +function rearrangeUndoStack(stack, pos) { + for (var i = pos; i--; ) { + var deltaSet = stack[i]; + if (deltaSet && !deltaSet[0].ignore) { + while(i < pos - 1) { + var swapped = swapGroups(stack[i], stack[i + 1]); + stack[i] = swapped[0]; + stack[i + 1] = swapped[1]; + i++; + } + return true; + } + } +} + +var Range = require("./range").Range; +var cmp = Range.comparePoints; +var comparePoints = Range.comparePoints; + +function $updateMarkers(delta) { + var isInsert = delta.action == "insert"; + var start = delta.start; + var end = delta.end; + var rowShift = (end.row - start.row) * (isInsert ? 1 : -1); + var colShift = (end.column - start.column) * (isInsert ? 1 : -1); + if (isInsert) end = start; + + for (var i in this.marks) { + var point = this.marks[i]; + var cmp = comparePoints(point, start); + if (cmp < 0) { + continue; // delta starts after the range + } + if (cmp === 0) { + if (isInsert) { + if (point.bias == 1) { + cmp = 1; + } + else { + point.bias == -1; + continue; + } + } + } + var cmp2 = isInsert ? cmp : comparePoints(point, end); + if (cmp2 > 0) { + point.row += rowShift; + point.column += point.row == end.row ? colShift : 0; + continue; + } + if (!isInsert && cmp2 <= 0) { + point.row = start.row; + point.column = start.column; + if (cmp2 === 0) + point.bias = 1; + } + } +} + + + +function clonePos(pos) { + return {row: pos.row,column: pos.column}; +} +function cloneDelta(d) { + return { + start: clonePos(d.start), + end: clonePos(d.end), + action: d.action, + lines: d.lines.slice() + }; +} +function stringifyDelta(d) { + d = d || this; + if (Array.isArray(d)) { + return d.map(stringifyDelta).join("\n"); + } + var type = ""; + if (d.action) { + type = d.action == "insert" ? "+" : "-"; + type += "[" + d.lines + "]"; + } else if (d.value) { + if (Array.isArray(d.value)) { + type = d.value.map(stringifyRange).join("\n"); + } else { + type = stringifyRange(d.value); + } + } + if (d.start) { + type += stringifyRange(d); + } + if (d.id || d.rev) { + type += "\t(" + (d.id || d.rev) + ")"; + } + return type; +} +function stringifyRange(r) { + return r.start.row + ":" + r.start.column + + "=>" + r.end.row + ":" + r.end.column; +} + +function swap(d1, d2) { + var i1 = d1.action == "insert"; + var i2 = d2.action == "insert"; + + if (i1 && i2) { + if (cmp(d2.start, d1.end) >= 0) { + shift(d2, d1, -1); + } else if (cmp(d2.start, d1.start) <= 0) { + shift(d1, d2, +1); + } else { + return null; + } + } else if (i1 && !i2) { + if (cmp(d2.start, d1.end) >= 0) { + shift(d2, d1, -1); + } else if (cmp(d2.end, d1.start) <= 0) { + shift(d1, d2, -1); + } else { + return null; + } + } else if (!i1 && i2) { + if (cmp(d2.start, d1.start) >= 0) { + shift(d2, d1, +1); + } else if (cmp(d2.start, d1.start) <= 0) { + shift(d1, d2, +1); + } else { + return null; + } + } else if (!i1 && !i2) { + if (cmp(d2.start, d1.start) >= 0) { + shift(d2, d1, +1); + } else if (cmp(d2.end, d1.start) <= 0) { + shift(d1, d2, -1); + } else { + return null; + } + } + return [d2, d1]; +} +function swapGroups(ds1, ds2) { + for (var i = ds1.length; i--; ) { + for (var j = 0; j < ds2.length; j++) { + if (!swap(ds1[i], ds2[j])) { + while (i < ds1.length) { + while (j--) { + swap(ds2[j], ds1[i]); + } + j = ds2.length; + i++; + } + return [ds1, ds2]; + } + } + } + ds1.selectionBefore = ds2.selectionBefore = + ds1.selectionAfter = ds2.selectionAfter = null; + return [ds2, ds1]; +} +function xform(d1, c1) { + var i1 = d1.action == "insert"; + var i2 = c1.action == "insert"; + + if (i1 && i2) { + if (cmp(d1.start, c1.start) < 0) { + shift(c1, d1, 1); + } else { + shift(d1, c1, 1); + } + } else if (i1 && !i2) { + if (cmp(d1.start, c1.end) >= 0) { + shift(d1, c1, -1); + } else if (cmp(d1.start, c1.start) <= 0) { + shift(c1, d1, +1); + } else { + shift(d1, Range.fromPoints(c1.start, d1.start), -1); + shift(c1, d1, +1); + } + } else if (!i1 && i2) { + if (cmp(c1.start, d1.end) >= 0) { + shift(c1, d1, -1); + } else if (cmp(c1.start, d1.start) <= 0) { + shift(d1, c1, +1); + } else { + shift(c1, Range.fromPoints(d1.start, c1.start), -1); + shift(d1, c1, +1); + } + } else if (!i1 && !i2) { + if (cmp(c1.start, d1.end) >= 0) { + shift(c1, d1, -1); + } else if (cmp(c1.end, d1.start) <= 0) { + shift(d1, c1, -1); + } else { + var before, after; + if (cmp(d1.start, c1.start) < 0) { + before = d1; + d1 = splitDelta(d1, c1.start); + } + if (cmp(d1.end, c1.end) > 0) { + after = splitDelta(d1, c1.end); + } + + shiftPos(c1.end, d1.start, d1.end, -1); + if (after && !before) { + d1.lines = after.lines; + d1.start = after.start; + d1.end = after.end; + after = d1; + } + + return [c1, before, after].filter(Boolean); + } + } + return [c1, d1]; +} + +function shift(d1, d2, dir) { + shiftPos(d1.start, d2.start, d2.end, dir); + shiftPos(d1.end, d2.start, d2.end, dir); +} +function shiftPos(pos, start, end, dir) { + if (pos.row == (dir == 1 ? start : end).row) { + pos.column += dir * (end.column - start.column); + } + pos.row += dir * (end.row - start.row); +} +function splitDelta(c, pos) { + var lines = c.lines; + var end = c.end; + c.end = clonePos(pos); + var rowsBefore = c.end.row - c.start.row; + var otherLines = lines.splice(rowsBefore, lines.length); + + var col = rowsBefore ? pos.column : pos.column - c.start.column; + lines.push(otherLines[0].substring(0, col)); + otherLines[0] = otherLines[0].substr(col) ; + var rest = { + start: clonePos(pos), + end: end, + lines: otherLines, + action: c.action + }; + return rest; +} + +function moveDeltasByOne(redoStack, d) { + d = cloneDelta(d); + for (var j = redoStack.length; j--;) { + var deltaSet = redoStack[j]; + for (var i = 0; i < deltaSet.length; i++) { + var x = deltaSet[i]; + var xformed = xform(x, d); + d = xformed[0]; + if (xformed.length != 2) { + if (xformed[2]) { + deltaSet.splice(i + 1, 1, xformed[1], xformed[2]); + i++; + } else if (!xformed[1]) { + deltaSet.splice(i, 1); + i--; + } + } + } + if (!deltaSet.length) { + redoStack.splice(j, 1); + } + } + return redoStack; +} +function rebaseRedoStack(redoStack, deltaSets) { + for (var i = 0; i < deltaSets.length; i++) { + var deltas = deltaSets[i]; + for (var j = 0; j < deltas.length; j++) { + moveDeltasByOne(redoStack, deltas[j]); + } + } +} + +exports.UndoManager = UndoManager; + +}); + +define("ace/layer/lines",["require","exports","module","ace/lib/dom"], function(require, exports, module) { +"use strict"; + +var dom = require("../lib/dom"); + +var Lines = function(element, canvasHeight) { + this.element = element; + this.canvasHeight = canvasHeight || 500000; + this.element.style.height = (this.canvasHeight * 2) + "px"; + + this.cells = []; + this.cellCache = []; + this.$offsetCoefficient = 0; +}; + +(function() { + + this.moveContainer = function(config) { + dom.translate(this.element, 0, -((config.firstRowScreen * config.lineHeight) % this.canvasHeight) - config.offset * this.$offsetCoefficient); + }; + + this.pageChanged = function(oldConfig, newConfig) { + return ( + Math.floor((oldConfig.firstRowScreen * oldConfig.lineHeight) / this.canvasHeight) !== + Math.floor((newConfig.firstRowScreen * newConfig.lineHeight) / this.canvasHeight) + ); + }; + + this.computeLineTop = function(row, config, session) { + var screenTop = config.firstRowScreen * config.lineHeight; + var screenPage = Math.floor(screenTop / this.canvasHeight); + var lineTop = session.documentToScreenRow(row, 0) * config.lineHeight; + return lineTop - (screenPage * this.canvasHeight); + }; + + this.computeLineHeight = function(row, config, session) { + return config.lineHeight * session.getRowLength(row); + }; + + this.getLength = function() { + return this.cells.length; + }; + + this.get = function(index) { + return this.cells[index]; + }; + + this.shift = function() { + this.$cacheCell(this.cells.shift()); + }; + + this.pop = function() { + this.$cacheCell(this.cells.pop()); + }; + + this.push = function(cell) { + if (Array.isArray(cell)) { + this.cells.push.apply(this.cells, cell); + var fragment = dom.createFragment(this.element); + for (var i=0; i foldStart) { + row = fold.end.row + 1; + fold = session.getNextFoldLine(row, fold); + foldStart = fold ? fold.start.row : Infinity; + } + if (row > lastRow) { + while (this.$lines.getLength() > index + 1) + this.$lines.pop(); + + break; + } + + cell = this.$lines.get(++index); + if (cell) { + cell.row = row; + } else { + cell = this.$lines.createCell(row, config, this.session, onCreateCell); + this.$lines.push(cell); + } + + this.$renderCell(cell, config, fold, row); + row++; + } + + this._signal("afterRender"); + this.$updateGutterWidth(config); + }; + + this.$updateGutterWidth = function(config) { + var session = this.session; + + var gutterRenderer = session.gutterRenderer || this.$renderer; + + var firstLineNumber = session.$firstLineNumber; + var lastLineText = this.$lines.last() ? this.$lines.last().text : ""; + + if (this.$fixedWidth || session.$useWrapMode) + lastLineText = session.getLength() + firstLineNumber - 1; + + var gutterWidth = gutterRenderer + ? gutterRenderer.getWidth(session, lastLineText, config) + : lastLineText.toString().length * config.characterWidth; + + var padding = this.$padding || this.$computePadding(); + gutterWidth += padding.left + padding.right; + if (gutterWidth !== this.gutterWidth && !isNaN(gutterWidth)) { + this.gutterWidth = gutterWidth; + this.element.parentNode.style.width = + this.element.style.width = Math.ceil(this.gutterWidth) + "px"; + this._signal("changeGutterWidth", gutterWidth); + } + }; + + this.$updateCursorRow = function() { + if (!this.$highlightGutterLine) + return; + + var position = this.session.selection.getCursor(); + if (this.$cursorRow === position.row) + return; + + this.$cursorRow = position.row; + }; + + this.updateLineHighlight = function() { + if (!this.$highlightGutterLine) + return; + var row = this.session.selection.cursor.row; + this.$cursorRow = row; + + if (this.$cursorCell && this.$cursorCell.row == row) + return; + if (this.$cursorCell) + this.$cursorCell.element.className = this.$cursorCell.element.className.replace("ace_gutter-active-line ", ""); + var cells = this.$lines.cells; + this.$cursorCell = null; + for (var i = 0; i < cells.length; i++) { + var cell = cells[i]; + if (cell.row >= this.$cursorRow) { + if (cell.row > this.$cursorRow) { + var fold = this.session.getFoldLine(this.$cursorRow); + if (i > 0 && fold && fold.start.row == cells[i - 1].row) + cell = cells[i - 1]; + else + break; + } + cell.element.className = "ace_gutter-active-line " + cell.element.className; + this.$cursorCell = cell; + break; + } + } + }; + + this.scrollLines = function(config) { + var oldConfig = this.config; + this.config = config; + + this.$updateCursorRow(); + if (this.$lines.pageChanged(oldConfig, config)) + return this.update(config); + + this.$lines.moveContainer(config); + + var lastRow = Math.min(config.lastRow + config.gutterOffset, // needed to compensate for hor scollbar + this.session.getLength() - 1); + var oldLastRow = this.oldLastRow; + this.oldLastRow = lastRow; + + if (!oldConfig || oldLastRow < config.firstRow) + return this.update(config); + + if (lastRow < oldConfig.firstRow) + return this.update(config); + + if (oldConfig.firstRow < config.firstRow) + for (var row=this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row>0; row--) + this.$lines.shift(); + + if (oldLastRow > lastRow) + for (var row=this.session.getFoldedRowCount(lastRow + 1, oldLastRow); row>0; row--) + this.$lines.pop(); + + if (config.firstRow < oldConfig.firstRow) { + this.$lines.unshift(this.$renderLines(config, config.firstRow, oldConfig.firstRow - 1)); + } + + if (lastRow > oldLastRow) { + this.$lines.push(this.$renderLines(config, oldLastRow + 1, lastRow)); + } + + this.updateLineHighlight(); + + this._signal("afterRender"); + this.$updateGutterWidth(config); + }; + + this.$renderLines = function(config, firstRow, lastRow) { + var fragment = []; + var row = firstRow; + var foldLine = this.session.getNextFoldLine(row); + var foldStart = foldLine ? foldLine.start.row : Infinity; + + while (true) { + if (row > foldStart) { + row = foldLine.end.row+1; + foldLine = this.session.getNextFoldLine(row, foldLine); + foldStart = foldLine ? foldLine.start.row : Infinity; + } + if (row > lastRow) + break; + + var cell = this.$lines.createCell(row, config, this.session, onCreateCell); + this.$renderCell(cell, config, foldLine, row); + fragment.push(cell); + + row++; + } + return fragment; + }; + + this.$renderCell = function(cell, config, fold, row) { + var element = cell.element; + + var session = this.session; + + var textNode = element.childNodes[0]; + var foldWidget = element.childNodes[1]; + + var firstLineNumber = session.$firstLineNumber; + + var breakpoints = session.$breakpoints; + var decorations = session.$decorations; + var gutterRenderer = session.gutterRenderer || this.$renderer; + var foldWidgets = this.$showFoldWidgets && session.foldWidgets; + var foldStart = fold ? fold.start.row : Number.MAX_VALUE; + + var className = "ace_gutter-cell "; + if (this.$highlightGutterLine) { + if (row == this.$cursorRow || (fold && row < this.$cursorRow && row >= foldStart && this.$cursorRow <= fold.end.row)) { + className += "ace_gutter-active-line "; + if (this.$cursorCell != cell) { + if (this.$cursorCell) + this.$cursorCell.element.className = this.$cursorCell.element.className.replace("ace_gutter-active-line ", ""); + this.$cursorCell = cell; + } + } + } + + if (breakpoints[row]) + className += breakpoints[row]; + if (decorations[row]) + className += decorations[row]; + if (this.$annotations[row]) + className += this.$annotations[row].className; + if (element.className != className) + element.className = className; + + if (foldWidgets) { + var c = foldWidgets[row]; + if (c == null) + c = foldWidgets[row] = session.getFoldWidget(row); + } + + if (c) { + var className = "ace_fold-widget ace_" + c; + if (c == "start" && row == foldStart && row < fold.end.row) + className += " ace_closed"; + else + className += " ace_open"; + if (foldWidget.className != className) + foldWidget.className = className; + + var foldHeight = config.lineHeight + "px"; + dom.setStyle(foldWidget.style, "height", foldHeight); + dom.setStyle(foldWidget.style, "display", "inline-block"); + } else { + if (foldWidget) { + dom.setStyle(foldWidget.style, "display", "none"); + } + } + + var text = (gutterRenderer + ? gutterRenderer.getText(session, row) + : row + firstLineNumber).toString(); + + if (text !== textNode.data) { + textNode.data = text; + } + + dom.setStyle(cell.element.style, "height", this.$lines.computeLineHeight(row, config, session) + "px"); + dom.setStyle(cell.element.style, "top", this.$lines.computeLineTop(row, config, session) + "px"); + + cell.text = text; + return cell; + }; + + this.$fixedWidth = false; + + this.$highlightGutterLine = true; + this.$renderer = ""; + this.setHighlightGutterLine = function(highlightGutterLine) { + this.$highlightGutterLine = highlightGutterLine; + }; + + this.$showLineNumbers = true; + this.$renderer = ""; + this.setShowLineNumbers = function(show) { + this.$renderer = !show && { + getWidth: function() {return 0;}, + getText: function() {return "";} + }; + }; + + this.getShowLineNumbers = function() { + return this.$showLineNumbers; + }; + + this.$showFoldWidgets = true; + this.setShowFoldWidgets = function(show) { + if (show) + dom.addCssClass(this.element, "ace_folding-enabled"); + else + dom.removeCssClass(this.element, "ace_folding-enabled"); + + this.$showFoldWidgets = show; + this.$padding = null; + }; + + this.getShowFoldWidgets = function() { + return this.$showFoldWidgets; + }; + + this.$computePadding = function() { + if (!this.element.firstChild) + return {left: 0, right: 0}; + var style = dom.computedStyle(this.element.firstChild); + this.$padding = {}; + this.$padding.left = (parseInt(style.borderLeftWidth) || 0) + + (parseInt(style.paddingLeft) || 0) + 1; + this.$padding.right = (parseInt(style.borderRightWidth) || 0) + + (parseInt(style.paddingRight) || 0); + return this.$padding; + }; + + this.getRegion = function(point) { + var padding = this.$padding || this.$computePadding(); + var rect = this.element.getBoundingClientRect(); + if (point.x < padding.left + rect.left) + return "markers"; + if (this.$showFoldWidgets && point.x > rect.right - padding.right) + return "foldWidgets"; + }; + +}).call(Gutter.prototype); + +function onCreateCell(element) { + var textNode = document.createTextNode(''); + element.appendChild(textNode); + + var foldWidget = dom.createElement("span"); + element.appendChild(foldWidget); + + return element; +} + +exports.Gutter = Gutter; + +}); + +define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; +var dom = require("../lib/dom"); + +var Marker = function(parentEl) { + this.element = dom.createElement("div"); + this.element.className = "ace_layer ace_marker-layer"; + parentEl.appendChild(this.element); +}; + +(function() { + + this.$padding = 0; + + this.setPadding = function(padding) { + this.$padding = padding; + }; + this.setSession = function(session) { + this.session = session; + }; + + this.setMarkers = function(markers) { + this.markers = markers; + }; + + this.elt = function(className, css) { + var x = this.i != -1 && this.element.childNodes[this.i]; + if (!x) { + x = document.createElement("div"); + this.element.appendChild(x); + this.i = -1; + } else { + this.i++; + } + x.style.cssText = css; + x.className = className; + }; + + this.update = function(config) { + if (!config) return; + + this.config = config; + + this.i = 0; + var html; + for (var key in this.markers) { + var marker = this.markers[key]; + + if (!marker.range) { + marker.update(html, this, this.session, config); + continue; + } + + var range = marker.range.clipRows(config.firstRow, config.lastRow); + if (range.isEmpty()) continue; + + range = range.toScreenRange(this.session); + if (marker.renderer) { + var top = this.$getTop(range.start.row, config); + var left = this.$padding + range.start.column * config.characterWidth; + marker.renderer(html, range, left, top, config); + } else if (marker.type == "fullLine") { + this.drawFullLineMarker(html, range, marker.clazz, config); + } else if (marker.type == "screenLine") { + this.drawScreenLineMarker(html, range, marker.clazz, config); + } else if (range.isMultiLine()) { + if (marker.type == "text") + this.drawTextMarker(html, range, marker.clazz, config); + else + this.drawMultiLineMarker(html, range, marker.clazz, config); + } else { + this.drawSingleLineMarker(html, range, marker.clazz + " ace_start" + " ace_br15", config); + } + } + if (this.i !=-1) { + while (this.i < this.element.childElementCount) + this.element.removeChild(this.element.lastChild); + } + }; + + this.$getTop = function(row, layerConfig) { + return (row - layerConfig.firstRowScreen) * layerConfig.lineHeight; + }; + + function getBorderClass(tl, tr, br, bl) { + return (tl ? 1 : 0) | (tr ? 2 : 0) | (br ? 4 : 0) | (bl ? 8 : 0); + } + this.drawTextMarker = function(stringBuilder, range, clazz, layerConfig, extraStyle) { + var session = this.session; + var start = range.start.row; + var end = range.end.row; + var row = start; + var prev = 0; + var curr = 0; + var next = session.getScreenLastRowColumn(row); + var lineRange = new Range(row, range.start.column, row, curr); + for (; row <= end; row++) { + lineRange.start.row = lineRange.end.row = row; + lineRange.start.column = row == start ? range.start.column : session.getRowWrapIndent(row); + lineRange.end.column = next; + prev = curr; + curr = next; + next = row + 1 < end ? session.getScreenLastRowColumn(row + 1) : row == end ? 0 : range.end.column; + this.drawSingleLineMarker(stringBuilder, lineRange, + clazz + (row == start ? " ace_start" : "") + " ace_br" + + getBorderClass(row == start || row == start + 1 && range.start.column, prev < curr, curr > next, row == end), + layerConfig, row == end ? 0 : 1, extraStyle); + } + }; + this.drawMultiLineMarker = function(stringBuilder, range, clazz, config, extraStyle) { + var padding = this.$padding; + var height = config.lineHeight; + var top = this.$getTop(range.start.row, config); + var left = padding + range.start.column * config.characterWidth; + extraStyle = extraStyle || ""; + + if (this.session.$bidiHandler.isBidiRow(range.start.row)) { + var range1 = range.clone(); + range1.end.row = range1.start.row; + range1.end.column = this.session.getLine(range1.start.row).length; + this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + " ace_br1 ace_start", config, null, extraStyle); + } else { + this.elt( + clazz + " ace_br1 ace_start", + "height:"+ height+ "px;"+ "right:0;"+ "top:"+top+ "px;left:"+ left+ "px;" + (extraStyle || "") + ); + } + if (this.session.$bidiHandler.isBidiRow(range.end.row)) { + var range1 = range.clone(); + range1.start.row = range1.end.row; + range1.start.column = 0; + this.drawBidiSingleLineMarker(stringBuilder, range1, clazz + " ace_br12", config, null, extraStyle); + } else { + top = this.$getTop(range.end.row, config); + var width = range.end.column * config.characterWidth; + + this.elt( + clazz + " ace_br12", + "height:"+ height+ "px;"+ + "width:"+ width+ "px;"+ + "top:"+ top+ "px;"+ + "left:"+ padding+ "px;"+ (extraStyle || "") + ); + } + height = (range.end.row - range.start.row - 1) * config.lineHeight; + if (height <= 0) + return; + top = this.$getTop(range.start.row + 1, config); + + var radiusClass = (range.start.column ? 1 : 0) | (range.end.column ? 0 : 8); + + this.elt( + clazz + (radiusClass ? " ace_br" + radiusClass : ""), + "height:"+ height+ "px;"+ + "right:0;"+ + "top:"+ top+ "px;"+ + "left:"+ padding+ "px;"+ (extraStyle || "") + ); + }; + this.drawSingleLineMarker = function(stringBuilder, range, clazz, config, extraLength, extraStyle) { + if (this.session.$bidiHandler.isBidiRow(range.start.row)) + return this.drawBidiSingleLineMarker(stringBuilder, range, clazz, config, extraLength, extraStyle); + var height = config.lineHeight; + var width = (range.end.column + (extraLength || 0) - range.start.column) * config.characterWidth; + + var top = this.$getTop(range.start.row, config); + var left = this.$padding + range.start.column * config.characterWidth; + + this.elt( + clazz, + "height:"+ height+ "px;"+ + "width:"+ width+ "px;"+ + "top:"+ top+ "px;"+ + "left:"+ left+ "px;"+ (extraStyle || "") + ); + }; + this.drawBidiSingleLineMarker = function(stringBuilder, range, clazz, config, extraLength, extraStyle) { + var height = config.lineHeight, top = this.$getTop(range.start.row, config), padding = this.$padding; + var selections = this.session.$bidiHandler.getSelections(range.start.column, range.end.column); + + selections.forEach(function(selection) { + this.elt( + clazz, + "height:" + height + "px;" + + "width:" + selection.width + (extraLength || 0) + "px;" + + "top:" + top + "px;" + + "left:" + (padding + selection.left) + "px;" + (extraStyle || "") + ); + }, this); + }; + + this.drawFullLineMarker = function(stringBuilder, range, clazz, config, extraStyle) { + var top = this.$getTop(range.start.row, config); + var height = config.lineHeight; + if (range.start.row != range.end.row) + height += this.$getTop(range.end.row, config) - top; + + this.elt( + clazz, + "height:"+ height+ "px;"+ + "top:"+ top+ "px;"+ + "left:0;right:0;"+ (extraStyle || "") + ); + }; + + this.drawScreenLineMarker = function(stringBuilder, range, clazz, config, extraStyle) { + var top = this.$getTop(range.start.row, config); + var height = config.lineHeight; + + this.elt( + clazz, + "height:"+ height+ "px;"+ + "top:"+ top+ "px;"+ + "left:0;right:0;"+ (extraStyle || "") + ); + }; + +}).call(Marker.prototype); + +exports.Marker = Marker; + +}); + +define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/layer/lines","ace/lib/event_emitter"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var dom = require("../lib/dom"); +var lang = require("../lib/lang"); +var Lines = require("./lines").Lines; +var EventEmitter = require("../lib/event_emitter").EventEmitter; + +var Text = function(parentEl) { + this.dom = dom; + this.element = this.dom.createElement("div"); + this.element.className = "ace_layer ace_text-layer"; + parentEl.appendChild(this.element); + this.$updateEolChar = this.$updateEolChar.bind(this); + this.$lines = new Lines(this.element); +}; + +(function() { + + oop.implement(this, EventEmitter); + + this.EOF_CHAR = "\xB6"; + this.EOL_CHAR_LF = "\xAC"; + this.EOL_CHAR_CRLF = "\xa4"; + this.EOL_CHAR = this.EOL_CHAR_LF; + this.TAB_CHAR = "\u2014"; //"\u21E5"; + this.SPACE_CHAR = "\xB7"; + this.$padding = 0; + this.MAX_LINE_LENGTH = 10000; + + this.$updateEolChar = function() { + var doc = this.session.doc; + var unixMode = doc.getNewLineCharacter() == "\n" && doc.getNewLineMode() != "windows"; + var EOL_CHAR = unixMode ? this.EOL_CHAR_LF : this.EOL_CHAR_CRLF; + if (this.EOL_CHAR != EOL_CHAR) { + this.EOL_CHAR = EOL_CHAR; + return true; + } + }; + + this.setPadding = function(padding) { + this.$padding = padding; + this.element.style.margin = "0 " + padding + "px"; + }; + + this.getLineHeight = function() { + return this.$fontMetrics.$characterSize.height || 0; + }; + + this.getCharacterWidth = function() { + return this.$fontMetrics.$characterSize.width || 0; + }; + + this.$setFontMetrics = function(measure) { + this.$fontMetrics = measure; + this.$fontMetrics.on("changeCharacterSize", function(e) { + this._signal("changeCharacterSize", e); + }.bind(this)); + this.$pollSizeChanges(); + }; + + this.checkForSizeChanges = function() { + this.$fontMetrics.checkForSizeChanges(); + }; + this.$pollSizeChanges = function() { + return this.$pollSizeChangesTimer = this.$fontMetrics.$pollSizeChanges(); + }; + this.setSession = function(session) { + this.session = session; + if (session) + this.$computeTabString(); + }; + + this.showInvisibles = false; + this.setShowInvisibles = function(showInvisibles) { + if (this.showInvisibles == showInvisibles) + return false; + + this.showInvisibles = showInvisibles; + this.$computeTabString(); + return true; + }; + + this.displayIndentGuides = true; + this.setDisplayIndentGuides = function(display) { + if (this.displayIndentGuides == display) + return false; + + this.displayIndentGuides = display; + this.$computeTabString(); + return true; + }; + + this.$tabStrings = []; + this.onChangeTabSize = + this.$computeTabString = function() { + var tabSize = this.session.getTabSize(); + this.tabSize = tabSize; + var tabStr = this.$tabStrings = [0]; + for (var i = 1; i < tabSize + 1; i++) { + if (this.showInvisibles) { + var span = this.dom.createElement("span"); + span.className = "ace_invisible ace_invisible_tab"; + span.textContent = lang.stringRepeat(this.TAB_CHAR, i); + tabStr.push(span); + } else { + tabStr.push(this.dom.createTextNode(lang.stringRepeat(" ", i), this.element)); + } + } + if (this.displayIndentGuides) { + this.$indentGuideRe = /\s\S| \t|\t |\s$/; + var className = "ace_indent-guide"; + var spaceClass = ""; + var tabClass = ""; + if (this.showInvisibles) { + className += " ace_invisible"; + spaceClass = " ace_invisible_space"; + tabClass = " ace_invisible_tab"; + var spaceContent = lang.stringRepeat(this.SPACE_CHAR, this.tabSize); + var tabContent = lang.stringRepeat(this.TAB_CHAR, this.tabSize); + } else { + var spaceContent = lang.stringRepeat(" ", this.tabSize); + var tabContent = spaceContent; + } + + var span = this.dom.createElement("span"); + span.className = className + spaceClass; + span.textContent = spaceContent; + this.$tabStrings[" "] = span; + + var span = this.dom.createElement("span"); + span.className = className + tabClass; + span.textContent = tabContent; + this.$tabStrings["\t"] = span; + } + }; + + this.updateLines = function(config, firstRow, lastRow) { + if (this.config.lastRow != config.lastRow || + this.config.firstRow != config.firstRow) { + return this.update(config); + } + + this.config = config; + + var first = Math.max(firstRow, config.firstRow); + var last = Math.min(lastRow, config.lastRow); + + var lineElements = this.element.childNodes; + var lineElementsIdx = 0; + + for (var row = config.firstRow; row < first; row++) { + var foldLine = this.session.getFoldLine(row); + if (foldLine) { + if (foldLine.containsRow(first)) { + first = foldLine.start.row; + break; + } else { + row = foldLine.end.row; + } + } + lineElementsIdx ++; + } + + var heightChanged = false; + var row = first; + var foldLine = this.session.getNextFoldLine(row); + var foldStart = foldLine ? foldLine.start.row : Infinity; + + while (true) { + if (row > foldStart) { + row = foldLine.end.row+1; + foldLine = this.session.getNextFoldLine(row, foldLine); + foldStart = foldLine ? foldLine.start.row :Infinity; + } + if (row > last) + break; + + var lineElement = lineElements[lineElementsIdx++]; + if (lineElement) { + this.dom.removeChildren(lineElement); + this.$renderLine( + lineElement, row, row == foldStart ? foldLine : false + ); + var height = (config.lineHeight * this.session.getRowLength(row)) + "px"; + if (lineElement.style.height != height) { + heightChanged = true; + lineElement.style.height = height; + } + } + row++; + } + if (heightChanged) { + while (lineElementsIdx < this.$lines.cells.length) { + var cell = this.$lines.cells[lineElementsIdx++]; + cell.element.style.top = this.$lines.computeLineTop(cell.row, config, this.session) + "px"; + } + } + }; + + this.scrollLines = function(config) { + var oldConfig = this.config; + this.config = config; + + if (this.$lines.pageChanged(oldConfig, config)) + return this.update(config); + + this.$lines.moveContainer(config); + + var lastRow = config.lastRow; + var oldLastRow = oldConfig ? oldConfig.lastRow : -1; + + if (!oldConfig || oldLastRow < config.firstRow) + return this.update(config); + + if (lastRow < oldConfig.firstRow) + return this.update(config); + + if (!oldConfig || oldConfig.lastRow < config.firstRow) + return this.update(config); + + if (config.lastRow < oldConfig.firstRow) + return this.update(config); + + if (oldConfig.firstRow < config.firstRow) + for (var row=this.session.getFoldedRowCount(oldConfig.firstRow, config.firstRow - 1); row>0; row--) + this.$lines.shift(); + + if (oldConfig.lastRow > config.lastRow) + for (var row=this.session.getFoldedRowCount(config.lastRow + 1, oldConfig.lastRow); row>0; row--) + this.$lines.pop(); + + if (config.firstRow < oldConfig.firstRow) { + this.$lines.unshift(this.$renderLinesFragment(config, config.firstRow, oldConfig.firstRow - 1)); + } + + if (config.lastRow > oldConfig.lastRow) { + this.$lines.push(this.$renderLinesFragment(config, oldConfig.lastRow + 1, config.lastRow)); + } + }; + + this.$renderLinesFragment = function(config, firstRow, lastRow) { + var fragment = []; + var row = firstRow; + var foldLine = this.session.getNextFoldLine(row); + var foldStart = foldLine ? foldLine.start.row : Infinity; + + while (true) { + if (row > foldStart) { + row = foldLine.end.row+1; + foldLine = this.session.getNextFoldLine(row, foldLine); + foldStart = foldLine ? foldLine.start.row : Infinity; + } + if (row > lastRow) + break; + + var line = this.$lines.createCell(row, config, this.session); + + var lineEl = line.element; + this.dom.removeChildren(lineEl); + dom.setStyle(lineEl.style, "height", this.$lines.computeLineHeight(row, config, this.session) + "px"); + dom.setStyle(lineEl.style, "top", this.$lines.computeLineTop(row, config, this.session) + "px"); + this.$renderLine(lineEl, row, row == foldStart ? foldLine : false); + + if (this.$useLineGroups()) { + lineEl.className = "ace_line_group"; + } else { + lineEl.className = "ace_line"; + } + fragment.push(line); + + row++; + } + return fragment; + }; + + this.update = function(config) { + this.$lines.moveContainer(config); + + this.config = config; + + var firstRow = config.firstRow; + var lastRow = config.lastRow; + + var lines = this.$lines; + while (lines.getLength()) + lines.pop(); + + lines.push(this.$renderLinesFragment(config, firstRow, lastRow)); + }; + + this.$textToken = { + "text": true, + "rparen": true, + "lparen": true + }; + + this.$renderToken = function(parent, screenColumn, token, value) { + var self = this; + var re = /(\t)|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\uFEFF\uFFF9-\uFFFC]+)|(\u3000)|([\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3001-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]|[\uD800-\uDBFF][\uDC00-\uDFFF])/g; + + var valueFragment = this.dom.createFragment(this.element); + + var m; + var i = 0; + while (m = re.exec(value)) { + var tab = m[1]; + var simpleSpace = m[2]; + var controlCharacter = m[3]; + var cjkSpace = m[4]; + var cjk = m[5]; + + if (!self.showInvisibles && simpleSpace) + continue; + + var before = i != m.index ? value.slice(i, m.index) : ""; + + i = m.index + m[0].length; + + if (before) { + valueFragment.appendChild(this.dom.createTextNode(before, this.element)); + } + + if (tab) { + var tabSize = self.session.getScreenTabSize(screenColumn + m.index); + valueFragment.appendChild(self.$tabStrings[tabSize].cloneNode(true)); + screenColumn += tabSize - 1; + } else if (simpleSpace) { + if (self.showInvisibles) { + var span = this.dom.createElement("span"); + span.className = "ace_invisible ace_invisible_space"; + span.textContent = lang.stringRepeat(self.SPACE_CHAR, simpleSpace.length); + valueFragment.appendChild(span); + } else { + valueFragment.appendChild(this.com.createTextNode(simpleSpace, this.element)); + } + } else if (controlCharacter) { + var span = this.dom.createElement("span"); + span.className = "ace_invisible ace_invisible_space ace_invalid"; + span.textContent = lang.stringRepeat(self.SPACE_CHAR, controlCharacter.length); + valueFragment.appendChild(span); + } else if (cjkSpace) { + var space = self.showInvisibles ? self.SPACE_CHAR : ""; + screenColumn += 1; + + var span = this.dom.createElement("span"); + span.style.width = (self.config.characterWidth * 2) + "px"; + span.className = self.showInvisibles ? "ace_cjk ace_invisible ace_invisible_space" : "ace_cjk"; + span.textContent = self.showInvisibles ? self.SPACE_CHAR : ""; + valueFragment.appendChild(span); + } else if (cjk) { + screenColumn += 1; + var span = this.dom.createElement("span"); + span.style.width = (self.config.characterWidth * 2) + "px"; + span.className = "ace_cjk"; + span.textContent = cjk; + valueFragment.appendChild(span); + } + } + + valueFragment.appendChild(this.dom.createTextNode(i ? value.slice(i) : value, this.element)); + + if (!this.$textToken[token.type]) { + var classes = "ace_" + token.type.replace(/\./g, " ace_"); + var span = this.dom.createElement("span"); + if (token.type == "fold") + span.style.width = (token.value.length * this.config.characterWidth) + "px"; + + span.className = classes; + span.appendChild(valueFragment); + + parent.appendChild(span); + } + else { + parent.appendChild(valueFragment); + } + + return screenColumn + value.length; + }; + + this.renderIndentGuide = function(parent, value, max) { + var cols = value.search(this.$indentGuideRe); + if (cols <= 0 || cols >= max) + return value; + if (value[0] == " ") { + cols -= cols % this.tabSize; + var count = cols/this.tabSize; + for (var i=0; i= splitChars) { + screenColumn = this.$renderToken( + lineEl, screenColumn, + token, value.substring(0, splitChars - chars) + ); + value = value.substring(splitChars - chars); + chars = splitChars; + + lineEl = this.$createLineElement(); + parent.appendChild(lineEl); + + lineEl.appendChild(this.dom.createTextNode(lang.stringRepeat("\xa0", splits.indent), this.element)); + + split ++; + screenColumn = 0; + splitChars = splits[split] || Number.MAX_VALUE; + } + if (value.length != 0) { + chars += value.length; + screenColumn = this.$renderToken( + lineEl, screenColumn, token, value + ); + } + } + } + }; + + this.$renderSimpleLine = function(parent, tokens) { + var screenColumn = 0; + var token = tokens[0]; + var value = token.value; + if (this.displayIndentGuides) + value = this.renderIndentGuide(parent, value); + if (value) + screenColumn = this.$renderToken(parent, screenColumn, token, value); + for (var i = 1; i < tokens.length; i++) { + token = tokens[i]; + value = token.value; + if (screenColumn + value.length > this.MAX_LINE_LENGTH) + return this.$renderOverflowMessage(parent, screenColumn, token, value); + screenColumn = this.$renderToken(parent, screenColumn, token, value); + } + }; + + this.$renderOverflowMessage = function(parent, screenColumn, token, value) { + this.$renderToken(parent, screenColumn, token, + value.slice(0, this.MAX_LINE_LENGTH - screenColumn)); + + var overflowEl = this.dom.createElement("span"); + overflowEl.className = "ace_inline_button ace_keyword ace_toggle_wrap"; + overflowEl.style.position = "absolute"; + overflowEl.style.right = "0"; + overflowEl.textContent = ""; + + parent.appendChild(overflowEl); + }; + this.$renderLine = function(parent, row, foldLine) { + if (!foldLine && foldLine != false) + foldLine = this.session.getFoldLine(row); + + if (foldLine) + var tokens = this.$getFoldLineTokens(row, foldLine); + else + var tokens = this.session.getTokens(row); + + var lastLineEl = parent; + if (tokens.length) { + var splits = this.session.getRowSplitData(row); + if (splits && splits.length) { + this.$renderWrappedLine(parent, tokens, splits); + var lastLineEl = parent.lastChild; + } else { + var lastLineEl = parent; + if (this.$useLineGroups()) { + lastLineEl = this.$createLineElement(); + parent.appendChild(lastLineEl); + } + this.$renderSimpleLine(lastLineEl, tokens); + } + } else if (this.$useLineGroups()) { + lastLineEl = this.$createLineElement(); + parent.appendChild(lastLineEl); + } + + if (this.showInvisibles && lastLineEl) { + if (foldLine) + row = foldLine.end.row; + + var invisibleEl = this.dom.createElement("span"); + invisibleEl.className = "ace_invisible ace_invisible_eol"; + invisibleEl.textContent = row == this.session.getLength() - 1 ? this.EOF_CHAR : this.EOL_CHAR; + + lastLineEl.appendChild(invisibleEl); + } + }; + + this.$getFoldLineTokens = function(row, foldLine) { + var session = this.session; + var renderTokens = []; + + function addTokens(tokens, from, to) { + var idx = 0, col = 0; + while ((col + tokens[idx].value.length) < from) { + col += tokens[idx].value.length; + idx++; + + if (idx == tokens.length) + return; + } + if (col != from) { + var value = tokens[idx].value.substring(from - col); + if (value.length > (to - from)) + value = value.substring(0, to - from); + + renderTokens.push({ + type: tokens[idx].type, + value: value + }); + + col = from + value.length; + idx += 1; + } + + while (col < to && idx < tokens.length) { + var value = tokens[idx].value; + if (value.length + col > to) { + renderTokens.push({ + type: tokens[idx].type, + value: value.substring(0, to - col) + }); + } else + renderTokens.push(tokens[idx]); + col += value.length; + idx += 1; + } + } + + var tokens = session.getTokens(row); + foldLine.walk(function(placeholder, row, column, lastColumn, isNewRow) { + if (placeholder != null) { + renderTokens.push({ + type: "fold", + value: placeholder + }); + } else { + if (isNewRow) + tokens = session.getTokens(row); + + if (tokens.length) + addTokens(tokens, lastColumn, column); + } + }, foldLine.end.row, this.session.getLine(foldLine.end.row).length); + + return renderTokens; + }; + + this.$useLineGroups = function() { + return this.session.getUseWrapMode(); + }; + + this.destroy = function() {}; +}).call(Text.prototype); + +exports.Text = Text; + +}); + +define("ace/layer/cursor",["require","exports","module","ace/lib/dom"], function(require, exports, module) { +"use strict"; + +var dom = require("../lib/dom"); + +var Cursor = function(parentEl) { + this.element = dom.createElement("div"); + this.element.className = "ace_layer ace_cursor-layer"; + parentEl.appendChild(this.element); + + this.isVisible = false; + this.isBlinking = true; + this.blinkInterval = 1000; + this.smoothBlinking = false; + + this.cursors = []; + this.cursor = this.addCursor(); + dom.addCssClass(this.element, "ace_hidden-cursors"); + this.$updateCursors = this.$updateOpacity.bind(this); +}; + +(function() { + + this.$updateOpacity = function(val) { + var cursors = this.cursors; + for (var i = cursors.length; i--; ) + dom.setStyle(cursors[i].style, "opacity", val ? "" : "0"); + }; + + this.$startCssAnimation = function() { + var cursors = this.cursors; + for (var i = cursors.length; i--; ) + cursors[i].style.animationDuration = this.blinkInterval + "ms"; + + setTimeout(function() { + dom.addCssClass(this.element, "ace_animate-blinking"); + }.bind(this)); + }; + + this.$stopCssAnimation = function() { + dom.removeCssClass(this.element, "ace_animate-blinking"); + }; + + this.$padding = 0; + this.setPadding = function(padding) { + this.$padding = padding; + }; + + this.setSession = function(session) { + this.session = session; + }; + + this.setBlinking = function(blinking) { + if (blinking != this.isBlinking) { + this.isBlinking = blinking; + this.restartTimer(); + } + }; + + this.setBlinkInterval = function(blinkInterval) { + if (blinkInterval != this.blinkInterval) { + this.blinkInterval = blinkInterval; + this.restartTimer(); + } + }; + + this.setSmoothBlinking = function(smoothBlinking) { + if (smoothBlinking != this.smoothBlinking) { + this.smoothBlinking = smoothBlinking; + dom.setCssClass(this.element, "ace_smooth-blinking", smoothBlinking); + this.$updateCursors(true); + this.restartTimer(); + } + }; + + this.addCursor = function() { + var el = dom.createElement("div"); + el.className = "ace_cursor"; + this.element.appendChild(el); + this.cursors.push(el); + return el; + }; + + this.removeCursor = function() { + if (this.cursors.length > 1) { + var el = this.cursors.pop(); + el.parentNode.removeChild(el); + return el; + } + }; + + this.hideCursor = function() { + this.isVisible = false; + dom.addCssClass(this.element, "ace_hidden-cursors"); + this.restartTimer(); + }; + + this.showCursor = function() { + this.isVisible = true; + dom.removeCssClass(this.element, "ace_hidden-cursors"); + this.restartTimer(); + }; + + this.restartTimer = function() { + var update = this.$updateCursors; + clearInterval(this.intervalId); + clearTimeout(this.timeoutId); + this.$stopCssAnimation(); + + if (this.smoothBlinking) { + dom.removeCssClass(this.element, "ace_smooth-blinking"); + } + + update(true); + + if (!this.isBlinking || !this.blinkInterval || !this.isVisible) { + this.$stopCssAnimation(); + return; + } + + if (this.smoothBlinking) { + setTimeout(function(){ + dom.addCssClass(this.element, "ace_smooth-blinking"); + }.bind(this)); + } + + if (dom.HAS_CSS_ANIMATION) { + this.$startCssAnimation(); + } else { + var blink = function(){ + this.timeoutId = setTimeout(function() { + update(false); + }, 0.6 * this.blinkInterval); + }.bind(this); + + this.intervalId = setInterval(function() { + update(true); + blink(); + }, this.blinkInterval); + blink(); + } + }; + + this.getPixelPosition = function(position, onScreen) { + if (!this.config || !this.session) + return {left : 0, top : 0}; + + if (!position) + position = this.session.selection.getCursor(); + var pos = this.session.documentToScreenPosition(position); + var cursorLeft = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, position.row) + ? this.session.$bidiHandler.getPosLeft(pos.column) + : pos.column * this.config.characterWidth); + + var cursorTop = (pos.row - (onScreen ? this.config.firstRowScreen : 0)) * + this.config.lineHeight; + + return {left : cursorLeft, top : cursorTop}; + }; + + this.isCursorInView = function(pixelPos, config) { + return pixelPos.top >= 0 && pixelPos.top < config.maxHeight; + }; + + this.update = function(config) { + this.config = config; + + var selections = this.session.$selectionMarkers; + var i = 0, cursorIndex = 0; + + if (selections === undefined || selections.length === 0){ + selections = [{cursor: null}]; + } + + for (var i = 0, n = selections.length; i < n; i++) { + var pixelPos = this.getPixelPosition(selections[i].cursor, true); + if ((pixelPos.top > config.height + config.offset || + pixelPos.top < 0) && i > 1) { + continue; + } + + var element = this.cursors[cursorIndex++] || this.addCursor(); + var style = element.style; + + if (!this.drawCursor) { + if (!this.isCursorInView(pixelPos, config)) { + dom.setStyle(style, "display", "none"); + } else { + dom.setStyle(style, "display", "block"); + dom.translate(element, pixelPos.left, pixelPos.top); + dom.setStyle(style, "width", Math.round(config.characterWidth) + "px"); + dom.setStyle(style, "height", config.lineHeight + "px"); + } + } else { + this.drawCursor(element, pixelPos, config, selections[i], this.session); + } + } + while (this.cursors.length > cursorIndex) + this.removeCursor(); + + var overwrite = this.session.getOverwrite(); + this.$setOverwrite(overwrite); + this.$pixelPos = pixelPos; + this.restartTimer(); + }; + + this.drawCursor = null; + + this.$setOverwrite = function(overwrite) { + if (overwrite != this.overwrite) { + this.overwrite = overwrite; + if (overwrite) + dom.addCssClass(this.element, "ace_overwrite-cursors"); + else + dom.removeCssClass(this.element, "ace_overwrite-cursors"); + } + }; + + this.destroy = function() { + clearInterval(this.intervalId); + clearTimeout(this.timeoutId); + }; + +}).call(Cursor.prototype); + +exports.Cursor = Cursor; + +}); + +define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"], function(require, exports, module) { +"use strict"; + +var oop = require("./lib/oop"); +var dom = require("./lib/dom"); +var event = require("./lib/event"); +var EventEmitter = require("./lib/event_emitter").EventEmitter; +var MAX_SCROLL_H = 0x8000; +var ScrollBar = function(parent) { + this.element = dom.createElement("div"); + this.element.className = "ace_scrollbar ace_scrollbar" + this.classSuffix; + + this.inner = dom.createElement("div"); + this.inner.className = "ace_scrollbar-inner"; + this.element.appendChild(this.inner); + + parent.appendChild(this.element); + + this.setVisible(false); + this.skipEvent = false; + + event.addListener(this.element, "scroll", this.onScroll.bind(this)); + event.addListener(this.element, "mousedown", event.preventDefault); +}; + +(function() { + oop.implement(this, EventEmitter); + + this.setVisible = function(isVisible) { + this.element.style.display = isVisible ? "" : "none"; + this.isVisible = isVisible; + this.coeff = 1; + }; +}).call(ScrollBar.prototype); +var VScrollBar = function(parent, renderer) { + ScrollBar.call(this, parent); + this.scrollTop = 0; + this.scrollHeight = 0; + renderer.$scrollbarWidth = + this.width = dom.scrollbarWidth(parent.ownerDocument); + this.inner.style.width = + this.element.style.width = (this.width || 15) + 5 + "px"; + this.$minWidth = 0; +}; + +oop.inherits(VScrollBar, ScrollBar); + +(function() { + + this.classSuffix = '-v'; + this.onScroll = function() { + if (!this.skipEvent) { + this.scrollTop = this.element.scrollTop; + if (this.coeff != 1) { + var h = this.element.clientHeight / this.scrollHeight; + this.scrollTop = this.scrollTop * (1 - h) / (this.coeff - h); + } + this._emit("scroll", {data: this.scrollTop}); + } + this.skipEvent = false; + }; + this.getWidth = function() { + return Math.max(this.isVisible ? this.width : 0, this.$minWidth || 0); + }; + this.setHeight = function(height) { + this.element.style.height = height + "px"; + }; + this.setInnerHeight = + this.setScrollHeight = function(height) { + this.scrollHeight = height; + if (height > MAX_SCROLL_H) { + this.coeff = MAX_SCROLL_H / height; + height = MAX_SCROLL_H; + } else if (this.coeff != 1) { + this.coeff = 1; + } + this.inner.style.height = height + "px"; + }; + this.setScrollTop = function(scrollTop) { + if (this.scrollTop != scrollTop) { + this.skipEvent = true; + this.scrollTop = scrollTop; + this.element.scrollTop = scrollTop * this.coeff; + } + }; + +}).call(VScrollBar.prototype); +var HScrollBar = function(parent, renderer) { + ScrollBar.call(this, parent); + this.scrollLeft = 0; + this.height = renderer.$scrollbarWidth; + this.inner.style.height = + this.element.style.height = (this.height || 15) + 5 + "px"; +}; + +oop.inherits(HScrollBar, ScrollBar); + +(function() { + + this.classSuffix = '-h'; + this.onScroll = function() { + if (!this.skipEvent) { + this.scrollLeft = this.element.scrollLeft; + this._emit("scroll", {data: this.scrollLeft}); + } + this.skipEvent = false; + }; + this.getHeight = function() { + return this.isVisible ? this.height : 0; + }; + this.setWidth = function(width) { + this.element.style.width = width + "px"; + }; + this.setInnerWidth = function(width) { + this.inner.style.width = width + "px"; + }; + this.setScrollWidth = function(width) { + this.inner.style.width = width + "px"; + }; + this.setScrollLeft = function(scrollLeft) { + if (this.scrollLeft != scrollLeft) { + this.skipEvent = true; + this.scrollLeft = this.element.scrollLeft = scrollLeft; + } + }; + +}).call(HScrollBar.prototype); + + +exports.ScrollBar = VScrollBar; // backward compatibility +exports.ScrollBarV = VScrollBar; // backward compatibility +exports.ScrollBarH = HScrollBar; // backward compatibility + +exports.VScrollBar = VScrollBar; +exports.HScrollBar = HScrollBar; +}); + +define("ace/renderloop",["require","exports","module","ace/lib/event"], function(require, exports, module) { +"use strict"; + +var event = require("./lib/event"); + + +var RenderLoop = function(onRender, win) { + this.onRender = onRender; + this.pending = false; + this.changes = 0; + this.$recursionLimit = 2; + this.window = win || window; + var _self = this; + this._flush = function(ts) { + _self.pending = false; + var changes = _self.changes; + + if (changes) { + event.blockIdle(100); + _self.changes = 0; + _self.onRender(changes); + } + + if (_self.changes) { + if (_self.$recursionLimit-- < 0) return; + _self.schedule(); + } else { + _self.$recursionLimit = 2; + } + }; +}; + +(function() { + + this.schedule = function(change) { + this.changes = this.changes | change; + if (this.changes && !this.pending) { + event.nextFrame(this._flush); + this.pending = true; + } + }; + + this.clear = function(change) { + var changes = this.changes; + this.changes = 0; + return changes; + }; + +}).call(RenderLoop.prototype); + +exports.RenderLoop = RenderLoop; +}); + +define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/lib/useragent","ace/lib/event_emitter"], function(require, exports, module) { + +var oop = require("../lib/oop"); +var dom = require("../lib/dom"); +var lang = require("../lib/lang"); +var event = require("../lib/event"); +var useragent = require("../lib/useragent"); +var EventEmitter = require("../lib/event_emitter").EventEmitter; + +var CHAR_COUNT = 256; +var USE_OBSERVER = typeof ResizeObserver == "function"; +var L = 200; + +var FontMetrics = exports.FontMetrics = function(parentEl) { + this.el = dom.createElement("div"); + this.$setMeasureNodeStyles(this.el.style, true); + + this.$main = dom.createElement("div"); + this.$setMeasureNodeStyles(this.$main.style); + + this.$measureNode = dom.createElement("div"); + this.$setMeasureNodeStyles(this.$measureNode.style); + + + this.el.appendChild(this.$main); + this.el.appendChild(this.$measureNode); + parentEl.appendChild(this.el); + + this.$measureNode.innerHTML = lang.stringRepeat("X", CHAR_COUNT); + + this.$characterSize = {width: 0, height: 0}; + + + if (USE_OBSERVER) + this.$addObserver(); + else + this.checkForSizeChanges(); +}; + +(function() { + + oop.implement(this, EventEmitter); + + this.$characterSize = {width: 0, height: 0}; + + this.$setMeasureNodeStyles = function(style, isRoot) { + style.width = style.height = "auto"; + style.left = style.top = "0px"; + style.visibility = "hidden"; + style.position = "absolute"; + style.whiteSpace = "pre"; + + if (useragent.isIE < 8) { + style["font-family"] = "inherit"; + } else { + style.font = "inherit"; + } + style.overflow = isRoot ? "hidden" : "visible"; + }; + + this.checkForSizeChanges = function(size) { + if (size === undefined) + size = this.$measureSizes(); + if (size && (this.$characterSize.width !== size.width || this.$characterSize.height !== size.height)) { + this.$measureNode.style.fontWeight = "bold"; + var boldSize = this.$measureSizes(); + this.$measureNode.style.fontWeight = ""; + this.$characterSize = size; + this.charSizes = Object.create(null); + this.allowBoldFonts = boldSize && boldSize.width === size.width && boldSize.height === size.height; + this._emit("changeCharacterSize", {data: size}); + } + }; + + this.$addObserver = function() { + var self = this; + this.$observer = new window.ResizeObserver(function(e) { + var rect = e[0].contentRect; + self.checkForSizeChanges({ + height: rect.height, + width: rect.width / CHAR_COUNT + }); + }); + this.$observer.observe(this.$measureNode); + }; + + this.$pollSizeChanges = function() { + if (this.$pollSizeChangesTimer || this.$observer) + return this.$pollSizeChangesTimer; + var self = this; + + return this.$pollSizeChangesTimer = event.onIdle(function cb() { + self.checkForSizeChanges(); + event.onIdle(cb, 500); + }, 500); + }; + + this.setPolling = function(val) { + if (val) { + this.$pollSizeChanges(); + } else if (this.$pollSizeChangesTimer) { + clearInterval(this.$pollSizeChangesTimer); + this.$pollSizeChangesTimer = 0; + } + }; + + this.$measureSizes = function(node) { + var size = { + height: (node || this.$measureNode).clientHeight, + width: (node || this.$measureNode).clientWidth / CHAR_COUNT + }; + if (size.width === 0 || size.height === 0) + return null; + return size; + }; + + this.$measureCharWidth = function(ch) { + this.$main.innerHTML = lang.stringRepeat(ch, CHAR_COUNT); + var rect = this.$main.getBoundingClientRect(); + return rect.width / CHAR_COUNT; + }; + + this.getCharacterWidth = function(ch) { + var w = this.charSizes[ch]; + if (w === undefined) { + w = this.charSizes[ch] = this.$measureCharWidth(ch) / this.$characterSize.width; + } + return w; + }; + + this.destroy = function() { + clearInterval(this.$pollSizeChangesTimer); + if (this.$observer) + this.$observer.disconnect(); + if (this.el && this.el.parentNode) + this.el.parentNode.removeChild(this.el); + }; + + + this.$getZoom = function getZoom(element) { + if (!element) return 1; + return (window.getComputedStyle(element).zoom || 1) * getZoom(element.parentElement); + }; + this.$initTransformMeasureNodes = function() { + var t = function(t, l) { + return ["div", { + style: "position: absolute;top:" + t + "px;left:" + l + "px;" + }]; + }; + this.els = dom.buildDom([t(0, 0), t(L, 0), t(0, L), t(L, L)], this.el); + }; + this.transformCoordinates = function(clientPos, elPos) { + if (clientPos) { + var zoom = this.$getZoom(this.el); + clientPos = mul(1 / zoom, clientPos); + } + function solve(l1, l2, r) { + var det = l1[1] * l2[0] - l1[0] * l2[1]; + return [ + (-l2[1] * r[0] + l2[0] * r[1]) / det, + (+l1[1] * r[0] - l1[0] * r[1]) / det + ]; + } + function sub(a, b) { return [a[0] - b[0], a[1] - b[1]]; } + function add(a, b) { return [a[0] + b[0], a[1] + b[1]]; } + function mul(a, b) { return [a * b[0], a * b[1]]; } + + if (!this.els) + this.$initTransformMeasureNodes(); + + function p(el) { + var r = el.getBoundingClientRect(); + return [r.left, r.top]; + } + + var a = p(this.els[0]); + var b = p(this.els[1]); + var c = p(this.els[2]); + var d = p(this.els[3]); + + var h = solve(sub(d, b), sub(d, c), sub(add(b, c), add(d, a))); + + var m1 = mul(1 + h[0], sub(b, a)); + var m2 = mul(1 + h[1], sub(c, a)); + + if (elPos) { + var x = elPos; + var k = h[0] * x[0] / L + h[1] * x[1] / L + 1; + var ut = add(mul(x[0], m1), mul(x[1], m2)); + return add(mul(1 / k / L, ut), a); + } + var u = sub(clientPos, a); + var f = solve(sub(m1, mul(h[0], u)), sub(m2, mul(h[1], u)), u); + return mul(L, f); + }; + +}).call(FontMetrics.prototype); + +}); + +define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter","ace/lib/useragent"], function(require, exports, module) { +"use strict"; + +var oop = require("./lib/oop"); +var dom = require("./lib/dom"); +var config = require("./config"); +var GutterLayer = require("./layer/gutter").Gutter; +var MarkerLayer = require("./layer/marker").Marker; +var TextLayer = require("./layer/text").Text; +var CursorLayer = require("./layer/cursor").Cursor; +var HScrollBar = require("./scrollbar").HScrollBar; +var VScrollBar = require("./scrollbar").VScrollBar; +var RenderLoop = require("./renderloop").RenderLoop; +var FontMetrics = require("./layer/font_metrics").FontMetrics; +var EventEmitter = require("./lib/event_emitter").EventEmitter; +var editorCss = "\ +.ace_br1 {border-top-left-radius : 3px;}\ +.ace_br2 {border-top-right-radius : 3px;}\ +.ace_br3 {border-top-left-radius : 3px; border-top-right-radius: 3px;}\ +.ace_br4 {border-bottom-right-radius: 3px;}\ +.ace_br5 {border-top-left-radius : 3px; border-bottom-right-radius: 3px;}\ +.ace_br6 {border-top-right-radius : 3px; border-bottom-right-radius: 3px;}\ +.ace_br7 {border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px;}\ +.ace_br8 {border-bottom-left-radius : 3px;}\ +.ace_br9 {border-top-left-radius : 3px; border-bottom-left-radius: 3px;}\ +.ace_br10{border-top-right-radius : 3px; border-bottom-left-radius: 3px;}\ +.ace_br11{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-left-radius: 3px;}\ +.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\ +.ace_br13{border-top-left-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\ +.ace_br14{border-top-right-radius : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\ +.ace_br15{border-top-left-radius : 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}\ +.ace_editor {\ +position: relative;\ +overflow: hidden;\ +font: 12px/normal 'Monaco', 'Menlo', 'Ubuntu Mono', 'Consolas', 'source-code-pro', monospace;\ +direction: ltr;\ +text-align: left;\ +-webkit-tap-highlight-color: rgba(0, 0, 0, 0);\ +}\ +.ace_scroller {\ +position: absolute;\ +overflow: hidden;\ +top: 0;\ +bottom: 0;\ +background-color: inherit;\ +-ms-user-select: none;\ +-moz-user-select: none;\ +-webkit-user-select: none;\ +user-select: none;\ +cursor: text;\ +}\ +.ace_content {\ +position: absolute;\ +box-sizing: border-box;\ +min-width: 100%;\ +contain: style size layout;\ +}\ +.ace_dragging .ace_scroller:before{\ +position: absolute;\ +top: 0;\ +left: 0;\ +right: 0;\ +bottom: 0;\ +content: '';\ +background: rgba(250, 250, 250, 0.01);\ +z-index: 1000;\ +}\ +.ace_dragging.ace_dark .ace_scroller:before{\ +background: rgba(0, 0, 0, 0.01);\ +}\ +.ace_selecting, .ace_selecting * {\ +cursor: text !important;\ +}\ +.ace_gutter {\ +position: absolute;\ +overflow : hidden;\ +width: auto;\ +top: 0;\ +bottom: 0;\ +left: 0;\ +cursor: default;\ +z-index: 4;\ +-ms-user-select: none;\ +-moz-user-select: none;\ +-webkit-user-select: none;\ +user-select: none;\ +contain: style size layout;\ +}\ +.ace_gutter-active-line {\ +position: absolute;\ +left: 0;\ +right: 0;\ +}\ +.ace_scroller.ace_scroll-left {\ +box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;\ +}\ +.ace_gutter-cell {\ +position: absolute;\ +top: 0;\ +left: 0;\ +right: 0;\ +padding-left: 19px;\ +padding-right: 6px;\ +background-repeat: no-repeat;\ +}\ +.ace_gutter-cell.ace_error {\ +background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==\");\ +background-repeat: no-repeat;\ +background-position: 2px center;\ +}\ +.ace_gutter-cell.ace_warning {\ +background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==\");\ +background-position: 2px center;\ +}\ +.ace_gutter-cell.ace_info {\ +background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=\");\ +background-position: 2px center;\ +}\ +.ace_dark .ace_gutter-cell.ace_info {\ +background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC\");\ +}\ +.ace_scrollbar {\ +contain: strict;\ +position: absolute;\ +right: 0;\ +bottom: 0;\ +z-index: 6;\ +}\ +.ace_scrollbar-inner {\ +position: absolute;\ +cursor: text;\ +left: 0;\ +top: 0;\ +}\ +.ace_scrollbar-v{\ +overflow-x: hidden;\ +overflow-y: scroll;\ +top: 0;\ +}\ +.ace_scrollbar-h {\ +overflow-x: scroll;\ +overflow-y: hidden;\ +left: 0;\ +}\ +.ace_print-margin {\ +position: absolute;\ +height: 100%;\ +}\ +.ace_text-input {\ +position: absolute;\ +z-index: 0;\ +width: 0.5em;\ +height: 1em;\ +opacity: 0;\ +background: transparent;\ +-moz-appearance: none;\ +appearance: none;\ +border: none;\ +resize: none;\ +outline: none;\ +overflow: hidden;\ +font: inherit;\ +padding: 0 1px;\ +margin: 0 -1px;\ +contain: strict;\ +-ms-user-select: text;\ +-moz-user-select: text;\ +-webkit-user-select: text;\ +user-select: text;\ +white-space: pre!important;\ +}\ +.ace_text-input.ace_composition {\ +background: transparent;\ +color: inherit;\ +z-index: 1000;\ +opacity: 1;\ +}\ +.ace_composition_placeholder { color: transparent }\ +.ace_composition_marker { \ +border-bottom: 1px solid;\ +position: absolute;\ +border-radius: 0;\ +margin-top: 1px;\ +}\ +[ace_nocontext=true] {\ +transform: none!important;\ +filter: none!important;\ +perspective: none!important;\ +clip-path: none!important;\ +mask : none!important;\ +contain: none!important;\ +perspective: none!important;\ +mix-blend-mode: initial!important;\ +z-index: auto;\ +}\ +.ace_layer {\ +z-index: 1;\ +position: absolute;\ +overflow: hidden;\ +word-wrap: normal;\ +white-space: pre;\ +height: 100%;\ +width: 100%;\ +box-sizing: border-box;\ +pointer-events: none;\ +}\ +.ace_gutter-layer {\ +position: relative;\ +width: auto;\ +text-align: right;\ +pointer-events: auto;\ +height: 1000000px;\ +contain: style size layout;\ +}\ +.ace_text-layer {\ +font: inherit !important;\ +position: absolute;\ +height: 1000000px;\ +width: 1000000px;\ +contain: style size layout;\ +}\ +.ace_text-layer > .ace_line, .ace_text-layer > .ace_line_group {\ +contain: style size layout;\ +position: absolute;\ +top: 0;\ +left: 0;\ +right: 0;\ +}\ +.ace_hidpi .ace_text-layer,\ +.ace_hidpi .ace_gutter-layer,\ +.ace_hidpi .ace_content,\ +.ace_hidpi .ace_gutter {\ +contain: strict;\ +will-change: transform;\ +}\ +.ace_hidpi .ace_text-layer > .ace_line, \ +.ace_hidpi .ace_text-layer > .ace_line_group {\ +contain: strict;\ +}\ +.ace_cjk {\ +display: inline-block;\ +text-align: center;\ +}\ +.ace_cursor-layer {\ +z-index: 4;\ +}\ +.ace_cursor {\ +z-index: 4;\ +position: absolute;\ +box-sizing: border-box;\ +border-left: 2px solid;\ +transform: translatez(0);\ +}\ +.ace_multiselect .ace_cursor {\ +border-left-width: 1px;\ +}\ +.ace_slim-cursors .ace_cursor {\ +border-left-width: 1px;\ +}\ +.ace_overwrite-cursors .ace_cursor {\ +border-left-width: 0;\ +border-bottom: 1px solid;\ +}\ +.ace_hidden-cursors .ace_cursor {\ +opacity: 0.2;\ +}\ +.ace_smooth-blinking .ace_cursor {\ +transition: opacity 0.18s;\ +}\ +.ace_animate-blinking .ace_cursor {\ +animation-duration: 1000ms;\ +animation-timing-function: step-end;\ +animation-name: blink-ace-animate;\ +animation-iteration-count: infinite;\ +}\ +.ace_animate-blinking.ace_smooth-blinking .ace_cursor {\ +animation-duration: 1000ms;\ +animation-timing-function: ease-in-out;\ +animation-name: blink-ace-animate-smooth;\ +}\ +@keyframes blink-ace-animate {\ +from, to { opacity: 1; }\ +60% { opacity: 0; }\ +}\ +@keyframes blink-ace-animate-smooth {\ +from, to { opacity: 1; }\ +45% { opacity: 1; }\ +60% { opacity: 0; }\ +85% { opacity: 0; }\ +}\ +.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {\ +position: absolute;\ +z-index: 3;\ +}\ +.ace_marker-layer .ace_selection {\ +position: absolute;\ +z-index: 5;\ +}\ +.ace_marker-layer .ace_bracket {\ +position: absolute;\ +z-index: 6;\ +}\ +.ace_marker-layer .ace_active-line {\ +position: absolute;\ +z-index: 2;\ +}\ +.ace_marker-layer .ace_selected-word {\ +position: absolute;\ +z-index: 4;\ +box-sizing: border-box;\ +}\ +.ace_line .ace_fold {\ +box-sizing: border-box;\ +display: inline-block;\ +height: 11px;\ +margin-top: -2px;\ +vertical-align: middle;\ +background-image:\ +url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\"),\ +url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=\");\ +background-repeat: no-repeat, repeat-x;\ +background-position: center center, top left;\ +color: transparent;\ +border: 1px solid black;\ +border-radius: 2px;\ +cursor: pointer;\ +pointer-events: auto;\ +}\ +.ace_dark .ace_fold {\ +}\ +.ace_fold:hover{\ +background-image:\ +url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII=\"),\ +url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC\");\ +}\ +.ace_tooltip {\ +background-color: #FFF;\ +background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));\ +border: 1px solid gray;\ +border-radius: 1px;\ +box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\ +color: black;\ +max-width: 100%;\ +padding: 3px 4px;\ +position: fixed;\ +z-index: 999999;\ +box-sizing: border-box;\ +cursor: default;\ +white-space: pre;\ +word-wrap: break-word;\ +line-height: normal;\ +font-style: normal;\ +font-weight: normal;\ +letter-spacing: normal;\ +pointer-events: none;\ +}\ +.ace_folding-enabled > .ace_gutter-cell {\ +padding-right: 13px;\ +}\ +.ace_fold-widget {\ +box-sizing: border-box;\ +margin: 0 -12px 0 1px;\ +display: none;\ +width: 11px;\ +vertical-align: top;\ +background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==\");\ +background-repeat: no-repeat;\ +background-position: center;\ +border-radius: 3px;\ +border: 1px solid transparent;\ +cursor: pointer;\ +}\ +.ace_folding-enabled .ace_fold-widget {\ +display: inline-block; \ +}\ +.ace_fold-widget.ace_end {\ +background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==\");\ +}\ +.ace_fold-widget.ace_closed {\ +background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==\");\ +}\ +.ace_fold-widget:hover {\ +border: 1px solid rgba(0, 0, 0, 0.3);\ +background-color: rgba(255, 255, 255, 0.2);\ +box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);\ +}\ +.ace_fold-widget:active {\ +border: 1px solid rgba(0, 0, 0, 0.4);\ +background-color: rgba(0, 0, 0, 0.05);\ +box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);\ +}\ +.ace_dark .ace_fold-widget {\ +background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC\");\ +}\ +.ace_dark .ace_fold-widget.ace_end {\ +background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==\");\ +}\ +.ace_dark .ace_fold-widget.ace_closed {\ +background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==\");\ +}\ +.ace_dark .ace_fold-widget:hover {\ +box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\ +background-color: rgba(255, 255, 255, 0.1);\ +}\ +.ace_dark .ace_fold-widget:active {\ +box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);\ +}\ +.ace_inline_button {\ +border: 1px solid lightgray;\ +display: inline-block;\ +margin: -1px 8px;\ +padding: 0 5px;\ +pointer-events: auto;\ +cursor: pointer;\ +}\ +.ace_inline_button:hover {\ +border-color: gray;\ +background: rgba(200,200,200,0.2);\ +display: inline-block;\ +pointer-events: auto;\ +}\ +.ace_fold-widget.ace_invalid {\ +background-color: #FFB4B4;\ +border-color: #DE5555;\ +}\ +.ace_fade-fold-widgets .ace_fold-widget {\ +transition: opacity 0.4s ease 0.05s;\ +opacity: 0;\ +}\ +.ace_fade-fold-widgets:hover .ace_fold-widget {\ +transition: opacity 0.05s ease 0.05s;\ +opacity:1;\ +}\ +.ace_underline {\ +text-decoration: underline;\ +}\ +.ace_bold {\ +font-weight: bold;\ +}\ +.ace_nobold .ace_bold {\ +font-weight: normal;\ +}\ +.ace_italic {\ +font-style: italic;\ +}\ +.ace_error-marker {\ +background-color: rgba(255, 0, 0,0.2);\ +position: absolute;\ +z-index: 9;\ +}\ +.ace_highlight-marker {\ +background-color: rgba(255, 255, 0,0.2);\ +position: absolute;\ +z-index: 8;\ +}\ +"; + +var useragent = require("./lib/useragent"); +var HIDE_TEXTAREA = useragent.isIE; + +dom.importCssString(editorCss, "ace_editor.css"); + +var VirtualRenderer = function(container, theme) { + var _self = this; + + this.container = container || dom.createElement("div"); + + dom.addCssClass(this.container, "ace_editor"); + if (dom.HI_DPI) dom.addCssClass(this.container, "ace_hidpi"); + + this.setTheme(theme); + + this.$gutter = dom.createElement("div"); + this.$gutter.className = "ace_gutter"; + this.container.appendChild(this.$gutter); + this.$gutter.setAttribute("aria-hidden", true); + + this.scroller = dom.createElement("div"); + this.scroller.className = "ace_scroller"; + + this.container.appendChild(this.scroller); + + this.content = dom.createElement("div"); + this.content.className = "ace_content"; + this.scroller.appendChild(this.content); + + this.$gutterLayer = new GutterLayer(this.$gutter); + this.$gutterLayer.on("changeGutterWidth", this.onGutterResize.bind(this)); + + this.$markerBack = new MarkerLayer(this.content); + + var textLayer = this.$textLayer = new TextLayer(this.content); + this.canvas = textLayer.element; + + this.$markerFront = new MarkerLayer(this.content); + + this.$cursorLayer = new CursorLayer(this.content); + this.$horizScroll = false; + this.$vScroll = false; + + this.scrollBar = + this.scrollBarV = new VScrollBar(this.container, this); + this.scrollBarH = new HScrollBar(this.container, this); + this.scrollBarV.addEventListener("scroll", function(e) { + if (!_self.$scrollAnimation) + _self.session.setScrollTop(e.data - _self.scrollMargin.top); + }); + this.scrollBarH.addEventListener("scroll", function(e) { + if (!_self.$scrollAnimation) + _self.session.setScrollLeft(e.data - _self.scrollMargin.left); + }); + + this.scrollTop = 0; + this.scrollLeft = 0; + + this.cursorPos = { + row : 0, + column : 0 + }; + + this.$fontMetrics = new FontMetrics(this.container); + this.$textLayer.$setFontMetrics(this.$fontMetrics); + this.$textLayer.addEventListener("changeCharacterSize", function(e) { + _self.updateCharacterSize(); + _self.onResize(true, _self.gutterWidth, _self.$size.width, _self.$size.height); + _self._signal("changeCharacterSize", e); + }); + + this.$size = { + width: 0, + height: 0, + scrollerHeight: 0, + scrollerWidth: 0, + $dirty: true + }; + + this.layerConfig = { + width : 1, + padding : 0, + firstRow : 0, + firstRowScreen: 0, + lastRow : 0, + lineHeight : 0, + characterWidth : 0, + minHeight : 1, + maxHeight : 1, + offset : 0, + height : 1, + gutterOffset: 1 + }; + + this.scrollMargin = { + left: 0, + right: 0, + top: 0, + bottom: 0, + v: 0, + h: 0 + }; + + this.margin = { + left: 0, + right: 0, + top: 0, + bottom: 0, + v: 0, + h: 0 + }; + + this.$keepTextAreaAtCursor = !useragent.isIOS; + + this.$loop = new RenderLoop( + this.$renderChanges.bind(this), + this.container.ownerDocument.defaultView + ); + this.$loop.schedule(this.CHANGE_FULL); + + this.updateCharacterSize(); + this.setPadding(4); + config.resetOptions(this); + config._emit("renderer", this); +}; + +(function() { + + this.CHANGE_CURSOR = 1; + this.CHANGE_MARKER = 2; + this.CHANGE_GUTTER = 4; + this.CHANGE_SCROLL = 8; + this.CHANGE_LINES = 16; + this.CHANGE_TEXT = 32; + this.CHANGE_SIZE = 64; + this.CHANGE_MARKER_BACK = 128; + this.CHANGE_MARKER_FRONT = 256; + this.CHANGE_FULL = 512; + this.CHANGE_H_SCROLL = 1024; + + oop.implement(this, EventEmitter); + + this.updateCharacterSize = function() { + if (this.$textLayer.allowBoldFonts != this.$allowBoldFonts) { + this.$allowBoldFonts = this.$textLayer.allowBoldFonts; + this.setStyle("ace_nobold", !this.$allowBoldFonts); + } + + this.layerConfig.characterWidth = + this.characterWidth = this.$textLayer.getCharacterWidth(); + this.layerConfig.lineHeight = + this.lineHeight = this.$textLayer.getLineHeight(); + this.$updatePrintMargin(); + }; + this.setSession = function(session) { + if (this.session) + this.session.doc.off("changeNewLineMode", this.onChangeNewLineMode); + + this.session = session; + if (session && this.scrollMargin.top && session.getScrollTop() <= 0) + session.setScrollTop(-this.scrollMargin.top); + + this.$cursorLayer.setSession(session); + this.$markerBack.setSession(session); + this.$markerFront.setSession(session); + this.$gutterLayer.setSession(session); + this.$textLayer.setSession(session); + if (!session) + return; + + this.$loop.schedule(this.CHANGE_FULL); + this.session.$setFontMetrics(this.$fontMetrics); + this.scrollBarH.scrollLeft = this.scrollBarV.scrollTop = null; + + this.onChangeNewLineMode = this.onChangeNewLineMode.bind(this); + this.onChangeNewLineMode(); + this.session.doc.on("changeNewLineMode", this.onChangeNewLineMode); + }; + this.updateLines = function(firstRow, lastRow, force) { + if (lastRow === undefined) + lastRow = Infinity; + + if (!this.$changedLines) { + this.$changedLines = { + firstRow: firstRow, + lastRow: lastRow + }; + } + else { + if (this.$changedLines.firstRow > firstRow) + this.$changedLines.firstRow = firstRow; + + if (this.$changedLines.lastRow < lastRow) + this.$changedLines.lastRow = lastRow; + } + if (this.$changedLines.lastRow < this.layerConfig.firstRow) { + if (force) + this.$changedLines.lastRow = this.layerConfig.lastRow; + else + return; + } + if (this.$changedLines.firstRow > this.layerConfig.lastRow) + return; + this.$loop.schedule(this.CHANGE_LINES); + }; + + this.onChangeNewLineMode = function() { + this.$loop.schedule(this.CHANGE_TEXT); + this.$textLayer.$updateEolChar(); + this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR); + }; + + this.onChangeTabSize = function() { + this.$loop.schedule(this.CHANGE_TEXT | this.CHANGE_MARKER); + this.$textLayer.onChangeTabSize(); + }; + this.updateText = function() { + this.$loop.schedule(this.CHANGE_TEXT); + }; + this.updateFull = function(force) { + if (force) + this.$renderChanges(this.CHANGE_FULL, true); + else + this.$loop.schedule(this.CHANGE_FULL); + }; + this.updateFontSize = function() { + this.$textLayer.checkForSizeChanges(); + }; + + this.$changes = 0; + this.$updateSizeAsync = function() { + if (this.$loop.pending) + this.$size.$dirty = true; + else + this.onResize(); + }; + this.onResize = function(force, gutterWidth, width, height) { + if (this.resizing > 2) + return; + else if (this.resizing > 0) + this.resizing++; + else + this.resizing = force ? 1 : 0; + var el = this.container; + if (!height) + height = el.clientHeight || el.scrollHeight; + if (!width) + width = el.clientWidth || el.scrollWidth; + var changes = this.$updateCachedSize(force, gutterWidth, width, height); + + + if (!this.$size.scrollerHeight || (!width && !height)) + return this.resizing = 0; + + if (force) + this.$gutterLayer.$padding = null; + + if (force) + this.$renderChanges(changes | this.$changes, true); + else + this.$loop.schedule(changes | this.$changes); + + if (this.resizing) + this.resizing = 0; + this.scrollBarV.scrollLeft = this.scrollBarV.scrollTop = null; + }; + + this.$updateCachedSize = function(force, gutterWidth, width, height) { + height -= (this.$extraHeight || 0); + var changes = 0; + var size = this.$size; + var oldSize = { + width: size.width, + height: size.height, + scrollerHeight: size.scrollerHeight, + scrollerWidth: size.scrollerWidth + }; + if (height && (force || size.height != height)) { + size.height = height; + changes |= this.CHANGE_SIZE; + + size.scrollerHeight = size.height; + if (this.$horizScroll) + size.scrollerHeight -= this.scrollBarH.getHeight(); + this.scrollBarV.element.style.bottom = this.scrollBarH.getHeight() + "px"; + + changes = changes | this.CHANGE_SCROLL; + } + + if (width && (force || size.width != width)) { + changes |= this.CHANGE_SIZE; + size.width = width; + + if (gutterWidth == null) + gutterWidth = this.$showGutter ? this.$gutter.offsetWidth : 0; + + this.gutterWidth = gutterWidth; + + dom.setStyle(this.scrollBarH.element.style, "left", gutterWidth + "px"); + dom.setStyle(this.scroller.style, "left", gutterWidth + this.margin.left + "px"); + size.scrollerWidth = Math.max(0, width - gutterWidth - this.scrollBarV.getWidth() - this.margin.h); + dom.setStyle(this.$gutter.style, "left", this.margin.left + "px"); + + var right = this.scrollBarV.getWidth() + "px"; + dom.setStyle(this.scrollBarH.element.style, "right", right); + dom.setStyle(this.scroller.style, "right", right); + dom.setStyle(this.scroller.style, "bottom", this.scrollBarH.getHeight()); + + if (this.session && this.session.getUseWrapMode() && this.adjustWrapLimit() || force) { + changes |= this.CHANGE_FULL; + } + } + + size.$dirty = !width || !height; + + if (changes) + this._signal("resize", oldSize); + + return changes; + }; + + this.onGutterResize = function(width) { + var gutterWidth = this.$showGutter ? width : 0; + if (gutterWidth != this.gutterWidth) + this.$changes |= this.$updateCachedSize(true, gutterWidth, this.$size.width, this.$size.height); + + if (this.session.getUseWrapMode() && this.adjustWrapLimit()) { + this.$loop.schedule(this.CHANGE_FULL); + } else if (this.$size.$dirty) { + this.$loop.schedule(this.CHANGE_FULL); + } else { + this.$computeLayerConfig(); + } + }; + this.adjustWrapLimit = function() { + var availableWidth = this.$size.scrollerWidth - this.$padding * 2; + var limit = Math.floor(availableWidth / this.characterWidth); + return this.session.adjustWrapLimit(limit, this.$showPrintMargin && this.$printMarginColumn); + }; + this.setAnimatedScroll = function(shouldAnimate){ + this.setOption("animatedScroll", shouldAnimate); + }; + this.getAnimatedScroll = function() { + return this.$animatedScroll; + }; + this.setShowInvisibles = function(showInvisibles) { + this.setOption("showInvisibles", showInvisibles); + this.session.$bidiHandler.setShowInvisibles(showInvisibles); + }; + this.getShowInvisibles = function() { + return this.getOption("showInvisibles"); + }; + this.getDisplayIndentGuides = function() { + return this.getOption("displayIndentGuides"); + }; + + this.setDisplayIndentGuides = function(display) { + this.setOption("displayIndentGuides", display); + }; + this.setShowPrintMargin = function(showPrintMargin) { + this.setOption("showPrintMargin", showPrintMargin); + }; + this.getShowPrintMargin = function() { + return this.getOption("showPrintMargin"); + }; + this.setPrintMarginColumn = function(showPrintMargin) { + this.setOption("printMarginColumn", showPrintMargin); + }; + this.getPrintMarginColumn = function() { + return this.getOption("printMarginColumn"); + }; + this.getShowGutter = function(){ + return this.getOption("showGutter"); + }; + this.setShowGutter = function(show){ + return this.setOption("showGutter", show); + }; + + this.getFadeFoldWidgets = function(){ + return this.getOption("fadeFoldWidgets"); + }; + + this.setFadeFoldWidgets = function(show) { + this.setOption("fadeFoldWidgets", show); + }; + + this.setHighlightGutterLine = function(shouldHighlight) { + this.setOption("highlightGutterLine", shouldHighlight); + }; + + this.getHighlightGutterLine = function() { + return this.getOption("highlightGutterLine"); + }; + + this.$updatePrintMargin = function() { + if (!this.$showPrintMargin && !this.$printMarginEl) + return; + + if (!this.$printMarginEl) { + var containerEl = dom.createElement("div"); + containerEl.className = "ace_layer ace_print-margin-layer"; + this.$printMarginEl = dom.createElement("div"); + this.$printMarginEl.className = "ace_print-margin"; + containerEl.appendChild(this.$printMarginEl); + this.content.insertBefore(containerEl, this.content.firstChild); + } + + var style = this.$printMarginEl.style; + style.left = Math.round(this.characterWidth * this.$printMarginColumn + this.$padding) + "px"; + style.visibility = this.$showPrintMargin ? "visible" : "hidden"; + + if (this.session && this.session.$wrap == -1) + this.adjustWrapLimit(); + }; + this.getContainerElement = function() { + return this.container; + }; + this.getMouseEventTarget = function() { + return this.scroller; + }; + this.getTextAreaContainer = function() { + return this.container; + }; + this.$moveTextAreaToCursor = function() { + var style = this.textarea.style; + if (!this.$keepTextAreaAtCursor) { + dom.translate(this.textarea, -100, 0); + return; + } + var pixelPos = this.$cursorLayer.$pixelPos; + if (!pixelPos) + return; + var composition = this.$composition; + if (composition && composition.markerRange) + pixelPos = this.$cursorLayer.getPixelPosition(composition.markerRange.start, true); + + var config = this.layerConfig; + var posTop = pixelPos.top; + var posLeft = pixelPos.left; + posTop -= config.offset; + + var h = composition && composition.useTextareaForIME ? this.lineHeight : HIDE_TEXTAREA ? 0 : 1; + if (posTop < 0 || posTop > config.height - h) { + dom.translate(this.textarea, 0, 0); + return; + } + + var w = 1; + if (!composition) { + posTop += this.lineHeight; + } + else { + if (composition.useTextareaForIME) { + var val = this.textarea.value; + w = this.characterWidth * (this.session.$getStringScreenWidth(val)[0]); + h += 2; + } + else { + posTop += this.lineHeight + 2; + } + } + + posLeft -= this.scrollLeft; + if (posLeft > this.$size.scrollerWidth - w) + posLeft = this.$size.scrollerWidth - w; + + posLeft += this.gutterWidth + this.margin.left; + + dom.setStyle(style, "height", h + "px"); + dom.setStyle(style, "width", w + "px"); + dom.translate(this.textarea, Math.min(posLeft, this.$size.scrollerWidth - w), Math.min(posTop, this.$size.height - h)); + }; + this.getFirstVisibleRow = function() { + return this.layerConfig.firstRow; + }; + this.getFirstFullyVisibleRow = function() { + return this.layerConfig.firstRow + (this.layerConfig.offset === 0 ? 0 : 1); + }; + this.getLastFullyVisibleRow = function() { + var config = this.layerConfig; + var lastRow = config.lastRow; + var top = this.session.documentToScreenRow(lastRow, 0) * config.lineHeight; + if (top - this.session.getScrollTop() > config.height - config.lineHeight) + return lastRow - 1; + return lastRow; + }; + this.getLastVisibleRow = function() { + return this.layerConfig.lastRow; + }; + + this.$padding = null; + this.setPadding = function(padding) { + this.$padding = padding; + this.$textLayer.setPadding(padding); + this.$cursorLayer.setPadding(padding); + this.$markerFront.setPadding(padding); + this.$markerBack.setPadding(padding); + this.$loop.schedule(this.CHANGE_FULL); + this.$updatePrintMargin(); + }; + + this.setScrollMargin = function(top, bottom, left, right) { + var sm = this.scrollMargin; + sm.top = top|0; + sm.bottom = bottom|0; + sm.right = right|0; + sm.left = left|0; + sm.v = sm.top + sm.bottom; + sm.h = sm.left + sm.right; + if (sm.top && this.scrollTop <= 0 && this.session) + this.session.setScrollTop(-sm.top); + this.updateFull(); + }; + + this.setMargin = function(top, bottom, left, right) { + var sm = this.margin; + sm.top = top|0; + sm.bottom = bottom|0; + sm.right = right|0; + sm.left = left|0; + sm.v = sm.top + sm.bottom; + sm.h = sm.left + sm.right; + this.$updateCachedSize(true, this.gutterWidth, this.$size.width, this.$size.height); + this.updateFull(); + }; + this.getHScrollBarAlwaysVisible = function() { + return this.$hScrollBarAlwaysVisible; + }; + this.setHScrollBarAlwaysVisible = function(alwaysVisible) { + this.setOption("hScrollBarAlwaysVisible", alwaysVisible); + }; + this.getVScrollBarAlwaysVisible = function() { + return this.$vScrollBarAlwaysVisible; + }; + this.setVScrollBarAlwaysVisible = function(alwaysVisible) { + this.setOption("vScrollBarAlwaysVisible", alwaysVisible); + }; + + this.$updateScrollBarV = function() { + var scrollHeight = this.layerConfig.maxHeight; + var scrollerHeight = this.$size.scrollerHeight; + if (!this.$maxLines && this.$scrollPastEnd) { + scrollHeight -= (scrollerHeight - this.lineHeight) * this.$scrollPastEnd; + if (this.scrollTop > scrollHeight - scrollerHeight) { + scrollHeight = this.scrollTop + scrollerHeight; + this.scrollBarV.scrollTop = null; + } + } + this.scrollBarV.setScrollHeight(scrollHeight + this.scrollMargin.v); + this.scrollBarV.setScrollTop(this.scrollTop + this.scrollMargin.top); + }; + this.$updateScrollBarH = function() { + this.scrollBarH.setScrollWidth(this.layerConfig.width + 2 * this.$padding + this.scrollMargin.h); + this.scrollBarH.setScrollLeft(this.scrollLeft + this.scrollMargin.left); + }; + + this.$frozen = false; + this.freeze = function() { + this.$frozen = true; + }; + + this.unfreeze = function() { + this.$frozen = false; + }; + + this.$renderChanges = function(changes, force) { + if (this.$changes) { + changes |= this.$changes; + this.$changes = 0; + } + if ((!this.session || !this.container.offsetWidth || this.$frozen) || (!changes && !force)) { + this.$changes |= changes; + return; + } + if (this.$size.$dirty) { + this.$changes |= changes; + return this.onResize(true); + } + if (!this.lineHeight) { + this.$textLayer.checkForSizeChanges(); + } + + this._signal("beforeRender"); + + if (this.session && this.session.$bidiHandler) + this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics); + + var config = this.layerConfig; + if (changes & this.CHANGE_FULL || + changes & this.CHANGE_SIZE || + changes & this.CHANGE_TEXT || + changes & this.CHANGE_LINES || + changes & this.CHANGE_SCROLL || + changes & this.CHANGE_H_SCROLL + ) { + changes |= this.$computeLayerConfig() | this.$loop.clear(); + if (config.firstRow != this.layerConfig.firstRow && config.firstRowScreen == this.layerConfig.firstRowScreen) { + var st = this.scrollTop + (config.firstRow - this.layerConfig.firstRow) * this.lineHeight; + if (st > 0) { + this.scrollTop = st; + changes = changes | this.CHANGE_SCROLL; + changes |= this.$computeLayerConfig() | this.$loop.clear(); + } + } + config = this.layerConfig; + this.$updateScrollBarV(); + if (changes & this.CHANGE_H_SCROLL) + this.$updateScrollBarH(); + + dom.translate(this.content, -this.scrollLeft, -config.offset); + + var width = config.width + 2 * this.$padding + "px"; + var height = config.minHeight + "px"; + + dom.setStyle(this.content.style, "width", width); + dom.setStyle(this.content.style, "height", height); + } + if (changes & this.CHANGE_H_SCROLL) { + dom.translate(this.content, -this.scrollLeft, -config.offset); + this.scroller.className = this.scrollLeft <= 0 ? "ace_scroller" : "ace_scroller ace_scroll-left"; + } + if (changes & this.CHANGE_FULL) { + this.$textLayer.update(config); + if (this.$showGutter) + this.$gutterLayer.update(config); + this.$markerBack.update(config); + this.$markerFront.update(config); + this.$cursorLayer.update(config); + this.$moveTextAreaToCursor(); + this._signal("afterRender"); + return; + } + if (changes & this.CHANGE_SCROLL) { + if (changes & this.CHANGE_TEXT || changes & this.CHANGE_LINES) + this.$textLayer.update(config); + else + this.$textLayer.scrollLines(config); + + if (this.$showGutter) { + if (changes & this.CHANGE_GUTTER || changes & this.CHANGE_LINES) + this.$gutterLayer.update(config); + else + this.$gutterLayer.scrollLines(config); + } + this.$markerBack.update(config); + this.$markerFront.update(config); + this.$cursorLayer.update(config); + this.$moveTextAreaToCursor(); + this._signal("afterRender"); + return; + } + + if (changes & this.CHANGE_TEXT) { + this.$textLayer.update(config); + if (this.$showGutter) + this.$gutterLayer.update(config); + } + else if (changes & this.CHANGE_LINES) { + if (this.$updateLines() || (changes & this.CHANGE_GUTTER) && this.$showGutter) + this.$gutterLayer.update(config); + } + else if (changes & this.CHANGE_TEXT || changes & this.CHANGE_GUTTER) { + if (this.$showGutter) + this.$gutterLayer.update(config); + } + else if (changes & this.CHANGE_CURSOR) { + if (this.$highlightGutterLine) + this.$gutterLayer.updateLineHighlight(config); + } + + if (changes & this.CHANGE_CURSOR) { + this.$cursorLayer.update(config); + this.$moveTextAreaToCursor(); + } + + if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_FRONT)) { + this.$markerFront.update(config); + } + + if (changes & (this.CHANGE_MARKER | this.CHANGE_MARKER_BACK)) { + this.$markerBack.update(config); + } + + this._signal("afterRender"); + }; + + + this.$autosize = function() { + var height = this.session.getScreenLength() * this.lineHeight; + var maxHeight = this.$maxLines * this.lineHeight; + var desiredHeight = Math.min(maxHeight, + Math.max((this.$minLines || 1) * this.lineHeight, height) + ) + this.scrollMargin.v + (this.$extraHeight || 0); + if (this.$horizScroll) + desiredHeight += this.scrollBarH.getHeight(); + if (this.$maxPixelHeight && desiredHeight > this.$maxPixelHeight) + desiredHeight = this.$maxPixelHeight; + + var hideScrollbars = desiredHeight <= 2 * this.lineHeight; + var vScroll = !hideScrollbars && height > maxHeight; + + if (desiredHeight != this.desiredHeight || + this.$size.height != this.desiredHeight || vScroll != this.$vScroll) { + if (vScroll != this.$vScroll) { + this.$vScroll = vScroll; + this.scrollBarV.setVisible(vScroll); + } + + var w = this.container.clientWidth; + this.container.style.height = desiredHeight + "px"; + this.$updateCachedSize(true, this.$gutterWidth, w, desiredHeight); + this.desiredHeight = desiredHeight; + + this._signal("autosize"); + } + }; + + this.$computeLayerConfig = function() { + var session = this.session; + var size = this.$size; + + var hideScrollbars = size.height <= 2 * this.lineHeight; + var screenLines = this.session.getScreenLength(); + var maxHeight = screenLines * this.lineHeight; + + var longestLine = this.$getLongestLine(); + + var horizScroll = !hideScrollbars && (this.$hScrollBarAlwaysVisible || + size.scrollerWidth - longestLine - 2 * this.$padding < 0); + + var hScrollChanged = this.$horizScroll !== horizScroll; + if (hScrollChanged) { + this.$horizScroll = horizScroll; + this.scrollBarH.setVisible(horizScroll); + } + var vScrollBefore = this.$vScroll; // autosize can change vscroll value in which case we need to update longestLine + if (this.$maxLines && this.lineHeight > 1) + this.$autosize(); + + var minHeight = size.scrollerHeight + this.lineHeight; + + var scrollPastEnd = !this.$maxLines && this.$scrollPastEnd + ? (size.scrollerHeight - this.lineHeight) * this.$scrollPastEnd + : 0; + maxHeight += scrollPastEnd; + + var sm = this.scrollMargin; + this.session.setScrollTop(Math.max(-sm.top, + Math.min(this.scrollTop, maxHeight - size.scrollerHeight + sm.bottom))); + + this.session.setScrollLeft(Math.max(-sm.left, Math.min(this.scrollLeft, + longestLine + 2 * this.$padding - size.scrollerWidth + sm.right))); + + var vScroll = !hideScrollbars && (this.$vScrollBarAlwaysVisible || + size.scrollerHeight - maxHeight + scrollPastEnd < 0 || this.scrollTop > sm.top); + var vScrollChanged = vScrollBefore !== vScroll; + if (vScrollChanged) { + this.$vScroll = vScroll; + this.scrollBarV.setVisible(vScroll); + } + + var offset = this.scrollTop % this.lineHeight; + var lineCount = Math.ceil(minHeight / this.lineHeight) - 1; + var firstRow = Math.max(0, Math.round((this.scrollTop - offset) / this.lineHeight)); + var lastRow = firstRow + lineCount; + var firstRowScreen, firstRowHeight; + var lineHeight = this.lineHeight; + firstRow = session.screenToDocumentRow(firstRow, 0); + var foldLine = session.getFoldLine(firstRow); + if (foldLine) { + firstRow = foldLine.start.row; + } + + firstRowScreen = session.documentToScreenRow(firstRow, 0); + firstRowHeight = session.getRowLength(firstRow) * lineHeight; + + lastRow = Math.min(session.screenToDocumentRow(lastRow, 0), session.getLength() - 1); + minHeight = size.scrollerHeight + session.getRowLength(lastRow) * lineHeight + + firstRowHeight; + + offset = this.scrollTop - firstRowScreen * lineHeight; + + var changes = 0; + if (this.layerConfig.width != longestLine || hScrollChanged) + changes = this.CHANGE_H_SCROLL; + if (hScrollChanged || vScrollChanged) { + changes |= this.$updateCachedSize(true, this.gutterWidth, size.width, size.height); + this._signal("scrollbarVisibilityChanged"); + if (vScrollChanged) + longestLine = this.$getLongestLine(); + } + + this.layerConfig = { + width : longestLine, + padding : this.$padding, + firstRow : firstRow, + firstRowScreen: firstRowScreen, + lastRow : lastRow, + lineHeight : lineHeight, + characterWidth : this.characterWidth, + minHeight : minHeight, + maxHeight : maxHeight, + offset : offset, + gutterOffset : lineHeight ? Math.max(0, Math.ceil((offset + size.height - size.scrollerHeight) / lineHeight)) : 0, + height : this.$size.scrollerHeight + }; + + if (this.session.$bidiHandler) + this.session.$bidiHandler.setContentWidth(longestLine - this.$padding); + + return changes; + }; + + this.$updateLines = function() { + if (!this.$changedLines) return; + var firstRow = this.$changedLines.firstRow; + var lastRow = this.$changedLines.lastRow; + this.$changedLines = null; + + var layerConfig = this.layerConfig; + + if (firstRow > layerConfig.lastRow + 1) { return; } + if (lastRow < layerConfig.firstRow) { return; } + if (lastRow === Infinity) { + if (this.$showGutter) + this.$gutterLayer.update(layerConfig); + this.$textLayer.update(layerConfig); + return; + } + this.$textLayer.updateLines(layerConfig, firstRow, lastRow); + return true; + }; + + this.$getLongestLine = function() { + var charCount = this.session.getScreenWidth(); + if (this.showInvisibles && !this.session.$useWrapMode) + charCount += 1; + + if (this.$textLayer && charCount > this.$textLayer.MAX_LINE_LENGTH) + charCount = this.$textLayer.MAX_LINE_LENGTH + 30; + + return Math.max(this.$size.scrollerWidth - 2 * this.$padding, Math.round(charCount * this.characterWidth)); + }; + this.updateFrontMarkers = function() { + this.$markerFront.setMarkers(this.session.getMarkers(true)); + this.$loop.schedule(this.CHANGE_MARKER_FRONT); + }; + this.updateBackMarkers = function() { + this.$markerBack.setMarkers(this.session.getMarkers()); + this.$loop.schedule(this.CHANGE_MARKER_BACK); + }; + this.addGutterDecoration = function(row, className){ + this.$gutterLayer.addGutterDecoration(row, className); + }; + this.removeGutterDecoration = function(row, className){ + this.$gutterLayer.removeGutterDecoration(row, className); + }; + this.updateBreakpoints = function(rows) { + this.$loop.schedule(this.CHANGE_GUTTER); + }; + this.setAnnotations = function(annotations) { + this.$gutterLayer.setAnnotations(annotations); + this.$loop.schedule(this.CHANGE_GUTTER); + }; + this.updateCursor = function() { + this.$loop.schedule(this.CHANGE_CURSOR); + }; + this.hideCursor = function() { + this.$cursorLayer.hideCursor(); + }; + this.showCursor = function() { + this.$cursorLayer.showCursor(); + }; + + this.scrollSelectionIntoView = function(anchor, lead, offset) { + this.scrollCursorIntoView(anchor, offset); + this.scrollCursorIntoView(lead, offset); + }; + this.scrollCursorIntoView = function(cursor, offset, $viewMargin) { + if (this.$size.scrollerHeight === 0) + return; + + var pos = this.$cursorLayer.getPixelPosition(cursor); + + var left = pos.left; + var top = pos.top; + + var topMargin = $viewMargin && $viewMargin.top || 0; + var bottomMargin = $viewMargin && $viewMargin.bottom || 0; + + var scrollTop = this.$scrollAnimation ? this.session.getScrollTop() : this.scrollTop; + + if (scrollTop + topMargin > top) { + if (offset && scrollTop + topMargin > top + this.lineHeight) + top -= offset * this.$size.scrollerHeight; + if (top === 0) + top = -this.scrollMargin.top; + this.session.setScrollTop(top); + } else if (scrollTop + this.$size.scrollerHeight - bottomMargin < top + this.lineHeight) { + if (offset && scrollTop + this.$size.scrollerHeight - bottomMargin < top - this.lineHeight) + top += offset * this.$size.scrollerHeight; + this.session.setScrollTop(top + this.lineHeight + bottomMargin - this.$size.scrollerHeight); + } + + var scrollLeft = this.scrollLeft; + + if (scrollLeft > left) { + if (left < this.$padding + 2 * this.layerConfig.characterWidth) + left = -this.scrollMargin.left; + this.session.setScrollLeft(left); + } else if (scrollLeft + this.$size.scrollerWidth < left + this.characterWidth) { + this.session.setScrollLeft(Math.round(left + this.characterWidth - this.$size.scrollerWidth)); + } else if (scrollLeft <= this.$padding && left - scrollLeft < this.characterWidth) { + this.session.setScrollLeft(0); + } + }; + this.getScrollTop = function() { + return this.session.getScrollTop(); + }; + this.getScrollLeft = function() { + return this.session.getScrollLeft(); + }; + this.getScrollTopRow = function() { + return this.scrollTop / this.lineHeight; + }; + this.getScrollBottomRow = function() { + return Math.max(0, Math.floor((this.scrollTop + this.$size.scrollerHeight) / this.lineHeight) - 1); + }; + this.scrollToRow = function(row) { + this.session.setScrollTop(row * this.lineHeight); + }; + + this.alignCursor = function(cursor, alignment) { + if (typeof cursor == "number") + cursor = {row: cursor, column: 0}; + + var pos = this.$cursorLayer.getPixelPosition(cursor); + var h = this.$size.scrollerHeight - this.lineHeight; + var offset = pos.top - h * (alignment || 0); + + this.session.setScrollTop(offset); + return offset; + }; + + this.STEPS = 8; + this.$calcSteps = function(fromValue, toValue){ + var i = 0; + var l = this.STEPS; + var steps = []; + + var func = function(t, x_min, dx) { + return dx * (Math.pow(t - 1, 3) + 1) + x_min; + }; + + for (i = 0; i < l; ++i) + steps.push(func(i / this.STEPS, fromValue, toValue - fromValue)); + + return steps; + }; + this.scrollToLine = function(line, center, animate, callback) { + var pos = this.$cursorLayer.getPixelPosition({row: line, column: 0}); + var offset = pos.top; + if (center) + offset -= this.$size.scrollerHeight / 2; + + var initialScroll = this.scrollTop; + this.session.setScrollTop(offset); + if (animate !== false) + this.animateScrolling(initialScroll, callback); + }; + + this.animateScrolling = function(fromValue, callback) { + var toValue = this.scrollTop; + if (!this.$animatedScroll) + return; + var _self = this; + + if (fromValue == toValue) + return; + + if (this.$scrollAnimation) { + var oldSteps = this.$scrollAnimation.steps; + if (oldSteps.length) { + fromValue = oldSteps[0]; + if (fromValue == toValue) + return; + } + } + + var steps = _self.$calcSteps(fromValue, toValue); + this.$scrollAnimation = {from: fromValue, to: toValue, steps: steps}; + + clearInterval(this.$timer); + + _self.session.setScrollTop(steps.shift()); + _self.session.$scrollTop = toValue; + this.$timer = setInterval(function() { + if (steps.length) { + _self.session.setScrollTop(steps.shift()); + _self.session.$scrollTop = toValue; + } else if (toValue != null) { + _self.session.$scrollTop = -1; + _self.session.setScrollTop(toValue); + toValue = null; + } else { + _self.$timer = clearInterval(_self.$timer); + _self.$scrollAnimation = null; + callback && callback(); + } + }, 10); + }; + this.scrollToY = function(scrollTop) { + if (this.scrollTop !== scrollTop) { + this.$loop.schedule(this.CHANGE_SCROLL); + this.scrollTop = scrollTop; + } + }; + this.scrollToX = function(scrollLeft) { + if (this.scrollLeft !== scrollLeft) + this.scrollLeft = scrollLeft; + this.$loop.schedule(this.CHANGE_H_SCROLL); + }; + this.scrollTo = function(x, y) { + this.session.setScrollTop(y); + this.session.setScrollLeft(y); + }; + this.scrollBy = function(deltaX, deltaY) { + deltaY && this.session.setScrollTop(this.session.getScrollTop() + deltaY); + deltaX && this.session.setScrollLeft(this.session.getScrollLeft() + deltaX); + }; + this.isScrollableBy = function(deltaX, deltaY) { + if (deltaY < 0 && this.session.getScrollTop() >= 1 - this.scrollMargin.top) + return true; + if (deltaY > 0 && this.session.getScrollTop() + this.$size.scrollerHeight + - this.layerConfig.maxHeight < -1 + this.scrollMargin.bottom) + return true; + if (deltaX < 0 && this.session.getScrollLeft() >= 1 - this.scrollMargin.left) + return true; + if (deltaX > 0 && this.session.getScrollLeft() + this.$size.scrollerWidth + - this.layerConfig.width < -1 + this.scrollMargin.right) + return true; + }; + + this.pixelToScreenCoordinates = function(x, y) { + var canvasPos; + if (this.$hasCssTransforms) { + canvasPos = {top:0, left: 0}; + var p = this.$fontMetrics.transformCoordinates([x, y]); + x = p[1] - this.gutterWidth - this.margin.left; + y = p[0]; + } else { + canvasPos = this.scroller.getBoundingClientRect(); + } + + var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding; + var offset = offsetX / this.characterWidth; + var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight); + var col = this.$blockCursor ? Math.floor(offset) : Math.round(offset); + + return {row: row, column: col, side: offset - col > 0 ? 1 : -1, offsetX: offsetX}; + }; + + this.screenToTextCoordinates = function(x, y) { + var canvasPos; + if (this.$hasCssTransforms) { + canvasPos = {top:0, left: 0}; + var p = this.$fontMetrics.transformCoordinates([x, y]); + x = p[1] - this.gutterWidth - this.margin.left; + y = p[0]; + } else { + canvasPos = this.scroller.getBoundingClientRect(); + } + + var offsetX = x + this.scrollLeft - canvasPos.left - this.$padding; + var offset = offsetX / this.characterWidth; + var col = this.$blockCursor ? Math.floor(offset) : Math.round(offset); + + var row = Math.floor((y + this.scrollTop - canvasPos.top) / this.lineHeight); + + return this.session.screenToDocumentPosition(row, Math.max(col, 0), offsetX); + }; + this.textToScreenCoordinates = function(row, column) { + var canvasPos = this.scroller.getBoundingClientRect(); + var pos = this.session.documentToScreenPosition(row, column); + + var x = this.$padding + (this.session.$bidiHandler.isBidiRow(pos.row, row) + ? this.session.$bidiHandler.getPosLeft(pos.column) + : Math.round(pos.column * this.characterWidth)); + + var y = pos.row * this.lineHeight; + + return { + pageX: canvasPos.left + x - this.scrollLeft, + pageY: canvasPos.top + y - this.scrollTop + }; + }; + this.visualizeFocus = function() { + dom.addCssClass(this.container, "ace_focus"); + }; + this.visualizeBlur = function() { + dom.removeCssClass(this.container, "ace_focus"); + }; + this.showComposition = function(composition) { + this.$composition = composition; + if (!composition.cssText) { + composition.cssText = this.textarea.style.cssText; + composition.keepTextAreaAtCursor = this.$keepTextAreaAtCursor; + } + composition.useTextareaForIME = this.$useTextareaForIME; + + if (this.$useTextareaForIME) { + this.$keepTextAreaAtCursor = true; + dom.addCssClass(this.textarea, "ace_composition"); + this.textarea.style.cssText = ""; + this.$moveTextAreaToCursor(); + this.$cursorLayer.element.style.display = "none"; + } + else { + composition.markerId = this.session.addMarker(composition.markerRange, "ace_composition_marker", "text"); + } + }; + this.setCompositionText = function(text) { + var cursor = this.session.selection.cursor; + this.addToken(text, "composition_placeholder", cursor.row, cursor.column); + this.$moveTextAreaToCursor(); + }; + this.hideComposition = function() { + if (!this.$composition) + return; + + if (this.$composition.markerId) + this.session.removeMarker(this.$composition.markerId); + + dom.removeCssClass(this.textarea, "ace_composition"); + this.$keepTextAreaAtCursor = this.$composition.keepTextAreaAtCursor; + this.textarea.style.cssText = this.$composition.cssText; + this.$composition = null; + this.$cursorLayer.element.style.display = ""; + }; + + this.addToken = function(text, type, row, column) { + var session = this.session; + session.bgTokenizer.lines[row] = null; + var newToken = {type: type, value: text}; + var tokens = session.getTokens(row); + if (column == null) { + tokens.push(newToken); + } else { + var l = 0; + for (var i =0; i < tokens.length; i++) { + var token = tokens[i]; + l += token.value.length; + if (column <= l) { + var diff = token.value.length - (l - column); + var before = token.value.slice(0, diff); + var after = token.value.slice(diff); + + tokens.splice(i, 1, {type: token.type, value: before}, newToken, {type: token.type, value: after}); + break; + } + } + } + this.updateLines(row, row); + }; + this.setTheme = function(theme, cb) { + var _self = this; + this.$themeId = theme; + _self._dispatchEvent('themeChange',{theme:theme}); + + if (!theme || typeof theme == "string") { + var moduleName = theme || this.$options.theme.initialValue; + config.loadModule(["theme", moduleName], afterLoad); + } else { + afterLoad(theme); + } + + function afterLoad(module) { + if (_self.$themeId != theme) + return cb && cb(); + if (!module || !module.cssClass) + throw new Error("couldn't load module " + theme + " or it didn't call define"); + if (module.$id) + _self.$themeId = module.$id; + dom.importCssString( + module.cssText, + module.cssClass, + _self.container + ); + + if (_self.theme) + dom.removeCssClass(_self.container, _self.theme.cssClass); + + var padding = "padding" in module ? module.padding + : "padding" in (_self.theme || {}) ? 4 : _self.$padding; + if (_self.$padding && padding != _self.$padding) + _self.setPadding(padding); + _self.$theme = module.cssClass; + + _self.theme = module; + dom.addCssClass(_self.container, module.cssClass); + dom.setCssClass(_self.container, "ace_dark", module.isDark); + if (_self.$size) { + _self.$size.width = 0; + _self.$updateSizeAsync(); + } + + _self._dispatchEvent('themeLoaded', {theme:module}); + cb && cb(); + } + }; + this.getTheme = function() { + return this.$themeId; + }; + this.setStyle = function(style, include) { + dom.setCssClass(this.container, style, include !== false); + }; + this.unsetStyle = function(style) { + dom.removeCssClass(this.container, style); + }; + + this.setCursorStyle = function(style) { + dom.setStyle(this.scroller.style, "cursor", style); + }; + this.setMouseCursor = function(cursorStyle) { + dom.setStyle(this.scroller.style, "cursor", cursorStyle); + }; + + this.attachToShadowRoot = function() { + dom.importCssString(editorCss, "ace_editor.css", this.container); + }; + this.destroy = function() { + this.$fontMetrics.destroy(); + this.$cursorLayer.destroy(); + }; + +}).call(VirtualRenderer.prototype); + + +config.defineOptions(VirtualRenderer.prototype, "renderer", { + animatedScroll: {initialValue: false}, + showInvisibles: { + set: function(value) { + if (this.$textLayer.setShowInvisibles(value)) + this.$loop.schedule(this.CHANGE_TEXT); + }, + initialValue: false + }, + showPrintMargin: { + set: function() { this.$updatePrintMargin(); }, + initialValue: true + }, + printMarginColumn: { + set: function() { this.$updatePrintMargin(); }, + initialValue: 80 + }, + printMargin: { + set: function(val) { + if (typeof val == "number") + this.$printMarginColumn = val; + this.$showPrintMargin = !!val; + this.$updatePrintMargin(); + }, + get: function() { + return this.$showPrintMargin && this.$printMarginColumn; + } + }, + showGutter: { + set: function(show){ + this.$gutter.style.display = show ? "block" : "none"; + this.$loop.schedule(this.CHANGE_FULL); + this.onGutterResize(); + }, + initialValue: true + }, + fadeFoldWidgets: { + set: function(show) { + dom.setCssClass(this.$gutter, "ace_fade-fold-widgets", show); + }, + initialValue: false + }, + showFoldWidgets: { + set: function(show) { + this.$gutterLayer.setShowFoldWidgets(show); + this.$loop.schedule(this.CHANGE_GUTTER); + }, + initialValue: true + }, + displayIndentGuides: { + set: function(show) { + if (this.$textLayer.setDisplayIndentGuides(show)) + this.$loop.schedule(this.CHANGE_TEXT); + }, + initialValue: true + }, + highlightGutterLine: { + set: function(shouldHighlight) { + this.$gutterLayer.setHighlightGutterLine(shouldHighlight); + this.$loop.schedule(this.CHANGE_GUTTER); + }, + initialValue: true + }, + hScrollBarAlwaysVisible: { + set: function(val) { + if (!this.$hScrollBarAlwaysVisible || !this.$horizScroll) + this.$loop.schedule(this.CHANGE_SCROLL); + }, + initialValue: false + }, + vScrollBarAlwaysVisible: { + set: function(val) { + if (!this.$vScrollBarAlwaysVisible || !this.$vScroll) + this.$loop.schedule(this.CHANGE_SCROLL); + }, + initialValue: false + }, + fontSize: { + set: function(size) { + if (typeof size == "number") + size = size + "px"; + this.container.style.fontSize = size; + this.updateFontSize(); + }, + initialValue: 12 + }, + fontFamily: { + set: function(name) { + this.container.style.fontFamily = name; + this.updateFontSize(); + } + }, + maxLines: { + set: function(val) { + this.updateFull(); + } + }, + minLines: { + set: function(val) { + if (!(this.$minLines < 0x1ffffffffffff)) + this.$minLines = 0; + this.updateFull(); + } + }, + maxPixelHeight: { + set: function(val) { + this.updateFull(); + }, + initialValue: 0 + }, + scrollPastEnd: { + set: function(val) { + val = +val || 0; + if (this.$scrollPastEnd == val) + return; + this.$scrollPastEnd = val; + this.$loop.schedule(this.CHANGE_SCROLL); + }, + initialValue: 0, + handlesSet: true + }, + fixedWidthGutter: { + set: function(val) { + this.$gutterLayer.$fixedWidth = !!val; + this.$loop.schedule(this.CHANGE_GUTTER); + } + }, + theme: { + set: function(val) { this.setTheme(val); }, + get: function() { return this.$themeId || this.theme; }, + initialValue: "./theme/textmate", + handlesSet: true + }, + hasCssTransforms: { + }, + useTextareaForIME: { + initialValue: !useragent.isMobile && !useragent.isIE + } +}); + +exports.VirtualRenderer = VirtualRenderer; +}); + +define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var net = require("../lib/net"); +var EventEmitter = require("../lib/event_emitter").EventEmitter; +var config = require("../config"); + +function $workerBlob(workerUrl) { + var script = "importScripts('" + net.qualifyURL(workerUrl) + "');"; + try { + return new Blob([script], {"type": "application/javascript"}); + } catch (e) { // Backwards-compatibility + var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder; + var blobBuilder = new BlobBuilder(); + blobBuilder.append(script); + return blobBuilder.getBlob("application/javascript"); + } +} + +function createWorker(workerUrl) { + if (typeof Worker == "undefined") + return { postMessage: function() {}, terminate: function() {} }; + if (config.get("loadWorkerFromBlob")) { + var blob = $workerBlob(workerUrl); + var URL = window.URL || window.webkitURL; + var blobURL = URL.createObjectURL(blob); + return new Worker(blobURL); + } + return new Worker(workerUrl); +} + +var WorkerClient = function(worker) { + if (!worker.postMessage) + worker = this.$createWorkerFromOldConfig.apply(this, arguments); + + this.$worker = worker; + this.$sendDeltaQueue = this.$sendDeltaQueue.bind(this); + this.changeListener = this.changeListener.bind(this); + this.onMessage = this.onMessage.bind(this); + + this.callbackId = 1; + this.callbacks = {}; + + this.$worker.onmessage = this.onMessage; +}; + +(function(){ + + oop.implement(this, EventEmitter); + + this.$createWorkerFromOldConfig = function(topLevelNamespaces, mod, classname, workerUrl, importScripts) { + if (require.nameToUrl && !require.toUrl) + require.toUrl = require.nameToUrl; + + if (config.get("packaged") || !require.toUrl) { + workerUrl = workerUrl || config.moduleUrl(mod, "worker"); + } else { + var normalizePath = this.$normalizePath; + workerUrl = workerUrl || normalizePath(require.toUrl("ace/worker/worker.js", null, "_")); + + var tlns = {}; + topLevelNamespaces.forEach(function(ns) { + tlns[ns] = normalizePath(require.toUrl(ns, null, "_").replace(/(\.js)?(\?.*)?$/, "")); + }); + } + + this.$worker = createWorker(workerUrl); + if (importScripts) { + this.send("importScripts", importScripts); + } + this.$worker.postMessage({ + init : true, + tlns : tlns, + module : mod, + classname : classname + }); + return this.$worker; + }; + + this.onMessage = function(e) { + var msg = e.data; + switch (msg.type) { + case "event": + this._signal(msg.name, {data: msg.data}); + break; + case "call": + var callback = this.callbacks[msg.id]; + if (callback) { + callback(msg.data); + delete this.callbacks[msg.id]; + } + break; + case "error": + this.reportError(msg.data); + break; + case "log": + window.console && console.log && console.log.apply(console, msg.data); + break; + } + }; + + this.reportError = function(err) { + window.console && console.error && console.error(err); + }; + + this.$normalizePath = function(path) { + return net.qualifyURL(path); + }; + + this.terminate = function() { + this._signal("terminate", {}); + this.deltaQueue = null; + this.$worker.terminate(); + this.$worker = null; + if (this.$doc) + this.$doc.off("change", this.changeListener); + this.$doc = null; + }; + + this.send = function(cmd, args) { + this.$worker.postMessage({command: cmd, args: args}); + }; + + this.call = function(cmd, args, callback) { + if (callback) { + var id = this.callbackId++; + this.callbacks[id] = callback; + args.push(id); + } + this.send(cmd, args); + }; + + this.emit = function(event, data) { + try { + if (data.data && data.data.err) + data.data.err = {message: data.data.err.message, stack: data.data.err.stack, code: data.data.err.code}; + this.$worker.postMessage({event: event, data: {data: data.data}}); + } + catch(ex) { + console.error(ex.stack); + } + }; + + this.attachToDocument = function(doc) { + if (this.$doc) + this.terminate(); + + this.$doc = doc; + this.call("setValue", [doc.getValue()]); + doc.on("change", this.changeListener); + }; + + this.changeListener = function(delta) { + if (!this.deltaQueue) { + this.deltaQueue = []; + setTimeout(this.$sendDeltaQueue, 0); + } + if (delta.action == "insert") + this.deltaQueue.push(delta.start, delta.lines); + else + this.deltaQueue.push(delta.start, delta.end); + }; + + this.$sendDeltaQueue = function() { + var q = this.deltaQueue; + if (!q) return; + this.deltaQueue = null; + if (q.length > 50 && q.length > this.$doc.getLength() >> 1) { + this.call("setValue", [this.$doc.getValue()]); + } else + this.emit("change", {data: q}); + }; + +}).call(WorkerClient.prototype); + + +var UIWorkerClient = function(topLevelNamespaces, mod, classname) { + var main = null; + var emitSync = false; + var sender = Object.create(EventEmitter); + + var messageBuffer = []; + var workerClient = new WorkerClient({ + messageBuffer: messageBuffer, + terminate: function() {}, + postMessage: function(e) { + messageBuffer.push(e); + if (!main) return; + if (emitSync) + setTimeout(processNext); + else + processNext(); + } + }); + + workerClient.setEmitSync = function(val) { emitSync = val; }; + + var processNext = function() { + var msg = messageBuffer.shift(); + if (msg.command) + main[msg.command].apply(main, msg.args); + else if (msg.event) + sender._signal(msg.event, msg.data); + }; + + sender.postMessage = function(msg) { + workerClient.onMessage({data: msg}); + }; + sender.callback = function(data, callbackId) { + this.postMessage({type: "call", id: callbackId, data: data}); + }; + sender.emit = function(name, data) { + this.postMessage({type: "event", name: name, data: data}); + }; + + config.loadModule(["worker", mod], function(Main) { + main = new Main[classname](sender); + while (messageBuffer.length) + processNext(); + }); + + return workerClient; +}; + +exports.UIWorkerClient = UIWorkerClient; +exports.WorkerClient = WorkerClient; +exports.createWorker = createWorker; + + +}); + +define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"], function(require, exports, module) { +"use strict"; + +var Range = require("./range").Range; +var EventEmitter = require("./lib/event_emitter").EventEmitter; +var oop = require("./lib/oop"); + +var PlaceHolder = function(session, length, pos, others, mainClass, othersClass) { + var _self = this; + this.length = length; + this.session = session; + this.doc = session.getDocument(); + this.mainClass = mainClass; + this.othersClass = othersClass; + this.$onUpdate = this.onUpdate.bind(this); + this.doc.on("change", this.$onUpdate); + this.$others = others; + + this.$onCursorChange = function() { + setTimeout(function() { + _self.onCursorChange(); + }); + }; + + this.$pos = pos; + var undoStack = session.getUndoManager().$undoStack || session.getUndoManager().$undostack || {length: -1}; + this.$undoStackDepth = undoStack.length; + this.setup(); + + session.selection.on("changeCursor", this.$onCursorChange); +}; + +(function() { + + oop.implement(this, EventEmitter); + this.setup = function() { + var _self = this; + var doc = this.doc; + var session = this.session; + + this.selectionBefore = session.selection.toJSON(); + if (session.selection.inMultiSelectMode) + session.selection.toSingleRange(); + + this.pos = doc.createAnchor(this.$pos.row, this.$pos.column); + var pos = this.pos; + pos.$insertRight = true; + pos.detach(); + pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column + this.length), this.mainClass, null, false); + this.others = []; + this.$others.forEach(function(other) { + var anchor = doc.createAnchor(other.row, other.column); + anchor.$insertRight = true; + anchor.detach(); + _self.others.push(anchor); + }); + session.setUndoSelect(false); + }; + this.showOtherMarkers = function() { + if (this.othersActive) return; + var session = this.session; + var _self = this; + this.othersActive = true; + this.others.forEach(function(anchor) { + anchor.markerId = session.addMarker(new Range(anchor.row, anchor.column, anchor.row, anchor.column+_self.length), _self.othersClass, null, false); + }); + }; + this.hideOtherMarkers = function() { + if (!this.othersActive) return; + this.othersActive = false; + for (var i = 0; i < this.others.length; i++) { + this.session.removeMarker(this.others[i].markerId); + } + }; + this.onUpdate = function(delta) { + if (this.$updating) + return this.updateAnchors(delta); + + var range = delta; + if (range.start.row !== range.end.row) return; + if (range.start.row !== this.pos.row) return; + this.$updating = true; + var lengthDiff = delta.action === "insert" ? range.end.column - range.start.column : range.start.column - range.end.column; + var inMainRange = range.start.column >= this.pos.column && range.start.column <= this.pos.column + this.length + 1; + var distanceFromStart = range.start.column - this.pos.column; + + this.updateAnchors(delta); + + if (inMainRange) + this.length += lengthDiff; + + if (inMainRange && !this.session.$fromUndo) { + if (delta.action === 'insert') { + for (var i = this.others.length - 1; i >= 0; i--) { + var otherPos = this.others[i]; + var newPos = {row: otherPos.row, column: otherPos.column + distanceFromStart}; + this.doc.insertMergedLines(newPos, delta.lines); + } + } else if (delta.action === 'remove') { + for (var i = this.others.length - 1; i >= 0; i--) { + var otherPos = this.others[i]; + var newPos = {row: otherPos.row, column: otherPos.column + distanceFromStart}; + this.doc.remove(new Range(newPos.row, newPos.column, newPos.row, newPos.column - lengthDiff)); + } + } + } + + this.$updating = false; + this.updateMarkers(); + }; + + this.updateAnchors = function(delta) { + this.pos.onChange(delta); + for (var i = this.others.length; i--;) + this.others[i].onChange(delta); + this.updateMarkers(); + }; + + this.updateMarkers = function() { + if (this.$updating) + return; + var _self = this; + var session = this.session; + var updateMarker = function(pos, className) { + session.removeMarker(pos.markerId); + pos.markerId = session.addMarker(new Range(pos.row, pos.column, pos.row, pos.column+_self.length), className, null, false); + }; + updateMarker(this.pos, this.mainClass); + for (var i = this.others.length; i--;) + updateMarker(this.others[i], this.othersClass); + }; + + this.onCursorChange = function(event) { + if (this.$updating || !this.session) return; + var pos = this.session.selection.getCursor(); + if (pos.row === this.pos.row && pos.column >= this.pos.column && pos.column <= this.pos.column + this.length) { + this.showOtherMarkers(); + this._emit("cursorEnter", event); + } else { + this.hideOtherMarkers(); + this._emit("cursorLeave", event); + } + }; + this.detach = function() { + this.session.removeMarker(this.pos && this.pos.markerId); + this.hideOtherMarkers(); + this.doc.removeEventListener("change", this.$onUpdate); + this.session.selection.removeEventListener("changeCursor", this.$onCursorChange); + this.session.setUndoSelect(true); + this.session = null; + }; + this.cancel = function() { + if (this.$undoStackDepth === -1) + return; + var undoManager = this.session.getUndoManager(); + var undosRequired = (undoManager.$undoStack || undoManager.$undostack).length - this.$undoStackDepth; + for (var i = 0; i < undosRequired; i++) { + undoManager.undo(this.session, true); + } + if (this.selectionBefore) + this.session.selection.fromJSON(this.selectionBefore); + }; +}).call(PlaceHolder.prototype); + + +exports.PlaceHolder = PlaceHolder; +}); + +define("ace/mouse/multi_select_handler",["require","exports","module","ace/lib/event","ace/lib/useragent"], function(require, exports, module) { + +var event = require("../lib/event"); +var useragent = require("../lib/useragent"); +function isSamePoint(p1, p2) { + return p1.row == p2.row && p1.column == p2.column; +} + +function onMouseDown(e) { + var ev = e.domEvent; + var alt = ev.altKey; + var shift = ev.shiftKey; + var ctrl = ev.ctrlKey; + var accel = e.getAccelKey(); + var button = e.getButton(); + + if (ctrl && useragent.isMac) + button = ev.button; + + if (e.editor.inMultiSelectMode && button == 2) { + e.editor.textInput.onContextMenu(e.domEvent); + return; + } + + if (!ctrl && !alt && !accel) { + if (button === 0 && e.editor.inMultiSelectMode) + e.editor.exitMultiSelectMode(); + return; + } + + if (button !== 0) + return; + + var editor = e.editor; + var selection = editor.selection; + var isMultiSelect = editor.inMultiSelectMode; + var pos = e.getDocumentPosition(); + var cursor = selection.getCursor(); + var inSelection = e.inSelection() || (selection.isEmpty() && isSamePoint(pos, cursor)); + + var mouseX = e.x, mouseY = e.y; + var onMouseSelection = function(e) { + mouseX = e.clientX; + mouseY = e.clientY; + }; + + var session = editor.session; + var screenAnchor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY); + var screenCursor = screenAnchor; + + var selectionMode; + if (editor.$mouseHandler.$enableJumpToDef) { + if (ctrl && alt || accel && alt) + selectionMode = shift ? "block" : "add"; + else if (alt && editor.$blockSelectEnabled) + selectionMode = "block"; + } else { + if (accel && !alt) { + selectionMode = "add"; + if (!isMultiSelect && shift) + return; + } else if (alt && editor.$blockSelectEnabled) { + selectionMode = "block"; + } + } + + if (selectionMode && useragent.isMac && ev.ctrlKey) { + editor.$mouseHandler.cancelContextMenu(); + } + + if (selectionMode == "add") { + if (!isMultiSelect && inSelection) + return; // dragging + + if (!isMultiSelect) { + var range = selection.toOrientedRange(); + editor.addSelectionMarker(range); + } + + var oldRange = selection.rangeList.rangeAtPoint(pos); + + editor.inVirtualSelectionMode = true; + + if (shift) { + oldRange = null; + range = selection.ranges[0] || range; + editor.removeSelectionMarker(range); + } + editor.once("mouseup", function() { + var tmpSel = selection.toOrientedRange(); + + if (oldRange && tmpSel.isEmpty() && isSamePoint(oldRange.cursor, tmpSel.cursor)) + selection.substractPoint(tmpSel.cursor); + else { + if (shift) { + selection.substractPoint(range.cursor); + } else if (range) { + editor.removeSelectionMarker(range); + selection.addRange(range); + } + selection.addRange(tmpSel); + } + editor.inVirtualSelectionMode = false; + }); + + } else if (selectionMode == "block") { + e.stop(); + editor.inVirtualSelectionMode = true; + var initialRange; + var rectSel = []; + var blockSelect = function() { + var newCursor = editor.renderer.pixelToScreenCoordinates(mouseX, mouseY); + var cursor = session.screenToDocumentPosition(newCursor.row, newCursor.column, newCursor.offsetX); + + if (isSamePoint(screenCursor, newCursor) && isSamePoint(cursor, selection.lead)) + return; + screenCursor = newCursor; + + editor.selection.moveToPosition(cursor); + editor.renderer.scrollCursorIntoView(); + + editor.removeSelectionMarkers(rectSel); + rectSel = selection.rectangularRangeBlock(screenCursor, screenAnchor); + if (editor.$mouseHandler.$clickSelection && rectSel.length == 1 && rectSel[0].isEmpty()) + rectSel[0] = editor.$mouseHandler.$clickSelection.clone(); + rectSel.forEach(editor.addSelectionMarker, editor); + editor.updateSelectionMarkers(); + }; + if (isMultiSelect && !accel) { + selection.toSingleRange(); + } else if (!isMultiSelect && accel) { + initialRange = selection.toOrientedRange(); + editor.addSelectionMarker(initialRange); + } + + if (shift) + screenAnchor = session.documentToScreenPosition(selection.lead); + else + selection.moveToPosition(pos); + + screenCursor = {row: -1, column: -1}; + + var onMouseSelectionEnd = function(e) { + blockSelect(); + clearInterval(timerId); + editor.removeSelectionMarkers(rectSel); + if (!rectSel.length) + rectSel = [selection.toOrientedRange()]; + if (initialRange) { + editor.removeSelectionMarker(initialRange); + selection.toSingleRange(initialRange); + } + for (var i = 0; i < rectSel.length; i++) + selection.addRange(rectSel[i]); + editor.inVirtualSelectionMode = false; + editor.$mouseHandler.$clickSelection = null; + }; + + var onSelectionInterval = blockSelect; + + event.capture(editor.container, onMouseSelection, onMouseSelectionEnd); + var timerId = setInterval(function() {onSelectionInterval();}, 20); + + return e.preventDefault(); + } +} + + +exports.onMouseDown = onMouseDown; + +}); + +define("ace/commands/multi_select_commands",["require","exports","module","ace/keyboard/hash_handler"], function(require, exports, module) { +exports.defaultCommands = [{ + name: "addCursorAbove", + description: "Add cursor above", + exec: function(editor) { editor.selectMoreLines(-1); }, + bindKey: {win: "Ctrl-Alt-Up", mac: "Ctrl-Alt-Up"}, + scrollIntoView: "cursor", + readOnly: true +}, { + name: "addCursorBelow", + description: "Add cursor below", + exec: function(editor) { editor.selectMoreLines(1); }, + bindKey: {win: "Ctrl-Alt-Down", mac: "Ctrl-Alt-Down"}, + scrollIntoView: "cursor", + readOnly: true +}, { + name: "addCursorAboveSkipCurrent", + description: "Add cursor above (skip current)", + exec: function(editor) { editor.selectMoreLines(-1, true); }, + bindKey: {win: "Ctrl-Alt-Shift-Up", mac: "Ctrl-Alt-Shift-Up"}, + scrollIntoView: "cursor", + readOnly: true +}, { + name: "addCursorBelowSkipCurrent", + description: "Add cursor below (skip current)", + exec: function(editor) { editor.selectMoreLines(1, true); }, + bindKey: {win: "Ctrl-Alt-Shift-Down", mac: "Ctrl-Alt-Shift-Down"}, + scrollIntoView: "cursor", + readOnly: true +}, { + name: "selectMoreBefore", + description: "Select more before", + exec: function(editor) { editor.selectMore(-1); }, + bindKey: {win: "Ctrl-Alt-Left", mac: "Ctrl-Alt-Left"}, + scrollIntoView: "cursor", + readOnly: true +}, { + name: "selectMoreAfter", + description: "Select more after", + exec: function(editor) { editor.selectMore(1); }, + bindKey: {win: "Ctrl-Alt-Right", mac: "Ctrl-Alt-Right"}, + scrollIntoView: "cursor", + readOnly: true +}, { + name: "selectNextBefore", + description: "Select next before", + exec: function(editor) { editor.selectMore(-1, true); }, + bindKey: {win: "Ctrl-Alt-Shift-Left", mac: "Ctrl-Alt-Shift-Left"}, + scrollIntoView: "cursor", + readOnly: true +}, { + name: "selectNextAfter", + description: "Select next after", + exec: function(editor) { editor.selectMore(1, true); }, + bindKey: {win: "Ctrl-Alt-Shift-Right", mac: "Ctrl-Alt-Shift-Right"}, + scrollIntoView: "cursor", + readOnly: true +}, { + name: "splitIntoLines", + description: "Split into lines", + exec: function(editor) { editor.multiSelect.splitIntoLines(); }, + bindKey: {win: "Ctrl-Alt-L", mac: "Ctrl-Alt-L"}, + readOnly: true +}, { + name: "alignCursors", + description: "Align cursors", + exec: function(editor) { editor.alignCursors(); }, + bindKey: {win: "Ctrl-Alt-A", mac: "Ctrl-Alt-A"}, + scrollIntoView: "cursor" +}, { + name: "findAll", + description: "Find all", + exec: function(editor) { editor.findAll(); }, + bindKey: {win: "Ctrl-Alt-K", mac: "Ctrl-Alt-G"}, + scrollIntoView: "cursor", + readOnly: true +}]; +exports.multiSelectCommands = [{ + name: "singleSelection", + description: "Single selection", + bindKey: "esc", + exec: function(editor) { editor.exitMultiSelectMode(); }, + scrollIntoView: "cursor", + readOnly: true, + isAvailable: function(editor) {return editor && editor.inMultiSelectMode;} +}]; + +var HashHandler = require("../keyboard/hash_handler").HashHandler; +exports.keyboardHandler = new HashHandler(exports.multiSelectCommands); + +}); + +define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"], function(require, exports, module) { + +var RangeList = require("./range_list").RangeList; +var Range = require("./range").Range; +var Selection = require("./selection").Selection; +var onMouseDown = require("./mouse/multi_select_handler").onMouseDown; +var event = require("./lib/event"); +var lang = require("./lib/lang"); +var commands = require("./commands/multi_select_commands"); +exports.commands = commands.defaultCommands.concat(commands.multiSelectCommands); +var Search = require("./search").Search; +var search = new Search(); + +function find(session, needle, dir) { + search.$options.wrap = true; + search.$options.needle = needle; + search.$options.backwards = dir == -1; + return search.find(session); +} +var EditSession = require("./edit_session").EditSession; +(function() { + this.getSelectionMarkers = function() { + return this.$selectionMarkers; + }; +}).call(EditSession.prototype); +(function() { + this.ranges = null; + this.rangeList = null; + this.addRange = function(range, $blockChangeEvents) { + if (!range) + return; + + if (!this.inMultiSelectMode && this.rangeCount === 0) { + var oldRange = this.toOrientedRange(); + this.rangeList.add(oldRange); + this.rangeList.add(range); + if (this.rangeList.ranges.length != 2) { + this.rangeList.removeAll(); + return $blockChangeEvents || this.fromOrientedRange(range); + } + this.rangeList.removeAll(); + this.rangeList.add(oldRange); + this.$onAddRange(oldRange); + } + + if (!range.cursor) + range.cursor = range.end; + + var removed = this.rangeList.add(range); + + this.$onAddRange(range); + + if (removed.length) + this.$onRemoveRange(removed); + + if (this.rangeCount > 1 && !this.inMultiSelectMode) { + this._signal("multiSelect"); + this.inMultiSelectMode = true; + this.session.$undoSelect = false; + this.rangeList.attach(this.session); + } + + return $blockChangeEvents || this.fromOrientedRange(range); + }; + + this.toSingleRange = function(range) { + range = range || this.ranges[0]; + var removed = this.rangeList.removeAll(); + if (removed.length) + this.$onRemoveRange(removed); + + range && this.fromOrientedRange(range); + }; + this.substractPoint = function(pos) { + var removed = this.rangeList.substractPoint(pos); + if (removed) { + this.$onRemoveRange(removed); + return removed[0]; + } + }; + this.mergeOverlappingRanges = function() { + var removed = this.rangeList.merge(); + if (removed.length) + this.$onRemoveRange(removed); + }; + + this.$onAddRange = function(range) { + this.rangeCount = this.rangeList.ranges.length; + this.ranges.unshift(range); + this._signal("addRange", {range: range}); + }; + + this.$onRemoveRange = function(removed) { + this.rangeCount = this.rangeList.ranges.length; + if (this.rangeCount == 1 && this.inMultiSelectMode) { + var lastRange = this.rangeList.ranges.pop(); + removed.push(lastRange); + this.rangeCount = 0; + } + + for (var i = removed.length; i--; ) { + var index = this.ranges.indexOf(removed[i]); + this.ranges.splice(index, 1); + } + + this._signal("removeRange", {ranges: removed}); + + if (this.rangeCount === 0 && this.inMultiSelectMode) { + this.inMultiSelectMode = false; + this._signal("singleSelect"); + this.session.$undoSelect = true; + this.rangeList.detach(this.session); + } + + lastRange = lastRange || this.ranges[0]; + if (lastRange && !lastRange.isEqual(this.getRange())) + this.fromOrientedRange(lastRange); + }; + this.$initRangeList = function() { + if (this.rangeList) + return; + + this.rangeList = new RangeList(); + this.ranges = []; + this.rangeCount = 0; + }; + this.getAllRanges = function() { + return this.rangeCount ? this.rangeList.ranges.concat() : [this.getRange()]; + }; + + this.splitIntoLines = function () { + if (this.rangeCount > 1) { + var ranges = this.rangeList.ranges; + var lastRange = ranges[ranges.length - 1]; + var range = Range.fromPoints(ranges[0].start, lastRange.end); + + this.toSingleRange(); + this.setSelectionRange(range, lastRange.cursor == lastRange.start); + } else { + var range = this.getRange(); + var isBackwards = this.isBackwards(); + var startRow = range.start.row; + var endRow = range.end.row; + if (startRow == endRow) { + if (isBackwards) + var start = range.end, end = range.start; + else + var start = range.start, end = range.end; + + this.addRange(Range.fromPoints(end, end)); + this.addRange(Range.fromPoints(start, start)); + return; + } + + var rectSel = []; + var r = this.getLineRange(startRow, true); + r.start.column = range.start.column; + rectSel.push(r); + + for (var i = startRow + 1; i < endRow; i++) + rectSel.push(this.getLineRange(i, true)); + + r = this.getLineRange(endRow, true); + r.end.column = range.end.column; + rectSel.push(r); + + rectSel.forEach(this.addRange, this); + } + }; + this.toggleBlockSelection = function () { + if (this.rangeCount > 1) { + var ranges = this.rangeList.ranges; + var lastRange = ranges[ranges.length - 1]; + var range = Range.fromPoints(ranges[0].start, lastRange.end); + + this.toSingleRange(); + this.setSelectionRange(range, lastRange.cursor == lastRange.start); + } else { + var cursor = this.session.documentToScreenPosition(this.cursor); + var anchor = this.session.documentToScreenPosition(this.anchor); + + var rectSel = this.rectangularRangeBlock(cursor, anchor); + rectSel.forEach(this.addRange, this); + } + }; + this.rectangularRangeBlock = function(screenCursor, screenAnchor, includeEmptyLines) { + var rectSel = []; + + var xBackwards = screenCursor.column < screenAnchor.column; + if (xBackwards) { + var startColumn = screenCursor.column; + var endColumn = screenAnchor.column; + var startOffsetX = screenCursor.offsetX; + var endOffsetX = screenAnchor.offsetX; + } else { + var startColumn = screenAnchor.column; + var endColumn = screenCursor.column; + var startOffsetX = screenAnchor.offsetX; + var endOffsetX = screenCursor.offsetX; + } + + var yBackwards = screenCursor.row < screenAnchor.row; + if (yBackwards) { + var startRow = screenCursor.row; + var endRow = screenAnchor.row; + } else { + var startRow = screenAnchor.row; + var endRow = screenCursor.row; + } + + if (startColumn < 0) + startColumn = 0; + if (startRow < 0) + startRow = 0; + + if (startRow == endRow) + includeEmptyLines = true; + + var docEnd; + for (var row = startRow; row <= endRow; row++) { + var range = Range.fromPoints( + this.session.screenToDocumentPosition(row, startColumn, startOffsetX), + this.session.screenToDocumentPosition(row, endColumn, endOffsetX) + ); + if (range.isEmpty()) { + if (docEnd && isSamePoint(range.end, docEnd)) + break; + docEnd = range.end; + } + range.cursor = xBackwards ? range.start : range.end; + rectSel.push(range); + } + + if (yBackwards) + rectSel.reverse(); + + if (!includeEmptyLines) { + var end = rectSel.length - 1; + while (rectSel[end].isEmpty() && end > 0) + end--; + if (end > 0) { + var start = 0; + while (rectSel[start].isEmpty()) + start++; + } + for (var i = end; i >= start; i--) { + if (rectSel[i].isEmpty()) + rectSel.splice(i, 1); + } + } + + return rectSel; + }; +}).call(Selection.prototype); +var Editor = require("./editor").Editor; +(function() { + this.updateSelectionMarkers = function() { + this.renderer.updateCursor(); + this.renderer.updateBackMarkers(); + }; + this.addSelectionMarker = function(orientedRange) { + if (!orientedRange.cursor) + orientedRange.cursor = orientedRange.end; + + var style = this.getSelectionStyle(); + orientedRange.marker = this.session.addMarker(orientedRange, "ace_selection", style); + + this.session.$selectionMarkers.push(orientedRange); + this.session.selectionMarkerCount = this.session.$selectionMarkers.length; + return orientedRange; + }; + this.removeSelectionMarker = function(range) { + if (!range.marker) + return; + this.session.removeMarker(range.marker); + var index = this.session.$selectionMarkers.indexOf(range); + if (index != -1) + this.session.$selectionMarkers.splice(index, 1); + this.session.selectionMarkerCount = this.session.$selectionMarkers.length; + }; + + this.removeSelectionMarkers = function(ranges) { + var markerList = this.session.$selectionMarkers; + for (var i = ranges.length; i--; ) { + var range = ranges[i]; + if (!range.marker) + continue; + this.session.removeMarker(range.marker); + var index = markerList.indexOf(range); + if (index != -1) + markerList.splice(index, 1); + } + this.session.selectionMarkerCount = markerList.length; + }; + + this.$onAddRange = function(e) { + this.addSelectionMarker(e.range); + this.renderer.updateCursor(); + this.renderer.updateBackMarkers(); + }; + + this.$onRemoveRange = function(e) { + this.removeSelectionMarkers(e.ranges); + this.renderer.updateCursor(); + this.renderer.updateBackMarkers(); + }; + + this.$onMultiSelect = function(e) { + if (this.inMultiSelectMode) + return; + this.inMultiSelectMode = true; + + this.setStyle("ace_multiselect"); + this.keyBinding.addKeyboardHandler(commands.keyboardHandler); + this.commands.setDefaultHandler("exec", this.$onMultiSelectExec); + + this.renderer.updateCursor(); + this.renderer.updateBackMarkers(); + }; + + this.$onSingleSelect = function(e) { + if (this.session.multiSelect.inVirtualMode) + return; + this.inMultiSelectMode = false; + + this.unsetStyle("ace_multiselect"); + this.keyBinding.removeKeyboardHandler(commands.keyboardHandler); + + this.commands.removeDefaultHandler("exec", this.$onMultiSelectExec); + this.renderer.updateCursor(); + this.renderer.updateBackMarkers(); + this._emit("changeSelection"); + }; + + this.$onMultiSelectExec = function(e) { + var command = e.command; + var editor = e.editor; + if (!editor.multiSelect) + return; + if (!command.multiSelectAction) { + var result = command.exec(editor, e.args || {}); + editor.multiSelect.addRange(editor.multiSelect.toOrientedRange()); + editor.multiSelect.mergeOverlappingRanges(); + } else if (command.multiSelectAction == "forEach") { + result = editor.forEachSelection(command, e.args); + } else if (command.multiSelectAction == "forEachLine") { + result = editor.forEachSelection(command, e.args, true); + } else if (command.multiSelectAction == "single") { + editor.exitMultiSelectMode(); + result = command.exec(editor, e.args || {}); + } else { + result = command.multiSelectAction(editor, e.args || {}); + } + return result; + }; + this.forEachSelection = function(cmd, args, options) { + if (this.inVirtualSelectionMode) + return; + var keepOrder = options && options.keepOrder; + var $byLines = options == true || options && options.$byLines; + var session = this.session; + var selection = this.selection; + var rangeList = selection.rangeList; + var ranges = (keepOrder ? selection : rangeList).ranges; + var result; + + if (!ranges.length) + return cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {}); + + var reg = selection._eventRegistry; + selection._eventRegistry = {}; + + var tmpSel = new Selection(session); + this.inVirtualSelectionMode = true; + for (var i = ranges.length; i--;) { + if ($byLines) { + while (i > 0 && ranges[i].start.row == ranges[i - 1].end.row) + i--; + } + tmpSel.fromOrientedRange(ranges[i]); + tmpSel.index = i; + this.selection = session.selection = tmpSel; + var cmdResult = cmd.exec ? cmd.exec(this, args || {}) : cmd(this, args || {}); + if (!result && cmdResult !== undefined) + result = cmdResult; + tmpSel.toOrientedRange(ranges[i]); + } + tmpSel.detach(); + + this.selection = session.selection = selection; + this.inVirtualSelectionMode = false; + selection._eventRegistry = reg; + selection.mergeOverlappingRanges(); + if (selection.ranges[0]) + selection.fromOrientedRange(selection.ranges[0]); + + var anim = this.renderer.$scrollAnimation; + this.onCursorChange(); + this.onSelectionChange(); + if (anim && anim.from == anim.to) + this.renderer.animateScrolling(anim.from); + + return result; + }; + this.exitMultiSelectMode = function() { + if (!this.inMultiSelectMode || this.inVirtualSelectionMode) + return; + this.multiSelect.toSingleRange(); + }; + + this.getSelectedText = function() { + var text = ""; + if (this.inMultiSelectMode && !this.inVirtualSelectionMode) { + var ranges = this.multiSelect.rangeList.ranges; + var buf = []; + for (var i = 0; i < ranges.length; i++) { + buf.push(this.session.getTextRange(ranges[i])); + } + var nl = this.session.getDocument().getNewLineCharacter(); + text = buf.join(nl); + if (text.length == (buf.length - 1) * nl.length) + text = ""; + } else if (!this.selection.isEmpty()) { + text = this.session.getTextRange(this.getSelectionRange()); + } + return text; + }; + + this.$checkMultiselectChange = function(e, anchor) { + if (this.inMultiSelectMode && !this.inVirtualSelectionMode) { + var range = this.multiSelect.ranges[0]; + if (this.multiSelect.isEmpty() && anchor == this.multiSelect.anchor) + return; + var pos = anchor == this.multiSelect.anchor + ? range.cursor == range.start ? range.end : range.start + : range.cursor; + if (pos.row != anchor.row + || this.session.$clipPositionToDocument(pos.row, pos.column).column != anchor.column) + this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange()); + else + this.multiSelect.mergeOverlappingRanges(); + } + }; + this.findAll = function(needle, options, additive) { + options = options || {}; + options.needle = needle || options.needle; + if (options.needle == undefined) { + var range = this.selection.isEmpty() + ? this.selection.getWordRange() + : this.selection.getRange(); + options.needle = this.session.getTextRange(range); + } + this.$search.set(options); + + var ranges = this.$search.findAll(this.session); + if (!ranges.length) + return 0; + + var selection = this.multiSelect; + + if (!additive) + selection.toSingleRange(ranges[0]); + + for (var i = ranges.length; i--; ) + selection.addRange(ranges[i], true); + if (range && selection.rangeList.rangeAtPoint(range.start)) + selection.addRange(range, true); + + return ranges.length; + }; + this.selectMoreLines = function(dir, skip) { + var range = this.selection.toOrientedRange(); + var isBackwards = range.cursor == range.end; + + var screenLead = this.session.documentToScreenPosition(range.cursor); + if (this.selection.$desiredColumn) + screenLead.column = this.selection.$desiredColumn; + + var lead = this.session.screenToDocumentPosition(screenLead.row + dir, screenLead.column); + + if (!range.isEmpty()) { + var screenAnchor = this.session.documentToScreenPosition(isBackwards ? range.end : range.start); + var anchor = this.session.screenToDocumentPosition(screenAnchor.row + dir, screenAnchor.column); + } else { + var anchor = lead; + } + + if (isBackwards) { + var newRange = Range.fromPoints(lead, anchor); + newRange.cursor = newRange.start; + } else { + var newRange = Range.fromPoints(anchor, lead); + newRange.cursor = newRange.end; + } + + newRange.desiredColumn = screenLead.column; + if (!this.selection.inMultiSelectMode) { + this.selection.addRange(range); + } else { + if (skip) + var toRemove = range.cursor; + } + + this.selection.addRange(newRange); + if (toRemove) + this.selection.substractPoint(toRemove); + }; + this.transposeSelections = function(dir) { + var session = this.session; + var sel = session.multiSelect; + var all = sel.ranges; + + for (var i = all.length; i--; ) { + var range = all[i]; + if (range.isEmpty()) { + var tmp = session.getWordRange(range.start.row, range.start.column); + range.start.row = tmp.start.row; + range.start.column = tmp.start.column; + range.end.row = tmp.end.row; + range.end.column = tmp.end.column; + } + } + sel.mergeOverlappingRanges(); + + var words = []; + for (var i = all.length; i--; ) { + var range = all[i]; + words.unshift(session.getTextRange(range)); + } + + if (dir < 0) + words.unshift(words.pop()); + else + words.push(words.shift()); + + for (var i = all.length; i--; ) { + var range = all[i]; + var tmp = range.clone(); + session.replace(range, words[i]); + range.start.row = tmp.start.row; + range.start.column = tmp.start.column; + } + sel.fromOrientedRange(sel.ranges[0]); + }; + this.selectMore = function(dir, skip, stopAtFirst) { + var session = this.session; + var sel = session.multiSelect; + + var range = sel.toOrientedRange(); + if (range.isEmpty()) { + range = session.getWordRange(range.start.row, range.start.column); + range.cursor = dir == -1 ? range.start : range.end; + this.multiSelect.addRange(range); + if (stopAtFirst) + return; + } + var needle = session.getTextRange(range); + + var newRange = find(session, needle, dir); + if (newRange) { + newRange.cursor = dir == -1 ? newRange.start : newRange.end; + this.session.unfold(newRange); + this.multiSelect.addRange(newRange); + this.renderer.scrollCursorIntoView(null, 0.5); + } + if (skip) + this.multiSelect.substractPoint(range.cursor); + }; + this.alignCursors = function() { + var session = this.session; + var sel = session.multiSelect; + var ranges = sel.ranges; + var row = -1; + var sameRowRanges = ranges.filter(function(r) { + if (r.cursor.row == row) + return true; + row = r.cursor.row; + }); + + if (!ranges.length || sameRowRanges.length == ranges.length - 1) { + var range = this.selection.getRange(); + var fr = range.start.row, lr = range.end.row; + var guessRange = fr == lr; + if (guessRange) { + var max = this.session.getLength(); + var line; + do { + line = this.session.getLine(lr); + } while (/[=:]/.test(line) && ++lr < max); + do { + line = this.session.getLine(fr); + } while (/[=:]/.test(line) && --fr > 0); + + if (fr < 0) fr = 0; + if (lr >= max) lr = max - 1; + } + var lines = this.session.removeFullLines(fr, lr); + lines = this.$reAlignText(lines, guessRange); + this.session.insert({row: fr, column: 0}, lines.join("\n") + "\n"); + if (!guessRange) { + range.start.column = 0; + range.end.column = lines[lines.length - 1].length; + } + this.selection.setRange(range); + } else { + sameRowRanges.forEach(function(r) { + sel.substractPoint(r.cursor); + }); + + var maxCol = 0; + var minSpace = Infinity; + var spaceOffsets = ranges.map(function(r) { + var p = r.cursor; + var line = session.getLine(p.row); + var spaceOffset = line.substr(p.column).search(/\S/g); + if (spaceOffset == -1) + spaceOffset = 0; + + if (p.column > maxCol) + maxCol = p.column; + if (spaceOffset < minSpace) + minSpace = spaceOffset; + return spaceOffset; + }); + ranges.forEach(function(r, i) { + var p = r.cursor; + var l = maxCol - p.column; + var d = spaceOffsets[i] - minSpace; + if (l > d) + session.insert(p, lang.stringRepeat(" ", l - d)); + else + session.remove(new Range(p.row, p.column, p.row, p.column - l + d)); + + r.start.column = r.end.column = maxCol; + r.start.row = r.end.row = p.row; + r.cursor = r.end; + }); + sel.fromOrientedRange(ranges[0]); + this.renderer.updateCursor(); + this.renderer.updateBackMarkers(); + } + }; + + this.$reAlignText = function(lines, forceLeft) { + var isLeftAligned = true, isRightAligned = true; + var startW, textW, endW; + + return lines.map(function(line) { + var m = line.match(/(\s*)(.*?)(\s*)([=:].*)/); + if (!m) + return [line]; + + if (startW == null) { + startW = m[1].length; + textW = m[2].length; + endW = m[3].length; + return m; + } + + if (startW + textW + endW != m[1].length + m[2].length + m[3].length) + isRightAligned = false; + if (startW != m[1].length) + isLeftAligned = false; + + if (startW > m[1].length) + startW = m[1].length; + if (textW < m[2].length) + textW = m[2].length; + if (endW > m[3].length) + endW = m[3].length; + + return m; + }).map(forceLeft ? alignLeft : + isLeftAligned ? isRightAligned ? alignRight : alignLeft : unAlign); + + function spaces(n) { + return lang.stringRepeat(" ", n); + } + + function alignLeft(m) { + return !m[2] ? m[0] : spaces(startW) + m[2] + + spaces(textW - m[2].length + endW) + + m[4].replace(/^([=:])\s+/, "$1 "); + } + function alignRight(m) { + return !m[2] ? m[0] : spaces(startW + textW - m[2].length) + m[2] + + spaces(endW) + + m[4].replace(/^([=:])\s+/, "$1 "); + } + function unAlign(m) { + return !m[2] ? m[0] : spaces(startW) + m[2] + + spaces(endW) + + m[4].replace(/^([=:])\s+/, "$1 "); + } + }; +}).call(Editor.prototype); + + +function isSamePoint(p1, p2) { + return p1.row == p2.row && p1.column == p2.column; +} +exports.onSessionChange = function(e) { + var session = e.session; + if (session && !session.multiSelect) { + session.$selectionMarkers = []; + session.selection.$initRangeList(); + session.multiSelect = session.selection; + } + this.multiSelect = session && session.multiSelect; + + var oldSession = e.oldSession; + if (oldSession) { + oldSession.multiSelect.off("addRange", this.$onAddRange); + oldSession.multiSelect.off("removeRange", this.$onRemoveRange); + oldSession.multiSelect.off("multiSelect", this.$onMultiSelect); + oldSession.multiSelect.off("singleSelect", this.$onSingleSelect); + oldSession.multiSelect.lead.off("change", this.$checkMultiselectChange); + oldSession.multiSelect.anchor.off("change", this.$checkMultiselectChange); + } + + if (session) { + session.multiSelect.on("addRange", this.$onAddRange); + session.multiSelect.on("removeRange", this.$onRemoveRange); + session.multiSelect.on("multiSelect", this.$onMultiSelect); + session.multiSelect.on("singleSelect", this.$onSingleSelect); + session.multiSelect.lead.on("change", this.$checkMultiselectChange); + session.multiSelect.anchor.on("change", this.$checkMultiselectChange); + } + + if (session && this.inMultiSelectMode != session.selection.inMultiSelectMode) { + if (session.selection.inMultiSelectMode) + this.$onMultiSelect(); + else + this.$onSingleSelect(); + } +}; +function MultiSelect(editor) { + if (editor.$multiselectOnSessionChange) + return; + editor.$onAddRange = editor.$onAddRange.bind(editor); + editor.$onRemoveRange = editor.$onRemoveRange.bind(editor); + editor.$onMultiSelect = editor.$onMultiSelect.bind(editor); + editor.$onSingleSelect = editor.$onSingleSelect.bind(editor); + editor.$multiselectOnSessionChange = exports.onSessionChange.bind(editor); + editor.$checkMultiselectChange = editor.$checkMultiselectChange.bind(editor); + + editor.$multiselectOnSessionChange(editor); + editor.on("changeSession", editor.$multiselectOnSessionChange); + + editor.on("mousedown", onMouseDown); + editor.commands.addCommands(commands.defaultCommands); + + addAltCursorListeners(editor); +} + +function addAltCursorListeners(editor){ + var el = editor.textInput.getElement(); + var altCursor = false; + event.addListener(el, "keydown", function(e) { + var altDown = e.keyCode == 18 && !(e.ctrlKey || e.shiftKey || e.metaKey); + if (editor.$blockSelectEnabled && altDown) { + if (!altCursor) { + editor.renderer.setMouseCursor("crosshair"); + altCursor = true; + } + } else if (altCursor) { + reset(); + } + }); + + event.addListener(el, "keyup", reset); + event.addListener(el, "blur", reset); + function reset(e) { + if (altCursor) { + editor.renderer.setMouseCursor(""); + altCursor = false; + } + } +} + +exports.MultiSelect = MultiSelect; + + +require("./config").defineOptions(Editor.prototype, "editor", { + enableMultiselect: { + set: function(val) { + MultiSelect(this); + if (val) { + this.on("changeSession", this.$multiselectOnSessionChange); + this.on("mousedown", onMouseDown); + } else { + this.off("changeSession", this.$multiselectOnSessionChange); + this.off("mousedown", onMouseDown); + } + }, + value: true + }, + enableBlockSelect: { + set: function(val) { + this.$blockSelectEnabled = val; + }, + value: true + } +}); + + + +}); + +define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../../range").Range; + +var FoldMode = exports.FoldMode = function() {}; + +(function() { + + this.foldingStartMarker = null; + this.foldingStopMarker = null; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + if (this.foldingStartMarker.test(line)) + return "start"; + if (foldStyle == "markbeginend" + && this.foldingStopMarker + && this.foldingStopMarker.test(line)) + return "end"; + return ""; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row) { + return null; + }; + + this.indentationBlock = function(session, row, column) { + var re = /\S/; + var line = session.getLine(row); + var startLevel = line.search(re); + if (startLevel == -1) + return; + + var startColumn = column || line.length; + var maxRow = session.getLength(); + var startRow = row; + var endRow = row; + + while (++row < maxRow) { + var level = session.getLine(row).search(re); + + if (level == -1) + continue; + + if (level <= startLevel) + break; + + endRow = row; + } + + if (endRow > startRow) { + var endColumn = session.getLine(endRow).length; + return new Range(startRow, startColumn, endRow, endColumn); + } + }; + + this.openingBracketBlock = function(session, bracket, row, column, typeRe) { + var start = {row: row, column: column + 1}; + var end = session.$findClosingBracket(bracket, start, typeRe); + if (!end) + return; + + var fw = session.foldWidgets[end.row]; + if (fw == null) + fw = session.getFoldWidget(end.row); + + if (fw == "start" && end.row > start.row) { + end.row --; + end.column = session.getLine(end.row).length; + } + return Range.fromPoints(start, end); + }; + + this.closingBracketBlock = function(session, bracket, row, column, typeRe) { + var end = {row: row, column: column}; + var start = session.$findOpeningBracket(bracket, end); + + if (!start) + return; + + start.column++; + end.column--; + + return Range.fromPoints(start, end); + }; +}).call(FoldMode.prototype); + +}); + +define("ace/theme/textmate",["require","exports","module","ace/lib/dom"], function(require, exports, module) { +"use strict"; + +exports.isDark = false; +exports.cssClass = "ace-tm"; +exports.cssText = ".ace-tm .ace_gutter {\ +background: #f0f0f0;\ +color: #333;\ +}\ +.ace-tm .ace_print-margin {\ +width: 1px;\ +background: #e8e8e8;\ +}\ +.ace-tm .ace_fold {\ +background-color: #6B72E6;\ +}\ +.ace-tm {\ +background-color: #FFFFFF;\ +color: black;\ +}\ +.ace-tm .ace_cursor {\ +color: black;\ +}\ +.ace-tm .ace_invisible {\ +color: rgb(191, 191, 191);\ +}\ +.ace-tm .ace_storage,\ +.ace-tm .ace_keyword {\ +color: blue;\ +}\ +.ace-tm .ace_constant {\ +color: rgb(197, 6, 11);\ +}\ +.ace-tm .ace_constant.ace_buildin {\ +color: rgb(88, 72, 246);\ +}\ +.ace-tm .ace_constant.ace_language {\ +color: rgb(88, 92, 246);\ +}\ +.ace-tm .ace_constant.ace_library {\ +color: rgb(6, 150, 14);\ +}\ +.ace-tm .ace_invalid {\ +background-color: rgba(255, 0, 0, 0.1);\ +color: red;\ +}\ +.ace-tm .ace_support.ace_function {\ +color: rgb(60, 76, 114);\ +}\ +.ace-tm .ace_support.ace_constant {\ +color: rgb(6, 150, 14);\ +}\ +.ace-tm .ace_support.ace_type,\ +.ace-tm .ace_support.ace_class {\ +color: rgb(109, 121, 222);\ +}\ +.ace-tm .ace_keyword.ace_operator {\ +color: rgb(104, 118, 135);\ +}\ +.ace-tm .ace_string {\ +color: rgb(3, 106, 7);\ +}\ +.ace-tm .ace_comment {\ +color: rgb(76, 136, 107);\ +}\ +.ace-tm .ace_comment.ace_doc {\ +color: rgb(0, 102, 255);\ +}\ +.ace-tm .ace_comment.ace_doc.ace_tag {\ +color: rgb(128, 159, 191);\ +}\ +.ace-tm .ace_constant.ace_numeric {\ +color: rgb(0, 0, 205);\ +}\ +.ace-tm .ace_variable {\ +color: rgb(49, 132, 149);\ +}\ +.ace-tm .ace_xml-pe {\ +color: rgb(104, 104, 91);\ +}\ +.ace-tm .ace_entity.ace_name.ace_function {\ +color: #0000A2;\ +}\ +.ace-tm .ace_heading {\ +color: rgb(12, 7, 255);\ +}\ +.ace-tm .ace_list {\ +color:rgb(185, 6, 144);\ +}\ +.ace-tm .ace_meta.ace_tag {\ +color:rgb(0, 22, 142);\ +}\ +.ace-tm .ace_string.ace_regex {\ +color: rgb(255, 0, 0)\ +}\ +.ace-tm .ace_marker-layer .ace_selection {\ +background: rgb(181, 213, 255);\ +}\ +.ace-tm.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px white;\ +}\ +.ace-tm .ace_marker-layer .ace_step {\ +background: rgb(252, 255, 0);\ +}\ +.ace-tm .ace_marker-layer .ace_stack {\ +background: rgb(164, 229, 101);\ +}\ +.ace-tm .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgb(192, 192, 192);\ +}\ +.ace-tm .ace_marker-layer .ace_active-line {\ +background: rgba(0, 0, 0, 0.07);\ +}\ +.ace-tm .ace_gutter-active-line {\ +background-color : #dcdcdc;\ +}\ +.ace-tm .ace_marker-layer .ace_selected-word {\ +background: rgb(250, 250, 255);\ +border: 1px solid rgb(200, 200, 250);\ +}\ +.ace-tm .ace_indent-guide {\ +background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;\ +}\ +"; +exports.$id = "ace/theme/textmate"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); + +define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"], function(require, exports, module) { +"use strict"; + +var oop = require("./lib/oop"); +var dom = require("./lib/dom"); +var Range = require("./range").Range; + + +function LineWidgets(session) { + this.session = session; + this.session.widgetManager = this; + this.session.getRowLength = this.getRowLength; + this.session.$getWidgetScreenLength = this.$getWidgetScreenLength; + this.updateOnChange = this.updateOnChange.bind(this); + this.renderWidgets = this.renderWidgets.bind(this); + this.measureWidgets = this.measureWidgets.bind(this); + this.session._changedWidgets = []; + this.$onChangeEditor = this.$onChangeEditor.bind(this); + + this.session.on("change", this.updateOnChange); + this.session.on("changeFold", this.updateOnFold); + this.session.on("changeEditor", this.$onChangeEditor); +} + +(function() { + this.getRowLength = function(row) { + var h; + if (this.lineWidgets) + h = this.lineWidgets[row] && this.lineWidgets[row].rowCount || 0; + else + h = 0; + if (!this.$useWrapMode || !this.$wrapData[row]) { + return 1 + h; + } else { + return this.$wrapData[row].length + 1 + h; + } + }; + + this.$getWidgetScreenLength = function() { + var screenRows = 0; + this.lineWidgets.forEach(function(w){ + if (w && w.rowCount && !w.hidden) + screenRows += w.rowCount; + }); + return screenRows; + }; + + this.$onChangeEditor = function(e) { + this.attach(e.editor); + }; + + this.attach = function(editor) { + if (editor && editor.widgetManager && editor.widgetManager != this) + editor.widgetManager.detach(); + + if (this.editor == editor) + return; + + this.detach(); + this.editor = editor; + + if (editor) { + editor.widgetManager = this; + editor.renderer.on("beforeRender", this.measureWidgets); + editor.renderer.on("afterRender", this.renderWidgets); + } + }; + this.detach = function(e) { + var editor = this.editor; + if (!editor) + return; + + this.editor = null; + editor.widgetManager = null; + + editor.renderer.off("beforeRender", this.measureWidgets); + editor.renderer.off("afterRender", this.renderWidgets); + var lineWidgets = this.session.lineWidgets; + lineWidgets && lineWidgets.forEach(function(w) { + if (w && w.el && w.el.parentNode) { + w._inDocument = false; + w.el.parentNode.removeChild(w.el); + } + }); + }; + + this.updateOnFold = function(e, session) { + var lineWidgets = session.lineWidgets; + if (!lineWidgets || !e.action) + return; + var fold = e.data; + var start = fold.start.row; + var end = fold.end.row; + var hide = e.action == "add"; + for (var i = start + 1; i < end; i++) { + if (lineWidgets[i]) + lineWidgets[i].hidden = hide; + } + if (lineWidgets[end]) { + if (hide) { + if (!lineWidgets[start]) + lineWidgets[start] = lineWidgets[end]; + else + lineWidgets[end].hidden = hide; + } else { + if (lineWidgets[start] == lineWidgets[end]) + lineWidgets[start] = undefined; + lineWidgets[end].hidden = hide; + } + } + }; + + this.updateOnChange = function(delta) { + var lineWidgets = this.session.lineWidgets; + if (!lineWidgets) return; + + var startRow = delta.start.row; + var len = delta.end.row - startRow; + + if (len === 0) { + } else if (delta.action == 'remove') { + var removed = lineWidgets.splice(startRow + 1, len); + removed.forEach(function(w) { + w && this.removeLineWidget(w); + }, this); + this.$updateRows(); + } else { + var args = new Array(len); + args.unshift(startRow, 0); + lineWidgets.splice.apply(lineWidgets, args); + this.$updateRows(); + } + }; + + this.$updateRows = function() { + var lineWidgets = this.session.lineWidgets; + if (!lineWidgets) return; + var noWidgets = true; + lineWidgets.forEach(function(w, i) { + if (w) { + noWidgets = false; + w.row = i; + while (w.$oldWidget) { + w.$oldWidget.row = i; + w = w.$oldWidget; + } + } + }); + if (noWidgets) + this.session.lineWidgets = null; + }; + + this.addLineWidget = function(w) { + if (!this.session.lineWidgets) + this.session.lineWidgets = new Array(this.session.getLength()); + + var old = this.session.lineWidgets[w.row]; + if (old) { + w.$oldWidget = old; + if (old.el && old.el.parentNode) { + old.el.parentNode.removeChild(old.el); + old._inDocument = false; + } + } + + this.session.lineWidgets[w.row] = w; + + w.session = this.session; + + var renderer = this.editor.renderer; + if (w.html && !w.el) { + w.el = dom.createElement("div"); + w.el.innerHTML = w.html; + } + if (w.el) { + dom.addCssClass(w.el, "ace_lineWidgetContainer"); + w.el.style.position = "absolute"; + w.el.style.zIndex = 5; + renderer.container.appendChild(w.el); + w._inDocument = true; + } + + if (!w.coverGutter) { + w.el.style.zIndex = 3; + } + if (w.pixelHeight == null) { + w.pixelHeight = w.el.offsetHeight; + } + if (w.rowCount == null) { + w.rowCount = w.pixelHeight / renderer.layerConfig.lineHeight; + } + + var fold = this.session.getFoldAt(w.row, 0); + w.$fold = fold; + if (fold) { + var lineWidgets = this.session.lineWidgets; + if (w.row == fold.end.row && !lineWidgets[fold.start.row]) + lineWidgets[fold.start.row] = w; + else + w.hidden = true; + } + + this.session._emit("changeFold", {data:{start:{row: w.row}}}); + + this.$updateRows(); + this.renderWidgets(null, renderer); + this.onWidgetChanged(w); + return w; + }; + + this.removeLineWidget = function(w) { + w._inDocument = false; + w.session = null; + if (w.el && w.el.parentNode) + w.el.parentNode.removeChild(w.el); + if (w.editor && w.editor.destroy) try { + w.editor.destroy(); + } catch(e){} + if (this.session.lineWidgets) { + var w1 = this.session.lineWidgets[w.row]; + if (w1 == w) { + this.session.lineWidgets[w.row] = w.$oldWidget; + if (w.$oldWidget) + this.onWidgetChanged(w.$oldWidget); + } else { + while (w1) { + if (w1.$oldWidget == w) { + w1.$oldWidget = w.$oldWidget; + break; + } + w1 = w1.$oldWidget; + } + } + } + this.session._emit("changeFold", {data:{start:{row: w.row}}}); + this.$updateRows(); + }; + + this.getWidgetsAtRow = function(row) { + var lineWidgets = this.session.lineWidgets; + var w = lineWidgets && lineWidgets[row]; + var list = []; + while (w) { + list.push(w); + w = w.$oldWidget; + } + return list; + }; + + this.onWidgetChanged = function(w) { + this.session._changedWidgets.push(w); + this.editor && this.editor.renderer.updateFull(); + }; + + this.measureWidgets = function(e, renderer) { + var changedWidgets = this.session._changedWidgets; + var config = renderer.layerConfig; + + if (!changedWidgets || !changedWidgets.length) return; + var min = Infinity; + for (var i = 0; i < changedWidgets.length; i++) { + var w = changedWidgets[i]; + if (!w || !w.el) continue; + if (w.session != this.session) continue; + if (!w._inDocument) { + if (this.session.lineWidgets[w.row] != w) + continue; + w._inDocument = true; + renderer.container.appendChild(w.el); + } + + w.h = w.el.offsetHeight; + + if (!w.fixedWidth) { + w.w = w.el.offsetWidth; + w.screenWidth = Math.ceil(w.w / config.characterWidth); + } + + var rowCount = w.h / config.lineHeight; + if (w.coverLine) { + rowCount -= this.session.getRowLineCount(w.row); + if (rowCount < 0) + rowCount = 0; + } + if (w.rowCount != rowCount) { + w.rowCount = rowCount; + if (w.row < min) + min = w.row; + } + } + if (min != Infinity) { + this.session._emit("changeFold", {data:{start:{row: min}}}); + this.session.lineWidgetWidth = null; + } + this.session._changedWidgets = []; + }; + + this.renderWidgets = function(e, renderer) { + var config = renderer.layerConfig; + var lineWidgets = this.session.lineWidgets; + if (!lineWidgets) + return; + var first = Math.min(this.firstRow, config.firstRow); + var last = Math.max(this.lastRow, config.lastRow, lineWidgets.length); + + while (first > 0 && !lineWidgets[first]) + first--; + + this.firstRow = config.firstRow; + this.lastRow = config.lastRow; + + renderer.$cursorLayer.config = config; + for (var i = first; i <= last; i++) { + var w = lineWidgets[i]; + if (!w || !w.el) continue; + if (w.hidden) { + w.el.style.top = -100 - (w.pixelHeight || 0) + "px"; + continue; + } + if (!w._inDocument) { + w._inDocument = true; + renderer.container.appendChild(w.el); + } + var top = renderer.$cursorLayer.getPixelPosition({row: i, column:0}, true).top; + if (!w.coverLine) + top += config.lineHeight * this.session.getRowLineCount(w.row); + w.el.style.top = top - config.offset + "px"; + + var left = w.coverGutter ? 0 : renderer.gutterWidth; + if (!w.fixedWidth) + left -= renderer.scrollLeft; + w.el.style.left = left + "px"; + + if (w.fullWidth && w.screenWidth) { + w.el.style.minWidth = config.width + 2 * config.padding + "px"; + } + + if (w.fixedWidth) { + w.el.style.right = renderer.scrollBar.getWidth() + "px"; + } else { + w.el.style.right = ""; + } + } + }; + +}).call(LineWidgets.prototype); + + +exports.LineWidgets = LineWidgets; + +}); + +define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"], function(require, exports, module) { +"use strict"; +var LineWidgets = require("../line_widgets").LineWidgets; +var dom = require("../lib/dom"); +var Range = require("../range").Range; + +function binarySearch(array, needle, comparator) { + var first = 0; + var last = array.length - 1; + + while (first <= last) { + var mid = (first + last) >> 1; + var c = comparator(needle, array[mid]); + if (c > 0) + first = mid + 1; + else if (c < 0) + last = mid - 1; + else + return mid; + } + return -(first + 1); +} + +function findAnnotations(session, row, dir) { + var annotations = session.getAnnotations().sort(Range.comparePoints); + if (!annotations.length) + return; + + var i = binarySearch(annotations, {row: row, column: -1}, Range.comparePoints); + if (i < 0) + i = -i - 1; + + if (i >= annotations.length) + i = dir > 0 ? 0 : annotations.length - 1; + else if (i === 0 && dir < 0) + i = annotations.length - 1; + + var annotation = annotations[i]; + if (!annotation || !dir) + return; + + if (annotation.row === row) { + do { + annotation = annotations[i += dir]; + } while (annotation && annotation.row === row); + if (!annotation) + return annotations.slice(); + } + + + var matched = []; + row = annotation.row; + do { + matched[dir < 0 ? "unshift" : "push"](annotation); + annotation = annotations[i += dir]; + } while (annotation && annotation.row == row); + return matched.length && matched; +} + +exports.showErrorMarker = function(editor, dir) { + var session = editor.session; + if (!session.widgetManager) { + session.widgetManager = new LineWidgets(session); + session.widgetManager.attach(editor); + } + + var pos = editor.getCursorPosition(); + var row = pos.row; + var oldWidget = session.widgetManager.getWidgetsAtRow(row).filter(function(w) { + return w.type == "errorMarker"; + })[0]; + if (oldWidget) { + oldWidget.destroy(); + } else { + row -= dir; + } + var annotations = findAnnotations(session, row, dir); + var gutterAnno; + if (annotations) { + var annotation = annotations[0]; + pos.column = (annotation.pos && typeof annotation.column != "number" + ? annotation.pos.sc + : annotation.column) || 0; + pos.row = annotation.row; + gutterAnno = editor.renderer.$gutterLayer.$annotations[pos.row]; + } else if (oldWidget) { + return; + } else { + gutterAnno = { + text: ["Looks good!"], + className: "ace_ok" + }; + } + editor.session.unfold(pos.row); + editor.selection.moveToPosition(pos); + + var w = { + row: pos.row, + fixedWidth: true, + coverGutter: true, + el: dom.createElement("div"), + type: "errorMarker" + }; + var el = w.el.appendChild(dom.createElement("div")); + var arrow = w.el.appendChild(dom.createElement("div")); + arrow.className = "error_widget_arrow " + gutterAnno.className; + + var left = editor.renderer.$cursorLayer + .getPixelPosition(pos).left; + arrow.style.left = left + editor.renderer.gutterWidth - 5 + "px"; + + w.el.className = "error_widget_wrapper"; + el.className = "error_widget " + gutterAnno.className; + el.innerHTML = gutterAnno.text.join("
"); + + el.appendChild(dom.createElement("div")); + + var kb = function(_, hashId, keyString) { + if (hashId === 0 && (keyString === "esc" || keyString === "return")) { + w.destroy(); + return {command: "null"}; + } + }; + + w.destroy = function() { + if (editor.$mouseHandler.isMousePressed) + return; + editor.keyBinding.removeKeyboardHandler(kb); + session.widgetManager.removeLineWidget(w); + editor.off("changeSelection", w.destroy); + editor.off("changeSession", w.destroy); + editor.off("mouseup", w.destroy); + editor.off("change", w.destroy); + }; + + editor.keyBinding.addKeyboardHandler(kb); + editor.on("changeSelection", w.destroy); + editor.on("changeSession", w.destroy); + editor.on("mouseup", w.destroy); + editor.on("change", w.destroy); + + editor.session.widgetManager.addLineWidget(w); + + w.el.onmousedown = editor.focus.bind(editor); + + editor.renderer.scrollCursorIntoView(null, 0.5, {bottom: w.el.offsetHeight}); +}; + + +dom.importCssString("\ + .error_widget_wrapper {\ + background: inherit;\ + color: inherit;\ + border:none\ + }\ + .error_widget {\ + border-top: solid 2px;\ + border-bottom: solid 2px;\ + margin: 5px 0;\ + padding: 10px 40px;\ + white-space: pre-wrap;\ + }\ + .error_widget.ace_error, .error_widget_arrow.ace_error{\ + border-color: #ff5a5a\ + }\ + .error_widget.ace_warning, .error_widget_arrow.ace_warning{\ + border-color: #F1D817\ + }\ + .error_widget.ace_info, .error_widget_arrow.ace_info{\ + border-color: #5a5a5a\ + }\ + .error_widget.ace_ok, .error_widget_arrow.ace_ok{\ + border-color: #5aaa5a\ + }\ + .error_widget_arrow {\ + position: absolute;\ + border: solid 5px;\ + border-top-color: transparent!important;\ + border-right-color: transparent!important;\ + border-left-color: transparent!important;\ + top: -5px;\ + }\ +", ""); + +}); + +define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/range","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"], function(require, exports, module) { +"use strict"; + +require("./lib/fixoldbrowsers"); + +var dom = require("./lib/dom"); +var event = require("./lib/event"); + +var Range = require("./range").Range; +var Editor = require("./editor").Editor; +var EditSession = require("./edit_session").EditSession; +var UndoManager = require("./undomanager").UndoManager; +var Renderer = require("./virtual_renderer").VirtualRenderer; +require("./worker/worker_client"); +require("./keyboard/hash_handler"); +require("./placeholder"); +require("./multi_select"); +require("./mode/folding/fold_mode"); +require("./theme/textmate"); +require("./ext/error_marker"); + +exports.config = require("./config"); +exports.require = require; + +if (typeof define === "function") + exports.define = define; +exports.edit = function(el, options) { + if (typeof el == "string") { + var _id = el; + el = document.getElementById(_id); + if (!el) + throw new Error("ace.edit can't find div #" + _id); + } + + if (el && el.env && el.env.editor instanceof Editor) + return el.env.editor; + + var value = ""; + if (el && /input|textarea/i.test(el.tagName)) { + var oldNode = el; + value = oldNode.value; + el = dom.createElement("pre"); + oldNode.parentNode.replaceChild(el, oldNode); + } else if (el) { + value = el.textContent; + el.innerHTML = ""; + } + + var doc = exports.createEditSession(value); + + var editor = new Editor(new Renderer(el), doc, options); + + var env = { + document: doc, + editor: editor, + onResize: editor.resize.bind(editor, null) + }; + if (oldNode) env.textarea = oldNode; + event.addListener(window, "resize", env.onResize); + editor.on("destroy", function() { + event.removeListener(window, "resize", env.onResize); + env.editor.container.env = null; // prevent memory leak on old ie + }); + editor.container.env = editor.env = env; + return editor; +}; +exports.createEditSession = function(text, mode) { + var doc = new EditSession(text, mode); + doc.setUndoManager(new UndoManager()); + return doc; +}; +exports.Range = Range; +exports.Editor = Editor; +exports.EditSession = EditSession; +exports.UndoManager = UndoManager; +exports.VirtualRenderer = Renderer; +exports.version = "1.4.4"; +}); + (function() { + window.require(["ace/ace"], function(a) { + if (a) { + a.config.init(true); + a.define = window.define; + } + if (!window.ace) + window.ace = a; + for (var key in a) if (a.hasOwnProperty(key)) + window.ace[key] = a[key]; + window.ace["default"] = window.ace; + if (typeof module == "object" && typeof exports == "object" && module) { + module.exports = window.ace; + } + }); + })(); + \ No newline at end of file diff --git a/client/public/lib/ace-1.4.4/src/ext-language_tools.js b/client/public/lib/ace-1.4.4/src/ext-language_tools.js new file mode 100644 index 0000000000000000000000000000000000000000..885073e2568872c43bb8df5b43ac2c5ee27b35f9 --- /dev/null +++ b/client/public/lib/ace-1.4.4/src/ext-language_tools.js @@ -0,0 +1,2004 @@ +define("ace/snippets",["require","exports","module","ace/lib/oop","ace/lib/event_emitter","ace/lib/lang","ace/range","ace/anchor","ace/keyboard/hash_handler","ace/tokenizer","ace/lib/dom","ace/editor"], function(require, exports, module) { +"use strict"; +var oop = require("./lib/oop"); +var EventEmitter = require("./lib/event_emitter").EventEmitter; +var lang = require("./lib/lang"); +var Range = require("./range").Range; +var Anchor = require("./anchor").Anchor; +var HashHandler = require("./keyboard/hash_handler").HashHandler; +var Tokenizer = require("./tokenizer").Tokenizer; +var comparePoints = Range.comparePoints; + +var SnippetManager = function() { + this.snippetMap = {}; + this.snippetNameMap = {}; +}; + +(function() { + oop.implement(this, EventEmitter); + + this.getTokenizer = function() { + function TabstopToken(str, _, stack) { + str = str.substr(1); + if (/^\d+$/.test(str) && !stack.inFormatString) + return [{tabstopId: parseInt(str, 10)}]; + return [{text: str}]; + } + function escape(ch) { + return "(?:[^\\\\" + ch + "]|\\\\.)"; + } + SnippetManager.$tokenizer = new Tokenizer({ + start: [ + {regex: /:/, onMatch: function(val, state, stack) { + if (stack.length && stack[0].expectIf) { + stack[0].expectIf = false; + stack[0].elseBranch = stack[0]; + return [stack[0]]; + } + return ":"; + }}, + {regex: /\\./, onMatch: function(val, state, stack) { + var ch = val[1]; + if (ch == "}" && stack.length) { + val = ch; + }else if ("`$\\".indexOf(ch) != -1) { + val = ch; + } else if (stack.inFormatString) { + if (ch == "n") + val = "\n"; + else if (ch == "t") + val = "\n"; + else if ("ulULE".indexOf(ch) != -1) { + val = {changeCase: ch, local: ch > "a"}; + } + } + + return [val]; + }}, + {regex: /}/, onMatch: function(val, state, stack) { + return [stack.length ? stack.shift() : val]; + }}, + {regex: /\$(?:\d+|\w+)/, onMatch: TabstopToken}, + {regex: /\$\{[\dA-Z_a-z]+/, onMatch: function(str, state, stack) { + var t = TabstopToken(str.substr(1), state, stack); + stack.unshift(t[0]); + return t; + }, next: "snippetVar"}, + {regex: /\n/, token: "newline", merge: false} + ], + snippetVar: [ + {regex: "\\|" + escape("\\|") + "*\\|", onMatch: function(val, state, stack) { + stack[0].choices = val.slice(1, -1).split(","); + }, next: "start"}, + {regex: "/(" + escape("/") + "+)/(?:(" + escape("/") + "*)/)(\\w*):?", + onMatch: function(val, state, stack) { + var ts = stack[0]; + ts.fmtString = val; + + val = this.splitRegex.exec(val); + ts.guard = val[1]; + ts.fmt = val[2]; + ts.flag = val[3]; + return ""; + }, next: "start"}, + {regex: "`" + escape("`") + "*`", onMatch: function(val, state, stack) { + stack[0].code = val.splice(1, -1); + return ""; + }, next: "start"}, + {regex: "\\?", onMatch: function(val, state, stack) { + if (stack[0]) + stack[0].expectIf = true; + }, next: "start"}, + {regex: "([^:}\\\\]|\\\\.)*:?", token: "", next: "start"} + ], + formatString: [ + {regex: "/(" + escape("/") + "+)/", token: "regex"}, + {regex: "", onMatch: function(val, state, stack) { + stack.inFormatString = true; + }, next: "start"} + ] + }); + SnippetManager.prototype.getTokenizer = function() { + return SnippetManager.$tokenizer; + }; + return SnippetManager.$tokenizer; + }; + + this.tokenizeTmSnippet = function(str, startState) { + return this.getTokenizer().getLineTokens(str, startState).tokens.map(function(x) { + return x.value || x; + }); + }; + + this.$getDefaultValue = function(editor, name) { + if (/^[A-Z]\d+$/.test(name)) { + var i = name.substr(1); + return (this.variables[name[0] + "__"] || {})[i]; + } + if (/^\d+$/.test(name)) { + return (this.variables.__ || {})[name]; + } + name = name.replace(/^TM_/, ""); + + if (!editor) + return; + var s = editor.session; + switch(name) { + case "CURRENT_WORD": + var r = s.getWordRange(); + case "SELECTION": + case "SELECTED_TEXT": + return s.getTextRange(r); + case "CURRENT_LINE": + return s.getLine(editor.getCursorPosition().row); + case "PREV_LINE": // not possible in textmate + return s.getLine(editor.getCursorPosition().row - 1); + case "LINE_INDEX": + return editor.getCursorPosition().column; + case "LINE_NUMBER": + return editor.getCursorPosition().row + 1; + case "SOFT_TABS": + return s.getUseSoftTabs() ? "YES" : "NO"; + case "TAB_SIZE": + return s.getTabSize(); + case "FILENAME": + case "FILEPATH": + return ""; + case "FULLNAME": + return "Ace"; + } + }; + this.variables = {}; + this.getVariableValue = function(editor, varName) { + if (this.variables.hasOwnProperty(varName)) + return this.variables[varName](editor, varName) || ""; + return this.$getDefaultValue(editor, varName) || ""; + }; + this.tmStrFormat = function(str, ch, editor) { + var flag = ch.flag || ""; + var re = ch.guard; + re = new RegExp(re, flag.replace(/[^gi]/, "")); + var fmtTokens = this.tokenizeTmSnippet(ch.fmt, "formatString"); + var _self = this; + var formatted = str.replace(re, function() { + _self.variables.__ = arguments; + var fmtParts = _self.resolveVariables(fmtTokens, editor); + var gChangeCase = "E"; + for (var i = 0; i < fmtParts.length; i++) { + var ch = fmtParts[i]; + if (typeof ch == "object") { + fmtParts[i] = ""; + if (ch.changeCase && ch.local) { + var next = fmtParts[i + 1]; + if (next && typeof next == "string") { + if (ch.changeCase == "u") + fmtParts[i] = next[0].toUpperCase(); + else + fmtParts[i] = next[0].toLowerCase(); + fmtParts[i + 1] = next.substr(1); + } + } else if (ch.changeCase) { + gChangeCase = ch.changeCase; + } + } else if (gChangeCase == "U") { + fmtParts[i] = ch.toUpperCase(); + } else if (gChangeCase == "L") { + fmtParts[i] = ch.toLowerCase(); + } + } + return fmtParts.join(""); + }); + this.variables.__ = null; + return formatted; + }; + + this.resolveVariables = function(snippet, editor) { + var result = []; + for (var i = 0; i < snippet.length; i++) { + var ch = snippet[i]; + if (typeof ch == "string") { + result.push(ch); + } else if (typeof ch != "object") { + continue; + } else if (ch.skip) { + gotoNext(ch); + } else if (ch.processed < i) { + continue; + } else if (ch.text) { + var value = this.getVariableValue(editor, ch.text); + if (value && ch.fmtString) + value = this.tmStrFormat(value, ch); + ch.processed = i; + if (ch.expectIf == null) { + if (value) { + result.push(value); + gotoNext(ch); + } + } else { + if (value) { + ch.skip = ch.elseBranch; + } else + gotoNext(ch); + } + } else if (ch.tabstopId != null) { + result.push(ch); + } else if (ch.changeCase != null) { + result.push(ch); + } + } + function gotoNext(ch) { + var i1 = snippet.indexOf(ch, i + 1); + if (i1 != -1) + i = i1; + } + return result; + }; + + this.insertSnippetForSelection = function(editor, snippetText) { + var cursor = editor.getCursorPosition(); + var line = editor.session.getLine(cursor.row); + var tabString = editor.session.getTabString(); + var indentString = line.match(/^\s*/)[0]; + + if (cursor.column < indentString.length) + indentString = indentString.slice(0, cursor.column); + + snippetText = snippetText.replace(/\r/g, ""); + var tokens = this.tokenizeTmSnippet(snippetText); + tokens = this.resolveVariables(tokens, editor); + tokens = tokens.map(function(x) { + if (x == "\n") + return x + indentString; + if (typeof x == "string") + return x.replace(/\t/g, tabString); + return x; + }); + var tabstops = []; + tokens.forEach(function(p, i) { + if (typeof p != "object") + return; + var id = p.tabstopId; + var ts = tabstops[id]; + if (!ts) { + ts = tabstops[id] = []; + ts.index = id; + ts.value = ""; + } + if (ts.indexOf(p) !== -1) + return; + ts.push(p); + var i1 = tokens.indexOf(p, i + 1); + if (i1 === -1) + return; + + var value = tokens.slice(i + 1, i1); + var isNested = value.some(function(t) {return typeof t === "object";}); + if (isNested && !ts.value) { + ts.value = value; + } else if (value.length && (!ts.value || typeof ts.value !== "string")) { + ts.value = value.join(""); + } + }); + tabstops.forEach(function(ts) {ts.length = 0;}); + var expanding = {}; + function copyValue(val) { + var copy = []; + for (var i = 0; i < val.length; i++) { + var p = val[i]; + if (typeof p == "object") { + if (expanding[p.tabstopId]) + continue; + var j = val.lastIndexOf(p, i - 1); + p = copy[j] || {tabstopId: p.tabstopId}; + } + copy[i] = p; + } + return copy; + } + for (var i = 0; i < tokens.length; i++) { + var p = tokens[i]; + if (typeof p != "object") + continue; + var id = p.tabstopId; + var i1 = tokens.indexOf(p, i + 1); + if (expanding[id]) { + if (expanding[id] === p) + expanding[id] = null; + continue; + } + + var ts = tabstops[id]; + var arg = typeof ts.value == "string" ? [ts.value] : copyValue(ts.value); + arg.unshift(i + 1, Math.max(0, i1 - i)); + arg.push(p); + expanding[id] = p; + tokens.splice.apply(tokens, arg); + + if (ts.indexOf(p) === -1) + ts.push(p); + } + var row = 0, column = 0; + var text = ""; + tokens.forEach(function(t) { + if (typeof t === "string") { + var lines = t.split("\n"); + if (lines.length > 1){ + column = lines[lines.length - 1].length; + row += lines.length - 1; + } else + column += t.length; + text += t; + } else { + if (!t.start) + t.start = {row: row, column: column}; + else + t.end = {row: row, column: column}; + } + }); + var range = editor.getSelectionRange(); + var end = editor.session.replace(range, text); + + var tabstopManager = new TabstopManager(editor); + var selectionId = editor.inVirtualSelectionMode && editor.selection.index; + tabstopManager.addTabstops(tabstops, range.start, end, selectionId); + }; + + this.insertSnippet = function(editor, snippetText) { + var self = this; + if (editor.inVirtualSelectionMode) + return self.insertSnippetForSelection(editor, snippetText); + + editor.forEachSelection(function() { + self.insertSnippetForSelection(editor, snippetText); + }, null, {keepOrder: true}); + + if (editor.tabstopManager) + editor.tabstopManager.tabNext(); + }; + + this.$getScope = function(editor) { + var scope = editor.session.$mode.$id || ""; + scope = scope.split("/").pop(); + if (scope === "html" || scope === "php") { + if (scope === "php" && !editor.session.$mode.inlinePhp) + scope = "html"; + var c = editor.getCursorPosition(); + var state = editor.session.getState(c.row); + if (typeof state === "object") { + state = state[0]; + } + if (state.substring) { + if (state.substring(0, 3) == "js-") + scope = "javascript"; + else if (state.substring(0, 4) == "css-") + scope = "css"; + else if (state.substring(0, 4) == "php-") + scope = "php"; + } + } + + return scope; + }; + + this.getActiveScopes = function(editor) { + var scope = this.$getScope(editor); + var scopes = [scope]; + var snippetMap = this.snippetMap; + if (snippetMap[scope] && snippetMap[scope].includeScopes) { + scopes.push.apply(scopes, snippetMap[scope].includeScopes); + } + scopes.push("_"); + return scopes; + }; + + this.expandWithTab = function(editor, options) { + var self = this; + var result = editor.forEachSelection(function() { + return self.expandSnippetForSelection(editor, options); + }, null, {keepOrder: true}); + if (result && editor.tabstopManager) + editor.tabstopManager.tabNext(); + return result; + }; + + this.expandSnippetForSelection = function(editor, options) { + var cursor = editor.getCursorPosition(); + var line = editor.session.getLine(cursor.row); + var before = line.substring(0, cursor.column); + var after = line.substr(cursor.column); + + var snippetMap = this.snippetMap; + var snippet; + this.getActiveScopes(editor).some(function(scope) { + var snippets = snippetMap[scope]; + if (snippets) + snippet = this.findMatchingSnippet(snippets, before, after); + return !!snippet; + }, this); + if (!snippet) + return false; + if (options && options.dryRun) + return true; + editor.session.doc.removeInLine(cursor.row, + cursor.column - snippet.replaceBefore.length, + cursor.column + snippet.replaceAfter.length + ); + + this.variables.M__ = snippet.matchBefore; + this.variables.T__ = snippet.matchAfter; + this.insertSnippetForSelection(editor, snippet.content); + + this.variables.M__ = this.variables.T__ = null; + return true; + }; + + this.findMatchingSnippet = function(snippetList, before, after) { + for (var i = snippetList.length; i--;) { + var s = snippetList[i]; + if (s.startRe && !s.startRe.test(before)) + continue; + if (s.endRe && !s.endRe.test(after)) + continue; + if (!s.startRe && !s.endRe) + continue; + + s.matchBefore = s.startRe ? s.startRe.exec(before) : [""]; + s.matchAfter = s.endRe ? s.endRe.exec(after) : [""]; + s.replaceBefore = s.triggerRe ? s.triggerRe.exec(before)[0] : ""; + s.replaceAfter = s.endTriggerRe ? s.endTriggerRe.exec(after)[0] : ""; + return s; + } + }; + + this.snippetMap = {}; + this.snippetNameMap = {}; + this.register = function(snippets, scope) { + var snippetMap = this.snippetMap; + var snippetNameMap = this.snippetNameMap; + var self = this; + + if (!snippets) + snippets = []; + + function wrapRegexp(src) { + if (src && !/^\^?\(.*\)\$?$|^\\b$/.test(src)) + src = "(?:" + src + ")"; + + return src || ""; + } + function guardedRegexp(re, guard, opening) { + re = wrapRegexp(re); + guard = wrapRegexp(guard); + if (opening) { + re = guard + re; + if (re && re[re.length - 1] != "$") + re = re + "$"; + } else { + re = re + guard; + if (re && re[0] != "^") + re = "^" + re; + } + return new RegExp(re); + } + + function addSnippet(s) { + if (!s.scope) + s.scope = scope || "_"; + scope = s.scope; + if (!snippetMap[scope]) { + snippetMap[scope] = []; + snippetNameMap[scope] = {}; + } + + var map = snippetNameMap[scope]; + if (s.name) { + var old = map[s.name]; + if (old) + self.unregister(old); + map[s.name] = s; + } + snippetMap[scope].push(s); + + if (s.tabTrigger && !s.trigger) { + if (!s.guard && /^\w/.test(s.tabTrigger)) + s.guard = "\\b"; + s.trigger = lang.escapeRegExp(s.tabTrigger); + } + + if (!s.trigger && !s.guard && !s.endTrigger && !s.endGuard) + return; + + s.startRe = guardedRegexp(s.trigger, s.guard, true); + s.triggerRe = new RegExp(s.trigger); + + s.endRe = guardedRegexp(s.endTrigger, s.endGuard, true); + s.endTriggerRe = new RegExp(s.endTrigger); + } + + if (snippets && snippets.content) + addSnippet(snippets); + else if (Array.isArray(snippets)) + snippets.forEach(addSnippet); + + this._signal("registerSnippets", {scope: scope}); + }; + this.unregister = function(snippets, scope) { + var snippetMap = this.snippetMap; + var snippetNameMap = this.snippetNameMap; + + function removeSnippet(s) { + var nameMap = snippetNameMap[s.scope||scope]; + if (nameMap && nameMap[s.name]) { + delete nameMap[s.name]; + var map = snippetMap[s.scope||scope]; + var i = map && map.indexOf(s); + if (i >= 0) + map.splice(i, 1); + } + } + if (snippets.content) + removeSnippet(snippets); + else if (Array.isArray(snippets)) + snippets.forEach(removeSnippet); + }; + this.parseSnippetFile = function(str) { + str = str.replace(/\r/g, ""); + var list = [], snippet = {}; + var re = /^#.*|^({[\s\S]*})\s*$|^(\S+) (.*)$|^((?:\n*\t.*)+)/gm; + var m; + while (m = re.exec(str)) { + if (m[1]) { + try { + snippet = JSON.parse(m[1]); + list.push(snippet); + } catch (e) {} + } if (m[4]) { + snippet.content = m[4].replace(/^\t/gm, ""); + list.push(snippet); + snippet = {}; + } else { + var key = m[2], val = m[3]; + if (key == "regex") { + var guardRe = /\/((?:[^\/\\]|\\.)*)|$/g; + snippet.guard = guardRe.exec(val)[1]; + snippet.trigger = guardRe.exec(val)[1]; + snippet.endTrigger = guardRe.exec(val)[1]; + snippet.endGuard = guardRe.exec(val)[1]; + } else if (key == "snippet") { + snippet.tabTrigger = val.match(/^\S*/)[0]; + if (!snippet.name) + snippet.name = val; + } else { + snippet[key] = val; + } + } + } + return list; + }; + this.getSnippetByName = function(name, editor) { + var snippetMap = this.snippetNameMap; + var snippet; + this.getActiveScopes(editor).some(function(scope) { + var snippets = snippetMap[scope]; + if (snippets) + snippet = snippets[name]; + return !!snippet; + }, this); + return snippet; + }; + +}).call(SnippetManager.prototype); + + +var TabstopManager = function(editor) { + if (editor.tabstopManager) + return editor.tabstopManager; + editor.tabstopManager = this; + this.$onChange = this.onChange.bind(this); + this.$onChangeSelection = lang.delayedCall(this.onChangeSelection.bind(this)).schedule; + this.$onChangeSession = this.onChangeSession.bind(this); + this.$onAfterExec = this.onAfterExec.bind(this); + this.attach(editor); +}; +(function() { + this.attach = function(editor) { + this.index = 0; + this.ranges = []; + this.tabstops = []; + this.$openTabstops = null; + this.selectedTabstop = null; + + this.editor = editor; + this.editor.on("change", this.$onChange); + this.editor.on("changeSelection", this.$onChangeSelection); + this.editor.on("changeSession", this.$onChangeSession); + this.editor.commands.on("afterExec", this.$onAfterExec); + this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler); + }; + this.detach = function() { + this.tabstops.forEach(this.removeTabstopMarkers, this); + this.ranges = null; + this.tabstops = null; + this.selectedTabstop = null; + this.editor.removeListener("change", this.$onChange); + this.editor.removeListener("changeSelection", this.$onChangeSelection); + this.editor.removeListener("changeSession", this.$onChangeSession); + this.editor.commands.removeListener("afterExec", this.$onAfterExec); + this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler); + this.editor.tabstopManager = null; + this.editor = null; + }; + + this.onChange = function(delta) { + var changeRange = delta; + var isRemove = delta.action[0] == "r"; + var start = delta.start; + var end = delta.end; + var startRow = start.row; + var endRow = end.row; + var lineDif = endRow - startRow; + var colDiff = end.column - start.column; + + if (isRemove) { + lineDif = -lineDif; + colDiff = -colDiff; + } + if (!this.$inChange && isRemove) { + var ts = this.selectedTabstop; + var changedOutside = ts && !ts.some(function(r) { + return comparePoints(r.start, start) <= 0 && comparePoints(r.end, end) >= 0; + }); + if (changedOutside) + return this.detach(); + } + var ranges = this.ranges; + for (var i = 0; i < ranges.length; i++) { + var r = ranges[i]; + if (r.end.row < start.row) + continue; + + if (isRemove && comparePoints(start, r.start) < 0 && comparePoints(end, r.end) > 0) { + this.removeRange(r); + i--; + continue; + } + + if (r.start.row == startRow && r.start.column > start.column) + r.start.column += colDiff; + if (r.end.row == startRow && r.end.column >= start.column) + r.end.column += colDiff; + if (r.start.row >= startRow) + r.start.row += lineDif; + if (r.end.row >= startRow) + r.end.row += lineDif; + + if (comparePoints(r.start, r.end) > 0) + this.removeRange(r); + } + if (!ranges.length) + this.detach(); + }; + this.updateLinkedFields = function() { + var ts = this.selectedTabstop; + if (!ts || !ts.hasLinkedRanges) + return; + this.$inChange = true; + var session = this.editor.session; + var text = session.getTextRange(ts.firstNonLinked); + for (var i = ts.length; i--;) { + var range = ts[i]; + if (!range.linked) + continue; + var fmt = exports.snippetManager.tmStrFormat(text, range.original); + session.replace(range, fmt); + } + this.$inChange = false; + }; + this.onAfterExec = function(e) { + if (e.command && !e.command.readOnly) + this.updateLinkedFields(); + }; + this.onChangeSelection = function() { + if (!this.editor) + return; + var lead = this.editor.selection.lead; + var anchor = this.editor.selection.anchor; + var isEmpty = this.editor.selection.isEmpty(); + for (var i = this.ranges.length; i--;) { + if (this.ranges[i].linked) + continue; + var containsLead = this.ranges[i].contains(lead.row, lead.column); + var containsAnchor = isEmpty || this.ranges[i].contains(anchor.row, anchor.column); + if (containsLead && containsAnchor) + return; + } + this.detach(); + }; + this.onChangeSession = function() { + this.detach(); + }; + this.tabNext = function(dir) { + var max = this.tabstops.length; + var index = this.index + (dir || 1); + index = Math.min(Math.max(index, 1), max); + if (index == max) + index = 0; + this.selectTabstop(index); + if (index === 0) + this.detach(); + }; + this.selectTabstop = function(index) { + this.$openTabstops = null; + var ts = this.tabstops[this.index]; + if (ts) + this.addTabstopMarkers(ts); + this.index = index; + ts = this.tabstops[this.index]; + if (!ts || !ts.length) + return; + + this.selectedTabstop = ts; + if (!this.editor.inVirtualSelectionMode) { + var sel = this.editor.multiSelect; + sel.toSingleRange(ts.firstNonLinked.clone()); + for (var i = ts.length; i--;) { + if (ts.hasLinkedRanges && ts[i].linked) + continue; + sel.addRange(ts[i].clone(), true); + } + if (sel.ranges[0]) + sel.addRange(sel.ranges[0].clone()); + } else { + this.editor.selection.setRange(ts.firstNonLinked); + } + + this.editor.keyBinding.addKeyboardHandler(this.keyboardHandler); + }; + this.addTabstops = function(tabstops, start, end) { + if (!this.$openTabstops) + this.$openTabstops = []; + if (!tabstops[0]) { + var p = Range.fromPoints(end, end); + moveRelative(p.start, start); + moveRelative(p.end, start); + tabstops[0] = [p]; + tabstops[0].index = 0; + } + + var i = this.index; + var arg = [i + 1, 0]; + var ranges = this.ranges; + tabstops.forEach(function(ts, index) { + var dest = this.$openTabstops[index] || ts; + + for (var i = ts.length; i--;) { + var p = ts[i]; + var range = Range.fromPoints(p.start, p.end || p.start); + movePoint(range.start, start); + movePoint(range.end, start); + range.original = p; + range.tabstop = dest; + ranges.push(range); + if (dest != ts) + dest.unshift(range); + else + dest[i] = range; + if (p.fmtString) { + range.linked = true; + dest.hasLinkedRanges = true; + } else if (!dest.firstNonLinked) + dest.firstNonLinked = range; + } + if (!dest.firstNonLinked) + dest.hasLinkedRanges = false; + if (dest === ts) { + arg.push(dest); + this.$openTabstops[index] = dest; + } + this.addTabstopMarkers(dest); + }, this); + + if (arg.length > 2) { + if (this.tabstops.length) + arg.push(arg.splice(2, 1)[0]); + this.tabstops.splice.apply(this.tabstops, arg); + } + }; + + this.addTabstopMarkers = function(ts) { + var session = this.editor.session; + ts.forEach(function(range) { + if (!range.markerId) + range.markerId = session.addMarker(range, "ace_snippet-marker", "text"); + }); + }; + this.removeTabstopMarkers = function(ts) { + var session = this.editor.session; + ts.forEach(function(range) { + session.removeMarker(range.markerId); + range.markerId = null; + }); + }; + this.removeRange = function(range) { + var i = range.tabstop.indexOf(range); + range.tabstop.splice(i, 1); + i = this.ranges.indexOf(range); + this.ranges.splice(i, 1); + this.editor.session.removeMarker(range.markerId); + if (!range.tabstop.length) { + i = this.tabstops.indexOf(range.tabstop); + if (i != -1) + this.tabstops.splice(i, 1); + if (!this.tabstops.length) + this.detach(); + } + }; + + this.keyboardHandler = new HashHandler(); + this.keyboardHandler.bindKeys({ + "Tab": function(ed) { + if (exports.snippetManager && exports.snippetManager.expandWithTab(ed)) { + return; + } + + ed.tabstopManager.tabNext(1); + }, + "Shift-Tab": function(ed) { + ed.tabstopManager.tabNext(-1); + }, + "Esc": function(ed) { + ed.tabstopManager.detach(); + }, + "Return": function(ed) { + return false; + } + }); +}).call(TabstopManager.prototype); + + + +var changeTracker = {}; +changeTracker.onChange = Anchor.prototype.onChange; +changeTracker.setPosition = function(row, column) { + this.pos.row = row; + this.pos.column = column; +}; +changeTracker.update = function(pos, delta, $insertRight) { + this.$insertRight = $insertRight; + this.pos = pos; + this.onChange(delta); +}; + +var movePoint = function(point, diff) { + if (point.row == 0) + point.column += diff.column; + point.row += diff.row; +}; + +var moveRelative = function(point, start) { + if (point.row == start.row) + point.column -= start.column; + point.row -= start.row; +}; + + +require("./lib/dom").importCssString("\ +.ace_snippet-marker {\ + -moz-box-sizing: border-box;\ + box-sizing: border-box;\ + background: rgba(194, 193, 208, 0.09);\ + border: 1px dotted rgba(211, 208, 235, 0.62);\ + position: absolute;\ +}"); + +exports.snippetManager = new SnippetManager(); + + +var Editor = require("./editor").Editor; +(function() { + this.insertSnippet = function(content, options) { + return exports.snippetManager.insertSnippet(this, content, options); + }; + this.expandSnippet = function(options) { + return exports.snippetManager.expandWithTab(this, options); + }; +}).call(Editor.prototype); + +}); + +define("ace/autocomplete/popup",["require","exports","module","ace/virtual_renderer","ace/editor","ace/range","ace/lib/event","ace/lib/lang","ace/lib/dom"], function(require, exports, module) { +"use strict"; + +var Renderer = require("../virtual_renderer").VirtualRenderer; +var Editor = require("../editor").Editor; +var Range = require("../range").Range; +var event = require("../lib/event"); +var lang = require("../lib/lang"); +var dom = require("../lib/dom"); + +var $singleLineEditor = function(el) { + var renderer = new Renderer(el); + + renderer.$maxLines = 4; + + var editor = new Editor(renderer); + + editor.setHighlightActiveLine(false); + editor.setShowPrintMargin(false); + editor.renderer.setShowGutter(false); + editor.renderer.setHighlightGutterLine(false); + + editor.$mouseHandler.$focusTimeout = 0; + editor.$highlightTagPending = true; + + return editor; +}; + +var AcePopup = function(parentNode) { + var el = dom.createElement("div"); + var popup = new $singleLineEditor(el); + + if (parentNode) + parentNode.appendChild(el); + el.style.display = "none"; + popup.renderer.content.style.cursor = "default"; + popup.renderer.setStyle("ace_autocomplete"); + + popup.setOption("displayIndentGuides", false); + popup.setOption("dragDelay", 150); + + var noop = function(){}; + + popup.focus = noop; + popup.$isFocused = true; + + popup.renderer.$cursorLayer.restartTimer = noop; + popup.renderer.$cursorLayer.element.style.opacity = 0; + + popup.renderer.$maxLines = 8; + popup.renderer.$keepTextAreaAtCursor = false; + + popup.setHighlightActiveLine(false); + popup.session.highlight(""); + popup.session.$searchHighlight.clazz = "ace_highlight-marker"; + + popup.on("mousedown", function(e) { + var pos = e.getDocumentPosition(); + popup.selection.moveToPosition(pos); + selectionMarker.start.row = selectionMarker.end.row = pos.row; + e.stop(); + }); + + var lastMouseEvent; + var hoverMarker = new Range(-1,0,-1,Infinity); + var selectionMarker = new Range(-1,0,-1,Infinity); + selectionMarker.id = popup.session.addMarker(selectionMarker, "ace_active-line", "fullLine"); + popup.setSelectOnHover = function(val) { + if (!val) { + hoverMarker.id = popup.session.addMarker(hoverMarker, "ace_line-hover", "fullLine"); + } else if (hoverMarker.id) { + popup.session.removeMarker(hoverMarker.id); + hoverMarker.id = null; + } + }; + popup.setSelectOnHover(false); + popup.on("mousemove", function(e) { + if (!lastMouseEvent) { + lastMouseEvent = e; + return; + } + if (lastMouseEvent.x == e.x && lastMouseEvent.y == e.y) { + return; + } + lastMouseEvent = e; + lastMouseEvent.scrollTop = popup.renderer.scrollTop; + var row = lastMouseEvent.getDocumentPosition().row; + if (hoverMarker.start.row != row) { + if (!hoverMarker.id) + popup.setRow(row); + setHoverMarker(row); + } + }); + popup.renderer.on("beforeRender", function() { + if (lastMouseEvent && hoverMarker.start.row != -1) { + lastMouseEvent.$pos = null; + var row = lastMouseEvent.getDocumentPosition().row; + if (!hoverMarker.id) + popup.setRow(row); + setHoverMarker(row, true); + } + }); + popup.renderer.on("afterRender", function() { + var row = popup.getRow(); + var t = popup.renderer.$textLayer; + var selected = t.element.childNodes[row - t.config.firstRow]; + if (selected !== t.selectedNode && t.selectedNode) + dom.removeCssClass(t.selectedNode, "ace_selected"); + t.selectedNode = selected; + if (selected) + dom.addCssClass(selected, "ace_selected"); + }); + var hideHoverMarker = function() { setHoverMarker(-1); }; + var setHoverMarker = function(row, suppressRedraw) { + if (row !== hoverMarker.start.row) { + hoverMarker.start.row = hoverMarker.end.row = row; + if (!suppressRedraw) + popup.session._emit("changeBackMarker"); + popup._emit("changeHoverMarker"); + } + }; + popup.getHoveredRow = function() { + return hoverMarker.start.row; + }; + + event.addListener(popup.container, "mouseout", hideHoverMarker); + popup.on("hide", hideHoverMarker); + popup.on("changeSelection", hideHoverMarker); + + popup.session.doc.getLength = function() { + return popup.data.length; + }; + popup.session.doc.getLine = function(i) { + var data = popup.data[i]; + if (typeof data == "string") + return data; + return (data && data.value) || ""; + }; + + var bgTokenizer = popup.session.bgTokenizer; + bgTokenizer.$tokenizeRow = function(row) { + var data = popup.data[row]; + var tokens = []; + if (!data) + return tokens; + if (typeof data == "string") + data = {value: data}; + var caption = data.caption || data.value || data.name; + + function addToken(value, className) { + value && tokens.push({ + type: (data.className || "") + (className || ""), + value: value + }); + } + + var lower = caption.toLowerCase(); + var filterText = (popup.filterText || "").toLowerCase(); + var lastIndex = 0; + var lastI = 0; + for (var i = 0; i <= filterText.length; i++) { + if (i != lastI && (data.matchMask & (1 << i) || i == filterText.length)) { + var sub = filterText.slice(lastI, i); + lastI = i; + var index = lower.indexOf(sub, lastIndex); + if (index == -1) continue; + addToken(caption.slice(lastIndex, index), ""); + lastIndex = index + sub.length; + addToken(caption.slice(index, lastIndex), "completion-highlight"); + } + } + addToken(caption.slice(lastIndex, caption.length), ""); + + if (data.meta) + tokens.push({type: "completion-meta", value: data.meta}); + if (data.message) + tokens.push({type: "completion-message", value: data.message}); + + return tokens; + }; + bgTokenizer.$updateOnChange = noop; + bgTokenizer.start = noop; + + popup.session.$computeWidth = function() { + return this.screenWidth = 0; + }; + popup.isOpen = false; + popup.isTopdown = false; + popup.autoSelect = true; + popup.filterText = ""; + + popup.data = []; + popup.setData = function(list, filterText) { + popup.filterText = filterText || ""; + popup.setValue(lang.stringRepeat("\n", list.length), -1); + popup.data = list || []; + popup.setRow(0); + }; + popup.getData = function(row) { + return popup.data[row]; + }; + + popup.getRow = function() { + return selectionMarker.start.row; + }; + popup.setRow = function(line) { + line = Math.max(this.autoSelect ? 0 : -1, Math.min(this.data.length, line)); + if (selectionMarker.start.row != line) { + popup.selection.clearSelection(); + selectionMarker.start.row = selectionMarker.end.row = line || 0; + popup.session._emit("changeBackMarker"); + popup.moveCursorTo(line || 0, 0); + if (popup.isOpen) + popup._signal("select"); + } + }; + + popup.on("changeSelection", function() { + if (popup.isOpen) + popup.setRow(popup.selection.lead.row); + popup.renderer.scrollCursorIntoView(); + }); + + popup.hide = function() { + this.container.style.display = "none"; + this._signal("hide"); + popup.isOpen = false; + }; + popup.show = function(pos, lineHeight, topdownOnly) { + var el = this.container; + var screenHeight = window.innerHeight; + var screenWidth = window.innerWidth; + var renderer = this.renderer; + var maxH = renderer.$maxLines * lineHeight * 1.4; + var top = pos.top + this.$borderSize; + var allowTopdown = top > screenHeight / 2 && !topdownOnly; + if (allowTopdown && top + lineHeight + maxH > screenHeight) { + renderer.$maxPixelHeight = top - 2 * this.$borderSize; + el.style.top = ""; + el.style.bottom = screenHeight - top + "px"; + popup.isTopdown = false; + } else { + top += lineHeight; + renderer.$maxPixelHeight = screenHeight - top - 0.2 * lineHeight; + el.style.top = top + "px"; + el.style.bottom = ""; + popup.isTopdown = true; + } + + el.style.display = ""; + + var left = pos.left; + if (left + el.offsetWidth > screenWidth) + left = screenWidth - el.offsetWidth; + + el.style.left = left + "px"; + + this._signal("show"); + lastMouseEvent = null; + popup.isOpen = true; + }; + + popup.goTo = function(where) { + var row = this.getRow(); + var max = this.session.getLength() - 1; + + switch(where) { + case "up": row = row < 0 ? max : row - 1; break; + case "down": row = row >= max ? -1 : row + 1; break; + case "start": row = 0; break; + case "end": row = max; break; + } + + this.setRow(row); + }; + + + popup.getTextLeftOffset = function() { + return this.$borderSize + this.renderer.$padding + this.$imageSize; + }; + + popup.$imageSize = 0; + popup.$borderSize = 1; + + return popup; +}; + +dom.importCssString("\ +.ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line {\ + background-color: #CAD6FA;\ + z-index: 1;\ +}\ +.ace_dark.ace_editor.ace_autocomplete .ace_marker-layer .ace_active-line {\ + background-color: #3a674e;\ +}\ +.ace_editor.ace_autocomplete .ace_line-hover {\ + border: 1px solid #abbffe;\ + margin-top: -1px;\ + background: rgba(233,233,253,0.4);\ + position: absolute;\ + z-index: 2;\ +}\ +.ace_dark.ace_editor.ace_autocomplete .ace_line-hover {\ + border: 1px solid rgba(109, 150, 13, 0.8);\ + background: rgba(58, 103, 78, 0.62);\ +}\ +.ace_completion-meta {\ + opacity: 0.5;\ + margin: 0.9em;\ +}\ +.ace_completion-message {\ + color: blue;\ +}\ +.ace_editor.ace_autocomplete .ace_completion-highlight{\ + color: #2d69c7;\ +}\ +.ace_dark.ace_editor.ace_autocomplete .ace_completion-highlight{\ + color: #93ca12;\ +}\ +.ace_editor.ace_autocomplete {\ + width: 300px;\ + z-index: 200000;\ + border: 1px lightgray solid;\ + position: fixed;\ + box-shadow: 2px 3px 5px rgba(0,0,0,.2);\ + line-height: 1.4;\ + background: #fefefe;\ + color: #111;\ +}\ +.ace_dark.ace_editor.ace_autocomplete {\ + border: 1px #484747 solid;\ + box-shadow: 2px 3px 5px rgba(0, 0, 0, 0.51);\ + line-height: 1.4;\ + background: #25282c;\ + color: #c1c1c1;\ +}", "autocompletion.css"); + +exports.AcePopup = AcePopup; +exports.$singleLineEditor = $singleLineEditor; +}); + +define("ace/autocomplete/util",["require","exports","module"], function(require, exports, module) { +"use strict"; + +exports.parForEach = function(array, fn, callback) { + var completed = 0; + var arLength = array.length; + if (arLength === 0) + callback(); + for (var i = 0; i < arLength; i++) { + fn(array[i], function(result, err) { + completed++; + if (completed === arLength) + callback(result, err); + }); + } +}; + +var ID_REGEX = /[a-zA-Z_0-9\$\-\u00A2-\uFFFF]/; + +exports.retrievePrecedingIdentifier = function(text, pos, regex) { + regex = regex || ID_REGEX; + var buf = []; + for (var i = pos-1; i >= 0; i--) { + if (regex.test(text[i])) + buf.push(text[i]); + else + break; + } + return buf.reverse().join(""); +}; + +exports.retrieveFollowingIdentifier = function(text, pos, regex) { + regex = regex || ID_REGEX; + var buf = []; + for (var i = pos; i < text.length; i++) { + if (regex.test(text[i])) + buf.push(text[i]); + else + break; + } + return buf; +}; + +exports.getCompletionPrefix = function (editor) { + var pos = editor.getCursorPosition(); + var line = editor.session.getLine(pos.row); + var prefix; + editor.completers.forEach(function(completer) { + if (completer.identifierRegexps) { + completer.identifierRegexps.forEach(function(identifierRegex) { + if (!prefix && identifierRegex) + prefix = this.retrievePrecedingIdentifier(line, pos.column, identifierRegex); + }.bind(this)); + } + }.bind(this)); + return prefix || this.retrievePrecedingIdentifier(line, pos.column); +}; + +}); + +define("ace/autocomplete",["require","exports","module","ace/keyboard/hash_handler","ace/autocomplete/popup","ace/autocomplete/util","ace/lib/event","ace/lib/lang","ace/lib/dom","ace/snippets"], function(require, exports, module) { +"use strict"; + +var HashHandler = require("./keyboard/hash_handler").HashHandler; +var AcePopup = require("./autocomplete/popup").AcePopup; +var util = require("./autocomplete/util"); +var event = require("./lib/event"); +var lang = require("./lib/lang"); +var dom = require("./lib/dom"); +var snippetManager = require("./snippets").snippetManager; + +var Autocomplete = function() { + this.autoInsert = false; + this.autoSelect = true; + this.exactMatch = false; + this.gatherCompletionsId = 0; + this.keyboardHandler = new HashHandler(); + this.keyboardHandler.bindKeys(this.commands); + + this.blurListener = this.blurListener.bind(this); + this.changeListener = this.changeListener.bind(this); + this.mousedownListener = this.mousedownListener.bind(this); + this.mousewheelListener = this.mousewheelListener.bind(this); + + this.changeTimer = lang.delayedCall(function() { + this.updateCompletions(true); + }.bind(this)); + + this.tooltipTimer = lang.delayedCall(this.updateDocTooltip.bind(this), 50); +}; + +(function() { + + this.$init = function() { + this.popup = new AcePopup(document.body || document.documentElement); + this.popup.on("click", function(e) { + this.insertMatch(); + e.stop(); + }.bind(this)); + this.popup.focus = this.editor.focus.bind(this.editor); + this.popup.on("show", this.tooltipTimer.bind(null, null)); + this.popup.on("select", this.tooltipTimer.bind(null, null)); + this.popup.on("changeHoverMarker", this.tooltipTimer.bind(null, null)); + return this.popup; + }; + + this.getPopup = function() { + return this.popup || this.$init(); + }; + + this.openPopup = function(editor, prefix, keepPopupPosition) { + if (!this.popup) + this.$init(); + + this.popup.autoSelect = this.autoSelect; + + this.popup.setData(this.completions.filtered, this.completions.filterText); + + editor.keyBinding.addKeyboardHandler(this.keyboardHandler); + + var renderer = editor.renderer; + this.popup.setRow(this.autoSelect ? 0 : -1); + if (!keepPopupPosition) { + this.popup.setTheme(editor.getTheme()); + this.popup.setFontSize(editor.getFontSize()); + + var lineHeight = renderer.layerConfig.lineHeight; + + var pos = renderer.$cursorLayer.getPixelPosition(this.base, true); + pos.left -= this.popup.getTextLeftOffset(); + + var rect = editor.container.getBoundingClientRect(); + pos.top += rect.top - renderer.layerConfig.offset; + pos.left += rect.left - editor.renderer.scrollLeft; + pos.left += renderer.gutterWidth; + + this.popup.show(pos, lineHeight); + } else if (keepPopupPosition && !prefix) { + this.detach(); + } + }; + + this.detach = function() { + this.editor.keyBinding.removeKeyboardHandler(this.keyboardHandler); + this.editor.off("changeSelection", this.changeListener); + this.editor.off("blur", this.blurListener); + this.editor.off("mousedown", this.mousedownListener); + this.editor.off("mousewheel", this.mousewheelListener); + this.changeTimer.cancel(); + this.hideDocTooltip(); + + this.gatherCompletionsId += 1; + if (this.popup && this.popup.isOpen) + this.popup.hide(); + + if (this.base) + this.base.detach(); + this.activated = false; + this.completions = this.base = null; + }; + + this.changeListener = function(e) { + var cursor = this.editor.selection.lead; + if (cursor.row != this.base.row || cursor.column < this.base.column) { + this.detach(); + } + if (this.activated) + this.changeTimer.schedule(); + else + this.detach(); + }; + + this.blurListener = function(e) { + var el = document.activeElement; + var text = this.editor.textInput.getElement(); + var fromTooltip = e.relatedTarget && this.tooltipNode && this.tooltipNode.contains(e.relatedTarget); + var container = this.popup && this.popup.container; + if (el != text && el.parentNode != container && !fromTooltip + && el != this.tooltipNode && e.relatedTarget != text + ) { + this.detach(); + } + }; + + this.mousedownListener = function(e) { + this.detach(); + }; + + this.mousewheelListener = function(e) { + this.detach(); + }; + + this.goTo = function(where) { + this.popup.goTo(where); + }; + + this.insertMatch = function(data, options) { + if (!data) + data = this.popup.getData(this.popup.getRow()); + if (!data) + return false; + + if (data.completer && data.completer.insertMatch) { + data.completer.insertMatch(this.editor, data); + } else { + if (this.completions.filterText) { + var ranges = this.editor.selection.getAllRanges(); + for (var i = 0, range; range = ranges[i]; i++) { + range.start.column -= this.completions.filterText.length; + this.editor.session.remove(range); + } + } + if (data.snippet) + snippetManager.insertSnippet(this.editor, data.snippet); + else + this.editor.execCommand("insertstring", data.value || data); + } + this.detach(); + }; + + + this.commands = { + "Up": function(editor) { editor.completer.goTo("up"); }, + "Down": function(editor) { editor.completer.goTo("down"); }, + "Ctrl-Up|Ctrl-Home": function(editor) { editor.completer.goTo("start"); }, + "Ctrl-Down|Ctrl-End": function(editor) { editor.completer.goTo("end"); }, + + "Esc": function(editor) { editor.completer.detach(); }, + "Return": function(editor) { return editor.completer.insertMatch(); }, + "Shift-Return": function(editor) { editor.completer.insertMatch(null, {deleteSuffix: true}); }, + "Tab": function(editor) { + var result = editor.completer.insertMatch(); + if (!result && !editor.tabstopManager) + editor.completer.goTo("down"); + else + return result; + }, + + "PageUp": function(editor) { editor.completer.popup.gotoPageUp(); }, + "PageDown": function(editor) { editor.completer.popup.gotoPageDown(); } + }; + + this.gatherCompletions = function(editor, callback) { + var session = editor.getSession(); + var pos = editor.getCursorPosition(); + + var prefix = util.getCompletionPrefix(editor); + + this.base = session.doc.createAnchor(pos.row, pos.column - prefix.length); + this.base.$insertRight = true; + + var matches = []; + var total = editor.completers.length; + editor.completers.forEach(function(completer, i) { + completer.getCompletions(editor, session, pos, prefix, function(err, results) { + if (!err && results) + matches = matches.concat(results); + callback(null, { + prefix: util.getCompletionPrefix(editor), + matches: matches, + finished: (--total === 0) + }); + }); + }); + return true; + }; + + this.showPopup = function(editor) { + if (this.editor) + this.detach(); + + this.activated = true; + + this.editor = editor; + if (editor.completer != this) { + if (editor.completer) + editor.completer.detach(); + editor.completer = this; + } + + editor.on("changeSelection", this.changeListener); + editor.on("blur", this.blurListener); + editor.on("mousedown", this.mousedownListener); + editor.on("mousewheel", this.mousewheelListener); + + this.updateCompletions(); + }; + + this.updateCompletions = function(keepPopupPosition) { + if (keepPopupPosition && this.base && this.completions) { + var pos = this.editor.getCursorPosition(); + var prefix = this.editor.session.getTextRange({start: this.base, end: pos}); + if (prefix == this.completions.filterText) + return; + this.completions.setFilter(prefix); + if (!this.completions.filtered.length) + return this.detach(); + if (this.completions.filtered.length == 1 + && this.completions.filtered[0].value == prefix + && !this.completions.filtered[0].snippet) + return this.detach(); + this.openPopup(this.editor, prefix, keepPopupPosition); + return; + } + var _id = this.gatherCompletionsId; + this.gatherCompletions(this.editor, function(err, results) { + var detachIfFinished = function() { + if (!results.finished) return; + return this.detach(); + }.bind(this); + + var prefix = results.prefix; + var matches = results && results.matches; + + if (!matches || !matches.length) + return detachIfFinished(); + if (prefix.indexOf(results.prefix) !== 0 || _id != this.gatherCompletionsId) + return; + + this.completions = new FilteredList(matches); + + if (this.exactMatch) + this.completions.exactMatch = true; + + this.completions.setFilter(prefix); + var filtered = this.completions.filtered; + if (!filtered.length) + return detachIfFinished(); + if (filtered.length == 1 && filtered[0].value == prefix && !filtered[0].snippet) + return detachIfFinished(); + if (this.autoInsert && filtered.length == 1 && results.finished) + return this.insertMatch(filtered[0]); + + this.openPopup(this.editor, prefix, keepPopupPosition); + }.bind(this)); + }; + + this.cancelContextMenu = function() { + this.editor.$mouseHandler.cancelContextMenu(); + }; + + this.updateDocTooltip = function() { + var popup = this.popup; + var all = popup.data; + var selected = all && (all[popup.getHoveredRow()] || all[popup.getRow()]); + var doc = null; + if (!selected || !this.editor || !this.popup.isOpen) + return this.hideDocTooltip(); + this.editor.completers.some(function(completer) { + if (completer.getDocTooltip) + doc = completer.getDocTooltip(selected); + return doc; + }); + if (!doc) + doc = selected; + + if (typeof doc == "string") + doc = {docText: doc}; + if (!doc || !(doc.docHTML || doc.docText)) + return this.hideDocTooltip(); + this.showDocTooltip(doc); + }; + + this.showDocTooltip = function(item) { + if (!this.tooltipNode) { + this.tooltipNode = dom.createElement("div"); + this.tooltipNode.className = "ace_tooltip ace_doc-tooltip"; + this.tooltipNode.style.margin = 0; + this.tooltipNode.style.pointerEvents = "auto"; + this.tooltipNode.tabIndex = -1; + this.tooltipNode.onblur = this.blurListener.bind(this); + this.tooltipNode.onclick = this.onTooltipClick.bind(this); + } + + var tooltipNode = this.tooltipNode; + if (item.docHTML) { + tooltipNode.innerHTML = item.docHTML; + } else if (item.docText) { + tooltipNode.textContent = item.docText; + } + + if (!tooltipNode.parentNode) + document.body.appendChild(tooltipNode); + var popup = this.popup; + var rect = popup.container.getBoundingClientRect(); + tooltipNode.style.top = popup.container.style.top; + tooltipNode.style.bottom = popup.container.style.bottom; + + tooltipNode.style.display = "block"; + if (window.innerWidth - rect.right < 320) { + if (rect.left < 320) { + if(popup.isTopdown) { + tooltipNode.style.top = rect.bottom + "px"; + tooltipNode.style.left = rect.left + "px"; + tooltipNode.style.right = ""; + tooltipNode.style.bottom = ""; + } else { + tooltipNode.style.top = popup.container.offsetTop - tooltipNode.offsetHeight + "px"; + tooltipNode.style.left = rect.left + "px"; + tooltipNode.style.right = ""; + tooltipNode.style.bottom = ""; + } + } else { + tooltipNode.style.right = window.innerWidth - rect.left + "px"; + tooltipNode.style.left = ""; + } + } else { + tooltipNode.style.left = (rect.right + 1) + "px"; + tooltipNode.style.right = ""; + } + }; + + this.hideDocTooltip = function() { + this.tooltipTimer.cancel(); + if (!this.tooltipNode) return; + var el = this.tooltipNode; + if (!this.editor.isFocused() && document.activeElement == el) + this.editor.focus(); + this.tooltipNode = null; + if (el.parentNode) + el.parentNode.removeChild(el); + }; + + this.onTooltipClick = function(e) { + var a = e.target; + while (a && a != this.tooltipNode) { + if (a.nodeName == "A" && a.href) { + a.rel = "noreferrer"; + a.target = "_blank"; + break; + } + a = a.parentNode; + } + }; + +}).call(Autocomplete.prototype); + +Autocomplete.startCommand = { + name: "startAutocomplete", + exec: function(editor) { + if (!editor.completer) + editor.completer = new Autocomplete(); + editor.completer.autoInsert = false; + editor.completer.autoSelect = true; + editor.completer.showPopup(editor); + editor.completer.cancelContextMenu(); + }, + bindKey: "Ctrl-Space|Ctrl-Shift-Space|Alt-Space" +}; + +var FilteredList = function(array, filterText) { + this.all = array; + this.filtered = array; + this.filterText = filterText || ""; + this.exactMatch = false; +}; +(function(){ + this.setFilter = function(str) { + if (str.length > this.filterText && str.lastIndexOf(this.filterText, 0) === 0) + var matches = this.filtered; + else + var matches = this.all; + + this.filterText = str; + matches = this.filterCompletions(matches, this.filterText); + matches = matches.sort(function(a, b) { + return b.exactMatch - a.exactMatch || b.$score - a.$score + || (a.caption || a.value) < (b.caption || b.value); + }); + var prev = null; + matches = matches.filter(function(item){ + var caption = item.snippet || item.caption || item.value; + if (caption === prev) return false; + prev = caption; + return true; + }); + + this.filtered = matches; + }; + this.filterCompletions = function(items, needle) { + var results = []; + var upper = needle.toUpperCase(); + var lower = needle.toLowerCase(); + loop: for (var i = 0, item; item = items[i]; i++) { + var caption = item.caption || item.value || item.snippet; + if (!caption) continue; + var lastIndex = -1; + var matchMask = 0; + var penalty = 0; + var index, distance; + + if (this.exactMatch) { + if (needle !== caption.substr(0, needle.length)) + continue loop; + } else { + var fullMatchIndex = caption.toLowerCase().indexOf(lower); + if (fullMatchIndex > -1) { + penalty = fullMatchIndex; + } else { + for (var j = 0; j < needle.length; j++) { + var i1 = caption.indexOf(lower[j], lastIndex + 1); + var i2 = caption.indexOf(upper[j], lastIndex + 1); + index = (i1 >= 0) ? ((i2 < 0 || i1 < i2) ? i1 : i2) : i2; + if (index < 0) + continue loop; + distance = index - lastIndex - 1; + if (distance > 0) { + if (lastIndex === -1) + penalty += 10; + penalty += distance; + matchMask = matchMask | (1 << j); + } + lastIndex = index; + } + } + } + item.matchMask = matchMask; + item.exactMatch = penalty ? 0 : 1; + item.$score = (item.score || 0) - penalty; + results.push(item); + } + return results; + }; +}).call(FilteredList.prototype); + +exports.Autocomplete = Autocomplete; +exports.FilteredList = FilteredList; + +}); + +define("ace/autocomplete/text_completer",["require","exports","module","ace/range"], function(require, exports, module) { + var Range = require("../range").Range; + + var splitRegex = /[^a-zA-Z_0-9\$\-\u00C0-\u1FFF\u2C00-\uD7FF\w]+/; + + function getWordIndex(doc, pos) { + var textBefore = doc.getTextRange(Range.fromPoints({row: 0, column:0}, pos)); + return textBefore.split(splitRegex).length - 1; + } + function wordDistance(doc, pos) { + var prefixPos = getWordIndex(doc, pos); + var words = doc.getValue().split(splitRegex); + var wordScores = Object.create(null); + + var currentWord = words[prefixPos]; + + words.forEach(function(word, idx) { + if (!word || word === currentWord) return; + + var distance = Math.abs(prefixPos - idx); + var score = words.length - distance; + if (wordScores[word]) { + wordScores[word] = Math.max(score, wordScores[word]); + } else { + wordScores[word] = score; + } + }); + return wordScores; + } + + exports.getCompletions = function(editor, session, pos, prefix, callback) { + var wordScore = wordDistance(session, pos); + var wordList = Object.keys(wordScore); + callback(null, wordList.map(function(word) { + return { + caption: word, + value: word, + score: wordScore[word], + meta: "local" + }; + })); + }; +}); + +define("ace/ext/language_tools",["require","exports","module","ace/snippets","ace/autocomplete","ace/config","ace/lib/lang","ace/autocomplete/util","ace/autocomplete/text_completer","ace/editor","ace/config"], function(require, exports, module) { +"use strict"; + +var snippetManager = require("../snippets").snippetManager; +var Autocomplete = require("../autocomplete").Autocomplete; +var config = require("../config"); +var lang = require("../lib/lang"); +var util = require("../autocomplete/util"); + +var textCompleter = require("../autocomplete/text_completer"); +var keyWordCompleter = { + getCompletions: function(editor, session, pos, prefix, callback) { + if (session.$mode.completer) { + return session.$mode.completer.getCompletions(editor, session, pos, prefix, callback); + } + var state = editor.session.getState(pos.row); + var completions = session.$mode.getCompletions(state, session, pos, prefix); + callback(null, completions); + } +}; + +var snippetCompleter = { + getCompletions: function(editor, session, pos, prefix, callback) { + var scopes = []; + var token = session.getTokenAt(pos.row, pos.column); + if (token && token.type.match(/(tag-name|tag-open|tag-whitespace|attribute-name|attribute-value)\.xml$/)) + scopes.push('html-tag'); + else + scopes = snippetManager.getActiveScopes(editor); + + var snippetMap = snippetManager.snippetMap; + var completions = []; + scopes.forEach(function(scope) { + var snippets = snippetMap[scope] || []; + for (var i = snippets.length; i--;) { + var s = snippets[i]; + var caption = s.name || s.tabTrigger; + if (!caption) + continue; + completions.push({ + caption: caption, + snippet: s.content, + meta: s.tabTrigger && !s.name ? s.tabTrigger + "\u21E5 " : "snippet", + type: "snippet" + }); + } + }, this); + callback(null, completions); + }, + getDocTooltip: function(item) { + if (item.type == "snippet" && !item.docHTML) { + item.docHTML = [ + "", lang.escapeHTML(item.caption), "", "
", + lang.escapeHTML(item.snippet) + ].join(""); + } + } +}; + +var completers = [snippetCompleter, textCompleter, keyWordCompleter]; +exports.setCompleters = function(val) { + completers.length = 0; + if (val) completers.push.apply(completers, val); +}; +exports.addCompleter = function(completer) { + completers.push(completer); +}; +exports.textCompleter = textCompleter; +exports.keyWordCompleter = keyWordCompleter; +exports.snippetCompleter = snippetCompleter; + +var expandSnippet = { + name: "expandSnippet", + exec: function(editor) { + return snippetManager.expandWithTab(editor); + }, + bindKey: "Tab" +}; + +var onChangeMode = function(e, editor) { + loadSnippetsForMode(editor.session.$mode); +}; + +var loadSnippetsForMode = function(mode) { + var id = mode.$id; + if (!snippetManager.files) + snippetManager.files = {}; + loadSnippetFile(id); + if (mode.modes) + mode.modes.forEach(loadSnippetsForMode); +}; + +var loadSnippetFile = function(id) { + if (!id || snippetManager.files[id]) + return; + var snippetFilePath = id.replace("mode", "snippets"); + snippetManager.files[id] = {}; + config.loadModule(snippetFilePath, function(m) { + if (m) { + snippetManager.files[id] = m; + if (!m.snippets && m.snippetText) + m.snippets = snippetManager.parseSnippetFile(m.snippetText); + snippetManager.register(m.snippets || [], m.scope); + if (m.includeScopes) { + snippetManager.snippetMap[m.scope].includeScopes = m.includeScopes; + m.includeScopes.forEach(function(x) { + loadSnippetFile("ace/mode/" + x); + }); + } + } + }); +}; + +var doLiveAutocomplete = function(e) { + var editor = e.editor; + var hasCompleter = editor.completer && editor.completer.activated; + if (e.command.name === "backspace") { + if (hasCompleter && !util.getCompletionPrefix(editor)) + editor.completer.detach(); + } + else if (e.command.name === "insertstring") { + var prefix = util.getCompletionPrefix(editor); + if (prefix && !hasCompleter) { + if (!editor.completer) { + editor.completer = new Autocomplete(); + } + editor.completer.autoInsert = false; + editor.completer.showPopup(editor); + } + } +}; + +var Editor = require("../editor").Editor; +require("../config").defineOptions(Editor.prototype, "editor", { + enableBasicAutocompletion: { + set: function(val) { + if (val) { + if (!this.completers) + this.completers = Array.isArray(val)? val: completers; + this.commands.addCommand(Autocomplete.startCommand); + } else { + this.commands.removeCommand(Autocomplete.startCommand); + } + }, + value: false + }, + enableLiveAutocompletion: { + set: function(val) { + if (val) { + if (!this.completers) + this.completers = Array.isArray(val)? val: completers; + this.commands.on('afterExec', doLiveAutocomplete); + } else { + this.commands.removeListener('afterExec', doLiveAutocomplete); + } + }, + value: false + }, + enableSnippets: { + set: function(val) { + if (val) { + this.commands.addCommand(expandSnippet); + this.on("changeMode", onChangeMode); + onChangeMode(null, this); + } else { + this.commands.removeCommand(expandSnippet); + this.off("changeMode", onChangeMode); + } + }, + value: false + } +}); +}); + (function() { + window.require(["ace/ext/language_tools"], function(m) { + if (typeof module == "object" && typeof exports == "object" && module) { + module.exports = m; + } + }); + })(); + \ No newline at end of file diff --git a/client/public/lib/ace-1.4.4/src/ext-searchbox.js b/client/public/lib/ace-1.4.4/src/ext-searchbox.js new file mode 100644 index 0000000000000000000000000000000000000000..87009b3a38cd7069f5b6548166e8743baf8f428a --- /dev/null +++ b/client/public/lib/ace-1.4.4/src/ext-searchbox.js @@ -0,0 +1,515 @@ +define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/keyboard/hash_handler","ace/lib/keys"], function(require, exports, module) { +"use strict"; + +var dom = require("../lib/dom"); +var lang = require("../lib/lang"); +var event = require("../lib/event"); +var searchboxCss = "\ +.ace_search {\ +background-color: #ddd;\ +color: #666;\ +border: 1px solid #cbcbcb;\ +border-top: 0 none;\ +overflow: hidden;\ +margin: 0;\ +padding: 4px 6px 0 4px;\ +position: absolute;\ +top: 0;\ +z-index: 99;\ +white-space: normal;\ +}\ +.ace_search.left {\ +border-left: 0 none;\ +border-radius: 0px 0px 5px 0px;\ +left: 0;\ +}\ +.ace_search.right {\ +border-radius: 0px 0px 0px 5px;\ +border-right: 0 none;\ +right: 0;\ +}\ +.ace_search_form, .ace_replace_form {\ +margin: 0 20px 4px 0;\ +overflow: hidden;\ +line-height: 1.9;\ +}\ +.ace_replace_form {\ +margin-right: 0;\ +}\ +.ace_search_form.ace_nomatch {\ +outline: 1px solid red;\ +}\ +.ace_search_field {\ +border-radius: 3px 0 0 3px;\ +background-color: white;\ +color: black;\ +border: 1px solid #cbcbcb;\ +border-right: 0 none;\ +outline: 0;\ +padding: 0;\ +font-size: inherit;\ +margin: 0;\ +line-height: inherit;\ +padding: 0 6px;\ +min-width: 17em;\ +vertical-align: top;\ +min-height: 1.8em;\ +box-sizing: content-box;\ +}\ +.ace_searchbtn {\ +border: 1px solid #cbcbcb;\ +line-height: inherit;\ +display: inline-block;\ +padding: 0 6px;\ +background: #fff;\ +border-right: 0 none;\ +border-left: 1px solid #dcdcdc;\ +cursor: pointer;\ +margin: 0;\ +position: relative;\ +color: #666;\ +}\ +.ace_searchbtn:last-child {\ +border-radius: 0 3px 3px 0;\ +border-right: 1px solid #cbcbcb;\ +}\ +.ace_searchbtn:disabled {\ +background: none;\ +cursor: default;\ +}\ +.ace_searchbtn:hover {\ +background-color: #eef1f6;\ +}\ +.ace_searchbtn.prev, .ace_searchbtn.next {\ +padding: 0px 0.7em\ +}\ +.ace_searchbtn.prev:after, .ace_searchbtn.next:after {\ +content: \"\";\ +border: solid 2px #888;\ +width: 0.5em;\ +height: 0.5em;\ +border-width: 2px 0 0 2px;\ +display:inline-block;\ +transform: rotate(-45deg);\ +}\ +.ace_searchbtn.next:after {\ +border-width: 0 2px 2px 0 ;\ +}\ +.ace_searchbtn_close {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAcCAYAAABRVo5BAAAAZ0lEQVR42u2SUQrAMAhDvazn8OjZBilCkYVVxiis8H4CT0VrAJb4WHT3C5xU2a2IQZXJjiQIRMdkEoJ5Q2yMqpfDIo+XY4k6h+YXOyKqTIj5REaxloNAd0xiKmAtsTHqW8sR2W5f7gCu5nWFUpVjZwAAAABJRU5ErkJggg==) no-repeat 50% 0;\ +border-radius: 50%;\ +border: 0 none;\ +color: #656565;\ +cursor: pointer;\ +font: 16px/16px Arial;\ +padding: 0;\ +height: 14px;\ +width: 14px;\ +top: 9px;\ +right: 7px;\ +position: absolute;\ +}\ +.ace_searchbtn_close:hover {\ +background-color: #656565;\ +background-position: 50% 100%;\ +color: white;\ +}\ +.ace_button {\ +margin-left: 2px;\ +cursor: pointer;\ +-webkit-user-select: none;\ +-moz-user-select: none;\ +-o-user-select: none;\ +-ms-user-select: none;\ +user-select: none;\ +overflow: hidden;\ +opacity: 0.7;\ +border: 1px solid rgba(100,100,100,0.23);\ +padding: 1px;\ +box-sizing: border-box!important;\ +color: black;\ +}\ +.ace_button:hover {\ +background-color: #eee;\ +opacity:1;\ +}\ +.ace_button:active {\ +background-color: #ddd;\ +}\ +.ace_button.checked {\ +border-color: #3399ff;\ +opacity:1;\ +}\ +.ace_search_options{\ +margin-bottom: 3px;\ +text-align: right;\ +-webkit-user-select: none;\ +-moz-user-select: none;\ +-o-user-select: none;\ +-ms-user-select: none;\ +user-select: none;\ +clear: both;\ +}\ +.ace_search_counter {\ +float: left;\ +font-family: arial;\ +padding: 0 8px;\ +}"; +var HashHandler = require("../keyboard/hash_handler").HashHandler; +var keyUtil = require("../lib/keys"); + +var MAX_COUNT = 999; + +dom.importCssString(searchboxCss, "ace_searchbox"); + +var SearchBox = function(editor, range, showReplaceForm) { + var div = dom.createElement("div"); + dom.buildDom(["div", {class:"ace_search right"}, + ["span", {action: "hide", class: "ace_searchbtn_close"}], + ["div", {class: "ace_search_form"}, + ["input", {class: "ace_search_field", placeholder: "Search for", spellcheck: "false"}], + ["span", {action: "findPrev", class: "ace_searchbtn prev"}, "\u200b"], + ["span", {action: "findNext", class: "ace_searchbtn next"}, "\u200b"], + ["span", {action: "findAll", class: "ace_searchbtn", title: "Alt-Enter"}, "All"] + ], + ["div", {class: "ace_replace_form"}, + ["input", {class: "ace_search_field", placeholder: "Replace with", spellcheck: "false"}], + ["span", {action: "replaceAndFindNext", class: "ace_searchbtn"}, "Replace"], + ["span", {action: "replaceAll", class: "ace_searchbtn"}, "All"] + ], + ["div", {class: "ace_search_options"}, + ["span", {action: "toggleReplace", class: "ace_button", title: "Toggle Replace mode", + style: "float:left;margin-top:-2px;padding:0 5px;"}, "+"], + ["span", {class: "ace_search_counter"}], + ["span", {action: "toggleRegexpMode", class: "ace_button", title: "RegExp Search"}, ".*"], + ["span", {action: "toggleCaseSensitive", class: "ace_button", title: "CaseSensitive Search"}, "Aa"], + ["span", {action: "toggleWholeWords", class: "ace_button", title: "Whole Word Search"}, "\\b"], + ["span", {action: "searchInSelection", class: "ace_button", title: "Search In Selection"}, "S"] + ] + ], div); + this.element = div.firstChild; + + this.setSession = this.setSession.bind(this); + + this.$init(); + this.setEditor(editor); + dom.importCssString(searchboxCss, "ace_searchbox", editor.container); +}; + +(function() { + this.setEditor = function(editor) { + editor.searchBox = this; + editor.renderer.scroller.appendChild(this.element); + this.editor = editor; + }; + + this.setSession = function(e) { + this.searchRange = null; + this.$syncOptions(true); + }; + + this.$initElements = function(sb) { + this.searchBox = sb.querySelector(".ace_search_form"); + this.replaceBox = sb.querySelector(".ace_replace_form"); + this.searchOption = sb.querySelector("[action=searchInSelection]"); + this.replaceOption = sb.querySelector("[action=toggleReplace]"); + this.regExpOption = sb.querySelector("[action=toggleRegexpMode]"); + this.caseSensitiveOption = sb.querySelector("[action=toggleCaseSensitive]"); + this.wholeWordOption = sb.querySelector("[action=toggleWholeWords]"); + this.searchInput = this.searchBox.querySelector(".ace_search_field"); + this.replaceInput = this.replaceBox.querySelector(".ace_search_field"); + this.searchCounter = sb.querySelector(".ace_search_counter"); + }; + + this.$init = function() { + var sb = this.element; + + this.$initElements(sb); + + var _this = this; + event.addListener(sb, "mousedown", function(e) { + setTimeout(function(){ + _this.activeInput.focus(); + }, 0); + event.stopPropagation(e); + }); + event.addListener(sb, "click", function(e) { + var t = e.target || e.srcElement; + var action = t.getAttribute("action"); + if (action && _this[action]) + _this[action](); + else if (_this.$searchBarKb.commands[action]) + _this.$searchBarKb.commands[action].exec(_this); + event.stopPropagation(e); + }); + + event.addCommandKeyListener(sb, function(e, hashId, keyCode) { + var keyString = keyUtil.keyCodeToString(keyCode); + var command = _this.$searchBarKb.findKeyCommand(hashId, keyString); + if (command && command.exec) { + command.exec(_this); + event.stopEvent(e); + } + }); + + this.$onChange = lang.delayedCall(function() { + _this.find(false, false); + }); + + event.addListener(this.searchInput, "input", function() { + _this.$onChange.schedule(20); + }); + event.addListener(this.searchInput, "focus", function() { + _this.activeInput = _this.searchInput; + _this.searchInput.value && _this.highlight(); + }); + event.addListener(this.replaceInput, "focus", function() { + _this.activeInput = _this.replaceInput; + _this.searchInput.value && _this.highlight(); + }); + }; + this.$closeSearchBarKb = new HashHandler([{ + bindKey: "Esc", + name: "closeSearchBar", + exec: function(editor) { + editor.searchBox.hide(); + } + }]); + this.$searchBarKb = new HashHandler(); + this.$searchBarKb.bindKeys({ + "Ctrl-f|Command-f": function(sb) { + var isReplace = sb.isReplace = !sb.isReplace; + sb.replaceBox.style.display = isReplace ? "" : "none"; + sb.replaceOption.checked = false; + sb.$syncOptions(); + sb.searchInput.focus(); + }, + "Ctrl-H|Command-Option-F": function(sb) { + if (sb.editor.getReadOnly()) + return; + sb.replaceOption.checked = true; + sb.$syncOptions(); + sb.replaceInput.focus(); + }, + "Ctrl-G|Command-G": function(sb) { + sb.findNext(); + }, + "Ctrl-Shift-G|Command-Shift-G": function(sb) { + sb.findPrev(); + }, + "esc": function(sb) { + setTimeout(function() { sb.hide();}); + }, + "Return": function(sb) { + if (sb.activeInput == sb.replaceInput) + sb.replace(); + sb.findNext(); + }, + "Shift-Return": function(sb) { + if (sb.activeInput == sb.replaceInput) + sb.replace(); + sb.findPrev(); + }, + "Alt-Return": function(sb) { + if (sb.activeInput == sb.replaceInput) + sb.replaceAll(); + sb.findAll(); + }, + "Tab": function(sb) { + (sb.activeInput == sb.replaceInput ? sb.searchInput : sb.replaceInput).focus(); + } + }); + + this.$searchBarKb.addCommands([{ + name: "toggleRegexpMode", + bindKey: {win: "Alt-R|Alt-/", mac: "Ctrl-Alt-R|Ctrl-Alt-/"}, + exec: function(sb) { + sb.regExpOption.checked = !sb.regExpOption.checked; + sb.$syncOptions(); + } + }, { + name: "toggleCaseSensitive", + bindKey: {win: "Alt-C|Alt-I", mac: "Ctrl-Alt-R|Ctrl-Alt-I"}, + exec: function(sb) { + sb.caseSensitiveOption.checked = !sb.caseSensitiveOption.checked; + sb.$syncOptions(); + } + }, { + name: "toggleWholeWords", + bindKey: {win: "Alt-B|Alt-W", mac: "Ctrl-Alt-B|Ctrl-Alt-W"}, + exec: function(sb) { + sb.wholeWordOption.checked = !sb.wholeWordOption.checked; + sb.$syncOptions(); + } + }, { + name: "toggleReplace", + exec: function(sb) { + sb.replaceOption.checked = !sb.replaceOption.checked; + sb.$syncOptions(); + } + }, { + name: "searchInSelection", + exec: function(sb) { + sb.searchOption.checked = !sb.searchRange; + sb.setSearchRange(sb.searchOption.checked && sb.editor.getSelectionRange()); + sb.$syncOptions(); + } + }]); + + this.setSearchRange = function(range) { + this.searchRange = range; + if (range) { + this.searchRangeMarker = this.editor.session.addMarker(range, "ace_active-line"); + } else if (this.searchRangeMarker) { + this.editor.session.removeMarker(this.searchRangeMarker); + this.searchRangeMarker = null; + } + }; + + this.$syncOptions = function(preventScroll) { + dom.setCssClass(this.replaceOption, "checked", this.searchRange); + dom.setCssClass(this.searchOption, "checked", this.searchOption.checked); + this.replaceOption.textContent = this.replaceOption.checked ? "-" : "+"; + dom.setCssClass(this.regExpOption, "checked", this.regExpOption.checked); + dom.setCssClass(this.wholeWordOption, "checked", this.wholeWordOption.checked); + dom.setCssClass(this.caseSensitiveOption, "checked", this.caseSensitiveOption.checked); + var readOnly = this.editor.getReadOnly(); + this.replaceOption.style.display = readOnly ? "none" : ""; + this.replaceBox.style.display = this.replaceOption.checked && !readOnly ? "" : "none"; + this.find(false, false, preventScroll); + }; + + this.highlight = function(re) { + this.editor.session.highlight(re || this.editor.$search.$options.re); + this.editor.renderer.updateBackMarkers(); + }; + this.find = function(skipCurrent, backwards, preventScroll) { + var range = this.editor.find(this.searchInput.value, { + skipCurrent: skipCurrent, + backwards: backwards, + wrap: true, + regExp: this.regExpOption.checked, + caseSensitive: this.caseSensitiveOption.checked, + wholeWord: this.wholeWordOption.checked, + preventScroll: preventScroll, + range: this.searchRange + }); + var noMatch = !range && this.searchInput.value; + dom.setCssClass(this.searchBox, "ace_nomatch", noMatch); + this.editor._emit("findSearchBox", { match: !noMatch }); + this.highlight(); + this.updateCounter(); + }; + this.updateCounter = function() { + var editor = this.editor; + var regex = editor.$search.$options.re; + var all = 0; + var before = 0; + if (regex) { + var value = this.searchRange + ? editor.session.getTextRange(this.searchRange) + : editor.getValue(); + + var offset = editor.session.doc.positionToIndex(editor.selection.anchor); + if (this.searchRange) + offset -= editor.session.doc.positionToIndex(this.searchRange.start); + + var last = regex.lastIndex = 0; + var m; + while ((m = regex.exec(value))) { + all++; + last = m.index; + if (last <= offset) + before++; + if (all > MAX_COUNT) + break; + if (!m[0]) { + regex.lastIndex = last += 1; + if (last >= value.length) + break; + } + } + } + this.searchCounter.textContent = before + " of " + (all > MAX_COUNT ? MAX_COUNT + "+" : all); + }; + this.findNext = function() { + this.find(true, false); + }; + this.findPrev = function() { + this.find(true, true); + }; + this.findAll = function(){ + var range = this.editor.findAll(this.searchInput.value, { + regExp: this.regExpOption.checked, + caseSensitive: this.caseSensitiveOption.checked, + wholeWord: this.wholeWordOption.checked + }); + var noMatch = !range && this.searchInput.value; + dom.setCssClass(this.searchBox, "ace_nomatch", noMatch); + this.editor._emit("findSearchBox", { match: !noMatch }); + this.highlight(); + this.hide(); + }; + this.replace = function() { + if (!this.editor.getReadOnly()) + this.editor.replace(this.replaceInput.value); + }; + this.replaceAndFindNext = function() { + if (!this.editor.getReadOnly()) { + this.editor.replace(this.replaceInput.value); + this.findNext(); + } + }; + this.replaceAll = function() { + if (!this.editor.getReadOnly()) + this.editor.replaceAll(this.replaceInput.value); + }; + + this.hide = function() { + this.active = false; + this.setSearchRange(null); + this.editor.off("changeSession", this.setSession); + + this.element.style.display = "none"; + this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb); + this.editor.focus(); + }; + this.show = function(value, isReplace) { + this.active = true; + this.editor.on("changeSession", this.setSession); + this.element.style.display = ""; + this.replaceOption.checked = isReplace; + + if (value) + this.searchInput.value = value; + + this.searchInput.focus(); + this.searchInput.select(); + + this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb); + + this.$syncOptions(true); + }; + + this.isFocused = function() { + var el = document.activeElement; + return el == this.searchInput || el == this.replaceInput; + }; +}).call(SearchBox.prototype); + +exports.SearchBox = SearchBox; + +exports.Search = function(editor, isReplace) { + var sb = editor.searchBox || new SearchBox(editor); + sb.show(editor.session.getTextRange(), isReplace); +}; + +}); + (function() { + window.require(["ace/ext/searchbox"], function(m) { + if (typeof module == "object" && typeof exports == "object" && module) { + module.exports = m; + } + }); + })(); + \ No newline at end of file diff --git a/client/public/lib/ace-1.4.4/src/mode-json.js b/client/public/lib/ace-1.4.4/src/mode-json.js new file mode 100644 index 0000000000000000000000000000000000000000..62c0bb4bb0918267118e1be7bad4d770c7225fe5 --- /dev/null +++ b/client/public/lib/ace-1.4.4/src/mode-json.js @@ -0,0 +1,327 @@ +define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextHighlightRules = require("./text_highlight_rules").TextHighlightRules; + +var JsonHighlightRules = function() { + this.$rules = { + "start" : [ + { + token : "variable", // single line + regex : '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)' + }, { + token : "string", // single line + regex : '"', + next : "string" + }, { + token : "constant.numeric", // hex + regex : "0[xX][0-9a-fA-F]+\\b" + }, { + token : "constant.numeric", // float + regex : "[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b" + }, { + token : "constant.language.boolean", + regex : "(?:true|false)\\b" + }, { + token : "text", // single quoted strings are not allowed + regex : "['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']" + }, { + token : "comment", // comments are not allowed, but who cares? + regex : "\\/\\/.*$" + }, { + token : "comment.start", // comments are not allowed, but who cares? + regex : "\\/\\*", + next : "comment" + }, { + token : "paren.lparen", + regex : "[[({]" + }, { + token : "paren.rparen", + regex : "[\\])}]" + }, { + token : "text", + regex : "\\s+" + } + ], + "string" : [ + { + token : "constant.language.escape", + regex : /\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/ + }, { + token : "string", + regex : '"|$', + next : "start" + }, { + defaultToken : "string" + } + ], + "comment" : [ + { + token : "comment.end", // comments are not allowed, but who cares? + regex : "\\*\\/", + next : "start" + }, { + defaultToken: "comment" + } + ] + }; + +}; + +oop.inherits(JsonHighlightRules, TextHighlightRules); + +exports.JsonHighlightRules = JsonHighlightRules; +}); + +define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"], function(require, exports, module) { +"use strict"; + +var Range = require("../range").Range; + +var MatchingBraceOutdent = function() {}; + +(function() { + + this.checkOutdent = function(line, input) { + if (! /^\s+$/.test(line)) + return false; + + return /^\s*\}/.test(input); + }; + + this.autoOutdent = function(doc, row) { + var line = doc.getLine(row); + var match = line.match(/^(\s*\})/); + + if (!match) return 0; + + var column = match[1].length; + var openBracePos = doc.findMatchingBracket({row: row, column: column}); + + if (!openBracePos || openBracePos.row == row) return 0; + + var indent = this.$getIndent(doc.getLine(openBracePos.row)); + doc.replace(new Range(row, 0, row, column-1), indent); + }; + + this.$getIndent = function(line) { + return line.match(/^\s*/)[0]; + }; + +}).call(MatchingBraceOutdent.prototype); + +exports.MatchingBraceOutdent = MatchingBraceOutdent; +}); + +define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"], function(require, exports, module) { +"use strict"; + +var oop = require("../../lib/oop"); +var Range = require("../../range").Range; +var BaseFoldMode = require("./fold_mode").FoldMode; + +var FoldMode = exports.FoldMode = function(commentRegex) { + if (commentRegex) { + this.foldingStartMarker = new RegExp( + this.foldingStartMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.start) + ); + this.foldingStopMarker = new RegExp( + this.foldingStopMarker.source.replace(/\|[^|]*?$/, "|" + commentRegex.end) + ); + } +}; +oop.inherits(FoldMode, BaseFoldMode); + +(function() { + + this.foldingStartMarker = /([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/; + this.foldingStopMarker = /^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/; + this.singleLineBlockCommentRe= /^\s*(\/\*).*\*\/\s*$/; + this.tripleStarBlockCommentRe = /^\s*(\/\*\*\*).*\*\/\s*$/; + this.startRegionRe = /^\s*(\/\*|\/\/)#?region\b/; + this._getFoldWidgetBase = this.getFoldWidget; + this.getFoldWidget = function(session, foldStyle, row) { + var line = session.getLine(row); + + if (this.singleLineBlockCommentRe.test(line)) { + if (!this.startRegionRe.test(line) && !this.tripleStarBlockCommentRe.test(line)) + return ""; + } + + var fw = this._getFoldWidgetBase(session, foldStyle, row); + + if (!fw && this.startRegionRe.test(line)) + return "start"; // lineCommentRegionStart + + return fw; + }; + + this.getFoldWidgetRange = function(session, foldStyle, row, forceMultiline) { + var line = session.getLine(row); + + if (this.startRegionRe.test(line)) + return this.getCommentRegionBlock(session, line, row); + + var match = line.match(this.foldingStartMarker); + if (match) { + var i = match.index; + + if (match[1]) + return this.openingBracketBlock(session, match[1], row, i); + + var range = session.getCommentFoldRange(row, i + match[0].length, 1); + + if (range && !range.isMultiLine()) { + if (forceMultiline) { + range = this.getSectionRange(session, row); + } else if (foldStyle != "all") + range = null; + } + + return range; + } + + if (foldStyle === "markbegin") + return; + + var match = line.match(this.foldingStopMarker); + if (match) { + var i = match.index + match[0].length; + + if (match[1]) + return this.closingBracketBlock(session, match[1], row, i); + + return session.getCommentFoldRange(row, i, -1); + } + }; + + this.getSectionRange = function(session, row) { + var line = session.getLine(row); + var startIndent = line.search(/\S/); + var startRow = row; + var startColumn = line.length; + row = row + 1; + var endRow = row; + var maxRow = session.getLength(); + while (++row < maxRow) { + line = session.getLine(row); + var indent = line.search(/\S/); + if (indent === -1) + continue; + if (startIndent > indent) + break; + var subRange = this.getFoldWidgetRange(session, "all", row); + + if (subRange) { + if (subRange.start.row <= startRow) { + break; + } else if (subRange.isMultiLine()) { + row = subRange.end.row; + } else if (startIndent == indent) { + break; + } + } + endRow = row; + } + + return new Range(startRow, startColumn, endRow, session.getLine(endRow).length); + }; + this.getCommentRegionBlock = function(session, line, row) { + var startColumn = line.search(/\s*$/); + var maxRow = session.getLength(); + var startRow = row; + + var re = /^\s*(?:\/\*|\/\/|--)#?(end)?region\b/; + var depth = 1; + while (++row < maxRow) { + line = session.getLine(row); + var m = re.exec(line); + if (!m) continue; + if (m[1]) depth--; + else depth++; + + if (!depth) break; + } + + var endRow = row; + if (endRow > startRow) { + return new Range(startRow, startColumn, endRow, line.length); + } + }; + +}).call(FoldMode.prototype); + +}); + +define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var TextMode = require("./text").Mode; +var HighlightRules = require("./json_highlight_rules").JsonHighlightRules; +var MatchingBraceOutdent = require("./matching_brace_outdent").MatchingBraceOutdent; +var CstyleBehaviour = require("./behaviour/cstyle").CstyleBehaviour; +var CStyleFoldMode = require("./folding/cstyle").FoldMode; +var WorkerClient = require("../worker/worker_client").WorkerClient; + +var Mode = function() { + this.HighlightRules = HighlightRules; + this.$outdent = new MatchingBraceOutdent(); + this.$behaviour = new CstyleBehaviour(); + this.foldingRules = new CStyleFoldMode(); +}; +oop.inherits(Mode, TextMode); + +(function() { + + this.getNextLineIndent = function(state, line, tab) { + var indent = this.$getIndent(line); + + if (state == "start") { + var match = line.match(/^.*[\{\(\[]\s*$/); + if (match) { + indent += tab; + } + } + + return indent; + }; + + this.checkOutdent = function(state, line, input) { + return this.$outdent.checkOutdent(line, input); + }; + + this.autoOutdent = function(state, doc, row) { + this.$outdent.autoOutdent(doc, row); + }; + + this.createWorker = function(session) { + var worker = new WorkerClient(["ace"], "ace/mode/json_worker", "JsonWorker"); + worker.attachToDocument(session.getDocument()); + + worker.on("annotate", function(e) { + session.setAnnotations(e.data); + }); + + worker.on("terminate", function() { + session.clearAnnotations(); + }); + + return worker; + }; + + + this.$id = "ace/mode/json"; +}).call(Mode.prototype); + +exports.Mode = Mode; +}); + (function() { + window.require(["ace/mode/json"], function(m) { + if (typeof module == "object" && typeof exports == "object" && module) { + module.exports = m; + } + }); + })(); + \ No newline at end of file diff --git a/client/public/lib/ace-1.4.4/src/snippets/json.js b/client/public/lib/ace-1.4.4/src/snippets/json.js new file mode 100644 index 0000000000000000000000000000000000000000..2632d293a3781153383ab99f18395625261a70ad --- /dev/null +++ b/client/public/lib/ace-1.4.4/src/snippets/json.js @@ -0,0 +1,14 @@ +define("ace/snippets/json", ["require", "exports", "module"], function (require, exports, module) { + "use strict"; + + exports.snippetText = undefined; + exports.scope = "json"; + +}); +(function () { + window.require(["ace/snippets/json"], function (m) { + if (typeof module == "object" && typeof exports == "object" && module) { + module.exports = m; + } + }); +})(); diff --git a/client/public/lib/ace-1.4.4/src/theme-chrome.js b/client/public/lib/ace-1.4.4/src/theme-chrome.js new file mode 100644 index 0000000000000000000000000000000000000000..d9a84bed291df1e5e8f8790a4b18bb47c5b6ca0b --- /dev/null +++ b/client/public/lib/ace-1.4.4/src/theme-chrome.js @@ -0,0 +1,136 @@ +define("ace/theme/chrome",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = false; +exports.cssClass = "ace-chrome"; +exports.cssText = ".ace-chrome .ace_gutter {\ +background: #ebebeb;\ +color: #333;\ +overflow : hidden;\ +}\ +.ace-chrome .ace_print-margin {\ +width: 1px;\ +background: #e8e8e8;\ +}\ +.ace-chrome {\ +background-color: #FFFFFF;\ +color: black;\ +}\ +.ace-chrome .ace_cursor {\ +color: black;\ +}\ +.ace-chrome .ace_invisible {\ +color: rgb(191, 191, 191);\ +}\ +.ace-chrome .ace_constant.ace_buildin {\ +color: rgb(88, 72, 246);\ +}\ +.ace-chrome .ace_constant.ace_language {\ +color: rgb(88, 92, 246);\ +}\ +.ace-chrome .ace_constant.ace_library {\ +color: rgb(6, 150, 14);\ +}\ +.ace-chrome .ace_invalid {\ +background-color: rgb(153, 0, 0);\ +color: white;\ +}\ +.ace-chrome .ace_fold {\ +}\ +.ace-chrome .ace_support.ace_function {\ +color: rgb(60, 76, 114);\ +}\ +.ace-chrome .ace_support.ace_constant {\ +color: rgb(6, 150, 14);\ +}\ +.ace-chrome .ace_support.ace_type,\ +.ace-chrome .ace_support.ace_class\ +.ace-chrome .ace_support.ace_other {\ +color: rgb(109, 121, 222);\ +}\ +.ace-chrome .ace_variable.ace_parameter {\ +font-style:italic;\ +color:#FD971F;\ +}\ +.ace-chrome .ace_keyword.ace_operator {\ +color: rgb(104, 118, 135);\ +}\ +.ace-chrome .ace_comment {\ +color: #236e24;\ +}\ +.ace-chrome .ace_comment.ace_doc {\ +color: #236e24;\ +}\ +.ace-chrome .ace_comment.ace_doc.ace_tag {\ +color: #236e24;\ +}\ +.ace-chrome .ace_constant.ace_numeric {\ +color: rgb(0, 0, 205);\ +}\ +.ace-chrome .ace_variable {\ +color: rgb(49, 132, 149);\ +}\ +.ace-chrome .ace_xml-pe {\ +color: rgb(104, 104, 91);\ +}\ +.ace-chrome .ace_entity.ace_name.ace_function {\ +color: #0000A2;\ +}\ +.ace-chrome .ace_heading {\ +color: rgb(12, 7, 255);\ +}\ +.ace-chrome .ace_list {\ +color:rgb(185, 6, 144);\ +}\ +.ace-chrome .ace_marker-layer .ace_selection {\ +background: rgb(181, 213, 255);\ +}\ +.ace-chrome .ace_marker-layer .ace_step {\ +background: rgb(252, 255, 0);\ +}\ +.ace-chrome .ace_marker-layer .ace_stack {\ +background: rgb(164, 229, 101);\ +}\ +.ace-chrome .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid rgb(192, 192, 192);\ +}\ +.ace-chrome .ace_marker-layer .ace_active-line {\ +background: rgba(0, 0, 0, 0.07);\ +}\ +.ace-chrome .ace_gutter-active-line {\ +background-color : #dcdcdc;\ +}\ +.ace-chrome .ace_marker-layer .ace_selected-word {\ +background: rgb(250, 250, 255);\ +border: 1px solid rgb(200, 200, 250);\ +}\ +.ace-chrome .ace_storage,\ +.ace-chrome .ace_keyword,\ +.ace-chrome .ace_meta.ace_tag {\ +color: rgb(147, 15, 128);\ +}\ +.ace-chrome .ace_string.ace_regex {\ +color: rgb(255, 0, 0)\ +}\ +.ace-chrome .ace_string {\ +color: #1A1AA6;\ +}\ +.ace-chrome .ace_entity.ace_other.ace_attribute-name {\ +color: #994409;\ +}\ +.ace-chrome .ace_indent-guide {\ +background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==\") right repeat-y;\ +}\ +"; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); + (function() { + window.require(["ace/theme/chrome"], function(m) { + if (typeof module == "object" && typeof exports == "object" && module) { + module.exports = m; + } + }); + })(); + \ No newline at end of file diff --git a/client/public/lib/ace-1.4.4/src/theme-dracula.js b/client/public/lib/ace-1.4.4/src/theme-dracula.js new file mode 100644 index 0000000000000000000000000000000000000000..feb62cd0ae3450cfcb4dd53795f6290562828af7 --- /dev/null +++ b/client/public/lib/ace-1.4.4/src/theme-dracula.js @@ -0,0 +1,136 @@ +define("ace/theme/dracula",["require","exports","module","ace/lib/dom"], function(require, exports, module) { + +exports.isDark = true; +exports.cssClass = "ace-dracula"; +exports.cssText = "\ +.ace-dracula .ace_gutter {\ +background: #282a36;\ +color: rgb(144,145,148)\ +}\ +.ace-dracula .ace_print-margin {\ +width: 1px;\ +background: #44475a\ +}\ +.ace-dracula {\ +background-color: #282a36;\ +color: #f8f8f2\ +}\ +.ace-dracula .ace_cursor {\ +color: #f8f8f0\ +}\ +.ace-dracula .ace_marker-layer .ace_selection {\ +background: #44475a\ +}\ +.ace-dracula.ace_multiselect .ace_selection.ace_start {\ +box-shadow: 0 0 3px 0px #282a36;\ +border-radius: 2px\ +}\ +.ace-dracula .ace_marker-layer .ace_step {\ +background: rgb(198, 219, 174)\ +}\ +.ace-dracula .ace_marker-layer .ace_bracket {\ +margin: -1px 0 0 -1px;\ +border: 1px solid #a29709\ +}\ +.ace-dracula .ace_marker-layer .ace_active-line {\ +background: #44475a\ +}\ +.ace-dracula .ace_gutter-active-line {\ +background-color: #44475a\ +}\ +.ace-dracula .ace_marker-layer .ace_selected-word {\ +box-shadow: 0px 0px 0px 1px #a29709;\ +border-radius: 3px;\ +}\ +.ace-dracula .ace_fold {\ +background-color: #50fa7b;\ +border-color: #f8f8f2\ +}\ +.ace-dracula .ace_keyword {\ +color: #ff79c6\ +}\ +.ace-dracula .ace_constant.ace_language {\ +color: #bd93f9\ +}\ +.ace-dracula .ace_constant.ace_numeric {\ +color: #bd93f9\ +}\ +.ace-dracula .ace_constant.ace_character {\ +color: #bd93f9\ +}\ +.ace-dracula .ace_constant.ace_character.ace_escape {\ +color: #ff79c6\ +}\ +.ace-dracula .ace_constant.ace_other {\ +color: #bd93f9\ +}\ +.ace-dracula .ace_support.ace_function {\ +color: #8be9fd\ +}\ +.ace-dracula .ace_support.ace_constant {\ +color: #6be5fd\ +}\ +.ace-dracula .ace_support.ace_class {\ +font-style: italic;\ +color: #66d9ef\ +}\ +.ace-dracula .ace_support.ace_type {\ +font-style: italic;\ +color: #66d9ef\ +}\ +.ace-dracula .ace_storage {\ +color: #ff79c6\ +}\ +.ace-dracula .ace_storage.ace_type {\ +font-style: italic;\ +color: #8be9fd\ +}\ +.ace-dracula .ace_invalid {\ +color: #F8F8F0;\ +background-color: #ff79c6\ +}\ +.ace-dracula .ace_invalid.ace_deprecated {\ +color: #F8F8F0;\ +background-color: #bd93f9\ +}\ +.ace-dracula .ace_string {\ +color: #f1fa8c\ +}\ +.ace-dracula .ace_comment {\ +color: #6272a4\ +}\ +.ace-dracula .ace_variable {\ +color: #50fa7b\ +}\ +.ace-dracula .ace_variable.ace_parameter {\ +font-style: italic;\ +color: #ffb86c\ +}\ +.ace-dracula .ace_entity.ace_other.ace_attribute-name {\ +color: #50fa7b\ +}\ +.ace-dracula .ace_entity.ace_name.ace_function {\ +color: #50fa7b\ +}\ +.ace-dracula .ace_entity.ace_name.ace_tag {\ +color: #ff79c6\ +}\ +.ace-dracula .ace_invisible {\ +color: #626680;\ +}\ +.ace-dracula .ace_indent-guide {\ +background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAEklEQVQImWNgYGBgYHB3d/8PAAOIAdULw8qMAAAAAElFTkSuQmCC) right repeat-y\ +}"; +exports.$selectionColorConflict = true; + +var dom = require("../lib/dom"); +dom.importCssString(exports.cssText, exports.cssClass); +}); + (function() { + window.require(["ace/theme/dracula"], function(m) { + if (typeof module == "object" && typeof exports == "object" && module) { + module.exports = m; + } + }); + })(); + \ No newline at end of file diff --git a/client/public/lib/ace-1.4.4/src/worker-json.js b/client/public/lib/ace-1.4.4/src/worker-json.js new file mode 100644 index 0000000000000000000000000000000000000000..3f5abb5c5fe07d9ce0a33a7234aa5dd26e5db63e --- /dev/null +++ b/client/public/lib/ace-1.4.4/src/worker-json.js @@ -0,0 +1,2401 @@ +"no use strict"; +!(function(window) { +if (typeof window.window != "undefined" && window.document) + return; +if (window.require && window.define) + return; + +if (!window.console) { + window.console = function() { + var msgs = Array.prototype.slice.call(arguments, 0); + postMessage({type: "log", data: msgs}); + }; + window.console.error = + window.console.warn = + window.console.log = + window.console.trace = window.console; +} +window.window = window; +window.ace = window; + +window.onerror = function(message, file, line, col, err) { + postMessage({type: "error", data: { + message: message, + data: err.data, + file: file, + line: line, + col: col, + stack: err.stack + }}); +}; + +window.normalizeModule = function(parentId, moduleName) { + // normalize plugin requires + if (moduleName.indexOf("!") !== -1) { + var chunks = moduleName.split("!"); + return window.normalizeModule(parentId, chunks[0]) + "!" + window.normalizeModule(parentId, chunks[1]); + } + // normalize relative requires + if (moduleName.charAt(0) == ".") { + var base = parentId.split("/").slice(0, -1).join("/"); + moduleName = (base ? base + "/" : "") + moduleName; + + while (moduleName.indexOf(".") !== -1 && previous != moduleName) { + var previous = moduleName; + moduleName = moduleName.replace(/^\.\//, "").replace(/\/\.\//, "/").replace(/[^\/]+\/\.\.\//, ""); + } + } + + return moduleName; +}; + +window.require = function require(parentId, id) { + if (!id) { + id = parentId; + parentId = null; + } + if (!id.charAt) + throw new Error("worker.js require() accepts only (parentId, id) as arguments"); + + id = window.normalizeModule(parentId, id); + + var module = window.require.modules[id]; + if (module) { + if (!module.initialized) { + module.initialized = true; + module.exports = module.factory().exports; + } + return module.exports; + } + + if (!window.require.tlns) + return console.log("unable to load " + id); + + var path = resolveModuleId(id, window.require.tlns); + if (path.slice(-3) != ".js") path += ".js"; + + window.require.id = id; + window.require.modules[id] = {}; // prevent infinite loop on broken modules + importScripts(path); + return window.require(parentId, id); +}; +function resolveModuleId(id, paths) { + var testPath = id, tail = ""; + while (testPath) { + var alias = paths[testPath]; + if (typeof alias == "string") { + return alias + tail; + } else if (alias) { + return alias.location.replace(/\/*$/, "/") + (tail || alias.main || alias.name); + } else if (alias === false) { + return ""; + } + var i = testPath.lastIndexOf("/"); + if (i === -1) break; + tail = testPath.substr(i) + tail; + testPath = testPath.slice(0, i); + } + return id; +} +window.require.modules = {}; +window.require.tlns = {}; + +window.define = function(id, deps, factory) { + if (arguments.length == 2) { + factory = deps; + if (typeof id != "string") { + deps = id; + id = window.require.id; + } + } else if (arguments.length == 1) { + factory = id; + deps = []; + id = window.require.id; + } + + if (typeof factory != "function") { + window.require.modules[id] = { + exports: factory, + initialized: true + }; + return; + } + + if (!deps.length) + // If there is no dependencies, we inject "require", "exports" and + // "module" as dependencies, to provide CommonJS compatibility. + deps = ["require", "exports", "module"]; + + var req = function(childId) { + return window.require(id, childId); + }; + + window.require.modules[id] = { + exports: {}, + factory: function() { + var module = this; + var returnExports = factory.apply(this, deps.slice(0, factory.length).map(function(dep) { + switch (dep) { + // Because "require", "exports" and "module" aren't actual + // dependencies, we must handle them seperately. + case "require": return req; + case "exports": return module.exports; + case "module": return module; + // But for all other dependencies, we can just go ahead and + // require them. + default: return req(dep); + } + })); + if (returnExports) + module.exports = returnExports; + return module; + } + }; +}; +window.define.amd = {}; +require.tlns = {}; +window.initBaseUrls = function initBaseUrls(topLevelNamespaces) { + for (var i in topLevelNamespaces) + require.tlns[i] = topLevelNamespaces[i]; +}; + +window.initSender = function initSender() { + + var EventEmitter = window.require("ace/lib/event_emitter").EventEmitter; + var oop = window.require("ace/lib/oop"); + + var Sender = function() {}; + + (function() { + + oop.implement(this, EventEmitter); + + this.callback = function(data, callbackId) { + postMessage({ + type: "call", + id: callbackId, + data: data + }); + }; + + this.emit = function(name, data) { + postMessage({ + type: "event", + name: name, + data: data + }); + }; + + }).call(Sender.prototype); + + return new Sender(); +}; + +var main = window.main = null; +var sender = window.sender = null; + +window.onmessage = function(e) { + var msg = e.data; + if (msg.event && sender) { + sender._signal(msg.event, msg.data); + } + else if (msg.command) { + if (main[msg.command]) + main[msg.command].apply(main, msg.args); + else if (window[msg.command]) + window[msg.command].apply(window, msg.args); + else + throw new Error("Unknown command:" + msg.command); + } + else if (msg.init) { + window.initBaseUrls(msg.tlns); + require("ace/lib/es5-shim"); + sender = window.sender = window.initSender(); + var clazz = require(msg.module)[msg.classname]; + main = window.main = new clazz(sender); + } +}; +})(this); + +define("ace/lib/oop",[], function(require, exports, module) { +"use strict"; + +exports.inherits = function(ctor, superCtor) { + ctor.super_ = superCtor; + ctor.prototype = Object.create(superCtor.prototype, { + constructor: { + value: ctor, + enumerable: false, + writable: true, + configurable: true + } + }); +}; + +exports.mixin = function(obj, mixin) { + for (var key in mixin) { + obj[key] = mixin[key]; + } + return obj; +}; + +exports.implement = function(proto, mixin) { + exports.mixin(proto, mixin); +}; + +}); + +define("ace/range",[], function(require, exports, module) { +"use strict"; +var comparePoints = function(p1, p2) { + return p1.row - p2.row || p1.column - p2.column; +}; +var Range = function(startRow, startColumn, endRow, endColumn) { + this.start = { + row: startRow, + column: startColumn + }; + + this.end = { + row: endRow, + column: endColumn + }; +}; + +(function() { + this.isEqual = function(range) { + return this.start.row === range.start.row && + this.end.row === range.end.row && + this.start.column === range.start.column && + this.end.column === range.end.column; + }; + this.toString = function() { + return ("Range: [" + this.start.row + "/" + this.start.column + + "] -> [" + this.end.row + "/" + this.end.column + "]"); + }; + + this.contains = function(row, column) { + return this.compare(row, column) == 0; + }; + this.compareRange = function(range) { + var cmp, + end = range.end, + start = range.start; + + cmp = this.compare(end.row, end.column); + if (cmp == 1) { + cmp = this.compare(start.row, start.column); + if (cmp == 1) { + return 2; + } else if (cmp == 0) { + return 1; + } else { + return 0; + } + } else if (cmp == -1) { + return -2; + } else { + cmp = this.compare(start.row, start.column); + if (cmp == -1) { + return -1; + } else if (cmp == 1) { + return 42; + } else { + return 0; + } + } + }; + this.comparePoint = function(p) { + return this.compare(p.row, p.column); + }; + this.containsRange = function(range) { + return this.comparePoint(range.start) == 0 && this.comparePoint(range.end) == 0; + }; + this.intersects = function(range) { + var cmp = this.compareRange(range); + return (cmp == -1 || cmp == 0 || cmp == 1); + }; + this.isEnd = function(row, column) { + return this.end.row == row && this.end.column == column; + }; + this.isStart = function(row, column) { + return this.start.row == row && this.start.column == column; + }; + this.setStart = function(row, column) { + if (typeof row == "object") { + this.start.column = row.column; + this.start.row = row.row; + } else { + this.start.row = row; + this.start.column = column; + } + }; + this.setEnd = function(row, column) { + if (typeof row == "object") { + this.end.column = row.column; + this.end.row = row.row; + } else { + this.end.row = row; + this.end.column = column; + } + }; + this.inside = function(row, column) { + if (this.compare(row, column) == 0) { + if (this.isEnd(row, column) || this.isStart(row, column)) { + return false; + } else { + return true; + } + } + return false; + }; + this.insideStart = function(row, column) { + if (this.compare(row, column) == 0) { + if (this.isEnd(row, column)) { + return false; + } else { + return true; + } + } + return false; + }; + this.insideEnd = function(row, column) { + if (this.compare(row, column) == 0) { + if (this.isStart(row, column)) { + return false; + } else { + return true; + } + } + return false; + }; + this.compare = function(row, column) { + if (!this.isMultiLine()) { + if (row === this.start.row) { + return column < this.start.column ? -1 : (column > this.end.column ? 1 : 0); + } + } + + if (row < this.start.row) + return -1; + + if (row > this.end.row) + return 1; + + if (this.start.row === row) + return column >= this.start.column ? 0 : -1; + + if (this.end.row === row) + return column <= this.end.column ? 0 : 1; + + return 0; + }; + this.compareStart = function(row, column) { + if (this.start.row == row && this.start.column == column) { + return -1; + } else { + return this.compare(row, column); + } + }; + this.compareEnd = function(row, column) { + if (this.end.row == row && this.end.column == column) { + return 1; + } else { + return this.compare(row, column); + } + }; + this.compareInside = function(row, column) { + if (this.end.row == row && this.end.column == column) { + return 1; + } else if (this.start.row == row && this.start.column == column) { + return -1; + } else { + return this.compare(row, column); + } + }; + this.clipRows = function(firstRow, lastRow) { + if (this.end.row > lastRow) + var end = {row: lastRow + 1, column: 0}; + else if (this.end.row < firstRow) + var end = {row: firstRow, column: 0}; + + if (this.start.row > lastRow) + var start = {row: lastRow + 1, column: 0}; + else if (this.start.row < firstRow) + var start = {row: firstRow, column: 0}; + + return Range.fromPoints(start || this.start, end || this.end); + }; + this.extend = function(row, column) { + var cmp = this.compare(row, column); + + if (cmp == 0) + return this; + else if (cmp == -1) + var start = {row: row, column: column}; + else + var end = {row: row, column: column}; + + return Range.fromPoints(start || this.start, end || this.end); + }; + + this.isEmpty = function() { + return (this.start.row === this.end.row && this.start.column === this.end.column); + }; + this.isMultiLine = function() { + return (this.start.row !== this.end.row); + }; + this.clone = function() { + return Range.fromPoints(this.start, this.end); + }; + this.collapseRows = function() { + if (this.end.column == 0) + return new Range(this.start.row, 0, Math.max(this.start.row, this.end.row-1), 0); + else + return new Range(this.start.row, 0, this.end.row, 0); + }; + this.toScreenRange = function(session) { + var screenPosStart = session.documentToScreenPosition(this.start); + var screenPosEnd = session.documentToScreenPosition(this.end); + + return new Range( + screenPosStart.row, screenPosStart.column, + screenPosEnd.row, screenPosEnd.column + ); + }; + this.moveBy = function(row, column) { + this.start.row += row; + this.start.column += column; + this.end.row += row; + this.end.column += column; + }; + +}).call(Range.prototype); +Range.fromPoints = function(start, end) { + return new Range(start.row, start.column, end.row, end.column); +}; +Range.comparePoints = comparePoints; + +Range.comparePoints = function(p1, p2) { + return p1.row - p2.row || p1.column - p2.column; +}; + + +exports.Range = Range; +}); + +define("ace/apply_delta",[], function(require, exports, module) { +"use strict"; + +function throwDeltaError(delta, errorText){ + console.log("Invalid Delta:", delta); + throw "Invalid Delta: " + errorText; +} + +function positionInDocument(docLines, position) { + return position.row >= 0 && position.row < docLines.length && + position.column >= 0 && position.column <= docLines[position.row].length; +} + +function validateDelta(docLines, delta) { + if (delta.action != "insert" && delta.action != "remove") + throwDeltaError(delta, "delta.action must be 'insert' or 'remove'"); + if (!(delta.lines instanceof Array)) + throwDeltaError(delta, "delta.lines must be an Array"); + if (!delta.start || !delta.end) + throwDeltaError(delta, "delta.start/end must be an present"); + var start = delta.start; + if (!positionInDocument(docLines, delta.start)) + throwDeltaError(delta, "delta.start must be contained in document"); + var end = delta.end; + if (delta.action == "remove" && !positionInDocument(docLines, end)) + throwDeltaError(delta, "delta.end must contained in document for 'remove' actions"); + var numRangeRows = end.row - start.row; + var numRangeLastLineChars = (end.column - (numRangeRows == 0 ? start.column : 0)); + if (numRangeRows != delta.lines.length - 1 || delta.lines[numRangeRows].length != numRangeLastLineChars) + throwDeltaError(delta, "delta.range must match delta lines"); +} + +exports.applyDelta = function(docLines, delta, doNotValidate) { + + var row = delta.start.row; + var startColumn = delta.start.column; + var line = docLines[row] || ""; + switch (delta.action) { + case "insert": + var lines = delta.lines; + if (lines.length === 1) { + docLines[row] = line.substring(0, startColumn) + delta.lines[0] + line.substring(startColumn); + } else { + var args = [row, 1].concat(delta.lines); + docLines.splice.apply(docLines, args); + docLines[row] = line.substring(0, startColumn) + docLines[row]; + docLines[row + delta.lines.length - 1] += line.substring(startColumn); + } + break; + case "remove": + var endColumn = delta.end.column; + var endRow = delta.end.row; + if (row === endRow) { + docLines[row] = line.substring(0, startColumn) + line.substring(endColumn); + } else { + docLines.splice( + row, endRow - row + 1, + line.substring(0, startColumn) + docLines[endRow].substring(endColumn) + ); + } + break; + } +}; +}); + +define("ace/lib/event_emitter",[], function(require, exports, module) { +"use strict"; + +var EventEmitter = {}; +var stopPropagation = function() { this.propagationStopped = true; }; +var preventDefault = function() { this.defaultPrevented = true; }; + +EventEmitter._emit = +EventEmitter._dispatchEvent = function(eventName, e) { + this._eventRegistry || (this._eventRegistry = {}); + this._defaultHandlers || (this._defaultHandlers = {}); + + var listeners = this._eventRegistry[eventName] || []; + var defaultHandler = this._defaultHandlers[eventName]; + if (!listeners.length && !defaultHandler) + return; + + if (typeof e != "object" || !e) + e = {}; + + if (!e.type) + e.type = eventName; + if (!e.stopPropagation) + e.stopPropagation = stopPropagation; + if (!e.preventDefault) + e.preventDefault = preventDefault; + + listeners = listeners.slice(); + for (var i=0; i this.row) + return; + + var point = $getTransformedPoint(delta, {row: this.row, column: this.column}, this.$insertRight); + this.setPosition(point.row, point.column, true); + }; + + function $pointsInOrder(point1, point2, equalPointsInOrder) { + var bColIsAfter = equalPointsInOrder ? point1.column <= point2.column : point1.column < point2.column; + return (point1.row < point2.row) || (point1.row == point2.row && bColIsAfter); + } + + function $getTransformedPoint(delta, point, moveIfEqual) { + var deltaIsInsert = delta.action == "insert"; + var deltaRowShift = (deltaIsInsert ? 1 : -1) * (delta.end.row - delta.start.row); + var deltaColShift = (deltaIsInsert ? 1 : -1) * (delta.end.column - delta.start.column); + var deltaStart = delta.start; + var deltaEnd = deltaIsInsert ? deltaStart : delta.end; // Collapse insert range. + if ($pointsInOrder(point, deltaStart, moveIfEqual)) { + return { + row: point.row, + column: point.column + }; + } + if ($pointsInOrder(deltaEnd, point, !moveIfEqual)) { + return { + row: point.row + deltaRowShift, + column: point.column + (point.row == deltaEnd.row ? deltaColShift : 0) + }; + } + + return { + row: deltaStart.row, + column: deltaStart.column + }; + } + this.setPosition = function(row, column, noClip) { + var pos; + if (noClip) { + pos = { + row: row, + column: column + }; + } else { + pos = this.$clipPositionToDocument(row, column); + } + + if (this.row == pos.row && this.column == pos.column) + return; + + var old = { + row: this.row, + column: this.column + }; + + this.row = pos.row; + this.column = pos.column; + this._signal("change", { + old: old, + value: pos + }); + }; + this.detach = function() { + this.document.removeEventListener("change", this.$onChange); + }; + this.attach = function(doc) { + this.document = doc || this.document; + this.document.on("change", this.$onChange); + }; + this.$clipPositionToDocument = function(row, column) { + var pos = {}; + + if (row >= this.document.getLength()) { + pos.row = Math.max(0, this.document.getLength() - 1); + pos.column = this.document.getLine(pos.row).length; + } + else if (row < 0) { + pos.row = 0; + pos.column = 0; + } + else { + pos.row = row; + pos.column = Math.min(this.document.getLine(pos.row).length, Math.max(0, column)); + } + + if (column < 0) + pos.column = 0; + + return pos; + }; + +}).call(Anchor.prototype); + +}); + +define("ace/document",[], function(require, exports, module) { +"use strict"; + +var oop = require("./lib/oop"); +var applyDelta = require("./apply_delta").applyDelta; +var EventEmitter = require("./lib/event_emitter").EventEmitter; +var Range = require("./range").Range; +var Anchor = require("./anchor").Anchor; + +var Document = function(textOrLines) { + this.$lines = [""]; + if (textOrLines.length === 0) { + this.$lines = [""]; + } else if (Array.isArray(textOrLines)) { + this.insertMergedLines({row: 0, column: 0}, textOrLines); + } else { + this.insert({row: 0, column:0}, textOrLines); + } +}; + +(function() { + + oop.implement(this, EventEmitter); + this.setValue = function(text) { + var len = this.getLength() - 1; + this.remove(new Range(0, 0, len, this.getLine(len).length)); + this.insert({row: 0, column: 0}, text); + }; + this.getValue = function() { + return this.getAllLines().join(this.getNewLineCharacter()); + }; + this.createAnchor = function(row, column) { + return new Anchor(this, row, column); + }; + if ("aaa".split(/a/).length === 0) { + this.$split = function(text) { + return text.replace(/\r\n|\r/g, "\n").split("\n"); + }; + } else { + this.$split = function(text) { + return text.split(/\r\n|\r|\n/); + }; + } + + + this.$detectNewLine = function(text) { + var match = text.match(/^.*?(\r\n|\r|\n)/m); + this.$autoNewLine = match ? match[1] : "\n"; + this._signal("changeNewLineMode"); + }; + this.getNewLineCharacter = function() { + switch (this.$newLineMode) { + case "windows": + return "\r\n"; + case "unix": + return "\n"; + default: + return this.$autoNewLine || "\n"; + } + }; + + this.$autoNewLine = ""; + this.$newLineMode = "auto"; + this.setNewLineMode = function(newLineMode) { + if (this.$newLineMode === newLineMode) + return; + + this.$newLineMode = newLineMode; + this._signal("changeNewLineMode"); + }; + this.getNewLineMode = function() { + return this.$newLineMode; + }; + this.isNewLine = function(text) { + return (text == "\r\n" || text == "\r" || text == "\n"); + }; + this.getLine = function(row) { + return this.$lines[row] || ""; + }; + this.getLines = function(firstRow, lastRow) { + return this.$lines.slice(firstRow, lastRow + 1); + }; + this.getAllLines = function() { + return this.getLines(0, this.getLength()); + }; + this.getLength = function() { + return this.$lines.length; + }; + this.getTextRange = function(range) { + return this.getLinesForRange(range).join(this.getNewLineCharacter()); + }; + this.getLinesForRange = function(range) { + var lines; + if (range.start.row === range.end.row) { + lines = [this.getLine(range.start.row).substring(range.start.column, range.end.column)]; + } else { + lines = this.getLines(range.start.row, range.end.row); + lines[0] = (lines[0] || "").substring(range.start.column); + var l = lines.length - 1; + if (range.end.row - range.start.row == l) + lines[l] = lines[l].substring(0, range.end.column); + } + return lines; + }; + this.insertLines = function(row, lines) { + console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."); + return this.insertFullLines(row, lines); + }; + this.removeLines = function(firstRow, lastRow) { + console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."); + return this.removeFullLines(firstRow, lastRow); + }; + this.insertNewLine = function(position) { + console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."); + return this.insertMergedLines(position, ["", ""]); + }; + this.insert = function(position, text) { + if (this.getLength() <= 1) + this.$detectNewLine(text); + + return this.insertMergedLines(position, this.$split(text)); + }; + this.insertInLine = function(position, text) { + var start = this.clippedPos(position.row, position.column); + var end = this.pos(position.row, position.column + text.length); + + this.applyDelta({ + start: start, + end: end, + action: "insert", + lines: [text] + }, true); + + return this.clonePos(end); + }; + + this.clippedPos = function(row, column) { + var length = this.getLength(); + if (row === undefined) { + row = length; + } else if (row < 0) { + row = 0; + } else if (row >= length) { + row = length - 1; + column = undefined; + } + var line = this.getLine(row); + if (column == undefined) + column = line.length; + column = Math.min(Math.max(column, 0), line.length); + return {row: row, column: column}; + }; + + this.clonePos = function(pos) { + return {row: pos.row, column: pos.column}; + }; + + this.pos = function(row, column) { + return {row: row, column: column}; + }; + + this.$clipPosition = function(position) { + var length = this.getLength(); + if (position.row >= length) { + position.row = Math.max(0, length - 1); + position.column = this.getLine(length - 1).length; + } else { + position.row = Math.max(0, position.row); + position.column = Math.min(Math.max(position.column, 0), this.getLine(position.row).length); + } + return position; + }; + this.insertFullLines = function(row, lines) { + row = Math.min(Math.max(row, 0), this.getLength()); + var column = 0; + if (row < this.getLength()) { + lines = lines.concat([""]); + column = 0; + } else { + lines = [""].concat(lines); + row--; + column = this.$lines[row].length; + } + this.insertMergedLines({row: row, column: column}, lines); + }; + this.insertMergedLines = function(position, lines) { + var start = this.clippedPos(position.row, position.column); + var end = { + row: start.row + lines.length - 1, + column: (lines.length == 1 ? start.column : 0) + lines[lines.length - 1].length + }; + + this.applyDelta({ + start: start, + end: end, + action: "insert", + lines: lines + }); + + return this.clonePos(end); + }; + this.remove = function(range) { + var start = this.clippedPos(range.start.row, range.start.column); + var end = this.clippedPos(range.end.row, range.end.column); + this.applyDelta({ + start: start, + end: end, + action: "remove", + lines: this.getLinesForRange({start: start, end: end}) + }); + return this.clonePos(start); + }; + this.removeInLine = function(row, startColumn, endColumn) { + var start = this.clippedPos(row, startColumn); + var end = this.clippedPos(row, endColumn); + + this.applyDelta({ + start: start, + end: end, + action: "remove", + lines: this.getLinesForRange({start: start, end: end}) + }, true); + + return this.clonePos(start); + }; + this.removeFullLines = function(firstRow, lastRow) { + firstRow = Math.min(Math.max(0, firstRow), this.getLength() - 1); + lastRow = Math.min(Math.max(0, lastRow ), this.getLength() - 1); + var deleteFirstNewLine = lastRow == this.getLength() - 1 && firstRow > 0; + var deleteLastNewLine = lastRow < this.getLength() - 1; + var startRow = ( deleteFirstNewLine ? firstRow - 1 : firstRow ); + var startCol = ( deleteFirstNewLine ? this.getLine(startRow).length : 0 ); + var endRow = ( deleteLastNewLine ? lastRow + 1 : lastRow ); + var endCol = ( deleteLastNewLine ? 0 : this.getLine(endRow).length ); + var range = new Range(startRow, startCol, endRow, endCol); + var deletedLines = this.$lines.slice(firstRow, lastRow + 1); + + this.applyDelta({ + start: range.start, + end: range.end, + action: "remove", + lines: this.getLinesForRange(range) + }); + return deletedLines; + }; + this.removeNewLine = function(row) { + if (row < this.getLength() - 1 && row >= 0) { + this.applyDelta({ + start: this.pos(row, this.getLine(row).length), + end: this.pos(row + 1, 0), + action: "remove", + lines: ["", ""] + }); + } + }; + this.replace = function(range, text) { + if (!(range instanceof Range)) + range = Range.fromPoints(range.start, range.end); + if (text.length === 0 && range.isEmpty()) + return range.start; + if (text == this.getTextRange(range)) + return range.end; + + this.remove(range); + var end; + if (text) { + end = this.insert(range.start, text); + } + else { + end = range.start; + } + + return end; + }; + this.applyDeltas = function(deltas) { + for (var i=0; i=0; i--) { + this.revertDelta(deltas[i]); + } + }; + this.applyDelta = function(delta, doNotValidate) { + var isInsert = delta.action == "insert"; + if (isInsert ? delta.lines.length <= 1 && !delta.lines[0] + : !Range.comparePoints(delta.start, delta.end)) { + return; + } + + if (isInsert && delta.lines.length > 20000) { + this.$splitAndapplyLargeDelta(delta, 20000); + } + else { + applyDelta(this.$lines, delta, doNotValidate); + this._signal("change", delta); + } + }; + + this.$splitAndapplyLargeDelta = function(delta, MAX) { + var lines = delta.lines; + var l = lines.length - MAX + 1; + var row = delta.start.row; + var column = delta.start.column; + for (var from = 0, to = 0; from < l; from = to) { + to += MAX - 1; + var chunk = lines.slice(from, to); + chunk.push(""); + this.applyDelta({ + start: this.pos(row + from, column), + end: this.pos(row + to, column = 0), + action: delta.action, + lines: chunk + }, true); + } + delta.lines = lines.slice(from); + delta.start.row = row + from; + delta.start.column = column; + this.applyDelta(delta, true); + }; + this.revertDelta = function(delta) { + this.applyDelta({ + start: this.clonePos(delta.start), + end: this.clonePos(delta.end), + action: (delta.action == "insert" ? "remove" : "insert"), + lines: delta.lines.slice() + }); + }; + this.indexToPosition = function(index, startRow) { + var lines = this.$lines || this.getAllLines(); + var newlineLength = this.getNewLineCharacter().length; + for (var i = startRow || 0, l = lines.length; i < l; i++) { + index -= lines[i].length + newlineLength; + if (index < 0) + return {row: i, column: index + lines[i].length + newlineLength}; + } + return {row: l-1, column: index + lines[l-1].length + newlineLength}; + }; + this.positionToIndex = function(pos, startRow) { + var lines = this.$lines || this.getAllLines(); + var newlineLength = this.getNewLineCharacter().length; + var index = 0; + var row = Math.min(pos.row, lines.length); + for (var i = startRow || 0; i < row; ++i) + index += lines[i].length + newlineLength; + + return index + pos.column; + }; + +}).call(Document.prototype); + +exports.Document = Document; +}); + +define("ace/lib/lang",[], function(require, exports, module) { +"use strict"; + +exports.last = function(a) { + return a[a.length - 1]; +}; + +exports.stringReverse = function(string) { + return string.split("").reverse().join(""); +}; + +exports.stringRepeat = function (string, count) { + var result = ''; + while (count > 0) { + if (count & 1) + result += string; + + if (count >>= 1) + string += string; + } + return result; +}; + +var trimBeginRegexp = /^\s\s*/; +var trimEndRegexp = /\s\s*$/; + +exports.stringTrimLeft = function (string) { + return string.replace(trimBeginRegexp, ''); +}; + +exports.stringTrimRight = function (string) { + return string.replace(trimEndRegexp, ''); +}; + +exports.copyObject = function(obj) { + var copy = {}; + for (var key in obj) { + copy[key] = obj[key]; + } + return copy; +}; + +exports.copyArray = function(array){ + var copy = []; + for (var i=0, l=array.length; i= '0' && ch <= '9') { + string += ch; + next(); + } + if (ch === '.') { + string += '.'; + while (next() && ch >= '0' && ch <= '9') { + string += ch; + } + } + if (ch === 'e' || ch === 'E') { + string += ch; + next(); + if (ch === '-' || ch === '+') { + string += ch; + next(); + } + while (ch >= '0' && ch <= '9') { + string += ch; + next(); + } + } + number = +string; + if (isNaN(number)) { + error("Bad number"); + } else { + return number; + } + }, + + string = function () { + + var hex, + i, + string = '', + uffff; + + if (ch === '"') { + while (next()) { + if (ch === '"') { + next(); + return string; + } else if (ch === '\\') { + next(); + if (ch === 'u') { + uffff = 0; + for (i = 0; i < 4; i += 1) { + hex = parseInt(next(), 16); + if (!isFinite(hex)) { + break; + } + uffff = uffff * 16 + hex; + } + string += String.fromCharCode(uffff); + } else if (typeof escapee[ch] === 'string') { + string += escapee[ch]; + } else { + break; + } + } else if (ch == "\n" || ch == "\r") { + break; + } else { + string += ch; + } + } + } + error("Bad string"); + }, + + white = function () { + + while (ch && ch <= ' ') { + next(); + } + }, + + word = function () { + + switch (ch) { + case 't': + next('t'); + next('r'); + next('u'); + next('e'); + return true; + case 'f': + next('f'); + next('a'); + next('l'); + next('s'); + next('e'); + return false; + case 'n': + next('n'); + next('u'); + next('l'); + next('l'); + return null; + } + error("Unexpected '" + ch + "'"); + }, + + value, // Place holder for the value function. + + array = function () { + + var array = []; + + if (ch === '[') { + next('['); + white(); + if (ch === ']') { + next(']'); + return array; // empty array + } + while (ch) { + array.push(value()); + white(); + if (ch === ']') { + next(']'); + return array; + } + next(','); + white(); + } + } + error("Bad array"); + }, + + object = function () { + + var key, + object = {}; + + if (ch === '{') { + next('{'); + white(); + if (ch === '}') { + next('}'); + return object; // empty object + } + while (ch) { + key = string(); + white(); + next(':'); + if (Object.hasOwnProperty.call(object, key)) { + error('Duplicate key "' + key + '"'); + } + object[key] = value(); + white(); + if (ch === '}') { + next('}'); + return object; + } + next(','); + white(); + } + } + error("Bad object"); + }; + + value = function () { + + white(); + switch (ch) { + case '{': + return object(); + case '[': + return array(); + case '"': + return string(); + case '-': + return number(); + default: + return ch >= '0' && ch <= '9' ? number() : word(); + } + }; + + return function (source, reviver) { + var result; + + text = source; + at = 0; + ch = ' '; + result = value(); + white(); + if (ch) { + error("Syntax error"); + } + + return typeof reviver === 'function' ? function walk(holder, key) { + var k, v, value = holder[key]; + if (value && typeof value === 'object') { + for (k in value) { + if (Object.hasOwnProperty.call(value, k)) { + v = walk(value, k); + if (v !== undefined) { + value[k] = v; + } else { + delete value[k]; + } + } + } + } + return reviver.call(holder, key, value); + }({'': result}, '') : result; + }; +}); + +define("ace/mode/json_worker",[], function(require, exports, module) { +"use strict"; + +var oop = require("../lib/oop"); +var Mirror = require("../worker/mirror").Mirror; +var parse = require("./json/json_parse"); + +var JsonWorker = exports.JsonWorker = function(sender) { + Mirror.call(this, sender); + this.setTimeout(200); +}; + +oop.inherits(JsonWorker, Mirror); + +(function() { + + this.onUpdate = function() { + var value = this.doc.getValue(); + var errors = []; + try { + if (value) + parse(value); + } catch (e) { + var pos = this.doc.indexToPosition(e.at-1); + errors.push({ + row: pos.row, + column: pos.column, + text: e.message, + type: "error" + }); + } + this.sender.emit("annotate", errors); + }; + +}).call(JsonWorker.prototype); + +}); + +define("ace/lib/es5-shim",[], function(require, exports, module) { + +function Empty() {} + +if (!Function.prototype.bind) { + Function.prototype.bind = function bind(that) { // .length is 1 + var target = this; + if (typeof target != "function") { + throw new TypeError("Function.prototype.bind called on incompatible " + target); + } + var args = slice.call(arguments, 1); // for normal call + var bound = function () { + + if (this instanceof bound) { + + var result = target.apply( + this, + args.concat(slice.call(arguments)) + ); + if (Object(result) === result) { + return result; + } + return this; + + } else { + return target.apply( + that, + args.concat(slice.call(arguments)) + ); + + } + + }; + if(target.prototype) { + Empty.prototype = target.prototype; + bound.prototype = new Empty(); + Empty.prototype = null; + } + return bound; + }; +} +var call = Function.prototype.call; +var prototypeOfArray = Array.prototype; +var prototypeOfObject = Object.prototype; +var slice = prototypeOfArray.slice; +var _toString = call.bind(prototypeOfObject.toString); +var owns = call.bind(prototypeOfObject.hasOwnProperty); +var defineGetter; +var defineSetter; +var lookupGetter; +var lookupSetter; +var supportsAccessors; +if ((supportsAccessors = owns(prototypeOfObject, "__defineGetter__"))) { + defineGetter = call.bind(prototypeOfObject.__defineGetter__); + defineSetter = call.bind(prototypeOfObject.__defineSetter__); + lookupGetter = call.bind(prototypeOfObject.__lookupGetter__); + lookupSetter = call.bind(prototypeOfObject.__lookupSetter__); +} +if ([1,2].splice(0).length != 2) { + if(function() { // test IE < 9 to splice bug - see issue #138 + function makeArray(l) { + var a = new Array(l+2); + a[0] = a[1] = 0; + return a; + } + var array = [], lengthBefore; + + array.splice.apply(array, makeArray(20)); + array.splice.apply(array, makeArray(26)); + + lengthBefore = array.length; //46 + array.splice(5, 0, "XXX"); // add one element + + lengthBefore + 1 == array.length + + if (lengthBefore + 1 == array.length) { + return true;// has right splice implementation without bugs + } + }()) {//IE 6/7 + var array_splice = Array.prototype.splice; + Array.prototype.splice = function(start, deleteCount) { + if (!arguments.length) { + return []; + } else { + return array_splice.apply(this, [ + start === void 0 ? 0 : start, + deleteCount === void 0 ? (this.length - start) : deleteCount + ].concat(slice.call(arguments, 2))) + } + }; + } else {//IE8 + Array.prototype.splice = function(pos, removeCount){ + var length = this.length; + if (pos > 0) { + if (pos > length) + pos = length; + } else if (pos == void 0) { + pos = 0; + } else if (pos < 0) { + pos = Math.max(length + pos, 0); + } + + if (!(pos+removeCount < length)) + removeCount = length - pos; + + var removed = this.slice(pos, pos+removeCount); + var insert = slice.call(arguments, 2); + var add = insert.length; + if (pos === length) { + if (add) { + this.push.apply(this, insert); + } + } else { + var remove = Math.min(removeCount, length - pos); + var tailOldPos = pos + remove; + var tailNewPos = tailOldPos + add - remove; + var tailCount = length - tailOldPos; + var lengthAfterRemove = length - remove; + + if (tailNewPos < tailOldPos) { // case A + for (var i = 0; i < tailCount; ++i) { + this[tailNewPos+i] = this[tailOldPos+i]; + } + } else if (tailNewPos > tailOldPos) { // case B + for (i = tailCount; i--; ) { + this[tailNewPos+i] = this[tailOldPos+i]; + } + } // else, add == remove (nothing to do) + + if (add && pos === lengthAfterRemove) { + this.length = lengthAfterRemove; // truncate array + this.push.apply(this, insert); + } else { + this.length = lengthAfterRemove + add; // reserves space + for (i = 0; i < add; ++i) { + this[pos+i] = insert[i]; + } + } + } + return removed; + }; + } +} +if (!Array.isArray) { + Array.isArray = function isArray(obj) { + return _toString(obj) == "[object Array]"; + }; +} +var boxedString = Object("a"), + splitString = boxedString[0] != "a" || !(0 in boxedString); + +if (!Array.prototype.forEach) { + Array.prototype.forEach = function forEach(fun /*, thisp*/) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + thisp = arguments[1], + i = -1, + length = self.length >>> 0; + if (_toString(fun) != "[object Function]") { + throw new TypeError(); // TODO message + } + + while (++i < length) { + if (i in self) { + fun.call(thisp, self[i], i, object); + } + } + }; +} +if (!Array.prototype.map) { + Array.prototype.map = function map(fun /*, thisp*/) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + length = self.length >>> 0, + result = Array(length), + thisp = arguments[1]; + if (_toString(fun) != "[object Function]") { + throw new TypeError(fun + " is not a function"); + } + + for (var i = 0; i < length; i++) { + if (i in self) + result[i] = fun.call(thisp, self[i], i, object); + } + return result; + }; +} +if (!Array.prototype.filter) { + Array.prototype.filter = function filter(fun /*, thisp */) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + length = self.length >>> 0, + result = [], + value, + thisp = arguments[1]; + if (_toString(fun) != "[object Function]") { + throw new TypeError(fun + " is not a function"); + } + + for (var i = 0; i < length; i++) { + if (i in self) { + value = self[i]; + if (fun.call(thisp, value, i, object)) { + result.push(value); + } + } + } + return result; + }; +} +if (!Array.prototype.every) { + Array.prototype.every = function every(fun /*, thisp */) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + length = self.length >>> 0, + thisp = arguments[1]; + if (_toString(fun) != "[object Function]") { + throw new TypeError(fun + " is not a function"); + } + + for (var i = 0; i < length; i++) { + if (i in self && !fun.call(thisp, self[i], i, object)) { + return false; + } + } + return true; + }; +} +if (!Array.prototype.some) { + Array.prototype.some = function some(fun /*, thisp */) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + length = self.length >>> 0, + thisp = arguments[1]; + if (_toString(fun) != "[object Function]") { + throw new TypeError(fun + " is not a function"); + } + + for (var i = 0; i < length; i++) { + if (i in self && fun.call(thisp, self[i], i, object)) { + return true; + } + } + return false; + }; +} +if (!Array.prototype.reduce) { + Array.prototype.reduce = function reduce(fun /*, initial*/) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + length = self.length >>> 0; + if (_toString(fun) != "[object Function]") { + throw new TypeError(fun + " is not a function"); + } + if (!length && arguments.length == 1) { + throw new TypeError("reduce of empty array with no initial value"); + } + + var i = 0; + var result; + if (arguments.length >= 2) { + result = arguments[1]; + } else { + do { + if (i in self) { + result = self[i++]; + break; + } + if (++i >= length) { + throw new TypeError("reduce of empty array with no initial value"); + } + } while (true); + } + + for (; i < length; i++) { + if (i in self) { + result = fun.call(void 0, result, self[i], i, object); + } + } + + return result; + }; +} +if (!Array.prototype.reduceRight) { + Array.prototype.reduceRight = function reduceRight(fun /*, initial*/) { + var object = toObject(this), + self = splitString && _toString(this) == "[object String]" ? + this.split("") : + object, + length = self.length >>> 0; + if (_toString(fun) != "[object Function]") { + throw new TypeError(fun + " is not a function"); + } + if (!length && arguments.length == 1) { + throw new TypeError("reduceRight of empty array with no initial value"); + } + + var result, i = length - 1; + if (arguments.length >= 2) { + result = arguments[1]; + } else { + do { + if (i in self) { + result = self[i--]; + break; + } + if (--i < 0) { + throw new TypeError("reduceRight of empty array with no initial value"); + } + } while (true); + } + + do { + if (i in this) { + result = fun.call(void 0, result, self[i], i, object); + } + } while (i--); + + return result; + }; +} +if (!Array.prototype.indexOf || ([0, 1].indexOf(1, 2) != -1)) { + Array.prototype.indexOf = function indexOf(sought /*, fromIndex */ ) { + var self = splitString && _toString(this) == "[object String]" ? + this.split("") : + toObject(this), + length = self.length >>> 0; + + if (!length) { + return -1; + } + + var i = 0; + if (arguments.length > 1) { + i = toInteger(arguments[1]); + } + i = i >= 0 ? i : Math.max(0, length + i); + for (; i < length; i++) { + if (i in self && self[i] === sought) { + return i; + } + } + return -1; + }; +} +if (!Array.prototype.lastIndexOf || ([0, 1].lastIndexOf(0, -3) != -1)) { + Array.prototype.lastIndexOf = function lastIndexOf(sought /*, fromIndex */) { + var self = splitString && _toString(this) == "[object String]" ? + this.split("") : + toObject(this), + length = self.length >>> 0; + + if (!length) { + return -1; + } + var i = length - 1; + if (arguments.length > 1) { + i = Math.min(i, toInteger(arguments[1])); + } + i = i >= 0 ? i : length - Math.abs(i); + for (; i >= 0; i--) { + if (i in self && sought === self[i]) { + return i; + } + } + return -1; + }; +} +if (!Object.getPrototypeOf) { + Object.getPrototypeOf = function getPrototypeOf(object) { + return object.__proto__ || ( + object.constructor ? + object.constructor.prototype : + prototypeOfObject + ); + }; +} +if (!Object.getOwnPropertyDescriptor) { + var ERR_NON_OBJECT = "Object.getOwnPropertyDescriptor called on a " + + "non-object: "; + Object.getOwnPropertyDescriptor = function getOwnPropertyDescriptor(object, property) { + if ((typeof object != "object" && typeof object != "function") || object === null) + throw new TypeError(ERR_NON_OBJECT + object); + if (!owns(object, property)) + return; + + var descriptor, getter, setter; + descriptor = { enumerable: true, configurable: true }; + if (supportsAccessors) { + var prototype = object.__proto__; + object.__proto__ = prototypeOfObject; + + var getter = lookupGetter(object, property); + var setter = lookupSetter(object, property); + object.__proto__ = prototype; + + if (getter || setter) { + if (getter) descriptor.get = getter; + if (setter) descriptor.set = setter; + return descriptor; + } + } + descriptor.value = object[property]; + return descriptor; + }; +} +if (!Object.getOwnPropertyNames) { + Object.getOwnPropertyNames = function getOwnPropertyNames(object) { + return Object.keys(object); + }; +} +if (!Object.create) { + var createEmpty; + if (Object.prototype.__proto__ === null) { + createEmpty = function () { + return { "__proto__": null }; + }; + } else { + createEmpty = function () { + var empty = {}; + for (var i in empty) + empty[i] = null; + empty.constructor = + empty.hasOwnProperty = + empty.propertyIsEnumerable = + empty.isPrototypeOf = + empty.toLocaleString = + empty.toString = + empty.valueOf = + empty.__proto__ = null; + return empty; + } + } + + Object.create = function create(prototype, properties) { + var object; + if (prototype === null) { + object = createEmpty(); + } else { + if (typeof prototype != "object") + throw new TypeError("typeof prototype["+(typeof prototype)+"] != 'object'"); + var Type = function () {}; + Type.prototype = prototype; + object = new Type(); + object.__proto__ = prototype; + } + if (properties !== void 0) + Object.defineProperties(object, properties); + return object; + }; +} + +function doesDefinePropertyWork(object) { + try { + Object.defineProperty(object, "sentinel", {}); + return "sentinel" in object; + } catch (exception) { + } +} +if (Object.defineProperty) { + var definePropertyWorksOnObject = doesDefinePropertyWork({}); + var definePropertyWorksOnDom = typeof document == "undefined" || + doesDefinePropertyWork(document.createElement("div")); + if (!definePropertyWorksOnObject || !definePropertyWorksOnDom) { + var definePropertyFallback = Object.defineProperty; + } +} + +if (!Object.defineProperty || definePropertyFallback) { + var ERR_NON_OBJECT_DESCRIPTOR = "Property description must be an object: "; + var ERR_NON_OBJECT_TARGET = "Object.defineProperty called on non-object: " + var ERR_ACCESSORS_NOT_SUPPORTED = "getters & setters can not be defined " + + "on this javascript engine"; + + Object.defineProperty = function defineProperty(object, property, descriptor) { + if ((typeof object != "object" && typeof object != "function") || object === null) + throw new TypeError(ERR_NON_OBJECT_TARGET + object); + if ((typeof descriptor != "object" && typeof descriptor != "function") || descriptor === null) + throw new TypeError(ERR_NON_OBJECT_DESCRIPTOR + descriptor); + if (definePropertyFallback) { + try { + return definePropertyFallback.call(Object, object, property, descriptor); + } catch (exception) { + } + } + if (owns(descriptor, "value")) { + + if (supportsAccessors && (lookupGetter(object, property) || + lookupSetter(object, property))) + { + var prototype = object.__proto__; + object.__proto__ = prototypeOfObject; + delete object[property]; + object[property] = descriptor.value; + object.__proto__ = prototype; + } else { + object[property] = descriptor.value; + } + } else { + if (!supportsAccessors) + throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED); + if (owns(descriptor, "get")) + defineGetter(object, property, descriptor.get); + if (owns(descriptor, "set")) + defineSetter(object, property, descriptor.set); + } + + return object; + }; +} +if (!Object.defineProperties) { + Object.defineProperties = function defineProperties(object, properties) { + for (var property in properties) { + if (owns(properties, property)) + Object.defineProperty(object, property, properties[property]); + } + return object; + }; +} +if (!Object.seal) { + Object.seal = function seal(object) { + return object; + }; +} +if (!Object.freeze) { + Object.freeze = function freeze(object) { + return object; + }; +} +try { + Object.freeze(function () {}); +} catch (exception) { + Object.freeze = (function freeze(freezeObject) { + return function freeze(object) { + if (typeof object == "function") { + return object; + } else { + return freezeObject(object); + } + }; + })(Object.freeze); +} +if (!Object.preventExtensions) { + Object.preventExtensions = function preventExtensions(object) { + return object; + }; +} +if (!Object.isSealed) { + Object.isSealed = function isSealed(object) { + return false; + }; +} +if (!Object.isFrozen) { + Object.isFrozen = function isFrozen(object) { + return false; + }; +} +if (!Object.isExtensible) { + Object.isExtensible = function isExtensible(object) { + if (Object(object) === object) { + throw new TypeError(); // TODO message + } + var name = ''; + while (owns(object, name)) { + name += '?'; + } + object[name] = true; + var returnValue = owns(object, name); + delete object[name]; + return returnValue; + }; +} +if (!Object.keys) { + var hasDontEnumBug = true, + dontEnums = [ + "toString", + "toLocaleString", + "valueOf", + "hasOwnProperty", + "isPrototypeOf", + "propertyIsEnumerable", + "constructor" + ], + dontEnumsLength = dontEnums.length; + + for (var key in {"toString": null}) { + hasDontEnumBug = false; + } + + Object.keys = function keys(object) { + + if ( + (typeof object != "object" && typeof object != "function") || + object === null + ) { + throw new TypeError("Object.keys called on a non-object"); + } + + var keys = []; + for (var name in object) { + if (owns(object, name)) { + keys.push(name); + } + } + + if (hasDontEnumBug) { + for (var i = 0, ii = dontEnumsLength; i < ii; i++) { + var dontEnum = dontEnums[i]; + if (owns(object, dontEnum)) { + keys.push(dontEnum); + } + } + } + return keys; + }; + +} +if (!Date.now) { + Date.now = function now() { + return new Date().getTime(); + }; +} +var ws = "\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003" + + "\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028" + + "\u2029\uFEFF"; +if (!String.prototype.trim || ws.trim()) { + ws = "[" + ws + "]"; + var trimBeginRegexp = new RegExp("^" + ws + ws + "*"), + trimEndRegexp = new RegExp(ws + ws + "*$"); + String.prototype.trim = function trim() { + return String(this).replace(trimBeginRegexp, "").replace(trimEndRegexp, ""); + }; +} + +function toInteger(n) { + n = +n; + if (n !== n) { // isNaN + n = 0; + } else if (n !== 0 && n !== (1/0) && n !== -(1/0)) { + n = (n > 0 || -1) * Math.floor(Math.abs(n)); + } + return n; +} + +function isPrimitive(input) { + var type = typeof input; + return ( + input === null || + type === "undefined" || + type === "boolean" || + type === "number" || + type === "string" + ); +} + +function toPrimitive(input) { + var val, valueOf, toString; + if (isPrimitive(input)) { + return input; + } + valueOf = input.valueOf; + if (typeof valueOf === "function") { + val = valueOf.call(input); + if (isPrimitive(val)) { + return val; + } + } + toString = input.toString; + if (typeof toString === "function") { + val = toString.call(input); + if (isPrimitive(val)) { + return val; + } + } + throw new TypeError(); +} +var toObject = function (o) { + if (o == null) { // this matches both null and undefined + throw new TypeError("can't convert "+o+" to object"); + } + return Object(o); +}; + +}); diff --git a/client/public/manifest.json b/client/public/manifest.json new file mode 100644 index 0000000000000000000000000000000000000000..1f2f141fafdeb1d31d85b008ec5132840c5e6362 --- /dev/null +++ b/client/public/manifest.json @@ -0,0 +1,15 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/client/public/robots.txt b/client/public/robots.txt new file mode 100644 index 0000000000000000000000000000000000000000..e9e57dc4d41b9b46e05112e9f45b7ea6ac0ba15e --- /dev/null +++ b/client/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/client/src/App.js b/client/src/App.js new file mode 100644 index 0000000000000000000000000000000000000000..62013397c1564adedacd551fdbd46659f2b519bb --- /dev/null +++ b/client/src/App.js @@ -0,0 +1,56 @@ +import React from "react"; +import SnakeHeader from "./base/header"; +import SnakeContent from "./base/content"; +import { HashRouter as Router, Switch, Route } from "react-router-dom"; +import { routes } from "./router"; +import { Layout } from "antd"; + +const { Header, Footer, Content } = Layout; + +function App() { + return ( + + +
+ +
+ + + + {routes.map((route, i) => ( + + ))} + + + +
+ 技术支持:seebin | 钉钉交流群:21958681 +
+
+
+ ); +} + +function RouteWithSubRoutes(route) { + document.title = route.title; + return ( + ( + // pass the sub-routes down to keep nesting + + )} + /> + ); +} + +export default App; diff --git a/client/src/base/ace.js b/client/src/base/ace.js new file mode 100644 index 0000000000000000000000000000000000000000..4905fa28bae7fad989d830421f198e9c8d470e47 --- /dev/null +++ b/client/src/base/ace.js @@ -0,0 +1,164 @@ +import React from "react"; +import { LoadScript } from "../utils/load-script"; + +export class Ace extends React.Component { + constructor(props) { + super(props); + LoadScript([ + "./lib/ace-1.4.4/src/ace.js", + "./lib/ace-1.4.4/src/theme-chrome.js", + "./lib/ace-1.4.4/src/mode-json.js", + "./lib/ace-1.4.4/src/snippets/json.js", + "./lib/ace-1.4.4/src/ext-language_tools.js", + ]) + .then(() => { + this.setState({ + isLoadAce: true, + }); + }) + .catch((reason) => { + console.error(">>>>>>", reason); + }); + this.state = { + isLoadAce: false, + }; + React.forwardRef(this.render); + this.timer = null; + } + // 启动全屏 + launchFullscreen(element) { + if (element.requestFullscreen) { + element.requestFullscreen(); + } else if (element.mozRequestFullScreen) { + element.mozRequestFullScreen(); + } else if (element.webkitRequestFullscreen) { + element.webkitRequestFullscreen(); + } else if (element.msRequestFullscreen) { + element.msRequestFullscreen(); + } + } + + // 退出全屏 + exitFullscreen() { + if (document.exitFullscreen) { + document.exitFullscreen(); + } else if (document.mozCancelFullScreen) { + document.mozCancelFullScreen(); + } else if (document.webkitExitFullscreen) { + document.webkitExitFullscreen(); + } + } + + initAce() { + if (!this.state.isLoadAce || !window.ace) return; + const owner = this; + const editor = (this.editor = window.ace.edit("interface-data")); + editor.setTheme("ace/theme/chrome"); //设置主题 + const JavaScriptMode = window.ace.require("ace/mode/json").Mode; + editor.session.setMode(new JavaScriptMode()); //设置程序语言模式 + + // 设置自动补全 + const tangideCompleter = { + identifierRegexps: [/[a-zA-Z_0-9@\-\u00A2-\uFFFF]/], + getCompletions: function (editor, session, pos, prefix, callback) { + if (prefix.length === 0) { + return callback(null, []); + } else { + return callback(null, autoCompleteData); + } + }, + }; + // 自定义补全列表 + const autoCompleteData = [ + { + name: "mock string", + value: "@string", + caption: "@string", + meta: "Mock-String", + type: "local", + score: 1000, + }, + { + name: "mock number", + value: "@number", + caption: "@number", + meta: "Mock-Number", + score: 1000, + }, + { + name: "mock integer", + value: "@integer", + caption: "@integer", + meta: "Mock-Integer", + score: 1000, + }, + // { + // name: "mock image", + // value: Random.image("200x100"), + // caption: "@image", + // meta: "Mock-Image", + // score: 1000, + // }, + ]; + editor.setOptions({ + enableBasicAutocompletion: true, + enableSnippets: true, + enableLiveAutocompletion: true, + }); + const langTools = window.ace.require("ace/ext/language_tools"); + langTools.addCompleter(tangideCompleter); + + // 设置全屏 + editor.commands.addCommand({ + name: "fullscreen", + bindKey: { win: "Ctrl-Enter", mac: "Command-Enter" }, + exec: function (editor) { + const ele = document.getElementById("interface-data"); + if ( + document.isFullScreen || + document.mozIsFullScreen || + document.webkitIsFullScreen + ) { + owner.exitFullscreen(); + } else { + owner.launchFullscreen(ele); + } + }, + readOnly: true, // 只读下设置可以全屏展示 + }); + + // editor.getSession().setUseWrapMode(true);//设置折叠 默认折叠的 + editor.getSession().setTabSize(2); // 设置制表符大小 + // 改变事件 + editor.getSession().on("change", function (e, a) { + clearTimeout(owner.timer); + owner.timer = setTimeout(()=>{ + owner.props.onBlur(); + }, 200); + }); + } + + getValue() { + return this.editor.getValue(); + } + + componentDidUpdate() { + this.initAce(); + } + + render() { + return ( +
+ ); + } +} diff --git a/client/src/base/content.js b/client/src/base/content.js new file mode 100644 index 0000000000000000000000000000000000000000..a4cd5c21d68b5a037caff3e776a8e8dbd574fa96 --- /dev/null +++ b/client/src/base/content.js @@ -0,0 +1,24 @@ +import React, { useState } from "react"; +import { Breadcrumb } from "antd"; +import { store } from "../store"; + +export default function Content(props) { + const warp = { + padding: "66px 20px 0 20px", + minHeight: "calc(100vh - 42px)", + }; + const [name, setName] = useState(store.getState()); + + store.subscribe(() => { + setName(store.getState()); + }); + + return ( +
+ + {name} + + {props.children} +
+ ); +} diff --git a/client/src/base/header.js b/client/src/base/header.js new file mode 100644 index 0000000000000000000000000000000000000000..94c4f681f093fc537f22dd7501d6e0ac6c5dfc80 --- /dev/null +++ b/client/src/base/header.js @@ -0,0 +1,80 @@ +import React, { Fragment, useState, useEffect } from "react"; +import { Link, withRouter } from "react-router-dom"; +import { Menu } from "antd"; +import { routes } from "../router"; +import { store } from "../store"; + +function Header(props) { + const [count, setCount] = useState(-1); + + useEffect(() => { + for (let i = 0; i < routes.length; i++) { + if (routes[i].path === props.history.location.pathname) { + setCount(i); + store.dispatch({ type: "CHANGE", payload: routes[i].title }); + } + } + }, [count, props.history.location.pathname]); + + return ( + +
+ SNAKE-API mini +
+ { + setCount(key); + store.dispatch({ type: "CHANGE", payload: routes[key].title }); + }} + > + + 接口列表 + + + 响应数据维护 + + + 接口前缀维护 + + + 项目配置维护 + + + 文档说明 + + + +
+ ); +} + +export default withRouter(Header); diff --git a/client/src/class-com.js b/client/src/class-com.js new file mode 100644 index 0000000000000000000000000000000000000000..089b6a3b8c2b0bbd581eb0e4f1bf26868f05cfb0 --- /dev/null +++ b/client/src/class-com.js @@ -0,0 +1,64 @@ +import React, {useState, useEffect} from "react"; + +export class ClassCom extends React.Component { + constructor(props) { + super(props); + this.state = { + is: true, + }; + console.log("constructor>>", this); + + this.testFun = this.testFun.bind(this); + } + + componentDidMount(){ + console.log('componentDidMount') + } + componentDidUpdate(){ + console.log('componentDidUpdate') + } + + testFun(e) { + console.log("testFun>>>", e.target.value); + this.setState({ + is:!this.state.is + }) + } + + render() { + console.log('render-------') + return ( + <> + + 111111 + + ) + + } +} + +export function TestHook() { + const [name, setName] = useState(''); + const [age, setAge] = useState(1); + + useEffect(() => { + // Update the document title using the browser API + document.title = `seebin`; + console.log('useEffect1111') + },[name]); + + useEffect(() => { + // Update the document title using the browser API + document.title = `seebin`; + console.log('useEffect22222') + },[age]); + + return ( +
+ + + {name} + {age} +
+ ) +} diff --git a/client/src/index.css b/client/src/index.css new file mode 100644 index 0000000000000000000000000000000000000000..e82de20e40f4b42fdd00a14df37fc8a657bcdb7c --- /dev/null +++ b/client/src/index.css @@ -0,0 +1,38 @@ +@import "./util.css"; +body, p { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +code { + font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', monospace; + background-color: #f2f2f2; + padding: .1rem; + border-radius: .1rem; +} + +blockquote { + background-color: #f8f8f8; + border-left: 3px #ddd solid; + padding: 10px; +} + +blockquote p { + margin: 0; +} + +.header { + background-color: #fff !important; +} + +/* 去掉json编辑器的错误图标 */ + +.ace_gutter-cell.ace_error { + background-image: none !important; +} + +.img-warp img { + max-width: 100%; +} \ No newline at end of file diff --git a/client/src/index.js b/client/src/index.js new file mode 100644 index 0000000000000000000000000000000000000000..b113643292224531bc4a296e44596322ba1a4cf8 --- /dev/null +++ b/client/src/index.js @@ -0,0 +1,19 @@ +import React from "react"; +import ReactDOM from "react-dom"; +import "./index.css"; +import App from "./App"; +import * as serviceWorker from "./serviceWorker"; +import { ConfigProvider } from "antd"; +import zhCN from "antd/es/locale/zh_CN"; + +ReactDOM.render( + + + , + document.getElementById("root") +); + +// If you want your app to work offline and load faster, you can change +// unregister() to register() below. Note this comes with some pitfalls. +// Learn more about service workers: https://bit.ly/CRA-PWA +serviceWorker.unregister(); diff --git a/client/src/pages/base-data.js b/client/src/pages/base-data.js new file mode 100644 index 0000000000000000000000000000000000000000..069acf9d20171dec970be1fdd3bfd9859ccbf614 --- /dev/null +++ b/client/src/pages/base-data.js @@ -0,0 +1,238 @@ +import React, { useEffect, useState, useRef } from "react"; +import Axios from "axios"; +import { + Table, + message, + Button, + Modal, + Popconfirm, + Space, + Row, + Col, + Form, + Input, +} from "antd"; +import { DeleteOutlined, EditOutlined } from "@ant-design/icons"; +import { Ace } from "../base/ace"; +import JSON5 from "json5"; +import { mock } from "mockjs"; + +const { TextArea } = Input; + +export function BaseData() { + const [dataSource, setDataSource] = useState([]); + const [visible, setVisible] = useState(false); + const [confirmLoading, setConfirmLoading] = useState(false); + const [handleId, setHandleId] = useState(null); + const aceRef = useRef(null); + const [form] = Form.useForm(); + + const columns = [ + { + title: "序号", + width: 70, + align: "center", + render: (text, record, index) => `${index + 1}`, + }, + { + title: "名称", + dataIndex: "name", + key: "name", + }, + { + title: "说明", + dataIndex: "remark", + key: "remark", + }, + { + title: "操作", + width: 270, + align: "center", + render: (text, record, index) => ( + + + { + deleteBaseData(record._id); + }} + okText="确定" + cancelText="不删了" + > + + + + ), + }, + ]; + + useEffect(() => { + if (!handleId || !visible) return; + + Axios.post("/api/get-base-data-by-id", { id: handleId }).then((res) => { + if (res.data.success) { + form.setFieldsValue({ + name: res.data.data.name, + remark: res.data.data.remark, + }); + aceRef.current.editor.setValue(JSON5.parse(res.data.data.aceData)); + } else { + message.error(res.data.errorMsg); + } + }); + }, [handleId, form, visible]); + + const editBaseData = (id) => { + setHandleId(id); + setVisible(true); + }; + + const deleteBaseData = (id) => { + Axios.post("/api/delete-base-data", { id }).then((res) => { + if (res.data.success) { + message.success("删除成功"); + getList(); + } else { + message.error(res.data.errorMsg); + } + }); + }; + + const getList = () => { + Axios.get("/api/get-base-list").then((res) => { + if (res.data.success) { + setDataSource(res.data.data); + } else { + message.error(res.data.errorMsg); + } + }); + }; + + useEffect(() => { + getList(); + }, []); + + // 获取响应数据 + const jsonValue = () => { + if (!aceRef.current.getValue()) { + message.error("请输入响应数据"); + return false; + } + try { + return JSON5.parse(aceRef.current.getValue()); + } catch (reason) { + console.log(reason); + message.error("json 解析出错"); + return false; + } + }; + + const handleOk = () => { + form + .validateFields() + .then((values) => { + const jsonData = jsonValue(); + if (!jsonData) return; + const param = { + name: values.name, + remark: values.remark, + data: mock(jsonData), + aceData: JSON5.stringify(aceRef.current.getValue()), + }; + if (handleId) { + // 编辑 + param.id = handleId; + } + setConfirmLoading(true); + Axios.post("/api/update-base-data", param).then((res) => { + if (res.data.success) { + form.resetFields(); + setConfirmLoading(false); + aceRef.current.editor.setValue(""); + message.success("保存成功"); + getList(); + setVisible(false); + } else { + message.error(res.data.errorMsg); + } + }); + }) + .catch((reason) => console.log(reason)); + }; + return ( +
+
+ + 设置响应数据, 可在新建接口时快捷选择对应的数据模版显示在编辑器内 +
+ record._id} + pagination={false} + /> + { + form.resetFields(); + setConfirmLoading(false); + aceRef.current.editor.setValue(""); + setVisible(false); + }} + centered={true} + confirmLoading={confirmLoading} + forceRender={true} + width={900} + > + + + + + + + + +