From b31ea86fc315603824e888890a215cb53e51278a Mon Sep 17 00:00:00 2001 From: yubaolee Date: Mon, 22 Aug 2016 16:11:46 +0800 Subject: [PATCH] =?UTF-8?q?workflowengine.net=20=E7=BB=93=E6=9E=84?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OpenAuth.Mvc/Content/Site.css | 640 + OpenAuth.Mvc/Content/style.css | 486 + .../Content/themes/base/accordion.css | 36 + OpenAuth.Mvc/Content/themes/base/all.css | 12 + .../Content/themes/base/autocomplete.css | 16 + OpenAuth.Mvc/Content/themes/base/base.css | 28 + OpenAuth.Mvc/Content/themes/base/button.css | 114 + OpenAuth.Mvc/Content/themes/base/core.css | 93 + .../Content/themes/base/datepicker.css | 175 + OpenAuth.Mvc/Content/themes/base/dialog.css | 70 + .../Content/themes/base/draggable.css | 12 + .../base/images/toggle-collapse-dark.png | Bin 0 -> 2886 bytes .../base/images/toggle-collapse-light.png | Bin 0 -> 2864 bytes .../themes/base/images/toggle-expand-dark.png | Bin 0 -> 2894 bytes .../base/images/toggle-expand-light.png | Bin 0 -> 2863 bytes .../ui-bg_diagonals-thick_18_b81900_40x40.png | Bin 0 -> 457 bytes .../ui-bg_diagonals-thick_20_666666_40x40.png | Bin 0 -> 351 bytes .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 0 -> 180 bytes .../images/ui-bg_flat_10_000000_40x100.png | Bin 0 -> 244 bytes .../images/ui-bg_flat_75_ffffff_40x100.png | Bin 0 -> 178 bytes .../images/ui-bg_glass_100_f6f6f6_1x400.png | Bin 0 -> 301 bytes .../images/ui-bg_glass_100_fdf5ce_1x400.png | Bin 0 -> 387 bytes .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 0 -> 120 bytes .../images/ui-bg_glass_65_ffffff_1x400.png | Bin 0 -> 105 bytes .../images/ui-bg_glass_75_dadada_1x400.png | Bin 0 -> 111 bytes .../images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 0 -> 110 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 0 -> 119 bytes .../ui-bg_gloss-wave_35_f6a828_500x100.png | Bin 0 -> 5854 bytes .../ui-bg_highlight-soft_100_eeeeee_1x100.png | Bin 0 -> 317 bytes .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 0 -> 101 bytes .../ui-bg_highlight-soft_75_ffe45c_1x100.png | Bin 0 -> 367 bytes .../base/images/ui-icons_222222_256x240.png | Bin 0 -> 4369 bytes .../base/images/ui-icons_228ef1_256x240.png | Bin 0 -> 4599 bytes .../base/images/ui-icons_2e83ff_256x240.png | Bin 0 -> 4369 bytes .../base/images/ui-icons_454545_256x240.png | Bin 0 -> 4369 bytes .../base/images/ui-icons_888888_256x240.png | Bin 0 -> 4369 bytes .../base/images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4369 bytes .../base/images/ui-icons_ef8c08_256x240.png | Bin 0 -> 4599 bytes .../base/images/ui-icons_ffd27a_256x240.png | Bin 0 -> 4599 bytes .../base/images/ui-icons_ffffff_256x240.png | Bin 0 -> 6468 bytes .../Content/themes/base/jquery-ui.min.css | 7 + .../themes/base/jquery-ui.structure.min.css | 5 + .../themes/base/jquery-ui.theme.min.css | 5 + .../Content/themes/base/jquery.treeTable.css | 55 + OpenAuth.Mvc/Content/themes/base/menu.css | 63 + .../Content/themes/base/progressbar.css | 28 + .../Content/themes/base/resizable.css | 78 + .../Content/themes/base/selectable.css | 17 + .../Content/themes/base/selectmenu.css | 59 + OpenAuth.Mvc/Content/themes/base/slider.css | 75 + OpenAuth.Mvc/Content/themes/base/sortable.css | 12 + OpenAuth.Mvc/Content/themes/base/spinner.css | 65 + OpenAuth.Mvc/Content/themes/base/tabs.css | 51 + OpenAuth.Mvc/Content/themes/base/theme.css | 410 + OpenAuth.Mvc/Content/themes/base/tooltip.css | 21 + OpenAuth.Mvc/Content/workflowdesigner.css | 119 + .../Controllers/DesignerController.cs | 91 + OpenAuth.Mvc/Images/designer.command.png | Bin 0 -> 615 bytes OpenAuth.Mvc/Images/designer.createat.png | Bin 0 -> 567 bytes OpenAuth.Mvc/Images/designer.createt.png | Bin 0 -> 380 bytes OpenAuth.Mvc/Images/designer.delete.png | Bin 0 -> 524 bytes OpenAuth.Mvc/Images/designer.tb.actor.png | Bin 0 -> 6128 bytes OpenAuth.Mvc/Images/designer.tb.add.png | Bin 0 -> 475 bytes .../designer.tb.additionalparameters.png | Bin 0 -> 6194 bytes .../Images/designer.tb.arrangment.png | Bin 0 -> 577 bytes .../Images/designer.tb.codeactions.png | Bin 0 -> 2136 bytes OpenAuth.Mvc/Images/designer.tb.command.png | Bin 0 -> 823 bytes OpenAuth.Mvc/Images/designer.tb.copy.png | Bin 0 -> 845 bytes OpenAuth.Mvc/Images/designer.tb.copyprops.png | Bin 0 -> 1116 bytes .../Images/designer.tb.copypropsactive.png | Bin 0 -> 1337 bytes OpenAuth.Mvc/Images/designer.tb.delete.png | Bin 0 -> 863 bytes OpenAuth.Mvc/Images/designer.tb.locale.png | Bin 0 -> 2782 bytes OpenAuth.Mvc/Images/designer.tb.move.png | Bin 0 -> 1458 bytes OpenAuth.Mvc/Images/designer.tb.parameter.png | Bin 0 -> 7270 bytes OpenAuth.Mvc/Images/designer.tb.redo.png | Bin 0 -> 1099 bytes .../Images/designer.tb.saveasimage.png | Bin 0 -> 647 bytes OpenAuth.Mvc/Images/designer.tb.timer.png | Bin 0 -> 6588 bytes OpenAuth.Mvc/Images/designer.tb.undo.png | Bin 0 -> 1138 bytes OpenAuth.Mvc/Images/designer.tb.zoomIn.png | Bin 0 -> 1084 bytes OpenAuth.Mvc/Images/designer.tb.zoomOut.png | Bin 0 -> 1063 bytes OpenAuth.Mvc/Images/designer.tb.zoomnorm.png | Bin 0 -> 583 bytes OpenAuth.Mvc/Images/designer.tran.aa.png | Bin 0 -> 993 bytes OpenAuth.Mvc/Images/designer.tran.ac.png | Bin 0 -> 1072 bytes OpenAuth.Mvc/Images/designer.tran.ao.png | Bin 0 -> 1090 bytes OpenAuth.Mvc/Images/designer.tran.ca.png | Bin 0 -> 1076 bytes OpenAuth.Mvc/Images/designer.tran.cc.png | Bin 0 -> 1117 bytes OpenAuth.Mvc/Images/designer.tran.co.png | Bin 0 -> 1123 bytes OpenAuth.Mvc/Images/error.png | Bin 0 -> 1469 bytes OpenAuth.Mvc/Images/findHosting.png | Bin 0 -> 4329 bytes OpenAuth.Mvc/Images/grid.gif | Bin 0 -> 58 bytes OpenAuth.Mvc/Images/heroAccent.png | Bin 0 -> 572 bytes OpenAuth.Mvc/Images/loading.gif | Bin 0 -> 771 bytes OpenAuth.Mvc/Images/x.png | Bin 0 -> 1066 bytes OpenAuth.Mvc/OpenAuth.Mvc.csproj | 123 + OpenAuth.Mvc/Scripts/ace.js | 11 + OpenAuth.Mvc/Scripts/ext-searchbox.js | 5 + OpenAuth.Mvc/Scripts/jquery-ui.js | 16617 ++++++++++++++++ OpenAuth.Mvc/Scripts/jquery.js | 4 + OpenAuth.Mvc/Scripts/json5.js | 767 + OpenAuth.Mvc/Scripts/kinetic-v5.1.0.min.js | 5 + OpenAuth.Mvc/Scripts/mode-csharp.js | 1 + OpenAuth.Mvc/Scripts/mode-json.js | 1 + OpenAuth.Mvc/Scripts/theme-monokai.js | 1 + OpenAuth.Mvc/Scripts/workflowdesigner.min.js | 3 + OpenAuth.Mvc/Views/Designer/Index.cshtml | 117 + OpenAuth.Mvc/Web.config | 1 + .../fonts/glyphicons-halflings-regular.eot | Bin 0 -> 14079 bytes .../fonts/glyphicons-halflings-regular.svg | 228 + .../fonts/glyphicons-halflings-regular.ttf | Bin 0 -> 29512 bytes .../fonts/glyphicons-halflings-regular.woff | Bin 0 -> 16448 bytes OpenAuth.Mvc/packages.config | 3 + 111 files changed, 20730 insertions(+) create mode 100644 OpenAuth.Mvc/Content/Site.css create mode 100644 OpenAuth.Mvc/Content/style.css create mode 100644 OpenAuth.Mvc/Content/themes/base/accordion.css create mode 100644 OpenAuth.Mvc/Content/themes/base/all.css create mode 100644 OpenAuth.Mvc/Content/themes/base/autocomplete.css create mode 100644 OpenAuth.Mvc/Content/themes/base/base.css create mode 100644 OpenAuth.Mvc/Content/themes/base/button.css create mode 100644 OpenAuth.Mvc/Content/themes/base/core.css create mode 100644 OpenAuth.Mvc/Content/themes/base/datepicker.css create mode 100644 OpenAuth.Mvc/Content/themes/base/dialog.css create mode 100644 OpenAuth.Mvc/Content/themes/base/draggable.css create mode 100644 OpenAuth.Mvc/Content/themes/base/images/toggle-collapse-dark.png create mode 100644 OpenAuth.Mvc/Content/themes/base/images/toggle-collapse-light.png create mode 100644 OpenAuth.Mvc/Content/themes/base/images/toggle-expand-dark.png create mode 100644 OpenAuth.Mvc/Content/themes/base/images/toggle-expand-light.png create mode 100644 OpenAuth.Mvc/Content/themes/base/images/ui-bg_diagonals-thick_18_b81900_40x40.png create mode 100644 OpenAuth.Mvc/Content/themes/base/images/ui-bg_diagonals-thick_20_666666_40x40.png create mode 100644 OpenAuth.Mvc/Content/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png create mode 100644 OpenAuth.Mvc/Content/themes/base/images/ui-bg_flat_10_000000_40x100.png create mode 100644 OpenAuth.Mvc/Content/themes/base/images/ui-bg_flat_75_ffffff_40x100.png create mode 100644 OpenAuth.Mvc/Content/themes/base/images/ui-bg_glass_100_f6f6f6_1x400.png create mode 100644 OpenAuth.Mvc/Content/themes/base/images/ui-bg_glass_100_fdf5ce_1x400.png create mode 100644 OpenAuth.Mvc/Content/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png create mode 100644 OpenAuth.Mvc/Content/themes/base/images/ui-bg_glass_65_ffffff_1x400.png create mode 100644 OpenAuth.Mvc/Content/themes/base/images/ui-bg_glass_75_dadada_1x400.png create mode 100644 OpenAuth.Mvc/Content/themes/base/images/ui-bg_glass_75_e6e6e6_1x400.png create mode 100644 OpenAuth.Mvc/Content/themes/base/images/ui-bg_glass_95_fef1ec_1x400.png create mode 100644 OpenAuth.Mvc/Content/themes/base/images/ui-bg_gloss-wave_35_f6a828_500x100.png create mode 100644 OpenAuth.Mvc/Content/themes/base/images/ui-bg_highlight-soft_100_eeeeee_1x100.png create mode 100644 OpenAuth.Mvc/Content/themes/base/images/ui-bg_highlight-soft_75_cccccc_1x100.png create mode 100644 OpenAuth.Mvc/Content/themes/base/images/ui-bg_highlight-soft_75_ffe45c_1x100.png create mode 100644 OpenAuth.Mvc/Content/themes/base/images/ui-icons_222222_256x240.png create mode 100644 OpenAuth.Mvc/Content/themes/base/images/ui-icons_228ef1_256x240.png create mode 100644 OpenAuth.Mvc/Content/themes/base/images/ui-icons_2e83ff_256x240.png create mode 100644 OpenAuth.Mvc/Content/themes/base/images/ui-icons_454545_256x240.png create mode 100644 OpenAuth.Mvc/Content/themes/base/images/ui-icons_888888_256x240.png create mode 100644 OpenAuth.Mvc/Content/themes/base/images/ui-icons_cd0a0a_256x240.png create mode 100644 OpenAuth.Mvc/Content/themes/base/images/ui-icons_ef8c08_256x240.png create mode 100644 OpenAuth.Mvc/Content/themes/base/images/ui-icons_ffd27a_256x240.png create mode 100644 OpenAuth.Mvc/Content/themes/base/images/ui-icons_ffffff_256x240.png create mode 100644 OpenAuth.Mvc/Content/themes/base/jquery-ui.min.css create mode 100644 OpenAuth.Mvc/Content/themes/base/jquery-ui.structure.min.css create mode 100644 OpenAuth.Mvc/Content/themes/base/jquery-ui.theme.min.css create mode 100644 OpenAuth.Mvc/Content/themes/base/jquery.treeTable.css create mode 100644 OpenAuth.Mvc/Content/themes/base/menu.css create mode 100644 OpenAuth.Mvc/Content/themes/base/progressbar.css create mode 100644 OpenAuth.Mvc/Content/themes/base/resizable.css create mode 100644 OpenAuth.Mvc/Content/themes/base/selectable.css create mode 100644 OpenAuth.Mvc/Content/themes/base/selectmenu.css create mode 100644 OpenAuth.Mvc/Content/themes/base/slider.css create mode 100644 OpenAuth.Mvc/Content/themes/base/sortable.css create mode 100644 OpenAuth.Mvc/Content/themes/base/spinner.css create mode 100644 OpenAuth.Mvc/Content/themes/base/tabs.css create mode 100644 OpenAuth.Mvc/Content/themes/base/theme.css create mode 100644 OpenAuth.Mvc/Content/themes/base/tooltip.css create mode 100644 OpenAuth.Mvc/Content/workflowdesigner.css create mode 100644 OpenAuth.Mvc/Controllers/DesignerController.cs create mode 100644 OpenAuth.Mvc/Images/designer.command.png create mode 100644 OpenAuth.Mvc/Images/designer.createat.png create mode 100644 OpenAuth.Mvc/Images/designer.createt.png create mode 100644 OpenAuth.Mvc/Images/designer.delete.png create mode 100644 OpenAuth.Mvc/Images/designer.tb.actor.png create mode 100644 OpenAuth.Mvc/Images/designer.tb.add.png create mode 100644 OpenAuth.Mvc/Images/designer.tb.additionalparameters.png create mode 100644 OpenAuth.Mvc/Images/designer.tb.arrangment.png create mode 100644 OpenAuth.Mvc/Images/designer.tb.codeactions.png create mode 100644 OpenAuth.Mvc/Images/designer.tb.command.png create mode 100644 OpenAuth.Mvc/Images/designer.tb.copy.png create mode 100644 OpenAuth.Mvc/Images/designer.tb.copyprops.png create mode 100644 OpenAuth.Mvc/Images/designer.tb.copypropsactive.png create mode 100644 OpenAuth.Mvc/Images/designer.tb.delete.png create mode 100644 OpenAuth.Mvc/Images/designer.tb.locale.png create mode 100644 OpenAuth.Mvc/Images/designer.tb.move.png create mode 100644 OpenAuth.Mvc/Images/designer.tb.parameter.png create mode 100644 OpenAuth.Mvc/Images/designer.tb.redo.png create mode 100644 OpenAuth.Mvc/Images/designer.tb.saveasimage.png create mode 100644 OpenAuth.Mvc/Images/designer.tb.timer.png create mode 100644 OpenAuth.Mvc/Images/designer.tb.undo.png create mode 100644 OpenAuth.Mvc/Images/designer.tb.zoomIn.png create mode 100644 OpenAuth.Mvc/Images/designer.tb.zoomOut.png create mode 100644 OpenAuth.Mvc/Images/designer.tb.zoomnorm.png create mode 100644 OpenAuth.Mvc/Images/designer.tran.aa.png create mode 100644 OpenAuth.Mvc/Images/designer.tran.ac.png create mode 100644 OpenAuth.Mvc/Images/designer.tran.ao.png create mode 100644 OpenAuth.Mvc/Images/designer.tran.ca.png create mode 100644 OpenAuth.Mvc/Images/designer.tran.cc.png create mode 100644 OpenAuth.Mvc/Images/designer.tran.co.png create mode 100644 OpenAuth.Mvc/Images/error.png create mode 100644 OpenAuth.Mvc/Images/findHosting.png create mode 100644 OpenAuth.Mvc/Images/grid.gif create mode 100644 OpenAuth.Mvc/Images/heroAccent.png create mode 100644 OpenAuth.Mvc/Images/loading.gif create mode 100644 OpenAuth.Mvc/Images/x.png create mode 100644 OpenAuth.Mvc/Scripts/ace.js create mode 100644 OpenAuth.Mvc/Scripts/ext-searchbox.js create mode 100644 OpenAuth.Mvc/Scripts/jquery-ui.js create mode 100644 OpenAuth.Mvc/Scripts/jquery.js create mode 100644 OpenAuth.Mvc/Scripts/json5.js create mode 100644 OpenAuth.Mvc/Scripts/kinetic-v5.1.0.min.js create mode 100644 OpenAuth.Mvc/Scripts/mode-csharp.js create mode 100644 OpenAuth.Mvc/Scripts/mode-json.js create mode 100644 OpenAuth.Mvc/Scripts/theme-monokai.js create mode 100644 OpenAuth.Mvc/Scripts/workflowdesigner.min.js create mode 100644 OpenAuth.Mvc/Views/Designer/Index.cshtml create mode 100644 OpenAuth.Mvc/fonts/glyphicons-halflings-regular.eot create mode 100644 OpenAuth.Mvc/fonts/glyphicons-halflings-regular.svg create mode 100644 OpenAuth.Mvc/fonts/glyphicons-halflings-regular.ttf create mode 100644 OpenAuth.Mvc/fonts/glyphicons-halflings-regular.woff diff --git a/OpenAuth.Mvc/Content/Site.css b/OpenAuth.Mvc/Content/Site.css new file mode 100644 index 00000000..f25b4d94 --- /dev/null +++ b/OpenAuth.Mvc/Content/Site.css @@ -0,0 +1,640 @@ +html { + background-color: #e2e2e2; + margin: 0; + padding: 0; +} + +body { + background-color: #fff; + border-top: solid 10px #000; + color: #333; + font-size: .85em; + font-family: "Segoe UI", Verdana, Helvetica, Sans-Serif; + margin: 0; + padding: 0; +} + +a:link, a:visited, +a:active, a:hover { + color: #333; + outline: none; + padding-left: 3px; + padding-right: 3px; + text-decoration: underline; +} + +a:hover { + background-color: #c7d1d6; +} + +header, footer, hgroup +nav, section { + display: block; +} + +.float-left { + float: left; +} + +.float-right { + float: right; +} + +.highlight { + background-color: #a6dbed; + padding-left: 5px; + padding-right: 5px; +} + +.clear-fix:after { + content: "."; + clear: both; + display: block; + height: 0; + visibility: hidden; +} + +h1, h2, h3, +h4, h5, h6 { + color: #000; + margin-bottom: 0; + padding-bottom: 0; +} + +h1 { + font-size: 2em; +} + +h2 { + font-size: 1.75em; +} + +h3 { + font-size: 1.2em; +} + +h4 { + font-size: 1.1em; +} + +h5, h6 { + font-size: 1em; +} + + +/* main layout +----------------------------------------------------------*/ +.content-wrapper { + margin: 0 auto; + max-width: 960px; +} + +#body { + background-color: #efeeef; + clear: both; + padding-bottom: 35px; +} + + .main-content { + background: url("../images/accent.png") no-repeat; + padding-left: 10px; + padding-top: 30px; + } + + .featured + .main-content { + background: url("../images/heroaccent.png") no-repeat; + } + +footer { + clear: both; + background-color: #e2e2e2; + font-size: .8em; + height: 100px; +} + + +/* site title +----------------------------------------------------------*/ +.site-title { + color: #c8c8c8; + font-family: Rockwell, Consolas, "Courier New", Courier, monospace; + font-size: 2.3em; + margin: 20px 0; +} + +.site-title a, .site-title a:hover, .site-title a:active { + background: none; + color: #c8c8c8; + outline: none; + text-decoration: none; +} + + +/* login +----------------------------------------------------------*/ +#login { + display: block; + font-size: .85em; + margin-top: 20px; + text-align: right; +} + + #login a { + background-color: #d3dce0; + margin-left: 10px; + margin-right: 3px; + padding: 2px 3px; + text-decoration: none; + } + + #login a.username { + background: none; + margin-left: 0px; + text-decoration: underline; + } + + #login li { + display: inline; + list-style: none; + } + + +/* menu +----------------------------------------------------------*/ +ul#menu { + font-size: 1.3em; + font-weight: 600; + margin: 0; + text-align: right; +} + + ul#menu li { + display: inline; + list-style: none; + padding-left: 15px; + } + + ul#menu li a { + background: none; + color: #999; + text-decoration: none; + } + + ul#menu li a:hover { + color: #333; + text-decoration: none; + } + + + +/* page elements +----------------------------------------------------------*/ +/* featured */ +.featured { + background-color: #fff; +} + + .featured .content-wrapper { + background-color: #7ac0da; + background-image: -ms-linear-gradient(left, #7AC0DA 0%, #A4D4E6 100%); + background-image: -o-linear-gradient(left, #7AC0DA 0%, #A4D4E6 100%); + background-image: -webkit-gradient(linear, left top, right top, color-stop(0, #7AC0DA), color-stop(1, #A4D4E6)); + background-image: -webkit-linear-gradient(left, #7AC0DA 0%, #A4D4E6 100%); + background-image: linear-gradient(left, #7AC0DA 0%, #A4D4E6 100%); + color: #3e5667; + padding: 20px 40px 30px 40px; + } + + .featured hgroup.title h1, .featured hgroup.title h2 { + color: #fff; + } + + .featured p { + font-size: 1.1em; + } + +/* page titles */ +hgroup.title { + margin-bottom: 10px; +} + +hgroup.title h1, hgroup.title h2 { +display: inline; +} + +hgroup.title h2 { + font-weight: normal; +} + +/* features */ +section.feature { + width: 300px; + float: left; + padding: 10px; +} + +/* ordered list */ +ol.round { + list-style-type: none; + padding-left: 0; +} + + ol.round li { + margin: 25px 0; + padding-left: 45px; + } + + ol.round li.one { + background: url("../images/orderedlistOne.png") no-repeat; + } + + ol.round li.two { + background: url("../images/orderedlistTwo.png") no-repeat; + } + + ol.round li.three { + background: url("../images/orderedlistThree.png") no-repeat; + } + +/* content */ +article { + float: left; + width: 70%; +} + +aside { + float: right; + width: 25%; +} + + aside ul { + list-style: none; + padding: 0; + } + + aside ul li { + background: url("../images/bullet.png") no-repeat 0 50%; + padding: 2px 0 2px 20px; + } + +.label { + font-weight: 700; +} + +/* login page */ +#loginForm { + border-right: solid 2px #c8c8c8; + float: left; + width: 45%; +} + + #loginForm .validation-error { + display: block; + margin-left: 15px; + } + +#socialLoginForm { + margin-left: 40px; + float: left; + width: 50%; +} + +/* contact */ +.contact h3 { + font-size: 1.2em; +} + +.contact p { + margin: 5px 0 0 10px; +} + +.contact iframe { + border: solid 1px #333; + margin: 5px 0 0 10px; +} + +/* forms */ +fieldset { + border: none; + margin: 0; + padding: 0; +} + + fieldset legend { + display: none; + } + + fieldset ol { + padding: 0; + list-style: none; + } + + fieldset ol li { + padding-bottom: 5px; + } + + fieldset label { + display: block; + font-size: 1.2em; + font-weight: 600; + } + + fieldset label.checkbox { + display: inline; + } + + fieldset input[type="text"], + fieldset input[type="password"] { + border: 1px solid #e2e2e2; + color: #333; + font-size: 1.2em; + margin: 5px 0 6px 0; + padding: 5px; + width: 300px; + } + + fieldset input[type="text"]:focus, + fieldset input[type="password"]:focus { + border: 1px solid #7ac0da; + } + + fieldset input[type="submit"] { + background-color: #d3dce0; + border: solid 1px #787878; + cursor: pointer; + font-size: 1.2em; + font-weight: 600; + padding: 7px; + } + +/* ajax login/registration dialog */ +.modal-popup { + font-size: 0.7em; +} + + .modal-popup input[type="text"], + .modal-popup input[type="password"] { + width: 90%; + } + +/* info and errors */ +.message-info { + border: solid 1px; + clear: both; + padding: 10px 20px; +} + +.message-error { + clear: both; + color: #e80c4d; + font-size: 1.1em; + font-weight: bold; + margin: 20px 0 10px 0; +} + +.message-success { + color: #7ac0da; + font-size: 1.3em; + font-weight: bold; + margin: 20px 0 10px 0; +} + +.success { + color: #7ac0da; +} + +.error { + color: #e80c4d; +} + +/* styles for validation helpers */ +.field-validation-error { + color: #e80c4d; + font-weight: bold; +} + +.field-validation-valid { + display: none; +} + +input[type="text"].input-validation-error, +input[type="password"].input-validation-error { + border: solid 1px #e80c4d; +} + +.validation-summary-errors { + color: #e80c4d; + font-weight: bold; + font-size: 1.1em; +} + +.validation-summary-valid { + display: none; +} + + + +ul#social li { + display: inline; + list-style: none; +} + + ul#social li a { + color: #999; + text-decoration: none; + } + + a.facebook, a.twitter { + display: block; + float: left; + height: 24px; + padding-left: 17px; + text-indent: -9999px; + width: 16px; + } + + a.facebook { + background: url("../images/facebook.png") no-repeat; + } + + a.twitter { + background: url("../images/twitter.png") no-repeat; + } + + + +/******************** +* Mobile Styles * +********************/ +@media only screen and (max-width: 850px) { + + /* header + ----------------------------------------------------------*/ + header .float-left, + header .float-right { + float: none; + } + + /* logo */ + header .site-title { + margin: 10px; + text-align: center; + } + + /* login */ + #login { + font-size: .85em; + margin-top: 0; + text-align: center; + } + + #login ul { + margin: 5px 0; + padding: 0; + } + + #login li { + display: inline; + list-style: none; + margin: 0; + padding:0; + } + + #login a { + background: none; + color: #999; + font-weight: 600; + margin: 2px; + padding: 0; + } + + #login a:hover { + color: #333; + } + + /* menu */ + nav { + margin-bottom: 5px; + } + + ul#menu { + margin: 0; + padding:0; + text-align: center; + } + + ul#menu li { + margin: 0; + padding: 0; + } + + + /* main layout + ----------------------------------------------------------*/ + .main-content, + .featured + .main-content { + background-position: 10px 0; + } + + .content-wrapper { + padding-right: 10px; + padding-left: 10px; + } + + .featured .content-wrapper { + padding: 10px; + } + + /* page content */ + article, aside { + float: none; + width: 100%; + } + + /* ordered list */ + ol.round { + list-style-type: none; + padding-left: 0; + } + + ol.round li { + padding-left: 10px; + margin: 25px 0; + } + + ol.round li.one, + ol.round li.two, + ol.round li.three { + background: none; + } + + /* features */ + section.feature { + float: none; + padding: 10px; + width: auto; + } + + section.feature img { + color: #999; + content: attr(alt); + font-size: 1.5em; + font-weight: 600; + } + + /* forms */ + fieldset input[type="text"], + fieldset input[type="password"] { + width: 90%; + } + + /* login page */ + #loginForm { + border-right: none; + float: none; + width: auto; + } + + #loginForm .validation-error { + display: block; + margin-left: 15px; + } + + #socialLoginForm { + margin-left: 0; + float: none; + width: auto; + } + + /* footer + ----------------------------------------------------------*/ + footer .float-left, + footer .float-right { + float: none; + } + + footer { + text-align: center; + height: auto; + padding: 10px 0; + } + + footer p { + margin: 0; + } + + ul#social { + padding:0; + margin: 0; + } + + a.facebook, a.twitter { + background: none; + display: inline; + float: none; + height: auto; + padding-left: 0; + text-indent: 0; + width: auto; + } +} \ No newline at end of file diff --git a/OpenAuth.Mvc/Content/style.css b/OpenAuth.Mvc/Content/style.css new file mode 100644 index 00000000..46ffad7c --- /dev/null +++ b/OpenAuth.Mvc/Content/style.css @@ -0,0 +1,486 @@ +/* "Simpliste" template. Renat Rafikov. http://cssr.ru/simpliste/ */ + +/* CSS reset. Based on HTML5 boilerplate reset http://html5boilerplate.com/ */ +article, aside, details, figcaption, figure, footer, header, hgroup, nav, section { display:block; } +audio[controls], canvas, video { display:inline-block; *display:inline; *zoom:1; } +html { font-size:100%; overflow-y:scroll; -webkit-overflow-scrolling:touch; -webkit-tap-highlight-color:rgba(0,0,0,0); -webkit-text-size-adjust:100%; -ms-text-size-adjust:100%; } +body { margin:0; font-size:13px; line-height:1.231; } +body, button, input, select, textarea { font-family:sans-serif; color:#222; } +a { color:#00e; } +a:visited { color:#551a8b; } +a:focus { outline:thin dotted; } +a:hover, a:active { outline:0; } +abbr[title] { border-bottom:1px dotted; } +b, strong { font-weight:bold; } +blockquote { margin:1em 40px; } +dfn { font-style:italic; } +hr { display:block; height:1px; border:0; border-top:1px solid #ccc; margin:1em 0; padding:0; } +ins { background:#ff9; color:#000; text-decoration:none; } +mark { background:#ff0; color:#000; font-style:italic; font-weight:bold; } +pre, code, kbd, samp { font-family:monospace, monospace; _font-family:'courier new', monospace; font-size:1em; } +pre { white-space:pre; white-space:pre-wrap; word-wrap:break-word; } +q { quotes:none; } +q:before, q:after { content:""; content:none; } +small { font-size:85%; } +sub, sup { font-size:75%; line-height:0; position:relative; vertical-align:baseline; } +sup { top:-0.5em; } +sub { bottom:-0.25em; } +ul, ol { margin:1em 0; padding:0 0 0 2em; } +dd { margin:0 0 0 40px; } +nav ul, nav ol { list-style:none; margin:0; padding:0; } +img { border:0; -ms-interpolation-mode:bicubic; } +svg:not(:root) { overflow:hidden;} +figure { margin:0; } +form { margin:0; } +fieldset { border:0; margin:0; padding:0; } +legend { border:0; *margin-left:-7px; padding:0; } +label { cursor:pointer; } +button, input, select, textarea { font-size:100%; margin:0; vertical-align:baseline; *vertical-align:middle; } +button, input { line-height:normal; *overflow:visible; } +button, input[type="button"], input[type="reset"], input[type="submit"] { cursor:pointer; -webkit-appearance:button; } +input[type="checkbox"], input[type="radio"] { box-sizing:border-box; } +input[type="search"] { -moz-box-sizing:content-box; -webkit-box-sizing:content-box; box-sizing:content-box; } +button::-moz-focus-inner, input::-moz-focus-inner { border:0; padding:0; } +textarea { overflow:auto; vertical-align:top; } +input:valid, textarea:valid { } +input:invalid, textarea:invalid { background-color:#f0dddd; } +table { border-collapse:collapse; border-spacing:0; } +.hidden { display:none; visibility:hidden; } +.clearfix:before, .clearfix:after { content:""; display:table; } +.clearfix:after { clear:both; } +.clearfix { zoom:1; } +/* End CSS reset */ + + +/* Columns +------- +.col_33 | .col_33 | .col_33 +.clearfix +------- +.col_66 | .col_33 +.clearfix +------- +.col_50 | .col_50 +.clearfix +------- +.col_100 +------- +*/ +.col_33 { + width:31%; + margin:0 2% 0 0; + float:left; +} + +.col_50 { + width:48%; + margin:0 2% 0 0; + float:left; +} + +.col_66 { + width:64%; + margin:0 2% 0 0; + float:left; +} + +.col_100 { + width:98%; + margin:0 2% 0 0; +} +/* End columns */ + + +/* Helper classes */ +.center {text-align:center;} +.left {text-align:left;} +.right {text-align:right;} + +.img_floatleft {float:left; margin:0 10px 5px 0;} +.img_floatright {float:right; margin:0 0 5px 10px;} + +.img {max-width:100%;} +/* End helper classes */ + + +/* [Skin "iSimple"] */ +.container { + max-width: 98% /*1300px;*/ + margin:0 auto; +} + +.header { + margin:1px 0 0.5em 0; + padding:1.5em 3% 0 3%; +} + +.logo { + float:left; + display:inline-block; + font-size:18px; + text-shadow:1px 1px 1px #ffffff; +} + +.menu_main { + width:50%; + float:right; + text-align:right; + margin:0.3em 0 0 0; + font-size:12px; +} + +.menu_main li { + display:inline-block; + margin:0 0 0 4px; +} + +.menu_main li.active, +.menu_main li.active a { + color:#000; + text-decoration:none; + cursor:default; +} + +.info { + padding:0 1% 1em 1%; +} + +.footer { + padding:1em 3% 3em 3%; + color:#717171; + font-size:12px; +} + +.copyright { + width:49%; + float:left; + text-shadow:1px 1px 1px #ffffff; +} + +.menu_bottom { + width:50%; + float:right; + text-align:right; + margin:0; + padding:0; + font-size:12px; +} +.menu_bottom li { + display:inline-block; + margin:0 0 0 4px; +} +.menu_bottom li.active, +.menu_bottom li.active a { + color:#666; + text-decoration:none; + cursor:default; +} + +/* Skin appearance */ +body { + background:#f2f2f2; + font-family:arial, sans-serif; +} + +a { color:#0085c5; } +a:hover { text-decoration:none; } +a:visited { color:#4a00c5; } + +ul li, ol li { + padding:0 0 0.4em 0; +} + +.hero { + background:#fff; + border:1px solid #fff; + -webkit-border-radius:5px; + -moz-border-radius:5px; + border-radius:5px; + -webkit-box-shadow:#8b8b8b 0px 0px 5px inset; + -moz-box-shadow:#8b8b8b 0px 0px 5px inset; + box-shadow:#8b8b8b 0px 0px 5px inset; + padding:15px 0 15px 2%; + margin:0 0 15px 0; +} + +.hero h1 { + font-size:24px; + font-size:18px; + color:#3d3d3d; +} + +.article { + background:#fff; + border:1px solid #cbcbcb; + -webkit-border-radius:5px; + -moz-border-radius:5px; + border-radius:5px; + -webkit-box-shadow:#8b8b8b 0px 0px 3px; + -moz-box-shadow:#8b8b8b 0px 0px 3px; + box-shadow:#8b8b8b 0px 0px 3px; + padding:15px 0 15px 2%; +} + +h1, h2, h3, h4 { + font-weight:normal; +} + +h5, h6 { + font-weight:bold; +} + +h1 { + font-size:22px; +} + +.form label { + display:inline-block; + padding:0 0 4px 0; +} + +a.button, +.button { + border:0; + text-align:center; + text-decoration:none; + -webkit-border-radius:4px; + -moz-border-radius:4px; + border-radius:4px; + -webkit-box-shadow:#999 0px 0px 1px; + -moz-box-shadow:#999 0px 0px 1px; + box-shadow:#999 0px 0px 1px; + background:#4aa6d6; + background:-webkit-gradient(linear, 0 0, 0 bottom, from(#1f7daa), to(#4aa6d6)); + background:-webkit-linear-gradient(#1f7daa, #4aa6d6); + background:-moz-linear-gradient(#1f7daa, #4aa6d6); + background:-ms-linear-gradient(#1f7daa, #4aa6d6); + background:-o-linear-gradient(#1f7daa, #4aa6d6); + background:linear-gradient(#1f7daa, #4aa6d6); + color:#fff; + padding:10px 20px; + font-family:verdana, sans-serif; + text-shadow:1px 1px 1px #12455d; + display:inline-block; +} +a.button:hover, +.button:hover { + color:#fff; + background:-webkit-gradient(linear, 0 0, 0 bottom, from(#4aa6d6), to(#1f7daa)); + background:-webkit-linear-gradient(#4aa6d6, #1f7daa); + background:-moz-linear-gradient(#4aa6d6, #1f7daa); + background:-ms-linear-gradient(#4aa6d6, #1f7daa); + background:-o-linear-gradient(#4aa6d6, #1f7daa); + background:linear-gradient(#4aa6d6, #1f7daa); +} +a.button:active, +.button:active { + color:#093950; + text-shadow:1px 1px 1px #7ac8f0; + -webkit-box-shadow:#093950 0px 2px 3px inset; + -moz-box-shadow:#093950 0px 2px 3px inset; + box-shadow:#093950 0px 2px 3px inset; +} + +a.button2, +.button2 { + border:0; + text-align:center; + text-decoration:none; + -webkit-border-radius:4px; + -moz-border-radius:4px; + border-radius:4px; + -webkit-box-shadow:#999 0px 0px 1px; + -moz-box-shadow:#999 0px 0px 1px; + box-shadow:#999 0px 0px 1px; + background:#FF6600; + background:-webkit-gradient(linear, 0 0, 0 bottom, from(#1f7daa), to(#FF6600)); + background:-webkit-linear-gradient(#1f7daa, #FF6600); + background:-moz-linear-gradient(#1f7daa, #FF6600); + background:-ms-linear-gradient(#1f7daa, #FF6600); + background:-o-linear-gradient(#1f7daa, #FF6600); + background:linear-gradient(#1f7daa, #FF6600); + color:#fff; + padding:10px 20px; + font-family:verdana, sans-serif; + text-shadow:1px 1px 1px #12455d; + display:inline-block; +} +a.button2:hover, +.button2:hover { + color:#fff; + background:-webkit-gradient(linear, 0 0, 0 bottom, from(#FF6600), to(#1f7daa)); + background:-webkit-linear-gradient(#FF6600, #1f7daa); + background:-moz-linear-gradient(#FF6600, #1f7daa); + background:-ms-linear-gradient(#FF6600, #1f7daa); + background:-o-linear-gradient(#FF6600, #1f7daa); + background:linear-gradient(#FF6600, #1f7daa); +} +a.button2:active, +.button:active { + color:#093950; + text-shadow:1px 1px 1px #7ac8f0; + -webkit-box-shadow:#093950 0px 2px 3px inset; + -moz-box-shadow:#093950 0px 2px 3px inset; + box-shadow:#093950 0px 2px 3px inset; +} + +.table { + width:100%; +} +.table th { + padding:5px 7px; + font-weight:bold; + text-align:left; + font-size:0.9em; + border-bottom:1px solid #ddd; +} +.table td { + padding:9px 7px; + border-left:1px solid #ddd; +} +.table tr td:first-child {border-left:0;} + +.table tr { + border-bottom:1px solid #fbfbfb; +} +.table tr:nth-child(even) { + background:#F2F2F2; +} + +.table tr:last-child { + border:0; +} + +.warning { + border:1px solid #ec252e; + background:#ec252e; + color:#fff; + padding:8px 14px; + background:-webkit-gradient(linear, 0 0, 0 bottom, from(#ec252e), to(#F05057)); + background:-webkit-linear-gradient(#ec252e, #F05057); + background:-moz-linear-gradient(#ec252e, #F05057); + background:-ms-linear-gradient(#ec252e, #F05057); + background:-o-linear-gradient(#ec252e, #F05057); + background:linear-gradient(#ec252e, #F05057); + -webkit-border-radius:8px; + -moz-border-radius:8px; + border-radius:8px; +} +.success { + border:1px solid #6e9e30; + color:#fff; + background:#0bbe2e; + padding:8px 14px; + background:-webkit-gradient(linear, 0 0, 0 bottom, from(#6e9e30), to(#87c03b)); + background:-webkit-linear-gradient(#6e9e30, #87c03b); + background:-moz-linear-gradient(#6e9e30, #87c03b); + background:-ms-linear-gradient(#6e9e30, #87c03b); + background:-o-linear-gradient(#6e9e30, #87c03b); + background:linear-gradient(#6e9e30, #87c03b); + -webkit-border-radius:8px; + -moz-border-radius:8px; + border-radius:8px; +} +.message { + border:1px solid #2180ff; + color:#1f49bf; + background:#bcd9ff; + padding:8px 14px; + -webkit-border-radius:8px; + -moz-border-radius:8px; + border-radius:8px; +} +/* [End skin] */ + + +/* Temp */ +#skins .active a {text-decoration:none; font-weight:bold; color:#666; cursor:default} + +.skin_simple {color:#EA0000;} +.skin_isimple {color:#ddd;} +.skin_simploid {color:#86C300;} +/* End temp */ + + +@media only screen and (max-width:480px) { /* Smartphone */ + .logo{ + display:block; + float:none; + text-align:center; + padding:0; + } + + .menu_main { + width:100%; + text-align:center; + float:none; + padding:0; + margin:1em 0 0 0; + } + + .menu_main a { + display:inline-block; + padding:7px; + } + + .copyright { + width:100%; + float:none; + text-align:center; + } + + .footer { + padding-bottom:0; + } + + .menu_bottom { + width:100%; + float:none; + text-align:center; + margin:1em 0 0 0; + padding:0; + } + .menu_bottom a { + display:inline-block; + padding:6px; + } + + .form textarea { + width:100%; + } + .form label { + padding:10px 0 8px 0; + } +} + + +@media only screen and (max-width:768px) { /* Tablet */ + .col_33, + .col_66, + .col_50 { + width:98%; + float:none; + } + + .form label { + padding:10px 0 8px 0; + } +} + + +@media print { /* Printer */ + * { background:transparent !important; color:black !important; text-shadow:none !important; filter:none !important; -ms-filter:none !important; } + a, a:visited { color:#444 !important; text-decoration:underline; } + a[href]:after { content:" (" attr(href) ")"; } + abbr[title]:after { content:" (" attr(title) ")"; } + pre, blockquote { border:1px solid #999; page-break-inside:avoid; } + thead { display:table-header-group; } + tr, img { page-break-inside:avoid; } + img { max-width:100% !important; } + @page { margin:0.5cm; } + p, h2, h3 { orphans:3; widows:3; } + h2, h3{ page-break-after:avoid; } + + .header, .footer, .form {display:none;} + .col_33, .col_66, .col_50 { width:98%; float:none; } +} \ No newline at end of file diff --git a/OpenAuth.Mvc/Content/themes/base/accordion.css b/OpenAuth.Mvc/Content/themes/base/accordion.css new file mode 100644 index 00000000..13e57528 --- /dev/null +++ b/OpenAuth.Mvc/Content/themes/base/accordion.css @@ -0,0 +1,36 @@ +/*! + * jQuery UI Accordion 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/accordion/#theming + */ +.ui-accordion .ui-accordion-header { + display: block; + cursor: pointer; + position: relative; + margin: 2px 0 0 0; + padding: .5em .5em .5em .7em; + min-height: 0; /* support: IE7 */ + font-size: 100%; +} +.ui-accordion .ui-accordion-icons { + padding-left: 2.2em; +} +.ui-accordion .ui-accordion-icons .ui-accordion-icons { + padding-left: 2.2em; +} +.ui-accordion .ui-accordion-header .ui-accordion-header-icon { + position: absolute; + left: .5em; + top: 50%; + margin-top: -8px; +} +.ui-accordion .ui-accordion-content { + padding: 1em 2.2em; + border-top: 0; + overflow: auto; +} diff --git a/OpenAuth.Mvc/Content/themes/base/all.css b/OpenAuth.Mvc/Content/themes/base/all.css new file mode 100644 index 00000000..0bab9913 --- /dev/null +++ b/OpenAuth.Mvc/Content/themes/base/all.css @@ -0,0 +1,12 @@ +/*! + * jQuery UI CSS Framework 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/category/theming/ + */ +@import "base.css"; +@import "theme.css"; diff --git a/OpenAuth.Mvc/Content/themes/base/autocomplete.css b/OpenAuth.Mvc/Content/themes/base/autocomplete.css new file mode 100644 index 00000000..c21c54f6 --- /dev/null +++ b/OpenAuth.Mvc/Content/themes/base/autocomplete.css @@ -0,0 +1,16 @@ +/*! + * jQuery UI Autocomplete 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/autocomplete/#theming + */ +.ui-autocomplete { + position: absolute; + top: 0; + left: 0; + cursor: default; +} diff --git a/OpenAuth.Mvc/Content/themes/base/base.css b/OpenAuth.Mvc/Content/themes/base/base.css new file mode 100644 index 00000000..7f531726 --- /dev/null +++ b/OpenAuth.Mvc/Content/themes/base/base.css @@ -0,0 +1,28 @@ +/*! + * jQuery UI CSS Framework 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/category/theming/ + */ +@import url("core.css"); + +@import url("accordion.css"); +@import url("autocomplete.css"); +@import url("button.css"); +@import url("datepicker.css"); +@import url("dialog.css"); +@import url("draggable.css"); +@import url("menu.css"); +@import url("progressbar.css"); +@import url("resizable.css"); +@import url("selectable.css"); +@import url("selectmenu.css"); +@import url("sortable.css"); +@import url("slider.css"); +@import url("spinner.css"); +@import url("tabs.css"); +@import url("tooltip.css"); diff --git a/OpenAuth.Mvc/Content/themes/base/button.css b/OpenAuth.Mvc/Content/themes/base/button.css new file mode 100644 index 00000000..7f11bdd2 --- /dev/null +++ b/OpenAuth.Mvc/Content/themes/base/button.css @@ -0,0 +1,114 @@ +/*! + * jQuery UI Button 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/button/#theming + */ +.ui-button { + display: inline-block; + position: relative; + padding: 0; + line-height: normal; + margin-right: .1em; + cursor: pointer; + vertical-align: middle; + text-align: center; + overflow: visible; /* removes extra width in IE */ +} +.ui-button, +.ui-button:link, +.ui-button:visited, +.ui-button:hover, +.ui-button:active { + text-decoration: none; +} +/* to make room for the icon, a width needs to be set here */ +.ui-button-icon-only { + width: 2.2em; +} +/* button elements seem to need a little more width */ +button.ui-button-icon-only { + width: 2.4em; +} +.ui-button-icons-only { + width: 3.4em; +} +button.ui-button-icons-only { + width: 3.7em; +} + +/* button text element */ +.ui-button .ui-button-text { + display: block; + line-height: normal; +} +.ui-button-text-only .ui-button-text { + padding: .4em 1em; +} +.ui-button-icon-only .ui-button-text, +.ui-button-icons-only .ui-button-text { + padding: .4em; + text-indent: -9999999px; +} +.ui-button-text-icon-primary .ui-button-text, +.ui-button-text-icons .ui-button-text { + padding: .4em 1em .4em 2.1em; +} +.ui-button-text-icon-secondary .ui-button-text, +.ui-button-text-icons .ui-button-text { + padding: .4em 2.1em .4em 1em; +} +.ui-button-text-icons .ui-button-text { + padding-left: 2.1em; + padding-right: 2.1em; +} +/* no icon support for input elements, provide padding by default */ +input.ui-button { + padding: .4em 1em; +} + +/* button icon element(s) */ +.ui-button-icon-only .ui-icon, +.ui-button-text-icon-primary .ui-icon, +.ui-button-text-icon-secondary .ui-icon, +.ui-button-text-icons .ui-icon, +.ui-button-icons-only .ui-icon { + position: absolute; + top: 50%; + margin-top: -8px; +} +.ui-button-icon-only .ui-icon { + left: 50%; + margin-left: -8px; +} +.ui-button-text-icon-primary .ui-button-icon-primary, +.ui-button-text-icons .ui-button-icon-primary, +.ui-button-icons-only .ui-button-icon-primary { + left: .5em; +} +.ui-button-text-icon-secondary .ui-button-icon-secondary, +.ui-button-text-icons .ui-button-icon-secondary, +.ui-button-icons-only .ui-button-icon-secondary { + right: .5em; +} + +/* button sets */ +.ui-buttonset { + margin-right: 7px; +} +.ui-buttonset .ui-button { + margin-left: 0; + margin-right: -.3em; +} + +/* workarounds */ +/* reset extra padding in Firefox, see h5bp.com/l */ +input.ui-button::-moz-focus-inner, +button.ui-button::-moz-focus-inner { + border: 0; + padding: 0; +} diff --git a/OpenAuth.Mvc/Content/themes/base/core.css b/OpenAuth.Mvc/Content/themes/base/core.css new file mode 100644 index 00000000..154f1f89 --- /dev/null +++ b/OpenAuth.Mvc/Content/themes/base/core.css @@ -0,0 +1,93 @@ +/*! + * jQuery UI CSS Framework 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/category/theming/ + */ + +/* Layout helpers +----------------------------------*/ +.ui-helper-hidden { + display: none; +} +.ui-helper-hidden-accessible { + border: 0; + clip: rect(0 0 0 0); + height: 1px; + margin: -1px; + overflow: hidden; + padding: 0; + position: absolute; + width: 1px; +} +.ui-helper-reset { + margin: 0; + padding: 0; + border: 0; + outline: 0; + line-height: 1.3; + text-decoration: none; + font-size: 100%; + list-style: none; +} +.ui-helper-clearfix:before, +.ui-helper-clearfix:after { + content: ""; + display: table; + border-collapse: collapse; +} +.ui-helper-clearfix:after { + clear: both; +} +.ui-helper-clearfix { + min-height: 0; /* support: IE7 */ +} +.ui-helper-zfix { + width: 100%; + height: 100%; + top: 0; + left: 0; + position: absolute; + opacity: 0; + filter:Alpha(Opacity=0); /* support: IE8 */ +} + +.ui-front { + z-index: 100; +} + + +/* Interaction Cues +----------------------------------*/ +.ui-state-disabled { + cursor: default !important; +} + + +/* Icons +----------------------------------*/ + +/* states and images */ +.ui-icon { + display: block; + text-indent: -99999px; + overflow: hidden; + background-repeat: no-repeat; +} + + +/* Misc visuals +----------------------------------*/ + +/* Overlays */ +.ui-widget-overlay { + position: fixed; + top: 0; + left: 0; + width: 100%; + height: 100%; +} diff --git a/OpenAuth.Mvc/Content/themes/base/datepicker.css b/OpenAuth.Mvc/Content/themes/base/datepicker.css new file mode 100644 index 00000000..ea559d87 --- /dev/null +++ b/OpenAuth.Mvc/Content/themes/base/datepicker.css @@ -0,0 +1,175 @@ +/*! + * jQuery UI Datepicker 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/datepicker/#theming + */ +.ui-datepicker { + width: 17em; + padding: .2em .2em 0; + display: none; +} +.ui-datepicker .ui-datepicker-header { + position: relative; + padding: .2em 0; +} +.ui-datepicker .ui-datepicker-prev, +.ui-datepicker .ui-datepicker-next { + position: absolute; + top: 2px; + width: 1.8em; + height: 1.8em; +} +.ui-datepicker .ui-datepicker-prev-hover, +.ui-datepicker .ui-datepicker-next-hover { + top: 1px; +} +.ui-datepicker .ui-datepicker-prev { + left: 2px; +} +.ui-datepicker .ui-datepicker-next { + right: 2px; +} +.ui-datepicker .ui-datepicker-prev-hover { + left: 1px; +} +.ui-datepicker .ui-datepicker-next-hover { + right: 1px; +} +.ui-datepicker .ui-datepicker-prev span, +.ui-datepicker .ui-datepicker-next span { + display: block; + position: absolute; + left: 50%; + margin-left: -8px; + top: 50%; + margin-top: -8px; +} +.ui-datepicker .ui-datepicker-title { + margin: 0 2.3em; + line-height: 1.8em; + text-align: center; +} +.ui-datepicker .ui-datepicker-title select { + font-size: 1em; + margin: 1px 0; +} +.ui-datepicker select.ui-datepicker-month, +.ui-datepicker select.ui-datepicker-year { + width: 45%; +} +.ui-datepicker table { + width: 100%; + font-size: .9em; + border-collapse: collapse; + margin: 0 0 .4em; +} +.ui-datepicker th { + padding: .7em .3em; + text-align: center; + font-weight: bold; + border: 0; +} +.ui-datepicker td { + border: 0; + padding: 1px; +} +.ui-datepicker td span, +.ui-datepicker td a { + display: block; + padding: .2em; + text-align: right; + text-decoration: none; +} +.ui-datepicker .ui-datepicker-buttonpane { + background-image: none; + margin: .7em 0 0 0; + padding: 0 .2em; + border-left: 0; + border-right: 0; + border-bottom: 0; +} +.ui-datepicker .ui-datepicker-buttonpane button { + float: right; + margin: .5em .2em .4em; + cursor: pointer; + padding: .2em .6em .3em .6em; + width: auto; + overflow: visible; +} +.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { + float: left; +} + +/* with multiple calendars */ +.ui-datepicker.ui-datepicker-multi { + width: auto; +} +.ui-datepicker-multi .ui-datepicker-group { + float: left; +} +.ui-datepicker-multi .ui-datepicker-group table { + width: 95%; + margin: 0 auto .4em; +} +.ui-datepicker-multi-2 .ui-datepicker-group { + width: 50%; +} +.ui-datepicker-multi-3 .ui-datepicker-group { + width: 33.3%; +} +.ui-datepicker-multi-4 .ui-datepicker-group { + width: 25%; +} +.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header, +.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { + border-left-width: 0; +} +.ui-datepicker-multi .ui-datepicker-buttonpane { + clear: left; +} +.ui-datepicker-row-break { + clear: both; + width: 100%; + font-size: 0; +} + +/* RTL support */ +.ui-datepicker-rtl { + direction: rtl; +} +.ui-datepicker-rtl .ui-datepicker-prev { + right: 2px; + left: auto; +} +.ui-datepicker-rtl .ui-datepicker-next { + left: 2px; + right: auto; +} +.ui-datepicker-rtl .ui-datepicker-prev:hover { + right: 1px; + left: auto; +} +.ui-datepicker-rtl .ui-datepicker-next:hover { + left: 1px; + right: auto; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane { + clear: right; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane button { + float: left; +} +.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current, +.ui-datepicker-rtl .ui-datepicker-group { + float: right; +} +.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header, +.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { + border-right-width: 0; + border-left-width: 1px; +} diff --git a/OpenAuth.Mvc/Content/themes/base/dialog.css b/OpenAuth.Mvc/Content/themes/base/dialog.css new file mode 100644 index 00000000..66b90cc8 --- /dev/null +++ b/OpenAuth.Mvc/Content/themes/base/dialog.css @@ -0,0 +1,70 @@ +/*! + * jQuery UI Dialog 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/dialog/#theming + */ +.ui-dialog { + overflow: hidden; + position: absolute; + top: 0; + left: 0; + padding: .2em; + outline: 0; +} +.ui-dialog .ui-dialog-titlebar { + padding: .4em 1em; + position: relative; +} +.ui-dialog .ui-dialog-title { + float: left; + margin: .1em 0; + white-space: nowrap; + width: 90%; + overflow: hidden; + text-overflow: ellipsis; +} +.ui-dialog .ui-dialog-titlebar-close { + position: absolute; + right: .3em; + top: 50%; + width: 20px; + margin: -10px 0 0 0; + padding: 1px; + height: 20px; +} +.ui-dialog .ui-dialog-content { + position: relative; + border: 0; + padding: .5em 1em; + background: none; + overflow: auto; +} +.ui-dialog .ui-dialog-buttonpane { + text-align: left; + border-width: 1px 0 0 0; + background-image: none; + margin-top: .5em; + padding: .3em 1em .5em .4em; +} +.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { + float: right; +} +.ui-dialog .ui-dialog-buttonpane button { + margin: .5em .4em .5em 0; + cursor: pointer; +} +.ui-dialog .ui-resizable-se { + width: 12px; + height: 12px; + right: -5px; + bottom: -5px; + background-position: 16px 16px; +} +.ui-draggable .ui-dialog-titlebar { + cursor: move; +} diff --git a/OpenAuth.Mvc/Content/themes/base/draggable.css b/OpenAuth.Mvc/Content/themes/base/draggable.css new file mode 100644 index 00000000..df01f29f --- /dev/null +++ b/OpenAuth.Mvc/Content/themes/base/draggable.css @@ -0,0 +1,12 @@ +/*! + * jQuery UI Draggable 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + */ +.ui-draggable-handle { + -ms-touch-action: none; + touch-action: none; +} diff --git a/OpenAuth.Mvc/Content/themes/base/images/toggle-collapse-dark.png b/OpenAuth.Mvc/Content/themes/base/images/toggle-collapse-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..76577a57a23105b4c821b851902cda145e348d9c GIT binary patch literal 2886 zcmV-M3%T@(P)KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0001SNklKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z00016Nkl#o|j~;NOrUS;Iml8<=fB^uSx`83+-GX=k O0000KLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z0001aNklKLZ*U+IBfRsybQWXdwQbLP>6pAqfylh#{fb6;Z(vMMVS~$e@S=j*ftg6;Uhf59&ghTmgWD0l;*T zI709Y^p6lP1rIRMx#05C~cW=H_Aw*bJ-5DT&Z2n+x)QHX^p z00esgV8|mQcmRZ%02D^@S3L16t`O%c004NIvOKvYIYoh62rY33S640`D9%Y2D-rV&neh&#Q1i z007~1e$oCcFS8neI|hJl{-P!B1ZZ9hpmq0)X0i`JwE&>$+E?>%_LC6RbVIkUx0b+_+BaR3cnT7Zv!AJxW zizFb)h!jyGOOZ85F;a?DAXP{m@;!0_IfqH8(HlgRxt7s3}k3K`kFu>>-2Q$QMFfPW!La{h336o>X zu_CMttHv6zR;&ZNiS=X8v3CR#fknUxHUxJ0uoBa_M6WNWeqIg~6QE69c9o#eyhGvpiOA@W-aonk<7r1(?fC{oI5N*U!4 zfg=2N-7=cNnjjOr{yriy6mMFgG#l znCF=fnQv8CDz++o6_Lscl}eQ+l^ZHARH>?_s@|##Rr6KLRFA1%Q+=*RRWnoLsR`7U zt5vFIcfW3@?wFpwUVxrVZ>QdQz32KIeJ}k~{cZZE^+ya? z2D1z#2HOnI7(B%_ac?{wFUQ;QQA1tBKtrWrm0_3Rgps+?Jfqb{jYbcQX~taRB;#$y zZN{S}1|}gUOHJxc?wV3fxuz+mJ4`!F$IZ;mqRrNsHJd##*D~ju=bP7?-?v~|cv>vB zsJ6IeNwVZxrdjT`yl#bBIa#GxRa#xMMy;K#CDyyGyQdMSxlWT#tDe?p!?5wT$+oGt z8L;Kp2HUQ-ZMJ=3XJQv;x5ci*?vuTfeY$;({XGW_huIFR9a(?@3)XSs8O^N5RyOM=TTmp(3=8^+zpz2r)C z^>JO{deZfso3oq3?Wo(Y?l$ge?uXo;%ru`Vo>?<<(8I_>;8Eq#KMS9gFl*neeosSB zfoHYnBQIkwkyowPu(zdms`p{<7e4kra-ZWq<2*OsGTvEV%s0Td$hXT+!*8Bnh2KMe zBmZRodjHV?r+_5^X9J0WL4jKW`}lf%A-|44I@@LTvf1rHjG(ze6+w@Jt%Bvjts!X0 z?2xS?_ve_-kiKB_KiJlZ$9G`c^=E@oNG)mWWaNo-3TIW8)$Hg0Ub-~8?KhvJ>$ z3*&nim@mj(aCxE5!t{lw7O5^0EIO7zOo&c6l<+|iDySBWCGrz@C5{St!X3hAA}`T4 z(TLbXTq+(;@<=L8dXnssyft|w#WSTW<++3>sgS%(4NTpeI-VAqb|7ssJvzNHgOZVu zaYCvgO_R1~>SyL=cFU|~g|hy|Zi}}s9+d~lYqOB71z9Z$wnC=pR9Yz4DhIM>Wmjgu z&56o6maCpC&F##y%G;1PobR9i?GnNg;gYtchD%p19a!eQtZF&3JaKv33gZ<8D~47E ztUS1iwkmDaPpj=$m#%)jCVEY4fnLGNg2A-`YwHVD3gv};>)hAvT~AmqS>Lr``i7kw zJ{5_It`yrBmlc25DBO7E8;5VoznR>Ww5hAaxn$2~(q`%A-YuS64wkBy=9dm`4cXeX z4c}I@?e+FW+b@^RDBHV(wnMq2zdX3SWv9u`%{xC-q*U}&`cyXV(%rRT*Z6MH?i+i& z_B8C(+grT%{XWUQ+f@NoP1R=AW&26{v-dx)iK^-Nmiuj8txj!m?Z*Ss1N{dh4z}01 z)YTo*JycSU)+_5r4#yw9{+;i4Ee$peRgIj+;v;ZGdF1K$3E%e~4LaI(jC-u%2h$&R z9cLXcYC@Xwnns&bn)_Q~Te?roKGD|d-g^8;+aC{{G(1^(O7m37Y1-+6)01cN&y1aw zoqc{T`P^XJqPBbIW6s}d4{z_f5Om?vMgNQEJG?v2T=KYd^0M3I6IZxbny)%vZR&LD zJpPl@Psh8QyPB@KTx+@RdcC!KX7}kEo;S|j^u2lU7XQ}Oo;f|;z4Ll+_r>@1-xl3| zawq-H%e&ckC+@AhPrP6BKT#_XdT7&;F71j}Joy zkC~6lh7E@6o;W@^IpRNZ{ptLtL(gQ-CY~4mqW;US7Zxvm_|@yz&e53Bp_lTPlfP|z zrTyx_>lv@x#=^!PzR7qqF<$gm`|ZJZ+;<)Cqu&ot2z=0000WV@Og>004R=004l4008;_004mL004C`008P>0026e000+nl3&F} z00015Nkl@mV}a;&z&P~t0>uUZ1^^Xcdn3u6aqR#A N002ovPDHLkV1hxePYD13 literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Content/themes/base/images/ui-bg_diagonals-thick_18_b81900_40x40.png b/OpenAuth.Mvc/Content/themes/base/images/ui-bg_diagonals-thick_18_b81900_40x40.png new file mode 100644 index 0000000000000000000000000000000000000000..7e4af1db3ac79771f85b26e10e3ae8710059765e GIT binary patch literal 457 zcmeAS@N?(olHy`uVBq!ia0vp^8Xzpd1SErbK34)MmUKs7M+SzC{oH>NS%G|oWRD45bDP46hOx7_4S6Fo+k-*%fF5lweEpc6a#?2AmP!?*K&} zc)B=-WZZju!;p)~P{8fsS+h8Y3A#s59Xebow0`qkb;0a|Q5!b@SnY5ug{8alD(tOTvC3~9l}1^gjX_wAqN5%Tok#}4nScjONW zuC&^HuyAEwLCGrSGYiZbJ+E-ha5p^|lErvtS=s}+6r2f n1}0Vp2H&16zJa14H$NpatrE9}_MOrxKn)C@u6{1-oD!M!lvI6-E$sR$z z3=CCj3=9n|3=F@3LJcn%7)lKo7+xhXFj&oCU=S~uvn$XBD8ZEE?e6mbzsPFCvp`;z zr;B5V$MLsUPYX6E@VEx9@?|&6ay8;f`myuF-MNb1M(HzW_kEU|eed)0=e7D9W0*D9 zHOYiKOggP_TGyf1*jvZE!RmS=%X5deY=xtt6CQJU6iKG+uffPdu6X1Lz9X64!{5l*E!$tK_0oAjM#0 zU}&OiXrOCo7Gh{nC}Q!>*kacgMbDV+k;z~JfX=d#Wz Gp$P!pes!Aw literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Content/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png b/OpenAuth.Mvc/Content/themes/base/images/ui-bg_flat_0_aaaaaa_40x100.png new file mode 100644 index 0000000000000000000000000000000000000000..5b5dab2ab7b1c50dea9cfe73dc5a269a92d2d4b4 GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FscKIb$B>N1x91EQ4=4yQ7#`R^ z$vje}bP0l+XkK DSH>_4 literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Content/themes/base/images/ui-bg_flat_10_000000_40x100.png b/OpenAuth.Mvc/Content/themes/base/images/ui-bg_flat_10_000000_40x100.png new file mode 100644 index 0000000000000000000000000000000000000000..0a5aa914b236c0b1552513ab4d5fdda1aa4eef51 GIT binary patch literal 244 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F2qYNp$opRhQY`6?zK#qG8~eHcB(ehe3dtTp zz6=aiY77hwEes65fI2OC7#SFv=o%X68k&U| w8d@1yS{a+_8kkra7<_xO_y&rG-29Zxv`X9>+ILE)05vdpy85}Sb4q9e0Ooo;w*UYD literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Content/themes/base/images/ui-bg_flat_75_ffffff_40x100.png b/OpenAuth.Mvc/Content/themes/base/images/ui-bg_flat_75_ffffff_40x100.png new file mode 100644 index 0000000000000000000000000000000000000000..ac8b229af950c29356abf64a6c4aa894575445f0 GIT binary patch literal 178 zcmeAS@N?(olHy`uVBq!ia0vp^8bF-F!3HG1q!d*FsY*{5$B>N1x91EQ4=4yQYz+E8 zPo9&<{J;c_6SHRil>2s{Zw^OT)6@jj2u|u!(plXsM>LJD`vD!n;OXk;vd$@?2>^GI BH@yG= literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Content/themes/base/images/ui-bg_glass_100_f6f6f6_1x400.png b/OpenAuth.Mvc/Content/themes/base/images/ui-bg_glass_100_f6f6f6_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..068406ca901c5d06855a86906b2e36d0d3f79980 GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^j6gI&0LWmFTHNUZq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!t9$=luK|9_FyhG&61 z4^J1z5R22vKTKyPiu5Y2TAY7hVxPBR&H2P1b#orJiyiJ~<*`31QRkQXL-o*y)!h%x znGe5@X}d2j`A@^}PiM-H$tGQHf`%LnpC-BAQ(ov705nsz#5JNMC9x#cD!C{XNHG{0 z7@FuB8t59Dg%}!I8ChBxo9Y^vSQ!|6d$RZjiiX_$l+3hB+#1?zz`*b-fq}tl1_Oh5!JJ)zHb4osByV?@|6srw@%;`^ zWR|CkV~EG`x99D-85t$mAKd@F*+VUM$~ukHXUpObgeREBN9LXpoBz~pv(Vg&OI9xy zIa;#Q{_g4J0*9?_KQrG=jkHl_U}#H}IJVs}Qq5B$Xw{>WZ5atiOdlp3V!tRfU-re1 zQVTbiXtAl5B~#th+Y3@pGVD4#@1sD~x#iPsx14w%KK+u&{MbF!t_9wmR%~B57PbA0 zU&4FXpzZ{_)IXz8*O(oRKv$}kxJHzuB$lLFB^RXvDF!10Lla#?16@P25JN*NBTFk| pQ(XfSD+7aXPZr-m(U6;;l9^VCTSNO!=@g&_22WQ%mvv4FO#o0qho}Gm literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Content/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png b/OpenAuth.Mvc/Content/themes/base/images/ui-bg_glass_55_fbf9ee_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..ad3d6346e00f246102f72f2e026ed0491988b394 GIT binary patch literal 120 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnour0hLi978O6-<~(*I$*%ybaDOn z{W;e!B}_MSUQoPXhYd^Y6RUoS1yepnPx`2Kz)7OXQG!!=-jY=F+d2OOy?#DnJ32>z UEim$g7SJdLPgg&ebxsLQ09~*s;{X5v literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Content/themes/base/images/ui-bg_glass_65_ffffff_1x400.png b/OpenAuth.Mvc/Content/themes/base/images/ui-bg_glass_65_ffffff_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..42ccba269b6e91bef12ad0fa18be651b5ef0ee68 GIT binary patch literal 105 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouqzpV=978O6-=0?FV^9z|eBtf= z|7WztIJ;WT>{+tN>ySr~=F{k$>;_x^_y?afmf9pRKH0)6?eSP?3s5hEr>mdKI;Vst E0O;M1& literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Content/themes/base/images/ui-bg_glass_75_dadada_1x400.png b/OpenAuth.Mvc/Content/themes/base/images/ui-bg_glass_75_dadada_1x400.png new file mode 100644 index 0000000000000000000000000000000000000000..5a46b47cb16631068aee9e0bd61269fc4e95e5cd GIT binary patch literal 111 zcmeAS@N?(olHy`uVBq!ia0vp^j6gJjgAK^akKnouq|7{B978O6lPf+wIa#m9#>Unb zm^4K~wN3Zq+uP{vDV26o)#~38k_!`W=^oo1w6ixmPC4R1b Tyd6G3lNdZ*{an^LB{Ts5`idse literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Content/themes/base/images/ui-bg_gloss-wave_35_f6a828_500x100.png b/OpenAuth.Mvc/Content/themes/base/images/ui-bg_gloss-wave_35_f6a828_500x100.png new file mode 100644 index 0000000000000000000000000000000000000000..8dc23e251b0505078f3a0912ddf41db6a89bf72e GIT binary patch literal 5854 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 UXx}NF0@T3Z>FVdQ&MBb@02WezsQ>@~ literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Content/themes/base/images/ui-icons_222222_256x240.png b/OpenAuth.Mvc/Content/themes/base/images/ui-icons_222222_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..ee039dc096a38a3753f92519546eee94bcfbeffa GIT binary patch literal 4369 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 literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Content/themes/base/images/ui-icons_228ef1_256x240.png b/OpenAuth.Mvc/Content/themes/base/images/ui-icons_228ef1_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..1e787bb98f072e1080b4557a20a86cd79b814040 GIT binary patch literal 4599 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 literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Content/themes/base/images/ui-icons_454545_256x240.png b/OpenAuth.Mvc/Content/themes/base/images/ui-icons_454545_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..7ec70d11bfb2f77374dfd00ef61ba0c3647b5a0c GIT binary patch literal 4369 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 k*Kv;w;*%(i9W@fAqs5i2wiq literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Content/themes/base/images/ui-icons_888888_256x240.png b/OpenAuth.Mvc/Content/themes/base/images/ui-icons_888888_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..5ba708c39172a69e069136bd1309c4322c61f571 GIT binary patch literal 4369 zcmd^?`8yPD_s3^phOrG}UnfiUEn8(9QW1?MNkxXVDEpFin2{xWrLx5kBC;k~GmI3`<(O3xvulR&VAkQJHZBho(m=l0{{SA7UpJl008iB z3RqU$@Wfh}nb?QCTyjovo2=)B^qQB=#XMCF_n=?1Jbh>5sptJM?}}{I zHzR=-V_TFXKM0P+&lrh3TPr)c<8EmLl3g~EY}W@od*0X6Ljv>L(67bjz58EDypsu&ddu2a@@x)`5aA^S^DxkW8rs_vKtu8N8(o0 z#Nf}*Ch4&iw866BiW!_r4*HRsHn%80xlBW<`IOcXDu%LQam7$Ge$q#1415XvN>cnS zk_qU%P}4fO0v>J{Zw9o*)JF-CPA!KcpFR1Pn(l@*bKh=1_!ZRWb?FoG5a22cVG<$5 z0|%Qj7p@n}=Hrkk`BkD99I57h7_+lQ-AZ-?fETz5E~q(= z!!d%~_yivn82d_pX#M+Y`|`-F^s6-{6}S!?_mFzr<=n>M{{PUq7g-N`hqOcY-y_m= zc#xZEqMPgqc5cu{ag@Tdli5@JlV{xH8J%TA}P<$=Qej`5Hq>_Gzk+NDFM{b*SA6Yydp9VOs1VgIYAcj@1BIt< zXz@=NF2DLCC>`r|^h-z5@eIEh>Vnjh+|-6M@nuC!oc*856_8#_6jL|rKLYu=)Ew4+ z*XiJVgHrKl?=0wjQ)aeNu2^jkUW>@Hei_S;nuA%RRe49V`VM;8SxUBxpZPe>l9ZA{YS(NU; zhnP(vSd1kYiV^KQ02>XpH6u}Xk)wrk`+SxNxC73cSAefm+V!<`c^b#A9NaTn45bEq zkRYp$U%h-|^9P*syb!eKG!QC-$;IS9MdE^@-`WRSzTp+8M9zqJCUsoPC-3Tr+qbkO z$o;ra-wGjC64H8m{(*FVitg+LQKH+96D4!FREFb|Scex)lw()`rHV$WMdUJNe3E}`->+?@(FDYcZt1#>wXwgHzQ6{p% zTY#PF?iBGE7<=u*`SFt0Lw0HX!oh85UlzQH{;k~&JH?kPJzdQX=gAmX40n@#()wBu zSllJ`lX^ZF9!&n2{1443>o2BzK(6sGDQ?n~RYk_ih&{?TJNBH*Eq`73g$F~WrJz{` zce}LL0;S^ZMb&nKyWR#(_t{VguBs~LOSLX&q*$M&haRh5HO5G%C&MvDmi{a@PM;Zq z)h;XzD;Cshu#GG)RsptBTJvnQHC(-#7@G7B`iqJMl=F%g zD7I#-8sWBC_kJC!{tU)rGSX-nt`B$M86ARc$^oIWRNOCMU!X+%PKM$X`mI~kxxaKB znBMvsb8nZ)0}JBmidn3FUeG@ZcdpwZy_4oi*b{&c?T^HaVC|`tnlo?1SjRKLNPk{gDWT+_1fio|Ic{5kU=X{rvm3 zZIZ6BO4vMQdqO`~Ef~j4Z?cQ(+Ff$wxGAlyMBqd}_S__(_xM@v-fTM;$Q^HhR@PU= zE|8KP1IM4s;)*-+Z@m25>p^N(PgHJsq+a!8`ezsTQ3Np0+k4Mtdkgu z^}tg`-YMQKuuO>dsJQkgyjabt1)2OM)|R(}hto4zSIj5V;^@PYtIwI&4#+%;&Kf)o z7)jrDgZ%f?x$UCa=&~<9SHq{ZhxKx!b+ft~!I?(H$&BMOox4KuOo95gl<%5AIg+is zd=%?6ZOr(k=S0U?!*k{1h5q3O_ZrYo5Hq#Sl|1?L+WU%}6JI(orD)*qq-300E63z? z#iM){^ff?RwehBsE3Uh)}m z74!C`a^?2x1@?-i<#cI?a=RcP4Xx$88l&B!g`Nm)Fo$Fcf!VX@0y$z7EVz~OXbALP zyfX0m-nf+4I&E=bsAjk~l_2g3i}1e%qO!KkQ@Ij*%HbGO)w=i^^5FvkHIIee`4l@J zN(eR%MpMiipJjP0Cxd|&4n@b?>6{Ue05+A0q?xd^oCpYNXpePmO#{q`vISfX)oT82 zc+d5gPn5-?9wBmlt3pk*z*hj`X#ycn4?KJY!|++>4l2@t>FhVEjPeFAhW%k5Vkm2~ zbcy`#HFb1XOYOKAcKGGN*GG%skMBnYSL@4d#@wS$CLny@9vSEwSCUSW;OHk%_<>T$ z7HwfvT&)@WQFkIm_dH-5Csjc|H+OBX6;F-rR3wuTudV;|_Oc(#-}UUgloD_-!aH>L z-NF)hJ|F-%gI?Y8Jvo7qXRG7UV5l2_yAHF93IhsP-b`cH*wlEz^Qi99$$*D?10PGQ zCkYPA5Hltd=c+>(bWIfjJP@1Obe?Gx$=qVDe)rPM+5sw)!8F3K7T{OMLFj_+>SX>F zTT-48YC1?q1IV|?OSG8?IGXAN;&q~nz?z0#i+qM9P~U@BNG1FyO9#kvk>T>G=#)_^ zj!fMlH{X;+ONmr!LsJx(j*b2&WMpJ+s&cN;7Tyu8gf>RT2kOR+DBzZr7=m-v-UheM zgj$|(0HN;F)qrlz6$FyVsy6e02`M!$<1L&Bz z+b!=_(#ur8?I=h&thJP2c+^S%)lEi*8fSaPs>Or&i1kF^p9QX&8C;)E+S__7fCh{W zSpW930L|8eV$Pa=LO*oao@VWHUr>MSl`x%iydJaFA!rB6u0`Jo5337p0UZNmSb{=o z*%W(>6W|^!F&8DUAC~&Vo2D?gE{V0S3{B;atoXLUNo9J? z0AWHot1HHimnr%xGf~-qSOO6>z*MtHe(EIN3<7@k-U&gFD+Xq}Ua*o~(!1kApC zO+-7O=jP#uq4B~*JwPs<`_;tw%;J3m{g-9xU(RBU&q^x&eSc@Ik<8NR$i0+>JBKgT zPqjfRC3Q3V=4q|BVK-yVuyUMByvXqR1a4^k&=*MqJ_v2b7I+El z1&0}s^tJ?^uXsz@oZ9j4x^n+$X$>D_nE$4#I-;EJG6wc;Jy@i$hSA&JVNoE;;UpDo l!Q;r<<-MKrq~`aIaqoP9xRgPV&EKy+z~U_0tkM({{ePlYU?u&Z`mr_kcwz5Nh&g=McJ3E!;CE1E0ryV5Ro;>nvty8 zA{omJnn+{p4952Let*87zvA;auXFF~{<`_uPA4&sV%P>LMpp1PTBEIL*yWZ2%{t3Pe;FXZ3XmxI8(D_g57_$Zil~sY6d4T}-hu9_Wqp4C0AMO{-e2$W~1A}=8 z?24)=?B)4HUDo_oXckN%okP)HFJjaB4*3_SNpKaf;yPT}KqfS{2x7`d{0xbPErH%h zh`mQJ03DaATP9aP!}a4$fY#``NI~M6&RljED)8z}hhWxrNbxIBlTxG^j z!X>$3AQQ&I%_5mRECOjaGwR-GHmde})^)t-3_~aFM1G_L#mpCNdcLqr(RKjv3R}(z zG2^yBftMYh;H3a#-slaj|5$BX9+{PTv&NtR*P-L?l21FGTG`$H9~##p%VE!uR>=NG zc&auxVl!1_lP%uX71AJvlz(wLYl?63oLd~dqjZRrU#UEWw8J6Yn-7L~T$$tjeAQiW z9$XG5Hu>rxFBnzgd6ho#^gE5pY>U$dTCRN85Y1tQQ0=Pn{?7OJ10x9Xk!>P2f(f^f zILd}5--N;Po4*25F|J3ywIv+R@rfcYNj}R-sXrH2TFAiK{jFGG(ru1p=w$wR;IXQwAX*S~oiEK{g;kZPW;YE|!QY|g^2`dMS{&1Fr zkf?!sj~m)xO3v`hh4KQRJ&&Q!=X1HNq8T_Sg2P^B&rZX{VQUNc9O(K+B_Z4hiTH7M zW7K5Y!Ec5xD~B9zFlKUWG_Rd)xTK7U#hRGhp51T++e6oS{gT^?3s~>V4?6{zchhc_ z3UBb_W2U+~guMsG-g=@#aWPSFypk)5jIUTxFiM zycGZzbxQuCTnvH*kv=E=LsRnltLbhgm$=ttS1IzU0)1t~4(XE>bHVwJpAPKOqoI-# zrdc{yo0R7Qx%~ZQl{UPa?gmxo#ZWM|vNHNxl@8NLksfn5Ek>C${w=x~pekl%gfwaLwWspL{af)?f zTOBmhTyU&3;}QeF&VLwhJ>Dezu>~P zc+$aFxKDWKj-CmD(v`}uH|ts*SefX@lyrc<%~WE6tHU#dv;y+LlA@cTgl8J!u@@u6 z@@fvJdC)1TvBa$QT@ck`rUxF**7w4Yh0!vZUsGu%Lm(cl(l#QPpmoOH3JC>FMe07G zq0kl#K+GLndyoOx8{t9g8JiLs#`pH8JWqR_ZM%J!Yr>cp>95<^#=FWQfzPm%q;5B+ z0>}ul8+l+gRaHV$$tsq5|MU;?AJ~m-XNxjW3U6JH2k`tOXAqi)yGI@^uA&dQ% zZCJIe7{qK>+p_F)Sqy-GC!x-5MgogsP6lwiUH`N^a7*LKPdO{!4L^_^;goe*e}3s( z0i~~@V#)#L*W~2F?}&N*IQ)0a4Z1$uTU)p7^Mq&IM6K6d*$vpX2+L*+$9vY0=7?$b zxdD4R`8~74HMWsx#*goNSp#(_;z`UT-GuGxoUl-){JNk1rf)aSKE!W`#m`t#v6V!u zgn>fufpkVprL(KqSkhl*Z+yRQosF)bEiV<#K8hOr>yQ1@7Xg>g3EjKwLB7)(9$3%X z$G30OD&Z2Nh{;v5!}oF4fUu0TM%&2F-6aS1+fqu3cn;K4k4-#kkB|BO?bZtcTygp+ zB|R0)0x`)UVEm;Fwx~Vt*6ZV3k5Xcj6_=(X2y*8M&NGz^?Jr>Jutu8idcHpesED^^ znM9MV2AcX%oppm45TS9yYBtteX?1liAe($}l8Mrk|YY*cFUp@Yl5_|Ih%+ z5^dz*^BpQ&l8;Le-Z+E?J1_|}dtK>`0HCSg@u z*e9pUpX4zkcJ~*%3c8N=D_*8f&2puu6>riMeA#MG3E+*kYt|0Dnl;U^u0x`IJLnY* zjELAyFaL6=ihd=uwgnc)F;a_ZKEBsA_UuVc$NS1$GwozcE)2-hGS_c!*V9@%u`#?lhbMR;p$MXpbUS7*AsAt5?3(xQtcatZ zK;B-KhX__vb(?F4Q0GloBJ>|QvdJoM?lDbgsR3iM@a;Z3?cA&4wtslYkr80ETZHkc z9*>q7Q7<0~XHK7PK#yo@cBi@smopq(-%`e-KH4Qx-~rbHu}dW58QqJ{;3Inef@=x4 zI)BgQYXff|j7xg1Qx_M8s)u`0@M0d&aKAfD6qe?B3THxh84PWrQX5xII()>h>b|f$ zpKR+*4#vbnsS3H{v&>IrrO}Xrp{O`p?Q{I%z{XPHRAc7mQ~rVVZ80t_sel;~R{!fE znoWNU9=P1`jx=A?#Ye1fm8**6`|yK3jKQSofyZy4XkM$FK?NExjqO&YVea7N(7$X$ zbR{k3PT@a2CJt_@Dead-55GO?f3gVr{BdM(wXV#1%q{YCJlyB~k-m;m1@SZyhI$5p z9ViBGQ5QzVRGUDbbtaN^E&{f(lI64ub2s){aFm!11riDV*6MFh58H{nU5}0{$^Hi; zJVW(-UYp)>>|Lx|%+y^DwKhz`tPS-85#6Rh0)ckL)U$^na{7 z@VVG(5^ui@Hf1odF537(mlR>ZBhjf%rT+ zPUdZ~CgvIZM_wUkJAw%w}x9jc8!TL)0!EfOi*AMUgP00QdmWDhdxHH4HGc<~J zIVYb|Vj$~E#d*)1>gzKQFOMaAy}BVVo}IK&7ZMB zx!9l*+ek@g>FsKVCTu!A+bt50<5zR%LvhtB47 zphLoLmz-;H4@2#)g8=!k#zLI#UMqFnH)&}~tj#&gW_Q99mQw+L7dU5Tu)W%;@9Qi9 z>QGi--TSZnR2z4)8B5wJy^vu$s+IRc0ll#|LNt!?I`me%fGty24eDN4Xl+O{(+NPj z1ygVh>zf*$Pk&fEX-3AP^1w$s1y_e7lBxzgSu6?iXt=l939t1dNMV&Hw?hI}<+!vx zKuXRw@aAWBEW)iT2xma>qG11B|GnfLf43m`S%SD z3d3^-2o=m;T`_XFO4d`JiOd4T*vl!w_t?SMNPGOr712xew$!m3PP4`3g2iVGiU!9* z&w=GY2O}!evGB%RQa5rA7s5%`YA&A$+(`a%B< z)4%^Wyf-xKA)KjJ=y>(k$Cki3nVk)wxAEYIGA3p>sG^i;f$cIw3$H&^I7dNHU=sw$d)j7 zh|(sSuhT>1EWU{wVQLz{XV1iYPIvxnNv=>Vu3kdkB_SVNJ(KJiSF;#9T-Gc6A9!kU z?a4i1-1H;R$hx=;;1@G7Jsm?|a=U>2b+qZz`aN9sgsIyFSp6r%%!9oq%tbmjY#K7P z-Gux{jUMaKw>DF`W{3tTZ|SIDqX6v)w4@1rITXmow6pv9GTr+NsJ`V>Zv++iD5MFK z@5#Rx6sk|u-Qs__;w5Q)X2-Ad+QXxzHC&)U-n+`G@G_e77|5&TV3EucN^AXqK{AmK pCn+FvZU>f5ukGw-)qi%3dglGbB=rNWkH7i=^YbXv3KMkH{{f&jC-?vW literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Content/themes/base/images/ui-icons_ef8c08_256x240.png b/OpenAuth.Mvc/Content/themes/base/images/ui-icons_ef8c08_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..5dcbe012df24899416caee1a55d1bdf6c22fd837 GIT binary patch literal 4599 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 GV*UpY-FO86 literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Content/themes/base/images/ui-icons_ffd27a_256x240.png b/OpenAuth.Mvc/Content/themes/base/images/ui-icons_ffd27a_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..dd39c1b25bbb7734571820d7890a0401c2b70d53 GIT binary patch literal 4599 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 Hp`-r?FR{ND literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Content/themes/base/images/ui-icons_ffffff_256x240.png b/OpenAuth.Mvc/Content/themes/base/images/ui-icons_ffffff_256x240.png new file mode 100644 index 0000000000000000000000000000000000000000..39e64723fe6a862f00d5e2578110ce781288070e GIT binary patch literal 6468 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 noh<=b3kNexR#iJwYfD{AQwvY09?QR@4M0^ 0) + filestream = Request.Files[0].InputStream; + + var pars = new NameValueCollection(); + pars.Add(Request.Params); + + if(Request.HttpMethod.Equals("POST", StringComparison.InvariantCultureIgnoreCase)) + { + var parsKeys = pars.AllKeys; + foreach (var key in Request.Form.AllKeys) + { + if (!parsKeys.Contains(key)) + { + pars.Add(Request.Form); + } + } + } + + var res = getRuntime.DesignerAPI(pars, filestream, true); + if (pars["operation"].ToLower() == "downloadscheme") + return File(Encoding.UTF8.GetBytes(res), "text/xml", "scheme.xml"); + return Content(res); + } + + private static volatile WorkflowRuntime _runtime; + private static readonly object _sync = new object(); + + private WorkflowRuntime getRuntime + { + get + { + if (_runtime == null) + { + lock (_sync) + { + if (_runtime == null) + { + var connectionString = ConfigurationManager.ConnectionStrings["WorkFlow"].ConnectionString; + var builder = new WorkflowBuilder( + new OptimaJet.Workflow.DbPersistence.DbXmlWorkflowGenerator(connectionString), + new OptimaJet.Workflow.Core.Parser.XmlWorkflowParser(), + new OptimaJet.Workflow.DbPersistence.DbSchemePersistenceProvider(connectionString) + ).WithDefaultCache(); + + _runtime = new WorkflowRuntime(new Guid("{8D38DB8F-F3D5-4F26-A989-4FDD40F32D9D}")) + .WithBuilder(builder) + .WithPersistenceProvider(new OptimaJet.Workflow.DbPersistence.DbPersistenceProvider(connectionString)) + .WithTimerManager(new TimerManager()) + .WithBus(new NullBus()) + .SwitchAutoUpdateSchemeBeforeGetAvailableCommandsOn() + .Start(); + } + } + } + + return _runtime; + } + } + } +} + + + \ No newline at end of file diff --git a/OpenAuth.Mvc/Images/designer.command.png b/OpenAuth.Mvc/Images/designer.command.png new file mode 100644 index 0000000000000000000000000000000000000000..0e308aa87dc6346387ca208deab19101eed7c9ff GIT binary patch literal 615 zcmV-t0+{`YP)8#>5k-lLD1KK#5k(TbK^IZXzJd z@<-a9X$6o0NDx9aVFHy(g>C%BEWjesYPGa?3zW;{&$Qh!dyH`a+2nLO84~SwTYFQW zR4U1|JZrosM=^PCkk99T8Rvc* znojFP*YyCp9f7k1a=DyLTZ7guL==2!n$2cqdPX88mb4yJRedr9(&==a4OsPhJ;G+0 zOh!}^&lqF2`70aXR4P?xLoh?Ne!ovlvG*jQnm28j*K?r{_s2TJiA3UsZEA_9HXIHO ziDWX#mB1K(8w>{DkqvM>9*3wc5~I<`kl?I&p#T3wHo>gLVljx?A~7D1$%Qp4ooA7K z;8PrpM$eLy-q6NF>5dVm6x*1Zx!f`{{}TKsX%cO3deTf_T^$ z079V<_c#`d1raC!1cO0t63gY12owM$N#aVZRx2V<0Py?$-0#GCy(R($0H4ptO=7dz z5P<@K*X!lJnA`1^2owN39uGH(-EKz&3IJ}mn=7&3?}wEwJ002ovPDHLkV1jnk B5la97 literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Images/designer.createat.png b/OpenAuth.Mvc/Images/designer.createat.png new file mode 100644 index 0000000000000000000000000000000000000000..13fda140b2527364155584d48ba9473966e0eab9 GIT binary patch literal 567 zcmV-70?7S|P)B)npbbUQ($*G1SR&#V1l7>kBAH85(AXL@wn)@p5D^hXP=rBq5ENb$(Y2*O za7c0}Xz&BI=aqZq4tk8Dtpk_ed(Znj&pG$r_q|#q5^39hHZIfYbiChEd%whQ=ba{i z-8C~-X*3#LC4ZsvNbb*0{15KF`tHZ;&h!a1O>>4qp>@06z9p7+yB(ucOU&!Ur@F4+ zSeI&M9k*Jo32VX{vv3OF5s)eCyfwyi$Cb!rGG&?Xf~}_S#6VK`_RvK(-60<4dal>& z;ao0Pagyll&=1Bb$H~bntKt1X%}%ZG_>bH_`u+ZMkH>RO>~pzX$LNZN8SOo2h7B@D zcuLi3)mtbO-g`T3wm={-4K&X|hMLW0R9VLW*9_3E3Mw8R{|V@!#AsXz#xQ3XGophA z2hqhN>y%)Oqhh3DilT!C{*Djus1l6fRbZ%h5Y))ein2jj3C8eX7?+KOO5p&e?_LS! z>q_a^sMGCWFgT;4(r7DyV;rVltJThw;A}Q~3ryLXP?pt7i%b;~9-EMb`4Sd{=!FWUUMx&9E|ATnU@dea%;JHORqYVH6002ovPDHLk FV1kwn5wZXP literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Images/designer.createt.png b/OpenAuth.Mvc/Images/designer.createt.png new file mode 100644 index 0000000000000000000000000000000000000000..6e25fa0011569f2c7f9f9f8a39135588aad7e36a GIT binary patch literal 380 zcmV-?0fYXDP)R5p26Np284Uz=BN|y@9d29)JYs|6}H9 z2qt4vc1!|q^5&n?ds(R?c>@J{W_F&W5f$0qGp>h$$HUH;&IVO+Vn9 zO|Y(f>Ta6nc~7qEZXuZ55Jh>O&$2B0VO%vlRw_^wax9AC6_95>^m)f0q=s68RTT$8 zu!Md?0M2n7$G=P#3&Zdcu`k4iINy>ac~?~oz?_h>ELTk^?|H``};so54XzPg$vL z+iOUMh)39nDKwR;6%=A;XG|mjupM^x#D~5>si77+T`MT00r3BS=`&jYR<%NpyC{3G a>BS%JF}oIm{U99x00003C4Fi~qd*aFW7cdoN$ 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 literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Images/designer.tb.add.png b/OpenAuth.Mvc/Images/designer.tb.add.png new file mode 100644 index 0000000000000000000000000000000000000000..50e2c115e737edd733fa8522c5fba55e1ba2d935 GIT binary patch literal 475 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7T#lEU|i(s;uuoF_%<@oi^Y&{n=b2KnbGHy_v5W{eTWh2W5mPy71GL8GE6gd^@uc%%BsQzO7=kHU`elg49-=Q3` z{>r_u-0ZGxhLs|W^1U&uUbb$WJ##U~1BSUpeA>S=SRx*#JZELpG4+%QaG2z@*A8Va5ZBWDCKc>4;uSFwt`U2bS~+5WGy%JjJ#&&$T2FLgUtd`S7%wdG0;2g0Ae zsk+JXvybC{zsj~U&W?y_Do^f)dpDHNOZ({1FzMDJ8S^^^SEC>9x_H5@!aKw4ik;|+ zcbR8Ijn|!9z0>Rx?*_I&TUL{sZ~GNL<-Pcqc>mk?-xD2T%-^IfTVcCEYkBFzr5W9# z-qBN-bPPM6u`w#`QhUS0>Jt$nsG{NEa=m5l!UoQ6ttJ-Mju*2w6i;E=q5S3A?8g%x zZ!kX*w?~8ZOHt9+MuzZR>^y9&JP{(-r!2t9xupF-TzrOAyZ3wZL%>L5@O1TaS?83{ F1OT$q#c2Ql literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Images/designer.tb.additionalparameters.png b/OpenAuth.Mvc/Images/designer.tb.additionalparameters.png new file mode 100644 index 0000000000000000000000000000000000000000..651384165e62c459fe6ff54aa0f854cc6c3a9fb0 GIT binary patch literal 6194 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 E0l9eV(zTmyVUT!A#@;LfX8-+`uxl?3?( zGcXz&8JjpbI{EqsY}mMI^Oge#&z?KKTSIy|0|Vn!PZ!6KjC*fypDsFNz|)$@G2LOu z_6gtXuUvb%WofUl{LM)=Z)J2NKTPD|{_nRZqQGME=Dl~fh2HpAd*>zpwYmS&VqeZ* zBW;@&`@$mI&wul>FE-h3{Wp^@%ba~FA#G>AYfefNn?0?){ec{dSy2}7_~oc?6TaPvi~E1UT!UMUXLHo$cU`i6I`!V7^(A== sE_rr(r8{fQZChFLZ#mcLpT?irzFqOlR=$7vJt!e~y85}Sb4q9e0M^g#00000 literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Images/designer.tb.codeactions.png b/OpenAuth.Mvc/Images/designer.tb.codeactions.png new file mode 100644 index 0000000000000000000000000000000000000000..df63ddd39af1b2a85394b87d65defb74af2543d0 GIT binary patch literal 2136 zcmY+Gdpy(oAIHDbur1fMTvt>Zaaana;2dB@ww^ZY$pp-g8={_ zi?g>OiYwzsK%~T(XC62tE?}xP&K)8?bjXz(;yX0j-kS;lHmDx~vJCl;ySS+uhxLkc ziwcfQ42%r|5)%_KVUgifa$s~2CMq_heC?td07$>V*;u*LDpo5A5lGJ?0~S$8$$Hqa z3Pgo(&C`i;T1car>r}yUw0^~NC6fi_wYgD;NcTI}P7E}|?LTs7$*6qG=09#&BiM%g z%gPiYCdM+Wx&E+KL3wad{iX@6$(RzsFR!#%Ulp0#U7sC}`nt2RmN?M<Qp7mI6)yCd)Qx4vkFa5Py}7bg^b47FmkCiA0F$^rRhp5HZGhL8c$<8B)TOlB=>6B zXFE&}EuWCNB&pYyWc%&P%lPKmb!FMl1k%cSiK=sGv4PA!gx)$xpGOMXxI_!nV;1O7WYI3f` zNJgO7w$D55>5F#%7E&upI5-eKQ(jm=TuvYV?)=6utY!UVgEOGvjfp2oEP_kVh>DDy z?Ba(d^BX_e>#(^pxVc+^gM))v!|UXXb=TKNlSgjBeSJx!6w5Hl%`1|%7-|bD;qq~XAMnLN4W?Ge zfq~`Ha0@kM&D?picX12xj3_53=WhJ4hori?y5|r+KWOTzI^0N?gA$!d*?#0JZxO-* zKhi5X`n>Jlh8?pXJgKuhl zS=Dvyy$^k9(tLID%*^W9o^<&t2yh)g>a}&AClIdjSn}0w_}$g)-c234&>o=GgL7Eb zhDf>fnckFrBjGnuNKb}*6%^Rlwh9+4%7~Yk-`FyWel{TNy95gGVQ$dqw_gaUwskKD z#1H9tg0vt>(|sdv*Ov>0c*m_6h7WhaT;m6w>B_+Y=&t=3P8 z5yEJqC>3=j?}bfQLe`G2_WU0Np^WPkc`=-y0<_juo%C_qDbD-)R0C>-{KIi&MoDVS z^eaftX(_*PlD|uTL^VWALIs5bvsbBYg(4YRn;Cf-gdr4Ou@bSv!p1p z9S`CfT!f0s;Qm=B5%1mR9*%!+X+G;!2E-sO%7VPJb|?B_32)_?n)t#i?O8bJ_Hk^WNU zx|0`7R}&hS0pfR3$THE31n4A<7GaA78V~fZJhg!B+^R_-h=iv`= z#lT~Pl9DC9`kYr0*O~w#e(&ZsBb4CcP9g%6u>%uN6S9iAW~Pi==Ic|B5No=OTRmlg weB#z%li0)Xzf}#w0tx$1<>wRhGxiUp82Wjfk9qe+{0jhZSZAC2)&b1F0KJ#p&Hw-a literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Images/designer.tb.command.png b/OpenAuth.Mvc/Images/designer.tb.command.png new file mode 100644 index 0000000000000000000000000000000000000000..748ecfd91a87796f05248fcd27567b1348faf3a6 GIT binary patch literal 823 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7xzrVEX6j;uunK>+PMhUZII14G(oK zR!Mg#>~3D*so^BZ;d0u)~>pD)}cgqR`)%Z_{HyUmCwzvjp|#rXrb0- zOR2lPX0ofdiYSsY?dTgDb}KD+ze zrn4Cfcp1WVtWVe7Gcs-1_hM;l`qikCCAth>W%}(RYRu;U(tl^?C(ZE6lF{+}Z?V{4 zUk!2@S3HmSa!9f2((e~%;@mTZ51hNsvh|Rtd*;&qixDM1%Gooe54^LKyxZ~4_57m9 zx4WNTT>PTUMCj}PmmGUp5{x8pxOhR!OB03<+iuk@U4JXv#I)h-sr)lVd1j^!sor|h z2d1b_=S?^<=`_&Yi(G+Bi(8xC6fs^gPQ01Qydr*$W$weLOg9`2-o0E9!?1h5am0o{ sMT~FGBz%9);(hho{mG>=PZAh^FbZ;n_=o?R5e9OCr>mdKI;Vst03FyKFaQ7m literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Images/designer.tb.copy.png b/OpenAuth.Mvc/Images/designer.tb.copy.png new file mode 100644 index 0000000000000000000000000000000000000000..d7b85223d8ae9586bb89700364f31a02d6bd8148 GIT binary patch literal 845 zcmV-T1G4;yP)gjKKhCe6YQNt<8gqF(X7c1-1Skli-uS5l~gtYxsVE zy@S1iJ%zJ^E8{I0wi( z0dyB4Ku0N%uf&CtIfV!v9wCoFG9-h5@)3{*XJ&Yu@R%{}U~=Y+>73Yzkyz)F!?E)N zKBhB%$ST7#y!6p3Ktn#O3{Mj`b(a9yWq5|LJ{|~w2CocHJL(G$T?d|{8J-J|=7D-W ziO9*#n&D|j*A0el2QF)d=fa_RpkB|UQhSV?%!_x@_ zZV*i(WXte??>WdG6wQMqIQngI5z~&Ye(i+@KJmq;`;9&mECLK1snOl8L_l;yGBBVL z0Rsyj-R(*QL^mV@11b?Pu;9_%u0%k0=Q5j%Z02Ya{fl) z+=d9i4-8~kK~b*8BvF8M2B0ei_7m%JH3)z6yZZ#Dj(%J_a_SIj9Sw1LMBk0>pK$$(+*ss@J|w^d{rPo8$0xx$_duq>0yGZXL1HB6k0nwN zg_yYqQj_l`0G%2~K0hh#AzlLS!5*Ubq9~lBE|}%-ALs@p2FYvHI^;DNwE%s=QGhHn zJYPX5K$aO^hydAUc)lV;o#C0cjy{6i(F{-bch$`+ExQcQMOe2R0kX^RG*MT*{XhyK zl~so4BCOk60n85&B8v>q@OkLy{h_4qjG9`%k_o0ZVyDJiBH+}Drgps&0jZ7Hsqy{; XAiHiNXqXYq00000NkvXXu0mjf0xf+i literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Images/designer.tb.copyprops.png b/OpenAuth.Mvc/Images/designer.tb.copyprops.png new file mode 100644 index 0000000000000000000000000000000000000000..1d27e551176d9b4793a6ffd96cac4d453938f7b9 GIT binary patch literal 1116 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 literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Images/designer.tb.saveasimage.png b/OpenAuth.Mvc/Images/designer.tb.saveasimage.png new file mode 100644 index 0000000000000000000000000000000000000000..42314eb7bf840d744b9de63f07f6d1b3c95d6e06 GIT binary patch literal 647 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 literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Images/designer.tb.undo.png b/OpenAuth.Mvc/Images/designer.tb.undo.png new file mode 100644 index 0000000000000000000000000000000000000000..226ebd7d87be4218dcd14334ca39cd5b2cf680d7 GIT binary patch literal 1138 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 Vo3na3=_CLE002ovPDHLkV1nel6W9O% literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Images/designer.tran.aa.png b/OpenAuth.Mvc/Images/designer.tran.aa.png new file mode 100644 index 0000000000000000000000000000000000000000..b9dbb951ce449e45ddbf3ce48ae2220503c4b57c GIT binary patch literal 993 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 IM6N<$f{uv*V*mgE literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Images/designer.tran.ca.png b/OpenAuth.Mvc/Images/designer.tran.ca.png new file mode 100644 index 0000000000000000000000000000000000000000..e60f6ba359c21c3307da48651e52064495eb36a9 GIT binary patch literal 1076 zcmV-41k3x0P)CZ4RM+8y!(1TD9J`|*b21X-}%n@oi9ri zMP#xWGO3((uNjbW4;WV(16kBMJ3F@7AyaVsc3XoK9yIo%&5#Ss4lo3l&@SyP;4B zqoboUbS($$cKcg>NxHstSCBgS%ZiGMb$NMt>2MaUO;1n5>-B>0_onlNZWi#Jv)k$9 zD^||du)*v##$c>P7N#b24d8&|JI~M0SL_uK2?jAa8AMD_OzU*{${2&ObVRh7kW-D) zteFE&+9(8lxN&p`c3G{cuC`+5j#Biz_$DnU|G^JEC@n2TuP-9cGX`f4W6G0?j;04V z&qjv-C+E%d_=)E$ReC7pv>`vpk^U!U~?w&OTlTZLa}g=cUA zI}e(Z>r7ab4N2CNH>5h69#|-(I~L-I3+(JkJh}WF*c`*ym>;tx#@HY~45wwGl z=rlm=DqSw}inair0R&VyG4viQ$63z=Vq-7iLJ3{c7u>(^LD*6U47Fk~Fb~00O);h3 zp2AW&Rl+A4^+h5PIcm){CtyPz&fKuVeb$DeoH_U&-bCvcz+Gd;P{$$Q^le;e-jjle zW9xShoc(?rJXH>^6I`q$eASwQ6qRZv_$(RfE@K~3MySuy36A4|iSS&IZfRZZ`j9>;v zY%DNAj#AZ;)Ps?ckr>s6tBs9~H`OciBi$h6lFC(WYHCWc&j?dN0g9HXoQo1;FqQ&D z)z$R?OK~xx;2Er}tW0vdYUdIIE=I${!!s05`_mPpv<9#aF2_V7&$uY5>w>-o>@_OK zplsUrPvuxrk^4m?LLWMiF~ivLgVP&2%&5@@ZEf+;Sa5WJ3CBCHudg>$HK?f+lF1ZunvFRvk5np& zWJ-l8=9SR~ZQ1P5muwwisY#h#V8T&LOT}^NWHS!={Rjm7IM}=&Ki*y_*-XYqaI)D8 zzdwM0{}7t@U&QSNRhQESD~C2q8!QuB2UzE#FUc<1t}Ws#e-J;t*^BYXI1;mQj7Gxv zHgp_gi+K^>LLm4le7#pOIXjEl_yi*1IfRaXheZhmZLn-<(}G)?+7gj$@Veb@olutU zUd1&8akDRoMnijF`&j|W;IFibyCdg;6Ibwg@E~-t;z9fSKj7m(#*kJuGkYvx z;2b0@sRo@jO%?NN>wqaN`<0~2YZ}%Zl(f8DkAuv*Z0mr~>5{N(o{DvQUIRuauw>nZ z9DeTf;-k?dUOhtb>s-CrtN6(-`vf#r@ zw~);9OnJmdF5~Mt;PlZqaJaJ%xON`jj6DVO^NX0`#Ll=dFzVP{c8^@3!t3ooXl5V>_Zs-|mJqw9QWyovb@fcg=Un~~ONpJYF ztE=m>Ro$H1UIB${sqAXY%gctY0=LJ5J$B&KPzdbV1kR>J8?FHI;r+3RWqp}XrKHIU-@-J*k|MrD4$Rc9Yq#Z-5>7D=7j!l?~ zK1fU_%qJO}6#E3J+GI;|2Fq5mIxFS&|3Ar0C-@a`{ZYz(LCWSDiHqE^qmNPo?Zj{_ j!<_)Lv-!e-ibvod19l0g_GC8W00000NkvXXu0mjfSNJAS literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Images/designer.tran.co.png b/OpenAuth.Mvc/Images/designer.tran.co.png new file mode 100644 index 0000000000000000000000000000000000000000..d9b6b44e1f93e658b79a4a40d3aa15a7514d5b50 GIT binary patch literal 1123 zcmV-p1f2VcP)4>CI@YE{M-R_WC3VbBiR2g}Ovp&ivgGdjwo6b5dr#UhpY z5DoUBGJM#>_Fzjv2NvwwwZ)1NOVc46$eI?13C4sa+cnwwesi;{-kU0||4!&JQ;m`eQ({(+| z4)pi;zavJkiqTgpDk=&c4u>gjG#bU+++0i?_*Htek%Iq`~j#^sCj|(4H;cb@-jg2nUSM9~+@!vC;p$FH{R#h*u zMm3fE=Dd;^@%4rVc_T5@VFL|W6-0ijWUBoa|sTYlgenk5TP zT^Pkeg7uex|EG)i_7QOOz*}f>p96fy&^!7dU7iX2Htt1h-y?LnTh!ICPq0~KyfZGy zgzKls^9Bb8p9qts0)as4{@7sZ5Wu8N&*s#3Ki*a{%EzvpGsvh@nd%yzP;z4Ud_IOq zvF>_XmQ*}2Fz}_2&{ws!wTcU*9)*Y^h{KLuCC&{=2O*+RNM!{IOG+RGp~m#|bWD1~ z*X`}?7gu-I{+eC^RoGJ5)fN|5lS%3iP5~}6GtL9{LX?z=T&8ZEO^F!9qKetDi~yC{ zj3jw}ZD?pv+-?S7wZ~>OH8mBNe0o1yGs@}!!P$<5M1E#d`oAw&nO)sy)TA9ls%igo zwPW2(PCrO=C-hG;HYxTAQnk*O4nJ za0`Jj+tIX_n~5oC^DMQ#CujeSKy zVsdtBi9%9pdS;%jl7fPQl0s&Rtx~wDuYqrYb81GWM^#a3aFt(3a#eP+Wr~u$9hXgo z6;N|-YDuC(MQ%=Bu~mhw64*>DAR8pCucQE0Qj%?}1aWkPZ-9bxeo?A|iJqZuvVpOQ zf{B@)k-3qjxtWeaaAJvqS7M%mk-37AfdP;(vNANZGBE@?1`L$!xPY`xQA(Oskc%7C zP9V=#DWjyMz)D}gyu4hm+*mKaC|%#s($Z4jz)0W7NEfI=x41H|B(Xv_uUHvk2+SOp z)Z*l#%mQ$5fy_-z$}cUkRZ;?31P4&hB^JOf$}5Hj9xxd7D-sLz4fPE4;U)t$+5iQu zz!8yO6q28xV}~WqY(P3u6d`Oy=udS?EJ?KkhKGf&fswAEd5D3Lm9d$XiD?v)euyG8 z?Y{XbnQ4_s+KqLMOhODTtqcsTOpKt~krY9-+vtM=0x4j?p$_sBnz#ai082@RhgU&q zQ4Tm-Qj+ykb5e6t^Gb?=VP=RLW+};5Y57IDi6wTKxryni`UQFEHu?xbyzYaz8kj7A z$xbP0l+XkK D*?Od} literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Images/findHosting.png b/OpenAuth.Mvc/Images/findHosting.png new file mode 100644 index 0000000000000000000000000000000000000000..9cd2a7e864999de9e8ebf701cc926ea736c7c946 GIT binary patch literal 4329 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 KMNUMnLSTXx_VD2V literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Images/loading.gif b/OpenAuth.Mvc/Images/loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..e846e1d6c58796558015ffee1fdec546bc207ee8 GIT binary patch literal 771 zcmZ?wbhEHb6krfw*v!MQYQ=(yeQk4RPu{+D?cCXuwr^cCp}%d_ius2R?!0jBXnAQ) zOH<|l|Nj|aK=D7fpKD04vtxj(k)8oFBT!uNCkrbB0}q1^NDatX1{VJbCr|b)oWWMT zS%hVC ~NwO_yO%;SvZ5MdNYf|QNy-I*%yJaj+uTdt+qbZ z4E`Fzb8m}I&!N8OKmWEcCmrLs^Hs&3i)mt@hQVdcqghkaBs*D}tG_lKew4?rTjzIZ z9tSone1TS+TR7tu^CunG)Y7Jg#sw#)sG9C!c0I%LEzP)9;hqRf&)s$D8d5Db{TBs% zgl0~5QQ91luq4Q9tJgt4QLbaxZvAaKeCM9!oy85dg4k>TdBSVqjHub_PG=PO&J-rx z7oYTuF+kH|tG-UK+EkUhDjYx?zW?T|lx>+aOQm zzL$v$zBLo4Cj=G&tw{H}dW?tlTkS)SY4<#NS92z*EY-MMB6Ftp`R=*=*Ev7cS+X%W zMCur^FdlokL}1Y+&aasU2J4#EOuNlnb9CmqgLCGTSY!1BD42pkHY^XidQ5=>YQx%` z*%Pm9D!CkBu&tMWm(%-ejACVWGS2RX5=QOJ$1*tr7F}F+*-OA+Ly&Isg|AEuUYicA z#%IG6kPXkHt{zk2M6zK@Vu^4Q(1zE$?yY6M!^&jQ+2^E?!p7{g*|X6}vuRC3p@jk0 W117c83?+LXEZI4G$p&LV25SKE>nb+@ literal 0 HcmV?d00001 diff --git a/OpenAuth.Mvc/Images/x.png b/OpenAuth.Mvc/Images/x.png new file mode 100644 index 0000000000000000000000000000000000000000..c11f7af69fad034c3564a4a455be0d9d569e9878 GIT binary patch literal 1066 zcmV+_1l9YAP)P0012b1^@s6UwFrL0000PbVXQnQ*UN; zcVTj606}DLVr3vnZDD6+Qe|Oed2z{QJOBU#%t=H+RCwB)mP<%fQ5eVP&iH858mu%+ z@(~);$`IRRsFdWQg)j?25H#9E5+YcjgqtV`TnUOGY74=Yv`}0503pyMZ4rozbYe7z z$w%s><2+9PZ}`sb+&d4g1HZX*&*S@_?|k1m_h>>0%PC7PDB-6UEP>TijU~?!h0g26K6CE8L!teL1 zLtn=e$y0l^wY4QQZl=Dz-t5usSR!v^>*VBQl#$xnTElxmL4jCYTr|`V4-cy%A7hEQ zWNUeOxxwJ->T0CEva(W-#m>%7q;7CW+W51oizD>jY>#XZ^Ja5$m{(#C6SY}DW3nc-b6NO}E# zC=@!P4IkO{$dclCF;Rmo6MzcUQCp&zxZUo1x(G;zH*VRe4xXN#HW+PbY0-_)e^mg- zjUl^AOG_OxB=mFEm0D@BE7x657g{w zXlO8G*GW6Ry1Lrn#rXI*Wro8b0bQaN3ahfBgrlv;h@9*mZTU%RSQD1Bp zNe6l04wlWOdPGMBj`WzuDF(Dess{%L2fOX+0&>Vr&h#0WN~nh<*Mt(z<2vC7~2J!3(F;`5pmu9~~Wq;u)Wsn(|;{en9_rPzUIU zzsgIMq1o}P*}Y6~nLFn5^HNn+RbE+H*@fifWE&2?5WbkdCMG6ah{q<{-QYX3 z0k(k;1nAU~A{qxMg_D4UvRN#L|7Y?f$m=lp4R-l@L_$A+2kd|Ya7-r)C5V2JU?Cd| zrE&UYa;!3WW7)Y64W@HxpN(!ad+Y%T1UUFalse ..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll + + ..\packages\WorkflowEngine.NET-Core.1.5.5.2\lib\net45\OptimaJet.Workflow.Core.dll + True + + + ..\packages\WorkflowEngine.NET-ProviderForMSSQL.1.5.5.2\lib\net45\OptimaJet.Workflow.DbPersistence.dll + True + @@ -132,6 +140,7 @@ + @@ -511,6 +520,8 @@ + + @@ -528,6 +539,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -537,6 +601,7 @@ + @@ -597,9 +662,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/OpenAuth.Mvc/Scripts/ace.js b/OpenAuth.Mvc/Scripts/ace.js new file mode 100644 index 00000000..2923ef0c --- /dev/null +++ b/OpenAuth.Mvc/Scripts/ace.js @@ -0,0 +1,11 @@ +(function(){function o(n){var i=e;n&&(e[n]||(e[n]={}),i=e[n]);if(!i.define||!i.define.packaged)t.original=i.define,i.define=t,i.define.packaged=!0;if(!i.require||!i.require.packaged)r.original=i.require,i.require=r,i.require.packaged=!0}var ACE_NAMESPACE = "ace",e=function(){return this}();!e&&typeof window!="undefined"&&(e=window);if(!ACE_NAMESPACE&&typeof requirejs!="undefined")return;var t=function(e,n,r){if(typeof e!="string"){t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(r=n),t.modules[e]||(t.payloads[e]=r,t.modules[e]=null)};t.modules={},t.payloads={};var n=function(e,t,n){if(typeof t=="string"){var i=s(e,t);if(i!=undefined)return n&&n(),i}else if(Object.prototype.toString.call(t)==="[object Array]"){var o=[];for(var u=0,a=t.length;u1&&u(t,"")>-1&&(a=RegExp(this.source,r.replace.call(o(this),"g","")),r.replace.call(e.slice(t.index),a,function(){for(var e=1;et.index&&this.lastIndex--}return t},s||(RegExp.prototype.test=function(e){var t=r.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t})}),ace.define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t==="undefined"||t==="boolean"||t==="number"||t==="string"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n=="function"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r=="function"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!="function")throw new TypeError("Function.prototype.bind called on incompatible "+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,"__defineGetter__"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,"XXX"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+ta)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h>>0;if(a(t)!="[object Function]")throw new TypeError;while(++s>>0,s=Array(i),o=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var u=0;u>>0,s=[],o,u=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var f=0;f>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;s>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!="object")throw new TypeError("typeof prototype["+typeof t+"] != 'object'");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document=="undefined"||w(document.createElement("div"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T="Property description must be an object: ",N="Object.defineProperty called on non-object: ",C="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(t,n,r){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(N+t);if(typeof r!="object"&&typeof r!="function"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,"value"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,"get")&&l(t,n,r.get),f(r,"set")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n=="function"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n="";while(f(t,n))n+="?";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!="object"&&typeof e!="function"||e===null)throw new TypeError("Object.keys called on a non-object");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n=0?parseFloat((i.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((i.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=(window.Controllers||window.controllers)&&window.navigator.product==="Gecko",t.isOldGecko=t.isGecko&&parseInt((i.match(/rv\:(\d+)/)||[])[1],10)<4,t.isOpera=window.opera&&Object.prototype.toString.call(window.opera)=="[object Opera]",t.isWebKit=parseFloat(i.split("WebKit/")[1])||undefined,t.isChrome=parseFloat(i.split(" Chrome/")[1])||undefined,t.isAIR=i.indexOf("AdobeAIR")>=0,t.isIPad=i.indexOf("iPad")>=0,t.isTouchPad=i.indexOf("TouchPad")>=0,t.isChromeOS=i.indexOf(" CrOS ")>=0}),ace.define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){"use strict";function a(e,t,n){var a=u(t);if(!i.isMac&&s){s.OSKey&&(a|=8);if(s.altGr){if((3&a)==3)return;s.altGr=0}if(n===18||n===17){var f="location"in t?t.location:t.keyLocation;if(n===17&&f===1)s[n]==1&&(o=t.timeStamp);else if(n===18&&a===3&&f===2){var l=t.timeStamp-o;l<50&&(s.altGr=!0)}}}n in r.MODIFIER_KEYS&&(n=-1),a&8&&n>=91&&n<=93&&(n=-1);if(!a&&n===13){var f="location"in t?t.location:t.keyLocation;if(f===3){e(t,a,-n);if(t.defaultPrevented)return}}if(i.isChromeOS&&a&8){e(t,a,n);if(t.defaultPrevented)return;a&=-9}return!!a||n in r.FUNCTION_KEYS||n in r.PRINTABLE_KEYS?e(t,a,n):!1}function f(){s=Object.create(null),s.count=0,s.lastT=0}var r=e("./keys"),i=e("./useragent"),s=null,o=0;t.addListener=function(e,t,n){if(e.addEventListener)return e.addEventListener(t,n,!1);if(e.attachEvent){var r=function(){n.call(e,window.event)};n._wrapper=r,e.attachEvent("on"+t,r)}},t.removeListener=function(e,t,n){if(e.removeEventListener)return e.removeEventListener(t,n,!1);e.detachEvent&&e.detachEvent("on"+t,n._wrapper||n)},t.stopEvent=function(e){return t.stopPropagation(e),t.preventDefault(e),!1},t.stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},t.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},t.getButton=function(e){return e.type=="dblclick"?0:e.type=="contextmenu"||i.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},t.capture=function(e,n,r){function i(e){n&&n(e),r&&r(e),t.removeListener(document,"mousemove",n,!0),t.removeListener(document,"mouseup",i,!0),t.removeListener(document,"dragstart",i,!0)}return t.addListener(document,"mousemove",n,!0),t.addListener(document,"mouseup",i,!0),t.addListener(document,"dragstart",i,!0),i},t.addTouchMoveListener=function(e,n){if("ontouchmove"in e){var r,i;t.addListener(e,"touchstart",function(e){var t=e.changedTouches[0];r=t.clientX,i=t.clientY}),t.addListener(e,"touchmove",function(e){var t=1,s=e.changedTouches[0];e.wheelX=-(s.clientX-r)/t,e.wheelY=-(s.clientY-i)/t,r=s.clientX,i=s.clientY,n(e)})}},t.addMouseWheelListener=function(e,n){"onmousewheel"in e?t.addListener(e,"mousewheel",function(e){var t=8;e.wheelDeltaX!==undefined?(e.wheelX=-e.wheelDeltaX/t,e.wheelY=-e.wheelDeltaY/t):(e.wheelX=0,e.wheelY=-e.wheelDelta/t),n(e)}):"onwheel"in e?t.addListener(e,"wheel",function(e){var t=.35;switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=e.deltaX*t||0,e.wheelY=e.deltaY*t||0;break;case e.DOM_DELTA_LINE:case e.DOM_DELTA_PAGE:e.wheelX=(e.deltaX||0)*5,e.wheelY=(e.deltaY||0)*5}n(e)}):t.addListener(e,"DOMMouseScroll",function(e){e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=(e.detail||0)*5,e.wheelY=0):(e.wheelX=0,e.wheelY=(e.detail||0)*5),n(e)})},t.addMultiMouseDownListener=function(e,n,r,s){function c(e){t.getButton(e)!==0?o=0:e.detail>1?(o++,o>4&&(o=1)):o=1;if(i.isIE){var c=Math.abs(e.clientX-u)>5||Math.abs(e.clientY-a)>5;if(!f||c)o=1;f&&clearTimeout(f),f=setTimeout(function(){f=null},n[o-1]||600),o==1&&(u=e.clientX,a=e.clientY)}e._clicks=o,r[s]("mousedown",e);if(o>4)o=0;else if(o>1)return r[s](l[o],e)}function h(e){o=2,f&&clearTimeout(f),f=setTimeout(function(){f=null},n[o-1]||600),r[s]("mousedown",e),r[s](l[o],e)}var o=0,u,a,f,l={2:"dblclick",3:"tripleclick",4:"quadclick"};Array.isArray(e)||(e=[e]),e.forEach(function(e){t.addListener(e,"mousedown",c),i.isOldIE&&t.addListener(e,"dblclick",h)})};var u=!i.isMac||!i.isOpera||"KeyboardEvent"in window?function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)}:function(e){return 0|(e.metaKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.ctrlKey?8:0)};t.getModifierString=function(e){return r.KEY_MODS[u(e)]},t.addCommandKeyListener=function(e,n){var r=t.addListener;if(i.isOldGecko||i.isOpera&&!("KeyboardEvent"in window)){var o=null;r(e,"keydown",function(e){o=e.keyCode}),r(e,"keypress",function(e){return a(n,e,o)})}else{var u=null;r(e,"keydown",function(e){var t=e.keyCode;s[t]=(s[t]||0)+1,t==91||t==92?s.OSKey=!0:s.OSKey&&e.timeStamp-s.lastT>200&&s.count==1&&f(),s[t]==1&&s.count++,s.lastT=e.timeStamp;var r=a(n,e,t);return u=e.defaultPrevented,r}),r(e,"keypress",function(e){u&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),u=null)}),r(e,"keyup",function(e){var t=e.keyCode;s[t]?s.count=Math.max(s.count-1,0):f();if(t==91||t==92)s.OSKey=!1;s[t]=null}),s||(f(),r(window,"focus",f))}};if(typeof window=="object"&&window.postMessage&&!i.isOldIE){var l=1;t.nextTick=function(e,n){n=n||window;var r="zero-timeout-message-"+l;t.addListener(n,"message",function i(s){s.data==r&&(t.stopPropagation(s),t.removeListener(n,"message",i),e())}),n.postMessage(r,"*")}}t.nextFrame=typeof window=="object"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),ace.define("ace/lib/lang",["require","exports","module"],function(e,t,n){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){var n="";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n1),e.preventDefault()},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;n.$blockScrolling++,this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.renderer.scroller.setCapture&&n.renderer.scroller.setCapture(),n.setStyle("ace_selecting"),this.setState("select"),n.$blockScrolling--},this.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);t.$blockScrolling++;if(this.$clickSelection){var r=this.$clickSelection.comparePoint(n);if(r==-1)e=this.$clickSelection.end;else if(r==1)e=this.$clickSelection.start;else{var i=f(this.$clickSelection,n);n=i.cursor,e=i.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.$blockScrolling--,t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,n=this.editor,r=n.renderer.screenToTextCoordinates(this.x,this.y),i=n.selection[e](r.row,r.column);n.$blockScrolling++;if(this.$clickSelection){var s=this.$clickSelection.comparePoint(i.start),o=this.$clickSelection.comparePoint(i.end);if(s==-1&&o<=0){t=this.$clickSelection.end;if(i.end.row!=r.row||i.end.column!=r.column)r=i.start}else if(o==1&&s>=0){t=this.$clickSelection.start;if(i.start.row!=r.row||i.start.column!=r.column)r=i.end}else if(s==-1&&o==1)r=i.end,t=i.start;else{var u=f(this.$clickSelection,r);r=u.cursor,t=u.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(r),n.$blockScrolling--,n.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e=a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>o||t-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,r=n.session,i=r.getBracketRange(t);i?(i.isEmpty()&&(i.start.column--,i.end.column++),this.setState("select")):(i=n.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=i,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines");var r=n.getSelectionRange();r.isMultiLine()&&r.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(r.start.row),this.$clickSelection.end=n.selection.getLineRange(r.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(e.getAccelKey())return;e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=e.domEvent.timeStamp,n=t-(this.$lastScrollTime||0),r=this.editor,i=r.renderer.isScrollableBy(e.wheelX*e.speed,e.wheelY*e.speed);if(i||n<200)return this.$lastScrollTime=t,r.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()},this.onTouchMove=function(e){var t=e.domEvent.timeStamp,n=t-(this.$lastScrollTime||0),r=this.editor,i=r.renderer.isScrollableBy(e.wheelX*e.speed,e.wheelY*e.speed);if(i||n<200)return this.$lastScrollTime=t,r.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()}}).call(u.prototype),t.DefaultHandlers=u}),ace.define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function(e,t,n){"use strict";function s(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}var r=e("./lib/oop"),i=e("./lib/dom");(function(){this.$init=function(){return this.$element=i.createElement("div"),this.$element.className="ace_tooltip",this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(e){i.setInnerText(this.getElement(),e)},this.setHtml=function(e){this.getElement().innerHTML=e},this.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},this.setClassName=function(e){i.addCssClass(this.getElement(),e)},this.show=function(e,t,n){e!=null&&this.setText(e),t!=null&&n!=null&&this.setPosition(t,n),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth}}).call(s.prototype),t.Tooltip=s}),ace.define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],function(e,t,n){"use strict";function u(e){function l(){var r=u.getDocumentPosition().row,s=n.$annotations[r];if(!s)return c();var o=t.session.getLength();if(r==o){var a=t.renderer.pixelToScreenCoordinates(0,u.y).row,l=u.$pos;if(a>t.session.documentToScreenRow(l.row,l.column))return c()}if(f==s)return;f=s.text.join("
"),i.setHtml(f),i.show(),t.on("mousewheel",c);if(e.$tooltipFollowsMouse)h(u);else{var p=u.domEvent.target,d=p.getBoundingClientRect(),v=i.getElement().style;v.left=d.right+"px",v.top=d.bottom+"px"}}function c(){o&&(o=clearTimeout(o)),f&&(i.hide(),f=null,t.removeEventListener("mousewheel",c))}function h(e){i.setPosition(e.x,e.y)}var t=e.editor,n=t.renderer.$gutterLayer,i=new a(t.container);e.editor.setDefaultHandler("guttermousedown",function(r){if(!t.isFocused()||r.getButton()!=0)return;var i=n.getRegion(r);if(i=="foldWidgets")return;var s=r.getDocumentPosition().row,o=t.session.selection;if(r.getShiftKey())o.selectTo(s,0);else{if(r.domEvent.detail==2)return t.selectAll(),r.preventDefault();e.$clickSelection=t.selection.getLineRange(s)}return e.setState("selectByLines"),e.captureMouse(r),r.preventDefault()});var o,u,f;e.editor.setDefaultHandler("guttermousemove",function(t){var n=t.domEvent.target||t.domEvent.srcElement;if(r.hasCssClass(n,"ace_fold-widget"))return c();f&&e.$tooltipFollowsMouse&&h(t),u=t;if(o)return;o=setTimeout(function(){o=null,u&&!e.isMousePressed?l():c()},50)}),s.addListener(t.renderer.$gutter,"mouseout",function(e){u=null;if(!f||o)return;o=setTimeout(function(){o=null,c()},50)}),t.on("changeSession",c)}function a(e){o.call(this,e)}var r=e("../lib/dom"),i=e("../lib/oop"),s=e("../lib/event"),o=e("../tooltip").Tooltip;i.inherits(a,o),function(){this.setPosition=function(e,t){var n=window.innerWidth||document.documentElement.clientWidth,r=window.innerHeight||document.documentElement.clientHeight,i=this.getWidth(),s=this.getHeight();e+=15,t+=15,e+i>n&&(e-=e+i-n),t+s>r&&(t-=20+s),o.prototype.setPosition.call(this,e,t)}}.call(a.prototype),t.GutterHandler=u}),ace.define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){r.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){r.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(this.$inSelection!==null)return this.$inSelection;var e=this.editor,t=e.getSelectionRange();if(t.isEmpty())this.$inSelection=!1;else{var n=this.getDocumentPosition();this.$inSelection=t.contains(n.row,n.column)}return this.$inSelection},this.getButton=function(){return r.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=i.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(s.prototype)}),ace.define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";function f(e){function T(e,n){var r=Date.now(),i=!n||e.row!=n.row,s=!n||e.column!=n.column;if(!S||i||s)t.$blockScrolling+=1,t.moveCursorToPosition(e),t.$blockScrolling-=1,S=r,x={x:p,y:d};else{var o=l(x.x,x.y,p,d);o>a?S=null:r-S>=u&&(t.renderer.scrollCursorIntoView(),S=null)}}function N(e,n){var r=Date.now(),i=t.renderer.layerConfig.lineHeight,s=t.renderer.layerConfig.characterWidth,u=t.renderer.scroller.getBoundingClientRect(),a={x:{left:p-u.left,right:u.right-p},y:{top:d-u.top,bottom:u.bottom-d}},f=Math.min(a.x.left,a.x.right),l=Math.min(a.y.top,a.y.bottom),c={row:e.row,column:e.column};f/s<=2&&(c.column+=a.x.left=o&&t.renderer.scrollCursorIntoView(c):E=r:E=null}function C(){var e=g;g=t.renderer.screenToTextCoordinates(p,d),T(g,e),N(g,e)}function k(){m=t.selection.toOrientedRange(),h=t.session.addMarker(m,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(v),C(),v=setInterval(C,20),y=0,i.addListener(document,"mousemove",O)}function L(){clearInterval(v),t.session.removeMarker(h),h=null,t.$blockScrolling+=1,t.selection.fromOrientedRange(m),t.$blockScrolling-=1,t.isFocused()&&!w&&t.renderer.$cursorLayer.setBlinking(!t.getReadOnly()),m=null,g=null,y=0,E=null,S=null,i.removeListener(document,"mousemove",O)}function O(){A==null&&(A=setTimeout(function(){A!=null&&h&&L()},20))}function M(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return e=="text/plain"||e=="Text"})}function _(e){var t=["copy","copymove","all","uninitialized"],n=["move","copymove","linkmove","all","uninitialized"],r=s.isMac?e.altKey:e.ctrlKey,i="uninitialized";try{i=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var o="none";return r&&t.indexOf(i)>=0?o="copy":n.indexOf(i)>=0?o="move":t.indexOf(i)>=0&&(o="copy"),o}var t=e.editor,n=r.createElement("img");n.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",s.isOpera&&(n.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;");var f=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];f.forEach(function(t){e[t]=this[t]},this),t.addEventListener("mousedown",this.onMouseDown.bind(e));var c=t.container,h,p,d,v,m,g,y=0,b,w,E,S,x;this.onDragStart=function(e){if(this.cancelDrag||!c.draggable){var r=this;return setTimeout(function(){r.startSelect(),r.captureMouse(e)},0),e.preventDefault()}m=t.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?"copy":"copyMove",s.isOpera&&(t.container.appendChild(n),n.scrollTop=0),i.setDragImage&&i.setDragImage(n,0,0),s.isOpera&&t.container.removeChild(n),i.clearData(),i.setData("Text",t.session.getTextRange()),w=!0,this.setState("drag")},this.onDragEnd=function(e){c.draggable=!1,w=!1,this.setState(null);if(!t.getReadOnly()){var n=e.dataTransfer.dropEffect;!b&&n=="move"&&t.session.remove(t.getSelectionRange()),t.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||k(),y++,e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragOver=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||(k(),y++),A!==null&&(A=null),e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragLeave=function(e){y--;if(y<=0&&h)return L(),b=null,i.preventDefault(e)},this.onDrop=function(e){if(!g)return;var n=e.dataTransfer;if(w)switch(b){case"move":m.contains(g.row,g.column)?m={start:g,end:g}:m=t.moveText(m,g);break;case"copy":m=t.moveText(m,g,!0)}else{var r=n.getData("Text");m={start:g,end:t.session.insert(g,r)},t.focus(),b=null}return L(),i.preventDefault(e)},i.addListener(c,"dragstart",this.onDragStart.bind(e)),i.addListener(c,"dragend",this.onDragEnd.bind(e)),i.addListener(c,"dragenter",this.onDragEnter.bind(e)),i.addListener(c,"dragover",this.onDragOver.bind(e)),i.addListener(c,"dragleave",this.onDragLeave.bind(e)),i.addListener(c,"drop",this.onDrop.bind(e));var A=null}function l(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}var r=e("../lib/dom"),i=e("../lib/event"),s=e("../lib/useragent"),o=200,u=200,a=5;(function(){this.dragWait=function(){var e=Date.now()-this.mousedownEvent.time;e>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var e=this.editor.container;e.draggable=!1,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=!1;var e=this.editor,t=e.container;t.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var n=s.isWin?"default":"move";e.renderer.setCursorStyle(n),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;if(s.isIE&&this.state=="dragReady"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>3&&t.dragDrop()}if(this.state==="dragWait"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(!this.$dragEnabled)return;this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),r=e.getButton(),i=e.domEvent.detail||1;if(i===1&&r===0&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var o=e.domEvent.target||e.domEvent.srcElement;"unselectable"in o&&(o.unselectable="on");if(t.getDragDelay()){if(s.isWebKit){this.cancelDrag=!0;var u=t.container;u.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}).call(f.prototype),t.DragdropHandler=f}),ace.define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("./dom");t.get=function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.onreadystatechange=function(){n.readyState===4&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=r.getDocumentHead(),i=document.createElement("script");i.src=e,n.appendChild(i),i.onload=i.onreadystatechange=function(e,n){if(n||!i.readyState||i.readyState=="loaded"||i.readyState=="complete")i=i.onload=i.onreadystatechange=null,n||t()}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}}),ace.define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){"use strict";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o1&&(i=n[n.length-2]);var o=a[t+"Path"];return o==null?o=a.basePath:r=="/"&&(t=r=""),o&&o.slice(-1)!="/"&&(o+="/"),o+t+r+i+this.get("suffix")},t.setModuleUrl=function(e,t){return a.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(n,r){var i,o;Array.isArray(n)&&(o=n[0],n=n[1]);try{i=e(n)}catch(u){}if(i&&!t.$loading[n])return r&&r(i);t.$loading[n]||(t.$loading[n]=[]),t.$loading[n].push(r);if(t.$loading[n].length>1)return;var a=function(){e([n],function(e){t._emit("load.module",{name:n,module:e});var r=t.$loading[n];t.$loading[n]=null,r.forEach(function(t){t&&t(e)})})};if(!t.get("packaged"))return a();s.loadScript(t.moduleUrl(n,o),a)},t.init=f}),ace.define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop_handler","ace/config"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=e("./default_handlers").DefaultHandlers,o=e("./default_gutter_handler").GutterHandler,u=e("./mouse_event").MouseEvent,a=e("./dragdrop_handler").DragdropHandler,f=e("../config"),l=function(e){var t=this;this.editor=e,new s(this),new o(this),new a(this);var n=function(t){var n=!document.hasFocus||!document.hasFocus()||!e.isFocused()&&document.activeElement==(e.textInput&&e.textInput.getElement());n&&window.focus(),e.focus()},u=e.renderer.getMouseEventTarget();r.addListener(u,"click",this.onMouseEvent.bind(this,"click")),r.addListener(u,"mousemove",this.onMouseMove.bind(this,"mousemove")),r.addMultiMouseDownListener([u,e.renderer.scrollBarV&&e.renderer.scrollBarV.inner,e.renderer.scrollBarH&&e.renderer.scrollBarH.inner,e.textInput&&e.textInput.getElement()].filter(Boolean),[400,300,250],this,"onMouseEvent"),r.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,"mousewheel")),r.addTouchMoveListener(e.container,this.onTouchMove.bind(this,"touchmove"));var f=e.renderer.$gutter;r.addListener(f,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),r.addListener(f,"click",this.onMouseEvent.bind(this,"gutterclick")),r.addListener(f,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),r.addListener(f,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),r.addListener(u,"mousedown",n),r.addListener(f,"mousedown",n),i.isIE&&e.renderer.scrollBarV&&(r.addListener(e.renderer.scrollBarV.element,"mousedown",n),r.addListener(e.renderer.scrollBarH.element,"mousedown",n)),e.on("mousemove",function(n){if(t.state||t.$dragDelay||!t.$dragEnabled)return;var r=e.renderer.screenToTextCoordinates(n.x,n.y),i=e.session.selection.getRange(),s=e.renderer;!i.isEmpty()&&i.insideStart(r.row,r.column)?s.setCursorStyle("default"):s.setCursorStyle("")})};(function(){this.onMouseEvent=function(e,t){this.editor._emit(e,new u(t,this.editor))},this.onMouseMove=function(e,t){var n=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;if(!n||!n.length)return;this.editor._emit(e,new u(t,this.editor))},this.onMouseWheel=function(e,t){var n=new u(t,this.editor);n.speed=this.$scrollSpeed*2,n.wheelX=t.wheelX,n.wheelY=t.wheelY,this.editor._emit(e,n)},this.onTouchMove=function(e,t){var n=new u(t,this.editor);n.speed=1,n.wheelX=t.wheelX,n.wheelY=t.wheelY,this.editor._emit(e,n)},this.setState=function(e){this.state=e},this.captureMouse=function(e,t){this.x=e.x,this.y=e.y,this.isMousePressed=!0;var n=this.editor.renderer;n.$keepTextAreaAtCursor&&(n.$keepTextAreaAtCursor=null);var s=this,o=function(e){if(!e)return;if(i.isWebKit&&!e.which&&s.releaseMouse)return s.releaseMouse();s.x=e.clientX,s.y=e.clientY,t&&t(e),s.mouseEvent=new u(e,s.editor),s.$mouseMoved=!0},a=function(e){clearInterval(l),f(),s[s.state+"End"]&&s[s.state+"End"](e),s.state="",n.$keepTextAreaAtCursor==null&&(n.$keepTextAreaAtCursor=!0,n.$moveTextAreaToCursor()),s.isMousePressed=!1,s.$onCaptureMouseMove=s.releaseMouse=null,e&&s.onMouseEvent("mouseup",e)},f=function(){s[s.state]&&s[s.state](),s.$mouseMoved=!1};if(i.isOldIE&&e.domEvent.type=="dblclick")return setTimeout(function(){a(e)});s.$onCaptureMouseMove=o,s.releaseMouse=r.capture(this.editor.container,o,a);var l=setInterval(f,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var e=function(t){if(t&&t.domEvent&&t.domEvent.type!="contextmenu")return;this.editor.off("nativecontextmenu",e),t&&t.domEvent&&r.stopEvent(t.domEvent)}.bind(this);setTimeout(e,10),this.editor.on("nativecontextmenu",e)}}).call(l.prototype),f.defineOptions(l.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:i.isMac?150:0},dragEnabled:{initialValue:!0},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=l}),ace.define("ace/mouse/fold_handler",["require","exports","module"],function(e,t,n){"use strict";function r(e){e.on("click",function(t){var n=t.getDocumentPosition(),r=e.session,i=r.getFoldAt(n.row,n.column,1);i&&(t.getAccelKey()?r.removeFold(i):r.expandFold(i),t.stop())}),e.on("gutterclick",function(t){var n=e.renderer.$gutterLayer.getRegion(t);if(n=="foldWidgets"){var r=t.getDocumentPosition().row,i=e.session;i.foldWidgets&&i.foldWidgets[r]&&e.session.onFoldWidgetClick(r,t),e.isFocused()||e.focus(),t.stop()}}),e.on("gutterdblclick",function(t){var n=e.renderer.$gutterLayer.getRegion(t);if(n=="foldWidgets"){var r=t.getDocumentPosition().row,i=e.session,s=i.getParentFoldRangeData(r,!0),o=s.range||s.firstRange;if(o){r=o.start.row;var u=i.getFoldAt(r,i.getLine(r).length,1);u?i.removeFold(u):(i.addFold("...",o),e.renderer.scrollCursorIntoView({row:o.start.row,column:0}))}t.stop()}})}t.FoldHandler=r}),ace.define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(e,t,n){"use strict";var r=e("../lib/keys"),i=e("../lib/event"),s=function(e){this.$editor=e,this.$data={editor:e},this.$handlers=[],this.setDefaultHandler(e.commands)};(function(){this.setDefaultHandler=function(e){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=e,this.addKeyboardHandler(e,0)},this.setKeyboardHandler=function(e){var t=this.$handlers;if(t[t.length-1]==e)return;while(t[t.length-1]&&t[t.length-1]!=this.$defaultHandler)this.removeKeyboardHandler(t[t.length-1]);this.addKeyboardHandler(e,1)},this.addKeyboardHandler=function(e,t){if(!e)return;typeof e=="function"&&!e.handleKeyboard&&(e.handleKeyboard=e);var n=this.$handlers.indexOf(e);n!=-1&&this.$handlers.splice(n,1),t==undefined?this.$handlers.push(e):this.$handlers.splice(t,0,e),n==-1&&e.attach&&e.attach(this.$editor)},this.removeKeyboardHandler=function(e){var t=this.$handlers.indexOf(e);return t==-1?!1:(this.$handlers.splice(t,1),e.detach&&e.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var e=this.$data,t=e.editor;return this.$handlers.map(function(n){return n.getStatusText&&n.getStatusText(t,e)||""}).filter(Boolean).join(" ")},this.$callKeyboardHandlers=function(e,t,n,r){var s,o=!1,u=this.$editor.commands;for(var a=this.$handlers.length;a--;){s=this.$handlers[a].handleKeyboard(this.$data,e,t,n,r);if(!s||!s.command)continue;s.command=="null"?o=!0:o=u.exec(s.command,this.$editor,s.args,r),o&&r&&e!=-1&&s.passEvent!=1&&s.command.passEvent!=1&&i.stopEvent(r);if(o)break}return!o&&e==-1&&(s={command:"insertstring"},o=u.exec("insertstring",this.$editor,t)),o&&this.$editor._signal("keyboardActivity",s),o},this.onCommandKey=function(e,t,n){var i=r.keyCodeToString(n);this.$callKeyboardHandlers(t,i,n,e)},this.onTextInput=function(e){this.$callKeyboardHandlers(-1,e)}}).call(s.prototype),t.KeyBinding=s}),ace.define("ace/range",["require","exports","module"],function(e,t,n){"use strict";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?tthis.end.column?1:0:ethis.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.rowt)var r={row:t+1,column:0};else if(this.start.rowt.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.isEmpty()?o.fromPoints(t,t):this.isBackwards()?o.fromPoints(t,e):o.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var e=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(e,this.doc.getLine(e).length)},this.setRange=this.setSelectionRange=function(e,t){t?(this.setSelectionAnchor(e.end.row,e.end.column),this.selectTo(e.start.row,e.start.column)):(this.setSelectionAnchor(e.start.row,e.start.column),this.selectTo(e.end.row,e.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},this.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},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(e,t){if(typeof t=="undefined"){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var n=typeof e=="number"?e:this.lead.row,r,i=this.session.getFoldLine(n);return i?(n=i.start.row,r=i.end.row):r=n,t===!0?new o(n,0,r,this.session.getLine(r).length):new o(n,0,r+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,-1))this.moveCursorTo(t.start.row,t.start.column);else if(e.column===0)e.row>0&&this.moveCursorTo(e.row-1,this.doc.getLine(e.row-1).length);else{var n=this.session.getTabSize();this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(e.column-n,e.column).split(" ").length-1==n?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,1))this.moveCursorTo(t.end.row,t.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=r)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i;this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var s=this.session.getFoldAt(e,t,1);if(s){this.moveCursorTo(s.end.row,s.end.column);return}if(i=this.session.nonTokenRe.exec(r))t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,r=n.substring(t);if(t>=n.length){this.moveCursorTo(e,n.length),this.moveCursorRight(),e0&&this.moveCursorWordLeft();return}if(o=this.session.tokenRe.exec(s))t-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0;this.moveCursorTo(e,t)},this.$shortWordEndIndex=function(e){var t,n=0,r,i=/\s/,s=this.session.tokenRe;s.lastIndex=0;if(t=this.session.tokenRe.exec(e))n=this.session.tokenRe.lastIndex;else{while((r=e[n])&&i.test(r))n++;if(n<1){s.lastIndex=0;while((r=e[n])&&!s.test(r)){s.lastIndex=0,n++;if(i.test(r)){if(n>2){n--;break}while((r=e[n])&&i.test(r))n++;if(n>2)break}}}}return s.lastIndex=0,n},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var s=this.doc.getLength();do e++,r=this.doc.getLine(e);while(e0&&/^\s*$/.test(r));t=r.length,/\s+$/.test(r)||(r="")}var s=i.stringReverse(r),o=this.$shortWordEndIndex(s);return this.moveCursorTo(e,t-o)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var n=this.session.documentToScreenPosition(this.lead.row,this.lead.column);t===0&&(this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);var r=this.session.screenToDocumentPosition(n.row+e,n.column);e!==0&&t===0&&r.row===this.lead.row&&r.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[r.row]&&(r.row>0||e>0)&&r.row++,this.moveCursorTo(r.row,r.column+t,t===0)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,n){var r=this.session.getFoldAt(e,t,1);r&&(e=r.start.row,t=r.start.column),this.$keepDesiredColumnOnChange=!0,this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,n){var r=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(r.row,r.column,n)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var n=this.getCursor();return o.fromPoints(t,n)}catch(r){return o.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map(function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t});else{var e=this.getRange();e.isBackwards=this.isBackwards()}return e},this.fromJSON=function(e){if(e.start==undefined){if(this.rangeList){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=o.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(u.prototype),t.Selection=u}),ace.define("ace/tokenizer",["require","exports","module","ace/config"],function(e,t,n){"use strict";var r=e("./config"),i=2e3,s=function(e){this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){var n=this.states[t],r=[],i=0,s=this.matchMappings[t]={defaultToken:"text"},o="g",u=[];for(var a=0;a1?f.onMatch=this.$applyToken:f.onMatch=f.token),c>1&&(/\\\d/.test(f.regex)?l=f.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+i+1)}):(c=1,l=this.removeCapturingGroups(f.regex)),!f.splitRegex&&typeof f.token!="string"&&u.push(f)),s[i]=a,i+=c,r.push(l),f.onMatch||(f.onMatch=null)}r.length||(s[0]=0,r.push("$")),u.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,o)},this),this.regExps[t]=new RegExp("("+r.join(")|(")+")|($)",o)}};(function(){this.$setMaxTokenCount=function(e){i=e|0},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if(typeof n=="string")return[{type:n,value:e}];var r=[];for(var i=0,s=n.length;il){var g=e.substring(l,m-v.length);h.type==p?h.value+=g:(h.type&&f.push(h),h={type:p,value:g})}for(var y=0;yi){c>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});while(l1&&n[0]!==r&&n.unshift("#tmp",r),{tokens:f,state:n.length?n:r}},this.reportError=r.reportError}).call(s.prototype),t.Tokenizer=s}),ace.define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../lib/lang"),i=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(!t){for(var n in e)this.$rules[n]=e[n];return}for(var n in e){var r=e[n];for(var i=0;i=this.$rowTokens.length){this.$row+=1,e||(e=this.$session.getLength());if(this.$row>=e)return this.$row=e-1,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 e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(n!==undefined)return n;n=0;while(t>0)t-=1,n+=e[t].value.length;return n},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}}}).call(r.prototype),t.TokenIterator=r}),ace.define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(e,t,n){"use strict";var r=e("../tokenizer").Tokenizer,i=e("./text_highlight_rules").TextHighlightRules,s=e("./behaviour").Behaviour,o=e("../unicode"),u=e("../lib/lang"),a=e("../token_iterator").TokenIterator,f=e("../range").Range,l=function(){this.HighlightRules=i,this.$behaviour=new s};(function(){this.tokenRe=new RegExp("^["+o.packages.L+o.packages.Mn+o.packages.Mc+o.packages.Nd+o.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+o.packages.L+o.packages.Mn+o.packages.Mc+o.packages.Nd+o.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules,this.$tokenizer=new r(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(e,t,n,r){function w(e){for(var t=n;t<=r;t++)e(i.getLine(t),t)}var i=t.doc,s=!0,o=!0,a=Infinity,f=t.getTabSize(),l=!1;if(!this.lineCommentStart){if(!this.blockComment)return!1;var c=this.blockComment.start,h=this.blockComment.end,p=new RegExp("^(\\s*)(?:"+u.escapeRegExp(c)+")"),d=new RegExp("(?:"+u.escapeRegExp(h)+")\\s*$"),v=function(e,t){if(g(e,t))return;if(!s||/\S/.test(e))i.insertInLine({row:t,column:e.length},h),i.insertInLine({row:t,column:a},c)},m=function(e,t){var n;(n=e.match(d))&&i.removeInLine(t,e.length-n[0].length,e.length),(n=e.match(p))&&i.removeInLine(t,n[1].length,n[0].length)},g=function(e,n){if(p.test(e))return!0;var r=t.getTokens(n);for(var i=0;i2?r%f!=f-1:r%f==0}}var E=Infinity;w(function(e,t){var n=e.search(/\S/);n!==-1?(ne.length&&(E=e.length)}),a==Infinity&&(a=E,s=!1,o=!1),l&&a%f!=0&&(a=Math.floor(a/f)*f),w(o?m:v)},this.toggleBlockComment=function(e,t,n,r){var i=this.blockComment;if(!i)return;!i.start&&i[0]&&(i=i[0]);var s=new a(t,r.row,r.column),o=s.getCurrentToken(),u=t.selection,l=t.selection.toOrientedRange(),c,h;if(o&&/comment/.test(o.type)){var p,d;while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.start);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;p=new f(m,g,m,g+i.start.length);break}o=s.stepBackward()}var s=new a(t,r.row,r.column),o=s.getCurrentToken();while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.end);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;d=new f(m,g,m,g+i.end.length);break}o=s.stepForward()}d&&t.remove(d),p&&(t.remove(p),c=p.start.row,h=-i.start.length)}else h=i.start.length,c=n.start.row,t.insert(n.end,i.end),t.insert(n.start,i.start);l.start.row==c&&(l.start.column+=h),l.end.row==c&&(l.end.column+=h),t.selection.fromOrientedRange(l)},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.autoOutdent=function(e,t,n){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var t in e)e[t]&&(this.$embeds.push(t),this.$modes[t]=new e[t]);var n=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(var t=0;t=0&&t.row=0&&t.column<=e[t.row].length}function s(e,t){t.action!="insert"&&t.action!="remove"&&r(t,"delta.action must be 'insert' or 'remove'"),t.lines instanceof Array||r(t,"delta.lines must be an Array"),(!t.start||!t.end)&&r(t,"delta.start/end must be an present");var n=t.start;i(e,t.start)||r(t,"delta.start must be contained in document");var s=t.end;t.action=="remove"&&!i(e,s)&&r(t,"delta.end must contained in document for 'remove' actions");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,"delta.range must match delta lines")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||"";switch(t.action){case"insert":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case"remove":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),ace.define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n=="undefined"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.columnthis.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),ace.define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./apply_delta").applyDelta,s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=e("./anchor").Anchor,a=function(e){this.$lines=[""],e.length===0?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},"aaa".split(/a/).length===0?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[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(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal("changeNewLineMode")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e=="\r\n"||e=="\r"||e=="\n"},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:"insert",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e0,r=t=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action=="insert";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),i(this.$lines,e,t),this._signal("change",e)},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length,i=e.start.row,s=e.start.column,o=0,u=0;do{o=u,u+=t-1;var a=n.slice(o,u);if(u>r){e.lines=a,e.start.row=i+o,e.start.column=s;break}a.push(""),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action=="insert"?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,s<=r&&n.fireUpdateEvent(s,r)}};(function(){r.implement(this,i),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._signal("update",{data:n})},this.start=function(e){this.currentLine=Math.min(e||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(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.lines[t]=null;else if(e.action=="remove")this.lines.splice(t,n+1,null),this.states.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.lines.splice.apply(this.lines,r),this.states.splice.apply(this.states,r)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],r=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+""!=r.state+""?(this.states[e]=r.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=r.tokens}}).call(s.prototype),t.BackgroundTokenizer=s}),ace.define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){"use strict";var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./range").Range,o=function(e,t,n){this.setRegexp(e),this.clazz=t,this.type=n||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){if(this.regExp+""==e+"")return;this.regExp=e,this.cache=[]},this.update=function(e,t,n,i){if(!this.regExp)return;var o=i.firstRow,u=i.lastRow;for(var a=o;a<=u;a++){var f=this.cache[a];f==null&&(f=r.getMatchOffsets(n.getLine(a),this.regExp),f.length>this.MAX_RANGES&&(f=f.slice(0,this.MAX_RANGES)),f=f.map(function(e){return new s(a,e.offset,a,e.offset+e.length)}),this.cache[a]=f.length?f:"");for(var l=f.length;l--;)t.drawSingleLineMarker(e,f[l].toScreenRange(n),this.clazz,i)}}}).call(o.prototype),t.SearchHighlight=o}),ace.define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t,n){"use strict";function i(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var n=t[t.length-1];this.range=new r(t[0].start.row,t[0].start.column,n.end.row,n.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}var r=e("../range").Range;(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach(function(t){t.start.row+=e,t.end.row+=e})},this.addFold=function(e){if(e.sameRow){if(e.start.rowthis.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,n){var r=0,i=this.folds,s,o,u,a=!0;t==null&&(t=this.end.row,n=this.end.column);for(var f=0;f0)continue;var a=i(e,o.start);return u===0?t&&a!==0?-s-2:s:a>0||a===0&&!t?s:-s-1}return-s-1},this.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var r=this.pointIndex(e.end,t,n);return r<0?r=-r-1:r++,this.ranges.splice(n,r-n,e)},this.addList=function(e){var t=[];for(var n=e.length;n--;)t.push.apply(t,this.add(e[n]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return i(e.start,t.start)});var n=t[0],r;for(var s=1;s=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.rowr)break;l.start.row==r&&l.start.column>=t.column&&(l.start.column!=t.column||!this.$insertRight)&&(l.start.column+=o,l.start.row+=s);if(l.end.row==r&&l.end.column>=t.column){if(l.end.column==t.column&&this.$insertRight)continue;l.end.column==t.column&&o>0&&al.start.column&&l.end.column==u[a+1].start.column&&(l.end.column-=o),l.end.column+=o,l.end.row+=s}}if(s!=0&&a=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r=e)return i}return null},this.getFoldedRowCount=function(e,t){var n=this.$foldData,r=t-e+1;for(var i=0;i=t){u=e?r-=t-u:r=0);break}o>=e&&(u>=e?r-=o-u:r-=o-e+1)}return r},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var n=this.$foldData,r=!1,o;e instanceof s?o=e:(o=new s(t,e),o.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(o.range);var u=o.start.row,a=o.start.column,f=o.end.row,l=o.end.column;if(u0&&(this.removeFolds(p),p.forEach(function(e){o.addSubFold(e)}));for(var d=0;d0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var n,i;e==null?(n=new r(0,0,this.getLength(),0),t=!0):typeof e=="number"?n=new r(e,0,e,this.getLine(e).length):"row"in e?n=r.fromPoints(e,e):n=e,i=this.getFoldsInRangeList(n);if(t)this.removeFolds(i);else{var s=i;while(s.length)this.expandFolds(s),s=this.getFoldsInRangeList(n)}if(i.length)return i},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,r,i){r==null&&(r=e.start.row),i==null&&(i=0),t==null&&(t=e.end.row),n==null&&(n=this.getLine(t).length);var s=this.doc,o="";return e.walk(function(e,t,n,u){if(t=e){i=s.end.row;try{var o=this.addFold("...",s);o&&(o.collapseChildren=n)}catch(u){}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(e){if(!this.$foldStyles[e])throw new Error("invalid fold style: "+e+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle==e)return;this.$foldStyle=e,e=="manual"&&this.unfold();var t=this.$foldMode;this.$setFolding(null),this.$setFolding(t)},this.$setFolding=function(e){if(this.$foldMode==e)return;this.$foldMode=e,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation");if(!e||this.$foldStyle=="manual"){this.foldWidgets=null;return}this.foldWidgets=[],this.getFoldWidget=e.getFoldWidget.bind(e,this,this.$foldStyle),this.getFoldWidgetRange=e.getFoldWidgetRange.bind(e,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(e,t){var n=this.foldWidgets;if(!n||t&&n[e])return{};var r=e-1,i;while(r>=0){var s=n[r];s==null&&(s=n[r]=this.getFoldWidget(r));if(s=="start"){var o=this.getFoldWidgetRange(r);i||(i=o);if(o&&o.end.row>=e)break}r--}return{range:r!==-1&&o,firstRange:i}},this.onFoldWidgetClick=function(e,t){t=t.domEvent;var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey},r=this.$toggleFoldWidget(e,n);if(!r){var i=t.target||t.srcElement;i&&/ace_fold-widget/.test(i.className)&&(i.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(!this.getFoldWidget)return;var n=this.getFoldWidget(e),r=this.getLine(e),i=n==="end"?-1:1,s=this.getFoldAt(e,i===-1?0:r.length,i);if(s){t.children||t.all?this.removeFold(s):this.expandFold(s);return}var o=this.getFoldWidgetRange(e,!0);if(o&&!o.isMultiLine()){s=this.getFoldAt(o.start.row,o.start.column,1);if(s&&o.isEqual(s.range)){this.removeFold(s);return}}if(t.siblings){var u=this.getParentFoldRangeData(e);if(u.range)var a=u.range.start.row+1,f=u.range.end.row;this.foldAll(a,f,t.all?1e4:0)}else t.children?(f=o?o.end.row:this.getLength(),this.foldAll(e+1,f,t.all?1e4:0)):o&&(t.all&&(o.collapseChildren=1e4),this.addFold("...",o));return o},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(n)return;var r=this.getParentFoldRangeData(t,!0);n=r.range||r.firstRange;if(n){t=n.start.row;var i=this.getFoldAt(t,this.getLine(t).length,1);i?this.removeFold(i):this.addFold("...",n)}},this.updateFoldWidgets=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.foldWidgets[t]=null;else if(e.action=="remove")this.foldWidgets.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,r)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}var r=e("../range").Range,i=e("./fold_line").FoldLine,s=e("./fold").Fold,o=e("../token_iterator").TokenIterator;t.Folding=u}),ace.define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,n){"use strict";function s(){this.findMatchingBracket=function(e,t){if(e.column==0)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(n=="")return null;var r=n.match(/([\(\[\{])|([\)\]\}])/);return r?r[1]?this.$findClosingBracket(r[1],e):this.$findOpeningBracket(r[2],e):null},this.getBracketRange=function(e){var t=this.getLine(e.row),n=!0,r,s=t.charAt(e.column-1),o=s&&s.match(/([\(\[\{])|([\)\]\}])/);o||(s=t.charAt(e.column),e={row:e.row,column:e.column+1},o=s&&s.match(/([\(\[\{])|([\)\]\}])/),n=!1);if(!o)return null;if(o[1]){var u=this.$findClosingBracket(o[1],e);if(!u)return null;r=i.fromPoints(e,u),n||(r.end.column++,r.start.column--),r.cursor=r.end}else{var u=this.$findOpeningBracket(o[2],e);if(!u)return null;r=i.fromPoints(u,e),n||(r.start.column++,r.end.column--),r.cursor=r.start}return r},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));var a=t.column-o.getCurrentTokenColumn()-2,f=u.value;for(;;){while(a>=0){var l=f.charAt(a);if(l==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else l==e&&(s+=1);a-=1}do u=o.stepBackward();while(u&&!n.test(u.type));if(u==null)break;f=u.value,a=f.length-1}return null},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));var a=t.column-o.getCurrentTokenColumn();for(;;){var f=u.value,l=f.length;while(a=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510}r.implement(this,o),this.setDocument=function(e){this.doc&&this.doc.removeListener("change",this.$onChange),this.doc=e,e.on("change",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(e){if(!e){this.$docRowCache=[],this.$screenRowCache=[];return}var t=this.$docRowCache.length,n=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>n&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},this.$getRowCacheIndex=function(e,t){var n=0,r=e.length-1;while(n<=r){var i=n+r>>1,s=e[i];if(t>s)n=i+1;else{if(!(t=t)break}return r=n[s],r?(r.index=s,r.start=i-r.value.length,r):null},this.setUndoManager=function(e){this.$undoManager=e,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(e){var t=this;this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.$deltasFold.length&&(t.$deltas.push({group:"fold",deltas:t.$deltasFold}),t.$deltasFold=[]),t.$deltasDoc.length&&(t.$deltas.push({group:"doc",deltas:t.$deltasDoc}),t.$deltasDoc=[]),t.$deltas.length>0&&e.execute({action:"aceupdate",args:[t.$deltas,t],merge:t.mergeUndoDeltas}),t.mergeUndoDeltas=!1,t.$deltas=[]},this.$informUndoManager=i.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?i.stringRepeat(" ",this.getTabSize()):" "},this.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption("tabSize",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize===0},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption("overwrite",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t0&&(r=!!n.charAt(t-1).match(this.tokenRe)),r||(r=!!n.charAt(t).match(this.tokenRe));if(r)var i=this.tokenRe;else if(/^\s+$/.test(n.slice(t-1,t+1)))var i=/\s/;else var i=this.nonTokenRe;var s=t;if(s>0){do s--;while(s>=0&&n.charAt(s).match(i));s++}var o=t;while(oe&&(e=t.screenWidth)}),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){this.$modified=!1;if(this.$useWrapMode)return this.screenWidth=this.$wrapLimit;var t=this.doc.getAllLines(),n=this.$rowLengthCache,r=0,i=0,s=this.$foldData[i],o=s?s.start.row:Infinity,u=t.length;for(var a=0;ao){a=s.end.row+1;if(a>=u)break;s=this.$foldData[i++],o=s?s.start.row:Infinity}n[a]==null&&(n[a]=this.$getStringScreenWidth(t[a])[0]),n[a]>r&&(r=n[a])}this.screenWidth=r}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},this.undoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;var n=null;for(var r=e.length-1;r!=-1;r--){var i=e[r];i.group=="doc"?(this.doc.revertDeltas(i.deltas),n=this.$getUndoSelection(i.deltas,!0,n)):i.deltas.forEach(function(e){this.addFolds(e.folds)},this)}return this.$fromUndo=!1,n&&this.$undoSelect&&!t&&this.selection.setSelectionRange(n),n},this.redoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;var n=null;for(var r=0;re.end.column&&(s.start.column+=u),s.end.row==e.end.row&&s.end.column>e.end.column&&(s.end.column+=u)),o&&s.start.row>=e.end.row&&(s.start.row+=o,s.end.row+=o)}s.end=this.insert(s.start,r);if(i.length){var a=e.start,l=s.start,o=l.row-a.row,u=l.column-a.column;this.addFolds(i.map(function(e){return e=e.clone(),e.start.row==a.row&&(e.start.column+=u),e.end.row==a.row&&(e.end.column+=u),e.start.row+=o,e.end.row+=o,e}))}return s},this.indentRows=function(e,t,n){n=n.replace(/\t/g,this.getTabString());for(var r=e;r<=t;r++)this.doc.insertInLine({row:r,column:0},n)},this.outdentRows=function(e){var t=e.collapseRows(),n=new f(0,0,0,0),r=this.getTabSize();for(var i=t.start.row;i<=t.end.row;++i){var s=this.getLine(i);n.start.row=i,n.end.row=i;for(var o=0;o0){var r=this.getRowFoldEnd(t+n);if(r>this.doc.getLength()-1)return 0;var i=r-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var i=t-e+1}var s=new f(e,0,t,Number.MAX_VALUE),o=this.getFoldsInRange(s).map(function(e){return e=e.clone(),e.start.row+=i,e.end.row+=i,e}),u=n==0?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+i,u),o.length&&this.addFolds(o),i},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){t=Math.max(0,t);if(e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0);if(e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){if(this.$wrapLimitRange.min!==e||this.$wrapLimitRange.max!==t)this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$useWrapMode&&this._signal("changeWrapMode")},this.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var r=this.$constrainWrapLimit(e,n.min,n.max);return r!=this.$wrapLimit&&r>1?(this.$wrapLimit=r,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n=e.action,r=e.start,i=e.end,s=r.row,o=i.row,u=o-s,a=null;this.$updating=!0;if(u!=0)if(n==="remove"){this[t?"$wrapData":"$rowLengthCache"].splice(s,u);var f=this.$foldData;a=this.getFoldsInRange(e),this.removeFolds(a);var l=this.getFoldLine(i.row),c=0;if(l){l.addRemoveChars(i.row,i.column,r.column-i.column),l.shiftRow(-u);var h=this.getFoldLine(s);h&&h!==l&&(h.merge(l),l=h),c=f.indexOf(l)+1}for(c;c=i.row&&l.shiftRow(-u)}o=s}else{var p=Array(u);p.unshift(s,0);var d=t?this.$wrapData:this.$rowLengthCache;d.splice.apply(d,p);var f=this.$foldData,l=this.getFoldLine(s),c=0;if(l){var v=l.range.compareInside(r.row,r.column);v==0?(l=l.split(r.row,r.column),l&&(l.shiftRow(u),l.addRemoveChars(o,0,i.column-r.column))):v==-1&&(l.addRemoveChars(s,0,i.column-r.column),l.shiftRow(u)),c=f.indexOf(l)+1}for(c;c=s&&l.shiftRow(u)}}else{u=Math.abs(e.start.column-e.end.column),n==="remove"&&(a=this.getFoldsInRange(e),this.removeFolds(a),u=-u);var l=this.getFoldLine(s);l&&l.addRemoveChars(s,r.column,u)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(s,o):this.$updateRowLengthCache(s,o),a},this.$updateRowLengthCache=function(e,t,n){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,t){var r=this.doc.getAllLines(),i=this.getTabSize(),s=this.$wrapData,o=this.$wrapLimit,a,f,l=e;t=Math.min(t,r.length-1);while(l<=t)f=this.getFoldLine(l,f),f?(a=[],f.walk(function(e,t,i,s){var o;if(e!=null){o=this.$getDisplayTokens(e,a.length),o[0]=n;for(var f=1;fr-b){var w=a+r-b;if(e[w-1]>=p&&e[w]>=p){y(w);continue}if(e[w]==n||e[w]==u){for(w;w!=a-1;w--)if(e[w]==n)break;if(w>a){y(w);continue}w=a+r;for(w;w>2)),a-1);while(w>E&&e[w]E&&e[w]E&&e[w]==l)w--}else while(w>E&&e[w]E){y(++w);continue}w=a+r,e[w]==t&&w--,y(w-b)}return s},this.$getDisplayTokens=function(n,r){var i=[],s;r=r||0;for(var o=0;o39&&u<48||u>57&&u<64?i.push(l):u>=4352&&m(u)?i.push(e,t):i.push(e)}return i},this.$getStringScreenWidth=function(e,t,n){if(t==0)return[0,0];t==null&&(t=Infinity),n=n||0;var r,i;for(i=0;i=4352&&m(r)?n+=2:n+=1;if(n>t)break}return[n,i]},this.lineWidgets=null,this.getRowLength=function(e){if(this.lineWidgets)var t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0;else t=0;return!this.$useWrapMode||!this.$wrapData[e]?1+t:this.$wrapData[e].length+1+t},this.getRowLineCount=function(e){return!this.$useWrapMode||!this.$wrapData[e]?1:this.$wrapData[e].length+1},this.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),n=this.$wrapData[t.row];return n.length&&n[0]=0)var o=a[f],r=this.$docRowCache[f],c=e>a[l-1];else var c=!l;var h=this.getLength()-1,p=this.getNextFoldLine(r),d=p?p.start.row:Infinity;while(o<=e){u=this.getRowLength(r);if(o+u>e||r>=h)break;o+=u,r++,r>d&&(r=p.end.row+1,p=this.getNextFoldLine(r,p),d=p?p.start.row:Infinity),c&&(this.$docRowCache.push(r),this.$screenRowCache.push(o))}if(p&&p.start.row<=r)n=this.getFoldDisplayLine(p),r=p.start.row;else{if(o+u<=e||r>h)return{row:h,column:this.getLine(h).length};n=this.getLine(r),p=null}var v=0;if(this.$useWrapMode){var m=this.$wrapData[r];if(m){var g=Math.floor(e-o);s=m[g],g>0&&m.length&&(v=m.indent,i=m[g-1]||m[m.length-1],n=n.substring(i))}}return i+=this.$getStringScreenWidth(n,t-v)[1],this.$useWrapMode&&i>=s&&(i=s-1),p?p.idxToPosition(i):{row:r,column:i}},this.documentToScreenPosition=function(e,t){if(typeof t=="undefined")var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var r=0,i=null,s=null;s=this.getFoldAt(e,t,1),s&&(e=s.start.row,t=s.start.column);var o,u=0,a=this.$docRowCache,f=this.$getRowCacheIndex(a,e),l=a.length;if(l&&f>=0)var u=a[f],r=this.$screenRowCache[f],c=e>a[l-1];else var c=!l;var h=this.getNextFoldLine(u),p=h?h.start.row:Infinity;while(u=p){o=h.end.row+1;if(o>e)break;h=this.getNextFoldLine(o,h),p=h?h.start.row:Infinity}else o=u+1;r+=this.getRowLength(u),u=o,c&&(this.$docRowCache.push(u),this.$screenRowCache.push(r))}var d="";h&&u>=p?(d=this.getFoldDisplayLine(h,e,t),i=h.start.row):(d=this.getLine(e).substring(0,t),i=e);var v=0;if(this.$useWrapMode){var m=this.$wrapData[i];if(m){var g=0;while(d.length>=m[g])r++,g++;d=d.substring(m[g-1]||0,d.length),v=g>0?m.indent:0}}return{row:r,column:v+this.$getStringScreenWidth(d)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(!this.$useWrapMode){e=this.getLength();var n=this.$foldData;for(var r=0;ro&&(s=t.end.row+1,t=this.$foldData[r++],o=t?t.start.row:Infinity)}}return this.lineWidgets&&(e+=this.$getWidgetScreenLength()),e},this.$setFontMetrics=function(e){if(!this.$enableVarChar)return;this.$getStringScreenWidth=function(t,n,r){if(n===0)return[0,0];n||(n=Infinity),r=r||0;var i,s;for(s=0;sn)break}return[r,s]}},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()}}).call(p.prototype),e("./edit_session/folding").Folding.call(p.prototype),e("./edit_session/bracket_match").BracketMatch.call(p.prototype),s.defineOptions(p.prototype,"session",{wrap:{set:function(e){!e||e=="off"?e=!1:e=="free"?e=!0:e=="printMargin"?e=-1:typeof e=="string"&&(e=parseInt(e,10)||!1);if(this.$wrap==e)return;this.$wrap=e;if(!e)this.setUseWrapMode(!1);else{var t=typeof e=="number"?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){e=e=="auto"?this.$mode.type!="text":e!="text",e!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$modified=!0,this.$resetRowCache(0),this.$updateWrapData(0,this.getLength()-1)))},initialValue:"auto"},indentedSoftWrap:{initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){if(isNaN(e)||this.$tabSize===e)return;this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize")},initialValue:4,handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId}}}),t.EditSession=p}),ace.define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){"use strict";var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./range").Range,o=function(){this.$options={}};(function(){this.set=function(e){return i.mixin(this.$options,e),this},this.getOptions=function(){return r.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var r=null;return n.forEach(function(e,n,i){if(!e.start){var o=e.offset+(i||0);r=new s(n,o,n,o+e.length);if(!e.length&&t.start&&t.start.start&&t.skipCurrent!=0&&r.isEqual(t.start))return r=null,!1}else r=e;return!0}),r},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,i=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),o=[],u=t.re;if(t.$isMultiLine){var a=u.length,f=i.length-a,l;e:for(var c=u.offset||0;c<=f;c++){for(var h=0;hv)continue;o.push(l=new s(c,v,c+a-1,m)),a>2&&(c=c+a-2)}}else for(var g=0;gE&&o[h].end.row==n.end.row)h--;o=o.slice(g,h+1);for(g=0,h=o.length;g=0;u--)if(i(o[u],t,s))return!0};else var u=function(e,t,s){var o=r.getMatchOffsets(e,n);for(var u=0;u=o;r--)if(n(e.getLine(r),r))return;if(t.wrap==0)return;for(r=u,o=s.row;r>=o;r--)if(n(e.getLine(r),r))return}:function(n){var r=s.row,i=e.getLine(r).substr(s.column);if(n(i,r,s.column))return;for(r+=1;r<=u;r++)if(n(e.getLine(r),r))return;if(t.wrap==0)return;for(r=o,u=s.row;r<=u;r++)if(n(e.getLine(r),r))return};return{forEach:a}}}).call(o.prototype),t.Search=o}),ace.define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){"use strict";function o(e,t){this.platform=t||(i.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function u(e,t){o.call(this,e,t),this.$singleCommand=!1}var r=e("../lib/keys"),i=e("../lib/useragent"),s=r.KEY_MODS;u.prototype=o.prototype,function(){function e(e){return typeof e=="object"&&e.bindKey&&e.bindKey.position||0}this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var n=e&&(typeof e=="string"?e:e.name);e=this.commands[n],t||delete this.commands[n];var r=this.commandKeyBinding;for(var i in r){var s=r[i];if(s==e)delete r[i];else if(Array.isArray(s)){var o=s.indexOf(e);o!=-1&&(s.splice(o,1),s.length==1&&(r[i]=s[0]))}}},this.bindKey=function(e,t,n){typeof e=="object"&&e&&(n==undefined&&(n=e.position),e=e[this.platform]);if(!e)return;if(typeof t=="function")return this.addCommand({exec:t,bindKey:e,name:t.name||e});e.split("|").forEach(function(e){var r="";if(e.indexOf(" ")!=-1){var i=e.split(/\s+/);e=i.pop(),i.forEach(function(e){var t=this.parseKeys(e),n=s[t.hashId]+t.key;r+=(r?" ":"")+n,this._addCommandToBinding(r,"chainKeys")},this),r+=" "}var o=this.parseKeys(e),u=s[o.hashId]+o.key;this._addCommandToBinding(r+u,t,n)},this)},this._addCommandToBinding=function(t,n,r){var i=this.commandKeyBinding,s;if(!n)delete i[t];else if(!i[t]||this.$singleCommand)i[t]=n;else{Array.isArray(i[t])?(s=i[t].indexOf(n))!=-1&&i[t].splice(s,1):i[t]=[i[t]],typeof r!="number"&&(r||n.isDefault?r=-100:r=e(n));var o=i[t];for(s=0;sr)break}o.splice(s,0,n)}},this.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var n=e[t];if(!n)return;if(typeof n=="string")return this.bindKey(n,t);typeof n=="function"&&(n={exec:n});if(typeof n!="object")return;n.name||(n.name=t),this.addCommand(n)},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(e){return e}),n=t.pop(),i=r[n];if(r.FUNCTION_KEYS[i])n=r.FUNCTION_KEYS[i].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(t.length==1&&t[0]=="shift")return{key:n.toUpperCase(),hashId:-1}}var s=0;for(var o=t.length;o--;){var u=r.KEY_MODS[t[o]];if(u==null)return typeof console!="undefined"&&console.error("invalid modifier "+t[o]+" in "+e),!1;s|=u}return{key:n,hashId:s}},this.findKeyCommand=function(t,n){var r=s[t]+n;return this.commandKeyBinding[r]},this.handleKeyboard=function(e,t,n,r){if(r<0)return;var i=s[t]+n,o=this.commandKeyBinding[i];e.$keyChain&&(e.$keyChain+=" "+i,o=this.commandKeyBinding[e.$keyChain]||o);if(o)if(o=="chainKeys"||o[o.length-1]=="chainKeys")return e.$keyChain=e.$keyChain||i,{command:"null"};if(e.$keyChain)if(!!t&&t!=4||n.length!=1){if(t==-1||r>0)e.$keyChain=""}else e.$keyChain=e.$keyChain.slice(0,-i.length-1);return{command:o}},this.getStatusText=function(e,t){return t.$keyChain||""}}.call(o.prototype),t.HashHandler=o,t.MultiHashHandler=u}),ace.define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../keyboard/hash_handler").MultiHashHandler,s=e("../lib/event_emitter").EventEmitter,o=function(e,t){i.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.command.exec(e.editor,e.args||{})})};r.inherits(o,i),function(){r.implement(this,s),this.exec=function(e,t,n){if(Array.isArray(e)){for(var r=e.length;r--;)if(this.exec(e[r],t,n))return!0;return!1}typeof e=="string"&&(e=this.commands[e]);if(!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;var i={editor:t,command:e,args:n};return i.returnValue=this._emit("exec",i),this._signal("afterExec",i),i.returnValue===!1?!1:!0},this.toggleRecording=function(e){if(this.$inReplay)return;return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.removeEventListener("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(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),this.recording=!0)},this.replay=function(e){if(this.$inReplay||!this.macro)return;if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){typeof t=="string"?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}},this.trimMacro=function(e){return e.map(function(e){return typeof e[0]!="string"&&(e[0]=e[0].name),e[1]||(e=e[0]),e})}}.call(o.prototype),t.CommandManager=o}),ace.define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(e,t,n){"use strict";function o(e,t){return{win:e,mac:t}}var r=e("../lib/lang"),i=e("../config"),s=e("../range").Range;t.commands=[{name:"showSettingsMenu",bindKey:o("Ctrl-,","Command-,"),exec:function(e){i.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",bindKey:o("Alt-E","Ctrl-E"),exec:function(e){i.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:o("Alt-Shift-E","Ctrl-Shift-E"),exec:function(e){i.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",bindKey:o("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",bindKey:o(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:o("Ctrl-L","Command-L"),exec:function(e){var t=parseInt(prompt("Enter line number:"),10);isNaN(t)||e.gotoLine(t)},readOnly:!0},{name:"fold",bindKey:o("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:o("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:o("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:o("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",bindKey:o(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",bindKey:o("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",bindKey:o("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",bindKey:o("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",bindKey:o("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",bindKey:o("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",bindKey:o("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",bindKey:o("Ctrl-F","Command-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",bindKey:o("Ctrl-Shift-Home","Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",bindKey:o("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",bindKey:o("Shift-Up","Shift-Up"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",bindKey:o("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",bindKey:o("Ctrl-Shift-End","Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",bindKey:o("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",bindKey:o("Shift-Down","Shift-Down"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",bindKey:o("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",bindKey:o("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",bindKey:o("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",bindKey:o("Alt-Shift-Left","Command-Shift-Left"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",bindKey:o("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",bindKey:o("Shift-Left","Shift-Left"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",bindKey:o("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",bindKey:o("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",bindKey:o("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",bindKey:o("Alt-Shift-Right","Command-Shift-Right"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",bindKey:o("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",bindKey:o("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",bindKey:o("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",bindKey:o(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:o("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",bindKey:o(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:o("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:o("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",bindKey:o("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",bindKey:o("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",bindKey:o("Ctrl-P","Ctrl-P"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",bindKey:o("Ctrl-Shift-P","Ctrl-Shift-P"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",bindKey:o("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",bindKey:o(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",exec:function(e){},readOnly:!0},{name:"cut",exec:function(e){var t=e.getSelectionRange();e._emit("cut",t),e.selection.isEmpty()||(e.session.remove(t),e.clearSelection())},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",bindKey:o("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",bindKey:o("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",bindKey:o("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",bindKey:o("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",bindKey:o("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",bindKey:o("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:o("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",bindKey:o("Ctrl-H","Command-Option-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",bindKey:o("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",bindKey:o("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",bindKey:o("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",bindKey:o("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",bindKey:o("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",bindKey:o("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",bindKey:o("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",bindKey:o("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",bindKey:o("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",bindKey:o("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",bindKey:o("Alt-Delete","Ctrl-K"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",bindKey:o("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",bindKey:o("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",bindKey:o("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",bindKey:o("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",bindKey:o("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",bindKey:o("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",exec:function(e,t){e.insert(r.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",bindKey:o(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",bindKey:o("Ctrl-T","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",bindKey:o("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",bindKey:o("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"expandtoline",bindKey:o("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",bindKey:o(null,null),exec:function(e){var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),i=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),o=e.session.doc.getLine(n.row).length,u=e.session.doc.getTextRange(e.selection.getRange()),a=u.replace(/\n\s*/," ").length,f=e.session.doc.getLine(n.row);for(var l=n.row+1;l<=i.row+1;l++){var c=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(l)));c.length!==0&&(c=" "+c),f+=c}i.row+10?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+a)):(o=e.session.doc.getLine(n.row).length>o?o+1:o,e.selection.moveCursorTo(n.row,o))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",bindKey:o(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,r=e.selection.rangeList.ranges,i=[];r.length<1&&(r=[e.selection.getRange()]);for(var o=0;o0&&this.$blockScrolling--;var n=t&&t.scrollIntoView;if(n){switch(n){case"center-animate":n="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var r=this.selection.getRange(),i=this.renderer.layerConfig;(r.start.row>=i.lastRow||r.end.row<=i.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break;default:}n=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(e){if(!this.$mergeUndoDeltas)return;var t=this.prevOp,n=this.$mergeableCommands,r=t.command&&e.command.name==t.command.name;if(e.command.name=="insertstring"){var i=e.args;this.mergeNextCommand===undefined&&(this.mergeNextCommand=!0),r=r&&this.mergeNextCommand&&(!/\s/.test(i)||/\s/.test(t.args)),this.mergeNextCommand=!0}else r=r&&n.indexOf(e.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(r=!1),r?this.session.mergeUndoDeltas=!0:n.indexOf(e.command.name)!==-1&&(this.sequenceStartTime=Date.now())},this.setKeyboardHandler=function(e,t){if(e&&typeof e=="string"){this.$keybindingId=e;var n=this;g.loadModule(["keybinding",e],function(r){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(r&&r.handler),t&&t()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session==e)return;this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){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 n=this.session.getSelection();n.off("changeCursor",this.$onCursorChange),n.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.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=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this})},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?t==1?this.navigateFileEnd():t==-1&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption("fontSize")||i.computedStyle(this.container,"fontSize")},this.setFontSize=function(e){this.setOption("fontSize",e)},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(this.$highlightPending)return;var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(!t||!t.bgTokenizer)return;var n=t.findMatchingBracket(e.getCursorPosition());if(n)var r=new p(n.row,n.column,n.row,n.column+1);else if(t.$mode.getMatching)var r=t.$mode.getMatching(e.session);r&&(t.$bracketHighlight=t.addMarker(r,"ace_bracket","text"))},50)},this.$highlightTags=function(){if(this.$highlightTagPending)return;var e=this;this.$highlightTagPending=!0,setTimeout(function(){e.$highlightTagPending=!1;var t=e.session;if(!t||!t.bgTokenizer)return;var n=e.getCursorPosition(),r=new y(e.session,n.row,n.column),i=r.getCurrentToken();if(!i||!/\b(?:tag-open|tag-name)/.test(i.type)){t.removeMarker(t.$tagHighlight),t.$tagHighlight=null;return}if(i.type.indexOf("tag-open")!=-1){i=r.stepForward();if(!i)return}var s=i.value,o=0,u=r.stepBackward();if(u.value=="<"){do u=i,i=r.stepForward(),i&&i.value===s&&i.type.indexOf("tag-name")!==-1&&(u.value==="<"?o++:u.value==="=0)}else{do i=u,u=r.stepBackward(),i&&i.value===s&&i.type.indexOf("tag-name")!==-1&&(u.value==="<"?o++:u.value==="1)&&(t=!1)}if(e.$highlightLineMarker&&!t)e.removeMarker(e.$highlightLineMarker.id),e.$highlightLineMarker=null;else if(!e.$highlightLineMarker&&t){var n=new p(t.row,t.column,t.row,Infinity);n.id=e.addMarker(n,"ace_active-line","screenLine"),e.$highlightLineMarker=n}else t&&(e.$highlightLineMarker.start.row=t.row,e.$highlightLineMarker.end.row=t.row,e.$highlightLineMarker.start.column=t.column,e._signal("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null;if(!this.selection.isEmpty()){var n=this.selection.getRange(),r=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,"ace_selection",r)}else this.$updateHighlightActiveLine();var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(t.isEmpty()||t.isMultiLine())return;var n=t.start.column-1,r=t.end.column+1,i=e.getLine(t.start.row),s=i.length,o=i.substring(Math.max(n,0),Math.min(r,s));if(n>=0&&/^[\w\d]/.test(o)||r<=s&&/[\w\d]$/.test(o))return;o=i.substring(t.start.column,t.end.column);if(!/^[\w\d]+$/.test(o))return;var u=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:o});return u},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(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText();return this._signal("copy",e),e},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(e,t){var n={text:e,event:t};this.commands.exec("paste",this,n)},this.$handlePaste=function(e){typeof e=="string"&&(e={text:e}),this._signal("paste",e);var t=e.text;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)this.insert(t);else{var n=t.split(/\r\n|\r|\n/),r=this.selection.rangeList.ranges;if(n.length>r.length||n.length<2||!n[1])return this.commands.exec("insertstring",this,t);for(var i=r.length;i--;){var s=r[i];s.isEmpty()||this.session.remove(s),this.session.insert(s.start,n[i])}}},this.execCommand=function(e,t){return this.commands.exec(e,this,t)},this.insert=function(e,t){var n=this.session,r=n.getMode(),i=this.getCursorPosition();if(this.getBehavioursEnabled()&&!t){var s=r.transformAction(n.getState(i.row),"insertion",this,n,e);s&&(e!==s.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),e=s.text)}e==" "&&(e=this.session.getTabString());if(!this.selection.isEmpty()){var o=this.getSelectionRange();i=this.session.remove(o),this.clearSelection()}else if(this.session.getOverwrite()){var o=new p.fromPoints(i,i);o.end.column+=e.length,this.session.remove(o)}if(e=="\n"||e=="\r\n"){var u=n.getLine(i.row);if(i.column>u.search(/\S|$/)){var a=u.substr(i.column).search(/\S|$/);n.doc.removeInLine(i.row,i.column,i.column+a)}}this.clearSelection();var f=i.column,l=n.getState(i.row),u=n.getLine(i.row),c=r.checkOutdent(l,u,e),h=n.insert(i,e);s&&s.selection&&(s.selection.length==2?this.selection.setSelectionRange(new p(i.row,f+s.selection[0],i.row,f+s.selection[1])):this.selection.setSelectionRange(new p(i.row+s.selection[0],s.selection[1],i.row+s.selection[2],s.selection[3])));if(n.getDocument().isNewLine(e)){var d=r.getNextLineIndent(l,u.slice(0,i.column),n.getTabString());n.insert({row:i.row+1,column:0},d)}c&&r.autoOutdent(l,n,i.row)},this.onTextInput=function(e){this.keyBinding.onTextInput(e)},this.onCommandKey=function(e,t,n){this.keyBinding.onCommandKey(e,t,n)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&(e=="left"?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,r=n.getState(t.start.row),i=n.getMode().transformAction(r,"deletion",this,n,t);if(t.end.column===0){var s=n.getTextRange(t);if(s[s.length-1]=="\n"){var o=n.getLine(t.end.row);/^\s+$/.test(o)&&(t.end.column=o.length)}}i&&(t=i)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(!this.selection.isEmpty())return;var e=this.getCursorPosition(),t=e.column;if(t===0)return;var n=this.session.getLine(e.row),r,i;tt.toLowerCase()?1:0});var r=new p(0,0,0,0);for(var i=e.first;i<=e.last;i++){var s=t.getLine(i);r.start.row=i,r.end.row=i,r.end.column=s.length,t.replace(r,n[i-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},this.getNumberAt=function(e,t){var n=/[\-]?[0-9]+(?:\.[0-9]+)?/g;n.lastIndex=0;var r=this.session.getLine(e);while(n.lastIndex=t){var s={value:i[0],start:i.index,end:i.index+i[0].length};return s}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,r=new p(t,n-1,t,n),i=this.session.getTextRange(r);if(!isNaN(parseFloat(i))&&isFinite(i)){var s=this.getNumberAt(t,n);if(s){var o=s.value.indexOf(".")>=0?s.start+s.value.indexOf(".")+1:s.end,u=s.start+s.value.length-o,a=parseFloat(s.value);a*=Math.pow(10,u),o!==s.end&&np+1)break;p=d.last}l--,u=this.session.$moveLines(h,p,t?0:e),t&&e==-1&&(c=l+1);while(c<=l)o[c].moveBy(u,0),c++;t||(u=0),a+=u}i.fromOrientedRange(i.ranges[0]),i.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var n=this.renderer,r=this.renderer.layerConfig,i=e*Math.floor(r.height/r.lineHeight);this.$blockScrolling++,t===!0?this.selection.$moveSelection(function(){this.moveCursorBy(i,0)}):t===!1&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection()),this.$blockScrolling--;var s=n.scrollTop;n.scrollBy(0,i*r.lineHeight),t!=null&&n.scrollCursorIntoView(null,.5),n.animateScrolling(s)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,n,r){this.renderer.scrollToLine(e,t,n,r)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.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.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var n=this.getCursorPosition(),r=new y(this.session,n.row,n.column),i=r.getCurrentToken(),s=i||r.stepForward();if(!s)return;var o,u=!1,a={},f=n.column-s.start,l,c={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(s.value.match(/[{}()\[\]]/g))for(;f=0;--s)this.$tryReplace(n[s],e)&&r++;return this.selection.setSelectionRange(i),this.$blockScrolling-=1,r},this.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return t=this.$search.replace(n,t),t!==null?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,n){t||(t={}),typeof e=="string"||e instanceof RegExp?t.needle=e:typeof e=="object"&&r.mixin(t,e);var i=this.selection.getRange();t.needle==null&&(e=this.session.getTextRange(i)||this.$search.$options.needle,e||(i=this.session.getWordRange(i.start.row,i.start.column),e=this.session.getTextRange(i)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:i});var s=this.$search.find(this.session);if(t.preventScroll)return s;if(s)return this.revealRange(s,n),s;t.backwards?i.start=i.end:i.end=i.start,this.selection.setRange(i)},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.$blockScrolling+=1,this.session.unfold(e),this.selection.setSelectionRange(e),this.$blockScrolling-=1;var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),t!==!1&&this.renderer.animateScrolling(n)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy()},this.setAutoScrollEditorIntoView=function(e){if(!e)return;var t,n=this,r=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var i=this.$scrollAnchor;i.style.cssText="position:absolute",this.container.insertBefore(i,this.container.firstChild);var s=this.on("changeSelection",function(){r=!0}),o=this.renderer.on("beforeRender",function(){r&&(t=n.renderer.container.getBoundingClientRect())}),u=this.renderer.on("afterRender",function(){if(r&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,s=e.$cursorLayer.$pixelPos,o=e.layerConfig,u=s.top-o.offset;s.top>=0&&u+t.top<0?r=!0:s.topwindow.innerHeight?r=!1:r=null,r!=null&&(i.style.top=u+"px",i.style.left=s.left+"px",i.style.height=o.lineHeight+"px",i.scrollIntoView(r)),r=t=null}});this.setAutoScrollEditorIntoView=function(e){if(e)return;delete this.setAutoScrollEditorIntoView,this.off("changeSelection",s),this.renderer.off("afterRender",u),this.renderer.off("beforeRender",o)}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;if(!t)return;t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&e!="wide",i.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e))}}).call(b.prototype),g.defineOptions(b.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.$resetCursorStyle()},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.keybindingId},handlesSet:!0},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",showLineNumbers:"renderer",showGutter:"renderer",displayIndentGuides:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"}),t.Editor=b}),ace.define("ace/undomanager",["require","exports","module"],function(e,t,n){"use strict";var r=function(){this.reset()};(function(){function e(e){return{action:e.action,start:e.start,end:e.end,lines:e.lines.length==1?null:e.lines,text:e.lines.length==1?e.lines[0]:null}}function t(e){return{action:e.action,start:e.start,end:e.end,lines:e.lines||[e.text]}}function n(e,t){var n=new Array(e.length);for(var r=0;r0},this.hasRedo=function(){return this.$redoStack.length>0},this.markClean=function(){this.dirtyCounter=0},this.isClean=function(){return this.dirtyCounter===0},this.$serializeDeltas=function(t){return n(t,e)},this.$deserializeDeltas=function(e){return n(e,t)}}).call(r.prototype),t.UndoManager=r}),ace.define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=e("../lib/oop"),s=e("../lib/lang"),o=e("../lib/event_emitter").EventEmitter,u=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_gutter-layer",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$cells=[]};(function(){i.implement(this,o),this.setSession=function(e){this.session&&this.session.removeEventListener("change",this.$updateAnnotations),this.session=e,e&&e.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(e,t)},this.setAnnotations=function(e){this.$annotations=[];for(var t=0;to&&(v=s.end.row+1,s=t.getNextFoldLine(v,s),o=s?s.start.row:Infinity);if(v>i){while(this.$cells.length>d+1)p=this.$cells.pop(),this.element.removeChild(p.element);break}p=this.$cells[++d],p||(p={element:null,textNode:null,foldWidget:null},p.element=r.createElement("div"),p.textNode=document.createTextNode(""),p.element.appendChild(p.textNode),this.element.appendChild(p.element),this.$cells[d]=p);var m="ace_gutter-cell ";a[v]&&(m+=a[v]),f[v]&&(m+=f[v]),this.$annotations[v]&&(m+=this.$annotations[v].className),p.element.className!=m&&(p.element.className=m);var g=t.getRowLength(v)*e.lineHeight+"px";g!=p.element.style.height&&(p.element.style.height=g);if(u){var y=u[v];y==null&&(y=u[v]=t.getFoldWidget(v))}if(y){p.foldWidget||(p.foldWidget=r.createElement("span"),p.element.appendChild(p.foldWidget));var m="ace_fold-widget ace_"+y;y=="start"&&v==o&&vn.right-t.right)return"foldWidgets"}}).call(u.prototype),t.Gutter=u}),ace.define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../range").Range,i=e("../lib/dom"),s=function(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){function e(e,t,n,r){return(e?1:0)|(t?2:0)|(n?4:0)|(r?8:0)}this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.update=function(e){var e=e||this.config;if(!e)return;this.config=e;var t=[];for(var n in this.markers){var r=this.markers[n];if(!r.range){r.update(t,this,this.session,e);continue}var i=r.range.clipRows(e.firstRow,e.lastRow);if(i.isEmpty())continue;i=i.toScreenRange(this.session);if(r.renderer){var s=this.$getTop(i.start.row,e),o=this.$padding+i.start.column*e.characterWidth;r.renderer(t,i,o,s,e)}else r.type=="fullLine"?this.drawFullLineMarker(t,i,r.clazz,e):r.type=="screenLine"?this.drawScreenLineMarker(t,i,r.clazz,e):i.isMultiLine()?r.type=="text"?this.drawTextMarker(t,i,r.clazz,e):this.drawMultiLineMarker(t,i,r.clazz,e):this.drawSingleLineMarker(t,i,r.clazz+" ace_start"+" ace_br15",e)}this.element.innerHTML=t.join("")},this.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},this.drawTextMarker=function(t,n,i,s,o){var u=this.session,a=n.start.row,f=n.end.row,l=a,c=0,h=0,p=u.getScreenLastRowColumn(l),d=new r(l,n.start.column,l,h);for(;l<=f;l++)d.start.row=d.end.row=l,d.start.column=l==a?n.start.column:u.getRowWrapIndent(l),d.end.column=p,c=h,h=p,p=l+1p,l==f),s,l==f?0:1,o)},this.drawMultiLineMarker=function(e,t,n,r,i){var s=this.$padding,o=r.lineHeight,u=this.$getTop(t.start.row,r),a=s+t.start.column*r.characterWidth;i=i||"",e.push("

"),u=this.$getTop(t.end.row,r);var f=t.end.column*r.characterWidth;e.push("
"),o=(t.end.row-t.start.row-1)*r.lineHeight;if(o<=0)return;u=this.$getTop(t.start.row+1,r);var l=(t.start.column?1:0)|(t.end.column?0:8);e.push("
")},this.drawSingleLineMarker=function(e,t,n,r,i,s){var o=r.lineHeight,u=(t.end.column+(i||0)-t.start.column)*r.characterWidth,a=this.$getTop(t.start.row,r),f=this.$padding+t.start.column*r.characterWidth;e.push("
")},this.drawFullLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;t.start.row!=t.end.row&&(o+=this.$getTop(t.end.row,r)-s),e.push("
")},this.drawScreenLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;e.push("
")}}).call(s.prototype),t.Marker=s}),ace.define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("../lib/useragent"),u=e("../lib/event_emitter").EventEmitter,a=function(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){r.implement(this,u),this.EOF_CHAR="\u00b6",this.EOL_CHAR_LF="\u00ac",this.EOL_CHAR_CRLF="\u00a4",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="\u2014",this.SPACE_CHAR="\u00b7",this.$padding=0,this.$updateEolChar=function(){var e=this.session.doc.getNewLineCharacter()=="\n"?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=e)return this.EOL_CHAR=e,!0},this.setPadding=function(e){this.$padding=e,this.element.style.padding="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,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(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles==e?!1:(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides==e?!1:(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;var t=this.$tabStrings=[0];for(var n=1;n"+s.stringRepeat(this.TAB_CHAR,n)+""):t.push(s.stringRepeat(" ",n));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var r="ace_indent-guide",i="",o="";if(this.showInvisibles){r+=" ace_invisible",i=" ace_invisible_space",o=" ace_invisible_tab";var u=s.stringRepeat(this.SPACE_CHAR,this.tabSize),a=s.stringRepeat(this.TAB_CHAR,this.tabSize)}else var u=s.stringRepeat(" ",this.tabSize),a=u;this.$tabStrings[" "]=""+u+"",this.$tabStrings[" "]=""+a+""}},this.updateLines=function(e,t,n){(this.config.lastRow!=e.lastRow||this.config.firstRow!=e.firstRow)&&this.scrollLines(e),this.config=e;var r=Math.max(t,e.firstRow),i=Math.min(n,e.lastRow),s=this.element.childNodes,o=0;for(var u=e.firstRow;uf&&(u=a.end.row+1,a=this.session.getNextFoldLine(u,a),f=a?a.start.row:Infinity);if(u>i)break;var l=s[o++];if(l){var c=[];this.$renderLine(c,u,!this.$useLineGroups(),u==f?a:!1),l.style.height=e.lineHeight*this.session.getRowLength(u)+"px",l.innerHTML=c.join("")}u++}},this.scrollLines=function(e){var t=this.config;this.config=e;if(!t||t.lastRow0;r--)n.removeChild(n.firstChild);if(t.lastRow>e.lastRow)for(var r=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);r>0;r--)n.removeChild(n.lastChild);if(e.firstRowt.lastRow){var i=this.$renderLinesFragment(e,t.lastRow+1,e.lastRow);n.appendChild(i)}},this.$renderLinesFragment=function(e,t,n){var r=this.element.ownerDocument.createDocumentFragment(),s=t,o=this.session.getNextFoldLine(s),u=o?o.start.row:Infinity;for(;;){s>u&&(s=o.end.row+1,o=this.session.getNextFoldLine(s,o),u=o?o.start.row:Infinity);if(s>n)break;var a=i.createElement("div"),f=[];this.$renderLine(f,s,!1,s==u?o:!1),a.innerHTML=f.join("");if(this.$useLineGroups())a.className="ace_line_group",r.appendChild(a),a.style.height=e.lineHeight*this.session.getRowLength(s)+"px";else while(a.firstChild)r.appendChild(a.firstChild);s++}return r},this.update=function(e){this.config=e;var t=[],n=e.firstRow,r=e.lastRow,i=n,s=this.session.getNextFoldLine(i),o=s?s.start.row:Infinity;for(;;){i>o&&(i=s.end.row+1,s=this.session.getNextFoldLine(i,s),o=s?s.start.row:Infinity);if(i>r)break;this.$useLineGroups()&&t.push("
"),this.$renderLine(t,i,!1,i==o?s:!1),this.$useLineGroups()&&t.push("
"),i++}this.element.innerHTML=t.join("")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,n,r){var i=this,o=/\t|&|<|>|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF\uFFF9-\uFFFC])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\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]/g,u=function(e,n,r,o,u){if(n)return i.showInvisibles?""+s.stringRepeat(i.SPACE_CHAR,e.length)+"":e;if(e=="&")return"&";if(e=="<")return"<";if(e==">")return">";if(e==" "){var a=i.session.getScreenTabSize(t+o);return t+=a-1,i.$tabStrings[a]}if(e=="\u3000"){var f=i.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",l=i.showInvisibles?i.SPACE_CHAR:"";return t+=1,""+l+""}return r?""+i.SPACE_CHAR+"":(t+=1,""+e+"")},a=r.replace(o,u);if(!this.$textToken[n.type]){var f="ace_"+n.type.replace(/\./g," ace_"),l="";n.type=="fold"&&(l=" style='width:"+n.value.length*this.config.characterWidth+"px;' "),e.push("",a,"")}else e.push(a);return t+r.length},this.renderIndentGuide=function(e,t,n){var r=t.search(this.$indentGuideRe);return r<=0||r>=n?t:t[0]==" "?(r-=r%this.tabSize,e.push(s.stringRepeat(this.$tabStrings[" "],r/this.tabSize)),t.substr(r)):t[0]==" "?(e.push(s.stringRepeat(this.$tabStrings[" "],r)),t.substr(r)):t},this.$renderWrappedLine=function(e,t,n,r){var i=0,o=0,u=n[0],a=0;for(var f=0;f=u)a=this.$renderToken(e,a,l,c.substring(0,u-i)),c=c.substring(u-i),i=u,r||e.push("","
"),e.push(s.stringRepeat("\u00a0",n.indent)),o++,a=0,u=n[o]||Number.MAX_VALUE;c.length!=0&&(i+=c.length,a=this.$renderToken(e,a,l,c))}}},this.$renderSimpleLine=function(e,t){var n=0,r=t[0],i=r.value;this.displayIndentGuides&&(i=this.renderIndentGuide(e,i)),i&&(n=this.$renderToken(e,n,r,i));for(var s=1;s");if(i.length){var s=this.session.getRowSplitData(t);s&&s.length?this.$renderWrappedLine(e,i,s,n):this.$renderSimpleLine(e,i)}this.showInvisibles&&(r&&(t=r.end.row),e.push("",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"")),n||e.push("
")},this.$getFoldLineTokens=function(e,t){function i(e,t,n){var i=0,s=0;while(s+e[i].value.lengthn-t&&(o=o.substring(0,n-t)),r.push({type:e[i].type,value:o}),s=t+o.length,i+=1}while(sn?r.push({type:e[i].type,value:o.substring(0,n-s)}):r.push(e[i]),s+=o.length,i+=1}}var n=this.session,r=[],s=n.getTokens(e);return t.walk(function(e,t,o,u,a){e!=null?r.push({type:"fold",value:e}):(a&&(s=n.getTokens(t)),s.length&&i(s,u,o))},t.end.row,this.session.getLine(t.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(a.prototype),t.Text=a}),ace.define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../lib/dom"),i,s=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),i===undefined&&(i=!("opacity"in this.element.style)),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=(i?this.$updateVisibility:this.$updateOpacity).bind(this)};(function(){this.$updateVisibility=function(e){var t=this.cursors;for(var n=t.length;n--;)t[n].style.visibility=e?"":"hidden"},this.$updateOpacity=function(e){var t=this.cursors;for(var n=t.length;n--;)t[n].style.opacity=e?"":"0"},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e!=this.smoothBlinking&&!i&&(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.$updateCursors=this.$updateOpacity.bind(this),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&r.removeCssClass(this.element,"ace_smooth-blinking"),e(!0);if(!this.isBlinking||!this.blinkInterval||!this.isVisible)return;this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e),r=this.$padding+n.column*this.config.characterWidth,i=(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:r,top:i}},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,n=0,r=0;if(t===undefined||t.length===0)t=[{cursor:null}];for(var n=0,i=t.length;ne.height+e.offset||s.top<0)&&n>1)continue;var o=(this.cursors[r++]||this.addCursor()).style;this.drawCursor?this.drawCursor(o,s,e,t[n],this.session):(o.left=s.left+"px",o.top=s.top+"px",o.width=e.characterWidth+"px",o.height=e.lineHeight+"px")}while(this.cursors.length>r)this.removeCursor();var u=this.session.getOverwrite();this.$setOverwrite(u),this.$pixelPos=s,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(s.prototype),t.Cursor=s}),ace.define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/event"),o=e("./lib/event_emitter").EventEmitter,u=function(e){this.element=i.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=i.createElement("div"),this.inner.className="ace_scrollbar-inner",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,s.addListener(this.element,"scroll",this.onScroll.bind(this)),s.addListener(this.element,"mousedown",s.preventDefault)};(function(){r.implement(this,o),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e}}).call(u.prototype);var a=function(e,t){u.call(this,e),this.scrollTop=0,t.$scrollbarWidth=this.width=i.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px"};r.inherits(a,u),function(){this.classSuffix="-v",this.onScroll=function(){this.skipEvent||(this.scrollTop=this.element.scrollTop,this._emit("scroll",{data:this.scrollTop})),this.skipEvent=!1},this.getWidth=function(){return this.isVisible?this.width:0},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=function(e){this.inner.style.height=e+"px"},this.setScrollHeight=function(e){this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=this.element.scrollTop=e)}}.call(a.prototype);var f=function(e,t){u.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};r.inherits(f,u),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(f.prototype),t.ScrollBar=a,t.ScrollBarV=a,t.ScrollBarH=f,t.VScrollBar=a,t.HScrollBar=f}),ace.define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,n){"use strict";var r=e("./lib/event"),i=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.window=t||window};(function(){this.schedule=function(e){this.changes=this.changes|e;if(!this.pending&&this.changes){this.pending=!0;var t=this;r.nextFrame(function(){t.pending=!1;var e;while(e=t.changes)t.changes=0,t.onRender(e)},this.window)}}}).call(i.prototype),t.RenderLoop=i}),ace.define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("../lib/useragent"),u=e("../lib/event_emitter").EventEmitter,a=0,f=t.FontMetrics=function(e){this.el=i.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=i.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=i.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),a||this.$testFractionalRect(),this.$measureNode.innerHTML=s.stringRepeat("X",a),this.$characterSize={width:0,height:0},this.checkForSizeChanges()};(function(){r.implement(this,u),this.$characterSize={width:0,height:0},this.$testFractionalRect=function(){var e=i.createElement("div");this.$setMeasureNodeStyles(e.style),e.style.width="0.2px",document.documentElement.appendChild(e);var t=e.getBoundingClientRect().width;t>0&&t<1?a=50:a=100,e.parentNode.removeChild(e)},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",o.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},this.checkForSizeChanges=function(){var e=this.$measureSizes();if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=setInterval(function(){e.checkForSizeChanges()},500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(){if(a===50){var e=null;try{e=this.$measureNode.getBoundingClientRect()}catch(t){e={width:0,height:0}}var n={height:e.height,width:e.width/a}}else var n={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/a};return n.width===0||n.height===0?null:n},this.$measureCharWidth=function(e){this.$main.innerHTML=s.stringRepeat(e,a);var t=this.$main.getBoundingClientRect();return t.width/a},this.getCharacterWidth=function(e){var t=this.charSizes[e];return t===undefined&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)}}).call(f.prototype)}),ace.define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/lib/useragent","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"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./config"),o=e("./lib/useragent"),u=e("./layer/gutter").Gutter,a=e("./layer/marker").Marker,f=e("./layer/text").Text,l=e("./layer/cursor").Cursor,c=e("./scrollbar").HScrollBar,h=e("./scrollbar").VScrollBar,p=e("./renderloop").RenderLoop,d=e("./layer/font_metrics").FontMetrics,v=e("./lib/event_emitter").EventEmitter,m='.ace_editor {position: relative;overflow: hidden;font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;direction: ltr;}.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;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;min-width: 100%;}.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;}.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 {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 {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;text-indent: -1em;-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: inherit;color: inherit;z-index: 1000;opacity: 1;text-indent: 0;}.ace_layer {z-index: 1;position: absolute;overflow: hidden;word-wrap: normal;white-space: pre;height: 100%;width: 100%;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;}.ace_text-layer {font: inherit !important;}.ace_cjk {display: inline-block;text-align: center;}.ace_cursor-layer {z-index: 4;}.ace_cursor {z-index: 4;position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;border-left: 2px solid;transform: translatez(0);}.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 {-webkit-transition: opacity 0.18s;transition: opacity 0.18s;}.ace_editor.ace_multiselect .ace_cursor {border-left-width: 1px;}.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;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;}.ace_line .ace_fold {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;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: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));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;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;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 {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;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_fold-widget.ace_invalid {background-color: #FFB4B4;border-color: #DE5555;}.ace_fade-fold-widgets .ace_fold-widget {-webkit-transition: opacity 0.4s ease 0.05s;transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {-webkit-transition: opacity 0.05s ease 0.05s;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;}.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;}';i.importCssString(m,"ace_editor.css");var g=function(e,t){var n=this;this.container=e||i.createElement("div"),this.$keepTextAreaAtCursor=!o.isOldIE,i.addCssClass(this.container,"ace_editor"),this.setTheme(t),this.$gutter=i.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=i.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=i.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new u(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new a(this.content);var r=this.$textLayer=new f(this.content);this.canvas=r.element,this.$markerFront=new a(this.content),this.$cursorLayer=new l(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new h(this.container,this),this.scrollBarH=new c(this.container,this),this.scrollBarV.addEventListener("scroll",function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new d(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.addEventListener("changeCharacterSize",function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal("changeCharacterSize",e)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},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.$loop=new p(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),s.resetOptions(this),s._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,r.implement(this,v),this.updateCharacterSize=function(){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(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e);if(!e)return;this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode)},this.updateLines=function(e,t,n){t===undefined&&(t=Infinity),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow)return;this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar()},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(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,n,r){if(this.resizing>2)return;this.resizing>0?this.resizing++:this.resizing=e?1:0;var i=this.container;r||(r=i.clientHeight||i.scrollHeight),n||(n=i.clientWidth||i.scrollWidth);var s=this.$updateCachedSize(e,t,n,r);if(!this.$size.scrollerHeight||!n&&!r)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(s|this.$changes,!0):this.$loop.schedule(s|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null},this.$updateCachedSize=function(e,t,n,r){r-=this.$extraHeight||0;var i=0,s=this.$size,o={width:s.width,height:s.height,scrollerHeight:s.scrollerHeight,scrollerWidth:s.scrollerWidth};r&&(e||s.height!=r)&&(s.height=r,i|=this.CHANGE_SIZE,s.scrollerHeight=s.height,this.$horizScroll&&(s.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",i|=this.CHANGE_SCROLL);if(n&&(e||s.width!=n)){i|=this.CHANGE_SIZE,s.width=n,t==null&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,this.scrollBarH.element.style.left=this.scroller.style.left=t+"px",s.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()),this.scrollBarH.element.style.right=this.scroller.style.right=this.scrollBarV.getWidth()+"px",this.scroller.style.bottom=this.scrollBarH.getHeight()+"px";if(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)i|=this.CHANGE_FULL}return s.$dirty=!n||!r,i&&this._signal("resize",o),i},this.onGutterResize=function(){var e=this.$showGutter?this.$gutter.offsetWidth:0;e!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,e,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):(this.$computeLayerConfig(),this.$loop.schedule(this.CHANGE_MARKER))},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-this.$padding*2,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption("showInvisibles",e)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},this.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(e){return this.setOption("showGutter",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updateGutterLineHighlight=function(){var e=this.$cursorLayer.$pixelPos,t=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var n=this.session.selection.getCursor();n.column=0,e=this.$cursorLayer.getPixelPosition(n,!0),t*=this.session.getRowLength(n.row)}this.$gutterLineHighlight.style.top=e.top-this.layerConfig.offset+"px",this.$gutterLineHighlight.style.height=t+"px"},this.$updatePrintMargin=function(){if(!this.$showPrintMargin&&!this.$printMarginEl)return;if(!this.$printMarginEl){var e=i.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=i.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=this.characterWidth*this.$printMarginColumn+this.$padding+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",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(){if(!this.$keepTextAreaAtCursor)return;var e=this.layerConfig,t=this.$cursorLayer.$pixelPos.top,n=this.$cursorLayer.$pixelPos.left;t-=e.offset;var r=this.textarea.style,i=this.lineHeight;if(t<0||t>e.height-i){r.top=r.left="0";return}var s=this.characterWidth;if(this.$composition){var o=this.textarea.value.replace(/^\x01+/,"");s*=this.session.$getStringScreenWidth(o)[0]+2,i+=2}n-=this.scrollLeft,n>this.$size.scrollerWidth-s&&(n=this.$size.scrollerWidth-s),n+=this.gutterWidth,r.height=i+"px",r.width=s+"px",r.left=Math.min(n,this.$size.scrollerWidth-s)+"px",r.top=Math.min(t,this.$size.height-i)+"px"},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},this.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow,n=this.session.documentToScreenRow(t,0)*e.lineHeight;return n-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,n,r){var i=this.scrollMargin;i.top=e|0,i.bottom=t|0,i.right=r|0,i.left=n|0,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-i.top),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+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=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){this.$changes&&(e|=this.$changes,this.$changes=0);if(!this.session||!this.container.offsetWidth||this.$frozen||!e&&!t){this.$changes|=e;return}if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender");var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){e|=this.$computeLayerConfig();if(n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var r=this.scrollTop+(n.firstRow-this.layerConfig.firstRow)*this.lineHeight;r>0&&(this.scrollTop=r,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),this.$gutterLayer.element.style.marginTop=-n.offset+"px",this.content.style.marginTop=-n.offset+"px",this.content.style.width=n.width+2*this.$padding+"px",this.content.style.height=n.minHeight+"px"}e&this.CHANGE_H_SCROLL&&(this.content.style.marginLeft=-this.scrollLeft+"px",this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left");if(e&this.CHANGE_FULL){this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this._signal("afterRender");return}if(e&this.CHANGE_SCROLL){e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&this.$gutterLayer.update(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),this._signal("afterRender");return}e&this.CHANGE_TEXT?(this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n):(e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(n),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal("afterRender")},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(n+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&n>this.$maxPixelHeight&&(n=this.$maxPixelHeight);var r=e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||r!=this.$vScroll){r!=this.$vScroll&&(this.$vScroll=r,this.scrollBarV.setVisible(r));var i=this.container.clientWidth;this.container.style.height=n+"px",this.$updateCachedSize(!0,this.$gutterWidth,i,n),this.desiredHeight=n,this._signal("autosize")}},this.$computeLayerConfig=function(){var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,r=this.session.getScreenLength(),i=r*this.lineHeight,s=this.$getLongestLine(),o=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-s-2*this.$padding<0),u=this.$horizScroll!==o;u&&(this.$horizScroll=o,this.scrollBarH.setVisible(o));var a=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var f=this.scrollTop%this.lineHeight,l=t.scrollerHeight+this.lineHeight,c=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;i+=c;var h=this.scrollMargin;this.session.setScrollTop(Math.max(-h.top,Math.min(this.scrollTop,i-t.scrollerHeight+h.bottom))),this.session.setScrollLeft(Math.max(-h.left,Math.min(this.scrollLeft,s+2*this.$padding-t.scrollerWidth+h.right)));var p=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-i+c<0||this.scrollTop>h.top),d=a!==p;d&&(this.$vScroll=p,this.scrollBarV.setVisible(p));var v=Math.ceil(l/this.lineHeight)-1,m=Math.max(0,Math.round((this.scrollTop-f)/this.lineHeight)),g=m+v,y,b,w=this.lineHeight;m=e.screenToDocumentRow(m,0);var E=e.getFoldLine(m);E&&(m=E.start.row),y=e.documentToScreenRow(m,0),b=e.getRowLength(m)*w,g=Math.min(e.screenToDocumentRow(g,0),e.getLength()-1),l=t.scrollerHeight+e.getRowLength(g)*w+b,f=this.scrollTop-y*w;var S=0;this.layerConfig.width!=s&&(S=this.CHANGE_H_SCROLL);if(u||d)S=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),d&&(s=this.$getLongestLine());return this.layerConfig={width:s,padding:this.$padding,firstRow:m,firstRowScreen:y,lastRow:g,lineHeight:w,characterWidth:this.characterWidth,minHeight:l,maxHeight:i,offset:f,gutterOffset:Math.max(0,Math.ceil((f+t.height-t.scrollerHeight)/w)),height:this.$size.scrollerHeight},S},this.$updateLines=function(){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(e>n.lastRow+1)return;if(ts?(t&&a+o>s+this.lineHeight&&(s-=t*this.$size.scrollerHeight),s===0&&(s=-this.scrollMargin.top),this.session.setScrollTop(s)):a+this.$size.scrollerHeight-ui?(i=1-this.scrollMargin.top)return!0;if(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom)return!0;if(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left)return!0;if(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},this.pixelToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=(e+this.scrollLeft-n.left-this.$padding)/this.characterWidth,i=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),s=Math.round(r);return{row:i,column:s,side:r-s>0?1:-1}},this.screenToTextCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=Math.round((e+this.scrollLeft-n.left-this.$padding)/this.characterWidth),i=(t+this.scrollTop-n.top)/this.lineHeight;return this.session.screenToDocumentPosition(i,Math.max(r,0))},this.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=this.session.documentToScreenPosition(e,t),i=this.$padding+Math.round(r.column*this.characterWidth),s=r.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+s-this.scrollTop}},this.visualizeFocus=function(){i.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){i.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,i.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(e){this.$moveTextAreaToCursor()},this.hideComposition=function(){if(!this.$composition)return;i.removeCssClass(this.textarea,"ace_composition"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null},this.setTheme=function(e,t){function o(r){if(n.$themeId!=e)return t&&t();if(!r.cssClass)return;i.importCssString(r.cssText,r.cssClass,n.container.ownerDocument),n.theme&&i.removeCssClass(n.container,n.theme.cssClass);var s="padding"in r?r.padding:"padding"in(n.theme||{})?4:n.$padding;n.$padding&&s!=n.$padding&&n.setPadding(s),n.$theme=r.cssClass,n.theme=r,i.addCssClass(n.container,r.cssClass),i.setCssClass(n.container,"ace_dark",r.isDark),n.$size&&(n.$size.width=0,n.$updateSizeAsync()),n._dispatchEvent("themeLoaded",{theme:r}),t&&t()}var n=this;this.$themeId=e,n._dispatchEvent("themeChange",{theme:e});if(!e||typeof e=="string"){var r=e||this.$options.theme.initialValue;s.loadModule(["theme",r],o)}else o(e)},this.getTheme=function(){return this.$themeId},this.setStyle=function(e,t){i.setCssClass(this.container,e,t!==!1)},this.unsetStyle=function(e){i.removeCssClass(this.container,e)},this.setCursorStyle=function(e){this.scroller.style.cursor!=e&&(this.scroller.style.cursor=e)},this.setMouseCursor=function(e){this.scroller.style.cursor=e},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(g.prototype),s.defineOptions(g.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){typeof e=="number"&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(e){i.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e)},initialValue:!0},showLineNumbers:{set:function(e){this.$gutterLayer.setShowLineNumbers(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(e){if(!this.$gutterLineHighlight){this.$gutterLineHighlight=i.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",this.$gutter.appendChild(this.$gutterLineHighlight);return}this.$gutterLineHighlight.style.display=e?"":"none",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(e){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){typeof e=="number"&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0;if(this.$scrollPastEnd==e)return;this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0}}),t.VirtualRenderer=g}),ace.define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/net"),s=e("../lib/event_emitter").EventEmitter,o=e("../config"),u=function(t,n,r,i){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl);if(o.get("packaged")||!e.toUrl)i=i||o.moduleUrl(n,"worker");else{var s=this.$normalizePath;i=i||s(e.toUrl("ace/worker/worker.js",null,"_"));var u={};t.forEach(function(t){u[t]=s(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}try{this.$worker=new Worker(i)}catch(a){if(!(a instanceof window.DOMException))throw a;var f=this.$workerBlob(i),l=window.URL||window.webkitURL,c=l.createObjectURL(f);this.$worker=new Worker(c),l.revokeObjectURL(c)}this.$worker.postMessage({init:!0,tlns:u,module:n,classname:r}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){r.implement(this,s),this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return i.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var r=this.callbackId++;this.callbacks[r]=n,t.push(r)}this.send(e,t)},this.emit=function(e,t){try{this.$worker.postMessage({event:e,data:{data:t.data}})}catch(n){console.error(n.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),e.action=="insert"?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;if(!e)return;this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e})},this.$workerBlob=function(e){var t="importScripts('"+i.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(n){var r=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,s=new r;return s.append(t),s.getBlob("application/javascript")}}}).call(u.prototype);var a=function(e,t,n){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var r=null,i=!1,u=Object.create(s),a=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){a.messageBuffer.push(e),r&&(i?setTimeout(f):f())},this.setEmitSync=function(e){i=e};var f=function(){var e=a.messageBuffer.shift();e.command?r[e.command].apply(r,e.args):e.event&&u._signal(e.event,e.data)};u.postMessage=function(e){a.onMessage({data:e})},u.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},u.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},o.loadModule(["worker",t],function(e){r=new e[n](u);while(a.messageBuffer.length)f()})};a.prototype=u.prototype,t.UIWorkerClient=a,t.WorkerClient=u}),ace.define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,n){"use strict";var r=e("./range").Range,i=e("./lib/event_emitter").EventEmitter,s=e("./lib/oop"),o=function(e,t,n,r,i,s){var o=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=s,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=r,this.$onCursorChange=function(){setTimeout(function(){o.onCursorChange()})},this.$pos=n;var u=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=u.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){s.implement(this,i),this.setup=function(){var e=this,t=this.doc,n=this.session;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var i=this.pos;i.$insertRight=!0,i.detach(),i.markerId=n.addMarker(new r(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(n){var r=t.createAnchor(n.row,n.column);r.$insertRight=!0,r.detach(),e.others.push(r)}),n.setUndoSelect(!1)},this.showOtherMarkers=function(){if(this.othersActive)return;var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(n){n.markerId=e.addMarker(new r(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1)})},this.hideOtherMarkers=function(){if(!this.othersActive)return;this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,s=t.start.column-this.pos.column;this.updateAnchors(e),i&&(this.length+=n);if(i&&!this.session.$fromUndo)if(e.action==="insert")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.insertMergedLines(a,e.lines)}else if(e.action==="remove")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.remove(new r(a.row,a.column,a.row,a.column-n))}this.$updating=!1,this.updateMarkers()},this.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},this.updateMarkers=function(){if(this.$updating)return;var e=this,t=this.session,n=function(n,i){t.removeMarker(n.markerId),n.markerId=t.addMarker(new r(n.row,n.column,n.row,n.column+e.length),i,null,!1)};n(this.pos,this.mainClass);for(var i=this.others.length;i--;)n(this.others[i],this.othersClass)},this.onCursorChange=function(e){if(this.$updating||!this.session)return;var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))},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(!0),this.session=null},this.cancel=function(){if(this.$undoStackDepth===-1)return;var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth;for(var n=0;n1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length?this.$onRemoveRange(e):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){this.rangeCount=this.rangeList.ranges.length;if(this.rangeCount==1&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var r=this.ranges.indexOf(e[n]);this.ranges.splice(r,1)}this._signal("removeRange",{ranges:e}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),t=t||this.ranges[0],t&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){if(this.rangeList)return;this.rangeList=new r,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 e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var n=this.getRange(),r=this.isBackwards(),s=n.start.row,o=n.end.row;if(s==o){if(r)var u=n.end,a=n.start;else var u=n.start,a=n.end;this.addRange(i.fromPoints(a,a)),this.addRange(i.fromPoints(u,u));return}var f=[],l=this.getLineRange(s,!0);l.start.column=n.start.column,f.push(l);for(var c=s+1;c1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var r=this.session.documentToScreenPosition(this.selectionLead),s=this.session.documentToScreenPosition(this.selectionAnchor),o=this.rectangularRangeBlock(r,s);o.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var r=[],s=e.column0)d--;if(d>0){var m=0;while(r[m].isEmpty())m++}for(var g=d;g>=m;g--)r[g].isEmpty()&&r.splice(g,1)}return r}}.call(s.prototype);var d=e("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(!e.marker)return;this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);t!=-1&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length},this.removeSelectionMarkers=function(e){var t=this.session.$selectionMarkers;for(var n=e.length;n--;){var r=e[n];if(!r.marker)continue;this.session.removeMarker(r.marker);var i=t.indexOf(r);i!=-1&&t.splice(i,1)}this.session.selectionMarkerCount=t.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=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(f.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=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(f.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection")},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(!n.multiSelect)return;if(!t.multiSelectAction){var r=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}else t.multiSelectAction=="forEach"?r=n.forEachSelection(t,e.args):t.multiSelectAction=="forEachLine"?r=n.forEachSelection(t,e.args,!0):t.multiSelectAction=="single"?(n.exitMultiSelectMode(),r=t.exec(n,e.args||{})):r=t.multiSelectAction(n,e.args||{});return r},this.forEachSelection=function(e,t,n){if(this.inVirtualSelectionMode)return;var r=n&&n.keepOrder,i=n==1||n&&n.$byLines,o=this.session,u=this.selection,a=u.rangeList,f=(r?u:a).ranges,l;if(!f.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var c=u._eventRegistry;u._eventRegistry={};var h=new s(o);this.inVirtualSelectionMode=!0;for(var p=f.length;p--;){if(i)while(p>0&&f[p].start.row==f[p-1].end.row)p--;h.fromOrientedRange(f[p]),h.index=p,this.selection=o.selection=h;var d=e.exec?e.exec(this,t||{}):e(this,t||{});!l&&d!==undefined&&(l=d),h.toOrientedRange(f[p])}h.detach(),this.selection=o.selection=u,this.inVirtualSelectionMode=!1,u._eventRegistry=c,u.mergeOverlappingRanges();var v=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),v&&v.from==v.to&&this.renderer.animateScrolling(v.from),l},this.exitMultiSelectMode=function(){if(!this.inMultiSelectMode||this.inVirtualSelectionMode)return;this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var t=this.multiSelect.rangeList.ranges,n=[];for(var r=0;r0);u<0&&(u=0),f>=c&&(f=c-1)}var p=this.session.removeFullLines(u,f);p=this.$reAlignText(p,l),this.session.insert({row:u,column:0},p.join("\n")+"\n"),l||(o.start.column=0,o.end.column=p[p.length-1].length),this.selection.setRange(o)}else{s.forEach(function(e){t.substractPoint(e.cursor)});var d=0,v=Infinity,m=n.map(function(t){var n=t.cursor,r=e.getLine(n.row),i=r.substr(n.column).search(/\S/g);return i==-1&&(i=0),n.column>d&&(d=n.column),io?e.insert(r,a.stringRepeat(" ",s-o)):e.remove(new i(r.row,r.column,r.row,r.column-s+o)),t.start.column=t.end.column=d,t.start.row=t.end.row=r.row,t.cursor=t.end}),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(e,t){function u(e){return a.stringRepeat(" ",e)}function f(e){return e[2]?u(i)+e[2]+u(s-e[2].length+o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function l(e){return e[2]?u(i+s-e[2].length)+e[2]+u(o," ")+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function c(e){return e[2]?u(i)+e[2]+u(o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var n=!0,r=!0,i,s,o;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?i==null?(i=t[1].length,s=t[2].length,o=t[3].length,t):(i+s+o!=t[1].length+t[2].length+t[3].length&&(r=!1),i!=t[1].length&&(n=!1),i>t[1].length&&(i=t[1].length),st[3].length&&(o=t[3].length),t):[e]}).map(t?f:n?r?l:f:c)}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off("addRange",this.$onAddRange),n.multiSelect.off("removeRange",this.$onRemoveRange),n.multiSelect.off("multiSelect",this.$onMultiSelect),n.multiSelect.off("singleSelect",this.$onSingleSelect),n.multiSelect.lead.off("change",this.$checkMultiselectChange),n.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=m,e("./config").defineOptions(d.prototype,"editor",{enableMultiselect:{set:function(e){m(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",o)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",o))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})}),ace.define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../../range").Range,i=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?"start":t=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(r)?"end":""},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var i=/\S/,s=e.getLine(t),o=s.search(i);if(o==-1)return;var u=n||s.length,a=e.getLength(),f=t,l=t;while(++tf){var h=e.getLine(l).length;return new r(f,u,l,h)}},this.openingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i+1},u=e.$findClosingBracket(t,o,s);if(!u)return;var a=e.foldWidgets[u.row];return a==null&&(a=e.getFoldWidget(u.row)),a=="start"&&u.row>o.row&&(u.row--,u.column=e.getLine(u.row).length),r.fromPoints(o,u)},this.closingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i},u=e.$findOpeningBracket(t,o);if(!u)return;return u.column++,o.column--,r.fromPoints(u,o)}}).call(i.prototype)}),ace.define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.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;}';var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}),ace.define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],function(e,t,n){"use strict";function o(e){this.session=e,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)}var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./range").Range;(function(){this.getRowLength=function(e){var t;return this.lineWidgets?t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0:t=0,!this.$useWrapMode||!this.$wrapData[e]?1+t:this.$wrapData[e].length+1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach(function(t){t&&t.rowCount&&!t.hidden&&(e+=t.rowCount)}),e},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach();if(this.editor==e)return;this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on("beforeRender",this.measureWidgets),e.renderer.on("afterRender",this.renderWidgets))},this.detach=function(e){var t=this.editor;if(!t)return;this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var n=this.session.lineWidgets;n&&n.forEach(function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))})},this.updateOnFold=function(e,t){var n=t.lineWidgets;if(!n||!e.action)return;var r=e.data,i=r.start.row,s=r.end.row,o=e.action=="add";for(var u=i+1;u0&&!r[i])i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var o=i;o<=s;o++){var u=r[o];if(!u||!u.el)continue;if(u.hidden){u.el.style.top=-100-(u.pixelHeight||0)+"px";continue}u._inDocument||(u._inDocument=!0,t.container.appendChild(u.el));var a=t.$cursorLayer.getPixelPosition({row:o,column:0},!0).top;u.coverLine||(a+=n.lineHeight*this.session.getRowLineCount(u.row)),u.el.style.top=a-n.offset+"px";var f=u.coverGutter?0:t.gutterWidth;u.fixedWidth||(f-=t.scrollLeft),u.el.style.left=f+"px",u.fullWidth&&u.screenWidth&&(u.el.style.minWidth=n.width+2*n.padding+"px"),u.fixedWidth?u.el.style.right=t.scrollBar.getWidth()+"px":u.el.style.right=""}}}).call(o.prototype),t.LineWidgets=o}),ace.define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(e,t,n){"use strict";function o(e,t,n){var r=0,i=e.length-1;while(r<=i){var s=r+i>>1,o=n(t,e[s]);if(o>0)r=s+1;else{if(!(o<0))return s;i=s-1}}return-(r+1)}function u(e,t,n){var r=e.getAnnotations().sort(s.comparePoints);if(!r.length)return;var i=o(r,{row:t,column:-1},s.comparePoints);i<0&&(i=-i-1),i>=r.length?i=n>0?0:r.length-1:i===0&&n<0&&(i=r.length-1);var u=r[i];if(!u||!n)return;if(u.row===t){do u=r[i+=n];while(u&&u.row===t);if(!u)return r.slice()}var a=[];t=u.row;do a[n<0?"unshift":"push"](u),u=r[i+=n];while(u&&u.row==t);return a.length&&a}var r=e("../line_widgets").LineWidgets,i=e("../lib/dom"),s=e("../range").Range;t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new r(n),n.widgetManager.attach(e));var s=e.getCursorPosition(),o=s.row,a=n.widgetManager.getWidgetsAtRow(o).filter(function(e){return e.type=="errorMarker"})[0];a?a.destroy():o-=t;var f=u(n,o,t),l;if(f){var c=f[0];s.column=(c.pos&&typeof c.column!="number"?c.pos.sc:c.column)||0,s.row=c.row,l=e.renderer.$gutterLayer.$annotations[s.row]}else{if(a)return;l={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(s.row),e.selection.moveToPosition(s);var h={row:s.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div"),type:"errorMarker"},p=h.el.appendChild(i.createElement("div")),d=h.el.appendChild(i.createElement("div"));d.className="error_widget_arrow "+l.className;var v=e.renderer.$cursorLayer.getPixelPosition(s).left;d.style.left=v+e.renderer.gutterWidth-5+"px",h.el.className="error_widget_wrapper",p.className="error_widget "+l.className,p.innerHTML=l.text.join("
"),p.appendChild(i.createElement("div"));var m=function(e,t,n){if(t===0&&(n==="esc"||n==="return"))return h.destroy(),{command:"null"}};h.destroy=function(){if(e.$mouseHandler.isMousePressed)return;e.keyBinding.removeKeyboardHandler(m),n.widgetManager.removeLineWidget(h),e.off("changeSelection",h.destroy),e.off("changeSession",h.destroy),e.off("mouseup",h.destroy),e.off("change",h.destroy)},e.keyBinding.addKeyboardHandler(m),e.on("changeSelection",h.destroy),e.on("changeSession",h.destroy),e.on("mouseup",h.destroy),e.on("change",h.destroy),e.session.widgetManager.addLineWidget(h),h.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:h.el.offsetHeight})},i.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; }","")}),ace.define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","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(e,t,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/dom"),i=e("./lib/event"),s=e("./editor").Editor,o=e("./edit_session").EditSession,u=e("./undomanager").UndoManager,a=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.require=e,t.edit=function(e){if(typeof e=="string"){var n=e;e=document.getElementById(n);if(!e)throw new Error("ace.edit can't find div #"+n)}if(e&&e.env&&e.env.editor instanceof s)return e.env.editor;var o="";if(e&&/input|textarea/i.test(e.tagName)){var u=e;o=u.value,e=r.createElement("pre"),u.parentNode.replaceChild(e,u)}else e&&(o=r.getInnerText(e),e.innerHTML="");var f=t.createEditSession(o),l=new s(new a(e));l.setSession(f);var c={document:f,editor:l,onResize:l.resize.bind(l,null)};return u&&(c.textarea=u),i.addListener(window,"resize",c.onResize),l.on("destroy",function(){i.removeListener(window,"resize",c.onResize),c.editor.container.env=null}),l.container.env=l.env=c,l},t.createEditSession=function(e,t){var n=new o(e,t);return n.setUndoManager(new u),n},t.EditSession=o,t.UndoManager=u,t.version="1.2.3"}); + (function() { + ace.require(["ace/ace"], function(a) { + a && a.config.init(true); + if (!window.ace) + window.ace = a; + for (var key in a) if (a.hasOwnProperty(key)) + window.ace[key] = a[key]; + }); + })(); + \ No newline at end of file diff --git a/OpenAuth.Mvc/Scripts/ext-searchbox.js b/OpenAuth.Mvc/Scripts/ext-searchbox.js new file mode 100644 index 00000000..e677a051 --- /dev/null +++ b/OpenAuth.Mvc/Scripts/ext-searchbox.js @@ -0,0 +1,5 @@ +ace.define("ace/ext/searchbox",["require","exports","module","ace/lib/dom","ace/lib/lang","ace/lib/event","ace/keyboard/hash_handler","ace/lib/keys"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=e("../lib/lang"),s=e("../lib/event"),o=".ace_search {background-color: #ddd;border: 1px solid #cbcbcb;border-top: 0 none;max-width: 325px;overflow: hidden;margin: 0;padding: 4px;padding-right: 6px;padding-bottom: 0;position: absolute;top: 0px;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 {border-radius: 3px;border: 1px solid #cbcbcb;float: left;margin-bottom: 4px;overflow: hidden;}.ace_search_form.ace_nomatch {outline: 1px solid red;}.ace_search_field {background-color: white;border-right: 1px solid #cbcbcb;border: 0 none;-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;float: left;height: 22px;outline: 0;padding: 0 7px;width: 214px;margin: 0;}.ace_searchbtn,.ace_replacebtn {background: #fff;border: 0 none;border-left: 1px solid #dcdcdc;cursor: pointer;float: left;height: 22px;margin: 0;position: relative;}.ace_searchbtn:last-child,.ace_replacebtn:last-child {border-top-right-radius: 3px;border-bottom-right-radius: 3px;}.ace_searchbtn:disabled {background: none;cursor: default;}.ace_searchbtn {background-position: 50% 50%;background-repeat: no-repeat;width: 27px;}.ace_searchbtn.prev {background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADFJREFUeNpiSU1NZUAC/6E0I0yACYskCpsJiySKIiY0SUZk40FyTEgCjGgKwTRAgAEAQJUIPCE+qfkAAAAASUVORK5CYII=); }.ace_searchbtn.next {background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAFCAYAAAB4ka1VAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAADRJREFUeNpiTE1NZQCC/0DMyIAKwGJMUAYDEo3M/s+EpvM/mkKwCQxYjIeLMaELoLMBAgwAU7UJObTKsvAAAAAASUVORK5CYII=); }.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;float: right;font: 16px/16px Arial;height: 14px;margin: 5px 1px 9px 5px;padding: 0;text-align: center;width: 14px;}.ace_searchbtn_close:hover {background-color: #656565;background-position: 50% 100%;color: white;}.ace_replacebtn.prev {width: 54px}.ace_replacebtn.next {width: 27px}.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;-moz-box-sizing: border-box;box-sizing: border-box;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;}",u=e("../keyboard/hash_handler").HashHandler,a=e("../lib/keys");r.importCssString(o,"ace_searchbox");var f=''.replace(/>\s+/g,">"),l=function(e,t,n){var i=r.createElement("div");i.innerHTML=f,this.element=i.firstChild,this.$init(),this.setEditor(e)};(function(){this.setEditor=function(e){e.searchBox=this,e.container.appendChild(this.element),this.editor=e},this.$initElements=function(e){this.searchBox=e.querySelector(".ace_search_form"),this.replaceBox=e.querySelector(".ace_replace_form"),this.searchOptions=e.querySelector(".ace_search_options"),this.regExpOption=e.querySelector("[action=toggleRegexpMode]"),this.caseSensitiveOption=e.querySelector("[action=toggleCaseSensitive]"),this.wholeWordOption=e.querySelector("[action=toggleWholeWords]"),this.searchInput=this.searchBox.querySelector(".ace_search_field"),this.replaceInput=this.replaceBox.querySelector(".ace_search_field")},this.$init=function(){var e=this.element;this.$initElements(e);var t=this;s.addListener(e,"mousedown",function(e){setTimeout(function(){t.activeInput.focus()},0),s.stopPropagation(e)}),s.addListener(e,"click",function(e){var n=e.target||e.srcElement,r=n.getAttribute("action");r&&t[r]?t[r]():t.$searchBarKb.commands[r]&&t.$searchBarKb.commands[r].exec(t),s.stopPropagation(e)}),s.addCommandKeyListener(e,function(e,n,r){var i=a.keyCodeToString(r),o=t.$searchBarKb.findKeyCommand(n,i);o&&o.exec&&(o.exec(t),s.stopEvent(e))}),this.$onChange=i.delayedCall(function(){t.find(!1,!1)}),s.addListener(this.searchInput,"input",function(){t.$onChange.schedule(20)}),s.addListener(this.searchInput,"focus",function(){t.activeInput=t.searchInput,t.searchInput.value&&t.highlight()}),s.addListener(this.replaceInput,"focus",function(){t.activeInput=t.replaceInput,t.searchInput.value&&t.highlight()})},this.$closeSearchBarKb=new u([{bindKey:"Esc",name:"closeSearchBar",exec:function(e){e.searchBox.hide()}}]),this.$searchBarKb=new u,this.$searchBarKb.bindKeys({"Ctrl-f|Command-f":function(e){var t=e.isReplace=!e.isReplace;e.replaceBox.style.display=t?"":"none",e.searchInput.focus()},"Ctrl-H|Command-Option-F":function(e){e.replaceBox.style.display="",e.replaceInput.focus()},"Ctrl-G|Command-G":function(e){e.findNext()},"Ctrl-Shift-G|Command-Shift-G":function(e){e.findPrev()},esc:function(e){setTimeout(function(){e.hide()})},Return:function(e){e.activeInput==e.replaceInput&&e.replace(),e.findNext()},"Shift-Return":function(e){e.activeInput==e.replaceInput&&e.replace(),e.findPrev()},"Alt-Return":function(e){e.activeInput==e.replaceInput&&e.replaceAll(),e.findAll()},Tab:function(e){(e.activeInput==e.replaceInput?e.searchInput:e.replaceInput).focus()}}),this.$searchBarKb.addCommands([{name:"toggleRegexpMode",bindKey:{win:"Alt-R|Alt-/",mac:"Ctrl-Alt-R|Ctrl-Alt-/"},exec:function(e){e.regExpOption.checked=!e.regExpOption.checked,e.$syncOptions()}},{name:"toggleCaseSensitive",bindKey:{win:"Alt-C|Alt-I",mac:"Ctrl-Alt-R|Ctrl-Alt-I"},exec:function(e){e.caseSensitiveOption.checked=!e.caseSensitiveOption.checked,e.$syncOptions()}},{name:"toggleWholeWords",bindKey:{win:"Alt-B|Alt-W",mac:"Ctrl-Alt-B|Ctrl-Alt-W"},exec:function(e){e.wholeWordOption.checked=!e.wholeWordOption.checked,e.$syncOptions()}}]),this.$syncOptions=function(){r.setCssClass(this.regExpOption,"checked",this.regExpOption.checked),r.setCssClass(this.wholeWordOption,"checked",this.wholeWordOption.checked),r.setCssClass(this.caseSensitiveOption,"checked",this.caseSensitiveOption.checked),this.find(!1,!1)},this.highlight=function(e){this.editor.session.highlight(e||this.editor.$search.$options.re),this.editor.renderer.updateBackMarkers()},this.find=function(e,t,n){var i=this.editor.find(this.searchInput.value,{skipCurrent:e,backwards:t,wrap:!0,regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked,preventScroll:n}),s=!i&&this.searchInput.value;r.setCssClass(this.searchBox,"ace_nomatch",s),this.editor._emit("findSearchBox",{match:!s}),this.highlight()},this.findNext=function(){this.find(!0,!1)},this.findPrev=function(){this.find(!0,!0)},this.findAll=function(){var e=this.editor.findAll(this.searchInput.value,{regExp:this.regExpOption.checked,caseSensitive:this.caseSensitiveOption.checked,wholeWord:this.wholeWordOption.checked}),t=!e&&this.searchInput.value;r.setCssClass(this.searchBox,"ace_nomatch",t),this.editor._emit("findSearchBox",{match:!t}),this.highlight(),this.hide()},this.replace=function(){this.editor.getReadOnly()||this.editor.replace(this.replaceInput.value)},this.replaceAndFindNext=function(){this.editor.getReadOnly()||(this.editor.replace(this.replaceInput.value),this.findNext())},this.replaceAll=function(){this.editor.getReadOnly()||this.editor.replaceAll(this.replaceInput.value)},this.hide=function(){this.element.style.display="none",this.editor.keyBinding.removeKeyboardHandler(this.$closeSearchBarKb),this.editor.focus()},this.show=function(e,t){this.element.style.display="",this.replaceBox.style.display=t?"":"none",this.isReplace=t,e&&(this.searchInput.value=e),this.find(!1,!1,!0),this.searchInput.focus(),this.searchInput.select(),this.editor.keyBinding.addKeyboardHandler(this.$closeSearchBarKb)},this.isFocused=function(){var e=document.activeElement;return e==this.searchInput||e==this.replaceInput}}).call(l.prototype),t.SearchBox=l,t.Search=function(e,t){var n=e.searchBox||new l(e);n.show(e.session.getTextRange(),t)}}); + (function() { + ace.require(["ace/ext/searchbox"], function() {}); + })(); + \ No newline at end of file diff --git a/OpenAuth.Mvc/Scripts/jquery-ui.js b/OpenAuth.Mvc/Scripts/jquery-ui.js new file mode 100644 index 00000000..ab650182 --- /dev/null +++ b/OpenAuth.Mvc/Scripts/jquery-ui.js @@ -0,0 +1,16617 @@ +/*! jQuery UI - v1.11.4 - 2016-06-16 +* http://jqueryui.com +* Includes: core.js, widget.js, mouse.js, position.js, draggable.js, droppable.js, resizable.js, selectable.js, sortable.js, accordion.js, autocomplete.js, button.js, datepicker.js, dialog.js, menu.js, progressbar.js, selectmenu.js, slider.js, spinner.js, tabs.js, tooltip.js, effect.js, effect-blind.js, effect-bounce.js, effect-clip.js, effect-drop.js, effect-explode.js, effect-fade.js, effect-fold.js, effect-highlight.js, effect-puff.js, effect-pulsate.js, effect-scale.js, effect-shake.js, effect-size.js, effect-slide.js, effect-transfer.js +* Copyright jQuery Foundation and other contributors; Licensed MIT */ + +(function( factory ) { + if ( typeof define === "function" && define.amd ) { + + // AMD. Register as an anonymous module. + define([ "jquery" ], factory ); + } else { + + // Browser globals + factory( jQuery ); + } +}(function( $ ) { +/*! + * jQuery UI Core 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/category/ui-core/ + */ + + +// $.ui might exist from components with no dependencies, e.g., $.ui.position +$.ui = $.ui || {}; + +$.extend( $.ui, { + version: "1.11.4", + + keyCode: { + BACKSPACE: 8, + COMMA: 188, + DELETE: 46, + DOWN: 40, + END: 35, + ENTER: 13, + ESCAPE: 27, + HOME: 36, + LEFT: 37, + PAGE_DOWN: 34, + PAGE_UP: 33, + PERIOD: 190, + RIGHT: 39, + SPACE: 32, + TAB: 9, + UP: 38 + } +}); + +// plugins +$.fn.extend({ + scrollParent: function( includeHidden ) { + var position = this.css( "position" ), + excludeStaticParent = position === "absolute", + overflowRegex = includeHidden ? /(auto|scroll|hidden)/ : /(auto|scroll)/, + scrollParent = this.parents().filter( function() { + var parent = $( this ); + if ( excludeStaticParent && parent.css( "position" ) === "static" ) { + return false; + } + return overflowRegex.test( parent.css( "overflow" ) + parent.css( "overflow-y" ) + parent.css( "overflow-x" ) ); + }).eq( 0 ); + + return position === "fixed" || !scrollParent.length ? $( this[ 0 ].ownerDocument || document ) : scrollParent; + }, + + uniqueId: (function() { + var uuid = 0; + + return function() { + return this.each(function() { + if ( !this.id ) { + this.id = "ui-id-" + ( ++uuid ); + } + }); + }; + })(), + + removeUniqueId: function() { + return this.each(function() { + if ( /^ui-id-\d+$/.test( this.id ) ) { + $( this ).removeAttr( "id" ); + } + }); + } +}); + +// selectors +function focusable( element, isTabIndexNotNaN ) { + var map, mapName, img, + nodeName = element.nodeName.toLowerCase(); + if ( "area" === nodeName ) { + map = element.parentNode; + mapName = map.name; + if ( !element.href || !mapName || map.nodeName.toLowerCase() !== "map" ) { + return false; + } + img = $( "img[usemap='#" + mapName + "']" )[ 0 ]; + return !!img && visible( img ); + } + return ( /^(input|select|textarea|button|object)$/.test( nodeName ) ? + !element.disabled : + "a" === nodeName ? + element.href || isTabIndexNotNaN : + isTabIndexNotNaN) && + // the element and all of its ancestors must be visible + visible( element ); +} + +function visible( element ) { + return $.expr.filters.visible( element ) && + !$( element ).parents().addBack().filter(function() { + return $.css( this, "visibility" ) === "hidden"; + }).length; +} + +$.extend( $.expr[ ":" ], { + data: $.expr.createPseudo ? + $.expr.createPseudo(function( dataName ) { + return function( elem ) { + return !!$.data( elem, dataName ); + }; + }) : + // support: jQuery <1.8 + function( elem, i, match ) { + return !!$.data( elem, match[ 3 ] ); + }, + + focusable: function( element ) { + return focusable( element, !isNaN( $.attr( element, "tabindex" ) ) ); + }, + + tabbable: function( element ) { + var tabIndex = $.attr( element, "tabindex" ), + isTabIndexNaN = isNaN( tabIndex ); + return ( isTabIndexNaN || tabIndex >= 0 ) && focusable( element, !isTabIndexNaN ); + } +}); + +// support: jQuery <1.8 +if ( !$( "
" ).outerWidth( 1 ).jquery ) { + $.each( [ "Width", "Height" ], function( i, name ) { + var side = name === "Width" ? [ "Left", "Right" ] : [ "Top", "Bottom" ], + type = name.toLowerCase(), + orig = { + innerWidth: $.fn.innerWidth, + innerHeight: $.fn.innerHeight, + outerWidth: $.fn.outerWidth, + outerHeight: $.fn.outerHeight + }; + + function reduce( elem, size, border, margin ) { + $.each( side, function() { + size -= parseFloat( $.css( elem, "padding" + this ) ) || 0; + if ( border ) { + size -= parseFloat( $.css( elem, "border" + this + "Width" ) ) || 0; + } + if ( margin ) { + size -= parseFloat( $.css( elem, "margin" + this ) ) || 0; + } + }); + return size; + } + + $.fn[ "inner" + name ] = function( size ) { + if ( size === undefined ) { + return orig[ "inner" + name ].call( this ); + } + + return this.each(function() { + $( this ).css( type, reduce( this, size ) + "px" ); + }); + }; + + $.fn[ "outer" + name] = function( size, margin ) { + if ( typeof size !== "number" ) { + return orig[ "outer" + name ].call( this, size ); + } + + return this.each(function() { + $( this).css( type, reduce( this, size, true, margin ) + "px" ); + }); + }; + }); +} + +// support: jQuery <1.8 +if ( !$.fn.addBack ) { + $.fn.addBack = function( selector ) { + return this.add( selector == null ? + this.prevObject : this.prevObject.filter( selector ) + ); + }; +} + +// support: jQuery 1.6.1, 1.6.2 (http://bugs.jquery.com/ticket/9413) +if ( $( "" ).data( "a-b", "a" ).removeData( "a-b" ).data( "a-b" ) ) { + $.fn.removeData = (function( removeData ) { + return function( key ) { + if ( arguments.length ) { + return removeData.call( this, $.camelCase( key ) ); + } else { + return removeData.call( this ); + } + }; + })( $.fn.removeData ); +} + +// deprecated +$.ui.ie = !!/msie [\w.]+/.exec( navigator.userAgent.toLowerCase() ); + +$.fn.extend({ + focus: (function( orig ) { + return function( delay, fn ) { + return typeof delay === "number" ? + this.each(function() { + var elem = this; + setTimeout(function() { + $( elem ).focus(); + if ( fn ) { + fn.call( elem ); + } + }, delay ); + }) : + orig.apply( this, arguments ); + }; + })( $.fn.focus ), + + disableSelection: (function() { + var eventType = "onselectstart" in document.createElement( "div" ) ? + "selectstart" : + "mousedown"; + + return function() { + return this.bind( eventType + ".ui-disableSelection", function( event ) { + event.preventDefault(); + }); + }; + })(), + + enableSelection: function() { + return this.unbind( ".ui-disableSelection" ); + }, + + zIndex: function( zIndex ) { + if ( zIndex !== undefined ) { + return this.css( "zIndex", zIndex ); + } + + if ( this.length ) { + var elem = $( this[ 0 ] ), position, value; + while ( elem.length && elem[ 0 ] !== document ) { + // Ignore z-index if position is set to a value where z-index is ignored by the browser + // This makes behavior of this function consistent across browsers + // WebKit always returns auto if the element is positioned + position = elem.css( "position" ); + if ( position === "absolute" || position === "relative" || position === "fixed" ) { + // IE returns 0 when zIndex is not specified + // other browsers return a string + // we ignore the case of nested elements with an explicit value of 0 + //
+ value = parseInt( elem.css( "zIndex" ), 10 ); + if ( !isNaN( value ) && value !== 0 ) { + return value; + } + } + elem = elem.parent(); + } + } + + return 0; + } +}); + +// $.ui.plugin is deprecated. Use $.widget() extensions instead. +$.ui.plugin = { + add: function( module, option, set ) { + var i, + proto = $.ui[ module ].prototype; + for ( i in set ) { + proto.plugins[ i ] = proto.plugins[ i ] || []; + proto.plugins[ i ].push( [ option, set[ i ] ] ); + } + }, + call: function( instance, name, args, allowDisconnected ) { + var i, + set = instance.plugins[ name ]; + + if ( !set ) { + return; + } + + if ( !allowDisconnected && ( !instance.element[ 0 ].parentNode || instance.element[ 0 ].parentNode.nodeType === 11 ) ) { + return; + } + + for ( i = 0; i < set.length; i++ ) { + if ( instance.options[ set[ i ][ 0 ] ] ) { + set[ i ][ 1 ].apply( instance.element, args ); + } + } + } +}; + + +/*! + * jQuery UI Widget 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/jQuery.widget/ + */ + + +var widget_uuid = 0, + widget_slice = Array.prototype.slice; + +$.cleanData = (function( orig ) { + return function( elems ) { + var events, elem, i; + for ( i = 0; (elem = elems[i]) != null; i++ ) { + try { + + // Only trigger remove when necessary to save time + events = $._data( elem, "events" ); + if ( events && events.remove ) { + $( elem ).triggerHandler( "remove" ); + } + + // http://bugs.jquery.com/ticket/8235 + } catch ( e ) {} + } + orig( elems ); + }; +})( $.cleanData ); + +$.widget = function( name, base, prototype ) { + var fullName, existingConstructor, constructor, basePrototype, + // proxiedPrototype allows the provided prototype to remain unmodified + // so that it can be used as a mixin for multiple widgets (#8876) + proxiedPrototype = {}, + namespace = name.split( "." )[ 0 ]; + + name = name.split( "." )[ 1 ]; + fullName = namespace + "-" + name; + + if ( !prototype ) { + prototype = base; + base = $.Widget; + } + + // create selector for plugin + $.expr[ ":" ][ fullName.toLowerCase() ] = function( elem ) { + return !!$.data( elem, fullName ); + }; + + $[ namespace ] = $[ namespace ] || {}; + existingConstructor = $[ namespace ][ name ]; + constructor = $[ namespace ][ name ] = function( options, element ) { + // allow instantiation without "new" keyword + if ( !this._createWidget ) { + return new constructor( options, element ); + } + + // allow instantiation without initializing for simple inheritance + // must use "new" keyword (the code above always passes args) + if ( arguments.length ) { + this._createWidget( options, element ); + } + }; + // extend with the existing constructor to carry over any static properties + $.extend( constructor, existingConstructor, { + version: prototype.version, + // copy the object used to create the prototype in case we need to + // redefine the widget later + _proto: $.extend( {}, prototype ), + // track widgets that inherit from this widget in case this widget is + // redefined after a widget inherits from it + _childConstructors: [] + }); + + basePrototype = new base(); + // we need to make the options hash a property directly on the new instance + // otherwise we'll modify the options hash on the prototype that we're + // inheriting from + basePrototype.options = $.widget.extend( {}, basePrototype.options ); + $.each( prototype, function( prop, value ) { + if ( !$.isFunction( value ) ) { + proxiedPrototype[ prop ] = value; + return; + } + proxiedPrototype[ prop ] = (function() { + var _super = function() { + return base.prototype[ prop ].apply( this, arguments ); + }, + _superApply = function( args ) { + return base.prototype[ prop ].apply( this, args ); + }; + return function() { + var __super = this._super, + __superApply = this._superApply, + returnValue; + + this._super = _super; + this._superApply = _superApply; + + returnValue = value.apply( this, arguments ); + + this._super = __super; + this._superApply = __superApply; + + return returnValue; + }; + })(); + }); + constructor.prototype = $.widget.extend( basePrototype, { + // TODO: remove support for widgetEventPrefix + // always use the name + a colon as the prefix, e.g., draggable:start + // don't prefix for widgets that aren't DOM-based + widgetEventPrefix: existingConstructor ? (basePrototype.widgetEventPrefix || name) : name + }, proxiedPrototype, { + constructor: constructor, + namespace: namespace, + widgetName: name, + widgetFullName: fullName + }); + + // If this widget is being redefined then we need to find all widgets that + // are inheriting from it and redefine all of them so that they inherit from + // the new version of this widget. We're essentially trying to replace one + // level in the prototype chain. + if ( existingConstructor ) { + $.each( existingConstructor._childConstructors, function( i, child ) { + var childPrototype = child.prototype; + + // redefine the child widget using the same prototype that was + // originally used, but inherit from the new version of the base + $.widget( childPrototype.namespace + "." + childPrototype.widgetName, constructor, child._proto ); + }); + // remove the list of existing child constructors from the old constructor + // so the old child constructors can be garbage collected + delete existingConstructor._childConstructors; + } else { + base._childConstructors.push( constructor ); + } + + $.widget.bridge( name, constructor ); + + return constructor; +}; + +$.widget.extend = function( target ) { + var input = widget_slice.call( arguments, 1 ), + inputIndex = 0, + inputLength = input.length, + key, + value; + for ( ; inputIndex < inputLength; inputIndex++ ) { + for ( key in input[ inputIndex ] ) { + value = input[ inputIndex ][ key ]; + if ( input[ inputIndex ].hasOwnProperty( key ) && value !== undefined ) { + // Clone objects + if ( $.isPlainObject( value ) ) { + target[ key ] = $.isPlainObject( target[ key ] ) ? + $.widget.extend( {}, target[ key ], value ) : + // Don't extend strings, arrays, etc. with objects + $.widget.extend( {}, value ); + // Copy everything else by reference + } else { + target[ key ] = value; + } + } + } + } + return target; +}; + +$.widget.bridge = function( name, object ) { + var fullName = object.prototype.widgetFullName || name; + $.fn[ name ] = function( options ) { + var isMethodCall = typeof options === "string", + args = widget_slice.call( arguments, 1 ), + returnValue = this; + + if ( isMethodCall ) { + this.each(function() { + var methodValue, + instance = $.data( this, fullName ); + if ( options === "instance" ) { + returnValue = instance; + return false; + } + if ( !instance ) { + return $.error( "cannot call methods on " + name + " prior to initialization; " + + "attempted to call method '" + options + "'" ); + } + if ( !$.isFunction( instance[options] ) || options.charAt( 0 ) === "_" ) { + return $.error( "no such method '" + options + "' for " + name + " widget instance" ); + } + methodValue = instance[ options ].apply( instance, args ); + if ( methodValue !== instance && methodValue !== undefined ) { + returnValue = methodValue && methodValue.jquery ? + returnValue.pushStack( methodValue.get() ) : + methodValue; + return false; + } + }); + } else { + + // Allow multiple hashes to be passed on init + if ( args.length ) { + options = $.widget.extend.apply( null, [ options ].concat(args) ); + } + + this.each(function() { + var instance = $.data( this, fullName ); + if ( instance ) { + instance.option( options || {} ); + if ( instance._init ) { + instance._init(); + } + } else { + $.data( this, fullName, new object( options, this ) ); + } + }); + } + + return returnValue; + }; +}; + +$.Widget = function( /* options, element */ ) {}; +$.Widget._childConstructors = []; + +$.Widget.prototype = { + widgetName: "widget", + widgetEventPrefix: "", + defaultElement: "
", + options: { + disabled: false, + + // callbacks + create: null + }, + _createWidget: function( options, element ) { + element = $( element || this.defaultElement || this )[ 0 ]; + this.element = $( element ); + this.uuid = widget_uuid++; + this.eventNamespace = "." + this.widgetName + this.uuid; + + this.bindings = $(); + this.hoverable = $(); + this.focusable = $(); + + if ( element !== this ) { + $.data( element, this.widgetFullName, this ); + this._on( true, this.element, { + remove: function( event ) { + if ( event.target === element ) { + this.destroy(); + } + } + }); + this.document = $( element.style ? + // element within the document + element.ownerDocument : + // element is window or document + element.document || element ); + this.window = $( this.document[0].defaultView || this.document[0].parentWindow ); + } + + this.options = $.widget.extend( {}, + this.options, + this._getCreateOptions(), + options ); + + this._create(); + this._trigger( "create", null, this._getCreateEventData() ); + this._init(); + }, + _getCreateOptions: $.noop, + _getCreateEventData: $.noop, + _create: $.noop, + _init: $.noop, + + destroy: function() { + this._destroy(); + // we can probably remove the unbind calls in 2.0 + // all event bindings should go through this._on() + this.element + .unbind( this.eventNamespace ) + .removeData( this.widgetFullName ) + // support: jquery <1.6.3 + // http://bugs.jquery.com/ticket/9413 + .removeData( $.camelCase( this.widgetFullName ) ); + this.widget() + .unbind( this.eventNamespace ) + .removeAttr( "aria-disabled" ) + .removeClass( + this.widgetFullName + "-disabled " + + "ui-state-disabled" ); + + // clean up events and states + this.bindings.unbind( this.eventNamespace ); + this.hoverable.removeClass( "ui-state-hover" ); + this.focusable.removeClass( "ui-state-focus" ); + }, + _destroy: $.noop, + + widget: function() { + return this.element; + }, + + option: function( key, value ) { + var options = key, + parts, + curOption, + i; + + if ( arguments.length === 0 ) { + // don't return a reference to the internal hash + return $.widget.extend( {}, this.options ); + } + + if ( typeof key === "string" ) { + // handle nested keys, e.g., "foo.bar" => { foo: { bar: ___ } } + options = {}; + parts = key.split( "." ); + key = parts.shift(); + if ( parts.length ) { + curOption = options[ key ] = $.widget.extend( {}, this.options[ key ] ); + for ( i = 0; i < parts.length - 1; i++ ) { + curOption[ parts[ i ] ] = curOption[ parts[ i ] ] || {}; + curOption = curOption[ parts[ i ] ]; + } + key = parts.pop(); + if ( arguments.length === 1 ) { + return curOption[ key ] === undefined ? null : curOption[ key ]; + } + curOption[ key ] = value; + } else { + if ( arguments.length === 1 ) { + return this.options[ key ] === undefined ? null : this.options[ key ]; + } + options[ key ] = value; + } + } + + this._setOptions( options ); + + return this; + }, + _setOptions: function( options ) { + var key; + + for ( key in options ) { + this._setOption( key, options[ key ] ); + } + + return this; + }, + _setOption: function( key, value ) { + this.options[ key ] = value; + + if ( key === "disabled" ) { + this.widget() + .toggleClass( this.widgetFullName + "-disabled", !!value ); + + // If the widget is becoming disabled, then nothing is interactive + if ( value ) { + this.hoverable.removeClass( "ui-state-hover" ); + this.focusable.removeClass( "ui-state-focus" ); + } + } + + return this; + }, + + enable: function() { + return this._setOptions({ disabled: false }); + }, + disable: function() { + return this._setOptions({ disabled: true }); + }, + + _on: function( suppressDisabledCheck, element, handlers ) { + var delegateElement, + instance = this; + + // no suppressDisabledCheck flag, shuffle arguments + if ( typeof suppressDisabledCheck !== "boolean" ) { + handlers = element; + element = suppressDisabledCheck; + suppressDisabledCheck = false; + } + + // no element argument, shuffle and use this.element + if ( !handlers ) { + handlers = element; + element = this.element; + delegateElement = this.widget(); + } else { + element = delegateElement = $( element ); + this.bindings = this.bindings.add( element ); + } + + $.each( handlers, function( event, handler ) { + function handlerProxy() { + // allow widgets to customize the disabled handling + // - disabled as an array instead of boolean + // - disabled class as method for disabling individual parts + if ( !suppressDisabledCheck && + ( instance.options.disabled === true || + $( this ).hasClass( "ui-state-disabled" ) ) ) { + return; + } + return ( typeof handler === "string" ? instance[ handler ] : handler ) + .apply( instance, arguments ); + } + + // copy the guid so direct unbinding works + if ( typeof handler !== "string" ) { + handlerProxy.guid = handler.guid = + handler.guid || handlerProxy.guid || $.guid++; + } + + var match = event.match( /^([\w:-]*)\s*(.*)$/ ), + eventName = match[1] + instance.eventNamespace, + selector = match[2]; + if ( selector ) { + delegateElement.delegate( selector, eventName, handlerProxy ); + } else { + element.bind( eventName, handlerProxy ); + } + }); + }, + + _off: function( element, eventName ) { + eventName = (eventName || "").split( " " ).join( this.eventNamespace + " " ) + + this.eventNamespace; + element.unbind( eventName ).undelegate( eventName ); + + // Clear the stack to avoid memory leaks (#10056) + this.bindings = $( this.bindings.not( element ).get() ); + this.focusable = $( this.focusable.not( element ).get() ); + this.hoverable = $( this.hoverable.not( element ).get() ); + }, + + _delay: function( handler, delay ) { + function handlerProxy() { + return ( typeof handler === "string" ? instance[ handler ] : handler ) + .apply( instance, arguments ); + } + var instance = this; + return setTimeout( handlerProxy, delay || 0 ); + }, + + _hoverable: function( element ) { + this.hoverable = this.hoverable.add( element ); + this._on( element, { + mouseenter: function( event ) { + $( event.currentTarget ).addClass( "ui-state-hover" ); + }, + mouseleave: function( event ) { + $( event.currentTarget ).removeClass( "ui-state-hover" ); + } + }); + }, + + _focusable: function( element ) { + this.focusable = this.focusable.add( element ); + this._on( element, { + focusin: function( event ) { + $( event.currentTarget ).addClass( "ui-state-focus" ); + }, + focusout: function( event ) { + $( event.currentTarget ).removeClass( "ui-state-focus" ); + } + }); + }, + + _trigger: function( type, event, data ) { + var prop, orig, + callback = this.options[ type ]; + + data = data || {}; + event = $.Event( event ); + event.type = ( type === this.widgetEventPrefix ? + type : + this.widgetEventPrefix + type ).toLowerCase(); + // the original event may come from any element + // so we need to reset the target on the new event + event.target = this.element[ 0 ]; + + // copy original event properties over to the new event + orig = event.originalEvent; + if ( orig ) { + for ( prop in orig ) { + if ( !( prop in event ) ) { + event[ prop ] = orig[ prop ]; + } + } + } + + this.element.trigger( event, data ); + return !( $.isFunction( callback ) && + callback.apply( this.element[0], [ event ].concat( data ) ) === false || + event.isDefaultPrevented() ); + } +}; + +$.each( { show: "fadeIn", hide: "fadeOut" }, function( method, defaultEffect ) { + $.Widget.prototype[ "_" + method ] = function( element, options, callback ) { + if ( typeof options === "string" ) { + options = { effect: options }; + } + var hasOptions, + effectName = !options ? + method : + options === true || typeof options === "number" ? + defaultEffect : + options.effect || defaultEffect; + options = options || {}; + if ( typeof options === "number" ) { + options = { duration: options }; + } + hasOptions = !$.isEmptyObject( options ); + options.complete = callback; + if ( options.delay ) { + element.delay( options.delay ); + } + if ( hasOptions && $.effects && $.effects.effect[ effectName ] ) { + element[ method ]( options ); + } else if ( effectName !== method && element[ effectName ] ) { + element[ effectName ]( options.duration, options.easing, callback ); + } else { + element.queue(function( next ) { + $( this )[ method ](); + if ( callback ) { + callback.call( element[ 0 ] ); + } + next(); + }); + } + }; +}); + +var widget = $.widget; + + +/*! + * jQuery UI Mouse 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/mouse/ + */ + + +var mouseHandled = false; +$( document ).mouseup( function() { + mouseHandled = false; +}); + +var mouse = $.widget("ui.mouse", { + version: "1.11.4", + options: { + cancel: "input,textarea,button,select,option", + distance: 1, + delay: 0 + }, + _mouseInit: function() { + var that = this; + + this.element + .bind("mousedown." + this.widgetName, function(event) { + return that._mouseDown(event); + }) + .bind("click." + this.widgetName, function(event) { + if (true === $.data(event.target, that.widgetName + ".preventClickEvent")) { + $.removeData(event.target, that.widgetName + ".preventClickEvent"); + event.stopImmediatePropagation(); + return false; + } + }); + + this.started = false; + }, + + // TODO: make sure destroying one instance of mouse doesn't mess with + // other instances of mouse + _mouseDestroy: function() { + this.element.unbind("." + this.widgetName); + if ( this._mouseMoveDelegate ) { + this.document + .unbind("mousemove." + this.widgetName, this._mouseMoveDelegate) + .unbind("mouseup." + this.widgetName, this._mouseUpDelegate); + } + }, + + _mouseDown: function(event) { + // don't let more than one widget handle mouseStart + if ( mouseHandled ) { + return; + } + + this._mouseMoved = false; + + // we may have missed mouseup (out of window) + (this._mouseStarted && this._mouseUp(event)); + + this._mouseDownEvent = event; + + var that = this, + btnIsLeft = (event.which === 1), + // event.target.nodeName works around a bug in IE 8 with + // disabled inputs (#7620) + elIsCancel = (typeof this.options.cancel === "string" && event.target.nodeName ? $(event.target).closest(this.options.cancel).length : false); + if (!btnIsLeft || elIsCancel || !this._mouseCapture(event)) { + return true; + } + + this.mouseDelayMet = !this.options.delay; + if (!this.mouseDelayMet) { + this._mouseDelayTimer = setTimeout(function() { + that.mouseDelayMet = true; + }, this.options.delay); + } + + if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) { + this._mouseStarted = (this._mouseStart(event) !== false); + if (!this._mouseStarted) { + event.preventDefault(); + return true; + } + } + + // Click event may never have fired (Gecko & Opera) + if (true === $.data(event.target, this.widgetName + ".preventClickEvent")) { + $.removeData(event.target, this.widgetName + ".preventClickEvent"); + } + + // these delegates are required to keep context + this._mouseMoveDelegate = function(event) { + return that._mouseMove(event); + }; + this._mouseUpDelegate = function(event) { + return that._mouseUp(event); + }; + + this.document + .bind( "mousemove." + this.widgetName, this._mouseMoveDelegate ) + .bind( "mouseup." + this.widgetName, this._mouseUpDelegate ); + + event.preventDefault(); + + mouseHandled = true; + return true; + }, + + _mouseMove: function(event) { + // Only check for mouseups outside the document if you've moved inside the document + // at least once. This prevents the firing of mouseup in the case of IE<9, which will + // fire a mousemove event if content is placed under the cursor. See #7778 + // Support: IE <9 + if ( this._mouseMoved ) { + // IE mouseup check - mouseup happened when mouse was out of window + if ($.ui.ie && ( !document.documentMode || document.documentMode < 9 ) && !event.button) { + return this._mouseUp(event); + + // Iframe mouseup check - mouseup occurred in another document + } else if ( !event.which ) { + return this._mouseUp( event ); + } + } + + if ( event.which || event.button ) { + this._mouseMoved = true; + } + + if (this._mouseStarted) { + this._mouseDrag(event); + return event.preventDefault(); + } + + if (this._mouseDistanceMet(event) && this._mouseDelayMet(event)) { + this._mouseStarted = + (this._mouseStart(this._mouseDownEvent, event) !== false); + (this._mouseStarted ? this._mouseDrag(event) : this._mouseUp(event)); + } + + return !this._mouseStarted; + }, + + _mouseUp: function(event) { + this.document + .unbind( "mousemove." + this.widgetName, this._mouseMoveDelegate ) + .unbind( "mouseup." + this.widgetName, this._mouseUpDelegate ); + + if (this._mouseStarted) { + this._mouseStarted = false; + + if (event.target === this._mouseDownEvent.target) { + $.data(event.target, this.widgetName + ".preventClickEvent", true); + } + + this._mouseStop(event); + } + + mouseHandled = false; + return false; + }, + + _mouseDistanceMet: function(event) { + return (Math.max( + Math.abs(this._mouseDownEvent.pageX - event.pageX), + Math.abs(this._mouseDownEvent.pageY - event.pageY) + ) >= this.options.distance + ); + }, + + _mouseDelayMet: function(/* event */) { + return this.mouseDelayMet; + }, + + // These are placeholder methods, to be overriden by extending plugin + _mouseStart: function(/* event */) {}, + _mouseDrag: function(/* event */) {}, + _mouseStop: function(/* event */) {}, + _mouseCapture: function(/* event */) { return true; } +}); + + +/*! + * jQuery UI Position 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/position/ + */ + +(function() { + +$.ui = $.ui || {}; + +var cachedScrollbarWidth, supportsOffsetFractions, + max = Math.max, + abs = Math.abs, + round = Math.round, + rhorizontal = /left|center|right/, + rvertical = /top|center|bottom/, + roffset = /[\+\-]\d+(\.[\d]+)?%?/, + rposition = /^\w+/, + rpercent = /%$/, + _position = $.fn.position; + +function getOffsets( offsets, width, height ) { + return [ + parseFloat( offsets[ 0 ] ) * ( rpercent.test( offsets[ 0 ] ) ? width / 100 : 1 ), + parseFloat( offsets[ 1 ] ) * ( rpercent.test( offsets[ 1 ] ) ? height / 100 : 1 ) + ]; +} + +function parseCss( element, property ) { + return parseInt( $.css( element, property ), 10 ) || 0; +} + +function getDimensions( elem ) { + var raw = elem[0]; + if ( raw.nodeType === 9 ) { + return { + width: elem.width(), + height: elem.height(), + offset: { top: 0, left: 0 } + }; + } + if ( $.isWindow( raw ) ) { + return { + width: elem.width(), + height: elem.height(), + offset: { top: elem.scrollTop(), left: elem.scrollLeft() } + }; + } + if ( raw.preventDefault ) { + return { + width: 0, + height: 0, + offset: { top: raw.pageY, left: raw.pageX } + }; + } + return { + width: elem.outerWidth(), + height: elem.outerHeight(), + offset: elem.offset() + }; +} + +$.position = { + scrollbarWidth: function() { + if ( cachedScrollbarWidth !== undefined ) { + return cachedScrollbarWidth; + } + var w1, w2, + div = $( "
" ), + innerDiv = div.children()[0]; + + $( "body" ).append( div ); + w1 = innerDiv.offsetWidth; + div.css( "overflow", "scroll" ); + + w2 = innerDiv.offsetWidth; + + if ( w1 === w2 ) { + w2 = div[0].clientWidth; + } + + div.remove(); + + return (cachedScrollbarWidth = w1 - w2); + }, + getScrollInfo: function( within ) { + var overflowX = within.isWindow || within.isDocument ? "" : + within.element.css( "overflow-x" ), + overflowY = within.isWindow || within.isDocument ? "" : + within.element.css( "overflow-y" ), + hasOverflowX = overflowX === "scroll" || + ( overflowX === "auto" && within.width < within.element[0].scrollWidth ), + hasOverflowY = overflowY === "scroll" || + ( overflowY === "auto" && within.height < within.element[0].scrollHeight ); + return { + width: hasOverflowY ? $.position.scrollbarWidth() : 0, + height: hasOverflowX ? $.position.scrollbarWidth() : 0 + }; + }, + getWithinInfo: function( element ) { + var withinElement = $( element || window ), + isWindow = $.isWindow( withinElement[0] ), + isDocument = !!withinElement[ 0 ] && withinElement[ 0 ].nodeType === 9; + return { + element: withinElement, + isWindow: isWindow, + isDocument: isDocument, + offset: withinElement.offset() || { left: 0, top: 0 }, + scrollLeft: withinElement.scrollLeft(), + scrollTop: withinElement.scrollTop(), + + // support: jQuery 1.6.x + // jQuery 1.6 doesn't support .outerWidth/Height() on documents or windows + width: isWindow || isDocument ? withinElement.width() : withinElement.outerWidth(), + height: isWindow || isDocument ? withinElement.height() : withinElement.outerHeight() + }; + } +}; + +$.fn.position = function( options ) { + if ( !options || !options.of ) { + return _position.apply( this, arguments ); + } + + // make a copy, we don't want to modify arguments + options = $.extend( {}, options ); + + var atOffset, targetWidth, targetHeight, targetOffset, basePosition, dimensions, + target = $( options.of ), + within = $.position.getWithinInfo( options.within ), + scrollInfo = $.position.getScrollInfo( within ), + collision = ( options.collision || "flip" ).split( " " ), + offsets = {}; + + dimensions = getDimensions( target ); + if ( target[0].preventDefault ) { + // force left top to allow flipping + options.at = "left top"; + } + targetWidth = dimensions.width; + targetHeight = dimensions.height; + targetOffset = dimensions.offset; + // clone to reuse original targetOffset later + basePosition = $.extend( {}, targetOffset ); + + // force my and at to have valid horizontal and vertical positions + // if a value is missing or invalid, it will be converted to center + $.each( [ "my", "at" ], function() { + var pos = ( options[ this ] || "" ).split( " " ), + horizontalOffset, + verticalOffset; + + if ( pos.length === 1) { + pos = rhorizontal.test( pos[ 0 ] ) ? + pos.concat( [ "center" ] ) : + rvertical.test( pos[ 0 ] ) ? + [ "center" ].concat( pos ) : + [ "center", "center" ]; + } + pos[ 0 ] = rhorizontal.test( pos[ 0 ] ) ? pos[ 0 ] : "center"; + pos[ 1 ] = rvertical.test( pos[ 1 ] ) ? pos[ 1 ] : "center"; + + // calculate offsets + horizontalOffset = roffset.exec( pos[ 0 ] ); + verticalOffset = roffset.exec( pos[ 1 ] ); + offsets[ this ] = [ + horizontalOffset ? horizontalOffset[ 0 ] : 0, + verticalOffset ? verticalOffset[ 0 ] : 0 + ]; + + // reduce to just the positions without the offsets + options[ this ] = [ + rposition.exec( pos[ 0 ] )[ 0 ], + rposition.exec( pos[ 1 ] )[ 0 ] + ]; + }); + + // normalize collision option + if ( collision.length === 1 ) { + collision[ 1 ] = collision[ 0 ]; + } + + if ( options.at[ 0 ] === "right" ) { + basePosition.left += targetWidth; + } else if ( options.at[ 0 ] === "center" ) { + basePosition.left += targetWidth / 2; + } + + if ( options.at[ 1 ] === "bottom" ) { + basePosition.top += targetHeight; + } else if ( options.at[ 1 ] === "center" ) { + basePosition.top += targetHeight / 2; + } + + atOffset = getOffsets( offsets.at, targetWidth, targetHeight ); + basePosition.left += atOffset[ 0 ]; + basePosition.top += atOffset[ 1 ]; + + return this.each(function() { + var collisionPosition, using, + elem = $( this ), + elemWidth = elem.outerWidth(), + elemHeight = elem.outerHeight(), + marginLeft = parseCss( this, "marginLeft" ), + marginTop = parseCss( this, "marginTop" ), + collisionWidth = elemWidth + marginLeft + parseCss( this, "marginRight" ) + scrollInfo.width, + collisionHeight = elemHeight + marginTop + parseCss( this, "marginBottom" ) + scrollInfo.height, + position = $.extend( {}, basePosition ), + myOffset = getOffsets( offsets.my, elem.outerWidth(), elem.outerHeight() ); + + if ( options.my[ 0 ] === "right" ) { + position.left -= elemWidth; + } else if ( options.my[ 0 ] === "center" ) { + position.left -= elemWidth / 2; + } + + if ( options.my[ 1 ] === "bottom" ) { + position.top -= elemHeight; + } else if ( options.my[ 1 ] === "center" ) { + position.top -= elemHeight / 2; + } + + position.left += myOffset[ 0 ]; + position.top += myOffset[ 1 ]; + + // if the browser doesn't support fractions, then round for consistent results + if ( !supportsOffsetFractions ) { + position.left = round( position.left ); + position.top = round( position.top ); + } + + collisionPosition = { + marginLeft: marginLeft, + marginTop: marginTop + }; + + $.each( [ "left", "top" ], function( i, dir ) { + if ( $.ui.position[ collision[ i ] ] ) { + $.ui.position[ collision[ i ] ][ dir ]( position, { + targetWidth: targetWidth, + targetHeight: targetHeight, + elemWidth: elemWidth, + elemHeight: elemHeight, + collisionPosition: collisionPosition, + collisionWidth: collisionWidth, + collisionHeight: collisionHeight, + offset: [ atOffset[ 0 ] + myOffset[ 0 ], atOffset [ 1 ] + myOffset[ 1 ] ], + my: options.my, + at: options.at, + within: within, + elem: elem + }); + } + }); + + if ( options.using ) { + // adds feedback as second argument to using callback, if present + using = function( props ) { + var left = targetOffset.left - position.left, + right = left + targetWidth - elemWidth, + top = targetOffset.top - position.top, + bottom = top + targetHeight - elemHeight, + feedback = { + target: { + element: target, + left: targetOffset.left, + top: targetOffset.top, + width: targetWidth, + height: targetHeight + }, + element: { + element: elem, + left: position.left, + top: position.top, + width: elemWidth, + height: elemHeight + }, + horizontal: right < 0 ? "left" : left > 0 ? "right" : "center", + vertical: bottom < 0 ? "top" : top > 0 ? "bottom" : "middle" + }; + if ( targetWidth < elemWidth && abs( left + right ) < targetWidth ) { + feedback.horizontal = "center"; + } + if ( targetHeight < elemHeight && abs( top + bottom ) < targetHeight ) { + feedback.vertical = "middle"; + } + if ( max( abs( left ), abs( right ) ) > max( abs( top ), abs( bottom ) ) ) { + feedback.important = "horizontal"; + } else { + feedback.important = "vertical"; + } + options.using.call( this, props, feedback ); + }; + } + + elem.offset( $.extend( position, { using: using } ) ); + }); +}; + +$.ui.position = { + fit: { + left: function( position, data ) { + var within = data.within, + withinOffset = within.isWindow ? within.scrollLeft : within.offset.left, + outerWidth = within.width, + collisionPosLeft = position.left - data.collisionPosition.marginLeft, + overLeft = withinOffset - collisionPosLeft, + overRight = collisionPosLeft + data.collisionWidth - outerWidth - withinOffset, + newOverRight; + + // element is wider than within + if ( data.collisionWidth > outerWidth ) { + // element is initially over the left side of within + if ( overLeft > 0 && overRight <= 0 ) { + newOverRight = position.left + overLeft + data.collisionWidth - outerWidth - withinOffset; + position.left += overLeft - newOverRight; + // element is initially over right side of within + } else if ( overRight > 0 && overLeft <= 0 ) { + position.left = withinOffset; + // element is initially over both left and right sides of within + } else { + if ( overLeft > overRight ) { + position.left = withinOffset + outerWidth - data.collisionWidth; + } else { + position.left = withinOffset; + } + } + // too far left -> align with left edge + } else if ( overLeft > 0 ) { + position.left += overLeft; + // too far right -> align with right edge + } else if ( overRight > 0 ) { + position.left -= overRight; + // adjust based on position and margin + } else { + position.left = max( position.left - collisionPosLeft, position.left ); + } + }, + top: function( position, data ) { + var within = data.within, + withinOffset = within.isWindow ? within.scrollTop : within.offset.top, + outerHeight = data.within.height, + collisionPosTop = position.top - data.collisionPosition.marginTop, + overTop = withinOffset - collisionPosTop, + overBottom = collisionPosTop + data.collisionHeight - outerHeight - withinOffset, + newOverBottom; + + // element is taller than within + if ( data.collisionHeight > outerHeight ) { + // element is initially over the top of within + if ( overTop > 0 && overBottom <= 0 ) { + newOverBottom = position.top + overTop + data.collisionHeight - outerHeight - withinOffset; + position.top += overTop - newOverBottom; + // element is initially over bottom of within + } else if ( overBottom > 0 && overTop <= 0 ) { + position.top = withinOffset; + // element is initially over both top and bottom of within + } else { + if ( overTop > overBottom ) { + position.top = withinOffset + outerHeight - data.collisionHeight; + } else { + position.top = withinOffset; + } + } + // too far up -> align with top + } else if ( overTop > 0 ) { + position.top += overTop; + // too far down -> align with bottom edge + } else if ( overBottom > 0 ) { + position.top -= overBottom; + // adjust based on position and margin + } else { + position.top = max( position.top - collisionPosTop, position.top ); + } + } + }, + flip: { + left: function( position, data ) { + var within = data.within, + withinOffset = within.offset.left + within.scrollLeft, + outerWidth = within.width, + offsetLeft = within.isWindow ? within.scrollLeft : within.offset.left, + collisionPosLeft = position.left - data.collisionPosition.marginLeft, + overLeft = collisionPosLeft - offsetLeft, + overRight = collisionPosLeft + data.collisionWidth - outerWidth - offsetLeft, + myOffset = data.my[ 0 ] === "left" ? + -data.elemWidth : + data.my[ 0 ] === "right" ? + data.elemWidth : + 0, + atOffset = data.at[ 0 ] === "left" ? + data.targetWidth : + data.at[ 0 ] === "right" ? + -data.targetWidth : + 0, + offset = -2 * data.offset[ 0 ], + newOverRight, + newOverLeft; + + if ( overLeft < 0 ) { + newOverRight = position.left + myOffset + atOffset + offset + data.collisionWidth - outerWidth - withinOffset; + if ( newOverRight < 0 || newOverRight < abs( overLeft ) ) { + position.left += myOffset + atOffset + offset; + } + } else if ( overRight > 0 ) { + newOverLeft = position.left - data.collisionPosition.marginLeft + myOffset + atOffset + offset - offsetLeft; + if ( newOverLeft > 0 || abs( newOverLeft ) < overRight ) { + position.left += myOffset + atOffset + offset; + } + } + }, + top: function( position, data ) { + var within = data.within, + withinOffset = within.offset.top + within.scrollTop, + outerHeight = within.height, + offsetTop = within.isWindow ? within.scrollTop : within.offset.top, + collisionPosTop = position.top - data.collisionPosition.marginTop, + overTop = collisionPosTop - offsetTop, + overBottom = collisionPosTop + data.collisionHeight - outerHeight - offsetTop, + top = data.my[ 1 ] === "top", + myOffset = top ? + -data.elemHeight : + data.my[ 1 ] === "bottom" ? + data.elemHeight : + 0, + atOffset = data.at[ 1 ] === "top" ? + data.targetHeight : + data.at[ 1 ] === "bottom" ? + -data.targetHeight : + 0, + offset = -2 * data.offset[ 1 ], + newOverTop, + newOverBottom; + if ( overTop < 0 ) { + newOverBottom = position.top + myOffset + atOffset + offset + data.collisionHeight - outerHeight - withinOffset; + if ( newOverBottom < 0 || newOverBottom < abs( overTop ) ) { + position.top += myOffset + atOffset + offset; + } + } else if ( overBottom > 0 ) { + newOverTop = position.top - data.collisionPosition.marginTop + myOffset + atOffset + offset - offsetTop; + if ( newOverTop > 0 || abs( newOverTop ) < overBottom ) { + position.top += myOffset + atOffset + offset; + } + } + } + }, + flipfit: { + left: function() { + $.ui.position.flip.left.apply( this, arguments ); + $.ui.position.fit.left.apply( this, arguments ); + }, + top: function() { + $.ui.position.flip.top.apply( this, arguments ); + $.ui.position.fit.top.apply( this, arguments ); + } + } +}; + +// fraction support test +(function() { + var testElement, testElementParent, testElementStyle, offsetLeft, i, + body = document.getElementsByTagName( "body" )[ 0 ], + div = document.createElement( "div" ); + + //Create a "fake body" for testing based on method used in jQuery.support + testElement = document.createElement( body ? "div" : "body" ); + testElementStyle = { + visibility: "hidden", + width: 0, + height: 0, + border: 0, + margin: 0, + background: "none" + }; + if ( body ) { + $.extend( testElementStyle, { + position: "absolute", + left: "-1000px", + top: "-1000px" + }); + } + for ( i in testElementStyle ) { + testElement.style[ i ] = testElementStyle[ i ]; + } + testElement.appendChild( div ); + testElementParent = body || document.documentElement; + testElementParent.insertBefore( testElement, testElementParent.firstChild ); + + div.style.cssText = "position: absolute; left: 10.7432222px;"; + + offsetLeft = $( div ).offset().left; + supportsOffsetFractions = offsetLeft > 10 && offsetLeft < 11; + + testElement.innerHTML = ""; + testElementParent.removeChild( testElement ); +})(); + +})(); + +var position = $.ui.position; + + +/*! + * jQuery UI Draggable 1.11.4 + * http://jqueryui.com + * + * Copyright jQuery Foundation and other contributors + * Released under the MIT license. + * http://jquery.org/license + * + * http://api.jqueryui.com/draggable/ + */ + + +$.widget("ui.draggable", $.ui.mouse, { + version: "1.11.4", + widgetEventPrefix: "drag", + options: { + addClasses: true, + appendTo: "parent", + axis: false, + connectToSortable: false, + containment: false, + cursor: "auto", + cursorAt: false, + grid: false, + handle: false, + helper: "original", + iframeFix: false, + opacity: false, + refreshPositions: false, + revert: false, + revertDuration: 500, + scope: "default", + scroll: true, + scrollSensitivity: 20, + scrollSpeed: 20, + snap: false, + snapMode: "both", + snapTolerance: 20, + stack: false, + zIndex: false, + + // callbacks + drag: null, + start: null, + stop: null + }, + _create: function() { + + if ( this.options.helper === "original" ) { + this._setPositionRelative(); + } + if (this.options.addClasses){ + this.element.addClass("ui-draggable"); + } + if (this.options.disabled){ + this.element.addClass("ui-draggable-disabled"); + } + this._setHandleClassName(); + + this._mouseInit(); + }, + + _setOption: function( key, value ) { + this._super( key, value ); + if ( key === "handle" ) { + this._removeHandleClassName(); + this._setHandleClassName(); + } + }, + + _destroy: function() { + if ( ( this.helper || this.element ).is( ".ui-draggable-dragging" ) ) { + this.destroyOnClear = true; + return; + } + this.element.removeClass( "ui-draggable ui-draggable-dragging ui-draggable-disabled" ); + this._removeHandleClassName(); + this._mouseDestroy(); + }, + + _mouseCapture: function(event) { + var o = this.options; + + this._blurActiveElement( event ); + + // among others, prevent a drag on a resizable-handle + if (this.helper || o.disabled || $(event.target).closest(".ui-resizable-handle").length > 0) { + return false; + } + + //Quit if we're not on a valid handle + this.handle = this._getHandle(event); + if (!this.handle) { + return false; + } + + this._blockFrames( o.iframeFix === true ? "iframe" : o.iframeFix ); + + return true; + + }, + + _blockFrames: function( selector ) { + this.iframeBlocks = this.document.find( selector ).map(function() { + var iframe = $( this ); + + return $( "
" ) + .css( "position", "absolute" ) + .appendTo( iframe.parent() ) + .outerWidth( iframe.outerWidth() ) + .outerHeight( iframe.outerHeight() ) + .offset( iframe.offset() )[ 0 ]; + }); + }, + + _unblockFrames: function() { + if ( this.iframeBlocks ) { + this.iframeBlocks.remove(); + delete this.iframeBlocks; + } + }, + + _blurActiveElement: function( event ) { + var document = this.document[ 0 ]; + + // Only need to blur if the event occurred on the draggable itself, see #10527 + if ( !this.handleElement.is( event.target ) ) { + return; + } + + // support: IE9 + // IE9 throws an "Unspecified error" accessing document.activeElement from an