From 75e53f1b1e974b9431bc2d7c61133e05f9c0224a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=9C=E5=AD=90?= Date: Fri, 3 Jul 2020 10:59:04 +0800 Subject: [PATCH] remove old version --- .../files/test_files/doc.doc | Bin 27136 -> 0 bytes .../files/test_files/docx.docx | Bin 13269 -> 0 bytes .../files/test_files/file_none | 4 - .../files/test_files/file_txt.txt | 4 - .../files/test_files/pdf.pdf | Bin 48610 -> 0 bytes .../files/test_imgs/img_gif.gif | Bin 7172 -> 0 bytes .../files/test_imgs/img_jpg.jpg | Bin 11369 -> 0 bytes .../files/test_imgs/img_png.png | Bin 10236 -> 0 bytes eo-chrome-extension-4.0.1/html/popup.html | 76 - eo-chrome-extension-4.0.1/images/icon128.png | Bin 21425 -> 0 bytes eo-chrome-extension-4.0.1/images/icon16.png | Bin 18213 -> 0 bytes eo-chrome-extension-4.0.1/images/icon19.png | Bin 18803 -> 0 bytes eo-chrome-extension-4.0.1/images/icon38.png | Bin 19593 -> 0 bytes eo-chrome-extension-4.0.1/images/icon48.png | Bin 19189 -> 0 bytes .../images/plugin_logo.jpg | Bin 2506 -> 0 bytes .../js/bundle/content.min.js | 6298 ----------- .../js/bundle/test.min.js | 9250 ----------------- .../js/libs/crypto-js.js | 5988 ----------- .../js/libs/jquery-3.2.1.min.js | 4 - .../js/libs/polyfill-2.5.0.min.js | 4 - eo-chrome-extension-4.0.1/js/libs/require.js | 5 - eo-chrome-extension-4.0.1/js/libs/xml2json.js | 140 - eo-chrome-extension-4.0.1/manifest.json | 36 - eolinker_os_3.5/README.txt | 16 - eolinker_os_3.5/assets/font/icomoon.eot | Bin 15648 -> 0 bytes eolinker_os_3.5/assets/font/icomoon.svg | 76 - eolinker_os_3.5/assets/font/icomoon.ttf | Bin 15484 -> 0 bytes eolinker_os_3.5/assets/font/icomoon.woff | Bin 15560 -> 0 bytes eolinker_os_3.5/assets/font/iconfont.eot | Bin 42604 -> 0 bytes eolinker_os_3.5/assets/font/iconfont.svg | 537 - eolinker_os_3.5/assets/font/iconfont.ttf | Bin 42436 -> 0 bytes eolinker_os_3.5/assets/font/iconfont.woff | Bin 24904 -> 0 bytes .../assets/images/autoGeneration_intro.png | Bin 12897 -> 0 bytes .../assets/images/db_upload_icons.png | Bin 21001 -> 0 bytes .../assets/images/eolinker_sim.png | Bin 2340 -> 0 bytes .../assets/images/eolinker_sim_w.png | Bin 2363 -> 0 bytes .../assets/images/export_icons.png | Bin 23552 -> 0 bytes eolinker_os_3.5/assets/images/favicon.ico | Bin 1150 -> 0 bytes eolinker_os_3.5/assets/images/loading.gif | Bin 4055 -> 0 bytes eolinker_os_3.5/assets/images/logo_admin.png | Bin 1550 -> 0 bytes .../assets/images/upload_icons.png | Bin 11220 -> 0 bytes .../assets/office/statusCode_Import.xls | Bin 19968 -> 0 bytes eolinker_os_3.5/index.php | 50 - eolinker_os_3.5/libs/ace-builds/src/ace.js | 12 - .../libs/ace-builds/src/mode-javascript.js | 1 - .../libs/ace-builds/src/mode-json.js | 1 - .../libs/ace-builds/src/worker-javascript.js | 6 - .../libs/ace-builds/src/worker-json.js | 1 - .../dist/angular-local-storage.js | 1 - .../libs/angular-qiniu-upload/src/qupload.js | 1 - .../libs/editor.md/css/editormd.min.css | 5 - .../libs/editor.md/editormd.min.js | 2 - .../editor.md/fonts/fontawesome-webfont.eot | Bin 60767 -> 0 bytes .../editor.md/fonts/fontawesome-webfont.svg | 565 - .../editor.md/fonts/fontawesome-webfont.ttf | Bin 122092 -> 0 bytes .../editor.md/fonts/fontawesome-webfont.woff | Bin 71508 -> 0 bytes .../editor.md/fonts/fontawesome-webfont.woff2 | Bin 56780 -> 0 bytes .../libs/editor.md/images/loading.gif | Bin 7726 -> 0 bytes .../libs/editor.md/lib/codemirror/AUTHORS | 436 - .../libs/editor.md/lib/codemirror/LICENSE | 19 - .../libs/editor.md/lib/codemirror/README.md | 12 - .../lib/codemirror/addon/comment/comment.js | 1 - .../addon/comment/continuecomment.js | 1 - .../lib/codemirror/addon/dialog/dialog.css | 32 - .../lib/codemirror/addon/dialog/dialog.js | 1 - .../codemirror/addon/display/fullscreen.css | 6 - .../codemirror/addon/display/fullscreen.js | 1 - .../lib/codemirror/addon/display/panel.js | 1 - .../codemirror/addon/display/placeholder.js | 1 - .../lib/codemirror/addon/display/rulers.js | 1 - .../codemirror/addon/edit/closebrackets.js | 1 - .../lib/codemirror/addon/edit/closetag.js | 1 - .../lib/codemirror/addon/edit/continuelist.js | 1 - .../codemirror/addon/edit/matchbrackets.js | 1 - .../lib/codemirror/addon/edit/matchtags.js | 1 - .../codemirror/addon/edit/trailingspace.js | 1 - .../lib/codemirror/addon/fold/brace-fold.js | 1 - .../lib/codemirror/addon/fold/comment-fold.js | 1 - .../lib/codemirror/addon/fold/foldcode.js | 1 - .../lib/codemirror/addon/fold/foldgutter.css | 20 - .../lib/codemirror/addon/fold/foldgutter.js | 1 - .../lib/codemirror/addon/fold/indent-fold.js | 1 - .../codemirror/addon/fold/markdown-fold.js | 1 - .../lib/codemirror/addon/fold/xml-fold.js | 1 - .../lib/codemirror/addon/hint/anyword-hint.js | 1 - .../lib/codemirror/addon/hint/css-hint.js | 1 - .../lib/codemirror/addon/hint/html-hint.js | 1 - .../codemirror/addon/hint/javascript-hint.js | 1 - .../lib/codemirror/addon/hint/show-hint.css | 38 - .../lib/codemirror/addon/hint/show-hint.js | 1 - .../lib/codemirror/addon/hint/sql-hint.js | 1 - .../lib/codemirror/addon/hint/xml-hint.js | 1 - .../addon/lint/coffeescript-lint.js | 1 - .../lib/codemirror/addon/lint/css-lint.js | 1 - .../codemirror/addon/lint/javascript-lint.js | 1 - .../lib/codemirror/addon/lint/json-lint.js | 1 - .../lib/codemirror/addon/lint/lint.css | 73 - .../lib/codemirror/addon/lint/lint.js | 1 - .../lib/codemirror/addon/lint/yaml-lint.js | 1 - .../lib/codemirror/addon/merge/merge.css | 112 - .../lib/codemirror/addon/merge/merge.js | 1 - .../lib/codemirror/addon/mode/loadmode.js | 1 - .../lib/codemirror/addon/mode/multiplex.js | 1 - .../codemirror/addon/mode/multiplex_test.js | 1 - .../lib/codemirror/addon/mode/overlay.js | 1 - .../lib/codemirror/addon/mode/simple.js | 1 - .../lib/codemirror/addon/runmode/colorize.js | 1 - .../addon/runmode/runmode-standalone.js | 1 - .../lib/codemirror/addon/runmode/runmode.js | 1 - .../codemirror/addon/runmode/runmode.node.js | 1 - .../addon/scroll/annotatescrollbar.js | 1 - .../codemirror/addon/scroll/scrollpastend.js | 1 - .../addon/scroll/simplescrollbars.css | 66 - .../addon/scroll/simplescrollbars.js | 1 - .../addon/search/match-highlighter.js | 1 - .../addon/search/matchesonscrollbar.css | 8 - .../addon/search/matchesonscrollbar.js | 1 - .../lib/codemirror/addon/search/search.js | 1 - .../codemirror/addon/search/searchcursor.js | 1 - .../codemirror/addon/selection/active-line.js | 1 - .../addon/selection/mark-selection.js | 1 - .../addon/selection/selection-pointer.js | 1 - .../lib/codemirror/addon/tern/tern.css | 86 - .../lib/codemirror/addon/tern/tern.js | 1 - .../lib/codemirror/addon/tern/worker.js | 1 - .../lib/codemirror/addon/wrap/hardwrap.js | 1 - .../editor.md/lib/codemirror/addons.min.js | 2 - .../libs/editor.md/lib/codemirror/bower.json | 16 - .../lib/codemirror/codemirror.min.css | 3 - .../lib/codemirror/codemirror.min.js | 5 - .../lib/codemirror/lib/codemirror.css | 331 - .../lib/codemirror/lib/codemirror.js | 5 - .../editor.md/lib/codemirror/mode/apl/apl.js | 1 - .../lib/codemirror/mode/apl/index.html | 72 - .../lib/codemirror/mode/asterisk/asterisk.js | 1 - .../lib/codemirror/mode/asterisk/index.html | 154 - .../lib/codemirror/mode/clike/clike.js | 1 - .../lib/codemirror/mode/clike/index.html | 251 - .../lib/codemirror/mode/clike/scala.html | 767 -- .../lib/codemirror/mode/clojure/clojure.js | 1 - .../lib/codemirror/mode/clojure/index.html | 88 - .../lib/codemirror/mode/cobol/cobol.js | 1 - .../lib/codemirror/mode/cobol/index.html | 210 - .../mode/coffeescript/coffeescript.js | 1 - .../codemirror/mode/coffeescript/index.html | 740 -- .../codemirror/mode/commonlisp/commonlisp.js | 1 - .../lib/codemirror/mode/commonlisp/index.html | 177 - .../editor.md/lib/codemirror/mode/css/css.js | 1 - .../lib/codemirror/mode/css/index.html | 75 - .../lib/codemirror/mode/css/less.html | 152 - .../lib/codemirror/mode/css/less_test.js | 1 - .../lib/codemirror/mode/css/scss.html | 157 - .../lib/codemirror/mode/css/scss_test.js | 1 - .../editor.md/lib/codemirror/mode/css/test.js | 1 - .../lib/codemirror/mode/cypher/cypher.js | 1 - .../lib/codemirror/mode/cypher/index.html | 63 - .../libs/editor.md/lib/codemirror/mode/d/d.js | 1 - .../lib/codemirror/mode/d/index.html | 273 - .../lib/codemirror/mode/dart/dart.js | 1 - .../lib/codemirror/mode/dart/index.html | 71 - .../lib/codemirror/mode/diff/diff.js | 1 - .../lib/codemirror/mode/diff/index.html | 117 - .../lib/codemirror/mode/django/django.js | 1 - .../lib/codemirror/mode/django/index.html | 63 - .../codemirror/mode/dockerfile/dockerfile.js | 1 - .../lib/codemirror/mode/dockerfile/index.html | 73 - .../editor.md/lib/codemirror/mode/dtd/dtd.js | 1 - .../lib/codemirror/mode/dtd/index.html | 89 - .../lib/codemirror/mode/dylan/dylan.js | 1 - .../lib/codemirror/mode/dylan/index.html | 407 - .../lib/codemirror/mode/ebnf/ebnf.js | 1 - .../lib/codemirror/mode/ebnf/index.html | 102 - .../editor.md/lib/codemirror/mode/ecl/ecl.js | 1 - .../lib/codemirror/mode/ecl/index.html | 52 - .../lib/codemirror/mode/eiffel/eiffel.js | 1 - .../lib/codemirror/mode/eiffel/index.html | 429 - .../lib/codemirror/mode/erlang/erlang.js | 1 - .../lib/codemirror/mode/erlang/index.html | 76 - .../lib/codemirror/mode/forth/forth.js | 1 - .../lib/codemirror/mode/forth/index.html | 75 - .../lib/codemirror/mode/fortran/fortran.js | 1 - .../lib/codemirror/mode/fortran/index.html | 81 - .../editor.md/lib/codemirror/mode/gas/gas.js | 1 - .../lib/codemirror/mode/gas/index.html | 68 - .../editor.md/lib/codemirror/mode/gfm/gfm.js | 1 - .../lib/codemirror/mode/gfm/index.html | 93 - .../editor.md/lib/codemirror/mode/gfm/test.js | 1 - .../lib/codemirror/mode/gherkin/gherkin.js | 1 - .../lib/codemirror/mode/gherkin/index.html | 48 - .../editor.md/lib/codemirror/mode/go/go.js | 1 - .../lib/codemirror/mode/go/index.html | 85 - .../lib/codemirror/mode/groovy/groovy.js | 1 - .../lib/codemirror/mode/groovy/index.html | 84 - .../lib/codemirror/mode/haml/haml.js | 1 - .../lib/codemirror/mode/haml/index.html | 79 - .../lib/codemirror/mode/haml/test.js | 1 - .../lib/codemirror/mode/haskell/haskell.js | 1 - .../lib/codemirror/mode/haskell/index.html | 73 - .../lib/codemirror/mode/haxe/haxe.js | 1 - .../lib/codemirror/mode/haxe/index.html | 124 - .../mode/htmlembedded/htmlembedded.js | 1 - .../codemirror/mode/htmlembedded/index.html | 58 - .../codemirror/mode/htmlmixed/htmlmixed.js | 1 - .../lib/codemirror/mode/htmlmixed/index.html | 89 - .../lib/codemirror/mode/http/http.js | 1 - .../lib/codemirror/mode/http/index.html | 45 - .../editor.md/lib/codemirror/mode/idl/idl.js | 1 - .../lib/codemirror/mode/idl/index.html | 64 - .../editor.md/lib/codemirror/mode/index.html | 134 - .../lib/codemirror/mode/jade/index.html | 70 - .../lib/codemirror/mode/jade/jade.js | 1 - .../lib/codemirror/mode/javascript/index.html | 114 - .../codemirror/mode/javascript/javascript.js | 1 - .../codemirror/mode/javascript/json-ld.html | 72 - .../lib/codemirror/mode/javascript/test.js | 1 - .../mode/javascript/typescript.html | 61 - .../lib/codemirror/mode/jinja2/index.html | 54 - .../lib/codemirror/mode/jinja2/jinja2.js | 1 - .../lib/codemirror/mode/julia/index.html | 195 - .../lib/codemirror/mode/julia/julia.js | 1 - .../lib/codemirror/mode/kotlin/index.html | 89 - .../lib/codemirror/mode/kotlin/kotlin.js | 1 - .../lib/codemirror/mode/livescript/index.html | 459 - .../codemirror/mode/livescript/livescript.js | 1 - .../lib/codemirror/mode/lua/index.html | 85 - .../editor.md/lib/codemirror/mode/lua/lua.js | 1 - .../lib/codemirror/mode/markdown/index.html | 359 - .../lib/codemirror/mode/markdown/markdown.js | 1 - .../lib/codemirror/mode/markdown/test.js | 1 - .../editor.md/lib/codemirror/mode/meta.js | 1 - .../lib/codemirror/mode/mirc/index.html | 160 - .../lib/codemirror/mode/mirc/mirc.js | 1 - .../lib/codemirror/mode/mllike/index.html | 179 - .../lib/codemirror/mode/mllike/mllike.js | 1 - .../lib/codemirror/mode/modelica/index.html | 67 - .../lib/codemirror/mode/modelica/modelica.js | 1 - .../lib/codemirror/mode/nginx/index.html | 181 - .../lib/codemirror/mode/nginx/nginx.js | 1 - .../lib/codemirror/mode/ntriples/index.html | 45 - .../lib/codemirror/mode/ntriples/ntriples.js | 1 - .../lib/codemirror/mode/octave/index.html | 83 - .../lib/codemirror/mode/octave/octave.js | 1 - .../lib/codemirror/mode/pascal/index.html | 61 - .../lib/codemirror/mode/pascal/pascal.js | 1 - .../lib/codemirror/mode/pegjs/index.html | 66 - .../lib/codemirror/mode/pegjs/pegjs.js | 1 - .../lib/codemirror/mode/perl/index.html | 75 - .../lib/codemirror/mode/perl/perl.js | 1 - .../lib/codemirror/mode/php/index.html | 64 - .../editor.md/lib/codemirror/mode/php/php.js | 1 - .../editor.md/lib/codemirror/mode/php/test.js | 1 - .../lib/codemirror/mode/pig/index.html | 55 - .../editor.md/lib/codemirror/mode/pig/pig.js | 1 - .../lib/codemirror/mode/properties/index.html | 53 - .../codemirror/mode/properties/properties.js | 1 - .../lib/codemirror/mode/puppet/index.html | 121 - .../lib/codemirror/mode/puppet/puppet.js | 1 - .../lib/codemirror/mode/python/index.html | 198 - .../lib/codemirror/mode/python/python.js | 1 - .../lib/codemirror/mode/q/index.html | 144 - .../libs/editor.md/lib/codemirror/mode/q/q.js | 1 - .../lib/codemirror/mode/r/index.html | 85 - .../libs/editor.md/lib/codemirror/mode/r/r.js | 1 - .../codemirror/mode/rpm/changes/index.html | 66 - .../lib/codemirror/mode/rpm/index.html | 149 - .../editor.md/lib/codemirror/mode/rpm/rpm.js | 1 - .../lib/codemirror/mode/rst/index.html | 535 - .../editor.md/lib/codemirror/mode/rst/rst.js | 1 - .../lib/codemirror/mode/ruby/index.html | 183 - .../lib/codemirror/mode/ruby/ruby.js | 1 - .../lib/codemirror/mode/ruby/test.js | 1 - .../lib/codemirror/mode/rust/index.html | 60 - .../lib/codemirror/mode/rust/rust.js | 1 - .../lib/codemirror/mode/sass/index.html | 66 - .../lib/codemirror/mode/sass/sass.js | 1 - .../lib/codemirror/mode/scheme/index.html | 77 - .../lib/codemirror/mode/scheme/scheme.js | 1 - .../lib/codemirror/mode/shell/index.html | 66 - .../lib/codemirror/mode/shell/shell.js | 1 - .../lib/codemirror/mode/shell/test.js | 1 - .../lib/codemirror/mode/sieve/index.html | 93 - .../lib/codemirror/mode/sieve/sieve.js | 1 - .../lib/codemirror/mode/slim/index.html | 96 - .../lib/codemirror/mode/slim/slim.js | 1 - .../lib/codemirror/mode/slim/test.js | 1 - .../lib/codemirror/mode/smalltalk/index.html | 68 - .../codemirror/mode/smalltalk/smalltalk.js | 1 - .../lib/codemirror/mode/smarty/index.html | 136 - .../lib/codemirror/mode/smarty/smarty.js | 1 - .../codemirror/mode/smartymixed/index.html | 114 - .../mode/smartymixed/smartymixed.js | 1 - .../lib/codemirror/mode/solr/index.html | 57 - .../lib/codemirror/mode/solr/solr.js | 1 - .../lib/codemirror/mode/soy/index.html | 68 - .../editor.md/lib/codemirror/mode/soy/soy.js | 1 - .../lib/codemirror/mode/sparql/index.html | 61 - .../lib/codemirror/mode/sparql/sparql.js | 1 - .../codemirror/mode/spreadsheet/index.html | 42 - .../mode/spreadsheet/spreadsheet.js | 1 - .../lib/codemirror/mode/sql/index.html | 84 - .../editor.md/lib/codemirror/mode/sql/sql.js | 1 - .../lib/codemirror/mode/stex/index.html | 110 - .../lib/codemirror/mode/stex/stex.js | 1 - .../lib/codemirror/mode/stex/test.js | 1 - .../lib/codemirror/mode/stylus/index.html | 104 - .../lib/codemirror/mode/stylus/stylus.js | 1 - .../lib/codemirror/mode/tcl/index.html | 142 - .../editor.md/lib/codemirror/mode/tcl/tcl.js | 1 - .../lib/codemirror/mode/textile/index.html | 191 - .../lib/codemirror/mode/textile/test.js | 1 - .../lib/codemirror/mode/textile/textile.js | 1 - .../lib/codemirror/mode/tiddlywiki/index.html | 154 - .../codemirror/mode/tiddlywiki/tiddlywiki.css | 14 - .../codemirror/mode/tiddlywiki/tiddlywiki.js | 1 - .../lib/codemirror/mode/tiki/index.html | 95 - .../lib/codemirror/mode/tiki/tiki.css | 26 - .../lib/codemirror/mode/tiki/tiki.js | 1 - .../lib/codemirror/mode/toml/index.html | 73 - .../lib/codemirror/mode/toml/toml.js | 1 - .../lib/codemirror/mode/tornado/index.html | 63 - .../lib/codemirror/mode/tornado/tornado.js | 1 - .../lib/codemirror/mode/turtle/index.html | 50 - .../lib/codemirror/mode/turtle/turtle.js | 1 - .../lib/codemirror/mode/vb/index.html | 102 - .../editor.md/lib/codemirror/mode/vb/vb.js | 1 - .../lib/codemirror/mode/vbscript/index.html | 55 - .../lib/codemirror/mode/vbscript/vbscript.js | 1 - .../lib/codemirror/mode/velocity/index.html | 118 - .../lib/codemirror/mode/velocity/velocity.js | 1 - .../lib/codemirror/mode/verilog/index.html | 120 - .../lib/codemirror/mode/verilog/test.js | 1 - .../lib/codemirror/mode/verilog/verilog.js | 1 - .../lib/codemirror/mode/xml/index.html | 57 - .../editor.md/lib/codemirror/mode/xml/test.js | 1 - .../editor.md/lib/codemirror/mode/xml/xml.js | 1 - .../lib/codemirror/mode/xquery/index.html | 210 - .../lib/codemirror/mode/xquery/test.js | 1 - .../lib/codemirror/mode/xquery/xquery.js | 1 - .../lib/codemirror/mode/yaml/index.html | 80 - .../lib/codemirror/mode/yaml/yaml.js | 1 - .../lib/codemirror/mode/z80/index.html | 52 - .../editor.md/lib/codemirror/mode/z80/z80.js | 1 - .../editor.md/lib/codemirror/modes.min.js | 7 - .../editor.md/lib/codemirror/package.json | 21 - .../lib/codemirror/theme/3024-day.css | 40 - .../lib/codemirror/theme/3024-night.css | 39 - .../lib/codemirror/theme/ambiance-mobile.css | 5 - .../lib/codemirror/theme/ambiance.css | 75 - .../lib/codemirror/theme/base16-dark.css | 38 - .../lib/codemirror/theme/base16-light.css | 38 - .../lib/codemirror/theme/blackboard.css | 32 - .../editor.md/lib/codemirror/theme/cobalt.css | 25 - .../lib/codemirror/theme/colorforth.css | 33 - .../lib/codemirror/theme/eclipse.css | 23 - .../lib/codemirror/theme/elegant.css | 13 - .../lib/codemirror/theme/erlang-dark.css | 34 - .../lib/codemirror/theme/lesser-dark.css | 47 - .../editor.md/lib/codemirror/theme/mbo.css | 37 - .../lib/codemirror/theme/mdn-like.css | 46 - .../lib/codemirror/theme/midnight.css | 47 - .../lib/codemirror/theme/monokai.css | 33 - .../editor.md/lib/codemirror/theme/neat.css | 12 - .../editor.md/lib/codemirror/theme/neo.css | 43 - .../editor.md/lib/codemirror/theme/night.css | 28 - .../lib/codemirror/theme/paraiso-dark.css | 38 - .../lib/codemirror/theme/paraiso-light.css | 38 - .../lib/codemirror/theme/pastel-on-dark.css | 53 - .../lib/codemirror/theme/rubyblue.css | 25 - .../lib/codemirror/theme/solarized.css | 165 - .../lib/codemirror/theme/the-matrix.css | 30 - .../theme/tomorrow-night-bright.css | 35 - .../theme/tomorrow-night-eighties.css | 38 - .../lib/codemirror/theme/twilight.css | 32 - .../lib/codemirror/theme/vibrant-ink.css | 34 - .../lib/codemirror/theme/xq-dark.css | 53 - .../lib/codemirror/theme/xq-light.css | 43 - .../lib/codemirror/theme/zenburn.css | 37 - .../libs/editor.md/lib/flowchart.min.js | 1 - .../editor.md/lib/jquery.flowchart.min.js | 1 - .../libs/editor.md/lib/marked.min.js | 1 - .../libs/editor.md/lib/prettify.min.js | 1 - .../libs/editor.md/lib/raphael.min.js | 3 - .../editor.md/lib/sequence-diagram.min.js | 3 - .../libs/editor.md/lib/underscore.min.js | 1 - .../plugins/link-dialog/link-dialog.js | 1 - .../plugins/table-dialog/table-dialog.js | 1 - .../libs/highlight.js/lib/highlight.pack.js | 1 - .../libs/highlight.js/styles/rainbow.css | 95 - eolinker_os_3.5/libs/imgCrop/ng-img-crop.js | 1 - .../dist/js/lib/plupload.full.min.js | 4 - .../libs/wangEditor/dist/js/lib/qiniu.min.js | 1 - .../libs/wangEditor/dist/js/wangEditor.min.js | 3 - eolinker_os_3.5/scripts/app-923417719b.js | 33 - eolinker_os_3.5/scripts/app-c2ea64f5eb.js | 33 - eolinker_os_3.5/scripts/app-f62544148c.js | 33 - .../server/RTP/Common/EasyFunction.php | 236 - .../server/RTP/Common/UpdateFunction.php | 63 - .../RTP/Module/AutomaticallyModule.class.php | 150 - .../RTP/Module/DatabaseModule.class.php | 304 - .../RTP/Module/ExceptionModule.class.php | 84 - .../server/RTP/Module/FileModule.class.php | 90 - .../RTP/Module/OutputStorageModule.class.php | 119 - .../RTP/Module/RegistryModule.class.php | 124 - eolinker_os_3.5/server/RTP/config/version.php | 3 - .../server/RTP/db/eolinker_os_mysql.sql | 395 - .../server/RTP/extend/excel/PHPExcel.php | 1153 -- .../RTP/extend/excel/PHPExcel/Autoloader.php | 81 - .../PHPExcel/CachedObjectStorage/APC.php | 290 - .../CachedObjectStorage/CacheBase.php | 368 - .../PHPExcel/CachedObjectStorage/DiscISAM.php | 208 - .../PHPExcel/CachedObjectStorage/ICache.php | 103 - .../PHPExcel/CachedObjectStorage/Igbinary.php | 149 - .../PHPExcel/CachedObjectStorage/Memcache.php | 308 - .../PHPExcel/CachedObjectStorage/Memory.php | 118 - .../CachedObjectStorage/MemoryGZip.php | 133 - .../CachedObjectStorage/MemorySerialized.php | 129 - .../PHPExcel/CachedObjectStorage/PHPTemp.php | 200 - .../PHPExcel/CachedObjectStorage/SQLite.php | 307 - .../PHPExcel/CachedObjectStorage/SQLite3.php | 346 - .../PHPExcel/CachedObjectStorage/Wincache.php | 289 - .../PHPExcel/CachedObjectStorageFactory.php | 231 - .../CalcEngine/CyclicReferenceStack.php | 94 - .../excel/PHPExcel/CalcEngine/Logger.php | 151 - .../RTP/extend/excel/PHPExcel/Calculation.php | 4391 -------- .../excel/PHPExcel/Calculation/Database.php | 676 -- .../excel/PHPExcel/Calculation/DateTime.php | 1553 --- .../PHPExcel/Calculation/Engineering.php | 2650 ----- .../excel/PHPExcel/Calculation/Exception.php | 46 - .../PHPExcel/Calculation/ExceptionHandler.php | 45 - .../excel/PHPExcel/Calculation/Financial.php | 2359 ----- .../PHPExcel/Calculation/FormulaParser.php | 622 -- .../PHPExcel/Calculation/FormulaToken.php | 176 - .../excel/PHPExcel/Calculation/Function.php | 148 - .../excel/PHPExcel/Calculation/Functions.php | 760 -- .../excel/PHPExcel/Calculation/Logical.php | 285 - .../excel/PHPExcel/Calculation/LookupRef.php | 879 -- .../excel/PHPExcel/Calculation/MathTrig.php | 1459 --- .../PHPExcel/Calculation/Statistical.php | 3745 ------- .../excel/PHPExcel/Calculation/TextData.php | 651 -- .../PHPExcel/Calculation/Token/Stack.php | 111 - .../PHPExcel/Calculation/functionlist.txt | 351 - .../server/RTP/extend/excel/PHPExcel/Cell.php | 1032 -- .../PHPExcel/Cell/AdvancedValueBinder.php | 187 - .../extend/excel/PHPExcel/Cell/DataType.php | 115 - .../excel/PHPExcel/Cell/DataValidation.php | 492 - .../PHPExcel/Cell/DefaultValueBinder.php | 102 - .../extend/excel/PHPExcel/Cell/Hyperlink.php | 124 - .../excel/PHPExcel/Cell/IValueBinder.php | 47 - .../RTP/extend/excel/PHPExcel/Chart.php | 680 -- .../RTP/extend/excel/PHPExcel/Chart/Axis.php | 561 - .../excel/PHPExcel/Chart/DataSeries.php | 390 - .../excel/PHPExcel/Chart/DataSeriesValues.php | 333 - .../extend/excel/PHPExcel/Chart/Exception.php | 46 - .../extend/excel/PHPExcel/Chart/GridLines.php | 472 - .../extend/excel/PHPExcel/Chart/Layout.php | 486 - .../extend/excel/PHPExcel/Chart/Legend.php | 170 - .../extend/excel/PHPExcel/Chart/PlotArea.php | 126 - .../excel/PHPExcel/Chart/Properties.php | 363 - .../Chart/Renderer/PHP Charting Libraries.txt | 20 - .../excel/PHPExcel/Chart/Renderer/jpgraph.php | 883 -- .../RTP/extend/excel/PHPExcel/Chart/Title.php | 86 - .../RTP/extend/excel/PHPExcel/Comment.php | 338 - .../excel/PHPExcel/DocumentProperties.php | 611 -- .../excel/PHPExcel/DocumentSecurity.php | 222 - .../RTP/extend/excel/PHPExcel/Exception.php | 54 - .../RTP/extend/excel/PHPExcel/HashTable.php | 204 - .../RTP/extend/excel/PHPExcel/Helper/HTML.php | 808 -- .../RTP/extend/excel/PHPExcel/IComparable.php | 34 - .../RTP/extend/excel/PHPExcel/IOFactory.php | 289 - .../RTP/extend/excel/PHPExcel/NamedRange.php | 249 - .../extend/excel/PHPExcel/Reader/Abstract.php | 289 - .../RTP/extend/excel/PHPExcel/Reader/CSV.php | 406 - .../PHPExcel/Reader/DefaultReadFilter.php | 51 - .../excel/PHPExcel/Reader/Excel2003XML.php | 801 -- .../excel/PHPExcel/Reader/Excel2007.php | 2051 ---- .../excel/PHPExcel/Reader/Excel2007/Chart.php | 520 - .../excel/PHPExcel/Reader/Excel2007/Theme.php | 127 - .../extend/excel/PHPExcel/Reader/Excel5.php | 7594 -------------- .../excel/PHPExcel/Reader/Excel5/Color.php | 32 - .../PHPExcel/Reader/Excel5/Color/BIFF5.php | 77 - .../PHPExcel/Reader/Excel5/Color/BIFF8.php | 77 - .../PHPExcel/Reader/Excel5/Color/BuiltIn.php | 31 - .../PHPExcel/Reader/Excel5/ErrorCode.php | 28 - .../excel/PHPExcel/Reader/Excel5/Escher.php | 669 -- .../excel/PHPExcel/Reader/Excel5/MD5.php | 203 - .../excel/PHPExcel/Reader/Excel5/RC4.php | 81 - .../PHPExcel/Reader/Excel5/Style/Border.php | 36 - .../Reader/Excel5/Style/FillPattern.php | 41 - .../excel/PHPExcel/Reader/Exception.php | 46 - .../extend/excel/PHPExcel/Reader/Gnumeric.php | 850 -- .../RTP/extend/excel/PHPExcel/Reader/HTML.php | 549 - .../excel/PHPExcel/Reader/IReadFilter.php | 39 - .../extend/excel/PHPExcel/Reader/IReader.php | 46 - .../extend/excel/PHPExcel/Reader/OOCalc.php | 696 -- .../RTP/extend/excel/PHPExcel/Reader/SYLK.php | 478 - .../extend/excel/PHPExcel/ReferenceHelper.php | 913 -- .../RTP/extend/excel/PHPExcel/RichText.php | 191 - .../excel/PHPExcel/RichText/ITextElement.php | 56 - .../extend/excel/PHPExcel/RichText/Run.php | 98 - .../excel/PHPExcel/RichText/TextElement.php | 105 - .../RTP/extend/excel/PHPExcel/Settings.php | 389 - .../extend/excel/PHPExcel/Shared/CodePage.php | 156 - .../RTP/extend/excel/PHPExcel/Shared/Date.php | 418 - .../extend/excel/PHPExcel/Shared/Drawing.php | 270 - .../extend/excel/PHPExcel/Shared/Escher.php | 83 - .../PHPExcel/Shared/Escher/DgContainer.php | 75 - .../Escher/DgContainer/SpgrContainer.php | 102 - .../DgContainer/SpgrContainer/SpContainer.php | 388 - .../PHPExcel/Shared/Escher/DggContainer.php | 196 - .../Escher/DggContainer/BstoreContainer.php | 57 - .../DggContainer/BstoreContainer/BSE.php | 112 - .../DggContainer/BstoreContainer/BSE/Blip.php | 83 - .../extend/excel/PHPExcel/Shared/Excel5.php | 298 - .../RTP/extend/excel/PHPExcel/Shared/File.php | 180 - .../RTP/extend/excel/PHPExcel/Shared/Font.php | 741 -- .../excel/PHPExcel/Shared/JAMA/CHANGELOG.TXT | 16 - .../Shared/JAMA/CholeskyDecomposition.php | 148 - .../Shared/JAMA/EigenvalueDecomposition.php | 864 -- .../PHPExcel/Shared/JAMA/LUDecomposition.php | 257 - .../excel/PHPExcel/Shared/JAMA/Matrix.php | 1159 --- .../PHPExcel/Shared/JAMA/QRDecomposition.php | 235 - .../JAMA/SingularValueDecomposition.php | 528 - .../PHPExcel/Shared/JAMA/utils/Error.php | 83 - .../PHPExcel/Shared/JAMA/utils/Maths.php | 44 - .../RTP/extend/excel/PHPExcel/Shared/OLE.php | 526 - .../Shared/OLE/ChainedBlockStream.php | 206 - .../extend/excel/PHPExcel/Shared/OLE/PPS.php | 230 - .../excel/PHPExcel/Shared/OLE/PPS/File.php | 74 - .../excel/PHPExcel/Shared/OLE/PPS/Root.php | 462 - .../extend/excel/PHPExcel/Shared/OLERead.php | 318 - .../excel/PHPExcel/Shared/PCLZip/gnu-lgpl.txt | 504 - .../PHPExcel/Shared/PCLZip/pclzip.lib.php | 5173 --------- .../excel/PHPExcel/Shared/PCLZip/readme.txt | 421 - .../excel/PHPExcel/Shared/PasswordHasher.php | 67 - .../extend/excel/PHPExcel/Shared/String.php | 819 -- .../extend/excel/PHPExcel/Shared/TimeZone.php | 144 - .../excel/PHPExcel/Shared/XMLWriter.php | 124 - .../excel/PHPExcel/Shared/ZipArchive.php | 163 - .../PHPExcel/Shared/ZipStreamWrapper.php | 200 - .../PHPExcel/Shared/trend/bestFitClass.php | 425 - .../Shared/trend/exponentialBestFitClass.php | 138 - .../Shared/trend/linearBestFitClass.php | 102 - .../Shared/trend/logarithmicBestFitClass.php | 110 - .../Shared/trend/polynomialBestFitClass.php | 222 - .../Shared/trend/powerBestFitClass.php | 138 - .../PHPExcel/Shared/trend/trendClass.php | 147 - .../RTP/extend/excel/PHPExcel/Style.php | 644 -- .../extend/excel/PHPExcel/Style/Alignment.php | 464 - .../extend/excel/PHPExcel/Style/Border.php | 282 - .../extend/excel/PHPExcel/Style/Borders.php | 429 - .../RTP/extend/excel/PHPExcel/Style/Color.php | 443 - .../excel/PHPExcel/Style/Conditional.php | 293 - .../RTP/extend/excel/PHPExcel/Style/Fill.php | 322 - .../RTP/extend/excel/PHPExcel/Style/Font.php | 543 - .../excel/PHPExcel/Style/NumberFormat.php | 751 -- .../excel/PHPExcel/Style/Protection.php | 204 - .../excel/PHPExcel/Style/Supervisor.php | 125 - .../RTP/extend/excel/PHPExcel/Worksheet.php | 2968 ------ .../excel/PHPExcel/Worksheet/AutoFilter.php | 846 -- .../PHPExcel/Worksheet/AutoFilter/Column.php | 405 - .../Worksheet/AutoFilter/Column/Rule.php | 468 - .../excel/PHPExcel/Worksheet/BaseDrawing.php | 507 - .../excel/PHPExcel/Worksheet/CellIterator.php | 88 - .../excel/PHPExcel/Worksheet/Column.php | 86 - .../PHPExcel/Worksheet/ColumnCellIterator.php | 216 - .../PHPExcel/Worksheet/ColumnDimension.php | 132 - .../PHPExcel/Worksheet/ColumnIterator.php | 201 - .../excel/PHPExcel/Worksheet/Dimension.php | 178 - .../excel/PHPExcel/Worksheet/Drawing.php | 147 - .../PHPExcel/Worksheet/Drawing/Shadow.php | 296 - .../excel/PHPExcel/Worksheet/HeaderFooter.php | 494 - .../Worksheet/HeaderFooterDrawing.php | 361 - .../PHPExcel/Worksheet/MemoryDrawing.php | 201 - .../excel/PHPExcel/Worksheet/PageMargins.php | 233 - .../excel/PHPExcel/Worksheet/PageSetup.php | 839 -- .../excel/PHPExcel/Worksheet/Protection.php | 581 -- .../extend/excel/PHPExcel/Worksheet/Row.php | 86 - .../PHPExcel/Worksheet/RowCellIterator.php | 225 - .../excel/PHPExcel/Worksheet/RowDimension.php | 132 - .../excel/PHPExcel/Worksheet/RowIterator.php | 192 - .../excel/PHPExcel/Worksheet/SheetView.php | 187 - .../excel/PHPExcel/WorksheetIterator.php | 108 - .../extend/excel/PHPExcel/Writer/Abstract.php | 157 - .../RTP/extend/excel/PHPExcel/Writer/CSV.php | 352 - .../excel/PHPExcel/Writer/Excel2007.php | 533 - .../excel/PHPExcel/Writer/Excel2007/Chart.php | 1520 --- .../PHPExcel/Writer/Excel2007/Comments.php | 260 - .../Writer/Excel2007/ContentTypes.php | 240 - .../PHPExcel/Writer/Excel2007/DocProps.php | 262 - .../PHPExcel/Writer/Excel2007/Drawing.php | 589 -- .../excel/PHPExcel/Writer/Excel2007/Rels.php | 424 - .../PHPExcel/Writer/Excel2007/RelsRibbon.php | 67 - .../PHPExcel/Writer/Excel2007/RelsVBA.php | 63 - .../PHPExcel/Writer/Excel2007/StringTable.php | 313 - .../excel/PHPExcel/Writer/Excel2007/Style.php | 696 -- .../excel/PHPExcel/Writer/Excel2007/Theme.php | 869 -- .../PHPExcel/Writer/Excel2007/Workbook.php | 448 - .../PHPExcel/Writer/Excel2007/Worksheet.php | 1219 --- .../PHPExcel/Writer/Excel2007/WriterPart.php | 75 - .../extend/excel/PHPExcel/Writer/Excel5.php | 904 -- .../PHPExcel/Writer/Excel5/BIFFwriter.php | 246 - .../excel/PHPExcel/Writer/Excel5/Escher.php | 523 - .../excel/PHPExcel/Writer/Excel5/Font.php | 166 - .../excel/PHPExcel/Writer/Excel5/Parser.php | 1531 --- .../excel/PHPExcel/Writer/Excel5/Workbook.php | 1444 --- .../PHPExcel/Writer/Excel5/Worksheet.php | 4240 -------- .../excel/PHPExcel/Writer/Excel5/Xf.php | 557 - .../excel/PHPExcel/Writer/Exception.php | 46 - .../RTP/extend/excel/PHPExcel/Writer/HTML.php | 1612 --- .../extend/excel/PHPExcel/Writer/IWriter.php | 37 - .../excel/PHPExcel/Writer/OpenDocument.php | 190 - .../Writer/OpenDocument/Cell/Comment.php | 63 - .../PHPExcel/Writer/OpenDocument/Content.php | 272 - .../PHPExcel/Writer/OpenDocument/Meta.php | 95 - .../PHPExcel/Writer/OpenDocument/MetaInf.php | 87 - .../PHPExcel/Writer/OpenDocument/Mimetype.php | 41 - .../PHPExcel/Writer/OpenDocument/Settings.php | 76 - .../PHPExcel/Writer/OpenDocument/Styles.php | 92 - .../Writer/OpenDocument/Thumbnails.php | 41 - .../Writer/OpenDocument/WriterPart.php | 30 - .../RTP/extend/excel/PHPExcel/Writer/PDF.php | 89 - .../extend/excel/PHPExcel/Writer/PDF/Core.php | 355 - .../excel/PHPExcel/Writer/PDF/DomPDF.php | 108 - .../extend/excel/PHPExcel/Writer/PDF/mPDF.php | 118 - .../excel/PHPExcel/Writer/PDF/tcPDF.php | 123 - .../extend/excel/PHPExcel/locale/bg/config | 49 - .../extend/excel/PHPExcel/locale/cs/config | 47 - .../extend/excel/PHPExcel/locale/cs/functions | 438 - .../extend/excel/PHPExcel/locale/da/config | 48 - .../extend/excel/PHPExcel/locale/da/functions | 438 - .../extend/excel/PHPExcel/locale/de/config | 47 - .../extend/excel/PHPExcel/locale/de/functions | 438 - .../extend/excel/PHPExcel/locale/en/uk/config | 32 - .../extend/excel/PHPExcel/locale/es/config | 47 - .../extend/excel/PHPExcel/locale/es/functions | 438 - .../extend/excel/PHPExcel/locale/fi/config | 47 - .../extend/excel/PHPExcel/locale/fi/functions | 438 - .../extend/excel/PHPExcel/locale/fr/config | 47 - .../extend/excel/PHPExcel/locale/fr/functions | 438 - .../extend/excel/PHPExcel/locale/hu/config | 47 - .../extend/excel/PHPExcel/locale/hu/functions | 438 - .../extend/excel/PHPExcel/locale/it/config | 47 - .../extend/excel/PHPExcel/locale/it/functions | 438 - .../extend/excel/PHPExcel/locale/nl/config | 47 - .../extend/excel/PHPExcel/locale/nl/functions | 438 - .../extend/excel/PHPExcel/locale/no/config | 47 - .../extend/excel/PHPExcel/locale/no/functions | 438 - .../extend/excel/PHPExcel/locale/pl/config | 47 - .../extend/excel/PHPExcel/locale/pl/functions | 438 - .../extend/excel/PHPExcel/locale/pt/br/config | 47 - .../excel/PHPExcel/locale/pt/br/functions | 408 - .../extend/excel/PHPExcel/locale/pt/config | 47 - .../extend/excel/PHPExcel/locale/pt/functions | 408 - .../extend/excel/PHPExcel/locale/ru/config | 47 - .../extend/excel/PHPExcel/locale/ru/functions | 438 - .../extend/excel/PHPExcel/locale/sv/config | 47 - .../extend/excel/PHPExcel/locale/sv/functions | 408 - .../extend/excel/PHPExcel/locale/tr/config | 47 - .../extend/excel/PHPExcel/locale/tr/functions | 438 - eolinker_os_3.5/server/RTP/rtp.inc.php | 95 - .../Web/Controller/ApiController.class.php | 811 -- .../AutomatedTestCaseController.class.php | 247 - ...AutomatedTestCaseGroupController.class.php | 279 - ...utomatedTestCaseSingleController.class.php | 227 - .../Web/Controller/BackupController.class.php | 99 - .../Controller/DatabaseController.class.php | 298 - .../DatabasePartnerController.class.php | 271 - .../DatabaseTableController.class.php | 182 - .../DatabaseTableFieldController.class.php | 188 - .../Controller/DocumentController.class.php | 264 - .../DocumentGroupController.class.php | 267 - .../Web/Controller/EnvController.class.php | 158 - .../Web/Controller/GroupController.class.php | 255 - .../Web/Controller/GuestController.class.php | 134 - .../Web/Controller/ImportController.class.php | 159 - .../Controller/InstallController.class.php | 112 - .../Controller/MessageController.class.php | 131 - .../Web/Controller/MockController.class.php | 105 - .../Controller/PartnerController.class.php | 253 - .../Controller/ProjectController.class.php | 376 - .../Controller/StatusCodeController.class.php | 304 - .../StatusCodeGroupController.class.php | 259 - .../Web/Controller/TestController.class.php | 783 -- .../Web/Controller/UpdateController.class.php | 137 - .../Web/Controller/UserController.class.php | 141 - .../server/Server/Web/Controller/index.html | 0 .../server/Server/Web/Dao/ApiDao.class.php | 1537 --- .../Server/Web/Dao/AuthorizationDao.class.php | 65 - .../Server/Web/Dao/AutoGenerateDao.class.php | 320 - .../Web/Dao/AutomatedTestCaseDao.class.php | 271 - .../Dao/AutomatedTestCaseGroupDao.class.php | 432 - .../Dao/AutomatedTestCaseSingleDao.class.php | 271 - .../server/Server/Web/Dao/BackupDao.class.php | 313 - .../Server/Web/Dao/DatabaseDao.class.php | 329 - .../Web/Dao/DatabasePartnerDao.class.php | 178 - .../Server/Web/Dao/DatabaseTableDao.class.php | 124 - .../Web/Dao/DatabaseTableFieldDao.class.php | 138 - .../Server/Web/Dao/DocumentDao.class.php | 239 - .../Server/Web/Dao/DocumentGroupDao.class.php | 333 - .../server/Server/Web/Dao/EnvDao.class.php | 354 - .../server/Server/Web/Dao/ExportDao.class.php | 116 - .../server/Server/Web/Dao/GroupDao.class.php | 547 - .../server/Server/Web/Dao/GuestDao.class.php | 89 - .../server/Server/Web/Dao/ImportDao.class.php | 794 -- .../Server/Web/Dao/InstallDao.class.php | 64 - .../Server/Web/Dao/MessageDao.class.php | 139 - .../server/Server/Web/Dao/MockDao.class.php | 121 - .../Server/Web/Dao/PartnerDao.class.php | 219 - .../Server/Web/Dao/ProjectDao.class.php | 591 -- .../Server/Web/Dao/ProjectLogDao.class.php | 127 - .../Server/Web/Dao/StatusCodeDao.class.php | 223 - .../Web/Dao/StatusCodeGroupDao.class.php | 324 - .../Server/Web/Dao/TestHistoryDao.class.php | 120 - .../server/Server/Web/Dao/UpdateDao.class.php | 227 - .../server/Server/Web/Dao/UserDao.class.php | 80 - .../server/Server/Web/Dao/index.html | 0 .../Server/Web/Module/ApiModule.class.php | 1133 -- .../Web/Module/AuthorizationModule.class.php | 47 - .../Web/Module/AutoGenerateModule.class.php | 71 - .../AutomatedTestCaseGroupModule.class.php | 227 - .../Module/AutomatedTestCaseModule.class.php | 215 - .../AutomatedTestCaseSingleModule.class.php | 195 - .../Server/Web/Module/BackupModule.class.php | 76 - .../Web/Module/DatabaseModule.class.php | 238 - .../Module/DatabasePartnerModule.class.php | 177 - .../Module/DatabaseTableFieldModule.class.php | 131 - .../Web/Module/DatabaseTableModule.class.php | 117 - .../Web/Module/DocumentGroupModule.class.php | 246 - .../Web/Module/DocumentModule.class.php | 215 - .../Server/Web/Module/EnvModule.class.php | 126 - .../Server/Web/Module/GroupModule.class.php | 252 - .../Server/Web/Module/GuestModule.class.php | 91 - .../Server/Web/Module/ImportModule.class.php | 1120 -- .../Server/Web/Module/InstallModule.class.php | 218 - .../Server/Web/Module/MessageModule.class.php | 85 - .../Server/Web/Module/MockModule.class.php | 59 - .../Server/Web/Module/PartnerModule.class.php | 224 - .../Server/Web/Module/ProjectModule.class.php | 313 - .../Server/Web/Module/ProxyModule.class.php | 215 - .../Module/StatusCodeGroupModule.class.php | 230 - .../Web/Module/StatusCodeModule.class.php | 240 - .../Web/Module/TestHistoryModule.class.php | 101 - .../Server/Web/Module/UpdateModule.class.php | 97 - .../Server/Web/Module/UserModule.class.php | 85 - .../server/Server/Web/Module/index.html | 0 eolinker_os_3.5/server/Server/Web/index.html | 0 eolinker_os_3.5/server/dump/.gitignore | 1 - eolinker_os_3.5/server/index.php | 23 - eolinker_os_3.5/styles/app-1a87295f28.css | 1 - eolinker_os_3.5/styles/app-23eaab1923.css | 1 - eolinker_os_3.5/styles/app-c54662e77c.css | 1 - .../vendor/clipboard/dist/clipboard.min.js | 1 - .../vendor/highcharts/highcharts.js | 7 - .../vendor/highcharts/js/highcharts.js | 6 - .../vendor/highcharts/modules/exporting.js | 1 - eolinker_os_3.5/vendor/mockjs/dist/mock.js | 4 - .../vendor/particles.js/demo/particles.json | 116 - .../wangEditor/dist/js/lib/jquery-2.2.1.js | 3 - eolinker_os_4.0/README.txt | 16 - eolinker_os_4.0/assets/font/icomoon.eot | Bin 15648 -> 0 bytes eolinker_os_4.0/assets/font/icomoon.svg | 76 - eolinker_os_4.0/assets/font/icomoon.ttf | Bin 15484 -> 0 bytes eolinker_os_4.0/assets/font/icomoon.woff | Bin 15560 -> 0 bytes eolinker_os_4.0/assets/font/iconfont.eot | Bin 42768 -> 0 bytes eolinker_os_4.0/assets/font/iconfont.svg | 540 - eolinker_os_4.0/assets/font/iconfont.ttf | Bin 42600 -> 0 bytes eolinker_os_4.0/assets/font/iconfont.woff | Bin 24976 -> 0 bytes .../assets/images/autoGeneration_intro.png | Bin 12897 -> 0 bytes .../assets/images/db_upload_icons.png | Bin 4242 -> 0 bytes .../assets/images/eolinker_sim.png | Bin 2340 -> 0 bytes .../assets/images/eolinker_sim_w.png | Bin 2363 -> 0 bytes .../assets/images/export_icons.png | Bin 7409 -> 0 bytes eolinker_os_4.0/assets/images/favicon.ico | Bin 1150 -> 0 bytes eolinker_os_4.0/assets/images/loading.gif | Bin 4055 -> 0 bytes eolinker_os_4.0/assets/images/logo_admin.png | Bin 1550 -> 0 bytes .../assets/images/upload_icons.png | Bin 11220 -> 0 bytes .../assets/office/statusCode_Import.xls | Bin 19968 -> 0 bytes eolinker_os_4.0/index.php | 50 - eolinker_os_4.0/libs/ace-builds/src/ace.js | 12 - .../libs/ace-builds/src/mode-javascript.js | 1 - .../libs/ace-builds/src/mode-json.js | 1 - .../libs/ace-builds/src/worker-javascript.js | 6 - .../libs/ace-builds/src/worker-json.js | 1 - .../dist/angular-local-storage.js | 1 - .../libs/angular-qiniu-upload/src/qupload.js | 1 - .../libs/editor.md/css/editormd.min.css | 5 - .../libs/editor.md/editormd.min.js | 2 - .../editor.md/fonts/fontawesome-webfont.eot | Bin 60767 -> 0 bytes .../editor.md/fonts/fontawesome-webfont.svg | 565 - .../editor.md/fonts/fontawesome-webfont.ttf | Bin 122092 -> 0 bytes .../editor.md/fonts/fontawesome-webfont.woff | Bin 71508 -> 0 bytes .../editor.md/fonts/fontawesome-webfont.woff2 | Bin 56780 -> 0 bytes .../libs/editor.md/images/loading.gif | Bin 7726 -> 0 bytes .../libs/editor.md/lib/codemirror/AUTHORS | 436 - .../libs/editor.md/lib/codemirror/LICENSE | 19 - .../libs/editor.md/lib/codemirror/README.md | 12 - .../lib/codemirror/addon/comment/comment.js | 1 - .../addon/comment/continuecomment.js | 1 - .../lib/codemirror/addon/dialog/dialog.css | 32 - .../lib/codemirror/addon/dialog/dialog.js | 1 - .../codemirror/addon/display/fullscreen.css | 6 - .../codemirror/addon/display/fullscreen.js | 1 - .../lib/codemirror/addon/display/panel.js | 1 - .../codemirror/addon/display/placeholder.js | 1 - .../lib/codemirror/addon/display/rulers.js | 1 - .../codemirror/addon/edit/closebrackets.js | 1 - .../lib/codemirror/addon/edit/closetag.js | 1 - .../lib/codemirror/addon/edit/continuelist.js | 1 - .../codemirror/addon/edit/matchbrackets.js | 1 - .../lib/codemirror/addon/edit/matchtags.js | 1 - .../codemirror/addon/edit/trailingspace.js | 1 - .../lib/codemirror/addon/fold/brace-fold.js | 1 - .../lib/codemirror/addon/fold/comment-fold.js | 1 - .../lib/codemirror/addon/fold/foldcode.js | 1 - .../lib/codemirror/addon/fold/foldgutter.css | 20 - .../lib/codemirror/addon/fold/foldgutter.js | 1 - .../lib/codemirror/addon/fold/indent-fold.js | 1 - .../codemirror/addon/fold/markdown-fold.js | 1 - .../lib/codemirror/addon/fold/xml-fold.js | 1 - .../lib/codemirror/addon/hint/anyword-hint.js | 1 - .../lib/codemirror/addon/hint/css-hint.js | 1 - .../lib/codemirror/addon/hint/html-hint.js | 1 - .../codemirror/addon/hint/javascript-hint.js | 1 - .../lib/codemirror/addon/hint/show-hint.css | 38 - .../lib/codemirror/addon/hint/show-hint.js | 1 - .../lib/codemirror/addon/hint/sql-hint.js | 1 - .../lib/codemirror/addon/hint/xml-hint.js | 1 - .../addon/lint/coffeescript-lint.js | 1 - .../lib/codemirror/addon/lint/css-lint.js | 1 - .../codemirror/addon/lint/javascript-lint.js | 1 - .../lib/codemirror/addon/lint/json-lint.js | 1 - .../lib/codemirror/addon/lint/lint.css | 73 - .../lib/codemirror/addon/lint/lint.js | 1 - .../lib/codemirror/addon/lint/yaml-lint.js | 1 - .../lib/codemirror/addon/merge/merge.css | 112 - .../lib/codemirror/addon/merge/merge.js | 1 - .../lib/codemirror/addon/mode/loadmode.js | 1 - .../lib/codemirror/addon/mode/multiplex.js | 1 - .../codemirror/addon/mode/multiplex_test.js | 1 - .../lib/codemirror/addon/mode/overlay.js | 1 - .../lib/codemirror/addon/mode/simple.js | 1 - .../lib/codemirror/addon/runmode/colorize.js | 1 - .../addon/runmode/runmode-standalone.js | 1 - .../lib/codemirror/addon/runmode/runmode.js | 1 - .../codemirror/addon/runmode/runmode.node.js | 1 - .../addon/scroll/annotatescrollbar.js | 1 - .../codemirror/addon/scroll/scrollpastend.js | 1 - .../addon/scroll/simplescrollbars.css | 66 - .../addon/scroll/simplescrollbars.js | 1 - .../addon/search/match-highlighter.js | 1 - .../addon/search/matchesonscrollbar.css | 8 - .../addon/search/matchesonscrollbar.js | 1 - .../lib/codemirror/addon/search/search.js | 1 - .../codemirror/addon/search/searchcursor.js | 1 - .../codemirror/addon/selection/active-line.js | 1 - .../addon/selection/mark-selection.js | 1 - .../addon/selection/selection-pointer.js | 1 - .../lib/codemirror/addon/tern/tern.css | 86 - .../lib/codemirror/addon/tern/tern.js | 1 - .../lib/codemirror/addon/tern/worker.js | 1 - .../lib/codemirror/addon/wrap/hardwrap.js | 1 - .../editor.md/lib/codemirror/addons.min.js | 2 - .../libs/editor.md/lib/codemirror/bower.json | 16 - .../lib/codemirror/codemirror.min.css | 3 - .../lib/codemirror/codemirror.min.js | 5 - .../lib/codemirror/lib/codemirror.css | 331 - .../lib/codemirror/lib/codemirror.js | 5 - .../editor.md/lib/codemirror/mode/apl/apl.js | 1 - .../lib/codemirror/mode/apl/index.html | 72 - .../lib/codemirror/mode/asterisk/asterisk.js | 1 - .../lib/codemirror/mode/asterisk/index.html | 154 - .../lib/codemirror/mode/clike/clike.js | 1 - .../lib/codemirror/mode/clike/index.html | 251 - .../lib/codemirror/mode/clike/scala.html | 767 -- .../lib/codemirror/mode/clojure/clojure.js | 1 - .../lib/codemirror/mode/clojure/index.html | 88 - .../lib/codemirror/mode/cobol/cobol.js | 1 - .../lib/codemirror/mode/cobol/index.html | 210 - .../mode/coffeescript/coffeescript.js | 1 - .../codemirror/mode/coffeescript/index.html | 740 -- .../codemirror/mode/commonlisp/commonlisp.js | 1 - .../lib/codemirror/mode/commonlisp/index.html | 177 - .../editor.md/lib/codemirror/mode/css/css.js | 1 - .../lib/codemirror/mode/css/index.html | 75 - .../lib/codemirror/mode/css/less.html | 152 - .../lib/codemirror/mode/css/less_test.js | 1 - .../lib/codemirror/mode/css/scss.html | 157 - .../lib/codemirror/mode/css/scss_test.js | 1 - .../editor.md/lib/codemirror/mode/css/test.js | 1 - .../lib/codemirror/mode/cypher/cypher.js | 1 - .../lib/codemirror/mode/cypher/index.html | 63 - .../libs/editor.md/lib/codemirror/mode/d/d.js | 1 - .../lib/codemirror/mode/d/index.html | 273 - .../lib/codemirror/mode/dart/dart.js | 1 - .../lib/codemirror/mode/dart/index.html | 71 - .../lib/codemirror/mode/diff/diff.js | 1 - .../lib/codemirror/mode/diff/index.html | 117 - .../lib/codemirror/mode/django/django.js | 1 - .../lib/codemirror/mode/django/index.html | 63 - .../codemirror/mode/dockerfile/dockerfile.js | 1 - .../lib/codemirror/mode/dockerfile/index.html | 73 - .../editor.md/lib/codemirror/mode/dtd/dtd.js | 1 - .../lib/codemirror/mode/dtd/index.html | 89 - .../lib/codemirror/mode/dylan/dylan.js | 1 - .../lib/codemirror/mode/dylan/index.html | 407 - .../lib/codemirror/mode/ebnf/ebnf.js | 1 - .../lib/codemirror/mode/ebnf/index.html | 102 - .../editor.md/lib/codemirror/mode/ecl/ecl.js | 1 - .../lib/codemirror/mode/ecl/index.html | 52 - .../lib/codemirror/mode/eiffel/eiffel.js | 1 - .../lib/codemirror/mode/eiffel/index.html | 429 - .../lib/codemirror/mode/erlang/erlang.js | 1 - .../lib/codemirror/mode/erlang/index.html | 76 - .../lib/codemirror/mode/forth/forth.js | 1 - .../lib/codemirror/mode/forth/index.html | 75 - .../lib/codemirror/mode/fortran/fortran.js | 1 - .../lib/codemirror/mode/fortran/index.html | 81 - .../editor.md/lib/codemirror/mode/gas/gas.js | 1 - .../lib/codemirror/mode/gas/index.html | 68 - .../editor.md/lib/codemirror/mode/gfm/gfm.js | 1 - .../lib/codemirror/mode/gfm/index.html | 93 - .../editor.md/lib/codemirror/mode/gfm/test.js | 1 - .../lib/codemirror/mode/gherkin/gherkin.js | 1 - .../lib/codemirror/mode/gherkin/index.html | 48 - .../editor.md/lib/codemirror/mode/go/go.js | 1 - .../lib/codemirror/mode/go/index.html | 85 - .../lib/codemirror/mode/groovy/groovy.js | 1 - .../lib/codemirror/mode/groovy/index.html | 84 - .../lib/codemirror/mode/haml/haml.js | 1 - .../lib/codemirror/mode/haml/index.html | 79 - .../lib/codemirror/mode/haml/test.js | 1 - .../lib/codemirror/mode/haskell/haskell.js | 1 - .../lib/codemirror/mode/haskell/index.html | 73 - .../lib/codemirror/mode/haxe/haxe.js | 1 - .../lib/codemirror/mode/haxe/index.html | 124 - .../mode/htmlembedded/htmlembedded.js | 1 - .../codemirror/mode/htmlembedded/index.html | 58 - .../codemirror/mode/htmlmixed/htmlmixed.js | 1 - .../lib/codemirror/mode/htmlmixed/index.html | 89 - .../lib/codemirror/mode/http/http.js | 1 - .../lib/codemirror/mode/http/index.html | 45 - .../editor.md/lib/codemirror/mode/idl/idl.js | 1 - .../lib/codemirror/mode/idl/index.html | 64 - .../editor.md/lib/codemirror/mode/index.html | 134 - .../lib/codemirror/mode/jade/index.html | 70 - .../lib/codemirror/mode/jade/jade.js | 1 - .../lib/codemirror/mode/javascript/index.html | 114 - .../codemirror/mode/javascript/javascript.js | 1 - .../codemirror/mode/javascript/json-ld.html | 72 - .../lib/codemirror/mode/javascript/test.js | 1 - .../mode/javascript/typescript.html | 61 - .../lib/codemirror/mode/jinja2/index.html | 54 - .../lib/codemirror/mode/jinja2/jinja2.js | 1 - .../lib/codemirror/mode/julia/index.html | 195 - .../lib/codemirror/mode/julia/julia.js | 1 - .../lib/codemirror/mode/kotlin/index.html | 89 - .../lib/codemirror/mode/kotlin/kotlin.js | 1 - .../lib/codemirror/mode/livescript/index.html | 459 - .../codemirror/mode/livescript/livescript.js | 1 - .../lib/codemirror/mode/lua/index.html | 85 - .../editor.md/lib/codemirror/mode/lua/lua.js | 1 - .../lib/codemirror/mode/markdown/index.html | 359 - .../lib/codemirror/mode/markdown/markdown.js | 1 - .../lib/codemirror/mode/markdown/test.js | 1 - .../editor.md/lib/codemirror/mode/meta.js | 1 - .../lib/codemirror/mode/mirc/index.html | 160 - .../lib/codemirror/mode/mirc/mirc.js | 1 - .../lib/codemirror/mode/mllike/index.html | 179 - .../lib/codemirror/mode/mllike/mllike.js | 1 - .../lib/codemirror/mode/modelica/index.html | 67 - .../lib/codemirror/mode/modelica/modelica.js | 1 - .../lib/codemirror/mode/nginx/index.html | 181 - .../lib/codemirror/mode/nginx/nginx.js | 1 - .../lib/codemirror/mode/ntriples/index.html | 45 - .../lib/codemirror/mode/ntriples/ntriples.js | 1 - .../lib/codemirror/mode/octave/index.html | 83 - .../lib/codemirror/mode/octave/octave.js | 1 - .../lib/codemirror/mode/pascal/index.html | 61 - .../lib/codemirror/mode/pascal/pascal.js | 1 - .../lib/codemirror/mode/pegjs/index.html | 66 - .../lib/codemirror/mode/pegjs/pegjs.js | 1 - .../lib/codemirror/mode/perl/index.html | 75 - .../lib/codemirror/mode/perl/perl.js | 1 - .../lib/codemirror/mode/php/index.html | 64 - .../editor.md/lib/codemirror/mode/php/php.js | 1 - .../editor.md/lib/codemirror/mode/php/test.js | 1 - .../lib/codemirror/mode/pig/index.html | 55 - .../editor.md/lib/codemirror/mode/pig/pig.js | 1 - .../lib/codemirror/mode/properties/index.html | 53 - .../codemirror/mode/properties/properties.js | 1 - .../lib/codemirror/mode/puppet/index.html | 121 - .../lib/codemirror/mode/puppet/puppet.js | 1 - .../lib/codemirror/mode/python/index.html | 198 - .../lib/codemirror/mode/python/python.js | 1 - .../lib/codemirror/mode/q/index.html | 144 - .../libs/editor.md/lib/codemirror/mode/q/q.js | 1 - .../lib/codemirror/mode/r/index.html | 85 - .../libs/editor.md/lib/codemirror/mode/r/r.js | 1 - .../codemirror/mode/rpm/changes/index.html | 66 - .../lib/codemirror/mode/rpm/index.html | 149 - .../editor.md/lib/codemirror/mode/rpm/rpm.js | 1 - .../lib/codemirror/mode/rst/index.html | 535 - .../editor.md/lib/codemirror/mode/rst/rst.js | 1 - .../lib/codemirror/mode/ruby/index.html | 183 - .../lib/codemirror/mode/ruby/ruby.js | 1 - .../lib/codemirror/mode/ruby/test.js | 1 - .../lib/codemirror/mode/rust/index.html | 60 - .../lib/codemirror/mode/rust/rust.js | 1 - .../lib/codemirror/mode/sass/index.html | 66 - .../lib/codemirror/mode/sass/sass.js | 1 - .../lib/codemirror/mode/scheme/index.html | 77 - .../lib/codemirror/mode/scheme/scheme.js | 1 - .../lib/codemirror/mode/shell/index.html | 66 - .../lib/codemirror/mode/shell/shell.js | 1 - .../lib/codemirror/mode/shell/test.js | 1 - .../lib/codemirror/mode/sieve/index.html | 93 - .../lib/codemirror/mode/sieve/sieve.js | 1 - .../lib/codemirror/mode/slim/index.html | 96 - .../lib/codemirror/mode/slim/slim.js | 1 - .../lib/codemirror/mode/slim/test.js | 1 - .../lib/codemirror/mode/smalltalk/index.html | 68 - .../codemirror/mode/smalltalk/smalltalk.js | 1 - .../lib/codemirror/mode/smarty/index.html | 136 - .../lib/codemirror/mode/smarty/smarty.js | 1 - .../codemirror/mode/smartymixed/index.html | 114 - .../mode/smartymixed/smartymixed.js | 1 - .../lib/codemirror/mode/solr/index.html | 57 - .../lib/codemirror/mode/solr/solr.js | 1 - .../lib/codemirror/mode/soy/index.html | 68 - .../editor.md/lib/codemirror/mode/soy/soy.js | 1 - .../lib/codemirror/mode/sparql/index.html | 61 - .../lib/codemirror/mode/sparql/sparql.js | 1 - .../codemirror/mode/spreadsheet/index.html | 42 - .../mode/spreadsheet/spreadsheet.js | 1 - .../lib/codemirror/mode/sql/index.html | 84 - .../editor.md/lib/codemirror/mode/sql/sql.js | 1 - .../lib/codemirror/mode/stex/index.html | 110 - .../lib/codemirror/mode/stex/stex.js | 1 - .../lib/codemirror/mode/stex/test.js | 1 - .../lib/codemirror/mode/stylus/index.html | 104 - .../lib/codemirror/mode/stylus/stylus.js | 1 - .../lib/codemirror/mode/tcl/index.html | 142 - .../editor.md/lib/codemirror/mode/tcl/tcl.js | 1 - .../lib/codemirror/mode/textile/index.html | 191 - .../lib/codemirror/mode/textile/test.js | 1 - .../lib/codemirror/mode/textile/textile.js | 1 - .../lib/codemirror/mode/tiddlywiki/index.html | 154 - .../codemirror/mode/tiddlywiki/tiddlywiki.css | 14 - .../codemirror/mode/tiddlywiki/tiddlywiki.js | 1 - .../lib/codemirror/mode/tiki/index.html | 95 - .../lib/codemirror/mode/tiki/tiki.css | 26 - .../lib/codemirror/mode/tiki/tiki.js | 1 - .../lib/codemirror/mode/toml/index.html | 73 - .../lib/codemirror/mode/toml/toml.js | 1 - .../lib/codemirror/mode/tornado/index.html | 63 - .../lib/codemirror/mode/tornado/tornado.js | 1 - .../lib/codemirror/mode/turtle/index.html | 50 - .../lib/codemirror/mode/turtle/turtle.js | 1 - .../lib/codemirror/mode/vb/index.html | 102 - .../editor.md/lib/codemirror/mode/vb/vb.js | 1 - .../lib/codemirror/mode/vbscript/index.html | 55 - .../lib/codemirror/mode/vbscript/vbscript.js | 1 - .../lib/codemirror/mode/velocity/index.html | 118 - .../lib/codemirror/mode/velocity/velocity.js | 1 - .../lib/codemirror/mode/verilog/index.html | 120 - .../lib/codemirror/mode/verilog/test.js | 1 - .../lib/codemirror/mode/verilog/verilog.js | 1 - .../lib/codemirror/mode/xml/index.html | 57 - .../editor.md/lib/codemirror/mode/xml/test.js | 1 - .../editor.md/lib/codemirror/mode/xml/xml.js | 1 - .../lib/codemirror/mode/xquery/index.html | 210 - .../lib/codemirror/mode/xquery/test.js | 1 - .../lib/codemirror/mode/xquery/xquery.js | 1 - .../lib/codemirror/mode/yaml/index.html | 80 - .../lib/codemirror/mode/yaml/yaml.js | 1 - .../lib/codemirror/mode/z80/index.html | 52 - .../editor.md/lib/codemirror/mode/z80/z80.js | 1 - .../editor.md/lib/codemirror/modes.min.js | 7 - .../editor.md/lib/codemirror/package.json | 21 - .../lib/codemirror/theme/3024-day.css | 40 - .../lib/codemirror/theme/3024-night.css | 39 - .../lib/codemirror/theme/ambiance-mobile.css | 5 - .../lib/codemirror/theme/ambiance.css | 75 - .../lib/codemirror/theme/base16-dark.css | 38 - .../lib/codemirror/theme/base16-light.css | 38 - .../lib/codemirror/theme/blackboard.css | 32 - .../editor.md/lib/codemirror/theme/cobalt.css | 25 - .../lib/codemirror/theme/colorforth.css | 33 - .../lib/codemirror/theme/eclipse.css | 23 - .../lib/codemirror/theme/elegant.css | 13 - .../lib/codemirror/theme/erlang-dark.css | 34 - .../lib/codemirror/theme/lesser-dark.css | 47 - .../editor.md/lib/codemirror/theme/mbo.css | 37 - .../lib/codemirror/theme/mdn-like.css | 46 - .../lib/codemirror/theme/midnight.css | 47 - .../lib/codemirror/theme/monokai.css | 33 - .../editor.md/lib/codemirror/theme/neat.css | 12 - .../editor.md/lib/codemirror/theme/neo.css | 43 - .../editor.md/lib/codemirror/theme/night.css | 28 - .../lib/codemirror/theme/paraiso-dark.css | 38 - .../lib/codemirror/theme/paraiso-light.css | 38 - .../lib/codemirror/theme/pastel-on-dark.css | 53 - .../lib/codemirror/theme/rubyblue.css | 25 - .../lib/codemirror/theme/solarized.css | 165 - .../lib/codemirror/theme/the-matrix.css | 30 - .../theme/tomorrow-night-bright.css | 35 - .../theme/tomorrow-night-eighties.css | 38 - .../lib/codemirror/theme/twilight.css | 32 - .../lib/codemirror/theme/vibrant-ink.css | 34 - .../lib/codemirror/theme/xq-dark.css | 53 - .../lib/codemirror/theme/xq-light.css | 43 - .../lib/codemirror/theme/zenburn.css | 37 - .../libs/editor.md/lib/flowchart.min.js | 1 - .../editor.md/lib/jquery.flowchart.min.js | 1 - .../libs/editor.md/lib/marked.min.js | 1 - .../libs/editor.md/lib/prettify.min.js | 1 - .../libs/editor.md/lib/raphael.min.js | 3 - .../editor.md/lib/sequence-diagram.min.js | 3 - .../libs/editor.md/lib/underscore.min.js | 1 - .../plugins/link-dialog/link-dialog.js | 1 - .../plugins/table-dialog/table-dialog.js | 1 - .../libs/highlight.js/lib/highlight.pack.js | 1 - .../libs/highlight.js/styles/rainbow.css | 95 - eolinker_os_4.0/libs/imgCrop/ng-img-crop.js | 1 - .../dist/js/lib/plupload.full.min.js | 4 - .../libs/wangEditor/dist/js/lib/qiniu.min.js | 1 - .../libs/wangEditor/dist/js/wangEditor.min.js | 3 - eolinker_os_4.0/scripts/app-48f55cda61.js | 31 - eolinker_os_4.0/scripts/app-f957a3e843.js | 32 - .../server/RTP/Common/EasyFunction.php | 235 - .../server/RTP/Common/UpdateFunction.php | 59 - .../RTP/Module/AutomaticallyModule.class.php | 149 - .../RTP/Module/DatabaseModule.class.php | 303 - .../RTP/Module/ExceptionModule.class.php | 83 - .../server/RTP/Module/FileModule.class.php | 89 - .../RTP/Module/OutputStorageModule.class.php | 118 - .../RTP/Module/RegistryModule.class.php | 123 - eolinker_os_4.0/server/RTP/config/version.php | 3 - .../server/RTP/db/eolinker_os_mysql.sql | 397 - .../server/RTP/extend/excel/PHPExcel.php | 1153 -- .../RTP/extend/excel/PHPExcel/Autoloader.php | 81 - .../PHPExcel/CachedObjectStorage/APC.php | 290 - .../CachedObjectStorage/CacheBase.php | 368 - .../PHPExcel/CachedObjectStorage/DiscISAM.php | 208 - .../PHPExcel/CachedObjectStorage/ICache.php | 103 - .../PHPExcel/CachedObjectStorage/Igbinary.php | 149 - .../PHPExcel/CachedObjectStorage/Memcache.php | 308 - .../PHPExcel/CachedObjectStorage/Memory.php | 118 - .../CachedObjectStorage/MemoryGZip.php | 133 - .../CachedObjectStorage/MemorySerialized.php | 129 - .../PHPExcel/CachedObjectStorage/PHPTemp.php | 200 - .../PHPExcel/CachedObjectStorage/SQLite.php | 307 - .../PHPExcel/CachedObjectStorage/SQLite3.php | 346 - .../PHPExcel/CachedObjectStorage/Wincache.php | 289 - .../PHPExcel/CachedObjectStorageFactory.php | 231 - .../CalcEngine/CyclicReferenceStack.php | 94 - .../excel/PHPExcel/CalcEngine/Logger.php | 151 - .../RTP/extend/excel/PHPExcel/Calculation.php | 4391 -------- .../excel/PHPExcel/Calculation/Database.php | 676 -- .../excel/PHPExcel/Calculation/DateTime.php | 1553 --- .../PHPExcel/Calculation/Engineering.php | 2650 ----- .../excel/PHPExcel/Calculation/Exception.php | 46 - .../PHPExcel/Calculation/ExceptionHandler.php | 45 - .../excel/PHPExcel/Calculation/Financial.php | 2359 ----- .../PHPExcel/Calculation/FormulaParser.php | 622 -- .../PHPExcel/Calculation/FormulaToken.php | 176 - .../excel/PHPExcel/Calculation/Function.php | 148 - .../excel/PHPExcel/Calculation/Functions.php | 760 -- .../excel/PHPExcel/Calculation/Logical.php | 285 - .../excel/PHPExcel/Calculation/LookupRef.php | 879 -- .../excel/PHPExcel/Calculation/MathTrig.php | 1459 --- .../PHPExcel/Calculation/Statistical.php | 3745 ------- .../excel/PHPExcel/Calculation/TextData.php | 651 -- .../PHPExcel/Calculation/Token/Stack.php | 111 - .../PHPExcel/Calculation/functionlist.txt | 351 - .../server/RTP/extend/excel/PHPExcel/Cell.php | 1032 -- .../PHPExcel/Cell/AdvancedValueBinder.php | 187 - .../extend/excel/PHPExcel/Cell/DataType.php | 115 - .../excel/PHPExcel/Cell/DataValidation.php | 492 - .../PHPExcel/Cell/DefaultValueBinder.php | 102 - .../extend/excel/PHPExcel/Cell/Hyperlink.php | 124 - .../excel/PHPExcel/Cell/IValueBinder.php | 47 - .../RTP/extend/excel/PHPExcel/Chart.php | 680 -- .../RTP/extend/excel/PHPExcel/Chart/Axis.php | 561 - .../excel/PHPExcel/Chart/DataSeries.php | 390 - .../excel/PHPExcel/Chart/DataSeriesValues.php | 333 - .../extend/excel/PHPExcel/Chart/Exception.php | 46 - .../extend/excel/PHPExcel/Chart/GridLines.php | 472 - .../extend/excel/PHPExcel/Chart/Layout.php | 486 - .../extend/excel/PHPExcel/Chart/Legend.php | 170 - .../extend/excel/PHPExcel/Chart/PlotArea.php | 126 - .../excel/PHPExcel/Chart/Properties.php | 363 - .../Chart/Renderer/PHP Charting Libraries.txt | 20 - .../excel/PHPExcel/Chart/Renderer/jpgraph.php | 883 -- .../RTP/extend/excel/PHPExcel/Chart/Title.php | 86 - .../RTP/extend/excel/PHPExcel/Comment.php | 338 - .../excel/PHPExcel/DocumentProperties.php | 611 -- .../excel/PHPExcel/DocumentSecurity.php | 222 - .../RTP/extend/excel/PHPExcel/Exception.php | 54 - .../RTP/extend/excel/PHPExcel/HashTable.php | 204 - .../RTP/extend/excel/PHPExcel/Helper/HTML.php | 808 -- .../RTP/extend/excel/PHPExcel/IComparable.php | 34 - .../RTP/extend/excel/PHPExcel/IOFactory.php | 289 - .../RTP/extend/excel/PHPExcel/NamedRange.php | 249 - .../extend/excel/PHPExcel/Reader/Abstract.php | 289 - .../RTP/extend/excel/PHPExcel/Reader/CSV.php | 406 - .../PHPExcel/Reader/DefaultReadFilter.php | 51 - .../excel/PHPExcel/Reader/Excel2003XML.php | 801 -- .../excel/PHPExcel/Reader/Excel2007.php | 2051 ---- .../excel/PHPExcel/Reader/Excel2007/Chart.php | 520 - .../excel/PHPExcel/Reader/Excel2007/Theme.php | 127 - .../extend/excel/PHPExcel/Reader/Excel5.php | 7594 -------------- .../excel/PHPExcel/Reader/Excel5/Color.php | 32 - .../PHPExcel/Reader/Excel5/Color/BIFF5.php | 77 - .../PHPExcel/Reader/Excel5/Color/BIFF8.php | 77 - .../PHPExcel/Reader/Excel5/Color/BuiltIn.php | 31 - .../PHPExcel/Reader/Excel5/ErrorCode.php | 28 - .../excel/PHPExcel/Reader/Excel5/Escher.php | 669 -- .../excel/PHPExcel/Reader/Excel5/MD5.php | 203 - .../excel/PHPExcel/Reader/Excel5/RC4.php | 81 - .../PHPExcel/Reader/Excel5/Style/Border.php | 36 - .../Reader/Excel5/Style/FillPattern.php | 41 - .../excel/PHPExcel/Reader/Exception.php | 46 - .../extend/excel/PHPExcel/Reader/Gnumeric.php | 850 -- .../RTP/extend/excel/PHPExcel/Reader/HTML.php | 549 - .../excel/PHPExcel/Reader/IReadFilter.php | 39 - .../extend/excel/PHPExcel/Reader/IReader.php | 46 - .../extend/excel/PHPExcel/Reader/OOCalc.php | 696 -- .../RTP/extend/excel/PHPExcel/Reader/SYLK.php | 478 - .../extend/excel/PHPExcel/ReferenceHelper.php | 913 -- .../RTP/extend/excel/PHPExcel/RichText.php | 191 - .../excel/PHPExcel/RichText/ITextElement.php | 56 - .../extend/excel/PHPExcel/RichText/Run.php | 98 - .../excel/PHPExcel/RichText/TextElement.php | 105 - .../RTP/extend/excel/PHPExcel/Settings.php | 389 - .../extend/excel/PHPExcel/Shared/CodePage.php | 156 - .../RTP/extend/excel/PHPExcel/Shared/Date.php | 418 - .../extend/excel/PHPExcel/Shared/Drawing.php | 270 - .../extend/excel/PHPExcel/Shared/Escher.php | 83 - .../PHPExcel/Shared/Escher/DgContainer.php | 75 - .../Escher/DgContainer/SpgrContainer.php | 102 - .../DgContainer/SpgrContainer/SpContainer.php | 388 - .../PHPExcel/Shared/Escher/DggContainer.php | 196 - .../Escher/DggContainer/BstoreContainer.php | 57 - .../DggContainer/BstoreContainer/BSE.php | 112 - .../DggContainer/BstoreContainer/BSE/Blip.php | 83 - .../extend/excel/PHPExcel/Shared/Excel5.php | 298 - .../RTP/extend/excel/PHPExcel/Shared/File.php | 180 - .../RTP/extend/excel/PHPExcel/Shared/Font.php | 741 -- .../excel/PHPExcel/Shared/JAMA/CHANGELOG.TXT | 16 - .../Shared/JAMA/CholeskyDecomposition.php | 148 - .../Shared/JAMA/EigenvalueDecomposition.php | 864 -- .../PHPExcel/Shared/JAMA/LUDecomposition.php | 257 - .../excel/PHPExcel/Shared/JAMA/Matrix.php | 1159 --- .../PHPExcel/Shared/JAMA/QRDecomposition.php | 235 - .../JAMA/SingularValueDecomposition.php | 528 - .../PHPExcel/Shared/JAMA/utils/Error.php | 83 - .../PHPExcel/Shared/JAMA/utils/Maths.php | 44 - .../RTP/extend/excel/PHPExcel/Shared/OLE.php | 526 - .../Shared/OLE/ChainedBlockStream.php | 206 - .../extend/excel/PHPExcel/Shared/OLE/PPS.php | 230 - .../excel/PHPExcel/Shared/OLE/PPS/File.php | 74 - .../excel/PHPExcel/Shared/OLE/PPS/Root.php | 462 - .../extend/excel/PHPExcel/Shared/OLERead.php | 318 - .../excel/PHPExcel/Shared/PCLZip/gnu-lgpl.txt | 504 - .../PHPExcel/Shared/PCLZip/pclzip.lib.php | 5173 --------- .../excel/PHPExcel/Shared/PCLZip/readme.txt | 421 - .../excel/PHPExcel/Shared/PasswordHasher.php | 67 - .../extend/excel/PHPExcel/Shared/String.php | 819 -- .../extend/excel/PHPExcel/Shared/TimeZone.php | 144 - .../excel/PHPExcel/Shared/XMLWriter.php | 124 - .../excel/PHPExcel/Shared/ZipArchive.php | 163 - .../PHPExcel/Shared/ZipStreamWrapper.php | 200 - .../PHPExcel/Shared/trend/bestFitClass.php | 425 - .../Shared/trend/exponentialBestFitClass.php | 138 - .../Shared/trend/linearBestFitClass.php | 102 - .../Shared/trend/logarithmicBestFitClass.php | 110 - .../Shared/trend/polynomialBestFitClass.php | 222 - .../Shared/trend/powerBestFitClass.php | 138 - .../PHPExcel/Shared/trend/trendClass.php | 147 - .../RTP/extend/excel/PHPExcel/Style.php | 644 -- .../extend/excel/PHPExcel/Style/Alignment.php | 464 - .../extend/excel/PHPExcel/Style/Border.php | 282 - .../extend/excel/PHPExcel/Style/Borders.php | 429 - .../RTP/extend/excel/PHPExcel/Style/Color.php | 443 - .../excel/PHPExcel/Style/Conditional.php | 293 - .../RTP/extend/excel/PHPExcel/Style/Fill.php | 322 - .../RTP/extend/excel/PHPExcel/Style/Font.php | 543 - .../excel/PHPExcel/Style/NumberFormat.php | 751 -- .../excel/PHPExcel/Style/Protection.php | 204 - .../excel/PHPExcel/Style/Supervisor.php | 125 - .../RTP/extend/excel/PHPExcel/Worksheet.php | 2968 ------ .../excel/PHPExcel/Worksheet/AutoFilter.php | 846 -- .../PHPExcel/Worksheet/AutoFilter/Column.php | 405 - .../Worksheet/AutoFilter/Column/Rule.php | 468 - .../excel/PHPExcel/Worksheet/BaseDrawing.php | 507 - .../excel/PHPExcel/Worksheet/CellIterator.php | 88 - .../excel/PHPExcel/Worksheet/Column.php | 86 - .../PHPExcel/Worksheet/ColumnCellIterator.php | 216 - .../PHPExcel/Worksheet/ColumnDimension.php | 132 - .../PHPExcel/Worksheet/ColumnIterator.php | 201 - .../excel/PHPExcel/Worksheet/Dimension.php | 178 - .../excel/PHPExcel/Worksheet/Drawing.php | 147 - .../PHPExcel/Worksheet/Drawing/Shadow.php | 296 - .../excel/PHPExcel/Worksheet/HeaderFooter.php | 494 - .../Worksheet/HeaderFooterDrawing.php | 361 - .../PHPExcel/Worksheet/MemoryDrawing.php | 201 - .../excel/PHPExcel/Worksheet/PageMargins.php | 233 - .../excel/PHPExcel/Worksheet/PageSetup.php | 839 -- .../excel/PHPExcel/Worksheet/Protection.php | 581 -- .../extend/excel/PHPExcel/Worksheet/Row.php | 86 - .../PHPExcel/Worksheet/RowCellIterator.php | 225 - .../excel/PHPExcel/Worksheet/RowDimension.php | 132 - .../excel/PHPExcel/Worksheet/RowIterator.php | 192 - .../excel/PHPExcel/Worksheet/SheetView.php | 187 - .../excel/PHPExcel/WorksheetIterator.php | 108 - .../extend/excel/PHPExcel/Writer/Abstract.php | 157 - .../RTP/extend/excel/PHPExcel/Writer/CSV.php | 352 - .../excel/PHPExcel/Writer/Excel2007.php | 533 - .../excel/PHPExcel/Writer/Excel2007/Chart.php | 1520 --- .../PHPExcel/Writer/Excel2007/Comments.php | 260 - .../Writer/Excel2007/ContentTypes.php | 240 - .../PHPExcel/Writer/Excel2007/DocProps.php | 262 - .../PHPExcel/Writer/Excel2007/Drawing.php | 589 -- .../excel/PHPExcel/Writer/Excel2007/Rels.php | 424 - .../PHPExcel/Writer/Excel2007/RelsRibbon.php | 67 - .../PHPExcel/Writer/Excel2007/RelsVBA.php | 63 - .../PHPExcel/Writer/Excel2007/StringTable.php | 313 - .../excel/PHPExcel/Writer/Excel2007/Style.php | 696 -- .../excel/PHPExcel/Writer/Excel2007/Theme.php | 869 -- .../PHPExcel/Writer/Excel2007/Workbook.php | 448 - .../PHPExcel/Writer/Excel2007/Worksheet.php | 1219 --- .../PHPExcel/Writer/Excel2007/WriterPart.php | 75 - .../extend/excel/PHPExcel/Writer/Excel5.php | 904 -- .../PHPExcel/Writer/Excel5/BIFFwriter.php | 246 - .../excel/PHPExcel/Writer/Excel5/Escher.php | 523 - .../excel/PHPExcel/Writer/Excel5/Font.php | 166 - .../excel/PHPExcel/Writer/Excel5/Parser.php | 1531 --- .../excel/PHPExcel/Writer/Excel5/Workbook.php | 1444 --- .../PHPExcel/Writer/Excel5/Worksheet.php | 4240 -------- .../excel/PHPExcel/Writer/Excel5/Xf.php | 557 - .../excel/PHPExcel/Writer/Exception.php | 46 - .../RTP/extend/excel/PHPExcel/Writer/HTML.php | 1612 --- .../extend/excel/PHPExcel/Writer/IWriter.php | 37 - .../excel/PHPExcel/Writer/OpenDocument.php | 190 - .../Writer/OpenDocument/Cell/Comment.php | 63 - .../PHPExcel/Writer/OpenDocument/Content.php | 272 - .../PHPExcel/Writer/OpenDocument/Meta.php | 95 - .../PHPExcel/Writer/OpenDocument/MetaInf.php | 87 - .../PHPExcel/Writer/OpenDocument/Mimetype.php | 41 - .../PHPExcel/Writer/OpenDocument/Settings.php | 76 - .../PHPExcel/Writer/OpenDocument/Styles.php | 92 - .../Writer/OpenDocument/Thumbnails.php | 41 - .../Writer/OpenDocument/WriterPart.php | 30 - .../RTP/extend/excel/PHPExcel/Writer/PDF.php | 89 - .../extend/excel/PHPExcel/Writer/PDF/Core.php | 355 - .../excel/PHPExcel/Writer/PDF/DomPDF.php | 108 - .../extend/excel/PHPExcel/Writer/PDF/mPDF.php | 118 - .../excel/PHPExcel/Writer/PDF/tcPDF.php | 123 - .../extend/excel/PHPExcel/locale/bg/config | 49 - .../extend/excel/PHPExcel/locale/cs/config | 47 - .../extend/excel/PHPExcel/locale/cs/functions | 438 - .../extend/excel/PHPExcel/locale/da/config | 48 - .../extend/excel/PHPExcel/locale/da/functions | 438 - .../extend/excel/PHPExcel/locale/de/config | 47 - .../extend/excel/PHPExcel/locale/de/functions | 438 - .../extend/excel/PHPExcel/locale/en/uk/config | 32 - .../extend/excel/PHPExcel/locale/es/config | 47 - .../extend/excel/PHPExcel/locale/es/functions | 438 - .../extend/excel/PHPExcel/locale/fi/config | 47 - .../extend/excel/PHPExcel/locale/fi/functions | 438 - .../extend/excel/PHPExcel/locale/fr/config | 47 - .../extend/excel/PHPExcel/locale/fr/functions | 438 - .../extend/excel/PHPExcel/locale/hu/config | 47 - .../extend/excel/PHPExcel/locale/hu/functions | 438 - .../extend/excel/PHPExcel/locale/it/config | 47 - .../extend/excel/PHPExcel/locale/it/functions | 438 - .../extend/excel/PHPExcel/locale/nl/config | 47 - .../extend/excel/PHPExcel/locale/nl/functions | 438 - .../extend/excel/PHPExcel/locale/no/config | 47 - .../extend/excel/PHPExcel/locale/no/functions | 438 - .../extend/excel/PHPExcel/locale/pl/config | 47 - .../extend/excel/PHPExcel/locale/pl/functions | 438 - .../extend/excel/PHPExcel/locale/pt/br/config | 47 - .../excel/PHPExcel/locale/pt/br/functions | 408 - .../extend/excel/PHPExcel/locale/pt/config | 47 - .../extend/excel/PHPExcel/locale/pt/functions | 408 - .../extend/excel/PHPExcel/locale/ru/config | 47 - .../extend/excel/PHPExcel/locale/ru/functions | 438 - .../extend/excel/PHPExcel/locale/sv/config | 47 - .../extend/excel/PHPExcel/locale/sv/functions | 408 - .../extend/excel/PHPExcel/locale/tr/config | 47 - .../extend/excel/PHPExcel/locale/tr/functions | 438 - eolinker_os_4.0/server/RTP/rtp.inc.php | 94 - .../Web/Controller/ApiController.class.php | 811 -- .../AutoGenerateController.class.php | 54 - .../AutomatedTestCaseController.class.php | 247 - ...AutomatedTestCaseGroupController.class.php | 281 - ...utomatedTestCaseSingleController.class.php | 227 - .../Web/Controller/BackupController.class.php | 99 - .../Controller/DatabaseController.class.php | 384 - .../DatabasePartnerController.class.php | 269 - .../DatabaseTableController.class.php | 180 - .../DatabaseTableFieldController.class.php | 186 - .../Controller/DocumentController.class.php | 262 - .../DocumentGroupController.class.php | 267 - .../Web/Controller/EnvController.class.php | 156 - .../Web/Controller/GroupController.class.php | 255 - .../Web/Controller/GuestController.class.php | 132 - .../Web/Controller/ImportController.class.php | 157 - .../Controller/InstallController.class.php | 110 - .../Controller/MessageController.class.php | 129 - .../Web/Controller/MockController.class.php | 103 - .../Controller/PartnerController.class.php | 251 - .../Controller/ProjectController.class.php | 374 - .../Controller/StatusCodeController.class.php | 302 - .../StatusCodeGroupController.class.php | 259 - .../Web/Controller/TestController.class.php | 781 -- .../Web/Controller/UpdateController.class.php | 135 - .../Web/Controller/UserController.class.php | 139 - .../server/Server/Web/Controller/index.html | 0 .../server/Server/Web/Dao/ApiDao.class.php | 1546 --- .../Server/Web/Dao/AuthorizationDao.class.php | 65 - .../Server/Web/Dao/AutoGenerateDao.class.php | 320 - .../Web/Dao/AutomatedTestCaseDao.class.php | 284 - .../Dao/AutomatedTestCaseGroupDao.class.php | 545 - .../Dao/AutomatedTestCaseSingleDao.class.php | 283 - .../server/Server/Web/Dao/BackupDao.class.php | 313 - .../Server/Web/Dao/DatabaseDao.class.php | 381 - .../Web/Dao/DatabasePartnerDao.class.php | 178 - .../Server/Web/Dao/DatabaseTableDao.class.php | 124 - .../Web/Dao/DatabaseTableFieldDao.class.php | 136 - .../Server/Web/Dao/DocumentDao.class.php | 244 - .../Server/Web/Dao/DocumentGroupDao.class.php | 407 - .../server/Server/Web/Dao/EnvDao.class.php | 352 - .../server/Server/Web/Dao/ExportDao.class.php | 114 - .../server/Server/Web/Dao/GroupDao.class.php | 718 -- .../server/Server/Web/Dao/GuestDao.class.php | 87 - .../server/Server/Web/Dao/ImportDao.class.php | 1214 --- .../Server/Web/Dao/InstallDao.class.php | 62 - .../Server/Web/Dao/MessageDao.class.php | 137 - .../server/Server/Web/Dao/MockDao.class.php | 119 - .../Server/Web/Dao/PartnerDao.class.php | 217 - .../Server/Web/Dao/ProjectDao.class.php | 749 -- .../Server/Web/Dao/ProjectLogDao.class.php | 125 - .../Server/Web/Dao/StatusCodeDao.class.php | 241 - .../Web/Dao/StatusCodeGroupDao.class.php | 391 - .../Server/Web/Dao/TestHistoryDao.class.php | 118 - .../server/Server/Web/Dao/UpdateDao.class.php | 225 - .../server/Server/Web/Dao/UserDao.class.php | 78 - .../server/Server/Web/Dao/index.html | 0 .../Server/Web/Module/ApiModule.class.php | 1133 -- .../Web/Module/AuthorizationModule.class.php | 47 - .../Web/Module/AutoGenerateModule.class.php | 71 - .../AutomatedTestCaseGroupModule.class.php | 229 - .../Module/AutomatedTestCaseModule.class.php | 215 - .../AutomatedTestCaseSingleModule.class.php | 195 - .../Server/Web/Module/BackupModule.class.php | 76 - .../Web/Module/DatabaseModule.class.php | 325 - .../Module/DatabasePartnerModule.class.php | 177 - .../Module/DatabaseTableFieldModule.class.php | 129 - .../Web/Module/DatabaseTableModule.class.php | 115 - .../Web/Module/DocumentGroupModule.class.php | 246 - .../Web/Module/DocumentModule.class.php | 213 - .../Server/Web/Module/EnvModule.class.php | 124 - .../Server/Web/Module/GroupModule.class.php | 252 - .../Server/Web/Module/GuestModule.class.php | 89 - .../Server/Web/Module/ImportModule.class.php | 1118 -- .../Server/Web/Module/InstallModule.class.php | 216 - .../Server/Web/Module/MessageModule.class.php | 83 - .../Server/Web/Module/MockModule.class.php | 57 - .../Server/Web/Module/PartnerModule.class.php | 222 - .../Server/Web/Module/ProjectModule.class.php | 311 - .../Server/Web/Module/ProxyModule.class.php | 213 - .../Module/StatusCodeGroupModule.class.php | 230 - .../Web/Module/StatusCodeModule.class.php | 238 - .../Web/Module/TestHistoryModule.class.php | 99 - .../Server/Web/Module/UpdateModule.class.php | 95 - .../Server/Web/Module/UserModule.class.php | 83 - .../server/Server/Web/Module/index.html | 0 eolinker_os_4.0/server/Server/Web/index.html | 0 eolinker_os_4.0/server/index.php | 22 - eolinker_os_4.0/styles/app-612d1cdf00.css | 1 - eolinker_os_4.0/styles/app-bfd94e21a7.css | 1 - .../vendor/clipboard/dist/clipboard.min.js | 1 - .../vendor/highcharts/highcharts.js | 7 - .../vendor/highcharts/js/highcharts.js | 6 - .../vendor/highcharts/modules/exporting.js | 1 - eolinker_os_4.0/vendor/mockjs/dist/mock.js | 4 - .../vendor/particles.js/demo/particles.json | 116 - .../wangEditor/dist/js/lib/jquery-2.2.1.js | 3 - 1491 files changed, 331252 deletions(-) delete mode 100644 eo-chrome-extension-4.0.1/files/test_files/doc.doc delete mode 100644 eo-chrome-extension-4.0.1/files/test_files/docx.docx delete mode 100644 eo-chrome-extension-4.0.1/files/test_files/file_none delete mode 100644 eo-chrome-extension-4.0.1/files/test_files/file_txt.txt delete mode 100644 eo-chrome-extension-4.0.1/files/test_files/pdf.pdf delete mode 100644 eo-chrome-extension-4.0.1/files/test_imgs/img_gif.gif delete mode 100644 eo-chrome-extension-4.0.1/files/test_imgs/img_jpg.jpg delete mode 100644 eo-chrome-extension-4.0.1/files/test_imgs/img_png.png delete mode 100644 eo-chrome-extension-4.0.1/html/popup.html delete mode 100644 eo-chrome-extension-4.0.1/images/icon128.png delete mode 100644 eo-chrome-extension-4.0.1/images/icon16.png delete mode 100644 eo-chrome-extension-4.0.1/images/icon19.png delete mode 100644 eo-chrome-extension-4.0.1/images/icon38.png delete mode 100644 eo-chrome-extension-4.0.1/images/icon48.png delete mode 100644 eo-chrome-extension-4.0.1/images/plugin_logo.jpg delete mode 100644 eo-chrome-extension-4.0.1/js/bundle/content.min.js delete mode 100644 eo-chrome-extension-4.0.1/js/bundle/test.min.js delete mode 100644 eo-chrome-extension-4.0.1/js/libs/crypto-js.js delete mode 100644 eo-chrome-extension-4.0.1/js/libs/jquery-3.2.1.min.js delete mode 100644 eo-chrome-extension-4.0.1/js/libs/polyfill-2.5.0.min.js delete mode 100644 eo-chrome-extension-4.0.1/js/libs/require.js delete mode 100644 eo-chrome-extension-4.0.1/js/libs/xml2json.js delete mode 100644 eo-chrome-extension-4.0.1/manifest.json delete mode 100644 eolinker_os_3.5/README.txt delete mode 100644 eolinker_os_3.5/assets/font/icomoon.eot delete mode 100644 eolinker_os_3.5/assets/font/icomoon.svg delete mode 100644 eolinker_os_3.5/assets/font/icomoon.ttf delete mode 100644 eolinker_os_3.5/assets/font/icomoon.woff delete mode 100644 eolinker_os_3.5/assets/font/iconfont.eot delete mode 100644 eolinker_os_3.5/assets/font/iconfont.svg delete mode 100644 eolinker_os_3.5/assets/font/iconfont.ttf delete mode 100644 eolinker_os_3.5/assets/font/iconfont.woff delete mode 100644 eolinker_os_3.5/assets/images/autoGeneration_intro.png delete mode 100644 eolinker_os_3.5/assets/images/db_upload_icons.png delete mode 100644 eolinker_os_3.5/assets/images/eolinker_sim.png delete mode 100644 eolinker_os_3.5/assets/images/eolinker_sim_w.png delete mode 100644 eolinker_os_3.5/assets/images/export_icons.png delete mode 100644 eolinker_os_3.5/assets/images/favicon.ico delete mode 100644 eolinker_os_3.5/assets/images/loading.gif delete mode 100644 eolinker_os_3.5/assets/images/logo_admin.png delete mode 100644 eolinker_os_3.5/assets/images/upload_icons.png delete mode 100644 eolinker_os_3.5/assets/office/statusCode_Import.xls delete mode 100644 eolinker_os_3.5/index.php delete mode 100644 eolinker_os_3.5/libs/ace-builds/src/ace.js delete mode 100644 eolinker_os_3.5/libs/ace-builds/src/mode-javascript.js delete mode 100644 eolinker_os_3.5/libs/ace-builds/src/mode-json.js delete mode 100644 eolinker_os_3.5/libs/ace-builds/src/worker-javascript.js delete mode 100644 eolinker_os_3.5/libs/ace-builds/src/worker-json.js delete mode 100644 eolinker_os_3.5/libs/angular-local-storage/dist/angular-local-storage.js delete mode 100644 eolinker_os_3.5/libs/angular-qiniu-upload/src/qupload.js delete mode 100644 eolinker_os_3.5/libs/editor.md/css/editormd.min.css delete mode 100644 eolinker_os_3.5/libs/editor.md/editormd.min.js delete mode 100644 eolinker_os_3.5/libs/editor.md/fonts/fontawesome-webfont.eot delete mode 100644 eolinker_os_3.5/libs/editor.md/fonts/fontawesome-webfont.svg delete mode 100644 eolinker_os_3.5/libs/editor.md/fonts/fontawesome-webfont.ttf delete mode 100644 eolinker_os_3.5/libs/editor.md/fonts/fontawesome-webfont.woff delete mode 100644 eolinker_os_3.5/libs/editor.md/fonts/fontawesome-webfont.woff2 delete mode 100644 eolinker_os_3.5/libs/editor.md/images/loading.gif delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/AUTHORS delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/LICENSE delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/README.md delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/comment/comment.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/comment/continuecomment.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/dialog/dialog.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/dialog/dialog.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/display/fullscreen.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/display/fullscreen.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/display/panel.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/display/placeholder.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/display/rulers.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/edit/closebrackets.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/edit/closetag.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/edit/continuelist.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/edit/matchbrackets.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/edit/matchtags.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/edit/trailingspace.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/fold/brace-fold.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/fold/comment-fold.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/fold/foldcode.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/fold/foldgutter.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/fold/foldgutter.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/fold/indent-fold.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/fold/markdown-fold.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/fold/xml-fold.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/anyword-hint.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/css-hint.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/html-hint.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/javascript-hint.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/show-hint.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/show-hint.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/sql-hint.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/xml-hint.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/lint/coffeescript-lint.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/lint/css-lint.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/lint/javascript-lint.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/lint/json-lint.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/lint/lint.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/lint/lint.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/lint/yaml-lint.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/merge/merge.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/merge/merge.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/mode/loadmode.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/mode/multiplex.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/mode/multiplex_test.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/mode/overlay.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/mode/simple.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/runmode/colorize.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/runmode/runmode-standalone.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/runmode/runmode.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/runmode/runmode.node.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/scroll/annotatescrollbar.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/scroll/scrollpastend.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/scroll/simplescrollbars.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/scroll/simplescrollbars.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/search/match-highlighter.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/search/matchesonscrollbar.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/search/matchesonscrollbar.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/search/search.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/search/searchcursor.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/selection/active-line.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/selection/mark-selection.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/selection/selection-pointer.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/tern/tern.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/tern/tern.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/tern/worker.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/wrap/hardwrap.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/addons.min.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/bower.json delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/codemirror.min.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/codemirror.min.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/lib/codemirror.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/lib/codemirror.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/apl/apl.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/apl/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/asterisk/asterisk.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/asterisk/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/clike/clike.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/clike/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/clike/scala.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/clojure/clojure.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/clojure/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/cobol/cobol.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/cobol/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/coffeescript/coffeescript.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/coffeescript/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/commonlisp/commonlisp.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/commonlisp/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/css/css.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/css/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/css/less.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/css/less_test.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/css/scss.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/css/scss_test.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/css/test.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/cypher/cypher.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/cypher/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/d/d.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/d/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/dart/dart.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/dart/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/diff/diff.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/diff/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/django/django.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/django/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/dockerfile/dockerfile.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/dockerfile/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/dtd/dtd.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/dtd/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/dylan/dylan.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/dylan/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/ebnf/ebnf.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/ebnf/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/ecl/ecl.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/ecl/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/eiffel/eiffel.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/eiffel/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/erlang/erlang.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/erlang/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/forth/forth.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/forth/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/fortran/fortran.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/fortran/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/gas/gas.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/gas/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/gfm/gfm.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/gfm/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/gfm/test.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/gherkin/gherkin.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/gherkin/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/go/go.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/go/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/groovy/groovy.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/groovy/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/haml/haml.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/haml/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/haml/test.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/haskell/haskell.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/haskell/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/haxe/haxe.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/haxe/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/htmlembedded/htmlembedded.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/htmlembedded/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/htmlmixed/htmlmixed.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/htmlmixed/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/http/http.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/http/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/idl/idl.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/idl/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/jade/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/jade/jade.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/javascript/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/javascript/javascript.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/javascript/json-ld.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/javascript/test.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/javascript/typescript.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/jinja2/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/jinja2/jinja2.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/julia/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/julia/julia.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/kotlin/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/kotlin/kotlin.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/livescript/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/livescript/livescript.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/lua/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/lua/lua.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/markdown/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/markdown/markdown.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/markdown/test.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/meta.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/mirc/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/mirc/mirc.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/mllike/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/mllike/mllike.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/modelica/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/modelica/modelica.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/nginx/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/nginx/nginx.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/ntriples/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/ntriples/ntriples.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/octave/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/octave/octave.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/pascal/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/pascal/pascal.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/pegjs/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/pegjs/pegjs.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/perl/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/perl/perl.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/php/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/php/php.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/php/test.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/pig/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/pig/pig.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/properties/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/properties/properties.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/puppet/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/puppet/puppet.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/python/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/python/python.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/q/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/q/q.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/r/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/r/r.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/rpm/changes/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/rpm/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/rpm/rpm.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/rst/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/rst/rst.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/ruby/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/ruby/ruby.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/ruby/test.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/rust/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/rust/rust.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/sass/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/sass/sass.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/scheme/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/scheme/scheme.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/shell/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/shell/shell.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/shell/test.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/sieve/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/sieve/sieve.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/slim/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/slim/slim.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/slim/test.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/smalltalk/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/smalltalk/smalltalk.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/smarty/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/smarty/smarty.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/smartymixed/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/smartymixed/smartymixed.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/solr/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/solr/solr.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/soy/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/soy/soy.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/sparql/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/sparql/sparql.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/spreadsheet/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/spreadsheet/spreadsheet.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/sql/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/sql/sql.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/stex/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/stex/stex.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/stex/test.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/stylus/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/stylus/stylus.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/tcl/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/tcl/tcl.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/textile/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/textile/test.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/textile/textile.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/tiddlywiki/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/tiddlywiki/tiddlywiki.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/tiddlywiki/tiddlywiki.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/tiki/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/tiki/tiki.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/tiki/tiki.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/toml/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/toml/toml.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/tornado/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/tornado/tornado.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/turtle/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/turtle/turtle.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/vb/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/vb/vb.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/vbscript/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/vbscript/vbscript.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/velocity/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/velocity/velocity.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/verilog/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/verilog/test.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/verilog/verilog.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/xml/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/xml/test.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/xml/xml.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/xquery/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/xquery/test.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/xquery/xquery.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/yaml/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/yaml/yaml.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/z80/index.html delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/mode/z80/z80.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/modes.min.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/package.json delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/3024-day.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/3024-night.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/ambiance-mobile.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/ambiance.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/base16-dark.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/base16-light.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/blackboard.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/cobalt.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/colorforth.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/eclipse.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/elegant.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/erlang-dark.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/lesser-dark.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/mbo.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/mdn-like.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/midnight.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/monokai.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/neat.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/neo.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/night.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/paraiso-dark.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/paraiso-light.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/pastel-on-dark.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/rubyblue.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/solarized.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/the-matrix.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/tomorrow-night-bright.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/tomorrow-night-eighties.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/twilight.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/vibrant-ink.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/xq-dark.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/xq-light.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/codemirror/theme/zenburn.css delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/flowchart.min.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/jquery.flowchart.min.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/marked.min.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/prettify.min.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/raphael.min.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/sequence-diagram.min.js delete mode 100644 eolinker_os_3.5/libs/editor.md/lib/underscore.min.js delete mode 100644 eolinker_os_3.5/libs/editor.md/plugins/link-dialog/link-dialog.js delete mode 100644 eolinker_os_3.5/libs/editor.md/plugins/table-dialog/table-dialog.js delete mode 100644 eolinker_os_3.5/libs/highlight.js/lib/highlight.pack.js delete mode 100644 eolinker_os_3.5/libs/highlight.js/styles/rainbow.css delete mode 100644 eolinker_os_3.5/libs/imgCrop/ng-img-crop.js delete mode 100644 eolinker_os_3.5/libs/wangEditor/dist/js/lib/plupload.full.min.js delete mode 100644 eolinker_os_3.5/libs/wangEditor/dist/js/lib/qiniu.min.js delete mode 100644 eolinker_os_3.5/libs/wangEditor/dist/js/wangEditor.min.js delete mode 100644 eolinker_os_3.5/scripts/app-923417719b.js delete mode 100644 eolinker_os_3.5/scripts/app-c2ea64f5eb.js delete mode 100644 eolinker_os_3.5/scripts/app-f62544148c.js delete mode 100644 eolinker_os_3.5/server/RTP/Common/EasyFunction.php delete mode 100644 eolinker_os_3.5/server/RTP/Common/UpdateFunction.php delete mode 100644 eolinker_os_3.5/server/RTP/Module/AutomaticallyModule.class.php delete mode 100644 eolinker_os_3.5/server/RTP/Module/DatabaseModule.class.php delete mode 100644 eolinker_os_3.5/server/RTP/Module/ExceptionModule.class.php delete mode 100644 eolinker_os_3.5/server/RTP/Module/FileModule.class.php delete mode 100644 eolinker_os_3.5/server/RTP/Module/OutputStorageModule.class.php delete mode 100644 eolinker_os_3.5/server/RTP/Module/RegistryModule.class.php delete mode 100644 eolinker_os_3.5/server/RTP/config/version.php delete mode 100644 eolinker_os_3.5/server/RTP/db/eolinker_os_mysql.sql delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Autoloader.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/CachedObjectStorage/APC.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/CachedObjectStorage/CacheBase.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/CachedObjectStorage/DiscISAM.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/CachedObjectStorage/ICache.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/CachedObjectStorage/Igbinary.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/CachedObjectStorage/Memcache.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/CachedObjectStorage/Memory.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/CachedObjectStorage/MemoryGZip.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/CachedObjectStorage/MemorySerialized.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/CachedObjectStorage/PHPTemp.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/CachedObjectStorage/SQLite.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/CachedObjectStorage/SQLite3.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/CachedObjectStorage/Wincache.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/CachedObjectStorageFactory.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/CalcEngine/CyclicReferenceStack.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/CalcEngine/Logger.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Calculation.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Calculation/Database.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Calculation/DateTime.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Calculation/Engineering.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Calculation/Exception.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Calculation/ExceptionHandler.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Calculation/Financial.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Calculation/FormulaParser.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Calculation/FormulaToken.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Calculation/Function.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Calculation/Functions.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Calculation/Logical.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Calculation/LookupRef.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Calculation/MathTrig.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Calculation/Statistical.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Calculation/TextData.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Calculation/Token/Stack.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Calculation/functionlist.txt delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Cell.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Cell/AdvancedValueBinder.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Cell/DataType.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Cell/DataValidation.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Cell/DefaultValueBinder.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Cell/Hyperlink.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Cell/IValueBinder.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Chart.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Chart/Axis.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Chart/DataSeries.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Chart/DataSeriesValues.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Chart/Exception.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Chart/GridLines.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Chart/Layout.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Chart/Legend.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Chart/PlotArea.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Chart/Properties.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Chart/Renderer/PHP Charting Libraries.txt delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Chart/Renderer/jpgraph.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Chart/Title.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Comment.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/DocumentProperties.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/DocumentSecurity.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Exception.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/HashTable.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Helper/HTML.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/IComparable.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/IOFactory.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/NamedRange.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Reader/Abstract.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Reader/CSV.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Reader/DefaultReadFilter.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Reader/Excel2003XML.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Reader/Excel2007.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Reader/Excel2007/Chart.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Reader/Excel2007/Theme.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Reader/Excel5.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Reader/Excel5/Color.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Reader/Excel5/Color/BIFF5.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Reader/Excel5/Color/BIFF8.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Reader/Excel5/Color/BuiltIn.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Reader/Excel5/ErrorCode.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Reader/Excel5/Escher.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Reader/Excel5/MD5.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Reader/Excel5/RC4.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Reader/Excel5/Style/Border.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Reader/Excel5/Style/FillPattern.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Reader/Exception.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Reader/Gnumeric.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Reader/HTML.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Reader/IReadFilter.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Reader/IReader.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Reader/OOCalc.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Reader/SYLK.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/ReferenceHelper.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/RichText.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/RichText/ITextElement.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/RichText/Run.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/RichText/TextElement.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Settings.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/CodePage.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/Date.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/Drawing.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/Escher.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/Escher/DgContainer.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/Escher/DgContainer/SpgrContainer.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/Escher/DggContainer.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/Escher/DggContainer/BstoreContainer.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE/Blip.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/Excel5.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/File.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/Font.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/JAMA/CHANGELOG.TXT delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/JAMA/CholeskyDecomposition.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/JAMA/EigenvalueDecomposition.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/JAMA/LUDecomposition.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/JAMA/Matrix.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/JAMA/QRDecomposition.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/JAMA/SingularValueDecomposition.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/JAMA/utils/Error.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/JAMA/utils/Maths.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/OLE.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/OLE/ChainedBlockStream.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/OLE/PPS.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/OLE/PPS/File.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/OLE/PPS/Root.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/OLERead.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/PCLZip/gnu-lgpl.txt delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/PCLZip/pclzip.lib.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/PCLZip/readme.txt delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/PasswordHasher.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/String.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/TimeZone.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/XMLWriter.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/ZipArchive.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/ZipStreamWrapper.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/trend/bestFitClass.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/trend/exponentialBestFitClass.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/trend/linearBestFitClass.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/trend/logarithmicBestFitClass.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/trend/polynomialBestFitClass.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/trend/powerBestFitClass.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Shared/trend/trendClass.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Style.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Style/Alignment.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Style/Border.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Style/Borders.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Style/Color.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Style/Conditional.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Style/Fill.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Style/Font.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Style/NumberFormat.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Style/Protection.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Style/Supervisor.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Worksheet.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Worksheet/AutoFilter.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Worksheet/AutoFilter/Column.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Worksheet/AutoFilter/Column/Rule.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Worksheet/BaseDrawing.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Worksheet/CellIterator.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Worksheet/Column.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Worksheet/ColumnCellIterator.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Worksheet/ColumnDimension.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Worksheet/ColumnIterator.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Worksheet/Dimension.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Worksheet/Drawing.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Worksheet/Drawing/Shadow.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Worksheet/HeaderFooter.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Worksheet/HeaderFooterDrawing.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Worksheet/MemoryDrawing.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Worksheet/PageMargins.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Worksheet/PageSetup.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Worksheet/Protection.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Worksheet/Row.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Worksheet/RowCellIterator.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Worksheet/RowDimension.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Worksheet/RowIterator.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Worksheet/SheetView.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/WorksheetIterator.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/Abstract.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/CSV.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/Excel2007.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/Excel2007/Chart.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/Excel2007/Comments.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/Excel2007/ContentTypes.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/Excel2007/DocProps.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/Excel2007/Drawing.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/Excel2007/Rels.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/Excel2007/RelsRibbon.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/Excel2007/RelsVBA.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/Excel2007/StringTable.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/Excel2007/Style.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/Excel2007/Theme.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/Excel2007/Workbook.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/Excel2007/Worksheet.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/Excel2007/WriterPart.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/Excel5.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/Excel5/BIFFwriter.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/Excel5/Escher.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/Excel5/Font.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/Excel5/Parser.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/Excel5/Workbook.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/Excel5/Worksheet.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/Excel5/Xf.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/Exception.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/HTML.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/IWriter.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/OpenDocument.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/OpenDocument/Cell/Comment.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/OpenDocument/Content.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/OpenDocument/Meta.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/OpenDocument/MetaInf.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/OpenDocument/Mimetype.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/OpenDocument/Settings.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/OpenDocument/Styles.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/OpenDocument/Thumbnails.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/OpenDocument/WriterPart.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/PDF.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/PDF/Core.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/PDF/DomPDF.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/PDF/mPDF.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/Writer/PDF/tcPDF.php delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/bg/config delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/cs/config delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/cs/functions delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/da/config delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/da/functions delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/de/config delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/de/functions delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/en/uk/config delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/es/config delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/es/functions delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/fi/config delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/fi/functions delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/fr/config delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/fr/functions delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/hu/config delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/hu/functions delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/it/config delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/it/functions delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/nl/config delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/nl/functions delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/no/config delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/no/functions delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/pl/config delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/pl/functions delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/pt/br/config delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/pt/br/functions delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/pt/config delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/pt/functions delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/ru/config delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/ru/functions delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/sv/config delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/sv/functions delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/tr/config delete mode 100644 eolinker_os_3.5/server/RTP/extend/excel/PHPExcel/locale/tr/functions delete mode 100644 eolinker_os_3.5/server/RTP/rtp.inc.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Controller/ApiController.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Controller/AutomatedTestCaseController.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Controller/AutomatedTestCaseGroupController.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Controller/AutomatedTestCaseSingleController.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Controller/BackupController.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Controller/DatabaseController.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Controller/DatabasePartnerController.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Controller/DatabaseTableController.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Controller/DatabaseTableFieldController.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Controller/DocumentController.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Controller/DocumentGroupController.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Controller/EnvController.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Controller/GroupController.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Controller/GuestController.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Controller/ImportController.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Controller/InstallController.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Controller/MessageController.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Controller/MockController.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Controller/PartnerController.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Controller/ProjectController.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Controller/StatusCodeController.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Controller/StatusCodeGroupController.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Controller/TestController.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Controller/UpdateController.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Controller/UserController.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Controller/index.html delete mode 100644 eolinker_os_3.5/server/Server/Web/Dao/ApiDao.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Dao/AuthorizationDao.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Dao/AutoGenerateDao.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Dao/AutomatedTestCaseDao.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Dao/AutomatedTestCaseGroupDao.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Dao/AutomatedTestCaseSingleDao.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Dao/BackupDao.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Dao/DatabaseDao.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Dao/DatabasePartnerDao.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Dao/DatabaseTableDao.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Dao/DatabaseTableFieldDao.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Dao/DocumentDao.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Dao/DocumentGroupDao.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Dao/EnvDao.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Dao/ExportDao.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Dao/GroupDao.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Dao/GuestDao.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Dao/ImportDao.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Dao/InstallDao.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Dao/MessageDao.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Dao/MockDao.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Dao/PartnerDao.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Dao/ProjectDao.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Dao/ProjectLogDao.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Dao/StatusCodeDao.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Dao/StatusCodeGroupDao.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Dao/TestHistoryDao.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Dao/UpdateDao.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Dao/UserDao.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Dao/index.html delete mode 100644 eolinker_os_3.5/server/Server/Web/Module/ApiModule.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Module/AuthorizationModule.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Module/AutoGenerateModule.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Module/AutomatedTestCaseGroupModule.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Module/AutomatedTestCaseModule.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Module/AutomatedTestCaseSingleModule.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Module/BackupModule.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Module/DatabaseModule.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Module/DatabasePartnerModule.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Module/DatabaseTableFieldModule.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Module/DatabaseTableModule.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Module/DocumentGroupModule.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Module/DocumentModule.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Module/EnvModule.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Module/GroupModule.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Module/GuestModule.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Module/ImportModule.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Module/InstallModule.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Module/MessageModule.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Module/MockModule.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Module/PartnerModule.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Module/ProjectModule.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Module/ProxyModule.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Module/StatusCodeGroupModule.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Module/StatusCodeModule.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Module/TestHistoryModule.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Module/UpdateModule.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Module/UserModule.class.php delete mode 100644 eolinker_os_3.5/server/Server/Web/Module/index.html delete mode 100644 eolinker_os_3.5/server/Server/Web/index.html delete mode 100644 eolinker_os_3.5/server/dump/.gitignore delete mode 100644 eolinker_os_3.5/server/index.php delete mode 100644 eolinker_os_3.5/styles/app-1a87295f28.css delete mode 100644 eolinker_os_3.5/styles/app-23eaab1923.css delete mode 100644 eolinker_os_3.5/styles/app-c54662e77c.css delete mode 100644 eolinker_os_3.5/vendor/clipboard/dist/clipboard.min.js delete mode 100644 eolinker_os_3.5/vendor/highcharts/highcharts.js delete mode 100644 eolinker_os_3.5/vendor/highcharts/js/highcharts.js delete mode 100644 eolinker_os_3.5/vendor/highcharts/modules/exporting.js delete mode 100644 eolinker_os_3.5/vendor/mockjs/dist/mock.js delete mode 100644 eolinker_os_3.5/vendor/particles.js/demo/particles.json delete mode 100644 eolinker_os_3.5/vendor/wangEditor/dist/js/lib/jquery-2.2.1.js delete mode 100644 eolinker_os_4.0/README.txt delete mode 100644 eolinker_os_4.0/assets/font/icomoon.eot delete mode 100644 eolinker_os_4.0/assets/font/icomoon.svg delete mode 100644 eolinker_os_4.0/assets/font/icomoon.ttf delete mode 100644 eolinker_os_4.0/assets/font/icomoon.woff delete mode 100644 eolinker_os_4.0/assets/font/iconfont.eot delete mode 100644 eolinker_os_4.0/assets/font/iconfont.svg delete mode 100644 eolinker_os_4.0/assets/font/iconfont.ttf delete mode 100644 eolinker_os_4.0/assets/font/iconfont.woff delete mode 100644 eolinker_os_4.0/assets/images/autoGeneration_intro.png delete mode 100644 eolinker_os_4.0/assets/images/db_upload_icons.png delete mode 100644 eolinker_os_4.0/assets/images/eolinker_sim.png delete mode 100644 eolinker_os_4.0/assets/images/eolinker_sim_w.png delete mode 100644 eolinker_os_4.0/assets/images/export_icons.png delete mode 100644 eolinker_os_4.0/assets/images/favicon.ico delete mode 100644 eolinker_os_4.0/assets/images/loading.gif delete mode 100644 eolinker_os_4.0/assets/images/logo_admin.png delete mode 100644 eolinker_os_4.0/assets/images/upload_icons.png delete mode 100644 eolinker_os_4.0/assets/office/statusCode_Import.xls delete mode 100644 eolinker_os_4.0/index.php delete mode 100644 eolinker_os_4.0/libs/ace-builds/src/ace.js delete mode 100644 eolinker_os_4.0/libs/ace-builds/src/mode-javascript.js delete mode 100644 eolinker_os_4.0/libs/ace-builds/src/mode-json.js delete mode 100644 eolinker_os_4.0/libs/ace-builds/src/worker-javascript.js delete mode 100644 eolinker_os_4.0/libs/ace-builds/src/worker-json.js delete mode 100644 eolinker_os_4.0/libs/angular-local-storage/dist/angular-local-storage.js delete mode 100644 eolinker_os_4.0/libs/angular-qiniu-upload/src/qupload.js delete mode 100644 eolinker_os_4.0/libs/editor.md/css/editormd.min.css delete mode 100644 eolinker_os_4.0/libs/editor.md/editormd.min.js delete mode 100644 eolinker_os_4.0/libs/editor.md/fonts/fontawesome-webfont.eot delete mode 100644 eolinker_os_4.0/libs/editor.md/fonts/fontawesome-webfont.svg delete mode 100644 eolinker_os_4.0/libs/editor.md/fonts/fontawesome-webfont.ttf delete mode 100644 eolinker_os_4.0/libs/editor.md/fonts/fontawesome-webfont.woff delete mode 100644 eolinker_os_4.0/libs/editor.md/fonts/fontawesome-webfont.woff2 delete mode 100644 eolinker_os_4.0/libs/editor.md/images/loading.gif delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/AUTHORS delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/LICENSE delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/README.md delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/comment/comment.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/comment/continuecomment.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/dialog/dialog.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/dialog/dialog.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/display/fullscreen.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/display/fullscreen.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/display/panel.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/display/placeholder.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/display/rulers.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/edit/closebrackets.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/edit/closetag.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/edit/continuelist.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/edit/matchbrackets.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/edit/matchtags.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/edit/trailingspace.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/fold/brace-fold.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/fold/comment-fold.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/fold/foldcode.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/fold/foldgutter.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/fold/foldgutter.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/fold/indent-fold.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/fold/markdown-fold.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/fold/xml-fold.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/hint/anyword-hint.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/hint/css-hint.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/hint/html-hint.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/hint/javascript-hint.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/hint/show-hint.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/hint/show-hint.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/hint/sql-hint.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/hint/xml-hint.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/lint/coffeescript-lint.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/lint/css-lint.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/lint/javascript-lint.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/lint/json-lint.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/lint/lint.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/lint/lint.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/lint/yaml-lint.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/merge/merge.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/merge/merge.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/mode/loadmode.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/mode/multiplex.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/mode/multiplex_test.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/mode/overlay.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/mode/simple.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/runmode/colorize.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/runmode/runmode-standalone.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/runmode/runmode.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/runmode/runmode.node.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/scroll/annotatescrollbar.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/scroll/scrollpastend.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/scroll/simplescrollbars.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/scroll/simplescrollbars.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/search/match-highlighter.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/search/matchesonscrollbar.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/search/matchesonscrollbar.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/search/search.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/search/searchcursor.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/selection/active-line.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/selection/mark-selection.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/selection/selection-pointer.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/tern/tern.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/tern/tern.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/tern/worker.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addon/wrap/hardwrap.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/addons.min.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/bower.json delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/codemirror.min.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/codemirror.min.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/lib/codemirror.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/lib/codemirror.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/apl/apl.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/apl/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/asterisk/asterisk.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/asterisk/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/clike/clike.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/clike/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/clike/scala.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/clojure/clojure.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/clojure/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/cobol/cobol.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/cobol/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/coffeescript/coffeescript.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/coffeescript/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/commonlisp/commonlisp.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/commonlisp/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/css/css.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/css/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/css/less.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/css/less_test.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/css/scss.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/css/scss_test.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/css/test.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/cypher/cypher.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/cypher/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/d/d.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/d/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/dart/dart.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/dart/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/diff/diff.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/diff/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/django/django.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/django/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/dockerfile/dockerfile.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/dockerfile/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/dtd/dtd.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/dtd/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/dylan/dylan.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/dylan/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/ebnf/ebnf.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/ebnf/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/ecl/ecl.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/ecl/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/eiffel/eiffel.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/eiffel/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/erlang/erlang.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/erlang/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/forth/forth.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/forth/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/fortran/fortran.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/fortran/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/gas/gas.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/gas/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/gfm/gfm.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/gfm/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/gfm/test.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/gherkin/gherkin.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/gherkin/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/go/go.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/go/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/groovy/groovy.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/groovy/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/haml/haml.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/haml/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/haml/test.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/haskell/haskell.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/haskell/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/haxe/haxe.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/haxe/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/htmlembedded/htmlembedded.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/htmlembedded/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/htmlmixed/htmlmixed.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/htmlmixed/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/http/http.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/http/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/idl/idl.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/idl/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/jade/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/jade/jade.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/javascript/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/javascript/javascript.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/javascript/json-ld.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/javascript/test.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/javascript/typescript.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/jinja2/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/jinja2/jinja2.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/julia/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/julia/julia.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/kotlin/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/kotlin/kotlin.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/livescript/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/livescript/livescript.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/lua/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/lua/lua.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/markdown/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/markdown/markdown.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/markdown/test.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/meta.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/mirc/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/mirc/mirc.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/mllike/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/mllike/mllike.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/modelica/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/modelica/modelica.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/nginx/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/nginx/nginx.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/ntriples/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/ntriples/ntriples.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/octave/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/octave/octave.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/pascal/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/pascal/pascal.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/pegjs/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/pegjs/pegjs.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/perl/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/perl/perl.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/php/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/php/php.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/php/test.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/pig/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/pig/pig.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/properties/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/properties/properties.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/puppet/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/puppet/puppet.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/python/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/python/python.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/q/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/q/q.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/r/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/r/r.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/rpm/changes/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/rpm/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/rpm/rpm.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/rst/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/rst/rst.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/ruby/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/ruby/ruby.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/ruby/test.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/rust/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/rust/rust.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/sass/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/sass/sass.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/scheme/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/scheme/scheme.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/shell/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/shell/shell.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/shell/test.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/sieve/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/sieve/sieve.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/slim/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/slim/slim.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/slim/test.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/smalltalk/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/smalltalk/smalltalk.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/smarty/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/smarty/smarty.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/smartymixed/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/smartymixed/smartymixed.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/solr/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/solr/solr.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/soy/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/soy/soy.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/sparql/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/sparql/sparql.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/spreadsheet/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/spreadsheet/spreadsheet.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/sql/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/sql/sql.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/stex/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/stex/stex.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/stex/test.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/stylus/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/stylus/stylus.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/tcl/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/tcl/tcl.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/textile/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/textile/test.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/textile/textile.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/tiddlywiki/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/tiddlywiki/tiddlywiki.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/tiddlywiki/tiddlywiki.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/tiki/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/tiki/tiki.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/tiki/tiki.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/toml/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/toml/toml.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/tornado/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/tornado/tornado.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/turtle/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/turtle/turtle.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/vb/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/vb/vb.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/vbscript/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/vbscript/vbscript.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/velocity/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/velocity/velocity.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/verilog/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/verilog/test.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/verilog/verilog.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/xml/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/xml/test.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/xml/xml.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/xquery/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/xquery/test.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/xquery/xquery.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/yaml/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/yaml/yaml.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/z80/index.html delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/mode/z80/z80.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/modes.min.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/package.json delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/3024-day.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/3024-night.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/ambiance-mobile.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/ambiance.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/base16-dark.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/base16-light.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/blackboard.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/cobalt.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/colorforth.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/eclipse.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/elegant.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/erlang-dark.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/lesser-dark.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/mbo.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/mdn-like.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/midnight.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/monokai.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/neat.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/neo.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/night.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/paraiso-dark.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/paraiso-light.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/pastel-on-dark.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/rubyblue.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/solarized.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/the-matrix.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/tomorrow-night-bright.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/tomorrow-night-eighties.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/twilight.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/vibrant-ink.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/xq-dark.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/xq-light.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/codemirror/theme/zenburn.css delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/flowchart.min.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/jquery.flowchart.min.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/marked.min.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/prettify.min.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/raphael.min.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/sequence-diagram.min.js delete mode 100644 eolinker_os_4.0/libs/editor.md/lib/underscore.min.js delete mode 100644 eolinker_os_4.0/libs/editor.md/plugins/link-dialog/link-dialog.js delete mode 100644 eolinker_os_4.0/libs/editor.md/plugins/table-dialog/table-dialog.js delete mode 100644 eolinker_os_4.0/libs/highlight.js/lib/highlight.pack.js delete mode 100644 eolinker_os_4.0/libs/highlight.js/styles/rainbow.css delete mode 100644 eolinker_os_4.0/libs/imgCrop/ng-img-crop.js delete mode 100644 eolinker_os_4.0/libs/wangEditor/dist/js/lib/plupload.full.min.js delete mode 100644 eolinker_os_4.0/libs/wangEditor/dist/js/lib/qiniu.min.js delete mode 100644 eolinker_os_4.0/libs/wangEditor/dist/js/wangEditor.min.js delete mode 100644 eolinker_os_4.0/scripts/app-48f55cda61.js delete mode 100644 eolinker_os_4.0/scripts/app-f957a3e843.js delete mode 100644 eolinker_os_4.0/server/RTP/Common/EasyFunction.php delete mode 100644 eolinker_os_4.0/server/RTP/Common/UpdateFunction.php delete mode 100644 eolinker_os_4.0/server/RTP/Module/AutomaticallyModule.class.php delete mode 100644 eolinker_os_4.0/server/RTP/Module/DatabaseModule.class.php delete mode 100644 eolinker_os_4.0/server/RTP/Module/ExceptionModule.class.php delete mode 100644 eolinker_os_4.0/server/RTP/Module/FileModule.class.php delete mode 100644 eolinker_os_4.0/server/RTP/Module/OutputStorageModule.class.php delete mode 100644 eolinker_os_4.0/server/RTP/Module/RegistryModule.class.php delete mode 100644 eolinker_os_4.0/server/RTP/config/version.php delete mode 100644 eolinker_os_4.0/server/RTP/db/eolinker_os_mysql.sql delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Autoloader.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/CachedObjectStorage/APC.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/CachedObjectStorage/CacheBase.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/CachedObjectStorage/DiscISAM.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/CachedObjectStorage/ICache.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/CachedObjectStorage/Igbinary.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/CachedObjectStorage/Memcache.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/CachedObjectStorage/Memory.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/CachedObjectStorage/MemoryGZip.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/CachedObjectStorage/MemorySerialized.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/CachedObjectStorage/PHPTemp.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/CachedObjectStorage/SQLite.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/CachedObjectStorage/SQLite3.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/CachedObjectStorage/Wincache.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/CachedObjectStorageFactory.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/CalcEngine/CyclicReferenceStack.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/CalcEngine/Logger.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Calculation.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Calculation/Database.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Calculation/DateTime.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Calculation/Engineering.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Calculation/Exception.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Calculation/ExceptionHandler.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Calculation/Financial.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Calculation/FormulaParser.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Calculation/FormulaToken.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Calculation/Function.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Calculation/Functions.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Calculation/Logical.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Calculation/LookupRef.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Calculation/MathTrig.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Calculation/Statistical.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Calculation/TextData.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Calculation/Token/Stack.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Calculation/functionlist.txt delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Cell.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Cell/AdvancedValueBinder.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Cell/DataType.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Cell/DataValidation.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Cell/DefaultValueBinder.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Cell/Hyperlink.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Cell/IValueBinder.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Chart.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Chart/Axis.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Chart/DataSeries.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Chart/DataSeriesValues.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Chart/Exception.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Chart/GridLines.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Chart/Layout.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Chart/Legend.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Chart/PlotArea.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Chart/Properties.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Chart/Renderer/PHP Charting Libraries.txt delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Chart/Renderer/jpgraph.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Chart/Title.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Comment.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/DocumentProperties.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/DocumentSecurity.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Exception.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/HashTable.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Helper/HTML.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/IComparable.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/IOFactory.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/NamedRange.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Reader/Abstract.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Reader/CSV.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Reader/DefaultReadFilter.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Reader/Excel2003XML.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Reader/Excel2007.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Reader/Excel2007/Chart.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Reader/Excel2007/Theme.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Reader/Excel5.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Reader/Excel5/Color.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Reader/Excel5/Color/BIFF5.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Reader/Excel5/Color/BIFF8.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Reader/Excel5/Color/BuiltIn.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Reader/Excel5/ErrorCode.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Reader/Excel5/Escher.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Reader/Excel5/MD5.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Reader/Excel5/RC4.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Reader/Excel5/Style/Border.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Reader/Excel5/Style/FillPattern.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Reader/Exception.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Reader/Gnumeric.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Reader/HTML.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Reader/IReadFilter.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Reader/IReader.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Reader/OOCalc.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Reader/SYLK.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/ReferenceHelper.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/RichText.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/RichText/ITextElement.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/RichText/Run.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/RichText/TextElement.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Settings.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/CodePage.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/Date.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/Drawing.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/Escher.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/Escher/DgContainer.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/Escher/DgContainer/SpgrContainer.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/Escher/DgContainer/SpgrContainer/SpContainer.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/Escher/DggContainer.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/Escher/DggContainer/BstoreContainer.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/Escher/DggContainer/BstoreContainer/BSE/Blip.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/Excel5.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/File.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/Font.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/JAMA/CHANGELOG.TXT delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/JAMA/CholeskyDecomposition.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/JAMA/EigenvalueDecomposition.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/JAMA/LUDecomposition.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/JAMA/Matrix.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/JAMA/QRDecomposition.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/JAMA/SingularValueDecomposition.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/JAMA/utils/Error.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/JAMA/utils/Maths.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/OLE.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/OLE/ChainedBlockStream.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/OLE/PPS.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/OLE/PPS/File.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/OLE/PPS/Root.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/OLERead.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/PCLZip/gnu-lgpl.txt delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/PCLZip/pclzip.lib.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/PCLZip/readme.txt delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/PasswordHasher.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/String.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/TimeZone.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/XMLWriter.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/ZipArchive.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/ZipStreamWrapper.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/trend/bestFitClass.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/trend/exponentialBestFitClass.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/trend/linearBestFitClass.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/trend/logarithmicBestFitClass.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/trend/polynomialBestFitClass.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/trend/powerBestFitClass.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Shared/trend/trendClass.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Style.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Style/Alignment.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Style/Border.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Style/Borders.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Style/Color.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Style/Conditional.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Style/Fill.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Style/Font.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Style/NumberFormat.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Style/Protection.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Style/Supervisor.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Worksheet.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Worksheet/AutoFilter.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Worksheet/AutoFilter/Column.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Worksheet/AutoFilter/Column/Rule.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Worksheet/BaseDrawing.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Worksheet/CellIterator.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Worksheet/Column.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Worksheet/ColumnCellIterator.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Worksheet/ColumnDimension.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Worksheet/ColumnIterator.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Worksheet/Dimension.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Worksheet/Drawing.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Worksheet/Drawing/Shadow.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Worksheet/HeaderFooter.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Worksheet/HeaderFooterDrawing.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Worksheet/MemoryDrawing.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Worksheet/PageMargins.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Worksheet/PageSetup.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Worksheet/Protection.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Worksheet/Row.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Worksheet/RowCellIterator.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Worksheet/RowDimension.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Worksheet/RowIterator.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Worksheet/SheetView.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/WorksheetIterator.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/Abstract.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/CSV.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/Excel2007.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/Excel2007/Chart.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/Excel2007/Comments.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/Excel2007/ContentTypes.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/Excel2007/DocProps.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/Excel2007/Drawing.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/Excel2007/Rels.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/Excel2007/RelsRibbon.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/Excel2007/RelsVBA.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/Excel2007/StringTable.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/Excel2007/Style.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/Excel2007/Theme.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/Excel2007/Workbook.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/Excel2007/Worksheet.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/Excel2007/WriterPart.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/Excel5.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/Excel5/BIFFwriter.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/Excel5/Escher.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/Excel5/Font.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/Excel5/Parser.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/Excel5/Workbook.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/Excel5/Worksheet.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/Excel5/Xf.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/Exception.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/HTML.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/IWriter.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/OpenDocument.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/OpenDocument/Cell/Comment.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/OpenDocument/Content.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/OpenDocument/Meta.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/OpenDocument/MetaInf.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/OpenDocument/Mimetype.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/OpenDocument/Settings.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/OpenDocument/Styles.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/OpenDocument/Thumbnails.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/OpenDocument/WriterPart.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/PDF.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/PDF/Core.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/PDF/DomPDF.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/PDF/mPDF.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/Writer/PDF/tcPDF.php delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/bg/config delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/cs/config delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/cs/functions delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/da/config delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/da/functions delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/de/config delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/de/functions delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/en/uk/config delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/es/config delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/es/functions delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/fi/config delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/fi/functions delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/fr/config delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/fr/functions delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/hu/config delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/hu/functions delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/it/config delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/it/functions delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/nl/config delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/nl/functions delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/no/config delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/no/functions delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/pl/config delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/pl/functions delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/pt/br/config delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/pt/br/functions delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/pt/config delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/pt/functions delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/ru/config delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/ru/functions delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/sv/config delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/sv/functions delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/tr/config delete mode 100644 eolinker_os_4.0/server/RTP/extend/excel/PHPExcel/locale/tr/functions delete mode 100644 eolinker_os_4.0/server/RTP/rtp.inc.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Controller/ApiController.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Controller/AutoGenerateController.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Controller/AutomatedTestCaseController.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Controller/AutomatedTestCaseGroupController.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Controller/AutomatedTestCaseSingleController.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Controller/BackupController.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Controller/DatabaseController.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Controller/DatabasePartnerController.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Controller/DatabaseTableController.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Controller/DatabaseTableFieldController.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Controller/DocumentController.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Controller/DocumentGroupController.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Controller/EnvController.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Controller/GroupController.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Controller/GuestController.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Controller/ImportController.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Controller/InstallController.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Controller/MessageController.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Controller/MockController.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Controller/PartnerController.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Controller/ProjectController.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Controller/StatusCodeController.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Controller/StatusCodeGroupController.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Controller/TestController.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Controller/UpdateController.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Controller/UserController.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Controller/index.html delete mode 100644 eolinker_os_4.0/server/Server/Web/Dao/ApiDao.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Dao/AuthorizationDao.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Dao/AutoGenerateDao.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Dao/AutomatedTestCaseDao.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Dao/AutomatedTestCaseGroupDao.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Dao/AutomatedTestCaseSingleDao.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Dao/BackupDao.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Dao/DatabaseDao.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Dao/DatabasePartnerDao.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Dao/DatabaseTableDao.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Dao/DatabaseTableFieldDao.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Dao/DocumentDao.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Dao/DocumentGroupDao.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Dao/EnvDao.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Dao/ExportDao.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Dao/GroupDao.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Dao/GuestDao.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Dao/ImportDao.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Dao/InstallDao.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Dao/MessageDao.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Dao/MockDao.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Dao/PartnerDao.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Dao/ProjectDao.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Dao/ProjectLogDao.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Dao/StatusCodeDao.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Dao/StatusCodeGroupDao.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Dao/TestHistoryDao.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Dao/UpdateDao.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Dao/UserDao.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Dao/index.html delete mode 100644 eolinker_os_4.0/server/Server/Web/Module/ApiModule.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Module/AuthorizationModule.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Module/AutoGenerateModule.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Module/AutomatedTestCaseGroupModule.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Module/AutomatedTestCaseModule.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Module/AutomatedTestCaseSingleModule.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Module/BackupModule.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Module/DatabaseModule.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Module/DatabasePartnerModule.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Module/DatabaseTableFieldModule.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Module/DatabaseTableModule.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Module/DocumentGroupModule.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Module/DocumentModule.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Module/EnvModule.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Module/GroupModule.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Module/GuestModule.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Module/ImportModule.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Module/InstallModule.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Module/MessageModule.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Module/MockModule.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Module/PartnerModule.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Module/ProjectModule.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Module/ProxyModule.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Module/StatusCodeGroupModule.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Module/StatusCodeModule.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Module/TestHistoryModule.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Module/UpdateModule.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Module/UserModule.class.php delete mode 100644 eolinker_os_4.0/server/Server/Web/Module/index.html delete mode 100644 eolinker_os_4.0/server/Server/Web/index.html delete mode 100644 eolinker_os_4.0/server/index.php delete mode 100644 eolinker_os_4.0/styles/app-612d1cdf00.css delete mode 100644 eolinker_os_4.0/styles/app-bfd94e21a7.css delete mode 100644 eolinker_os_4.0/vendor/clipboard/dist/clipboard.min.js delete mode 100644 eolinker_os_4.0/vendor/highcharts/highcharts.js delete mode 100644 eolinker_os_4.0/vendor/highcharts/js/highcharts.js delete mode 100644 eolinker_os_4.0/vendor/highcharts/modules/exporting.js delete mode 100644 eolinker_os_4.0/vendor/mockjs/dist/mock.js delete mode 100644 eolinker_os_4.0/vendor/particles.js/demo/particles.json delete mode 100644 eolinker_os_4.0/vendor/wangEditor/dist/js/lib/jquery-2.2.1.js diff --git a/eo-chrome-extension-4.0.1/files/test_files/doc.doc b/eo-chrome-extension-4.0.1/files/test_files/doc.doc deleted file mode 100644 index 003f426dc7e4516469f3b491a2c1f540a321008b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27136 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 diff --git a/eo-chrome-extension-4.0.1/files/test_files/docx.docx b/eo-chrome-extension-4.0.1/files/test_files/docx.docx deleted file mode 100644 index cb08422402e687e79f437f0949bef555ec355eec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13269 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 diff --git a/eo-chrome-extension-4.0.1/files/test_imgs/img_jpg.jpg b/eo-chrome-extension-4.0.1/files/test_imgs/img_jpg.jpg deleted file mode 100644 index e29c5719f99f65e0978fcb96a7af7b937f51efea..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11369 zcmeHtXIN9)(r^&5H$*@wiZnG4AXEb)N+FgJ!|&N?7i2&Hwrkf5#Z_s z0O;rd0Y?D;fW0{YySlFfDiFW|IJl2K1_11hvP!!6_;@KwN_t==?mBwfBPAR>(UJjo zy(GaBQj&lhDgj=19Z*Og0ehsgtB11SVpW}>fUBdjpoN^il)jf5(#2If2!k{YGB9%p zLODPj1yybe+z3z%KzpH)K6eEI(C!{s#Q7nW0+#wl z0&1QZq=1}+JjekI1`8-aB*1dlWu)cA1*E0Ga*|RINw5@13akj0Qk0ew_yYv@rC}VM z6iw7M|B$smQx^Q=Q2ze@689e`%{fZPeHQ&s)*xUk&gZTda=>@*n#C zOU78UKrf`E2@>n+i*Z2iZx{NN*h^6jgS_kGi81r^bpM+bja)o^Jh3jGUIJ=rzgbP- zs)ehEqo+Ui+HW-a`ieRpSf9Hd4oDq!Wx;(e60WX}ic&H%>bI{;scLG1)xls51&9-Vn^%N`T(2ypJqnG0txT;b-vA}xAJR9ZrGA0%$d{R%hLZ~q4B{|Q() zFI*7d6A(RrUQ}LGKvZ5`UQA4WpFmYk^*@pQV{NYzN zc>kWWvh2e@Lcl?`L#zi_4*wbT`{Ee@3+sV{EJxT5A3ejp0~$E@<*dbzZ`0A{y=7$+r@Y?R5ClnCGL?z3q^ZYl+L#K<@A>hCH8jCxf>!(`&9< z^{yXI2@K~kFCD*&f(cu=^+vSj1A*8CUZ;7_iekG1V;KyK0nf>fnDlYOALyWw**m;v z0OzblK90+limb>MbH5$UyV1H5mw&Nj_4R;%VRdebq@-4SSpl(+)4(xLD}ua}Kx;(` zvGb6-OGqV9;G{v6m&AjV%y8Sr6+sGq$$5$>W|B5Dicm75F%_=+U$6d(df3^H=)6T7 zQBX?NWxCwGm!SPRTK_8LyC5e2b!YNL(QVC+VNZsdPG|_{BZ&;;Ql8ESQrmqfn{7vh zZiQy)%}duZUlVtri$i*fhN*cQhXx3|#0{IdrnWtRq$StOHd=W4+5Dz~R#r}zXm}x+ zygBk2qQAyhy+{qB`q@(o!0OwZEV*TedY~0`#u2Y5PdIx82r2NN{{efg*s=G7wr7rFG8FNn@ZOBMIXN(XME;)7Iv)9v~(wB9m5ME zd8KR=_3LUMVp~_E-Qg!mD_1@mqy^Eta$JXNmlIs7Yc85} zRgw@eNNh5PXW?j3#K&^Kgvl;a+p~i&ojAggiOpBcZt1xaQ2NSkmxpT5Waf361+8TNA>Xb2!h%B@@!%m z(A@=_TRMAyd2v@m2{?|t2LK;_v|u?q`$RQ7Mwv^K63EW~v`e;l(eJDb+>l2^Obfyu zay+b;?)`8N0B2U2T2{ga@n2cNPK|@KRy&}ZJ5O2mJF0|fpS4N}# z7Auu7*{|4tI>091Wu{vstu#gGfM9_mvo5@6RJR7`djNaMt;p@^0Ew&$VuO%lUJzeY z{>u|}M?;7!!-lWMqo&>Iwp+g?Ubx zO=^!*UX0k(5AuY+&K$yI^RixU*bgeWj?FuPWBITAd!zmI&0uqwiy-4cL%))?O7va3 z6R`KFj=m2yVIT56{uV^07Vk=Qsto%b{jvujU%Ij;i5c(anWFGK>&<1CQde7PFU3)x zETfpznq}pCg;2p6gB}B@Aa4lGJHq?1XjsV9G9@scj;5U)-P#}*1cRXzhYcAUWxB?c zk>bJ)*j*f2_&8sNJW&Kb$Q=_>pdsSbMwjSbEBq$@+)%SHo)(8IimdDnnAwuhuv4}7 zwSIya5bxZQbV$Qby}VF+gzB6KdY2z<{^%KUAWV zRf;Vu=0-%cBRD?c|8z=wLHB!DFsegOsVk!2b$6y@56~B}%M1l4jm$I4Y?&k0#pgeC zw%ZGeUYPvYvv9zlXD2MP-Lum>1i2Ql(-ai$A@;z7I`2L99E)t2>NK4sFq}uwB4yES z_%}G7=Q!I5w;qms#Z?xY#*t^Ax7s&d>^wv7WNvu;xBy~$p?4?Uf5rqS)I>V$VsaQJ z`C69?hlP9+OeqAI<&gT^fx1U^r<|+z09MxTkI^isR8E^y<`pBuei;)QN?z1yG-s@a zaHPY)bO53ZR&X7=c1nzr0J%Jv1$_fd*^F^Z$CGa{ntAQrw0MNz-PwYe3pb_0KqG9c zwik@M3zfl!xBXq~`Ujh01K-#epkrEk3=Lb1JXZ4d0KS~~{BU^*g0Nnlup#s{Hne^Ih(IIJ3?e{`n`J=@@>SnH<8$=&B*Yy`P{@B}N zOP2jXD55<`=%k+SigYtR^T9ixhU&Yr#0vm#IhgQo`pFz3**x@_v9k)T@Zj=0 zTh-9KYvGU%DQU|t-hG)lWM`_~*VTM#r(kObsGwRUy!538PGUaeC@7Cr>c7Ni&d~0o zv=^i)kz!^aW{{lL3UmY++aS>e+)&jWENJ+%Q;?WtOAmi|9?C$yU7PO@H)6%_0e&33 z_$`#Z0L*L)L)E;!QLdF+D`D7c@NLZPW!00ZTD5^42#Jd@c*x;VZBO9hl`ijbjA1pc zd~TxYY8P>2Vb;#z2yRr8VvB2CO$!{c+$qIG`=DT*WcJnRyo|NUu0u8KJn?$$2LweC zxxv-@+}1peFhEXy=GDrK|lT){mC z;VW4w!s~F-xVye4n4PS*uZ_B(9ooF=NoJT+4JTs^}Y1ieXHuWy%#<1WaBZ^8l_*67ZIBIC(F+TZdMf=b9r zVfR^1G2N*Y{K~s_X&qS5HyGKxnxwZ8cK?XK5|T3bJjKZ^IH1@UXv(uJ`6gj1Ck8%2 zlsFb10=QN3d0yPM#9BtRitW2%L_bNbrYDUX-KoU0sz(u3zt3iNLy4w3um6~`lWXA* zF)PLLOp!Qm0ORv-e`Von_I&s@g1^*9&cY-Y<~-0 zg~9cW2v$_5nc-44qnrY`o$6Ya+*$KI*FHZ{!#u||O8fPrFMu~TPu?O|wi9MG3PEBE zeTLqS1jM;b03r3M{7gFeQ*I~{(Y-2Xd~~h%#ejnP2^2>n)Mx=P>CGzP;A4_&Igt}5 zX*|`{C3d~*Ja29oTm*(~j$Z&g#Zj&8NL-^ScsygwEZ4P-(DtYv@T8qOp!C#+5}(`; z8A$AbW3U$s<+pHCGv)Tm9Kfk`-ITNU&w%`JO0s4Tg*{%G6URsz6U6ah-(u#MBKv0d zp_8y~0t|tJ>D)Tfm%z2&-s#mCBnq4OhWNCBq%r%!4pe(EDSWw);w=KWJb+HH5&YP<4z zMh9xWyDt&5B`w(aeyZ?8w`Sb+o0F~Q5=`#=M3nnT+_Om@vP>QzF zmgRhHh)-U4Zs3MeOR$h#6%#?ZnGW0jB2WH?V$RGvqKsq2R!PRFUkFiR-z3}oPwj#N z`>t$1Y25E6q?cEX@QQWu1|-O0zQW9i)bh}712uI(Q*+(oS%hL|QDdnBx5Da1{31x) zgO>QQcjz|nW%w)>228@u(mz>Ph8h_zRCP0K_cQ3cMNdlcCFvgeTybsJZd7bm08x7z zJD|&_vf!{x;aI=V_$89u?e8t`Vnc{(g+?q0hY!Q3w8(W11^MP!zwyCvwwaHC<23tL zv6$z2gOk~u)*hQQOm6kk&7&|*c(fi@Ixy@TFo5Kp>=4_D9*hwzo&C;esgqB?_=%_7 z$#G6c$VMLn<4(&(D4ru1_m!>?~gire>c)nmfeU%&7=eIO7{UQ-_65J zBAzNF)683DVhCCAuq;lQLPbK*Tzrd{La~bVO(S_g{*Xc$v*7XrD}spGcelJW*S5OL zXJ^B?6l(_tbnc>25+El&dalZawU)meqYkxkw z|HkqpT~U%4$hl{#lLT;HyqbwP{lR?~df>r$tcCS3Tb z%CqRA(kO0SEr#j#>9xeI>SRC8H-qz8!?9DJH?vbB?;VS`xKojh>1=9PNR`|PsGFy) zoJ%t-txwPeRqHwAm|?!U$&*_#t7|Oze$ab?4RH%#dBdtP$7jT$pg!@L&31Wfxy5EH zY2;ejOlWnI`Xz_-c_}p*9vbYukE6~u;2epP)tEU*2)BF+8hzUcxv-f&9 zamGXRe%E^&#SBtMRK})7XVSSF?9!FjvYT}geIlW5b(5C|2J4|n15vLWOyH)AB;){X8T`1)oYC}_>w{%jy9XvahyXy zcg43MJMNp>#;PqGxaftB)ftPgYk|Ig$WBDWE-6_Tkh8>(? z;4qbIP~U!*$t^ES>L&=9W+blzAN1WVMdrrqyBQ<8aee6s{0^Jv1#9q{t8{*36jV}m z`6Bh??trej#*N4*?SbbuC}{Sb@bH?0r>+fI1)h#^tL$$U%8jZ05Zqk|3W8MDcg^hq z?$UP6LN$&y@@LM;?*TqUf6clM0Gy6$)qBc{fJDYx+VA!`ShdYtV*(_H$fZQtc0 z6i-tQPrRE5yW)vVj(bARiwZMY1*|8FtkkQjXVe+TTC*UpH?L%!+-J+{$eh*^ae0sN z&AV#swFekmPsfC|xG2;W8E(^p?mvF#0b}MA3f8Cu8d_8>j8L^#5lEOukmf+4yx2oz zt7+!ZzJ*?fVqLGv5~Zi6j3F`}lX$FlFbVq&TA+*AsQ2btNPSF=r{SOV3B~I0s_X3_ zyZfSlan$Lwu#0Uh1lefzRg=fay<(}MPpM`x?C_b3gYfPN=p@X}*oCf9^Vy0uBww{% z+2t8w_&#=2O#Zh0=a?H9A}KM8>sh9xt56s@S@}`;#QQKZsg1B!I$c3$A8SiZ1f zq>cW)bGevi5se8`8oMXEzWWwROSsUidmZf7TP)Ko5$^L~ulBT3|$PCnxu?Ei@~4bS5FBmb*$>G4vgAib8oHwH8iQx2FU0<-!{Ehg$4O;m|haBUFRjsm}ROAKW`TqBZf%( znqPEK7gRaCpY>JwQ0N3xlLBR8KApdW>8T}BDl0@FHIfqHg#D1WpOB)cl;rg@rFyXz z))WW|Mw}{ZOZrXVnQ?=1y@78dX?a+ z_!%r-`B)jK{-R}5Q#Xp8oe(Q}!~!uV&uy?G@|csJLV;0cy9g$2EIhqU$K_{e4wh+U zdYgUmFaDI`n!hc!WYVYKpA}+=5J$W5*+Hi|n4nCr#3<)Jg@b;%-#(NrhysL$tr~Eb z;*@;B=4He@8#6_<;{uVzn(+?CJl$W_ULN3|`iu^qQXEZ5xM4MBmWTL|)|d}DpOW_a zSsF12g1ALb8afeXt}I&t_yt?kZ&THlAZ#Hi2D7$XBAyF2DYCYf@uZ@R7lV}4IO0|d z)bXQ%IZI4iUA|BS&L5E4Y^R}ygf)}E1q)q;j<~qx`2!z6o__l9`aK7p4%PjXb-(Ct z@l!%lhof|zT(nFr!Ym{xCU*|-fBcO07ZOcQ$-F3T1C4L0j+hk%98?M^85nRLRNpTJ zY&^P2aIys(+__CVlL)PHMjMX4?wG|H2j0?lS4E1Fk>Jo(?)we6@;Iqbex5Z zK!82-`$ny2VPPt#zWnKV?W~9yhC+c7F~mIOiSle@H99gZ_c>G)BIuibI?4^gNs9f# z7Sh|{aIe;}lk%0-DsM-HAu@q>6G_4?8+@LrRq%%4`BWbuXE2N9dk zh=jqZ_3l~ccS~wOL(IA%5YvheDqe&gaB6U$wLW6+cZxwU9k#K%Cb)v8)MKX9EqRHb(fSPHKgFs9^(oZF~eC}fhYF~x2$^BiVDid))hGoSQVgWC~h1!mI?Qj)jdElg62YW?k>yH%#G3ZZ#_p^5oa zmM41ptEr*MoY~Jev3*TDnD6zW~LbLtlhE~P> zYL-v7BAT*G%(sl|q(Ha7!`Oip7iNAE<$~TLk1rqwSCQXf3#{rV=Ic1Mri3kuZ+@mH zR9AUvEM#S~LcA*mO9P|Y3pW!*V3np*#A)byij0u&js|ztwuD^0vHSmP^OgUf(`~l< zS1&b^Ek94FZscKk*0nB$T_DALRNpvV_0Q=xOR)2Ge{4lf#$;Tbse_rOXgt(@!O_4$ z(=kAI-Xdc;nJmq+x`S2mdz_^p( zNn5vFM3$+76LbaQBvX5EVO)+6+%zVcwPgo zc{dWCvvO9fKhu4ZZfjF6xNdav3>&C-mu@{#8uKjD{F@c*^Bodi5mH}y$Z0%$h`U$5 z7xv3(vM)S6gVUh!EQejAAHjqE#4V_$(u%{h*{uCq=MMhB#D#?K&WS*+K#!k1b7_lh zWKUmx;C@{!ZFKYgUoQIv{?40=!!IlKc;$E&>X0}*5%qkLn<-AU#fH32i<(2INUyO> z-`fMwtILY?@WUuZR$Y$q_*3ptkA*qzlaedv(~ob;W?a8#;o)DhaH{o@kbQrCR-P{}Gfrj2jn2hLlQJ&#P~5@^8B6jOyAw zEkY#@;LSCDT)}YR9+%iKbq;s9W&1AsKQOLd(5})-8=OYL!xpD9!tqPYkd6v?b|DXaw?bINTx*z7_9}6{HSEChTRXj45-{LoactrIS5@09enQjt;RGrp~k7m^y zs*f#PtdAL>Gg5PHIVpsQ9J*3M^}FT~g{|T~ZECc0 zkR^WHI$!IcmtdzbhE$nqh&TO&uv$#$qn)ON*^u$=Qt&%v-)8b}+q_>pT|ss46tOu* zN=TkT>}VfE*@`pCg6?1~pd3MciMBn7S@>k*c?K~+Y40XSZpNG?PBL0ZErhSKRsQT& zL+|=-YBp^K46F-z&$r=EEuy?t8X5$ZS1kg-&?^SFZjCV$Z{L}4>vY6A%)yE4B1f%H zrh>$?HFNom`5*CRZAcj9s)fonwNu#bdI;O%~eEq`n3@aW9BV$sJd-1^4l zqGBUm2Wv&kknNA6FabIGXj?bu8MVHX2*q*Fu#WfE<`zTnE8cdEN^LT?sD4p8$b`tv zI!+EUWLd%w$5~Vsbr`3O_lJ+YG_nab)>zmB9FO#lsoc$u7~19L`67MekIxWcf0Pp~ zeE)=~$2au0(TXBejcvPeiRm^QMmb|tVGC*;?J#hxb~c4DD{HOLe`nWPSu^yxN?+M} z`s^K^l@${I$O6r#f?#!VUVKV}RBYEypHa~O^QkyAQEz zk6qEMr4NwjFf0%I{i|&1+7c!UgO?SFYuOU~1$w;{;l*GrWCgtPP>Fhoahru)nTE!C zV(e?*(fPMkx)aRBM7o(@UPVae92~|iB5S%xJtJp3(_eD}0|_~5bYp3ieskpbP)54S zD9p3PnG8zyuA`HI&tV~oCh@E0dF@eJ6uxAjS?hde^dPQa_l#UUXQK5ah0GA2un3IK zyP9#X05Yg%S(=LF_JJLnaL0(x0t2l^XhF!o*Kvn0 z{*z0oioUI5Rt{0uPiyCf$x0?wx<$SP+wR6SpIMY@Kk#_~B9Z`C__l3kP&VCi{1i{Q zZ_@}zW;pdtVP%=YSRCd-BJZ|w3*IdUW=i0^r>0ZdPk#K$OKCuzRN2RQRif^7_Il{! zdbi22l46IT{fgWzUo~m}JCH-B_yV+|5n>X0J^m`LW{Ccf?ohKF#Mx~H#2e^2J z@V#e%)04Dr)v=C-%-)VykJ_W>&fp>s?04$^4AVEn%Og9r@eXmiaajiUk5H|HxlUNl zr)Ci=@jy~E+AxucuKm)Drpx7+6T zMKgK(zb}z8pHjD;qJlw%b41!#;@Np|&>Ta*8jZwe+t;8{Vs9O&T|}1D_*IOd(pO^1 zcDgQ>fXi0%<_XuCjlG2*+lTSQxLXH!|5f9j;Z7~Vje*J}Q8TbBvJAd3%DY(yn(pp;eON*sXQ({C2HmLp*qtq#uv#?M2qbqx$C zS$3U|F^+8IgmteH3H>Z*|C(A~WZo^J_?2gQy!rO6Y6h5ahvgKgWI*hxO>unk&;7>t z#Se_Qq$I$ZDJD8UnI^3nh0mbZiF2jl=`Z%Nh4LibIS(OJBFIXqE8fKAz{w1Tt9>PT zOtWg*sdnE6_y3ojaHRueac^1}*)Bb`Mhqr;|DeKrLPxo7v&?MjLnV_RNVq=--~fNr zXEZG*_Hzn*ch4A%PBu#djQTrs&Y@1scfZdyAtw78tsgu=i!4@;cQA=Gh+@3_v*Z1D P{9gF(n9YL0TF4U^dcZlY6v9|2qdU90Rg27LO7rSCG_4x z6r>4K0tga{gc>D4BoI2kFP?Ib_q}`9dw;&Q9&2Th>@~Az_Ut`-KKnBhefyU7DJD)P z1_p*xIybKyF)$pW9ej=-1|-)jZ;k{1IAB^9Fk|R_7~J01nL*tN>fp?$1F?5;HgdLi z3i9c6R$*W`BIssf0kbgBS8{|x#O)8-hzCNvf!+)ZD&RnGdq)pv7@vc)i<_6Kz;Xj# zfX~fIRlr=g&uWD=sJIC@Cq)C$A_jDXSnYB`eA&B_Syb zl28OmN{C5FDoIKxNlEbi`6mF3=IeA{$>{oxKgR-osS3ElVBSg~5F8E{hf9k?eO*A3 zii(OL2`P}2lo-%L%rD3bW*;c#<@eiP8m>G0Ir_SJ!`z@=d<9Jt zbp#xD|F?soyp=S4o$X;zUlSwH$)T(l6-xVhCMkB!SzB=l3G5UopjkO!@iw2ToUE+>+SefhD|q8en4)F6 z_iaW0uY*m;gan7X|ZOYrDK@jK*PHdr__nh5muu9Z*$*k!HC|$B*(yN+h#p`FgJL)hTZBX^VDr{KHt>p)L?5Zj%nHM}!a}}OA19Q<31s~FNr51^r(rOGo%h~wk5Vzp1w6j(k z8#)6Z6(tdD`owb^&pXd`+_V?Etcj>4Yj%+BNtc15YLOjb{k{OfG>{z+2S+D+Kj4BA zn}$#BER&)8$V^|rYtrK}Em5rPU{;ZV^_ujuL-yqKwQkVsD={!H`>j#Erb?C?uW@(L z9duQ8?TIN(Y<84vckd<0C2kYgXyA9TQoW)Ya!l($+6}jl0b}Q}g`3prc4=j+wQ_gj z;=rbhoXT-Lgvc|Of;vTyacpgNs>s%9a;8a*4eVEszOkyp?>uTQem>_fSa9F?JI4RG zUOIN-#_>01iiyQD>C!H9klJAaLc~nhu_;R9TkX~AU1HvNY;k1p8HC%a^>l7XgkC4kS(ZxYQ^ugqlzJ3LsJ>Z&irq;Gq21TPBdKdytj8V z75)B|@}|lOI;S<%k&8J=*2~vwZ8KNzg##I3UXKrF^Dr$XpAoni*1)}FFH899RrQ|a zX;=$4AGMV>A6iYx2yh==Pb5ThdDNr<<5`n+<-}6Wn02>H(~Zeix=ode5WOZw7nH#; z|Hrf)-5#CV;SmIv2*#9NEn_*y91V+(V_Yu9&kQT7(&SWC2Dz3nNz>VkH?!kX)6r-i zF0R;ln8$E2M0PgM;00;ES8cmcCTXLvw(m4?!j%W=aB?DK^<&-WdT9ZdoTuv=(Ip!x zhuT{wLPdI3-$$SG`PRHMiQ1;*IrAvhsKinGo_eX4C9aQ4LO=i91SBpWD3N4`I!@q80|P zbcgh!Rm;?yXav1Tjh=KFQQe{*4rYA<*)Acwz$RCo)mqG+CQvb*H# zE`5?09J;$U%%=U!i&!mIy-1}}OQ-#-W{iOh0!d-9VOyV9Xhb?Wy&?-n89Yua&`9jT z9$L16;0##(BiKaDUhN|{rlPD3g66Z}ZN2i)iN$+d!2!?}q3jT&S?|kZ!Tgb0t|dkF zzxLzk6I}H9Jn7DwextJ(A-G>Tr7KmeYiE6_VHw>&mY0_o85K1h3f@_1+2JwO>&)i~ z{PIxoY8xzcqA|!1+exr9gs$`5ZWP(F9Rk}(r?TzAP>)y-HuckUb{nB$a#@}7lOe`FK5n7;6?!qNAG$#JOqQD?O~~Li$rDw{JDIh>Dc4?d6NuDr zUrXayXpY~qGBfqHm*3xc(g0tc_>K*-ecp_VO}7m>E;P)YU==NWqRz}m&4u+o)iEho{x&`Vg~mExfDV{~KvOUc2a(^an{H=gB5K3J0xJbqISwUTGsLTm{WgTO}&+1fjZOIC`F%ehC z8ZL8#>E!(E9u)nxuQ7o}gDp}&4lOKtS(H0IHtZ*@O znLO$>Qp#^oS)GuLnu=g2&AXt3?msO6hnv@L^6y!xDm4NV*CcDD&@Oza2J#I)!QkaO zu*0CTNiVe%dR!sWj#gVWYk7`IC}4Y-C4H3n>>|A-mTi=?`l30yGt3FjinK9(TlA07hTijS|?MHRndHzmZ1 zN!LsHEsm5CQm`^(nwsv2ZsysisMwJYs`RmQVEo!A>-4MJm1}wC;Tnl@$XzYOFigyO zNY0RjN5!H{LMXJ~a64d9^;AABWK;|P!Q;H@W`YSa& z+;FNa^t=QX@e`r8j+Ull_0=U;-27eXCLI}KmgO@*!to&1#==>gBCRQtc(DG{Aji8; z!n&u=GPW&^Hw^F?D`-JfP84Bhg5StA?mpAzNhe<<=KG%%lbu?XAG(;BLAX^BGOB{IZ1Lw-XT)dUHO`@JMVaH2VMj?E#u=hh zQ8@+0ck2k%Qq4#0%V`c8R%u%J>AHEeb)`hO#!clp048~M)9ZDcTnJMXQ#9g}Od>%H za&d*{JFfO@;;jpI3&y*A>>uQg`naj(7_o3G$w(B*Cx@2xkmVxH*imOcNJy*sraBLq zUFjx?7EvjewNxV~3_~eBvGYT!;S8b+=!070XN>>92>t^7IpV`5cA=zbp$ouP1`ap^ z7OP&%+JkCR=%hWp-TJHHynm;zB@;hyGjFC6Q z+t!~gP1N$cA2X0@eacCgP6PjyxrJh;_BrGHTNGjqXou*Y0UT!nlklanI>&aFZRwL% zwe7JIzy0-;qEKK*eVx*VE;W9;X*SPO~#BvZ@N8jB4{DW%deaVjf~V z!HZ=Zo7j>jLL|eKE&khZ2>{{CH|~aD0F5|t{$ds;Z{!j^rG@u zR8*86JgLUx&^NMrRl_|4vBOPr}h*9A4h-LZMnO3F&kP%m`6J|(-8J{ii( z{EB?LgHYO`Km`!Ei!^rPwZi%GH?i!Xyd&Yd%_Yr8)4_OP89F*{V!^DlegI_2(@J}m z8l^At@FY$9GMnzg)e&%!KE=V*HZ z@3J#ncX>pw%P#j)&X{#obfvrI#o=Fd(UCnH9Cq!-(yb-(h22b1qdF3@~ixKNOA7txOFNh-Axoj)-7SF%0DDWt5<$ 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 a3?&9f@zYkmFAv`1>1f@$UaWEN(f - - - - eoLinker接口测试增强插件 - - - - - -
- - Home -
- - - - \ No newline at end of file diff --git a/eo-chrome-extension-4.0.1/images/icon128.png b/eo-chrome-extension-4.0.1/images/icon128.png deleted file mode 100644 index 17fdba584e481ca380d59ac2421112e56272a2e2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21425 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 KE>N_&@c#e|H%t%! diff --git a/eo-chrome-extension-4.0.1/images/icon16.png b/eo-chrome-extension-4.0.1/images/icon16.png deleted file mode 100644 index e26372378361ed6bbda4634f2f42db0f9323ee59..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18213 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 diff --git a/eo-chrome-extension-4.0.1/images/icon19.png b/eo-chrome-extension-4.0.1/images/icon19.png deleted file mode 100644 index 5e0fe6b709e99ad3dd00734aa0ae8aabb98db351..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18803 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 Nqx~|wb2dI({{tj;`4RvC diff --git a/eo-chrome-extension-4.0.1/images/icon38.png b/eo-chrome-extension-4.0.1/images/icon38.png deleted file mode 100644 index 09e9724b88cbf4af525ecc574a211d2677791d6b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19593 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 diff --git a/eo-chrome-extension-4.0.1/images/icon48.png b/eo-chrome-extension-4.0.1/images/icon48.png deleted file mode 100644 index bb48f4237056cd24ca7338350619dc3769204e7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19189 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 diff --git a/eo-chrome-extension-4.0.1/js/bundle/content.min.js b/eo-chrome-extension-4.0.1/js/bundle/content.min.js deleted file mode 100644 index 7dbcd3e..0000000 --- a/eo-chrome-extension-4.0.1/js/bundle/content.min.js +++ /dev/null @@ -1,6298 +0,0 @@ -/******/ (function(modules) { -/******/ -/******/ var installedModules = {}; -/******/ -/******/ -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ -/******/ module.l = true; -/******/ -/******/ -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ -/******/ __webpack_require__.m = modules; -/******/ -/******/ -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { -/******/ configurable: false, -/******/ enumerable: true, -/******/ get: getter -/******/ }); -/******/ } -/******/ }; -/******/ -/******/ -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ -/******/ __webpack_require__.p = ""; -/******/ -/******/ -/******/ return __webpack_require__(__webpack_require__.s = 131); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports) { - -var core = module.exports = { version: '2.5.7' }; -if (typeof __e == 'number') __e = core; - - -/***/ }), -/* 1 */ -/***/ (function(module, exports) { - - -var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self - - : Function('return this')(); -if (typeof __g == 'number') __g = global; - - -/***/ }), -/* 2 */ -/***/ (function(module, exports, __webpack_require__) { - -var store = __webpack_require__(35)('wks'); -var uid = __webpack_require__(24); -var Symbol = __webpack_require__(1).Symbol; -var USE_SYMBOL = typeof Symbol == 'function'; - -var $exports = module.exports = function (name) { - return store[name] || (store[name] = - USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); -}; - -$exports.store = store; - - -/***/ }), -/* 3 */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(5); -module.exports = function (it) { - if (!isObject(it)) throw TypeError(it + ' is not an object!'); - return it; -}; - - -/***/ }), -/* 4 */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(1); -var core = __webpack_require__(0); -var ctx = __webpack_require__(21); -var hide = __webpack_require__(7); -var has = __webpack_require__(10); -var PROTOTYPE = 'prototype'; - -var $export = function (type, name, source) { - var IS_FORCED = type & $export.F; - var IS_GLOBAL = type & $export.G; - var IS_STATIC = type & $export.S; - var IS_PROTO = type & $export.P; - var IS_BIND = type & $export.B; - var IS_WRAP = type & $export.W; - var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); - var expProto = exports[PROTOTYPE]; - var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]; - var key, own, out; - if (IS_GLOBAL) source = name; - for (key in source) { - - own = !IS_FORCED && target && target[key] !== undefined; - if (own && has(exports, key)) continue; - - out = own ? target[key] : source[key]; - - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - - : IS_BIND && own ? ctx(out, global) - - : IS_WRAP && target[key] == out ? (function (C) { - var F = function (a, b, c) { - if (this instanceof C) { - switch (arguments.length) { - case 0: return new C(); - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - - if (IS_PROTO) { - (exports.virtual || (exports.virtual = {}))[key] = out; - - if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out); - } - } -}; - -$export.F = 1; -$export.G = 2; -$export.S = 4; -$export.P = 8; -$export.B = 16; -$export.W = 32; -$export.U = 64; -$export.R = 128; -module.exports = $export; - - -/***/ }), -/* 5 */ -/***/ (function(module, exports) { - -module.exports = function (it) { - return typeof it === 'object' ? it !== null : typeof it === 'function'; -}; - - -/***/ }), -/* 6 */ -/***/ (function(module, exports, __webpack_require__) { - - -var IObject = __webpack_require__(46); -var defined = __webpack_require__(30); -module.exports = function (it) { - return IObject(defined(it)); -}; - - -/***/ }), -/* 7 */ -/***/ (function(module, exports, __webpack_require__) { - -var dP = __webpack_require__(8); -var createDesc = __webpack_require__(23); -module.exports = __webpack_require__(9) ? function (object, key, value) { - return dP.f(object, key, createDesc(1, value)); -} : function (object, key, value) { - object[key] = value; - return object; -}; - - -/***/ }), -/* 8 */ -/***/ (function(module, exports, __webpack_require__) { - -var anObject = __webpack_require__(3); -var IE8_DOM_DEFINE = __webpack_require__(48); -var toPrimitive = __webpack_require__(32); -var dP = Object.defineProperty; - -exports.f = __webpack_require__(9) ? Object.defineProperty : function defineProperty(O, P, Attributes) { - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if (IE8_DOM_DEFINE) try { - return dP(O, P, Attributes); - } catch (e) { /* empty */ } - if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); - if ('value' in Attributes) O[P] = Attributes.value; - return O; -}; - - -/***/ }), -/* 9 */ -/***/ (function(module, exports, __webpack_require__) { - - -module.exports = !__webpack_require__(12)(function () { - return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; -}); - - -/***/ }), -/* 10 */ -/***/ (function(module, exports) { - -var hasOwnProperty = {}.hasOwnProperty; -module.exports = function (it, key) { - return hasOwnProperty.call(it, key); -}; - - -/***/ }), -/* 11 */ -/***/ (function(module, exports) { - -module.exports = {}; - - -/***/ }), -/* 12 */ -/***/ (function(module, exports) { - -module.exports = function (exec) { - try { - return !!exec(); - } catch (e) { - return true; - } -}; - - -/***/ }), -/* 13 */ -/***/ (function(module, exports, __webpack_require__) { - - -var $keys = __webpack_require__(51); -var enumBugKeys = __webpack_require__(36); - -module.exports = Object.keys || function keys(O) { - return $keys(O, enumBugKeys); -}; - - -/***/ }), -/* 14 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(66), __esModule: true }; - -/***/ }), -/* 15 */ -/***/ (function(module, exports) { - -var toString = {}.toString; - -module.exports = function (it) { - return toString.call(it).slice(8, -1); -}; - - -/***/ }), -/* 16 */ -/***/ (function(module, exports) { - -module.exports = true; - - -/***/ }), -/* 17 */ -/***/ (function(module, exports) { - -exports.f = {}.propertyIsEnumerable; - - -/***/ }), -/* 18 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(85), __esModule: true }; - -/***/ }), -/* 19 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.COMMON_FILE = exports.COMMON_TOOLS = undefined; - -var _getIterator2 = __webpack_require__(14); - -var _getIterator3 = _interopRequireDefault(_getIterator2); - -var _slicedToArray2 = __webpack_require__(27); - -var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); - -var _entries = __webpack_require__(28); - -var _entries2 = _interopRequireDefault(_entries); - -var _stringify = __webpack_require__(18); - -var _stringify2 = _interopRequireDefault(_stringify); - -var _typeof2 = __webpack_require__(29); - -var _typeof3 = _interopRequireDefault(_typeof2); - -var _requestUtils = __webpack_require__(42); - -var _constant = __webpack_require__(97); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - - -function getFile(fileName, fileUrl) { - var oReq = new XMLHttpRequest(); - var blob = new Blob(); - oReq.open("get", fileUrl, true); - oReq.onload = reqListener; - oReq.responseType = "blob"; - oReq.send(); - - function reqListener() { - blob = this.response; - var fileArray = { - png: { - name: 'img_png.png' - }, - jpg: { - name: 'img_jpg.jpg' - }, - gif: { - name: 'img_gif.gif' - }, - txt: { - name: 'file_txt.txt' - }, - pdf: { - name: 'pdf.pdf' - }, - doc: { - name: 'doc.doc' - }, - docx: { - name: 'docx.docx' - }, - none: { - name: 'file_none' - } - }; - blob.name = fileArray[fileName].name; - COMMON_FILE[fileName] = blob; - return blob; - } -} - -var COMMON_TOOLS = exports.COMMON_TOOLS = { - replaceAll: function replaceAll(origin, replace, string) { - if ((typeof string === 'undefined' ? 'undefined' : (0, _typeof3.default)(string)) == 'object') { - string = (0, _stringify2.default)(string); - while ((string || '').toString().indexOf(origin) != -1) { - string = string.replace(origin, replace); - } - string = JSON.parse(string); - } else { - while ((string || '').toString().indexOf(origin) != -1) { - string = string.replace(origin, replace); - } - } - return string; - }, - judgeRequestMethod: function judgeRequestMethod(methodId) { - var method = "POST"; - switch (methodId.toString()) { - case '1': - method = "GET"; - break; - case '2': - method = "PUT"; - break; - case '3': - method = "DELETE"; - break; - case '4': - method = "HEAD"; - break; - case '5': - method = "OPTIONS"; - break; - case '6': - method = "PATCH"; - break; - default: - method = "POST"; - } - return method; - }, - handleEnv: function handleEnv(env, url, headers, params, raw, requestType, flagFile, flagFormDataToJson) { - if (!$.isEmptyObject(env)) { - - var envHeaders = env.headers; - var headerExist = false; - var statusController = { - type: 'success', - errorReason: '' - }; - var key = Object.key, - value = Object.value, - entries = _entries2.default; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = (0, _getIterator3.default)(entries(envHeaders)), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var _ref = _step.value; - - var _ref2 = (0, _slicedToArray3.default)(_ref, 2); - - var _key = _ref2[0]; - var _value = _ref2[1]; - - headerExist = false; - var _iteratorNormalCompletion10 = true; - var _didIteratorError10 = false; - var _iteratorError10 = undefined; - - try { - for (var _iterator10 = (0, _getIterator3.default)(entries(headers)), _step10; !(_iteratorNormalCompletion10 = (_step10 = _iterator10.next()).done); _iteratorNormalCompletion10 = true) { - var _ref19 = _step10.value; - - var _ref20 = (0, _slicedToArray3.default)(_ref19, 2); - - var _key9 = _ref20[0]; - var _value9 = _ref20[1]; - - - if (_key.toLowerCase() == _key9.toLowerCase()) { - headerExist = true; - } - } - } catch (err) { - _didIteratorError10 = true; - _iteratorError10 = err; - } finally { - try { - if (!_iteratorNormalCompletion10 && _iterator10.return) { - _iterator10.return(); - } - } finally { - if (_didIteratorError10) { - throw _iteratorError10; - } - } - } - - if (headerExist == false) { - headers[_key] = _value; - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - var envParams = env.extraParams; - - if ((requestType == '0' || requestType == '2') && (typeof params === 'undefined' ? 'undefined' : (0, _typeof3.default)(params)) == 'object') { - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = (0, _getIterator3.default)(entries(envParams)), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var _ref3 = _step2.value; - - var _ref4 = (0, _slicedToArray3.default)(_ref3, 2); - - var _key2 = _ref4[0]; - var _value2 = _ref4[1]; - - if (!(_key2 in params)) { - if (/^#/.test(_value2)) { - try { - _value2 = JSON.parse(_value2.substring(1)); - } catch (e) { - _value2 = _value2; - } - } - params[_key2] = _value2; - } - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2.return) { - _iterator2.return(); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - } - - - var _iteratorNormalCompletion3 = true; - var _didIteratorError3 = false; - var _iteratorError3 = undefined; - - try { - for (var _iterator3 = (0, _getIterator3.default)(entries(env.globalParams)), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { - var _ref5 = _step3.value; - - var _ref6 = (0, _slicedToArray3.default)(_ref5, 2); - - var _key3 = _ref6[0]; - var _value3 = _ref6[1]; - - for (var _childKey in headers) { - headers[COMMON_TOOLS.replaceAll('{{' + _key3 + '}}', _value3, _childKey)] = COMMON_TOOLS.replaceAll('{{' + _key3 + '}}', _value3, headers[_childKey]); - if ('{{' + _key3 + '}}' == _childKey) { - delete headers[_childKey]; - } - } - url = COMMON_TOOLS.replaceAll('{{' + _key3 + '}}', _value3, url); - } - } catch (err) { - _didIteratorError3 = true; - _iteratorError3 = err; - } finally { - try { - if (!_iteratorNormalCompletion3 && _iterator3.return) { - _iterator3.return(); - } - } finally { - if (_didIteratorError3) { - throw _iteratorError3; - } - } - } - - var midheaders = (0, _stringify2.default)(headers).toLowerCase(); - midheaders = JSON.parse(midheaders); - if (env.envAuth) { - switch (Number(env.envAuth.status)) { - case 1: - { - if (midheaders["authorization"]) break; - var str = env.envAuth.basicAuth.username + ':' + env.envAuth.basicAuth.password; - headers['Authorization'] = 'Basic ' + CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(str)); - break; - } - case 2: - { - var token = COMMON_TOOLS.jwtEncode(env.envAuth.jwtAuth); - if (token.type == 'error') { - statusController = token; - } - if (env.envAuth.jwtAuth.position == 'header') { - if (midheaders["authorization"]) break; - headers[env.envAuth.jwtAuth.tokenName || ""] = token; - } else { - var query = {}; - query[env.envAuth.jwtAuth.tokenName] = token; - url = _requestUtils.HANDLE_URL.jointQuery(url, query); - } - } - } - } - - if (requestType == '1') { - - var _iteratorNormalCompletion4 = true; - var _didIteratorError4 = false; - var _iteratorError4 = undefined; - - try { - for (var _iterator4 = (0, _getIterator3.default)(entries(env.globalParams)), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { - var _ref7 = _step4.value; - - var _ref8 = (0, _slicedToArray3.default)(_ref7, 2); - - var _key4 = _ref8[0]; - var _value4 = _ref8[1]; - - var regRaw = new RegExp('{{' + _key4 + '}}', "gm"); - raw = raw.toString().replace(regRaw, _value4); - } - } catch (err) { - _didIteratorError4 = true; - _iteratorError4 = err; - } finally { - try { - if (!_iteratorNormalCompletion4 && _iterator4.return) { - _iterator4.return(); - } - } finally { - if (_didIteratorError4) { - throw _iteratorError4; - } - } - } - } else { - if (typeof params == 'string') { - var _iteratorNormalCompletion5 = true; - var _didIteratorError5 = false; - var _iteratorError5 = undefined; - - try { - for (var _iterator5 = (0, _getIterator3.default)(entries(env.globalParams)), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) { - var _ref9 = _step5.value; - - var _ref10 = (0, _slicedToArray3.default)(_ref9, 2); - - var _key5 = _ref10[0]; - var _value5 = _ref10[1]; - - var regRaw = new RegExp('{{' + _key5 + '}}', "gm"); - params = params.toString().replace(regRaw, _value5); - } - } catch (err) { - _didIteratorError5 = true; - _iteratorError5 = err; - } finally { - try { - if (!_iteratorNormalCompletion5 && _iterator5.return) { - _iterator5.return(); - } - } finally { - if (_didIteratorError5) { - throw _iteratorError5; - } - } - } - } else if (typeof params == 'number') { - params = params.toString(); - var _iteratorNormalCompletion6 = true; - var _didIteratorError6 = false; - var _iteratorError6 = undefined; - - try { - for (var _iterator6 = (0, _getIterator3.default)(entries(env.globalParams)), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) { - var _ref11 = _step6.value; - - var _ref12 = (0, _slicedToArray3.default)(_ref11, 2); - - var _key6 = _ref12[0]; - var _value6 = _ref12[1]; - - var regRaw = new RegExp('{{' + _key6 + '}}', "gm"); - params = params.toString().replace(regRaw, _value6); - } - } catch (err) { - _didIteratorError6 = true; - _iteratorError6 = err; - } finally { - try { - if (!_iteratorNormalCompletion6 && _iterator6.return) { - _iterator6.return(); - } - } finally { - if (_didIteratorError6) { - throw _iteratorError6; - } - } - } - } else { - if (flagFile == true && requestType == '0') { - - var _iteratorNormalCompletion7 = true; - var _didIteratorError7 = false; - var _iteratorError7 = undefined; - - try { - for (var _iterator7 = (0, _getIterator3.default)(entries(env.globalParams)), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) { - var _ref13 = _step7.value; - - var _ref14 = (0, _slicedToArray3.default)(_ref13, 2); - - var _key7 = _ref14[0]; - var _value7 = _ref14[1]; - - var regParams = new RegExp('{{' + _key7 + '}}', "gm"); - var _iteratorNormalCompletion8 = true; - var _didIteratorError8 = false; - var _iteratorError8 = undefined; - - try { - for (var _iterator8 = (0, _getIterator3.default)(entries(params)), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) { - var _ref15 = _step8.value; - - var _ref16 = (0, _slicedToArray3.default)(_ref15, 2); - - var key1 = _ref16[0]; - var value1 = _ref16[1]; - - if (typeof value1 == 'string') { - params[key1.replace(regParams, _value7)] = value1.replace(regParams, _value7); - } - if (key1 != key1.replace(regParams, _value7)) { - params[key1.replace(regParams, _value7)] = value1.replace(regParams, _value7); - delete params[key1]; - } - } - } catch (err) { - _didIteratorError8 = true; - _iteratorError8 = err; - } finally { - try { - if (!_iteratorNormalCompletion8 && _iterator8.return) { - _iterator8.return(); - } - } finally { - if (_didIteratorError8) { - throw _iteratorError8; - } - } - } - } - } catch (err) { - _didIteratorError7 = true; - _iteratorError7 = err; - } finally { - try { - if (!_iteratorNormalCompletion7 && _iterator7.return) { - _iterator7.return(); - } - } finally { - if (_didIteratorError7) { - throw _iteratorError7; - } - } - } - } else { - var _iteratorNormalCompletion9 = true; - var _didIteratorError9 = false; - var _iteratorError9 = undefined; - - try { - for (var _iterator9 = (0, _getIterator3.default)(entries(env.globalParams)), _step9; !(_iteratorNormalCompletion9 = (_step9 = _iterator9.next()).done); _iteratorNormalCompletion9 = true) { - var _ref17 = _step9.value; - - var _ref18 = (0, _slicedToArray3.default)(_ref17, 2); - - var _key8 = _ref18[0]; - var _value8 = _ref18[1]; - - for (var childKey in params) { - var afterKey = COMMON_TOOLS.replaceAll('{{' + _key8 + '}}', _value8, childKey); - params[afterKey] = COMMON_TOOLS.replaceAll('{{' + _key8 + '}}', _value8, params[childKey]); - if (afterKey != childKey) { - delete params[childKey]; - } - } - } - } catch (err) { - _didIteratorError9 = true; - _iteratorError9 = err; - } finally { - try { - if (!_iteratorNormalCompletion9 && _iterator9.return) { - _iterator9.return(); - } - } finally { - if (_didIteratorError9) { - throw _iteratorError9; - } - } - } - } - } - } - var urlPatt = new RegExp('^(((http|ftp|https):\/\/)|)(([\\\w\\\-_]+([\\\w\\\-\\\.]*)?(\\\.(' + _constant.CONSTANT.DOMAIN.join('|') + ')))|((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(localhost))((\\\/)|(\\\?)|(:)|($))'); - - if (env.baseUrl) { - if (!urlPatt.test(url)) { - url = env.baseUrl + url; - } - } - } - return { - type: statusController.type, - errorReason: statusController.errorReason, - url: url, - headers: headers, - params: params, - raw: raw - }; - }, - selfLoopMatchJson: function selfLoopMatchJson(arrMatchList, response) { - if (response === null || Object.prototype.toString.call(response).toLowerCase() == "[object array]" || (typeof response === 'undefined' ? 'undefined' : (0, _typeof3.default)(response)) == "object" && Object.prototype.toString.call(response).toLowerCase() == "[object object]") { - - if (arrMatchList.length == 0 || !arrMatchList[0].paramKey || arrMatchList == null) { - return { - isMatch: true, - errorReason: '' - }; - } else { - var isNum = function isNum(s) { - if (s != null && s !== "") { - return !isNaN(s); - } - return false; - }; - - var loopFun = function loopFun(arrMatchList, response) { - var isMatch = true; - var errorReason = ''; - for (var i = 0; i < arrMatchList.length; i++) { - var arrMatch = arrMatchList[i]; - arrMatch.paramInfo = arrMatch.paramInfo || ''; - if (!arrMatch.paramKey) break; - - var regular = arrMatch.matchRule; - var json2, json1; - if (response) { - json1 = response[arrMatch.paramKey]; - } else { - json1 = undefined; - } - if (arrMatch.paramType && arrMatch.paramInfo.indexOf('#') != 0) { - switch (Number(arrMatch.paramType)) { - case 0: - { - - break; - } - case 4: - { - arrMatch.paramInfo = []; - break; - } - default: - { - arrMatch.paramInfo = '#' + arrMatch.paramInfo; - } - } - } - if (/^#/.test(arrMatch.paramInfo)) { - try { - json2 = JSON.parse(arrMatch.paramInfo.substring(1)); - } catch (e) { - json2 = arrMatch.paramInfo; - if (json2.slice(1, 10) == 'undefined') { - json2 = undefined; - } - } - } else { - json2 = arrMatch.paramInfo; - } - if (regular != 0) { - if (regular == 1) { - - if ((typeof json2 === 'undefined' ? 'undefined' : (0, _typeof3.default)(json2)) == 'object' && json2 != null && json1 != null) { - json1 = (0, _stringify2.default)(json1); - json2 = (0, _stringify2.default)(json2); - } - if (json1 === json2) {} else { - isMatch = false; - errorReason = '字段' + arrMatch.paramKey + '结果不匹配,匹配规则为:等于' + (0, _stringify2.default)(json2) + ',实际返回' + (0, _stringify2.default)(json1); - } - } else if (regular == 2) { - - if ((typeof json2 === 'undefined' ? 'undefined' : (0, _typeof3.default)(json2)) == 'object' && json2 != null && json1 != null) { - json1 = (0, _stringify2.default)(json1); - json2 = (0, _stringify2.default)(json2); - } - if (json1 !== json2) {} else { - isMatch = false; - errorReason = '字段' + arrMatch.paramKey + '结果不匹配,匹配规则为:不等于' + (0, _stringify2.default)(json2) + ',实际返回' + (0, _stringify2.default)(json1); - } - } else if (regular == 3) { - - - if (isNum(json1) && isNum(json2)) { - if (json1 > json2) {} else { - isMatch = false; - } - } else if (!isNum(json1) && !isNum(json2)) { - if ((0, _stringify2.default)(json1) > (0, _stringify2.default)(json2)) {} else { - isMatch = false; - } - } else { - isMatch = false; - } - if (isMatch == false) { - errorReason = '字段' + arrMatch.paramKey + '结果不匹配,匹配规则为:大于' + json2 + ',实际返回' + (0, _stringify2.default)(json1); - } - } else if (regular == 4) { - - if (isNum(json1) && isNum(json2)) { - if (json1 < json2) {} else { - isMatch = false; - } - } else if (!isNum(json1) && !isNum(json2)) { - if ((0, _stringify2.default)(json1) < (0, _stringify2.default)(json2)) {} else { - isMatch = false; - } - } else { - isMatch = false; - } - if (isMatch == false) { - errorReason = '字段' + arrMatch.paramKey + '结果不匹配,匹配规则为:小于' + json2 + '实际返回' + (0, _stringify2.default)(json1); - } - } else if (regular == 5) { - - try { - var patt = new RegExp(json2); - if (!patt.test(json1)) { - isMatch = false; - errorReason = '字段' + arrMatch.paramKey + '结果不匹配,匹配规则为:Reg=' + (0, _stringify2.default)(json2) + ',实际返回' + (0, _stringify2.default)(json1); - } - } catch (e) { - isMatch = false; - errorReason = '字段' + arrMatch.paramKey + '正则匹配失败,请检查您填写的正则表达式'; - } - } - } - if (isMatch == false) { - return { - isMatch: isMatch, - errorReason: errorReason - }; - } - if (arrMatch.childList.length > 0) { - var result = {}; - var data = {}; - if (Object.prototype.toString.call(arrMatch.paramInfo) == '[object Array]') { - data = response[arrMatch.paramKey][0]; - } else if (arrMatch.paramInfo.indexOf('#array') == 0) { - var _patt = /#array\[(.*?)\]/; - var num = 0; - if (_patt.exec(arrMatch.paramInfo) && _patt.exec(arrMatch.paramInfo)[1]) { - num = _patt.exec(arrMatch.paramInfo)[1]; - } - if (response && response[arrMatch.paramKey]) { - data = response[arrMatch.paramKey][num]; - } else { - data = undefined; - } - } else { - if (response) { - data = response[arrMatch.paramKey]; - } else { - data = undefined; - } - } - result = loopFun(arrMatch.childList, data); - if (result.isMatch == false) return result; - } - } - return { - isMatch: true, - errorReason: '' - }; - }; - return loopFun(arrMatchList, response); - } - } else { - return { - isMatch: false, - errorReason: '返回信息并非json格式的对象' - }; - } - - }, - handleTime: function handleTime(testTime) { - var Y, M, D, h, m, s; - Y = testTime.getFullYear() + '-'; - M = (testTime.getMonth() + 1 < 10 ? '0' + (testTime.getMonth() + 1) : testTime.getMonth() + 1) + '-'; - D = testTime.getDate() + ' '; - h = testTime.getHours() + ':'; - m = testTime.getMinutes() + ':'; - s = testTime.getSeconds(); - testTime = Y + M + D + h + m + s; - return testTime; - }, - - sortArray: function sortArray(item1, item2) { - if (item1.key > item2.key) return 1;else if (item1.key === item2.key) return 0;else return -1; - }, - abortAll: function abortAll(ajaxs) { - $.each(ajaxs, function (i, ajax) { - ajax.abort(); - }); - }, - base64url: function base64url(str) { - var encodedSource = CryptoJS.enc.Base64.stringify(str); - var reg = new RegExp('/', 'g'); - encodedSource = encodedSource.replace(/=+$/, '').replace(/\+/g, '-').replace(reg, '_'); - return encodedSource; - }, - jwtEncode: function jwtEncode(jwtAuth) { - - if (!(jwtAuth.alg in _constant.CONSTANT.JWT_METHOD)) return { - type: 'error', - errorReason: "浏览器插件测试暂不支持加密方式: " + jwtAuth.alg + ",请使用专业版在线测试" - }; - var header = (0, _stringify2.default)({ - alg: jwtAuth.alg, - typ: jwtAuth.typ || "JWT" - }); - var payload = ''; - try { - payload = (0, _stringify2.default)(JSON.parse(jwtAuth.payload)); - } catch (e) { - payload = '{}'; - } - var secretSalt = jwtAuth.secretSalt; - var before_sign = COMMON_TOOLS.base64url(CryptoJS.enc.Utf8.parse(header)) + '.' + COMMON_TOOLS.base64url(CryptoJS.enc.Utf8.parse(payload)); - var signature = CryptoJS[_constant.CONSTANT.JWT_METHOD[jwtAuth.alg]](before_sign, secretSalt); - signature = COMMON_TOOLS.base64url(signature); - var result = before_sign + '.' + signature; - return result; - } -}; - -var COMMON_FILE = exports.COMMON_FILE = { - getAllFile: function getAllFile() { - getFile('txt', window.location.origin + '/files/test_files/file_txt.txt'); - getFile('none', window.location.origin + '/files/test_files/file_none'); - getFile('jpg', window.location.origin + '/files/test_imgs/img_jpg.jpg'); - getFile('png', window.location.origin + '/files/test_imgs/img_png.png'); - getFile('gif', window.location.origin + '/files/test_imgs/img_gif.gif'); - getFile('pdf', window.location.origin + '/files/test_files/pdf.pdf'); - getFile('docx', window.location.origin + '/files/test_files/docx.docx'); - getFile('doc', window.location.origin + '/files/test_files/doc.doc'); - } -}; - -/***/ }), -/* 20 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(67); -var global = __webpack_require__(1); -var hide = __webpack_require__(7); -var Iterators = __webpack_require__(11); -var TO_STRING_TAG = __webpack_require__(2)('toStringTag'); - -var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' + - 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' + - 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' + - 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' + - 'TextTrackList,TouchList').split(','); - -for (var i = 0; i < DOMIterables.length; i++) { - var NAME = DOMIterables[i]; - var Collection = global[NAME]; - var proto = Collection && Collection.prototype; - if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); - Iterators[NAME] = Iterators.Array; -} - - -/***/ }), -/* 21 */ -/***/ (function(module, exports, __webpack_require__) { - - -var aFunction = __webpack_require__(22); -module.exports = function (fn, that, length) { - aFunction(fn); - if (that === undefined) return fn; - switch (length) { - case 1: return function (a) { - return fn.call(that, a); - }; - case 2: return function (a, b) { - return fn.call(that, a, b); - }; - case 3: return function (a, b, c) { - return fn.call(that, a, b, c); - }; - } - return function (/* ...args */) { - return fn.apply(that, arguments); - }; -}; - - -/***/ }), -/* 22 */ -/***/ (function(module, exports) { - -module.exports = function (it) { - if (typeof it != 'function') throw TypeError(it + ' is not a function!'); - return it; -}; - - -/***/ }), -/* 23 */ -/***/ (function(module, exports) { - -module.exports = function (bitmap, value) { - return { - enumerable: !(bitmap & 1), - configurable: !(bitmap & 2), - writable: !(bitmap & 4), - value: value - }; -}; - - -/***/ }), -/* 24 */ -/***/ (function(module, exports) { - -var id = 0; -var px = Math.random(); -module.exports = function (key) { - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); -}; - - -/***/ }), -/* 25 */ -/***/ (function(module, exports, __webpack_require__) { - -var def = __webpack_require__(8).f; -var has = __webpack_require__(10); -var TAG = __webpack_require__(2)('toStringTag'); - -module.exports = function (it, tag, stat) { - if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag }); -}; - - -/***/ }), -/* 26 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var $at = __webpack_require__(75)(true); - - -__webpack_require__(47)(String, 'String', function (iterated) { - this._t = String(iterated); - this._i = 0; - -}, function () { - var O = this._t; - var index = this._i; - var point; - if (index >= O.length) return { value: undefined, done: true }; - point = $at(O, index); - this._i += point.length; - return { value: point, done: false }; -}); - - -/***/ }), -/* 27 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _isIterable2 = __webpack_require__(77); - -var _isIterable3 = _interopRequireDefault(_isIterable2); - -var _getIterator2 = __webpack_require__(14); - -var _getIterator3 = _interopRequireDefault(_getIterator2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function () { - function sliceIterator(arr, i) { - var _arr = []; - var _n = true; - var _d = false; - var _e = undefined; - - try { - for (var _i = (0, _getIterator3.default)(arr), _s; !(_n = (_s = _i.next()).done); _n = true) { - _arr.push(_s.value); - - if (i && _arr.length === i) break; - } - } catch (err) { - _d = true; - _e = err; - } finally { - try { - if (!_n && _i["return"]) _i["return"](); - } finally { - if (_d) throw _e; - } - } - - return _arr; - } - - return function (arr, i) { - if (Array.isArray(arr)) { - return arr; - } else if ((0, _isIterable3.default)(Object(arr))) { - return sliceIterator(arr, i); - } else { - throw new TypeError("Invalid attempt to destructure non-iterable instance"); - } - }; -}(); - -/***/ }), -/* 28 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(80), __esModule: true }; - -/***/ }), -/* 29 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _iterator = __webpack_require__(86); - -var _iterator2 = _interopRequireDefault(_iterator); - -var _symbol = __webpack_require__(88); - -var _symbol2 = _interopRequireDefault(_symbol); - -var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj; }; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) { - return typeof obj === "undefined" ? "undefined" : _typeof(obj); -} : function (obj) { - return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj); -}; - -/***/ }), -/* 30 */ -/***/ (function(module, exports) { - - -module.exports = function (it) { - if (it == undefined) throw TypeError("Can't call method on " + it); - return it; -}; - - -/***/ }), -/* 31 */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(5); -var document = __webpack_require__(1).document; - -var is = isObject(document) && isObject(document.createElement); -module.exports = function (it) { - return is ? document.createElement(it) : {}; -}; - - -/***/ }), -/* 32 */ -/***/ (function(module, exports, __webpack_require__) { - - -var isObject = __webpack_require__(5); - - -module.exports = function (it, S) { - if (!isObject(it)) return it; - var fn, val; - if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; - if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - throw TypeError("Can't convert object to primitive value"); -}; - - -/***/ }), -/* 33 */ -/***/ (function(module, exports) { - - -var ceil = Math.ceil; -var floor = Math.floor; -module.exports = function (it) { - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); -}; - - -/***/ }), -/* 34 */ -/***/ (function(module, exports, __webpack_require__) { - -var shared = __webpack_require__(35)('keys'); -var uid = __webpack_require__(24); -module.exports = function (key) { - return shared[key] || (shared[key] = uid(key)); -}; - - -/***/ }), -/* 35 */ -/***/ (function(module, exports, __webpack_require__) { - -var core = __webpack_require__(0); -var global = __webpack_require__(1); -var SHARED = '__core-js_shared__'; -var store = global[SHARED] || (global[SHARED] = {}); - -(module.exports = function (key, value) { - return store[key] || (store[key] = value !== undefined ? value : {}); -})('versions', []).push({ - version: core.version, - mode: __webpack_require__(16) ? 'pure' : 'global', - copyright: '© 2018 Denis Pushkarev (zloirock.ru)' -}); - - -/***/ }), -/* 36 */ -/***/ (function(module, exports) { - - -module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' -).split(','); - - -/***/ }), -/* 37 */ -/***/ (function(module, exports, __webpack_require__) { - - -var cof = __webpack_require__(15); -var TAG = __webpack_require__(2)('toStringTag'); - -var ARG = cof(function () { return arguments; }()) == 'Arguments'; - - -var tryGet = function (it, key) { - try { - return it[key]; - } catch (e) { /* empty */ } -}; - -module.exports = function (it) { - var O, T, B; - return it === undefined ? 'Undefined' : it === null ? 'Null' - - : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T - - : ARG ? cof(O) - - : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; -}; - - -/***/ }), -/* 38 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(82), __esModule: true }; - -/***/ }), -/* 39 */ -/***/ (function(module, exports) { - -exports.f = Object.getOwnPropertySymbols; - - -/***/ }), -/* 40 */ -/***/ (function(module, exports, __webpack_require__) { - -exports.f = __webpack_require__(2); - - -/***/ }), -/* 41 */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(1); -var core = __webpack_require__(0); -var LIBRARY = __webpack_require__(16); -var wksExt = __webpack_require__(40); -var defineProperty = __webpack_require__(8).f; -module.exports = function (name) { - var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); - if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) }); -}; - - -/***/ }), -/* 42 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.HANDLE_PARAMS = exports.HANDLE_URL = undefined; - -var _getIterator2 = __webpack_require__(14); - -var _getIterator3 = _interopRequireDefault(_getIterator2); - -var _slicedToArray2 = __webpack_require__(27); - -var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); - -var _entries2 = __webpack_require__(28); - -var _entries3 = _interopRequireDefault(_entries2); - -var _stringify = __webpack_require__(18); - -var _stringify2 = _interopRequireDefault(_stringify); - -var _typeof2 = __webpack_require__(29); - -var _typeof3 = _interopRequireDefault(_typeof2); - -var _commonUtils = __webpack_require__(19); - -var _constants = __webpack_require__(57); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -"use strict"; - -var rawFormData = ''; -var transformJson = function transformJson() { - var data = { - fun: { - main: null, - loop: null, - typeof: null - }, - _bigNums: [] - }; - data.fun.typeof = function (object) { - var tf = typeof object === 'undefined' ? 'undefined' : (0, _typeof3.default)(object), - ts = Object.prototype.toString.call(object); - return null === object ? 'Null' : 'undefined' == tf ? 'Undefined' : 'boolean' == tf ? 'Boolean' : 'number' == tf ? 'Number' : 'string' == tf ? 'String' : '[object Function]' == ts ? 'Function' : '[object Array]' == ts ? 'Array' : '[object Date]' == ts ? 'Date' : 'Object'; - }; - data.fun.loop = function (arg) { - var template = { - item: [], - loop: { - array: { - item: arg.array.item.slice(1, arg.array.item.length) - }, - parent: { - name: arg.parent.name, - object: arg.parent.object - }, - key: arg.key - } - }; - if (arg.array.item.length > 0) { - template.item = JSON.parse((0, _stringify2.default)(arg.array.item)); - template.item.splice(0, 1); - if (arg.array.item[0] == arg.parent.name && arg.array.item.length <= 2) { - if (data.fun.typeof(template.loop.parent.object[arg.array.item[0]]) == 'Array') { - var length = template.loop.parent.object[arg.array.item[0]].length >= 1 ? template.loop.parent.object[arg.array.item[0]].length - 1 : 0; - if (data.fun.typeof(template.loop.parent.object[arg.array.item[0]][length]) == 'Undefined') { - template.loop.parent.object[arg.array.item[0]][length] = {}; - } else if (data.fun.typeof(template.loop.parent.object[arg.array.item[0]][length]) != 'Object') { - length++; - template.loop.parent.object[arg.array.item[0]][length] = {}; - } - template.loop.parent.object[arg.array.item[0]][length][arg.key.name] = arg.key.value; - } else if (data.fun.typeof(template.loop.parent.object[arg.array.item[0]]) == 'Object') { - template.loop.parent.object[arg.array.item[0]][arg.key.name] = arg.key.value; - } else { - template.loop.parent.object[arg.array.item[0]] = {}; - template.loop.parent.object[arg.array.item[0]][arg.key.name] = arg.key.value; - } - } else { - if (data.fun.typeof(template.loop.parent.object[arg.array.item[0]]) == 'Array') { - template.loop.parent.object = template.loop.parent.object[arg.array.item[0]][0]; - } else { - if (data.fun.typeof(template.loop.parent.object[arg.array.item[0]]) != 'Object') { - template.loop.parent.object[arg.array.item[0]] = {}; - } - template.loop.parent.object = template.loop.parent.object[arg.array.item[0]]; - } - data.fun.loop(template.loop); - } - } else { - template.loop.parent.object = arg.key.value; - } - }; - data.fun.main = function (arg) { - var template = { - loopObject: null, - array: { - parent: arg.parent || [], - child: [], - item: [] - }, - loopVar: { - $index: 0, - length: 0 - }, - icon: { - child: false, - parent: false - }, - result: arg.result || {} - }; - arg.input.map(function (val, key) { - template.array.item = (val.paramKey + '').replace(/(\s)*([:]{2}|[>]{2})(\s)*/g, '>>').split(/[:]{2}|[>]{2}/); - template.loopVar.length = template.array.item.length; - try { - val.paramInfo = val.paramInfo || ''; - if (val.type) { - switch (parseInt(val.type || 0)) { - case 0: - case 1: - case 9: - { - break; - } - default: - { - if (val.type > 999) { - - } else { - if (val.paramInfo) { - val.paramInfo = '#' + val.paramInfo.replace(/^#/, ''); - } else { - switch (parseInt(val.type || 0)) { - case 2: - case 13: - { - val.paramInfo = {}; - break; - } - case 12: - { - val.paramInfo = []; - break; - } - } - } - } - - break; - } - } - } - if (/^#/.test(val.paramInfo) && !/^#(([1-9]\d*)|0)(\.\d*[0-9])?/.test(val.paramInfo)) { - if (/^#array/.test(val.paramInfo)) { - val.paramInfo = []; - } else { - var check_data = val.paramInfo.replace(/\s/g, ''); - var bigNum_regex = /([\[:,]){1}(\d{16,})([,\]\}]){1}/g; - var m; - - do { - m = bigNum_regex.exec(check_data); - if (m) { - data._bigNums.push(m[2]); - val.paramInfo = val.paramInfo.replace(/([\[:])?(\d{16,})\s*([,\}\]])/, "$1\"#$2\"$3"); - } - check_data = val.paramInfo.replace(/\s/g, ''); - } while (m); - val.paramInfo = JSON.parse(val.paramInfo.substring(1)); - } - } else { - val.paramInfo = val.paramInfo || ''; - } - } catch (e) { - val.paramInfo = val.type == 12 ? [] : val.paramInfo; - } - switch (template.loopVar.length) { - case 1: - { - if (template.array.item[0]) { - template.array.parent.push(template.array.item[0]); - template.result[template.array.item[0]] = val.paramInfo; - template.icon.parent = true; - } - break; - } - default: - { - template.loopVar.$index = template.array.parent.indexOf(template.array.item[template.loopVar.length - 2]); - if (template.loopVar.$index > -1) { - template.array.parent.push(template.array.item[template.loopVar.length - 1]); - template.loopObject = { - array: { - item: template.array.item - }, - parent: { - name: template.array.item[template.loopVar.length - 2], - object: template.result - }, - key: { - name: template.array.item[template.loopVar.length - 1], - value: val.paramInfo || '' - } - }; - data.fun.loop(template.loopObject); - template.icon.parent = true; - } else { - template.array.child.push(val); - template.icon.child = true; - } - break; - } - } - }); - if (template.icon.parent && template.icon.child) { - template.result = data.fun.main({ - input: template.array.child, - result: template.result, - parent: template.array.parent - }); - } else if (template.icon.child) { - template.array.child.map(function (val, key) { - template.result[val.paramKey] = val.paramInfo || ''; - }); - } - return template.result; - }; - return function (input) { - var template = { - input: [], - output: '', - match: [] - }; - template.input = JSON.parse((0, _stringify2.default)(input)); - rawFormData = data.fun.main({ - input: template.input - }); - template.output = (0, _stringify2.default)(rawFormData); - template.match = template.output.match(/"#(([1-9]\d*)|0)(\.\d*[0-9])?"/g) || []; - template.match.map(function (val, key) { - template.substring = val.substring(2, val.length - 1); - if (!isNaN(template.substring) && template.substring.length >= 15 && data._bigNums.indexOf(template.substring) > -1) { - template.output = template.output.replace(val, template.substring); - } else { - template.output = template.output.replace(val, val.substring(2, val.length - 1)); - } - }); - return template.output; - }; -}; -var HANDLE_URL = exports.HANDLE_URL = { - splitQuery: function splitQuery(url) { - var hashArgs = {}; - if (url.indexOf('?') > -1) { - var queryString = url.substring(url.indexOf('?') + 1); - queryString = queryString.split('&'); - queryString.forEach(function (group, i) { - if (group.indexOf('=') > -1) { - var index = group.indexOf('=') + 1; - var queryName = group.substring(0, index - 1); - var queryValue = group.substring(index); - if (!queryName) return; - if (queryName in hashArgs) { - if (Object.prototype.toString.call(hashArgs[queryName]) == '[object Array]') { - hashArgs.push(queryValue); - } else { - hashArgs[queryName] = [hashArgs[queryName], queryValue]; - } - } else { - hashArgs[queryName] = queryValue; - } - } else { - if (!group) return; - hashArgs[group] = ''; - } - }); - } - return hashArgs; - }, - jointQuery: function jointQuery(url, query) { - var data = { - fun: { - joint: null - } - }; - var equalSign = '='; - data.fun.getQueryValue = function (queryName, queryValue) { - var output = ''; - if (Object.prototype.toString.call(queryValue) == '[object Array]') { - queryValue.forEach(function (val, key) { - if (output == '') { - output = val; - } else { - output = output + '&' + queryName + equalSign + val; - } - }); - } else { - output = queryValue; - } - return output; - }; - data.fun.joint = function (query) { - var output = ''; - var key = Object.key, - value = Object.value, - entries = _entries3.default; - - if ((typeof query === 'undefined' ? 'undefined' : (0, _typeof3.default)(query)) == 'object') { - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = (0, _getIterator3.default)(entries(query)), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var _ref = _step.value; - - var _ref2 = (0, _slicedToArray3.default)(_ref, 2); - - var _key = _ref2[0]; - var _value = _ref2[1]; - - if (output == '') { - output = _key + equalSign + data.fun.getQueryValue(_key, _value); - } else { - output = output + '&' + _key + equalSign + data.fun.getQueryValue(_key, _value); - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - } else { - output = query; - } - return output; - }; - if ($.isEmptyObject(query) == false) { - if (url.indexOf('?') == -1) { - - url = url + '?' + data.fun.joint(query); - } else { - var urlList = url.split('?'); - url = urlList[0] + '?' + data.fun.joint(query); - } - } - return url; - }, - - handleProtocol: function handleProtocol(url, httpHeader) { - var protocol = httpHeader == '1' ? 'https://' : 'http://'; - if (url.substring(0, 7) != "http://" && url.substring(0, 8) != "https://") { - url = protocol + url; - } - return url; - }, - destRequestUrl: function destRequestUrl(url) { - var urlDetail = ''; - try { - urlDetail = new URL(url); - } catch (e) { - console.log(e); - urlDetail = url; - } - return urlDetail; - }, - replaceRest: function replaceRest(url, rest) { - for (var key in rest) { - url = url.replace(eval("/\{(?!\{)" + key + "\}(?!\})/g"), rest[key]); - url = url.replace(eval("/\:" + key + "/g"), rest[key]); - } - return url; - }, - handleRightUrl: function handleRightUrl(url) { - var url1 = HANDLE_URL.destRequestUrl(url); - - if (url1.scheme == 'http' && url1.port == '80' || url1.scheme == 'https' && url1.port == '443') { - url1 = url.replace(eval('/\:' + url1.port + '/'), ''); - } else { - url1 = url; - } - return url1; - } -}; -var HANDLE_PARAMS = exports.HANDLE_PARAMS = { - handleFormJson: function handleFormJson(params) { - var strJson = null; - var error = { - status: 0, - errorText: '' - }; - try { - strJson = transformJson()(params); - } catch (e) { - console.log(e); - var error = { - status: 1, - errorText: 'form-data转json格式错误,请检查您填写的参数' - }; - } - return { - dataParams: strJson, - error: error - }; - }, - judgeFileExist: function judgeFileExist(params) { - var flagFile = false; - var key = Object.key, - value = Object.value, - entries = _entries3.default; - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = (0, _getIterator3.default)(entries(params)), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var _ref3 = _step2.value; - - var _ref4 = (0, _slicedToArray3.default)(_ref3, 2); - - var _key2 = _ref4[0]; - var _value2 = _ref4[1]; - - if (Object.prototype.toString.call(_value2) == '[object Blob]') { - flagFile = true; - } - if (Object.prototype.toString.call(_value2) == '[object Array]') { - _value2.forEach(function (item) { - if (Object.prototype.toString.call(item) == '[object Blob]') { - flagFile = true; - } - }); - } - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2.return) { - _iterator2.return(); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - - return flagFile; - }, - handleRequestParams: function handleRequestParams(headers, requestType, flagFormDataToJson, flagFile, params, raw, ContentType, processData, reportType, rawFormData) { - var report = {}; - var request = {}; - switch (requestType.toString()) { - case '0': - case '2': - { - if (flagFormDataToJson) { - reportType = '1'; - ContentType = 'application/json; charset=UTF-8'; - - if (typeof params != 'string') { - report = request = (0, _stringify2.default)(params); - } else { - report = request = params; - } - } else if (typeof params == 'string') { - ContentType = 'text/plain; charset=UTF-8'; - requestType = reportType = '1'; - request = report = raw = params; - } else if (typeof params == 'number') { - ContentType = 'text/plain; charset=UTF-8'; - requestType = reportType = '1'; - request = report = raw = params.toString(); - } else { - var _key3 = Object.key, - _value3 = Object.value, - _entries = _entries3.default; - - if (flagFile && requestType == '0') { - request = new FormData(); - - var _loop = function _loop(_key4, _value5) { - - if (Object.prototype.toString.call(_value5) == '[object Blob]') { - request.append(_key4, _value5, _value5.name || _key4); - report[_key4] = '[Object blob]'; - } else if (Object.prototype.toString.call(_value5) == '[object Array]') { - - var _flagFile = false; - _value5.forEach(function (item) { - if (Object.prototype.toString.call(item) == '[object Blob]') { - _flagFile = true; - } - }); - if (_flagFile == true) { - _value5.forEach(function (item) { - if (Object.prototype.toString.call(item) == '[object Blob]') { - request.append(_key4, item, item.name || _key4); - report[_key4] = '[Object blob]'; - } else { - - try { - if (typeof _value5 != 'string') { - _value5 = (0, _stringify2.default)(_value5); - } - } catch (e) {} - request.append(_key4, item); - report[_key4] = report[_key4] || '' + item; - } - }); - } else { - request.append(_key4, _value5); - report[_key4] = _value5; - } - } else { - request.append(_key4, _value5); - report[_key4] = _value5; - } - _value4 = _value5; - }; - - var _iteratorNormalCompletion3 = true; - var _didIteratorError3 = false; - var _iteratorError3 = undefined; - - try { - for (var _iterator3 = (0, _getIterator3.default)(_entries(params)), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { - var _ref5 = _step3.value; - - var _ref6 = (0, _slicedToArray3.default)(_ref5, 2); - - var _key4 = _ref6[0]; - var _value4 = _ref6[1]; - - _loop(_key4, _value4); - } - } catch (err) { - _didIteratorError3 = true; - _iteratorError3 = err; - } finally { - try { - if (!_iteratorNormalCompletion3 && _iterator3.return) { - _iterator3.return(); - } - } finally { - if (_didIteratorError3) { - throw _iteratorError3; - } - } - } - } else { - request = report = params; - } - } - break; - } - case '1': - { - - ContentType = 'text/plain; charset=UTF-8'; - request = report = raw; - break; - } - } - - var midheaders = (0, _stringify2.default)(headers).toLowerCase(); - midheaders = JSON.parse(midheaders); - if (midheaders["content-type"]) { - ContentType = midheaders["content-type"]; - if (midheaders["content-type"].toLowerCase().indexOf('json') > -1 || midheaders["content-type"].toLowerCase().indexOf('text') > -1) { - reportType = '1'; - } else if (midheaders["content-type"].toLowerCase().indexOf('multipart/form-data') > -1) { - flagFile = true; - } - } - - if (reportType == '1' && !flagFormDataToJson) {} - - if (flagFile && !flagFormDataToJson && requestType == '0') { - ContentType = false; - processData = false; - } - var key = Object.key, - value = Object.value, - entries = _entries3.default; - - - if (ContentType == false) { - var _iteratorNormalCompletion4 = true; - var _didIteratorError4 = false; - var _iteratorError4 = undefined; - - try { - for (var _iterator4 = (0, _getIterator3.default)(entries(headers)), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { - var _ref7 = _step4.value; - - var _ref8 = (0, _slicedToArray3.default)(_ref7, 2); - - var _key5 = _ref8[0]; - var _value6 = _ref8[1]; - - if (_key5.toLowerCase() == 'content-type') { - delete headers[_key5]; - } - } - } catch (err) { - _didIteratorError4 = true; - _iteratorError4 = err; - } finally { - try { - if (!_iteratorNormalCompletion4 && _iterator4.return) { - _iterator4.return(); - } - } finally { - if (_didIteratorError4) { - throw _iteratorError4; - } - } - } - } - return { - report: report, - request: request, - raw: raw, - ContentType: ContentType, - processData: processData, - reportType: reportType, - headers: headers - }; - }, - - changeDataURLtoBlob: function changeDataURLtoBlob(dataurl) { - var arr = dataurl.split(','); - var mime = arr[0].match(/:(.*?);/); - if (arr[0].match(/:(.*?);/)) { - mime = mime[1] || ''; - } else { - mime = ''; - } - if (arr[1]) { - var bstr = atob(arr[1]), - n = bstr.length, - u8arr = new Uint8Array(n); - while (n--) { - u8arr[n] = bstr.charCodeAt(n); - } - } else { - u8arr = new Uint8Array(0); - } - return new Blob([u8arr], { - type: mime - }); - } -}; - -/***/ }), -/* 43 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(101), __esModule: true }; - -/***/ }), -/* 44 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var aFunction = __webpack_require__(22); - -function PromiseCapability(C) { - var resolve, reject; - this.promise = new C(function ($$resolve, $$reject) { - if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); - resolve = $$resolve; - reject = $$reject; - }); - this.resolve = aFunction(resolve); - this.reject = aFunction(reject); -} - -module.exports.f = function (C) { - return new PromiseCapability(C); -}; - - -/***/ }), -/* 45 */ -/***/ (function(module, exports, __webpack_require__) { - - -var defined = __webpack_require__(30); -module.exports = function (it) { - return Object(defined(it)); -}; - - -/***/ }), -/* 46 */ -/***/ (function(module, exports, __webpack_require__) { - - -var cof = __webpack_require__(15); - -module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { - return cof(it) == 'String' ? it.split('') : Object(it); -}; - - -/***/ }), -/* 47 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var LIBRARY = __webpack_require__(16); -var $export = __webpack_require__(4); -var redefine = __webpack_require__(49); -var hide = __webpack_require__(7); -var Iterators = __webpack_require__(11); -var $iterCreate = __webpack_require__(70); -var setToStringTag = __webpack_require__(25); -var getPrototypeOf = __webpack_require__(74); -var ITERATOR = __webpack_require__(2)('iterator'); -var BUGGY = !([].keys && 'next' in [].keys()); -var FF_ITERATOR = '@@iterator'; -var KEYS = 'keys'; -var VALUES = 'values'; - -var returnThis = function () { return this; }; - -module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { - $iterCreate(Constructor, NAME, next); - var getMethod = function (kind) { - if (!BUGGY && kind in proto) return proto[kind]; - switch (kind) { - case KEYS: return function keys() { return new Constructor(this, kind); }; - case VALUES: return function values() { return new Constructor(this, kind); }; - } return function entries() { return new Constructor(this, kind); }; - }; - var TAG = NAME + ' Iterator'; - var DEF_VALUES = DEFAULT == VALUES; - var VALUES_BUG = false; - var proto = Base.prototype; - var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; - var $default = $native || getMethod(DEFAULT); - var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; - var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; - var methods, key, IteratorPrototype; - - if ($anyNative) { - IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); - if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { - - setToStringTag(IteratorPrototype, TAG, true); - - if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); - } - } - - if (DEF_VALUES && $native && $native.name !== VALUES) { - VALUES_BUG = true; - $default = function values() { return $native.call(this); }; - } - - if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { - hide(proto, ITERATOR, $default); - } - - Iterators[NAME] = $default; - Iterators[TAG] = returnThis; - if (DEFAULT) { - methods = { - values: DEF_VALUES ? $default : getMethod(VALUES), - keys: IS_SET ? $default : getMethod(KEYS), - entries: $entries - }; - if (FORCED) for (key in methods) { - if (!(key in proto)) redefine(proto, key, methods[key]); - } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); - } - return methods; -}; - - -/***/ }), -/* 48 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = !__webpack_require__(9) && !__webpack_require__(12)(function () { - return Object.defineProperty(__webpack_require__(31)('div'), 'a', { get: function () { return 7; } }).a != 7; -}); - - -/***/ }), -/* 49 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(7); - - -/***/ }), -/* 50 */ -/***/ (function(module, exports, __webpack_require__) { - - -var anObject = __webpack_require__(3); -var dPs = __webpack_require__(71); -var enumBugKeys = __webpack_require__(36); -var IE_PROTO = __webpack_require__(34)('IE_PROTO'); -var Empty = function () { /* empty */ }; -var PROTOTYPE = 'prototype'; - - -var createDict = function () { - - var iframe = __webpack_require__(31)('iframe'); - var i = enumBugKeys.length; - var lt = '<'; - var gt = '>'; - var iframeDocument; - iframe.style.display = 'none'; - __webpack_require__(53).appendChild(iframe); - iframe.src = 'javascript:'; - - - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); - iframeDocument.close(); - createDict = iframeDocument.F; - while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]]; - return createDict(); -}; - -module.exports = Object.create || function create(O, Properties) { - var result; - if (O !== null) { - Empty[PROTOTYPE] = anObject(O); - result = new Empty(); - Empty[PROTOTYPE] = null; - - result[IE_PROTO] = O; - } else result = createDict(); - return Properties === undefined ? result : dPs(result, Properties); -}; - - -/***/ }), -/* 51 */ -/***/ (function(module, exports, __webpack_require__) { - -var has = __webpack_require__(10); -var toIObject = __webpack_require__(6); -var arrayIndexOf = __webpack_require__(72)(false); -var IE_PROTO = __webpack_require__(34)('IE_PROTO'); - -module.exports = function (object, names) { - var O = toIObject(object); - var i = 0; - var result = []; - var key; - for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key); - - while (names.length > i) if (has(O, key = names[i++])) { - ~arrayIndexOf(result, key) || result.push(key); - } - return result; -}; - - -/***/ }), -/* 52 */ -/***/ (function(module, exports, __webpack_require__) { - - -var toInteger = __webpack_require__(33); -var min = Math.min; -module.exports = function (it) { - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; -}; - - -/***/ }), -/* 53 */ -/***/ (function(module, exports, __webpack_require__) { - -var document = __webpack_require__(1).document; -module.exports = document && document.documentElement; - - -/***/ }), -/* 54 */ -/***/ (function(module, exports, __webpack_require__) { - -var classof = __webpack_require__(37); -var ITERATOR = __webpack_require__(2)('iterator'); -var Iterators = __webpack_require__(11); -module.exports = __webpack_require__(0).getIteratorMethod = function (it) { - if (it != undefined) return it[ITERATOR] - || it['@@iterator'] - || Iterators[classof(it)]; -}; - - -/***/ }), -/* 55 */ -/***/ (function(module, exports, __webpack_require__) { - - -var $keys = __webpack_require__(51); -var hiddenKeys = __webpack_require__(36).concat('length', 'prototype'); - -exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { - return $keys(O, hiddenKeys); -}; - - -/***/ }), -/* 56 */ -/***/ (function(module, exports) { - - - -/***/ }), -/* 57 */ -/***/ (function(module, exports) { - -module.exports = {"O_RDONLY":0,"O_WRONLY":1,"O_RDWR":2,"S_IFMT":61440,"S_IFREG":32768,"S_IFDIR":16384,"S_IFCHR":8192,"S_IFBLK":24576,"S_IFIFO":4096,"S_IFLNK":40960,"S_IFSOCK":49152,"O_CREAT":512,"O_EXCL":2048,"O_NOCTTY":131072,"O_TRUNC":1024,"O_APPEND":8,"O_DIRECTORY":1048576,"O_NOFOLLOW":256,"O_SYNC":128,"O_SYMLINK":2097152,"O_NONBLOCK":4,"S_IRWXU":448,"S_IRUSR":256,"S_IWUSR":128,"S_IXUSR":64,"S_IRWXG":56,"S_IRGRP":32,"S_IWGRP":16,"S_IXGRP":8,"S_IRWXO":7,"S_IROTH":4,"S_IWOTH":2,"S_IXOTH":1,"E2BIG":7,"EACCES":13,"EADDRINUSE":48,"EADDRNOTAVAIL":49,"EAFNOSUPPORT":47,"EAGAIN":35,"EALREADY":37,"EBADF":9,"EBADMSG":94,"EBUSY":16,"ECANCELED":89,"ECHILD":10,"ECONNABORTED":53,"ECONNREFUSED":61,"ECONNRESET":54,"EDEADLK":11,"EDESTADDRREQ":39,"EDOM":33,"EDQUOT":69,"EEXIST":17,"EFAULT":14,"EFBIG":27,"EHOSTUNREACH":65,"EIDRM":90,"EILSEQ":92,"EINPROGRESS":36,"EINTR":4,"EINVAL":22,"EIO":5,"EISCONN":56,"EISDIR":21,"ELOOP":62,"EMFILE":24,"EMLINK":31,"EMSGSIZE":40,"EMULTIHOP":95,"ENAMETOOLONG":63,"ENETDOWN":50,"ENETRESET":52,"ENETUNREACH":51,"ENFILE":23,"ENOBUFS":55,"ENODATA":96,"ENODEV":19,"ENOENT":2,"ENOEXEC":8,"ENOLCK":77,"ENOLINK":97,"ENOMEM":12,"ENOMSG":91,"ENOPROTOOPT":42,"ENOSPC":28,"ENOSR":98,"ENOSTR":99,"ENOSYS":78,"ENOTCONN":57,"ENOTDIR":20,"ENOTEMPTY":66,"ENOTSOCK":38,"ENOTSUP":45,"ENOTTY":25,"ENXIO":6,"EOPNOTSUPP":102,"EOVERFLOW":84,"EPERM":1,"EPIPE":32,"EPROTO":100,"EPROTONOSUPPORT":43,"EPROTOTYPE":41,"ERANGE":34,"EROFS":30,"ESPIPE":29,"ESRCH":3,"ESTALE":70,"ETIME":101,"ETIMEDOUT":60,"ETXTBSY":26,"EWOULDBLOCK":35,"EXDEV":18,"SIGHUP":1,"SIGINT":2,"SIGQUIT":3,"SIGILL":4,"SIGTRAP":5,"SIGABRT":6,"SIGIOT":6,"SIGBUS":10,"SIGFPE":8,"SIGKILL":9,"SIGUSR1":30,"SIGSEGV":11,"SIGUSR2":31,"SIGPIPE":13,"SIGALRM":14,"SIGTERM":15,"SIGCHLD":20,"SIGCONT":19,"SIGSTOP":17,"SIGTSTP":18,"SIGTTIN":21,"SIGTTOU":22,"SIGURG":16,"SIGXCPU":24,"SIGXFSZ":25,"SIGVTALRM":26,"SIGPROF":27,"SIGWINCH":28,"SIGIO":23,"SIGSYS":12,"SSL_OP_ALL":2147486719,"SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION":262144,"SSL_OP_CIPHER_SERVER_PREFERENCE":4194304,"SSL_OP_CISCO_ANYCONNECT":32768,"SSL_OP_COOKIE_EXCHANGE":8192,"SSL_OP_CRYPTOPRO_TLSEXT_BUG":2147483648,"SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS":2048,"SSL_OP_EPHEMERAL_RSA":0,"SSL_OP_LEGACY_SERVER_CONNECT":4,"SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER":32,"SSL_OP_MICROSOFT_SESS_ID_BUG":1,"SSL_OP_MSIE_SSLV2_RSA_PADDING":0,"SSL_OP_NETSCAPE_CA_DN_BUG":536870912,"SSL_OP_NETSCAPE_CHALLENGE_BUG":2,"SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG":1073741824,"SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG":8,"SSL_OP_NO_COMPRESSION":131072,"SSL_OP_NO_QUERY_MTU":4096,"SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION":65536,"SSL_OP_NO_SSLv2":16777216,"SSL_OP_NO_SSLv3":33554432,"SSL_OP_NO_TICKET":16384,"SSL_OP_NO_TLSv1":67108864,"SSL_OP_NO_TLSv1_1":268435456,"SSL_OP_NO_TLSv1_2":134217728,"SSL_OP_PKCS1_CHECK_1":0,"SSL_OP_PKCS1_CHECK_2":0,"SSL_OP_SINGLE_DH_USE":1048576,"SSL_OP_SINGLE_ECDH_USE":524288,"SSL_OP_SSLEAY_080_CLIENT_DH_BUG":128,"SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG":0,"SSL_OP_TLS_BLOCK_PADDING_BUG":512,"SSL_OP_TLS_D5_BUG":256,"SSL_OP_TLS_ROLLBACK_BUG":8388608,"ENGINE_METHOD_DSA":2,"ENGINE_METHOD_DH":4,"ENGINE_METHOD_RAND":8,"ENGINE_METHOD_ECDH":16,"ENGINE_METHOD_ECDSA":32,"ENGINE_METHOD_CIPHERS":64,"ENGINE_METHOD_DIGESTS":128,"ENGINE_METHOD_STORE":256,"ENGINE_METHOD_PKEY_METHS":512,"ENGINE_METHOD_PKEY_ASN1_METHS":1024,"ENGINE_METHOD_ALL":65535,"ENGINE_METHOD_NONE":0,"DH_CHECK_P_NOT_SAFE_PRIME":2,"DH_CHECK_P_NOT_PRIME":1,"DH_UNABLE_TO_CHECK_GENERATOR":4,"DH_NOT_SUITABLE_GENERATOR":8,"NPN_ENABLED":1,"RSA_PKCS1_PADDING":1,"RSA_SSLV23_PADDING":2,"RSA_NO_PADDING":3,"RSA_PKCS1_OAEP_PADDING":4,"RSA_X931_PADDING":5,"RSA_PKCS1_PSS_PADDING":6,"POINT_CONVERSION_COMPRESSED":2,"POINT_CONVERSION_UNCOMPRESSED":4,"POINT_CONVERSION_HYBRID":6,"F_OK":0,"R_OK":4,"W_OK":2,"X_OK":1,"UV_UDP_REUSEADDR":4} - -/***/ }), -/* 58 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(99); - - -/***/ }), -/* 59 */ -/***/ (function(module, exports, __webpack_require__) { - - -var anObject = __webpack_require__(3); -var aFunction = __webpack_require__(22); -var SPECIES = __webpack_require__(2)('species'); -module.exports = function (O, D) { - var C = anObject(O).constructor; - var S; - return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S); -}; - - -/***/ }), -/* 60 */ -/***/ (function(module, exports, __webpack_require__) { - -var ctx = __webpack_require__(21); -var invoke = __webpack_require__(107); -var html = __webpack_require__(53); -var cel = __webpack_require__(31); -var global = __webpack_require__(1); -var process = global.process; -var setTask = global.setImmediate; -var clearTask = global.clearImmediate; -var MessageChannel = global.MessageChannel; -var Dispatch = global.Dispatch; -var counter = 0; -var queue = {}; -var ONREADYSTATECHANGE = 'onreadystatechange'; -var defer, channel, port; -var run = function () { - var id = +this; - - if (queue.hasOwnProperty(id)) { - var fn = queue[id]; - delete queue[id]; - fn(); - } -}; -var listener = function (event) { - run.call(event.data); -}; - -if (!setTask || !clearTask) { - setTask = function setImmediate(fn) { - var args = []; - var i = 1; - while (arguments.length > i) args.push(arguments[i++]); - queue[++counter] = function () { - - invoke(typeof fn == 'function' ? fn : Function(fn), args); - }; - defer(counter); - return counter; - }; - clearTask = function clearImmediate(id) { - delete queue[id]; - }; - - if (__webpack_require__(15)(process) == 'process') { - defer = function (id) { - process.nextTick(ctx(run, id, 1)); - }; - - } else if (Dispatch && Dispatch.now) { - defer = function (id) { - Dispatch.now(ctx(run, id, 1)); - }; - - } else if (MessageChannel) { - channel = new MessageChannel(); - port = channel.port2; - channel.port1.onmessage = listener; - defer = ctx(port.postMessage, port, 1); - - - } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) { - defer = function (id) { - global.postMessage(id + '', '*'); - }; - global.addEventListener('message', listener, false); - - } else if (ONREADYSTATECHANGE in cel('script')) { - defer = function (id) { - html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () { - html.removeChild(this); - run.call(id); - }; - }; - - } else { - defer = function (id) { - setTimeout(ctx(run, id, 1), 0); - }; - } -} -module.exports = { - set: setTask, - clear: clearTask -}; - - -/***/ }), -/* 61 */ -/***/ (function(module, exports) { - -module.exports = function (exec) { - try { - return { e: false, v: exec() }; - } catch (e) { - return { e: true, v: e }; - } -}; - - -/***/ }), -/* 62 */ -/***/ (function(module, exports, __webpack_require__) { - -var anObject = __webpack_require__(3); -var isObject = __webpack_require__(5); -var newPromiseCapability = __webpack_require__(44); - -module.exports = function (C, x) { - anObject(C); - if (isObject(x) && x.constructor === C) return x; - var promiseCapability = newPromiseCapability.f(C); - var resolve = promiseCapability.resolve; - resolve(x); - return promiseCapability.promise; -}; - - -/***/ }), -/* 63 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _promise = __webpack_require__(43); - -var _promise2 = _interopRequireDefault(_promise); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (fn) { - return function () { - var gen = fn.apply(this, arguments); - return new _promise2.default(function (resolve, reject) { - function step(key, arg) { - try { - var info = gen[key](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - - if (info.done) { - resolve(value); - } else { - return _promise2.default.resolve(value).then(function (value) { - step("next", value); - }, function (err) { - step("throw", err); - }); - } - } - - return step("next"); - }); - }; -}; - -/***/ }), -/* 64 */ -/***/ (function(module, exports, __webpack_require__) { - -var getKeys = __webpack_require__(13); -var toIObject = __webpack_require__(6); -var isEnum = __webpack_require__(17).f; -module.exports = function (isEntries) { - return function (it) { - var O = toIObject(it); - var keys = getKeys(O); - var length = keys.length; - var i = 0; - var result = []; - var key; - while (length > i) if (isEnum.call(O, key = keys[i++])) { - result.push(isEntries ? [key, O[key]] : O[key]); - } return result; - }; -}; - - -/***/ }), -/* 65 */ -/***/ (function(module, exports, __webpack_require__) { - -var META = __webpack_require__(24)('meta'); -var isObject = __webpack_require__(5); -var has = __webpack_require__(10); -var setDesc = __webpack_require__(8).f; -var id = 0; -var isExtensible = Object.isExtensible || function () { - return true; -}; -var FREEZE = !__webpack_require__(12)(function () { - return isExtensible(Object.preventExtensions({})); -}); -var setMeta = function (it) { - setDesc(it, META, { value: { - i: 'O' + ++id, - w: {} - } }); -}; -var fastKey = function (it, create) { - - if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - if (!has(it, META)) { - - if (!isExtensible(it)) return 'F'; - - if (!create) return 'E'; - - setMeta(it); - - } return it[META].i; -}; -var getWeak = function (it, create) { - if (!has(it, META)) { - - if (!isExtensible(it)) return true; - - if (!create) return false; - - setMeta(it); - - } return it[META].w; -}; - -var onFreeze = function (it) { - if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); - return it; -}; -var meta = module.exports = { - KEY: META, - NEED: false, - fastKey: fastKey, - getWeak: getWeak, - onFreeze: onFreeze -}; - - -/***/ }), -/* 66 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(20); -__webpack_require__(26); -module.exports = __webpack_require__(76); - - -/***/ }), -/* 67 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var addToUnscopables = __webpack_require__(68); -var step = __webpack_require__(69); -var Iterators = __webpack_require__(11); -var toIObject = __webpack_require__(6); - - - - - -module.exports = __webpack_require__(47)(Array, 'Array', function (iterated, kind) { - this._t = toIObject(iterated); - this._i = 0; - this._k = kind; - -}, function () { - var O = this._t; - var kind = this._k; - var index = this._i++; - if (!O || index >= O.length) { - this._t = undefined; - return step(1); - } - if (kind == 'keys') return step(0, index); - if (kind == 'values') return step(0, O[index]); - return step(0, [index, O[index]]); -}, 'values'); - - -Iterators.Arguments = Iterators.Array; - -addToUnscopables('keys'); -addToUnscopables('values'); -addToUnscopables('entries'); - - -/***/ }), -/* 68 */ -/***/ (function(module, exports) { - -module.exports = function () { /* empty */ }; - - -/***/ }), -/* 69 */ -/***/ (function(module, exports) { - -module.exports = function (done, value) { - return { value: value, done: !!done }; -}; - - -/***/ }), -/* 70 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var create = __webpack_require__(50); -var descriptor = __webpack_require__(23); -var setToStringTag = __webpack_require__(25); -var IteratorPrototype = {}; - - -__webpack_require__(7)(IteratorPrototype, __webpack_require__(2)('iterator'), function () { return this; }); - -module.exports = function (Constructor, NAME, next) { - Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); - setToStringTag(Constructor, NAME + ' Iterator'); -}; - - -/***/ }), -/* 71 */ -/***/ (function(module, exports, __webpack_require__) { - -var dP = __webpack_require__(8); -var anObject = __webpack_require__(3); -var getKeys = __webpack_require__(13); - -module.exports = __webpack_require__(9) ? Object.defineProperties : function defineProperties(O, Properties) { - anObject(O); - var keys = getKeys(Properties); - var length = keys.length; - var i = 0; - var P; - while (length > i) dP.f(O, P = keys[i++], Properties[P]); - return O; -}; - - -/***/ }), -/* 72 */ -/***/ (function(module, exports, __webpack_require__) { - - - -var toIObject = __webpack_require__(6); -var toLength = __webpack_require__(52); -var toAbsoluteIndex = __webpack_require__(73); -module.exports = function (IS_INCLUDES) { - return function ($this, el, fromIndex) { - var O = toIObject($this); - var length = toLength(O.length); - var index = toAbsoluteIndex(fromIndex, length); - var value; - - - if (IS_INCLUDES && el != el) while (length > index) { - value = O[index++]; - - if (value != value) return true; - - } else for (;length > index; index++) if (IS_INCLUDES || index in O) { - if (O[index] === el) return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; -}; - - -/***/ }), -/* 73 */ -/***/ (function(module, exports, __webpack_require__) { - -var toInteger = __webpack_require__(33); -var max = Math.max; -var min = Math.min; -module.exports = function (index, length) { - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); -}; - - -/***/ }), -/* 74 */ -/***/ (function(module, exports, __webpack_require__) { - - -var has = __webpack_require__(10); -var toObject = __webpack_require__(45); -var IE_PROTO = __webpack_require__(34)('IE_PROTO'); -var ObjectProto = Object.prototype; - -module.exports = Object.getPrototypeOf || function (O) { - O = toObject(O); - if (has(O, IE_PROTO)) return O[IE_PROTO]; - if (typeof O.constructor == 'function' && O instanceof O.constructor) { - return O.constructor.prototype; - } return O instanceof Object ? ObjectProto : null; -}; - - -/***/ }), -/* 75 */ -/***/ (function(module, exports, __webpack_require__) { - -var toInteger = __webpack_require__(33); -var defined = __webpack_require__(30); - - -module.exports = function (TO_STRING) { - return function (that, pos) { - var s = String(defined(that)); - var i = toInteger(pos); - var l = s.length; - var a, b; - if (i < 0 || i >= l) return TO_STRING ? '' : undefined; - a = s.charCodeAt(i); - return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff - ? TO_STRING ? s.charAt(i) : a - : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; - }; -}; - - -/***/ }), -/* 76 */ -/***/ (function(module, exports, __webpack_require__) { - -var anObject = __webpack_require__(3); -var get = __webpack_require__(54); -module.exports = __webpack_require__(0).getIterator = function (it) { - var iterFn = get(it); - if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!'); - return anObject(iterFn.call(it)); -}; - - -/***/ }), -/* 77 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(78), __esModule: true }; - -/***/ }), -/* 78 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(20); -__webpack_require__(26); -module.exports = __webpack_require__(79); - - -/***/ }), -/* 79 */ -/***/ (function(module, exports, __webpack_require__) { - -var classof = __webpack_require__(37); -var ITERATOR = __webpack_require__(2)('iterator'); -var Iterators = __webpack_require__(11); -module.exports = __webpack_require__(0).isIterable = function (it) { - var O = Object(it); - return O[ITERATOR] !== undefined - || '@@iterator' in O - - || Iterators.hasOwnProperty(classof(O)); -}; - - -/***/ }), -/* 80 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(81); -module.exports = __webpack_require__(0).Object.entries; - - -/***/ }), -/* 81 */ -/***/ (function(module, exports, __webpack_require__) { - - -var $export = __webpack_require__(4); -var $entries = __webpack_require__(64)(true); - -$export($export.S, 'Object', { - entries: function entries(it) { - return $entries(it); - } -}); - - -/***/ }), -/* 82 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(83); -module.exports = __webpack_require__(0).Object.assign; - - -/***/ }), -/* 83 */ -/***/ (function(module, exports, __webpack_require__) { - - -var $export = __webpack_require__(4); - -$export($export.S + $export.F, 'Object', { assign: __webpack_require__(84) }); - - -/***/ }), -/* 84 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var getKeys = __webpack_require__(13); -var gOPS = __webpack_require__(39); -var pIE = __webpack_require__(17); -var toObject = __webpack_require__(45); -var IObject = __webpack_require__(46); -var $assign = Object.assign; - - -module.exports = !$assign || __webpack_require__(12)(function () { - var A = {}; - var B = {}; - - var S = Symbol(); - var K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function (k) { B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; -}) ? function assign(target, source) { - var T = toObject(target); - var aLen = arguments.length; - var index = 1; - var getSymbols = gOPS.f; - var isEnum = pIE.f; - while (aLen > index) { - var S = IObject(arguments[index++]); - var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); - var length = keys.length; - var j = 0; - var key; - while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key]; - } return T; -} : $assign; - - -/***/ }), -/* 85 */ -/***/ (function(module, exports, __webpack_require__) { - -var core = __webpack_require__(0); -var $JSON = core.JSON || (core.JSON = { stringify: JSON.stringify }); -module.exports = function stringify(it) { - return $JSON.stringify.apply($JSON, arguments); -}; - - -/***/ }), -/* 86 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(87), __esModule: true }; - -/***/ }), -/* 87 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(26); -__webpack_require__(20); -module.exports = __webpack_require__(40).f('iterator'); - - -/***/ }), -/* 88 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(89), __esModule: true }; - -/***/ }), -/* 89 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(90); -__webpack_require__(56); -__webpack_require__(95); -__webpack_require__(96); -module.exports = __webpack_require__(0).Symbol; - - -/***/ }), -/* 90 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var global = __webpack_require__(1); -var has = __webpack_require__(10); -var DESCRIPTORS = __webpack_require__(9); -var $export = __webpack_require__(4); -var redefine = __webpack_require__(49); -var META = __webpack_require__(65).KEY; -var $fails = __webpack_require__(12); -var shared = __webpack_require__(35); -var setToStringTag = __webpack_require__(25); -var uid = __webpack_require__(24); -var wks = __webpack_require__(2); -var wksExt = __webpack_require__(40); -var wksDefine = __webpack_require__(41); -var enumKeys = __webpack_require__(91); -var isArray = __webpack_require__(92); -var anObject = __webpack_require__(3); -var isObject = __webpack_require__(5); -var toIObject = __webpack_require__(6); -var toPrimitive = __webpack_require__(32); -var createDesc = __webpack_require__(23); -var _create = __webpack_require__(50); -var gOPNExt = __webpack_require__(93); -var $GOPD = __webpack_require__(94); -var $DP = __webpack_require__(8); -var $keys = __webpack_require__(13); -var gOPD = $GOPD.f; -var dP = $DP.f; -var gOPN = gOPNExt.f; -var $Symbol = global.Symbol; -var $JSON = global.JSON; -var _stringify = $JSON && $JSON.stringify; -var PROTOTYPE = 'prototype'; -var HIDDEN = wks('_hidden'); -var TO_PRIMITIVE = wks('toPrimitive'); -var isEnum = {}.propertyIsEnumerable; -var SymbolRegistry = shared('symbol-registry'); -var AllSymbols = shared('symbols'); -var OPSymbols = shared('op-symbols'); -var ObjectProto = Object[PROTOTYPE]; -var USE_NATIVE = typeof $Symbol == 'function'; -var QObject = global.QObject; - -var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; - - -var setSymbolDesc = DESCRIPTORS && $fails(function () { - return _create(dP({}, 'a', { - get: function () { return dP(this, 'a', { value: 7 }).a; } - })).a != 7; -}) ? function (it, key, D) { - var protoDesc = gOPD(ObjectProto, key); - if (protoDesc) delete ObjectProto[key]; - dP(it, key, D); - if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); -} : dP; - -var wrap = function (tag) { - var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); - sym._k = tag; - return sym; -}; - -var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) { - return typeof it == 'symbol'; -} : function (it) { - return it instanceof $Symbol; -}; - -var $defineProperty = function defineProperty(it, key, D) { - if (it === ObjectProto) $defineProperty(OPSymbols, key, D); - anObject(it); - key = toPrimitive(key, true); - anObject(D); - if (has(AllSymbols, key)) { - if (!D.enumerable) { - if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); - it[HIDDEN][key] = true; - } else { - if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; - D = _create(D, { enumerable: createDesc(0, false) }); - } return setSymbolDesc(it, key, D); - } return dP(it, key, D); -}; -var $defineProperties = function defineProperties(it, P) { - anObject(it); - var keys = enumKeys(P = toIObject(P)); - var i = 0; - var l = keys.length; - var key; - while (l > i) $defineProperty(it, key = keys[i++], P[key]); - return it; -}; -var $create = function create(it, P) { - return P === undefined ? _create(it) : $defineProperties(_create(it), P); -}; -var $propertyIsEnumerable = function propertyIsEnumerable(key) { - var E = isEnum.call(this, key = toPrimitive(key, true)); - if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; - return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; -}; -var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { - it = toIObject(it); - key = toPrimitive(key, true); - if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; - var D = gOPD(it, key); - if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; - return D; -}; -var $getOwnPropertyNames = function getOwnPropertyNames(it) { - var names = gOPN(toIObject(it)); - var result = []; - var i = 0; - var key; - while (names.length > i) { - if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); - } return result; -}; -var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { - var IS_OP = it === ObjectProto; - var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); - var result = []; - var i = 0; - var key; - while (names.length > i) { - if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); - } return result; -}; - - -if (!USE_NATIVE) { - $Symbol = function Symbol() { - if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); - var tag = uid(arguments.length > 0 ? arguments[0] : undefined); - var $set = function (value) { - if (this === ObjectProto) $set.call(OPSymbols, value); - if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; - setSymbolDesc(this, tag, createDesc(1, value)); - }; - if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set }); - return wrap(tag); - }; - redefine($Symbol[PROTOTYPE], 'toString', function toString() { - return this._k; - }); - - $GOPD.f = $getOwnPropertyDescriptor; - $DP.f = $defineProperty; - __webpack_require__(55).f = gOPNExt.f = $getOwnPropertyNames; - __webpack_require__(17).f = $propertyIsEnumerable; - __webpack_require__(39).f = $getOwnPropertySymbols; - - if (DESCRIPTORS && !__webpack_require__(16)) { - redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); - } - - wksExt.f = function (name) { - return wrap(wks(name)); - }; -} - -$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol }); - -for (var es6Symbols = ( - - 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' -).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]); - -for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]); - -$export($export.S + $export.F * !USE_NATIVE, 'Symbol', { - - 'for': function (key) { - return has(SymbolRegistry, key += '') - ? SymbolRegistry[key] - : SymbolRegistry[key] = $Symbol(key); - }, - - keyFor: function keyFor(sym) { - if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); - for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key; - }, - useSetter: function () { setter = true; }, - useSimple: function () { setter = false; } -}); - -$export($export.S + $export.F * !USE_NATIVE, 'Object', { - - create: $create, - - defineProperty: $defineProperty, - - defineProperties: $defineProperties, - - getOwnPropertyDescriptor: $getOwnPropertyDescriptor, - - getOwnPropertyNames: $getOwnPropertyNames, - - getOwnPropertySymbols: $getOwnPropertySymbols -}); - - -$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { - var S = $Symbol(); - - - - return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}'; -})), 'JSON', { - stringify: function stringify(it) { - var args = [it]; - var i = 1; - var replacer, $replacer; - while (arguments.length > i) args.push(arguments[i++]); - $replacer = replacer = args[1]; - if (!isObject(replacer) && it === undefined || isSymbol(it)) return; - if (!isArray(replacer)) replacer = function (key, value) { - if (typeof $replacer == 'function') value = $replacer.call(this, key, value); - if (!isSymbol(value)) return value; - }; - args[1] = replacer; - return _stringify.apply($JSON, args); - } -}); - - -$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(7)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); - -setToStringTag($Symbol, 'Symbol'); - -setToStringTag(Math, 'Math', true); - -setToStringTag(global.JSON, 'JSON', true); - - -/***/ }), -/* 91 */ -/***/ (function(module, exports, __webpack_require__) { - - -var getKeys = __webpack_require__(13); -var gOPS = __webpack_require__(39); -var pIE = __webpack_require__(17); -module.exports = function (it) { - var result = getKeys(it); - var getSymbols = gOPS.f; - if (getSymbols) { - var symbols = getSymbols(it); - var isEnum = pIE.f; - var i = 0; - var key; - while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key); - } return result; -}; - - -/***/ }), -/* 92 */ -/***/ (function(module, exports, __webpack_require__) { - - -var cof = __webpack_require__(15); -module.exports = Array.isArray || function isArray(arg) { - return cof(arg) == 'Array'; -}; - - -/***/ }), -/* 93 */ -/***/ (function(module, exports, __webpack_require__) { - - -var toIObject = __webpack_require__(6); -var gOPN = __webpack_require__(55).f; -var toString = {}.toString; - -var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames - ? Object.getOwnPropertyNames(window) : []; - -var getWindowNames = function (it) { - try { - return gOPN(it); - } catch (e) { - return windowNames.slice(); - } -}; - -module.exports.f = function getOwnPropertyNames(it) { - return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); -}; - - -/***/ }), -/* 94 */ -/***/ (function(module, exports, __webpack_require__) { - -var pIE = __webpack_require__(17); -var createDesc = __webpack_require__(23); -var toIObject = __webpack_require__(6); -var toPrimitive = __webpack_require__(32); -var has = __webpack_require__(10); -var IE8_DOM_DEFINE = __webpack_require__(48); -var gOPD = Object.getOwnPropertyDescriptor; - -exports.f = __webpack_require__(9) ? gOPD : function getOwnPropertyDescriptor(O, P) { - O = toIObject(O); - P = toPrimitive(P, true); - if (IE8_DOM_DEFINE) try { - return gOPD(O, P); - } catch (e) { /* empty */ } - if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); -}; - - -/***/ }), -/* 95 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(41)('asyncIterator'); - - -/***/ }), -/* 96 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(41)('observable'); - - -/***/ }), -/* 97 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var CONSTANT = exports.CONSTANT = { - DOMAIN: ['com', 'cn', 'xin', 'net', 'top', 'xyz', 'wang', 'shop', 'site', 'club', 'cc', 'fun', 'online', 'biz', 'red', 'link', 'ltd', 'mobi', 'info', 'org', 'name', 'vip', 'pro', 'work', 'tv', 'kim', 'group', 'tech', 'store', 'ren', 'ink', 'pub', 'live', 'wiki', 'design', 'ai'], - JWT_METHOD: { - HS256: 'HmacSHA256', - HS384: 'HmacSHA384', - HS512: 'HmacSHA512' - } -}; - -/***/ }), -/* 98 */, -/* 99 */ -/***/ (function(module, exports, __webpack_require__) { - -/** - * Copyright (c) 2014-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - - -var g = (function() { return this })() || Function("return this")(); - - - -var hadRuntime = g.regeneratorRuntime && - Object.getOwnPropertyNames(g).indexOf("regeneratorRuntime") >= 0; - - -var oldRuntime = hadRuntime && g.regeneratorRuntime; - - -g.regeneratorRuntime = undefined; - -module.exports = __webpack_require__(100); - -if (hadRuntime) { - - g.regeneratorRuntime = oldRuntime; -} else { - - try { - delete g.regeneratorRuntime; - } catch(e) { - g.regeneratorRuntime = undefined; - } -} - - -/***/ }), -/* 100 */ -/***/ (function(module, exports) { - -/** - * Copyright (c) 2014-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -!(function(global) { - "use strict"; - - var Op = Object.prototype; - var hasOwn = Op.hasOwnProperty; - var undefined; - var $Symbol = typeof Symbol === "function" ? Symbol : {}; - var iteratorSymbol = $Symbol.iterator || "@@iterator"; - var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; - var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - - var inModule = typeof module === "object"; - var runtime = global.regeneratorRuntime; - if (runtime) { - if (inModule) { - - - module.exports = runtime; - } - - - return; - } - - - - runtime = global.regeneratorRuntime = inModule ? module.exports : {}; - - function wrap(innerFn, outerFn, self, tryLocsList) { - - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; - var generator = Object.create(protoGenerator.prototype); - var context = new Context(tryLocsList || []); - - - - generator._invoke = makeInvokeMethod(innerFn, self, context); - - return generator; - } - runtime.wrap = wrap; - - - - - - - - - - - - function tryCatch(fn, obj, arg) { - try { - return { type: "normal", arg: fn.call(obj, arg) }; - } catch (err) { - return { type: "throw", arg: err }; - } - } - - var GenStateSuspendedStart = "suspendedStart"; - var GenStateSuspendedYield = "suspendedYield"; - var GenStateExecuting = "executing"; - var GenStateCompleted = "completed"; - - - - var ContinueSentinel = {}; - - - - - - function Generator() {} - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - - - - var IteratorPrototype = {}; - IteratorPrototype[iteratorSymbol] = function () { - return this; - }; - - var getProto = Object.getPrototypeOf; - var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - if (NativeIteratorPrototype && - NativeIteratorPrototype !== Op && - hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { - - - IteratorPrototype = NativeIteratorPrototype; - } - - var Gp = GeneratorFunctionPrototype.prototype = - Generator.prototype = Object.create(IteratorPrototype); - GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; - GeneratorFunctionPrototype.constructor = GeneratorFunction; - GeneratorFunctionPrototype[toStringTagSymbol] = - GeneratorFunction.displayName = "GeneratorFunction"; - - - - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function(method) { - prototype[method] = function(arg) { - return this._invoke(method, arg); - }; - }); - } - - runtime.isGeneratorFunction = function(genFun) { - var ctor = typeof genFun === "function" && genFun.constructor; - return ctor - ? ctor === GeneratorFunction || - - - (ctor.displayName || ctor.name) === "GeneratorFunction" - : false; - }; - - runtime.mark = function(genFun) { - if (Object.setPrototypeOf) { - Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); - } else { - genFun.__proto__ = GeneratorFunctionPrototype; - if (!(toStringTagSymbol in genFun)) { - genFun[toStringTagSymbol] = "GeneratorFunction"; - } - } - genFun.prototype = Object.create(Gp); - return genFun; - }; - - - - - - runtime.awrap = function(arg) { - return { __await: arg }; - }; - - function AsyncIterator(generator) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - if (record.type === "throw") { - reject(record.arg); - } else { - var result = record.arg; - var value = result.value; - if (value && - typeof value === "object" && - hasOwn.call(value, "__await")) { - return Promise.resolve(value.__await).then(function(value) { - invoke("next", value, resolve, reject); - }, function(err) { - invoke("throw", err, resolve, reject); - }); - } - - return Promise.resolve(value).then(function(unwrapped) { - - - - - - - - - - - - - - - - result.value = unwrapped; - resolve(result); - }, reject); - } - } - - var previousPromise; - - function enqueue(method, arg) { - function callInvokeWithMethodAndArg() { - return new Promise(function(resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - - return previousPromise = - - - - - - - - - - - - - previousPromise ? previousPromise.then( - callInvokeWithMethodAndArg, - - - callInvokeWithMethodAndArg - ) : callInvokeWithMethodAndArg(); - } - - - - this._invoke = enqueue; - } - - defineIteratorMethods(AsyncIterator.prototype); - AsyncIterator.prototype[asyncIteratorSymbol] = function () { - return this; - }; - runtime.AsyncIterator = AsyncIterator; - - - - - runtime.async = function(innerFn, outerFn, self, tryLocsList) { - var iter = new AsyncIterator( - wrap(innerFn, outerFn, self, tryLocsList) - ); - - return runtime.isGeneratorFunction(outerFn) - ? iter - : iter.next().then(function(result) { - return result.done ? result.value : iter.next(); - }); - }; - - function makeInvokeMethod(innerFn, self, context) { - var state = GenStateSuspendedStart; - - return function invoke(method, arg) { - if (state === GenStateExecuting) { - throw new Error("Generator is already running"); - } - - if (state === GenStateCompleted) { - if (method === "throw") { - throw arg; - } - - - - return doneResult(); - } - - context.method = method; - context.arg = arg; - - while (true) { - var delegate = context.delegate; - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; - } - } - - if (context.method === "next") { - - - context.sent = context._sent = context.arg; - - } else if (context.method === "throw") { - if (state === GenStateSuspendedStart) { - state = GenStateCompleted; - throw context.arg; - } - - context.dispatchException(context.arg); - - } else if (context.method === "return") { - context.abrupt("return", context.arg); - } - - state = GenStateExecuting; - - var record = tryCatch(innerFn, self, context); - if (record.type === "normal") { - - - state = context.done - ? GenStateCompleted - : GenStateSuspendedYield; - - if (record.arg === ContinueSentinel) { - continue; - } - - return { - value: record.arg, - done: context.done - }; - - } else if (record.type === "throw") { - state = GenStateCompleted; - - - context.method = "throw"; - context.arg = record.arg; - } - } - }; - } - - - - - - function maybeInvokeDelegate(delegate, context) { - var method = delegate.iterator[context.method]; - if (method === undefined) { - - - context.delegate = null; - - if (context.method === "throw") { - if (delegate.iterator.return) { - - - context.method = "return"; - context.arg = undefined; - maybeInvokeDelegate(delegate, context); - - if (context.method === "throw") { - - - return ContinueSentinel; - } - } - - context.method = "throw"; - context.arg = new TypeError( - "The iterator does not provide a 'throw' method"); - } - - return ContinueSentinel; - } - - var record = tryCatch(method, delegate.iterator, context.arg); - - if (record.type === "throw") { - context.method = "throw"; - context.arg = record.arg; - context.delegate = null; - return ContinueSentinel; - } - - var info = record.arg; - - if (! info) { - context.method = "throw"; - context.arg = new TypeError("iterator result is not an object"); - context.delegate = null; - return ContinueSentinel; - } - - if (info.done) { - - - context[delegate.resultName] = info.value; - - - context.next = delegate.nextLoc; - - - - - - - - if (context.method !== "return") { - context.method = "next"; - context.arg = undefined; - } - - } else { - - return info; - } - - - - context.delegate = null; - return ContinueSentinel; - } - - - - defineIteratorMethods(Gp); - - Gp[toStringTagSymbol] = "Generator"; - - - - - - - Gp[iteratorSymbol] = function() { - return this; - }; - - Gp.toString = function() { - return "[object Generator]"; - }; - - function pushTryEntry(locs) { - var entry = { tryLoc: locs[0] }; - - if (1 in locs) { - entry.catchLoc = locs[1]; - } - - if (2 in locs) { - entry.finallyLoc = locs[2]; - entry.afterLoc = locs[3]; - } - - this.tryEntries.push(entry); - } - - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal"; - delete record.arg; - entry.completion = record; - } - - function Context(tryLocsList) { - - - - this.tryEntries = [{ tryLoc: "root" }]; - tryLocsList.forEach(pushTryEntry, this); - this.reset(true); - } - - runtime.keys = function(object) { - var keys = []; - for (var key in object) { - keys.push(key); - } - keys.reverse(); - - - - return function next() { - while (keys.length) { - var key = keys.pop(); - if (key in object) { - next.value = key; - next.done = false; - return next; - } - } - - - - - next.done = true; - return next; - }; - }; - - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - if (iteratorMethod) { - return iteratorMethod.call(iterable); - } - - if (typeof iterable.next === "function") { - return iterable; - } - - if (!isNaN(iterable.length)) { - var i = -1, next = function next() { - while (++i < iterable.length) { - if (hasOwn.call(iterable, i)) { - next.value = iterable[i]; - next.done = false; - return next; - } - } - - next.value = undefined; - next.done = true; - - return next; - }; - - return next.next = next; - } - } - - - return { next: doneResult }; - } - runtime.values = values; - - function doneResult() { - return { value: undefined, done: true }; - } - - Context.prototype = { - constructor: Context, - - reset: function(skipTempReset) { - this.prev = 0; - this.next = 0; - - - this.sent = this._sent = undefined; - this.done = false; - this.delegate = null; - - this.method = "next"; - this.arg = undefined; - - this.tryEntries.forEach(resetTryEntry); - - if (!skipTempReset) { - for (var name in this) { - - if (name.charAt(0) === "t" && - hasOwn.call(this, name) && - !isNaN(+name.slice(1))) { - this[name] = undefined; - } - } - } - }, - - stop: function() { - this.done = true; - - var rootEntry = this.tryEntries[0]; - var rootRecord = rootEntry.completion; - if (rootRecord.type === "throw") { - throw rootRecord.arg; - } - - return this.rval; - }, - - dispatchException: function(exception) { - if (this.done) { - throw exception; - } - - var context = this; - function handle(loc, caught) { - record.type = "throw"; - record.arg = exception; - context.next = loc; - - if (caught) { - - - context.method = "next"; - context.arg = undefined; - } - - return !! caught; - } - - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - var record = entry.completion; - - if (entry.tryLoc === "root") { - - - - return handle("end"); - } - - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"); - var hasFinally = hasOwn.call(entry, "finallyLoc"); - - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } else if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - - } else if (hasCatch) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } - - } else if (hasFinally) { - if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - - } else { - throw new Error("try statement without catch or finally"); - } - } - } - }, - - abrupt: function(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc <= this.prev && - hasOwn.call(entry, "finallyLoc") && - this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; - } - } - - if (finallyEntry && - (type === "break" || - type === "continue") && - finallyEntry.tryLoc <= arg && - arg <= finallyEntry.finallyLoc) { - - - finallyEntry = null; - } - - var record = finallyEntry ? finallyEntry.completion : {}; - record.type = type; - record.arg = arg; - - if (finallyEntry) { - this.method = "next"; - this.next = finallyEntry.finallyLoc; - return ContinueSentinel; - } - - return this.complete(record); - }, - - complete: function(record, afterLoc) { - if (record.type === "throw") { - throw record.arg; - } - - if (record.type === "break" || - record.type === "continue") { - this.next = record.arg; - } else if (record.type === "return") { - this.rval = this.arg = record.arg; - this.method = "return"; - this.next = "end"; - } else if (record.type === "normal" && afterLoc) { - this.next = afterLoc; - } - - return ContinueSentinel; - }, - - finish: function(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.finallyLoc === finallyLoc) { - this.complete(entry.completion, entry.afterLoc); - resetTryEntry(entry); - return ContinueSentinel; - } - } - }, - - "catch": function(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - if (record.type === "throw") { - var thrown = record.arg; - resetTryEntry(entry); - } - return thrown; - } - } - - - - throw new Error("illegal catch attempt"); - }, - - delegateYield: function(iterable, resultName, nextLoc) { - this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }; - - if (this.method === "next") { - - - this.arg = undefined; - } - - return ContinueSentinel; - } - }; -})( - - - - (function() { return this })() || Function("return this")() -); - - -/***/ }), -/* 101 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(56); -__webpack_require__(26); -__webpack_require__(20); -__webpack_require__(102); -__webpack_require__(113); -__webpack_require__(114); -module.exports = __webpack_require__(0).Promise; - - -/***/ }), -/* 102 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var LIBRARY = __webpack_require__(16); -var global = __webpack_require__(1); -var ctx = __webpack_require__(21); -var classof = __webpack_require__(37); -var $export = __webpack_require__(4); -var isObject = __webpack_require__(5); -var aFunction = __webpack_require__(22); -var anInstance = __webpack_require__(103); -var forOf = __webpack_require__(104); -var speciesConstructor = __webpack_require__(59); -var task = __webpack_require__(60).set; -var microtask = __webpack_require__(108)(); -var newPromiseCapabilityModule = __webpack_require__(44); -var perform = __webpack_require__(61); -var userAgent = __webpack_require__(109); -var promiseResolve = __webpack_require__(62); -var PROMISE = 'Promise'; -var TypeError = global.TypeError; -var process = global.process; -var versions = process && process.versions; -var v8 = versions && versions.v8 || ''; -var $Promise = global[PROMISE]; -var isNode = classof(process) == 'process'; -var empty = function () { /* empty */ }; -var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper; -var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f; - -var USE_NATIVE = !!function () { - try { - - var promise = $Promise.resolve(1); - var FakePromise = (promise.constructor = {})[__webpack_require__(2)('species')] = function (exec) { - exec(empty, empty); - }; - - return (isNode || typeof PromiseRejectionEvent == 'function') - && promise.then(empty) instanceof FakePromise - - - - && v8.indexOf('6.6') !== 0 - && userAgent.indexOf('Chrome/66') === -1; - } catch (e) { /* empty */ } -}(); - - -var isThenable = function (it) { - var then; - return isObject(it) && typeof (then = it.then) == 'function' ? then : false; -}; -var notify = function (promise, isReject) { - if (promise._n) return; - promise._n = true; - var chain = promise._c; - microtask(function () { - var value = promise._v; - var ok = promise._s == 1; - var i = 0; - var run = function (reaction) { - var handler = ok ? reaction.ok : reaction.fail; - var resolve = reaction.resolve; - var reject = reaction.reject; - var domain = reaction.domain; - var result, then, exited; - try { - if (handler) { - if (!ok) { - if (promise._h == 2) onHandleUnhandled(promise); - promise._h = 1; - } - if (handler === true) result = value; - else { - if (domain) domain.enter(); - result = handler(value); - if (domain) { - domain.exit(); - exited = true; - } - } - if (result === reaction.promise) { - reject(TypeError('Promise-chain cycle')); - } else if (then = isThenable(result)) { - then.call(result, resolve, reject); - } else resolve(result); - } else reject(value); - } catch (e) { - if (domain && !exited) domain.exit(); - reject(e); - } - }; - while (chain.length > i) run(chain[i++]); - promise._c = []; - promise._n = false; - if (isReject && !promise._h) onUnhandled(promise); - }); -}; -var onUnhandled = function (promise) { - task.call(global, function () { - var value = promise._v; - var unhandled = isUnhandled(promise); - var result, handler, console; - if (unhandled) { - result = perform(function () { - if (isNode) { - process.emit('unhandledRejection', value, promise); - } else if (handler = global.onunhandledrejection) { - handler({ promise: promise, reason: value }); - } else if ((console = global.console) && console.error) { - console.error('Unhandled promise rejection', value); - } - }); - - promise._h = isNode || isUnhandled(promise) ? 2 : 1; - } promise._a = undefined; - if (unhandled && result.e) throw result.v; - }); -}; -var isUnhandled = function (promise) { - return promise._h !== 1 && (promise._a || promise._c).length === 0; -}; -var onHandleUnhandled = function (promise) { - task.call(global, function () { - var handler; - if (isNode) { - process.emit('rejectionHandled', promise); - } else if (handler = global.onrejectionhandled) { - handler({ promise: promise, reason: promise._v }); - } - }); -}; -var $reject = function (value) { - var promise = this; - if (promise._d) return; - promise._d = true; - promise = promise._w || promise; - promise._v = value; - promise._s = 2; - if (!promise._a) promise._a = promise._c.slice(); - notify(promise, true); -}; -var $resolve = function (value) { - var promise = this; - var then; - if (promise._d) return; - promise._d = true; - promise = promise._w || promise; - try { - if (promise === value) throw TypeError("Promise can't be resolved itself"); - if (then = isThenable(value)) { - microtask(function () { - var wrapper = { _w: promise, _d: false }; - try { - then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1)); - } catch (e) { - $reject.call(wrapper, e); - } - }); - } else { - promise._v = value; - promise._s = 1; - notify(promise, false); - } - } catch (e) { - $reject.call({ _w: promise, _d: false }, e); - } -}; - - -if (!USE_NATIVE) { - - $Promise = function Promise(executor) { - anInstance(this, $Promise, PROMISE, '_h'); - aFunction(executor); - Internal.call(this); - try { - executor(ctx($resolve, this, 1), ctx($reject, this, 1)); - } catch (err) { - $reject.call(this, err); - } - }; - - Internal = function Promise(executor) { - this._c = []; - this._a = undefined; - this._s = 0; - this._d = false; - this._v = undefined; - this._h = 0; - this._n = false; - }; - Internal.prototype = __webpack_require__(110)($Promise.prototype, { - - then: function then(onFulfilled, onRejected) { - var reaction = newPromiseCapability(speciesConstructor(this, $Promise)); - reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; - reaction.fail = typeof onRejected == 'function' && onRejected; - reaction.domain = isNode ? process.domain : undefined; - this._c.push(reaction); - if (this._a) this._a.push(reaction); - if (this._s) notify(this, false); - return reaction.promise; - }, - - 'catch': function (onRejected) { - return this.then(undefined, onRejected); - } - }); - OwnPromiseCapability = function () { - var promise = new Internal(); - this.promise = promise; - this.resolve = ctx($resolve, promise, 1); - this.reject = ctx($reject, promise, 1); - }; - newPromiseCapabilityModule.f = newPromiseCapability = function (C) { - return C === $Promise || C === Wrapper - ? new OwnPromiseCapability(C) - : newGenericPromiseCapability(C); - }; -} - -$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise }); -__webpack_require__(25)($Promise, PROMISE); -__webpack_require__(111)(PROMISE); -Wrapper = __webpack_require__(0)[PROMISE]; - - -$export($export.S + $export.F * !USE_NATIVE, PROMISE, { - - reject: function reject(r) { - var capability = newPromiseCapability(this); - var $$reject = capability.reject; - $$reject(r); - return capability.promise; - } -}); -$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, { - - resolve: function resolve(x) { - return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x); - } -}); -$export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(112)(function (iter) { - $Promise.all(iter)['catch'](empty); -})), PROMISE, { - - all: function all(iterable) { - var C = this; - var capability = newPromiseCapability(C); - var resolve = capability.resolve; - var reject = capability.reject; - var result = perform(function () { - var values = []; - var index = 0; - var remaining = 1; - forOf(iterable, false, function (promise) { - var $index = index++; - var alreadyCalled = false; - values.push(undefined); - remaining++; - C.resolve(promise).then(function (value) { - if (alreadyCalled) return; - alreadyCalled = true; - values[$index] = value; - --remaining || resolve(values); - }, reject); - }); - --remaining || resolve(values); - }); - if (result.e) reject(result.v); - return capability.promise; - }, - - race: function race(iterable) { - var C = this; - var capability = newPromiseCapability(C); - var reject = capability.reject; - var result = perform(function () { - forOf(iterable, false, function (promise) { - C.resolve(promise).then(capability.resolve, reject); - }); - }); - if (result.e) reject(result.v); - return capability.promise; - } -}); - - -/***/ }), -/* 103 */ -/***/ (function(module, exports) { - -module.exports = function (it, Constructor, name, forbiddenField) { - if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) { - throw TypeError(name + ': incorrect invocation!'); - } return it; -}; - - -/***/ }), -/* 104 */ -/***/ (function(module, exports, __webpack_require__) { - -var ctx = __webpack_require__(21); -var call = __webpack_require__(105); -var isArrayIter = __webpack_require__(106); -var anObject = __webpack_require__(3); -var toLength = __webpack_require__(52); -var getIterFn = __webpack_require__(54); -var BREAK = {}; -var RETURN = {}; -var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) { - var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable); - var f = ctx(fn, that, entries ? 2 : 1); - var index = 0; - var length, step, iterator, result; - if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!'); - - if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) { - result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); - if (result === BREAK || result === RETURN) return result; - } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) { - result = call(iterator, f, step.value, entries); - if (result === BREAK || result === RETURN) return result; - } -}; -exports.BREAK = BREAK; -exports.RETURN = RETURN; - - -/***/ }), -/* 105 */ -/***/ (function(module, exports, __webpack_require__) { - - -var anObject = __webpack_require__(3); -module.exports = function (iterator, fn, value, entries) { - try { - return entries ? fn(anObject(value)[0], value[1]) : fn(value); - - } catch (e) { - var ret = iterator['return']; - if (ret !== undefined) anObject(ret.call(iterator)); - throw e; - } -}; - - -/***/ }), -/* 106 */ -/***/ (function(module, exports, __webpack_require__) { - - -var Iterators = __webpack_require__(11); -var ITERATOR = __webpack_require__(2)('iterator'); -var ArrayProto = Array.prototype; - -module.exports = function (it) { - return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); -}; - - -/***/ }), -/* 107 */ -/***/ (function(module, exports) { - - -module.exports = function (fn, args, that) { - var un = that === undefined; - switch (args.length) { - case 0: return un ? fn() - : fn.call(that); - case 1: return un ? fn(args[0]) - : fn.call(that, args[0]); - case 2: return un ? fn(args[0], args[1]) - : fn.call(that, args[0], args[1]); - case 3: return un ? fn(args[0], args[1], args[2]) - : fn.call(that, args[0], args[1], args[2]); - case 4: return un ? fn(args[0], args[1], args[2], args[3]) - : fn.call(that, args[0], args[1], args[2], args[3]); - } return fn.apply(that, args); -}; - - -/***/ }), -/* 108 */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(1); -var macrotask = __webpack_require__(60).set; -var Observer = global.MutationObserver || global.WebKitMutationObserver; -var process = global.process; -var Promise = global.Promise; -var isNode = __webpack_require__(15)(process) == 'process'; - -module.exports = function () { - var head, last, notify; - - var flush = function () { - var parent, fn; - if (isNode && (parent = process.domain)) parent.exit(); - while (head) { - fn = head.fn; - head = head.next; - try { - fn(); - } catch (e) { - if (head) notify(); - else last = undefined; - throw e; - } - } last = undefined; - if (parent) parent.enter(); - }; - - - if (isNode) { - notify = function () { - process.nextTick(flush); - }; - - } else if (Observer && !(global.navigator && global.navigator.standalone)) { - var toggle = true; - var node = document.createTextNode(''); - new Observer(flush).observe(node, { characterData: true }); - notify = function () { - node.data = toggle = !toggle; - }; - - } else if (Promise && Promise.resolve) { - - var promise = Promise.resolve(undefined); - notify = function () { - promise.then(flush); - }; - - - - - - - } else { - notify = function () { - - macrotask.call(global, flush); - }; - } - - return function (fn) { - var task = { fn: fn, next: undefined }; - if (last) last.next = task; - if (!head) { - head = task; - notify(); - } last = task; - }; -}; - - -/***/ }), -/* 109 */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(1); -var navigator = global.navigator; - -module.exports = navigator && navigator.userAgent || ''; - - -/***/ }), -/* 110 */ -/***/ (function(module, exports, __webpack_require__) { - -var hide = __webpack_require__(7); -module.exports = function (target, src, safe) { - for (var key in src) { - if (safe && target[key]) target[key] = src[key]; - else hide(target, key, src[key]); - } return target; -}; - - -/***/ }), -/* 111 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var global = __webpack_require__(1); -var core = __webpack_require__(0); -var dP = __webpack_require__(8); -var DESCRIPTORS = __webpack_require__(9); -var SPECIES = __webpack_require__(2)('species'); - -module.exports = function (KEY) { - var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY]; - if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, { - configurable: true, - get: function () { return this; } - }); -}; - - -/***/ }), -/* 112 */ -/***/ (function(module, exports, __webpack_require__) { - -var ITERATOR = __webpack_require__(2)('iterator'); -var SAFE_CLOSING = false; - -try { - var riter = [7][ITERATOR](); - riter['return'] = function () { SAFE_CLOSING = true; }; - - Array.from(riter, function () { throw 2; }); -} catch (e) { /* empty */ } - -module.exports = function (exec, skipClosing) { - if (!skipClosing && !SAFE_CLOSING) return false; - var safe = false; - try { - var arr = [7]; - var iter = arr[ITERATOR](); - iter.next = function () { return { done: safe = true }; }; - arr[ITERATOR] = function () { return iter; }; - exec(arr); - } catch (e) { /* empty */ } - return safe; -}; - - -/***/ }), -/* 113 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var $export = __webpack_require__(4); -var core = __webpack_require__(0); -var global = __webpack_require__(1); -var speciesConstructor = __webpack_require__(59); -var promiseResolve = __webpack_require__(62); - -$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) { - var C = speciesConstructor(this, core.Promise || global.Promise); - var isFunction = typeof onFinally == 'function'; - return this.then( - isFunction ? function (x) { - return promiseResolve(C, onFinally()).then(function () { return x; }); - } : onFinally, - isFunction ? function (e) { - return promiseResolve(C, onFinally()).then(function () { throw e; }); - } : onFinally - ); -} }); - - -/***/ }), -/* 114 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var $export = __webpack_require__(4); -var newPromiseCapability = __webpack_require__(44); -var perform = __webpack_require__(61); - -$export($export.S, 'Promise', { 'try': function (callbackfn) { - var promiseCapability = newPromiseCapability.f(this); - var result = perform(callbackfn); - (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v); - return promiseCapability.promise; -} }); - - -/***/ }), -/* 115 */, -/* 116 */, -/* 117 */, -/* 118 */, -/* 119 */, -/* 120 */, -/* 121 */, -/* 122 */, -/* 123 */, -/* 124 */, -/* 125 */, -/* 126 */, -/* 127 */, -/* 128 */, -/* 129 */, -/* 130 */, -/* 131 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var _promise = __webpack_require__(43); - -var _promise2 = _interopRequireDefault(_promise); - -var _regenerator = __webpack_require__(58); - -var _regenerator2 = _interopRequireDefault(_regenerator); - -var _asyncToGenerator2 = __webpack_require__(63); - -var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); - -var _assign = __webpack_require__(38); - -var _assign2 = _interopRequireDefault(_assign); - -var _stringify = __webpack_require__(18); - -var _stringify2 = _interopRequireDefault(_stringify); - -var _commonUtils = __webpack_require__(19); - -var _contentUtils = __webpack_require__(132); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - - - - -$(function () { - var globalVal = { - product: { - productType: 1, - hasConsole: false, - oldVersion: true - }, - info: { - commonFunList: null, - hashArgs: null, - location: {} - }, - port: { - batch: null, - auto: null, - autoCode: null, - normal: null - }, - fun: { - interval: null, - interval1: null - } - - - };var dom = document.getElementById("plug-inner-script"); - - var meta = false; - try { - meta = $('meta[name="author"]')[0].content == '广州银云信息科技有限公司'; - } catch (e) {} - - if (meta) { - if (dom) { - dom.innerHTML = "window.plug = {type: 'application/eolinker',version:401}"; - } else { - var newScript = document.createElement("script"); - newScript.innerHTML = "window.plug = {type: 'application/eolinker',version:401}"; - var firstScript = document.getElementsByTagName("script")[0]; - firstScript.parentNode.insertBefore(newScript, firstScript); - } - } - - function initFun() { - window.sessionStorage.clear(); - clearInterval(globalVal.fun.interval); - clearInterval(globalVal.fun.interval1); - $(document).off('click'); - try { - if (globalVal.port.auto) { - globalVal.port.auto.disconnect(); - } - if (globalVal.port.batch) { - globalVal.port.batch.disconnect(); - } - if (globalVal.port.autoCode) { - globalVal.port.autoCode.disconnect(); - } - if (globalVal.port.normal) { - globalVal.port.normal.disconnect(); - } - } catch (e) { - console.log(e); - } - } - - function InitState() { - - - - - if (meta) { - globalVal.product.productType = _contentUtils.CONTENT_TOOLS.judgePlatform(); - switch (Number(globalVal.product.productType)) { - case 1: - {} - case 2: - { - globalVal.product.oldVersion = _contentUtils.CONTENT_TOOLS.getVersison() > 20180717 ? false : true; - break; - } - default: - { - globalVal.product.oldVersion = true; - } - } - if (globalVal.product.productType) { - globalVal.info.hashArgs = _contentUtils.CONTENT_TOOLS.getHashStringArgs(); - globalVal.info.location = window.location; - - var testType = _contentUtils.CONTENT_TOOLS.judgeWhichTest(globalVal.product.productType); - if (testType) { - if (!globalVal.product.hasConsole) { - globalVal.product.hasConsole = true; - console.log("%c welcome,eolinker_extension", "font-size:14px;color:#4caf50;font-weight:bold;background:url('https://www.eolinker.com/assets/images/favicon.ico') no-repeat;background-size:14px;background-position:top left;"); - } - if (/(\/home\/project\/inside\/api\/test)|(\/inside\/api\/case)|(\/inside\/quickTest)|(automatic\/inside\/cenario)|(\/inside\/test\/admin\/\?)/i.test(globalVal.info.location.href)) { - getFunctionDataList(); - } else if (/\/share\/project\/test/i.test(globalVal.info.location.href) && globalVal.info.hashArgs.productType == 1 || globalVal.product.productType == 2) { - getFunctionDataList(); - } - } - switch (testType) { - case 'normal': - { - normalTest(); - break; - } - case 'case': - { - batchTest(); - break; - } - case 'auto': - { - autoTest(); - break; - } - case 'autoCode': - case 'envCase': - { - autoCodeTest(); - break; - } - case 'autoBatch': - { - batchAutoTest(); - break; - } - case 'share': - { - normalTest('share'); - break; - } - } - } - } - } - - function normalTest(type) { - initFun(); - var isProcess = false; - - - - - function clock() { - if ($('.send-btn').length > 0) { - window.clearInterval(globalVal.fun.interval); - $('.send-btn').on("click", function () { - function addTestHistory(time, requestInfo, resultInfo) { - if (globalVal.product.productType != 0) { - try { - var location = globalVal.info.location.origin + globalVal.info.location.pathname; - var apiUrl = ''; - resultInfo = JSON.parse(resultInfo); - switch (Number(globalVal.product.productType)) { - case 1: - { - if (globalVal.info.location.hash.indexOf('quickTest') > -1 && !globalVal.info.hashArgs.apiID) { - apiUrl = "apiManagementPro/QuickTest/addTestHistory"; - } else { - apiUrl = 'apiManagementPro/Test/addTestHistory'; - } - break; - } - case 2: - { - location = globalVal.info.location.origin + globalVal.info.location.pathname.replace(/independent\/$/i, ''); - if (globalVal.info.location.hash.indexOf('quickTest') > -1 && !globalVal.info.hashArgs.apiID) { - apiUrl = "index.php/apiManagementPro/QuickTest/addTestHistory"; - } else { - apiUrl = 'index.php/apiManagementPro/Test/addTestHistory'; - } - } - } - var requestData = { - apiProtocol: "0", - URL: resultInfo.requestBody.url, - headers: resultInfo.requestBody.historyHeaders, - requestType: resultInfo.requestBody.params.requestType, - params: resultInfo.requestBody.historyParams, - method: _commonUtils.COMMON_TOOLS.judgeRequestMethod(requestInfo.requestInfo.apiRequestType), - methodType: requestInfo.requestInfo.apiRequestType - }; - var responseData = { - headers: resultInfo.testResult.headers, - body: resultInfo.testResult.body, - httpCode: resultInfo.testHttpCode, - testDeny: resultInfo.testDeny - }; - $.ajax({ - url: location + apiUrl, - method: 'POST', - contentType: 'application/x-www-form-urlencoded;charset=UTF-8', - data: { - companyHashKey: globalVal.info.hashArgs.companyHashKey, - projectHashKey: globalVal.info.hashArgs.projectHashKey, - apiID: globalVal.info.hashArgs.apiID, - testTime: time, - requestInfo: (0, _stringify2.default)(requestData), - resultInfo: (0, _stringify2.default)(responseData), - beforeInject: requestInfo.script.before, - afterInject: requestInfo.script.after - } - }).done(function (successData, textStatus, xhr) {}).fail(function (xhr, textStatus) {}); - } catch (e) { - console.log(e); - } - } - } - if (!isProcess) { - - globalVal.port.normal = chrome.runtime.connect({ - name: "normalTest" - }); - var data = window.sessionStorage.getItem('plug-normalTest-info') || $("#plug-in-js").text(); - if (data) { - isProcess = true; - data = JSON.parse(data); - data.commonFunList = globalVal.info.commonFunList; - data.productType = globalVal.product.productType; - data.oldVersion = globalVal.product.oldVersion; - var time = _contentUtils.CONTENT_TOOLS.getTime(); - globalVal.port.normal.postMessage(data); - globalVal.port.normal.onMessage.addListener(function (request, sender, sendResponse) { - if (isProcess) { - var webResult = $("#plug-in-result-js"); - if (request.statusCode == "210000") { - console.log("请求发送失败,请正确填写接口信息"); - } - window.sessionStorage.setItem('plug-background-result', request.backResult); - if (globalVal.product.productType == 0 || globalVal.product.productType == 3) { - - webResult.text(request.backResult); - } else { - webResult.text(1); - } - isProcess = false; - var statusCode = JSON.parse(request.backResult).statusCode; - if (statusCode == "000000" && type != 'share') { - addTestHistory(time, data, request.backResult); - } - } - }); - } - } else { - isProcess = false; - globalVal.port.normal.postMessage({ - stopStatus: true - }); - } - }); - } - } - globalVal.fun.interval = setInterval(clock, 100); - } - - function batchTest() { - - initFun(); - var plugDate = { - responseList: [], - status: "tested" - }; - var location = globalVal.info.location.origin + globalVal.info.location.pathname; - var apiUrl = 'apiManagementPro/TestCase/addTestHistory'; - var isBreak = false; - switch (Number(globalVal.product.productType)) { - case 1: - { - - apiUrl = 'apiManagementPro/TestCase/addTestHistory'; - break; - } - default: - { - - location = globalVal.info.location.origin + globalVal.info.location.pathname.replace(/independent\/$/i, ''); - apiUrl = 'index.php/apiManagementPro/TestCase/addTestHistory'; - } - } - - - - - - function clock() { - var data = $('#plug-batch-in-js').text(); - try { - data = JSON.parse(data); - } catch (e) {} - if (data.env) { - $(document).on('click', '.batch-test-btn', function () { - isBreak = false; - var btnSend = $('.batch-test-btn'); - var index = btnSend.index($(this)); - var webResult = $("#plug-batch-in-result-js"); - - if ($(this).attr('testing') == 'true') { - - globalVal.port.batch = chrome.runtime.connect({ - name: "batchTest" - }); - - var content = JSON.parse($('#plug-batch-in-js').text()); - var data = {}; - if (index == 0) { - - data = content; - } else { - data.caseList = [content.caseList[index - 1]]; - data.env = content.env; - } - data.commonFunList = globalVal.info.commonFunList; - data.index = index; - data.amount = content.caseList.length; - data.productType = globalVal.product.productType; - data.oldVersion = globalVal.product.oldVersion; - globalVal.port.batch.postMessage(data); - globalVal.port.batch.onMessage.addListener(function (backResult) { - for (i = 0; i < content.caseList.length; i++) { - if (backResult.responseList[i] != null) {} else { - backResult.responseList[i] = null; - } - } - if (index == 0) { - - for (var i = backResult.responseList.length - 1; i >= 0; i--) { - if (backResult.responseList[i] == null) { - backResult.status = 'testing'; - } - } - window.sessionStorage.setItem('plug-background-result', (0, _stringify2.default)(backResult)); - plugDate = { - responseList: [], - status: backResult.status - }; - webResult.text((0, _stringify2.default)(plugDate)); - plugDate = { - responseList: [], - status: "tested" - }; - } else { - - plugDate.responseList[index - 1] = backResult.responseList[index - 1]; - for (var i = backResult.responseList.length - 1; i >= 0; i--) { - if (!plugDate.responseList[i]) { - plugDate.responseList[i] = null; - } - } - window.sessionStorage.setItem('plug-background-result', (0, _stringify2.default)(backResult)); - plugDate = { - responseList: [], - status: backResult.status - }; - webResult.text((0, _stringify2.default)(plugDate)); - } - if (backResult.status == 'tested' && !isBreak) { - var result = []; - if (index == 0) { - content.caseList.forEach(function (val, key) { - result.push({ - caseID: val.caseID, - result: backResult.responseList[key] - }); - }); - } else { - result = [{ - caseID: content.caseList[index - 1].caseID, - result: backResult.responseList[index - 1] - }]; - } - $.ajax({ - url: location + apiUrl, - method: 'POST', - contentType: 'application/x-www-form-urlencoded;charset=UTF-8', - data: { - companyHashKey: globalVal.info.hashArgs.companyHashKey, - projectHashKey: globalVal.info.hashArgs.projectHashKey, - apiID: globalVal.info.hashArgs.apiID, - result: (0, _stringify2.default)(result) - } - }).done(function (successData, textStatus, xhr) {}).fail(function (xhr, textStatus) {}); - } - }); - } else { - isBreak = true; - globalVal.port.batch.postMessage({ - index: index, - stopStatus: true - }); - - }; - }); - window.clearInterval(globalVal.fun.interval); - } - } - globalVal.fun.interval = setInterval(clock, 100); - } - - function autoTest() { - - initFun(); - if (!globalVal.info.commonFunList) { - getFunctionDataList(); - } - var plugDate = { - responseList: [], - status: "tested" - }; - var location = globalVal.info.location.origin + globalVal.info.location.pathname; - var apiUrl = 'automatedTest/AutomatedTestCaseSingle/getSingleCaseList'; - var apiUrl1 = 'automatedTest/AutomatedTestHistory/addTestLog'; - var content = {}; - var beforeCaseList = false; - var changeFlagePrevious = 0; - var isBreak = false; - - - - - switch (Number(globalVal.product.productType)) { - case 0: - { - location = globalVal.info.location.origin + globalVal.info.location.pathname.replace(/index\.php$/i, ''); - apiUrl = 'server/index.php?g=Web&c=AutomatedTestCaseSingle&o=getSingleTestCaseList'; - break; - } - case 1: - { - - apiUrl = 'automatedTest/AutomatedTestCaseSingle/getSingleCaseList'; - apiUrl1 = 'automatedTest/AutomatedTestHistory/addTestLog'; - break; - } - case 3: - { - location = globalVal.info.location.origin + globalVal.info.location.pathname.replace(/index\.html$/i, ''); - apiUrl = 'AutomatedTestCaseSingle/getSingleTestCaseList'; - break; - } - default: - { - - location = globalVal.info.location.origin + globalVal.info.location.pathname.replace(/independent\/$/i, ''); - apiUrl = 'index.php/apiManagementPro/AutomatedTestCaseSingle/getSingleCaseList'; - apiUrl1 = 'index.php/apiManagementPro/AutomatedTestHistory/addTestLog'; - } - } - - function getSingleCaseList() { - - $.ajax({ - url: location + apiUrl, - method: 'POST', - contentType: 'application/x-www-form-urlencoded;charset=UTF-8', - data: { - companyHashKey: globalVal.info.hashArgs.companyHashKey, - projectHashKey: globalVal.info.hashArgs.projectHashKey, - caseID: globalVal.info.hashArgs.caseID, - projectID: globalVal.info.hashArgs.projectID - } - }).done(function (successData, textStatus, xhr) { - try { - content = JSON.parse(successData); - } catch (e) { - content = successData; - } - }).fail(function (xhr, textStatus) {}); - } - getSingleCaseList(); - - - function queryBtn() { - function query() { - var btnSend = $('button.batch-test-btn'); - - $('#automated-text').unbind('DOMCharacterDataModified'); - $('#automated-text').bind('DOMCharacterDataModified', function (e) { - var webContent = JSON.parse($("#automated-text").text()); - if (changeFlagePrevious != webContent.flag) { - getSingleCaseList(); - changeFlagePrevious = webContent.flag; - } - }); - if (content != undefined && content.singCaseList != undefined && content.singCaseList.length == btnSend.length - 1) { - clearInterval(globalVal.fun.interval); - - $('.batch-test-btn').off('click'); - $('.batch-test-btn').on('click', function () { - var btnSend = $('.batch-test-btn'); - var webResult = $('#plug-batch-in-result-js'); - var index = btnSend.index($(this)); - var caseList = {}; - var env = JSON.parse($("#automated-text").text()).env; - - if ($(this).attr('testing') == 'true') { - isBreak = false; - - globalVal.port.auto = chrome.runtime.connect({ - name: "autoTest" - }); - - var data = {}; - if (index == 0) { - - caseList.caseData = content.singCaseList; - } else { - caseList.caseData = [content.singCaseList[index - 1]]; - } - caseList.productType = globalVal.product.productType; - caseList.oldVersion = globalVal.product.oldVersion; - caseList.beforeCase = { - caseCodeList: content.beforeCaseList || false, - env: env, - commonFunList: globalVal.info.commonFunList, - productType: globalVal.product.productType, - oldVersion: globalVal.product.oldVersion - }; - caseList.afterCase = { - caseCodeList: content.afterCaseList || false, - env: env, - commonFunList: globalVal.info.commonFunList, - productType: globalVal.product.productType, - oldVersion: globalVal.product.oldVersion - }; - caseList.index = index; - caseList.amount = content.singCaseList.length; - caseList.env = env; - caseList.commonFunList = globalVal.info.commonFunList; - globalVal.port.auto.postMessage(caseList); - globalVal.port.auto.onMessage.addListener(function (backResult) { - if (backResult.afterCaseReportList.length == 0) { - - for (i = 0; i < content.singCaseList.length; i++) { - if (backResult.responseList[i] != null) {} else { - backResult.responseList[i] = null; - } - } - } - if (!content.afterCaseList) { - content.afterCaseList = []; - } - if (index == 0) { - if (content.afterCaseList.length == 0) { - for (var i = 0; i < backResult.responseList.length; i++) { - - - if (backResult.responseList[i] == null) { - backResult.status = 'testing'; - } else if (backResult.responseList[i].isStopTest) { - backResult.status = 'tested'; - break; - } - } - } else { - - if (backResult.afterCaseReportList.length != content.afterCaseList.length) { - backResult.status = 'testing'; - } - } - window.sessionStorage.setItem('plug-background-result', (0, _stringify2.default)(backResult)); - plugDate = { - responseList: [], - status: backResult.status - }; - webResult.text((0, _stringify2.default)(plugDate)); - plugDate = { - responseList: [], - status: "tested" - }; - } else { - if (content.afterCaseList.length == 0) { - - - if (backResult.responseList[index] == null) { - backResult.status = 'testing'; - } - } else { - - if (backResult.afterCaseReportList.length != content.afterCaseList.length) { - backResult.status = 'testing'; - } - } - - plugDate.responseList[index - 1] = backResult.responseList[index - 1]; - for (var i = backResult.responseList.length - 1; i >= 0; i--) { - if (!plugDate.responseList[i]) { - plugDate.responseList[i] = null; - } - } - window.sessionStorage.setItem('plug-background-result', (0, _stringify2.default)(backResult)); - plugDate = { - responseList: [], - status: backResult.status - }; - webResult.text((0, _stringify2.default)(plugDate)); - } - if (!isBreak && (globalVal.product.productType == 1 || globalVal.product.productType == 2) && backResult.status == 'tested' && index == 0) { - - isBreak = true; - $.ajax({ - url: location + apiUrl1, - method: 'POST', - contentType: 'application/x-www-form-urlencoded;charset=UTF-8', - data: { - caseID: globalVal.info.hashArgs.caseID, - companyHashKey: globalVal.info.hashArgs.companyHashKey, - projectHashKey: globalVal.info.hashArgs.projectHashKey, - result: (0, _stringify2.default)(backResult) - } - }).done(function (successData, textStatus, xhr) {}).fail(function (xhr, textStatus) { - isBreak = false; - console.log('添加历史记录失败'); - }); - } - }); - } else { - isBreak = true; - globalVal.port.auto.postMessage({ - index: index, - stopStatus: true - }); - } - }); - } - } - globalVal.fun.interval = setInterval(query, 500); - } - queryBtn(); - } - - function autoCodeTest() { - - initFun(); - if (!globalVal.info.commonFunList) { - getFunctionDataList(); - } - var plugDate = { - responseList: [], - status: "tested" - }; - var content = {}; - var changeFlagePrevious = 0; - var location = globalVal.info.location.origin + globalVal.info.location.pathname; - var apiUrl1 = 'automatedTest/AutomatedTestHistory/addTestLog'; - var isBreak = false; - - - - - if (globalVal.product.productType == 0) { - location = globalVal.info.location.origin + globalVal.info.location.pathname.replace(/index\.php$/i, ''); - } else if (globalVal.product.productType == 1) { - - apiUrl1 = 'automatedTest/AutomatedTestHistory/addTestLog'; - } else { - - location = globalVal.info.location.origin + globalVal.info.location.pathname.replace(/independent\/$/i, ''); - apiUrl1 = 'index.php/apiManagementPro/AutomatedTestHistory/addTestLog'; - } - - function queryBtn() { - function query() { - var btnSend = $('button.batch-test-btn'); - if (btnSend.length != 0) { - clearInterval(globalVal.fun.interval); - $('.batch-test-btn').off('click'); - - $('.batch-test-btn').on('click', function () { - isBreak = false; - var content = window.sessionStorage.getItem('plug-autoTest-code'); - var btnSend = $('.batch-test-btn'); - var caseCodeList = {}; - var webResult = $("#plug-batch-in-result-js"); - content = JSON.parse(content); - - if ($(this).attr('testing') == 'true') { - - globalVal.port.autoCode = chrome.runtime.connect({ - name: "autoCodeTest" - }); - - caseCodeList.caseCode = content.caseCode; - caseCodeList.beforeCase = { - caseCodeList: content.beforeCaseList || false, - env: content.env, - commonFunList: globalVal.info.commonFunList, - oldVersion: globalVal.product.oldVersion - - }; - caseCodeList.afterCase = { - caseCodeList: content.afterCaseList || false, - env: content.env, - commonFunList: globalVal.info.commonFunList, - oldVersion: globalVal.product.oldVersion - }; - caseCodeList.productType = globalVal.product.productType; - caseCodeList.oldVersion = globalVal.product.oldVersion; - caseCodeList.env = content.env; - caseCodeList.commonFunList = globalVal.info.commonFunList; - globalVal.port.autoCode.postMessage(caseCodeList); - globalVal.port.autoCode.onMessage.addListener(function (backResult) { - window.sessionStorage.setItem('plug-background-result', (0, _stringify2.default)(backResult)); - plugDate = { - status: 'tested' - }; - webResult.text((0, _stringify2.default)(plugDate)); - if (!isBreak && (globalVal.product.productType == 1 || globalVal.product.productType == 2) && globalVal.info.location.hash.indexOf('proInside/test/admin/mode/advanced') > -1 || globalVal.info.location.hash.indexOf('automatic/inside/cenario/mode/advanced') > -1) { - isBreak = true; - $.ajax({ - url: location + apiUrl1, - method: 'POST', - contentType: 'application/x-www-form-urlencoded;charset=UTF-8', - data: { - caseID: globalVal.info.hashArgs.caseID, - companyHashKey: globalVal.info.hashArgs.companyHashKey, - projectHashKey: globalVal.info.hashArgs.projectHashKey, - result: (0, _stringify2.default)(backResult) - } - }).done(function (successData, textStatus, xhr) {}).fail(function (xhr, textStatus) { - isBreak = false; - console.log('添加历史记录失败'); - }); - } - }); - } else { - - isBreak = true; - globalVal.port.autoCode.postMessage({ - stopStatus: true - }); - } - }); - } - } - globalVal.fun.interval = setInterval(query, 500); - } - queryBtn(); - } - - function batchAutoTest() { - initFun(); - var location = globalVal.info.location.origin + globalVal.info.location.pathname; - var apiUrl = 'automatedTest/AutomatedTestCase/getTestCaseList'; - var apiUrl1 = 'automatedTest/AutomatedTestHistory/addTestHistory'; - var apiUrl2 = 'automatedTest/AutomatedTestHistory/addTestLog'; - var content = null; - var changeFlagePrevious = 0; - var ajaxStatus = false; - if (globalVal.product.productType == 0) { - - location = globalVal.info.location.origin + globalVal.info.location.pathname.replace(/index\.php$/i, ''); - apiUrl = 'server/index.php?g=Web&c=AutomatedTestCase&o=getTestCaseDataList'; - } else if (globalVal.product.productType == 1) { - - apiUrl = 'automatedTest/AutomatedTestCase/getTestCaseDataList'; - apiUrl1 = 'automatedTest/AutomatedTestHistory/addTestHistory'; - } else if (globalVal.product.productType == 3) { - - location = globalVal.info.location.origin + globalVal.info.location.pathname.replace(/index\.html$/i, ''); - apiUrl = 'AutomatedTestCase/getTestCaseDataList'; - } else { - - location = globalVal.info.location.origin + globalVal.info.location.pathname.replace(/independent\/$/i, ''); - apiUrl = 'index.php/apiManagementPro/AutomatedTestCase/getTestCaseDataList'; - apiUrl2 = 'index.php/apiManagementPro/AutomatedTestHistory/addTestLog'; - apiUrl1 = 'index.php/apiManagementPro/AutomatedTestHistory/addTestHistory'; - } - - function getBatchData(which, data, index, env) { - switch (which.toString()) { - case '0': - { - return { - caseData: data.singleCaseList, - productType: globalVal.product.productType, - oldVersion: globalVal.product.oldVersion, - index: 0, - batchIndex: index, - amount: data.singleCaseList.length, - env: env, - commonFunList: globalVal.info.commonFunList, - beforeCase: { - caseCodeList: data.beforeCaseList || false, - env: env, - commonFunList: globalVal.info.commonFunList, - productType: globalVal.product.productType, - oldVersion: globalVal.product.oldVersion - }, - afterCase: { - caseCodeList: data.afterCaseList || false, - env: env, - commonFunList: globalVal.info.commonFunList, - productType: globalVal.product.productType, - oldVersion: globalVal.product.oldVersion - } - }; - break; - } - default: - { - return { - caseCode: data.caseCode, - productType: globalVal.product.productType, - oldVersion: globalVal.product.oldVersion, - env: env, - batchIndex: index, - commonFunList: globalVal.info.commonFunList, - beforeCase: { - caseCodeList: data.beforeCaseList || false, - env: env, - commonFunList: globalVal.info.commonFunList, - productType: globalVal.product.productType, - oldVersion: globalVal.product.oldVersion - }, - afterCase: { - caseCodeList: data.afterCaseList || false, - env: env, - commonFunList: globalVal.info.commonFunList, - productType: globalVal.product.productType, - oldVersion: globalVal.product.oldVersion - } - }; - } - } - } - - function getBatchAutoTest(orderBy, asc, connID, condition, keyWord) { - content = null; - var request = { - companyHashKey: globalVal.info.hashArgs.companyHashKey, - projectHashKey: globalVal.info.hashArgs.projectHashKey, - projectID: globalVal.info.hashArgs.projectID, - orderBy: orderBy, - asc: asc, - keyWord: keyWord, - condition: condition, - connID: connID || null, - groupID: -1 - }; - request.groupID = globalVal.info.hashArgs['grandSonGroupID'] != undefined ? globalVal.info.hashArgs['grandSonGroupID'] : globalVal.info.hashArgs['childGroupID'] != undefined ? globalVal.info.hashArgs['childGroupID'] : globalVal.info.hashArgs['groupID'] == undefined ? 0 : globalVal.info.hashArgs['groupID'] == -1 ? 0 : globalVal.info.hashArgs['groupID']; - $.ajax({ - url: location + apiUrl, - method: 'POST', - contentType: 'application/x-www-form-urlencoded;charset=UTF-8', - data: request - }).done(function (successData, textStatus, xhr) { - try { - successData = JSON.parse(successData); - } catch (e) {} - if (successData.statusCode == '000000') { - try { - content = JSON.parse(successData).caseList; - } catch (e) { - content = successData.caseList; - } - } else { - content = []; - } - }).fail(function (xhr, textStatus) {}); - } - - - - - - - - var report = { - time: '0ms', - totalCase: 0, - successCase: 0, - errorCase: 0, - responseList: [], - status: 'testing' - }; - var data = { - time: { - init: null - } - }; - var fun = {}; - var isBreak = false; - - fun.queryDate = function () { - function query1() { - if ($("#automated-text").text()) { - try { - var webContent = JSON.parse($("#automated-text").text()); - webContent.filter = webContent.filter || {}; - clearInterval(globalVal.fun.interval1); - getBatchAutoTest(webContent.filter.orderBy, webContent.filter.asc, webContent.filter.connID, webContent.filter.condition, webContent.filter.search); - } catch (e) {} - } - } - globalVal.fun.interval1 = setInterval(query1, 500); - }; - fun.queryDate(); - function queryBtn() { - function query() { - var btnSend = $('button.batch-test-btn'); - var patt = /home\/project\/inside\/test\/default\?/i; - - var filterContent = null; - if (content !== null) { - filterContent = (0, _assign2.default)([], content); - } - $('#automated-text').unbind('DOMCharacterDataModified'); - $('#automated-text').bind('DOMCharacterDataModified', function (e) { - var webContent = JSON.parse($("#automated-text").text()); - if (content !== null) { - filterContent = []; - } else { - filterContent = null; - } - webContent.filter = webContent.filter || {}; - if (changeFlagePrevious != webContent.flag) { - getBatchAutoTest(webContent.filter.orderBy, webContent.filter.asc, webContent.filter.connID, webContent.filter.condition, webContent.filter.search); - queryBtn(); - changeFlagePrevious = webContent.flag; - } else if (webContent.filter.search) { - content.forEach(function (val, key) { - if (val.caseName.indexOf(webContent.filter.search) > -1) { - filterContent.push(val); - } - }); - } - }); - fun.removeListener = function (callback) { - if (callback) { - globalVal.port.autoCode.onMessage.removeListener(callback); - globalVal.port.auto.onMessage.removeListener(callback); - } - }; - if (filterContent != null && filterContent.length == btnSend.length - 2 || filterContent != null && patt.test(globalVal.info.location.href) && btnSend.length == 1) { - clearInterval(globalVal.fun.interval); - - $('.batch-test-btn').off('click'); - $('.batch-test-btn').on('click', function () { - var webResult = $("#plug-batch-in-result-js"); - if ($(this).attr('testing') == 'true') { - var index = $('button.batch-test-btn').index($(this)); - - var index1 = $('a.batch-test-btn').index($(this)); - var isAsync = true; - - if (index == 0 || index1 == 1 || globalVal.product.productType == 0) { - - isAsync = true; - } else { - isAsync = false; - } - if (index == 1 || index == -1) { - index = 0; - } - isBreak = false; - report = { - time: '0ms', - totalCase: 0, - successCase: 0, - errorCase: 0, - responseList: [], - status: 'testing' - }; - var plugDate = { - responseList: [], - status: "testing" - }; - var env = JSON.parse($("#automated-text").text()).env; - report.totalCase = filterContent.length; - - globalVal.port.autoCode = chrome.runtime.connect({ - name: "autoCodeTest" - }); - globalVal.port.auto = chrome.runtime.connect({ - name: "autoTest" - }); - report.responseList = new Array(report.totalCase); - data.time.init = new Date(); - var batchList = []; - if (index == 0) { - batchList = filterContent; - } else { - batchList.push(filterContent[index - 2]); - } - switch (isAsync) { - case false: - { - - var asyncControl = function () { - var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee() { - var i; - return _regenerator2.default.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - i = 0; - - case 1: - if (!(i < batchList.length)) { - _context.next = 9; - break; - } - - if (!isBreak) { - _context.next = 4; - break; - } - - return _context.abrupt('break', 9); - - case 4: - _context.next = 6; - return Synchronization(batchList, i); - - case 6: - i++; - _context.next = 1; - break; - - case 9: - case 'end': - return _context.stop(); - } - } - }, _callee, this); - })); - - return function asyncControl() { - return _ref.apply(this, arguments); - }; - }(); - - var Synchronization = function Synchronization(batchList, i) { - return new _promise2.default(function (resolve, reject) { - switch (batchList[i].caseType.toString()) { - case '1': - { - - var caseCodeList = getBatchData('1', batchList[i], i, env); - globalVal.port.autoCode.postMessage(caseCodeList); - break; - } - case '0': - { - - var caseList = getBatchData('0', batchList[i], i, env); - globalVal.port.auto.postMessage(caseList); - break; - } - } - - fun.removeListener(fun.callback); - fun.callback = function (backResult) { - if (!isBreak) { - var isEnd = true; - if (index == 0) { - report.time = (new Date() - data.time.init) / 1000 + 's'; - backResult.caseName = filterContent[backResult.batchIndex].caseName; - backResult.caseID = filterContent[backResult.batchIndex].caseID; - backResult.caseType = filterContent[backResult.batchIndex].caseType; - report.responseList[backResult.batchIndex] = backResult; - - for (i = 0; i < filterContent.length; i++) { - if (report.responseList[i] != null) {} else { - report.responseList[i] = null; - } - } - for (var i = 0; i < report.responseList.length; i++) { - - if (report.responseList[i] == null) { - isEnd = false; - } - } - if (isEnd == true) { - plugDate.status = 'tested'; - report.status = 'tested'; - } - if (backResult.reportStatus == 'finish' || backResult.status == 'finish') { - report.successCase++; - } else { - report.errorCase++; - } - window.sessionStorage.setItem('plug-background-result', (0, _stringify2.default)(report)); - webResult.text((0, _stringify2.default)(plugDate)); - resolve('success'); - var patt = /home\/project\/inside\/test\/default\?/i; - if (isEnd == true && (globalVal.product.productType == 1 || globalVal.product.productType == 2) && !patt.test(globalVal.info.location.href)) { - $.ajax({ - url: location + apiUrl1, - method: 'POST', - contentType: 'application/x-www-form-urlencoded;charset=UTF-8', - data: { - companyHashKey: globalVal.info.hashArgs.companyHashKey, - projectHashKey: globalVal.info.hashArgs.projectHashKey, - result: (0, _stringify2.default)(report), - groupID: globalVal.info.hashArgs['grandSonGroupID'] != undefined ? globalVal.info.hashArgs['grandSonGroupID'] : globalVal.info.hashArgs['childGroupID'] != undefined ? globalVal.info.hashArgs['childGroupID'] : globalVal.info.hashArgs['groupID'] == undefined ? 0 : globalVal.info.hashArgs['groupID'] == -1 ? 0 : globalVal.info.hashArgs['groupID'] - - } - }).done(function (successData, textStatus, xhr) {}).fail(function (xhr, textStatus) { - console.log('添加历史记录失败'); - }); - } - } else { - report.time = (new Date() - data.time.init) / 1000 + 's'; - report.responseList = [backResult]; - report.status = 'tested'; - if (backResult.reportStatus == 'finish' || backResult.status == 'finish') { - report.successCase++; - } else { - report.errorCase++; - } - window.sessionStorage.setItem('plug-background-result', (0, _stringify2.default)(report)); - plugDate.status = 'tested'; - webResult.text((0, _stringify2.default)(plugDate)); - resolve('success'); - - if (globalVal.product.productType == 1 || globalVal.product.productType == 2) { - $.ajax({ - url: location + apiUrl2, - method: 'POST', - contentType: 'application/x-www-form-urlencoded;charset=UTF-8', - data: { - caseID: batchList[0].caseID, - companyHashKey: globalVal.info.hashArgs.companyHashKey, - projectHashKey: globalVal.info.hashArgs.projectHashKey, - result: (0, _stringify2.default)(backResult) - } - }).done(function (successData, textStatus, xhr) {}).fail(function (xhr, textStatus) { - console.log('添加历史记录失败'); - }); - } - } - } - }; - globalVal.port.autoCode.onMessage.addListener(fun.callback); - globalVal.port.auto.onMessage.addListener(fun.callback); - }); - }; - - asyncControl().then(function () {}).catch(function (e) { - console.log(e); - }); - break; - } - default: - { - - for (var i = 0; i < batchList.length; i++) { - if (isBreak) break; - switch (batchList[i].caseType.toString()) { - case '1': - { - - var caseCodeList = getBatchData('1', batchList[i], i, env); - globalVal.port.autoCode.postMessage(caseCodeList); - break; - } - case '0': - { - - var caseList = getBatchData('0', batchList[i], i, env); - globalVal.port.auto.postMessage(caseList); - break; - } - } - } - fun.removeListener(fun.callback); - fun.callback = function (backResult) { - if (!isBreak) { - if (index == 0) { - report.time = (new Date() - data.time.init) / 1000 + 's'; - backResult.caseName = filterContent[backResult.batchIndex].caseName; - backResult.caseID = filterContent[backResult.batchIndex].caseID; - backResult.caseType = filterContent[backResult.batchIndex].caseType; - report.responseList[backResult.batchIndex] = backResult; - var isEnd = true; - - for (i = 0; i < filterContent.length; i++) { - if (report.responseList[i] != null) {} else { - report.responseList[i] = null; - } - } - for (var i = 0; i < report.responseList.length; i++) { - - if (report.responseList[i] == null) { - isEnd = false; - } - } - if (isEnd == true) { - plugDate.status = 'tested'; - report.status = 'tested'; - } - if (backResult.reportStatus == 'finish' || backResult.status == 'finish') { - report.successCase++; - } else { - report.errorCase++; - } - window.sessionStorage.setItem('plug-background-result', (0, _stringify2.default)(report)); - webResult.text((0, _stringify2.default)(plugDate)); - var patt = /home\/project\/inside\/test\/default\?/i; - if (isEnd == true && (globalVal.product.productType == 1 || globalVal.product.productType == 2) && !patt.test(globalVal.info.location.href)) { - $.ajax({ - url: location + apiUrl1, - method: 'POST', - contentType: 'application/x-www-form-urlencoded;charset=UTF-8', - data: { - companyHashKey: globalVal.info.hashArgs.companyHashKey, - projectHashKey: globalVal.info.hashArgs.projectHashKey, - result: (0, _stringify2.default)(report), - groupID: globalVal.info.hashArgs['grandSonGroupID'] != undefined ? globalVal.info.hashArgs['grandSonGroupID'] : globalVal.info.hashArgs['childGroupID'] != undefined ? globalVal.info.hashArgs['childGroupID'] : globalVal.info.hashArgs['groupID'] == undefined ? 0 : globalVal.info.hashArgs['groupID'] == -1 ? 0 : globalVal.info.hashArgs['groupID'] - - } - }).done(function (successData, textStatus, xhr) {}).fail(function (xhr, textStatus) { - console.log('添加历史记录失败'); - }); - } - } else { - report.time = (new Date() - data.time.init) / 1000 + 's'; - report.responseList = [backResult]; - report.status = 'tested'; - if (backResult.reportStatus == 'finish' || backResult.status == 'finish') { - report.successCase++; - } else { - report.errorCase++; - } - window.sessionStorage.setItem('plug-background-result', (0, _stringify2.default)(report)); - plugDate.status = 'tested'; - webResult.text((0, _stringify2.default)(plugDate)); - } - } - }; - globalVal.port.autoCode.onMessage.addListener(fun.callback); - globalVal.port.auto.onMessage.addListener(fun.callback); - } - } - } else { - fun.removeListener(fun.callback); - isBreak = true; - - report.time = (new Date() - data.time.init) / 1000 + 's'; - report.status = 'tested'; - window.sessionStorage.setItem('plug-background-result', (0, _stringify2.default)(report)); - globalVal.port.autoCode.postMessage({ - stopStatus: true - }); - globalVal.port.auto.postMessage({ - index: 0, - stopStatus: true - }); - } - }); - } - } - globalVal.fun.interval = setInterval(query, 500); - } - queryBtn(); - } - - function getFunctionDataList() { - var apiUrl = null; - var location = globalVal.info.location.origin + globalVal.info.location.pathname; - if (globalVal.product.productType != 1 && globalVal.product.productType != 2) return; - if (globalVal.product.productType == 1) { - - if (/\/share\/project\/test/i.test(globalVal.info.location.href) && globalVal.info.hashArgs.productType == 1) { - apiUrl = 'apiManagementPro/Share/getFunctionDataList'; - } else if (/\/automatic\/inside\/cenario/i.test(globalVal.info.location.href)) { - apiUrl = 'automatedTest/CommonFunction/getFunctionDataList'; - } else { - apiUrl = 'apiManagementPro/CommonFunction/getFunctionDataList'; - } - } else { - - location = globalVal.info.location.origin + globalVal.info.location.pathname.replace(/independent\/$/i, ''); - if (/\/share\/project\/test/i.test(globalVal.info.location.href)) { - apiUrl = 'index.php/apiManagementPro/Share/getFunctionDataList'; - } else { - apiUrl = 'index.php/apiManagementPro/CommonFunction/getFunctionDataList'; - } - } - var request = { - companyHashKey: globalVal.info.hashArgs.companyHashKey, - projectHashKey: globalVal.info.hashArgs.projectHashKey, - shareCode: globalVal.info.hashArgs.shareCode, - shareID: globalVal.info.hashArgs.shareID - }; - $.ajax({ - url: location + apiUrl, - method: 'POST', - contentType: 'application/x-www-form-urlencoded;charset=UTF-8', - data: request - }).done(function (successData, textStatus, xhr) { - try { - successData = JSON.parse(successData); - } catch (e) {} - if (successData.statusCode == '000000') { - try { - globalVal.info.commonFunList = JSON.parse(successData).functionList; - } catch (e) { - globalVal.info.commonFunList = successData.functionList; - } - } else { - globalVal.info.commonFunList = []; - } - }).fail(function (xhr, textStatus) {}); - } - InitState(); - window.onhashchange = InitState; -}); - -/***/ }), -/* 132 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var CONTENT_TOOLS = exports.CONTENT_TOOLS = { - getHashStringArgs: function getHashStringArgs() { - var hashStrings = [], - hashArgs = {}; - var items = [], - item = null, - name = null, - value = null, - i = 0, - len = 0; - hashStrings = window.location.hash; - if (hashStrings.indexOf('?') > -1) { - items = hashStrings.split("?"); - items = items[1].split("&"); - len = items.length; - for (i = 0; i < len; i++) { - item = items[i].split("="); - name = decodeURIComponent(item[0]); - value = decodeURIComponent(item[1]); - if (name.length > 0) { - hashArgs[name] = value; - } - } - } - return hashArgs; - }, - getVersison: function getVersison() { - var meta = false; - try { - meta = $('meta[name="version"]')[0].content; - } catch (e) { - - } - if (meta) { - - - - - return meta; - } else { - return false; - } - }, - judgePlatform: function judgePlatform() { - - var meta = false; - try { - meta = $('meta[name="product-type"]')[0].content; - } catch (e) { - - } - if (meta) { - - - - - return meta; - } else { - return false; - } - }, - getTime: function getTime() { - var data = { - fun: { - getTime: null - } - }; - data.fun.getTime = function () { - var template = { - info: { - date: new Date(), - time: { - year: null, - month: null, - day: null, - hour: null, - minute: null, - second: null - }, - string: null - } - }; - template.info.time.year = template.info.date.getFullYear(); - template.info.time.month = template.info.date.getMonth() + 1; - template.info.time.day = template.info.date.getDate(); - - template.info.time.hour = template.info.date.getHours(); - template.info.time.minute = template.info.date.getMinutes(); - template.info.time.second = template.info.date.getSeconds(); - - template.info.string = template.info.time.year + "-"; - - if (template.info.time.month < 10) template.info.string += "0"; - - template.info.string += template.info.time.month + "-"; - - if (template.info.time.day < 10) template.info.string += "0"; - - template.info.string += template.info.time.day + " "; - - if (template.info.time.hour < 10) template.info.string += "0"; - - template.info.string += template.info.time.hour + ":"; - if (template.info.time.minute < 10) template.info.string += '0'; - template.info.string += template.info.time.minute + ":"; - if (template.info.time.second < 10) template.info.string += '0'; - template.info.string += template.info.time.second; - return template.info.string; - }; - return data.fun.getTime(); - }, - judgeWhichTest: function judgeWhichTest(productType) { - - var version = CONTENT_TOOLS.getVersison(); - var nowUrl = window.location.href; - var patt1 = /(\/api\/test)|(\/quickTest)/i, - - patt2 = /\/api\/case/i, - - patt3 = /(\/test\/api)|(\/test\/admin\/api)|(\/cenario\/api)/i, - - patt4 = /(\/test\/mode\/advanced)|(\/test\/admin\/mode\/advanced)|(cenario\/mode\/advanced)/i, - - patt5 = /(\/test\/admin\/\?)|(\/inside\/test\/default\?)|(\/automatic\/inside\/cenario\/\?)/i, - - patt6 = /(\/test\/admin\/mode\/env)|(cenario\/mode\/env)/i, - - patt7 = /\/share\/project\/test/i; - var status1 = patt1.test(nowUrl), - status2 = patt2.test(nowUrl), - status3 = patt3.test(nowUrl), - status4 = patt4.test(nowUrl), - status5 = patt5.test(nowUrl), - status6 = patt6.test(nowUrl), - status7 = patt7.test(nowUrl); - if (status1) { - return 'normal'; - } else if (status2) { - return 'case'; - } else if (status3) { - return 'auto'; - } else if (status4) { - return 'autoCode'; - } else if (status5) { - return 'autoBatch'; - } else if (status6) { - return 'envCase'; - } else if (status7) { - return 'share'; - } - } -}; - -/***/ }) -/******/ ]); \ No newline at end of file diff --git a/eo-chrome-extension-4.0.1/js/bundle/test.min.js b/eo-chrome-extension-4.0.1/js/bundle/test.min.js deleted file mode 100644 index 8260b96..0000000 --- a/eo-chrome-extension-4.0.1/js/bundle/test.min.js +++ /dev/null @@ -1,9250 +0,0 @@ -/******/ (function(modules) { -/******/ -/******/ var installedModules = {}; -/******/ -/******/ -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ -/******/ module.l = true; -/******/ -/******/ -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ -/******/ __webpack_require__.m = modules; -/******/ -/******/ -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { -/******/ configurable: false, -/******/ enumerable: true, -/******/ get: getter -/******/ }); -/******/ } -/******/ }; -/******/ -/******/ -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ -/******/ __webpack_require__.p = ""; -/******/ -/******/ -/******/ return __webpack_require__(__webpack_require__.s = 120); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports) { - -var core = module.exports = { version: '2.5.7' }; -if (typeof __e == 'number') __e = core; - - -/***/ }), -/* 1 */ -/***/ (function(module, exports) { - - -var global = module.exports = typeof window != 'undefined' && window.Math == Math - ? window : typeof self != 'undefined' && self.Math == Math ? self - - : Function('return this')(); -if (typeof __g == 'number') __g = global; - - -/***/ }), -/* 2 */ -/***/ (function(module, exports, __webpack_require__) { - -var store = __webpack_require__(35)('wks'); -var uid = __webpack_require__(24); -var Symbol = __webpack_require__(1).Symbol; -var USE_SYMBOL = typeof Symbol == 'function'; - -var $exports = module.exports = function (name) { - return store[name] || (store[name] = - USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); -}; - -$exports.store = store; - - -/***/ }), -/* 3 */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(5); -module.exports = function (it) { - if (!isObject(it)) throw TypeError(it + ' is not an object!'); - return it; -}; - - -/***/ }), -/* 4 */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(1); -var core = __webpack_require__(0); -var ctx = __webpack_require__(21); -var hide = __webpack_require__(7); -var has = __webpack_require__(10); -var PROTOTYPE = 'prototype'; - -var $export = function (type, name, source) { - var IS_FORCED = type & $export.F; - var IS_GLOBAL = type & $export.G; - var IS_STATIC = type & $export.S; - var IS_PROTO = type & $export.P; - var IS_BIND = type & $export.B; - var IS_WRAP = type & $export.W; - var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); - var expProto = exports[PROTOTYPE]; - var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]; - var key, own, out; - if (IS_GLOBAL) source = name; - for (key in source) { - - own = !IS_FORCED && target && target[key] !== undefined; - if (own && has(exports, key)) continue; - - out = own ? target[key] : source[key]; - - exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] - - : IS_BIND && own ? ctx(out, global) - - : IS_WRAP && target[key] == out ? (function (C) { - var F = function (a, b, c) { - if (this instanceof C) { - switch (arguments.length) { - case 0: return new C(); - case 1: return new C(a); - case 2: return new C(a, b); - } return new C(a, b, c); - } return C.apply(this, arguments); - }; - F[PROTOTYPE] = C[PROTOTYPE]; - return F; - - })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - - if (IS_PROTO) { - (exports.virtual || (exports.virtual = {}))[key] = out; - - if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out); - } - } -}; - -$export.F = 1; -$export.G = 2; -$export.S = 4; -$export.P = 8; -$export.B = 16; -$export.W = 32; -$export.U = 64; -$export.R = 128; -module.exports = $export; - - -/***/ }), -/* 5 */ -/***/ (function(module, exports) { - -module.exports = function (it) { - return typeof it === 'object' ? it !== null : typeof it === 'function'; -}; - - -/***/ }), -/* 6 */ -/***/ (function(module, exports, __webpack_require__) { - - -var IObject = __webpack_require__(46); -var defined = __webpack_require__(30); -module.exports = function (it) { - return IObject(defined(it)); -}; - - -/***/ }), -/* 7 */ -/***/ (function(module, exports, __webpack_require__) { - -var dP = __webpack_require__(8); -var createDesc = __webpack_require__(23); -module.exports = __webpack_require__(9) ? function (object, key, value) { - return dP.f(object, key, createDesc(1, value)); -} : function (object, key, value) { - object[key] = value; - return object; -}; - - -/***/ }), -/* 8 */ -/***/ (function(module, exports, __webpack_require__) { - -var anObject = __webpack_require__(3); -var IE8_DOM_DEFINE = __webpack_require__(48); -var toPrimitive = __webpack_require__(32); -var dP = Object.defineProperty; - -exports.f = __webpack_require__(9) ? Object.defineProperty : function defineProperty(O, P, Attributes) { - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if (IE8_DOM_DEFINE) try { - return dP(O, P, Attributes); - } catch (e) { /* empty */ } - if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); - if ('value' in Attributes) O[P] = Attributes.value; - return O; -}; - - -/***/ }), -/* 9 */ -/***/ (function(module, exports, __webpack_require__) { - - -module.exports = !__webpack_require__(12)(function () { - return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; -}); - - -/***/ }), -/* 10 */ -/***/ (function(module, exports) { - -var hasOwnProperty = {}.hasOwnProperty; -module.exports = function (it, key) { - return hasOwnProperty.call(it, key); -}; - - -/***/ }), -/* 11 */ -/***/ (function(module, exports) { - -module.exports = {}; - - -/***/ }), -/* 12 */ -/***/ (function(module, exports) { - -module.exports = function (exec) { - try { - return !!exec(); - } catch (e) { - return true; - } -}; - - -/***/ }), -/* 13 */ -/***/ (function(module, exports, __webpack_require__) { - - -var $keys = __webpack_require__(51); -var enumBugKeys = __webpack_require__(36); - -module.exports = Object.keys || function keys(O) { - return $keys(O, enumBugKeys); -}; - - -/***/ }), -/* 14 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(66), __esModule: true }; - -/***/ }), -/* 15 */ -/***/ (function(module, exports) { - -var toString = {}.toString; - -module.exports = function (it) { - return toString.call(it).slice(8, -1); -}; - - -/***/ }), -/* 16 */ -/***/ (function(module, exports) { - -module.exports = true; - - -/***/ }), -/* 17 */ -/***/ (function(module, exports) { - -exports.f = {}.propertyIsEnumerable; - - -/***/ }), -/* 18 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(85), __esModule: true }; - -/***/ }), -/* 19 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.COMMON_FILE = exports.COMMON_TOOLS = undefined; - -var _getIterator2 = __webpack_require__(14); - -var _getIterator3 = _interopRequireDefault(_getIterator2); - -var _slicedToArray2 = __webpack_require__(27); - -var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); - -var _entries = __webpack_require__(28); - -var _entries2 = _interopRequireDefault(_entries); - -var _stringify = __webpack_require__(18); - -var _stringify2 = _interopRequireDefault(_stringify); - -var _typeof2 = __webpack_require__(29); - -var _typeof3 = _interopRequireDefault(_typeof2); - -var _requestUtils = __webpack_require__(42); - -var _constant = __webpack_require__(97); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - - -function getFile(fileName, fileUrl) { - var oReq = new XMLHttpRequest(); - var blob = new Blob(); - oReq.open("get", fileUrl, true); - oReq.onload = reqListener; - oReq.responseType = "blob"; - oReq.send(); - - function reqListener() { - blob = this.response; - var fileArray = { - png: { - name: 'img_png.png' - }, - jpg: { - name: 'img_jpg.jpg' - }, - gif: { - name: 'img_gif.gif' - }, - txt: { - name: 'file_txt.txt' - }, - pdf: { - name: 'pdf.pdf' - }, - doc: { - name: 'doc.doc' - }, - docx: { - name: 'docx.docx' - }, - none: { - name: 'file_none' - } - }; - blob.name = fileArray[fileName].name; - COMMON_FILE[fileName] = blob; - return blob; - } -} - -var COMMON_TOOLS = exports.COMMON_TOOLS = { - replaceAll: function replaceAll(origin, replace, string) { - if ((typeof string === 'undefined' ? 'undefined' : (0, _typeof3.default)(string)) == 'object') { - string = (0, _stringify2.default)(string); - while ((string || '').toString().indexOf(origin) != -1) { - string = string.replace(origin, replace); - } - string = JSON.parse(string); - } else { - while ((string || '').toString().indexOf(origin) != -1) { - string = string.replace(origin, replace); - } - } - return string; - }, - judgeRequestMethod: function judgeRequestMethod(methodId) { - var method = "POST"; - switch (methodId.toString()) { - case '1': - method = "GET"; - break; - case '2': - method = "PUT"; - break; - case '3': - method = "DELETE"; - break; - case '4': - method = "HEAD"; - break; - case '5': - method = "OPTIONS"; - break; - case '6': - method = "PATCH"; - break; - default: - method = "POST"; - } - return method; - }, - handleEnv: function handleEnv(env, url, headers, params, raw, requestType, flagFile, flagFormDataToJson) { - if (!$.isEmptyObject(env)) { - - var envHeaders = env.headers; - var headerExist = false; - var statusController = { - type: 'success', - errorReason: '' - }; - var key = Object.key, - value = Object.value, - entries = _entries2.default; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = (0, _getIterator3.default)(entries(envHeaders)), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var _ref = _step.value; - - var _ref2 = (0, _slicedToArray3.default)(_ref, 2); - - var _key = _ref2[0]; - var _value = _ref2[1]; - - headerExist = false; - var _iteratorNormalCompletion10 = true; - var _didIteratorError10 = false; - var _iteratorError10 = undefined; - - try { - for (var _iterator10 = (0, _getIterator3.default)(entries(headers)), _step10; !(_iteratorNormalCompletion10 = (_step10 = _iterator10.next()).done); _iteratorNormalCompletion10 = true) { - var _ref19 = _step10.value; - - var _ref20 = (0, _slicedToArray3.default)(_ref19, 2); - - var _key9 = _ref20[0]; - var _value9 = _ref20[1]; - - - if (_key.toLowerCase() == _key9.toLowerCase()) { - headerExist = true; - } - } - } catch (err) { - _didIteratorError10 = true; - _iteratorError10 = err; - } finally { - try { - if (!_iteratorNormalCompletion10 && _iterator10.return) { - _iterator10.return(); - } - } finally { - if (_didIteratorError10) { - throw _iteratorError10; - } - } - } - - if (headerExist == false) { - headers[_key] = _value; - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - var envParams = env.extraParams; - - if ((requestType == '0' || requestType == '2') && (typeof params === 'undefined' ? 'undefined' : (0, _typeof3.default)(params)) == 'object') { - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = (0, _getIterator3.default)(entries(envParams)), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var _ref3 = _step2.value; - - var _ref4 = (0, _slicedToArray3.default)(_ref3, 2); - - var _key2 = _ref4[0]; - var _value2 = _ref4[1]; - - if (!(_key2 in params)) { - if (/^#/.test(_value2)) { - try { - _value2 = JSON.parse(_value2.substring(1)); - } catch (e) { - _value2 = _value2; - } - } - params[_key2] = _value2; - } - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2.return) { - _iterator2.return(); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - } - - - var _iteratorNormalCompletion3 = true; - var _didIteratorError3 = false; - var _iteratorError3 = undefined; - - try { - for (var _iterator3 = (0, _getIterator3.default)(entries(env.globalParams)), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { - var _ref5 = _step3.value; - - var _ref6 = (0, _slicedToArray3.default)(_ref5, 2); - - var _key3 = _ref6[0]; - var _value3 = _ref6[1]; - - for (var _childKey in headers) { - headers[COMMON_TOOLS.replaceAll('{{' + _key3 + '}}', _value3, _childKey)] = COMMON_TOOLS.replaceAll('{{' + _key3 + '}}', _value3, headers[_childKey]); - if ('{{' + _key3 + '}}' == _childKey) { - delete headers[_childKey]; - } - } - url = COMMON_TOOLS.replaceAll('{{' + _key3 + '}}', _value3, url); - } - } catch (err) { - _didIteratorError3 = true; - _iteratorError3 = err; - } finally { - try { - if (!_iteratorNormalCompletion3 && _iterator3.return) { - _iterator3.return(); - } - } finally { - if (_didIteratorError3) { - throw _iteratorError3; - } - } - } - - var midheaders = (0, _stringify2.default)(headers).toLowerCase(); - midheaders = JSON.parse(midheaders); - if (env.envAuth) { - switch (Number(env.envAuth.status)) { - case 1: - { - if (midheaders["authorization"]) break; - var str = env.envAuth.basicAuth.username + ':' + env.envAuth.basicAuth.password; - headers['Authorization'] = 'Basic ' + CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(str)); - break; - } - case 2: - { - var token = COMMON_TOOLS.jwtEncode(env.envAuth.jwtAuth); - if (token.type == 'error') { - statusController = token; - } - if (env.envAuth.jwtAuth.position == 'header') { - if (midheaders["authorization"]) break; - headers[env.envAuth.jwtAuth.tokenName || ""] = token; - } else { - var query = {}; - query[env.envAuth.jwtAuth.tokenName] = token; - url = _requestUtils.HANDLE_URL.jointQuery(url, query); - } - } - } - } - - if (requestType == '1') { - - var _iteratorNormalCompletion4 = true; - var _didIteratorError4 = false; - var _iteratorError4 = undefined; - - try { - for (var _iterator4 = (0, _getIterator3.default)(entries(env.globalParams)), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { - var _ref7 = _step4.value; - - var _ref8 = (0, _slicedToArray3.default)(_ref7, 2); - - var _key4 = _ref8[0]; - var _value4 = _ref8[1]; - - var regRaw = new RegExp('{{' + _key4 + '}}', "gm"); - raw = raw.toString().replace(regRaw, _value4); - } - } catch (err) { - _didIteratorError4 = true; - _iteratorError4 = err; - } finally { - try { - if (!_iteratorNormalCompletion4 && _iterator4.return) { - _iterator4.return(); - } - } finally { - if (_didIteratorError4) { - throw _iteratorError4; - } - } - } - } else { - if (typeof params == 'string') { - var _iteratorNormalCompletion5 = true; - var _didIteratorError5 = false; - var _iteratorError5 = undefined; - - try { - for (var _iterator5 = (0, _getIterator3.default)(entries(env.globalParams)), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) { - var _ref9 = _step5.value; - - var _ref10 = (0, _slicedToArray3.default)(_ref9, 2); - - var _key5 = _ref10[0]; - var _value5 = _ref10[1]; - - var regRaw = new RegExp('{{' + _key5 + '}}', "gm"); - params = params.toString().replace(regRaw, _value5); - } - } catch (err) { - _didIteratorError5 = true; - _iteratorError5 = err; - } finally { - try { - if (!_iteratorNormalCompletion5 && _iterator5.return) { - _iterator5.return(); - } - } finally { - if (_didIteratorError5) { - throw _iteratorError5; - } - } - } - } else if (typeof params == 'number') { - params = params.toString(); - var _iteratorNormalCompletion6 = true; - var _didIteratorError6 = false; - var _iteratorError6 = undefined; - - try { - for (var _iterator6 = (0, _getIterator3.default)(entries(env.globalParams)), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) { - var _ref11 = _step6.value; - - var _ref12 = (0, _slicedToArray3.default)(_ref11, 2); - - var _key6 = _ref12[0]; - var _value6 = _ref12[1]; - - var regRaw = new RegExp('{{' + _key6 + '}}', "gm"); - params = params.toString().replace(regRaw, _value6); - } - } catch (err) { - _didIteratorError6 = true; - _iteratorError6 = err; - } finally { - try { - if (!_iteratorNormalCompletion6 && _iterator6.return) { - _iterator6.return(); - } - } finally { - if (_didIteratorError6) { - throw _iteratorError6; - } - } - } - } else { - if (flagFile == true && requestType == '0') { - - var _iteratorNormalCompletion7 = true; - var _didIteratorError7 = false; - var _iteratorError7 = undefined; - - try { - for (var _iterator7 = (0, _getIterator3.default)(entries(env.globalParams)), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) { - var _ref13 = _step7.value; - - var _ref14 = (0, _slicedToArray3.default)(_ref13, 2); - - var _key7 = _ref14[0]; - var _value7 = _ref14[1]; - - var regParams = new RegExp('{{' + _key7 + '}}', "gm"); - var _iteratorNormalCompletion8 = true; - var _didIteratorError8 = false; - var _iteratorError8 = undefined; - - try { - for (var _iterator8 = (0, _getIterator3.default)(entries(params)), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) { - var _ref15 = _step8.value; - - var _ref16 = (0, _slicedToArray3.default)(_ref15, 2); - - var key1 = _ref16[0]; - var value1 = _ref16[1]; - - if (typeof value1 == 'string') { - params[key1.replace(regParams, _value7)] = value1.replace(regParams, _value7); - } - if (key1 != key1.replace(regParams, _value7)) { - params[key1.replace(regParams, _value7)] = value1.replace(regParams, _value7); - delete params[key1]; - } - } - } catch (err) { - _didIteratorError8 = true; - _iteratorError8 = err; - } finally { - try { - if (!_iteratorNormalCompletion8 && _iterator8.return) { - _iterator8.return(); - } - } finally { - if (_didIteratorError8) { - throw _iteratorError8; - } - } - } - } - } catch (err) { - _didIteratorError7 = true; - _iteratorError7 = err; - } finally { - try { - if (!_iteratorNormalCompletion7 && _iterator7.return) { - _iterator7.return(); - } - } finally { - if (_didIteratorError7) { - throw _iteratorError7; - } - } - } - } else { - var _iteratorNormalCompletion9 = true; - var _didIteratorError9 = false; - var _iteratorError9 = undefined; - - try { - for (var _iterator9 = (0, _getIterator3.default)(entries(env.globalParams)), _step9; !(_iteratorNormalCompletion9 = (_step9 = _iterator9.next()).done); _iteratorNormalCompletion9 = true) { - var _ref17 = _step9.value; - - var _ref18 = (0, _slicedToArray3.default)(_ref17, 2); - - var _key8 = _ref18[0]; - var _value8 = _ref18[1]; - - for (var childKey in params) { - var afterKey = COMMON_TOOLS.replaceAll('{{' + _key8 + '}}', _value8, childKey); - params[afterKey] = COMMON_TOOLS.replaceAll('{{' + _key8 + '}}', _value8, params[childKey]); - if (afterKey != childKey) { - delete params[childKey]; - } - } - } - } catch (err) { - _didIteratorError9 = true; - _iteratorError9 = err; - } finally { - try { - if (!_iteratorNormalCompletion9 && _iterator9.return) { - _iterator9.return(); - } - } finally { - if (_didIteratorError9) { - throw _iteratorError9; - } - } - } - } - } - } - var urlPatt = new RegExp('^(((http|ftp|https):\/\/)|)(([\\\w\\\-_]+([\\\w\\\-\\\.]*)?(\\\.(' + _constant.CONSTANT.DOMAIN.join('|') + ')))|((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(localhost))((\\\/)|(\\\?)|(:)|($))'); - - if (env.baseUrl) { - if (!urlPatt.test(url)) { - url = env.baseUrl + url; - } - } - } - return { - type: statusController.type, - errorReason: statusController.errorReason, - url: url, - headers: headers, - params: params, - raw: raw - }; - }, - selfLoopMatchJson: function selfLoopMatchJson(arrMatchList, response) { - if (response === null || Object.prototype.toString.call(response).toLowerCase() == "[object array]" || (typeof response === 'undefined' ? 'undefined' : (0, _typeof3.default)(response)) == "object" && Object.prototype.toString.call(response).toLowerCase() == "[object object]") { - - if (arrMatchList.length == 0 || !arrMatchList[0].paramKey || arrMatchList == null) { - return { - isMatch: true, - errorReason: '' - }; - } else { - var isNum = function isNum(s) { - if (s != null && s !== "") { - return !isNaN(s); - } - return false; - }; - - var loopFun = function loopFun(arrMatchList, response) { - var isMatch = true; - var errorReason = ''; - for (var i = 0; i < arrMatchList.length; i++) { - var arrMatch = arrMatchList[i]; - arrMatch.paramInfo = arrMatch.paramInfo || ''; - if (!arrMatch.paramKey) break; - - var regular = arrMatch.matchRule; - var json2, json1; - if (response) { - json1 = response[arrMatch.paramKey]; - } else { - json1 = undefined; - } - if (arrMatch.paramType && arrMatch.paramInfo.indexOf('#') != 0) { - switch (Number(arrMatch.paramType)) { - case 0: - { - - break; - } - case 4: - { - arrMatch.paramInfo = []; - break; - } - default: - { - arrMatch.paramInfo = '#' + arrMatch.paramInfo; - } - } - } - if (/^#/.test(arrMatch.paramInfo)) { - try { - json2 = JSON.parse(arrMatch.paramInfo.substring(1)); - } catch (e) { - json2 = arrMatch.paramInfo; - if (json2.slice(1, 10) == 'undefined') { - json2 = undefined; - } - } - } else { - json2 = arrMatch.paramInfo; - } - if (regular != 0) { - if (regular == 1) { - - if ((typeof json2 === 'undefined' ? 'undefined' : (0, _typeof3.default)(json2)) == 'object' && json2 != null && json1 != null) { - json1 = (0, _stringify2.default)(json1); - json2 = (0, _stringify2.default)(json2); - } - if (json1 === json2) {} else { - isMatch = false; - errorReason = '字段' + arrMatch.paramKey + '结果不匹配,匹配规则为:等于' + (0, _stringify2.default)(json2) + ',实际返回' + (0, _stringify2.default)(json1); - } - } else if (regular == 2) { - - if ((typeof json2 === 'undefined' ? 'undefined' : (0, _typeof3.default)(json2)) == 'object' && json2 != null && json1 != null) { - json1 = (0, _stringify2.default)(json1); - json2 = (0, _stringify2.default)(json2); - } - if (json1 !== json2) {} else { - isMatch = false; - errorReason = '字段' + arrMatch.paramKey + '结果不匹配,匹配规则为:不等于' + (0, _stringify2.default)(json2) + ',实际返回' + (0, _stringify2.default)(json1); - } - } else if (regular == 3) { - - - if (isNum(json1) && isNum(json2)) { - if (json1 > json2) {} else { - isMatch = false; - } - } else if (!isNum(json1) && !isNum(json2)) { - if ((0, _stringify2.default)(json1) > (0, _stringify2.default)(json2)) {} else { - isMatch = false; - } - } else { - isMatch = false; - } - if (isMatch == false) { - errorReason = '字段' + arrMatch.paramKey + '结果不匹配,匹配规则为:大于' + json2 + ',实际返回' + (0, _stringify2.default)(json1); - } - } else if (regular == 4) { - - if (isNum(json1) && isNum(json2)) { - if (json1 < json2) {} else { - isMatch = false; - } - } else if (!isNum(json1) && !isNum(json2)) { - if ((0, _stringify2.default)(json1) < (0, _stringify2.default)(json2)) {} else { - isMatch = false; - } - } else { - isMatch = false; - } - if (isMatch == false) { - errorReason = '字段' + arrMatch.paramKey + '结果不匹配,匹配规则为:小于' + json2 + '实际返回' + (0, _stringify2.default)(json1); - } - } else if (regular == 5) { - - try { - var patt = new RegExp(json2); - if (!patt.test(json1)) { - isMatch = false; - errorReason = '字段' + arrMatch.paramKey + '结果不匹配,匹配规则为:Reg=' + (0, _stringify2.default)(json2) + ',实际返回' + (0, _stringify2.default)(json1); - } - } catch (e) { - isMatch = false; - errorReason = '字段' + arrMatch.paramKey + '正则匹配失败,请检查您填写的正则表达式'; - } - } - } - if (isMatch == false) { - return { - isMatch: isMatch, - errorReason: errorReason - }; - } - if (arrMatch.childList.length > 0) { - var result = {}; - var data = {}; - if (Object.prototype.toString.call(arrMatch.paramInfo) == '[object Array]') { - data = response[arrMatch.paramKey][0]; - } else if (arrMatch.paramInfo.indexOf('#array') == 0) { - var _patt = /#array\[(.*?)\]/; - var num = 0; - if (_patt.exec(arrMatch.paramInfo) && _patt.exec(arrMatch.paramInfo)[1]) { - num = _patt.exec(arrMatch.paramInfo)[1]; - } - if (response && response[arrMatch.paramKey]) { - data = response[arrMatch.paramKey][num]; - } else { - data = undefined; - } - } else { - if (response) { - data = response[arrMatch.paramKey]; - } else { - data = undefined; - } - } - result = loopFun(arrMatch.childList, data); - if (result.isMatch == false) return result; - } - } - return { - isMatch: true, - errorReason: '' - }; - }; - return loopFun(arrMatchList, response); - } - } else { - return { - isMatch: false, - errorReason: '返回信息并非json格式的对象' - }; - } - - }, - handleTime: function handleTime(testTime) { - var Y, M, D, h, m, s; - Y = testTime.getFullYear() + '-'; - M = (testTime.getMonth() + 1 < 10 ? '0' + (testTime.getMonth() + 1) : testTime.getMonth() + 1) + '-'; - D = testTime.getDate() + ' '; - h = testTime.getHours() + ':'; - m = testTime.getMinutes() + ':'; - s = testTime.getSeconds(); - testTime = Y + M + D + h + m + s; - return testTime; - }, - - sortArray: function sortArray(item1, item2) { - if (item1.key > item2.key) return 1;else if (item1.key === item2.key) return 0;else return -1; - }, - abortAll: function abortAll(ajaxs) { - $.each(ajaxs, function (i, ajax) { - ajax.abort(); - }); - }, - base64url: function base64url(str) { - var encodedSource = CryptoJS.enc.Base64.stringify(str); - var reg = new RegExp('/', 'g'); - encodedSource = encodedSource.replace(/=+$/, '').replace(/\+/g, '-').replace(reg, '_'); - return encodedSource; - }, - jwtEncode: function jwtEncode(jwtAuth) { - - if (!(jwtAuth.alg in _constant.CONSTANT.JWT_METHOD)) return { - type: 'error', - errorReason: "浏览器插件测试暂不支持加密方式: " + jwtAuth.alg + ",请使用专业版在线测试" - }; - var header = (0, _stringify2.default)({ - alg: jwtAuth.alg, - typ: jwtAuth.typ || "JWT" - }); - var payload = ''; - try { - payload = (0, _stringify2.default)(JSON.parse(jwtAuth.payload)); - } catch (e) { - payload = '{}'; - } - var secretSalt = jwtAuth.secretSalt; - var before_sign = COMMON_TOOLS.base64url(CryptoJS.enc.Utf8.parse(header)) + '.' + COMMON_TOOLS.base64url(CryptoJS.enc.Utf8.parse(payload)); - var signature = CryptoJS[_constant.CONSTANT.JWT_METHOD[jwtAuth.alg]](before_sign, secretSalt); - signature = COMMON_TOOLS.base64url(signature); - var result = before_sign + '.' + signature; - return result; - } -}; - -var COMMON_FILE = exports.COMMON_FILE = { - getAllFile: function getAllFile() { - getFile('txt', window.location.origin + '/files/test_files/file_txt.txt'); - getFile('none', window.location.origin + '/files/test_files/file_none'); - getFile('jpg', window.location.origin + '/files/test_imgs/img_jpg.jpg'); - getFile('png', window.location.origin + '/files/test_imgs/img_png.png'); - getFile('gif', window.location.origin + '/files/test_imgs/img_gif.gif'); - getFile('pdf', window.location.origin + '/files/test_files/pdf.pdf'); - getFile('docx', window.location.origin + '/files/test_files/docx.docx'); - getFile('doc', window.location.origin + '/files/test_files/doc.doc'); - } -}; - -/***/ }), -/* 20 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(67); -var global = __webpack_require__(1); -var hide = __webpack_require__(7); -var Iterators = __webpack_require__(11); -var TO_STRING_TAG = __webpack_require__(2)('toStringTag'); - -var DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' + - 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' + - 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' + - 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' + - 'TextTrackList,TouchList').split(','); - -for (var i = 0; i < DOMIterables.length; i++) { - var NAME = DOMIterables[i]; - var Collection = global[NAME]; - var proto = Collection && Collection.prototype; - if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); - Iterators[NAME] = Iterators.Array; -} - - -/***/ }), -/* 21 */ -/***/ (function(module, exports, __webpack_require__) { - - -var aFunction = __webpack_require__(22); -module.exports = function (fn, that, length) { - aFunction(fn); - if (that === undefined) return fn; - switch (length) { - case 1: return function (a) { - return fn.call(that, a); - }; - case 2: return function (a, b) { - return fn.call(that, a, b); - }; - case 3: return function (a, b, c) { - return fn.call(that, a, b, c); - }; - } - return function (/* ...args */) { - return fn.apply(that, arguments); - }; -}; - - -/***/ }), -/* 22 */ -/***/ (function(module, exports) { - -module.exports = function (it) { - if (typeof it != 'function') throw TypeError(it + ' is not a function!'); - return it; -}; - - -/***/ }), -/* 23 */ -/***/ (function(module, exports) { - -module.exports = function (bitmap, value) { - return { - enumerable: !(bitmap & 1), - configurable: !(bitmap & 2), - writable: !(bitmap & 4), - value: value - }; -}; - - -/***/ }), -/* 24 */ -/***/ (function(module, exports) { - -var id = 0; -var px = Math.random(); -module.exports = function (key) { - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); -}; - - -/***/ }), -/* 25 */ -/***/ (function(module, exports, __webpack_require__) { - -var def = __webpack_require__(8).f; -var has = __webpack_require__(10); -var TAG = __webpack_require__(2)('toStringTag'); - -module.exports = function (it, tag, stat) { - if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag }); -}; - - -/***/ }), -/* 26 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var $at = __webpack_require__(75)(true); - - -__webpack_require__(47)(String, 'String', function (iterated) { - this._t = String(iterated); - this._i = 0; - -}, function () { - var O = this._t; - var index = this._i; - var point; - if (index >= O.length) return { value: undefined, done: true }; - point = $at(O, index); - this._i += point.length; - return { value: point, done: false }; -}); - - -/***/ }), -/* 27 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _isIterable2 = __webpack_require__(77); - -var _isIterable3 = _interopRequireDefault(_isIterable2); - -var _getIterator2 = __webpack_require__(14); - -var _getIterator3 = _interopRequireDefault(_getIterator2); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function () { - function sliceIterator(arr, i) { - var _arr = []; - var _n = true; - var _d = false; - var _e = undefined; - - try { - for (var _i = (0, _getIterator3.default)(arr), _s; !(_n = (_s = _i.next()).done); _n = true) { - _arr.push(_s.value); - - if (i && _arr.length === i) break; - } - } catch (err) { - _d = true; - _e = err; - } finally { - try { - if (!_n && _i["return"]) _i["return"](); - } finally { - if (_d) throw _e; - } - } - - return _arr; - } - - return function (arr, i) { - if (Array.isArray(arr)) { - return arr; - } else if ((0, _isIterable3.default)(Object(arr))) { - return sliceIterator(arr, i); - } else { - throw new TypeError("Invalid attempt to destructure non-iterable instance"); - } - }; -}(); - -/***/ }), -/* 28 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(80), __esModule: true }; - -/***/ }), -/* 29 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _iterator = __webpack_require__(86); - -var _iterator2 = _interopRequireDefault(_iterator); - -var _symbol = __webpack_require__(88); - -var _symbol2 = _interopRequireDefault(_symbol); - -var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj; }; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) { - return typeof obj === "undefined" ? "undefined" : _typeof(obj); -} : function (obj) { - return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj); -}; - -/***/ }), -/* 30 */ -/***/ (function(module, exports) { - - -module.exports = function (it) { - if (it == undefined) throw TypeError("Can't call method on " + it); - return it; -}; - - -/***/ }), -/* 31 */ -/***/ (function(module, exports, __webpack_require__) { - -var isObject = __webpack_require__(5); -var document = __webpack_require__(1).document; - -var is = isObject(document) && isObject(document.createElement); -module.exports = function (it) { - return is ? document.createElement(it) : {}; -}; - - -/***/ }), -/* 32 */ -/***/ (function(module, exports, __webpack_require__) { - - -var isObject = __webpack_require__(5); - - -module.exports = function (it, S) { - if (!isObject(it)) return it; - var fn, val; - if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; - if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - throw TypeError("Can't convert object to primitive value"); -}; - - -/***/ }), -/* 33 */ -/***/ (function(module, exports) { - - -var ceil = Math.ceil; -var floor = Math.floor; -module.exports = function (it) { - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); -}; - - -/***/ }), -/* 34 */ -/***/ (function(module, exports, __webpack_require__) { - -var shared = __webpack_require__(35)('keys'); -var uid = __webpack_require__(24); -module.exports = function (key) { - return shared[key] || (shared[key] = uid(key)); -}; - - -/***/ }), -/* 35 */ -/***/ (function(module, exports, __webpack_require__) { - -var core = __webpack_require__(0); -var global = __webpack_require__(1); -var SHARED = '__core-js_shared__'; -var store = global[SHARED] || (global[SHARED] = {}); - -(module.exports = function (key, value) { - return store[key] || (store[key] = value !== undefined ? value : {}); -})('versions', []).push({ - version: core.version, - mode: __webpack_require__(16) ? 'pure' : 'global', - copyright: '© 2018 Denis Pushkarev (zloirock.ru)' -}); - - -/***/ }), -/* 36 */ -/***/ (function(module, exports) { - - -module.exports = ( - 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' -).split(','); - - -/***/ }), -/* 37 */ -/***/ (function(module, exports, __webpack_require__) { - - -var cof = __webpack_require__(15); -var TAG = __webpack_require__(2)('toStringTag'); - -var ARG = cof(function () { return arguments; }()) == 'Arguments'; - - -var tryGet = function (it, key) { - try { - return it[key]; - } catch (e) { /* empty */ } -}; - -module.exports = function (it) { - var O, T, B; - return it === undefined ? 'Undefined' : it === null ? 'Null' - - : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T - - : ARG ? cof(O) - - : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; -}; - - -/***/ }), -/* 38 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(82), __esModule: true }; - -/***/ }), -/* 39 */ -/***/ (function(module, exports) { - -exports.f = Object.getOwnPropertySymbols; - - -/***/ }), -/* 40 */ -/***/ (function(module, exports, __webpack_require__) { - -exports.f = __webpack_require__(2); - - -/***/ }), -/* 41 */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(1); -var core = __webpack_require__(0); -var LIBRARY = __webpack_require__(16); -var wksExt = __webpack_require__(40); -var defineProperty = __webpack_require__(8).f; -module.exports = function (name) { - var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); - if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) }); -}; - - -/***/ }), -/* 42 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.HANDLE_PARAMS = exports.HANDLE_URL = undefined; - -var _getIterator2 = __webpack_require__(14); - -var _getIterator3 = _interopRequireDefault(_getIterator2); - -var _slicedToArray2 = __webpack_require__(27); - -var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); - -var _entries2 = __webpack_require__(28); - -var _entries3 = _interopRequireDefault(_entries2); - -var _stringify = __webpack_require__(18); - -var _stringify2 = _interopRequireDefault(_stringify); - -var _typeof2 = __webpack_require__(29); - -var _typeof3 = _interopRequireDefault(_typeof2); - -var _commonUtils = __webpack_require__(19); - -var _constants = __webpack_require__(57); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -"use strict"; - -var rawFormData = ''; -var transformJson = function transformJson() { - var data = { - fun: { - main: null, - loop: null, - typeof: null - }, - _bigNums: [] - }; - data.fun.typeof = function (object) { - var tf = typeof object === 'undefined' ? 'undefined' : (0, _typeof3.default)(object), - ts = Object.prototype.toString.call(object); - return null === object ? 'Null' : 'undefined' == tf ? 'Undefined' : 'boolean' == tf ? 'Boolean' : 'number' == tf ? 'Number' : 'string' == tf ? 'String' : '[object Function]' == ts ? 'Function' : '[object Array]' == ts ? 'Array' : '[object Date]' == ts ? 'Date' : 'Object'; - }; - data.fun.loop = function (arg) { - var template = { - item: [], - loop: { - array: { - item: arg.array.item.slice(1, arg.array.item.length) - }, - parent: { - name: arg.parent.name, - object: arg.parent.object - }, - key: arg.key - } - }; - if (arg.array.item.length > 0) { - template.item = JSON.parse((0, _stringify2.default)(arg.array.item)); - template.item.splice(0, 1); - if (arg.array.item[0] == arg.parent.name && arg.array.item.length <= 2) { - if (data.fun.typeof(template.loop.parent.object[arg.array.item[0]]) == 'Array') { - var length = template.loop.parent.object[arg.array.item[0]].length >= 1 ? template.loop.parent.object[arg.array.item[0]].length - 1 : 0; - if (data.fun.typeof(template.loop.parent.object[arg.array.item[0]][length]) == 'Undefined') { - template.loop.parent.object[arg.array.item[0]][length] = {}; - } else if (data.fun.typeof(template.loop.parent.object[arg.array.item[0]][length]) != 'Object') { - length++; - template.loop.parent.object[arg.array.item[0]][length] = {}; - } - template.loop.parent.object[arg.array.item[0]][length][arg.key.name] = arg.key.value; - } else if (data.fun.typeof(template.loop.parent.object[arg.array.item[0]]) == 'Object') { - template.loop.parent.object[arg.array.item[0]][arg.key.name] = arg.key.value; - } else { - template.loop.parent.object[arg.array.item[0]] = {}; - template.loop.parent.object[arg.array.item[0]][arg.key.name] = arg.key.value; - } - } else { - if (data.fun.typeof(template.loop.parent.object[arg.array.item[0]]) == 'Array') { - template.loop.parent.object = template.loop.parent.object[arg.array.item[0]][0]; - } else { - if (data.fun.typeof(template.loop.parent.object[arg.array.item[0]]) != 'Object') { - template.loop.parent.object[arg.array.item[0]] = {}; - } - template.loop.parent.object = template.loop.parent.object[arg.array.item[0]]; - } - data.fun.loop(template.loop); - } - } else { - template.loop.parent.object = arg.key.value; - } - }; - data.fun.main = function (arg) { - var template = { - loopObject: null, - array: { - parent: arg.parent || [], - child: [], - item: [] - }, - loopVar: { - $index: 0, - length: 0 - }, - icon: { - child: false, - parent: false - }, - result: arg.result || {} - }; - arg.input.map(function (val, key) { - template.array.item = (val.paramKey + '').replace(/(\s)*([:]{2}|[>]{2})(\s)*/g, '>>').split(/[:]{2}|[>]{2}/); - template.loopVar.length = template.array.item.length; - try { - val.paramInfo = val.paramInfo || ''; - if (val.type) { - switch (parseInt(val.type || 0)) { - case 0: - case 1: - case 9: - { - break; - } - default: - { - if (val.type > 999) { - - } else { - if (val.paramInfo) { - val.paramInfo = '#' + val.paramInfo.replace(/^#/, ''); - } else { - switch (parseInt(val.type || 0)) { - case 2: - case 13: - { - val.paramInfo = {}; - break; - } - case 12: - { - val.paramInfo = []; - break; - } - } - } - } - - break; - } - } - } - if (/^#/.test(val.paramInfo) && !/^#(([1-9]\d*)|0)(\.\d*[0-9])?/.test(val.paramInfo)) { - if (/^#array/.test(val.paramInfo)) { - val.paramInfo = []; - } else { - var check_data = val.paramInfo.replace(/\s/g, ''); - var bigNum_regex = /([\[:,]){1}(\d{16,})([,\]\}]){1}/g; - var m; - - do { - m = bigNum_regex.exec(check_data); - if (m) { - data._bigNums.push(m[2]); - val.paramInfo = val.paramInfo.replace(/([\[:])?(\d{16,})\s*([,\}\]])/, "$1\"#$2\"$3"); - } - check_data = val.paramInfo.replace(/\s/g, ''); - } while (m); - val.paramInfo = JSON.parse(val.paramInfo.substring(1)); - } - } else { - val.paramInfo = val.paramInfo || ''; - } - } catch (e) { - val.paramInfo = val.type == 12 ? [] : val.paramInfo; - } - switch (template.loopVar.length) { - case 1: - { - if (template.array.item[0]) { - template.array.parent.push(template.array.item[0]); - template.result[template.array.item[0]] = val.paramInfo; - template.icon.parent = true; - } - break; - } - default: - { - template.loopVar.$index = template.array.parent.indexOf(template.array.item[template.loopVar.length - 2]); - if (template.loopVar.$index > -1) { - template.array.parent.push(template.array.item[template.loopVar.length - 1]); - template.loopObject = { - array: { - item: template.array.item - }, - parent: { - name: template.array.item[template.loopVar.length - 2], - object: template.result - }, - key: { - name: template.array.item[template.loopVar.length - 1], - value: val.paramInfo || '' - } - }; - data.fun.loop(template.loopObject); - template.icon.parent = true; - } else { - template.array.child.push(val); - template.icon.child = true; - } - break; - } - } - }); - if (template.icon.parent && template.icon.child) { - template.result = data.fun.main({ - input: template.array.child, - result: template.result, - parent: template.array.parent - }); - } else if (template.icon.child) { - template.array.child.map(function (val, key) { - template.result[val.paramKey] = val.paramInfo || ''; - }); - } - return template.result; - }; - return function (input) { - var template = { - input: [], - output: '', - match: [] - }; - template.input = JSON.parse((0, _stringify2.default)(input)); - rawFormData = data.fun.main({ - input: template.input - }); - template.output = (0, _stringify2.default)(rawFormData); - template.match = template.output.match(/"#(([1-9]\d*)|0)(\.\d*[0-9])?"/g) || []; - template.match.map(function (val, key) { - template.substring = val.substring(2, val.length - 1); - if (!isNaN(template.substring) && template.substring.length >= 15 && data._bigNums.indexOf(template.substring) > -1) { - template.output = template.output.replace(val, template.substring); - } else { - template.output = template.output.replace(val, val.substring(2, val.length - 1)); - } - }); - return template.output; - }; -}; -var HANDLE_URL = exports.HANDLE_URL = { - splitQuery: function splitQuery(url) { - var hashArgs = {}; - if (url.indexOf('?') > -1) { - var queryString = url.substring(url.indexOf('?') + 1); - queryString = queryString.split('&'); - queryString.forEach(function (group, i) { - if (group.indexOf('=') > -1) { - var index = group.indexOf('=') + 1; - var queryName = group.substring(0, index - 1); - var queryValue = group.substring(index); - if (!queryName) return; - if (queryName in hashArgs) { - if (Object.prototype.toString.call(hashArgs[queryName]) == '[object Array]') { - hashArgs.push(queryValue); - } else { - hashArgs[queryName] = [hashArgs[queryName], queryValue]; - } - } else { - hashArgs[queryName] = queryValue; - } - } else { - if (!group) return; - hashArgs[group] = ''; - } - }); - } - return hashArgs; - }, - jointQuery: function jointQuery(url, query) { - var data = { - fun: { - joint: null - } - }; - var equalSign = '='; - data.fun.getQueryValue = function (queryName, queryValue) { - var output = ''; - if (Object.prototype.toString.call(queryValue) == '[object Array]') { - queryValue.forEach(function (val, key) { - if (output == '') { - output = val; - } else { - output = output + '&' + queryName + equalSign + val; - } - }); - } else { - output = queryValue; - } - return output; - }; - data.fun.joint = function (query) { - var output = ''; - var key = Object.key, - value = Object.value, - entries = _entries3.default; - - if ((typeof query === 'undefined' ? 'undefined' : (0, _typeof3.default)(query)) == 'object') { - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = (0, _getIterator3.default)(entries(query)), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var _ref = _step.value; - - var _ref2 = (0, _slicedToArray3.default)(_ref, 2); - - var _key = _ref2[0]; - var _value = _ref2[1]; - - if (output == '') { - output = _key + equalSign + data.fun.getQueryValue(_key, _value); - } else { - output = output + '&' + _key + equalSign + data.fun.getQueryValue(_key, _value); - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - } else { - output = query; - } - return output; - }; - if ($.isEmptyObject(query) == false) { - if (url.indexOf('?') == -1) { - - url = url + '?' + data.fun.joint(query); - } else { - var urlList = url.split('?'); - url = urlList[0] + '?' + data.fun.joint(query); - } - } - return url; - }, - - handleProtocol: function handleProtocol(url, httpHeader) { - var protocol = httpHeader == '1' ? 'https://' : 'http://'; - if (url.substring(0, 7) != "http://" && url.substring(0, 8) != "https://") { - url = protocol + url; - } - return url; - }, - destRequestUrl: function destRequestUrl(url) { - var urlDetail = ''; - try { - urlDetail = new URL(url); - } catch (e) { - console.log(e); - urlDetail = url; - } - return urlDetail; - }, - replaceRest: function replaceRest(url, rest) { - for (var key in rest) { - url = url.replace(eval("/\{(?!\{)" + key + "\}(?!\})/g"), rest[key]); - url = url.replace(eval("/\:" + key + "/g"), rest[key]); - } - return url; - }, - handleRightUrl: function handleRightUrl(url) { - var url1 = HANDLE_URL.destRequestUrl(url); - - if (url1.scheme == 'http' && url1.port == '80' || url1.scheme == 'https' && url1.port == '443') { - url1 = url.replace(eval('/\:' + url1.port + '/'), ''); - } else { - url1 = url; - } - return url1; - } -}; -var HANDLE_PARAMS = exports.HANDLE_PARAMS = { - handleFormJson: function handleFormJson(params) { - var strJson = null; - var error = { - status: 0, - errorText: '' - }; - try { - strJson = transformJson()(params); - } catch (e) { - console.log(e); - var error = { - status: 1, - errorText: 'form-data转json格式错误,请检查您填写的参数' - }; - } - return { - dataParams: strJson, - error: error - }; - }, - judgeFileExist: function judgeFileExist(params) { - var flagFile = false; - var key = Object.key, - value = Object.value, - entries = _entries3.default; - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = (0, _getIterator3.default)(entries(params)), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var _ref3 = _step2.value; - - var _ref4 = (0, _slicedToArray3.default)(_ref3, 2); - - var _key2 = _ref4[0]; - var _value2 = _ref4[1]; - - if (Object.prototype.toString.call(_value2) == '[object Blob]') { - flagFile = true; - } - if (Object.prototype.toString.call(_value2) == '[object Array]') { - _value2.forEach(function (item) { - if (Object.prototype.toString.call(item) == '[object Blob]') { - flagFile = true; - } - }); - } - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2.return) { - _iterator2.return(); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - - return flagFile; - }, - handleRequestParams: function handleRequestParams(headers, requestType, flagFormDataToJson, flagFile, params, raw, ContentType, processData, reportType, rawFormData) { - var report = {}; - var request = {}; - switch (requestType.toString()) { - case '0': - case '2': - { - if (flagFormDataToJson) { - reportType = '1'; - ContentType = 'application/json; charset=UTF-8'; - - if (typeof params != 'string') { - report = request = (0, _stringify2.default)(params); - } else { - report = request = params; - } - } else if (typeof params == 'string') { - ContentType = 'text/plain; charset=UTF-8'; - requestType = reportType = '1'; - request = report = raw = params; - } else if (typeof params == 'number') { - ContentType = 'text/plain; charset=UTF-8'; - requestType = reportType = '1'; - request = report = raw = params.toString(); - } else { - var _key3 = Object.key, - _value3 = Object.value, - _entries = _entries3.default; - - if (flagFile && requestType == '0') { - request = new FormData(); - - var _loop = function _loop(_key4, _value5) { - - if (Object.prototype.toString.call(_value5) == '[object Blob]') { - request.append(_key4, _value5, _value5.name || _key4); - report[_key4] = '[Object blob]'; - } else if (Object.prototype.toString.call(_value5) == '[object Array]') { - - var _flagFile = false; - _value5.forEach(function (item) { - if (Object.prototype.toString.call(item) == '[object Blob]') { - _flagFile = true; - } - }); - if (_flagFile == true) { - _value5.forEach(function (item) { - if (Object.prototype.toString.call(item) == '[object Blob]') { - request.append(_key4, item, item.name || _key4); - report[_key4] = '[Object blob]'; - } else { - - try { - if (typeof _value5 != 'string') { - _value5 = (0, _stringify2.default)(_value5); - } - } catch (e) {} - request.append(_key4, item); - report[_key4] = report[_key4] || '' + item; - } - }); - } else { - request.append(_key4, _value5); - report[_key4] = _value5; - } - } else { - request.append(_key4, _value5); - report[_key4] = _value5; - } - _value4 = _value5; - }; - - var _iteratorNormalCompletion3 = true; - var _didIteratorError3 = false; - var _iteratorError3 = undefined; - - try { - for (var _iterator3 = (0, _getIterator3.default)(_entries(params)), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { - var _ref5 = _step3.value; - - var _ref6 = (0, _slicedToArray3.default)(_ref5, 2); - - var _key4 = _ref6[0]; - var _value4 = _ref6[1]; - - _loop(_key4, _value4); - } - } catch (err) { - _didIteratorError3 = true; - _iteratorError3 = err; - } finally { - try { - if (!_iteratorNormalCompletion3 && _iterator3.return) { - _iterator3.return(); - } - } finally { - if (_didIteratorError3) { - throw _iteratorError3; - } - } - } - } else { - request = report = params; - } - } - break; - } - case '1': - { - - ContentType = 'text/plain; charset=UTF-8'; - request = report = raw; - break; - } - } - - var midheaders = (0, _stringify2.default)(headers).toLowerCase(); - midheaders = JSON.parse(midheaders); - if (midheaders["content-type"]) { - ContentType = midheaders["content-type"]; - if (midheaders["content-type"].toLowerCase().indexOf('json') > -1 || midheaders["content-type"].toLowerCase().indexOf('text') > -1) { - reportType = '1'; - } else if (midheaders["content-type"].toLowerCase().indexOf('multipart/form-data') > -1) { - flagFile = true; - } - } - - if (reportType == '1' && !flagFormDataToJson) {} - - if (flagFile && !flagFormDataToJson && requestType == '0') { - ContentType = false; - processData = false; - } - var key = Object.key, - value = Object.value, - entries = _entries3.default; - - - if (ContentType == false) { - var _iteratorNormalCompletion4 = true; - var _didIteratorError4 = false; - var _iteratorError4 = undefined; - - try { - for (var _iterator4 = (0, _getIterator3.default)(entries(headers)), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { - var _ref7 = _step4.value; - - var _ref8 = (0, _slicedToArray3.default)(_ref7, 2); - - var _key5 = _ref8[0]; - var _value6 = _ref8[1]; - - if (_key5.toLowerCase() == 'content-type') { - delete headers[_key5]; - } - } - } catch (err) { - _didIteratorError4 = true; - _iteratorError4 = err; - } finally { - try { - if (!_iteratorNormalCompletion4 && _iterator4.return) { - _iterator4.return(); - } - } finally { - if (_didIteratorError4) { - throw _iteratorError4; - } - } - } - } - return { - report: report, - request: request, - raw: raw, - ContentType: ContentType, - processData: processData, - reportType: reportType, - headers: headers - }; - }, - - changeDataURLtoBlob: function changeDataURLtoBlob(dataurl) { - var arr = dataurl.split(','); - var mime = arr[0].match(/:(.*?);/); - if (arr[0].match(/:(.*?);/)) { - mime = mime[1] || ''; - } else { - mime = ''; - } - if (arr[1]) { - var bstr = atob(arr[1]), - n = bstr.length, - u8arr = new Uint8Array(n); - while (n--) { - u8arr[n] = bstr.charCodeAt(n); - } - } else { - u8arr = new Uint8Array(0); - } - return new Blob([u8arr], { - type: mime - }); - } -}; - -/***/ }), -/* 43 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(101), __esModule: true }; - -/***/ }), -/* 44 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var aFunction = __webpack_require__(22); - -function PromiseCapability(C) { - var resolve, reject; - this.promise = new C(function ($$resolve, $$reject) { - if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); - resolve = $$resolve; - reject = $$reject; - }); - this.resolve = aFunction(resolve); - this.reject = aFunction(reject); -} - -module.exports.f = function (C) { - return new PromiseCapability(C); -}; - - -/***/ }), -/* 45 */ -/***/ (function(module, exports, __webpack_require__) { - - -var defined = __webpack_require__(30); -module.exports = function (it) { - return Object(defined(it)); -}; - - -/***/ }), -/* 46 */ -/***/ (function(module, exports, __webpack_require__) { - - -var cof = __webpack_require__(15); - -module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { - return cof(it) == 'String' ? it.split('') : Object(it); -}; - - -/***/ }), -/* 47 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var LIBRARY = __webpack_require__(16); -var $export = __webpack_require__(4); -var redefine = __webpack_require__(49); -var hide = __webpack_require__(7); -var Iterators = __webpack_require__(11); -var $iterCreate = __webpack_require__(70); -var setToStringTag = __webpack_require__(25); -var getPrototypeOf = __webpack_require__(74); -var ITERATOR = __webpack_require__(2)('iterator'); -var BUGGY = !([].keys && 'next' in [].keys()); -var FF_ITERATOR = '@@iterator'; -var KEYS = 'keys'; -var VALUES = 'values'; - -var returnThis = function () { return this; }; - -module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { - $iterCreate(Constructor, NAME, next); - var getMethod = function (kind) { - if (!BUGGY && kind in proto) return proto[kind]; - switch (kind) { - case KEYS: return function keys() { return new Constructor(this, kind); }; - case VALUES: return function values() { return new Constructor(this, kind); }; - } return function entries() { return new Constructor(this, kind); }; - }; - var TAG = NAME + ' Iterator'; - var DEF_VALUES = DEFAULT == VALUES; - var VALUES_BUG = false; - var proto = Base.prototype; - var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; - var $default = $native || getMethod(DEFAULT); - var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; - var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; - var methods, key, IteratorPrototype; - - if ($anyNative) { - IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); - if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { - - setToStringTag(IteratorPrototype, TAG, true); - - if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); - } - } - - if (DEF_VALUES && $native && $native.name !== VALUES) { - VALUES_BUG = true; - $default = function values() { return $native.call(this); }; - } - - if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { - hide(proto, ITERATOR, $default); - } - - Iterators[NAME] = $default; - Iterators[TAG] = returnThis; - if (DEFAULT) { - methods = { - values: DEF_VALUES ? $default : getMethod(VALUES), - keys: IS_SET ? $default : getMethod(KEYS), - entries: $entries - }; - if (FORCED) for (key in methods) { - if (!(key in proto)) redefine(proto, key, methods[key]); - } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); - } - return methods; -}; - - -/***/ }), -/* 48 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = !__webpack_require__(9) && !__webpack_require__(12)(function () { - return Object.defineProperty(__webpack_require__(31)('div'), 'a', { get: function () { return 7; } }).a != 7; -}); - - -/***/ }), -/* 49 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(7); - - -/***/ }), -/* 50 */ -/***/ (function(module, exports, __webpack_require__) { - - -var anObject = __webpack_require__(3); -var dPs = __webpack_require__(71); -var enumBugKeys = __webpack_require__(36); -var IE_PROTO = __webpack_require__(34)('IE_PROTO'); -var Empty = function () { /* empty */ }; -var PROTOTYPE = 'prototype'; - - -var createDict = function () { - - var iframe = __webpack_require__(31)('iframe'); - var i = enumBugKeys.length; - var lt = '<'; - var gt = '>'; - var iframeDocument; - iframe.style.display = 'none'; - __webpack_require__(53).appendChild(iframe); - iframe.src = 'javascript:'; - - - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); - iframeDocument.close(); - createDict = iframeDocument.F; - while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]]; - return createDict(); -}; - -module.exports = Object.create || function create(O, Properties) { - var result; - if (O !== null) { - Empty[PROTOTYPE] = anObject(O); - result = new Empty(); - Empty[PROTOTYPE] = null; - - result[IE_PROTO] = O; - } else result = createDict(); - return Properties === undefined ? result : dPs(result, Properties); -}; - - -/***/ }), -/* 51 */ -/***/ (function(module, exports, __webpack_require__) { - -var has = __webpack_require__(10); -var toIObject = __webpack_require__(6); -var arrayIndexOf = __webpack_require__(72)(false); -var IE_PROTO = __webpack_require__(34)('IE_PROTO'); - -module.exports = function (object, names) { - var O = toIObject(object); - var i = 0; - var result = []; - var key; - for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key); - - while (names.length > i) if (has(O, key = names[i++])) { - ~arrayIndexOf(result, key) || result.push(key); - } - return result; -}; - - -/***/ }), -/* 52 */ -/***/ (function(module, exports, __webpack_require__) { - - -var toInteger = __webpack_require__(33); -var min = Math.min; -module.exports = function (it) { - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; -}; - - -/***/ }), -/* 53 */ -/***/ (function(module, exports, __webpack_require__) { - -var document = __webpack_require__(1).document; -module.exports = document && document.documentElement; - - -/***/ }), -/* 54 */ -/***/ (function(module, exports, __webpack_require__) { - -var classof = __webpack_require__(37); -var ITERATOR = __webpack_require__(2)('iterator'); -var Iterators = __webpack_require__(11); -module.exports = __webpack_require__(0).getIteratorMethod = function (it) { - if (it != undefined) return it[ITERATOR] - || it['@@iterator'] - || Iterators[classof(it)]; -}; - - -/***/ }), -/* 55 */ -/***/ (function(module, exports, __webpack_require__) { - - -var $keys = __webpack_require__(51); -var hiddenKeys = __webpack_require__(36).concat('length', 'prototype'); - -exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { - return $keys(O, hiddenKeys); -}; - - -/***/ }), -/* 56 */ -/***/ (function(module, exports) { - - - -/***/ }), -/* 57 */ -/***/ (function(module, exports) { - -module.exports = {"O_RDONLY":0,"O_WRONLY":1,"O_RDWR":2,"S_IFMT":61440,"S_IFREG":32768,"S_IFDIR":16384,"S_IFCHR":8192,"S_IFBLK":24576,"S_IFIFO":4096,"S_IFLNK":40960,"S_IFSOCK":49152,"O_CREAT":512,"O_EXCL":2048,"O_NOCTTY":131072,"O_TRUNC":1024,"O_APPEND":8,"O_DIRECTORY":1048576,"O_NOFOLLOW":256,"O_SYNC":128,"O_SYMLINK":2097152,"O_NONBLOCK":4,"S_IRWXU":448,"S_IRUSR":256,"S_IWUSR":128,"S_IXUSR":64,"S_IRWXG":56,"S_IRGRP":32,"S_IWGRP":16,"S_IXGRP":8,"S_IRWXO":7,"S_IROTH":4,"S_IWOTH":2,"S_IXOTH":1,"E2BIG":7,"EACCES":13,"EADDRINUSE":48,"EADDRNOTAVAIL":49,"EAFNOSUPPORT":47,"EAGAIN":35,"EALREADY":37,"EBADF":9,"EBADMSG":94,"EBUSY":16,"ECANCELED":89,"ECHILD":10,"ECONNABORTED":53,"ECONNREFUSED":61,"ECONNRESET":54,"EDEADLK":11,"EDESTADDRREQ":39,"EDOM":33,"EDQUOT":69,"EEXIST":17,"EFAULT":14,"EFBIG":27,"EHOSTUNREACH":65,"EIDRM":90,"EILSEQ":92,"EINPROGRESS":36,"EINTR":4,"EINVAL":22,"EIO":5,"EISCONN":56,"EISDIR":21,"ELOOP":62,"EMFILE":24,"EMLINK":31,"EMSGSIZE":40,"EMULTIHOP":95,"ENAMETOOLONG":63,"ENETDOWN":50,"ENETRESET":52,"ENETUNREACH":51,"ENFILE":23,"ENOBUFS":55,"ENODATA":96,"ENODEV":19,"ENOENT":2,"ENOEXEC":8,"ENOLCK":77,"ENOLINK":97,"ENOMEM":12,"ENOMSG":91,"ENOPROTOOPT":42,"ENOSPC":28,"ENOSR":98,"ENOSTR":99,"ENOSYS":78,"ENOTCONN":57,"ENOTDIR":20,"ENOTEMPTY":66,"ENOTSOCK":38,"ENOTSUP":45,"ENOTTY":25,"ENXIO":6,"EOPNOTSUPP":102,"EOVERFLOW":84,"EPERM":1,"EPIPE":32,"EPROTO":100,"EPROTONOSUPPORT":43,"EPROTOTYPE":41,"ERANGE":34,"EROFS":30,"ESPIPE":29,"ESRCH":3,"ESTALE":70,"ETIME":101,"ETIMEDOUT":60,"ETXTBSY":26,"EWOULDBLOCK":35,"EXDEV":18,"SIGHUP":1,"SIGINT":2,"SIGQUIT":3,"SIGILL":4,"SIGTRAP":5,"SIGABRT":6,"SIGIOT":6,"SIGBUS":10,"SIGFPE":8,"SIGKILL":9,"SIGUSR1":30,"SIGSEGV":11,"SIGUSR2":31,"SIGPIPE":13,"SIGALRM":14,"SIGTERM":15,"SIGCHLD":20,"SIGCONT":19,"SIGSTOP":17,"SIGTSTP":18,"SIGTTIN":21,"SIGTTOU":22,"SIGURG":16,"SIGXCPU":24,"SIGXFSZ":25,"SIGVTALRM":26,"SIGPROF":27,"SIGWINCH":28,"SIGIO":23,"SIGSYS":12,"SSL_OP_ALL":2147486719,"SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION":262144,"SSL_OP_CIPHER_SERVER_PREFERENCE":4194304,"SSL_OP_CISCO_ANYCONNECT":32768,"SSL_OP_COOKIE_EXCHANGE":8192,"SSL_OP_CRYPTOPRO_TLSEXT_BUG":2147483648,"SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS":2048,"SSL_OP_EPHEMERAL_RSA":0,"SSL_OP_LEGACY_SERVER_CONNECT":4,"SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER":32,"SSL_OP_MICROSOFT_SESS_ID_BUG":1,"SSL_OP_MSIE_SSLV2_RSA_PADDING":0,"SSL_OP_NETSCAPE_CA_DN_BUG":536870912,"SSL_OP_NETSCAPE_CHALLENGE_BUG":2,"SSL_OP_NETSCAPE_DEMO_CIPHER_CHANGE_BUG":1073741824,"SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG":8,"SSL_OP_NO_COMPRESSION":131072,"SSL_OP_NO_QUERY_MTU":4096,"SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION":65536,"SSL_OP_NO_SSLv2":16777216,"SSL_OP_NO_SSLv3":33554432,"SSL_OP_NO_TICKET":16384,"SSL_OP_NO_TLSv1":67108864,"SSL_OP_NO_TLSv1_1":268435456,"SSL_OP_NO_TLSv1_2":134217728,"SSL_OP_PKCS1_CHECK_1":0,"SSL_OP_PKCS1_CHECK_2":0,"SSL_OP_SINGLE_DH_USE":1048576,"SSL_OP_SINGLE_ECDH_USE":524288,"SSL_OP_SSLEAY_080_CLIENT_DH_BUG":128,"SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG":0,"SSL_OP_TLS_BLOCK_PADDING_BUG":512,"SSL_OP_TLS_D5_BUG":256,"SSL_OP_TLS_ROLLBACK_BUG":8388608,"ENGINE_METHOD_DSA":2,"ENGINE_METHOD_DH":4,"ENGINE_METHOD_RAND":8,"ENGINE_METHOD_ECDH":16,"ENGINE_METHOD_ECDSA":32,"ENGINE_METHOD_CIPHERS":64,"ENGINE_METHOD_DIGESTS":128,"ENGINE_METHOD_STORE":256,"ENGINE_METHOD_PKEY_METHS":512,"ENGINE_METHOD_PKEY_ASN1_METHS":1024,"ENGINE_METHOD_ALL":65535,"ENGINE_METHOD_NONE":0,"DH_CHECK_P_NOT_SAFE_PRIME":2,"DH_CHECK_P_NOT_PRIME":1,"DH_UNABLE_TO_CHECK_GENERATOR":4,"DH_NOT_SUITABLE_GENERATOR":8,"NPN_ENABLED":1,"RSA_PKCS1_PADDING":1,"RSA_SSLV23_PADDING":2,"RSA_NO_PADDING":3,"RSA_PKCS1_OAEP_PADDING":4,"RSA_X931_PADDING":5,"RSA_PKCS1_PSS_PADDING":6,"POINT_CONVERSION_COMPRESSED":2,"POINT_CONVERSION_UNCOMPRESSED":4,"POINT_CONVERSION_HYBRID":6,"F_OK":0,"R_OK":4,"W_OK":2,"X_OK":1,"UV_UDP_REUSEADDR":4} - -/***/ }), -/* 58 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(99); - - -/***/ }), -/* 59 */ -/***/ (function(module, exports, __webpack_require__) { - - -var anObject = __webpack_require__(3); -var aFunction = __webpack_require__(22); -var SPECIES = __webpack_require__(2)('species'); -module.exports = function (O, D) { - var C = anObject(O).constructor; - var S; - return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S); -}; - - -/***/ }), -/* 60 */ -/***/ (function(module, exports, __webpack_require__) { - -var ctx = __webpack_require__(21); -var invoke = __webpack_require__(107); -var html = __webpack_require__(53); -var cel = __webpack_require__(31); -var global = __webpack_require__(1); -var process = global.process; -var setTask = global.setImmediate; -var clearTask = global.clearImmediate; -var MessageChannel = global.MessageChannel; -var Dispatch = global.Dispatch; -var counter = 0; -var queue = {}; -var ONREADYSTATECHANGE = 'onreadystatechange'; -var defer, channel, port; -var run = function () { - var id = +this; - - if (queue.hasOwnProperty(id)) { - var fn = queue[id]; - delete queue[id]; - fn(); - } -}; -var listener = function (event) { - run.call(event.data); -}; - -if (!setTask || !clearTask) { - setTask = function setImmediate(fn) { - var args = []; - var i = 1; - while (arguments.length > i) args.push(arguments[i++]); - queue[++counter] = function () { - - invoke(typeof fn == 'function' ? fn : Function(fn), args); - }; - defer(counter); - return counter; - }; - clearTask = function clearImmediate(id) { - delete queue[id]; - }; - - if (__webpack_require__(15)(process) == 'process') { - defer = function (id) { - process.nextTick(ctx(run, id, 1)); - }; - - } else if (Dispatch && Dispatch.now) { - defer = function (id) { - Dispatch.now(ctx(run, id, 1)); - }; - - } else if (MessageChannel) { - channel = new MessageChannel(); - port = channel.port2; - channel.port1.onmessage = listener; - defer = ctx(port.postMessage, port, 1); - - - } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) { - defer = function (id) { - global.postMessage(id + '', '*'); - }; - global.addEventListener('message', listener, false); - - } else if (ONREADYSTATECHANGE in cel('script')) { - defer = function (id) { - html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () { - html.removeChild(this); - run.call(id); - }; - }; - - } else { - defer = function (id) { - setTimeout(ctx(run, id, 1), 0); - }; - } -} -module.exports = { - set: setTask, - clear: clearTask -}; - - -/***/ }), -/* 61 */ -/***/ (function(module, exports) { - -module.exports = function (exec) { - try { - return { e: false, v: exec() }; - } catch (e) { - return { e: true, v: e }; - } -}; - - -/***/ }), -/* 62 */ -/***/ (function(module, exports, __webpack_require__) { - -var anObject = __webpack_require__(3); -var isObject = __webpack_require__(5); -var newPromiseCapability = __webpack_require__(44); - -module.exports = function (C, x) { - anObject(C); - if (isObject(x) && x.constructor === C) return x; - var promiseCapability = newPromiseCapability.f(C); - var resolve = promiseCapability.resolve; - resolve(x); - return promiseCapability.promise; -}; - - -/***/ }), -/* 63 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _promise = __webpack_require__(43); - -var _promise2 = _interopRequireDefault(_promise); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (fn) { - return function () { - var gen = fn.apply(this, arguments); - return new _promise2.default(function (resolve, reject) { - function step(key, arg) { - try { - var info = gen[key](arg); - var value = info.value; - } catch (error) { - reject(error); - return; - } - - if (info.done) { - resolve(value); - } else { - return _promise2.default.resolve(value).then(function (value) { - step("next", value); - }, function (err) { - step("throw", err); - }); - } - } - - return step("next"); - }); - }; -}; - -/***/ }), -/* 64 */ -/***/ (function(module, exports, __webpack_require__) { - -var getKeys = __webpack_require__(13); -var toIObject = __webpack_require__(6); -var isEnum = __webpack_require__(17).f; -module.exports = function (isEntries) { - return function (it) { - var O = toIObject(it); - var keys = getKeys(O); - var length = keys.length; - var i = 0; - var result = []; - var key; - while (length > i) if (isEnum.call(O, key = keys[i++])) { - result.push(isEntries ? [key, O[key]] : O[key]); - } return result; - }; -}; - - -/***/ }), -/* 65 */ -/***/ (function(module, exports, __webpack_require__) { - -var META = __webpack_require__(24)('meta'); -var isObject = __webpack_require__(5); -var has = __webpack_require__(10); -var setDesc = __webpack_require__(8).f; -var id = 0; -var isExtensible = Object.isExtensible || function () { - return true; -}; -var FREEZE = !__webpack_require__(12)(function () { - return isExtensible(Object.preventExtensions({})); -}); -var setMeta = function (it) { - setDesc(it, META, { value: { - i: 'O' + ++id, - w: {} - } }); -}; -var fastKey = function (it, create) { - - if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - if (!has(it, META)) { - - if (!isExtensible(it)) return 'F'; - - if (!create) return 'E'; - - setMeta(it); - - } return it[META].i; -}; -var getWeak = function (it, create) { - if (!has(it, META)) { - - if (!isExtensible(it)) return true; - - if (!create) return false; - - setMeta(it); - - } return it[META].w; -}; - -var onFreeze = function (it) { - if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); - return it; -}; -var meta = module.exports = { - KEY: META, - NEED: false, - fastKey: fastKey, - getWeak: getWeak, - onFreeze: onFreeze -}; - - -/***/ }), -/* 66 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(20); -__webpack_require__(26); -module.exports = __webpack_require__(76); - - -/***/ }), -/* 67 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var addToUnscopables = __webpack_require__(68); -var step = __webpack_require__(69); -var Iterators = __webpack_require__(11); -var toIObject = __webpack_require__(6); - - - - - -module.exports = __webpack_require__(47)(Array, 'Array', function (iterated, kind) { - this._t = toIObject(iterated); - this._i = 0; - this._k = kind; - -}, function () { - var O = this._t; - var kind = this._k; - var index = this._i++; - if (!O || index >= O.length) { - this._t = undefined; - return step(1); - } - if (kind == 'keys') return step(0, index); - if (kind == 'values') return step(0, O[index]); - return step(0, [index, O[index]]); -}, 'values'); - - -Iterators.Arguments = Iterators.Array; - -addToUnscopables('keys'); -addToUnscopables('values'); -addToUnscopables('entries'); - - -/***/ }), -/* 68 */ -/***/ (function(module, exports) { - -module.exports = function () { /* empty */ }; - - -/***/ }), -/* 69 */ -/***/ (function(module, exports) { - -module.exports = function (done, value) { - return { value: value, done: !!done }; -}; - - -/***/ }), -/* 70 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var create = __webpack_require__(50); -var descriptor = __webpack_require__(23); -var setToStringTag = __webpack_require__(25); -var IteratorPrototype = {}; - - -__webpack_require__(7)(IteratorPrototype, __webpack_require__(2)('iterator'), function () { return this; }); - -module.exports = function (Constructor, NAME, next) { - Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) }); - setToStringTag(Constructor, NAME + ' Iterator'); -}; - - -/***/ }), -/* 71 */ -/***/ (function(module, exports, __webpack_require__) { - -var dP = __webpack_require__(8); -var anObject = __webpack_require__(3); -var getKeys = __webpack_require__(13); - -module.exports = __webpack_require__(9) ? Object.defineProperties : function defineProperties(O, Properties) { - anObject(O); - var keys = getKeys(Properties); - var length = keys.length; - var i = 0; - var P; - while (length > i) dP.f(O, P = keys[i++], Properties[P]); - return O; -}; - - -/***/ }), -/* 72 */ -/***/ (function(module, exports, __webpack_require__) { - - - -var toIObject = __webpack_require__(6); -var toLength = __webpack_require__(52); -var toAbsoluteIndex = __webpack_require__(73); -module.exports = function (IS_INCLUDES) { - return function ($this, el, fromIndex) { - var O = toIObject($this); - var length = toLength(O.length); - var index = toAbsoluteIndex(fromIndex, length); - var value; - - - if (IS_INCLUDES && el != el) while (length > index) { - value = O[index++]; - - if (value != value) return true; - - } else for (;length > index; index++) if (IS_INCLUDES || index in O) { - if (O[index] === el) return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; -}; - - -/***/ }), -/* 73 */ -/***/ (function(module, exports, __webpack_require__) { - -var toInteger = __webpack_require__(33); -var max = Math.max; -var min = Math.min; -module.exports = function (index, length) { - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); -}; - - -/***/ }), -/* 74 */ -/***/ (function(module, exports, __webpack_require__) { - - -var has = __webpack_require__(10); -var toObject = __webpack_require__(45); -var IE_PROTO = __webpack_require__(34)('IE_PROTO'); -var ObjectProto = Object.prototype; - -module.exports = Object.getPrototypeOf || function (O) { - O = toObject(O); - if (has(O, IE_PROTO)) return O[IE_PROTO]; - if (typeof O.constructor == 'function' && O instanceof O.constructor) { - return O.constructor.prototype; - } return O instanceof Object ? ObjectProto : null; -}; - - -/***/ }), -/* 75 */ -/***/ (function(module, exports, __webpack_require__) { - -var toInteger = __webpack_require__(33); -var defined = __webpack_require__(30); - - -module.exports = function (TO_STRING) { - return function (that, pos) { - var s = String(defined(that)); - var i = toInteger(pos); - var l = s.length; - var a, b; - if (i < 0 || i >= l) return TO_STRING ? '' : undefined; - a = s.charCodeAt(i); - return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff - ? TO_STRING ? s.charAt(i) : a - : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; - }; -}; - - -/***/ }), -/* 76 */ -/***/ (function(module, exports, __webpack_require__) { - -var anObject = __webpack_require__(3); -var get = __webpack_require__(54); -module.exports = __webpack_require__(0).getIterator = function (it) { - var iterFn = get(it); - if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!'); - return anObject(iterFn.call(it)); -}; - - -/***/ }), -/* 77 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(78), __esModule: true }; - -/***/ }), -/* 78 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(20); -__webpack_require__(26); -module.exports = __webpack_require__(79); - - -/***/ }), -/* 79 */ -/***/ (function(module, exports, __webpack_require__) { - -var classof = __webpack_require__(37); -var ITERATOR = __webpack_require__(2)('iterator'); -var Iterators = __webpack_require__(11); -module.exports = __webpack_require__(0).isIterable = function (it) { - var O = Object(it); - return O[ITERATOR] !== undefined - || '@@iterator' in O - - || Iterators.hasOwnProperty(classof(O)); -}; - - -/***/ }), -/* 80 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(81); -module.exports = __webpack_require__(0).Object.entries; - - -/***/ }), -/* 81 */ -/***/ (function(module, exports, __webpack_require__) { - - -var $export = __webpack_require__(4); -var $entries = __webpack_require__(64)(true); - -$export($export.S, 'Object', { - entries: function entries(it) { - return $entries(it); - } -}); - - -/***/ }), -/* 82 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(83); -module.exports = __webpack_require__(0).Object.assign; - - -/***/ }), -/* 83 */ -/***/ (function(module, exports, __webpack_require__) { - - -var $export = __webpack_require__(4); - -$export($export.S + $export.F, 'Object', { assign: __webpack_require__(84) }); - - -/***/ }), -/* 84 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var getKeys = __webpack_require__(13); -var gOPS = __webpack_require__(39); -var pIE = __webpack_require__(17); -var toObject = __webpack_require__(45); -var IObject = __webpack_require__(46); -var $assign = Object.assign; - - -module.exports = !$assign || __webpack_require__(12)(function () { - var A = {}; - var B = {}; - - var S = Symbol(); - var K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function (k) { B[k] = k; }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; -}) ? function assign(target, source) { - var T = toObject(target); - var aLen = arguments.length; - var index = 1; - var getSymbols = gOPS.f; - var isEnum = pIE.f; - while (aLen > index) { - var S = IObject(arguments[index++]); - var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); - var length = keys.length; - var j = 0; - var key; - while (length > j) if (isEnum.call(S, key = keys[j++])) T[key] = S[key]; - } return T; -} : $assign; - - -/***/ }), -/* 85 */ -/***/ (function(module, exports, __webpack_require__) { - -var core = __webpack_require__(0); -var $JSON = core.JSON || (core.JSON = { stringify: JSON.stringify }); -module.exports = function stringify(it) { - return $JSON.stringify.apply($JSON, arguments); -}; - - -/***/ }), -/* 86 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(87), __esModule: true }; - -/***/ }), -/* 87 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(26); -__webpack_require__(20); -module.exports = __webpack_require__(40).f('iterator'); - - -/***/ }), -/* 88 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(89), __esModule: true }; - -/***/ }), -/* 89 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(90); -__webpack_require__(56); -__webpack_require__(95); -__webpack_require__(96); -module.exports = __webpack_require__(0).Symbol; - - -/***/ }), -/* 90 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var global = __webpack_require__(1); -var has = __webpack_require__(10); -var DESCRIPTORS = __webpack_require__(9); -var $export = __webpack_require__(4); -var redefine = __webpack_require__(49); -var META = __webpack_require__(65).KEY; -var $fails = __webpack_require__(12); -var shared = __webpack_require__(35); -var setToStringTag = __webpack_require__(25); -var uid = __webpack_require__(24); -var wks = __webpack_require__(2); -var wksExt = __webpack_require__(40); -var wksDefine = __webpack_require__(41); -var enumKeys = __webpack_require__(91); -var isArray = __webpack_require__(92); -var anObject = __webpack_require__(3); -var isObject = __webpack_require__(5); -var toIObject = __webpack_require__(6); -var toPrimitive = __webpack_require__(32); -var createDesc = __webpack_require__(23); -var _create = __webpack_require__(50); -var gOPNExt = __webpack_require__(93); -var $GOPD = __webpack_require__(94); -var $DP = __webpack_require__(8); -var $keys = __webpack_require__(13); -var gOPD = $GOPD.f; -var dP = $DP.f; -var gOPN = gOPNExt.f; -var $Symbol = global.Symbol; -var $JSON = global.JSON; -var _stringify = $JSON && $JSON.stringify; -var PROTOTYPE = 'prototype'; -var HIDDEN = wks('_hidden'); -var TO_PRIMITIVE = wks('toPrimitive'); -var isEnum = {}.propertyIsEnumerable; -var SymbolRegistry = shared('symbol-registry'); -var AllSymbols = shared('symbols'); -var OPSymbols = shared('op-symbols'); -var ObjectProto = Object[PROTOTYPE]; -var USE_NATIVE = typeof $Symbol == 'function'; -var QObject = global.QObject; - -var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; - - -var setSymbolDesc = DESCRIPTORS && $fails(function () { - return _create(dP({}, 'a', { - get: function () { return dP(this, 'a', { value: 7 }).a; } - })).a != 7; -}) ? function (it, key, D) { - var protoDesc = gOPD(ObjectProto, key); - if (protoDesc) delete ObjectProto[key]; - dP(it, key, D); - if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); -} : dP; - -var wrap = function (tag) { - var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); - sym._k = tag; - return sym; -}; - -var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) { - return typeof it == 'symbol'; -} : function (it) { - return it instanceof $Symbol; -}; - -var $defineProperty = function defineProperty(it, key, D) { - if (it === ObjectProto) $defineProperty(OPSymbols, key, D); - anObject(it); - key = toPrimitive(key, true); - anObject(D); - if (has(AllSymbols, key)) { - if (!D.enumerable) { - if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); - it[HIDDEN][key] = true; - } else { - if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; - D = _create(D, { enumerable: createDesc(0, false) }); - } return setSymbolDesc(it, key, D); - } return dP(it, key, D); -}; -var $defineProperties = function defineProperties(it, P) { - anObject(it); - var keys = enumKeys(P = toIObject(P)); - var i = 0; - var l = keys.length; - var key; - while (l > i) $defineProperty(it, key = keys[i++], P[key]); - return it; -}; -var $create = function create(it, P) { - return P === undefined ? _create(it) : $defineProperties(_create(it), P); -}; -var $propertyIsEnumerable = function propertyIsEnumerable(key) { - var E = isEnum.call(this, key = toPrimitive(key, true)); - if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; - return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; -}; -var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { - it = toIObject(it); - key = toPrimitive(key, true); - if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; - var D = gOPD(it, key); - if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; - return D; -}; -var $getOwnPropertyNames = function getOwnPropertyNames(it) { - var names = gOPN(toIObject(it)); - var result = []; - var i = 0; - var key; - while (names.length > i) { - if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); - } return result; -}; -var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { - var IS_OP = it === ObjectProto; - var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); - var result = []; - var i = 0; - var key; - while (names.length > i) { - if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); - } return result; -}; - - -if (!USE_NATIVE) { - $Symbol = function Symbol() { - if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); - var tag = uid(arguments.length > 0 ? arguments[0] : undefined); - var $set = function (value) { - if (this === ObjectProto) $set.call(OPSymbols, value); - if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; - setSymbolDesc(this, tag, createDesc(1, value)); - }; - if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { configurable: true, set: $set }); - return wrap(tag); - }; - redefine($Symbol[PROTOTYPE], 'toString', function toString() { - return this._k; - }); - - $GOPD.f = $getOwnPropertyDescriptor; - $DP.f = $defineProperty; - __webpack_require__(55).f = gOPNExt.f = $getOwnPropertyNames; - __webpack_require__(17).f = $propertyIsEnumerable; - __webpack_require__(39).f = $getOwnPropertySymbols; - - if (DESCRIPTORS && !__webpack_require__(16)) { - redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); - } - - wksExt.f = function (name) { - return wrap(wks(name)); - }; -} - -$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol }); - -for (var es6Symbols = ( - - 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' -).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]); - -for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]); - -$export($export.S + $export.F * !USE_NATIVE, 'Symbol', { - - 'for': function (key) { - return has(SymbolRegistry, key += '') - ? SymbolRegistry[key] - : SymbolRegistry[key] = $Symbol(key); - }, - - keyFor: function keyFor(sym) { - if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); - for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key; - }, - useSetter: function () { setter = true; }, - useSimple: function () { setter = false; } -}); - -$export($export.S + $export.F * !USE_NATIVE, 'Object', { - - create: $create, - - defineProperty: $defineProperty, - - defineProperties: $defineProperties, - - getOwnPropertyDescriptor: $getOwnPropertyDescriptor, - - getOwnPropertyNames: $getOwnPropertyNames, - - getOwnPropertySymbols: $getOwnPropertySymbols -}); - - -$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { - var S = $Symbol(); - - - - return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}'; -})), 'JSON', { - stringify: function stringify(it) { - var args = [it]; - var i = 1; - var replacer, $replacer; - while (arguments.length > i) args.push(arguments[i++]); - $replacer = replacer = args[1]; - if (!isObject(replacer) && it === undefined || isSymbol(it)) return; - if (!isArray(replacer)) replacer = function (key, value) { - if (typeof $replacer == 'function') value = $replacer.call(this, key, value); - if (!isSymbol(value)) return value; - }; - args[1] = replacer; - return _stringify.apply($JSON, args); - } -}); - - -$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(7)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); - -setToStringTag($Symbol, 'Symbol'); - -setToStringTag(Math, 'Math', true); - -setToStringTag(global.JSON, 'JSON', true); - - -/***/ }), -/* 91 */ -/***/ (function(module, exports, __webpack_require__) { - - -var getKeys = __webpack_require__(13); -var gOPS = __webpack_require__(39); -var pIE = __webpack_require__(17); -module.exports = function (it) { - var result = getKeys(it); - var getSymbols = gOPS.f; - if (getSymbols) { - var symbols = getSymbols(it); - var isEnum = pIE.f; - var i = 0; - var key; - while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key); - } return result; -}; - - -/***/ }), -/* 92 */ -/***/ (function(module, exports, __webpack_require__) { - - -var cof = __webpack_require__(15); -module.exports = Array.isArray || function isArray(arg) { - return cof(arg) == 'Array'; -}; - - -/***/ }), -/* 93 */ -/***/ (function(module, exports, __webpack_require__) { - - -var toIObject = __webpack_require__(6); -var gOPN = __webpack_require__(55).f; -var toString = {}.toString; - -var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames - ? Object.getOwnPropertyNames(window) : []; - -var getWindowNames = function (it) { - try { - return gOPN(it); - } catch (e) { - return windowNames.slice(); - } -}; - -module.exports.f = function getOwnPropertyNames(it) { - return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); -}; - - -/***/ }), -/* 94 */ -/***/ (function(module, exports, __webpack_require__) { - -var pIE = __webpack_require__(17); -var createDesc = __webpack_require__(23); -var toIObject = __webpack_require__(6); -var toPrimitive = __webpack_require__(32); -var has = __webpack_require__(10); -var IE8_DOM_DEFINE = __webpack_require__(48); -var gOPD = Object.getOwnPropertyDescriptor; - -exports.f = __webpack_require__(9) ? gOPD : function getOwnPropertyDescriptor(O, P) { - O = toIObject(O); - P = toPrimitive(P, true); - if (IE8_DOM_DEFINE) try { - return gOPD(O, P); - } catch (e) { /* empty */ } - if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); -}; - - -/***/ }), -/* 95 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(41)('asyncIterator'); - - -/***/ }), -/* 96 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(41)('observable'); - - -/***/ }), -/* 97 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var CONSTANT = exports.CONSTANT = { - DOMAIN: ['com', 'cn', 'xin', 'net', 'top', 'xyz', 'wang', 'shop', 'site', 'club', 'cc', 'fun', 'online', 'biz', 'red', 'link', 'ltd', 'mobi', 'info', 'org', 'name', 'vip', 'pro', 'work', 'tv', 'kim', 'group', 'tech', 'store', 'ren', 'ink', 'pub', 'live', 'wiki', 'design', 'ai'], - JWT_METHOD: { - HS256: 'HmacSHA256', - HS384: 'HmacSHA384', - HS512: 'HmacSHA512' - } -}; - -/***/ }), -/* 98 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.INJECT_CODE = undefined; - -var _commonUtils = __webpack_require__(19); - -'use strict'; -var INJECT_CODE = exports.INJECT_CODE = { - defineEo: function defineEo(funList) { - var eo = { - userFunction: {} - }; - var fun = {}; - fun.execute = function (funStr) { - try { - eval(funStr); - } catch (e) { - console.log("userFuntion:\n" + e); - } - }; - eo.img = function (fileName) { - if (fileName.toLowerCase() == 'jpg' || fileName.toLowerCase() == 'png' || fileName.toLowerCase() == 'gif') { - return _commonUtils.COMMON_FILE[fileName.toLowerCase()]; - } else { - return {}; - } - }; - eo.MD5 = eo.Md5 = eo.md5 = function (sMessage, bit) { - try { - var result = CryptoJS.MD5(sMessage.toString()); - result = CryptoJS.enc.Hex.stringify(result); - return result; - } catch (e) { - throw { - errorReason: 'eo.md5传值错误\n' - }; - } - }; - var num145847kda = [1, 224, 256, 384, 512]; - - var _loop = function _loop(i) { - eo['HmacSHA' + num145847kda[i]] = eo['hmacSHA' + num145847kda[i]] = eo['HmacSha' + num145847kda[i]] = function (sMessage, sKey) { - try { - var result = CryptoJS['HmacSHA' + num145847kda[i]](sMessage.toString(), sKey || ''); - result = CryptoJS.enc.Hex.stringify(result); - return result; - } catch (e) { - console.log(e); - throw { - errorReason: 'eo.HmacSHA' + num145847kda[i] + '传值错误' - }; - } - }; - eo['SHA' + num145847kda[i]] = eo['Sha' + num145847kda[i]] = eo['sha' + num145847kda[i]] = function (sMessage) { - try { - var result = CryptoJS['SHA' + num145847kda[i]](sMessage.toString()); - result = CryptoJS.enc.Hex.stringify(result); - return result; - } catch (e) { - reportList.status = 'codeError'; - reportList.errorReport = { - content: 'eo.sha' + num145847kda[i] + '传值错误' - }; - throw 'ignore'; - } - }; - }; - - for (var i = 0; i < num145847kda.length; i++) { - _loop(i); - } - eo.file = function (fileName) { - if (fileName.toLowerCase() == 'txt' || fileName.toLowerCase() == 'none' || fileName.toLowerCase() == 'doc' || fileName.toLowerCase() == 'docx' || fileName.toLowerCase() == 'pdf') { - return _commonUtils.COMMON_FILE[fileName.toLowerCase()]; - } else { - return {}; - } - }; - var funStr = ''; - funList = funList || []; - funList.forEach(function (val, key) { - var paramStr = ''; - val.functionParam.forEach(function (val1, key1) { - paramStr = paramStr + val1.paramKey + ','; - }); - funStr = 'eo.userFunction["' + val.functionKey + '"] = function (' + paramStr + '){' + val.functionCode + '};'; - fun.execute(funStr); - }); - funStr = null; - return eo; - }, - evalBeforeScript: function evalBeforeScript(beforeScript, url, query, headers, params, raw, env, eo, response) { - - try { - eval(beforeScript); - return { - error: false, - url: url, - query: query, - headers: headers, - params: params, - raw: raw, - env: env - }; - } catch (e) { - var errorReason = ''; - console.log(e); - if (e.errorReason) { - return { - error: true, - errorReason: '前置代码执行错误: \n' + e.errorReason - }; - } else { - if (navigator.userAgent.indexOf('Firefox') > -1) { - errorReason = e.toString(); - } else { - errorReason = e.stack; - } - var reg = /eo\.userFunction\.(.+) is not a function/; - if (reg.test(errorReason)) { - errorReason = '通用函数 ' + RegExp.$1 + ' 定义错误,请您检查函数代码\n'; - } - return { - error: true, - errorReason: '前置代码执行错误: \n' + errorReason - }; - } - } - }, - evalAfterScript: function evalAfterScript(afterScript, response, env, eo) { - try { - eval(afterScript); - return { - error: false, - response: response, - env: env - }; - } catch (e) { - var errorReason = ''; - console.log(e); - if (e.errorReason) { - return { - error: true, - errorReason: '后置代码执行错误: \n' + e.errorReason - }; - } else { - if (navigator.userAgent.indexOf('Firefox') > -1) { - errorReason = e.toString(); - } else { - errorReason = e.stack; - } - var reg = /eo\.userFunction\.(.+) is not a function/; - if (reg.test(errorReason)) { - errorReason = '通用函数 ' + RegExp.$1 + ' 定义错误,请您检查函数代码\n'; - } - return { - error: true, - errorReason: '后置代码执行错误: \n' + errorReason - }; - } - } - } -}; - -/***/ }), -/* 99 */ -/***/ (function(module, exports, __webpack_require__) { - -/** - * Copyright (c) 2014-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - - - -var g = (function() { return this })() || Function("return this")(); - - - -var hadRuntime = g.regeneratorRuntime && - Object.getOwnPropertyNames(g).indexOf("regeneratorRuntime") >= 0; - - -var oldRuntime = hadRuntime && g.regeneratorRuntime; - - -g.regeneratorRuntime = undefined; - -module.exports = __webpack_require__(100); - -if (hadRuntime) { - - g.regeneratorRuntime = oldRuntime; -} else { - - try { - delete g.regeneratorRuntime; - } catch(e) { - g.regeneratorRuntime = undefined; - } -} - - -/***/ }), -/* 100 */ -/***/ (function(module, exports) { - -/** - * Copyright (c) 2014-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -!(function(global) { - "use strict"; - - var Op = Object.prototype; - var hasOwn = Op.hasOwnProperty; - var undefined; - var $Symbol = typeof Symbol === "function" ? Symbol : {}; - var iteratorSymbol = $Symbol.iterator || "@@iterator"; - var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; - var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - - var inModule = typeof module === "object"; - var runtime = global.regeneratorRuntime; - if (runtime) { - if (inModule) { - - - module.exports = runtime; - } - - - return; - } - - - - runtime = global.regeneratorRuntime = inModule ? module.exports : {}; - - function wrap(innerFn, outerFn, self, tryLocsList) { - - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; - var generator = Object.create(protoGenerator.prototype); - var context = new Context(tryLocsList || []); - - - - generator._invoke = makeInvokeMethod(innerFn, self, context); - - return generator; - } - runtime.wrap = wrap; - - - - - - - - - - - - function tryCatch(fn, obj, arg) { - try { - return { type: "normal", arg: fn.call(obj, arg) }; - } catch (err) { - return { type: "throw", arg: err }; - } - } - - var GenStateSuspendedStart = "suspendedStart"; - var GenStateSuspendedYield = "suspendedYield"; - var GenStateExecuting = "executing"; - var GenStateCompleted = "completed"; - - - - var ContinueSentinel = {}; - - - - - - function Generator() {} - function GeneratorFunction() {} - function GeneratorFunctionPrototype() {} - - - - var IteratorPrototype = {}; - IteratorPrototype[iteratorSymbol] = function () { - return this; - }; - - var getProto = Object.getPrototypeOf; - var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - if (NativeIteratorPrototype && - NativeIteratorPrototype !== Op && - hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { - - - IteratorPrototype = NativeIteratorPrototype; - } - - var Gp = GeneratorFunctionPrototype.prototype = - Generator.prototype = Object.create(IteratorPrototype); - GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; - GeneratorFunctionPrototype.constructor = GeneratorFunction; - GeneratorFunctionPrototype[toStringTagSymbol] = - GeneratorFunction.displayName = "GeneratorFunction"; - - - - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function(method) { - prototype[method] = function(arg) { - return this._invoke(method, arg); - }; - }); - } - - runtime.isGeneratorFunction = function(genFun) { - var ctor = typeof genFun === "function" && genFun.constructor; - return ctor - ? ctor === GeneratorFunction || - - - (ctor.displayName || ctor.name) === "GeneratorFunction" - : false; - }; - - runtime.mark = function(genFun) { - if (Object.setPrototypeOf) { - Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); - } else { - genFun.__proto__ = GeneratorFunctionPrototype; - if (!(toStringTagSymbol in genFun)) { - genFun[toStringTagSymbol] = "GeneratorFunction"; - } - } - genFun.prototype = Object.create(Gp); - return genFun; - }; - - - - - - runtime.awrap = function(arg) { - return { __await: arg }; - }; - - function AsyncIterator(generator) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - if (record.type === "throw") { - reject(record.arg); - } else { - var result = record.arg; - var value = result.value; - if (value && - typeof value === "object" && - hasOwn.call(value, "__await")) { - return Promise.resolve(value.__await).then(function(value) { - invoke("next", value, resolve, reject); - }, function(err) { - invoke("throw", err, resolve, reject); - }); - } - - return Promise.resolve(value).then(function(unwrapped) { - - - - - - - - - - - - - - - - result.value = unwrapped; - resolve(result); - }, reject); - } - } - - var previousPromise; - - function enqueue(method, arg) { - function callInvokeWithMethodAndArg() { - return new Promise(function(resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - - return previousPromise = - - - - - - - - - - - - - previousPromise ? previousPromise.then( - callInvokeWithMethodAndArg, - - - callInvokeWithMethodAndArg - ) : callInvokeWithMethodAndArg(); - } - - - - this._invoke = enqueue; - } - - defineIteratorMethods(AsyncIterator.prototype); - AsyncIterator.prototype[asyncIteratorSymbol] = function () { - return this; - }; - runtime.AsyncIterator = AsyncIterator; - - - - - runtime.async = function(innerFn, outerFn, self, tryLocsList) { - var iter = new AsyncIterator( - wrap(innerFn, outerFn, self, tryLocsList) - ); - - return runtime.isGeneratorFunction(outerFn) - ? iter - : iter.next().then(function(result) { - return result.done ? result.value : iter.next(); - }); - }; - - function makeInvokeMethod(innerFn, self, context) { - var state = GenStateSuspendedStart; - - return function invoke(method, arg) { - if (state === GenStateExecuting) { - throw new Error("Generator is already running"); - } - - if (state === GenStateCompleted) { - if (method === "throw") { - throw arg; - } - - - - return doneResult(); - } - - context.method = method; - context.arg = arg; - - while (true) { - var delegate = context.delegate; - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; - } - } - - if (context.method === "next") { - - - context.sent = context._sent = context.arg; - - } else if (context.method === "throw") { - if (state === GenStateSuspendedStart) { - state = GenStateCompleted; - throw context.arg; - } - - context.dispatchException(context.arg); - - } else if (context.method === "return") { - context.abrupt("return", context.arg); - } - - state = GenStateExecuting; - - var record = tryCatch(innerFn, self, context); - if (record.type === "normal") { - - - state = context.done - ? GenStateCompleted - : GenStateSuspendedYield; - - if (record.arg === ContinueSentinel) { - continue; - } - - return { - value: record.arg, - done: context.done - }; - - } else if (record.type === "throw") { - state = GenStateCompleted; - - - context.method = "throw"; - context.arg = record.arg; - } - } - }; - } - - - - - - function maybeInvokeDelegate(delegate, context) { - var method = delegate.iterator[context.method]; - if (method === undefined) { - - - context.delegate = null; - - if (context.method === "throw") { - if (delegate.iterator.return) { - - - context.method = "return"; - context.arg = undefined; - maybeInvokeDelegate(delegate, context); - - if (context.method === "throw") { - - - return ContinueSentinel; - } - } - - context.method = "throw"; - context.arg = new TypeError( - "The iterator does not provide a 'throw' method"); - } - - return ContinueSentinel; - } - - var record = tryCatch(method, delegate.iterator, context.arg); - - if (record.type === "throw") { - context.method = "throw"; - context.arg = record.arg; - context.delegate = null; - return ContinueSentinel; - } - - var info = record.arg; - - if (! info) { - context.method = "throw"; - context.arg = new TypeError("iterator result is not an object"); - context.delegate = null; - return ContinueSentinel; - } - - if (info.done) { - - - context[delegate.resultName] = info.value; - - - context.next = delegate.nextLoc; - - - - - - - - if (context.method !== "return") { - context.method = "next"; - context.arg = undefined; - } - - } else { - - return info; - } - - - - context.delegate = null; - return ContinueSentinel; - } - - - - defineIteratorMethods(Gp); - - Gp[toStringTagSymbol] = "Generator"; - - - - - - - Gp[iteratorSymbol] = function() { - return this; - }; - - Gp.toString = function() { - return "[object Generator]"; - }; - - function pushTryEntry(locs) { - var entry = { tryLoc: locs[0] }; - - if (1 in locs) { - entry.catchLoc = locs[1]; - } - - if (2 in locs) { - entry.finallyLoc = locs[2]; - entry.afterLoc = locs[3]; - } - - this.tryEntries.push(entry); - } - - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal"; - delete record.arg; - entry.completion = record; - } - - function Context(tryLocsList) { - - - - this.tryEntries = [{ tryLoc: "root" }]; - tryLocsList.forEach(pushTryEntry, this); - this.reset(true); - } - - runtime.keys = function(object) { - var keys = []; - for (var key in object) { - keys.push(key); - } - keys.reverse(); - - - - return function next() { - while (keys.length) { - var key = keys.pop(); - if (key in object) { - next.value = key; - next.done = false; - return next; - } - } - - - - - next.done = true; - return next; - }; - }; - - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - if (iteratorMethod) { - return iteratorMethod.call(iterable); - } - - if (typeof iterable.next === "function") { - return iterable; - } - - if (!isNaN(iterable.length)) { - var i = -1, next = function next() { - while (++i < iterable.length) { - if (hasOwn.call(iterable, i)) { - next.value = iterable[i]; - next.done = false; - return next; - } - } - - next.value = undefined; - next.done = true; - - return next; - }; - - return next.next = next; - } - } - - - return { next: doneResult }; - } - runtime.values = values; - - function doneResult() { - return { value: undefined, done: true }; - } - - Context.prototype = { - constructor: Context, - - reset: function(skipTempReset) { - this.prev = 0; - this.next = 0; - - - this.sent = this._sent = undefined; - this.done = false; - this.delegate = null; - - this.method = "next"; - this.arg = undefined; - - this.tryEntries.forEach(resetTryEntry); - - if (!skipTempReset) { - for (var name in this) { - - if (name.charAt(0) === "t" && - hasOwn.call(this, name) && - !isNaN(+name.slice(1))) { - this[name] = undefined; - } - } - } - }, - - stop: function() { - this.done = true; - - var rootEntry = this.tryEntries[0]; - var rootRecord = rootEntry.completion; - if (rootRecord.type === "throw") { - throw rootRecord.arg; - } - - return this.rval; - }, - - dispatchException: function(exception) { - if (this.done) { - throw exception; - } - - var context = this; - function handle(loc, caught) { - record.type = "throw"; - record.arg = exception; - context.next = loc; - - if (caught) { - - - context.method = "next"; - context.arg = undefined; - } - - return !! caught; - } - - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - var record = entry.completion; - - if (entry.tryLoc === "root") { - - - - return handle("end"); - } - - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"); - var hasFinally = hasOwn.call(entry, "finallyLoc"); - - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } else if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - - } else if (hasCatch) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } - - } else if (hasFinally) { - if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - - } else { - throw new Error("try statement without catch or finally"); - } - } - } - }, - - abrupt: function(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc <= this.prev && - hasOwn.call(entry, "finallyLoc") && - this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; - } - } - - if (finallyEntry && - (type === "break" || - type === "continue") && - finallyEntry.tryLoc <= arg && - arg <= finallyEntry.finallyLoc) { - - - finallyEntry = null; - } - - var record = finallyEntry ? finallyEntry.completion : {}; - record.type = type; - record.arg = arg; - - if (finallyEntry) { - this.method = "next"; - this.next = finallyEntry.finallyLoc; - return ContinueSentinel; - } - - return this.complete(record); - }, - - complete: function(record, afterLoc) { - if (record.type === "throw") { - throw record.arg; - } - - if (record.type === "break" || - record.type === "continue") { - this.next = record.arg; - } else if (record.type === "return") { - this.rval = this.arg = record.arg; - this.method = "return"; - this.next = "end"; - } else if (record.type === "normal" && afterLoc) { - this.next = afterLoc; - } - - return ContinueSentinel; - }, - - finish: function(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.finallyLoc === finallyLoc) { - this.complete(entry.completion, entry.afterLoc); - resetTryEntry(entry); - return ContinueSentinel; - } - } - }, - - "catch": function(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - if (record.type === "throw") { - var thrown = record.arg; - resetTryEntry(entry); - } - return thrown; - } - } - - - - throw new Error("illegal catch attempt"); - }, - - delegateYield: function(iterable, resultName, nextLoc) { - this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }; - - if (this.method === "next") { - - - this.arg = undefined; - } - - return ContinueSentinel; - } - }; -})( - - - - (function() { return this })() || Function("return this")() -); - - -/***/ }), -/* 101 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(56); -__webpack_require__(26); -__webpack_require__(20); -__webpack_require__(102); -__webpack_require__(113); -__webpack_require__(114); -module.exports = __webpack_require__(0).Promise; - - -/***/ }), -/* 102 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var LIBRARY = __webpack_require__(16); -var global = __webpack_require__(1); -var ctx = __webpack_require__(21); -var classof = __webpack_require__(37); -var $export = __webpack_require__(4); -var isObject = __webpack_require__(5); -var aFunction = __webpack_require__(22); -var anInstance = __webpack_require__(103); -var forOf = __webpack_require__(104); -var speciesConstructor = __webpack_require__(59); -var task = __webpack_require__(60).set; -var microtask = __webpack_require__(108)(); -var newPromiseCapabilityModule = __webpack_require__(44); -var perform = __webpack_require__(61); -var userAgent = __webpack_require__(109); -var promiseResolve = __webpack_require__(62); -var PROMISE = 'Promise'; -var TypeError = global.TypeError; -var process = global.process; -var versions = process && process.versions; -var v8 = versions && versions.v8 || ''; -var $Promise = global[PROMISE]; -var isNode = classof(process) == 'process'; -var empty = function () { /* empty */ }; -var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper; -var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f; - -var USE_NATIVE = !!function () { - try { - - var promise = $Promise.resolve(1); - var FakePromise = (promise.constructor = {})[__webpack_require__(2)('species')] = function (exec) { - exec(empty, empty); - }; - - return (isNode || typeof PromiseRejectionEvent == 'function') - && promise.then(empty) instanceof FakePromise - - - - && v8.indexOf('6.6') !== 0 - && userAgent.indexOf('Chrome/66') === -1; - } catch (e) { /* empty */ } -}(); - - -var isThenable = function (it) { - var then; - return isObject(it) && typeof (then = it.then) == 'function' ? then : false; -}; -var notify = function (promise, isReject) { - if (promise._n) return; - promise._n = true; - var chain = promise._c; - microtask(function () { - var value = promise._v; - var ok = promise._s == 1; - var i = 0; - var run = function (reaction) { - var handler = ok ? reaction.ok : reaction.fail; - var resolve = reaction.resolve; - var reject = reaction.reject; - var domain = reaction.domain; - var result, then, exited; - try { - if (handler) { - if (!ok) { - if (promise._h == 2) onHandleUnhandled(promise); - promise._h = 1; - } - if (handler === true) result = value; - else { - if (domain) domain.enter(); - result = handler(value); - if (domain) { - domain.exit(); - exited = true; - } - } - if (result === reaction.promise) { - reject(TypeError('Promise-chain cycle')); - } else if (then = isThenable(result)) { - then.call(result, resolve, reject); - } else resolve(result); - } else reject(value); - } catch (e) { - if (domain && !exited) domain.exit(); - reject(e); - } - }; - while (chain.length > i) run(chain[i++]); - promise._c = []; - promise._n = false; - if (isReject && !promise._h) onUnhandled(promise); - }); -}; -var onUnhandled = function (promise) { - task.call(global, function () { - var value = promise._v; - var unhandled = isUnhandled(promise); - var result, handler, console; - if (unhandled) { - result = perform(function () { - if (isNode) { - process.emit('unhandledRejection', value, promise); - } else if (handler = global.onunhandledrejection) { - handler({ promise: promise, reason: value }); - } else if ((console = global.console) && console.error) { - console.error('Unhandled promise rejection', value); - } - }); - - promise._h = isNode || isUnhandled(promise) ? 2 : 1; - } promise._a = undefined; - if (unhandled && result.e) throw result.v; - }); -}; -var isUnhandled = function (promise) { - return promise._h !== 1 && (promise._a || promise._c).length === 0; -}; -var onHandleUnhandled = function (promise) { - task.call(global, function () { - var handler; - if (isNode) { - process.emit('rejectionHandled', promise); - } else if (handler = global.onrejectionhandled) { - handler({ promise: promise, reason: promise._v }); - } - }); -}; -var $reject = function (value) { - var promise = this; - if (promise._d) return; - promise._d = true; - promise = promise._w || promise; - promise._v = value; - promise._s = 2; - if (!promise._a) promise._a = promise._c.slice(); - notify(promise, true); -}; -var $resolve = function (value) { - var promise = this; - var then; - if (promise._d) return; - promise._d = true; - promise = promise._w || promise; - try { - if (promise === value) throw TypeError("Promise can't be resolved itself"); - if (then = isThenable(value)) { - microtask(function () { - var wrapper = { _w: promise, _d: false }; - try { - then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1)); - } catch (e) { - $reject.call(wrapper, e); - } - }); - } else { - promise._v = value; - promise._s = 1; - notify(promise, false); - } - } catch (e) { - $reject.call({ _w: promise, _d: false }, e); - } -}; - - -if (!USE_NATIVE) { - - $Promise = function Promise(executor) { - anInstance(this, $Promise, PROMISE, '_h'); - aFunction(executor); - Internal.call(this); - try { - executor(ctx($resolve, this, 1), ctx($reject, this, 1)); - } catch (err) { - $reject.call(this, err); - } - }; - - Internal = function Promise(executor) { - this._c = []; - this._a = undefined; - this._s = 0; - this._d = false; - this._v = undefined; - this._h = 0; - this._n = false; - }; - Internal.prototype = __webpack_require__(110)($Promise.prototype, { - - then: function then(onFulfilled, onRejected) { - var reaction = newPromiseCapability(speciesConstructor(this, $Promise)); - reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; - reaction.fail = typeof onRejected == 'function' && onRejected; - reaction.domain = isNode ? process.domain : undefined; - this._c.push(reaction); - if (this._a) this._a.push(reaction); - if (this._s) notify(this, false); - return reaction.promise; - }, - - 'catch': function (onRejected) { - return this.then(undefined, onRejected); - } - }); - OwnPromiseCapability = function () { - var promise = new Internal(); - this.promise = promise; - this.resolve = ctx($resolve, promise, 1); - this.reject = ctx($reject, promise, 1); - }; - newPromiseCapabilityModule.f = newPromiseCapability = function (C) { - return C === $Promise || C === Wrapper - ? new OwnPromiseCapability(C) - : newGenericPromiseCapability(C); - }; -} - -$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise }); -__webpack_require__(25)($Promise, PROMISE); -__webpack_require__(111)(PROMISE); -Wrapper = __webpack_require__(0)[PROMISE]; - - -$export($export.S + $export.F * !USE_NATIVE, PROMISE, { - - reject: function reject(r) { - var capability = newPromiseCapability(this); - var $$reject = capability.reject; - $$reject(r); - return capability.promise; - } -}); -$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, { - - resolve: function resolve(x) { - return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x); - } -}); -$export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(112)(function (iter) { - $Promise.all(iter)['catch'](empty); -})), PROMISE, { - - all: function all(iterable) { - var C = this; - var capability = newPromiseCapability(C); - var resolve = capability.resolve; - var reject = capability.reject; - var result = perform(function () { - var values = []; - var index = 0; - var remaining = 1; - forOf(iterable, false, function (promise) { - var $index = index++; - var alreadyCalled = false; - values.push(undefined); - remaining++; - C.resolve(promise).then(function (value) { - if (alreadyCalled) return; - alreadyCalled = true; - values[$index] = value; - --remaining || resolve(values); - }, reject); - }); - --remaining || resolve(values); - }); - if (result.e) reject(result.v); - return capability.promise; - }, - - race: function race(iterable) { - var C = this; - var capability = newPromiseCapability(C); - var reject = capability.reject; - var result = perform(function () { - forOf(iterable, false, function (promise) { - C.resolve(promise).then(capability.resolve, reject); - }); - }); - if (result.e) reject(result.v); - return capability.promise; - } -}); - - -/***/ }), -/* 103 */ -/***/ (function(module, exports) { - -module.exports = function (it, Constructor, name, forbiddenField) { - if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) { - throw TypeError(name + ': incorrect invocation!'); - } return it; -}; - - -/***/ }), -/* 104 */ -/***/ (function(module, exports, __webpack_require__) { - -var ctx = __webpack_require__(21); -var call = __webpack_require__(105); -var isArrayIter = __webpack_require__(106); -var anObject = __webpack_require__(3); -var toLength = __webpack_require__(52); -var getIterFn = __webpack_require__(54); -var BREAK = {}; -var RETURN = {}; -var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) { - var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable); - var f = ctx(fn, that, entries ? 2 : 1); - var index = 0; - var length, step, iterator, result; - if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!'); - - if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) { - result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); - if (result === BREAK || result === RETURN) return result; - } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) { - result = call(iterator, f, step.value, entries); - if (result === BREAK || result === RETURN) return result; - } -}; -exports.BREAK = BREAK; -exports.RETURN = RETURN; - - -/***/ }), -/* 105 */ -/***/ (function(module, exports, __webpack_require__) { - - -var anObject = __webpack_require__(3); -module.exports = function (iterator, fn, value, entries) { - try { - return entries ? fn(anObject(value)[0], value[1]) : fn(value); - - } catch (e) { - var ret = iterator['return']; - if (ret !== undefined) anObject(ret.call(iterator)); - throw e; - } -}; - - -/***/ }), -/* 106 */ -/***/ (function(module, exports, __webpack_require__) { - - -var Iterators = __webpack_require__(11); -var ITERATOR = __webpack_require__(2)('iterator'); -var ArrayProto = Array.prototype; - -module.exports = function (it) { - return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); -}; - - -/***/ }), -/* 107 */ -/***/ (function(module, exports) { - - -module.exports = function (fn, args, that) { - var un = that === undefined; - switch (args.length) { - case 0: return un ? fn() - : fn.call(that); - case 1: return un ? fn(args[0]) - : fn.call(that, args[0]); - case 2: return un ? fn(args[0], args[1]) - : fn.call(that, args[0], args[1]); - case 3: return un ? fn(args[0], args[1], args[2]) - : fn.call(that, args[0], args[1], args[2]); - case 4: return un ? fn(args[0], args[1], args[2], args[3]) - : fn.call(that, args[0], args[1], args[2], args[3]); - } return fn.apply(that, args); -}; - - -/***/ }), -/* 108 */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(1); -var macrotask = __webpack_require__(60).set; -var Observer = global.MutationObserver || global.WebKitMutationObserver; -var process = global.process; -var Promise = global.Promise; -var isNode = __webpack_require__(15)(process) == 'process'; - -module.exports = function () { - var head, last, notify; - - var flush = function () { - var parent, fn; - if (isNode && (parent = process.domain)) parent.exit(); - while (head) { - fn = head.fn; - head = head.next; - try { - fn(); - } catch (e) { - if (head) notify(); - else last = undefined; - throw e; - } - } last = undefined; - if (parent) parent.enter(); - }; - - - if (isNode) { - notify = function () { - process.nextTick(flush); - }; - - } else if (Observer && !(global.navigator && global.navigator.standalone)) { - var toggle = true; - var node = document.createTextNode(''); - new Observer(flush).observe(node, { characterData: true }); - notify = function () { - node.data = toggle = !toggle; - }; - - } else if (Promise && Promise.resolve) { - - var promise = Promise.resolve(undefined); - notify = function () { - promise.then(flush); - }; - - - - - - - } else { - notify = function () { - - macrotask.call(global, flush); - }; - } - - return function (fn) { - var task = { fn: fn, next: undefined }; - if (last) last.next = task; - if (!head) { - head = task; - notify(); - } last = task; - }; -}; - - -/***/ }), -/* 109 */ -/***/ (function(module, exports, __webpack_require__) { - -var global = __webpack_require__(1); -var navigator = global.navigator; - -module.exports = navigator && navigator.userAgent || ''; - - -/***/ }), -/* 110 */ -/***/ (function(module, exports, __webpack_require__) { - -var hide = __webpack_require__(7); -module.exports = function (target, src, safe) { - for (var key in src) { - if (safe && target[key]) target[key] = src[key]; - else hide(target, key, src[key]); - } return target; -}; - - -/***/ }), -/* 111 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var global = __webpack_require__(1); -var core = __webpack_require__(0); -var dP = __webpack_require__(8); -var DESCRIPTORS = __webpack_require__(9); -var SPECIES = __webpack_require__(2)('species'); - -module.exports = function (KEY) { - var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY]; - if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, { - configurable: true, - get: function () { return this; } - }); -}; - - -/***/ }), -/* 112 */ -/***/ (function(module, exports, __webpack_require__) { - -var ITERATOR = __webpack_require__(2)('iterator'); -var SAFE_CLOSING = false; - -try { - var riter = [7][ITERATOR](); - riter['return'] = function () { SAFE_CLOSING = true; }; - - Array.from(riter, function () { throw 2; }); -} catch (e) { /* empty */ } - -module.exports = function (exec, skipClosing) { - if (!skipClosing && !SAFE_CLOSING) return false; - var safe = false; - try { - var arr = [7]; - var iter = arr[ITERATOR](); - iter.next = function () { return { done: safe = true }; }; - arr[ITERATOR] = function () { return iter; }; - exec(arr); - } catch (e) { /* empty */ } - return safe; -}; - - -/***/ }), -/* 113 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var $export = __webpack_require__(4); -var core = __webpack_require__(0); -var global = __webpack_require__(1); -var speciesConstructor = __webpack_require__(59); -var promiseResolve = __webpack_require__(62); - -$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) { - var C = speciesConstructor(this, core.Promise || global.Promise); - var isFunction = typeof onFinally == 'function'; - return this.then( - isFunction ? function (x) { - return promiseResolve(C, onFinally()).then(function () { return x; }); - } : onFinally, - isFunction ? function (e) { - return promiseResolve(C, onFinally()).then(function () { throw e; }); - } : onFinally - ); -} }); - - -/***/ }), -/* 114 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var $export = __webpack_require__(4); -var newPromiseCapability = __webpack_require__(44); -var perform = __webpack_require__(61); - -$export($export.S, 'Promise', { 'try': function (callbackfn) { - var promiseCapability = newPromiseCapability.f(this); - var result = perform(callbackfn); - (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v); - return promiseCapability.promise; -} }); - - -/***/ }), -/* 115 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _regenerator = __webpack_require__(58); - -var _regenerator2 = _interopRequireDefault(_regenerator); - -var _asyncToGenerator2 = __webpack_require__(63); - -var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); - -var _assign = __webpack_require__(38); - -var _assign2 = _interopRequireDefault(_assign); - -var _promise = __webpack_require__(43); - -var _promise2 = _interopRequireDefault(_promise); - -exports.handleCaseCode = handleCaseCode; - -var _commonUtils = __webpack_require__(19); - -var _autoCode = __webpack_require__(119); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var PRECODE = { - ajaxs: [], - stopStatus: false -}; -chrome.runtime.onConnect.addListener(function (auto) { - if (auto.name == "autoTest" || auto.name == "autoCodeTest") { - auto.onMessage.addListener(function (caseList) { - if (caseList.stopStatus == true) { - - PRECODE.stopStatus = true; - _commonUtils.COMMON_TOOLS.abortAll(PRECODE.ajaxs); - } - }); - } -}); -function handleCaseCode(productType, caseList) { - return new _promise2.default(function (resolve, reject) { - - var asyncControl = function () { - var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee() { - var listIndex; - return _regenerator2.default.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - listIndex = 0; - - case 1: - if (!(listIndex < caseList.caseCodeList.length)) { - _context.next = 10; - break; - } - - if (!PRECODE.stopStatus) { - _context.next = 5; - break; - } - - reject('stop'); - return _context.abrupt('break', 10); - - case 5: - _context.next = 7; - return singlePreCodeTest(listIndex).then(function (result) { - - console.log(result); - }); - - case 7: - listIndex++; - _context.next = 1; - break; - - case 10: - case 'end': - return _context.stop(); - } - } - }, _callee, this); - })); - - return function asyncControl() { - return _ref.apply(this, arguments); - }; - }(); - - PRECODE.stopStatus = false; - var caseReport = []; - var cookieObj = {}; - var env = {}; - if (caseList.isAfter) { - cookieObj = caseList.cookie; - env = caseList.env; - } else { - cookieObj = { - cookie: { - example: { - cookieStr: '', - obj: {} - } - }, - defaultCookie: { - example: { - cookieStr: '', - obj: {} - } - } - }; - - env = { - baseUrl: '', - headers: {}, - extraParams: {}, - globalParams: {}, - envAuth: {} - - };if (!$.isEmptyObject(caseList.env)) { - if (productType == 1 || productType == 2 && !caseList.oldVersion) { - env.baseUrl = env.baseUrl == '' ? caseList.env.frontURI : env.baseUrl; - } else { - if (caseList.env.frontURIList[0]) { - env.baseUrl = env.baseUrl == '' ? caseList.env.frontURIList[0].uri : env.baseUrl; - } - } - var paramList = {}; - for (var i = 0; i < caseList.env.paramList.length; i++) { - paramList[caseList.env.paramList[i].paramKey] = caseList.env.paramList[i].paramValue; - } - var headerList = {}; - for (var i = 0; i < caseList.env.headerList.length; i++) { - headerList[caseList.env.headerList[i].headerName] = caseList.env.headerList[i].headerValue; - } - var additionalParamList = {}; - for (var i = 0; i < caseList.env.additionalParamList.length; i++) { - additionalParamList[caseList.env.additionalParamList[i].paramKey] = caseList.env.additionalParamList[i].paramValue; - } - env.headers = (0, _assign2.default)({}, headerList, env.headers); - env.extraParams = (0, _assign2.default)({}, additionalParamList, env.extraParams); - env.globalParams = (0, _assign2.default)({}, paramList, env.globalParams); - env.envAuth = (0, _assign2.default)({}, caseList.env.envAuth); - } - } - - function singlePreCodeTest(listIndex) { - return new _promise2.default(function (resolve, reject) { - caseReport[listIndex] = { - caseName: caseList.caseCodeList[listIndex].caseName, - status: 'finish', - time: '0ms', - initReportList: [], - responseList: [], - successApi: 0, - totalApi: 0 - }; - var which = 'before'; - if (caseList.isAfter) { - which = 'after'; - } else { - which = 'before'; - } - var autoCode = false; - caseList.caseCodeList[listIndex].productType = productType; - caseList.caseCodeList[listIndex].commonFunList = caseList.commonFunList; - (0, _autoCode.EVAL_AUTOCODE)(caseList.caseCodeList[listIndex], cookieObj, env, caseReport[listIndex], PRECODE.ajaxs, autoCode, which, resolve, reject, listIndex); - }); - } - asyncControl().then(function () { - - resolve({ - report: caseReport, - cookie: cookieObj, - env: env - }); - }).catch(function (e) { - - resolve({ - report: caseReport, - cookie: cookieObj, - env: env - }); - console.log(e); - }); - }); -}; - -/***/ }), -/* 116 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(124), __esModule: true }; - -/***/ }), -/* 117 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(126), __esModule: true }; - -/***/ }), -/* 118 */ -/***/ (function(module, exports, __webpack_require__) { - - -var $export = __webpack_require__(4); -var core = __webpack_require__(0); -var fails = __webpack_require__(12); -module.exports = function (KEY, exec) { - var fn = (core.Object || {})[KEY] || Object[KEY]; - var exp = {}; - exp[KEY] = exec(fn); - $export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp); -}; - - -/***/ }), -/* 119 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.EVAL_AUTOCODE = undefined; - -var _regenerator = __webpack_require__(58); - -var _regenerator2 = _interopRequireDefault(_regenerator); - -var _assign = __webpack_require__(38); - -var _assign2 = _interopRequireDefault(_assign); - -var _asyncToGenerator2 = __webpack_require__(63); - -var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); - -var _freeze = __webpack_require__(128); - -var _freeze2 = _interopRequireDefault(_freeze); - -var _promise = __webpack_require__(43); - -var _promise2 = _interopRequireDefault(_promise); - -var _values3 = __webpack_require__(116); - -var _values4 = _interopRequireDefault(_values3); - -var _keys3 = __webpack_require__(117); - -var _keys4 = _interopRequireDefault(_keys3); - -var _typeof2 = __webpack_require__(29); - -var _typeof3 = _interopRequireDefault(_typeof2); - -var _stringify = __webpack_require__(18); - -var _stringify2 = _interopRequireDefault(_stringify); - -var _getIterator2 = __webpack_require__(14); - -var _getIterator3 = _interopRequireDefault(_getIterator2); - -var _slicedToArray2 = __webpack_require__(27); - -var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); - -var _entries6 = __webpack_require__(28); - -var _entries7 = _interopRequireDefault(_entries6); - -var _commonUtils = __webpack_require__(19); - -var _requestUtils = __webpack_require__(42); - -var _envCase = __webpack_require__(115); - -var _constants = __webpack_require__(57); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - - -"use strict"; -if (!_commonUtils.COMMON_FILE.txt) { - _commonUtils.COMMON_FILE.getAllFile(); -} -var AUTOCODE = { - ajaxs: [] -}; -var EVAL_AUTOCODE = exports.EVAL_AUTOCODE = function EVAL_AUTOCODE(caseCodeList, cookieObj, env, reportList, ajaxs, autoCode, which, resolve, reject, listIndex) { - var initiator = window.location.origin; - var caseCode = caseCodeList.caseCode; - var batchIndex = caseCodeList.batchIndex || 0; - var productType = caseCodeList.productType; - var codeTestTime = { - startTime: null, - finishTime: null - }; - var executeIndex = -1; - var contentType = 'application/x-www-form-urlencoded;charset=utf-8'; - var processData = true; - var cookieObj = cookieObj; - var requestType = '0'; - var DOMAIN_CONSTANT = ['com', 'cn', 'xin', 'net', 'top', 'xyz', 'wang', 'shop', 'site', 'club', 'cc', 'fun', 'online', 'biz', 'red', 'link', 'ltd', 'mobi', 'info', 'org', 'name', 'vip', 'pro', 'work', 'tv', 'kim', 'group', 'tech', 'store', 'ren', 'ink', 'pub', 'live', 'wiki', 'design', 'ai']; - - function handleEnv(url, headers, params) { - - if (!$.isEmptyObject(env)) { - - - var headerList = env.headers; - var key = Object.key, - value = Object.value, - entries = _entries7.default; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = (0, _getIterator3.default)(entries(headerList)), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var _ref = _step.value; - - var _ref2 = (0, _slicedToArray3.default)(_ref, 2); - - var _key = _ref2[0]; - var _value = _ref2[1]; - - var headerExist = false; - - var _iteratorNormalCompletion9 = true; - var _didIteratorError9 = false; - var _iteratorError9 = undefined; - - try { - for (var _iterator9 = (0, _getIterator3.default)(entries(headers)), _step9; !(_iteratorNormalCompletion9 = (_step9 = _iterator9.next()).done); _iteratorNormalCompletion9 = true) { - var _ref17 = _step9.value; - - var _ref18 = (0, _slicedToArray3.default)(_ref17, 2); - - var _key10 = _ref18[0]; - var _value9 = _ref18[1]; - - if (_key10.toLowerCase() == _key.toLowerCase()) { - headerExist = true; - } - } - } catch (err) { - _didIteratorError9 = true; - _iteratorError9 = err; - } finally { - try { - if (!_iteratorNormalCompletion9 && _iterator9.return) { - _iterator9.return(); - } - } finally { - if (_didIteratorError9) { - throw _iteratorError9; - } - } - } - - if (headerExist == false) { - headers[_key] = _value; - } - } - - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - var paramList = env.extraParams; - if (params.constructor === Object) { - - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = (0, _getIterator3.default)(entries(paramList)), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var _ref3 = _step2.value; - - var _ref4 = (0, _slicedToArray3.default)(_ref3, 2); - - var _key2 = _ref4[0]; - var _value2 = _ref4[1]; - - if (!(_key2 in params)) { - if (/^#/.test(_value2)) { - try { - _value2 = JSON.parse(_value2.substring(1)); - } catch (e) {} - } - params[_key2] = _value2; - } - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2.return) { - _iterator2.return(); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - } - - var globalVal = env.globalParams; - if (!$.isEmptyObject(globalVal)) { - var _key3 = Object.key, - _value3 = Object.value, - _entries = _entries7.default; - var _iteratorNormalCompletion3 = true; - var _didIteratorError3 = false; - var _iteratorError3 = undefined; - - try { - for (var _iterator3 = (0, _getIterator3.default)(_entries(env.globalParams)), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { - var _ref5 = _step3.value; - - var _ref6 = (0, _slicedToArray3.default)(_ref5, 2); - - var _key4 = _ref6[0]; - var _value4 = _ref6[1]; - - for (var _childKey in headers) { - headers[_commonUtils.COMMON_TOOLS.replaceAll('{{' + _key4 + '}}', _value4, _childKey)] = _commonUtils.COMMON_TOOLS.replaceAll('{{' + _key4 + '}}', _value4, headers[_childKey]); - if ('{{' + _key4 + '}}' == _childKey) { - delete headers[_childKey]; - } - } - url = _commonUtils.COMMON_TOOLS.replaceAll('{{' + _key4 + '}}', _value4, url); - } - - - } catch (err) { - _didIteratorError3 = true; - _iteratorError3 = err; - } finally { - try { - if (!_iteratorNormalCompletion3 && _iterator3.return) { - _iterator3.return(); - } - } finally { - if (_didIteratorError3) { - throw _iteratorError3; - } - } - } - - var midheaders = (0, _stringify2.default)(headers).toLowerCase(); - midheaders = JSON.parse(midheaders); - if (midheaders["content-type"]) { - contentType = midheaders["content-type"]; - if (midheaders["content-type"].toLowerCase().indexOf('json') > -1 || midheaders["content-type"].toLowerCase().indexOf('text') > -1) { - requestType = '1'; - } else if (midheaders["content-type"].toLowerCase().indexOf('multipart/form-data') > -1) { - requestType = '2'; - contentType = false; - processData = false; - } - } - if (contentType == false && (typeof params === 'undefined' ? 'undefined' : (0, _typeof3.default)(params)) == 'object') { - var keys = _keys4.default, - values = _values4.default, - _entries2 = _entries7.default; - var _iteratorNormalCompletion4 = true; - var _didIteratorError4 = false; - var _iteratorError4 = undefined; - - try { - for (var _iterator4 = (0, _getIterator3.default)(_entries2(params)), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { - var _ref7 = _step4.value; - - var _ref8 = (0, _slicedToArray3.default)(_ref7, 2); - - var _key5 = _ref8[0]; - var _value5 = _ref8[1]; - - if (Object.prototype.toString.call(_value5) == '[object Blob]') { - var _iteratorNormalCompletion5 = true; - var _didIteratorError5 = false; - var _iteratorError5 = undefined; - - try { - for (var _iterator5 = (0, _getIterator3.default)(_entries2(globalVal)), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) { - var _ref9 = _step5.value; - - var _ref10 = (0, _slicedToArray3.default)(_ref9, 2); - - var key1 = _ref10[0]; - var value1 = _ref10[1]; - - var regparam = new RegExp('{{' + key1 + '}}', "gm"); - var _key6 = _key5.replace(regparam, value1); - - if (_key5 != _key5.replace(regparam, value1)) { - params[_key6] = _value5; - delete params[_key5]; - _key5 = _key6; - } - } - } catch (err) { - _didIteratorError5 = true; - _iteratorError5 = err; - } finally { - try { - if (!_iteratorNormalCompletion5 && _iterator5.return) { - _iterator5.return(); - } - } finally { - if (_didIteratorError5) { - throw _iteratorError5; - } - } - } - } else { - var _iteratorNormalCompletion6 = true; - var _didIteratorError6 = false; - var _iteratorError6 = undefined; - - try { - for (var _iterator6 = (0, _getIterator3.default)(_entries2(globalVal)), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) { - var _ref11 = _step6.value; - - var _ref12 = (0, _slicedToArray3.default)(_ref11, 2); - - var _key7 = _ref12[0]; - var _value6 = _ref12[1]; - - var regparam = new RegExp('{{' + _key7 + '}}', "gm"); - var key2 = _key5.replace(regparam, _value6); - _value5 = _value5.toString().replace(regparam, _value6); - params[key2] = _value5; - if (_key5 != key2) { - delete params[_key5]; - _key5 = key2; - } - } - } catch (err) { - _didIteratorError6 = true; - _iteratorError6 = err; - } finally { - try { - if (!_iteratorNormalCompletion6 && _iterator6.return) { - _iterator6.return(); - } - } finally { - if (_didIteratorError6) { - throw _iteratorError6; - } - } - } - } - } - } catch (err) { - _didIteratorError4 = true; - _iteratorError4 = err; - } finally { - try { - if (!_iteratorNormalCompletion4 && _iterator4.return) { - _iterator4.return(); - } - } finally { - if (_didIteratorError4) { - throw _iteratorError4; - } - } - } - } else { - if ((typeof params === 'undefined' ? 'undefined' : (0, _typeof3.default)(params)) == 'object') { - var _iteratorNormalCompletion7 = true; - var _didIteratorError7 = false; - var _iteratorError7 = undefined; - - try { - for (var _iterator7 = (0, _getIterator3.default)(_entries(env.globalParams)), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) { - var _ref13 = _step7.value; - - var _ref14 = (0, _slicedToArray3.default)(_ref13, 2); - - var _key8 = _ref14[0]; - var _value7 = _ref14[1]; - - for (var childKey in params) { - var afterKey = _commonUtils.COMMON_TOOLS.replaceAll('{{' + _key8 + '}}', _value7, childKey); - params[afterKey] = _commonUtils.COMMON_TOOLS.replaceAll('{{' + _key8 + '}}', _value7, params[childKey]); - if (afterKey != childKey) { - delete params[childKey]; - } - } - } - } catch (err) { - _didIteratorError7 = true; - _iteratorError7 = err; - } finally { - try { - if (!_iteratorNormalCompletion7 && _iterator7.return) { - _iterator7.return(); - } - } finally { - if (_didIteratorError7) { - throw _iteratorError7; - } - } - } - } else { - var _iteratorNormalCompletion8 = true; - var _didIteratorError8 = false; - var _iteratorError8 = undefined; - - try { - for (var _iterator8 = (0, _getIterator3.default)(_entries(env.globalParams)), _step8; !(_iteratorNormalCompletion8 = (_step8 = _iterator8.next()).done); _iteratorNormalCompletion8 = true) { - var _ref15 = _step8.value; - - var _ref16 = (0, _slicedToArray3.default)(_ref15, 2); - - var _key9 = _ref16[0]; - var _value8 = _ref16[1]; - - var regRaw = new RegExp('{{' + _key9 + '}}', "gm"); - params = params.toString().replace(regRaw, _value8); - } - } catch (err) { - _didIteratorError8 = true; - _iteratorError8 = err; - } finally { - try { - if (!_iteratorNormalCompletion8 && _iterator8.return) { - _iterator8.return(); - } - } finally { - if (_didIteratorError8) { - throw _iteratorError8; - } - } - } - } - } - } - var midheaders = (0, _stringify2.default)(headers).toLowerCase(); - midheaders = JSON.parse(midheaders); - if (!midheaders["authorization"] && env.envAuth) { - switch (Number(env.envAuth.status)) { - case 1: - { - var str = env.envAuth.basicAuth.username + ':' + env.envAuth.basicAuth.password; - headers['Authorization'] = 'Basic ' + CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(str)); - break; - } - case 2: - { - var token = _commonUtils.COMMON_TOOLS.jwtEncode(env.envAuth.jwtAuth); - if (token.type == 'error') { - if (reportList.responseList[executeIndex]) { - reportList.responseList[executeIndex].general.status = 'interrupt'; - reportList.responseList[executeIndex].reportList.push({ - type: 'interrupt', - content: token.errorReason - }); - } else { - reportList.initReportList.push({ - type: 'interrupt', - content: token.errorReason - }); - } - throw 'ignore'; - } - if (env.envAuth.jwtAuth.position == 'header') { - headers[env.envAuth.jwtAuth.tokenName || ""] = token; - } else { - var query = {}; - query[env.envAuth.jwtAuth.tokenName] = token; - url = _requestUtils.HANDLE_URL.jointQuery(url, query); - } - } - } - } - var urlPatt = new RegExp('^(((http|ftp|https):\/\/)|)(([\\\w\\\-_]+([\\\w\\\-\\\.]*)?(\\\.(' + DOMAIN_CONSTANT.join('|') + ')))|((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\\\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))|(localhost))((\\\/)|(\\\?)|(:)|($))'); - if (env.baseUrl) { - if (!urlPatt.test(url)) { - url = env.baseUrl + url; - } - } - } - return { - headers: headers, - params: params, - apiUrl: url - }; - } - - var eo = { - userFunction: {}, - execute: null, - stop: null, - info: null, - sha1: null, - md5: null, - sha256: null, - img: null, - file: null - }; - if (caseCodeList.commonFunList) { - var funStrdfs110ss = ''; - caseCodeList.commonFunList = caseCodeList.commonFunList || []; - caseCodeList.commonFunList.forEach(function (val, key) { - var paramStrffds5s78j = ''; - val.functionParam.forEach(function (val1, key1) { - paramStrffds5s78j = paramStrffds5s78j + val1.paramKey + ','; - }); - funStrdfs110ss = 'eo.userFunction["' + val.functionKey + '"] = function (' + paramStrffds5s78j + '){' + val.functionCode + '};\n'; - try { - eval(funStrdfs110ss); - } catch (e) {} - }); - funStrdfs110ss = null; - } - eo.execute = function (apiInfo) { - return new _promise2.default(function (resolve, reject) { - executeIndex++; - reportList.totalApi++; - contentType = 'application/x-www-form-urlencoded;charset=utf-8'; - if (apiInfo && apiInfo.url) { - - var getCookieObj = function getCookieObj(value, cookieDetail) { - var items = value.split(";"); - for (var i = 0; i < items.length; i++) { - var item = items[i].split("="); - if (item[1]) { - - cookieDetail.obj[item[0].replace(/\s+|"+/g, "")] = item[1]; - } else { - - cookieDetail.cookieStr = cookieDetail.cookieStr + items[i]; - } - } - return cookieDetail; - }; - - var handleRequestHeaders = function handleRequestHeaders(details) { - if (!details.initiator) { - if (navigator.userAgent.indexOf('Firefox') > -1) { - details.initiator = details.originUrl.replace('/_generated_background_page.html', ''); - } else { - for (var j = details.requestHeaders.length - 1; j >= 0; j--) { - if (details.requestHeaders[j].name.toLowerCase() == 'origin') { - details.initiator = details.requestHeaders[j].value; - break; - } - } - } - } - var apiUrl1 = _requestUtils.HANDLE_URL.handleRightUrl(apiUrl); - - if ((details.initiator == initiator || details.tabId == -1) && (details.url.indexOf(apiUrl1) > -1 || Redirection.status && details.url.indexOf(Redirection.location) > -1)) { - - var headerCookieFlag = false; - var cookieName = 'cookie'; - - var host = _requestUtils.HANDLE_URL.destRequestUrl(details.url).hostname; - if (!(host in cookieObj.cookie)) { - - cookieObj.cookie[host] = { - cookieStr: '', - obj: {} - }; - } - var _keys = _keys4.default, - _values = _values4.default, - _entries3 = _entries7.default; - - - for (var j = details.requestHeaders.length - 1; j >= 0; j--) { - if (details.requestHeaders[j].name.toLowerCase() == 'cookie') { - cookieName = details.requestHeaders[j].name; - details.requestHeaders.splice(j, 1); - } - } - var _iteratorNormalCompletion11 = true; - var _didIteratorError11 = false; - var _iteratorError11 = undefined; - - try { - for (var _iterator11 = (0, _getIterator3.default)(_entries3(headers)), _step11; !(_iteratorNormalCompletion11 = (_step11 = _iterator11.next()).done); _iteratorNormalCompletion11 = true) { - var _ref21 = _step11.value; - - var _ref22 = (0, _slicedToArray3.default)(_ref21, 2); - - var _key11 = _ref22[0]; - var _value10 = _ref22[1]; - - var headerFlag = false; - _value10 = _value10.toString(); - - for (var j = details.requestHeaders.length - 1; j >= 0; j--) { - if (details.requestHeaders[j].name.toLowerCase() == _key11.toLowerCase()) { - headerFlag = true; - if (_key11.toLowerCase() == 'content-type' && _value10.indexOf('multipart/form-data') > -1) {} else { - details.requestHeaders[j].name = _key11; - details.requestHeaders[j].value = _value10; - } - } - } - - if (headerFlag == false) { - details.requestHeaders.push({ - name: _key11, - value: _value10 - }); - } - - if (_key11.toLowerCase() == 'cookie') { - headerCookieFlag = true; - - cookieObj.cookie[host] = getCookieObj(_value10, cookieObj.cookie[host]); - } - } - - } catch (err) { - _didIteratorError11 = true; - _iteratorError11 = err; - } finally { - try { - if (!_iteratorNormalCompletion11 && _iterator11.return) { - _iterator11.return(); - } - } finally { - if (_didIteratorError11) { - throw _iteratorError11; - } - } - } - - if (headerCookieFlag == false) { - var cookieValue = ''; - var _keys2 = _keys4.default, - _values2 = _values4.default, - _entries4 = _entries7.default; - - - if (!(host in cookieObj.defaultCookie)) { - cookieObj.defaultCookie[host] = { - cookieStr: '', - obj: {} - }; - } - - var _iteratorNormalCompletion12 = true; - var _didIteratorError12 = false; - var _iteratorError12 = undefined; - - try { - for (var _iterator12 = (0, _getIterator3.default)(_entries4(cookieObj.cookie[host].obj)), _step12; !(_iteratorNormalCompletion12 = (_step12 = _iterator12.next()).done); _iteratorNormalCompletion12 = true) { - var _ref23 = _step12.value; - - var _ref24 = (0, _slicedToArray3.default)(_ref23, 2); - - var _key12 = _ref24[0]; - var _value11 = _ref24[1]; - - cookieObj.defaultCookie[host].obj[_key12] = _value11; - } - - } catch (err) { - _didIteratorError12 = true; - _iteratorError12 = err; - } finally { - try { - if (!_iteratorNormalCompletion12 && _iterator12.return) { - _iterator12.return(); - } - } finally { - if (_didIteratorError12) { - throw _iteratorError12; - } - } - } - - var _iteratorNormalCompletion13 = true; - var _didIteratorError13 = false; - var _iteratorError13 = undefined; - - try { - for (var _iterator13 = (0, _getIterator3.default)(_entries4(cookieObj.defaultCookie[host].obj)), _step13; !(_iteratorNormalCompletion13 = (_step13 = _iterator13.next()).done); _iteratorNormalCompletion13 = true) { - var _ref25 = _step13.value; - - var _ref26 = (0, _slicedToArray3.default)(_ref25, 2); - - var _key13 = _ref26[0]; - var _value12 = _ref26[1]; - - cookieValue = cookieValue + _key13 + '=' + _value12 + ';'; - } - } catch (err) { - _didIteratorError13 = true; - _iteratorError13 = err; - } finally { - try { - if (!_iteratorNormalCompletion13 && _iterator13.return) { - _iterator13.return(); - } - } finally { - if (_didIteratorError13) { - throw _iteratorError13; - } - } - } - - cookieValue = cookieValue + cookieObj.cookie[host].cookieStr; - - if (cookieValue != '') { - details.requestHeaders.push({ - name: cookieName, - value: cookieValue - }); - } - } - - for (var j = details.requestHeaders.length - 1; j >= 0; j--) { - requestHeaders[details.requestHeaders[j].name] = details.requestHeaders[j].value; - } - } - return { - requestHeaders: details.requestHeaders - }; - }; - - var getResponseHeaders = function getResponseHeaders(details) { - if (!details.initiator) { - if (navigator.userAgent.indexOf('Firefox') > -1) { - details.initiator = details.originUrl.replace('/_generated_background_page.html', ''); - } else { - details.initiator = ''; - } - } - var apiUrl1 = _requestUtils.HANDLE_URL.handleRightUrl(apiUrl); - if ((details.initiator == initiator || details.tabId == -1) && (details.url.indexOf(apiUrl1) > -1 || Redirection.status)) { - var host = _requestUtils.HANDLE_URL.destRequestUrl(details.url).hostname; - if (details.statusCode == 302 || details.statusCode == 301 || details.statusCode == 307) { - Redirection.status = true; - } - - details.responseHeaders.forEach(function (header) { - if (header.name.toLowerCase() == 'location') { - Redirection.location = header.value; - } - - if (header.name in responseHeaders) { - responseHeaders[header.name] = responseHeaders[header.name] + ";" + header.value; - } else { - responseHeaders[header.name] = header.value; - } - }); - var _key14 = Object.key, - _value13 = Object.value, - _entries5 = _entries7.default; - - - if (!(host in cookieObj.defaultCookie)) { - cookieObj.defaultCookie[host] = { - cookieStr: '', - obj: {} - }; - } - var _iteratorNormalCompletion14 = true; - var _didIteratorError14 = false; - var _iteratorError14 = undefined; - - try { - for (var _iterator14 = (0, _getIterator3.default)(_entries5(responseHeaders)), _step14; !(_iteratorNormalCompletion14 = (_step14 = _iterator14.next()).done); _iteratorNormalCompletion14 = true) { - var _ref27 = _step14.value; - - var _ref28 = (0, _slicedToArray3.default)(_ref27, 2); - - var _key15 = _ref28[0]; - var _value14 = _ref28[1]; - - if (_key15.toLowerCase() == 'set-cookie') { - cookieObj.defaultCookie[host] = getCookieObj(_value14, cookieObj.defaultCookie[host]); - } - } - } catch (err) { - _didIteratorError14 = true; - _iteratorError14 = err; - } finally { - try { - if (!_iteratorNormalCompletion14 && _iterator14.return) { - _iterator14.return(); - } - } finally { - if (_didIteratorError14) { - throw _iteratorError14; - } - } - } - } - }; - - - var apiUrl = apiInfo.url, - name = apiInfo.name || '', - params = apiInfo.params || [], - headers = apiInfo.headers || [], - method = apiInfo.method || 'GET', - timelimit = apiInfo.timelimit, - timelimitContinue = apiInfo.timelimitContinue; - var dataParams = null; - var responseHeaders = {}; - - if (timelimitContinue == undefined) { - timelimitContinue = true; - } - - var beforeTime = null; - var responseList = {}; - var requestHeaders = {}; - - var whichXhr = 'success'; - method = method.toUpperCase(); - - var Redirection = { - status: false, - location: '' - }; - if (timelimit == null) { - timelimit = 10000; - } - var midVal = handleEnv(apiUrl, headers, params); - params = midVal.params; - headers = midVal.headers; - apiUrl = midVal.apiUrl; - if (method == 'GET') { - if ((typeof params === 'undefined' ? 'undefined' : (0, _typeof3.default)(params)) == 'object') { - apiUrl = _requestUtils.HANDLE_URL.jointQuery(apiUrl, params); - params = {}; - } else { - params[params] = ''; - apiUrl = _requestUtils.HANDLE_URL.jointQuery(apiUrl, params); - params = ''; - } - } - var midheaders = (0, _stringify2.default)(headers).toLowerCase(); - midheaders = JSON.parse(midheaders); - if (midheaders["content-type"]) { - if (midheaders["content-type"].toLowerCase().indexOf('json') > -1 || midheaders["content-type"].toLowerCase().indexOf('text') > -1) { - requestType = '1'; - contentType = midheaders["content-type"]; - } else if (midheaders["content-type"].toLowerCase().indexOf('multipart/form-data') > -1) { - requestType = '2'; - contentType = false; - processData = false; - } - } - - - - - - - - - if (contentType == false && (typeof params === 'undefined' ? 'undefined' : (0, _typeof3.default)(params)) == 'object' && requestType == '2') { - var keys = _keys4.default, - values = _values4.default, - entries = _entries7.default; - - dataParams = new FormData(); - var _iteratorNormalCompletion10 = true; - var _didIteratorError10 = false; - var _iteratorError10 = undefined; - - try { - for (var _iterator10 = (0, _getIterator3.default)(entries(params)), _step10; !(_iteratorNormalCompletion10 = (_step10 = _iterator10.next()).done); _iteratorNormalCompletion10 = true) { - var _ref19 = _step10.value; - - var _ref20 = (0, _slicedToArray3.default)(_ref19, 2); - - var key = _ref20[0]; - var value = _ref20[1]; - - if (Object.prototype.toString.call(value) == '[object Blob]') { - dataParams.append(key, value, value.name || key); - params[key] = '[object Blob]'; - } else { - dataParams.append(key, value); - } - } - } catch (err) { - _didIteratorError10 = true; - _iteratorError10 = err; - } finally { - try { - if (!_iteratorNormalCompletion10 && _iterator10.return) { - _iterator10.return(); - } - } finally { - if (_didIteratorError10) { - throw _iteratorError10; - } - } - } - } else { - dataParams = params; - } - if (apiUrl.substring(0, 7) != "http://" && apiUrl.substring(0, 8) != "https://") { - apiUrl = 'http://' + apiUrl; - } - apiUrl = encodeURI(apiUrl); - window.parent.chrome.webRequest.onBeforeSendHeaders.addListener(handleRequestHeaders, { - urls: ["http://*/*", "https://*/*"], - types: ["xmlhttprequest"] - }, ["blocking", "requestHeaders"]); - window.parent.chrome.webRequest.onHeadersReceived.addListener(getResponseHeaders, { - urls: [""] - }, ["responseHeaders", "blocking"]); - var timeout = null; - apiUrl = encodeURI(decodeURI(apiUrl)); - if (method == 'GET') { - contentType = false; - } - var Ajax = $.ajax({ - url: apiUrl, - beforeSend: function beforeSend(request) { - beforeTime = new Date(); - - function abortTimeout() { - reportList.responseList[executeIndex] = { - apiIndex: executeIndex, - general: { - time: timelimit + 'ms', - requestUrl: apiUrl, - status: 'timeout', - requestMethod: method, - timeLimit: timelimit, - name: name - }, - responseHeaders: null, - requestHeaders: requestHeaders, - requestBody: { - requestType: requestType, - body: params || null - - }, - response: null, - reportList: [{ - type: 'timeout', - content: '请求超时' - }] - }; - - if (!timelimitContinue) { - reject('ignore'); - reportList.status = 'timeout'; - } - Ajax.abort(); - } - timeout = setTimeout(abortTimeout, Number(timelimit) || 0); - }, - async: true, - method: method, - data: dataParams, - processData: processData, - contentType: contentType - }).done(function (successData, textStatus, xhr) { - clearTimeout(timeout); - whichXhr = 'success'; - }).fail(function (xhr, textStatus, message) { - clearTimeout(timeout); - whichXhr = 'error'; - - if (textStatus == 'abort' && reportList.responseList[executeIndex] && !timelimitContinue) { - reject('ignore'); - } - }).always(function (successData, textStatus, jqXHR) { - chrome.webRequest.onBeforeSendHeaders.removeListener(handleRequestHeaders); - chrome.webRequest.onHeadersReceived.removeListener(getResponseHeaders); - contentType = 'application/x-www-form-urlencoded;charset=utf-8'; - processData = true; - - var xhr; - if (whichXhr == 'success') { - xhr = jqXHR; - } else { - xhr = successData; - } - - var testDeny = new Date(), - testDeny = testDeny - beforeTime; - if (reportList.responseList[executeIndex]) { - - } else { - var body = xhr.responseText; - if (productType != 1 && productType != 2) { - try { - body = JSON.parse(body); - } catch (e) {} - } - if (xhr.status != 0) { - reportList.responseList[executeIndex] = { - apiIndex: executeIndex, - general: { - time: testDeny + 'ms', - requestUrl: apiUrl, - status: 'finish', - requestMethod: method, - timeLimit: timelimit, - statusCode: xhr.status, - name: name - }, - requestBody: { - requestType: requestType, - body: params - }, - response: xhr.responseText, - responseHeaders: responseHeaders, - requestHeaders: requestHeaders, - reportList: [] - }; - } else { - - - reportList.responseList[executeIndex] = { - apiIndex: executeIndex, - general: { - time: testDeny + 'ms', - requestUrl: apiUrl, - status: 'error', - requestMethod: method, - timeLimit: timelimit, - statusCode: xhr.status, - name: name - }, - requestBody: { - requestType: requestType, - body: params - }, - response: null, - responseHeaders: null, - requestHeaders: requestHeaders, - reportList: [{ - type: 'error', - content: 'target server no answer' - }] - }; - } - } - - resolve({ - time: testDeny + 'ms', - code: xhr.status, - response: body, - header: responseHeaders - }); - }); - ajaxs.push(Ajax); - } else { - var index = executeIndex + 1; - reject('第' + index + '个eo.execute()传入信息有误'); - } - }); - }; - - eo.stop = function (index, info) { - reportList.status = 'interrupt'; - if (reportList.responseList[executeIndex]) { - reportList.responseList[executeIndex].general.status = 'interrupt'; - reportList.responseList[executeIndex].reportList.push({ - type: 'interrupt', - content: info, - lineNum: index - }); - } else { - reportList.initReportList.push({ - type: 'interrupt', - content: info, - lineNum: index - }); - } - throw 'ignore'; - }; - - eo.executeBeforeCode = function (apiInfo, beforeScript) { - var params = {}; - var raw = ''; - if (typeof apiInfo.params == 'string') { - raw = apiInfo.params; - } else { - params = apiInfo.params; - } - var headers = apiInfo.headers; - var url = apiInfo.url; - var query = _requestUtils.HANDLE_URL.splitQuery(url); - try { - eval(beforeScript); - url = _requestUtils.HANDLE_URL.jointQuery(url, query); - apiInfo.url = url; - apiInfo.headers = headers; - if (typeof apiInfo.params == 'string') { - apiInfo.params = raw; - } else { - apiInfo.params = params; - } - return apiInfo; - } catch (e) { - var errorReason = ''; - if (navigator.userAgent.indexOf('Firefox') > -1) { - errorReason = e.toString(); - } else { - errorReason = e.stack; - } - reportList.status = 'codeError'; - reportList.errorReport = { - content: errorReason - }; - throw 'ignore'; - } - }; - eo.executeAfterCode = function (response, afterScript) { - try { - eval(afterScript); - - - return response; - } catch (e) { - var errorReason = ''; - if (navigator.userAgent.indexOf('Firefox') > -1) { - errorReason = e.toString(); - } else { - errorReason = e.stack; - } - reportList.status = 'codeError'; - reportList.errorReport = { - content: errorReason - }; - throw 'ignore'; - } - }; - eo.info = function (index, info, isStop) { - var eoLinker_type = isStop ? 'info' : 'throw'; - - if (reportList.responseList[executeIndex]) { - reportList.responseList[executeIndex].reportList.push({ - type: eoLinker_type, - content: info, - lineNum: index - }); - } else { - reportList.initReportList.push({ - type: eoLinker_type, - content: info, - lineNum: index - }); - } - if (isStop) { - throw 'ignore'; - } - }; - eo.img = function (fileName) { - if (fileName.toLowerCase() == 'jpg' || fileName.toLowerCase() == 'png' || fileName.toLowerCase() == 'gif') { - return _commonUtils.COMMON_FILE[fileName.toLowerCase()]; - } else { - reportList.status = 'codeError'; - reportList.errorReport = { - content: 'eo.img传值错误' - }; - throw 'ignore'; - } - }; - eo.file = function (fileName) { - if (fileName.toLowerCase() == 'txt' || fileName.toLowerCase() == 'none' || fileName.toLowerCase() == 'doc' || fileName.toLowerCase() == 'docx' || fileName.toLowerCase() == 'pdf') { - return _commonUtils.COMMON_FILE[fileName.toLowerCase()]; - } else { - reportList.status = 'codeError'; - reportList.errorReport = { - content: 'eo.file传值错误' - }; - throw 'ignore'; - } - }; - eo.jsonParse = function (response) { - var eolinker = { - obj: {}, - error: null - }; - if (typeof response == 'string') { - try { - eolinker.obj = JSON.parse(response); - return eolinker.obj; - } catch (e) { - if (e) { - if (navigator.userAgent.indexOf('Firefox') > -1) { - eolinker.error = e.toString(); - } else { - eolinker.error = e.stack; - } - } - reportList.status = 'codeError'; - reportList.errorReport = { - content: 'eo.jsonParse函数错误:' + eolinker.error - }; - throw 'ignore'; - } - } else { - return response; - } - }; - eo.xmlParse = function (string, callback) { - var eolinker = { - obj: {}, - error: null - }; - try { - eolinker.obj = $.xml2json(string); - return eolinker.obj; - } catch (e) { - - - - - - - - - reportList.status = 'codeError'; - reportList.errorReport = { - content: ' eo.xmlParse函数错误:传入参数非xml格式!' - }; - throw 'ignore'; - } - }; - eo.MD5 = eo.Md5 = eo.md5 = function (sMessage, bit) { - try { - var result = CryptoJS.MD5(sMessage.toString()); - result = CryptoJS.enc.Hex.stringify(result); - return result; - } catch (e) { - reportList.status = 'codeError'; - reportList.errorReport = { - content: 'eo.md5传值错误' - }; - throw 'ignore'; - } - }; - var num145847kda = [1, 224, 256, 384, 512]; - - var _loop = function _loop(i) { - eo['HmacSHA' + num145847kda[i]] = eo['hmacSHA' + num145847kda[i]] = eo['HmacSha' + num145847kda[i]] = function (sMessage, sKey) { - try { - var result = CryptoJS['HmacSHA' + num145847kda[i]](sMessage.toString(), sKey || ''); - result = CryptoJS.enc.Hex.stringify(result); - return result; - } catch (e) { - console.log(e); - reportList.status = 'codeError'; - reportList.errorReport = { - content: 'eo.HmacSHA' + num145847kda[i] + '传值错误' - }; - throw 'ignore'; - } - }; - eo['SHA' + num145847kda[i]] = eo['Sha' + num145847kda[i]] = eo['sha' + num145847kda[i]] = function (sMessage) { - try { - var result = CryptoJS['SHA' + num145847kda[i]](sMessage.toString()); - result = CryptoJS.enc.Hex.stringify(result); - return result; - } catch (e) { - reportList.status = 'codeError'; - reportList.errorReport = { - content: 'eo.sha' + num145847kda[i] + '传值错误' - }; - throw 'ignore'; - } - }; - }; - - for (var i = 0; i < num145847kda.length; i++) { - _loop(i); - } - - - - (0, _freeze2.default)(eo); - - function throwReplacer(match, offset) { - var count = 1; - var midCaseCode = caseCode.slice(0, offset); - midCaseCode.replace(/\n/g, function (match, offset) { - count++; - }); - return match + count + ","; - } - if (caseCode) { - caseCode = caseCode.replace(/eo\.info\(/g, throwReplacer); - caseCode = caseCode.replace(/eo\.stop\(/g, throwReplacer); - caseCode = caseCode.replace(/eo\.execute\(/g, function (match, offset) { - return 'await ' + match; - }); - } - - function afterCase() { - if (caseCodeList.afterCase.caseCodeList != false) { - caseCodeList.afterCase.env = env; - caseCodeList.afterCase.isAfter = true; - caseCodeList.afterCase.cookie = cookieObj; - (0, _envCase.handleCaseCode)(caseCodeList.productType, caseCodeList.afterCase).then(function (result) { - reportList.afterCaseReportList = result.report; - autoCode.postMessage(reportList); - }).catch(function (e) { - console.log('afterCode', e); - }); - } else { - autoCode.postMessage(reportList); - } - } - var stringFunflsoj45ssv = function stringFunflsoj45ssv() { - sendRequest().then(function (result) { - codeTestTime.finishTime = new Date(); - codeTestTime.finishTime = codeTestTime.finishTime - codeTestTime.startTime; - reportList.time = codeTestTime.finishTime + 'ms'; - reportList.responseList.forEach(function (eachApi) { - if (eachApi.general.status == 'finish') { - reportList.successApi++; - } - }); - reportList.batchIndex = batchIndex; - if (which == 'before') { - resolve('第' + listIndex + '前置用例结束'); - } else if (which == 'after') { - resolve('第' + listIndex + '后置用例结束'); - } else { - afterCase(); - } - }).catch(function (e) { - console.error('【async】', e); - if (e != 'ignore') { - content = ''; - if (navigator.userAgent.indexOf('Firefox') > -1) { - var content = e.toString(); - } else { - content = e.stack; - } - reportList.status = 'codeError'; - if (e.toString().indexOf('传入信息有误') > -1) { - content = e + ',请检查'; - }; - if (content.indexOf('Illegal invocation') > -1) { - content = '非法调用,如:文件请求没有添加头部multipart/form-data,传参类型错误等'; - } - var reg = /eo\.userFunction\.(.+) is not a function/; - if (reg.test(content)) { - content = '通用函数 ' + RegExp.$1 + ' 定义错误,请您检查函数代码\n'; - } - reportList.errorReport = { - content: content - }; - }; - codeTestTime.finishTime = new Date(); - codeTestTime.finishTime = codeTestTime.finishTime - codeTestTime.startTime; - reportList.time = codeTestTime.finishTime + 'ms'; - reportList.responseList.forEach(function (eachApi) { - if (eachApi.general.status == 'finish') { - reportList.successApi++; - } - }); - reportList.batchIndex = batchIndex; - if (which == 'before') { - resolve('第' + listIndex + '个前置用例抛出'); - } else if (which == 'after') { - resolve('第' + listIndex + '个后置用例抛出'); - } else { - afterCase(); - } - }); - }; - caseCode = "async function sendRequest() {\n" + caseCode + "\n};\n(" + stringFunflsoj45ssv.toString() + ')();\n'; - try { - codeTestTime.startTime = new Date(); - eval(caseCode); - } catch (e) { - if (e != 'ignore') { - content = ''; - if (navigator.userAgent.indexOf('Firefox') > -1) { - var content = e.toString(); - } else { - content = e.stack; - } - reportList.status = 'codeError'; - if (content.indexOf('await is only valid in async function') > -1) { - content = '请不要在函数内执行eo.execute()函数'; - } - reportList.errorReport = { - content: content - }; - } - codeTestTime.finishTime = new Date(); - codeTestTime.finishTime = codeTestTime.finishTime - codeTestTime.startTime; - reportList.time = codeTestTime.finishTime + "ms"; - reportList.batchIndex = batchIndex; - if (which == 'auto') { - afterCase(); - } - console.log('【caseCode】', e); - }; -}; -chrome.runtime.onConnect.addListener(function (autoCode) { - if (autoCode.name == "autoCodeTest") { - autoCode.onMessage.addListener(function (caseCodeList) { - var scar_Test = function () { - var _ref29 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee() { - var autoCodeData, env, reportList, paramList, i, headerList, additionalParamList, which; - return _regenerator2.default.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - if (!(caseCodeList.stopStatus == true)) { - _context.next = 5; - break; - } - - _commonUtils.COMMON_TOOLS.abortAll(AUTOCODE.ajaxs); - return _context.abrupt('return'); - - case 5: - autoCodeData = { - preCode: { - result: { - cookie: { - cookie: { - example: { - cookieStr: '', - obj: {} - } - }, - defaultCookie: { - example: { - cookieStr: '', - obj: {} - } - } - }, - report: [] - }, - stopStatus: true - } - - }; - env = { - baseUrl: '', - headers: {}, - extraParams: {}, - globalParams: {}, - envAuth: {} - }; - reportList = { - status: 'finish', - time: '0ms', - initReportList: [], - beforeCaseReportList: [], - responseList: [], - successApi: 0, - totalApi: 0 - }; - - - if (!(caseCodeList.beforeCase.caseCodeList.length != 0)) { - _context.next = 13; - break; - } - - _context.next = 11; - return (0, _envCase.handleCaseCode)(caseCodeList.productType, caseCodeList.beforeCase).then(function (result) { - console.log(result); - autoCodeData.preCode.result = result; - reportList.beforeCaseReportList = autoCodeData.preCode.result.report; - env = result.env; - }).catch(function (e) { - if (e == 'stop') { - autoCodeData.preCode.stopStatus = false; - } - }); - - case 11: - _context.next = 14; - break; - - case 13: - if (!$.isEmptyObject(caseCodeList.env)) { - if (caseCodeList.productType == 1 || caseCodeList.productType == 2 && !caseCodeList.oldVersion) { - env.baseUrl = env.baseUrl == '' ? caseCodeList.env.frontURI : env.baseUrl; - } else { - if (caseCodeList.env.frontURIList[0]) { - env.baseUrl = env.baseUrl == '' ? caseCodeList.env.frontURIList[0].uri : env.baseUrl; - } - } - paramList = {}; - - for (i = 0; i < caseCodeList.env.paramList.length; i++) { - paramList[caseCodeList.env.paramList[i].paramKey] = caseCodeList.env.paramList[i].paramValue; - } - headerList = {}; - - for (i = 0; i < caseCodeList.env.headerList.length; i++) { - headerList[caseCodeList.env.headerList[i].headerName] = caseCodeList.env.headerList[i].headerValue; - } - additionalParamList = {}; - - for (i = 0; i < caseCodeList.env.additionalParamList.length; i++) { - additionalParamList[caseCodeList.env.additionalParamList[i].paramKey] = caseCodeList.env.additionalParamList[i].paramValue; - } - env.headers = (0, _assign2.default)({}, headerList, env.headers); - env.extraParams = (0, _assign2.default)({}, additionalParamList, env.extraParams); - env.globalParams = (0, _assign2.default)({}, paramList, env.globalParams); - env.envAuth = (0, _assign2.default)({}, caseCodeList.env.envAuth); - } - - case 14: - if (autoCodeData.preCode.stopStatus) { - which = 'auto'; - - EVAL_AUTOCODE(caseCodeList, autoCodeData.preCode.result.cookie, env, reportList, AUTOCODE.ajaxs, autoCode, which); - } - - case 15: - case 'end': - return _context.stop(); - } - } - }, _callee, this); - })); - - return function scar_Test() { - return _ref29.apply(this, arguments); - }; - }(); - - scar_Test(); - }); - } -}); - -/***/ }), -/* 120 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -__webpack_require__(121); -__webpack_require__(122); -__webpack_require__(123); -__webpack_require__(119); -__webpack_require__(115); - -/***/ }), -/* 121 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var _getIterator2 = __webpack_require__(14); - -var _getIterator3 = _interopRequireDefault(_getIterator2); - -var _slicedToArray2 = __webpack_require__(27); - -var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); - -var _entries = __webpack_require__(28); - -var _entries2 = _interopRequireDefault(_entries); - -var _assign = __webpack_require__(38); - -var _assign2 = _interopRequireDefault(_assign); - -var _stringify = __webpack_require__(18); - -var _stringify2 = _interopRequireDefault(_stringify); - -var _typeof2 = __webpack_require__(29); - -var _typeof3 = _interopRequireDefault(_typeof2); - -var _commonUtils = __webpack_require__(19); - -var _requestUtils = __webpack_require__(42); - -var _injectCode = __webpack_require__(98); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -"use strict"; - -chrome.runtime.onConnect.addListener(function (normal) { - var initiator = window.location.origin; - var freeze = { - ajax: null - }; - if (normal.name == "normalTest") { - var initiator = window.location.origin; - var freeze = { - ajax: null - }; - normal.onMessage.addListener(function (content) { - if (content.stopStatus == true) { - freeze.ajax.abort(); - } else { - - var handleArguments = function handleArguments() { - switch (eoFreeze.data.requestType) { - case '0': - case '2': - { - - - for (var i = 0; i < eoFreeze.data.params.length;) { - if (!eoFreeze.data.params[i].paramKey || !eoFreeze.data.params[i].checkbox) { - eoFreeze.data.params.splice(i, 1); - } else { - if (eoFreeze.data.params[i].paramType == '1') { - eoFreeze.data.flagFile = true; - } - i++; - } - } - if (eoFreeze.data.requestType == '2') { - - for (var i = 0; i < eoFreeze.data.params.length;) { - var beforUrl = url; - url = url.replace(eval("/\{(?!\{)" + eoFreeze.data.params[i].paramKey + "\}(?!\})/g"), eoFreeze.data.params[i].paramInfo); - url = url.replace(eval("/\:" + eoFreeze.data.params[i].paramKey + "/g"), eoFreeze.data.params[i].paramInfo); - if (beforUrl != url) { - - eoFreeze.data.params.splice(i, 1); - } else { - i++; - } - } - } - if (!eoFreeze.request.flagFormDataToJson) { - for (var i = 0; i < eoFreeze.data.params.length; i++) { - - if (eoFreeze.data.flagFile == true) { - if (eoFreeze.data.params[i].paramType == '1') { - eoFreeze.data.params[i].files = eoFreeze.data.params[i].files || []; - var paramInfo = ''; - - console.log(eoFreeze.data.params[i]); - if (eoFreeze.data.params[i].paramInfo) { - paramInfo = eoFreeze.data.params[i].paramInfo.split(","); - for (var j = 0; eoFreeze.data.params[i].files && j < eoFreeze.data.params[i].files.length; j++) { - var file = _requestUtils.HANDLE_PARAMS.changeDataURLtoBlob(eoFreeze.data.params[i].files[j]); - file.name = paramInfo[j]; - if (eoFreeze.data.params[i].paramKey in params) { - if (Object.prototype.toString.call(params[eoFreeze.data.params[i].paramKey]) == '[object Array]') { - params[eoFreeze.data.params[i].paramKey].push(file); - } else { - params[eoFreeze.data.params[i].paramKey] = [file, params[eoFreeze.data.params[i].paramKey]]; - } - } else { - params[eoFreeze.data.params[i].paramKey] = file; - } - } - } - } else { - if (eoFreeze.data.params[i].paramKey in params) { - if (Object.prototype.toString.call(params[eoFreeze.data.params[i].paramKey]) == '[object Array]') { - params[eoFreeze.data.params[i].paramKey].push(eoFreeze.data.params[i].paramInfo || ''); - } else { - params[eoFreeze.data.params[i].paramKey] = [params[eoFreeze.data.params[i].paramKey], eoFreeze.data.params[i].paramInfo || '']; - } - } else { - params[eoFreeze.data.params[i].paramKey] = eoFreeze.data.params[i].paramInfo || ''; - } - } - } else { - if (eoFreeze.data.params[i].paramKey in params) { - - if ((0, _typeof3.default)(params[eoFreeze.data.params[i].paramKey]) == 'object') { - params[eoFreeze.data.params[i].paramKey].push(eoFreeze.data.params[i].paramInfo || ''); - } else { - - params[eoFreeze.data.params[i].paramKey] = [params[eoFreeze.data.params[i].paramKey], eoFreeze.data.params[i].paramInfo || '']; - } - } else { - params[eoFreeze.data.params[i].paramKey] = eoFreeze.data.params[i].paramInfo || ''; - } - } - } - } else { - - var formJsonData = _requestUtils.HANDLE_PARAMS.handleFormJson(eoFreeze.data.params); - if (formJsonData.error.status == 1) { - eoFreeze.response.error = formJsonData.error; - } - eoFreeze.data.rawJsonData = formJsonData.dataParams; - if (eoFreeze.data.beforeScript) { - params = JSON.parse(formJsonData.dataParams); - } else { - params = formJsonData.dataParams; - } - } - break; - } - case '1': - { - raw = eoFreeze.data.raw; - break; - } - } - - for (var i = 0; i < eoFreeze.data.headers.length;) { - if (!eoFreeze.data.headers[i].headerName || !eoFreeze.data.headers[i].checkbox) { - eoFreeze.data.headers.splice(i, 1); - } else { - headers[eoFreeze.data.headers[i].headerName] = eoFreeze.data.headers[i].headerValue; - i++; - } - } - if (eoFreeze.data.auth) { - switch (Number(eoFreeze.data.auth.status)) { - case 1: - { - var str = eoFreeze.data.auth.basicAuth.username + ':' + eoFreeze.data.auth.basicAuth.password; - headers['Authorization'] = 'Basic ' + CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(str)); - break; - } - case 2: - { - var compareTable = { - 'query': query, - 'header': headers - }; - var result = _commonUtils.COMMON_TOOLS.jwtEncode(eoFreeze.data.auth.jwtAuth); - if (result.type == 'error') { - backData = { - statusCode: "210001", - type: "plug", - errorText: result.errorReason - }; - backData = (0, _stringify2.default)(backData); - normal.postMessage({ - backResult: backData - }); - return; - } else { - compareTable[eoFreeze.data.auth.jwtAuth.position][eoFreeze.data.auth.jwtAuth.tokenName || ""] = result; - } - } - } - } - if (eoFreeze.data.env && eoFreeze.data.env.length != 0) { - eoFreeze.data.env.forEach(function (globalVal, key) { - env.globalParams[globalVal.paramKey] = globalVal.paramValue; - }); - } - }; - - - - - - var handleRequestHeaders = function handleRequestHeaders(details) { - var reqeustUrl; - - if (!details.initiator) { - if (navigator.userAgent.indexOf('Firefox') > -1) { - details.initiator = details.originUrl.replace('/_generated_background_page.html', ''); - } else { - for (var j = details.requestHeaders.length - 1; j >= 0; j--) { - if (details.requestHeaders[j].name.toLowerCase() == 'origin') { - details.initiator = details.requestHeaders[j].value; - break; - } - } - } - } - if (details.initiator == initiator || details.tabId == -1) { - eoFreeze.request.requestHeaders = []; - eoFreeze.request.historyHeaders = []; - - var _key = Object.key, - value = Object.value, - entries = _entries2.default; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = (0, _getIterator3.default)(entries(headers)), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var _ref = _step.value; - - var _ref2 = (0, _slicedToArray3.default)(_ref, 2); - - var _key2 = _ref2[0]; - var _value = _ref2[1]; - - var headerFlag = 0; - for (var j = details.requestHeaders.length - 1; j >= 0; j--) { - if (details.requestHeaders[j].name.toLowerCase() == _key2.toLowerCase()) { - headerFlag = 1; - details.requestHeaders[j].name = _key2; - details.requestHeaders[j].value = _value; - eoFreeze.request.historyHeaders.push({ - name: _key2, - value: _value - }); - break; - } - } - if (headerFlag == 0) { - details.requestHeaders.push({ - name: _key2, - value: _value.toString() - }); - eoFreeze.request.historyHeaders.push({ - name: _key2, - value: _value.toString() - }); - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - var midReqeustHeader = details.requestHeaders.slice(0); - midReqeustHeader.forEach(function (requestHeader) { - eoFreeze.request.requestHeaders.push({ - key: requestHeader.name, - value: requestHeader.value - }); - }); - eoFreeze.request.requestHeaders = eoFreeze.request.requestHeaders.sort(_commonUtils.COMMON_TOOLS.sortArray); - } - return { - requestHeaders: details.requestHeaders - }; - }; - - - - var getResponseHeaders = function getResponseHeaders(details) { - eoFreeze.request.responseHeaders = []; - if (!details.initiator) { - if (navigator.userAgent.indexOf('Firefox') > -1) { - details.initiator = details.originUrl.replace('/_generated_background_page.html', ''); - } else { - if (details.requestHeaders) { - for (var j = details.requestHeaders.length - 1; j >= 0; j--) { - if (details.requestHeaders[j].name.toLowerCase() == 'origin') { - details.initiator = details.requestHeaders[j].value; - break; - } - } - } - } - } - if (details.initiator == initiator || details.tabId == -1) { - for (var i = 0; i < details.responseHeaders.length; i++) { - eoFreeze.request.responseHeaders.push({ - key: details.responseHeaders[i].name, - value: details.responseHeaders[i].value - }); - } - eoFreeze.request.responseHeaders = eoFreeze.request.responseHeaders.sort(_commonUtils.COMMON_TOOLS.sortArray); - } - }; - - - - - var eoFreeze = { - constant: {}, - request: { - apiUrl: content.requestInfo.URL, - scheme: '', - requestHeaders: [], - responseHeaders: [], - historyHeaders: [], - historyParams: [], - formData: null, - params: {}, - beforeTime: {}, - flagFormDataToJson: false, - processData: true, - ContentType: 'application/x-www-form-urlencoded' - }, - response: { - error: {}, - whichXhr: 'success' - }, - report: { - params: {}, - requestType: content.requestInfo.requestType.toString(), - headers: {} - }, - data: { - productType: content.productType, - httpHeader: content.requestInfo.httpHeader, - requestType: content.requestInfo.requestType.toString(), - method: content.requestInfo.apiRequestType || content.method.toString(), - restfulParams: content.requestInfo.restfulParams || [], - params: content.requestInfo.params, - raw: content.requestInfo.raw, - headers: content.requestInfo.headers, - Url: content.requestInfo.URL, - flagFile: false, - env: content.env, - auth: content.requestInfo.auth, - beforeScript: content.script ? content.script.before : '', - afterScript: content.script ? content.script.after : '', - flagQuickTest: content.quickTest || 0, - rawJsonData: '', - commonFunList: content.commonFunList || [], - eo: {} - } - - };var env = { - baseUrl: '', - headers: {}, - extraParams: {}, - globalParams: {} - - };var url = '', - params = {}, - headers = {}, - query = {}, - raw = ''; - var backData = {}; - - var response = null;if ('formDataToJson' in content) { - eoFreeze.request.flagFormDataToJson = content.formDataToJson.checkbox; - } - - eoFreeze.data.method = _commonUtils.COMMON_TOOLS.judgeRequestMethod(eoFreeze.data.method); - - url = eoFreeze.request.apiUrl; - - query = _requestUtils.HANDLE_URL.splitQuery(url); - handleArguments(); - if (eoFreeze.data.beforeScript || eoFreeze.data.afterScript) { - eoFreeze.data.eo = _injectCode.INJECT_CODE.defineEo(eoFreeze.data.commonFunList); - } - - if (eoFreeze.data.beforeScript) { - var beforeResult = _injectCode.INJECT_CODE.evalBeforeScript(eoFreeze.data.beforeScript, url, query, headers, params, raw, env, eoFreeze.data.eo); - - if (beforeResult.error) { - backData = { - statusCode: "210001", - type: "plug", - errorText: beforeResult.errorReason - }; - backData = (0, _stringify2.default)(backData); - normal.postMessage({ - backResult: backData - }); - return; - } else { - url = beforeResult.url; - query = beforeResult.query; - headers = beforeResult.headers; - params = beforeResult.params; - raw = beforeResult.raw; - env = beforeResult.env; - } - } - if (eoFreeze.data.method == 'GET') { - if ((typeof params === 'undefined' ? 'undefined' : (0, _typeof3.default)(params)) == 'object') { - query = (0, _assign2.default)(query, params); - params = {}; - } else { - query[params] = ''; - params = ''; - } - } - - url = _requestUtils.HANDLE_URL.jointQuery(url, query); - - eoFreeze.data.flagFile = _requestUtils.HANDLE_PARAMS.judgeFileExist(params); - var midEnvReulst = _commonUtils.COMMON_TOOLS.handleEnv(env, url, headers, params, raw, eoFreeze.data.requestType, eoFreeze.data.flagFile, eoFreeze.request.flagFormDataToJson); - url = midEnvReulst.url; - headers = midEnvReulst.headers; - params = midEnvReulst.params; - raw = midEnvReulst.raw; - var midRequestParams = _requestUtils.HANDLE_PARAMS.handleRequestParams(headers, eoFreeze.data.requestType, eoFreeze.request.flagFormDataToJson, eoFreeze.data.flagFile, params, raw, eoFreeze.request.ContentType, eoFreeze.request.processData, eoFreeze.report.requestType, eoFreeze.data.rawJsonData); - eoFreeze.report.params = midRequestParams.report; - eoFreeze.request.params = midRequestParams.request; - raw = midRequestParams.raw; - headers = midRequestParams.headers; - eoFreeze.request.processData = midRequestParams.processData; - eoFreeze.request.ContentType = midRequestParams.ContentType; - eoFreeze.report.requestType = midRequestParams.reportType; - if (midRequestParams.reportType.toString() == '1') { - eoFreeze.request.historyParams = midRequestParams.report; - } else { - for (var key in midRequestParams.report) { - eoFreeze.request.historyParams.push({ - key: key, - value: midRequestParams.report[key] - }); - } - } - url = _requestUtils.HANDLE_URL.handleProtocol(url, eoFreeze.data.httpHeader); - - url = encodeURI(decodeURI(url));chrome.webRequest.onBeforeSendHeaders.addListener(handleRequestHeaders, { - urls: ["http://*/*", "https://*/*"], - types: ["xmlhttprequest"] - }, ["blocking", "requestHeaders"]); - - window.parent.chrome.webRequest.onHeadersReceived.addListener(getResponseHeaders, { - urls: [""] - }, ["responseHeaders", "blocking"]); - if (eoFreeze.data.method == 'GET') { - eoFreeze.request.ContentType = false; - } - freeze.ajax = $.ajax({ - url: url, - traditional: true, - beforeSend: function beforeSend(request) { - eoFreeze.request.beforeTime = new Date(); - }, - processData: eoFreeze.request.processData, - contentType: eoFreeze.request.ContentType, - type: eoFreeze.data.method, - async: true, - data: eoFreeze.request.params - }).done(function (successData, textStatus, xhr) { - eoFreeze.response.whichXhr = 'success'; - }).fail(function (xhr, textStatus) { - eoFreeze.response.whichXhr = 'error'; - if (xhr.status == 0) { - eoFreeze.response.error = { - status: 1, - errorText: 'target server no answer' - }; - } - }).always(function (successData, textStatus, jqXHR) { - backData = {}; - - chrome.webRequest.onBeforeSendHeaders.removeListener(handleRequestHeaders); - chrome.webRequest.onHeadersReceived.removeListener(getResponseHeaders); - - var xhr; - if (eoFreeze.response.whichXhr == 'success') { - xhr = jqXHR; - } else { - xhr = successData; - } - if (xhr.status != 0 && eoFreeze.response.error.status != 1) { - - - var testDeny = new Date(), - testTime = ''; - testTime = _commonUtils.COMMON_TOOLS.handleTime(eoFreeze.request.beforeTime); - testDeny = testDeny - eoFreeze.request.beforeTime; - - var responseContentType = xhr.getResponseHeader('Content-Type'); - if (responseContentType) { - if (responseContentType.indexOf("image/") != -1) { - xhr.responseText = eoFreeze.request.apiUrl; - } - } - if (eoFreeze.data.productType != 1) { - try { - response = JSON.parse(xhr.responseText); - } catch (e) { - response = xhr.responseText; - } - } else { - response = xhr.responseText; - } - if (eoFreeze.data.afterScript) { - var afterResult = _injectCode.INJECT_CODE.evalAfterScript(eoFreeze.data.afterScript, response, env, eoFreeze.data.eo); - if (afterResult.error) { - backData = { - statusCode: "210001", - type: "plug", - errorText: afterResult.errorReason - }; - backData = (0, _stringify2.default)(backData); - normal.postMessage({ - backResult: backData - }); - return; - } else { - response = afterResult.response; - env = afterResult.env; - } - } - - try { - if (typeof response != 'string') { - response = (0, _stringify2.default)(response); - if ((0, _stringify2.default)(JSON.parse(xhr.responseText)) == response) { - response = xhr.responseText; - } - } - } catch (e) {} - backData = { - statusCode: "000000", - testHttpCode: xhr.status, - requestBody: { - url: url, - params: { - requestType: eoFreeze.report.requestType, - body: eoFreeze.report.params - }, - query: query, - headers: eoFreeze.request.requestHeaders, - historyHeaders: eoFreeze.request.historyHeaders, - historyParams: eoFreeze.request.historyParams - }, - testResult: { - headers: eoFreeze.request.responseHeaders, - body: response, - response: xhr.responseText - }, - testDeny: testDeny - }; - } else { - - backData = { - statusCode: "210000", - type: "plug", - errorText: eoFreeze.response.error.errorText - }; - } - backData = (0, _stringify2.default)(backData); - normal.postMessage({ - backResult: backData - }); - }); - } - }); - } -}); - -/***/ }), -/* 122 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var _stringify = __webpack_require__(18); - -var _stringify2 = _interopRequireDefault(_stringify); - -var _assign = __webpack_require__(38); - -var _assign2 = _interopRequireDefault(_assign); - -var _typeof2 = __webpack_require__(29); - -var _typeof3 = _interopRequireDefault(_typeof2); - -var _getIterator2 = __webpack_require__(14); - -var _getIterator3 = _interopRequireDefault(_getIterator2); - -var _slicedToArray2 = __webpack_require__(27); - -var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); - -var _entries = __webpack_require__(28); - -var _entries2 = _interopRequireDefault(_entries); - -var _commonUtils = __webpack_require__(19); - -var _requestUtils = __webpack_require__(42); - -var _injectCode = __webpack_require__(98); - -var _constants = __webpack_require__(57); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -"use strict"; - -var BATCH = { - ajaxs: [] -}; -chrome.runtime.onConnect.addListener(function (batch) { - if (batch.name == "batchTest") { - var handleRequestHeaders = function handleRequestHeaders(details) { - if (!eoData.array[0]) return; - if (eoData.requestId == -1) { - eoData.requestId = Number(details.requestId) + 1; - } - var template = eoData.array[details.requestId - eoData.requestId]; - - if (template && template.apiUrl) { - if (!details.initiator) { - if (navigator.userAgent.indexOf('Firefox') > -1) { - details.initiator = details.originUrl.replace('/_generated_background_page.html', ''); - } else { - for (var j = details.requestHeaders.length - 1; j >= 0; j--) { - if (details.requestHeaders[j].name.toLowerCase() == 'origin') { - details.initiator = details.requestHeaders[j].value; - break; - } - } - } - } - if (details.initiator == initiator || details.tabId == -1) { - allRequestHeaders[details.requestId - eoData.requestId] = []; - var key = Object.key, - value = Object.value, - entries = _entries2.default; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = (0, _getIterator3.default)(entries(template.headers)), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var _ref = _step.value; - - var _ref2 = (0, _slicedToArray3.default)(_ref, 2); - - var _key = _ref2[0]; - var _value = _ref2[1]; - - var headerFlag = 0; - for (var j = details.requestHeaders.length - 1; j >= 0; j--) { - if (details.requestHeaders[j].name.toLowerCase() == _key.toLowerCase()) { - headerFlag = 1; - details.requestHeaders[j].name = _key; - details.requestHeaders[j].value = _value.toString(); - } - } - if (headerFlag == 0 && _key) { - details.requestHeaders.push({ - name: _key, - value: _value.toString() - }); - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - var requestHeaders = {}; - - for (var j = 0; j < details.requestHeaders.length; j++) { - requestHeaders[details.requestHeaders[j].name] = details.requestHeaders[j].value; - } - allRequestHeaders[details.requestId - eoData.requestId] = requestHeaders; - } - } - return { - requestHeaders: details.requestHeaders - }; - }; - - var initiator = window.location.origin; - var eoData = { - requestId: -1, - array: [] - }; - var allRequestHeaders = []; - - window.parent.chrome.webRequest.onBeforeSendHeaders.addListener(handleRequestHeaders, { - urls: ["http://*/*", "https://*/*"], - types: ["xmlhttprequest"] - }, ["blocking", "requestHeaders"]); - $.ajax({ - url: 'https://www.eolinker.com', - type: 'GET', - async: true - }); - batch.onMessage.addListener(function (webInfo) { - if (webInfo.stopStatus == true) { - if (webInfo.index == 0) { - _commonUtils.COMMON_TOOLS.abortAll(BATCH.ajaxs); - } else { - BATCH.ajaxs[webInfo.index - 1].abort(); - } - } else { - var length; - var amount; - var backResult; - var productType; - var k; - var code; - var data; - var eoFreeze; - var env; - var url, params, headers, query, raw, rest; - var response; - var beforeResult; - var Ajax; - - (function () { - - var handleResponseHeader = function handleResponseHeader(allResponseHeaders) { - var items = allResponseHeaders.split("\r\n"); - var responseHeaders = []; - for (var i = 0; i < items.length - 1; i++) { - items[i] = items[i].split(": "); - responseHeaders.push({ - key: items[i][0], - value: items[i][1] - }); - } - return responseHeaders; - }; - - length = webInfo.caseList.length; - amount = webInfo.amount; - backResult = { - responseList: [{ - responseType: "error" - }], - status: "tested" - }; - productType = webInfo.productType; - - backResult.responseList = new Array(amount); - for (k = 0; k < length; k++) { - - code = webInfo.caseList[k].statusCode; - - - if (code) { - - var handleArguments = function handleArguments() { - for (var i = 0; i < eoFreeze.data.restfulParams.length;) { - if (!eoFreeze.data.restfulParams[i].paramKey || !eoFreeze.data.restfulParams[i].checkbox) { - eoFreeze.data.restfulParams.splice(i, 1); - } else { - var midUrl = url; - var beforeUrl = url; - midUrl = midUrl.replace(eval("/\{(?!\{)" + eoFreeze.data.restfulParams[i].paramKey + "\}(?!\})/g"), eoFreeze.data.restfulParams[i].paramInfo); - midUrl = midUrl.replace(eval("/\:" + eoFreeze.data.restfulParams[i].paramKey + "/g"), eoFreeze.data.restfulParams[i].paramInfo); - if (beforeUrl != midUrl) { - rest[eoFreeze.data.restfulParams[i].paramKey] = eoFreeze.data.restfulParams[i].paramInfo; - } else { - if (eoFreeze.data.requestType != '1') { - eoFreeze.data.params.push(eoFreeze.data.restfulParams[i]); - } - } - i++; - } - } - switch (eoFreeze.data.requestType) { - case '0': - case '2': - { - - - for (var i = 0; i < eoFreeze.data.params.length;) { - if (!eoFreeze.data.params[i].paramKey || !eoFreeze.data.params[i].checkbox) { - eoFreeze.data.params.splice(i, 1); - } else { - eoFreeze.data.params[i].paramInfo = eoFreeze.data.params[i].paramInfo || ''; - i++; - } - } - if (eoFreeze.data.requestType == '2') { - - for (var i = 0; i < eoFreeze.data.params.length;) { - var beforUrl = url; - url = url.replace(eval("/\{(?!\{)" + eoFreeze.data.params[i].paramKey + "\}(?!\})/g"), eoFreeze.data.params[i].paramInfo); - url = url.replace(eval("/\:" + eoFreeze.data.params[i].paramKey + "/g"), eoFreeze.data.params[i].paramInfo); - if (beforUrl != url) { - - eoFreeze.data.params.splice(i, 1); - } else { - i++; - } - } - } - if (!$.isEmptyObject(eoFreeze.data.env)) { - var envParams = eoFreeze.data.env.additionalParamList; - envParams.forEach(function (value, key) { - eoFreeze.data.params.unshift({ - paramKey: value.paramKey, - paramInfo: value.paramValue || '' - }); - }); - } - if (!eoFreeze.request.flagFormDataToJson) { - for (var i = 0; i < eoFreeze.data.params.length; i++) { - if (eoFreeze.data.params[i].paramKey in params) { - if ((0, _typeof3.default)(params[eoFreeze.data.params[i].paramKey]) == 'object') { - params[eoFreeze.data.params[i].paramKey].push(eoFreeze.data.params[i].paramInfo || ''); - } else { - params[eoFreeze.data.params[i].paramKey] = [params[eoFreeze.data.params[i].paramKey], eoFreeze.data.params[i].paramInfo || '']; - } - } else { - params[eoFreeze.data.params[i].paramKey] = eoFreeze.data.params[i].paramInfo || ''; - } - } - } else { - - var formJsonData = _requestUtils.HANDLE_PARAMS.handleFormJson(eoFreeze.data.params); - if (formJsonData.error.status == 1) { - errorReason = formJsonData.error; - } - if (eoFreeze.data.beforeScript) { - params = JSON.parse(formJsonData.dataParams); - } else { - params = formJsonData.dataParams; - } - } - break; - } - case '1': - { - raw = eoFreeze.data.raw; - break; - } - } - - for (var i = 0; i < eoFreeze.data.headers.length;) { - if (!eoFreeze.data.headers[i].headerName || !eoFreeze.data.headers[i].checkbox) { - eoFreeze.data.headers.splice(i, 1); - } else { - headers[eoFreeze.data.headers[i].headerName] = eoFreeze.data.headers[i].headerValue; - i++; - } - } - - if (eoFreeze.data.auth) { - switch (Number(eoFreeze.data.auth.status)) { - case 1: - { - var str = eoFreeze.data.auth.basicAuth.username + ':' + eoFreeze.data.auth.basicAuth.password; - headers['Authorization'] = 'Basic ' + CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(str)); - break; - } - case 2: - { - var compareTable = { - 'query': query, - 'header': headers - }; - var result = _commonUtils.COMMON_TOOLS.jwtEncode(eoFreeze.data.auth.jwtAuth); - if (result.type == 'error') { - eoFreeze.data.error = true; - eoFreeze.report.errorReason = result.errorReason; - } else { - compareTable[eoFreeze.data.auth.jwtAuth.position][eoFreeze.data.auth.jwtAuth.tokenName || ""] = result; - } - } - } - } - - if (!$.isEmptyObject(eoFreeze.data.env)) { - if (eoFreeze.data.productType == 1 || eoFreeze.data.productType == 2 && !eoFreeze.data.oldVersion) { - env.baseUrl = env.baseUrl == '' ? eoFreeze.data.env.frontURI : env.baseUrl; - } else { - if (eoFreeze.data.env.frontURIList[0]) { - env.baseUrl = env.baseUrl == '' ? eoFreeze.data.env.frontURIList[0].uri : env.baseUrl; - } - } - var paramList = {}; - for (var i = 0; i < eoFreeze.data.env.paramList.length; i++) { - paramList[eoFreeze.data.env.paramList[i].paramKey] = eoFreeze.data.env.paramList[i].paramValue; - } - var headerList = {}; - for (var i = 0; i < eoFreeze.data.env.headerList.length; i++) { - headerList[eoFreeze.data.env.headerList[i].headerName] = eoFreeze.data.env.headerList[i].headerValue; - } - var additionalParamList = {}; - for (var i = 0; i < eoFreeze.data.env.additionalParamList.length; i++) { - additionalParamList[eoFreeze.data.env.additionalParamList[i].paramKey] = eoFreeze.data.env.additionalParamList[i].paramValue; - } - env.headers = headerList; - env.extraParams = additionalParamList; - env.globalParams = paramList; - if (!(eoFreeze.data.auth && eoFreeze.data.auth.status != '0')) { - env.envAuth = eoFreeze.data.env.envAuth; - } - } - }; - - - - - data = JSON.parse(webInfo.caseList[k].caseData); - eoFreeze = { - constant: {}, - request: { - apiUrl: data.URL, - responseHeaders: [], - params: {}, - beforeTime: new Date(), - flagFormDataToJson: data.toJson ? data.toJson : false, - processData: true, - ContentType: 'application/x-www-form-urlencoded' - }, - response: { - error: {}, - whichXhr: 'success' - }, - report: { - params: {}, - requestType: data.requestType, - errorReason: '', - headers: {} - }, - data: { - oldVersion: webInfo.oldVersion, - productType: webInfo.productType, - httpHeader: data.httpHeader, - requestType: data.requestType, - method: data.apiRequestType, - params: data.params, - restfulParams: data.restfulParam || [], - raw: data.raw, - headers: data.headers, - error: false, - Url: data.URL, - env: webInfo.env, - auth: data.auth, - beforeScript: data.script ? data.script.before : '', - afterScript: data.script ? data.script.after : '', - commonFunList: webInfo.commonFunList || [] - } - - }; - env = { - baseUrl: '', - headers: {}, - extraParams: {}, - globalParams: {} - - }; - url = ''; - params = {}; - headers = {}; - query = {}; - raw = ''; - rest = {}; - - - response = null; - - - eoFreeze.data.method = _commonUtils.COMMON_TOOLS.judgeRequestMethod(eoFreeze.data.method);url = eoFreeze.request.apiUrl; - query = _requestUtils.HANDLE_URL.splitQuery(url); - handleArguments(); - if (eoFreeze.data.beforeScript || eoFreeze.data.afterScript) { - eoFreeze.data.eo = _injectCode.INJECT_CODE.defineEo(eoFreeze.data.commonFunList); - } - - beforeResult = _injectCode.INJECT_CODE.evalBeforeScript(eoFreeze.data.beforeScript, url, query, headers, params, raw, env, eoFreeze.data.eo); - - if (beforeResult.error) { - eoFreeze.data.error = true; - eoFreeze.report.errorReason = beforeResult.errorReason; - } else { - url = beforeResult.url; - query = beforeResult.query; - headers = beforeResult.headers; - params = beforeResult.params; - raw = beforeResult.raw; - env = beforeResult.env; - } - if (eoFreeze.data.method == 'GET') { - if ((typeof params === 'undefined' ? 'undefined' : (0, _typeof3.default)(params)) == 'object') { - query = (0, _assign2.default)(query, params); - params = {}; - } else { - query[params] = ''; - params = ''; - } - } - url = _requestUtils.HANDLE_URL.jointQuery(url, query); - url = _requestUtils.HANDLE_URL.replaceRest(url, rest); - - eoFreeze.data.flagFile = _requestUtils.HANDLE_PARAMS.judgeFileExist(params); - - var midEnvReulst = _commonUtils.COMMON_TOOLS.handleEnv(env, url, headers, params, raw, eoFreeze.data.requestType, eoFreeze.data.flagFile, eoFreeze.request.flagFormDataToJson); - if (midEnvReulst.type == 'error') { - eoFreeze.data.error = true; - eoFreeze.report.errorReason = midEnvReulst.errorReason; - } - url = midEnvReulst.url; - headers = midEnvReulst.headers; - params = midEnvReulst.params; - raw = midEnvReulst.raw; - var midRequestParams = _requestUtils.HANDLE_PARAMS.handleRequestParams(headers, eoFreeze.data.requestType, eoFreeze.request.flagFormDataToJson, eoFreeze.data.flagFile, params, raw, eoFreeze.request.ContentType, eoFreeze.request.processData, eoFreeze.report.requestType); - eoFreeze.report.params = midRequestParams.report; - eoFreeze.request.params = midRequestParams.request; - raw = midRequestParams.raw; - eoFreeze.request.processData = midRequestParams.processData; - eoFreeze.request.ContentType = midRequestParams.ContentType; - eoFreeze.report.requestType = midRequestParams.reportType; - url = _requestUtils.HANDLE_URL.handleProtocol(url, eoFreeze.data.httpHeader); - url = encodeURI(decodeURI(url)); - if (eoFreeze.data.error) { - var index = 0; - - if (amount != length) { - index = webInfo.index - 1; - } else { - index = k; - } - backResult.responseList[index] = { - general: { - requestUrl: url, - requestMethod: eoFreeze.data.method, - statusCode: 0 - }, - requestHeaders: allRequestHeaders[k], - requestBody: { - requestType: eoFreeze.request.requestType, - body: eoFreeze.report.params - }, - responseType: 'error', - errorReason: eoFreeze.report.errorReason - }; - batch.postMessage(backResult); - continue; - } - - - - eoData.array.push({ - headers: headers, - apiUrl: url, - auth: eoFreeze.data.auth - }); - if (eoFreeze.data.method == 'GET') { - eoFreeze.request.ContentType = false; - eoFreeze.report.params = {}; - } - Ajax = $.ajax({ - url: url, - traditional: true, - beforeSend: function beforeSend(request) { - - eoFreeze.request.beforeTime = new Date(); - this.eolinkerk = k; - - this.matchRule = webInfo.caseList[k].matchRule; - this.matchType = webInfo.caseList[k].matchType; - this.statuCode = webInfo.caseList[k].statusCode; - this.Url = url; - this.requestType = eoFreeze.request.requestType; - this.reportParams = eoFreeze.report.params; - this.method = eoFreeze.data.method; - this.errorReason = eoFreeze.report.errorReason; - this.afterScript = eoFreeze.data.afterScript; - this.error = eoFreeze.data.error; - var allHeaders = {}; - for (var i = eoFreeze.data.headers.length - 1; i >= 0; i--) { - allHeaders[eoFreeze.data.headers[i].headerName] = eoFreeze.data.headers[i].headerValue; - } - this.headers = allHeaders; - }, - processData: eoFreeze.request.processData, - contentType: eoFreeze.request.ContentType, - type: eoFreeze.data.method, - async: true, - data: eoFreeze.request.params - }).done(function (successData, textStatus, xhr) { - eoFreeze.response.whichXhr = 'success'; - }).fail(function (xhr, textStatus) { - eoFreeze.response.whichXhr = 'error'; - }).always(function (successData, textStatus, jqXHR) { - var id = this.eolinkerk; - if (textStatus == 'abort') { - if (amount != length) { - - backResult.responseList[webInfo.index - 1] = null; - } else { - backResult.responseList[id] = null; - } - } else { - var matchType = this.matchType; - var matchRule = this.matchRule; - var apiUrl = this.Url; - var method = this.method; - var headers = this.headers; - - var statusCode = this.statuCode; - var requestType = this.requestType; - var errorReason = this.errorReason; - var error = this.error; - var Script = this.afterScript; - var reportParams = this.reportParams; - - var isMatch = false; - - var xhr; - if (eoFreeze.response.whichXhr == 'success') { - xhr = jqXHR; - } else { - xhr = successData; - } - if (xhr.status != 0 && error == false) { - - if (eoFreeze.data.productType != 1) { - try { - response = JSON.parse(xhr.responseText); - } catch (e) { - response = xhr.responseText; - } - } else { - response = xhr.responseText; - } - var afterResult = _injectCode.INJECT_CODE.evalAfterScript(Script, response, env, eoFreeze.data.eo); - if (afterResult.error) { - error = true; - errorReason = afterResult.errorReason; - } else { - response = afterResult.response; - - env = afterResult.env; - } - var responseText = response; - var parseBody = response; - try { - if (typeof response != 'string') { - responseText = (0, _stringify2.default)(response); - if ((0, _stringify2.default)(JSON.parse(xhr.responseText)) == responseText) { - responseText = xhr.responseText; - } - } else { - responseText = response; - parseBody = JSON.parse(response); - } - } catch (e) {}; - - if (error == true) { - isMatch = false; - } else { - if (matchType == 2) { - - isMatch = true; - } else { - if (xhr.status == statusCode) { - if (matchType == 0) { - - if (responseText == matchRule) { - isMatch = true; - } else { - isMatch = false; - errorReason = '完全匹配失败,匹配规则为' + matchRule + ',实际返回' + responseText; - } - } else if (matchType == 1) { - - try { - var patt = new RegExp(matchRule); - isMatch = patt.test(responseText); - if (isMatch == false) { - errorReason = '正则匹配失败,' + matchRule + ',实际返回' + responseText; - } - } catch (e) { - isMatch = false; - errorReason = '正则匹配失败,请检查您填写的正则表达式'; - } - } else if (matchType == 3) { - var match = matchRule; - try { - match = JSON.parse((0, _stringify2.default)(matchRule)); - } catch (e) {} - var _result = _commonUtils.COMMON_TOOLS.selfLoopMatchJson(match, parseBody); - isMatch = _result.isMatch; - errorReason = _result.errorReason; - } else if (matchType == 4) { - var _match = matchRule; - try { - _match = JSON.parse((0, _stringify2.default)(matchRule)); - } catch (e) {} - - try { - var json = $.xml2json(parseBody); - var result = _commonUtils.COMMON_TOOLS.selfLoopMatchJson(_match, json); - errorReason = result.errorReason; - isMatch = result.isMatch; - } catch (e) { - console.log('xml:', e); - if (e) { - isMatch = false; - errorReason = 'xml格式不正确,无法进行xml匹配'; - } - } - } - } else { - isMatch = false; - errorReason = '状态码不匹配,匹配规则为' + statusCode + ',实际返回' + xhr.status; - } - } - } - var testDeny = new Date(), - testTime = '', - Time = _commonUtils.COMMON_TOOLS.handleTime(eoFreeze.request.beforeTime); - var allResponseHeaders = xhr.getAllResponseHeaders(); - - allResponseHeaders = handleResponseHeader(allResponseHeaders); - allResponseHeaders = allResponseHeaders.sort(_commonUtils.COMMON_TOOLS.sortArray); - } else { - isMatch = false; - } - isMatch = isMatch ? "success" : 'error'; - - var responseListID = 0; - if (amount != length) { - responseListID = webInfo.index - 1; - } else { - responseListID = id; - } - backResult.responseList[responseListID] = { - general: { - requestUrl: apiUrl, - requestMethod: method, - statusCode: xhr.status - }, - responseHeaders: allResponseHeaders, - requestHeaders: allRequestHeaders[id], - requestBody: { - requestType: requestType, - body: reportParams - }, - response: responseText, - responseType: isMatch, - errorReason: errorReason - }; - } - if (k = length - 1) { - chrome.webRequest.onBeforeSendHeaders.removeListener(handleRequestHeaders); - } - batch.postMessage(backResult); - }); - - if (webInfo.index == 0) { - BATCH.ajaxs[k] = Ajax; - } else { - BATCH.ajaxs[webInfo.index - 1] = Ajax; - } - } - } - })(); - } - }); - } -}); - -/***/ }), -/* 123 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -var _regenerator = __webpack_require__(58); - -var _regenerator2 = _interopRequireDefault(_regenerator); - -var _stringify = __webpack_require__(18); - -var _stringify2 = _interopRequireDefault(_stringify); - -var _getIterator2 = __webpack_require__(14); - -var _getIterator3 = _interopRequireDefault(_getIterator2); - -var _values = __webpack_require__(116); - -var _values2 = _interopRequireDefault(_values); - -var _keys = __webpack_require__(117); - -var _keys2 = _interopRequireDefault(_keys); - -var _slicedToArray2 = __webpack_require__(27); - -var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); - -var _entries4 = __webpack_require__(28); - -var _entries5 = _interopRequireDefault(_entries4); - -var _typeof2 = __webpack_require__(29); - -var _typeof3 = _interopRequireDefault(_typeof2); - -var _promise = __webpack_require__(43); - -var _promise2 = _interopRequireDefault(_promise); - -var _assign = __webpack_require__(38); - -var _assign2 = _interopRequireDefault(_assign); - -var _asyncToGenerator2 = __webpack_require__(63); - -var _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); - -var _commonUtils = __webpack_require__(19); - -var _requestUtils = __webpack_require__(42); - -var _injectCode = __webpack_require__(98); - -var _envCase = __webpack_require__(115); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -"use strict"; -var AUTO = { - ajaxs: [] -}; -chrome.runtime.onConnect.addListener(function (auto) { - if (auto.name == "autoTest") { - var initiator = window.location.origin; - auto.onMessage.addListener(function (caseList) { - var scar_Test = function () { - var _ref = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee2() { - var autoData, env, backResult, paramList, i, headerList, additionalParamList, jointStr, sendRequest, asyncControl, _afterCase, caseLen, amount, productType, batchIndex, response, codeTestTime, caseListIndex, cookieObj; - - return _regenerator2.default.wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - if (!(caseList.stopStatus == true)) { - _context2.next = 4; - break; - } - - - if (caseList.index == 0) { - _commonUtils.COMMON_TOOLS.abortAll(AUTO.ajaxs); - } else { - AUTO.ajaxs[caseList.index - 1].abort(); - } - _context2.next = 14; - break; - - case 4: - autoData = { - preCode: { - result: { - cookie: { - cookie: { - example: { - cookieStr: '', - obj: {} - } - }, - defaultCookie: { - example: { - cookieStr: '', - obj: {} - } - } - }, - report: [] - }, - stopStatus: true - } - - }; - env = { - baseUrl: '', - headers: {}, - extraParams: {}, - globalParams: {} - }; - backResult = { - beforeCaseReportList: autoData.preCode.result.report, - reportStatus: 'finish', - time: '0ms', - afterCaseReportList: [], - responseList: [{ - responseType: "success" - }], - status: 'tested' - }; - - - if (!(caseList.beforeCase.caseCodeList != false)) { - _context2.next = 12; - break; - } - - _context2.next = 10; - return (0, _envCase.handleCaseCode)(caseList.productType, caseList.beforeCase).then(function (result) { - autoData.preCode.result = result; - backResult.beforeCaseReportList = autoData.preCode.result.report; - env = result.env; - }).catch(function (e) { - if (e == 'stop') { - autoData.preCode.stopStatus = false; - } - }); - - case 10: - _context2.next = 13; - break; - - case 12: - if (!$.isEmptyObject(caseList.env)) { - - if (caseList.productType == 1 || caseList.productType == 2 && !caseList.oldVersion) { - env.baseUrl = env.baseUrl == '' ? caseList.env.frontURI : env.baseUrl; - } else { - if (caseList.env.frontURIList[0]) { - env.baseUrl = env.baseUrl == '' ? caseList.env.frontURIList[0].uri : env.baseUrl; - } - } - paramList = {}; - - for (i = 0; i < caseList.env.paramList.length; i++) { - paramList[caseList.env.paramList[i].paramKey] = caseList.env.paramList[i].paramValue; - } - headerList = {}; - - for (i = 0; i < caseList.env.headerList.length; i++) { - headerList[caseList.env.headerList[i].headerName] = caseList.env.headerList[i].headerValue; - } - additionalParamList = {}; - - for (i = 0; i < caseList.env.additionalParamList.length; i++) { - additionalParamList[caseList.env.additionalParamList[i].paramKey] = caseList.env.additionalParamList[i].paramValue; - } - env.headers = (0, _assign2.default)({}, headerList, env.headers); - env.extraParams = (0, _assign2.default)({}, additionalParamList, env.extraParams); - env.globalParams = (0, _assign2.default)({}, paramList, env.globalParams); - env.envAuth = (0, _assign2.default)({}, caseList.env.envAuth); - } - - case 13: - if (autoData.preCode.stopStatus) { - - - jointStr = function jointStr(val) { - var template = { - output: val, - match: [] - }; - template.match = (val || '').trim().match(/()).)*(>)/g); - if (template.match) { - template.match.map(function (val, key) { - try { - var replaceString = eval(val.substring(1, val.length - 1)); - template.output = _commonUtils.COMMON_TOOLS.replaceAll('.' + val + '.', replaceString, template.output); - template.output = _commonUtils.COMMON_TOOLS.replaceAll('.' + val, replaceString, template.output); - template.output = _commonUtils.COMMON_TOOLS.replaceAll(val + '.', replaceString, template.output); - template.output = _commonUtils.COMMON_TOOLS.replaceAll(val, replaceString, template.output); - } catch (e) {} - }); - } - return template.output; - }; - - sendRequest = function sendRequest(k) { - return new _promise2.default(function (resolve, reject) { - var caseData = JSON.parse(caseList.caseData[k].caseData); - var error = {}; - var eoFreeze = { - constant: {}, - request: { - apiUrl: caseData.URL, - requestHeaders: {}, - responseHeaders: {}, - httpHeader: caseData.httpHeader, - params: {}, - beforeTime: new Date(), - flagFormDataToJson: caseData.toJson ? caseData.toJson : false, - processData: true, - ContentType: 'application/x-www-form-urlencoded;charset=utf-8' - }, - response: { - error: {}, - whichXhr: 'success' - }, - report: { - params: {}, - requestType: caseData.requestType, - errorText: '', - headers: {} - }, - data: { - productType: caseList.productType, - keepGoing: caseData.keepGoing || false, - error: false, - httpHeader: caseData.httpHeader, - requestType: caseData.requestType, - method: caseData.apiRequestType, - params: caseData.params, - restfulParams: caseData.restfulParam || [], - raw: caseData.raw, - headers: caseData.headers, - Url: caseData.URL, - env: caseList.env, - auth: caseData.auth, - beforeScript: caseData.script ? caseData.script.before : '', - afterScript: caseData.script ? caseData.script.after : '', - commonFunList: caseList.commonFunList || [], - errorReason: '' - } - }; - if (eoFreeze.data.auth && eoFreeze.data.auth.status != '0') { - env.envAuth = { - status: '0' - }; - } - - var url = '', - params = {}, - headers = {}, - query = {}, - raw = '', - rest = {}; - - var Redirection = { - status: false, - location: '' - }; - - var host = ''; - var responseHeaders = {}; - - eoFreeze.data.method = _commonUtils.COMMON_TOOLS.judgeRequestMethod(eoFreeze.data.method); - - function handleArguments() { - for (var i = 0; i < eoFreeze.data.restfulParams.length;) { - if (!eoFreeze.data.restfulParams[i].paramKey || !eoFreeze.data.restfulParams[i].checkbox) { - eoFreeze.data.restfulParams.splice(i, 1); - } else { - var midUrl = url; - var beforeUrl = url; - midUrl = midUrl.replace(eval("/\{(?!\{)" + eoFreeze.data.restfulParams[i].paramKey + "\}(?!\})/g"), eoFreeze.data.restfulParams[i].paramInfo); - midUrl = midUrl.replace(eval("/\:" + eoFreeze.data.restfulParams[i].paramKey + "/g"), eoFreeze.data.restfulParams[i].paramInfo); - if (beforeUrl != midUrl) { - rest[eoFreeze.data.restfulParams[i].paramKey] = jointStr(eoFreeze.data.restfulParams[i].paramInfo); - } else { - if (eoFreeze.data.requestType != '1') { - eoFreeze.data.params.push(eoFreeze.data.restfulParams[i]); - } - } - i++; - } - } - switch (eoFreeze.data.requestType) { - case '0': - case '2': - { - - - for (var i = 0; i < eoFreeze.data.params.length;) { - if (!eoFreeze.data.params[i].paramKey || !eoFreeze.data.params[i].checkbox) { - eoFreeze.data.params.splice(i, 1); - } else { - eoFreeze.data.params[i].paramInfo = jointStr(eoFreeze.data.params[i].paramInfo) || ''; - i++; - } - } - if (eoFreeze.data.requestType == '2') { - - for (var i = 0; i < eoFreeze.data.params.length;) { - var beforUrl = url; - url = url.replace(eval("/\{(?!\{)" + eoFreeze.data.params[i].paramKey + "\}(?!\})/g"), eoFreeze.data.params[i].paramInfo); - url = url.replace(eval("/\:" + eoFreeze.data.params[i].paramKey + "/g"), eoFreeze.data.params[i].paramInfo); - if (beforUrl != url) { - - eoFreeze.data.params.splice(i, 1); - } else { - i++; - } - } - } - - if (!$.isEmptyObject(eoFreeze.data.env)) { - var envParams = eoFreeze.data.env.additionalParamList; - envParams.forEach(function (value, key) { - eoFreeze.data.params.unshift({ - paramKey: value.paramKey, - paramInfo: value.paramValue || '' - }); - }); - } - if (!eoFreeze.request.flagFormDataToJson) { - for (var i = 0; i < eoFreeze.data.params.length; i++) { - if (eoFreeze.data.params[i].paramKey in params) { - if ((0, _typeof3.default)(params[eoFreeze.data.params[i].paramKey]) == 'object') { - params[eoFreeze.data.params[i].paramKey].push(eoFreeze.data.params[i].paramInfo || ''); - } else { - params[eoFreeze.data.params[i].paramKey] = [params[eoFreeze.data.params[i].paramKey], eoFreeze.data.params[i].paramInfo || '']; - } - } else { - params[eoFreeze.data.params[i].paramKey] = eoFreeze.data.params[i].paramInfo || ''; - } - } - } else { - - var formJsonData = _requestUtils.HANDLE_PARAMS.handleFormJson(eoFreeze.data.params); - if (formJsonData.error.status == 1) { - eoFreeze.data.error = true; - eoFreeze.data.errorReason = formJsonData.error; - } - if (eoFreeze.data.beforeScript) { - params = JSON.parse(formJsonData.dataParams); - } else { - params = formJsonData.dataParams; - } - } - break; - } - case '1': - { - if (eoFreeze.data.raw) { - eoFreeze.data.raw = jointStr(eoFreeze.data.raw); - } - raw = eoFreeze.data.raw; - break; - } - } - - for (var i = 0; i < eoFreeze.data.headers.length;) { - if (!eoFreeze.data.headers[i].headerName || !eoFreeze.data.headers[i].checkbox) { - eoFreeze.data.headers.splice(i, 1); - } else { - headers[eoFreeze.data.headers[i].headerName] = jointStr(eoFreeze.data.headers[i].headerValue); - i++; - } - } - - if (eoFreeze.data.auth) { - switch (Number(eoFreeze.data.auth.status)) { - case 1: - { - var str = eoFreeze.data.auth.basicAuth.username + ':' + eoFreeze.data.auth.basicAuth.password; - headers['Authorization'] = 'Basic ' + CryptoJS.enc.Base64.stringify(CryptoJS.enc.Utf8.parse(str)); - break; - } - case 2: - { - var compareTable = { - 'query': query, - 'header': headers - }; - var result = _commonUtils.COMMON_TOOLS.jwtEncode(eoFreeze.data.auth.jwtAuth); - if (result.type == 'error') { - eoFreeze.data.error = true; - eoFreeze.data.errorReason = result.errorReason; - } else { - compareTable[eoFreeze.data.auth.jwtAuth.position][eoFreeze.data.auth.jwtAuth.tokenName || ""] = result; - } - } - } - } - } - - url = eoFreeze.request.apiUrl; - query = _requestUtils.HANDLE_URL.splitQuery(url); - handleArguments(); - - - var beforeResponse = (0, _assign2.default)({}, response); - if (eoFreeze.data.beforeScript || eoFreeze.data.afterScript) { - eoFreeze.data.eo = _injectCode.INJECT_CODE.defineEo(eoFreeze.data.commonFunList); - } - var beforeResult = _injectCode.INJECT_CODE.evalBeforeScript(eoFreeze.data.beforeScript, url, query, headers, params, raw, env, eoFreeze.data.eo, beforeResponse); - if (beforeResult.error) { - eoFreeze.data.error = true; - eoFreeze.data.errorReason = beforeResult.errorReason; - } else { - url = beforeResult.url; - query = beforeResult.query; - headers = beforeResult.headers; - params = beforeResult.params; - raw = beforeResult.raw; - env = beforeResult.env; - } - if (eoFreeze.data.method == 'GET') { - if ((typeof params === 'undefined' ? 'undefined' : (0, _typeof3.default)(params)) == 'object') { - query = (0, _assign2.default)(query, params); - params = {}; - } else { - query[params] = ''; - params = ''; - } - } - url = _requestUtils.HANDLE_URL.jointQuery(url, query); - url = _requestUtils.HANDLE_URL.replaceRest(url, rest); - eoFreeze.data.flagFile = false; - var key = Object.key, - value = Object.value, - entries = _entries5.default; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = (0, _getIterator3.default)(entries(params)), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var _ref2 = _step.value; - - var _ref3 = (0, _slicedToArray3.default)(_ref2, 2); - - var _key = _ref3[0]; - var _value = _ref3[1]; - - if (Object.prototype.toString.call(_value) == '[object Blob]') { - eoFreeze.data.flagFile = true; - } - if (Object.prototype.toString.call(_value) == '[object Array]') { - _value.forEach(function (item) { - if (Object.prototype.toString.call(item) == '[object Blob]') { - eoFreeze.data.flagFile = true; - } - }); - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator.return) { - _iterator.return(); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - var midEnvReulst = _commonUtils.COMMON_TOOLS.handleEnv(env, url, headers, params, raw, eoFreeze.data.requestType, eoFreeze.data.flagFile, eoFreeze.request.flagFormDataToJson); - if (midEnvReulst.type == 'error') { - eoFreeze.data.error = true; - eoFreeze.data.errorReason = midEnvReulst.errorReason; - } - url = midEnvReulst.url; - headers = midEnvReulst.headers; - params = midEnvReulst.params; - raw = midEnvReulst.raw; - var midRequestParams = _requestUtils.HANDLE_PARAMS.handleRequestParams(headers, eoFreeze.data.requestType, eoFreeze.request.flagFormDataToJson, eoFreeze.data.flagFile, params, raw, eoFreeze.request.ContentType, eoFreeze.request.processData, eoFreeze.report.requestType); - eoFreeze.report.params = midRequestParams.report; - eoFreeze.request.params = midRequestParams.request; - raw = midRequestParams.raw; - eoFreeze.request.processData = midRequestParams.processData; - eoFreeze.request.ContentType = midRequestParams.ContentType; - eoFreeze.report.requestType = midRequestParams.reportType; - url = _requestUtils.HANDLE_URL.handleProtocol(url, eoFreeze.request.httpHeader); - url = encodeURI(decodeURI(url)); - if (eoFreeze.data.error) { - var caseListID = 0; - if (caseListIndex != 0) { - caseListID = caseListIndex - 1; - } else { - caseListID = k; - } - backResult.responseList[caseListID] = { - apiIndex: caseListID, - isStopTest: true, - keepGoing: eoFreeze.data.keepGoing, - general: { - time: '0ms', - requestUrl: url, - requestMethod: eoFreeze.data.method, - statusCode: 0, - name: caseList.caseData[k].apiName, - match: { - rule: caseList.caseData[k].matchRule, - type: caseList.caseData[k].matchType, - statusCode: caseList.caseData[k].statusCode - } - }, - responseHeaders: [], - requestHeaders: eoFreeze.request.requestHeaders, - requestBody: { - requestType: eoFreeze.report.requestType, - body: eoFreeze.report.params - }, - response: '', - errorReason: eoFreeze.data.errorReason, - responseType: 'error' - }; - reject('test error'); - return; - } - - function getCookieObj(value, cookieDetail) { - var items = value.split(";"); - for (var i = 0; i < items.length; i++) { - var item = items[i].split("="); - if (item[1]) { - - cookieDetail.obj[item[0].replace(/\s+|"+/g, "")] = item[1]; - } else { - - cookieDetail.cookieStr = cookieDetail.cookieStr + items[i]; - } - } - return cookieDetail; - } - - - function handleRequestHeaders(details) { - if (!details.initiator) { - if (navigator.userAgent.indexOf('Firefox') > -1) { - details.initiator = details.originUrl.replace('/_generated_background_page.html', ''); - } else { - for (var j = details.requestHeaders.length - 1; j >= 0; j--) { - if (details.requestHeaders[j].name.toLowerCase() == 'origin') { - details.initiator = details.requestHeaders[j].value; - break; - } - } - } - } - var url1 = _requestUtils.HANDLE_URL.handleRightUrl(url); - - if ((details.initiator == initiator || details.tabId == -1) && (details.url.indexOf(url1) > -1 || Redirection.status && details.url.indexOf(Redirection.location) > -1)) { - - var headerCookieFlag = false; - var cookieName = 'cookie'; - var _host = _requestUtils.HANDLE_URL.destRequestUrl(details.url).hostname; - - if (!(_host in cookieObj.cookie)) { - - cookieObj.cookie[_host] = { - cookieStr: '', - obj: {} - }; - } - - for (var j = details.requestHeaders.length - 1; j >= 0; j--) { - if (details.requestHeaders[j].name.toLowerCase() == 'cookie') { - cookieName = details.requestHeaders[j].name; - details.requestHeaders.splice(j, 1); - } - } - var _key2 = Object.key, - _value2 = Object.value, - _entries = _entries5.default; - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = (0, _getIterator3.default)(_entries(headers)), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var _ref4 = _step2.value; - - var _ref5 = (0, _slicedToArray3.default)(_ref4, 2); - - var _key3 = _ref5[0]; - var _value3 = _ref5[1]; - - var headerFlag = false; - - for (var j = details.requestHeaders.length - 1; j >= 0; j--) { - if (details.requestHeaders[j].name.toLowerCase() == _key3.toLowerCase()) { - headerFlag = true; - details.requestHeaders[j].name = _key3; - details.requestHeaders[j].value = _value3; - } - } - - if (headerFlag == false) { - details.requestHeaders.push({ - name: _key3, - value: _value3 - }); - } - - if (_key3.toLowerCase() == 'cookie') { - headerCookieFlag = true; - - cookieObj.cookie[_host] = getCookieObj(_value3, cookieObj.cookie[_host]); - } - } - - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2.return) { - _iterator2.return(); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - - if (headerCookieFlag == false) { - var cookieValue = ''; - var keys = _keys2.default, - values = _values2.default, - _entries2 = _entries5.default; - - - if (!(_host in cookieObj.defaultCookie)) { - cookieObj.defaultCookie[_host] = { - cookieStr: '', - obj: {} - }; - } - var _iteratorNormalCompletion3 = true; - var _didIteratorError3 = false; - var _iteratorError3 = undefined; - - try { - for (var _iterator3 = (0, _getIterator3.default)(_entries2(cookieObj.cookie[_host].obj)), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { - var _ref6 = _step3.value; - - var _ref7 = (0, _slicedToArray3.default)(_ref6, 2); - - var _key4 = _ref7[0]; - var _value4 = _ref7[1]; - - cookieObj.defaultCookie[_host].obj[_key4] = _value4; - } - } catch (err) { - _didIteratorError3 = true; - _iteratorError3 = err; - } finally { - try { - if (!_iteratorNormalCompletion3 && _iterator3.return) { - _iterator3.return(); - } - } finally { - if (_didIteratorError3) { - throw _iteratorError3; - } - } - } - - var _iteratorNormalCompletion4 = true; - var _didIteratorError4 = false; - var _iteratorError4 = undefined; - - try { - for (var _iterator4 = (0, _getIterator3.default)(_entries2(cookieObj.defaultCookie[_host].obj)), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { - var _ref8 = _step4.value; - - var _ref9 = (0, _slicedToArray3.default)(_ref8, 2); - - var _key5 = _ref9[0]; - var _value5 = _ref9[1]; - - cookieValue = cookieValue + _key5 + '=' + _value5 + ';'; - } - - } catch (err) { - _didIteratorError4 = true; - _iteratorError4 = err; - } finally { - try { - if (!_iteratorNormalCompletion4 && _iterator4.return) { - _iterator4.return(); - } - } finally { - if (_didIteratorError4) { - throw _iteratorError4; - } - } - } - - cookieValue = cookieValue + cookieObj.cookie[_host].cookieStr; - if (cookieValue != '') { - details.requestHeaders.push({ - name: cookieName, - value: cookieValue - }); - } - } - - for (var j = 0; j < details.requestHeaders.length; j++) { - eoFreeze.request.requestHeaders[details.requestHeaders[j].name] = details.requestHeaders[j].value; - } - } - return { - requestHeaders: details.requestHeaders - }; - } - - function getResponseHeaders(details) { - if (!details.initiator) { - if (navigator.userAgent.indexOf('Firefox') > -1) { - details.initiator = details.originUrl.replace('/_generated_background_page.html', ''); - } else { - details.initiator = ''; - } - } - var url1 = _requestUtils.HANDLE_URL.handleRightUrl(url); - if ((details.initiator == initiator || details.tabId == -1) && (details.url.indexOf(url1) > -1 || Redirection.status)) { - var _host2 = _requestUtils.HANDLE_URL.destRequestUrl(details.url).hostname; - if (details.statusCode == 302 || details.statusCode == 301 || details.statusCode == 307) { - Redirection.status = true; - } - - details.responseHeaders.forEach(function (header) { - if (header.name.toLowerCase() == 'location') { - Redirection.location = header.value; - } - - if (header.name in eoFreeze.request.responseHeaders) { - eoFreeze.request.responseHeaders[header.name] = eoFreeze.request.responseHeaders[header.name] + ";" + header.value; - } else { - eoFreeze.request.responseHeaders[header.name] = header.value; - } - }); - var _key6 = Object.key, - _value6 = Object.value, - _entries3 = _entries5.default; - - - if (!(_host2 in cookieObj.defaultCookie)) { - cookieObj.defaultCookie[_host2] = { - cookieStr: '', - obj: {} - }; - } - var _iteratorNormalCompletion5 = true; - var _didIteratorError5 = false; - var _iteratorError5 = undefined; - - try { - for (var _iterator5 = (0, _getIterator3.default)(_entries3(eoFreeze.request.responseHeaders)), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) { - var _ref10 = _step5.value; - - var _ref11 = (0, _slicedToArray3.default)(_ref10, 2); - - var _key7 = _ref11[0]; - var _value7 = _ref11[1]; - - if (_key7.toLowerCase() == 'set-cookie') { - cookieObj.defaultCookie[_host2] = getCookieObj(_value7, cookieObj.defaultCookie[_host2]); - } - } - } catch (err) { - _didIteratorError5 = true; - _iteratorError5 = err; - } finally { - try { - if (!_iteratorNormalCompletion5 && _iterator5.return) { - _iterator5.return(); - } - } finally { - if (_didIteratorError5) { - throw _iteratorError5; - } - } - } - } - } - window.parent.chrome.webRequest.onBeforeSendHeaders.addListener(handleRequestHeaders, { - urls: ["http://*/*", "https://*/*"], - types: ["xmlhttprequest"] - }, ["blocking", "requestHeaders"]); - window.parent.chrome.webRequest.onHeadersReceived.addListener(getResponseHeaders, { - urls: [""] - }, ["responseHeaders", "blocking"]); - if (eoFreeze.data.method == 'GET') { - eoFreeze.request.ContentType = false; - } - var Ajax = $.ajax({ - url: url, - traditional: true, - beforeSend: function beforeSend(request) { - eoFreeze.request.beforeTime = new Date(); - }, - contentType: eoFreeze.request.ContentType, - processData: eoFreeze.request.processData, - type: eoFreeze.data.method, - async: true, - data: eoFreeze.request.params - }).done(function (successData, textStatus, xhr) { - eoFreeze.response.whichXhr = 'success'; - }).fail(function (xhr, textStatus) { - eoFreeze.response.whichXhr = 'error'; - if (xhr.status == 0) { - error = { - status: 1, - errorText: 'target server no answer' - }; - } - }).always(function (successData, textStatus, jqXHR) { - chrome.webRequest.onBeforeSendHeaders.removeListener(handleRequestHeaders); - chrome.webRequest.onHeadersReceived.removeListener(getResponseHeaders); - if (textStatus != 'abort') { - - var body = ''; - var matchType = caseList.caseData[k].matchType; - var matchRule = caseList.caseData[k].matchRule; - var keepGoing = eoFreeze.data.keepGoing; - - var isMatch = false; - var strMatch = ''; - var statusCode = caseList.caseData[k].statusCode; - - var xhr; - if (eoFreeze.response.whichXhr == 'success') { - xhr = jqXHR; - } else { - xhr = successData; - } - - var testDeny = new Date() - eoFreeze.request.beforeTime; - if (xhr.status != 0 && eoFreeze.data.error == false) { - var responseText = xhr.responseText; - - var body = xhr.responseText; - if (eoFreeze.data.productType == 0) { - try { - body = JSON.parse(xhr.responseText); - } catch (e) { - body = xhr.responseText; - } - } else { - body = xhr.responseText; - } - - var afterResult = _injectCode.INJECT_CODE.evalAfterScript(eoFreeze.data.afterScript, body, env, eoFreeze.data.eo); - if (afterResult.error) { - eoFreeze.data.error = true; - eoFreeze.data.errorReason = afterResult.errorReason; - - - } else { - - body = afterResult.response; - env = afterResult.env; - } - var parseBody = body; - try { - if (typeof body != 'string') { - responseText = (0, _stringify2.default)(body); - if ((0, _stringify2.default)(JSON.parse(xhr.responseText)) == responseText) { - responseText = xhr.responseText; - } - } else { - responseText = body; - parseBody = JSON.parse(body); - } - } catch (e) {}; - try { - response[caseList.caseData[k].connID] = parseBody; - var json = $.xml2json(parseBody); - response[caseList.caseData[k].connID] = json; - } catch (e) {} - - if (eoFreeze.data.error == false) { - if (matchType == 3) { - isMatch = true; - } else { - - if (xhr.status == statusCode) { - - if (matchType == 0) { - - if (responseText == matchRule) { - isMatch = true; - } else { - isMatch = false; - eoFreeze.data.errorReason = '完全匹配失败,匹配规则为:' + matchRule + ',实际返回' + responseText; - } - } else if (matchType == 1) { - - try { - var patt = new RegExp(matchRule); - isMatch = patt.test(responseText); - if (isMatch == false) { - eoFreeze.data.errorReason = '正则匹配失败,匹配规则为:Reg=' + matchRule + ',实际返回' + responseText; - } - } catch (e) { - isMatch = false; - eoFreeze.data.errorReason = '正则匹配失败,请检查您填写的正则表达式'; - } - } else if (matchType == 2) { - var match = matchRule; - - - try { - match = JSON.parse((0, _stringify2.default)(matchRule)); - } catch (e) {} - var result = _commonUtils.COMMON_TOOLS.selfLoopMatchJson(match, parseBody); - eoFreeze.data.errorReason = result.errorReason; - isMatch = result.isMatch; - } else if (matchType == 4) { - var _match = matchRule; - try { - _match = JSON.parse((0, _stringify2.default)(matchRule)); - } catch (e) {} - try { - var json = $.xml2json(parseBody); - var result = _commonUtils.COMMON_TOOLS.selfLoopMatchJson(_match, json); - eoFreeze.data.errorReason = result.errorReason; - isMatch = result.isMatch; - } catch (e) { - if (e) { - isMatch = false; - eoFreeze.data.errorReason = 'xml格式不正确,无法进行xml匹配'; - } - } - } - } else { - isMatch = false; - eoFreeze.data.errorReason = '状态码不匹配,匹配规则为:' + statusCode + ',实际返回' + xhr.status; - } - } - } else { - isMatch = false; - } - } else { - isMatch = false; - } - strMatch = isMatch ? 'success' : 'error'; - var isStopTest = false; - if (eoFreeze.data.error || xhr.status == 0 || isMatch == false && !keepGoing) { - - isStopTest = true; - } - var _caseListID = 0; - if (caseListIndex != 0) { - _caseListID = caseListIndex - 1; - } else { - _caseListID = k; - } - backResult.responseList[_caseListID] = { - apiIndex: _caseListID, - isStopTest: isStopTest, - keepGoing: keepGoing, - general: { - time: testDeny + 'ms', - requestUrl: url, - requestMethod: eoFreeze.data.method, - statusCode: xhr.status, - name: caseList.caseData[k].apiName, - match: { - rule: matchRule, - type: matchType, - statusCode: statusCode - } - }, - responseHeaders: eoFreeze.request.responseHeaders, - requestHeaders: eoFreeze.request.requestHeaders, - requestBody: { - requestType: eoFreeze.report.requestType, - body: eoFreeze.report.params - }, - response: responseText, - errorReason: eoFreeze.data.errorReason, - responseType: strMatch - }; - if (isStopTest || k == amount - 1) { - codeTestTime.finishTime = new Date(); - codeTestTime.finishTime = codeTestTime.finishTime - codeTestTime.startTime; - backResult.time = codeTestTime.finishTime + "ms"; - } - if (batchIndex == undefined) { - auto.postMessage(backResult); - } - if (isMatch == false || isStopTest) { - backResult.reportStatus = 'error'; - } - - if (isStopTest) { - reject('test stop'); - } else { - resolve('success'); - } - } - }); - if (batchIndex != undefined) { - AUTO.ajaxs.push(Ajax); - } else { - if (caseListIndex == 0) { - AUTO.ajaxs[k] = Ajax; - } else { - AUTO.ajaxs[caseListIndex - 1] = Ajax; - } - } - }); - }; - - asyncControl = function () { - var _ref12 = (0, _asyncToGenerator3.default)( /*#__PURE__*/_regenerator2.default.mark(function _callee() { - var k; - return _regenerator2.default.wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - k = 0; - - case 1: - if (!(k < caseLen)) { - _context.next = 7; - break; - } - - _context.next = 4; - return sendRequest(k); - - case 4: - k++; - _context.next = 1; - break; - - case 7: - case 'end': - return _context.stop(); - } - } - }, _callee, this); - })); - - return function asyncControl() { - return _ref12.apply(this, arguments); - }; - }(); - - _afterCase = function _afterCase() { - if (caseList.afterCase.caseCodeList != false) { - caseList.afterCase.env = env; - caseList.afterCase.isAfter = true; - caseList.afterCase.cookie = cookieObj; - (0, _envCase.handleCaseCode)(caseList.productType, caseList.afterCase).then(function (result) { - backResult.afterCaseReportList = result.report; - auto.postMessage(backResult); - }).catch(function (e) { - console.log('afterCase', e); - }); - } else { - auto.postMessage(backResult); - } - }; - - caseLen = caseList.caseData.length; - amount = caseList.amount; - productType = caseList.productType; - batchIndex = caseList.batchIndex; - response = {}; - codeTestTime = { - startTime: null, - finishTime: null - }; - caseListIndex = caseList.index; - - - cookieObj = autoData.preCode.result.cookie; - - backResult.batchIndex = batchIndex; - - if (caseListIndex == 0 && batchIndex == 'undefined') { - AUTO.ajaxs = []; - } - backResult.responseList = new Array(amount); - codeTestTime.startTime = new Date(); - asyncControl().then(function () { - _afterCase(); - }).catch(function (e) { - console.log(e); - _afterCase(); - }); - } - - case 14: - case 'end': - return _context2.stop(); - } - } - }, _callee2, this); - })); - - return function scar_Test() { - return _ref.apply(this, arguments); - }; - }(); - - scar_Test(); - }); - } -}); - -/***/ }), -/* 124 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(125); -module.exports = __webpack_require__(0).Object.values; - - -/***/ }), -/* 125 */ -/***/ (function(module, exports, __webpack_require__) { - - -var $export = __webpack_require__(4); -var $values = __webpack_require__(64)(false); - -$export($export.S, 'Object', { - values: function values(it) { - return $values(it); - } -}); - - -/***/ }), -/* 126 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(127); -module.exports = __webpack_require__(0).Object.keys; - - -/***/ }), -/* 127 */ -/***/ (function(module, exports, __webpack_require__) { - - -var toObject = __webpack_require__(45); -var $keys = __webpack_require__(13); - -__webpack_require__(118)('keys', function () { - return function keys(it) { - return $keys(toObject(it)); - }; -}); - - -/***/ }), -/* 128 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(129), __esModule: true }; - -/***/ }), -/* 129 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(130); -module.exports = __webpack_require__(0).Object.freeze; - - -/***/ }), -/* 130 */ -/***/ (function(module, exports, __webpack_require__) { - - -var isObject = __webpack_require__(5); -var meta = __webpack_require__(65).onFreeze; - -__webpack_require__(118)('freeze', function ($freeze) { - return function freeze(it) { - return $freeze && isObject(it) ? $freeze(meta(it)) : it; - }; -}); - - -/***/ }) -/******/ ]); \ No newline at end of file diff --git a/eo-chrome-extension-4.0.1/js/libs/crypto-js.js b/eo-chrome-extension-4.0.1/js/libs/crypto-js.js deleted file mode 100644 index 17f2b11..0000000 --- a/eo-chrome-extension-4.0.1/js/libs/crypto-js.js +++ /dev/null @@ -1,5988 +0,0 @@ -;(function (root, factory) { - if (typeof exports === "object") { - // CommonJS - module.exports = exports = factory(); - } - else if (typeof define === "function" && define.amd) { - // AMD - define([], factory); - } - else { - // Global (browser) - root.CryptoJS = factory(); - } -}(this, function () { - - /** - * CryptoJS core components. - */ - var CryptoJS = CryptoJS || (function (Math, undefined) { - /* - * Local polyfil of Object.create - */ - var create = Object.create || (function () { - function F() {}; - - return function (obj) { - var subtype; - - F.prototype = obj; - - subtype = new F(); - - F.prototype = null; - - return subtype; - }; - }()) - - /** - * CryptoJS namespace. - */ - var C = {}; - - /** - * Library namespace. - */ - var C_lib = C.lib = {}; - - /** - * Base object for prototypal inheritance. - */ - var Base = C_lib.Base = (function () { - - - return { - /** - * Creates a new object that inherits from this object. - * - * @param {Object} overrides Properties to copy into the new object. - * - * @return {Object} The new object. - * - * @static - * - * @example - * - * var MyType = CryptoJS.lib.Base.extend({ - * field: 'value', - * - * method: function () { - * } - * }); - */ - extend: function (overrides) { - // Spawn - var subtype = create(this); - - // Augment - if (overrides) { - subtype.mixIn(overrides); - } - - // Create default initializer - if (!subtype.hasOwnProperty('init') || this.init === subtype.init) { - subtype.init = function () { - subtype.$super.init.apply(this, arguments); - }; - } - - // Initializer's prototype is the subtype object - subtype.init.prototype = subtype; - - // Reference supertype - subtype.$super = this; - - return subtype; - }, - - /** - * Extends this object and runs the init method. - * Arguments to create() will be passed to init(). - * - * @return {Object} The new object. - * - * @static - * - * @example - * - * var instance = MyType.create(); - */ - create: function () { - var instance = this.extend(); - instance.init.apply(instance, arguments); - - return instance; - }, - - /** - * Initializes a newly created object. - * Override this method to add some logic when your objects are created. - * - * @example - * - * var MyType = CryptoJS.lib.Base.extend({ - * init: function () { - * // ... - * } - * }); - */ - init: function () { - }, - - /** - * Copies properties into this object. - * - * @param {Object} properties The properties to mix in. - * - * @example - * - * MyType.mixIn({ - * field: 'value' - * }); - */ - mixIn: function (properties) { - for (var propertyName in properties) { - if (properties.hasOwnProperty(propertyName)) { - this[propertyName] = properties[propertyName]; - } - } - - // IE won't copy toString using the loop above - if (properties.hasOwnProperty('toString')) { - this.toString = properties.toString; - } - }, - - /** - * Creates a copy of this object. - * - * @return {Object} The clone. - * - * @example - * - * var clone = instance.clone(); - */ - clone: function () { - return this.init.prototype.extend(this); - } - }; - }()); - - /** - * An array of 32-bit words. - * - * @property {Array} words The array of 32-bit words. - * @property {number} sigBytes The number of significant bytes in this word array. - */ - var WordArray = C_lib.WordArray = Base.extend({ - /** - * Initializes a newly created word array. - * - * @param {Array} words (Optional) An array of 32-bit words. - * @param {number} sigBytes (Optional) The number of significant bytes in the words. - * - * @example - * - * var wordArray = CryptoJS.lib.WordArray.create(); - * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607]); - * var wordArray = CryptoJS.lib.WordArray.create([0x00010203, 0x04050607], 6); - */ - init: function (words, sigBytes) { - words = this.words = words || []; - - if (sigBytes != undefined) { - this.sigBytes = sigBytes; - } else { - this.sigBytes = words.length * 4; - } - }, - - /** - * Converts this word array to a string. - * - * @param {Encoder} encoder (Optional) The encoding strategy to use. Default: CryptoJS.enc.Hex - * - * @return {string} The stringified word array. - * - * @example - * - * var string = wordArray + ''; - * var string = wordArray.toString(); - * var string = wordArray.toString(CryptoJS.enc.Utf8); - */ - toString: function (encoder) { - return (encoder || Hex).stringify(this); - }, - - /** - * Concatenates a word array to this word array. - * - * @param {WordArray} wordArray The word array to append. - * - * @return {WordArray} This word array. - * - * @example - * - * wordArray1.concat(wordArray2); - */ - concat: function (wordArray) { - // Shortcuts - var thisWords = this.words; - var thatWords = wordArray.words; - var thisSigBytes = this.sigBytes; - var thatSigBytes = wordArray.sigBytes; - - // Clamp excess bits - this.clamp(); - - // Concat - if (thisSigBytes % 4) { - // Copy one byte at a time - for (var i = 0; i < thatSigBytes; i++) { - var thatByte = (thatWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; - thisWords[(thisSigBytes + i) >>> 2] |= thatByte << (24 - ((thisSigBytes + i) % 4) * 8); - } - } else { - // Copy one word at a time - for (var i = 0; i < thatSigBytes; i += 4) { - thisWords[(thisSigBytes + i) >>> 2] = thatWords[i >>> 2]; - } - } - this.sigBytes += thatSigBytes; - - // Chainable - return this; - }, - - /** - * Removes insignificant bits. - * - * @example - * - * wordArray.clamp(); - */ - clamp: function () { - // Shortcuts - var words = this.words; - var sigBytes = this.sigBytes; - - // Clamp - words[sigBytes >>> 2] &= 0xffffffff << (32 - (sigBytes % 4) * 8); - words.length = Math.ceil(sigBytes / 4); - }, - - /** - * Creates a copy of this word array. - * - * @return {WordArray} The clone. - * - * @example - * - * var clone = wordArray.clone(); - */ - clone: function () { - var clone = Base.clone.call(this); - clone.words = this.words.slice(0); - - return clone; - }, - - /** - * Creates a word array filled with random bytes. - * - * @param {number} nBytes The number of random bytes to generate. - * - * @return {WordArray} The random word array. - * - * @static - * - * @example - * - * var wordArray = CryptoJS.lib.WordArray.random(16); - */ - random: function (nBytes) { - var words = []; - - var r = (function (m_w) { - var m_w = m_w; - var m_z = 0x3ade68b1; - var mask = 0xffffffff; - - return function () { - m_z = (0x9069 * (m_z & 0xFFFF) + (m_z >> 0x10)) & mask; - m_w = (0x4650 * (m_w & 0xFFFF) + (m_w >> 0x10)) & mask; - var result = ((m_z << 0x10) + m_w) & mask; - result /= 0x100000000; - result += 0.5; - return result * (Math.random() > .5 ? 1 : -1); - } - }); - - for (var i = 0, rcache; i < nBytes; i += 4) { - var _r = r((rcache || Math.random()) * 0x100000000); - - rcache = _r() * 0x3ade67b7; - words.push((_r() * 0x100000000) | 0); - } - - return new WordArray.init(words, nBytes); - } - }); - - /** - * Encoder namespace. - */ - var C_enc = C.enc = {}; - - /** - * Hex encoding strategy. - */ - var Hex = C_enc.Hex = { - /** - * Converts a word array to a hex string. - * - * @param {WordArray} wordArray The word array. - * - * @return {string} The hex string. - * - * @static - * - * @example - * - * var hexString = CryptoJS.enc.Hex.stringify(wordArray); - */ - stringify: function (wordArray) { - // Shortcuts - var words = wordArray.words; - var sigBytes = wordArray.sigBytes; - - // Convert - var hexChars = []; - for (var i = 0; i < sigBytes; i++) { - var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; - hexChars.push((bite >>> 4).toString(16)); - hexChars.push((bite & 0x0f).toString(16)); - } - - return hexChars.join(''); - }, - - /** - * Converts a hex string to a word array. - * - * @param {string} hexStr The hex string. - * - * @return {WordArray} The word array. - * - * @static - * - * @example - * - * var wordArray = CryptoJS.enc.Hex.parse(hexString); - */ - parse: function (hexStr) { - // Shortcut - var hexStrLength = hexStr.length; - - // Convert - var words = []; - for (var i = 0; i < hexStrLength; i += 2) { - words[i >>> 3] |= parseInt(hexStr.substr(i, 2), 16) << (24 - (i % 8) * 4); - } - - return new WordArray.init(words, hexStrLength / 2); - } - }; - - /** - * Latin1 encoding strategy. - */ - var Latin1 = C_enc.Latin1 = { - /** - * Converts a word array to a Latin1 string. - * - * @param {WordArray} wordArray The word array. - * - * @return {string} The Latin1 string. - * - * @static - * - * @example - * - * var latin1String = CryptoJS.enc.Latin1.stringify(wordArray); - */ - stringify: function (wordArray) { - // Shortcuts - var words = wordArray.words; - var sigBytes = wordArray.sigBytes; - - // Convert - var latin1Chars = []; - for (var i = 0; i < sigBytes; i++) { - var bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; - latin1Chars.push(String.fromCharCode(bite)); - } - - return latin1Chars.join(''); - }, - - /** - * Converts a Latin1 string to a word array. - * - * @param {string} latin1Str The Latin1 string. - * - * @return {WordArray} The word array. - * - * @static - * - * @example - * - * var wordArray = CryptoJS.enc.Latin1.parse(latin1String); - */ - parse: function (latin1Str) { - // Shortcut - var latin1StrLength = latin1Str.length; - - // Convert - var words = []; - for (var i = 0; i < latin1StrLength; i++) { - words[i >>> 2] |= (latin1Str.charCodeAt(i) & 0xff) << (24 - (i % 4) * 8); - } - - return new WordArray.init(words, latin1StrLength); - } - }; - - /** - * UTF-8 encoding strategy. - */ - var Utf8 = C_enc.Utf8 = { - /** - * Converts a word array to a UTF-8 string. - * - * @param {WordArray} wordArray The word array. - * - * @return {string} The UTF-8 string. - * - * @static - * - * @example - * - * var utf8String = CryptoJS.enc.Utf8.stringify(wordArray); - */ - stringify: function (wordArray) { - try { - return decodeURIComponent(escape(Latin1.stringify(wordArray))); - } catch (e) { - throw new Error('Malformed UTF-8 data'); - } - }, - - /** - * Converts a UTF-8 string to a word array. - * - * @param {string} utf8Str The UTF-8 string. - * - * @return {WordArray} The word array. - * - * @static - * - * @example - * - * var wordArray = CryptoJS.enc.Utf8.parse(utf8String); - */ - parse: function (utf8Str) { - return Latin1.parse(unescape(encodeURIComponent(utf8Str))); - } - }; - - /** - * Abstract buffered block algorithm template. - * - * The property blockSize must be implemented in a concrete subtype. - * - * @property {number} _minBufferSize The number of blocks that should be kept unprocessed in the buffer. Default: 0 - */ - var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm = Base.extend({ - /** - * Resets this block algorithm's data buffer to its initial state. - * - * @example - * - * bufferedBlockAlgorithm.reset(); - */ - reset: function () { - // Initial values - this._data = new WordArray.init(); - this._nDataBytes = 0; - }, - - /** - * Adds new data to this block algorithm's buffer. - * - * @param {WordArray|string} data The data to append. Strings are converted to a WordArray using UTF-8. - * - * @example - * - * bufferedBlockAlgorithm._append('data'); - * bufferedBlockAlgorithm._append(wordArray); - */ - _append: function (data) { - // Convert string to WordArray, else assume WordArray already - if (typeof data == 'string') { - data = Utf8.parse(data); - } - - // Append - this._data.concat(data); - this._nDataBytes += data.sigBytes; - }, - - /** - * Processes available data blocks. - * - * This method invokes _doProcessBlock(offset), which must be implemented by a concrete subtype. - * - * @param {boolean} doFlush Whether all blocks and partial blocks should be processed. - * - * @return {WordArray} The processed data. - * - * @example - * - * var processedData = bufferedBlockAlgorithm._process(); - * var processedData = bufferedBlockAlgorithm._process(!!'flush'); - */ - _process: function (doFlush) { - // Shortcuts - var data = this._data; - var dataWords = data.words; - var dataSigBytes = data.sigBytes; - var blockSize = this.blockSize; - var blockSizeBytes = blockSize * 4; - - // Count blocks ready - var nBlocksReady = dataSigBytes / blockSizeBytes; - if (doFlush) { - // Round up to include partial blocks - nBlocksReady = Math.ceil(nBlocksReady); - } else { - // Round down to include only full blocks, - // less the number of blocks that must remain in the buffer - nBlocksReady = Math.max((nBlocksReady | 0) - this._minBufferSize, 0); - } - - // Count words ready - var nWordsReady = nBlocksReady * blockSize; - - // Count bytes ready - var nBytesReady = Math.min(nWordsReady * 4, dataSigBytes); - - // Process blocks - if (nWordsReady) { - for (var offset = 0; offset < nWordsReady; offset += blockSize) { - // Perform concrete-algorithm logic - this._doProcessBlock(dataWords, offset); - } - - // Remove processed words - var processedWords = dataWords.splice(0, nWordsReady); - data.sigBytes -= nBytesReady; - } - - // Return processed words - return new WordArray.init(processedWords, nBytesReady); - }, - - /** - * Creates a copy of this object. - * - * @return {Object} The clone. - * - * @example - * - * var clone = bufferedBlockAlgorithm.clone(); - */ - clone: function () { - var clone = Base.clone.call(this); - clone._data = this._data.clone(); - - return clone; - }, - - _minBufferSize: 0 - }); - - /** - * Abstract hasher template. - * - * @property {number} blockSize The number of 32-bit words this hasher operates on. Default: 16 (512 bits) - */ - var Hasher = C_lib.Hasher = BufferedBlockAlgorithm.extend({ - /** - * Configuration options. - */ - cfg: Base.extend(), - - /** - * Initializes a newly created hasher. - * - * @param {Object} cfg (Optional) The configuration options to use for this hash computation. - * - * @example - * - * var hasher = CryptoJS.algo.SHA256.create(); - */ - init: function (cfg) { - // Apply config defaults - this.cfg = this.cfg.extend(cfg); - - // Set initial values - this.reset(); - }, - - /** - * Resets this hasher to its initial state. - * - * @example - * - * hasher.reset(); - */ - reset: function () { - // Reset data buffer - BufferedBlockAlgorithm.reset.call(this); - - // Perform concrete-hasher logic - this._doReset(); - }, - - /** - * Updates this hasher with a message. - * - * @param {WordArray|string} messageUpdate The message to append. - * - * @return {Hasher} This hasher. - * - * @example - * - * hasher.update('message'); - * hasher.update(wordArray); - */ - update: function (messageUpdate) { - // Append - this._append(messageUpdate); - - // Update the hash - this._process(); - - // Chainable - return this; - }, - - /** - * Finalizes the hash computation. - * Note that the finalize operation is effectively a destructive, read-once operation. - * - * @param {WordArray|string} messageUpdate (Optional) A final message update. - * - * @return {WordArray} The hash. - * - * @example - * - * var hash = hasher.finalize(); - * var hash = hasher.finalize('message'); - * var hash = hasher.finalize(wordArray); - */ - finalize: function (messageUpdate) { - // Final message update - if (messageUpdate) { - this._append(messageUpdate); - } - - // Perform concrete-hasher logic - var hash = this._doFinalize(); - - return hash; - }, - - blockSize: 512/32, - - /** - * Creates a shortcut function to a hasher's object interface. - * - * @param {Hasher} hasher The hasher to create a helper for. - * - * @return {Function} The shortcut function. - * - * @static - * - * @example - * - * var SHA256 = CryptoJS.lib.Hasher._createHelper(CryptoJS.algo.SHA256); - */ - _createHelper: function (hasher) { - return function (message, cfg) { - return new hasher.init(cfg).finalize(message); - }; - }, - - /** - * Creates a shortcut function to the HMAC's object interface. - * - * @param {Hasher} hasher The hasher to use in this HMAC helper. - * - * @return {Function} The shortcut function. - * - * @static - * - * @example - * - * var HmacSHA256 = CryptoJS.lib.Hasher._createHmacHelper(CryptoJS.algo.SHA256); - */ - _createHmacHelper: function (hasher) { - return function (message, key) { - return new C_algo.HMAC.init(hasher, key).finalize(message); - }; - } - }); - - /** - * Algorithm namespace. - */ - var C_algo = C.algo = {}; - - return C; - }(Math)); - - - (function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - var C_enc = C.enc; - - /** - * Base64 encoding strategy. - */ - var Base64 = C_enc.Base64 = { - /** - * Converts a word array to a Base64 string. - * - * @param {WordArray} wordArray The word array. - * - * @return {string} The Base64 string. - * - * @static - * - * @example - * - * var base64String = CryptoJS.enc.Base64.stringify(wordArray); - */ - stringify: function (wordArray) { - // Shortcuts - var words = wordArray.words; - var sigBytes = wordArray.sigBytes; - var map = this._map; - - // Clamp excess bits - wordArray.clamp(); - - // Convert - var base64Chars = []; - for (var i = 0; i < sigBytes; i += 3) { - var byte1 = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff; - var byte2 = (words[(i + 1) >>> 2] >>> (24 - ((i + 1) % 4) * 8)) & 0xff; - var byte3 = (words[(i + 2) >>> 2] >>> (24 - ((i + 2) % 4) * 8)) & 0xff; - - var triplet = (byte1 << 16) | (byte2 << 8) | byte3; - - for (var j = 0; (j < 4) && (i + j * 0.75 < sigBytes); j++) { - base64Chars.push(map.charAt((triplet >>> (6 * (3 - j))) & 0x3f)); - } - } - - // Add padding - var paddingChar = map.charAt(64); - if (paddingChar) { - while (base64Chars.length % 4) { - base64Chars.push(paddingChar); - } - } - - return base64Chars.join(''); - }, - - /** - * Converts a Base64 string to a word array. - * - * @param {string} base64Str The Base64 string. - * - * @return {WordArray} The word array. - * - * @static - * - * @example - * - * var wordArray = CryptoJS.enc.Base64.parse(base64String); - */ - parse: function (base64Str) { - // Shortcuts - var base64StrLength = base64Str.length; - var map = this._map; - var reverseMap = this._reverseMap; - - if (!reverseMap) { - reverseMap = this._reverseMap = []; - for (var j = 0; j < map.length; j++) { - reverseMap[map.charCodeAt(j)] = j; - } - } - - // Ignore padding - var paddingChar = map.charAt(64); - if (paddingChar) { - var paddingIndex = base64Str.indexOf(paddingChar); - if (paddingIndex !== -1) { - base64StrLength = paddingIndex; - } - } - - // Convert - return parseLoop(base64Str, base64StrLength, reverseMap); - - }, - - _map: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' - }; - - function parseLoop(base64Str, base64StrLength, reverseMap) { - var words = []; - var nBytes = 0; - for (var i = 0; i < base64StrLength; i++) { - if (i % 4) { - var bits1 = reverseMap[base64Str.charCodeAt(i - 1)] << ((i % 4) * 2); - var bits2 = reverseMap[base64Str.charCodeAt(i)] >>> (6 - (i % 4) * 2); - words[nBytes >>> 2] |= (bits1 | bits2) << (24 - (nBytes % 4) * 8); - nBytes++; - } - } - return WordArray.create(words, nBytes); - } - }()); - - - (function (Math) { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - var Hasher = C_lib.Hasher; - var C_algo = C.algo; - - // Constants table - var T = []; - - // Compute constants - (function () { - for (var i = 0; i < 64; i++) { - T[i] = (Math.abs(Math.sin(i + 1)) * 0x100000000) | 0; - } - }()); - - /** - * MD5 hash algorithm. - */ - var MD5 = C_algo.MD5 = Hasher.extend({ - _doReset: function () { - this._hash = new WordArray.init([ - 0x67452301, 0xefcdab89, - 0x98badcfe, 0x10325476 - ]); - }, - - _doProcessBlock: function (M, offset) { - // Swap endian - for (var i = 0; i < 16; i++) { - // Shortcuts - var offset_i = offset + i; - var M_offset_i = M[offset_i]; - - M[offset_i] = ( - (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) | - (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00) - ); - } - - // Shortcuts - var H = this._hash.words; - - var M_offset_0 = M[offset + 0]; - var M_offset_1 = M[offset + 1]; - var M_offset_2 = M[offset + 2]; - var M_offset_3 = M[offset + 3]; - var M_offset_4 = M[offset + 4]; - var M_offset_5 = M[offset + 5]; - var M_offset_6 = M[offset + 6]; - var M_offset_7 = M[offset + 7]; - var M_offset_8 = M[offset + 8]; - var M_offset_9 = M[offset + 9]; - var M_offset_10 = M[offset + 10]; - var M_offset_11 = M[offset + 11]; - var M_offset_12 = M[offset + 12]; - var M_offset_13 = M[offset + 13]; - var M_offset_14 = M[offset + 14]; - var M_offset_15 = M[offset + 15]; - - // Working varialbes - var a = H[0]; - var b = H[1]; - var c = H[2]; - var d = H[3]; - - // Computation - a = FF(a, b, c, d, M_offset_0, 7, T[0]); - d = FF(d, a, b, c, M_offset_1, 12, T[1]); - c = FF(c, d, a, b, M_offset_2, 17, T[2]); - b = FF(b, c, d, a, M_offset_3, 22, T[3]); - a = FF(a, b, c, d, M_offset_4, 7, T[4]); - d = FF(d, a, b, c, M_offset_5, 12, T[5]); - c = FF(c, d, a, b, M_offset_6, 17, T[6]); - b = FF(b, c, d, a, M_offset_7, 22, T[7]); - a = FF(a, b, c, d, M_offset_8, 7, T[8]); - d = FF(d, a, b, c, M_offset_9, 12, T[9]); - c = FF(c, d, a, b, M_offset_10, 17, T[10]); - b = FF(b, c, d, a, M_offset_11, 22, T[11]); - a = FF(a, b, c, d, M_offset_12, 7, T[12]); - d = FF(d, a, b, c, M_offset_13, 12, T[13]); - c = FF(c, d, a, b, M_offset_14, 17, T[14]); - b = FF(b, c, d, a, M_offset_15, 22, T[15]); - - a = GG(a, b, c, d, M_offset_1, 5, T[16]); - d = GG(d, a, b, c, M_offset_6, 9, T[17]); - c = GG(c, d, a, b, M_offset_11, 14, T[18]); - b = GG(b, c, d, a, M_offset_0, 20, T[19]); - a = GG(a, b, c, d, M_offset_5, 5, T[20]); - d = GG(d, a, b, c, M_offset_10, 9, T[21]); - c = GG(c, d, a, b, M_offset_15, 14, T[22]); - b = GG(b, c, d, a, M_offset_4, 20, T[23]); - a = GG(a, b, c, d, M_offset_9, 5, T[24]); - d = GG(d, a, b, c, M_offset_14, 9, T[25]); - c = GG(c, d, a, b, M_offset_3, 14, T[26]); - b = GG(b, c, d, a, M_offset_8, 20, T[27]); - a = GG(a, b, c, d, M_offset_13, 5, T[28]); - d = GG(d, a, b, c, M_offset_2, 9, T[29]); - c = GG(c, d, a, b, M_offset_7, 14, T[30]); - b = GG(b, c, d, a, M_offset_12, 20, T[31]); - - a = HH(a, b, c, d, M_offset_5, 4, T[32]); - d = HH(d, a, b, c, M_offset_8, 11, T[33]); - c = HH(c, d, a, b, M_offset_11, 16, T[34]); - b = HH(b, c, d, a, M_offset_14, 23, T[35]); - a = HH(a, b, c, d, M_offset_1, 4, T[36]); - d = HH(d, a, b, c, M_offset_4, 11, T[37]); - c = HH(c, d, a, b, M_offset_7, 16, T[38]); - b = HH(b, c, d, a, M_offset_10, 23, T[39]); - a = HH(a, b, c, d, M_offset_13, 4, T[40]); - d = HH(d, a, b, c, M_offset_0, 11, T[41]); - c = HH(c, d, a, b, M_offset_3, 16, T[42]); - b = HH(b, c, d, a, M_offset_6, 23, T[43]); - a = HH(a, b, c, d, M_offset_9, 4, T[44]); - d = HH(d, a, b, c, M_offset_12, 11, T[45]); - c = HH(c, d, a, b, M_offset_15, 16, T[46]); - b = HH(b, c, d, a, M_offset_2, 23, T[47]); - - a = II(a, b, c, d, M_offset_0, 6, T[48]); - d = II(d, a, b, c, M_offset_7, 10, T[49]); - c = II(c, d, a, b, M_offset_14, 15, T[50]); - b = II(b, c, d, a, M_offset_5, 21, T[51]); - a = II(a, b, c, d, M_offset_12, 6, T[52]); - d = II(d, a, b, c, M_offset_3, 10, T[53]); - c = II(c, d, a, b, M_offset_10, 15, T[54]); - b = II(b, c, d, a, M_offset_1, 21, T[55]); - a = II(a, b, c, d, M_offset_8, 6, T[56]); - d = II(d, a, b, c, M_offset_15, 10, T[57]); - c = II(c, d, a, b, M_offset_6, 15, T[58]); - b = II(b, c, d, a, M_offset_13, 21, T[59]); - a = II(a, b, c, d, M_offset_4, 6, T[60]); - d = II(d, a, b, c, M_offset_11, 10, T[61]); - c = II(c, d, a, b, M_offset_2, 15, T[62]); - b = II(b, c, d, a, M_offset_9, 21, T[63]); - - // Intermediate hash value - H[0] = (H[0] + a) | 0; - H[1] = (H[1] + b) | 0; - H[2] = (H[2] + c) | 0; - H[3] = (H[3] + d) | 0; - }, - - _doFinalize: function () { - // Shortcuts - var data = this._data; - var dataWords = data.words; - - var nBitsTotal = this._nDataBytes * 8; - var nBitsLeft = data.sigBytes * 8; - - // Add padding - dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); - - var nBitsTotalH = Math.floor(nBitsTotal / 0x100000000); - var nBitsTotalL = nBitsTotal; - dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = ( - (((nBitsTotalH << 8) | (nBitsTotalH >>> 24)) & 0x00ff00ff) | - (((nBitsTotalH << 24) | (nBitsTotalH >>> 8)) & 0xff00ff00) - ); - dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = ( - (((nBitsTotalL << 8) | (nBitsTotalL >>> 24)) & 0x00ff00ff) | - (((nBitsTotalL << 24) | (nBitsTotalL >>> 8)) & 0xff00ff00) - ); - - data.sigBytes = (dataWords.length + 1) * 4; - - // Hash final blocks - this._process(); - - // Shortcuts - var hash = this._hash; - var H = hash.words; - - // Swap endian - for (var i = 0; i < 4; i++) { - // Shortcut - var H_i = H[i]; - - H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) | - (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00); - } - - // Return final computed hash - return hash; - }, - - clone: function () { - var clone = Hasher.clone.call(this); - clone._hash = this._hash.clone(); - - return clone; - } - }); - - function FF(a, b, c, d, x, s, t) { - var n = a + ((b & c) | (~b & d)) + x + t; - return ((n << s) | (n >>> (32 - s))) + b; - } - - function GG(a, b, c, d, x, s, t) { - var n = a + ((b & d) | (c & ~d)) + x + t; - return ((n << s) | (n >>> (32 - s))) + b; - } - - function HH(a, b, c, d, x, s, t) { - var n = a + (b ^ c ^ d) + x + t; - return ((n << s) | (n >>> (32 - s))) + b; - } - - function II(a, b, c, d, x, s, t) { - var n = a + (c ^ (b | ~d)) + x + t; - return ((n << s) | (n >>> (32 - s))) + b; - } - - /** - * Shortcut function to the hasher's object interface. - * - * @param {WordArray|string} message The message to hash. - * - * @return {WordArray} The hash. - * - * @static - * - * @example - * - * var hash = CryptoJS.MD5('message'); - * var hash = CryptoJS.MD5(wordArray); - */ - C.MD5 = Hasher._createHelper(MD5); - - /** - * Shortcut function to the HMAC's object interface. - * - * @param {WordArray|string} message The message to hash. - * @param {WordArray|string} key The secret key. - * - * @return {WordArray} The HMAC. - * - * @static - * - * @example - * - * var hmac = CryptoJS.HmacMD5(message, key); - */ - C.HmacMD5 = Hasher._createHmacHelper(MD5); - }(Math)); - - - (function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - var Hasher = C_lib.Hasher; - var C_algo = C.algo; - - // Reusable object - var W = []; - - /** - * SHA-1 hash algorithm. - */ - var SHA1 = C_algo.SHA1 = Hasher.extend({ - _doReset: function () { - this._hash = new WordArray.init([ - 0x67452301, 0xefcdab89, - 0x98badcfe, 0x10325476, - 0xc3d2e1f0 - ]); - }, - - _doProcessBlock: function (M, offset) { - // Shortcut - var H = this._hash.words; - - // Working variables - var a = H[0]; - var b = H[1]; - var c = H[2]; - var d = H[3]; - var e = H[4]; - - // Computation - for (var i = 0; i < 80; i++) { - if (i < 16) { - W[i] = M[offset + i] | 0; - } else { - var n = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]; - W[i] = (n << 1) | (n >>> 31); - } - - var t = ((a << 5) | (a >>> 27)) + e + W[i]; - if (i < 20) { - t += ((b & c) | (~b & d)) + 0x5a827999; - } else if (i < 40) { - t += (b ^ c ^ d) + 0x6ed9eba1; - } else if (i < 60) { - t += ((b & c) | (b & d) | (c & d)) - 0x70e44324; - } else /* if (i < 80) */ { - t += (b ^ c ^ d) - 0x359d3e2a; - } - - e = d; - d = c; - c = (b << 30) | (b >>> 2); - b = a; - a = t; - } - - // Intermediate hash value - H[0] = (H[0] + a) | 0; - H[1] = (H[1] + b) | 0; - H[2] = (H[2] + c) | 0; - H[3] = (H[3] + d) | 0; - H[4] = (H[4] + e) | 0; - }, - - _doFinalize: function () { - // Shortcuts - var data = this._data; - var dataWords = data.words; - - var nBitsTotal = this._nDataBytes * 8; - var nBitsLeft = data.sigBytes * 8; - - // Add padding - dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); - dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000); - dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal; - data.sigBytes = dataWords.length * 4; - - // Hash final blocks - this._process(); - - // Return final computed hash - return this._hash; - }, - - clone: function () { - var clone = Hasher.clone.call(this); - clone._hash = this._hash.clone(); - - return clone; - } - }); - - /** - * Shortcut function to the hasher's object interface. - * - * @param {WordArray|string} message The message to hash. - * - * @return {WordArray} The hash. - * - * @static - * - * @example - * - * var hash = CryptoJS.SHA1('message'); - * var hash = CryptoJS.SHA1(wordArray); - */ - C.SHA1 = Hasher._createHelper(SHA1); - - /** - * Shortcut function to the HMAC's object interface. - * - * @param {WordArray|string} message The message to hash. - * @param {WordArray|string} key The secret key. - * - * @return {WordArray} The HMAC. - * - * @static - * - * @example - * - * var hmac = CryptoJS.HmacSHA1(message, key); - */ - C.HmacSHA1 = Hasher._createHmacHelper(SHA1); - }()); - - - (function (Math) { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - var Hasher = C_lib.Hasher; - var C_algo = C.algo; - - // Initialization and round constants tables - var H = []; - var K = []; - - // Compute constants - (function () { - function isPrime(n) { - var sqrtN = Math.sqrt(n); - for (var factor = 2; factor <= sqrtN; factor++) { - if (!(n % factor)) { - return false; - } - } - - return true; - } - - function getFractionalBits(n) { - return ((n - (n | 0)) * 0x100000000) | 0; - } - - var n = 2; - var nPrime = 0; - while (nPrime < 64) { - if (isPrime(n)) { - if (nPrime < 8) { - H[nPrime] = getFractionalBits(Math.pow(n, 1 / 2)); - } - K[nPrime] = getFractionalBits(Math.pow(n, 1 / 3)); - - nPrime++; - } - - n++; - } - }()); - - // Reusable object - var W = []; - - /** - * SHA-256 hash algorithm. - */ - var SHA256 = C_algo.SHA256 = Hasher.extend({ - _doReset: function () { - this._hash = new WordArray.init(H.slice(0)); - }, - - _doProcessBlock: function (M, offset) { - // Shortcut - var H = this._hash.words; - - // Working variables - var a = H[0]; - var b = H[1]; - var c = H[2]; - var d = H[3]; - var e = H[4]; - var f = H[5]; - var g = H[6]; - var h = H[7]; - - // Computation - for (var i = 0; i < 64; i++) { - if (i < 16) { - W[i] = M[offset + i] | 0; - } else { - var gamma0x = W[i - 15]; - var gamma0 = ((gamma0x << 25) | (gamma0x >>> 7)) ^ - ((gamma0x << 14) | (gamma0x >>> 18)) ^ - (gamma0x >>> 3); - - var gamma1x = W[i - 2]; - var gamma1 = ((gamma1x << 15) | (gamma1x >>> 17)) ^ - ((gamma1x << 13) | (gamma1x >>> 19)) ^ - (gamma1x >>> 10); - - W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]; - } - - var ch = (e & f) ^ (~e & g); - var maj = (a & b) ^ (a & c) ^ (b & c); - - var sigma0 = ((a << 30) | (a >>> 2)) ^ ((a << 19) | (a >>> 13)) ^ ((a << 10) | (a >>> 22)); - var sigma1 = ((e << 26) | (e >>> 6)) ^ ((e << 21) | (e >>> 11)) ^ ((e << 7) | (e >>> 25)); - - var t1 = h + sigma1 + ch + K[i] + W[i]; - var t2 = sigma0 + maj; - - h = g; - g = f; - f = e; - e = (d + t1) | 0; - d = c; - c = b; - b = a; - a = (t1 + t2) | 0; - } - - // Intermediate hash value - H[0] = (H[0] + a) | 0; - H[1] = (H[1] + b) | 0; - H[2] = (H[2] + c) | 0; - H[3] = (H[3] + d) | 0; - H[4] = (H[4] + e) | 0; - H[5] = (H[5] + f) | 0; - H[6] = (H[6] + g) | 0; - H[7] = (H[7] + h) | 0; - }, - - _doFinalize: function () { - // Shortcuts - var data = this._data; - var dataWords = data.words; - - var nBitsTotal = this._nDataBytes * 8; - var nBitsLeft = data.sigBytes * 8; - - // Add padding - dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); - dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = Math.floor(nBitsTotal / 0x100000000); - dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 15] = nBitsTotal; - data.sigBytes = dataWords.length * 4; - - // Hash final blocks - this._process(); - - // Return final computed hash - return this._hash; - }, - - clone: function () { - var clone = Hasher.clone.call(this); - clone._hash = this._hash.clone(); - - return clone; - } - }); - - /** - * Shortcut function to the hasher's object interface. - * - * @param {WordArray|string} message The message to hash. - * - * @return {WordArray} The hash. - * - * @static - * - * @example - * - * var hash = CryptoJS.SHA256('message'); - * var hash = CryptoJS.SHA256(wordArray); - */ - C.SHA256 = Hasher._createHelper(SHA256); - - /** - * Shortcut function to the HMAC's object interface. - * - * @param {WordArray|string} message The message to hash. - * @param {WordArray|string} key The secret key. - * - * @return {WordArray} The HMAC. - * - * @static - * - * @example - * - * var hmac = CryptoJS.HmacSHA256(message, key); - */ - C.HmacSHA256 = Hasher._createHmacHelper(SHA256); - }(Math)); - - - (function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - var C_enc = C.enc; - - /** - * UTF-16 BE encoding strategy. - */ - var Utf16BE = C_enc.Utf16 = C_enc.Utf16BE = { - /** - * Converts a word array to a UTF-16 BE string. - * - * @param {WordArray} wordArray The word array. - * - * @return {string} The UTF-16 BE string. - * - * @static - * - * @example - * - * var utf16String = CryptoJS.enc.Utf16.stringify(wordArray); - */ - stringify: function (wordArray) { - // Shortcuts - var words = wordArray.words; - var sigBytes = wordArray.sigBytes; - - // Convert - var utf16Chars = []; - for (var i = 0; i < sigBytes; i += 2) { - var codePoint = (words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff; - utf16Chars.push(String.fromCharCode(codePoint)); - } - - return utf16Chars.join(''); - }, - - /** - * Converts a UTF-16 BE string to a word array. - * - * @param {string} utf16Str The UTF-16 BE string. - * - * @return {WordArray} The word array. - * - * @static - * - * @example - * - * var wordArray = CryptoJS.enc.Utf16.parse(utf16String); - */ - parse: function (utf16Str) { - // Shortcut - var utf16StrLength = utf16Str.length; - - // Convert - var words = []; - for (var i = 0; i < utf16StrLength; i++) { - words[i >>> 1] |= utf16Str.charCodeAt(i) << (16 - (i % 2) * 16); - } - - return WordArray.create(words, utf16StrLength * 2); - } - }; - - /** - * UTF-16 LE encoding strategy. - */ - C_enc.Utf16LE = { - /** - * Converts a word array to a UTF-16 LE string. - * - * @param {WordArray} wordArray The word array. - * - * @return {string} The UTF-16 LE string. - * - * @static - * - * @example - * - * var utf16Str = CryptoJS.enc.Utf16LE.stringify(wordArray); - */ - stringify: function (wordArray) { - // Shortcuts - var words = wordArray.words; - var sigBytes = wordArray.sigBytes; - - // Convert - var utf16Chars = []; - for (var i = 0; i < sigBytes; i += 2) { - var codePoint = swapEndian((words[i >>> 2] >>> (16 - (i % 4) * 8)) & 0xffff); - utf16Chars.push(String.fromCharCode(codePoint)); - } - - return utf16Chars.join(''); - }, - - /** - * Converts a UTF-16 LE string to a word array. - * - * @param {string} utf16Str The UTF-16 LE string. - * - * @return {WordArray} The word array. - * - * @static - * - * @example - * - * var wordArray = CryptoJS.enc.Utf16LE.parse(utf16Str); - */ - parse: function (utf16Str) { - // Shortcut - var utf16StrLength = utf16Str.length; - - // Convert - var words = []; - for (var i = 0; i < utf16StrLength; i++) { - words[i >>> 1] |= swapEndian(utf16Str.charCodeAt(i) << (16 - (i % 2) * 16)); - } - - return WordArray.create(words, utf16StrLength * 2); - } - }; - - function swapEndian(word) { - return ((word << 8) & 0xff00ff00) | ((word >>> 8) & 0x00ff00ff); - } - }()); - - - (function () { - // Check if typed arrays are supported - if (typeof ArrayBuffer != 'function') { - return; - } - - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - - // Reference original init - var superInit = WordArray.init; - - // Augment WordArray.init to handle typed arrays - var subInit = WordArray.init = function (typedArray) { - // Convert buffers to uint8 - if (typedArray instanceof ArrayBuffer) { - typedArray = new Uint8Array(typedArray); - } - - // Convert other array views to uint8 - if ( - typedArray instanceof Int8Array || - (typeof Uint8ClampedArray !== "undefined" && typedArray instanceof Uint8ClampedArray) || - typedArray instanceof Int16Array || - typedArray instanceof Uint16Array || - typedArray instanceof Int32Array || - typedArray instanceof Uint32Array || - typedArray instanceof Float32Array || - typedArray instanceof Float64Array - ) { - typedArray = new Uint8Array(typedArray.buffer, typedArray.byteOffset, typedArray.byteLength); - } - - // Handle Uint8Array - if (typedArray instanceof Uint8Array) { - // Shortcut - var typedArrayByteLength = typedArray.byteLength; - - // Extract bytes - var words = []; - for (var i = 0; i < typedArrayByteLength; i++) { - words[i >>> 2] |= typedArray[i] << (24 - (i % 4) * 8); - } - - // Initialize this word array - superInit.call(this, words, typedArrayByteLength); - } else { - // Else call normal init - superInit.apply(this, arguments); - } - }; - - subInit.prototype = WordArray; - }()); - - - /** @preserve - (c) 2012 by Cédric Mesnil. All rights reserved. - - Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - - - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - - (function (Math) { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - var Hasher = C_lib.Hasher; - var C_algo = C.algo; - - // Constants table - var _zl = WordArray.create([ - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, - 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8, - 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12, - 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2, - 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13]); - var _zr = WordArray.create([ - 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12, - 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2, - 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13, - 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14, - 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11]); - var _sl = WordArray.create([ - 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8, - 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12, - 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5, - 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12, - 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6 ]); - var _sr = WordArray.create([ - 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6, - 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11, - 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5, - 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8, - 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11 ]); - - var _hl = WordArray.create([ 0x00000000, 0x5A827999, 0x6ED9EBA1, 0x8F1BBCDC, 0xA953FD4E]); - var _hr = WordArray.create([ 0x50A28BE6, 0x5C4DD124, 0x6D703EF3, 0x7A6D76E9, 0x00000000]); - - /** - * RIPEMD160 hash algorithm. - */ - var RIPEMD160 = C_algo.RIPEMD160 = Hasher.extend({ - _doReset: function () { - this._hash = WordArray.create([0x67452301, 0xEFCDAB89, 0x98BADCFE, 0x10325476, 0xC3D2E1F0]); - }, - - _doProcessBlock: function (M, offset) { - - // Swap endian - for (var i = 0; i < 16; i++) { - // Shortcuts - var offset_i = offset + i; - var M_offset_i = M[offset_i]; - - // Swap - M[offset_i] = ( - (((M_offset_i << 8) | (M_offset_i >>> 24)) & 0x00ff00ff) | - (((M_offset_i << 24) | (M_offset_i >>> 8)) & 0xff00ff00) - ); - } - // Shortcut - var H = this._hash.words; - var hl = _hl.words; - var hr = _hr.words; - var zl = _zl.words; - var zr = _zr.words; - var sl = _sl.words; - var sr = _sr.words; - - // Working variables - var al, bl, cl, dl, el; - var ar, br, cr, dr, er; - - ar = al = H[0]; - br = bl = H[1]; - cr = cl = H[2]; - dr = dl = H[3]; - er = el = H[4]; - // Computation - var t; - for (var i = 0; i < 80; i += 1) { - t = (al + M[offset+zl[i]])|0; - if (i<16){ - t += f1(bl,cl,dl) + hl[0]; - } else if (i<32) { - t += f2(bl,cl,dl) + hl[1]; - } else if (i<48) { - t += f3(bl,cl,dl) + hl[2]; - } else if (i<64) { - t += f4(bl,cl,dl) + hl[3]; - } else {// if (i<80) { - t += f5(bl,cl,dl) + hl[4]; - } - t = t|0; - t = rotl(t,sl[i]); - t = (t+el)|0; - al = el; - el = dl; - dl = rotl(cl, 10); - cl = bl; - bl = t; - - t = (ar + M[offset+zr[i]])|0; - if (i<16){ - t += f5(br,cr,dr) + hr[0]; - } else if (i<32) { - t += f4(br,cr,dr) + hr[1]; - } else if (i<48) { - t += f3(br,cr,dr) + hr[2]; - } else if (i<64) { - t += f2(br,cr,dr) + hr[3]; - } else {// if (i<80) { - t += f1(br,cr,dr) + hr[4]; - } - t = t|0; - t = rotl(t,sr[i]) ; - t = (t+er)|0; - ar = er; - er = dr; - dr = rotl(cr, 10); - cr = br; - br = t; - } - // Intermediate hash value - t = (H[1] + cl + dr)|0; - H[1] = (H[2] + dl + er)|0; - H[2] = (H[3] + el + ar)|0; - H[3] = (H[4] + al + br)|0; - H[4] = (H[0] + bl + cr)|0; - H[0] = t; - }, - - _doFinalize: function () { - // Shortcuts - var data = this._data; - var dataWords = data.words; - - var nBitsTotal = this._nDataBytes * 8; - var nBitsLeft = data.sigBytes * 8; - - // Add padding - dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); - dataWords[(((nBitsLeft + 64) >>> 9) << 4) + 14] = ( - (((nBitsTotal << 8) | (nBitsTotal >>> 24)) & 0x00ff00ff) | - (((nBitsTotal << 24) | (nBitsTotal >>> 8)) & 0xff00ff00) - ); - data.sigBytes = (dataWords.length + 1) * 4; - - // Hash final blocks - this._process(); - - // Shortcuts - var hash = this._hash; - var H = hash.words; - - // Swap endian - for (var i = 0; i < 5; i++) { - // Shortcut - var H_i = H[i]; - - // Swap - H[i] = (((H_i << 8) | (H_i >>> 24)) & 0x00ff00ff) | - (((H_i << 24) | (H_i >>> 8)) & 0xff00ff00); - } - - // Return final computed hash - return hash; - }, - - clone: function () { - var clone = Hasher.clone.call(this); - clone._hash = this._hash.clone(); - - return clone; - } - }); - - - function f1(x, y, z) { - return ((x) ^ (y) ^ (z)); - - } - - function f2(x, y, z) { - return (((x)&(y)) | ((~x)&(z))); - } - - function f3(x, y, z) { - return (((x) | (~(y))) ^ (z)); - } - - function f4(x, y, z) { - return (((x) & (z)) | ((y)&(~(z)))); - } - - function f5(x, y, z) { - return ((x) ^ ((y) |(~(z)))); - - } - - function rotl(x,n) { - return (x<>>(32-n)); - } - - - /** - * Shortcut function to the hasher's object interface. - * - * @param {WordArray|string} message The message to hash. - * - * @return {WordArray} The hash. - * - * @static - * - * @example - * - * var hash = CryptoJS.RIPEMD160('message'); - * var hash = CryptoJS.RIPEMD160(wordArray); - */ - C.RIPEMD160 = Hasher._createHelper(RIPEMD160); - - /** - * Shortcut function to the HMAC's object interface. - * - * @param {WordArray|string} message The message to hash. - * @param {WordArray|string} key The secret key. - * - * @return {WordArray} The HMAC. - * - * @static - * - * @example - * - * var hmac = CryptoJS.HmacRIPEMD160(message, key); - */ - C.HmacRIPEMD160 = Hasher._createHmacHelper(RIPEMD160); - }(Math)); - - - (function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var Base = C_lib.Base; - var C_enc = C.enc; - var Utf8 = C_enc.Utf8; - var C_algo = C.algo; - - /** - * HMAC algorithm. - */ - var HMAC = C_algo.HMAC = Base.extend({ - /** - * Initializes a newly created HMAC. - * - * @param {Hasher} hasher The hash algorithm to use. - * @param {WordArray|string} key The secret key. - * - * @example - * - * var hmacHasher = CryptoJS.algo.HMAC.create(CryptoJS.algo.SHA256, key); - */ - init: function (hasher, key) { - // Init hasher - hasher = this._hasher = new hasher.init(); - - // Convert string to WordArray, else assume WordArray already - if (typeof key == 'string') { - key = Utf8.parse(key); - } - - // Shortcuts - var hasherBlockSize = hasher.blockSize; - var hasherBlockSizeBytes = hasherBlockSize * 4; - - // Allow arbitrary length keys - if (key.sigBytes > hasherBlockSizeBytes) { - key = hasher.finalize(key); - } - - // Clamp excess bits - key.clamp(); - - // Clone key for inner and outer pads - var oKey = this._oKey = key.clone(); - var iKey = this._iKey = key.clone(); - - // Shortcuts - var oKeyWords = oKey.words; - var iKeyWords = iKey.words; - - // XOR keys with pad constants - for (var i = 0; i < hasherBlockSize; i++) { - oKeyWords[i] ^= 0x5c5c5c5c; - iKeyWords[i] ^= 0x36363636; - } - oKey.sigBytes = iKey.sigBytes = hasherBlockSizeBytes; - - // Set initial values - this.reset(); - }, - - /** - * Resets this HMAC to its initial state. - * - * @example - * - * hmacHasher.reset(); - */ - reset: function () { - // Shortcut - var hasher = this._hasher; - - // Reset - hasher.reset(); - hasher.update(this._iKey); - }, - - /** - * Updates this HMAC with a message. - * - * @param {WordArray|string} messageUpdate The message to append. - * - * @return {HMAC} This HMAC instance. - * - * @example - * - * hmacHasher.update('message'); - * hmacHasher.update(wordArray); - */ - update: function (messageUpdate) { - this._hasher.update(messageUpdate); - - // Chainable - return this; - }, - - /** - * Finalizes the HMAC computation. - * Note that the finalize operation is effectively a destructive, read-once operation. - * - * @param {WordArray|string} messageUpdate (Optional) A final message update. - * - * @return {WordArray} The HMAC. - * - * @example - * - * var hmac = hmacHasher.finalize(); - * var hmac = hmacHasher.finalize('message'); - * var hmac = hmacHasher.finalize(wordArray); - */ - finalize: function (messageUpdate) { - // Shortcut - var hasher = this._hasher; - - // Compute HMAC - var innerHash = hasher.finalize(messageUpdate); - hasher.reset(); - var hmac = hasher.finalize(this._oKey.clone().concat(innerHash)); - - return hmac; - } - }); - }()); - - - (function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var Base = C_lib.Base; - var WordArray = C_lib.WordArray; - var C_algo = C.algo; - var SHA1 = C_algo.SHA1; - var HMAC = C_algo.HMAC; - - /** - * Password-Based Key Derivation Function 2 algorithm. - */ - var PBKDF2 = C_algo.PBKDF2 = Base.extend({ - /** - * Configuration options. - * - * @property {number} keySize The key size in words to generate. Default: 4 (128 bits) - * @property {Hasher} hasher The hasher to use. Default: SHA1 - * @property {number} iterations The number of iterations to perform. Default: 1 - */ - cfg: Base.extend({ - keySize: 128/32, - hasher: SHA1, - iterations: 1 - }), - - /** - * Initializes a newly created key derivation function. - * - * @param {Object} cfg (Optional) The configuration options to use for the derivation. - * - * @example - * - * var kdf = CryptoJS.algo.PBKDF2.create(); - * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8 }); - * var kdf = CryptoJS.algo.PBKDF2.create({ keySize: 8, iterations: 1000 }); - */ - init: function (cfg) { - this.cfg = this.cfg.extend(cfg); - }, - - /** - * Computes the Password-Based Key Derivation Function 2. - * - * @param {WordArray|string} password The password. - * @param {WordArray|string} salt A salt. - * - * @return {WordArray} The derived key. - * - * @example - * - * var key = kdf.compute(password, salt); - */ - compute: function (password, salt) { - // Shortcut - var cfg = this.cfg; - - // Init HMAC - var hmac = HMAC.create(cfg.hasher, password); - - // Initial values - var derivedKey = WordArray.create(); - var blockIndex = WordArray.create([0x00000001]); - - // Shortcuts - var derivedKeyWords = derivedKey.words; - var blockIndexWords = blockIndex.words; - var keySize = cfg.keySize; - var iterations = cfg.iterations; - - // Generate key - while (derivedKeyWords.length < keySize) { - var block = hmac.update(salt).finalize(blockIndex); - hmac.reset(); - - // Shortcuts - var blockWords = block.words; - var blockWordsLength = blockWords.length; - - // Iterations - var intermediate = block; - for (var i = 1; i < iterations; i++) { - intermediate = hmac.finalize(intermediate); - hmac.reset(); - - // Shortcut - var intermediateWords = intermediate.words; - - // XOR intermediate with block - for (var j = 0; j < blockWordsLength; j++) { - blockWords[j] ^= intermediateWords[j]; - } - } - - derivedKey.concat(block); - blockIndexWords[0]++; - } - derivedKey.sigBytes = keySize * 4; - - return derivedKey; - } - }); - - /** - * Computes the Password-Based Key Derivation Function 2. - * - * @param {WordArray|string} password The password. - * @param {WordArray|string} salt A salt. - * @param {Object} cfg (Optional) The configuration options to use for this computation. - * - * @return {WordArray} The derived key. - * - * @static - * - * @example - * - * var key = CryptoJS.PBKDF2(password, salt); - * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8 }); - * var key = CryptoJS.PBKDF2(password, salt, { keySize: 8, iterations: 1000 }); - */ - C.PBKDF2 = function (password, salt, cfg) { - return PBKDF2.create(cfg).compute(password, salt); - }; - }()); - - - (function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var Base = C_lib.Base; - var WordArray = C_lib.WordArray; - var C_algo = C.algo; - var MD5 = C_algo.MD5; - - /** - * This key derivation function is meant to conform with EVP_BytesToKey. - * www.openssl.org/docs/crypto/EVP_BytesToKey.html - */ - var EvpKDF = C_algo.EvpKDF = Base.extend({ - /** - * Configuration options. - * - * @property {number} keySize The key size in words to generate. Default: 4 (128 bits) - * @property {Hasher} hasher The hash algorithm to use. Default: MD5 - * @property {number} iterations The number of iterations to perform. Default: 1 - */ - cfg: Base.extend({ - keySize: 128/32, - hasher: MD5, - iterations: 1 - }), - - /** - * Initializes a newly created key derivation function. - * - * @param {Object} cfg (Optional) The configuration options to use for the derivation. - * - * @example - * - * var kdf = CryptoJS.algo.EvpKDF.create(); - * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8 }); - * var kdf = CryptoJS.algo.EvpKDF.create({ keySize: 8, iterations: 1000 }); - */ - init: function (cfg) { - this.cfg = this.cfg.extend(cfg); - }, - - /** - * Derives a key from a password. - * - * @param {WordArray|string} password The password. - * @param {WordArray|string} salt A salt. - * - * @return {WordArray} The derived key. - * - * @example - * - * var key = kdf.compute(password, salt); - */ - compute: function (password, salt) { - // Shortcut - var cfg = this.cfg; - - // Init hasher - var hasher = cfg.hasher.create(); - - // Initial values - var derivedKey = WordArray.create(); - - // Shortcuts - var derivedKeyWords = derivedKey.words; - var keySize = cfg.keySize; - var iterations = cfg.iterations; - - // Generate key - while (derivedKeyWords.length < keySize) { - if (block) { - hasher.update(block); - } - var block = hasher.update(password).finalize(salt); - hasher.reset(); - - // Iterations - for (var i = 1; i < iterations; i++) { - block = hasher.finalize(block); - hasher.reset(); - } - - derivedKey.concat(block); - } - derivedKey.sigBytes = keySize * 4; - - return derivedKey; - } - }); - - /** - * Derives a key from a password. - * - * @param {WordArray|string} password The password. - * @param {WordArray|string} salt A salt. - * @param {Object} cfg (Optional) The configuration options to use for this computation. - * - * @return {WordArray} The derived key. - * - * @static - * - * @example - * - * var key = CryptoJS.EvpKDF(password, salt); - * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8 }); - * var key = CryptoJS.EvpKDF(password, salt, { keySize: 8, iterations: 1000 }); - */ - C.EvpKDF = function (password, salt, cfg) { - return EvpKDF.create(cfg).compute(password, salt); - }; - }()); - - - (function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - var C_algo = C.algo; - var SHA256 = C_algo.SHA256; - - /** - * SHA-224 hash algorithm. - */ - var SHA224 = C_algo.SHA224 = SHA256.extend({ - _doReset: function () { - this._hash = new WordArray.init([ - 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, - 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 - ]); - }, - - _doFinalize: function () { - var hash = SHA256._doFinalize.call(this); - - hash.sigBytes -= 4; - - return hash; - } - }); - - /** - * Shortcut function to the hasher's object interface. - * - * @param {WordArray|string} message The message to hash. - * - * @return {WordArray} The hash. - * - * @static - * - * @example - * - * var hash = CryptoJS.SHA224('message'); - * var hash = CryptoJS.SHA224(wordArray); - */ - C.SHA224 = SHA256._createHelper(SHA224); - - /** - * Shortcut function to the HMAC's object interface. - * - * @param {WordArray|string} message The message to hash. - * @param {WordArray|string} key The secret key. - * - * @return {WordArray} The HMAC. - * - * @static - * - * @example - * - * var hmac = CryptoJS.HmacSHA224(message, key); - */ - C.HmacSHA224 = SHA256._createHmacHelper(SHA224); - }()); - - - (function (undefined) { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var Base = C_lib.Base; - var X32WordArray = C_lib.WordArray; - - /** - * x64 namespace. - */ - var C_x64 = C.x64 = {}; - - /** - * A 64-bit word. - */ - var X64Word = C_x64.Word = Base.extend({ - /** - * Initializes a newly created 64-bit word. - * - * @param {number} high The high 32 bits. - * @param {number} low The low 32 bits. - * - * @example - * - * var x64Word = CryptoJS.x64.Word.create(0x00010203, 0x04050607); - */ - init: function (high, low) { - this.high = high; - this.low = low; - } - - /** - * Bitwise NOTs this word. - * - * @return {X64Word} A new x64-Word object after negating. - * - * @example - * - * var negated = x64Word.not(); - */ - // not: function () { - // var high = ~this.high; - // var low = ~this.low; - - // return X64Word.create(high, low); - // }, - - /** - * Bitwise ANDs this word with the passed word. - * - * @param {X64Word} word The x64-Word to AND with this word. - * - * @return {X64Word} A new x64-Word object after ANDing. - * - * @example - * - * var anded = x64Word.and(anotherX64Word); - */ - // and: function (word) { - // var high = this.high & word.high; - // var low = this.low & word.low; - - // return X64Word.create(high, low); - // }, - - /** - * Bitwise ORs this word with the passed word. - * - * @param {X64Word} word The x64-Word to OR with this word. - * - * @return {X64Word} A new x64-Word object after ORing. - * - * @example - * - * var ored = x64Word.or(anotherX64Word); - */ - // or: function (word) { - // var high = this.high | word.high; - // var low = this.low | word.low; - - // return X64Word.create(high, low); - // }, - - /** - * Bitwise XORs this word with the passed word. - * - * @param {X64Word} word The x64-Word to XOR with this word. - * - * @return {X64Word} A new x64-Word object after XORing. - * - * @example - * - * var xored = x64Word.xor(anotherX64Word); - */ - // xor: function (word) { - // var high = this.high ^ word.high; - // var low = this.low ^ word.low; - - // return X64Word.create(high, low); - // }, - - /** - * Shifts this word n bits to the left. - * - * @param {number} n The number of bits to shift. - * - * @return {X64Word} A new x64-Word object after shifting. - * - * @example - * - * var shifted = x64Word.shiftL(25); - */ - // shiftL: function (n) { - // if (n < 32) { - // var high = (this.high << n) | (this.low >>> (32 - n)); - // var low = this.low << n; - // } else { - // var high = this.low << (n - 32); - // var low = 0; - // } - - // return X64Word.create(high, low); - // }, - - /** - * Shifts this word n bits to the right. - * - * @param {number} n The number of bits to shift. - * - * @return {X64Word} A new x64-Word object after shifting. - * - * @example - * - * var shifted = x64Word.shiftR(7); - */ - // shiftR: function (n) { - // if (n < 32) { - // var low = (this.low >>> n) | (this.high << (32 - n)); - // var high = this.high >>> n; - // } else { - // var low = this.high >>> (n - 32); - // var high = 0; - // } - - // return X64Word.create(high, low); - // }, - - /** - * Rotates this word n bits to the left. - * - * @param {number} n The number of bits to rotate. - * - * @return {X64Word} A new x64-Word object after rotating. - * - * @example - * - * var rotated = x64Word.rotL(25); - */ - // rotL: function (n) { - // return this.shiftL(n).or(this.shiftR(64 - n)); - // }, - - /** - * Rotates this word n bits to the right. - * - * @param {number} n The number of bits to rotate. - * - * @return {X64Word} A new x64-Word object after rotating. - * - * @example - * - * var rotated = x64Word.rotR(7); - */ - // rotR: function (n) { - // return this.shiftR(n).or(this.shiftL(64 - n)); - // }, - - /** - * Adds this word with the passed word. - * - * @param {X64Word} word The x64-Word to add with this word. - * - * @return {X64Word} A new x64-Word object after adding. - * - * @example - * - * var added = x64Word.add(anotherX64Word); - */ - // add: function (word) { - // var low = (this.low + word.low) | 0; - // var carry = (low >>> 0) < (this.low >>> 0) ? 1 : 0; - // var high = (this.high + word.high + carry) | 0; - - // return X64Word.create(high, low); - // } - }); - - /** - * An array of 64-bit words. - * - * @property {Array} words The array of CryptoJS.x64.Word objects. - * @property {number} sigBytes The number of significant bytes in this word array. - */ - var X64WordArray = C_x64.WordArray = Base.extend({ - /** - * Initializes a newly created word array. - * - * @param {Array} words (Optional) An array of CryptoJS.x64.Word objects. - * @param {number} sigBytes (Optional) The number of significant bytes in the words. - * - * @example - * - * var wordArray = CryptoJS.x64.WordArray.create(); - * - * var wordArray = CryptoJS.x64.WordArray.create([ - * CryptoJS.x64.Word.create(0x00010203, 0x04050607), - * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f) - * ]); - * - * var wordArray = CryptoJS.x64.WordArray.create([ - * CryptoJS.x64.Word.create(0x00010203, 0x04050607), - * CryptoJS.x64.Word.create(0x18191a1b, 0x1c1d1e1f) - * ], 10); - */ - init: function (words, sigBytes) { - words = this.words = words || []; - - if (sigBytes != undefined) { - this.sigBytes = sigBytes; - } else { - this.sigBytes = words.length * 8; - } - }, - - /** - * Converts this 64-bit word array to a 32-bit word array. - * - * @return {CryptoJS.lib.WordArray} This word array's data as a 32-bit word array. - * - * @example - * - * var x32WordArray = x64WordArray.toX32(); - */ - toX32: function () { - // Shortcuts - var x64Words = this.words; - var x64WordsLength = x64Words.length; - - // Convert - var x32Words = []; - for (var i = 0; i < x64WordsLength; i++) { - var x64Word = x64Words[i]; - x32Words.push(x64Word.high); - x32Words.push(x64Word.low); - } - - return X32WordArray.create(x32Words, this.sigBytes); - }, - - /** - * Creates a copy of this word array. - * - * @return {X64WordArray} The clone. - * - * @example - * - * var clone = x64WordArray.clone(); - */ - clone: function () { - var clone = Base.clone.call(this); - - // Clone "words" array - var words = clone.words = this.words.slice(0); - - // Clone each X64Word object - var wordsLength = words.length; - for (var i = 0; i < wordsLength; i++) { - words[i] = words[i].clone(); - } - - return clone; - } - }); - }()); - - - (function (Math) { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - var Hasher = C_lib.Hasher; - var C_x64 = C.x64; - var X64Word = C_x64.Word; - var C_algo = C.algo; - - // Constants tables - var RHO_OFFSETS = []; - var PI_INDEXES = []; - var ROUND_CONSTANTS = []; - - // Compute Constants - (function () { - // Compute rho offset constants - var x = 1, y = 0; - for (var t = 0; t < 24; t++) { - RHO_OFFSETS[x + 5 * y] = ((t + 1) * (t + 2) / 2) % 64; - - var newX = y % 5; - var newY = (2 * x + 3 * y) % 5; - x = newX; - y = newY; - } - - // Compute pi index constants - for (var x = 0; x < 5; x++) { - for (var y = 0; y < 5; y++) { - PI_INDEXES[x + 5 * y] = y + ((2 * x + 3 * y) % 5) * 5; - } - } - - // Compute round constants - var LFSR = 0x01; - for (var i = 0; i < 24; i++) { - var roundConstantMsw = 0; - var roundConstantLsw = 0; - - for (var j = 0; j < 7; j++) { - if (LFSR & 0x01) { - var bitPosition = (1 << j) - 1; - if (bitPosition < 32) { - roundConstantLsw ^= 1 << bitPosition; - } else /* if (bitPosition >= 32) */ { - roundConstantMsw ^= 1 << (bitPosition - 32); - } - } - - // Compute next LFSR - if (LFSR & 0x80) { - // Primitive polynomial over GF(2): x^8 + x^6 + x^5 + x^4 + 1 - LFSR = (LFSR << 1) ^ 0x71; - } else { - LFSR <<= 1; - } - } - - ROUND_CONSTANTS[i] = X64Word.create(roundConstantMsw, roundConstantLsw); - } - }()); - - // Reusable objects for temporary values - var T = []; - (function () { - for (var i = 0; i < 25; i++) { - T[i] = X64Word.create(); - } - }()); - - /** - * SHA-3 hash algorithm. - */ - var SHA3 = C_algo.SHA3 = Hasher.extend({ - /** - * Configuration options. - * - * @property {number} outputLength - * The desired number of bits in the output hash. - * Only values permitted are: 224, 256, 384, 512. - * Default: 512 - */ - cfg: Hasher.cfg.extend({ - outputLength: 512 - }), - - _doReset: function () { - var state = this._state = [] - for (var i = 0; i < 25; i++) { - state[i] = new X64Word.init(); - } - - this.blockSize = (1600 - 2 * this.cfg.outputLength) / 32; - }, - - _doProcessBlock: function (M, offset) { - // Shortcuts - var state = this._state; - var nBlockSizeLanes = this.blockSize / 2; - - // Absorb - for (var i = 0; i < nBlockSizeLanes; i++) { - // Shortcuts - var M2i = M[offset + 2 * i]; - var M2i1 = M[offset + 2 * i + 1]; - - // Swap endian - M2i = ( - (((M2i << 8) | (M2i >>> 24)) & 0x00ff00ff) | - (((M2i << 24) | (M2i >>> 8)) & 0xff00ff00) - ); - M2i1 = ( - (((M2i1 << 8) | (M2i1 >>> 24)) & 0x00ff00ff) | - (((M2i1 << 24) | (M2i1 >>> 8)) & 0xff00ff00) - ); - - // Absorb message into state - var lane = state[i]; - lane.high ^= M2i1; - lane.low ^= M2i; - } - - // Rounds - for (var round = 0; round < 24; round++) { - // Theta - for (var x = 0; x < 5; x++) { - // Mix column lanes - var tMsw = 0, tLsw = 0; - for (var y = 0; y < 5; y++) { - var lane = state[x + 5 * y]; - tMsw ^= lane.high; - tLsw ^= lane.low; - } - - // Temporary values - var Tx = T[x]; - Tx.high = tMsw; - Tx.low = tLsw; - } - for (var x = 0; x < 5; x++) { - // Shortcuts - var Tx4 = T[(x + 4) % 5]; - var Tx1 = T[(x + 1) % 5]; - var Tx1Msw = Tx1.high; - var Tx1Lsw = Tx1.low; - - // Mix surrounding columns - var tMsw = Tx4.high ^ ((Tx1Msw << 1) | (Tx1Lsw >>> 31)); - var tLsw = Tx4.low ^ ((Tx1Lsw << 1) | (Tx1Msw >>> 31)); - for (var y = 0; y < 5; y++) { - var lane = state[x + 5 * y]; - lane.high ^= tMsw; - lane.low ^= tLsw; - } - } - - // Rho Pi - for (var laneIndex = 1; laneIndex < 25; laneIndex++) { - // Shortcuts - var lane = state[laneIndex]; - var laneMsw = lane.high; - var laneLsw = lane.low; - var rhoOffset = RHO_OFFSETS[laneIndex]; - - // Rotate lanes - if (rhoOffset < 32) { - var tMsw = (laneMsw << rhoOffset) | (laneLsw >>> (32 - rhoOffset)); - var tLsw = (laneLsw << rhoOffset) | (laneMsw >>> (32 - rhoOffset)); - } else /* if (rhoOffset >= 32) */ { - var tMsw = (laneLsw << (rhoOffset - 32)) | (laneMsw >>> (64 - rhoOffset)); - var tLsw = (laneMsw << (rhoOffset - 32)) | (laneLsw >>> (64 - rhoOffset)); - } - - // Transpose lanes - var TPiLane = T[PI_INDEXES[laneIndex]]; - TPiLane.high = tMsw; - TPiLane.low = tLsw; - } - - // Rho pi at x = y = 0 - var T0 = T[0]; - var state0 = state[0]; - T0.high = state0.high; - T0.low = state0.low; - - // Chi - for (var x = 0; x < 5; x++) { - for (var y = 0; y < 5; y++) { - // Shortcuts - var laneIndex = x + 5 * y; - var lane = state[laneIndex]; - var TLane = T[laneIndex]; - var Tx1Lane = T[((x + 1) % 5) + 5 * y]; - var Tx2Lane = T[((x + 2) % 5) + 5 * y]; - - // Mix rows - lane.high = TLane.high ^ (~Tx1Lane.high & Tx2Lane.high); - lane.low = TLane.low ^ (~Tx1Lane.low & Tx2Lane.low); - } - } - - // Iota - var lane = state[0]; - var roundConstant = ROUND_CONSTANTS[round]; - lane.high ^= roundConstant.high; - lane.low ^= roundConstant.low;; - } - }, - - _doFinalize: function () { - // Shortcuts - var data = this._data; - var dataWords = data.words; - var nBitsTotal = this._nDataBytes * 8; - var nBitsLeft = data.sigBytes * 8; - var blockSizeBits = this.blockSize * 32; - - // Add padding - dataWords[nBitsLeft >>> 5] |= 0x1 << (24 - nBitsLeft % 32); - dataWords[((Math.ceil((nBitsLeft + 1) / blockSizeBits) * blockSizeBits) >>> 5) - 1] |= 0x80; - data.sigBytes = dataWords.length * 4; - - // Hash final blocks - this._process(); - - // Shortcuts - var state = this._state; - var outputLengthBytes = this.cfg.outputLength / 8; - var outputLengthLanes = outputLengthBytes / 8; - - // Squeeze - var hashWords = []; - for (var i = 0; i < outputLengthLanes; i++) { - // Shortcuts - var lane = state[i]; - var laneMsw = lane.high; - var laneLsw = lane.low; - - // Swap endian - laneMsw = ( - (((laneMsw << 8) | (laneMsw >>> 24)) & 0x00ff00ff) | - (((laneMsw << 24) | (laneMsw >>> 8)) & 0xff00ff00) - ); - laneLsw = ( - (((laneLsw << 8) | (laneLsw >>> 24)) & 0x00ff00ff) | - (((laneLsw << 24) | (laneLsw >>> 8)) & 0xff00ff00) - ); - - // Squeeze state to retrieve hash - hashWords.push(laneLsw); - hashWords.push(laneMsw); - } - - // Return final computed hash - return new WordArray.init(hashWords, outputLengthBytes); - }, - - clone: function () { - var clone = Hasher.clone.call(this); - - var state = clone._state = this._state.slice(0); - for (var i = 0; i < 25; i++) { - state[i] = state[i].clone(); - } - - return clone; - } - }); - - /** - * Shortcut function to the hasher's object interface. - * - * @param {WordArray|string} message The message to hash. - * - * @return {WordArray} The hash. - * - * @static - * - * @example - * - * var hash = CryptoJS.SHA3('message'); - * var hash = CryptoJS.SHA3(wordArray); - */ - C.SHA3 = Hasher._createHelper(SHA3); - - /** - * Shortcut function to the HMAC's object interface. - * - * @param {WordArray|string} message The message to hash. - * @param {WordArray|string} key The secret key. - * - * @return {WordArray} The HMAC. - * - * @static - * - * @example - * - * var hmac = CryptoJS.HmacSHA3(message, key); - */ - C.HmacSHA3 = Hasher._createHmacHelper(SHA3); - }(Math)); - - - (function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var Hasher = C_lib.Hasher; - var C_x64 = C.x64; - var X64Word = C_x64.Word; - var X64WordArray = C_x64.WordArray; - var C_algo = C.algo; - - function X64Word_create() { - return X64Word.create.apply(X64Word, arguments); - } - - // Constants - var K = [ - X64Word_create(0x428a2f98, 0xd728ae22), X64Word_create(0x71374491, 0x23ef65cd), - X64Word_create(0xb5c0fbcf, 0xec4d3b2f), X64Word_create(0xe9b5dba5, 0x8189dbbc), - X64Word_create(0x3956c25b, 0xf348b538), X64Word_create(0x59f111f1, 0xb605d019), - X64Word_create(0x923f82a4, 0xaf194f9b), X64Word_create(0xab1c5ed5, 0xda6d8118), - X64Word_create(0xd807aa98, 0xa3030242), X64Word_create(0x12835b01, 0x45706fbe), - X64Word_create(0x243185be, 0x4ee4b28c), X64Word_create(0x550c7dc3, 0xd5ffb4e2), - X64Word_create(0x72be5d74, 0xf27b896f), X64Word_create(0x80deb1fe, 0x3b1696b1), - X64Word_create(0x9bdc06a7, 0x25c71235), X64Word_create(0xc19bf174, 0xcf692694), - X64Word_create(0xe49b69c1, 0x9ef14ad2), X64Word_create(0xefbe4786, 0x384f25e3), - X64Word_create(0x0fc19dc6, 0x8b8cd5b5), X64Word_create(0x240ca1cc, 0x77ac9c65), - X64Word_create(0x2de92c6f, 0x592b0275), X64Word_create(0x4a7484aa, 0x6ea6e483), - X64Word_create(0x5cb0a9dc, 0xbd41fbd4), X64Word_create(0x76f988da, 0x831153b5), - X64Word_create(0x983e5152, 0xee66dfab), X64Word_create(0xa831c66d, 0x2db43210), - X64Word_create(0xb00327c8, 0x98fb213f), X64Word_create(0xbf597fc7, 0xbeef0ee4), - X64Word_create(0xc6e00bf3, 0x3da88fc2), X64Word_create(0xd5a79147, 0x930aa725), - X64Word_create(0x06ca6351, 0xe003826f), X64Word_create(0x14292967, 0x0a0e6e70), - X64Word_create(0x27b70a85, 0x46d22ffc), X64Word_create(0x2e1b2138, 0x5c26c926), - X64Word_create(0x4d2c6dfc, 0x5ac42aed), X64Word_create(0x53380d13, 0x9d95b3df), - X64Word_create(0x650a7354, 0x8baf63de), X64Word_create(0x766a0abb, 0x3c77b2a8), - X64Word_create(0x81c2c92e, 0x47edaee6), X64Word_create(0x92722c85, 0x1482353b), - X64Word_create(0xa2bfe8a1, 0x4cf10364), X64Word_create(0xa81a664b, 0xbc423001), - X64Word_create(0xc24b8b70, 0xd0f89791), X64Word_create(0xc76c51a3, 0x0654be30), - X64Word_create(0xd192e819, 0xd6ef5218), X64Word_create(0xd6990624, 0x5565a910), - X64Word_create(0xf40e3585, 0x5771202a), X64Word_create(0x106aa070, 0x32bbd1b8), - X64Word_create(0x19a4c116, 0xb8d2d0c8), X64Word_create(0x1e376c08, 0x5141ab53), - X64Word_create(0x2748774c, 0xdf8eeb99), X64Word_create(0x34b0bcb5, 0xe19b48a8), - X64Word_create(0x391c0cb3, 0xc5c95a63), X64Word_create(0x4ed8aa4a, 0xe3418acb), - X64Word_create(0x5b9cca4f, 0x7763e373), X64Word_create(0x682e6ff3, 0xd6b2b8a3), - X64Word_create(0x748f82ee, 0x5defb2fc), X64Word_create(0x78a5636f, 0x43172f60), - X64Word_create(0x84c87814, 0xa1f0ab72), X64Word_create(0x8cc70208, 0x1a6439ec), - X64Word_create(0x90befffa, 0x23631e28), X64Word_create(0xa4506ceb, 0xde82bde9), - X64Word_create(0xbef9a3f7, 0xb2c67915), X64Word_create(0xc67178f2, 0xe372532b), - X64Word_create(0xca273ece, 0xea26619c), X64Word_create(0xd186b8c7, 0x21c0c207), - X64Word_create(0xeada7dd6, 0xcde0eb1e), X64Word_create(0xf57d4f7f, 0xee6ed178), - X64Word_create(0x06f067aa, 0x72176fba), X64Word_create(0x0a637dc5, 0xa2c898a6), - X64Word_create(0x113f9804, 0xbef90dae), X64Word_create(0x1b710b35, 0x131c471b), - X64Word_create(0x28db77f5, 0x23047d84), X64Word_create(0x32caab7b, 0x40c72493), - X64Word_create(0x3c9ebe0a, 0x15c9bebc), X64Word_create(0x431d67c4, 0x9c100d4c), - X64Word_create(0x4cc5d4be, 0xcb3e42b6), X64Word_create(0x597f299c, 0xfc657e2a), - X64Word_create(0x5fcb6fab, 0x3ad6faec), X64Word_create(0x6c44198c, 0x4a475817) - ]; - - // Reusable objects - var W = []; - (function () { - for (var i = 0; i < 80; i++) { - W[i] = X64Word_create(); - } - }()); - - /** - * SHA-512 hash algorithm. - */ - var SHA512 = C_algo.SHA512 = Hasher.extend({ - _doReset: function () { - this._hash = new X64WordArray.init([ - new X64Word.init(0x6a09e667, 0xf3bcc908), new X64Word.init(0xbb67ae85, 0x84caa73b), - new X64Word.init(0x3c6ef372, 0xfe94f82b), new X64Word.init(0xa54ff53a, 0x5f1d36f1), - new X64Word.init(0x510e527f, 0xade682d1), new X64Word.init(0x9b05688c, 0x2b3e6c1f), - new X64Word.init(0x1f83d9ab, 0xfb41bd6b), new X64Word.init(0x5be0cd19, 0x137e2179) - ]); - }, - - _doProcessBlock: function (M, offset) { - // Shortcuts - var H = this._hash.words; - - var H0 = H[0]; - var H1 = H[1]; - var H2 = H[2]; - var H3 = H[3]; - var H4 = H[4]; - var H5 = H[5]; - var H6 = H[6]; - var H7 = H[7]; - - var H0h = H0.high; - var H0l = H0.low; - var H1h = H1.high; - var H1l = H1.low; - var H2h = H2.high; - var H2l = H2.low; - var H3h = H3.high; - var H3l = H3.low; - var H4h = H4.high; - var H4l = H4.low; - var H5h = H5.high; - var H5l = H5.low; - var H6h = H6.high; - var H6l = H6.low; - var H7h = H7.high; - var H7l = H7.low; - - // Working variables - var ah = H0h; - var al = H0l; - var bh = H1h; - var bl = H1l; - var ch = H2h; - var cl = H2l; - var dh = H3h; - var dl = H3l; - var eh = H4h; - var el = H4l; - var fh = H5h; - var fl = H5l; - var gh = H6h; - var gl = H6l; - var hh = H7h; - var hl = H7l; - - // Rounds - for (var i = 0; i < 80; i++) { - // Shortcut - var Wi = W[i]; - - // Extend message - if (i < 16) { - var Wih = Wi.high = M[offset + i * 2] | 0; - var Wil = Wi.low = M[offset + i * 2 + 1] | 0; - } else { - // Gamma0 - var gamma0x = W[i - 15]; - var gamma0xh = gamma0x.high; - var gamma0xl = gamma0x.low; - var gamma0h = ((gamma0xh >>> 1) | (gamma0xl << 31)) ^ ((gamma0xh >>> 8) | (gamma0xl << 24)) ^ (gamma0xh >>> 7); - var gamma0l = ((gamma0xl >>> 1) | (gamma0xh << 31)) ^ ((gamma0xl >>> 8) | (gamma0xh << 24)) ^ ((gamma0xl >>> 7) | (gamma0xh << 25)); - - // Gamma1 - var gamma1x = W[i - 2]; - var gamma1xh = gamma1x.high; - var gamma1xl = gamma1x.low; - var gamma1h = ((gamma1xh >>> 19) | (gamma1xl << 13)) ^ ((gamma1xh << 3) | (gamma1xl >>> 29)) ^ (gamma1xh >>> 6); - var gamma1l = ((gamma1xl >>> 19) | (gamma1xh << 13)) ^ ((gamma1xl << 3) | (gamma1xh >>> 29)) ^ ((gamma1xl >>> 6) | (gamma1xh << 26)); - - // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16] - var Wi7 = W[i - 7]; - var Wi7h = Wi7.high; - var Wi7l = Wi7.low; - - var Wi16 = W[i - 16]; - var Wi16h = Wi16.high; - var Wi16l = Wi16.low; - - var Wil = gamma0l + Wi7l; - var Wih = gamma0h + Wi7h + ((Wil >>> 0) < (gamma0l >>> 0) ? 1 : 0); - var Wil = Wil + gamma1l; - var Wih = Wih + gamma1h + ((Wil >>> 0) < (gamma1l >>> 0) ? 1 : 0); - var Wil = Wil + Wi16l; - var Wih = Wih + Wi16h + ((Wil >>> 0) < (Wi16l >>> 0) ? 1 : 0); - - Wi.high = Wih; - Wi.low = Wil; - } - - var chh = (eh & fh) ^ (~eh & gh); - var chl = (el & fl) ^ (~el & gl); - var majh = (ah & bh) ^ (ah & ch) ^ (bh & ch); - var majl = (al & bl) ^ (al & cl) ^ (bl & cl); - - var sigma0h = ((ah >>> 28) | (al << 4)) ^ ((ah << 30) | (al >>> 2)) ^ ((ah << 25) | (al >>> 7)); - var sigma0l = ((al >>> 28) | (ah << 4)) ^ ((al << 30) | (ah >>> 2)) ^ ((al << 25) | (ah >>> 7)); - var sigma1h = ((eh >>> 14) | (el << 18)) ^ ((eh >>> 18) | (el << 14)) ^ ((eh << 23) | (el >>> 9)); - var sigma1l = ((el >>> 14) | (eh << 18)) ^ ((el >>> 18) | (eh << 14)) ^ ((el << 23) | (eh >>> 9)); - - // t1 = h + sigma1 + ch + K[i] + W[i] - var Ki = K[i]; - var Kih = Ki.high; - var Kil = Ki.low; - - var t1l = hl + sigma1l; - var t1h = hh + sigma1h + ((t1l >>> 0) < (hl >>> 0) ? 1 : 0); - var t1l = t1l + chl; - var t1h = t1h + chh + ((t1l >>> 0) < (chl >>> 0) ? 1 : 0); - var t1l = t1l + Kil; - var t1h = t1h + Kih + ((t1l >>> 0) < (Kil >>> 0) ? 1 : 0); - var t1l = t1l + Wil; - var t1h = t1h + Wih + ((t1l >>> 0) < (Wil >>> 0) ? 1 : 0); - - // t2 = sigma0 + maj - var t2l = sigma0l + majl; - var t2h = sigma0h + majh + ((t2l >>> 0) < (sigma0l >>> 0) ? 1 : 0); - - // Update working variables - hh = gh; - hl = gl; - gh = fh; - gl = fl; - fh = eh; - fl = el; - el = (dl + t1l) | 0; - eh = (dh + t1h + ((el >>> 0) < (dl >>> 0) ? 1 : 0)) | 0; - dh = ch; - dl = cl; - ch = bh; - cl = bl; - bh = ah; - bl = al; - al = (t1l + t2l) | 0; - ah = (t1h + t2h + ((al >>> 0) < (t1l >>> 0) ? 1 : 0)) | 0; - } - - // Intermediate hash value - H0l = H0.low = (H0l + al); - H0.high = (H0h + ah + ((H0l >>> 0) < (al >>> 0) ? 1 : 0)); - H1l = H1.low = (H1l + bl); - H1.high = (H1h + bh + ((H1l >>> 0) < (bl >>> 0) ? 1 : 0)); - H2l = H2.low = (H2l + cl); - H2.high = (H2h + ch + ((H2l >>> 0) < (cl >>> 0) ? 1 : 0)); - H3l = H3.low = (H3l + dl); - H3.high = (H3h + dh + ((H3l >>> 0) < (dl >>> 0) ? 1 : 0)); - H4l = H4.low = (H4l + el); - H4.high = (H4h + eh + ((H4l >>> 0) < (el >>> 0) ? 1 : 0)); - H5l = H5.low = (H5l + fl); - H5.high = (H5h + fh + ((H5l >>> 0) < (fl >>> 0) ? 1 : 0)); - H6l = H6.low = (H6l + gl); - H6.high = (H6h + gh + ((H6l >>> 0) < (gl >>> 0) ? 1 : 0)); - H7l = H7.low = (H7l + hl); - H7.high = (H7h + hh + ((H7l >>> 0) < (hl >>> 0) ? 1 : 0)); - }, - - _doFinalize: function () { - // Shortcuts - var data = this._data; - var dataWords = data.words; - - var nBitsTotal = this._nDataBytes * 8; - var nBitsLeft = data.sigBytes * 8; - - // Add padding - dataWords[nBitsLeft >>> 5] |= 0x80 << (24 - nBitsLeft % 32); - dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 30] = Math.floor(nBitsTotal / 0x100000000); - dataWords[(((nBitsLeft + 128) >>> 10) << 5) + 31] = nBitsTotal; - data.sigBytes = dataWords.length * 4; - - // Hash final blocks - this._process(); - - // Convert hash to 32-bit word array before returning - var hash = this._hash.toX32(); - - // Return final computed hash - return hash; - }, - - clone: function () { - var clone = Hasher.clone.call(this); - clone._hash = this._hash.clone(); - - return clone; - }, - - blockSize: 1024/32 - }); - - /** - * Shortcut function to the hasher's object interface. - * - * @param {WordArray|string} message The message to hash. - * - * @return {WordArray} The hash. - * - * @static - * - * @example - * - * var hash = CryptoJS.SHA512('message'); - * var hash = CryptoJS.SHA512(wordArray); - */ - C.SHA512 = Hasher._createHelper(SHA512); - - /** - * Shortcut function to the HMAC's object interface. - * - * @param {WordArray|string} message The message to hash. - * @param {WordArray|string} key The secret key. - * - * @return {WordArray} The HMAC. - * - * @static - * - * @example - * - * var hmac = CryptoJS.HmacSHA512(message, key); - */ - C.HmacSHA512 = Hasher._createHmacHelper(SHA512); - }()); - - - (function () { - // Shortcuts - var C = CryptoJS; - var C_x64 = C.x64; - var X64Word = C_x64.Word; - var X64WordArray = C_x64.WordArray; - var C_algo = C.algo; - var SHA512 = C_algo.SHA512; - - /** - * SHA-384 hash algorithm. - */ - var SHA384 = C_algo.SHA384 = SHA512.extend({ - _doReset: function () { - this._hash = new X64WordArray.init([ - new X64Word.init(0xcbbb9d5d, 0xc1059ed8), new X64Word.init(0x629a292a, 0x367cd507), - new X64Word.init(0x9159015a, 0x3070dd17), new X64Word.init(0x152fecd8, 0xf70e5939), - new X64Word.init(0x67332667, 0xffc00b31), new X64Word.init(0x8eb44a87, 0x68581511), - new X64Word.init(0xdb0c2e0d, 0x64f98fa7), new X64Word.init(0x47b5481d, 0xbefa4fa4) - ]); - }, - - _doFinalize: function () { - var hash = SHA512._doFinalize.call(this); - - hash.sigBytes -= 16; - - return hash; - } - }); - - /** - * Shortcut function to the hasher's object interface. - * - * @param {WordArray|string} message The message to hash. - * - * @return {WordArray} The hash. - * - * @static - * - * @example - * - * var hash = CryptoJS.SHA384('message'); - * var hash = CryptoJS.SHA384(wordArray); - */ - C.SHA384 = SHA512._createHelper(SHA384); - - /** - * Shortcut function to the HMAC's object interface. - * - * @param {WordArray|string} message The message to hash. - * @param {WordArray|string} key The secret key. - * - * @return {WordArray} The HMAC. - * - * @static - * - * @example - * - * var hmac = CryptoJS.HmacSHA384(message, key); - */ - C.HmacSHA384 = SHA512._createHmacHelper(SHA384); - }()); - - - /** - * Cipher core components. - */ - CryptoJS.lib.Cipher || (function (undefined) { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var Base = C_lib.Base; - var WordArray = C_lib.WordArray; - var BufferedBlockAlgorithm = C_lib.BufferedBlockAlgorithm; - var C_enc = C.enc; - var Utf8 = C_enc.Utf8; - var Base64 = C_enc.Base64; - var C_algo = C.algo; - var EvpKDF = C_algo.EvpKDF; - - /** - * Abstract base cipher template. - * - * @property {number} keySize This cipher's key size. Default: 4 (128 bits) - * @property {number} ivSize This cipher's IV size. Default: 4 (128 bits) - * @property {number} _ENC_XFORM_MODE A constant representing encryption mode. - * @property {number} _DEC_XFORM_MODE A constant representing decryption mode. - */ - var Cipher = C_lib.Cipher = BufferedBlockAlgorithm.extend({ - /** - * Configuration options. - * - * @property {WordArray} iv The IV to use for this operation. - */ - cfg: Base.extend(), - - /** - * Creates this cipher in encryption mode. - * - * @param {WordArray} key The key. - * @param {Object} cfg (Optional) The configuration options to use for this operation. - * - * @return {Cipher} A cipher instance. - * - * @static - * - * @example - * - * var cipher = CryptoJS.algo.AES.createEncryptor(keyWordArray, { iv: ivWordArray }); - */ - createEncryptor: function (key, cfg) { - return this.create(this._ENC_XFORM_MODE, key, cfg); - }, - - /** - * Creates this cipher in decryption mode. - * - * @param {WordArray} key The key. - * @param {Object} cfg (Optional) The configuration options to use for this operation. - * - * @return {Cipher} A cipher instance. - * - * @static - * - * @example - * - * var cipher = CryptoJS.algo.AES.createDecryptor(keyWordArray, { iv: ivWordArray }); - */ - createDecryptor: function (key, cfg) { - return this.create(this._DEC_XFORM_MODE, key, cfg); - }, - - /** - * Initializes a newly created cipher. - * - * @param {number} xformMode Either the encryption or decryption transormation mode constant. - * @param {WordArray} key The key. - * @param {Object} cfg (Optional) The configuration options to use for this operation. - * - * @example - * - * var cipher = CryptoJS.algo.AES.create(CryptoJS.algo.AES._ENC_XFORM_MODE, keyWordArray, { iv: ivWordArray }); - */ - init: function (xformMode, key, cfg) { - // Apply config defaults - this.cfg = this.cfg.extend(cfg); - - // Store transform mode and key - this._xformMode = xformMode; - this._key = key; - - // Set initial values - this.reset(); - }, - - /** - * Resets this cipher to its initial state. - * - * @example - * - * cipher.reset(); - */ - reset: function () { - // Reset data buffer - BufferedBlockAlgorithm.reset.call(this); - - // Perform concrete-cipher logic - this._doReset(); - }, - - /** - * Adds data to be encrypted or decrypted. - * - * @param {WordArray|string} dataUpdate The data to encrypt or decrypt. - * - * @return {WordArray} The data after processing. - * - * @example - * - * var encrypted = cipher.process('data'); - * var encrypted = cipher.process(wordArray); - */ - process: function (dataUpdate) { - // Append - this._append(dataUpdate); - - // Process available blocks - return this._process(); - }, - - /** - * Finalizes the encryption or decryption process. - * Note that the finalize operation is effectively a destructive, read-once operation. - * - * @param {WordArray|string} dataUpdate The final data to encrypt or decrypt. - * - * @return {WordArray} The data after final processing. - * - * @example - * - * var encrypted = cipher.finalize(); - * var encrypted = cipher.finalize('data'); - * var encrypted = cipher.finalize(wordArray); - */ - finalize: function (dataUpdate) { - // Final data update - if (dataUpdate) { - this._append(dataUpdate); - } - - // Perform concrete-cipher logic - var finalProcessedData = this._doFinalize(); - - return finalProcessedData; - }, - - keySize: 128/32, - - ivSize: 128/32, - - _ENC_XFORM_MODE: 1, - - _DEC_XFORM_MODE: 2, - - /** - * Creates shortcut functions to a cipher's object interface. - * - * @param {Cipher} cipher The cipher to create a helper for. - * - * @return {Object} An object with encrypt and decrypt shortcut functions. - * - * @static - * - * @example - * - * var AES = CryptoJS.lib.Cipher._createHelper(CryptoJS.algo.AES); - */ - _createHelper: (function () { - function selectCipherStrategy(key) { - if (typeof key == 'string') { - return PasswordBasedCipher; - } else { - return SerializableCipher; - } - } - - return function (cipher) { - return { - encrypt: function (message, key, cfg) { - return selectCipherStrategy(key).encrypt(cipher, message, key, cfg); - }, - - decrypt: function (ciphertext, key, cfg) { - return selectCipherStrategy(key).decrypt(cipher, ciphertext, key, cfg); - } - }; - }; - }()) - }); - - /** - * Abstract base stream cipher template. - * - * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 1 (32 bits) - */ - var StreamCipher = C_lib.StreamCipher = Cipher.extend({ - _doFinalize: function () { - // Process partial blocks - var finalProcessedBlocks = this._process(!!'flush'); - - return finalProcessedBlocks; - }, - - blockSize: 1 - }); - - /** - * Mode namespace. - */ - var C_mode = C.mode = {}; - - /** - * Abstract base block cipher mode template. - */ - var BlockCipherMode = C_lib.BlockCipherMode = Base.extend({ - /** - * Creates this mode for encryption. - * - * @param {Cipher} cipher A block cipher instance. - * @param {Array} iv The IV words. - * - * @static - * - * @example - * - * var mode = CryptoJS.mode.CBC.createEncryptor(cipher, iv.words); - */ - createEncryptor: function (cipher, iv) { - return this.Encryptor.create(cipher, iv); - }, - - /** - * Creates this mode for decryption. - * - * @param {Cipher} cipher A block cipher instance. - * @param {Array} iv The IV words. - * - * @static - * - * @example - * - * var mode = CryptoJS.mode.CBC.createDecryptor(cipher, iv.words); - */ - createDecryptor: function (cipher, iv) { - return this.Decryptor.create(cipher, iv); - }, - - /** - * Initializes a newly created mode. - * - * @param {Cipher} cipher A block cipher instance. - * @param {Array} iv The IV words. - * - * @example - * - * var mode = CryptoJS.mode.CBC.Encryptor.create(cipher, iv.words); - */ - init: function (cipher, iv) { - this._cipher = cipher; - this._iv = iv; - } - }); - - /** - * Cipher Block Chaining mode. - */ - var CBC = C_mode.CBC = (function () { - /** - * Abstract base CBC mode. - */ - var CBC = BlockCipherMode.extend(); - - /** - * CBC encryptor. - */ - CBC.Encryptor = CBC.extend({ - /** - * Processes the data block at offset. - * - * @param {Array} words The data words to operate on. - * @param {number} offset The offset where the block starts. - * - * @example - * - * mode.processBlock(data.words, offset); - */ - processBlock: function (words, offset) { - // Shortcuts - var cipher = this._cipher; - var blockSize = cipher.blockSize; - - // XOR and encrypt - xorBlock.call(this, words, offset, blockSize); - cipher.encryptBlock(words, offset); - - // Remember this block to use with next block - this._prevBlock = words.slice(offset, offset + blockSize); - } - }); - - /** - * CBC decryptor. - */ - CBC.Decryptor = CBC.extend({ - /** - * Processes the data block at offset. - * - * @param {Array} words The data words to operate on. - * @param {number} offset The offset where the block starts. - * - * @example - * - * mode.processBlock(data.words, offset); - */ - processBlock: function (words, offset) { - // Shortcuts - var cipher = this._cipher; - var blockSize = cipher.blockSize; - - // Remember this block to use with next block - var thisBlock = words.slice(offset, offset + blockSize); - - // Decrypt and XOR - cipher.decryptBlock(words, offset); - xorBlock.call(this, words, offset, blockSize); - - // This block becomes the previous block - this._prevBlock = thisBlock; - } - }); - - function xorBlock(words, offset, blockSize) { - // Shortcut - var iv = this._iv; - - // Choose mixing block - if (iv) { - var block = iv; - - // Remove IV for subsequent blocks - this._iv = undefined; - } else { - var block = this._prevBlock; - } - - // XOR blocks - for (var i = 0; i < blockSize; i++) { - words[offset + i] ^= block[i]; - } - } - - return CBC; - }()); - - /** - * Padding namespace. - */ - var C_pad = C.pad = {}; - - /** - * PKCS #5/7 padding strategy. - */ - var Pkcs7 = C_pad.Pkcs7 = { - /** - * Pads data using the algorithm defined in PKCS #5/7. - * - * @param {WordArray} data The data to pad. - * @param {number} blockSize The multiple that the data should be padded to. - * - * @static - * - * @example - * - * CryptoJS.pad.Pkcs7.pad(wordArray, 4); - */ - pad: function (data, blockSize) { - // Shortcut - var blockSizeBytes = blockSize * 4; - - // Count padding bytes - var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; - - // Create padding word - var paddingWord = (nPaddingBytes << 24) | (nPaddingBytes << 16) | (nPaddingBytes << 8) | nPaddingBytes; - - // Create padding - var paddingWords = []; - for (var i = 0; i < nPaddingBytes; i += 4) { - paddingWords.push(paddingWord); - } - var padding = WordArray.create(paddingWords, nPaddingBytes); - - // Add padding - data.concat(padding); - }, - - /** - * Unpads data that had been padded using the algorithm defined in PKCS #5/7. - * - * @param {WordArray} data The data to unpad. - * - * @static - * - * @example - * - * CryptoJS.pad.Pkcs7.unpad(wordArray); - */ - unpad: function (data) { - // Get number of padding bytes from last byte - var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff; - - // Remove padding - data.sigBytes -= nPaddingBytes; - } - }; - - /** - * Abstract base block cipher template. - * - * @property {number} blockSize The number of 32-bit words this cipher operates on. Default: 4 (128 bits) - */ - var BlockCipher = C_lib.BlockCipher = Cipher.extend({ - /** - * Configuration options. - * - * @property {Mode} mode The block mode to use. Default: CBC - * @property {Padding} padding The padding strategy to use. Default: Pkcs7 - */ - cfg: Cipher.cfg.extend({ - mode: CBC, - padding: Pkcs7 - }), - - reset: function () { - // Reset cipher - Cipher.reset.call(this); - - // Shortcuts - var cfg = this.cfg; - var iv = cfg.iv; - var mode = cfg.mode; - - // Reset block mode - if (this._xformMode == this._ENC_XFORM_MODE) { - var modeCreator = mode.createEncryptor; - } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ { - var modeCreator = mode.createDecryptor; - // Keep at least one block in the buffer for unpadding - this._minBufferSize = 1; - } - - if (this._mode && this._mode.__creator == modeCreator) { - this._mode.init(this, iv && iv.words); - } else { - this._mode = modeCreator.call(mode, this, iv && iv.words); - this._mode.__creator = modeCreator; - } - }, - - _doProcessBlock: function (words, offset) { - this._mode.processBlock(words, offset); - }, - - _doFinalize: function () { - // Shortcut - var padding = this.cfg.padding; - - // Finalize - if (this._xformMode == this._ENC_XFORM_MODE) { - // Pad data - padding.pad(this._data, this.blockSize); - - // Process final blocks - var finalProcessedBlocks = this._process(!!'flush'); - } else /* if (this._xformMode == this._DEC_XFORM_MODE) */ { - // Process final blocks - var finalProcessedBlocks = this._process(!!'flush'); - - // Unpad data - padding.unpad(finalProcessedBlocks); - } - - return finalProcessedBlocks; - }, - - blockSize: 128/32 - }); - - /** - * A collection of cipher parameters. - * - * @property {WordArray} ciphertext The raw ciphertext. - * @property {WordArray} key The key to this ciphertext. - * @property {WordArray} iv The IV used in the ciphering operation. - * @property {WordArray} salt The salt used with a key derivation function. - * @property {Cipher} algorithm The cipher algorithm. - * @property {Mode} mode The block mode used in the ciphering operation. - * @property {Padding} padding The padding scheme used in the ciphering operation. - * @property {number} blockSize The block size of the cipher. - * @property {Format} formatter The default formatting strategy to convert this cipher params object to a string. - */ - var CipherParams = C_lib.CipherParams = Base.extend({ - /** - * Initializes a newly created cipher params object. - * - * @param {Object} cipherParams An object with any of the possible cipher parameters. - * - * @example - * - * var cipherParams = CryptoJS.lib.CipherParams.create({ - * ciphertext: ciphertextWordArray, - * key: keyWordArray, - * iv: ivWordArray, - * salt: saltWordArray, - * algorithm: CryptoJS.algo.AES, - * mode: CryptoJS.mode.CBC, - * padding: CryptoJS.pad.PKCS7, - * blockSize: 4, - * formatter: CryptoJS.format.OpenSSL - * }); - */ - init: function (cipherParams) { - this.mixIn(cipherParams); - }, - - /** - * Converts this cipher params object to a string. - * - * @param {Format} formatter (Optional) The formatting strategy to use. - * - * @return {string} The stringified cipher params. - * - * @throws Error If neither the formatter nor the default formatter is set. - * - * @example - * - * var string = cipherParams + ''; - * var string = cipherParams.toString(); - * var string = cipherParams.toString(CryptoJS.format.OpenSSL); - */ - toString: function (formatter) { - return (formatter || this.formatter).stringify(this); - } - }); - - /** - * Format namespace. - */ - var C_format = C.format = {}; - - /** - * OpenSSL formatting strategy. - */ - var OpenSSLFormatter = C_format.OpenSSL = { - /** - * Converts a cipher params object to an OpenSSL-compatible string. - * - * @param {CipherParams} cipherParams The cipher params object. - * - * @return {string} The OpenSSL-compatible string. - * - * @static - * - * @example - * - * var openSSLString = CryptoJS.format.OpenSSL.stringify(cipherParams); - */ - stringify: function (cipherParams) { - // Shortcuts - var ciphertext = cipherParams.ciphertext; - var salt = cipherParams.salt; - - // Format - if (salt) { - var wordArray = WordArray.create([0x53616c74, 0x65645f5f]).concat(salt).concat(ciphertext); - } else { - var wordArray = ciphertext; - } - - return wordArray.toString(Base64); - }, - - /** - * Converts an OpenSSL-compatible string to a cipher params object. - * - * @param {string} openSSLStr The OpenSSL-compatible string. - * - * @return {CipherParams} The cipher params object. - * - * @static - * - * @example - * - * var cipherParams = CryptoJS.format.OpenSSL.parse(openSSLString); - */ - parse: function (openSSLStr) { - // Parse base64 - var ciphertext = Base64.parse(openSSLStr); - - // Shortcut - var ciphertextWords = ciphertext.words; - - // Test for salt - if (ciphertextWords[0] == 0x53616c74 && ciphertextWords[1] == 0x65645f5f) { - // Extract salt - var salt = WordArray.create(ciphertextWords.slice(2, 4)); - - // Remove salt from ciphertext - ciphertextWords.splice(0, 4); - ciphertext.sigBytes -= 16; - } - - return CipherParams.create({ ciphertext: ciphertext, salt: salt }); - } - }; - - /** - * A cipher wrapper that returns ciphertext as a serializable cipher params object. - */ - var SerializableCipher = C_lib.SerializableCipher = Base.extend({ - /** - * Configuration options. - * - * @property {Formatter} format The formatting strategy to convert cipher param objects to and from a string. Default: OpenSSL - */ - cfg: Base.extend({ - format: OpenSSLFormatter - }), - - /** - * Encrypts a message. - * - * @param {Cipher} cipher The cipher algorithm to use. - * @param {WordArray|string} message The message to encrypt. - * @param {WordArray} key The key. - * @param {Object} cfg (Optional) The configuration options to use for this operation. - * - * @return {CipherParams} A cipher params object. - * - * @static - * - * @example - * - * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key); - * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv }); - * var ciphertextParams = CryptoJS.lib.SerializableCipher.encrypt(CryptoJS.algo.AES, message, key, { iv: iv, format: CryptoJS.format.OpenSSL }); - */ - encrypt: function (cipher, message, key, cfg) { - // Apply config defaults - cfg = this.cfg.extend(cfg); - - // Encrypt - var encryptor = cipher.createEncryptor(key, cfg); - var ciphertext = encryptor.finalize(message); - - // Shortcut - var cipherCfg = encryptor.cfg; - - // Create and return serializable cipher params - return CipherParams.create({ - ciphertext: ciphertext, - key: key, - iv: cipherCfg.iv, - algorithm: cipher, - mode: cipherCfg.mode, - padding: cipherCfg.padding, - blockSize: cipher.blockSize, - formatter: cfg.format - }); - }, - - /** - * Decrypts serialized ciphertext. - * - * @param {Cipher} cipher The cipher algorithm to use. - * @param {CipherParams|string} ciphertext The ciphertext to decrypt. - * @param {WordArray} key The key. - * @param {Object} cfg (Optional) The configuration options to use for this operation. - * - * @return {WordArray} The plaintext. - * - * @static - * - * @example - * - * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, key, { iv: iv, format: CryptoJS.format.OpenSSL }); - * var plaintext = CryptoJS.lib.SerializableCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, key, { iv: iv, format: CryptoJS.format.OpenSSL }); - */ - decrypt: function (cipher, ciphertext, key, cfg) { - // Apply config defaults - cfg = this.cfg.extend(cfg); - - // Convert string to CipherParams - ciphertext = this._parse(ciphertext, cfg.format); - - // Decrypt - var plaintext = cipher.createDecryptor(key, cfg).finalize(ciphertext.ciphertext); - - return plaintext; - }, - - /** - * Converts serialized ciphertext to CipherParams, - * else assumed CipherParams already and returns ciphertext unchanged. - * - * @param {CipherParams|string} ciphertext The ciphertext. - * @param {Formatter} format The formatting strategy to use to parse serialized ciphertext. - * - * @return {CipherParams} The unserialized ciphertext. - * - * @static - * - * @example - * - * var ciphertextParams = CryptoJS.lib.SerializableCipher._parse(ciphertextStringOrParams, format); - */ - _parse: function (ciphertext, format) { - if (typeof ciphertext == 'string') { - return format.parse(ciphertext, this); - } else { - return ciphertext; - } - } - }); - - /** - * Key derivation function namespace. - */ - var C_kdf = C.kdf = {}; - - /** - * OpenSSL key derivation function. - */ - var OpenSSLKdf = C_kdf.OpenSSL = { - /** - * Derives a key and IV from a password. - * - * @param {string} password The password to derive from. - * @param {number} keySize The size in words of the key to generate. - * @param {number} ivSize The size in words of the IV to generate. - * @param {WordArray|string} salt (Optional) A 64-bit salt to use. If omitted, a salt will be generated randomly. - * - * @return {CipherParams} A cipher params object with the key, IV, and salt. - * - * @static - * - * @example - * - * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32); - * var derivedParams = CryptoJS.kdf.OpenSSL.execute('Password', 256/32, 128/32, 'saltsalt'); - */ - execute: function (password, keySize, ivSize, salt) { - // Generate random salt - if (!salt) { - salt = WordArray.random(64/8); - } - - // Derive key and IV - var key = EvpKDF.create({ keySize: keySize + ivSize }).compute(password, salt); - - // Separate key and IV - var iv = WordArray.create(key.words.slice(keySize), ivSize * 4); - key.sigBytes = keySize * 4; - - // Return params - return CipherParams.create({ key: key, iv: iv, salt: salt }); - } - }; - - /** - * A serializable cipher wrapper that derives the key from a password, - * and returns ciphertext as a serializable cipher params object. - */ - var PasswordBasedCipher = C_lib.PasswordBasedCipher = SerializableCipher.extend({ - /** - * Configuration options. - * - * @property {KDF} kdf The key derivation function to use to generate a key and IV from a password. Default: OpenSSL - */ - cfg: SerializableCipher.cfg.extend({ - kdf: OpenSSLKdf - }), - - /** - * Encrypts a message using a password. - * - * @param {Cipher} cipher The cipher algorithm to use. - * @param {WordArray|string} message The message to encrypt. - * @param {string} password The password. - * @param {Object} cfg (Optional) The configuration options to use for this operation. - * - * @return {CipherParams} A cipher params object. - * - * @static - * - * @example - * - * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password'); - * var ciphertextParams = CryptoJS.lib.PasswordBasedCipher.encrypt(CryptoJS.algo.AES, message, 'password', { format: CryptoJS.format.OpenSSL }); - */ - encrypt: function (cipher, message, password, cfg) { - // Apply config defaults - cfg = this.cfg.extend(cfg); - - // Derive key and other params - var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize); - - // Add IV to config - cfg.iv = derivedParams.iv; - - // Encrypt - var ciphertext = SerializableCipher.encrypt.call(this, cipher, message, derivedParams.key, cfg); - - // Mix in derived params - ciphertext.mixIn(derivedParams); - - return ciphertext; - }, - - /** - * Decrypts serialized ciphertext using a password. - * - * @param {Cipher} cipher The cipher algorithm to use. - * @param {CipherParams|string} ciphertext The ciphertext to decrypt. - * @param {string} password The password. - * @param {Object} cfg (Optional) The configuration options to use for this operation. - * - * @return {WordArray} The plaintext. - * - * @static - * - * @example - * - * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, formattedCiphertext, 'password', { format: CryptoJS.format.OpenSSL }); - * var plaintext = CryptoJS.lib.PasswordBasedCipher.decrypt(CryptoJS.algo.AES, ciphertextParams, 'password', { format: CryptoJS.format.OpenSSL }); - */ - decrypt: function (cipher, ciphertext, password, cfg) { - // Apply config defaults - cfg = this.cfg.extend(cfg); - - // Convert string to CipherParams - ciphertext = this._parse(ciphertext, cfg.format); - - // Derive key and other params - var derivedParams = cfg.kdf.execute(password, cipher.keySize, cipher.ivSize, ciphertext.salt); - - // Add IV to config - cfg.iv = derivedParams.iv; - - // Decrypt - var plaintext = SerializableCipher.decrypt.call(this, cipher, ciphertext, derivedParams.key, cfg); - - return plaintext; - } - }); - }()); - - - /** - * Cipher Feedback block mode. - */ - CryptoJS.mode.CFB = (function () { - var CFB = CryptoJS.lib.BlockCipherMode.extend(); - - CFB.Encryptor = CFB.extend({ - processBlock: function (words, offset) { - // Shortcuts - var cipher = this._cipher; - var blockSize = cipher.blockSize; - - generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher); - - // Remember this block to use with next block - this._prevBlock = words.slice(offset, offset + blockSize); - } - }); - - CFB.Decryptor = CFB.extend({ - processBlock: function (words, offset) { - // Shortcuts - var cipher = this._cipher; - var blockSize = cipher.blockSize; - - // Remember this block to use with next block - var thisBlock = words.slice(offset, offset + blockSize); - - generateKeystreamAndEncrypt.call(this, words, offset, blockSize, cipher); - - // This block becomes the previous block - this._prevBlock = thisBlock; - } - }); - - function generateKeystreamAndEncrypt(words, offset, blockSize, cipher) { - // Shortcut - var iv = this._iv; - - // Generate keystream - if (iv) { - var keystream = iv.slice(0); - - // Remove IV for subsequent blocks - this._iv = undefined; - } else { - var keystream = this._prevBlock; - } - cipher.encryptBlock(keystream, 0); - - // Encrypt - for (var i = 0; i < blockSize; i++) { - words[offset + i] ^= keystream[i]; - } - } - - return CFB; - }()); - - - /** - * Electronic Codebook block mode. - */ - CryptoJS.mode.ECB = (function () { - var ECB = CryptoJS.lib.BlockCipherMode.extend(); - - ECB.Encryptor = ECB.extend({ - processBlock: function (words, offset) { - this._cipher.encryptBlock(words, offset); - } - }); - - ECB.Decryptor = ECB.extend({ - processBlock: function (words, offset) { - this._cipher.decryptBlock(words, offset); - } - }); - - return ECB; - }()); - - - /** - * ANSI X.923 padding strategy. - */ - CryptoJS.pad.AnsiX923 = { - pad: function (data, blockSize) { - // Shortcuts - var dataSigBytes = data.sigBytes; - var blockSizeBytes = blockSize * 4; - - // Count padding bytes - var nPaddingBytes = blockSizeBytes - dataSigBytes % blockSizeBytes; - - // Compute last byte position - var lastBytePos = dataSigBytes + nPaddingBytes - 1; - - // Pad - data.clamp(); - data.words[lastBytePos >>> 2] |= nPaddingBytes << (24 - (lastBytePos % 4) * 8); - data.sigBytes += nPaddingBytes; - }, - - unpad: function (data) { - // Get number of padding bytes from last byte - var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff; - - // Remove padding - data.sigBytes -= nPaddingBytes; - } - }; - - - /** - * ISO 10126 padding strategy. - */ - CryptoJS.pad.Iso10126 = { - pad: function (data, blockSize) { - // Shortcut - var blockSizeBytes = blockSize * 4; - - // Count padding bytes - var nPaddingBytes = blockSizeBytes - data.sigBytes % blockSizeBytes; - - // Pad - data.concat(CryptoJS.lib.WordArray.random(nPaddingBytes - 1)). - concat(CryptoJS.lib.WordArray.create([nPaddingBytes << 24], 1)); - }, - - unpad: function (data) { - // Get number of padding bytes from last byte - var nPaddingBytes = data.words[(data.sigBytes - 1) >>> 2] & 0xff; - - // Remove padding - data.sigBytes -= nPaddingBytes; - } - }; - - - /** - * ISO/IEC 9797-1 Padding Method 2. - */ - CryptoJS.pad.Iso97971 = { - pad: function (data, blockSize) { - // Add 0x80 byte - data.concat(CryptoJS.lib.WordArray.create([0x80000000], 1)); - - // Zero pad the rest - CryptoJS.pad.ZeroPadding.pad(data, blockSize); - }, - - unpad: function (data) { - // Remove zero padding - CryptoJS.pad.ZeroPadding.unpad(data); - - // Remove one more byte -- the 0x80 byte - data.sigBytes--; - } - }; - - - /** - * Output Feedback block mode. - */ - CryptoJS.mode.OFB = (function () { - var OFB = CryptoJS.lib.BlockCipherMode.extend(); - - var Encryptor = OFB.Encryptor = OFB.extend({ - processBlock: function (words, offset) { - // Shortcuts - var cipher = this._cipher - var blockSize = cipher.blockSize; - var iv = this._iv; - var keystream = this._keystream; - - // Generate keystream - if (iv) { - keystream = this._keystream = iv.slice(0); - - // Remove IV for subsequent blocks - this._iv = undefined; - } - cipher.encryptBlock(keystream, 0); - - // Encrypt - for (var i = 0; i < blockSize; i++) { - words[offset + i] ^= keystream[i]; - } - } - }); - - OFB.Decryptor = Encryptor; - - return OFB; - }()); - - - /** - * A noop padding strategy. - */ - CryptoJS.pad.NoPadding = { - pad: function () { - }, - - unpad: function () { - } - }; - - - (function (undefined) { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var CipherParams = C_lib.CipherParams; - var C_enc = C.enc; - var Hex = C_enc.Hex; - var C_format = C.format; - - var HexFormatter = C_format.Hex = { - /** - * Converts the ciphertext of a cipher params object to a hexadecimally encoded string. - * - * @param {CipherParams} cipherParams The cipher params object. - * - * @return {string} The hexadecimally encoded string. - * - * @static - * - * @example - * - * var hexString = CryptoJS.format.Hex.stringify(cipherParams); - */ - stringify: function (cipherParams) { - return cipherParams.ciphertext.toString(Hex); - }, - - /** - * Converts a hexadecimally encoded ciphertext string to a cipher params object. - * - * @param {string} input The hexadecimally encoded string. - * - * @return {CipherParams} The cipher params object. - * - * @static - * - * @example - * - * var cipherParams = CryptoJS.format.Hex.parse(hexString); - */ - parse: function (input) { - var ciphertext = Hex.parse(input); - return CipherParams.create({ ciphertext: ciphertext }); - } - }; - }()); - - - (function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var BlockCipher = C_lib.BlockCipher; - var C_algo = C.algo; - - // Lookup tables - var SBOX = []; - var INV_SBOX = []; - var SUB_MIX_0 = []; - var SUB_MIX_1 = []; - var SUB_MIX_2 = []; - var SUB_MIX_3 = []; - var INV_SUB_MIX_0 = []; - var INV_SUB_MIX_1 = []; - var INV_SUB_MIX_2 = []; - var INV_SUB_MIX_3 = []; - - // Compute lookup tables - (function () { - // Compute double table - var d = []; - for (var i = 0; i < 256; i++) { - if (i < 128) { - d[i] = i << 1; - } else { - d[i] = (i << 1) ^ 0x11b; - } - } - - // Walk GF(2^8) - var x = 0; - var xi = 0; - for (var i = 0; i < 256; i++) { - // Compute sbox - var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4); - sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63; - SBOX[x] = sx; - INV_SBOX[sx] = x; - - // Compute multiplication - var x2 = d[x]; - var x4 = d[x2]; - var x8 = d[x4]; - - // Compute sub bytes, mix columns tables - var t = (d[sx] * 0x101) ^ (sx * 0x1010100); - SUB_MIX_0[x] = (t << 24) | (t >>> 8); - SUB_MIX_1[x] = (t << 16) | (t >>> 16); - SUB_MIX_2[x] = (t << 8) | (t >>> 24); - SUB_MIX_3[x] = t; - - // Compute inv sub bytes, inv mix columns tables - var t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100); - INV_SUB_MIX_0[sx] = (t << 24) | (t >>> 8); - INV_SUB_MIX_1[sx] = (t << 16) | (t >>> 16); - INV_SUB_MIX_2[sx] = (t << 8) | (t >>> 24); - INV_SUB_MIX_3[sx] = t; - - // Compute next counter - if (!x) { - x = xi = 1; - } else { - x = x2 ^ d[d[d[x8 ^ x2]]]; - xi ^= d[d[xi]]; - } - } - }()); - - // Precomputed Rcon lookup - var RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]; - - /** - * AES block cipher algorithm. - */ - var AES = C_algo.AES = BlockCipher.extend({ - _doReset: function () { - // Skip reset of nRounds has been set before and key did not change - if (this._nRounds && this._keyPriorReset === this._key) { - return; - } - - // Shortcuts - var key = this._keyPriorReset = this._key; - var keyWords = key.words; - var keySize = key.sigBytes / 4; - - // Compute number of rounds - var nRounds = this._nRounds = keySize + 6; - - // Compute number of key schedule rows - var ksRows = (nRounds + 1) * 4; - - // Compute key schedule - var keySchedule = this._keySchedule = []; - for (var ksRow = 0; ksRow < ksRows; ksRow++) { - if (ksRow < keySize) { - keySchedule[ksRow] = keyWords[ksRow]; - } else { - var t = keySchedule[ksRow - 1]; - - if (!(ksRow % keySize)) { - // Rot word - t = (t << 8) | (t >>> 24); - - // Sub word - t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff]; - - // Mix Rcon - t ^= RCON[(ksRow / keySize) | 0] << 24; - } else if (keySize > 6 && ksRow % keySize == 4) { - // Sub word - t = (SBOX[t >>> 24] << 24) | (SBOX[(t >>> 16) & 0xff] << 16) | (SBOX[(t >>> 8) & 0xff] << 8) | SBOX[t & 0xff]; - } - - keySchedule[ksRow] = keySchedule[ksRow - keySize] ^ t; - } - } - - // Compute inv key schedule - var invKeySchedule = this._invKeySchedule = []; - for (var invKsRow = 0; invKsRow < ksRows; invKsRow++) { - var ksRow = ksRows - invKsRow; - - if (invKsRow % 4) { - var t = keySchedule[ksRow]; - } else { - var t = keySchedule[ksRow - 4]; - } - - if (invKsRow < 4 || ksRow <= 4) { - invKeySchedule[invKsRow] = t; - } else { - invKeySchedule[invKsRow] = INV_SUB_MIX_0[SBOX[t >>> 24]] ^ INV_SUB_MIX_1[SBOX[(t >>> 16) & 0xff]] ^ - INV_SUB_MIX_2[SBOX[(t >>> 8) & 0xff]] ^ INV_SUB_MIX_3[SBOX[t & 0xff]]; - } - } - }, - - encryptBlock: function (M, offset) { - this._doCryptBlock(M, offset, this._keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX); - }, - - decryptBlock: function (M, offset) { - // Swap 2nd and 4th rows - var t = M[offset + 1]; - M[offset + 1] = M[offset + 3]; - M[offset + 3] = t; - - this._doCryptBlock(M, offset, this._invKeySchedule, INV_SUB_MIX_0, INV_SUB_MIX_1, INV_SUB_MIX_2, INV_SUB_MIX_3, INV_SBOX); - - // Inv swap 2nd and 4th rows - var t = M[offset + 1]; - M[offset + 1] = M[offset + 3]; - M[offset + 3] = t; - }, - - _doCryptBlock: function (M, offset, keySchedule, SUB_MIX_0, SUB_MIX_1, SUB_MIX_2, SUB_MIX_3, SBOX) { - // Shortcut - var nRounds = this._nRounds; - - // Get input, add round key - var s0 = M[offset] ^ keySchedule[0]; - var s1 = M[offset + 1] ^ keySchedule[1]; - var s2 = M[offset + 2] ^ keySchedule[2]; - var s3 = M[offset + 3] ^ keySchedule[3]; - - // Key schedule row counter - var ksRow = 4; - - // Rounds - for (var round = 1; round < nRounds; round++) { - // Shift rows, sub bytes, mix columns, add round key - var t0 = SUB_MIX_0[s0 >>> 24] ^ SUB_MIX_1[(s1 >>> 16) & 0xff] ^ SUB_MIX_2[(s2 >>> 8) & 0xff] ^ SUB_MIX_3[s3 & 0xff] ^ keySchedule[ksRow++]; - var t1 = SUB_MIX_0[s1 >>> 24] ^ SUB_MIX_1[(s2 >>> 16) & 0xff] ^ SUB_MIX_2[(s3 >>> 8) & 0xff] ^ SUB_MIX_3[s0 & 0xff] ^ keySchedule[ksRow++]; - var t2 = SUB_MIX_0[s2 >>> 24] ^ SUB_MIX_1[(s3 >>> 16) & 0xff] ^ SUB_MIX_2[(s0 >>> 8) & 0xff] ^ SUB_MIX_3[s1 & 0xff] ^ keySchedule[ksRow++]; - var t3 = SUB_MIX_0[s3 >>> 24] ^ SUB_MIX_1[(s0 >>> 16) & 0xff] ^ SUB_MIX_2[(s1 >>> 8) & 0xff] ^ SUB_MIX_3[s2 & 0xff] ^ keySchedule[ksRow++]; - - // Update state - s0 = t0; - s1 = t1; - s2 = t2; - s3 = t3; - } - - // Shift rows, sub bytes, add round key - var t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]; - var t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]; - var t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]; - var t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]; - - // Set output - M[offset] = t0; - M[offset + 1] = t1; - M[offset + 2] = t2; - M[offset + 3] = t3; - }, - - keySize: 256/32 - }); - - /** - * Shortcut functions to the cipher's object interface. - * - * @example - * - * var ciphertext = CryptoJS.AES.encrypt(message, key, cfg); - * var plaintext = CryptoJS.AES.decrypt(ciphertext, key, cfg); - */ - C.AES = BlockCipher._createHelper(AES); - }()); - - - (function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var WordArray = C_lib.WordArray; - var BlockCipher = C_lib.BlockCipher; - var C_algo = C.algo; - - // Permuted Choice 1 constants - var PC1 = [ - 57, 49, 41, 33, 25, 17, 9, 1, - 58, 50, 42, 34, 26, 18, 10, 2, - 59, 51, 43, 35, 27, 19, 11, 3, - 60, 52, 44, 36, 63, 55, 47, 39, - 31, 23, 15, 7, 62, 54, 46, 38, - 30, 22, 14, 6, 61, 53, 45, 37, - 29, 21, 13, 5, 28, 20, 12, 4 - ]; - - // Permuted Choice 2 constants - var PC2 = [ - 14, 17, 11, 24, 1, 5, - 3, 28, 15, 6, 21, 10, - 23, 19, 12, 4, 26, 8, - 16, 7, 27, 20, 13, 2, - 41, 52, 31, 37, 47, 55, - 30, 40, 51, 45, 33, 48, - 44, 49, 39, 56, 34, 53, - 46, 42, 50, 36, 29, 32 - ]; - - // Cumulative bit shift constants - var BIT_SHIFTS = [1, 2, 4, 6, 8, 10, 12, 14, 15, 17, 19, 21, 23, 25, 27, 28]; - - // SBOXes and round permutation constants - var SBOX_P = [ - { - 0x0: 0x808200, - 0x10000000: 0x8000, - 0x20000000: 0x808002, - 0x30000000: 0x2, - 0x40000000: 0x200, - 0x50000000: 0x808202, - 0x60000000: 0x800202, - 0x70000000: 0x800000, - 0x80000000: 0x202, - 0x90000000: 0x800200, - 0xa0000000: 0x8200, - 0xb0000000: 0x808000, - 0xc0000000: 0x8002, - 0xd0000000: 0x800002, - 0xe0000000: 0x0, - 0xf0000000: 0x8202, - 0x8000000: 0x0, - 0x18000000: 0x808202, - 0x28000000: 0x8202, - 0x38000000: 0x8000, - 0x48000000: 0x808200, - 0x58000000: 0x200, - 0x68000000: 0x808002, - 0x78000000: 0x2, - 0x88000000: 0x800200, - 0x98000000: 0x8200, - 0xa8000000: 0x808000, - 0xb8000000: 0x800202, - 0xc8000000: 0x800002, - 0xd8000000: 0x8002, - 0xe8000000: 0x202, - 0xf8000000: 0x800000, - 0x1: 0x8000, - 0x10000001: 0x2, - 0x20000001: 0x808200, - 0x30000001: 0x800000, - 0x40000001: 0x808002, - 0x50000001: 0x8200, - 0x60000001: 0x200, - 0x70000001: 0x800202, - 0x80000001: 0x808202, - 0x90000001: 0x808000, - 0xa0000001: 0x800002, - 0xb0000001: 0x8202, - 0xc0000001: 0x202, - 0xd0000001: 0x800200, - 0xe0000001: 0x8002, - 0xf0000001: 0x0, - 0x8000001: 0x808202, - 0x18000001: 0x808000, - 0x28000001: 0x800000, - 0x38000001: 0x200, - 0x48000001: 0x8000, - 0x58000001: 0x800002, - 0x68000001: 0x2, - 0x78000001: 0x8202, - 0x88000001: 0x8002, - 0x98000001: 0x800202, - 0xa8000001: 0x202, - 0xb8000001: 0x808200, - 0xc8000001: 0x800200, - 0xd8000001: 0x0, - 0xe8000001: 0x8200, - 0xf8000001: 0x808002 - }, - { - 0x0: 0x40084010, - 0x1000000: 0x4000, - 0x2000000: 0x80000, - 0x3000000: 0x40080010, - 0x4000000: 0x40000010, - 0x5000000: 0x40084000, - 0x6000000: 0x40004000, - 0x7000000: 0x10, - 0x8000000: 0x84000, - 0x9000000: 0x40004010, - 0xa000000: 0x40000000, - 0xb000000: 0x84010, - 0xc000000: 0x80010, - 0xd000000: 0x0, - 0xe000000: 0x4010, - 0xf000000: 0x40080000, - 0x800000: 0x40004000, - 0x1800000: 0x84010, - 0x2800000: 0x10, - 0x3800000: 0x40004010, - 0x4800000: 0x40084010, - 0x5800000: 0x40000000, - 0x6800000: 0x80000, - 0x7800000: 0x40080010, - 0x8800000: 0x80010, - 0x9800000: 0x0, - 0xa800000: 0x4000, - 0xb800000: 0x40080000, - 0xc800000: 0x40000010, - 0xd800000: 0x84000, - 0xe800000: 0x40084000, - 0xf800000: 0x4010, - 0x10000000: 0x0, - 0x11000000: 0x40080010, - 0x12000000: 0x40004010, - 0x13000000: 0x40084000, - 0x14000000: 0x40080000, - 0x15000000: 0x10, - 0x16000000: 0x84010, - 0x17000000: 0x4000, - 0x18000000: 0x4010, - 0x19000000: 0x80000, - 0x1a000000: 0x80010, - 0x1b000000: 0x40000010, - 0x1c000000: 0x84000, - 0x1d000000: 0x40004000, - 0x1e000000: 0x40000000, - 0x1f000000: 0x40084010, - 0x10800000: 0x84010, - 0x11800000: 0x80000, - 0x12800000: 0x40080000, - 0x13800000: 0x4000, - 0x14800000: 0x40004000, - 0x15800000: 0x40084010, - 0x16800000: 0x10, - 0x17800000: 0x40000000, - 0x18800000: 0x40084000, - 0x19800000: 0x40000010, - 0x1a800000: 0x40004010, - 0x1b800000: 0x80010, - 0x1c800000: 0x0, - 0x1d800000: 0x4010, - 0x1e800000: 0x40080010, - 0x1f800000: 0x84000 - }, - { - 0x0: 0x104, - 0x100000: 0x0, - 0x200000: 0x4000100, - 0x300000: 0x10104, - 0x400000: 0x10004, - 0x500000: 0x4000004, - 0x600000: 0x4010104, - 0x700000: 0x4010000, - 0x800000: 0x4000000, - 0x900000: 0x4010100, - 0xa00000: 0x10100, - 0xb00000: 0x4010004, - 0xc00000: 0x4000104, - 0xd00000: 0x10000, - 0xe00000: 0x4, - 0xf00000: 0x100, - 0x80000: 0x4010100, - 0x180000: 0x4010004, - 0x280000: 0x0, - 0x380000: 0x4000100, - 0x480000: 0x4000004, - 0x580000: 0x10000, - 0x680000: 0x10004, - 0x780000: 0x104, - 0x880000: 0x4, - 0x980000: 0x100, - 0xa80000: 0x4010000, - 0xb80000: 0x10104, - 0xc80000: 0x10100, - 0xd80000: 0x4000104, - 0xe80000: 0x4010104, - 0xf80000: 0x4000000, - 0x1000000: 0x4010100, - 0x1100000: 0x10004, - 0x1200000: 0x10000, - 0x1300000: 0x4000100, - 0x1400000: 0x100, - 0x1500000: 0x4010104, - 0x1600000: 0x4000004, - 0x1700000: 0x0, - 0x1800000: 0x4000104, - 0x1900000: 0x4000000, - 0x1a00000: 0x4, - 0x1b00000: 0x10100, - 0x1c00000: 0x4010000, - 0x1d00000: 0x104, - 0x1e00000: 0x10104, - 0x1f00000: 0x4010004, - 0x1080000: 0x4000000, - 0x1180000: 0x104, - 0x1280000: 0x4010100, - 0x1380000: 0x0, - 0x1480000: 0x10004, - 0x1580000: 0x4000100, - 0x1680000: 0x100, - 0x1780000: 0x4010004, - 0x1880000: 0x10000, - 0x1980000: 0x4010104, - 0x1a80000: 0x10104, - 0x1b80000: 0x4000004, - 0x1c80000: 0x4000104, - 0x1d80000: 0x4010000, - 0x1e80000: 0x4, - 0x1f80000: 0x10100 - }, - { - 0x0: 0x80401000, - 0x10000: 0x80001040, - 0x20000: 0x401040, - 0x30000: 0x80400000, - 0x40000: 0x0, - 0x50000: 0x401000, - 0x60000: 0x80000040, - 0x70000: 0x400040, - 0x80000: 0x80000000, - 0x90000: 0x400000, - 0xa0000: 0x40, - 0xb0000: 0x80001000, - 0xc0000: 0x80400040, - 0xd0000: 0x1040, - 0xe0000: 0x1000, - 0xf0000: 0x80401040, - 0x8000: 0x80001040, - 0x18000: 0x40, - 0x28000: 0x80400040, - 0x38000: 0x80001000, - 0x48000: 0x401000, - 0x58000: 0x80401040, - 0x68000: 0x0, - 0x78000: 0x80400000, - 0x88000: 0x1000, - 0x98000: 0x80401000, - 0xa8000: 0x400000, - 0xb8000: 0x1040, - 0xc8000: 0x80000000, - 0xd8000: 0x400040, - 0xe8000: 0x401040, - 0xf8000: 0x80000040, - 0x100000: 0x400040, - 0x110000: 0x401000, - 0x120000: 0x80000040, - 0x130000: 0x0, - 0x140000: 0x1040, - 0x150000: 0x80400040, - 0x160000: 0x80401000, - 0x170000: 0x80001040, - 0x180000: 0x80401040, - 0x190000: 0x80000000, - 0x1a0000: 0x80400000, - 0x1b0000: 0x401040, - 0x1c0000: 0x80001000, - 0x1d0000: 0x400000, - 0x1e0000: 0x40, - 0x1f0000: 0x1000, - 0x108000: 0x80400000, - 0x118000: 0x80401040, - 0x128000: 0x0, - 0x138000: 0x401000, - 0x148000: 0x400040, - 0x158000: 0x80000000, - 0x168000: 0x80001040, - 0x178000: 0x40, - 0x188000: 0x80000040, - 0x198000: 0x1000, - 0x1a8000: 0x80001000, - 0x1b8000: 0x80400040, - 0x1c8000: 0x1040, - 0x1d8000: 0x80401000, - 0x1e8000: 0x400000, - 0x1f8000: 0x401040 - }, - { - 0x0: 0x80, - 0x1000: 0x1040000, - 0x2000: 0x40000, - 0x3000: 0x20000000, - 0x4000: 0x20040080, - 0x5000: 0x1000080, - 0x6000: 0x21000080, - 0x7000: 0x40080, - 0x8000: 0x1000000, - 0x9000: 0x20040000, - 0xa000: 0x20000080, - 0xb000: 0x21040080, - 0xc000: 0x21040000, - 0xd000: 0x0, - 0xe000: 0x1040080, - 0xf000: 0x21000000, - 0x800: 0x1040080, - 0x1800: 0x21000080, - 0x2800: 0x80, - 0x3800: 0x1040000, - 0x4800: 0x40000, - 0x5800: 0x20040080, - 0x6800: 0x21040000, - 0x7800: 0x20000000, - 0x8800: 0x20040000, - 0x9800: 0x0, - 0xa800: 0x21040080, - 0xb800: 0x1000080, - 0xc800: 0x20000080, - 0xd800: 0x21000000, - 0xe800: 0x1000000, - 0xf800: 0x40080, - 0x10000: 0x40000, - 0x11000: 0x80, - 0x12000: 0x20000000, - 0x13000: 0x21000080, - 0x14000: 0x1000080, - 0x15000: 0x21040000, - 0x16000: 0x20040080, - 0x17000: 0x1000000, - 0x18000: 0x21040080, - 0x19000: 0x21000000, - 0x1a000: 0x1040000, - 0x1b000: 0x20040000, - 0x1c000: 0x40080, - 0x1d000: 0x20000080, - 0x1e000: 0x0, - 0x1f000: 0x1040080, - 0x10800: 0x21000080, - 0x11800: 0x1000000, - 0x12800: 0x1040000, - 0x13800: 0x20040080, - 0x14800: 0x20000000, - 0x15800: 0x1040080, - 0x16800: 0x80, - 0x17800: 0x21040000, - 0x18800: 0x40080, - 0x19800: 0x21040080, - 0x1a800: 0x0, - 0x1b800: 0x21000000, - 0x1c800: 0x1000080, - 0x1d800: 0x40000, - 0x1e800: 0x20040000, - 0x1f800: 0x20000080 - }, - { - 0x0: 0x10000008, - 0x100: 0x2000, - 0x200: 0x10200000, - 0x300: 0x10202008, - 0x400: 0x10002000, - 0x500: 0x200000, - 0x600: 0x200008, - 0x700: 0x10000000, - 0x800: 0x0, - 0x900: 0x10002008, - 0xa00: 0x202000, - 0xb00: 0x8, - 0xc00: 0x10200008, - 0xd00: 0x202008, - 0xe00: 0x2008, - 0xf00: 0x10202000, - 0x80: 0x10200000, - 0x180: 0x10202008, - 0x280: 0x8, - 0x380: 0x200000, - 0x480: 0x202008, - 0x580: 0x10000008, - 0x680: 0x10002000, - 0x780: 0x2008, - 0x880: 0x200008, - 0x980: 0x2000, - 0xa80: 0x10002008, - 0xb80: 0x10200008, - 0xc80: 0x0, - 0xd80: 0x10202000, - 0xe80: 0x202000, - 0xf80: 0x10000000, - 0x1000: 0x10002000, - 0x1100: 0x10200008, - 0x1200: 0x10202008, - 0x1300: 0x2008, - 0x1400: 0x200000, - 0x1500: 0x10000000, - 0x1600: 0x10000008, - 0x1700: 0x202000, - 0x1800: 0x202008, - 0x1900: 0x0, - 0x1a00: 0x8, - 0x1b00: 0x10200000, - 0x1c00: 0x2000, - 0x1d00: 0x10002008, - 0x1e00: 0x10202000, - 0x1f00: 0x200008, - 0x1080: 0x8, - 0x1180: 0x202000, - 0x1280: 0x200000, - 0x1380: 0x10000008, - 0x1480: 0x10002000, - 0x1580: 0x2008, - 0x1680: 0x10202008, - 0x1780: 0x10200000, - 0x1880: 0x10202000, - 0x1980: 0x10200008, - 0x1a80: 0x2000, - 0x1b80: 0x202008, - 0x1c80: 0x200008, - 0x1d80: 0x0, - 0x1e80: 0x10000000, - 0x1f80: 0x10002008 - }, - { - 0x0: 0x100000, - 0x10: 0x2000401, - 0x20: 0x400, - 0x30: 0x100401, - 0x40: 0x2100401, - 0x50: 0x0, - 0x60: 0x1, - 0x70: 0x2100001, - 0x80: 0x2000400, - 0x90: 0x100001, - 0xa0: 0x2000001, - 0xb0: 0x2100400, - 0xc0: 0x2100000, - 0xd0: 0x401, - 0xe0: 0x100400, - 0xf0: 0x2000000, - 0x8: 0x2100001, - 0x18: 0x0, - 0x28: 0x2000401, - 0x38: 0x2100400, - 0x48: 0x100000, - 0x58: 0x2000001, - 0x68: 0x2000000, - 0x78: 0x401, - 0x88: 0x100401, - 0x98: 0x2000400, - 0xa8: 0x2100000, - 0xb8: 0x100001, - 0xc8: 0x400, - 0xd8: 0x2100401, - 0xe8: 0x1, - 0xf8: 0x100400, - 0x100: 0x2000000, - 0x110: 0x100000, - 0x120: 0x2000401, - 0x130: 0x2100001, - 0x140: 0x100001, - 0x150: 0x2000400, - 0x160: 0x2100400, - 0x170: 0x100401, - 0x180: 0x401, - 0x190: 0x2100401, - 0x1a0: 0x100400, - 0x1b0: 0x1, - 0x1c0: 0x0, - 0x1d0: 0x2100000, - 0x1e0: 0x2000001, - 0x1f0: 0x400, - 0x108: 0x100400, - 0x118: 0x2000401, - 0x128: 0x2100001, - 0x138: 0x1, - 0x148: 0x2000000, - 0x158: 0x100000, - 0x168: 0x401, - 0x178: 0x2100400, - 0x188: 0x2000001, - 0x198: 0x2100000, - 0x1a8: 0x0, - 0x1b8: 0x2100401, - 0x1c8: 0x100401, - 0x1d8: 0x400, - 0x1e8: 0x2000400, - 0x1f8: 0x100001 - }, - { - 0x0: 0x8000820, - 0x1: 0x20000, - 0x2: 0x8000000, - 0x3: 0x20, - 0x4: 0x20020, - 0x5: 0x8020820, - 0x6: 0x8020800, - 0x7: 0x800, - 0x8: 0x8020000, - 0x9: 0x8000800, - 0xa: 0x20800, - 0xb: 0x8020020, - 0xc: 0x820, - 0xd: 0x0, - 0xe: 0x8000020, - 0xf: 0x20820, - 0x80000000: 0x800, - 0x80000001: 0x8020820, - 0x80000002: 0x8000820, - 0x80000003: 0x8000000, - 0x80000004: 0x8020000, - 0x80000005: 0x20800, - 0x80000006: 0x20820, - 0x80000007: 0x20, - 0x80000008: 0x8000020, - 0x80000009: 0x820, - 0x8000000a: 0x20020, - 0x8000000b: 0x8020800, - 0x8000000c: 0x0, - 0x8000000d: 0x8020020, - 0x8000000e: 0x8000800, - 0x8000000f: 0x20000, - 0x10: 0x20820, - 0x11: 0x8020800, - 0x12: 0x20, - 0x13: 0x800, - 0x14: 0x8000800, - 0x15: 0x8000020, - 0x16: 0x8020020, - 0x17: 0x20000, - 0x18: 0x0, - 0x19: 0x20020, - 0x1a: 0x8020000, - 0x1b: 0x8000820, - 0x1c: 0x8020820, - 0x1d: 0x20800, - 0x1e: 0x820, - 0x1f: 0x8000000, - 0x80000010: 0x20000, - 0x80000011: 0x800, - 0x80000012: 0x8020020, - 0x80000013: 0x20820, - 0x80000014: 0x20, - 0x80000015: 0x8020000, - 0x80000016: 0x8000000, - 0x80000017: 0x8000820, - 0x80000018: 0x8020820, - 0x80000019: 0x8000020, - 0x8000001a: 0x8000800, - 0x8000001b: 0x0, - 0x8000001c: 0x20800, - 0x8000001d: 0x820, - 0x8000001e: 0x20020, - 0x8000001f: 0x8020800 - } - ]; - - // Masks that select the SBOX input - var SBOX_MASK = [ - 0xf8000001, 0x1f800000, 0x01f80000, 0x001f8000, - 0x0001f800, 0x00001f80, 0x000001f8, 0x8000001f - ]; - - /** - * DES block cipher algorithm. - */ - var DES = C_algo.DES = BlockCipher.extend({ - _doReset: function () { - // Shortcuts - var key = this._key; - var keyWords = key.words; - - // Select 56 bits according to PC1 - var keyBits = []; - for (var i = 0; i < 56; i++) { - var keyBitPos = PC1[i] - 1; - keyBits[i] = (keyWords[keyBitPos >>> 5] >>> (31 - keyBitPos % 32)) & 1; - } - - // Assemble 16 subkeys - var subKeys = this._subKeys = []; - for (var nSubKey = 0; nSubKey < 16; nSubKey++) { - // Create subkey - var subKey = subKeys[nSubKey] = []; - - // Shortcut - var bitShift = BIT_SHIFTS[nSubKey]; - - // Select 48 bits according to PC2 - for (var i = 0; i < 24; i++) { - // Select from the left 28 key bits - subKey[(i / 6) | 0] |= keyBits[((PC2[i] - 1) + bitShift) % 28] << (31 - i % 6); - - // Select from the right 28 key bits - subKey[4 + ((i / 6) | 0)] |= keyBits[28 + (((PC2[i + 24] - 1) + bitShift) % 28)] << (31 - i % 6); - } - - // Since each subkey is applied to an expanded 32-bit input, - // the subkey can be broken into 8 values scaled to 32-bits, - // which allows the key to be used without expansion - subKey[0] = (subKey[0] << 1) | (subKey[0] >>> 31); - for (var i = 1; i < 7; i++) { - subKey[i] = subKey[i] >>> ((i - 1) * 4 + 3); - } - subKey[7] = (subKey[7] << 5) | (subKey[7] >>> 27); - } - - // Compute inverse subkeys - var invSubKeys = this._invSubKeys = []; - for (var i = 0; i < 16; i++) { - invSubKeys[i] = subKeys[15 - i]; - } - }, - - encryptBlock: function (M, offset) { - this._doCryptBlock(M, offset, this._subKeys); - }, - - decryptBlock: function (M, offset) { - this._doCryptBlock(M, offset, this._invSubKeys); - }, - - _doCryptBlock: function (M, offset, subKeys) { - // Get input - this._lBlock = M[offset]; - this._rBlock = M[offset + 1]; - - // Initial permutation - exchangeLR.call(this, 4, 0x0f0f0f0f); - exchangeLR.call(this, 16, 0x0000ffff); - exchangeRL.call(this, 2, 0x33333333); - exchangeRL.call(this, 8, 0x00ff00ff); - exchangeLR.call(this, 1, 0x55555555); - - // Rounds - for (var round = 0; round < 16; round++) { - // Shortcuts - var subKey = subKeys[round]; - var lBlock = this._lBlock; - var rBlock = this._rBlock; - - // Feistel function - var f = 0; - for (var i = 0; i < 8; i++) { - f |= SBOX_P[i][((rBlock ^ subKey[i]) & SBOX_MASK[i]) >>> 0]; - } - this._lBlock = rBlock; - this._rBlock = lBlock ^ f; - } - - // Undo swap from last round - var t = this._lBlock; - this._lBlock = this._rBlock; - this._rBlock = t; - - // Final permutation - exchangeLR.call(this, 1, 0x55555555); - exchangeRL.call(this, 8, 0x00ff00ff); - exchangeRL.call(this, 2, 0x33333333); - exchangeLR.call(this, 16, 0x0000ffff); - exchangeLR.call(this, 4, 0x0f0f0f0f); - - // Set output - M[offset] = this._lBlock; - M[offset + 1] = this._rBlock; - }, - - keySize: 64/32, - - ivSize: 64/32, - - blockSize: 64/32 - }); - - // Swap bits across the left and right words - function exchangeLR(offset, mask) { - var t = ((this._lBlock >>> offset) ^ this._rBlock) & mask; - this._rBlock ^= t; - this._lBlock ^= t << offset; - } - - function exchangeRL(offset, mask) { - var t = ((this._rBlock >>> offset) ^ this._lBlock) & mask; - this._lBlock ^= t; - this._rBlock ^= t << offset; - } - - /** - * Shortcut functions to the cipher's object interface. - * - * @example - * - * var ciphertext = CryptoJS.DES.encrypt(message, key, cfg); - * var plaintext = CryptoJS.DES.decrypt(ciphertext, key, cfg); - */ - C.DES = BlockCipher._createHelper(DES); - - /** - * Triple-DES block cipher algorithm. - */ - var TripleDES = C_algo.TripleDES = BlockCipher.extend({ - _doReset: function () { - // Shortcuts - var key = this._key; - var keyWords = key.words; - - // Create DES instances - this._des1 = DES.createEncryptor(WordArray.create(keyWords.slice(0, 2))); - this._des2 = DES.createEncryptor(WordArray.create(keyWords.slice(2, 4))); - this._des3 = DES.createEncryptor(WordArray.create(keyWords.slice(4, 6))); - }, - - encryptBlock: function (M, offset) { - this._des1.encryptBlock(M, offset); - this._des2.decryptBlock(M, offset); - this._des3.encryptBlock(M, offset); - }, - - decryptBlock: function (M, offset) { - this._des3.decryptBlock(M, offset); - this._des2.encryptBlock(M, offset); - this._des1.decryptBlock(M, offset); - }, - - keySize: 192/32, - - ivSize: 64/32, - - blockSize: 64/32 - }); - - /** - * Shortcut functions to the cipher's object interface. - * - * @example - * - * var ciphertext = CryptoJS.TripleDES.encrypt(message, key, cfg); - * var plaintext = CryptoJS.TripleDES.decrypt(ciphertext, key, cfg); - */ - C.TripleDES = BlockCipher._createHelper(TripleDES); - }()); - - - (function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var StreamCipher = C_lib.StreamCipher; - var C_algo = C.algo; - - /** - * RC4 stream cipher algorithm. - */ - var RC4 = C_algo.RC4 = StreamCipher.extend({ - _doReset: function () { - // Shortcuts - var key = this._key; - var keyWords = key.words; - var keySigBytes = key.sigBytes; - - // Init sbox - var S = this._S = []; - for (var i = 0; i < 256; i++) { - S[i] = i; - } - - // Key setup - for (var i = 0, j = 0; i < 256; i++) { - var keyByteIndex = i % keySigBytes; - var keyByte = (keyWords[keyByteIndex >>> 2] >>> (24 - (keyByteIndex % 4) * 8)) & 0xff; - - j = (j + S[i] + keyByte) % 256; - - // Swap - var t = S[i]; - S[i] = S[j]; - S[j] = t; - } - - // Counters - this._i = this._j = 0; - }, - - _doProcessBlock: function (M, offset) { - M[offset] ^= generateKeystreamWord.call(this); - }, - - keySize: 256/32, - - ivSize: 0 - }); - - function generateKeystreamWord() { - // Shortcuts - var S = this._S; - var i = this._i; - var j = this._j; - - // Generate keystream word - var keystreamWord = 0; - for (var n = 0; n < 4; n++) { - i = (i + 1) % 256; - j = (j + S[i]) % 256; - - // Swap - var t = S[i]; - S[i] = S[j]; - S[j] = t; - - keystreamWord |= S[(S[i] + S[j]) % 256] << (24 - n * 8); - } - - // Update counters - this._i = i; - this._j = j; - - return keystreamWord; - } - - /** - * Shortcut functions to the cipher's object interface. - * - * @example - * - * var ciphertext = CryptoJS.RC4.encrypt(message, key, cfg); - * var plaintext = CryptoJS.RC4.decrypt(ciphertext, key, cfg); - */ - C.RC4 = StreamCipher._createHelper(RC4); - - /** - * Modified RC4 stream cipher algorithm. - */ - var RC4Drop = C_algo.RC4Drop = RC4.extend({ - /** - * Configuration options. - * - * @property {number} drop The number of keystream words to drop. Default 192 - */ - cfg: RC4.cfg.extend({ - drop: 192 - }), - - _doReset: function () { - RC4._doReset.call(this); - - // Drop - for (var i = this.cfg.drop; i > 0; i--) { - generateKeystreamWord.call(this); - } - } - }); - - /** - * Shortcut functions to the cipher's object interface. - * - * @example - * - * var ciphertext = CryptoJS.RC4Drop.encrypt(message, key, cfg); - * var plaintext = CryptoJS.RC4Drop.decrypt(ciphertext, key, cfg); - */ - C.RC4Drop = StreamCipher._createHelper(RC4Drop); - }()); - - - /** @preserve - * Counter block mode compatible with Dr Brian Gladman fileenc.c - * derived from CryptoJS.mode.CTR - * Jan Hruby jhruby.web@gmail.com - */ - CryptoJS.mode.CTRGladman = (function () { - var CTRGladman = CryptoJS.lib.BlockCipherMode.extend(); - - function incWord(word) - { - if (((word >> 24) & 0xff) === 0xff) { //overflow - var b1 = (word >> 16)&0xff; - var b2 = (word >> 8)&0xff; - var b3 = word & 0xff; - - if (b1 === 0xff) // overflow b1 - { - b1 = 0; - if (b2 === 0xff) - { - b2 = 0; - if (b3 === 0xff) - { - b3 = 0; - } - else - { - ++b3; - } - } - else - { - ++b2; - } - } - else - { - ++b1; - } - - word = 0; - word += (b1 << 16); - word += (b2 << 8); - word += b3; - } - else - { - word += (0x01 << 24); - } - return word; - } - - function incCounter(counter) - { - if ((counter[0] = incWord(counter[0])) === 0) - { - // encr_data in fileenc.c from Dr Brian Gladman's counts only with DWORD j < 8 - counter[1] = incWord(counter[1]); - } - return counter; - } - - var Encryptor = CTRGladman.Encryptor = CTRGladman.extend({ - processBlock: function (words, offset) { - // Shortcuts - var cipher = this._cipher - var blockSize = cipher.blockSize; - var iv = this._iv; - var counter = this._counter; - - // Generate keystream - if (iv) { - counter = this._counter = iv.slice(0); - - // Remove IV for subsequent blocks - this._iv = undefined; - } - - incCounter(counter); - - var keystream = counter.slice(0); - cipher.encryptBlock(keystream, 0); - - // Encrypt - for (var i = 0; i < blockSize; i++) { - words[offset + i] ^= keystream[i]; - } - } - }); - - CTRGladman.Decryptor = Encryptor; - - return CTRGladman; - }()); - - - - - (function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var StreamCipher = C_lib.StreamCipher; - var C_algo = C.algo; - - // Reusable objects - var S = []; - var C_ = []; - var G = []; - - /** - * Rabbit stream cipher algorithm - */ - var Rabbit = C_algo.Rabbit = StreamCipher.extend({ - _doReset: function () { - // Shortcuts - var K = this._key.words; - var iv = this.cfg.iv; - - // Swap endian - for (var i = 0; i < 4; i++) { - K[i] = (((K[i] << 8) | (K[i] >>> 24)) & 0x00ff00ff) | - (((K[i] << 24) | (K[i] >>> 8)) & 0xff00ff00); - } - - // Generate initial state values - var X = this._X = [ - K[0], (K[3] << 16) | (K[2] >>> 16), - K[1], (K[0] << 16) | (K[3] >>> 16), - K[2], (K[1] << 16) | (K[0] >>> 16), - K[3], (K[2] << 16) | (K[1] >>> 16) - ]; - - // Generate initial counter values - var C = this._C = [ - (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff), - (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff), - (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff), - (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff) - ]; - - // Carry bit - this._b = 0; - - // Iterate the system four times - for (var i = 0; i < 4; i++) { - nextState.call(this); - } - - // Modify the counters - for (var i = 0; i < 8; i++) { - C[i] ^= X[(i + 4) & 7]; - } - - // IV setup - if (iv) { - // Shortcuts - var IV = iv.words; - var IV_0 = IV[0]; - var IV_1 = IV[1]; - - // Generate four subvectors - var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00); - var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00); - var i1 = (i0 >>> 16) | (i2 & 0xffff0000); - var i3 = (i2 << 16) | (i0 & 0x0000ffff); - - // Modify counter values - C[0] ^= i0; - C[1] ^= i1; - C[2] ^= i2; - C[3] ^= i3; - C[4] ^= i0; - C[5] ^= i1; - C[6] ^= i2; - C[7] ^= i3; - - // Iterate the system four times - for (var i = 0; i < 4; i++) { - nextState.call(this); - } - } - }, - - _doProcessBlock: function (M, offset) { - // Shortcut - var X = this._X; - - // Iterate the system - nextState.call(this); - - // Generate four keystream words - S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16); - S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16); - S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16); - S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16); - - for (var i = 0; i < 4; i++) { - // Swap endian - S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) | - (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00); - - // Encrypt - M[offset + i] ^= S[i]; - } - }, - - blockSize: 128/32, - - ivSize: 64/32 - }); - - function nextState() { - // Shortcuts - var X = this._X; - var C = this._C; - - // Save old counter values - for (var i = 0; i < 8; i++) { - C_[i] = C[i]; - } - - // Calculate new counter values - C[0] = (C[0] + 0x4d34d34d + this._b) | 0; - C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0; - C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0; - C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0; - C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0; - C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0; - C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0; - C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0; - this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0; - - // Calculate the g-values - for (var i = 0; i < 8; i++) { - var gx = X[i] + C[i]; - - // Construct high and low argument for squaring - var ga = gx & 0xffff; - var gb = gx >>> 16; - - // Calculate high and low result of squaring - var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb; - var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0); - - // High XOR low - G[i] = gh ^ gl; - } - - // Calculate new state values - X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0; - X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0; - X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0; - X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0; - X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0; - X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0; - X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0; - X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0; - } - - /** - * Shortcut functions to the cipher's object interface. - * - * @example - * - * var ciphertext = CryptoJS.Rabbit.encrypt(message, key, cfg); - * var plaintext = CryptoJS.Rabbit.decrypt(ciphertext, key, cfg); - */ - C.Rabbit = StreamCipher._createHelper(Rabbit); - }()); - - - /** - * Counter block mode. - */ - CryptoJS.mode.CTR = (function () { - var CTR = CryptoJS.lib.BlockCipherMode.extend(); - - var Encryptor = CTR.Encryptor = CTR.extend({ - processBlock: function (words, offset) { - // Shortcuts - var cipher = this._cipher - var blockSize = cipher.blockSize; - var iv = this._iv; - var counter = this._counter; - - // Generate keystream - if (iv) { - counter = this._counter = iv.slice(0); - - // Remove IV for subsequent blocks - this._iv = undefined; - } - var keystream = counter.slice(0); - cipher.encryptBlock(keystream, 0); - - // Increment counter - counter[blockSize - 1] = (counter[blockSize - 1] + 1) | 0 - - // Encrypt - for (var i = 0; i < blockSize; i++) { - words[offset + i] ^= keystream[i]; - } - } - }); - - CTR.Decryptor = Encryptor; - - return CTR; - }()); - - - (function () { - // Shortcuts - var C = CryptoJS; - var C_lib = C.lib; - var StreamCipher = C_lib.StreamCipher; - var C_algo = C.algo; - - // Reusable objects - var S = []; - var C_ = []; - var G = []; - - /** - * Rabbit stream cipher algorithm. - * - * This is a legacy version that neglected to convert the key to little-endian. - * This error doesn't affect the cipher's security, - * but it does affect its compatibility with other implementations. - */ - var RabbitLegacy = C_algo.RabbitLegacy = StreamCipher.extend({ - _doReset: function () { - // Shortcuts - var K = this._key.words; - var iv = this.cfg.iv; - - // Generate initial state values - var X = this._X = [ - K[0], (K[3] << 16) | (K[2] >>> 16), - K[1], (K[0] << 16) | (K[3] >>> 16), - K[2], (K[1] << 16) | (K[0] >>> 16), - K[3], (K[2] << 16) | (K[1] >>> 16) - ]; - - // Generate initial counter values - var C = this._C = [ - (K[2] << 16) | (K[2] >>> 16), (K[0] & 0xffff0000) | (K[1] & 0x0000ffff), - (K[3] << 16) | (K[3] >>> 16), (K[1] & 0xffff0000) | (K[2] & 0x0000ffff), - (K[0] << 16) | (K[0] >>> 16), (K[2] & 0xffff0000) | (K[3] & 0x0000ffff), - (K[1] << 16) | (K[1] >>> 16), (K[3] & 0xffff0000) | (K[0] & 0x0000ffff) - ]; - - // Carry bit - this._b = 0; - - // Iterate the system four times - for (var i = 0; i < 4; i++) { - nextState.call(this); - } - - // Modify the counters - for (var i = 0; i < 8; i++) { - C[i] ^= X[(i + 4) & 7]; - } - - // IV setup - if (iv) { - // Shortcuts - var IV = iv.words; - var IV_0 = IV[0]; - var IV_1 = IV[1]; - - // Generate four subvectors - var i0 = (((IV_0 << 8) | (IV_0 >>> 24)) & 0x00ff00ff) | (((IV_0 << 24) | (IV_0 >>> 8)) & 0xff00ff00); - var i2 = (((IV_1 << 8) | (IV_1 >>> 24)) & 0x00ff00ff) | (((IV_1 << 24) | (IV_1 >>> 8)) & 0xff00ff00); - var i1 = (i0 >>> 16) | (i2 & 0xffff0000); - var i3 = (i2 << 16) | (i0 & 0x0000ffff); - - // Modify counter values - C[0] ^= i0; - C[1] ^= i1; - C[2] ^= i2; - C[3] ^= i3; - C[4] ^= i0; - C[5] ^= i1; - C[6] ^= i2; - C[7] ^= i3; - - // Iterate the system four times - for (var i = 0; i < 4; i++) { - nextState.call(this); - } - } - }, - - _doProcessBlock: function (M, offset) { - // Shortcut - var X = this._X; - - // Iterate the system - nextState.call(this); - - // Generate four keystream words - S[0] = X[0] ^ (X[5] >>> 16) ^ (X[3] << 16); - S[1] = X[2] ^ (X[7] >>> 16) ^ (X[5] << 16); - S[2] = X[4] ^ (X[1] >>> 16) ^ (X[7] << 16); - S[3] = X[6] ^ (X[3] >>> 16) ^ (X[1] << 16); - - for (var i = 0; i < 4; i++) { - // Swap endian - S[i] = (((S[i] << 8) | (S[i] >>> 24)) & 0x00ff00ff) | - (((S[i] << 24) | (S[i] >>> 8)) & 0xff00ff00); - - // Encrypt - M[offset + i] ^= S[i]; - } - }, - - blockSize: 128/32, - - ivSize: 64/32 - }); - - function nextState() { - // Shortcuts - var X = this._X; - var C = this._C; - - // Save old counter values - for (var i = 0; i < 8; i++) { - C_[i] = C[i]; - } - - // Calculate new counter values - C[0] = (C[0] + 0x4d34d34d + this._b) | 0; - C[1] = (C[1] + 0xd34d34d3 + ((C[0] >>> 0) < (C_[0] >>> 0) ? 1 : 0)) | 0; - C[2] = (C[2] + 0x34d34d34 + ((C[1] >>> 0) < (C_[1] >>> 0) ? 1 : 0)) | 0; - C[3] = (C[3] + 0x4d34d34d + ((C[2] >>> 0) < (C_[2] >>> 0) ? 1 : 0)) | 0; - C[4] = (C[4] + 0xd34d34d3 + ((C[3] >>> 0) < (C_[3] >>> 0) ? 1 : 0)) | 0; - C[5] = (C[5] + 0x34d34d34 + ((C[4] >>> 0) < (C_[4] >>> 0) ? 1 : 0)) | 0; - C[6] = (C[6] + 0x4d34d34d + ((C[5] >>> 0) < (C_[5] >>> 0) ? 1 : 0)) | 0; - C[7] = (C[7] + 0xd34d34d3 + ((C[6] >>> 0) < (C_[6] >>> 0) ? 1 : 0)) | 0; - this._b = (C[7] >>> 0) < (C_[7] >>> 0) ? 1 : 0; - - // Calculate the g-values - for (var i = 0; i < 8; i++) { - var gx = X[i] + C[i]; - - // Construct high and low argument for squaring - var ga = gx & 0xffff; - var gb = gx >>> 16; - - // Calculate high and low result of squaring - var gh = ((((ga * ga) >>> 17) + ga * gb) >>> 15) + gb * gb; - var gl = (((gx & 0xffff0000) * gx) | 0) + (((gx & 0x0000ffff) * gx) | 0); - - // High XOR low - G[i] = gh ^ gl; - } - - // Calculate new state values - X[0] = (G[0] + ((G[7] << 16) | (G[7] >>> 16)) + ((G[6] << 16) | (G[6] >>> 16))) | 0; - X[1] = (G[1] + ((G[0] << 8) | (G[0] >>> 24)) + G[7]) | 0; - X[2] = (G[2] + ((G[1] << 16) | (G[1] >>> 16)) + ((G[0] << 16) | (G[0] >>> 16))) | 0; - X[3] = (G[3] + ((G[2] << 8) | (G[2] >>> 24)) + G[1]) | 0; - X[4] = (G[4] + ((G[3] << 16) | (G[3] >>> 16)) + ((G[2] << 16) | (G[2] >>> 16))) | 0; - X[5] = (G[5] + ((G[4] << 8) | (G[4] >>> 24)) + G[3]) | 0; - X[6] = (G[6] + ((G[5] << 16) | (G[5] >>> 16)) + ((G[4] << 16) | (G[4] >>> 16))) | 0; - X[7] = (G[7] + ((G[6] << 8) | (G[6] >>> 24)) + G[5]) | 0; - } - - /** - * Shortcut functions to the cipher's object interface. - * - * @example - * - * var ciphertext = CryptoJS.RabbitLegacy.encrypt(message, key, cfg); - * var plaintext = CryptoJS.RabbitLegacy.decrypt(ciphertext, key, cfg); - */ - C.RabbitLegacy = StreamCipher._createHelper(RabbitLegacy); - }()); - - - /** - * Zero padding strategy. - */ - CryptoJS.pad.ZeroPadding = { - pad: function (data, blockSize) { - // Shortcut - var blockSizeBytes = blockSize * 4; - - // Pad - data.clamp(); - data.sigBytes += blockSizeBytes - ((data.sigBytes % blockSizeBytes) || blockSizeBytes); - }, - - unpad: function (data) { - // Shortcut - var dataWords = data.words; - - // Unpad - var i = data.sigBytes - 1; - while (!((dataWords[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff)) { - i--; - } - data.sigBytes = i + 1; - } - }; - - - return CryptoJS; - -})); \ No newline at end of file diff --git a/eo-chrome-extension-4.0.1/js/libs/jquery-3.2.1.min.js b/eo-chrome-extension-4.0.1/js/libs/jquery-3.2.1.min.js deleted file mode 100644 index 644d35e..0000000 --- a/eo-chrome-extension-4.0.1/js/libs/jquery-3.2.1.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v3.2.1 | (c) JS Foundation and other contributors | jquery.org/license */ -!function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";var c=[],d=a.document,e=Object.getPrototypeOf,f=c.slice,g=c.concat,h=c.push,i=c.indexOf,j={},k=j.toString,l=j.hasOwnProperty,m=l.toString,n=m.call(Object),o={};function p(a,b){b=b||d;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}var q="3.2.1",r=function(a,b){return new r.fn.init(a,b)},s=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,t=/^-ms-/,u=/-([a-z])/g,v=function(a,b){return b.toUpperCase()};r.fn=r.prototype={jquery:q,constructor:r,length:0,toArray:function(){return f.call(this)},get:function(a){return null==a?f.call(this):a<0?this[a+this.length]:this[a]},pushStack:function(a){var b=r.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return r.each(this,a)},map:function(a){return this.pushStack(r.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(f.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(a<0?b:0);return this.pushStack(c>=0&&c0&&b-1 in a)}var x=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+1*new Date,v=a.document,w=0,x=0,y=ha(),z=ha(),A=ha(),B=function(a,b){return a===b&&(l=!0),0},C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=function(a,b){for(var c=0,d=a.length;c+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(N),U=new RegExp("^"+L+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L+"|[*])"),ATTR:new RegExp("^"+M),PSEUDO:new RegExp("^"+N),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),aa=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:d<0?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},ba=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ca=function(a,b){return b?"\0"===a?"\ufffd":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},da=function(){m()},ea=ta(function(a){return a.disabled===!0&&("form"in a||"label"in a)},{dir:"parentNode",next:"legend"});try{G.apply(D=H.call(v.childNodes),v.childNodes),D[v.childNodes.length].nodeType}catch(fa){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function ga(a,b,d,e){var f,h,j,k,l,o,r,s=b&&b.ownerDocument,w=b?b.nodeType:9;if(d=d||[],"string"!=typeof a||!a||1!==w&&9!==w&&11!==w)return d;if(!e&&((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,p)){if(11!==w&&(l=Z.exec(a)))if(f=l[1]){if(9===w){if(!(j=b.getElementById(f)))return d;if(j.id===f)return d.push(j),d}else if(s&&(j=s.getElementById(f))&&t(b,j)&&j.id===f)return d.push(j),d}else{if(l[2])return G.apply(d,b.getElementsByTagName(a)),d;if((f=l[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(f)),d}if(c.qsa&&!A[a+" "]&&(!q||!q.test(a))){if(1!==w)s=b,r=a;else if("object"!==b.nodeName.toLowerCase()){(k=b.getAttribute("id"))?k=k.replace(ba,ca):b.setAttribute("id",k=u),o=g(a),h=o.length;while(h--)o[h]="#"+k+" "+sa(o[h]);r=o.join(","),s=$.test(a)&&qa(b.parentNode)||b}if(r)try{return G.apply(d,s.querySelectorAll(r)),d}catch(x){}finally{k===u&&b.removeAttribute("id")}}}return i(a.replace(P,"$1"),b,d,e)}function ha(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function ia(a){return a[u]=!0,a}function ja(a){var b=n.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function ka(a,b){var c=a.split("|"),e=c.length;while(e--)d.attrHandle[c[e]]=b}function la(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function ma(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function na(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function oa(a){return function(b){return"form"in b?b.parentNode&&b.disabled===!1?"label"in b?"label"in b.parentNode?b.parentNode.disabled===a:b.disabled===a:b.isDisabled===a||b.isDisabled!==!a&&ea(b)===a:b.disabled===a:"label"in b&&b.disabled===a}}function pa(a){return ia(function(b){return b=+b,ia(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function qa(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}c=ga.support={},f=ga.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return!!b&&"HTML"!==b.nodeName},m=ga.setDocument=function(a){var b,e,g=a?a.ownerDocument||a:v;return g!==n&&9===g.nodeType&&g.documentElement?(n=g,o=n.documentElement,p=!f(n),v!==n&&(e=n.defaultView)&&e.top!==e&&(e.addEventListener?e.addEventListener("unload",da,!1):e.attachEvent&&e.attachEvent("onunload",da)),c.attributes=ja(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ja(function(a){return a.appendChild(n.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(n.getElementsByClassName),c.getById=ja(function(a){return o.appendChild(a).id=u,!n.getElementsByName||!n.getElementsByName(u).length}),c.getById?(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){return a.getAttribute("id")===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c=b.getElementById(a);return c?[c]:[]}}):(d.filter.ID=function(a){var b=a.replace(_,aa);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}},d.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&p){var c,d,e,f=b.getElementById(a);if(f){if(c=f.getAttributeNode("id"),c&&c.value===a)return[f];e=b.getElementsByName(a),d=0;while(f=e[d++])if(c=f.getAttributeNode("id"),c&&c.value===a)return[f]}return[]}}),d.find.TAG=c.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):c.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){if("undefined"!=typeof b.getElementsByClassName&&p)return b.getElementsByClassName(a)},r=[],q=[],(c.qsa=Y.test(n.querySelectorAll))&&(ja(function(a){o.appendChild(a).innerHTML="",a.querySelectorAll("[msallowcapture^='']").length&&q.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll("[id~="+u+"-]").length||q.push("~="),a.querySelectorAll(":checked").length||q.push(":checked"),a.querySelectorAll("a#"+u+"+*").length||q.push(".#.+[+~]")}),ja(function(a){a.innerHTML="";var b=n.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+K+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&q.push(":enabled",":disabled"),o.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=Y.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ja(function(a){c.disconnectedMatch=s.call(a,"*"),s.call(a,"[s!='']:x"),r.push("!=",N)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=Y.test(o.compareDocumentPosition),t=b||Y.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===n||a.ownerDocument===v&&t(v,a)?-1:b===n||b.ownerDocument===v&&t(v,b)?1:k?I(k,a)-I(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,g=[a],h=[b];if(!e||!f)return a===n?-1:b===n?1:e?-1:f?1:k?I(k,a)-I(k,b):0;if(e===f)return la(a,b);c=a;while(c=c.parentNode)g.unshift(c);c=b;while(c=c.parentNode)h.unshift(c);while(g[d]===h[d])d++;return d?la(g[d],h[d]):g[d]===v?-1:h[d]===v?1:0},n):n},ga.matches=function(a,b){return ga(a,null,null,b)},ga.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(S,"='$1']"),c.matchesSelector&&p&&!A[b+" "]&&(!r||!r.test(b))&&(!q||!q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return ga(b,n,null,[a]).length>0},ga.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},ga.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},ga.escape=function(a){return(a+"").replace(ba,ca)},ga.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},ga.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=ga.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=ga.selectors={cacheLength:50,createPseudo:ia,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(_,aa),a[3]=(a[3]||a[4]||a[5]||"").replace(_,aa),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||ga.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&ga.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return V.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&T.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(_,aa).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=ga.attr(d,a);return null==e?"!="===b:!b||(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e.replace(O," ")+" ").indexOf(c)>-1:"|="===b&&(e===c||e.slice(0,c.length+1)===c+"-"))}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){while(p){m=b;while(m=m[p])if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){m=q,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n&&j[2],m=n&&q.childNodes[n];while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if(1===m.nodeType&&++t&&m===b){k[a]=[w,n,t];break}}else if(s&&(m=b,l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===w&&j[1],t=n),t===!1)while(m=++n&&m&&m[p]||(t=n=0)||o.pop())if((h?m.nodeName.toLowerCase()===r:1===m.nodeType)&&++t&&(s&&(l=m[u]||(m[u]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[w,t]),m===b))break;return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||ga.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?ia(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:ia(function(a){var b=[],c=[],d=h(a.replace(P,"$1"));return d[u]?ia(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),b[0]=null,!c.pop()}}),has:ia(function(a){return function(b){return ga(a,b).length>0}}),contains:ia(function(a){return a=a.replace(_,aa),function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:ia(function(a){return U.test(a||"")||ga.error("unsupported lang: "+a),a=a.replace(_,aa).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:oa(!1),disabled:oa(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:pa(function(){return[0]}),last:pa(function(a,b){return[b-1]}),eq:pa(function(a,b,c){return[c<0?c+b:c]}),even:pa(function(a,b){for(var c=0;c=0;)a.push(d);return a}),gt:pa(function(a,b,c){for(var d=c<0?c+b:c;++d1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function va(a,b,c){for(var d=0,e=b.length;d-1&&(f[j]=!(g[j]=l))}}else r=wa(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ya(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=ta(function(a){return a===b},h,!0),l=ta(function(a){return I(b,a)>-1},h,!0),m=[function(a,c,d){var e=!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d));return b=null,e}];i1&&ua(m),i>1&&sa(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(P,"$1"),c,i0,e=a.length>0,f=function(f,g,h,i,k){var l,o,q,r=0,s="0",t=f&&[],u=[],v=j,x=f||e&&d.find.TAG("*",k),y=w+=null==v?1:Math.random()||.1,z=x.length;for(k&&(j=g===n||g||k);s!==z&&null!=(l=x[s]);s++){if(e&&l){o=0,g||l.ownerDocument===n||(m(l),h=!p);while(q=a[o++])if(q(l,g||n,h)){i.push(l);break}k&&(w=y)}c&&((l=!q&&l)&&r--,f&&t.push(l))}if(r+=s,c&&s!==r){o=0;while(q=b[o++])q(t,u,g,h);if(f){if(r>0)while(s--)t[s]||u[s]||(u[s]=E.call(i));u=wa(u)}G.apply(i,u),k&&!f&&u.length>0&&r+b.length>1&&ga.uniqueSort(i)}return k&&(w=y,j=v),t};return c?ia(f):f}return h=ga.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=ya(b[c]),f[u]?d.push(f):e.push(f);f=A(a,za(e,d)),f.selector=a}return f},i=ga.select=function(a,b,c,e){var f,i,j,k,l,m="function"==typeof a&&a,n=!e&&g(a=m.selector||a);if(c=c||[],1===n.length){if(i=n[0]=n[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&9===b.nodeType&&p&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(_,aa),b)||[])[0],!b)return c;m&&(b=b.parentNode),a=a.slice(i.shift().value.length)}f=V.needsContext.test(a)?0:i.length;while(f--){if(j=i[f],d.relative[k=j.type])break;if((l=d.find[k])&&(e=l(j.matches[0].replace(_,aa),$.test(i[0].type)&&qa(b.parentNode)||b))){if(i.splice(f,1),a=e.length&&sa(i),!a)return G.apply(c,e),c;break}}}return(m||h(a,n))(e,b,!p,c,!b||$.test(a)&&qa(b.parentNode)||b),c},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ja(function(a){return 1&a.compareDocumentPosition(n.createElement("fieldset"))}),ja(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||ka("type|href|height|width",function(a,b,c){if(!c)return a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ja(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||ka("value",function(a,b,c){if(!c&&"input"===a.nodeName.toLowerCase())return a.defaultValue}),ja(function(a){return null==a.getAttribute("disabled")})||ka(J,function(a,b,c){var d;if(!c)return a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),ga}(a);r.find=x,r.expr=x.selectors,r.expr[":"]=r.expr.pseudos,r.uniqueSort=r.unique=x.uniqueSort,r.text=x.getText,r.isXMLDoc=x.isXML,r.contains=x.contains,r.escapeSelector=x.escape;var y=function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&r(a).is(c))break;d.push(a)}return d},z=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},A=r.expr.match.needsContext;function B(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()}var C=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,D=/^.[^:#\[\.,]*$/;function E(a,b,c){return r.isFunction(b)?r.grep(a,function(a,d){return!!b.call(a,d,a)!==c}):b.nodeType?r.grep(a,function(a){return a===b!==c}):"string"!=typeof b?r.grep(a,function(a){return i.call(b,a)>-1!==c}):D.test(b)?r.filter(b,a,c):(b=r.filter(b,a),r.grep(a,function(a){return i.call(b,a)>-1!==c&&1===a.nodeType}))}r.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?r.find.matchesSelector(d,a)?[d]:[]:r.find.matches(a,r.grep(b,function(a){return 1===a.nodeType}))},r.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(r(a).filter(function(){for(b=0;b1?r.uniqueSort(c):c},filter:function(a){return this.pushStack(E(this,a||[],!1))},not:function(a){return this.pushStack(E(this,a||[],!0))},is:function(a){return!!E(this,"string"==typeof a&&A.test(a)?r(a):a||[],!1).length}});var F,G=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,H=r.fn.init=function(a,b,c){var e,f;if(!a)return this;if(c=c||F,"string"==typeof a){if(e="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:G.exec(a),!e||!e[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(e[1]){if(b=b instanceof r?b[0]:b,r.merge(this,r.parseHTML(e[1],b&&b.nodeType?b.ownerDocument||b:d,!0)),C.test(e[1])&&r.isPlainObject(b))for(e in b)r.isFunction(this[e])?this[e](b[e]):this.attr(e,b[e]);return this}return f=d.getElementById(e[2]),f&&(this[0]=f,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):r.isFunction(a)?void 0!==c.ready?c.ready(a):a(r):r.makeArray(a,this)};H.prototype=r.fn,F=r(d);var I=/^(?:parents|prev(?:Until|All))/,J={children:!0,contents:!0,next:!0,prev:!0};r.fn.extend({has:function(a){var b=r(a,this),c=b.length;return this.filter(function(){for(var a=0;a-1:1===c.nodeType&&r.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?r.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?i.call(r(a),this[0]):i.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(r.uniqueSort(r.merge(this.get(),r(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function K(a,b){while((a=a[b])&&1!==a.nodeType);return a}r.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return y(a,"parentNode")},parentsUntil:function(a,b,c){return y(a,"parentNode",c)},next:function(a){return K(a,"nextSibling")},prev:function(a){return K(a,"previousSibling")},nextAll:function(a){return y(a,"nextSibling")},prevAll:function(a){return y(a,"previousSibling")},nextUntil:function(a,b,c){return y(a,"nextSibling",c)},prevUntil:function(a,b,c){return y(a,"previousSibling",c)},siblings:function(a){return z((a.parentNode||{}).firstChild,a)},children:function(a){return z(a.firstChild)},contents:function(a){return B(a,"iframe")?a.contentDocument:(B(a,"template")&&(a=a.content||a),r.merge([],a.childNodes))}},function(a,b){r.fn[a]=function(c,d){var e=r.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=r.filter(d,e)),this.length>1&&(J[a]||r.uniqueSort(e),I.test(a)&&e.reverse()),this.pushStack(e)}});var L=/[^\x20\t\r\n\f]+/g;function M(a){var b={};return r.each(a.match(L)||[],function(a,c){b[c]=!0}),b}r.Callbacks=function(a){a="string"==typeof a?M(a):r.extend({},a);var b,c,d,e,f=[],g=[],h=-1,i=function(){for(e=e||a.once,d=b=!0;g.length;h=-1){c=g.shift();while(++h-1)f.splice(c,1),c<=h&&h--}),this},has:function(a){return a?r.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=g=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=g=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],g.push(c),b||i()),this},fire:function(){return j.fireWith(this,arguments),this},fired:function(){return!!d}};return j};function N(a){return a}function O(a){throw a}function P(a,b,c,d){var e;try{a&&r.isFunction(e=a.promise)?e.call(a).done(b).fail(c):a&&r.isFunction(e=a.then)?e.call(a,b,c):b.apply(void 0,[a].slice(d))}catch(a){c.apply(void 0,[a])}}r.extend({Deferred:function(b){var c=[["notify","progress",r.Callbacks("memory"),r.Callbacks("memory"),2],["resolve","done",r.Callbacks("once memory"),r.Callbacks("once memory"),0,"resolved"],["reject","fail",r.Callbacks("once memory"),r.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return r.Deferred(function(b){r.each(c,function(c,d){var e=r.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&r.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){var f=0;function g(b,c,d,e){return function(){var h=this,i=arguments,j=function(){var a,j;if(!(b=f&&(d!==O&&(h=void 0,i=[a]),c.rejectWith(h,i))}};b?k():(r.Deferred.getStackHook&&(k.stackTrace=r.Deferred.getStackHook()),a.setTimeout(k))}}return r.Deferred(function(a){c[0][3].add(g(0,a,r.isFunction(e)?e:N,a.notifyWith)),c[1][3].add(g(0,a,r.isFunction(b)?b:N)),c[2][3].add(g(0,a,r.isFunction(d)?d:O))}).promise()},promise:function(a){return null!=a?r.extend(a,e):e}},f={};return r.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=f.call(arguments),g=r.Deferred(),h=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?f.call(arguments):c,--b||g.resolveWith(d,e)}};if(b<=1&&(P(a,g.done(h(c)).resolve,g.reject,!b),"pending"===g.state()||r.isFunction(e[c]&&e[c].then)))return g.then();while(c--)P(e[c],h(c),g.reject);return g.promise()}});var Q=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;r.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Q.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},r.readyException=function(b){a.setTimeout(function(){throw b})};var R=r.Deferred();r.fn.ready=function(a){return R.then(a)["catch"](function(a){r.readyException(a)}),this},r.extend({isReady:!1,readyWait:1,ready:function(a){(a===!0?--r.readyWait:r.isReady)||(r.isReady=!0,a!==!0&&--r.readyWait>0||R.resolveWith(d,[r]))}}),r.ready.then=R.then;function S(){d.removeEventListener("DOMContentLoaded",S), -a.removeEventListener("load",S),r.ready()}"complete"===d.readyState||"loading"!==d.readyState&&!d.documentElement.doScroll?a.setTimeout(r.ready):(d.addEventListener("DOMContentLoaded",S),a.addEventListener("load",S));var T=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===r.type(c)){e=!0;for(h in c)T(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,r.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(r(a),c)})),b))for(;h1,null,!0)},removeData:function(a){return this.each(function(){X.remove(this,a)})}}),r.extend({queue:function(a,b,c){var d;if(a)return b=(b||"fx")+"queue",d=W.get(a,b),c&&(!d||Array.isArray(c)?d=W.access(a,b,r.makeArray(c)):d.push(c)),d||[]},dequeue:function(a,b){b=b||"fx";var c=r.queue(a,b),d=c.length,e=c.shift(),f=r._queueHooks(a,b),g=function(){r.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return W.get(a,c)||W.access(a,c,{empty:r.Callbacks("once memory").add(function(){W.remove(a,[b+"queue",c])})})}}),r.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length\x20\t\r\n\f]+)/i,la=/^$|\/(?:java|ecma)script/i,ma={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ma.optgroup=ma.option,ma.tbody=ma.tfoot=ma.colgroup=ma.caption=ma.thead,ma.th=ma.td;function na(a,b){var c;return c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[],void 0===b||b&&B(a,b)?r.merge([a],c):c}function oa(a,b){for(var c=0,d=a.length;c-1)e&&e.push(f);else if(j=r.contains(f.ownerDocument,f),g=na(l.appendChild(f),"script"),j&&oa(g),c){k=0;while(f=g[k++])la.test(f.type||"")&&c.push(f)}return l}!function(){var a=d.createDocumentFragment(),b=a.appendChild(d.createElement("div")),c=d.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),o.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="",o.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var ra=d.documentElement,sa=/^key/,ta=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,ua=/^([^.]*)(?:\.(.+)|)/;function va(){return!0}function wa(){return!1}function xa(){try{return d.activeElement}catch(a){}}function ya(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)ya(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=wa;else if(!e)return a;return 1===f&&(g=e,e=function(a){return r().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=r.guid++)),a.each(function(){r.event.add(this,b,e,d,c)})}r.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.get(a);if(q){c.handler&&(f=c,c=f.handler,e=f.selector),e&&r.find.matchesSelector(ra,e),c.guid||(c.guid=r.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof r&&r.event.triggered!==b.type?r.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(L)||[""],j=b.length;while(j--)h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=r.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=r.event.special[n]||{},k=r.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&r.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),r.event.global[n]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=W.hasData(a)&&W.get(a);if(q&&(i=q.events)){b=(b||"").match(L)||[""],j=b.length;while(j--)if(h=ua.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){l=r.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||r.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)r.event.remove(a,n+b[j],c,d,!0);r.isEmptyObject(i)&&W.remove(a,"handle events")}},dispatch:function(a){var b=r.event.fix(a),c,d,e,f,g,h,i=new Array(arguments.length),j=(W.get(this,"events")||{})[b.type]||[],k=r.event.special[b.type]||{};for(i[0]=b,c=1;c=1))for(;j!==this;j=j.parentNode||this)if(1===j.nodeType&&("click"!==a.type||j.disabled!==!0)){for(f=[],g={},c=0;c-1:r.find(e,this,null,[j]).length),g[e]&&f.push(d);f.length&&h.push({elem:j,handlers:f})}return j=this,i\x20\t\r\n\f]*)[^>]*)\/>/gi,Aa=/\s*$/g;function Ea(a,b){return B(a,"table")&&B(11!==b.nodeType?b:b.firstChild,"tr")?r(">tbody",a)[0]||a:a}function Fa(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function Ga(a){var b=Ca.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ha(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(W.hasData(a)&&(f=W.access(a),g=W.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;c1&&"string"==typeof q&&!o.checkClone&&Ba.test(q))return a.each(function(e){var f=a.eq(e);s&&(b[0]=q.call(this,e,f.html())),Ja(f,b,c,d)});if(m&&(e=qa(b,a[0].ownerDocument,!1,a,d),f=e.firstChild,1===e.childNodes.length&&(e=f),f||d)){for(h=r.map(na(e,"script"),Fa),i=h.length;l")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=r.contains(a.ownerDocument,a);if(!(o.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||r.isXMLDoc(a)))for(g=na(h),f=na(a),d=0,e=f.length;d0&&oa(g,!i&&na(a,"script")),h},cleanData:function(a){for(var b,c,d,e=r.event.special,f=0;void 0!==(c=a[f]);f++)if(U(c)){if(b=c[W.expando]){if(b.events)for(d in b.events)e[d]?r.event.remove(c,d):r.removeEvent(c,d,b.handle);c[W.expando]=void 0}c[X.expando]&&(c[X.expando]=void 0)}}}),r.fn.extend({detach:function(a){return Ka(this,a,!0)},remove:function(a){return Ka(this,a)},text:function(a){return T(this,function(a){return void 0===a?r.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.appendChild(a)}})},prepend:function(){return Ja(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=Ea(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return Ja(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(r.cleanData(na(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null!=a&&a,b=null==b?a:b,this.map(function(){return r.clone(this,a,b)})},html:function(a){return T(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!Aa.test(a)&&!ma[(ka.exec(a)||["",""])[1].toLowerCase()]){a=r.htmlPrefilter(a);try{for(;c1)}});function _a(a,b,c,d,e){return new _a.prototype.init(a,b,c,d,e)}r.Tween=_a,_a.prototype={constructor:_a,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||r.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(r.cssNumber[c]?"":"px")},cur:function(){var a=_a.propHooks[this.prop];return a&&a.get?a.get(this):_a.propHooks._default.get(this)},run:function(a){var b,c=_a.propHooks[this.prop];return this.options.duration?this.pos=b=r.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):_a.propHooks._default.set(this),this}},_a.prototype.init.prototype=_a.prototype,_a.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=r.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){r.fx.step[a.prop]?r.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[r.cssProps[a.prop]]&&!r.cssHooks[a.prop]?a.elem[a.prop]=a.now:r.style(a.elem,a.prop,a.now+a.unit)}}},_a.propHooks.scrollTop=_a.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},r.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},r.fx=_a.prototype.init,r.fx.step={};var ab,bb,cb=/^(?:toggle|show|hide)$/,db=/queueHooks$/;function eb(){bb&&(d.hidden===!1&&a.requestAnimationFrame?a.requestAnimationFrame(eb):a.setTimeout(eb,r.fx.interval),r.fx.tick())}function fb(){return a.setTimeout(function(){ab=void 0}),ab=r.now()}function gb(a,b){var c,d=0,e={height:a};for(b=b?1:0;d<4;d+=2-b)c=ca[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function hb(a,b,c){for(var d,e=(kb.tweeners[b]||[]).concat(kb.tweeners["*"]),f=0,g=e.length;f1)},removeAttr:function(a){return this.each(function(){r.removeAttr(this,a)})}}),r.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?r.prop(a,b,c):(1===f&&r.isXMLDoc(a)||(e=r.attrHooks[b.toLowerCase()]||(r.expr.match.bool.test(b)?lb:void 0)),void 0!==c?null===c?void r.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=r.find.attr(a,b), -null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!o.radioValue&&"radio"===b&&B(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(L);if(e&&1===a.nodeType)while(c=e[d++])a.removeAttribute(c)}}),lb={set:function(a,b,c){return b===!1?r.removeAttr(a,c):a.setAttribute(c,c),c}},r.each(r.expr.match.bool.source.match(/\w+/g),function(a,b){var c=mb[b]||r.find.attr;mb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=mb[g],mb[g]=e,e=null!=c(a,b,d)?g:null,mb[g]=f),e}});var nb=/^(?:input|select|textarea|button)$/i,ob=/^(?:a|area)$/i;r.fn.extend({prop:function(a,b){return T(this,r.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[r.propFix[a]||a]})}}),r.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&r.isXMLDoc(a)||(b=r.propFix[b]||b,e=r.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=r.find.attr(a,"tabindex");return b?parseInt(b,10):nb.test(a.nodeName)||ob.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),o.optSelected||(r.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),r.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){r.propFix[this.toLowerCase()]=this});function pb(a){var b=a.match(L)||[];return b.join(" ")}function qb(a){return a.getAttribute&&a.getAttribute("class")||""}r.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).addClass(a.call(this,b,qb(this)))});if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(r.isFunction(a))return this.each(function(b){r(this).removeClass(a.call(this,b,qb(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a){b=a.match(L)||[];while(c=this[i++])if(e=qb(c),d=1===c.nodeType&&" "+pb(e)+" "){g=0;while(f=b[g++])while(d.indexOf(" "+f+" ")>-1)d=d.replace(" "+f+" "," ");h=pb(d),e!==h&&c.setAttribute("class",h)}}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):r.isFunction(a)?this.each(function(c){r(this).toggleClass(a.call(this,c,qb(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c){d=0,e=r(this),f=a.match(L)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else void 0!==a&&"boolean"!==c||(b=qb(this),b&&W.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":W.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;b=" "+a+" ";while(c=this[d++])if(1===c.nodeType&&(" "+pb(qb(c))+" ").indexOf(b)>-1)return!0;return!1}});var rb=/\r/g;r.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=r.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,r(this).val()):a,null==e?e="":"number"==typeof e?e+="":Array.isArray(e)&&(e=r.map(e,function(a){return null==a?"":a+""})),b=r.valHooks[this.type]||r.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=r.valHooks[e.type]||r.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(rb,""):null==c?"":c)}}}),r.extend({valHooks:{option:{get:function(a){var b=r.find.attr(a,"value");return null!=b?b:pb(r.text(a))}},select:{get:function(a){var b,c,d,e=a.options,f=a.selectedIndex,g="select-one"===a.type,h=g?null:[],i=g?f+1:e.length;for(d=f<0?i:g?f:0;d-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),r.each(["radio","checkbox"],function(){r.valHooks[this]={set:function(a,b){if(Array.isArray(b))return a.checked=r.inArray(r(a).val(),b)>-1}},o.checkOn||(r.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var sb=/^(?:focusinfocus|focusoutblur)$/;r.extend(r.event,{trigger:function(b,c,e,f){var g,h,i,j,k,m,n,o=[e||d],p=l.call(b,"type")?b.type:b,q=l.call(b,"namespace")?b.namespace.split("."):[];if(h=i=e=e||d,3!==e.nodeType&&8!==e.nodeType&&!sb.test(p+r.event.triggered)&&(p.indexOf(".")>-1&&(q=p.split("."),p=q.shift(),q.sort()),k=p.indexOf(":")<0&&"on"+p,b=b[r.expando]?b:new r.Event(p,"object"==typeof b&&b),b.isTrigger=f?2:3,b.namespace=q.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=e),c=null==c?[b]:r.makeArray(c,[b]),n=r.event.special[p]||{},f||!n.trigger||n.trigger.apply(e,c)!==!1)){if(!f&&!n.noBubble&&!r.isWindow(e)){for(j=n.delegateType||p,sb.test(j+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),i=h;i===(e.ownerDocument||d)&&o.push(i.defaultView||i.parentWindow||a)}g=0;while((h=o[g++])&&!b.isPropagationStopped())b.type=g>1?j:n.bindType||p,m=(W.get(h,"events")||{})[b.type]&&W.get(h,"handle"),m&&m.apply(h,c),m=k&&h[k],m&&m.apply&&U(h)&&(b.result=m.apply(h,c),b.result===!1&&b.preventDefault());return b.type=p,f||b.isDefaultPrevented()||n._default&&n._default.apply(o.pop(),c)!==!1||!U(e)||k&&r.isFunction(e[p])&&!r.isWindow(e)&&(i=e[k],i&&(e[k]=null),r.event.triggered=p,e[p](),r.event.triggered=void 0,i&&(e[k]=i)),b.result}},simulate:function(a,b,c){var d=r.extend(new r.Event,c,{type:a,isSimulated:!0});r.event.trigger(d,null,b)}}),r.fn.extend({trigger:function(a,b){return this.each(function(){r.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];if(c)return r.event.trigger(a,b,c,!0)}}),r.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){r.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),r.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),o.focusin="onfocusin"in a,o.focusin||r.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){r.event.simulate(b,a.target,r.event.fix(a))};r.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=W.access(d,b);e||d.addEventListener(a,c,!0),W.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=W.access(d,b)-1;e?W.access(d,b,e):(d.removeEventListener(a,c,!0),W.remove(d,b))}}});var tb=a.location,ub=r.now(),vb=/\?/;r.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||r.error("Invalid XML: "+b),c};var wb=/\[\]$/,xb=/\r?\n/g,yb=/^(?:submit|button|image|reset|file)$/i,zb=/^(?:input|select|textarea|keygen)/i;function Ab(a,b,c,d){var e;if(Array.isArray(b))r.each(b,function(b,e){c||wb.test(a)?d(a,e):Ab(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==r.type(b))d(a,b);else for(e in b)Ab(a+"["+e+"]",b[e],c,d)}r.param=function(a,b){var c,d=[],e=function(a,b){var c=r.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(Array.isArray(a)||a.jquery&&!r.isPlainObject(a))r.each(a,function(){e(this.name,this.value)});else for(c in a)Ab(c,a[c],b,e);return d.join("&")},r.fn.extend({serialize:function(){return r.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=r.prop(this,"elements");return a?r.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!r(this).is(":disabled")&&zb.test(this.nodeName)&&!yb.test(a)&&(this.checked||!ja.test(a))}).map(function(a,b){var c=r(this).val();return null==c?null:Array.isArray(c)?r.map(c,function(a){return{name:b.name,value:a.replace(xb,"\r\n")}}):{name:b.name,value:c.replace(xb,"\r\n")}}).get()}});var Bb=/%20/g,Cb=/#.*$/,Db=/([?&])_=[^&]*/,Eb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Fb=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Gb=/^(?:GET|HEAD)$/,Hb=/^\/\//,Ib={},Jb={},Kb="*/".concat("*"),Lb=d.createElement("a");Lb.href=tb.href;function Mb(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(L)||[];if(r.isFunction(c))while(d=f[e++])"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nb(a,b,c,d){var e={},f=a===Jb;function g(h){var i;return e[h]=!0,r.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Ob(a,b){var c,d,e=r.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&r.extend(!0,a,d),a}function Pb(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}if(f)return f!==i[0]&&i.unshift(f),c[f]}function Qb(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}r.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:tb.href,type:"GET",isLocal:Fb.test(tb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":r.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Ob(Ob(a,r.ajaxSettings),b):Ob(r.ajaxSettings,a)},ajaxPrefilter:Mb(Ib),ajaxTransport:Mb(Jb),ajax:function(b,c){"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=r.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?r(p):r.event,s=r.Deferred(),t=r.Callbacks("once memory"),u=o.statusCode||{},v={},w={},x="canceled",y={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h){h={};while(b=Eb.exec(g))h[b[1].toLowerCase()]=b[2]}b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=w[a.toLowerCase()]=w[a.toLowerCase()]||a,v[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)y.always(a[y.status]);else for(b in a)u[b]=[u[b],a[b]];return this},abort:function(a){var b=a||x;return e&&e.abort(b),A(0,b),this}};if(s.promise(y),o.url=((b||o.url||tb.href)+"").replace(Hb,tb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(L)||[""],null==o.crossDomain){j=d.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Lb.protocol+"//"+Lb.host!=j.protocol+"//"+j.host}catch(z){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=r.param(o.data,o.traditional)),Nb(Ib,o,c,y),k)return y;l=r.event&&o.global,l&&0===r.active++&&r.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Gb.test(o.type),f=o.url.replace(Cb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Bb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(vb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Db,"$1"),n=(vb.test(f)?"&":"?")+"_="+ub++ +n),o.url=f+n),o.ifModified&&(r.lastModified[f]&&y.setRequestHeader("If-Modified-Since",r.lastModified[f]),r.etag[f]&&y.setRequestHeader("If-None-Match",r.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&y.setRequestHeader("Content-Type",o.contentType),y.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Kb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)y.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,y,o)===!1||k))return y.abort();if(x="abort",t.add(o.complete),y.done(o.success),y.fail(o.error),e=Nb(Jb,o,c,y)){if(y.readyState=1,l&&q.trigger("ajaxSend",[y,o]),k)return y;o.async&&o.timeout>0&&(i=a.setTimeout(function(){y.abort("timeout")},o.timeout));try{k=!1,e.send(v,A)}catch(z){if(k)throw z;A(-1,z)}}else A(-1,"No Transport");function A(b,c,d,h){var j,m,n,v,w,x=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",y.readyState=b>0?4:0,j=b>=200&&b<300||304===b,d&&(v=Pb(o,y,d)),v=Qb(o,v,y,j),j?(o.ifModified&&(w=y.getResponseHeader("Last-Modified"),w&&(r.lastModified[f]=w),w=y.getResponseHeader("etag"),w&&(r.etag[f]=w)),204===b||"HEAD"===o.type?x="nocontent":304===b?x="notmodified":(x=v.state,m=v.data,n=v.error,j=!n)):(n=x,!b&&x||(x="error",b<0&&(b=0))),y.status=b,y.statusText=(c||x)+"",j?s.resolveWith(p,[m,x,y]):s.rejectWith(p,[y,x,n]),y.statusCode(u),u=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[y,o,j?m:n]),t.fireWith(p,[y,x]),l&&(q.trigger("ajaxComplete",[y,o]),--r.active||r.event.trigger("ajaxStop")))}return y},getJSON:function(a,b,c){return r.get(a,b,c,"json")},getScript:function(a,b){return r.get(a,void 0,b,"script")}}),r.each(["get","post"],function(a,b){r[b]=function(a,c,d,e){return r.isFunction(c)&&(e=e||d,d=c,c=void 0),r.ajax(r.extend({url:a,type:b,dataType:e,data:c,success:d},r.isPlainObject(a)&&a))}}),r._evalUrl=function(a){return r.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},r.fn.extend({wrapAll:function(a){var b;return this[0]&&(r.isFunction(a)&&(a=a.call(this[0])),b=r(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstElementChild)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return r.isFunction(a)?this.each(function(b){r(this).wrapInner(a.call(this,b))}):this.each(function(){var b=r(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=r.isFunction(a);return this.each(function(c){r(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){r(this).replaceWith(this.childNodes)}),this}}),r.expr.pseudos.hidden=function(a){return!r.expr.pseudos.visible(a)},r.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},r.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Rb={0:200,1223:204},Sb=r.ajaxSettings.xhr();o.cors=!!Sb&&"withCredentials"in Sb,o.ajax=Sb=!!Sb,r.ajaxTransport(function(b){var c,d;if(o.cors||Sb&&!b.crossDomain)return{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Rb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}}),r.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),r.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return r.globalEval(a),a}}}),r.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),r.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(e,f){b=r(" - - - - - -
- - - - - \ No newline at end of file diff --git a/eolinker_os_3.5/libs/ace-builds/src/ace.js b/eolinker_os_3.5/libs/ace-builds/src/ace.js deleted file mode 100644 index f4027e7..0000000 --- a/eolinker_os_3.5/libs/ace-builds/src/ace.js +++ /dev/null @@ -1,12 +0,0 @@ -!function(){function e(e){var t=i;e&&(i[e]||(i[e]={}),t=i[e]),t.define&&t.define.packaged||(n.original=t.define,t.define=n,t.define.packaged=!0),t.require&&t.require.packaged||(o.original=t.require,t.require=o,t.require.packaged=!0)}var t="",i=function(){return this}();if(i||"undefined"==typeof window||(i=window),t||"undefined"==typeof requirejs){var n=function(e,t,i){return"string"!=typeof e?void(n.original&&n.original.apply(this,arguments)):(2==arguments.length&&(i=t),void(n.modules[e]||(n.payloads[e]=i,n.modules[e]=null)))};n.modules={},n.payloads={};var s=function(e,t,i){if("string"==typeof t){var n=a(e,t);if(void 0!=n)return i&&i(),n}else if("[object Array]"===Object.prototype.toString.call(t)){for(var s=[],r=0,l=t.length;r1&&s(l,"")>-1&&(i=RegExp(this.source,o.replace.call(n(this),"g","")),o.replace.call(e.slice(l.index),i,function(){for(var e=1;el.index&&this.lastIndex--}return l},a||(RegExp.prototype.test=function(e){var t=o.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t}))}),define("ace/lib/es5-shim",["require","exports","module"],function(e,t,i){function n(){}function s(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function o(e){return e=+e,e!==e?e=0:0!==e&&e!==1/0&&e!==-(1/0)&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}Function.prototype.bind||(Function.prototype.bind=function(e){var t=this;if("function"!=typeof t)throw new TypeError("Function.prototype.bind called on incompatible "+t);var i=f.call(arguments,1),s=function(){if(this instanceof s){var n=t.apply(this,i.concat(f.call(arguments)));return Object(n)===n?n:this}return t.apply(e,i.concat(f.call(arguments)))};return t.prototype&&(n.prototype=t.prototype,s.prototype=new n,n.prototype=null),s});var r,a,l,h,c,u=Function.prototype.call,d=Array.prototype,g=Object.prototype,f=d.slice,m=u.bind(g.toString),p=u.bind(g.hasOwnProperty);if((c=p(g,"__defineGetter__"))&&(r=u.bind(g.__defineGetter__),a=u.bind(g.__defineSetter__),l=u.bind(g.__lookupGetter__),h=u.bind(g.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t,i=[];if(i.splice.apply(i,e(20)),i.splice.apply(i,e(26)),t=i.length,i.splice(5,0,"XXX"),t+1==i.length,t+1==i.length)return!0}()){var A=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?A.apply(this,[void 0===e?0:e,void 0===t?this.length-e:t].concat(f.call(arguments,2))):[]}}else Array.prototype.splice=function(e,t){var i=this.length;e>0?e>i&&(e=i):void 0==e?e=0:e<0&&(e=Math.max(i+e,0)),e+ta)for(u=h;u--;)this[l+u]=this[a+u];if(o&&e===c)this.length=c,this.push.apply(this,s);else for(this.length=c+o,u=0;u>>0;if("[object Function]"!=m(e))throw new TypeError;for(;++s>>0,s=Array(n),o=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var r=0;r>>0,o=[],r=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var a=0;a>>0,s=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0,s=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0;if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");if(!n&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var s,o=0;if(arguments.length>=2)s=arguments[1];else for(;;){if(o in i){s=i[o++];break}if(++o>=n)throw new TypeError("reduce of empty array with no initial value")}for(;o>>0;if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");if(!n&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var s,o=n-1;if(arguments.length>=2)s=arguments[1];else for(;;){if(o in i){s=i[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}do o in this&&(s=e.call(void 0,s,i[o],o,t));while(o--);return s}),Array.prototype.indexOf&&[0,1].indexOf(1,2)==-1||(Array.prototype.indexOf=function(e){var t=v&&"[object String]"==m(this)?this.split(""):O(this),i=t.length>>>0;if(!i)return-1;var n=0;for(arguments.length>1&&(n=o(arguments[1])),n=n>=0?n:Math.max(0,i+n);n>>0;if(!i)return-1;var n=i-1;for(arguments.length>1&&(n=Math.min(n,o(arguments[1]))),n=n>=0?n:i-Math.abs(n);n>=0;n--)if(n in t&&e===t[n])return n;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(e){return e.__proto__||(e.constructor?e.constructor.prototype:g)}),!Object.getOwnPropertyDescriptor){var F="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(e,t){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError(F+e);if(p(e,t)){var i,n,s;if(i={enumerable:!0,configurable:!0},c){var o=e.__proto__;e.__proto__=g;var n=l(e,t),s=h(e,t);if(e.__proto__=o,n||s)return n&&(i.get=n),s&&(i.set=s),i}return i.value=e[t],i}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(e){return Object.keys(e)}),!Object.create){var w;w=null===Object.prototype.__proto__?function(){return{__proto__:null}}: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(e,t){var i;if(null===e)i=w();else{if("object"!=typeof e)throw new TypeError("typeof prototype["+typeof e+"] != 'object'");var n=function(){};n.prototype=e,i=new n,i.__proto__=e}return void 0!==t&&Object.defineProperties(i,t),i}}if(Object.defineProperty){var E=s({}),b="undefined"==typeof document||s(document.createElement("div"));if(!E||!b)var $=Object.defineProperty}if(!Object.defineProperty||$){var y="Property description must be an object: ",B="Object.defineProperty called on non-object: ",D="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(e,t,i){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError(B+e);if("object"!=typeof i&&"function"!=typeof i||null===i)throw new TypeError(y+i);if($)try{return $.call(Object,e,t,i)}catch(n){}if(p(i,"value"))if(c&&(l(e,t)||h(e,t))){var s=e.__proto__;e.__proto__=g,delete e[t],e[t]=i.value,e.__proto__=s}else e[t]=i.value;else{if(!c)throw new TypeError(D);p(i,"get")&&r(e,t,i.get),p(i,"set")&&a(e,t,i.set)}return e}}Object.defineProperties||(Object.defineProperties=function(e,t){for(var i in t)p(t,i)&&Object.defineProperty(e,i,t[i]);return e}),Object.seal||(Object.seal=function(e){return e}),Object.freeze||(Object.freeze=function(e){return e});try{Object.freeze(function(){})}catch(S){Object.freeze=function(e){return function(t){return"function"==typeof t?t:e(t)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(e){return e}),Object.isSealed||(Object.isSealed=function(e){return!1}),Object.isFrozen||(Object.isFrozen=function(e){return!1}),Object.isExtensible||(Object.isExtensible=function(e){if(Object(e)===e)throw new TypeError;for(var t="";p(e,t);)t+="?";e[t]=!0;var i=p(e,t);return delete e[t],i}),!Object.keys){var x=!0,k=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],L=k.length;for(var R in{toString:null})x=!1;Object.keys=function I(e){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.keys called on a non-object");var I=[];for(var t in e)p(e,t)&&I.push(t);if(x)for(var i=0,n=L;i=0?parseFloat((s.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((s.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)&&"Gecko"===window.navigator.product,t.isOldGecko=t.isGecko&&parseInt((s.match(/rv:(\d+)/)||[])[1],10)<4,t.isOpera=window.opera&&"[object Opera]"==Object.prototype.toString.call(window.opera),t.isWebKit=parseFloat(s.split("WebKit/")[1])||void 0,t.isChrome=parseFloat(s.split(" Chrome/")[1])||void 0,t.isAIR=s.indexOf("AdobeAIR")>=0,t.isIPad=s.indexOf("iPad")>=0,t.isChromeOS=s.indexOf(" CrOS ")>=0,t.isIOS=/iPad|iPhone|iPod/.test(s)&&!window.MSStream,t.isIOS&&(t.isMac=!0)}}),define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,i){"use strict";function n(e,t,i){var n=h(t);if(!r.isMac&&a){if(t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(n|=8),a.altGr){if(3==(3&n))return;a.altGr=0}if(18===i||17===i){var s="location"in t?t.location:t.keyLocation;if(17===i&&1===s)1==a[i]&&(l=t.timeStamp);else if(18===i&&3===n&&2===s){var c=t.timeStamp-l;c<50&&(a.altGr=!0)}}}if(i in o.MODIFIER_KEYS&&(i=-1),8&n&&i>=91&&i<=93&&(i=-1),!n&&13===i){var s="location"in t?t.location:t.keyLocation;if(3===s&&(e(t,n,-i),t.defaultPrevented))return}if(r.isChromeOS&&8&n){if(e(t,n,i),t.defaultPrevented)return;n&=-9}return!!(n||i in o.FUNCTION_KEYS||i in o.PRINTABLE_KEYS)&&e(t,n,i)}function s(){a=Object.create(null)}var o=e("./keys"),r=e("./useragent"),a=null,l=0;t.addListener=function(e,t,i){if(e.addEventListener)return e.addEventListener(t,i,!1);if(e.attachEvent){var n=function(){i.call(e,window.event)};i._wrapper=n,e.attachEvent("on"+t,n)}},t.removeListener=function(e,t,i){return e.removeEventListener?e.removeEventListener(t,i,!1):void(e.detachEvent&&e.detachEvent("on"+t,i._wrapper||i))},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"dblclick"==e.type?0:"contextmenu"==e.type||r.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},t.capture=function(e,i,n){function s(e){i&&i(e),n&&n(e),t.removeListener(document,"mousemove",i,!0),t.removeListener(document,"mouseup",s,!0),t.removeListener(document,"dragstart",s,!0)}return t.addListener(document,"mousemove",i,!0),t.addListener(document,"mouseup",s,!0),t.addListener(document,"dragstart",s,!0),s},t.addTouchMoveListener=function(e,i){var n,s;t.addListener(e,"touchstart",function(e){var t=e.touches,i=t[0];n=i.clientX,s=i.clientY}),t.addListener(e,"touchmove",function(e){var t=e.touches;if(!(t.length>1)){var o=t[0];e.wheelX=n-o.clientX,e.wheelY=s-o.clientY,n=o.clientX,s=o.clientY,i(e)}})},t.addMouseWheelListener=function(e,i){"onmousewheel"in e?t.addListener(e,"mousewheel",function(e){var t=8;void 0!==e.wheelDeltaX?(e.wheelX=-e.wheelDeltaX/t,e.wheelY=-e.wheelDeltaY/t):(e.wheelX=0,e.wheelY=-e.wheelDelta/t),i(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=5*(e.deltaX||0),e.wheelY=5*(e.deltaY||0)}i(e)}):t.addListener(e,"DOMMouseScroll",function(e){e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=5*(e.detail||0),e.wheelY=0):(e.wheelX=0,e.wheelY=5*(e.detail||0)),i(e)})},t.addMultiMouseDownListener=function(e,i,n,s){function o(e){if(0!==t.getButton(e)?u=0:e.detail>1?(u++,u>4&&(u=1)):u=1,r.isIE){var o=Math.abs(e.clientX-l)>5||Math.abs(e.clientY-h)>5;c&&!o||(u=1),c&&clearTimeout(c),c=setTimeout(function(){c=null},i[u-1]||600),1==u&&(l=e.clientX,h=e.clientY)}if(e._clicks=u,n[s]("mousedown",e),u>4)u=0;else if(u>1)return n[s](d[u],e)}function a(e){u=2,c&&clearTimeout(c),c=setTimeout(function(){c=null},i[u-1]||600),n[s]("mousedown",e),n[s](d[u],e)}var l,h,c,u=0,d={2:"dblclick",3:"tripleclick",4:"quadclick"};Array.isArray(e)||(e=[e]),e.forEach(function(e){t.addListener(e,"mousedown",o),r.isOldIE&&t.addListener(e,"dblclick",a)})};var h=!r.isMac||!r.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)};if(t.getModifierString=function(e){return o.KEY_MODS[h(e)]},t.addCommandKeyListener=function(e,i){var o=t.addListener;if(r.isOldGecko||r.isOpera&&!("KeyboardEvent"in window)){var l=null;o(e,"keydown",function(e){l=e.keyCode}),o(e,"keypress",function(e){return n(i,e,l)})}else{var h=null;o(e,"keydown",function(e){a[e.keyCode]=(a[e.keyCode]||0)+1;var t=n(i,e,e.keyCode);return h=e.defaultPrevented,t}),o(e,"keypress",function(e){h&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),h=null)}),o(e,"keyup",function(e){a[e.keyCode]=null}),a||(s(),o(window,"focus",s))}},"object"==typeof window&&window.postMessage&&!r.isOldIE){var c=1;t.nextTick=function(e,i){i=i||window;var n="zero-timeout-message-"+c;t.addListener(i,"message",function s(o){o.data==n&&(t.stopPropagation(o),t.removeListener(i,"message",s),e())}),i.postMessage(n,"*")}}t.nextFrame="object"==typeof window&&(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)}}),define("ace/lib/lang",["require","exports","module"],function(e,t,i){"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){for(var i="";t>0;)1&t&&(i+=e),(t>>=1)&&(e+=e);return i};var n=/^\s\s*/,s=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(n,"")},t.stringTrimRight=function(e){return e.replace(s,"")},t.copyObject=function(e){var t={};for(var i in e)t[i]=e[i];return t},t.copyArray=function(e){for(var t=[],i=0,n=e.length;if.length?e=e.substr(9):e.substr(0,4)==f.substr(0,4)?e=e.substr(4,e.length-f.length+1):e.charAt(e.length-1)==f.charAt(0)&&(e=e.slice(0,-1)),e==f.charAt(0)||e.charAt(e.length-1)==f.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),m&&(m=!1),S&&(S=!1))},k=function(e){if(!C){var t=g.value;x(t),u()}},L=function(e,t,i){var n=e.clipboardData||window.clipboardData;if(n&&!h){var s=c||i?"Text":"text/plain";try{return t?n.setData(s,t)!==!1:n.getData(s)}catch(e){if(!i)return L(e,t,!0)}}},R=function(e,o){var r=t.getCopyText();return r?void(L(e,r)?(s.isIOS&&(p=o,g.value="\n aa"+r+"a a\n",g.setSelectionRange(4,4+r.length),m={value:r}),o?t.onCut():t.onCopy(),s.isIOS||n.preventDefault(e)):(m=!0,g.value=r,g.select(),setTimeout(function(){m=!1,u(),i(),o?t.onCut():t.onCopy()}))):n.preventDefault(e)},M=function(e){R(e,!0)},T=function(e){R(e,!1)},_=function(e){var o=L(e);"string"==typeof o?(o&&t.onPaste(o,e),s.isIE&&setTimeout(i),n.preventDefault(e)):(g.value="",A=!0)};n.addCommandKeyListener(g,t.onCommandKey.bind(t)),n.addListener(g,"select",B),n.addListener(g,"input",k),n.addListener(g,"cut",M),n.addListener(g,"copy",T),n.addListener(g,"paste",_);var O=function(e){C||!t.onCompositionStart||t.$readOnly||(C={},C.canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(I,0),t.on("mousedown",W),C.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup())},I=function(){if(C&&t.onCompositionUpdate&&!t.$readOnly){var e=g.value.replace(/\x01/g,"");if(C.lastValue!==e&&(t.onCompositionUpdate(e),C.lastValue&&t.undo(),C.canUndo&&(C.lastValue=e),C.lastValue)){var i=t.selection.getRange();t.insert(C.lastValue),t.session.markUndoGroup(),C.range=t.selection.getRange(),t.selection.setRange(i),t.selection.clearSelection()}}},W=function(e){if(t.onCompositionEnd&&!t.$readOnly){var i=C;C=!1;var n=setTimeout(function(){n=null;var e=g.value.replace(/\x01/g,"");C||(e==i.lastValue?u():!i.lastValue&&e&&(u(),x(e)))});D=function(e){return n&&clearTimeout(n),e=e.replace(/\x01/g,""),e==i.lastValue?"":(i.lastValue&&n&&t.undo(),e)},t.onCompositionEnd(),t.removeListener("mousedown",W),"compositionend"==e.type&&i.range&&t.selection.setRange(i.range);var o=!!s.isChrome&&s.isChrome>=53||!!s.isWebKit&&s.isWebKit>=603;o&&k()}},H=r.delayedCall(I,50);n.addListener(g,"compositionstart",O),s.isGecko?n.addListener(g,"text",function(){H.schedule()}):(n.addListener(g,"keyup",function(){H.schedule()}),n.addListener(g,"keydown",function(){H.schedule()})),n.addListener(g,"compositionend",W),this.getElement=function(){return g},this.setReadOnly=function(e){g.readOnly=e},this.onContextMenu=function(e){S=!0,i(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,i){v||(v=g.style.cssText),g.style.cssText=(i?"z-index:100000;":"")+"height:"+g.style.height+";"+(s.isIE?"opacity:0.1;":"");var r=t.container.getBoundingClientRect(),a=o.computedStyle(t.container),l=r.top+(parseInt(a.borderTopWidth)||0),h=r.left+(parseInt(r.borderLeftWidth)||0),c=r.bottom-l-g.clientHeight-2,u=function(e){g.style.left=e.clientX-h-2+"px",g.style.top=Math.min(e.clientY-l-2,c)+"px"};u(e),"mousedown"==e.type&&(t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(P),s.isWin&&n.capture(t.container,u,d))},this.onContextMenuClose=d;var P,N=function(e){t.textInput.onContextMenu(e),d()};if(n.addListener(g,"mouseup",N),n.addListener(g,"mousedown",function(e){e.preventDefault(),d()}),n.addListener(t.renderer.scroller,"contextmenu",N),n.addListener(g,"contextmenu",N),s.isIOS){var z=null,V=!1;e.addEventListener("keydown",function(e){z&&clearTimeout(z),V=!0}),e.addEventListener("keyup",function(e){z=setTimeout(function(){V=!1},100)});var K=function(e){if(document.activeElement===g&&!V){if(p)return setTimeout(function(){p=!1},100);var i=g.selectionStart,n=g.selectionEnd;if(g.setSelectionRange(4,5),i==n)switch(i){case 0:t.onCommandKey(null,0,a.up);break;case 1:t.onCommandKey(null,0,a.home);break;case 2:t.onCommandKey(null,l.option,a.left);break;case 4:t.onCommandKey(null,0,a.left);break;case 5:t.onCommandKey(null,0,a.right);break;case 7:t.onCommandKey(null,l.option,a.right);break;case 8:t.onCommandKey(null,0,a.end);break;case 9:t.onCommandKey(null,0,a.down)}else{switch(n){case 6:t.onCommandKey(null,l.shift,a.right);break;case 7:t.onCommandKey(null,l.shift|l.option,a.right);break;case 8:t.onCommandKey(null,l.shift,a.end);break;case 9:t.onCommandKey(null,l.shift,a.down)}switch(i){ -case 0:t.onCommandKey(null,l.shift,a.up);break;case 1:t.onCommandKey(null,l.shift,a.home);break;case 2:t.onCommandKey(null,l.shift|l.option,a.left);break;case 3:t.onCommandKey(null,l.shift,a.left)}}}};document.addEventListener("selectionchange",K),t.on("destroy",function(){document.removeEventListener("selectionchange",K)})}};t.TextInput=u}),define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang","ace/keyboard/textinput_ios"],function(e,t,i){"use strict";var n=e("../lib/event"),s=e("../lib/useragent"),o=e("../lib/dom"),r=e("../lib/lang"),a=s.isChrome<18,l=s.isIE,h=e("./textinput_ios").TextInput,c=function(e,t){function i(e){if(!p){if(p=!0,y)var t=0,i=e?0:d.value.length-1;else var t=e?2:1,i=2;try{d.setSelectionRange(t,i)}catch(n){}p=!1}}function c(){p||(d.value=g,s.isWebKit&&E.schedule())}function u(){clearTimeout(W),W=setTimeout(function(){A&&(d.style.cssText=A,A=""),null==t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=!0,t.renderer.$moveTextAreaToCursor())},0)}if(s.isIOS)return h.call(this,e,t);var d=o.createElement("textarea");d.className="ace_text-input",d.setAttribute("wrap","off"),d.setAttribute("autocorrect","off"),d.setAttribute("autocapitalize","off"),d.setAttribute("spellcheck",!1),d.style.opacity="0",e.insertBefore(d,e.firstChild);var g="\u2028\u2028",f=!1,m=!1,p=!1,A="",C=!0;try{var v=document.activeElement===d}catch(F){}n.addListener(d,"blur",function(e){t.onBlur(e),v=!1}),n.addListener(d,"focus",function(e){v=!0,t.onFocus(e),i()}),this.focus=function(){if(A)return d.focus();var e=d.style.top;d.style.position="fixed",d.style.top="0px",d.focus(),setTimeout(function(){d.style.position="","0px"==d.style.top&&(d.style.top=e)},0)},this.blur=function(){d.blur()},this.isFocused=function(){return v};var w=r.delayedCall(function(){v&&i(C)}),E=r.delayedCall(function(){p||(d.value=g,v&&i())});s.isWebKit||t.addEventListener("changeSelection",function(){t.selection.isEmpty()!=C&&(C=!C,w.schedule())}),c(),v&&t.onFocus();var b=function(e){return 0===e.selectionStart&&e.selectionEnd===e.value.length},$=function(e){f?f=!1:b(d)?(t.selectAll(),i()):y&&i(t.selection.isEmpty())},y=null;this.setInputHandler=function(e){y=e},this.getInputHandler=function(){return y};var B=!1,D=function(e){y&&(e=y(e),y=null),m?(i(),e&&t.onPaste(e),m=!1):e==g.charAt(0)?B?t.execCommand("del",{source:"ace"}):t.execCommand("backspace",{source:"ace"}):(e.substring(0,2)==g?e=e.substr(2):e.charAt(0)==g.charAt(0)?e=e.substr(1):e.charAt(e.length-1)==g.charAt(0)&&(e=e.slice(0,-1)),e.charAt(e.length-1)==g.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),B&&(B=!1)},S=function(e){if(!p){var t=d.value;D(t),c()}},x=function(e,t,i){var n=e.clipboardData||window.clipboardData;if(n&&!a){var s=l||i?"Text":"text/plain";try{return t?n.setData(s,t)!==!1:n.getData(s)}catch(e){if(!i)return x(e,t,!0)}}},k=function(e,s){var o=t.getCopyText();return o?void(x(e,o)?(s?t.onCut():t.onCopy(),n.preventDefault(e)):(f=!0,d.value=o,d.select(),setTimeout(function(){f=!1,c(),i(),s?t.onCut():t.onCopy()}))):n.preventDefault(e)},L=function(e){k(e,!0)},R=function(e){k(e,!1)},M=function(e){var o=x(e);"string"==typeof o?(o&&t.onPaste(o,e),s.isIE&&setTimeout(i),n.preventDefault(e)):(d.value="",m=!0)};n.addCommandKeyListener(d,t.onCommandKey.bind(t)),n.addListener(d,"select",$),n.addListener(d,"input",S),n.addListener(d,"cut",L),n.addListener(d,"copy",R),n.addListener(d,"paste",M),"oncut"in d&&"oncopy"in d&&"onpaste"in d||n.addListener(e,"keydown",function(e){if((!s.isMac||e.metaKey)&&e.ctrlKey)switch(e.keyCode){case 67:R(e);break;case 86:M(e);break;case 88:L(e)}});var T=function(e){p||!t.onCompositionStart||t.$readOnly||(p={},p.canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(_,0),t.on("mousedown",O),p.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup())},_=function(){if(p&&t.onCompositionUpdate&&!t.$readOnly){var e=d.value.replace(/\u2028/g,"");if(p.lastValue!==e&&(t.onCompositionUpdate(e),p.lastValue&&t.undo(),p.canUndo&&(p.lastValue=e),p.lastValue)){var i=t.selection.getRange();t.insert(p.lastValue),t.session.markUndoGroup(),p.range=t.selection.getRange(),t.selection.setRange(i),t.selection.clearSelection()}}},O=function(e){if(t.onCompositionEnd&&!t.$readOnly){var i=p;p=!1;var n=setTimeout(function(){n=null;var e=d.value.replace(/\u2028/g,"");p||(e==i.lastValue?c():!i.lastValue&&e&&(c(),D(e)))});y=function(e){return n&&clearTimeout(n),e=e.replace(/\u2028/g,""),e==i.lastValue?"":(i.lastValue&&n&&t.undo(),e)},t.onCompositionEnd(),t.removeListener("mousedown",O),"compositionend"==e.type&&i.range&&t.selection.setRange(i.range);var o=!!s.isChrome&&s.isChrome>=53||!!s.isWebKit&&s.isWebKit>=603;o&&S()}},I=r.delayedCall(_,50);n.addListener(d,"compositionstart",T),s.isGecko?n.addListener(d,"text",function(){I.schedule()}):(n.addListener(d,"keyup",function(){I.schedule()}),n.addListener(d,"keydown",function(){I.schedule()})),n.addListener(d,"compositionend",O),this.getElement=function(){return d},this.setReadOnly=function(e){d.readOnly=e},this.onContextMenu=function(e){B=!0,i(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,i){A||(A=d.style.cssText),d.style.cssText=(i?"z-index:100000;":"")+"height:"+d.style.height+";"+(s.isIE?"opacity:0.1;":"");var r=t.container.getBoundingClientRect(),a=o.computedStyle(t.container),l=r.top+(parseInt(a.borderTopWidth)||0),h=r.left+(parseInt(r.borderLeftWidth)||0),c=r.bottom-l-d.clientHeight-2,g=function(e){d.style.left=e.clientX-h-2+"px",d.style.top=Math.min(e.clientY-l-2,c)+"px"};g(e),"mousedown"==e.type&&(t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(W),s.isWin&&n.capture(t.container,g,u))},this.onContextMenuClose=u;var W,H=function(e){t.textInput.onContextMenu(e),u()};n.addListener(d,"mouseup",H),n.addListener(d,"mousedown",function(e){e.preventDefault(),u()}),n.addListener(t.renderer.scroller,"contextmenu",H),n.addListener(d,"contextmenu",H)};t.TextInput=c}),define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";function n(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),t.setDefaultHandler("touchmove",this.onTouchMove.bind(e));var i=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];i.forEach(function(t){e[t]=this[t]},this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}function s(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))}function o(e,t){if(e.start.row==e.end.row)var i=2*t.column-e.start.column-e.end.column;else if(e.start.row!=e.end.row-1||e.start.column||e.end.column)var i=2*t.row-e.start.row-e.end.row;else var i=t.column-4;return i<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}var r=(e("../lib/dom"),e("../lib/event"),e("../lib/useragent")),a=0,l=250;(function(){this.onMouseDown=function(e){var t=e.inSelection(),i=e.getDocumentPosition();this.mousedownEvent=e;var n=this.editor,s=e.getButton();if(0!==s){var o=n.getSelectionRange(),a=o.isEmpty();return n.$blockScrolling++,(a||1==s)&&n.selection.moveToPosition(i),n.$blockScrolling--,void(2==s&&(n.textInput.onContextMenu(e.domEvent),r.isMozilla||e.preventDefault()))}return this.mousedownEvent.time=Date.now(),!t||n.isFocused()||(n.focus(),!this.$focusTimout||this.$clickSelection||n.inMultiSelectMode)?(this.captureMouse(e),this.startSelect(i,e.domEvent._clicks>1),e.preventDefault()):(this.setState("focusWait"),void this.captureMouse(e))},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var i=this.editor;i.$blockScrolling++,this.mousedownEvent.getShiftKey()?i.selection.selectToPosition(e):t||i.selection.moveToPosition(e),t||this.select(),i.renderer.scroller.setCapture&&i.renderer.scroller.setCapture(),i.setStyle("ace_selecting"),this.setState("select"),i.$blockScrolling--},this.select=function(){var e,t=this.editor,i=t.renderer.screenToTextCoordinates(this.x,this.y);if(t.$blockScrolling++,this.$clickSelection){var n=this.$clickSelection.comparePoint(i);if(n==-1)e=this.$clickSelection.end;else if(1==n)e=this.$clickSelection.start;else{var s=o(this.$clickSelection,i);i=s.cursor,e=s.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(i),t.$blockScrolling--,t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,i=this.editor,n=i.renderer.screenToTextCoordinates(this.x,this.y),s=i.selection[e](n.row,n.column);if(i.$blockScrolling++,this.$clickSelection){var r=this.$clickSelection.comparePoint(s.start),a=this.$clickSelection.comparePoint(s.end);if(r==-1&&a<=0)t=this.$clickSelection.end,s.end.row==n.row&&s.end.column==n.column||(n=s.start);else if(1==a&&r>=0)t=this.$clickSelection.start,s.start.row==n.row&&s.start.column==n.column||(n=s.end);else if(r==-1&&1==a)n=s.end,t=s.start;else{var l=o(this.$clickSelection,n);n=l.cursor,t=l.anchor}i.selection.setSelectionAnchor(t.row,t.column)}i.selection.selectToPosition(n),i.$blockScrolling--,i.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=s(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>a||t-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),i=this.editor,n=i.session,s=n.getBracketRange(t);s?(s.isEmpty()&&(s.start.column--,s.end.column++),this.setState("select")):(s=i.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=s,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),i=this.editor;this.setState("selectByLines");var n=i.getSelectionRange();n.isMultiLine()&&n.contains(t.row,t.column)?(this.$clickSelection=i.selection.getLineRange(n.start.row),this.$clickSelection.end=i.selection.getLineRange(n.end.row).end):this.$clickSelection=i.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()){e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=this.editor;this.$lastScroll||(this.$lastScroll={t:0,vx:0,vy:0,allowed:0});var i=this.$lastScroll,n=e.domEvent.timeStamp,s=n-i.t,o=e.wheelX/s,r=e.wheelY/s;s=1&&t.renderer.isScrollableBy(e.wheelX*e.speed,0)&&(h=!0),a<=1&&t.renderer.isScrollableBy(0,e.wheelY*e.speed)&&(h=!0),h)i.allowed=n;else if(n-i.allowedr.session.documentToScreenRow(c.row,c.column))return i()}if(d!=s)if(d=s.text.join("
"),h.setHtml(d),h.show(),r._signal("showGutterTooltip",h),r.on("mousewheel",i),e.$tooltipFollowsMouse)n(u);else{var g=u.domEvent.target,f=g.getBoundingClientRect(),m=h.getElement().style;m.left=f.right+"px",m.top=f.bottom+"px"}}function i(){c&&(c=clearTimeout(c)),d&&(h.hide(),d=null,r._signal("hideGutterTooltip",h),r.removeEventListener("mousewheel",i))}function n(e){h.setPosition(e.x,e.y)}var r=e.editor,l=r.renderer.$gutterLayer,h=new s(r.container);e.editor.setDefaultHandler("guttermousedown",function(t){if(r.isFocused()&&0==t.getButton()){var i=l.getRegion(t);if("foldWidgets"!=i){var n=t.getDocumentPosition().row,s=r.session.selection;if(t.getShiftKey())s.selectTo(n,0);else{if(2==t.domEvent.detail)return r.selectAll(),t.preventDefault();e.$clickSelection=r.selection.getLineRange(n)}return e.setState("selectByLines"),e.captureMouse(t),t.preventDefault()}}});var c,u,d;e.editor.setDefaultHandler("guttermousemove",function(s){var r=s.domEvent.target||s.domEvent.srcElement;return o.hasCssClass(r,"ace_fold-widget")?i():(d&&e.$tooltipFollowsMouse&&n(s),u=s,void(c||(c=setTimeout(function(){c=null,u&&!e.isMousePressed?t():i()},50))))}),a.addListener(r.renderer.$gutter,"mouseout",function(e){u=null,d&&!c&&(c=setTimeout(function(){c=null,i()},50))}),r.on("changeSession",i)}function s(e){l.call(this,e)}var o=e("../lib/dom"),r=e("../lib/oop"),a=e("../lib/event"),l=e("../tooltip").Tooltip;r.inherits(s,l),function(){this.setPosition=function(e,t){var i=window.innerWidth||document.documentElement.clientWidth,n=window.innerHeight||document.documentElement.clientHeight,s=this.getWidth(),o=this.getHeight();e+=15,t+=15,e+s>i&&(e-=e+s-i),t+o>n&&(t-=20+o),l.prototype.setPosition.call(this,e,t)}}.call(s.prototype),t.GutterHandler=n}),define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";var n=e("../lib/event"),s=e("../lib/useragent"),o=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(){n.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){n.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(null!==this.$inSelection)return this.$inSelection;var e=this.editor,t=e.getSelectionRange();if(t.isEmpty())this.$inSelection=!1;else{var i=this.getDocumentPosition();this.$inSelection=t.contains(i.row,i.column)}return this.$inSelection},this.getButton=function(){return n.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=s.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(o.prototype)}),define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,i){"use strict";function n(e){function t(e,t){var i=Date.now(),n=!t||e.row!=t.row,o=!t||e.column!=t.column;if(!S||n||o)p.$blockScrolling+=1,p.moveCursorToPosition(e),p.$blockScrolling-=1,S=i,x={x:F,y:w};else{var r=s(x.x,x.y,F,w);r>c?S=null:i-S>=h&&(p.renderer.scrollCursorIntoView(),S=null)}}function i(e,t){var i=Date.now(),n=p.renderer.layerConfig.lineHeight,s=p.renderer.layerConfig.characterWidth,o=p.renderer.scroller.getBoundingClientRect(),r={x:{left:F-o.left,right:o.right-F},y:{top:w-o.top,bottom:o.bottom-w}},a=Math.min(r.x.left,r.x.right),h=Math.min(r.y.top,r.y.bottom),c={row:e.row,column:e.column};a/s<=2&&(c.column+=r.x.left=l&&p.renderer.scrollCursorIntoView(c):D=i:D=null}function n(){var e=$;$=p.renderer.screenToTextCoordinates(F,w),t($,e),i($,e)}function u(){b=p.selection.toOrientedRange(),v=p.session.addMarker(b,"ace_selection",p.getSelectionStyle()),p.clearSelection(),p.isFocused()&&p.renderer.$cursorLayer.setBlinking(!1),clearInterval(E),n(),E=setInterval(n,20),L=0,r.addListener(document,"mousemove",g)}function d(){clearInterval(E),p.session.removeMarker(v),v=null,p.$blockScrolling+=1,p.selection.fromOrientedRange(b),p.$blockScrolling-=1,p.isFocused()&&!B&&p.renderer.$cursorLayer.setBlinking(!p.getReadOnly()),b=null,$=null,L=0,D=null,S=null,r.removeListener(document,"mousemove",g)}function g(){null==R&&(R=setTimeout(function(){null!=R&&v&&d()},20))}function f(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return"text/plain"==e||"Text"==e})}function m(e){var t=["copy","copymove","all","uninitialized"],i=["move","copymove","linkmove","all","uninitialized"],n=a.isMac?e.altKey:e.ctrlKey,s="uninitialized";try{s=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var o="none";return n&&t.indexOf(s)>=0?o="copy":i.indexOf(s)>=0?o="move":t.indexOf(s)>=0&&(o="copy"),o}var p=e.editor,A=o.createElement("img");A.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",a.isOpera&&(A.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;");var C=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];C.forEach(function(t){e[t]=this[t]},this),p.addEventListener("mousedown",this.onMouseDown.bind(e));var v,F,w,E,b,$,y,B,D,S,x,k=p.container,L=0;this.onDragStart=function(e){if(this.cancelDrag||!k.draggable){var t=this;return setTimeout(function(){t.startSelect(),t.captureMouse(e)},0),e.preventDefault()}b=p.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=p.getReadOnly()?"copy":"copyMove",a.isOpera&&(p.container.appendChild(A),A.scrollTop=0),i.setDragImage&&i.setDragImage(A,0,0),a.isOpera&&p.container.removeChild(A),i.clearData(),i.setData("Text",p.session.getTextRange()),B=!0,this.setState("drag")},this.onDragEnd=function(e){if(k.draggable=!1,B=!1,this.setState(null),!p.getReadOnly()){var t=e.dataTransfer.dropEffect;y||"move"!=t||p.session.remove(p.getSelectionRange()),p.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(!p.getReadOnly()&&f(e.dataTransfer))return F=e.clientX,w=e.clientY,v||u(),L++,e.dataTransfer.dropEffect=y=m(e),r.preventDefault(e)},this.onDragOver=function(e){if(!p.getReadOnly()&&f(e.dataTransfer))return F=e.clientX,w=e.clientY,v||(u(),L++),null!==R&&(R=null),e.dataTransfer.dropEffect=y=m(e),r.preventDefault(e)},this.onDragLeave=function(e){if(L--,L<=0&&v)return d(),y=null,r.preventDefault(e)},this.onDrop=function(e){if($){var t=e.dataTransfer;if(B)switch(y){case"move":b=b.contains($.row,$.column)?{start:$,end:$}:p.moveText(b,$);break;case"copy":b=p.moveText(b,$,!0)}else{var i=t.getData("Text");b={start:$,end:p.session.insert($,i)},p.focus(),y=null}return d(),r.preventDefault(e)}},r.addListener(k,"dragstart",this.onDragStart.bind(e)),r.addListener(k,"dragend",this.onDragEnd.bind(e)),r.addListener(k,"dragenter",this.onDragEnter.bind(e)),r.addListener(k,"dragover",this.onDragOver.bind(e)),r.addListener(k,"dragleave",this.onDragLeave.bind(e)),r.addListener(k,"drop",this.onDrop.bind(e));var R=null}function s(e,t,i,n){return Math.sqrt(Math.pow(i-e,2)+Math.pow(n-t,2))}var o=e("../lib/dom"),r=e("../lib/event"),a=e("../lib/useragent"),l=200,h=200,c=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 i=a.isWin?"default":"move";e.renderer.setCursorStyle(i),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;if(a.isIE&&"dragReady"==this.state){var i=s(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);i>3&&t.dragDrop()}if("dragWait"===this.state){var i=s(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);i>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(this.$dragEnabled){this.mousedownEvent=e;var t=this.editor,i=e.inSelection(),n=e.getButton(),s=e.domEvent.detail||1;if(1===s&&0===n&&i){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var o=e.domEvent.target||e.domEvent.srcElement;if("unselectable"in o&&(o.unselectable="on"),t.getDragDelay()){if(a.isWebKit){this.cancelDrag=!0;var r=t.container;r.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}}).call(n.prototype),t.DragdropHandler=n}),define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";var n=e("./dom");t.get=function(e,t){var i=new XMLHttpRequest;i.open("GET",e,!0),i.onreadystatechange=function(){4===i.readyState&&t(i.responseText)},i.send(null)},t.loadScript=function(e,t){var i=n.getDocumentHead(),s=document.createElement("script");s.src=e,i.appendChild(s),s.onload=s.onreadystatechange=function(e,i){!i&&s.readyState&&"loaded"!=s.readyState&&"complete"!=s.readyState||(s=s.onload=s.onreadystatechange=null,i||t())}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}}),define("ace/lib/event_emitter",["require","exports","module"],function(e,t,i){"use strict";var n={},s=function(){this.propagationStopped=!0},o=function(){this.defaultPrevented=!0};n._emit=n._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var i=this._eventRegistry[e]||[],n=this._defaultHandlers[e];if(i.length||n){"object"==typeof t&&t||(t={}),t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=s),t.preventDefault||(t.preventDefault=o),i=i.slice();for(var r=0;r1&&(s=i[i.length-2]);var r=h[t+"Path"];return null==r?r=h.basePath:"/"==n&&(t=n=""),r&&"/"!=r.slice(-1)&&(r+="/"),r+t+n+s+this.get("suffix")},t.setModuleUrl=function(e,t){return h.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(i,n){var s,o;Array.isArray(i)&&(o=i[0],i=i[1]);try{s=e(i)}catch(a){}if(s&&!t.$loading[i])return n&&n(s);if(t.$loading[i]||(t.$loading[i]=[]),t.$loading[i].push(n),!(t.$loading[i].length>1)){var l=function(){e([i],function(e){t._emit("load.module",{name:i,module:e});var n=t.$loading[i];t.$loading[i]=null,n.forEach(function(t){t&&t(e)})})};return t.get("packaged")?void r.loadScript(t.moduleUrl(i,o),l):l()}},n(!0),t.init=n}),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,i){"use strict";var n=e("../lib/event"),s=e("../lib/useragent"),o=e("./default_handlers").DefaultHandlers,r=e("./default_gutter_handler").GutterHandler,a=e("./mouse_event").MouseEvent,l=e("./dragdrop_handler").DragdropHandler,h=e("../config"),c=function(e){var t=this;this.editor=e,new o(this),new r(this),new l(this);var i=function(t){var i=!document.hasFocus||!document.hasFocus()||!e.isFocused()&&document.activeElement==(e.textInput&&e.textInput.getElement());i&&window.focus(),e.focus()},a=e.renderer.getMouseEventTarget();n.addListener(a,"click",this.onMouseEvent.bind(this,"click")),n.addListener(a,"mousemove",this.onMouseMove.bind(this,"mousemove")),n.addMultiMouseDownListener([a,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"),n.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,"mousewheel")),n.addTouchMoveListener(e.container,this.onTouchMove.bind(this,"touchmove"));var h=e.renderer.$gutter;n.addListener(h,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),n.addListener(h,"click",this.onMouseEvent.bind(this,"gutterclick")),n.addListener(h,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),n.addListener(h,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),n.addListener(a,"mousedown",i),n.addListener(h,"mousedown",i),s.isIE&&e.renderer.scrollBarV&&(n.addListener(e.renderer.scrollBarV.element,"mousedown",i),n.addListener(e.renderer.scrollBarH.element,"mousedown",i)),e.on("mousemove",function(i){if(!t.state&&!t.$dragDelay&&t.$dragEnabled){var n=e.renderer.screenToTextCoordinates(i.x,i.y),s=e.session.selection.getRange(),o=e.renderer;!s.isEmpty()&&s.insideStart(n.row,n.column)?o.setCursorStyle("default"):o.setCursorStyle("")}})};(function(){this.onMouseEvent=function(e,t){this.editor._emit(e,new a(t,this.editor))},this.onMouseMove=function(e,t){var i=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;i&&i.length&&this.editor._emit(e,new a(t,this.editor))},this.onMouseWheel=function(e,t){var i=new a(t,this.editor);i.speed=2*this.$scrollSpeed,i.wheelX=t.wheelX,i.wheelY=t.wheelY,this.editor._emit(e,i)},this.onTouchMove=function(e,t){var i=new a(t,this.editor);i.speed=1,i.wheelX=t.wheelX,i.wheelY=t.wheelY, -this.editor._emit(e,i)},this.setState=function(e){this.state=e},this.captureMouse=function(e,t){this.x=e.x,this.y=e.y,this.isMousePressed=!0;var i=this.editor.renderer;i.$keepTextAreaAtCursor&&(i.$keepTextAreaAtCursor=null);var o=this,r=function(e){if(e){if(s.isWebKit&&!e.which&&o.releaseMouse)return o.releaseMouse();o.x=e.clientX,o.y=e.clientY,t&&t(e),o.mouseEvent=new a(e,o.editor),o.$mouseMoved=!0}},l=function(e){clearInterval(c),h(),o[o.state+"End"]&&o[o.state+"End"](e),o.state="",null==i.$keepTextAreaAtCursor&&(i.$keepTextAreaAtCursor=!0,i.$moveTextAreaToCursor()),o.isMousePressed=!1,o.$onCaptureMouseMove=o.releaseMouse=null,e&&o.onMouseEvent("mouseup",e)},h=function(){o[o.state]&&o[o.state](),o.$mouseMoved=!1};if(s.isOldIE&&"dblclick"==e.domEvent.type)return setTimeout(function(){l(e)});o.$onCaptureMouseMove=r,o.releaseMouse=n.capture(this.editor.container,r,l);var c=setInterval(h,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var e=function(t){t&&t.domEvent&&"contextmenu"!=t.domEvent.type||(this.editor.off("nativecontextmenu",e),t&&t.domEvent&&n.stopEvent(t.domEvent))}.bind(this);setTimeout(e,10),this.editor.on("nativecontextmenu",e)}}).call(c.prototype),h.defineOptions(c.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:s.isMac?150:0},dragEnabled:{initialValue:!0},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=c}),define("ace/mouse/fold_handler",["require","exports","module"],function(e,t,i){"use strict";function n(e){e.on("click",function(t){var i=t.getDocumentPosition(),n=e.session,s=n.getFoldAt(i.row,i.column,1);s&&(t.getAccelKey()?n.removeFold(s):n.expandFold(s),t.stop())}),e.on("gutterclick",function(t){var i=e.renderer.$gutterLayer.getRegion(t);if("foldWidgets"==i){var n=t.getDocumentPosition().row,s=e.session;s.foldWidgets&&s.foldWidgets[n]&&e.session.onFoldWidgetClick(n,t),e.isFocused()||e.focus(),t.stop()}}),e.on("gutterdblclick",function(t){var i=e.renderer.$gutterLayer.getRegion(t);if("foldWidgets"==i){var n=t.getDocumentPosition().row,s=e.session,o=s.getParentFoldRangeData(n,!0),r=o.range||o.firstRange;if(r){n=r.start.row;var a=s.getFoldAt(n,s.getLine(n).length,1);a?s.removeFold(a):(s.addFold("...",r),e.renderer.scrollCursorIntoView({row:r.start.row,column:0}))}t.stop()}})}t.FoldHandler=n}),define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(e,t,i){"use strict";var n=e("../lib/keys"),s=e("../lib/event"),o=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){for(;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){"function"!=typeof e||e.handleKeyboard||(e.handleKeyboard=e);var i=this.$handlers.indexOf(e);i!=-1&&this.$handlers.splice(i,1),void 0==t?this.$handlers.push(e):this.$handlers.splice(t,0,e),i==-1&&e.attach&&e.attach(this.$editor)}},this.removeKeyboardHandler=function(e){var t=this.$handlers.indexOf(e);return t!=-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(i){return i.getStatusText&&i.getStatusText(t,e)||""}).filter(Boolean).join(" ")},this.$callKeyboardHandlers=function(e,t,i,n){for(var o,r=!1,a=this.$editor.commands,l=this.$handlers.length;l--&&(o=this.$handlers[l].handleKeyboard(this.$data,e,t,i,n),!(o&&o.command&&(r="null"==o.command||a.exec(o.command,this.$editor,o.args,n),r&&n&&e!=-1&&1!=o.passEvent&&1!=o.command.passEvent&&s.stopEvent(n),r))););return r||e!=-1||(o={command:"insertstring"},r=a.exec("insertstring",this.$editor,t)),r&&this.$editor._signal&&this.$editor._signal("keyboardActivity",o),r},this.onCommandKey=function(e,t,i){var s=n.keyCodeToString(i);this.$callKeyboardHandlers(t,s,i,e)},this.onTextInput=function(e){this.$callKeyboardHandlers(-1,e)}}).call(o.prototype),t.KeyBinding=o}),define("ace/lib/bidiutil",["require","exports","module"],function(e,t,i){"use strict";function n(e,t,i,n){var s=a?f:g,m=null,p=null,A=null,C=0,v=null,F=null,w=-1,$=null,B=null,D=[];if(!n)for($=0,n=[];$0)if(16==v){for($=w;$-1){for($=w;$=0&&n[S]==y;S--)t[S]=a}}function s(e,t,i){if(!(l=e){for(n=c+1;n=e;)n++;for(s=c,o=n-1;s=t.length||(s=i[n-1])!=v&&s!=F||(o=t[n+1])!=v&&o!=F?w:(h&&(o=F),o==s?o:w);case D:return s=n>0?i[n-1]:E,s==v&&n+10&&i[n-1]==v)return v;if(h)return w;for(l=n+1,r=t.length;l=1425&&f<=2303||64286==f;if(s=t[l],m&&(s==C||s==$))return C}return n<1||(s=t[n-1])==E?w:i[n-1];case E:return h=!1,u=!0,a;case b:return d=!0,w;case k:case L:case M:case T:case R:h=!1;case _:return w}}function r(e){var t=e.charCodeAt(0),i=t>>8;return 0==i?t>191?A:O[t]:5==i?/[\u0591-\u05f4]/.test(e)?C:A:6==i?/[\u0610-\u061a\u064b-\u065f\u06d6-\u06e4\u06e7-\u06ed]/.test(e)?x:/[\u0660-\u0669\u066b-\u066c]/.test(e)?F:1642==t?S:/[\u06f0-\u06f9]/.test(e)?v:$:32==i&&t<=8287?I[255&t]:254==i&&t>=65136?$:w}var a=0,l=0,h=!1,c=!1,u=!1,d=!1,g=[[0,3,0,1,0,0,0],[0,3,0,1,2,2,0],[0,3,0,17,2,0,1],[0,3,5,5,4,1,0],[0,3,21,21,4,0,1],[0,3,5,5,4,2,0]],f=[[2,0,1,1,0,1,0],[2,0,1,1,0,2,0],[2,0,2,1,3,2,0],[2,0,2,33,3,1,1]],m=0,p=1,A=0,C=1,v=2,F=3,w=4,E=5,b=6,$=7,y=8,B=9,D=10,S=11,x=12,k=13,L=14,R=15,M=16,T=17,_=18,O=[_,_,_,_,_,_,_,_,_,b,E,b,y,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,E,E,E,b,y,w,w,S,S,S,w,w,w,w,w,D,B,D,B,B,v,v,v,v,v,v,v,v,v,v,B,w,w,w,w,w,w,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,w,w,w,w,w,w,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,w,w,w,w,_,_,_,_,_,_,E,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,B,w,S,S,S,S,w,w,w,w,A,w,w,_,w,w,S,S,v,v,w,A,w,w,w,v,A,w,w,w,w,w],I=[y,y,y,y,y,y,y,y,y,y,y,_,_,_,A,C,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,y,E,k,L,R,M,T,B,S,S,S,S,S,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,B,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,w,y];t.L=A,t.R=C,t.EN=v,t.ON_R=3,t.AN=4,t.R_H=5,t.B=6,t.DOT="·",t.doBidiReorder=function(e,i,o){if(e.length<2)return{};var r=e.split(""),l=new Array(r.length),h=new Array(r.length),c=[];a=o?p:m,n(r,c,r.length,i);for(var u=0;u$&&i[u]0&&"ل"===r[u-1]&&/\u0622|\u0623|\u0625|\u0627/.test(r[u])&&(c[u-1]=c[u]=t.R_H,u++);r[r.length-1]===t.DOT&&(c[r.length-1]=t.B);for(var u=0;u=0&&(e=this.session.$docRowCache[i])}return e},this.getSplitIndex=function(){var e=0,t=this.session.$screenRowCache;if(t.length)for(var i,n=this.session.$getRowCacheIndex(t,this.currentRow);this.currentRow-e>0&&(i=this.session.$getRowCacheIndex(t,this.currentRow-e-1),i===n);)n=i,e++;return e},this.updateRowLine=function(e,t){if(void 0===e&&(e=this.getDocumentRow()),this.wrapIndent=0,this.isLastRow=e===this.session.getLength()-1,this.line=this.session.getLine(e),this.session.$useWrapMode){var i=this.session.$wrapData[e];i&&(void 0===t&&(t=this.getSplitIndex()),t>0&&i.length?(this.wrapIndent=i.indent,this.line=t0?e-1:0,this.bidiMap),i=this.bidiMap.bidiLevels,s=0;0===e&&i[t]%2!==0&&t++;for(var o=0;o=h&&si+r/2;){if(i+=r,s===o.length-1){r=0;break}r=this.charWidths[o[++s]]}return s>0&&o[s-1]%2!==0&&o[s]%2===0?(e0&&o[s-1]%2===0&&o[s]%2!==0?t=1+(e>i?this.bidiMap.logicalFromVisual[s]:this.bidiMap.logicalFromVisual[s-1]):this.isRtlDir&&s===o.length-1&&0===r&&o[s-1]%2===0||!this.isRtlDir&&0===s&&o[s]%2!==0?t=1+this.bidiMap.logicalFromVisual[s]:(s>0&&o[s-1]%2!==0&&0!==r&&s--,t=this.bidiMap.logicalFromVisual[s]),t+this.wrapIndent}}).call(a.prototype),t.BidiHandler=a}),define("ace/range",["require","exports","module"],function(e,t,i){"use strict";var n=function(e,t){return e.row-t.row||e.column-t.column},s=function(e,t,i,n){this.start={row:e,column:t},this.end={row:i,column:n}};(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 0==this.compare(e,t)},this.compareRange=function(e){var t,i=e.end,n=e.start;return t=this.compare(i.row,i.column),1==t?(t=this.compare(n.row,n.column),1==t?2:0==t?1:0):t==-1?-2:(t=this.compare(n.row,n.column),t==-1?-1:1==t?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},this.intersects=function(e){var t=this.compareRange(e);return t==-1||0==t||1==t},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){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return 0==this.compare(e,t)&&(!this.isEnd(e,t)&&!this.isStart(e,t))},this.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},this.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},this.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?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:tthis.end.column?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 i={row:t+1,column:0};else if(this.end.rowt)var n={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()?r.fromPoints(t,t):this.isBackwards()?r.fromPoints(t,e):r.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("undefined"==typeof t){var i=e||this.lead;e=i.row,t=i.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 i,n="number"==typeof e?e:this.lead.row,s=this.session.getFoldLine(n);return s?(n=s.start.row,i=s.end.row):i=n,t===!0?new r(n,0,i,this.session.getLine(i).length):new r(n,0,i+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.wouldMoveIntoSoftTab=function(e,t,i){var n=e.column,s=e.column+t;return i<0&&(n=e.column-t,s=e.column),this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(n,s).split(" ").length-1==t},this.moveCursorLeft=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,-1))this.moveCursorTo(e.start.row,e.start.column);else if(0===t.column)t.row>0&&this.moveCursorTo(t.row-1,this.doc.getLine(t.row-1).length);else{var i=this.session.getTabSize();this.wouldMoveIntoSoftTab(t,i,-1)&&!this.session.getNavigateWithinSoftTabs()?this.moveCursorBy(0,-i):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e,t=this.lead.getPosition();if(e=this.session.getFoldAt(t.row,t.column,1))this.moveCursorTo(e.end.row,e.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row0&&(t.column=n)}}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,t=this.lead.row,i=this.lead.column,n=this.doc.getLine(t),s=n.substring(i);this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var o=this.session.getFoldAt(t,i,1);return o?void this.moveCursorTo(o.end.row,o.end.column):((e=this.session.nonTokenRe.exec(s))&&(i+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,s=n.substring(i)),i>=n.length?(this.moveCursorTo(t,n.length),this.moveCursorRight(),void(t0&&this.moveCursorWordLeft())):((o=this.session.tokenRe.exec(r))&&(i-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0),void this.moveCursorTo(t,i))},this.$shortWordEndIndex=function(e){var t,i,n=0,s=/\s/,o=this.session.tokenRe;if(o.lastIndex=0,t=this.session.tokenRe.exec(e))n=this.session.tokenRe.lastIndex;else{for(;(i=e[n])&&s.test(i);)n++;if(n<1)for(o.lastIndex=0;(i=e[n])&&!o.test(i);)if(o.lastIndex=0,n++,s.test(i)){if(n>2){n--;break}for(;(i=e[n])&&s.test(i);)n++;if(n>2)break}}return o.lastIndex=0,n},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,i=this.doc.getLine(e),n=i.substring(t),s=this.session.getFoldAt(e,t,1);if(s)return this.moveCursorTo(s.end.row,s.end.column);if(t==i.length){var o=this.doc.getLength();do e++,n=this.doc.getLine(e);while(e0&&/^\s*$/.test(n));i=n.length,/\s+$/.test(n)||(n="")}var o=s.stringReverse(n),r=this.$shortWordEndIndex(o);return this.moveCursorTo(t,i-r)},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 i,n=this.session.documentToScreenPosition(this.lead.row,this.lead.column);0===t&&(0!==e&&(this.session.$bidiHandler.isBidiRow(n.row,this.lead.row)?(i=this.session.$bidiHandler.getPosLeft(n.column),n.column=Math.round(i/this.session.$bidiHandler.charWidths[0])):i=n.column*this.session.$bidiHandler.charWidths[0]),this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);var s=this.session.screenToDocumentPosition(n.row+e,n.column,i);0!==e&&0===t&&s.row===this.lead.row&&s.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[s.row]&&(s.row>0||e>0)&&s.row++,this.moveCursorTo(s.row,s.column+t,0===t)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,i){var n=this.session.getFoldAt(e,t,1);n&&(e=n.start.row,t=n.start.column),this.$keepDesiredColumnOnChange=!0;var s=this.session.getLine(e);/[\uDC00-\uDFFF]/.test(s.charAt(t))&&s.charAt(t-1)&&(this.lead.row==e&&this.lead.column==t+1?t-=1:t+=1),this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,i||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,i){var n=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(n.row,n.column,i)},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 i=this.getCursor();return r.fromPoints(t,i)}catch(n){return r.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(void 0==e.start){if(this.rangeList){this.toSingleRange(e[0]);for(var t=e.length;t--;){var i=r.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(i.cursor=i.start),this.addRange(i,!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(a.prototype),t.Selection=a}),define("ace/tokenizer",["require","exports","module","ace/config"],function(e,t,i){"use strict";var n=e("./config"),s=2e3,o=function(e){this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){for(var i=this.states[t],n=[],s=0,o=this.matchMappings[t]={defaultToken:"text"},r="g",a=[],l=0;l1?h.onMatch=this.$applyToken:h.onMatch=h.token),u>1&&(/\\\d/.test(h.regex)?c=h.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+s+1)}):(u=1,c=this.removeCapturingGroups(h.regex)),h.splitRegex||"string"==typeof h.token||a.push(h)),o[s]=l,s+=u,n.push(c),h.onMatch||(h.onMatch=null)}}n.length||(o[0]=0,n.push("$")),a.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,r)},this),this.regExps[t]=new RegExp("("+n.join(")|(")+")|($)",r)}};(function(){this.$setMaxTokenCount=function(e){s=0|e},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),i=this.token.apply(this,t);if("string"==typeof i)return[{type:i,value:e}];for(var n=[],s=0,o=i.length;sc){var A=e.substring(c,p-m.length);d.type==g?d.value+=A:(d.type&&h.push(d),d={type:g,value:A})}for(var C=0;Cs){for(u>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});c1&&i[0]!==n&&i.unshift("#tmp",n),{tokens:h,state:i.length?i:n}},this.reportError=n.reportError}).call(o.prototype),t.Tokenizer=o}),define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(e,t,i){"use strict";var n=e("../lib/lang"),s=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(t)for(var i in e){for(var n=e[i],s=0;s=this.$rowTokens.length;){if(this.$row+=1,e||(e=this.$session.getLength()),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,i=e[t].start;if(void 0!==i)return i;for(i=0;t>0;)t-=1,i+=e[t].value.length;return i},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}},this.getCurrentTokenRange=function(){var e=this.$rowTokens[this.$tokenIndex],t=this.getCurrentTokenColumn();return new n(this.$row,t,this.$row,t+e.value.length)}}).call(s.prototype),t.TokenIterator=s}),define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,i){"use strict";var n,s=e("../../lib/oop"),o=e("../behaviour").Behaviour,r=e("../../token_iterator").TokenIterator,a=e("../../lib/lang"),l=["text","paren.rparen","punctuation.operator"],h=["text","paren.rparen","punctuation.operator","comment"],c={},u={'"':'"',"'":"'"},d=function(e){var t=-1;return e.multiSelect&&(t=e.selection.index,c.rangeCount!=e.multiSelect.rangeCount&&(c={rangeCount:e.multiSelect.rangeCount})),c[t]?n=c[t]:void(n=c[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""})},g=function(e,t,i,n){var s=e.end.row-e.start.row;return{text:i+t+n,selection:[0,e.start.column+1,s,e.end.column+(s?0:1)]}},f=function(e){this.add("braces","insertion",function(t,i,s,o,r){var l=s.getCursorPosition(),h=o.doc.getLine(l.row);if("{"==r){d(s);var c=s.getSelectionRange(),u=o.doc.getTextRange(c);if(""!==u&&"{"!==u&&s.getWrapBehavioursEnabled())return g(c,u,"{","}");if(f.isSaneInsertion(s,o))return/[\]\}\)]/.test(h[l.column])||s.inMultiSelectMode||e&&e.braces?(f.recordAutoInsert(s,o,"}"),{text:"{}",selection:[1,1]}):(f.recordMaybeInsert(s,o,"{"),{text:"{",selection:[1,1]})}else if("}"==r){d(s);var m=h.substring(l.column,l.column+1);if("}"==m){var p=o.$findOpeningBracket("}",{column:l.column+1,row:l.row});if(null!==p&&f.isAutoInsertedClosing(l,h,r))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if("\n"==r||"\r\n"==r){d(s);var A="";f.isMaybeInsertedClosing(l,h)&&(A=a.stringRepeat("}",n.maybeInsertedBrackets),f.clearMaybeInsertedClosing());var m=h.substring(l.column,l.column+1);if("}"===m){var C=o.findMatchingBracket({row:l.row,column:l.column+1},"}");if(!C)return null;var v=this.$getIndent(o.getLine(C.row))}else{if(!A)return void f.clearMaybeInsertedClosing();var v=this.$getIndent(h)}var F=v+o.getTabString();return{text:"\n"+F+"\n"+v+A,selection:[1,F.length,1,F.length]}}f.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,i,s,o){var r=s.doc.getTextRange(o);if(!o.isMultiLine()&&"{"==r){d(i);var a=s.doc.getLine(o.start.row),l=a.substring(o.end.column,o.end.column+1);if("}"==l)return o.end.column++,o;n.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,i,n,s){if("("==s){d(i);var o=i.getSelectionRange(),r=n.doc.getTextRange(o);if(""!==r&&i.getWrapBehavioursEnabled())return g(o,r,"(",")");if(f.isSaneInsertion(i,n))return f.recordAutoInsert(i,n,")"),{text:"()",selection:[1,1]}}else if(")"==s){d(i);var a=i.getCursorPosition(),l=n.doc.getLine(a.row),h=l.substring(a.column,a.column+1);if(")"==h){var c=n.$findOpeningBracket(")",{column:a.column+1,row:a.row});if(null!==c&&f.isAutoInsertedClosing(a,l,s))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,i,n,s){var o=n.doc.getTextRange(s);if(!s.isMultiLine()&&"("==o){d(i);var r=n.doc.getLine(s.start.row),a=r.substring(s.start.column+1,s.start.column+2);if(")"==a)return s.end.column++,s}}),this.add("brackets","insertion",function(e,t,i,n,s){if("["==s){d(i);var o=i.getSelectionRange(),r=n.doc.getTextRange(o);if(""!==r&&i.getWrapBehavioursEnabled())return g(o,r,"[","]");if(f.isSaneInsertion(i,n))return f.recordAutoInsert(i,n,"]"),{text:"[]",selection:[1,1]}}else if("]"==s){d(i);var a=i.getCursorPosition(),l=n.doc.getLine(a.row),h=l.substring(a.column,a.column+1);if("]"==h){var c=n.$findOpeningBracket("]",{column:a.column+1,row:a.row});if(null!==c&&f.isAutoInsertedClosing(a,l,s))return f.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,i,n,s){var o=n.doc.getTextRange(s);if(!s.isMultiLine()&&"["==o){d(i);var r=n.doc.getLine(s.start.row),a=r.substring(s.start.column+1,s.start.column+2);if("]"==a)return s.end.column++,s}}),this.add("string_dquotes","insertion",function(e,t,i,n,s){var o=n.$mode.$quotes||u;if(1==s.length&&o[s]){if(this.lineCommentStart&&this.lineCommentStart.indexOf(s)!=-1)return;d(i);var r=s,a=i.getSelectionRange(),l=n.doc.getTextRange(a);if(!(""===l||1==l.length&&o[l])&&i.getWrapBehavioursEnabled())return g(a,l,r,r);if(!l){var h=i.getCursorPosition(),c=n.doc.getLine(h.row),f=c.substring(h.column-1,h.column),m=c.substring(h.column,h.column+1),p=n.getTokenAt(h.row,h.column),A=n.getTokenAt(h.row,h.column+1);if("\\"==f&&p&&/escape/.test(p.type))return null;var C,v=p&&/string|escape/.test(p.type),F=!A||/string|escape/.test(A.type);if(m==r)C=v!==F,C&&/string\.end/.test(A.type)&&(C=!1);else{if(v&&!F)return null;if(v&&F)return null;var w=n.$mode.tokenRe;w.lastIndex=0;var E=w.test(f);w.lastIndex=0;var b=w.test(f);if(E||b)return null;if(m&&!/[\s;,.})\]\\]/.test(m))return null;C=!0}return{text:C?r+r:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,i,n,s){var o=n.doc.getTextRange(s);if(!s.isMultiLine()&&('"'==o||"'"==o)){d(i);var r=n.doc.getLine(s.start.row),a=r.substring(s.start.column+1,s.start.column+2);if(a==o)return s.end.column++,s}})};f.isSaneInsertion=function(e,t){var i=e.getCursorPosition(),n=new r(t,i.row,i.column);if(!this.$matchTokenType(n.getCurrentToken()||"text",l)){var s=new r(t,i.row,i.column+1);if(!this.$matchTokenType(s.getCurrentToken()||"text",l))return!1}return n.stepForward(),n.getCurrentTokenRow()!==i.row||this.$matchTokenType(n.getCurrentToken()||"text",h)},f.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},f.recordAutoInsert=function(e,t,i){var s=e.getCursorPosition(),o=t.doc.getLine(s.row);this.isAutoInsertedClosing(s,o,n.autoInsertedLineEnd[0])||(n.autoInsertedBrackets=0),n.autoInsertedRow=s.row,n.autoInsertedLineEnd=i+o.substr(s.column),n.autoInsertedBrackets++},f.recordMaybeInsert=function(e,t,i){var s=e.getCursorPosition(),o=t.doc.getLine(s.row);this.isMaybeInsertedClosing(s,o)||(n.maybeInsertedBrackets=0),n.maybeInsertedRow=s.row,n.maybeInsertedLineStart=o.substr(0,s.column)+i,n.maybeInsertedLineEnd=o.substr(s.column),n.maybeInsertedBrackets++},f.isAutoInsertedClosing=function(e,t,i){return n.autoInsertedBrackets>0&&e.row===n.autoInsertedRow&&i===n.autoInsertedLineEnd[0]&&t.substr(e.column)===n.autoInsertedLineEnd},f.isMaybeInsertedClosing=function(e,t){return n.maybeInsertedBrackets>0&&e.row===n.maybeInsertedRow&&t.substr(e.column)===n.maybeInsertedLineEnd&&t.substr(0,e.column)==n.maybeInsertedLineStart},f.popAutoInsertedClosing=function(){n.autoInsertedLineEnd=n.autoInsertedLineEnd.substr(1),n.autoInsertedBrackets--},f.clearMaybeInsertedClosing=function(){n&&(n.maybeInsertedBrackets=0,n.maybeInsertedRow=-1)},s.inherits(f,o),t.CstyleBehaviour=f}),define("ace/unicode",["require","exports","module"],function(e,t,i){"use strict";function n(e){var i=/\w{4}/g;for(var n in e)t.packages[n]=e[n].replace(i,"\\u$&")}t.packages={},n({L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F",Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF", -Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"})}),define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(e,t,i){"use strict";var n=e("../tokenizer").Tokenizer,s=e("./text_highlight_rules").TextHighlightRules,o=e("./behaviour/cstyle").CstyleBehaviour,r=e("../unicode"),a=e("../lib/lang"),l=e("../token_iterator").TokenIterator,h=e("../range").Range,c=function(){this.HighlightRules=s};(function(){this.$defaultBehaviour=new o,this.tokenRe=new RegExp("^["+r.packages.L+r.packages.Mn+r.packages.Mc+r.packages.Nd+r.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+r.packages.L+r.packages.Mn+r.packages.Mc+r.packages.Nd+r.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new n(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(e,t,i,n){function s(e){for(var t=i;t<=n;t++)e(o.getLine(t),t)}var o=t.doc,r=!0,l=!0,h=1/0,c=t.getTabSize(),u=!1;if(this.lineCommentStart){if(Array.isArray(this.lineCommentStart))var d=this.lineCommentStart.map(a.escapeRegExp).join("|"),g=this.lineCommentStart[0];else var d=a.escapeRegExp(this.lineCommentStart),g=this.lineCommentStart;d=new RegExp("^(\\s*)(?:"+d+") ?"),u=t.getUseSoftTabs();var f=function(e,t){var i=e.match(d);if(i){var n=i[1].length,s=i[0].length;C(e,n,s)||" "!=i[0][s-1]||s--,o.removeInLine(t,n,s)}},m=g+" ",p=function(e,t){r&&!/\S/.test(e)||(C(e,h,h)?o.insertInLine({row:t,column:h},m):o.insertInLine({row:t,column:h},g))},A=function(e,t){return d.test(e)},C=function(e,t,i){for(var n=0;t--&&" "==e.charAt(t);)n++;if(n%c!=0)return!1;for(var n=0;" "==e.charAt(i++);)n++;return c>2?n%c!=c-1:n%c==0}}else{if(!this.blockComment)return!1;var g=this.blockComment.start,v=this.blockComment.end,d=new RegExp("^(\\s*)(?:"+a.escapeRegExp(g)+")"),F=new RegExp("(?:"+a.escapeRegExp(v)+")\\s*$"),p=function(e,t){A(e,t)||r&&!/\S/.test(e)||(o.insertInLine({row:t,column:e.length},v),o.insertInLine({row:t,column:h},g))},f=function(e,t){var i;(i=e.match(F))&&o.removeInLine(t,e.length-i[0].length,e.length),(i=e.match(d))&&o.removeInLine(t,i[1].length,i[0].length)},A=function(e,i){if(d.test(e))return!0;for(var n=t.getTokens(i),s=0;se.length&&(w=e.length)}),h==1/0&&(h=w,r=!1,l=!1),u&&h%c!=0&&(h=Math.floor(h/c)*c),s(l?f:p)},this.toggleBlockComment=function(e,t,i,n){var s=this.blockComment;if(s){!s.start&&s[0]&&(s=s[0]);var o,r,a=new l(t,n.row,n.column),c=a.getCurrentToken(),u=(t.selection,t.selection.toOrientedRange());if(c&&/comment/.test(c.type)){for(var d,g;c&&/comment/.test(c.type);){var f=c.value.indexOf(s.start);if(f!=-1){var m=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn()+f;d=new h(m,p,m,p+s.start.length);break}c=a.stepBackward()}for(var a=new l(t,n.row,n.column),c=a.getCurrentToken();c&&/comment/.test(c.type);){var f=c.value.indexOf(s.end);if(f!=-1){var m=a.getCurrentTokenRow(),p=a.getCurrentTokenColumn()+f;g=new h(m,p,m,p+s.end.length);break}c=a.stepForward()}g&&t.remove(g),d&&(t.remove(d),o=d.start.row,r=-s.start.length)}else r=s.start.length,o=i.start.row,t.insert(i.end,s.end),t.insert(i.start,s.start);u.start.row==o&&(u.start.column+=r),u.end.row==o&&(u.end.column+=r),t.selection.fromOrientedRange(u)}},this.getNextLineIndent=function(e,t,i){return this.$getIndent(t)},this.checkOutdent=function(e,t,i){return!1},this.autoOutdent=function(e,t,i){},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]);for(var i=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"],t=0;tthis.row)){var i=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(i.row,i.column,!0)}},this.setPosition=function(e,t,i){var n;if(n=i?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=n.row||this.column!=n.column){var s={row:this.row,column:this.column};this.row=n.row,this.column=n.column,this._signal("change",{old:s,value:n})}},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 i={};return e>=this.document.getLength()?(i.row=Math.max(0,this.document.getLength()-1),i.column=this.document.getLine(i.row).length):e<0?(i.row=0,i.column=0):(i.row=e,i.column=Math.min(this.document.getLine(i.row).length,Math.max(0,t))),t<0&&(i.column=0),i}}).call(o.prototype)}),define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,i){"use strict";var n=e("./lib/oop"),s=e("./apply_delta").applyDelta,o=e("./lib/event_emitter").EventEmitter,r=e("./range").Range,a=e("./anchor").Anchor,l=function(e){this.$lines=[""],0===e.length?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){n.implement(this,o),this.setValue=function(e){var t=this.getLength()-1;this.remove(new r(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 a(this,e,t)},0==="aaa".split(/a/).length?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){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return"\r\n"==e||"\r"==e||"\n"==e},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 i=t.length-1;e.end.row-e.start.row==i&&(t[i]=t[i].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return this.insertFullLines(e,t)},this.removeLines=function(e,t){return this.removeFullLines(e,t)},this.insertNewLine=function(e){return 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 i=this.clippedPos(e.row,e.column),n=this.pos(e.row,e.column+t.length);return this.applyDelta({start:i,end:n,action:"insert",lines:[t]},!0),this.clonePos(n)},this.clippedPos=function(e,t){var i=this.getLength();void 0===e?e=i:e<0?e=0:e>=i&&(e=i-1,t=void 0);var n=this.getLine(e);return void 0==t&&(t=n.length),t=Math.min(Math.max(t,0),n.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 i=0;e0,n=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){if(e instanceof r||(e=r.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var i;return i=t?this.insert(e.start,t):e.start},this.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var i="insert"==e.action;(i?e.lines.length<=1&&!e.lines[0]:!r.comparePoints(e.start,e.end))||(i&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),s(this.$lines,e,t),this._signal("change",e))},this.$splitAndapplyLargeDelta=function(e,t){for(var i=e.lines,n=i.length,s=e.start.row,o=e.start.column,r=0,a=0;;){r=a,a+=t-1;var l=i.slice(r,a);if(a>n){e.lines=l,e.start.row=s+r,e.start.column=o;break}l.push(""),this.applyDelta({start:this.pos(s+r,o),end:this.pos(s+a,o=0),action:e.action,lines:l},!0)}},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:"insert"==e.action?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,t){for(var i=this.$lines||this.getAllLines(),n=this.getNewLineCharacter().length,s=t||0,o=i.length;s20){i.running=setTimeout(i.$worker,20);break}}i.currentLine=t,n==-1&&(n=t),o<=n&&i.fireUpdateEvent(o,n)}}};(function(){n.implement(this,s),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 i={first:e,last:t};this._signal("update",{data:i})},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,i=e.end.row-t;if(0===i)this.lines[t]=null;else if("remove"==e.action)this.lines.splice(t,i+1,null),this.states.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.lines.splice.apply(this.lines,n),this.states.splice.apply(this.states,n)}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),i=this.states[e-1],n=this.tokenizer.getLineTokens(t,i,e);return this.states[e]+""!=n.state+""?(this.states[e]=n.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=n.tokens}}).call(o.prototype),t.BackgroundTokenizer=o}),define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,i){"use strict";var n=e("./lib/lang"),s=(e("./lib/oop"),e("./range").Range),o=function(e,t,i){this.setRegexp(e),this.clazz=t,this.type=i||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){this.regExp+""!=e+""&&(this.regExp=e,this.cache=[])},this.update=function(e,t,i,o){if(this.regExp)for(var r=o.firstRow,a=o.lastRow,l=r;l<=a;l++){var h=this.cache[l];null==h&&(h=n.getMatchOffsets(i.getLine(l),this.regExp),h.length>this.MAX_RANGES&&(h=h.slice(0,this.MAX_RANGES)),h=h.map(function(e){return new s(l,e.offset,l,e.offset+e.length)}),this.cache[l]=h.length?h:"");for(var c=h.length;c--;)t.drawSingleLineMarker(e,h[c].toScreenRange(i),this.clazz,o)}}}).call(o.prototype),t.SearchHighlight=o}),define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t,i){"use strict";function n(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var i=t[t.length-1];this.range=new s(t[0].start.row,t[0].start.column,i.end.row,i.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}var s=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,i){var n,s,o,r=0,a=this.folds,l=!0;null==t&&(t=this.end.row,i=this.end.column);for(var h=0;h0)){var l=s(e,r.start);return 0===a?t&&0!==l?-o-2:o:l>0||0===l&&!t?o:-o-1}}return-o-1},this.add=function(e){var t=!e.isEmpty(),i=this.pointIndex(e.start,t);i<0&&(i=-i-1);var n=this.pointIndex(e.end,t,i);return n<0?n=-n-1:n++,this.ranges.splice(i,n-i,e)},this.addList=function(e){for(var t=[],i=e.length;i--;)t.push.apply(t,this.add(e[i]));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 s(e.start,t.start)});for(var i,n=t[0],o=1;o=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 i=this.ranges;if(i[0].start.row>t||i[i.length-1].start.rown)break;if(c.start.row==n&&c.start.column>=t.column&&(c.start.column==t.column&&this.$insertRight||(c.start.column+=r,c.start.row+=o)),c.end.row==n&&c.end.column>=t.column){if(c.end.column==t.column&&this.$insertRight)continue;c.end.column==t.column&&r>0&&lc.start.column&&c.end.column==a[l+1].start.column&&(c.end.column-=r),c.end.column+=r,c.end.row+=o}}}if(0!=o&&l=e)return s;if(s.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var i=this.$foldData,n=0;for(t&&(n=i.indexOf(t)),n==-1&&(n=0),n;n=e)return s}return null},this.getFoldedRowCount=function(e,t){for(var i=this.$foldData,n=t-e+1,s=0;s=t){a=e?n-=t-a:n=0);break}r>=e&&(n-=a>=e?r-a:r-e+1)}return n},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 i,n=this.$foldData,s=!1;e instanceof r?i=e:(i=new r(t,e),i.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(i.range);var a=i.start.row,l=i.start.column,h=i.end.row,c=i.end.column;if(!(a0&&(this.removeFolds(g),g.forEach(function(e){i.addSubFold(e)}));for(var f=0;f0&&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 i,n;if(null==e?(i=new s(0,0,this.getLength(),0),t=!0):i="number"==typeof e?new s(e,0,e,this.getLine(e).length):"row"in e?s.fromPoints(e,e):e,n=this.getFoldsInRangeList(i),t)this.removeFolds(n);else for(var o=n;o.length;)this.expandFolds(o),o=this.getFoldsInRangeList(i);if(n.length)return n},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var i=this.getFoldLine(e,t);return i?i.end.row:e},this.getRowFoldStart=function(e,t){var i=this.getFoldLine(e,t);return i?i.start.row:e},this.getFoldDisplayLine=function(e,t,i,n,s){null==n&&(n=e.start.row),null==s&&(s=0),null==t&&(t=e.end.row),null==i&&(i=this.getLine(t).length);var o=this.doc,r="";return e.walk(function(e,t,i,a){if(!(tc)break;while(o&&l.test(o.type));o=n.stepBackward()}else o=n.getCurrentToken();return h.end.row=n.getCurrentTokenRow(),h.end.column=n.getCurrentTokenColumn()+o.value.length-2,h}},this.foldAll=function(e,t,i){void 0==i&&(i=1e5);var n=this.foldWidgets;if(n){t=t||this.getLength(),e=e||0;for(var s=e;s=e){s=o.end.row;try{var r=this.addFold("...",o);r&&(r.collapseChildren=i)}catch(a){}}}}},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){this.$foldStyle=e,"manual"==e&&this.unfold();var t=this.$foldMode;this.$setFolding(null),this.$setFolding(t)}},this.$setFolding=function(e){if(this.$foldMode!=e){if(this.$foldMode=e,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation"),!e||"manual"==this.$foldStyle)return void(this.foldWidgets=null);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 i=this.foldWidgets;if(!i||t&&i[e])return{};for(var n,s=e-1;s>=0;){var o=i[s];if(null==o&&(o=i[s]=this.getFoldWidget(s)),"start"==o){var r=this.getFoldWidgetRange(s);if(n||(n=r),r&&r.end.row>=e)break}s--}return{range:s!==-1&&r,firstRange:n}},this.onFoldWidgetClick=function(e,t){t=t.domEvent;var i={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey},n=this.$toggleFoldWidget(e,i);if(!n){var s=t.target||t.srcElement;s&&/ace_fold-widget/.test(s.className)&&(s.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(this.getFoldWidget){var i=this.getFoldWidget(e),n=this.getLine(e),s="end"===i?-1:1,o=this.getFoldAt(e,s===-1?0:n.length,s);if(o)return t.children||t.all?this.removeFold(o):this.expandFold(o),o;var r=this.getFoldWidgetRange(e,!0);if(r&&!r.isMultiLine()&&(o=this.getFoldAt(r.start.row,r.start.column,1),o&&r.isEqual(o.range)))return this.removeFold(o),o;if(t.siblings){var a=this.getParentFoldRangeData(e);if(a.range)var l=a.range.start.row+1,h=a.range.end.row;this.foldAll(l,h,t.all?1e4:0)}else t.children?(h=r?r.end.row:this.getLength(),this.foldAll(e+1,h,t.all?1e4:0)):r&&(t.all&&(r.collapseChildren=1e4),this.addFold("...",r));return r}},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var i=this.$toggleFoldWidget(t,{});if(!i){var n=this.getParentFoldRangeData(t,!0);if(i=n.range||n.firstRange){t=i.start.row;var s=this.getFoldAt(t,this.getLine(t).length,1);s?this.removeFold(s):this.addFold("...",i)}}},this.updateFoldWidgets=function(e){var t=e.start.row,i=e.end.row-t;if(0===i)this.foldWidgets[t]=null;else if("remove"==e.action)this.foldWidgets.splice(t,i+1,null);else{var n=Array(i+1);n.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,n)}},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 s=e("../range").Range,o=e("./fold_line").FoldLine,r=e("./fold").Fold,a=e("../token_iterator").TokenIterator;t.Folding=n}),define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,i){"use strict";function n(){this.findMatchingBracket=function(e,t){if(0==e.column)return null;var i=t||this.getLine(e.row).charAt(e.column-1);if(""==i)return null;var n=i.match(/([\(\[\{])|([\)\]\}])/);return n?n[1]?this.$findClosingBracket(n[1],e):this.$findOpeningBracket(n[2],e):null},this.getBracketRange=function(e){var t,i=this.getLine(e.row),n=!0,s=i.charAt(e.column-1),r=s&&s.match(/([\(\[\{])|([\)\]\}])/);if(r||(s=i.charAt(e.column),e={row:e.row,column:e.column+1},r=s&&s.match(/([\(\[\{])|([\)\]\}])/),n=!1),!r)return null;if(r[1]){var a=this.$findClosingBracket(r[1],e);if(!a)return null;t=o.fromPoints(e,a),n||(t.end.column++,t.start.column--),t.cursor=t.end}else{var a=this.$findOpeningBracket(r[2],e);if(!a)return null;t=o.fromPoints(a,e),n||(t.start.column++,t.end.column--),t.cursor=t.start}return t},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(e,t,i){var n=this.$brackets[e],o=1,r=new s(this,t.row,t.column),a=r.getCurrentToken();if(a||(a=r.stepForward()),a){i||(i=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));for(var l=t.column-r.getCurrentTokenColumn()-2,h=a.value;;){for(;l>=0;){var c=h.charAt(l);if(c==n){if(o-=1,0==o)return{row:r.getCurrentTokenRow(),column:l+r.getCurrentTokenColumn()}}else c==e&&(o+=1);l-=1}do a=r.stepBackward();while(a&&!i.test(a.type));if(null==a)break;h=a.value,l=h.length-1}return null}},this.$findClosingBracket=function(e,t,i){var n=this.$brackets[e],o=1,r=new s(this,t.row,t.column),a=r.getCurrentToken();if(a||(a=r.stepForward()),a){i||(i=new RegExp("(\\.?"+a.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));for(var l=t.column-r.getCurrentTokenColumn();;){for(var h=a.value,c=h.length;l=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)}n.implement(this,a),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)return this.$docRowCache=[],void(this.$screenRowCache=[]);var t=this.$docRowCache.length,i=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>i&&(this.$docRowCache.splice(i,t),this.$screenRowCache.splice(i,t))},this.$getRowCacheIndex=function(e,t){for(var i=0,n=e.length-1;i<=n;){var s=i+n>>1,o=e[s];if(t>o)i=s+1;else{if(!(t=t));o++);return(i=n[o])?(i.index=o,i.start=s-i.value.length,i):null},this.setUndoManager=function(e){if(this.$undoManager=e,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel(),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=s.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()?s.stringRepeat(" ",this.getTabSize()):"\t"},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.setNavigateWithinSoftTabs=function(e){this.setOption("navigateWithinSoftTabs",e)},this.getNavigateWithinSoftTabs=function(){return this.$navigateWithinSoftTabs},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&&(n=!!i.charAt(t-1).match(this.tokenRe)),n||(n=!!i.charAt(t).match(this.tokenRe)),n)var s=this.tokenRe;else if(/^\s+$/.test(i.slice(t-1,t+1)))var s=/\s/;else var s=this.nonTokenRe;var o=t;if(o>0){do o--;while(o>=0&&i.charAt(o).match(s));o++}for(var r=t;re&&(e=t.screenWidth)}),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){if(this.$modified=!1,this.$useWrapMode)return this.screenWidth=this.$wrapLimit;for(var t=this.doc.getAllLines(),i=this.$rowLengthCache,n=0,s=0,o=this.$foldData[s],r=o?o.start.row:1/0,a=t.length,l=0;lr){if(l=o.end.row+1,l>=a)break;o=this.$foldData[s++],r=o?o.start.row:1/0}null==i[l]&&(i[l]=this.$getStringScreenWidth(t[l])[0]),i[l]>n&&(n=i[l])}this.screenWidth=n}},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){this.$fromUndo=!0;for(var i=null,n=e.length-1;n!=-1;n--){var s=e[n];"doc"==s.group?(this.doc.revertDeltas(s.deltas),i=this.$getUndoSelection(s.deltas,!0,i)):s.deltas.forEach(function(e){this.addFolds(e.folds)},this)}return this.$fromUndo=!1,i&&this.$undoSelect&&!t&&this.selection.setSelectionRange(i),i}},this.redoChanges=function(e,t){if(e.length){this.$fromUndo=!0;for(var i=null,n=0;ne.end.column&&(o.start.column+=a),o.end.row==e.end.row&&o.end.column>e.end.column&&(o.end.column+=a)),r&&o.start.row>=e.end.row&&(o.start.row+=r,o.end.row+=r)}if(o.end=this.insert(o.start,n),s.length){var l=e.start,h=o.start,r=h.row-l.row,a=h.column-l.column;this.addFolds(s.map(function(e){return e=e.clone(),e.start.row==l.row&&(e.start.column+=a),e.end.row==l.row&&(e.end.column+=a),e.start.row+=r,e.end.row+=r,e}))}return o},this.indentRows=function(e,t,i){i=i.replace(/\t/g,this.getTabString());for(var n=e;n<=t;n++)this.doc.insertInLine({row:n,column:0},i)},this.outdentRows=function(e){for(var t=e.collapseRows(),i=new c(0,0,0,0),n=this.getTabSize(),s=t.start.row;s<=t.end.row;++s){var o=this.getLine(s);i.start.row=s,i.end.row=s;for(var r=0;r0){var n=this.getRowFoldEnd(t+i);if(n>this.doc.getLength()-1)return 0;var s=n-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var s=t-e+1}var o=new c(e,0,t,Number.MAX_VALUE),r=this.getFoldsInRange(o).map(function(e){return e=e.clone(),e.start.row+=s,e.end.row+=s,e}),a=0==i?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+s,a),r.length&&this.addFolds(r),s},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){if(t=Math.max(0,t),e<0)e=0,t=0;else{var i=this.doc.getLength();e>=i?(e=i-1,t=this.doc.getLine(i-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){if(this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0),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){this.$wrapLimitRange.min===e&&this.$wrapLimitRange.max===t||(this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$bidiHandler.markAsDirty(),this.$useWrapMode&&this._signal("changeWrapMode"))},this.adjustWrapLimit=function(e,t){var i=this.$wrapLimitRange;i.max<0&&(i={min:t,max:t});var n=this.$constrainWrapLimit(e,i.min,i.max);return n!=this.$wrapLimit&&n>1&&(this.$wrapLimit=n,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0)},this.$constrainWrapLimit=function(e,t,i){return t&&(e=Math.max(t,e)),i&&(e=Math.min(i,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,i=e.action,n=e.start,s=e.end,o=n.row,r=s.row,a=r-o,l=null;if(this.$updating=!0,0!=a)if("remove"===i){this[t?"$wrapData":"$rowLengthCache"].splice(o,a);var h=this.$foldData;l=this.getFoldsInRange(e),this.removeFolds(l);var c=this.getFoldLine(s.row),u=0;if(c){c.addRemoveChars(s.row,s.column,n.column-s.column),c.shiftRow(-a);var d=this.getFoldLine(o);d&&d!==c&&(d.merge(c),c=d),u=h.indexOf(c)+1}for(u;u=s.row&&c.shiftRow(-a)}r=o}else{var g=Array(a);g.unshift(o,0);var f=t?this.$wrapData:this.$rowLengthCache;f.splice.apply(f,g);var h=this.$foldData,c=this.getFoldLine(o),u=0;if(c){var m=c.range.compareInside(n.row,n.column);0==m?(c=c.split(n.row,n.column),c&&(c.shiftRow(a),c.addRemoveChars(r,0,s.column-n.column))):m==-1&&(c.addRemoveChars(o,0,s.column-n.column),c.shiftRow(a)),u=h.indexOf(c)+1}for(u;u=o&&c.shiftRow(a)}}else{a=Math.abs(e.start.column-e.end.column),"remove"===i&&(l=this.getFoldsInRange(e),this.removeFolds(l),a=-a);var c=this.getFoldLine(o);c&&c.addRemoveChars(o,n.column,a)}return t&&this.$wrapData.length!=this.doc.getLength(),this.$updating=!1,t?this.$updateWrapData(o,r):this.$updateRowLengthCache(o,r),l},this.$updateRowLengthCache=function(e,t,i){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,t){var i,n,s=this.doc.getAllLines(),r=this.getTabSize(),a=this.$wrapData,h=this.$wrapLimit,c=e;for(t=Math.min(t,s.length-1);c<=t;)n=this.getFoldLine(c,n),n?(i=[],n.walk(function(e,t,n,r){var a;if(null!=e){a=this.$getDisplayTokens(e,i.length),a[0]=o;for(var h=1;ht-v;){var F=c+t-v;if(e[F-1]>=f&&e[F]>=f)r(F);else if(e[F]!=o&&e[F]!=l){for(var w=Math.max(F-(t-(t>>2)),c-1);F>w&&e[F]w&&e[F]w&&e[F]==u;)F--}else for(;F>w&&e[F]w?r(++F):(F=c+t,e[F]==i&&F--,r(F-v))}else{for(F;F!=c-1&&e[F]!=o;F--);if(F>c){r(F);continue}for(F=c+t;F39&&l<48||l>57&&l<64?r.push(u):l>=4352&&e(l)?r.push(t,i):r.push(t)}return r},this.$getStringScreenWidth=function(t,i,n){if(0==i)return[0,0];null==i&&(i=1/0),n=n||0;var s,o;for(o=0;o=4352&&e(s)?2:1,!(n>i));o++);return[n,o]},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]?this.$wrapData[e].length+1+t:1+t},this.getRowLineCount=function(e){return this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1:1},this.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),i=this.$wrapData[t.row];return i.length&&i[0]=0)var a=h[c],o=this.$docRowCache[c],d=e>h[u-1];else var d=!u;for(var g=this.getLength()-1,f=this.getNextFoldLine(o),m=f?f.start.row:1/0;a<=e&&(l=this.getRowLength(o),!(a+l>e||o>=g));)a+=l,o++,o>m&&(o=f.end.row+1,f=this.getNextFoldLine(o,f),m=f?f.start.row:1/0),d&&(this.$docRowCache.push(o),this.$screenRowCache.push(a));if(f&&f.start.row<=o)n=this.getFoldDisplayLine(f),o=f.start.row;else{if(a+l<=e||o>g)return{row:g,column:this.getLine(g).length};n=this.getLine(o),f=null}var p=0,A=Math.floor(e-a);if(this.$useWrapMode){var C=this.$wrapData[o];C&&(s=C[A],A>0&&C.length&&(p=C.indent,r=C[A-1]||C[C.length-1],n=n.substring(r)))}return void 0!==i&&this.$bidiHandler.isBidiRow(a+A,o,A)&&(t=this.$bidiHandler.offsetToCol(i)),r+=this.$getStringScreenWidth(n,t-p)[1],this.$useWrapMode&&r>=s&&(r=s-1),f?f.idxToPosition(r):{row:o,column:r}},this.documentToScreenPosition=function(e,t){if("undefined"==typeof t)var i=this.$clipPositionToDocument(e.row,e.column);else i=this.$clipPositionToDocument(e,t);e=i.row,t=i.column;var n=0,s=null,o=null;o=this.getFoldAt(e,t,1),o&&(e=o.start.row,t=o.start.column);var r,a=0,l=this.$docRowCache,h=this.$getRowCacheIndex(l,e),c=l.length;if(c&&h>=0)var a=l[h],n=this.$screenRowCache[h],u=e>l[c-1];else var u=!c;for(var d=this.getNextFoldLine(a),g=d?d.start.row:1/0;a=g){if(r=d.end.row+1,r>e)break;d=this.getNextFoldLine(r,d),g=d?d.start.row:1/0}else r=a+1;n+=this.getRowLength(a),a=r,u&&(this.$docRowCache.push(a), -this.$screenRowCache.push(n))}var f="";d&&a>=g?(f=this.getFoldDisplayLine(d,e,t),s=d.start.row):(f=this.getLine(e).substring(0,t),s=e);var m=0;if(this.$useWrapMode){var p=this.$wrapData[s];if(p){for(var A=0;f.length>=p[A];)n++,A++;f=f.substring(p[A-1]||0,f.length),m=A>0?p.indent:0}}return{row:n,column:m+this.$getStringScreenWidth(f)[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)for(var i=this.$wrapData.length,n=0,s=0,t=this.$foldData[s++],o=t?t.start.row:1/0;no&&(n=t.end.row+1,t=this.$foldData[s++],o=t?t.start.row:1/0)}else{e=this.getLength();for(var a=this.$foldData,s=0;si));o++);return[n,o]})},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()},this.isFullWidth=e}.call(f.prototype),e("./edit_session/folding").Folding.call(f.prototype),e("./edit_session/bracket_match").BracketMatch.call(f.prototype),r.defineOptions(f.prototype,"session",{wrap:{set:function(e){if(e&&"off"!=e?"free"==e?e=!0:"printMargin"==e?e=-1:"string"==typeof e&&(e=parseInt(e,10)||!1):e=!1,this.$wrap!=e)if(this.$wrap=e,e){var t="number"==typeof e?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}else this.setUseWrapMode(!1)},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){e="auto"==e?"text"!=this.$mode.type:"text"!=e,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){isNaN(e)||this.$tabSize===e||(this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize"))},initialValue:4,handlesSet:!0},navigateWithinSoftTabs:{initialValue:!1},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=f}),define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,i){"use strict";function n(e,t){function i(e){return/\w/.test(e)||t.regExp?"\\b":""}return i(e[0])+e+i(e[e.length-1])}var s=e("./lib/lang"),o=e("./lib/oop"),r=e("./range").Range,a=function(){this.$options={}};(function(){this.set=function(e){return o.mixin(this.$options,e),this},this.getOptions=function(){return s.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,i=this.$matchIterator(e,t);if(!i)return!1;var n=null;return i.forEach(function(e,i,s,o){return n=new r(e,i,s,o),!(i==o&&t.start&&t.start.start&&0!=t.skipCurrent&&n.isEqual(t.start))||(n=null,!1)}),n},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var i=t.range,n=i?e.getLines(i.start.row,i.end.row):e.doc.getAllLines(),o=[],a=t.re;if(t.$isMultiLine){var l,h=a.length,c=n.length-h;e:for(var u=a.offset||0;u<=c;u++){for(var d=0;dm||(o.push(l=new r(u,m,u+h-1,p)),h>2&&(u=u+h-2))}}else for(var A=0;Aw&&o[d].end.row==i.end.row;)d--;for(o=o.slice(A,d+1),A=0,d=o.length;A=a;i--)if(u(i,Number.MAX_VALUE,e))return;if(0!=t.wrap)for(i=l,a=r.row;i>=a;i--)if(u(i,Number.MAX_VALUE,e))return}};else var h=function(e){var i=r.row;if(!u(i,r.column,e)){for(i+=1;i<=l;i++)if(u(i,0,e))return;if(0!=t.wrap)for(i=a,l=r.row;i<=l;i++)if(u(i,0,e))return}};if(t.$isMultiLine)var c=i.length,u=function(t,s,o){var r=n?t-c+1:t;if(!(r<0)){var a=e.getLine(r),l=a.search(i[0]);if(!(!n&&ls))return!!o(r,l,r+c-1,u)||void 0}}};else if(n)var u=function(t,n,s){var o,r=e.getLine(t),a=[],l=0;for(i.lastIndex=0;o=i.exec(r);){var h=o[0].length;if(l=o.index,!h){if(l>=r.length)break;i.lastIndex=l+=1}if(o.index+h>n)break;a.push(o.index,h)}for(var c=a.length-1;c>=0;c-=2){var u=a[c-1],h=a[c];if(s(t,u,t,u+h))return!0}};else var u=function(t,n,s){var o,r=e.getLine(t),a=n;for(i.lastIndex=n;o=i.exec(r);){var l=o[0].length;if(a=o.index,s(t,a,t,a+l))return!0;if(!l&&(i.lastIndex=a+=1,a>=r.length))return!1}};return{forEach:h}}}).call(a.prototype),t.Search=a}),define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,i){"use strict";function n(e,t){this.platform=t||(r.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function s(e,t){n.call(this,e,t),this.$singleCommand=!1}var o=e("../lib/keys"),r=e("../lib/useragent"),a=o.KEY_MODS;s.prototype=n.prototype,function(){function e(e){return"object"==typeof e&&e.bindKey&&e.bindKey.position||(e.isDefault?-100: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 i=e&&("string"==typeof e?e:e.name);e=this.commands[i],t||delete this.commands[i];var n=this.commandKeyBinding;for(var s in n){var o=n[s];if(o==e)delete n[s];else if(Array.isArray(o)){var r=o.indexOf(e);r!=-1&&(o.splice(r,1),1==o.length&&(n[s]=o[0]))}}},this.bindKey=function(e,t,i){if("object"==typeof e&&e&&(void 0==i&&(i=e.position),e=e[this.platform]),e)return"function"==typeof t?this.addCommand({exec:t,bindKey:e,name:t.name||e}):void e.split("|").forEach(function(e){var n="";if(e.indexOf(" ")!=-1){var s=e.split(/\s+/);e=s.pop(),s.forEach(function(e){var t=this.parseKeys(e),i=a[t.hashId]+t.key;n+=(n?" ":"")+i,this._addCommandToBinding(n,"chainKeys")},this),n+=" "}var o=this.parseKeys(e),r=a[o.hashId]+o.key;this._addCommandToBinding(n+r,t,i)},this)},this._addCommandToBinding=function(t,i,n){var s,o=this.commandKeyBinding;if(i)if(!o[t]||this.$singleCommand)o[t]=i;else{Array.isArray(o[t])?(s=o[t].indexOf(i))!=-1&&o[t].splice(s,1):o[t]=[o[t]],"number"!=typeof n&&(n=e(i));var r=o[t];for(s=0;sn)break}r.splice(s,0,i)}else delete o[t]},this.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var i=e[t];if(i){if("string"==typeof i)return this.bindKey(i,t);"function"==typeof i&&(i={exec:i}),"object"==typeof i&&(i.name||(i.name=t),this.addCommand(i))}},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}),i=t.pop(),n=o[i];if(o.FUNCTION_KEYS[n])i=o.FUNCTION_KEYS[n].toLowerCase();else{if(!t.length)return{key:i,hashId:-1};if(1==t.length&&"shift"==t[0])return{key:i.toUpperCase(),hashId:-1}}for(var s=0,r=t.length;r--;){var a=o.KEY_MODS[t[r]];if(null==a)return"undefined"!=typeof console,!1;s|=a}return{key:i,hashId:s}},this.findKeyCommand=function(e,t){var i=a[e]+t;return this.commandKeyBinding[i]},this.handleKeyboard=function(e,t,i,n){if(!(n<0)){var s=a[t]+i,o=this.commandKeyBinding[s];return e.$keyChain&&(e.$keyChain+=" "+s,o=this.commandKeyBinding[e.$keyChain]||o),!o||"chainKeys"!=o&&"chainKeys"!=o[o.length-1]?(e.$keyChain&&(t&&4!=t||1!=i.length?(t==-1||n>0)&&(e.$keyChain=""):e.$keyChain=e.$keyChain.slice(0,-s.length-1)),{command:o}):(e.$keyChain=e.$keyChain||s,{command:"null"})}},this.getStatusText=function(e,t){return t.$keyChain||""}}.call(n.prototype),t.HashHandler=n,t.MultiHashHandler=s}),define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/oop"),s=e("../keyboard/hash_handler").MultiHashHandler,o=e("../lib/event_emitter").EventEmitter,r=function(e,t){s.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.command.exec(e.editor,e.args||{})})};n.inherits(r,s),function(){n.implement(this,o),this.exec=function(e,t,i){if(Array.isArray(e)){for(var n=e.length;n--;)if(this.exec(e[n],t,i))return!0;return!1}if("string"==typeof e&&(e=this.commands[e]),!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;if(e.isAvailable&&!e.isAvailable(t))return!1;var s={editor:t,command:e,args:i};return s.returnValue=this._emit("exec",s),this._signal("afterExec",s),s.returnValue!==!1},this.toggleRecording=function(e){if(!this.$inReplay)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){if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){"string"==typeof t?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"string"!=typeof e[0]&&(e[0]=e[0].name),e[1]||(e=e[0]),e})}}.call(r.prototype),t.CommandManager=r}),define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(e,t,i){"use strict";function n(e,t){return{win:e,mac:t}}var s=e("../lib/lang"),o=e("../config"),r=e("../range").Range;t.commands=[{name:"showSettingsMenu",bindKey:n("Ctrl-,","Command-,"),exec:function(e){o.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",bindKey:n("Alt-E","F4"),exec:function(e){o.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:n("Alt-Shift-E","Shift-F4"),exec:function(e){o.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",bindKey:n("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",bindKey:n(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:n("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:n("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:n("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:n("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:n("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",bindKey:n(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",bindKey:n("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",bindKey:n("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",bindKey:n("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",bindKey:n("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",bindKey:n("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",bindKey:n("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",bindKey:n("Ctrl-F","Command-F"),exec:function(e){o.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:n("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",bindKey:n("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",bindKey:n("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",bindKey:n("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",bindKey:n("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",bindKey:n("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",bindKey:n("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",bindKey:n("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",bindKey:n("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",bindKey:n("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",bindKey:n("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",bindKey:n("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",bindKey:n("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",bindKey:n("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",bindKey:n("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",bindKey:n("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",bindKey:n("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",bindKey:n("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",bindKey:n("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",bindKey:n("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:n(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:n("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:n(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:n("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:n("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:n("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",bindKey:n("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",bindKey:n("Ctrl-P","Ctrl-P"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",bindKey:n("Ctrl-Shift-P","Ctrl-Shift-P"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",bindKey:n("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",bindKey:n(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:n("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",bindKey:n("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",bindKey:n("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",bindKey:n("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",bindKey:n("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",bindKey:n("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:n("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",bindKey:n("Ctrl-H","Command-Option-F"),exec:function(e){o.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",bindKey:n("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",bindKey:n("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",bindKey:n("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",bindKey:n("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",bindKey:n("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",bindKey:n("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",bindKey:n("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",bindKey:n("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:n("Shift-Delete",null),exec:function(e){return!!e.selection.isEmpty()&&void e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",bindKey:n("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",bindKey:n("Alt-Delete","Ctrl-K|Command-Delete"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestarthard",bindKey:n("Ctrl-Shift-Backspace",null),exec:function(e){var t=e.selection.getRange();t.start.column=0,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineendhard",bindKey:n("Ctrl-Shift-Delete",null),exec:function(e){var t=e.selection.getRange();t.end.column=Number.MAX_VALUE,e.session.remove(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",bindKey:n("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",bindKey:n("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",bindKey:n("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",bindKey:n("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",bindKey:n("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",bindKey:n("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(s.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",bindKey:n(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",bindKey:n("Alt-Shift-X","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",bindKey:n("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",bindKey:n("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"expandtoline",bindKey:n("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:n(null,null),exec:function(e){for(var t=e.selection.isBackwards(),i=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),n=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),o=e.session.doc.getLine(i.row).length,a=e.session.doc.getTextRange(e.selection.getRange()),l=a.replace(/\n\s*/," ").length,h=e.session.doc.getLine(i.row),c=i.row+1;c<=n.row+1;c++){var u=s.stringTrimLeft(s.stringTrimRight(e.session.doc.getLine(c)));0!==u.length&&(u=" "+u),h+=u}n.row+10?(e.selection.moveCursorTo(i.row,i.column),e.selection.selectTo(i.row,i.column+l)):(o=e.session.doc.getLine(i.row).length>o?o+1:o,e.selection.moveCursorTo(i.row,o))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",bindKey:n(null,null),exec:function(e){var t=e.session.doc.getLength()-1,i=e.session.doc.getLine(t).length,n=e.selection.rangeList.ranges,s=[];n.length<1&&(n=[e.selection.getRange()]);for(var o=0;o0&&this.$blockScrolling--;var i=t&&t.scrollIntoView;if(i){switch(i){case"center-animate":i="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var n=this.selection.getRange(),s=this.renderer.layerConfig;(n.start.row>=s.lastRow||n.end.row<=s.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead)}"animate"==i&&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){var t=this.prevOp,i=this.$mergeableCommands,n=t.command&&e.command.name==t.command.name;if("insertstring"==e.command.name){var s=e.args;void 0===this.mergeNextCommand&&(this.mergeNextCommand=!0),n=n&&this.mergeNextCommand&&(!/\s/.test(s)||/\s/.test(t.args)),this.mergeNextCommand=!0}else n=n&&i.indexOf(e.command.name)!==-1;"always"!=this.$mergeUndoDeltas&&Date.now()-this.sequenceStartTime>2e3&&(n=!1),n?this.session.mergeUndoDeltas=!0:i.indexOf(e.command.name)!==-1&&(this.sequenceStartTime=Date.now())}},this.setKeyboardHandler=function(e,t){if(e&&"string"==typeof e){this.$keybindingId=e;var i=this;A.loadModule(["keybinding",e],function(n){i.$keybindingId==e&&i.keyBinding.setKeyboardHandler(n&&n.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){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 i=this.session.getSelection();i.off("changeCursor",this.$onCursorChange),i.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}),e&&e.bgTokenizer&&e.bgTokenizer.scheduleStart()}},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?1==t?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")||s.computedStyle(this.container,"fontSize")},this.setFontSize=function(e){this.setOption("fontSize",e)},this.$highlightBrackets=function(){if(this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null),!this.$highlightPending){var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(t&&t.bgTokenizer){var i=t.findMatchingBracket(e.getCursorPosition());if(i)var n=new g(i.row,i.column,i.row,i.column+1);else if(t.$mode.getMatching)var n=t.$mode.getMatching(e.session);n&&(t.$bracketHighlight=t.addMarker(n,"ace_bracket","text"))}},50)}},this.$highlightTags=function(){if(!this.$highlightTagPending){var e=this;this.$highlightTagPending=!0,setTimeout(function(){e.$highlightTagPending=!1;var t=e.session;if(t&&t.bgTokenizer){var i=e.getCursorPosition(),n=new C(e.session,i.row,i.column),s=n.getCurrentToken();if(!s||!/\b(?:tag-open|tag-name)/.test(s.type))return t.removeMarker(t.$tagHighlight),void(t.$tagHighlight=null);if(s.type.indexOf("tag-open")==-1||(s=n.stepForward())){var o=s.value,r=0,a=n.stepBackward();if("<"==a.value){do a=s,s=n.stepForward(),s&&s.value===o&&s.type.indexOf("tag-name")!==-1&&("<"===a.value?r++:"=0)}else{do s=a,a=n.stepBackward(),s&&s.value===o&&s.type.indexOf("tag-name")!==-1&&("<"===a.value?r++:"1||(e=!1)),t.$highlightLineMarker&&!e)t.removeMarker(t.$highlightLineMarker.id),t.$highlightLineMarker=null;else if(!t.$highlightLineMarker&&e){var i=new g(e.row,e.column,e.row,1/0);i.id=t.addMarker(i,"ace_active-line","screenLine"),t.$highlightLineMarker=i}else e&&(t.$highlightLineMarker.start.row=e.row,t.$highlightLineMarker.end.row=e.row,t.$highlightLineMarker.start.column=e.column,t._signal("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;if(t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null,this.selection.isEmpty())this.$updateHighlightActiveLine();else{var i=this.selection.getRange(),n=this.getSelectionStyle();t.$selectionMarker=t.addMarker(i,"ace_selection",n)}var s=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(s),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(!t.isEmpty()&&!t.isMultiLine()){var i=t.start.column-1,n=t.end.column+1,s=e.getLine(t.start.row),o=s.length,r=s.substring(Math.max(i,0),Math.min(n,o));if(!(i>=0&&/^[\w\d]/.test(r)||n<=o&&/[\w\d]$/.test(r))&&(r=s.substring(t.start.column,t.end.column),/^[\w\d]+$/.test(r))){var a=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:r});return a}}},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 i={text:e,event:t};this.commands.exec("paste",this,i)},this.$handlePaste=function(e){"string"==typeof e&&(e={text:e}),this._signal("paste",e);var t=e.text;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)this.insert(t);else{var i=t.split(/\r\n|\r|\n/),n=this.selection.rangeList.ranges;if(i.length>n.length||i.length<2||!i[1])return this.commands.exec("insertstring",this,t);for(var s=n.length;s--;){var o=n[s];o.isEmpty()||this.session.remove(o),this.session.insert(o.start,i[s])}}},this.execCommand=function(e,t){return this.commands.exec(e,this,t)},this.insert=function(e,t){var i=this.session,n=i.getMode(),s=this.getCursorPosition();if(this.getBehavioursEnabled()&&!t){var o=n.transformAction(i.getState(s.row),"insertion",this,i,e);o&&(e!==o.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),e=o.text)}if("\t"==e&&(e=this.session.getTabString()),this.selection.isEmpty()){if(this.session.getOverwrite()&&e.indexOf("\n")==-1){var r=new g.fromPoints(s,s);r.end.column+=e.length,this.session.remove(r)}}else{var r=this.getSelectionRange();s=this.session.remove(r),this.clearSelection()}if("\n"==e||"\r\n"==e){var a=i.getLine(s.row);if(s.column>a.search(/\S|$/)){var l=a.substr(s.column).search(/\S|$/);i.doc.removeInLine(s.row,s.column,s.column+l)}}this.clearSelection();var h=s.column,c=i.getState(s.row),a=i.getLine(s.row),u=n.checkOutdent(c,a,e);i.insert(s,e);if(o&&o.selection&&(2==o.selection.length?this.selection.setSelectionRange(new g(s.row,h+o.selection[0],s.row,h+o.selection[1])):this.selection.setSelectionRange(new g(s.row+o.selection[0],o.selection[1],s.row+o.selection[2],o.selection[3]))),i.getDocument().isNewLine(e)){var d=n.getNextLineIndent(c,a.slice(0,s.column),i.getTabString());i.insert({row:s.row+1,column:0},d)}u&&n.autoOutdent(c,i,s.row)},this.onTextInput=function(e){this.keyBinding.onTextInput(e)},this.onCommandKey=function(e,t,i){this.keyBinding.onCommandKey(e,t,i)},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()&&("left"==e?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var i=this.session,n=i.getState(t.start.row),s=i.getMode().transformAction(n,"deletion",this,i,t);if(0===t.end.column){var o=i.getTextRange(t);if("\n"==o[o.length-1]){var r=i.getLine(t.end.row);/^\s+$/.test(r)&&(t.end.column=r.length)}}s&&(t=s)}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()){var e=this.getCursorPosition(),t=e.column;if(0!==t){var i,n,s=this.session.getLine(e.row);tt.toLowerCase()?1:0});for(var s=new g(0,0,0,0),n=e.first;n<=e.last;n++){var o=t.getLine(n);s.start.row=n,s.end.row=n,s.end.column=o.length,t.replace(s,i[n-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),i=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,i,e)},this.getNumberAt=function(e,t){var i=/[\-]?[0-9]+(?:\.[0-9]+)?/g;i.lastIndex=0;for(var n=this.session.getLine(e);i.lastIndex=t){var o={value:s[0],start:s.index,end:s.index+s[0].length};return o}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,i=this.selection.getCursor().column,n=new g(t,i-1,t,i),s=this.session.getTextRange(n);if(!isNaN(parseFloat(s))&&isFinite(s)){var o=this.getNumberAt(t,i);if(o){var r=o.value.indexOf(".")>=0?o.start+o.value.indexOf(".")+1:o.end,a=o.start+o.value.length-r,l=parseFloat(o.value);l*=Math.pow(10,a),e*=r!==o.end&&ig+1)break;g=f.last}for(c--,a=this.session.$moveLines(d,g,t?0:e),t&&e==-1&&(u=c+1);u<=c;)r[u].moveBy(a,0),u++;t||(a=0),l+=a}s.fromOrientedRange(s.ranges[0]),s.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 i=this.renderer,n=this.renderer.layerConfig,s=e*Math.floor(n.height/n.lineHeight);this.$blockScrolling++,t===!0?this.selection.$moveSelection(function(){this.moveCursorBy(s,0)}):t===!1&&(this.selection.moveCursorBy(s,0),this.selection.clearSelection()),this.$blockScrolling--;var o=i.scrollTop;i.scrollBy(0,s*n.lineHeight),null!=t&&i.scrollCursorIntoView(null,.5),i.animateScrolling(o)},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,i,n){this.renderer.scrollToLine(e,t,i,n)},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 i=this.getCursorPosition(),n=new C(this.session,i.row,i.column),s=n.getCurrentToken(),o=s||n.stepForward();if(o){var r,a,l=!1,h={},c=i.column-o.start,u={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(o.value.match(/[{}()\[\]]/g)){for(;c=0;--o)this.$tryReplace(i[o],e)&&n++;return this.selection.setSelectionRange(s),this.$blockScrolling-=1,n},this.$tryReplace=function(e,t){var i=this.session.getTextRange(e);return t=this.$search.replace(i,t),null!==t?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,i){t||(t={}),"string"==typeof e||e instanceof RegExp?t.needle=e:"object"==typeof e&&n.mixin(t,e);var s=this.selection.getRange();null==t.needle&&(e=this.session.getTextRange(s)||this.$search.$options.needle,e||(s=this.session.getWordRange(s.start.row,s.start.column),e=this.session.getTextRange(s)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:s});var o=this.$search.find(this.session);return t.preventScroll?o:o?(this.revealRange(o,i),o):(t.backwards?s.start=s.end:s.end=s.start,void this.selection.setRange(s))},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 i=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),t!==!1&&this.renderer.animateScrolling(i)},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){var t,i=this,n=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var s=this.$scrollAnchor;s.style.cssText="position:absolute",this.container.insertBefore(s,this.container.firstChild);var o=this.on("changeSelection",function(){n=!0}),r=this.renderer.on("beforeRender",function(){n&&(t=i.renderer.container.getBoundingClientRect())}),a=this.renderer.on("afterRender",function(){if(n&&t&&(i.isFocused()||i.searchBox&&i.searchBox.isFocused())){var e=i.renderer,o=e.$cursorLayer.$pixelPos,r=e.layerConfig,a=o.top-r.offset;n=o.top>=0&&a+t.top<0||!(o.topwindow.innerHeight)&&null,null!=n&&(s.style.top=a+"px",s.style.left=o.left+"px",s.style.height=r.lineHeight+"px",s.scrollIntoView(n)),n=t=null}});this.setAutoScrollEditorIntoView=function(e){e||(delete this.setAutoScrollEditorIntoView,this.off("changeSelection",o),this.renderer.off("afterRender",a),this.renderer.off("beforeRender",r))}}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;t&&(t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&"wide"!=e,s.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e)))}}.call(v.prototype),A.defineOptions(v.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=v}),define("ace/undomanager",["require","exports","module"],function(e,t,i){"use strict";var n=function(){this.reset()};(function(){function e(e){return{action:e.action,start:e.start,end:e.end,lines:1==e.lines.length?null:e.lines,text:1==e.lines.length?e.lines[0]:null}}function t(e){return{action:e.action,start:e.start,end:e.end,lines:e.lines||[e.text]}}function i(e,t){for(var i=new Array(e.length),n=0;n0},this.hasRedo=function(){return this.$redoStack.length>0},this.markClean=function(){this.dirtyCounter=0},this.isClean=function(){return 0===this.dirtyCounter},this.$serializeDeltas=function(t){return i(t,e)},this.$deserializeDeltas=function(e){return i(e,t)}}).call(n.prototype),t.UndoManager=n}),define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("../lib/dom"),s=e("../lib/oop"),o=e("../lib/lang"),r=e("../lib/event_emitter").EventEmitter,a=function(e){this.element=n.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(){s.implement(this,r),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&&void 0,this.session.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){window.console&&console.warn&&void 0,this.session.removeGutterDecoration(e,t)},this.setAnnotations=function(e){this.$annotations=[];for(var t=0;tr&&(m=o.end.row+1,o=t.getNextFoldLine(m,o),r=o?o.start.row:1/0),m>s){for(;this.$cells.length>f+1;)g=this.$cells.pop(),this.element.removeChild(g.element);break}g=this.$cells[++f],g||(g={element:null,textNode:null,foldWidget:null},g.element=n.createElement("div"),g.textNode=document.createTextNode(""),g.element.appendChild(g.textNode),this.element.appendChild(g.element),this.$cells[f]=g);var p="ace_gutter-cell ";l[m]&&(p+=l[m]),h[m]&&(p+=h[m]),this.$annotations[m]&&(p+=this.$annotations[m].className),g.element.className!=p&&(g.element.className=p);var A=t.getRowLength(m)*e.lineHeight+"px";if(A!=g.element.style.height&&(g.element.style.height=A),a){var C=a[m];null==C&&(C=a[m]=t.getFoldWidget(m))}if(C){g.foldWidget||(g.foldWidget=n.createElement("span"),g.element.appendChild(g.foldWidget));var p="ace_fold-widget ace_"+C;p+="start"==C&&m==r&&mi.right-t.right?"foldWidgets":void 0}}).call(a.prototype),t.Gutter=a}),define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,i){"use strict";var n=e("../range").Range,s=e("../lib/dom"),o=function(e){this.element=s.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){function e(e,t,i,n){return(e?1:0)|(t?2:0)|(i?4:0)|(n?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){if(e){this.config=e;var t=[];for(var i in this.markers){var n=this.markers[i];if(n.range){var s=n.range.clipRows(e.firstRow,e.lastRow);if(!s.isEmpty())if(s=s.toScreenRange(this.session),n.renderer){var o=this.$getTop(s.start.row,e),r=this.$padding+(this.session.$bidiHandler.isBidiRow(s.start.row)?this.session.$bidiHandler.getPosLeft(s.start.column):s.start.column*e.characterWidth);n.renderer(t,s,r,o,e)}else"fullLine"==n.type?this.drawFullLineMarker(t,s,n.clazz,e):"screenLine"==n.type?this.drawScreenLineMarker(t,s,n.clazz,e):s.isMultiLine()?"text"==n.type?this.drawTextMarker(t,s,n.clazz,e):this.drawMultiLineMarker(t,s,n.clazz,e):this.session.$bidiHandler.isBidiRow(s.start.row)?this.drawBidiSingleLineMarker(t,s,n.clazz+" ace_start ace_br15",e):this.drawSingleLineMarker(t,s,n.clazz+" ace_start ace_br15",e)}else n.update(t,this,this.session,e)}this.element.innerHTML=t.join("")}},this.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},this.drawTextMarker=function(t,i,s,o,r){for(var a=this.session,l=i.start.row,h=i.end.row,c=l,u=0,d=0,g=a.getScreenLastRowColumn(c),f=null,m=new n(c,i.start.column,c,d);c<=h;c++)m.start.row=m.end.row=c,m.start.column=c==l?i.start.column:a.getRowWrapIndent(c),m.end.column=g,u=d,d=g,g=c+1g,c==h),this.session.$bidiHandler.isBidiRow(c)?this.drawBidiSingleLineMarker(t,m,f,o,c==h?0:1,r):this.drawSingleLineMarker(t,m,f,o,c==h?0:1,r)},this.drawMultiLineMarker=function(e,t,i,n,s){var o,r,a,l=this.$padding;if(s=s||"",this.session.$bidiHandler.isBidiRow(t.start.row)){var h=t.clone();h.end.row=h.start.row,h.end.column=this.session.getLine(h.start.row).length,this.drawBidiSingleLineMarker(e,h,i+" ace_br1 ace_start",n,null,s)}else o=n.lineHeight,r=this.$getTop(t.start.row,n),a=l+t.start.column*n.characterWidth,e.push("
");if(this.session.$bidiHandler.isBidiRow(t.end.row)){var h=t.clone();h.start.row=h.end.row,h.start.column=0,this.drawBidiSingleLineMarker(e,h,i+" ace_br12",n,null,s)}else{var c=t.end.column*n.characterWidth;o=n.lineHeight,r=this.$getTop(t.end.row,n),e.push("
")}if(o=(t.end.row-t.start.row-1)*n.lineHeight,!(o<=0)){r=this.$getTop(t.start.row+1,n);var u=(t.start.column?1:0)|(t.end.column?0:8);e.push("
")}},this.drawSingleLineMarker=function(e,t,i,n,s,o){var r=n.lineHeight,a=(t.end.column+(s||0)-t.start.column)*n.characterWidth,l=this.$getTop(t.start.row,n),h=this.$padding+t.start.column*n.characterWidth;e.push("
")},this.drawBidiSingleLineMarker=function(e,t,i,n,s,o){var r=n.lineHeight,a=this.$getTop(t.start.row,n),l=this.$padding,h=this.session.$bidiHandler.getSelections(t.start.column,t.end.column);h.forEach(function(t){e.push("
")})},this.drawFullLineMarker=function(e,t,i,n,s){var o=this.$getTop(t.start.row,n),r=n.lineHeight;t.start.row!=t.end.row&&(r+=this.$getTop(t.end.row,n)-o),e.push("
")},this.drawScreenLineMarker=function(e,t,i,n,s){var o=this.$getTop(t.start.row,n),r=n.lineHeight;e.push("
")}}).call(o.prototype),t.Marker=o}),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,i){"use strict";var n=e("../lib/oop"),s=e("../lib/dom"),o=e("../lib/lang"),r=(e("../lib/useragent"),e("../lib/event_emitter").EventEmitter),a=function(e){this.element=s.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){n.implement(this,r),this.EOF_CHAR="¶",this.EOL_CHAR_LF="¬",this.EOL_CHAR_CRLF="¤",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="—",this.SPACE_CHAR="·",this.$padding=0,this.$updateEolChar=function(){var e="\n"==this.session.doc.getNewLineCharacter()?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&&(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides!=e&&(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;for(var t=this.$tabStrings=[0],i=1;i"+o.stringRepeat(this.TAB_CHAR,i)+""):t.push(o.stringRepeat(" ",i));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var n="ace_indent-guide",s="",r="";if(this.showInvisibles){n+=" ace_invisible",s=" ace_invisible_space",r=" ace_invisible_tab";var a=o.stringRepeat(this.SPACE_CHAR,this.tabSize),l=o.stringRepeat(this.TAB_CHAR,this.tabSize)}else var a=o.stringRepeat(" ",this.tabSize),l=a;this.$tabStrings[" "]=""+a+"",this.$tabStrings["\t"]=""+l+""}},this.updateLines=function(e,t,i){this.config.lastRow==e.lastRow&&this.config.firstRow==e.firstRow||this.scrollLines(e),this.config=e;for(var n=Math.max(t,e.firstRow),s=Math.min(i,e.lastRow),o=this.element.childNodes,r=0,a=e.firstRow;ah&&(a=l.end.row+1,l=this.session.getNextFoldLine(a,l),h=l?l.start.row:1/0),a>s)break;var c=o[r++];if(c){var u=[];this.$renderLine(u,a,!this.$useLineGroups(),a==h&&l),c.style.height=e.lineHeight*this.session.getRowLength(a)+"px",c.innerHTML=u.join("")}a++}},this.scrollLines=function(e){var t=this.config;if(this.config=e,!t||t.lastRow0;n--)i.removeChild(i.firstChild);if(t.lastRow>e.lastRow)for(var n=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);n>0;n--)i.removeChild(i.lastChild);if(e.firstRowt.lastRow){var s=this.$renderLinesFragment(e,t.lastRow+1,e.lastRow);i.appendChild(s)}},this.$renderLinesFragment=function(e,t,i){for(var n=this.element.ownerDocument.createDocumentFragment(),o=t,r=this.session.getNextFoldLine(o),a=r?r.start.row:1/0;;){if(o>a&&(o=r.end.row+1,r=this.session.getNextFoldLine(o,r),a=r?r.start.row:1/0),o>i)break;var l=s.createElement("div"),h=[];if(this.$renderLine(h,o,!1,o==a&&r),l.innerHTML=h.join(""),this.$useLineGroups())l.className="ace_line_group",n.appendChild(l),l.style.height=e.lineHeight*this.session.getRowLength(o)+"px";else for(;l.firstChild;)n.appendChild(l.firstChild);o++}return n},this.update=function(e){this.config=e;for(var t=[],i=e.firstRow,n=e.lastRow,s=i,o=this.session.getNextFoldLine(s),r=o?o.start.row:1/0;;){if(s>r&&(s=o.end.row+1,o=this.session.getNextFoldLine(s,o),r=o?o.start.row:1/0),s>n)break;this.$useLineGroups()&&t.push("
"),this.$renderLine(t,s,!1,s==r&&o),this.$useLineGroups()&&t.push("
"),s++}this.element.innerHTML=t.join("")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,i,n){var s=this,r=/\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]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,a=function(e,i,n,r,a){if(i)return s.showInvisibles?""+o.stringRepeat(s.SPACE_CHAR,e.length)+"":e;if("&"==e)return"&";if("<"==e)return"<";if(">"==e)return">";if("\t"==e){var l=s.session.getScreenTabSize(t+r);return t+=l-1,s.$tabStrings[l]}if(" "==e){var h=s.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",c=s.showInvisibles?s.SPACE_CHAR:"";return t+=1,""+c+""}return n?""+s.SPACE_CHAR+"":(t+=1,""+e+"")},l=n.replace(r,a);if(this.$textToken[i.type])e.push(l);else{var h="ace_"+i.type.replace(/\./g," ace_"),c="";"fold"==i.type&&(c=" style='width:"+i.value.length*this.config.characterWidth+"px;' "),e.push("",l,"")}return t+n.length},this.renderIndentGuide=function(e,t,i){var n=t.search(this.$indentGuideRe);return n<=0||n>=i?t:" "==t[0]?(n-=n%this.tabSize,e.push(o.stringRepeat(this.$tabStrings[" "],n/this.tabSize)),t.substr(n)):"\t"==t[0]?(e.push(o.stringRepeat(this.$tabStrings["\t"],n)),t.substr(n)):t},this.$renderWrappedLine=function(e,t,i,n){for(var s=0,r=0,a=i[0],l=0,h=0;h=a;)l=this.$renderToken(e,l,c,u.substring(0,a-s)),u=u.substring(a-s),s=a,n||e.push("","
"),e.push(o.stringRepeat(" ",i.indent)),r++,l=0,a=i[r]||Number.MAX_VALUE;0!=u.length&&(s+=u.length,l=this.$renderToken(e,l,c,u))}}},this.$renderSimpleLine=function(e,t){var i=0,n=t[0],s=n.value;this.displayIndentGuides&&(s=this.renderIndentGuide(e,s)),s&&(i=this.$renderToken(e,i,n,s));for(var o=1;o"),s.length){var o=this.session.getRowSplitData(t);o&&o.length?this.$renderWrappedLine(e,s,o,i):this.$renderSimpleLine(e,s)}this.showInvisibles&&(n&&(t=n.end.row),e.push("",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"")),i||e.push("
")},this.$getFoldLineTokens=function(e,t){function i(e,t,i){for(var n=0,o=0;o+e[n].value.lengthi-t&&(r=r.substring(0,i-t)),s.push({type:e[n].type,value:r}),o=t+r.length,n+=1}for(;oi?s.push({type:e[n].type,value:r.substring(0,i-o)}):s.push(e[n]),o+=r.length,n+=1}}var n=this.session,s=[],o=n.getTokens(e);return t.walk(function(e,t,r,a,l){null!=e?s.push({type:"fold",value:e}):(l&&(o=n.getTokens(t)),o.length&&i(o,a,r))},t.end.row,this.session.getLine(t.end.row).length),s},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}),define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,i){"use strict";var n,s=e("../lib/dom"),o=function(e){this.element=s.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),void 0===n&&(n=!("opacity"in this.element.style)),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),s.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=(n?this.$updateVisibility:this.$updateOpacity).bind(this)};(function(){this.$updateVisibility=function(e){for(var t=this.cursors,i=t.length;i--;)t[i].style.visibility=e?"":"hidden"},this.$updateOpacity=function(e){for(var t=this.cursors,i=t.length;i--;)t[i].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||n||(this.smoothBlinking=e,s.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.$updateCursors=this.$updateOpacity.bind(this),this.restartTimer())},this.addCursor=function(){var e=s.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,s.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,s.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;if(clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&s.removeCssClass(this.element,"ace_smooth-blinking"),e(!0),this.isBlinking&&this.blinkInterval&&this.isVisible){this.smoothBlinking&&setTimeout(function(){s.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 i=this.session.documentToScreenPosition(e),n=this.$padding+(this.session.$bidiHandler.isBidiRow(i.row,e.row)?this.session.$bidiHandler.getPosLeft(i.column):i.column*this.config.characterWidth),s=(i.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:n,top:s}},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,i=0,n=0;void 0!==t&&0!==t.length||(t=[{cursor:null}]);for(var i=0,s=t.length;ie.height+e.offset||o.top<0)&&i>1)){var r=(this.cursors[n++]||this.addCursor()).style;this.drawCursor?this.drawCursor(r,o,e,t[i],this.session):(r.left=o.left+"px",r.top=o.top+"px",r.width=e.characterWidth+"px",r.height=e.lineHeight+"px")}}for(;this.cursors.length>n;)this.removeCursor();var a=this.session.getOverwrite();this.$setOverwrite(a),this.$pixelPos=o,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?s.addCssClass(this.element,"ace_overwrite-cursors"):s.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(o.prototype),t.Cursor=o}),define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,i){"use strict";var n=e("./lib/oop"),s=e("./lib/dom"),o=e("./lib/event"),r=e("./lib/event_emitter").EventEmitter,a=32768,l=function(e){this.element=s.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=s.createElement("div"),this.inner.className="ace_scrollbar-inner",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,o.addListener(this.element,"scroll",this.onScroll.bind(this)),o.addListener(this.element,"mousedown",o.preventDefault)};(function(){n.implement(this,r),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1}}).call(l.prototype);var h=function(e,t){l.call(this,e),this.scrollTop=0,this.scrollHeight=0,t.$scrollbarWidth=this.width=s.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px",this.$minWidth=0};n.inherits(h,l),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){if(this.scrollTop=this.element.scrollTop,1!=this.coeff){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return Math.max(this.isVisible?this.width:0,this.$minWidth||0)},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=this.setScrollHeight=function(e){this.scrollHeight=e,e>a?(this.coeff=a/e,e=a):1!=this.coeff&&(this.coeff=1),this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)}}.call(h.prototype);var c=function(e,t){l.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};n.inherits(c,l),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(c.prototype),t.ScrollBar=h,t.ScrollBarV=h,t.ScrollBarH=c,t.VScrollBar=h,t.HScrollBar=c}),define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,i){"use strict";var n=e("./lib/event"),s=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.window=t||window};(function(){this.schedule=function(e){if(this.changes=this.changes|e,!this.pending&&this.changes){this.pending=!0;var t=this;n.nextFrame(function(){t.pending=!1;for(var e;e=t.changes;)t.changes=0,t.onRender(e)},this.window)}}}).call(s.prototype),t.RenderLoop=s}),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,i){var n=e("../lib/oop"),s=e("../lib/dom"),o=e("../lib/lang"),r=e("../lib/useragent"),a=e("../lib/event_emitter").EventEmitter,l=0,h=t.FontMetrics=function(e){this.el=s.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=s.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=s.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),l||this.$testFractionalRect(),this.$measureNode.innerHTML=o.stringRepeat("X",l),this.$characterSize={width:0,height:0},this.checkForSizeChanges()};(function(){n.implement(this,a),this.$characterSize={width:0,height:0},this.$testFractionalRect=function(){var e=s.createElement("div");this.$setMeasureNodeStyles(e.style),e.style.width="0.2px",document.documentElement.appendChild(e);var t=e.getBoundingClientRect().width;l=t>0&&t<1?50: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",r.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(50===l){var e=null;try{e=this.$measureNode.getBoundingClientRect()}catch(t){e={width:0,height:0}}var i={height:e.height,width:e.width/l}}else var i={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/l};return 0===i.width||0===i.height?null:i},this.$measureCharWidth=function(e){this.$main.innerHTML=o.stringRepeat(e,l);var t=this.$main.getBoundingClientRect();return t.width/l},this.getCharacterWidth=function(e){var t=this.charSizes[e];return void 0===t&&(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(h.prototype)}),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,i){"use strict";var n=e("./lib/oop"),s=e("./lib/dom"),o=e("./config"),r=e("./lib/useragent"),a=e("./layer/gutter").Gutter,l=e("./layer/marker").Marker,h=e("./layer/text").Text,c=e("./layer/cursor").Cursor,u=e("./scrollbar").HScrollBar,d=e("./scrollbar").VScrollBar,g=e("./renderloop").RenderLoop,f=e("./layer/font_metrics").FontMetrics,m=e("./lib/event_emitter").EventEmitter,p='.ace_editor {position: relative;overflow: hidden;font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;direction: ltr;text-align: left;-webkit-tap-highlight-color: rgba(0, 0, 0, 0);}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;background-color: inherit;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;cursor: text;}.ace_content {position: absolute;-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_multiselect .ace_cursor {border-left-width: 1px;}.ace_slim-cursors .ace_cursor {border-left-width: 1px;}.ace_overwrite-cursors .ace_cursor {border-left-width: 0;border-bottom: 1px solid;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_smooth-blinking .ace_cursor {-webkit-transition: opacity 0.18s;transition: opacity 0.18s;}.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;}.ace_text-input-ios {position: absolute !important;top: -100000px !important;left: -100000px !important;}'; -s.importCssString(p,"ace_editor.css");var A=function(e,t){var i=this;this.container=e||s.createElement("div"),this.$keepTextAreaAtCursor=!r.isOldIE,s.addCssClass(this.container,"ace_editor"),this.setTheme(t),this.$gutter=s.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.$gutter.setAttribute("aria-hidden",!0),this.scroller=s.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=s.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new a(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new l(this.content);var n=this.$textLayer=new h(this.content);this.canvas=n.element,this.$markerFront=new l(this.content),this.$cursorLayer=new c(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new d(this.container,this),this.scrollBarH=new u(this.container,this),this.scrollBarV.addEventListener("scroll",function(e){i.$scrollAnimation||i.session.setScrollTop(e.data-i.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(e){i.$scrollAnimation||i.session.setScrollLeft(e.data-i.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new f(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.addEventListener("changeCharacterSize",function(e){i.updateCharacterSize(),i.onResize(!0,i.gutterWidth,i.$size.width,i.$size.height),i._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 g(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),o.resetOptions(this),o._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,n.implement(this,m),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),e&&(this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarH.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode))},this.updateLines=function(e,t,i){if(void 0===t&&(t=1/0),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRowthis.layerConfig.lastRow||this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar(),this.session.$bidiHandler.setEolChar(this.$textLayer.EOL_CHAR)},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(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,i,n){if(!(this.resizing>2)){this.resizing>0?this.resizing++:this.resizing=e?1:0;var s=this.container;n||(n=s.clientHeight||s.scrollHeight),i||(i=s.clientWidth||s.scrollWidth);var o=this.$updateCachedSize(e,t,i,n);if(!this.$size.scrollerHeight||!i&&!n)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(o|this.$changes,!0):this.$loop.schedule(o|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null}},this.$updateCachedSize=function(e,t,i,n){n-=this.$extraHeight||0;var s=0,o=this.$size,r={width:o.width,height:o.height,scrollerHeight:o.scrollerHeight,scrollerWidth:o.scrollerWidth};return n&&(e||o.height!=n)&&(o.height=n,s|=this.CHANGE_SIZE,o.scrollerHeight=o.height,this.$horizScroll&&(o.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",s|=this.CHANGE_SCROLL),i&&(e||o.width!=i)&&(s|=this.CHANGE_SIZE,o.width=i,null==t&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,this.scrollBarH.element.style.left=this.scroller.style.left=t+"px",o.scrollerWidth=Math.max(0,i-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",(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)&&(s|=this.CHANGE_FULL)),o.$dirty=!i||!n,s&&this._signal("resize",r),s},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-2*this.$padding,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.session.$bidiHandler.setShowInvisibles(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 i=this.session.selection.getCursor();i.column=0,e=this.$cursorLayer.getPixelPosition(i,!0),t*=this.session.getRowLength(i.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){if(!this.$printMarginEl){var e=s.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=s.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){var e=this.layerConfig,t=this.$cursorLayer.$pixelPos.top,i=this.$cursorLayer.$pixelPos.left;t-=e.offset;var n=this.textarea.style,s=this.lineHeight;if(t<0||t>e.height-s)return void(n.top=n.left="0");var o=this.characterWidth;if(this.$composition){var r=this.textarea.value.replace(/^\x01+/,"");o*=this.session.$getStringScreenWidth(r)[0]+2,s+=2}i-=this.scrollLeft,i>this.$size.scrollerWidth-o&&(i=this.$size.scrollerWidth-o),i+=this.gutterWidth,n.height=s+"px",n.width=o+"px",n.left=Math.min(i,this.$size.scrollerWidth-o)+"px",n.top=Math.min(t,this.$size.height-s)+"px"}},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(0===this.layerConfig.offset?0:1)},this.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow,i=this.session.documentToScreenRow(t,0)*e.lineHeight;return i-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,i,n){var s=this.scrollMargin;s.top=0|e,s.bottom=0|t,s.right=0|n,s.left=0|i,s.v=s.top+s.bottom,s.h=s.left+s.right,s.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-s.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){if(this.$changes&&(e|=this.$changes,this.$changes=0),!this.session||!this.container.offsetWidth||this.$frozen||!e&&!t)return void(this.$changes|=e);if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender"),this.session&&this.session.$bidiHandler&&this.session.$bidiHandler.updateCharacterWidths(this.$fontMetrics);var i=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){if(e|=this.$computeLayerConfig(),i.firstRow!=this.layerConfig.firstRow&&i.firstRowScreen==this.layerConfig.firstRowScreen){var n=this.scrollTop+(i.firstRow-this.layerConfig.firstRow)*this.lineHeight;n>0&&(this.scrollTop=n,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig())}i=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),this.$gutterLayer.element.style.marginTop=-i.offset+"px",this.content.style.marginTop=-i.offset+"px",this.content.style.width=i.width+2*this.$padding+"px",this.content.style.height=i.minHeight+"px"}return 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"),e&this.CHANGE_FULL?(this.$textLayer.update(i),this.$showGutter&&this.$gutterLayer.update(i),this.$markerBack.update(i),this.$markerFront.update(i),this.$cursorLayer.update(i),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),void this._signal("afterRender")):e&this.CHANGE_SCROLL?(e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(i):this.$textLayer.scrollLines(i),this.$showGutter&&this.$gutterLayer.update(i),this.$markerBack.update(i),this.$markerFront.update(i),this.$cursorLayer.update(i),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),void this._signal("afterRender")):(e&this.CHANGE_TEXT?(this.$textLayer.update(i),this.$showGutter&&this.$gutterLayer.update(i)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(i):(e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(i),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(i),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(i),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(i),void this._signal("afterRender"))},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,i=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(i+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&i>this.$maxPixelHeight&&(i=this.$maxPixelHeight);var n=e>t;if(i!=this.desiredHeight||this.$size.height!=this.desiredHeight||n!=this.$vScroll){n!=this.$vScroll&&(this.$vScroll=n,this.scrollBarV.setVisible(n));var s=this.container.clientWidth;this.container.style.height=i+"px",this.$updateCachedSize(!0,this.$gutterWidth,s,i),this.desiredHeight=i,this._signal("autosize")}},this.$computeLayerConfig=function(){var e=this.session,t=this.$size,i=t.height<=2*this.lineHeight,n=this.session.getScreenLength(),s=n*this.lineHeight,o=this.$getLongestLine(),r=!i&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-o-2*this.$padding<0),a=this.$horizScroll!==r;a&&(this.$horizScroll=r,this.scrollBarH.setVisible(r));var l=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var h=this.scrollTop%this.lineHeight,c=t.scrollerHeight+this.lineHeight,u=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;s+=u;var d=this.scrollMargin;this.session.setScrollTop(Math.max(-d.top,Math.min(this.scrollTop,s-t.scrollerHeight+d.bottom))),this.session.setScrollLeft(Math.max(-d.left,Math.min(this.scrollLeft,o+2*this.$padding-t.scrollerWidth+d.right)));var g=!i&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-s+u<0||this.scrollTop>d.top),f=l!==g;f&&(this.$vScroll=g,this.scrollBarV.setVisible(g));var m,p,A=Math.ceil(c/this.lineHeight)-1,C=Math.max(0,Math.round((this.scrollTop-h)/this.lineHeight)),v=C+A,F=this.lineHeight;C=e.screenToDocumentRow(C,0);var w=e.getFoldLine(C);w&&(C=w.start.row),m=e.documentToScreenRow(C,0),p=e.getRowLength(C)*F,v=Math.min(e.screenToDocumentRow(v,0),e.getLength()-1),c=t.scrollerHeight+e.getRowLength(v)*F+p,h=this.scrollTop-m*F;var E=0;return this.layerConfig.width!=o&&(E=this.CHANGE_H_SCROLL),(a||f)&&(E=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),f&&(o=this.$getLongestLine())),this.layerConfig={width:o,padding:this.$padding,firstRow:C,firstRowScreen:m,lastRow:v,lineHeight:F,characterWidth:this.characterWidth,minHeight:c,maxHeight:s,offset:h,gutterOffset:F?Math.max(0,Math.ceil((h+t.height-t.scrollerHeight)/F)):0,height:this.$size.scrollerHeight},E},this.$updateLines=function(){if(this.$changedLines){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var i=this.layerConfig;if(!(e>i.lastRow+1||to?(t&&l+r>o+this.lineHeight&&(o-=t*this.$size.scrollerHeight),0===o&&(o=-this.scrollMargin.top),this.session.setScrollTop(o)):l+this.$size.scrollerHeight-as?(s=1-this.scrollMargin.top||(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom||(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left||(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right||void 0)))},this.pixelToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=e+this.scrollLeft-i.left-this.$padding,s=n/this.characterWidth,o=Math.floor((t+this.scrollTop-i.top)/this.lineHeight),r=Math.round(s);return{row:o,column:r,side:s-r>0?1:-1,offsetX:n}},this.screenToTextCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=e+this.scrollLeft-i.left-this.$padding,s=Math.round(n/this.characterWidth),o=(t+this.scrollTop-i.top)/this.lineHeight;return this.session.screenToDocumentPosition(o,Math.max(s,0),n)},this.textToScreenCoordinates=function(e,t){var i=this.scroller.getBoundingClientRect(),n=this.session.documentToScreenPosition(e,t),s=this.$padding+(this.session.$bidiHandler.isBidiRow(n.row,e)?this.session.$bidiHandler.getPosLeft(n.column):Math.round(n.column*this.characterWidth)),o=n.row*this.lineHeight;return{pageX:i.left+s-this.scrollLeft,pageY:i.top+o-this.scrollTop}},this.visualizeFocus=function(){s.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){s.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,s.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(e){this.$moveTextAreaToCursor()},this.hideComposition=function(){this.$composition&&(s.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 i(i){if(n.$themeId!=e)return t&&t();if(!i||!i.cssClass)throw new Error("couldn't load module "+e+" or it didn't call define");s.importCssString(i.cssText,i.cssClass,n.container.ownerDocument),n.theme&&s.removeCssClass(n.container,n.theme.cssClass);var o="padding"in i?i.padding:"padding"in(n.theme||{})?4:n.$padding;n.$padding&&o!=n.$padding&&n.setPadding(o),n.$theme=i.cssClass,n.theme=i,s.addCssClass(n.container,i.cssClass),s.setCssClass(n.container,"ace_dark",i.isDark),n.$size&&(n.$size.width=0,n.$updateSizeAsync()),n._dispatchEvent("themeLoaded",{theme:i}),t&&t()}var n=this;if(this.$themeId=e,n._dispatchEvent("themeChange",{theme:e}),e&&"string"!=typeof e)i(e);else{var r=e||this.$options.theme.initialValue;o.loadModule(["theme",r],i)}},this.getTheme=function(){return this.$themeId},this.setStyle=function(e,t){s.setCssClass(this.container,e,t!==!1)},this.unsetStyle=function(e){s.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(A.prototype),o.defineOptions(A.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){"number"==typeof e&&(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){s.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){return this.$gutterLineHighlight?(this.$gutterLineHighlight.style.display=e?"":"none",void(this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight())):(this.$gutterLineHighlight=s.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",void this.$gutter.appendChild(this.$gutterLineHighlight))},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){"number"==typeof e&&(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,this.$scrollPastEnd!=e&&(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=A}),define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(e,t,i){"use strict";function n(e){var t="importScripts('"+r.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(i){var n=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,s=new n;return s.append(t),s.getBlob("application/javascript")}}function s(e){var t=n(e),i=window.URL||window.webkitURL,s=i.createObjectURL(t);return new Worker(s)}var o=e("../lib/oop"),r=e("../lib/net"),a=e("../lib/event_emitter").EventEmitter,l=e("../config"),h=function(t,i,n,o,r){if(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),l.get("packaged")||!e.toUrl)o=o||l.moduleUrl(i,"worker");else{var a=this.$normalizePath;o=o||a(e.toUrl("ace/worker/worker.js",null,"_"));var h={};t.forEach(function(t){h[t]=a(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}this.$worker=s(o),r&&this.send("importScripts",r),this.$worker.postMessage({init:!0,tlns:h,module:i,classname:n}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){o.implement(this,a),this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var i=this.callbacks[t.id];i&&(i(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&&void 0},this.$normalizePath=function(e){return r.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,i){if(i){var n=this.callbackId++;this.callbacks[n]=i,t.push(n)}this.send(e,t)},this.emit=function(e,t){try{this.$worker.postMessage({event:e,data:{data:t.data}})}catch(i){}},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)),"insert"==e.action?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;e&&(this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e}))}}).call(h.prototype);var c=function(e,t,i){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var n=null,s=!1,o=Object.create(a),r=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){r.messageBuffer.push(e),n&&(s?setTimeout(h):h())},this.setEmitSync=function(e){s=e};var h=function(){var e=r.messageBuffer.shift();e.command?n[e.command].apply(n,e.args):e.event&&o._signal(e.event,e.data)};o.postMessage=function(e){r.onMessage({data:e})},o.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},o.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},l.loadModule(["worker",t],function(e){for(n=new e[i](o);r.messageBuffer.length;)h()})};c.prototype=h.prototype,t.UIWorkerClient=c,t.WorkerClient=h,t.createWorker=s}),define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,i){"use strict";var n=e("./range").Range,s=e("./lib/event_emitter").EventEmitter,o=e("./lib/oop"),r=function(e,t,i,n,s,o){var r=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=s,this.othersClass=o,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=n,this.$onCursorChange=function(){setTimeout(function(){r.onCursorChange()})},this.$pos=i;var a=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=a.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){o.implement(this,s),this.setup=function(){var e=this,t=this.doc,i=this.session;this.selectionBefore=i.selection.toJSON(),i.selection.inMultiSelectMode&&i.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var s=this.pos;s.$insertRight=!0,s.detach(),s.markerId=i.addMarker(new n(s.row,s.column,s.row,s.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(i){var n=t.createAnchor(i.row,i.column);n.$insertRight=!0,n.detach(),e.others.push(n); -}),i.setUndoSelect(!1)},this.showOtherMarkers=function(){if(!this.othersActive){var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(i){i.markerId=e.addMarker(new n(i.row,i.column,i.row,i.column+t.length),t.othersClass,null,!1)})}},this.hideOtherMarkers=function(){if(this.othersActive){this.othersActive=!1;for(var e=0;e=this.pos.column&&t.start.column<=this.pos.column+this.length+1,o=t.start.column-this.pos.column;if(this.updateAnchors(e),s&&(this.length+=i),s&&!this.session.$fromUndo)if("insert"===e.action)for(var r=this.others.length-1;r>=0;r--){var a=this.others[r],l={row:a.row,column:a.column+o};this.doc.insertMergedLines(l,e.lines)}else if("remove"===e.action)for(var r=this.others.length-1;r>=0;r--){var a=this.others[r],l={row:a.row,column:a.column+o};this.doc.remove(new n(l.row,l.column,l.row,l.column-i))}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){var e=this,t=this.session,i=function(i,s){t.removeMarker(i.markerId),i.markerId=t.addMarker(new n(i.row,i.column,i.row,i.column+e.length),s,null,!1)};i(this.pos,this.mainClass);for(var s=this.others.length;s--;)i(this.others[s],this.othersClass)}},this.onCursorChange=function(e){if(!this.$updating&&this.session){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){for(var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth,i=0;i1&&!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){if(this.rangeCount=this.rangeList.ranges.length,1==this.rangeCount&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var i=e.length;i--;){var n=this.ranges.indexOf(e[i]);this.ranges.splice(n,1)}this._signal("removeRange",{ranges:e}),0===this.rangeCount&&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(){this.rangeList||(this.rangeList=new a,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],i=l.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(i,t.cursor==t.start)}else{var i=this.getRange(),n=this.isBackwards(),s=i.start.row,o=i.end.row;if(s==o){if(n)var r=i.end,a=i.start;else var r=i.start,a=i.end;return this.addRange(l.fromPoints(a,a)),void this.addRange(l.fromPoints(r,r))}var h=[],c=this.getLineRange(s,!0);c.start.column=i.start.column,h.push(c);for(var u=s+1;u1){var e=this.rangeList.ranges,t=e[e.length-1],i=l.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(i,t.cursor==t.start)}else{var n=this.session.documentToScreenPosition(this.selectionLead),s=this.session.documentToScreenPosition(this.selectionAnchor),o=this.rectangularRangeBlock(n,s);o.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,i){var n=[],o=e.column0;)A--;if(A>0)for(var C=0;n[C].isEmpty();)C++;for(var v=A;v>=C;v--)n[v].isEmpty()&&n.splice(v,1)}return n}}.call(h.prototype);var A=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){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){for(var t=this.session.$selectionMarkers,i=e.length;i--;){var n=e[i];if(n.marker){this.session.removeMarker(n.marker);var s=t.indexOf(n);s!=-1&&t.splice(s,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){this.inMultiSelectMode||(this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(g.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers())},this.$onSingleSelect=function(e){this.session.multiSelect.inVirtualMode||(this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(g.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection"))},this.$onMultiSelectExec=function(e){var t=e.command,i=e.editor;if(i.multiSelect){if(t.multiSelectAction)"forEach"==t.multiSelectAction?n=i.forEachSelection(t,e.args):"forEachLine"==t.multiSelectAction?n=i.forEachSelection(t,e.args,!0):"single"==t.multiSelectAction?(i.exitMultiSelectMode(),n=t.exec(i,e.args||{})):n=t.multiSelectAction(i,e.args||{});else{var n=t.exec(i,e.args||{});i.multiSelect.addRange(i.multiSelect.toOrientedRange()),i.multiSelect.mergeOverlappingRanges()}return n}},this.forEachSelection=function(e,t,i){if(!this.inVirtualSelectionMode){var n,s=i&&i.keepOrder,o=1==i||i&&i.$byLines,r=this.session,a=this.selection,l=a.rangeList,c=(s?a:l).ranges;if(!c.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var u=a._eventRegistry;a._eventRegistry={};var d=new h(r);this.inVirtualSelectionMode=!0;for(var g=c.length;g--;){if(o)for(;g>0&&c[g].start.row==c[g-1].end.row;)g--;d.fromOrientedRange(c[g]),d.index=g,this.selection=r.selection=d;var f=e.exec?e.exec(this,t||{}):e(this,t||{});n||void 0===f||(n=f),d.toOrientedRange(c[g])}d.detach(),this.selection=r.selection=a,this.inVirtualSelectionMode=!1,a._eventRegistry=u,a.mergeOverlappingRanges();var m=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),m&&m.from==m.to&&this.renderer.animateScrolling(m.from),n}},this.exitMultiSelectMode=function(){this.inMultiSelectMode&&!this.inVirtualSelectionMode&&this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){for(var t=this.multiSelect.rangeList.ranges,i=[],n=0;no&&(o=i.column),sh?e.insert(n,d.stringRepeat(" ",s-h)):e.remove(new l(n.row,n.column,n.row,n.column-s+h)),t.start.column=t.end.column=o,t.start.row=t.end.row=n.row,t.cursor=t.end}),t.fromOrientedRange(i[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}else{var h=this.selection.getRange(),c=h.start.row,u=h.end.row,g=c==u;if(g){var f,m=this.session.getLength();do f=this.session.getLine(u);while(/[=:]/.test(f)&&++u0);c<0&&(c=0),u>=m&&(u=m-1)}var p=this.session.removeFullLines(c,u);p=this.$reAlignText(p,g),this.session.insert({row:c,column:0},p.join("\n")+"\n"),g||(h.start.column=0,h.end.column=p[p.length-1].length),this.selection.setRange(h)}},this.$reAlignText=function(e,t){function i(e){return d.stringRepeat(" ",e)}function n(e){return e[2]?i(r)+e[2]+i(a-e[2].length+l)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function s(e){return e[2]?i(r+a-e[2].length)+e[2]+i(l," ")+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function o(e){return e[2]?i(r)+e[2]+i(l)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var r,a,l,h=!0,c=!0;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?null==r?(r=t[1].length,a=t[2].length,l=t[3].length,t):(r+a+l!=t[1].length+t[2].length+t[3].length&&(c=!1),r!=t[1].length&&(h=!1),r>t[1].length&&(r=t[1].length),at[3].length&&(l=t[3].length),t):[e]}).map(t?n:h?c?s:n:o)}}).call(A.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 i=e.oldSession;i&&(i.multiSelect.off("addRange",this.$onAddRange),i.multiSelect.off("removeRange",this.$onRemoveRange),i.multiSelect.off("multiSelect",this.$onMultiSelect),i.multiSelect.off("singleSelect",this.$onSingleSelect),i.multiSelect.lead.off("change",this.$checkMultiselectChange),i.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=o,e("./config").defineOptions(A.prototype,"editor",{enableMultiselect:{set:function(e){o(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",c)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",c))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})}),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(e,t,i){"use strict";var n=e("../../range").Range,s=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,i){var n=e.getLine(i);return this.foldingStartMarker.test(n)?"start":"markbeginend"==t&&this.foldingStopMarker&&this.foldingStopMarker.test(n)?"end":""},this.getFoldWidgetRange=function(e,t,i){return null},this.indentationBlock=function(e,t,i){var s=/\S/,o=e.getLine(t),r=o.search(s);if(r!=-1){for(var a=i||o.length,l=e.getLength(),h=t,c=t;++th){var d=e.getLine(c).length;return new n(h,a,c,d)}}},this.openingBracketBlock=function(e,t,i,s,o){var r={row:i,column:s+1},a=e.$findClosingBracket(t,r,o);if(a){var l=e.foldWidgets[a.row];return null==l&&(l=e.getFoldWidget(a.row)),"start"==l&&a.row>r.row&&(a.row--,a.column=e.getLine(a.row).length),n.fromPoints(r,a)}},this.closingBracketBlock=function(e,t,i,s,o){var r={row:i,column:s},a=e.$findOpeningBracket(t,r);if(a)return a.column++,r.column--,n.fromPoints(a,r)}}).call(s.prototype)}),define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(e,t,i){"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 n=e("../lib/dom");n.importCssString(t.cssText,t.cssClass)}),define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],function(e,t,i){"use strict";function n(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 s=(e("./lib/oop"),e("./lib/dom"));e("./range").Range;(function(){this.getRowLength=function(e){var t;return t=this.lineWidgets?this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0:0,this.$useWrapMode&&this.$wrapData[e]?this.$wrapData[e].length+1+t: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(),this.editor!=e&&(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){this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var i=this.session.lineWidgets;i&&i.forEach(function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))})}},this.updateOnFold=function(e,t){var i=t.lineWidgets;if(i&&e.action){for(var n=e.data,s=n.start.row,o=n.end.row,r="add"==e.action,a=s+1;a0&&!n[s];)s--;this.firstRow=i.firstRow,this.lastRow=i.lastRow,t.$cursorLayer.config=i;for(var r=s;r<=o;r++){var a=n[r];if(a&&a.el)if(a.hidden)a.el.style.top=-100-(a.pixelHeight||0)+"px";else{a._inDocument||(a._inDocument=!0,t.container.appendChild(a.el));var l=t.$cursorLayer.getPixelPosition({row:r,column:0},!0).top;a.coverLine||(l+=i.lineHeight*this.session.getRowLineCount(a.row)),a.el.style.top=l-i.offset+"px";var h=a.coverGutter?0:t.gutterWidth;a.fixedWidth||(h-=t.scrollLeft),a.el.style.left=h+"px",a.fullWidth&&a.screenWidth&&(a.el.style.minWidth=i.width+2*i.padding+"px"),a.fixedWidth?a.el.style.right=t.scrollBar.getWidth()+"px":a.el.style.right=""}}}}}).call(n.prototype),t.LineWidgets=n}),define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(e,t,i){"use strict";function n(e,t,i){for(var n=0,s=e.length-1;n<=s;){var o=n+s>>1,r=i(t,e[o]);if(r>0)n=o+1;else{ -if(!(r<0))return o;s=o-1}}return-(n+1)}function s(e,t,i){var s=e.getAnnotations().sort(a.comparePoints);if(s.length){var o=n(s,{row:t,column:-1},a.comparePoints);o<0&&(o=-o-1),o>=s.length?o=i>0?0:s.length-1:0===o&&i<0&&(o=s.length-1);var r=s[o];if(r&&i){if(r.row===t){do r=s[o+=i];while(r&&r.row===t);if(!r)return s.slice()}var l=[];t=r.row;do l[i<0?"unshift":"push"](r),r=s[o+=i];while(r&&r.row==t);return l.length&&l}}}var o=e("../line_widgets").LineWidgets,r=e("../lib/dom"),a=e("../range").Range;t.showErrorMarker=function(e,t){var i=e.session;i.widgetManager||(i.widgetManager=new o(i),i.widgetManager.attach(e));var n=e.getCursorPosition(),a=n.row,l=i.widgetManager.getWidgetsAtRow(a).filter(function(e){return"errorMarker"==e.type})[0];l?l.destroy():a-=t;var h,c=s(i,a,t);if(c){var u=c[0];n.column=(u.pos&&"number"!=typeof u.column?u.pos.sc:u.column)||0,n.row=u.row,h=e.renderer.$gutterLayer.$annotations[n.row]}else{if(l)return;h={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(n.row),e.selection.moveToPosition(n);var d={row:n.row,fixedWidth:!0,coverGutter:!0,el:r.createElement("div"),type:"errorMarker"},g=d.el.appendChild(r.createElement("div")),f=d.el.appendChild(r.createElement("div"));f.className="error_widget_arrow "+h.className;var m=e.renderer.$cursorLayer.getPixelPosition(n).left;f.style.left=m+e.renderer.gutterWidth-5+"px",d.el.className="error_widget_wrapper",g.className="error_widget "+h.className,g.innerHTML=h.text.join("
"),g.appendChild(r.createElement("div"));var p=function(e,t,i){if(0===t&&("esc"===i||"return"===i))return d.destroy(),{command:"null"}};d.destroy=function(){e.$mouseHandler.isMousePressed||(e.keyBinding.removeKeyboardHandler(p),i.widgetManager.removeLineWidget(d),e.off("changeSelection",d.destroy),e.off("changeSession",d.destroy),e.off("mouseup",d.destroy),e.off("change",d.destroy))},e.keyBinding.addKeyboardHandler(p),e.on("changeSelection",d.destroy),e.on("changeSession",d.destroy),e.on("mouseup",d.destroy),e.on("change",d.destroy),e.session.widgetManager.addLineWidget(d),d.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:d.el.offsetHeight})},r.importCssString(" .error_widget_wrapper { background: inherit; color: inherit; border:none } .error_widget { border-top: solid 2px; border-bottom: solid 2px; margin: 5px 0; padding: 10px 40px; white-space: pre-wrap; } .error_widget.ace_error, .error_widget_arrow.ace_error{ border-color: #ff5a5a } .error_widget.ace_warning, .error_widget_arrow.ace_warning{ border-color: #F1D817 } .error_widget.ace_info, .error_widget_arrow.ace_info{ border-color: #5a5a5a } .error_widget.ace_ok, .error_widget_arrow.ace_ok{ border-color: #5aaa5a } .error_widget_arrow { position: absolute; border: solid 5px; border-top-color: transparent!important; border-right-color: transparent!important; border-left-color: transparent!important; top: -5px; }","")}),define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/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,i){"use strict";e("./lib/fixoldbrowsers");var n=e("./lib/dom"),s=e("./lib/event"),o=e("./editor").Editor,r=e("./edit_session").EditSession,a=e("./undomanager").UndoManager,l=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,"function"==typeof define&&(t.define=define),t.edit=function(e){if("string"==typeof e){var i=e;if(e=document.getElementById(i),!e)throw new Error("ace.edit can't find div #"+i)}if(e&&e.env&&e.env.editor instanceof o)return e.env.editor;var r="";if(e&&/input|textarea/i.test(e.tagName)){var a=e;r=a.value,e=n.createElement("pre"),a.parentNode.replaceChild(e,a)}else e&&(r=n.getInnerText(e),e.innerHTML="");var h=t.createEditSession(r),c=new o(new l(e));c.setSession(h);var u={document:h,editor:c,onResize:c.resize.bind(c,null)};return a&&(u.textarea=a),s.addListener(window,"resize",u.onResize),c.on("destroy",function(){s.removeListener(window,"resize",u.onResize),u.editor.container.env=null}),c.container.env=c.env=u,c},t.createEditSession=function(e,t){var i=new r(e,t);return i.setUndoManager(new a),i},t.EditSession=r,t.UndoManager=a,t.version="1.2.9"}),function(){window.require(["ace/ace"],function(e){e&&(e.config.init(!0),e.define=window.define),window.ace||(window.ace=e);for(var t in e)e.hasOwnProperty(t)&&(window.ace[t]=e[t])})}(); \ No newline at end of file diff --git a/eolinker_os_3.5/libs/ace-builds/src/mode-javascript.js b/eolinker_os_3.5/libs/ace-builds/src/mode-javascript.js deleted file mode 100644 index a80e0e3..0000000 --- a/eolinker_os_3.5/libs/ace-builds/src/mode-javascript.js +++ /dev/null @@ -1 +0,0 @@ -define("ace/mode/doc_comment_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),o=e("./text_highlight_rules").TextHighlightRules,a=function(){this.$rules={start:[{token:"comment.doc.tag",regex:"@[\\w\\d_]+"},a.getTagRule(),{defaultToken:"comment.doc",caseInsensitive:!0}]}};r.inherits(a,o),a.getTagRule=function(e){return{token:"comment.doc.tag.storage.type",regex:"\\b(?:TODO|FIXME|XXX|HACK)\\b"}},a.getStartRule=function(e){return{token:"comment.doc",regex:"\\/\\*(?=\\*)",next:e}},a.getEndRule=function(e){return{token:"comment.doc",regex:"\\*\\/",next:e}},t.DocCommentHighlightRules=a}),define("ace/mode/javascript_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/doc_comment_highlight_rules","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";function r(){var e=g.replace("\\d","\\d\\-"),t={onMatch:function(e,t,n){var r="/"==e.charAt(1)?2:1;return 1==r?(t!=this.nextState?n.unshift(this.next,this.nextState,0):n.unshift(this.next),n[2]++):2==r&&t==this.nextState&&(n[1]--,(!n[1]||n[1]<0)&&(n.shift(),n.shift())),[{type:"meta.tag.punctuation."+(1==r?"":"end-")+"tag-open.xml",value:e.slice(0,r)},{type:"meta.tag.tag-name.xml",value:e.substr(r)}]},regex:"",onMatch:function(e,t,n){return t==n[0]&&n.shift(),2==e.length&&(n[0]==this.nextState&&n[1]--,(!n[1]||n[1]<0)&&n.splice(0,2)),this.next=n[0]||"start",[{type:this.token,value:e}]},nextState:"jsx"},n,o("jsxAttributes"),{token:"entity.other.attribute-name.xml",regex:e},{token:"keyword.operator.attribute-equals.xml",regex:"="},{token:"text.tag-whitespace.xml",regex:"\\s+"},{token:"string.attribute-value.xml",regex:"'",stateName:"jsx_attr_q",push:[{token:"string.attribute-value.xml",regex:"'",next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},{token:"string.attribute-value.xml",regex:'"',stateName:"jsx_attr_qq",push:[{token:"string.attribute-value.xml",regex:'"',next:"pop"},{include:"reference"},{defaultToken:"string.attribute-value.xml"}]},t],this.$rules.reference=[{token:"constant.language.escape.reference.xml",regex:"(?:&#[0-9]+;)|(?:&#x[0-9a-fA-F]+;)|(?:&[a-zA-Z0-9_:\\.-]+;)"}]}function o(e){return[{token:"comment",regex:/\/\*/,next:[i.getTagRule(),{token:"comment",regex:"\\*\\/",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]},{token:"comment",regex:"\\/\\/",next:[i.getTagRule(),{token:"comment",regex:"$|^",next:e||"pop"},{defaultToken:"comment",caseInsensitive:!0}]}]}var a=e("../lib/oop"),i=e("./doc_comment_highlight_rules").DocCommentHighlightRules,s=e("./text_highlight_rules").TextHighlightRules,g="[a-zA-Z\\$_¡-￿][a-zA-Z\\d\\$_¡-￿]*",l=function(e){var t=this.createKeywordMapper({"variable.language":"Array|Boolean|Date|Function|Iterator|Number|Object|RegExp|String|Proxy|Namespace|QName|XML|XMLList|ArrayBuffer|Float32Array|Float64Array|Int16Array|Int32Array|Int8Array|Uint16Array|Uint32Array|Uint8Array|Uint8ClampedArray|Error|EvalError|InternalError|RangeError|ReferenceError|StopIteration|SyntaxError|TypeError|URIError|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|JSON|Math|this|arguments|prototype|window|document",keyword:"const|yield|import|get|set|async|await|break|case|catch|continue|default|delete|do|else|finally|for|function|if|in|of|instanceof|new|return|switch|throw|try|typeof|let|var|while|with|debugger|__parent__|__count__|escape|unescape|with|__proto__|class|enum|extends|super|export|implements|private|public|interface|package|protected|static","storage.type":"const|let|var|function","constant.language":"null|Infinity|NaN|undefined","support.function":"alert","constant.language.boolean":"true|false"},"identifier"),n="case|do|else|finally|in|instanceof|return|throw|try|typeof|yield|void",a="\\\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|u{[0-9a-fA-F]{1,6}}|[0-2][0-7]{0,2}|3[0-7][0-7]?|[4-7][0-7]?|.)";this.$rules={no_regex:[i.getStartRule("doc-start"),o("no_regex"),{token:"string",regex:"'(?=.)",next:"qstring"},{token:"string",regex:'"(?=.)',next:"qqstring"},{token:"constant.numeric",regex:/0(?:[xX][0-9a-fA-F]+|[oO][0-7]+|[bB][01]+)\b/},{token:"constant.numeric",regex:/(?:\d\d*(?:\.\d*)?|\.\d+)(?:[eE][+-]?\d+\b)?/},{token:["storage.type","punctuation.operator","support.function","punctuation.operator","entity.name.function","text","keyword.operator"],regex:"("+g+")(\\.)(prototype)(\\.)("+g+")(\\s*)(=)",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+g+")(\\.)("+g+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","keyword.operator","text","storage.type","text","paren.lparen"],regex:"("+g+")(\\s*)(=)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+g+")(\\.)("+g+")(\\s*)(=)(\\s*)(function)(\\s+)(\\w+)(\\s*)(\\()",next:"function_arguments"},{token:["storage.type","text","entity.name.function","text","paren.lparen"],regex:"(function)(\\s+)("+g+")(\\s*)(\\()",next:"function_arguments"},{token:["entity.name.function","text","punctuation.operator","text","storage.type","text","paren.lparen"],regex:"("+g+")(\\s*)(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:["text","text","storage.type","text","paren.lparen"],regex:"(:)(\\s*)(function)(\\s*)(\\()",next:"function_arguments"},{token:"keyword",regex:"from(?=\\s*('|\"))"},{token:"keyword",regex:"(?:"+n+")\\b",next:"start"},{token:["support.constant"],regex:/that\b/},{token:["storage.type","punctuation.operator","support.function.firebug"],regex:/(console)(\.)(warn|info|log|error|time|trace|timeEnd|assert)\b/},{token:t,regex:g},{token:"punctuation.operator",regex:/[.](?![.])/,next:"property"},{token:"storage.type",regex:/=>/},{token:"keyword.operator",regex:/--|\+\+|\.{3}|===|==|=|!=|!==|<+=?|>+=?|!|&&|\|\||\?:|[!$%&*+\-~\/^]=?/,next:"start"},{token:"punctuation.operator",regex:/[?:,;.]/,next:"start"},{token:"paren.lparen",regex:/[\[({]/,next:"start"},{token:"paren.rparen",regex:/[\])}]/},{token:"comment",regex:/^#!.*$/}],property:[{token:"text",regex:"\\s+"},{token:["storage.type","punctuation.operator","entity.name.function","text","keyword.operator","text","storage.type","text","entity.name.function","text","paren.lparen"],regex:"("+g+")(\\.)("+g+")(\\s*)(=)(\\s*)(function)(?:(\\s+)(\\w+))?(\\s*)(\\()",next:"function_arguments"},{token:"punctuation.operator",regex:/[.](?![.])/},{token:"support.function",regex:/(s(?:h(?:ift|ow(?:Mod(?:elessDialog|alDialog)|Help))|croll(?:X|By(?:Pages|Lines)?|Y|To)?|t(?:op|rike)|i(?:n|zeToContent|debar|gnText)|ort|u(?:p|b(?:str(?:ing)?)?)|pli(?:ce|t)|e(?:nd|t(?:Re(?:sizable|questHeader)|M(?:i(?:nutes|lliseconds)|onth)|Seconds|Ho(?:tKeys|urs)|Year|Cursor|Time(?:out)?|Interval|ZOptions|Date|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(?:ome|andleEvent)|navigate|c(?:har(?:CodeAt|At)|o(?:s|n(?:cat|textual|firm)|mpile)|eil|lear(?:Timeout|Interval)?|a(?:ptureEvents|ll)|reate(?:StyleSheet|Popup|EventObject))|t(?:o(?:GMTString|S(?:tring|ource)|U(?:TCString|pperCase)|Lo(?:caleString|werCase))|est|a(?:n|int(?:Enabled)?))|i(?:s(?:NaN|Finite)|ndexOf|talics)|d(?:isableExternalCapture|ump|etachEvent)|u(?:n(?:shift|taint|escape|watch)|pdateCommands)|j(?:oin|avaEnabled)|p(?:o(?:p|w)|ush|lugins.refresh|a(?:ddings|rse(?:Int|Float)?)|r(?:int|ompt|eference))|e(?:scape|nableExternalCapture|val|lementFromPoint|x(?:p|ec(?:Script|Command)?))|valueOf|UTC|queryCommand(?:State|Indeterm|Enabled|Value)|f(?:i(?:nd|le(?:ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(?:nt(?:size|color)|rward)|loor|romCharCode)|watch|l(?:ink|o(?:ad|g)|astIndexOf)|a(?:sin|nchor|cos|t(?:tachEvent|ob|an(?:2)?)|pply|lert|b(?:s|ort))|r(?:ou(?:nd|teEvents)|e(?:size(?:By|To)|calc|turnValue|place|verse|l(?:oad|ease(?:Capture|Events)))|andom)|g(?:o|et(?:ResponseHeader|M(?:i(?:nutes|lliseconds)|onth)|Se(?:conds|lection)|Hours|Year|Time(?:zoneOffset)?|Da(?:y|te)|UTC(?:M(?:i(?:nutes|lliseconds)|onth)|Seconds|Hours|Da(?:y|te)|FullYear)|FullYear|A(?:ttention|llResponseHeaders)))|m(?:in|ove(?:B(?:y|elow)|To(?:Absolute)?|Above)|ergeAttributes|a(?:tch|rgins|x))|b(?:toa|ig|o(?:ld|rderWidths)|link|ack))\b(?=\()/},{token:"support.function.dom",regex:/(s(?:ub(?:stringData|mit)|plitText|e(?:t(?:NamedItem|Attribute(?:Node)?)|lect))|has(?:ChildNodes|Feature)|namedItem|c(?:l(?:ick|o(?:se|neNode))|reate(?:C(?:omment|DATASection|aption)|T(?:Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(?:ntityReference|lement)|Attribute))|tabIndex|i(?:nsert(?:Row|Before|Cell|Data)|tem)|open|delete(?:Row|C(?:ell|aption)|T(?:Head|Foot)|Data)|focus|write(?:ln)?|a(?:dd|ppend(?:Child|Data))|re(?:set|place(?:Child|Data)|move(?:NamedItem|Child|Attribute(?:Node)?)?)|get(?:NamedItem|Element(?:sBy(?:Name|TagName|ClassName)|ById)|Attribute(?:Node)?)|blur)\b(?=\()/},{token:"support.constant",regex:/(s(?:ystemLanguage|cr(?:ipts|ollbars|een(?:X|Y|Top|Left))|t(?:yle(?:Sheets)?|atus(?:Text|bar)?)|ibling(?:Below|Above)|ource|uffixes|e(?:curity(?:Policy)?|l(?:ection|f)))|h(?:istory|ost(?:name)?|as(?:h|Focus))|y|X(?:MLDocument|SLDocument)|n(?:ext|ame(?:space(?:s|URI)|Prop))|M(?:IN_VALUE|AX_VALUE)|c(?:haracterSet|o(?:n(?:structor|trollers)|okieEnabled|lorDepth|mp(?:onents|lete))|urrent|puClass|l(?:i(?:p(?:boardData)?|entInformation)|osed|asses)|alle(?:e|r)|rypto)|t(?:o(?:olbar|p)|ext(?:Transform|Indent|Decoration|Align)|ags)|SQRT(?:1_2|2)|i(?:n(?:ner(?:Height|Width)|put)|ds|gnoreCase)|zIndex|o(?:scpu|n(?:readystatechange|Line)|uter(?:Height|Width)|p(?:sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(?:i(?:splay|alog(?:Height|Top|Width|Left|Arguments)|rectories)|e(?:scription|fault(?:Status|Ch(?:ecked|arset)|View)))|u(?:ser(?:Profile|Language|Agent)|n(?:iqueID|defined)|pdateInterval)|_content|p(?:ixelDepth|ort|ersonalbar|kcs11|l(?:ugins|atform)|a(?:thname|dding(?:Right|Bottom|Top|Left)|rent(?:Window|Layer)?|ge(?:X(?:Offset)?|Y(?:Offset)?))|r(?:o(?:to(?:col|type)|duct(?:Sub)?|mpter)|e(?:vious|fix)))|e(?:n(?:coding|abledPlugin)|x(?:ternal|pando)|mbeds)|v(?:isibility|endor(?:Sub)?|Linkcolor)|URLUnencoded|P(?:I|OSITIVE_INFINITY)|f(?:ilename|o(?:nt(?:Size|Family|Weight)|rmName)|rame(?:s|Element)|gColor)|E|whiteSpace|l(?:i(?:stStyleType|n(?:eHeight|kColor))|o(?:ca(?:tion(?:bar)?|lName)|wsrc)|e(?:ngth|ft(?:Context)?)|a(?:st(?:M(?:odified|atch)|Index|Paren)|yer(?:s|X)|nguage))|a(?:pp(?:MinorVersion|Name|Co(?:deName|re)|Version)|vail(?:Height|Top|Width|Left)|ll|r(?:ity|guments)|Linkcolor|bove)|r(?:ight(?:Context)?|e(?:sponse(?:XML|Text)|adyState))|global|x|m(?:imeTypes|ultiline|enubar|argin(?:Right|Bottom|Top|Left))|L(?:N(?:10|2)|OG(?:10E|2E))|b(?:o(?:ttom|rder(?:Width|RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(?:Color|Image)))\b/},{token:"identifier",regex:g},{regex:"",token:"empty",next:"no_regex"}],start:[i.getStartRule("doc-start"),o("start"),{token:"string.regexp",regex:"\\/",next:"regex"},{token:"text",regex:"\\s+|^$",next:"start"},{token:"empty",regex:"",next:"no_regex"}],regex:[{token:"regexp.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"string.regexp",regex:"/[sxngimy]*",next:"no_regex"},{token:"invalid",regex:/\{\d+\b,?\d*\}[+*]|[+*$^?][+*]|[$^][?]|\?{3,}/},{token:"constant.language.escape",regex:/\(\?[:=!]|\)|\{\d+\b,?\d*\}|[+*]\?|[()$^+*?.]/},{token:"constant.language.delimiter",regex:/\|/},{token:"constant.language.escape",regex:/\[\^?/,next:"regex_character_class"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp"}],regex_character_class:[{token:"regexp.charclass.keyword.operator",regex:"\\\\(?:u[\\da-fA-F]{4}|x[\\da-fA-F]{2}|.)"},{token:"constant.language.escape",regex:"]",next:"regex"},{token:"constant.language.escape",regex:"-"},{token:"empty",regex:"$",next:"no_regex"},{defaultToken:"string.regexp.charachterclass"}],function_arguments:[{token:"variable.parameter",regex:g},{token:"punctuation.operator",regex:"[, ]+"},{token:"punctuation.operator",regex:"$"},{token:"empty",regex:"",next:"no_regex"}],qqstring:[{token:"constant.language.escape",regex:a},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:'"|$',next:"no_regex"},{defaultToken:"string"}],qstring:[{token:"constant.language.escape",regex:a},{token:"string",regex:"\\\\$",consumeLineEnd:!0},{token:"string",regex:"'|$",next:"no_regex"},{defaultToken:"string"}]},e&&e.noES6||(this.$rules.no_regex.unshift({regex:"[{}]",onMatch:function(e,t,n){if(this.next="{"==e?this.nextState:"","{"==e&&n.length)n.unshift("start",t);else if("}"==e&&n.length&&(n.shift(),this.next=n.shift(),this.next.indexOf("string")!=-1||this.next.indexOf("jsx")!=-1))return"paren.quasi.end";return"{"==e?"paren.lparen":"paren.rparen"},nextState:"start"},{token:"string.quasi.start",regex:/`/,push:[{token:"constant.language.escape",regex:a},{token:"paren.quasi.start",regex:/\${/,push:"start"},{token:"string.quasi.end",regex:/`/,next:"pop"},{defaultToken:"string.quasi"}]}),e&&0==e.jsx||r.call(this)),this.embedRules(i,"doc-",[i.getEndRule("no_regex")]),this.normalizeRules()};a.inherits(l,s),t.JavaScriptHighlightRules=l}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,o=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t),o=n.match(/^(\s*\})/);if(!o)return 0;var a=o[1].length,i=e.findMatchingBracket({row:t,column:a});if(!i||i.row==t)return 0;var s=this.$getIndent(e.getLine(i.row));e.replace(new r(t,0,t,a-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(o.prototype),t.MatchingBraceOutdent=o}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),o=e("../../range").Range,a=e("./fold_mode").FoldMode,i=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(i,a),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var o=this._getFoldWidgetBase(e,t,n);return!o&&this.startRegionRe.test(r)?"start":o},this.getFoldWidgetRange=function(e,t,n,r){var o=e.getLine(n);if(this.startRegionRe.test(o))return this.getCommentRegionBlock(e,o,n);var a=o.match(this.foldingStartMarker);if(a){var i=a.index;if(a[1])return this.openingBracketBlock(e,a[1],n,i);var s=e.getCommentFoldRange(n,i+a[0].length,1);return s&&!s.isMultiLine()&&(r?s=this.getSectionRange(e,n):"all"!=t&&(s=null)),s}if("markbegin"!==t){var a=o.match(this.foldingStopMarker);if(a){var i=a.index+a[0].length;return a[1]?this.closingBracketBlock(e,a[1],n,i):e.getCommentFoldRange(n,i,-1)}}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),a=t,i=n.length;t+=1;for(var s=t,g=e.getLength();++tl)break;var u=this.getFoldWidgetRange(e,"all",t);if(u){if(u.start.row<=a)break;if(u.isMultiLine())t=u.end.row;else if(r==l)break}s=t}}return new o(a,i,s,e.getLine(s).length)},this.getCommentRegionBlock=function(e,t,n){for(var r=t.search(/\s*$/),a=e.getLength(),i=n,s=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,g=1;++ni)return new o(i,r,u,t.length)}}.call(i.prototype)}),define("ace/mode/javascript",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/javascript_highlight_rules","ace/mode/matching_brace_outdent","ace/worker/worker_client","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle"],function(e,t,n){"use strict";var r=e("../lib/oop"),o=e("./text").Mode,a=e("./javascript_highlight_rules").JavaScriptHighlightRules,i=e("./matching_brace_outdent").MatchingBraceOutdent,s=e("../worker/worker_client").WorkerClient,g=e("./behaviour/cstyle").CstyleBehaviour,l=e("./folding/cstyle").FoldMode,u=function(){this.HighlightRules=a,this.$outdent=new i,this.$behaviour=new g,this.foldingRules=new l};r.inherits(u,o),function(){this.lineCommentStart="//",this.blockComment={start:"/*",end:"*/"},this.$quotes={'"':'"',"'":"'","`":"`"},this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t),o=this.getTokenizer().getLineTokens(t,e),a=o.tokens,i=o.state;if(a.length&&"comment"==a[a.length-1].type)return r;if("start"==e||"no_regex"==e){var s=t.match(/^.*(?:\bcase\b.*:|[\{\(\[])\s*$/);s&&(r+=n)}else if("doc-start"==e){if("start"==i||"no_regex"==i)return"";var s=t.match(/^\s*(\/?)\*/);s&&(s[1]&&(r+=" "),r+="* ")}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new s(["ace"],"ace/mode/javascript_worker","JavaScriptWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/javascript"}.call(u.prototype),t.Mode=u}); \ No newline at end of file diff --git a/eolinker_os_3.5/libs/ace-builds/src/mode-json.js b/eolinker_os_3.5/libs/ace-builds/src/mode-json.js deleted file mode 100644 index 95ba764..0000000 --- a/eolinker_os_3.5/libs/ace-builds/src/mode-json.js +++ /dev/null @@ -1 +0,0 @@ -define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var i=e("../lib/oop"),o=e("./text_highlight_rules").TextHighlightRules,r=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"text",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"comment",regex:"\\/\\/.*$"},{token:"comment.start",regex:"\\/\\*",next:"comment"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'"|$',next:"start"},{defaultToken:"string"}],comment:[{token:"comment.end",regex:"\\*\\/",next:"start"},{defaultToken:"comment"}]}};i.inherits(r,o),t.JsonHighlightRules=r}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var i=e("../range").Range,o=function(){};(function(){this.checkOutdent=function(e,t){return!!/^\s+$/.test(e)&&/^\s*\}/.test(t)},this.autoOutdent=function(e,t){var n=e.getLine(t),o=n.match(/^(\s*\})/);if(!o)return 0;var r=o[1].length,a=e.findMatchingBracket({row:t,column:r});if(!a||a.row==t)return 0;var s=this.$getIndent(e.getLine(a.row));e.replace(new i(t,0,t,r-1),s)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(o.prototype),t.MatchingBraceOutdent=o}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var i=e("../../lib/oop"),o=e("../../range").Range,r=e("./fold_mode").FoldMode,a=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};i.inherits(a,r),function(){this.foldingStartMarker=/([\{\[\(])[^\}\]\)]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{\(]*([\}\]\)])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var i=e.getLine(n);if(this.singleLineBlockCommentRe.test(i)&&!this.startRegionRe.test(i)&&!this.tripleStarBlockCommentRe.test(i))return"";var o=this._getFoldWidgetBase(e,t,n);return!o&&this.startRegionRe.test(i)?"start":o},this.getFoldWidgetRange=function(e,t,n,i){var o=e.getLine(n);if(this.startRegionRe.test(o))return this.getCommentRegionBlock(e,o,n);var r=o.match(this.foldingStartMarker);if(r){var a=r.index;if(r[1])return this.openingBracketBlock(e,r[1],n,a);var s=e.getCommentFoldRange(n,a+r[0].length,1);return s&&!s.isMultiLine()&&(i?s=this.getSectionRange(e,n):"all"!=t&&(s=null)),s}if("markbegin"!==t){var r=o.match(this.foldingStopMarker);if(r){var a=r.index+r[0].length;return r[1]?this.closingBracketBlock(e,r[1],n,a):e.getCommentFoldRange(n,a,-1)}}},this.getSectionRange=function(e,t){var n=e.getLine(t),i=n.search(/\S/),r=t,a=n.length;t+=1;for(var s=t,g=e.getLength();++tc)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=r)break;if(l.isMultiLine())t=l.end.row;else if(i==c)break}s=t}}return new o(r,a,s,e.getLine(s).length)},this.getCommentRegionBlock=function(e,t,n){for(var i=t.search(/\s*$/),r=e.getLength(),a=n,s=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,g=1;++na)return new o(a,i,l,t.length)}}.call(a.prototype)}),define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,n){"use strict";var i=e("../lib/oop"),o=e("./text").Mode,r=e("./json_highlight_rules").JsonHighlightRules,a=e("./matching_brace_outdent").MatchingBraceOutdent,s=e("./behaviour/cstyle").CstyleBehaviour,g=e("./folding/cstyle").FoldMode,c=e("../worker/worker_client").WorkerClient,l=function(){this.HighlightRules=r,this.$outdent=new a,this.$behaviour=new s,this.foldingRules=new g};i.inherits(l,o),function(){this.getNextLineIndent=function(e,t,n){var i=this.$getIndent(t);if("start"==e){var o=t.match(/^.*[\{\(\[]\s*$/);o&&(i+=n)}return i},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new c(["ace"],"ace/mode/json_worker","JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(l.prototype),t.Mode=l}); \ No newline at end of file diff --git a/eolinker_os_3.5/libs/ace-builds/src/worker-javascript.js b/eolinker_os_3.5/libs/ace-builds/src/worker-javascript.js deleted file mode 100644 index 101070e..0000000 --- a/eolinker_os_3.5/libs/ace-builds/src/worker-javascript.js +++ /dev/null @@ -1,6 +0,0 @@ -"no use strict";!function(e){function t(e,t){for(var n=e,r="";n;){var i=t[n];if("string"==typeof i)return i+r;if(i)return i.location.replace(/\/*$/,"/")+(r||i.main||i.name);if(i===!1)return"";var o=n.lastIndexOf("/");if(o===-1)break;r=n.substr(o)+r,n=n.slice(0,o)}return e}if(!("undefined"!=typeof e.window&&e.document||e.require&&e.define)){e.console||(e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console),e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:"error",data:{message:e,data:i.data,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf("!")!==-1){var r=n.split("!");return e.normalizeModule(t,r[0])+"!"+e.normalizeModule(t,r[1])}if("."==n.charAt(0)){var i=t.split("/").slice(0,-1).join("/");for(n=(i?i+"/":"")+n;n.indexOf(".")!==-1&&o!=n;){var o=n;n=n.replace(/^\.\//,"").replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return n},e.require=function(n,r){if(r||(r=n,n=null),!r.charAt)throw new Error("worker.js require() accepts only (parentId, id) as arguments");r=e.normalizeModule(n,r);var i=e.require.modules[r];if(i)return i.initialized||(i.initialized=!0,i.exports=i.factory().exports),i.exports;if(e.require.tlns){var o=t(r,e.require.tlns);return".js"!=o.slice(-3)&&(o+=".js"),e.require.id=r,e.require.modules[r]={},importScripts(o),e.require(n,r)}},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){if(2==arguments.length?(r=n,"string"!=typeof t&&(n=t,t=e.require.id)):1==arguments.length&&(r=t,n=[],t=e.require.id),"function"!=typeof r)return void(e.require.modules[t]={exports:r,initialized:!0});n.length||(n=["require","exports","module"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case"require":return i;case"exports":return e.exports;case"module":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},require.tlns={},e.initBaseUrls=function(e){for(var t in e)require.tlns[t]=e[t]},e.initSender=function(){var t=e.require("ace/lib/event_emitter").EventEmitter,n=e.require("ace/lib/oop"),r=function(){};return function(){n.implement(this,t),this.callback=function(e,t){postMessage({type:"call",id:t,data:e})},this.emit=function(e,t){postMessage({type:"event",name:e,data:t})}}.call(r.prototype),new r};var n=e.main=null,r=e.sender=null;e.onmessage=function(t){var i=t.data;if(i.event&&r)r._signal(i.event,i.data);else if(i.command)if(n[i.command])n[i.command].apply(n,i.args);else{if(!e[i.command])throw new Error("Unknown command:"+i.command);e[i.command].apply(e,i.args)}else if(i.init){e.initBaseUrls(i.tlns),require("ace/lib/es5-shim"),r=e.sender=e.initSender();var o=require(i.module)[i.classname];n=e.main=new o(r)}}}}(this),define("ace/lib/oop",["require","exports","module"],function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),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 0==this.compare(e,t)},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),1==t?(t=this.compare(r.row,r.column),1==t?2:0==t?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:1==t?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return 0==this.comparePoint(e.start)&&0==this.comparePoint(e.end)},this.intersects=function(e){var t=this.compareRange(e);return t==-1||0==t||1==t},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){"object"==typeof e?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){"object"==typeof e?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return 0==this.compare(e,t)&&(!this.isEnd(e,t)&&!this.isStart(e,t))},this.insideStart=function(e,t){return 0==this.compare(e,t)&&!this.isEnd(e,t)},this.insideEnd=function(e,t){return 0==this.compare(e,t)&&!this.isStart(e,t)},this.compare=function(e,t){return this.isMultiLine()||e!==this.start.row?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:tthis.end.column?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.rowthis.row)){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;if(r=n?{row:e,column:t}:this.$clipPositionToDocument(e,t),this.row!=r.row||this.column!=r.column){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(o.prototype)}),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,o=e("./lib/event_emitter").EventEmitter,s=e("./range").Range,a=e("./anchor").Anchor,c=function(e){this.$lines=[""],0===e.length?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,o),this.setValue=function(e){var t=this.getLength()-1;this.remove(new s(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 a(this,e,t)},0==="aaa".split(/a/).length?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){this.$newLineMode!==e&&(this.$newLineMode=e,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return"\r\n"==e||"\r"==e||"\n"==e},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 this.insertFullLines(e,t)},this.removeLines=function(e,t){return this.removeFullLines(e,t)},this.insertNewLine=function(e){return 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();void 0===e?e=n:e<0?e=0:e>=n&&(e=n-1,t=void 0);var r=this.getLine(e);return void 0==t&&(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){if(e instanceof s||(e=s.fromPoints(e.start,e.end)),0===t.length&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return n=t?this.insert(e.start,t):e.start},this.applyDeltas=function(e){for(var t=0;t=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n="insert"==e.action;(n?e.lines.length<=1&&!e.lines[0]:!s.comparePoints(e.start,e.end))||(n&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),i(this.$lines,e,t),this._signal("change",e))},this.$splitAndapplyLargeDelta=function(e,t){for(var n=e.lines,r=n.length,i=e.start.row,o=e.start.column,s=0,a=0;;){s=a,a+=t-1;var c=n.slice(s,a);if(a>r){e.lines=c,e.start.row=i+s,e.start.column=o;break}c.push(""),this.applyDelta({start:this.pos(i+s,o),end:this.pos(i+a,o=0),action:e.action,lines:c},!0)}},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:"insert"==e.action?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,t){for(var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=t||0,o=n.length;i0;)1&t&&(n+=e),(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){for(var t=[],n=0,r=e.length;n0&&this._events[e].length>n&&(this._events[e].warned=!0,"function"==typeof console.trace)}return this},r.prototype.on=r.prototype.addListener,r.prototype.once=function(e,t){function n(){this.removeListener(e,n),r||(r=!0,t.apply(this,arguments))}if(!i(t))throw TypeError("listener must be a function");var r=!1;return n.listener=t,this.on(e,n),this},r.prototype.removeListener=function(e,t){var n,r,o,a;if(!i(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(n=this._events[e],o=n.length,r=-1,n===t||i(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(s(n)){for(a=o;a-- >0;)if(n[a]===t||n[a].listener&&n[a].listener===t){r=a;break}if(r<0)return this;1===n.length?(n.length=0,delete this._events[e]):n.splice(r,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},r.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(n=this._events[e],i(n))this.removeListener(e,n);else for(;n.length;)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},r.prototype.listeners=function(e){var t;return t=this._events&&this._events[e]?i(this._events[e])?[this._events[e]]:this._events[e].slice():[]},r.listenerCount=function(e,t){var n;return n=e._events&&e._events[t]?i(e._events[t])?1:e._events[t].length:0}},{}],"/node_modules/jshint/data/ascii-identifier-data.js":[function(e,t,n){for(var r=[],i=0;i<128;i++)r[i]=36===i||i>=65&&i<=90||95===i||i>=97&&i<=122;for(var o=[],i=0;i<128;i++)o[i]=r[i]||i>=48&&i<=57;t.exports={asciiIdentifierStartTable:r,asciiIdentifierPartTable:o}},{}],"/node_modules/jshint/lodash.js":[function(e,t,n){(function(e){(function(){function r(e,t,n){for(var r=e.length,i=n?r:-1;n?i--:++ir&&(r=i)}return r}function m(e,t){for(var n=-1,r=e.length;++ni?0:i+t),n=n===Pe||n>i?i:+n||0,n<0&&(n+=i),i=t>n?0:n-t>>>0,t>>>=0;for(var o=Array(i);++r>>1,s=e[o];(n?s<=t:s2&&n[i-2],s=i>2&&n[2],a=i>1&&n[i-1];for("function"==typeof o?(o=R(o,a,5),i-=2):(o="function"==typeof a?a:null,i-=o?1:0),s&&ee(n[0],n[1],s)&&(o=i<3?null:o,i=1);++rc))return!1;for(;l&&++a-1&&e%1==0&&e-1&&e%1==0&&e<=Xt}function re(e){return e===e&&(0===e?1/e>0:!be(e))}function ie(e){var t;u.support;if(!c(e)||Lt.call(e)!=Be||!jt.call(e,"constructor")&&(t=e.constructor,"function"==typeof t&&!(t instanceof t)))return!1;var n;return x(e,function(e,t){n=t}),n===Pe||jt.call(e,n)}function oe(e){for(var t=je(e),n=t.length,r=n&&e.length,i=u.support,o=r&&ne(r)&&(sn(e)||i.nonEnumArgs&&ge(e)),s=-1,a=[];++s>>0,r=Array(n);++t-1:X(e,t,n)>-1)}function pe(e,t,n){var r=sn(e)?h:y;return t=J(t,n,3),r(e,function(e,n,r){return!t(e,n,r)})}function de(e,t,n){var r=sn(e)?m:G;return n&&ee(e,t,n)&&(t=null),"function"==typeof t&&n===Pe||(t=J(t,n,3)),r(e,t)}function me(e,t){if("function"!=typeof e)throw new TypeError(Ve);return t=Dt(t===Pe?e.length-1:+t||0,0),function(){for(var n=arguments,r=-1,i=Dt(n.length-t,0),o=Array(i);++r0;++r>>1,Jt=Rt?Rt.BYTES_PER_ELEMENT:0,Xt=Math.pow(2,53)-1,Zt=u.support={};!function(e){var t=function(){this.x=e},n=[];t.prototype={valueOf:e,y:e};for(var r in new t)n.push(r);Zt.funcDecomp=/\bthis\b/.test(function(){return this}),Zt.funcNames="string"==typeof Function.name;try{Zt.nonEnumArgs=!Ct.call(arguments,1)}catch(i){Zt.nonEnumArgs=!0}}(1,0);var Kt=It||function(e,t){return null==t?e:g(t,tn(t),g(t,ln(t),e))},Qt=U(E),Yt=D();Mt||(I=At&&Ft?function(e){var t=e.byteLength,n=Rt?Ot(t/Jt):0,r=n*Jt,i=new At(t);if(n){var o=new Rt(i,0,n);o.set(new Rt(e,0,n))}return t!=r&&(o=new Ft(i,r),o.set(new Ft(e,r))),i}:Me(null));var en=O("length"),tn=Tt?function(e){return Tt(se(e))}:Me([]),nn=N(!0),rn=me(fe),on=B(f,Qt),sn=qt||function(e){return c(e)&&ne(e.length)&&Lt.call(e)==Fe},an=o(/x/)||Ft&&!o(Ft)?function(e){return Lt.call(e)==Ue}:o,cn=Pt?function(e){if(!e||Lt.call(e)!=Be)return!1;var t=e.valueOf,n=ye(t)&&(n=Pt(t))&&Pt(n);return n?e==n||Pt(e)==n:ie(e)}:ie,un=q(function(e,t,n){return n?v(e,t,n):Kt(e,t)}),ln=Ut?function(e){if(e)var t=e.constructor,n=e.length;return"function"==typeof t&&t.prototype===e||"function"!=typeof e&&ne(n)?oe(e):be(e)?Ut(e):[]}:oe,fn=q(A);u.assign=un,u.callback=Ae,u.constant=Me,u.forEach=on,u.keys=ln,u.keysIn=je,u.merge=fn,u.property=Te,u.reject=pe,u.restParam=me,u.slice=le,u.toPlainObject=Se,u.unzip=fe,u.values=Le,u.zip=rn,u.each=on,u.extend=un,u.iteratee=Ae,u.clone=ve,u.escapeRegExp=_e,u.findLastIndex=nn,u.has=We,u.identity=Oe,u.includes=he,u.indexOf=ce,u.isArguments=ge,u.isArray=sn,u.isEmpty=ke,u.isFunction=an,u.isNative=ye,u.isNumber=xe,u.isObject=be,u.isPlainObject=cn,u.isString=Ee,u.isTypedArray=we,u.last=ue,u.some=de,u.any=de,u.contains=he,u.include=he,u.VERSION=Ge,vt&>?xt?(gt.exports=u)._=u:vt._=u:Et._=u}).call(this)}).call(this,"undefined"!=typeof global?global:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],"/node_modules/jshint/src/jshint.js":[function(e,t,n){var r=e("../lodash"),i=e("events"),o=e("./vars.js"),s=e("./messages.js"),a=e("./lex.js").Lexer,c=e("./reg.js"),u=e("./state.js").state,l=e("./style.js"),f=e("./options.js"),h=e("./scope-manager.js"),p=function(){"use strict";function e(e,t){return e=e.trim(),!!/^[+-]W\d{3}$/g.test(e)||(!(f.validNames.indexOf(e)===-1&&"jslint"!==t.type&&!r.has(f.removed,e))||(w("E001",t,e),!1))}function t(e){return"[object String]"===Object.prototype.toString.call(e)}function n(e,t){return!!e&&!(!e.identifier||e.value!==t)}function d(e){if(!e.reserved)return!1;var t=e.meta;if(t&&t.isFutureReservedWord&&u.inES5()){if(!t.es5)return!1;if(t.strictOnly&&!u.option.strict&&!u.isStrict())return!1;if(e.isProperty)return!1}return!0}function m(e,t){return e.replace(/\{([^{}]*)\}/g,function(e,n){var r=t[n];return"string"==typeof r||"number"==typeof r?r:e})}function v(e,t){Object.keys(t).forEach(function(n){r.has(p.blacklist,n)||(e[n]=t[n])})}function g(){if(u.option.enforceall){for(var e in f.bool.enforcing)void 0!==u.option[e]||f.noenforceall[e]||(u.option[e]=!0);for(var t in f.bool.relaxing)void 0===u.option[t]&&(u.option[t]=!1)}}function k(){g(),u.option.esversion||u.option.moz||(u.option.es3?u.option.esversion=3:u.option.esnext?u.option.esversion=6:u.option.esversion=5),u.inES5()&&v(et,o.ecmaIdentifiers[5]),u.inES6()&&v(et,o.ecmaIdentifiers[6]),u.option.module&&(u.option.strict===!0&&(u.option.strict="global"),u.inES6()||x("W134",u.tokens.next,"module",6)),u.option.couch&&v(et,o.couch),u.option.qunit&&v(et,o.qunit),u.option.rhino&&v(et,o.rhino),u.option.shelljs&&(v(et,o.shelljs),v(et,o.node)),u.option.typed&&v(et,o.typed),u.option.phantom&&(v(et,o.phantom),u.option.strict===!0&&(u.option.strict="global")),u.option.prototypejs&&v(et,o.prototypejs),u.option.node&&(v(et,o.node),v(et,o.typed),u.option.strict===!0&&(u.option.strict="global")),u.option.devel&&v(et,o.devel),u.option.dojo&&v(et,o.dojo),u.option.browser&&(v(et,o.browser),v(et,o.typed)),u.option.browserify&&(v(et,o.browser),v(et,o.typed),v(et,o.browserify),u.option.strict===!0&&(u.option.strict="global")),u.option.nonstandard&&v(et,o.nonstandard),u.option.jasmine&&v(et,o.jasmine),u.option.jquery&&v(et,o.jquery),u.option.mootools&&v(et,o.mootools),u.option.worker&&v(et,o.worker),u.option.wsh&&v(et,o.wsh),u.option.globalstrict&&u.option.strict!==!1&&(u.option.strict="global"),u.option.yui&&v(et,o.yui),u.option.mocha&&v(et,o.mocha)}function b(e,t,n){var r=Math.floor(t/u.lines.length*100),i=s.errors[e].desc;throw{name:"JSHintError",line:t,character:n,message:i+" ("+r+"% scanned).",raw:i,code:e}}function y(){var e=u.ignoredLines;r.isEmpty(e)||(p.errors=r.reject(p.errors,function(t){return e[t.line]}))}function x(e,t,n,r,i,o){var a,c,l,f;if(/^W\d{3}$/.test(e)){if(u.ignored[e])return;f=s.warnings[e]}else/E\d{3}/.test(e)?f=s.errors[e]:/I\d{3}/.test(e)&&(f=s.info[e]);return t=t||u.tokens.next||{},"(end)"===t.id&&(t=u.tokens.curr),c=t.line||0,a=t.from||0,l={id:"(error)",raw:f.desc,code:f.code,evidence:u.lines[c-1]||"",line:c,character:a,scope:p.scope,a:n,b:r,c:i,d:o},l.reason=m(f.desc,l),p.errors.push(l),y(),p.errors.length>=u.option.maxerr&&b("E043",c,a),l}function E(e,t,n,r,i,o,s){return x(e,{line:t,from:n},r,i,o,s)}function w(e,t,n,r,i,o){x(e,t,n,r,i,o)}function S(e,t,n,r,i,o,s){return w(e,{line:t,from:n},r,i,o,s)}function W(e,t){var n;return n={id:"(internal)",elem:e,value:t},p.internals.push(n),n}function j(){var t=u.tokens.next,n=t.body.match(/(-\s+)?[^\s,:]+(?:\s*:\s*(-\s+)?[^\s,]+)?/g)||[],i={};if("globals"===t.type){n.forEach(function(e,r){e=e.split(":");var o=(e[0]||"").trim(),s=(e[1]||"").trim();if("-"===o||!o.length){if(r>0&&r===n.length-1)return;return void w("E002",t)}"-"===o.charAt(0)?(o=o.slice(1),s=!1,p.blacklist[o]=o,delete et[o]):i[o]="true"===s}),v(et,i);for(var o in i)r.has(i,o)&&(He[o]=t)}"exported"===t.type&&n.forEach(function(e,r){if(!e.length){if(r>0&&r===n.length-1)return;return void w("E002",t)}u.funct["(scope)"].addExported(e)}),"members"===t.type&&(Ye=Ye||{},n.forEach(function(e){var t=e.charAt(0),n=e.charAt(e.length-1);t!==n||'"'!==t&&"'"!==t||(e=e.substr(1,e.length-2).replace('\\"','"')),Ye[e]=!1}));var s=["maxstatements","maxparams","maxdepth","maxcomplexity","maxerr","maxlen","indent"];"jshint"!==t.type&&"jslint"!==t.type||(n.forEach(function(n){n=n.split(":");var i=(n[0]||"").trim(),o=(n[1]||"").trim();if(e(i,t))if(s.indexOf(i)>=0)if("false"!==o){if(o=+o,"number"!=typeof o||!isFinite(o)||o<=0||Math.floor(o)!==o)return void w("E032",t,n[1].trim());u.option[i]=o}else u.option[i]="indent"===i&&4;else{if("validthis"===i)return u.funct["(global)"]?void w("E009"):"true"!==o&&"false"!==o?void w("E002",t):void(u.option.validthis="true"===o);if("quotmark"!==i)if("shadow"!==i)if("unused"!==i)if("latedef"!==i)if("ignore"!==i)if("strict"!==i){"module"===i&&(we(u.funct)||w("E055",u.tokens.next,"module"));var a={es3:3,es5:5,esnext:6};if(!r.has(a,i)){if("esversion"===i){switch(o){case"5":u.inES5(!0)&&x("I003");case"3":case"6":u.option.moz=!1,u.option.esversion=+o;break;case"2015":u.option.moz=!1,u.option.esversion=6;break;default:w("E002",t)}return void(we(u.funct)||w("E055",u.tokens.next,"esversion"))}var c=/^([+-])(W\d{3})$/g.exec(i);if(c)return void(u.ignored[c[2]]="-"===c[1]);var l;return"true"===o||"false"===o?("jslint"===t.type?(l=f.renamed[i]||i,u.option[l]="true"===o,void 0!==f.inverted[l]&&(u.option[l]=!u.option[l])):u.option[i]="true"===o,void("newcap"===i&&(u.option["(explicitNewcap)"]=!0))):void w("E002",t)}switch(o){case"true":u.option.moz=!1,u.option.esversion=a[i];break;case"false":u.option.moz||(u.option.esversion=5);break;default:w("E002",t)}}else switch(o){case"true":u.option.strict=!0;break;case"false":u.option.strict=!1;break;case"func":case"global":case"implied":u.option.strict=o;break;default:w("E002",t)}else switch(o){case"line":u.ignoredLines[t.line]=!0,y();break;default:w("E002",t)}else switch(o){case"true":u.option.latedef=!0;break;case"false":u.option.latedef=!1;break;case"nofunc":u.option.latedef="nofunc";break;default:w("E002",t)}else switch(o){case"true":u.option.unused=!0;break;case"false":u.option.unused=!1;break;case"vars":case"strict":u.option.unused=o;break;default:w("E002",t)}else switch(o){case"true":u.option.shadow=!0;break;case"outer":u.option.shadow="outer";break;case"false":case"inner":u.option.shadow="inner";break;default:w("E002",t)}else switch(o){case"true":case"false":u.option.quotmark="true"===o;break;case"double":case"single":u.option.quotmark=o;break;default:w("E002",t)}}}),k())}function L(e){var t,n=e||0,r=Ze.length;if(n="a"&&t<="z"||t>="A"&&t<="Z")&&(e.identifier=e.reserved=!0),e}function B(e,t){var n=I(e,150);return N(n),n.nud="function"==typeof t?t:function(){return this.arity="unary",this.right=P(150),"++"!==this.id&&"--"!==this.id||(u.option.plusplus?x("W016",this,this.id):!this.right||this.right.identifier&&!d(this.right)||"."===this.right.id||"["===this.right.id||x("W017",this),this.right&&this.right.isMetaProperty?w("E031",this):this.right&&this.right.identifier&&u.funct["(scope)"].block.modify(this.right.value,this)),this},n}function $(e,t){var n=q(e);return n.type=e,n.nud=t,n}function H(e,t){var n=$(e,t);return n.identifier=!0,n.reserved=!0,n}function z(e,t){var n=$(e,t&&t.nud||function(){return this});return t=t||{},t.isFutureReservedWord=!0,n.value=e,n.identifier=!0,n.reserved=!0,n.meta=t,n}function J(e,t){return H(e,function(){return"function"==typeof t&&t(this),this})}function X(e,t,n,r){var i=I(e,n);return N(i),i.infix=!0,i.led=function(i){return r||V(u.tokens.prev,u.tokens.curr),"in"!==e&&"instanceof"!==e||"!"!==i.id||x("W018",i,"!"),"function"==typeof t?t(i,this):(this.left=i,this.right=P(n),this)},i}function Z(e){var t=I(e,42);return t.led=function(e){return V(u.tokens.prev,u.tokens.curr),this.left=e,this.right=We({type:"arrow",loneArg:e}),this},t}function K(e,t){var r=I(e,100);return r.led=function(e){V(u.tokens.prev,u.tokens.curr),this.left=e;var r=this.right=P(100);return n(e,"NaN")||n(r,"NaN")?x("W019",this):t&&t.apply(this,[e,r]),e&&r||b("E041",u.tokens.curr.line),"!"===e.id&&x("W018",e,"!"),"!"===r.id&&x("W018",r,"!"),this},r}function Q(e){return e&&("(number)"===e.type&&0===+e.value||"(string)"===e.type&&""===e.value||"null"===e.type&&!u.option.eqnull||"true"===e.type||"false"===e.type||"undefined"===e.type)}function Y(e,t,n){var i;return!n.option.notypeof&&(!(!e||!t)&&(i=n.inES6()?at.es6:at.es3,"(identifier)"===t.type&&"typeof"===t.value&&"(string)"===e.type&&!r.contains(i,e.value)))}function ee(e,t){var n=!1;return"this"===e.type&&null===t.funct["(context)"]?n=!0:"(identifier)"===e.type&&(t.option.node&&"global"===e.value?n=!0:!t.option.browser||"window"!==e.value&&"document"!==e.value||(n=!0)),n}function te(e){function t(e){if("object"==typeof e)return"prototype"===e.right?e:t(e.left)}function n(e){for(;!e.identifier&&"object"==typeof e.left;)e=e.left;if(e.identifier&&r.indexOf(e.value)>=0)return e.value}var r=["Array","ArrayBuffer","Boolean","Collator","DataView","Date","DateTimeFormat","Error","EvalError","Float32Array","Float64Array","Function","Infinity","Intl","Int16Array","Int32Array","Int8Array","Iterator","Number","NumberFormat","Object","RangeError","ReferenceError","RegExp","StopIteration","String","SyntaxError","TypeError","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray","URIError"],i=t(e);if(i)return n(i)}function ne(e,t,n){var r=n&&n.allowDestructuring;if(t=t||e,u.option.freeze){var i=te(e);i&&x("W121",e,i)}return e.identifier&&!e.isMetaProperty&&u.funct["(scope)"].block.reassign(e.value,e),"."===e.id?(e.left&&("arguments"!==e.left.value||u.isStrict())||x("E031",t),u.nameStack.set(u.tokens.prev),!0):"{"===e.id||"["===e.id?(r&&u.tokens.curr.left.destructAssign?u.tokens.curr.left.destructAssign.forEach(function(e){e.id&&u.funct["(scope)"].block.modify(e.id,e.token)}):"{"!==e.id&&e.left?"arguments"!==e.left.value||u.isStrict()||x("E031",t):x("E031",t),"["===e.id&&u.nameStack.set(e.right),!0):e.isMetaProperty?(w("E031",t),!0):e.identifier&&!d(e)?("exception"===u.funct["(scope)"].labeltype(e.value)&&x("W022",e),u.nameStack.set(e),!0):(e===u.syntax["function"]&&x("W023",u.tokens.curr),!1)}function re(e,t,n){var r=X(e,"function"==typeof t?t:function(e,t){return t.left=e,e&&ne(e,t,{allowDestructuring:!0})?(t.right=P(10),t):void w("E031",t)},n);return r.exps=!0,r.assign=!0,r}function ie(e,t,n){var r=I(e,n);return N(r),r.led="function"==typeof t?t:function(e){return u.option.bitwise&&x("W016",this,this.id),this.left=e,this.right=P(n),this},r}function oe(e){return re(e,function(e,t){return u.option.bitwise&&x("W016",t,t.id),e&&ne(e,t)?(t.right=P(10),t):void w("E031",t)},20)}function se(e){var t=I(e,150);return t.led=function(e){return u.option.plusplus?x("W016",this,this.id):e.identifier&&!d(e)||"."===e.id||"["===e.id||x("W017",this),e.isMetaProperty?w("E031",this):e&&e.identifier&&u.funct["(scope)"].block.modify(e.value,e),this.left=e,this},t}function ae(e,t,n){if(u.tokens.next.identifier){n||A();var r=u.tokens.curr,i=u.tokens.curr.value;return d(r)?t&&u.inES5()?i:e&&"undefined"===i?i:(x("W024",u.tokens.curr,u.tokens.curr.id),i):i}}function ce(e,t){var n=ae(e,t,!1);if(n)return n;if("..."===u.tokens.next.value){if(u.inES6(!0)||x("W119",u.tokens.next,"spread/rest operator","6"),A(),De(u.tokens.next,"..."))for(x("E024",u.tokens.next,"...");De(u.tokens.next,"...");)A();return u.tokens.next.identifier?ce(e,t):void x("E024",u.tokens.curr,"...")}w("E030",u.tokens.next,u.tokens.next.value),";"!==u.tokens.next.id&&A()}function ue(e){var t,n=0;if(";"===u.tokens.next.id&&!e.inBracelessBlock)for(;;){do t=L(n),n+=1;while("(end)"!==t.id&&"(comment)"===t.id);if(t.reach)return;if("(endline)"!==t.id){if("function"===t.id){u.option.latedef===!0&&x("W026",t);break}x("W027",t,t.value,e.value);break}}}function le(){if(";"!==u.tokens.next.id){if(u.tokens.next.isUnclosed)return A();var e=G(u.tokens.next)===u.tokens.curr.line&&"(end)"!==u.tokens.next.id,t=De(u.tokens.next,"}");e&&!t?S("E058",u.tokens.curr.line,u.tokens.curr.character):u.option.asi||(t&&!u.option.lastsemic||!e)&&E("W033",u.tokens.curr.line,u.tokens.curr.character)}else A(";")}function fe(){var e,t=Xe,n=u.tokens.next,r=!1;if(";"===n.id)return void A(";");var i=d(n);if(i&&n.meta&&n.meta.isFutureReservedWord&&":"===L().id&&(x("W024",n,n.id),i=!1),n.identifier&&!i&&":"===L().id&&(A(),A(":"),r=!0,u.funct["(scope)"].stack(),u.funct["(scope)"].block.addBreakLabel(n.value,{token:u.tokens.curr}),u.tokens.next.labelled||"{"===u.tokens.next.value||x("W028",u.tokens.next,n.value,u.tokens.next.value),u.tokens.next.label=n.value,n=u.tokens.next),"{"===n.id){var o="case"===u.funct["(verb)"]&&":"===u.tokens.curr.value;return void de(!0,!0,!1,!1,o)}return e=P(0,!0),!e||e.identifier&&"function"===e.value||"(punctuator)"===e.type&&e.left&&e.left.identifier&&"function"===e.left.value||u.isStrict()||"global"!==u.option.strict||x("E007"),n.block||(u.option.expr||e&&e.exps?u.option.nonew&&e&&e.left&&"("===e.id&&"new"===e.left.id&&x("W031",n):x("W030",u.tokens.curr),le()),Xe=t,r&&u.funct["(scope)"].unstack(),e}function he(){for(var e,t=[];!u.tokens.next.reach&&"(end)"!==u.tokens.next.id;)";"===u.tokens.next.id?(e=L(),(!e||"("!==e.id&&"["!==e.id)&&x("W032"),A(";")):t.push(fe());return t}function pe(){for(var e,t,n;"(string)"===u.tokens.next.id;){if(t=L(0),"(endline)"===t.id){e=1;do n=L(e++);while("(endline)"===n.id);if(";"===n.id)t=n;else{if("["===n.value||"."===n.value)break;u.option.asi&&"("!==n.value||x("W033",u.tokens.next)}}else{if("."===t.id||"["===t.id)break;";"!==t.id&&x("W033",t)}A();var r=u.tokens.curr.value;(u.directive[r]||"use strict"===r&&"implied"===u.option.strict)&&x("W034",u.tokens.curr,r),u.directive[r]=!0,";"===t.id&&A(";")}u.isStrict()&&(u.option["(explicitNewcap)"]||(u.option.newcap=!0),u.option.undef=!0)}function de(e,t,n,i,o){var s,a,c,l,f,h=Je,p=Xe;Je=e,c=u.tokens.next;var d=u.funct["(metrics)"];if(d.nestedBlockDepth+=1,d.verifyMaxNestedBlockDepthPerFunction(),"{"===u.tokens.next.id){if(A("{"),u.funct["(scope)"].stack(),l=u.tokens.curr.line,"}"!==u.tokens.next.id){for(Xe+=u.option.indent;!e&&u.tokens.next.from>Xe;)Xe+=u.option.indent;if(n){a={};for(f in u.directive)r.has(u.directive,f)&&(a[f]=u.directive[f]);pe(),u.option.strict&&u.funct["(context)"]["(global)"]&&(a["use strict"]||u.isStrict()||x("E007"))}s=he(),d.statementCount+=s.length,Xe-=u.option.indent}A("}",c),n&&(u.funct["(scope)"].validateParams(),a&&(u.directive=a)),u.funct["(scope)"].unstack(),Xe=p}else if(e)u.funct["(noblockscopedvar)"]="for"!==u.tokens.next.id,u.funct["(scope)"].stack(),t&&!u.option.curly||x("W116",u.tokens.next,"{",u.tokens.next.value),u.tokens.next.inBracelessBlock=!0,Xe+=u.option.indent,s=[fe()],Xe-=u.option.indent,u.funct["(scope)"].unstack(),delete u.funct["(noblockscopedvar)"];else if(n){if(u.funct["(scope)"].stack(),a={},!t||i||u.inMoz()||w("W118",u.tokens.curr,"function closure expressions"),!t)for(f in u.directive)r.has(u.directive,f)&&(a[f]=u.directive[f]);P(10),u.option.strict&&u.funct["(context)"]["(global)"]&&(a["use strict"]||u.isStrict()||x("E007")),u.funct["(scope)"].unstack()}else w("E021",u.tokens.next,"{",u.tokens.next.value);switch(u.funct["(verb)"]){case"break":case"continue":case"return":case"throw":if(o)break;default:u.funct["(verb)"]=null}return Je=h,!e||!u.option.noempty||s&&0!==s.length||x("W035",u.tokens.prev),d.nestedBlockDepth-=1,s}function me(e){Ye&&"boolean"!=typeof Ye[e]&&x("W036",u.tokens.curr,e),"number"==typeof Qe[e]?Qe[e]+=1:Qe[e]=1}function ve(){var e={};e.exps=!0,u.funct["(comparray)"].stack();var t=!1;return"for"!==u.tokens.next.value&&(t=!0,u.inMoz()||x("W116",u.tokens.next,"for",u.tokens.next.value),u.funct["(comparray)"].setState("use"),e.right=P(10)),A("for"),"each"===u.tokens.next.value&&(A("each"),u.inMoz()||x("W118",u.tokens.curr,"for each")),A("("),u.funct["(comparray)"].setState("define"),e.left=P(130),r.contains(["in","of"],u.tokens.next.value)?A():w("E045",u.tokens.curr),u.funct["(comparray)"].setState("generate"),P(10),A(")"),"if"===u.tokens.next.value&&(A("if"),A("("),u.funct["(comparray)"].setState("filter"),e.filter=P(10),A(")")),t||(u.funct["(comparray)"].setState("use"),e.right=P(10)),A("]"),u.funct["(comparray)"].unstack(),e}function ge(){return u.funct["(statement)"]&&"class"===u.funct["(statement)"].type||u.funct["(context)"]&&"class"===u.funct["(context)"]["(verb)"]}function ke(e){return e.identifier||"(string)"===e.id||"(number)"===e.id}function be(e){var t,n=!0;return"object"==typeof e?t=e:(n=e,t=ae(!1,!0,n)),t?"object"==typeof t&&("(string)"===t.id||"(identifier)"===t.id?t=t.value:"(number)"===t.id&&(t=t.value.toString())):"(string)"===u.tokens.next.id?(t=u.tokens.next.value,n||A()):"(number)"===u.tokens.next.id&&(t=u.tokens.next.value.toString(),n||A()),"hasOwnProperty"===t&&x("W001"),t}function ye(e){function t(e){u.funct["(scope)"].addParam.apply(u.funct["(scope)"],e)}var n,i,o,s=[],a=[],c=!1,l=!1,f=0,h=e&&e.loneArg;if(h&&h.identifier===!0)return u.funct["(scope)"].addParam(h.value,h),{arity:1,params:[h.value]};if(n=u.tokens.next,e&&e.parsedOpening||A("("),")"===u.tokens.next.id)return void A(")");for(;;){f++;var p=[];if(r.contains(["{","["],u.tokens.next.id)){a=Oe();for(o in a)o=a[o],o.id&&(s.push(o.id),p.push([o.id,o.token]))}else if(De(u.tokens.next,"...")&&(l=!0),i=ce(!0))s.push(i),p.push([i,u.tokens.curr]);else for(;!Ue(u.tokens.next,[",",")"]);)A();if(c&&"="!==u.tokens.next.id&&w("W138",u.tokens.current),"="===u.tokens.next.id&&(u.inES6()||x("W119",u.tokens.next,"default parameters","6"),A("="),c=!0,P(10)),p.forEach(t),","!==u.tokens.next.id)return A(")",n),{arity:f,params:s};l&&x("W131",u.tokens.next),R()}}function xe(e,t,n){var i={"(name)":e,"(breakage)":0,"(loopage)":0,"(tokens)":{},"(properties)":{},"(catch)":!1,"(global)":!1,"(line)":null,"(character)":null,"(metrics)":null,"(statement)":null,"(context)":null,"(scope)":null,"(comparray)":null,"(generator)":null,"(arrow)":null,"(params)":null};return t&&r.extend(i,{"(line)":t.line,"(character)":t.character,"(metrics)":je(t)}),r.extend(i,n),i["(context)"]&&(i["(scope)"]=i["(context)"]["(scope)"],i["(comparray)"]=i["(context)"]["(comparray)"]),i}function Ee(e){return"(scope)"in e}function we(e){return e["(global)"]&&!e["(verb)"]}function Se(e){function t(){if(u.tokens.curr.template&&u.tokens.curr.tail&&u.tokens.curr.context===n)return!0;var e=u.tokens.next.template&&u.tokens.next.tail&&u.tokens.next.context===n;return e&&A(),e||u.tokens.next.isUnclosed}var n=this.context,r=this.noSubst,i=this.depth;if(!r)for(;!t();)!u.tokens.next.template||u.tokens.next.depth>i?P(0):A();return{id:"(template)",type:"(template)",tag:e}}function We(e){var t,n,r,i,o,s,a,c,l=u.option,f=u.ignored;e&&(r=e.name,i=e.statement,o=e.classExprBinding,s="generator"===e.type,a="arrow"===e.type,c=e.ignoreLoopFunc),u.option=Object.create(u.option),u.ignored=Object.create(u.ignored),u.funct=xe(r||u.nameStack.infer(),u.tokens.next,{"(statement)":i,"(context)":u.funct,"(arrow)":a,"(generator)":s}),t=u.funct,n=u.tokens.curr,n.funct=u.funct,ze.push(u.funct),u.funct["(scope)"].stack("functionouter");var h=r||o;h&&u.funct["(scope)"].block.add(h,o?"class":"function",u.tokens.curr,!1),u.funct["(scope)"].stack("functionparams");var p=ye(e);return p?(u.funct["(params)"]=p.params,u.funct["(metrics)"].arity=p.arity,u.funct["(metrics)"].verifyMaxParametersPerFunction()):u.funct["(metrics)"].arity=0,a&&(u.inES6(!0)||x("W119",u.tokens.curr,"arrow function syntax (=>)","6"),e.loneArg||A("=>")),de(!1,!0,!0,a),!u.option.noyield&&s&&"yielded"!==u.funct["(generator)"]&&x("W124",u.tokens.curr),u.funct["(metrics)"].verifyMaxStatementsPerFunction(),u.funct["(metrics)"].verifyMaxComplexityPerFunction(),u.funct["(unusedOption)"]=u.option.unused,u.option=l,u.ignored=f,u.funct["(last)"]=u.tokens.curr.line,u.funct["(lastcharacter)"]=u.tokens.curr.character,u.funct["(scope)"].unstack(),u.funct["(scope)"].unstack(),u.funct=u.funct["(context)"],c||u.option.loopfunc||!u.funct["(loopage)"]||t["(isCapturing)"]&&x("W083",n),t}function je(e){return{statementCount:0,nestedBlockDepth:-1,ComplexityCount:1,arity:0,verifyMaxStatementsPerFunction:function(){u.option.maxstatements&&this.statementCount>u.option.maxstatements&&x("W071",e,this.statementCount); -},verifyMaxParametersPerFunction:function(){r.isNumber(u.option.maxparams)&&this.arity>u.option.maxparams&&x("W072",e,this.arity)},verifyMaxNestedBlockDepthPerFunction:function(){u.option.maxdepth&&this.nestedBlockDepth>0&&this.nestedBlockDepth===u.option.maxdepth+1&&x("W073",null,this.nestedBlockDepth)},verifyMaxComplexityPerFunction:function(){var t=u.option.maxcomplexity,n=this.ComplexityCount;t&&n>t&&x("W074",e,n)}}}function Le(){u.funct["(metrics)"].ComplexityCount+=1}function _e(e){var t,n;switch(e&&(t=e.id,n=e.paren,","===t&&(e=e.exprs[e.exprs.length-1])&&(t=e.id,n=n||e.paren)),t){case"=":case"+=":case"-=":case"*=":case"%=":case"&=":case"|=":case"^=":case"/=":n||u.option.boss||x("W084")}}function Ae(e){if(u.inES5())for(var t in e)e[t]&&e[t].setterToken&&!e[t].getterToken&&x("W078",e[t].setterToken)}function Me(e,t){if(De(u.tokens.next,".")){var n=u.tokens.curr.id;A(".");var r=ce();return u.tokens.curr.isMetaProperty=!0,e!==r?w("E057",u.tokens.prev,n,r):t(),u.tokens.curr}}function Oe(e){var t=e&&e.assignment;return u.inES6()||x("W104",u.tokens.curr,t?"destructuring assignment":"destructuring binding","6"),Te(e)}function Te(e){var t,n=[],r=e&&e.openingParsed,i=e&&e.assignment,o=i?{assignment:i}:null,s=r?u.tokens.curr:u.tokens.next,a=function(){var e;if(Ue(u.tokens.next,["[","{"])){t=Te(o);for(var r in t)r=t[r],n.push({id:r.id,token:r.token})}else if(De(u.tokens.next,","))n.push({id:null,token:u.tokens.curr});else{if(!De(u.tokens.next,"(")){var s=De(u.tokens.next,"...");if(i){var c=s?L(0):u.tokens.next;c.identifier||x("E030",c,c.value);var l=P(155);l&&(ne(l),l.identifier&&(e=l.value))}else e=ce();return e&&n.push({id:e,token:u.tokens.curr}),s}A("("),a(),A(")")}return!1},c=function(){var e;De(u.tokens.next,"[")?(A("["),P(10),A("]"),A(":"),a()):"(string)"===u.tokens.next.id||"(number)"===u.tokens.next.id?(A(),A(":"),a()):(e=ce(),De(u.tokens.next,":")?(A(":"),a()):e&&(i&&ne(u.tokens.curr),n.push({id:e,token:u.tokens.curr})))};if(De(s,"[")){r||A("["),De(u.tokens.next,"]")&&x("W137",u.tokens.curr);for(var l=!1;!De(u.tokens.next,"]");)a()&&!l&&De(u.tokens.next,",")&&(x("W130",u.tokens.next),l=!0),De(u.tokens.next,"=")&&(A(De(u.tokens.prev,"...")?"]":"="),"undefined"===u.tokens.next.id&&x("W080",u.tokens.prev,u.tokens.prev.value),P(10)),De(u.tokens.next,"]")||A(",");A("]")}else if(De(s,"{")){for(r||A("{"),De(u.tokens.next,"}")&&x("W137",u.tokens.curr);!De(u.tokens.next,"}")&&(c(),De(u.tokens.next,"=")&&(A("="),"undefined"===u.tokens.next.id&&x("W080",u.tokens.prev,u.tokens.prev.value),P(10)),De(u.tokens.next,"}")||(A(","),!De(u.tokens.next,"}"))););A("}")}return n}function Pe(e,t){var n=t.first;n&&r.zip(e,Array.isArray(n)?n:[n]).forEach(function(e){var t=e[0],n=e[1];t&&n?t.first=n:t&&t.first&&!n&&x("W080",t.first,t.first.value)})}function Ge(e,t,n){var i,o,s,a,c=n&&n.prefix,l=n&&n.inexport,f="let"===e,h="const"===e;for(u.inES6()||x("W104",u.tokens.curr,e,"6"),f&&"("===u.tokens.next.value?(u.inMoz()||x("W118",u.tokens.next,"let block"),A("("),u.funct["(scope)"].stack(),a=!0):u.funct["(noblockscopedvar)"]&&w("E048",u.tokens.curr,h?"Const":"Let"),t.first=[];;){var p=[];r.contains(["{","["],u.tokens.next.value)?(i=Oe(),o=!1):(i=[{id:ce(),token:u.tokens.curr}],o=!0),!c&&h&&"="!==u.tokens.next.id&&x("E012",u.tokens.curr,u.tokens.curr.value);for(var d in i)i.hasOwnProperty(d)&&(d=i[d],u.funct["(scope)"].block.isGlobal()&&et[d.id]===!1&&x("W079",d.token,d.id),d.id&&!u.funct["(noblockscopedvar)"]&&(u.funct["(scope)"].addlabel(d.id,{type:e,token:d.token}),p.push(d.token),o&&l&&u.funct["(scope)"].setExported(d.token.value,d.token)));if("="===u.tokens.next.id&&(A("="),c||"undefined"!==u.tokens.next.id||x("W080",u.tokens.prev,u.tokens.prev.value),!c&&"="===L(0).id&&u.tokens.next.identifier&&x("W120",u.tokens.next,u.tokens.next.value),s=P(c?120:10),o?i[0].first=s:Pe(p,s)),t.first=t.first.concat(p),","!==u.tokens.next.id)break;R()}return a&&(A(")"),de(!0,!0),t.block=!0,u.funct["(scope)"].unstack()),t}function Ve(e){return u.inES6()||x("W104",u.tokens.curr,"class","6"),e?(this.name=ce(),u.funct["(scope)"].addlabel(this.name,{type:"class",token:u.tokens.curr})):u.tokens.next.identifier&&"extends"!==u.tokens.next.value?(this.name=ce(),this.namedExpr=!0):this.name=u.nameStack.infer(),Ce(this),this}function Ce(e){var t=u.inClassBody;"extends"===u.tokens.next.value&&(A("extends"),e.heritage=P(10)),u.inClassBody=!0,A("{"),e.body=Fe(e),A("}"),u.inClassBody=t}function Fe(e){for(var t,n,r,i,o,s=Object.create(null),a=Object.create(null),c=0;"}"!==u.tokens.next.id;++c)if(t=u.tokens.next,n=!1,r=!1,i=null,";"!==t.id){if("*"===t.id&&(r=!0,A("*"),t=u.tokens.next),"["===t.id)t=qe(),o=!0;else{if(!ke(t)){x("W052",u.tokens.next,u.tokens.next.value||u.tokens.next.type),A();continue}A(),o=!1,t.identifier&&"static"===t.value&&(De(u.tokens.next,"*")&&(r=!0,A("*")),(ke(u.tokens.next)||"["===u.tokens.next.id)&&(o="["===u.tokens.next.id,n=!0,t=u.tokens.next,"["===u.tokens.next.id?t=qe():A())),!t.identifier||"get"!==t.value&&"set"!==t.value||(ke(u.tokens.next)||"["===u.tokens.next.id)&&(o="["===u.tokens.next.id,i=t,t=u.tokens.next,"["===u.tokens.next.id?t=qe():A())}if(!De(u.tokens.next,"(")){for(w("E054",u.tokens.next,u.tokens.next.value);"}"!==u.tokens.next.id&&!De(u.tokens.next,"(");)A();"("!==u.tokens.next.value&&We({statement:e})}if(o||(i?Ie(i.value,n?a:s,t.value,t,!0,n):("constructor"===t.value?u.nameStack.set(e):u.nameStack.set(t),Re(n?a:s,t.value,t,!0,n))),i&&"constructor"===t.value){var l="get"===i.value?"class getter method":"class setter method";w("E049",t,l,"constructor")}else"prototype"===t.value&&w("E049",t,"class method","prototype");be(t),We({statement:e,type:r?"generator":null,classExprBinding:e.namedExpr?e.name:null})}else x("W032"),A(";");Ae(s)}function Re(e,t,n,r,i){var o=["key","class method","static class method"];o=o[(r||!1)+(i||!1)],n.identifier&&(t=n.value),e[t]&&"__proto__"!==t?x("W075",u.tokens.next,o,t):e[t]=Object.create(null),e[t].basic=!0,e[t].basictkn=n}function Ie(e,t,n,r,i,o){var s="get"===e?"getterToken":"setterToken",a="";i?(o&&(a+="static "),a+=e+"ter method"):a="key",u.tokens.curr.accessorType=e,u.nameStack.set(r),t[n]?(t[n].basic||t[n][s])&&"__proto__"!==n&&x("W075",u.tokens.next,a,n):t[n]=Object.create(null),t[n][s]=r}function qe(){A("["),u.inES6()||x("W119",u.tokens.curr,"computed property names","6");var e=P(10);return A("]"),e}function Ue(e,t){return"(punctuator)"===e.type&&r.contains(t,e.value)}function De(e,t){return"(punctuator)"===e.type&&e.value===t}function Ne(){var e=pt();e.notJson?(!u.inES6()&&e.isDestAssign&&x("W104",u.tokens.curr,"destructuring assignment","6"),he()):(u.option.laxbreak=!0,u.jsonMode=!0,Be())}function Be(){function e(){var e={},t=u.tokens.next;if(A("{"),"}"!==u.tokens.next.id)for(;;){if("(end)"===u.tokens.next.id)w("E026",u.tokens.next,t.line);else{if("}"===u.tokens.next.id){x("W094",u.tokens.curr);break}","===u.tokens.next.id?w("E028",u.tokens.next):"(string)"!==u.tokens.next.id&&x("W095",u.tokens.next,u.tokens.next.value)}if(e[u.tokens.next.value]===!0?x("W075",u.tokens.next,"key",u.tokens.next.value):"__proto__"===u.tokens.next.value&&!u.option.proto||"__iterator__"===u.tokens.next.value&&!u.option.iterator?x("W096",u.tokens.next,u.tokens.next.value):e[u.tokens.next.value]=!0,A(),A(":"),Be(),","!==u.tokens.next.id)break;A(",")}A("}")}function t(){var e=u.tokens.next;if(A("["),"]"!==u.tokens.next.id)for(;;){if("(end)"===u.tokens.next.id)w("E027",u.tokens.next,e.line);else{if("]"===u.tokens.next.id){x("W094",u.tokens.curr);break}","===u.tokens.next.id&&w("E028",u.tokens.next)}if(Be(),","!==u.tokens.next.id)break;A(",")}A("]")}switch(u.tokens.next.id){case"{":e();break;case"[":t();break;case"true":case"false":case"null":case"(number)":case"(string)":A();break;case"-":A("-"),A("(number)");break;default:w("E003",u.tokens.next)}}var $e,He,ze,Je,Xe,Ze,Ke,Qe,Ye,et,tt,nt,rt={"<":!0,"<=":!0,"==":!0,"===":!0,"!==":!0,"!=":!0,">":!0,">=":!0,"+":!0,"-":!0,"*":!0,"/":!0,"%":!0},it=["closure","exception","global","label","outer","unused","var"],ot=[],st=new i.EventEmitter,at={};at.legacy=["xml","unknown"],at.es3=["undefined","boolean","number","string","function","object"],at.es3=at.es3.concat(at.legacy),at.es6=at.es3.concat("symbol"),$("(number)",function(){return this}),$("(string)",function(){return this}),u.syntax["(identifier)"]={type:"(identifier)",lbp:0,identifier:!0,nud:function(){var e=this.value;return"=>"===u.tokens.next.id?this:(u.funct["(comparray)"].check(e)||u.funct["(scope)"].block.use(e,u.tokens.curr),this)},led:function(){w("E033",u.tokens.next,u.tokens.next.value)}};var ct={lbp:0,identifier:!1,template:!0};u.syntax["(template)"]=r.extend({type:"(template)",nud:Se,led:Se,noSubst:!1},ct),u.syntax["(template middle)"]=r.extend({type:"(template middle)",middle:!0,noSubst:!1},ct),u.syntax["(template tail)"]=r.extend({type:"(template tail)",tail:!0,noSubst:!1},ct),u.syntax["(no subst template)"]=r.extend({type:"(template)",nud:Se,led:Se,noSubst:!0,tail:!0},ct),$("(regexp)",function(){return this}),q("(endline)"),q("(begin)"),q("(end)").reach=!0,q("(error)").reach=!0,q("}").reach=!0,q(")"),q("]"),q('"').reach=!0,q("'").reach=!0,q(";"),q(":").reach=!0,q("#"),H("else"),H("case").reach=!0,H("catch"),H("default").reach=!0,H("finally"),J("arguments",function(e){u.isStrict()&&u.funct["(global)"]&&x("E008",e)}),J("eval"),J("false"),J("Infinity"),J("null"),J("this",function(e){u.isStrict()&&!ge()&&!u.option.validthis&&(u.funct["(statement)"]&&u.funct["(name)"].charAt(0)>"Z"||u.funct["(global)"])&&x("W040",e)}),J("true"),J("undefined"),re("=","assign",20),re("+=","assignadd",20),re("-=","assignsub",20),re("*=","assignmult",20),re("/=","assigndiv",20).nud=function(){w("E014")},re("%=","assignmod",20),oe("&="),oe("|="),oe("^="),oe("<<="),oe(">>="),oe(">>>="),X(",",function(e,t){var n;if(t.exprs=[e],u.option.nocomma&&x("W127"),!R({peek:!0}))return t;for(;;){if(!(n=P(10)))break;if(t.exprs.push(n),","!==u.tokens.next.value||!R())break}return t},10,!0),X("?",function(e,t){return Le(),t.left=e,t.right=P(10),A(":"),t["else"]=P(10),t},30);var ut=40;X("||",function(e,t){return Le(),t.left=e,t.right=P(ut),t},ut),X("&&","and",50),ie("|","bitor",70),ie("^","bitxor",80),ie("&","bitand",90),K("==",function(e,t){var n=u.option.eqnull&&("null"===(e&&e.value)||"null"===(t&&t.value));switch(!0){case!n&&u.option.eqeqeq:this.from=this.character,x("W116",this,"===","==");break;case Q(e):x("W041",this,"===",e.value);break;case Q(t):x("W041",this,"===",t.value);break;case Y(t,e,u):x("W122",this,t.value);break;case Y(e,t,u):x("W122",this,e.value)}return this}),K("===",function(e,t){return Y(t,e,u)?x("W122",this,t.value):Y(e,t,u)&&x("W122",this,e.value),this}),K("!=",function(e,t){var n=u.option.eqnull&&("null"===(e&&e.value)||"null"===(t&&t.value));return!n&&u.option.eqeqeq?(this.from=this.character,x("W116",this,"!==","!=")):Q(e)?x("W041",this,"!==",e.value):Q(t)?x("W041",this,"!==",t.value):Y(t,e,u)?x("W122",this,t.value):Y(e,t,u)&&x("W122",this,e.value),this}),K("!==",function(e,t){return Y(t,e,u)?x("W122",this,t.value):Y(e,t,u)&&x("W122",this,e.value),this}),K("<"),K(">"),K("<="),K(">="),ie("<<","shiftleft",120),ie(">>","shiftright",120),ie(">>>","shiftrightunsigned",120),X("in","in",120),X("instanceof","instanceof",120),X("+",function(e,t){var n;return t.left=e,t.right=n=P(130),e&&n&&"(string)"===e.id&&"(string)"===n.id?(e.value+=n.value,e.character=n.character,!u.option.scripturl&&c.javascriptURL.test(e.value)&&x("W050",e),e):t},130),B("+","num"),B("+++",function(){return x("W007"),this.arity="unary",this.right=P(150),this}),X("+++",function(e){return x("W007"),this.left=e,this.right=P(130),this},130),X("-","sub",130),B("-","neg"),B("---",function(){return x("W006"),this.arity="unary",this.right=P(150),this}),X("---",function(e){return x("W006"),this.left=e,this.right=P(130),this},130),X("*","mult",140),X("/","div",140),X("%","mod",140),se("++"),B("++","preinc"),u.syntax["++"].exps=!0,se("--"),B("--","predec"),u.syntax["--"].exps=!0,B("delete",function(){var e=P(10);return e?("."!==e.id&&"["!==e.id&&x("W051"),this.first=e,e.identifier&&!u.isStrict()&&(e.forgiveUndef=!0),this):this}).exps=!0,B("~",function(){return u.option.bitwise&&x("W016",this,"~"),this.arity="unary",this.right=P(150),this}),B("...",function(){return u.inES6(!0)||x("W119",this,"spread/rest operator","6"),u.tokens.next.identifier||"(string)"===u.tokens.next.type||Ue(u.tokens.next,["[","("])||w("E030",u.tokens.next,u.tokens.next.value),P(150),this}),B("!",function(){return this.arity="unary",this.right=P(150),this.right||b("E041",this.line||0),rt[this.right.id]===!0&&x("W018",this,"!"),this}),B("typeof",function(){var e=P(150);return this.first=this.right=e,e||b("E041",this.line||0,this.character||0),e.identifier&&(e.forgiveUndef=!0),this}),B("new",function(){var e=Me("target",function(){u.inES6(!0)||x("W119",u.tokens.prev,"new.target","6");for(var e,t=u.funct;t&&(e=!t["(global)"],t["(arrow)"]);)t=t["(context)"];e||x("W136",u.tokens.prev,"new.target")});if(e)return e;var t,n=P(155);if(n&&"function"!==n.id)if(n.identifier)switch(n["new"]=!0,n.value){case"Number":case"String":case"Boolean":case"Math":case"JSON":x("W053",u.tokens.prev,n.value);break;case"Symbol":u.inES6()&&x("W053",u.tokens.prev,n.value);break;case"Function":u.option.evil||x("W054");break;case"Date":case"RegExp":case"this":break;default:"function"!==n.id&&(t=n.value.substr(0,1),u.option.newcap&&(t<"A"||t>"Z")&&!u.funct["(scope)"].isPredefined(n.value)&&x("W055",u.tokens.curr))}else"."!==n.id&&"["!==n.id&&"("!==n.id&&x("W056",u.tokens.curr);else u.option.supernew||x("W057",this);return"("===u.tokens.next.id||u.option.supernew||x("W058",u.tokens.curr,u.tokens.curr.value),this.first=this.right=n,this}),u.syntax["new"].exps=!0,B("void").exps=!0,X(".",function(e,t){var n=ce(!1,!0);return"string"==typeof n&&me(n),t.left=e,t.right=n,n&&"hasOwnProperty"===n&&"="===u.tokens.next.value&&x("W001"),!e||"arguments"!==e.value||"callee"!==n&&"caller"!==n?u.option.evil||!e||"document"!==e.value||"write"!==n&&"writeln"!==n||x("W060",e):u.option.noarg?x("W059",e,n):u.isStrict()&&w("E008"),u.option.evil||"eval"!==n&&"execScript"!==n||ee(e,u)&&x("W061"),t},160,!0),X("(",function(e,t){u.option.immed&&e&&!e.immed&&"function"===e.id&&x("W062");var n=0,r=[];if(e&&"(identifier)"===e.type&&e.value.match(/^[A-Z]([A-Z0-9_$]*[a-z][A-Za-z0-9_$]*)?$/)&&"Array Number String Boolean Date Object Error Symbol".indexOf(e.value)===-1&&("Math"===e.value?x("W063",e):u.option.newcap&&x("W064",e)),")"!==u.tokens.next.id)for(;r[r.length]=P(10),n+=1,","===u.tokens.next.id;)R();return A(")"),"object"==typeof e&&(u.inES5()||"parseInt"!==e.value||1!==n||x("W065",u.tokens.curr),u.option.evil||("eval"===e.value||"Function"===e.value||"execScript"===e.value?(x("W061",e),r[0]&&"(string)"===[0].id&&W(e,r[0].value)):!r[0]||"(string)"!==r[0].id||"setTimeout"!==e.value&&"setInterval"!==e.value?!r[0]||"(string)"!==r[0].id||"."!==e.value||"window"!==e.left.value||"setTimeout"!==e.right&&"setInterval"!==e.right||(x("W066",e),W(e,r[0].value)):(x("W066",e),W(e,r[0].value))),e.identifier||"."===e.id||"["===e.id||"=>"===e.id||"("===e.id||"&&"===e.id||"||"===e.id||"?"===e.id||u.inES6()&&e["(name)"]||x("W067",t)),t.left=e,t},155,!0).exps=!0,B("(",function(){var e,t,n,r,i,o=u.tokens.next,s=-1,a=1,c=u.tokens.curr,l=u.tokens.prev,f=!u.option.singleGroups;do"("===o.value?a+=1:")"===o.value&&(a-=1),s+=1,e=o,o=L(s);while((0!==a||")"!==e.value)&&";"!==o.value&&"(end)"!==o.type);if("function"===u.tokens.next.id&&(n=u.tokens.next.immed=!0),"=>"===o.value)return We({type:"arrow",parsedOpening:!0});var h=[];if(")"!==u.tokens.next.id)for(;h.push(P(10)),","===u.tokens.next.id;)u.option.nocomma&&x("W127"),R();return A(")",this),u.option.immed&&h[0]&&"function"===h[0].id&&"("!==u.tokens.next.id&&"."!==u.tokens.next.id&&"["!==u.tokens.next.id&&x("W068",this),h.length?(h.length>1?(t=Object.create(u.syntax[","]),t.exprs=h,r=h[0],i=h[h.length-1],f||(f=l.assign||l.delim)):(t=r=i=h[0],f||(f=c.beginsStmt&&("{"===t.id||n||Ee(t))||n&&(!O()||"}"!==u.tokens.prev.id)||Ee(t)&&!O()||"{"===t.id&&"=>"===l.id||"(number)"===t.type&&De(o,".")&&/^\d+$/.test(t.value))),t&&(!f&&(r.left||r.right||t.exprs)&&(f=!T(l)&&r.lbp<=l.lbp||!O()&&i.lbp"),X("[",function(e,t){var n,r=P(10);return r&&"(string)"===r.type&&(u.option.evil||"eval"!==r.value&&"execScript"!==r.value||ee(e,u)&&x("W061"),me(r.value),!u.option.sub&&c.identifier.test(r.value)&&(n=u.syntax[r.value],n&&d(n)||x("W069",u.tokens.prev,r.value))),A("]",t),r&&"hasOwnProperty"===r.value&&"="===u.tokens.next.value&&x("W001"),t.left=e,t.right=r,t},160,!0),B("[",function(){var e=pt();if(e.isCompArray)return u.option.esnext||u.inMoz()||x("W118",u.tokens.curr,"array comprehension"),ve();if(e.isDestAssign)return this.destructAssign=Oe({openingParsed:!0,assignment:!0}),this;var t=u.tokens.curr.line!==G(u.tokens.next);for(this.first=[],t&&(Xe+=u.option.indent,u.tokens.next.from===Xe+u.option.indent&&(Xe+=u.option.indent));"(end)"!==u.tokens.next.id;){for(;","===u.tokens.next.id;){if(!u.option.elision){if(u.inES5()){x("W128");do A(",");while(","===u.tokens.next.id);continue}x("W070")}A(",")}if("]"===u.tokens.next.id)break;if(this.first.push(P(10)),","!==u.tokens.next.id)break;if(R({allowTrailing:!0}),"]"===u.tokens.next.id&&!u.inES5()){x("W070",u.tokens.curr);break}}return t&&(Xe-=u.option.indent),A("]",this),this}),function(e){e.nud=function(){var e,t,n,r,i,o,s=!1,a=Object.create(null);e=u.tokens.curr.line!==G(u.tokens.next),e&&(Xe+=u.option.indent,u.tokens.next.from===Xe+u.option.indent&&(Xe+=u.option.indent));var c=pt();if(c.isDestAssign)return this.destructAssign=Oe({openingParsed:!0,assignment:!0}),this;for(;"}"!==u.tokens.next.id;){if(o=u.tokens.next.value,!u.tokens.next.identifier||","!==_().id&&"}"!==_().id)if(":"===L().id||"get"!==o&&"set"!==o){if("*"===u.tokens.next.value&&"(punctuator)"===u.tokens.next.type?(u.inES6()||x("W104",u.tokens.next,"generator functions","6"),A("*"),s=!0):s=!1,"["===u.tokens.next.id)n=qe(),u.nameStack.set(n);else if(u.nameStack.set(u.tokens.next),n=be(),Re(a,n,u.tokens.next),"string"!=typeof n)break;"("===u.tokens.next.value?(u.inES6()||x("W104",u.tokens.curr,"concise methods","6"),We({type:s?"generator":null})):(A(":"),P(10))}else A(o),u.inES5()||w("E034"),n=be(),n||u.inES6()||w("E035"),n&&Ie(o,a,n,u.tokens.curr),i=u.tokens.next,t=We(),r=t["(params)"],"get"===o&&n&&r?x("W076",i,r[0],n):"set"!==o||!n||r&&1===r.length||x("W077",i,n);else u.inES6()||x("W104",u.tokens.next,"object short notation","6"),n=be(!0),Re(a,n,u.tokens.next),P(10);if(me(n),","!==u.tokens.next.id)break;R({allowTrailing:!0,property:!0}),","===u.tokens.next.id?x("W070",u.tokens.curr):"}"!==u.tokens.next.id||u.inES5()||x("W070",u.tokens.curr)}return e&&(Xe-=u.option.indent),A("}",this),Ae(a),this},e.fud=function(){w("E036",u.tokens.curr)}}(q("{"));var lt=U("const",function(e){return Ge("const",this,e)});lt.exps=!0;var ft=U("let",function(e){return Ge("let",this,e)});ft.exps=!0;var ht=U("var",function(e){var t,n,i,s=e&&e.prefix,a=e&&e.inexport,c=e&&e.implied,l=!(e&&e.ignore);for(this.first=[];;){var f=[];r.contains(["{","["],u.tokens.next.value)?(t=Oe(),n=!1):(t=[{id:ce(),token:u.tokens.curr}],n=!0),s&&c||!l||!u.option.varstmt||x("W132",this),this.first=this.first.concat(f);for(var h in t)t.hasOwnProperty(h)&&(h=t[h],!c&&u.funct["(global)"]&&(et[h.id]===!1?x("W079",h.token,h.id):u.option.futurehostile===!1&&(!u.inES5()&&o.ecmaIdentifiers[5][h.id]===!1||!u.inES6()&&o.ecmaIdentifiers[6][h.id]===!1)&&x("W129",h.token,h.id)),h.id&&("for"===c?(u.funct["(scope)"].has(h.id)||l&&x("W088",h.token,h.id),u.funct["(scope)"].block.use(h.id,h.token)):(u.funct["(scope)"].addlabel(h.id,{type:"var",token:h.token}),n&&a&&u.funct["(scope)"].setExported(h.id,h.token)),f.push(h.token)));if("="===u.tokens.next.id&&(u.nameStack.set(u.tokens.curr),A("="),s||!l||u.funct["(loopage)"]||"undefined"!==u.tokens.next.id||x("W080",u.tokens.prev,u.tokens.prev.value),"="===L(0).id&&u.tokens.next.identifier&&(!s&&l&&!u.funct["(params)"]||u.funct["(params)"].indexOf(u.tokens.next.value)===-1)&&x("W120",u.tokens.next,u.tokens.next.value),i=P(s?120:10),n?t[0].first=i:Pe(f,i)),","!==u.tokens.next.id)break;R()}return this});ht.exps=!0,D("class",function(){return Ve.call(this,!0)}),D("function",function(e){var t=e&&e.inexport,n=!1;"*"===u.tokens.next.value&&(A("*"),u.inES6({strict:!0})?n=!0:x("W119",u.tokens.curr,"function*","6")),Je&&x("W082",u.tokens.curr);var r=ae();return u.funct["(scope)"].addlabel(r,{type:"function",token:u.tokens.curr}),void 0===r?x("W025"):t&&u.funct["(scope)"].setExported(r,u.tokens.prev),We({name:r,statement:this,type:n?"generator":null,ignoreLoopFunc:Je}),"("===u.tokens.next.id&&u.tokens.next.line===u.tokens.curr.line&&w("E039"),this}),B("function",function(){var e=!1;"*"===u.tokens.next.value&&(u.inES6()||x("W119",u.tokens.curr,"function*","6"),A("*"),e=!0);var t=ae();return We({name:t,type:e?"generator":null}),this}),D("if",function(){var e=u.tokens.next;Le(),u.condition=!0,A("(");var t=P(0);_e(t);var n=null;u.option.forin&&u.forinifcheckneeded&&(u.forinifcheckneeded=!1,n=u.forinifchecks[u.forinifchecks.length-1],"(punctuator)"===t.type&&"!"===t.value?n.type="(negative)":n.type="(positive)"),A(")",e),u.condition=!1;var r=de(!0,!0);return n&&"(negative)"===n.type&&r&&r[0]&&"(identifier)"===r[0].type&&"continue"===r[0].value&&(n.type="(negative-with-continue)"),"else"===u.tokens.next.id&&(A("else"),"if"===u.tokens.next.id||"switch"===u.tokens.next.id?fe():de(!0,!0)),this}),D("try",function(){function e(){if(A("catch"),A("("),u.funct["(scope)"].stack("catchparams"),Ue(u.tokens.next,["[","{"])){var e=Oe();r.each(e,function(e){e.id&&u.funct["(scope)"].addParam(e.id,e,"exception")})}else"(identifier)"!==u.tokens.next.type?x("E030",u.tokens.next,u.tokens.next.value):u.funct["(scope)"].addParam(ce(),u.tokens.curr,"exception");"if"===u.tokens.next.value&&(u.inMoz()||x("W118",u.tokens.curr,"catch filter"),A("if"),P(0)),A(")"),de(!1),u.funct["(scope)"].unstack()}var t;for(de(!0);"catch"===u.tokens.next.id;)Le(),t&&!u.inMoz()&&x("W118",u.tokens.next,"multiple catch blocks"),e(),t=!0;return"finally"===u.tokens.next.id?(A("finally"),void de(!0)):(t||w("E021",u.tokens.next,"catch",u.tokens.next.value),this)}),D("while",function(){var e=u.tokens.next;return u.funct["(breakage)"]+=1,u.funct["(loopage)"]+=1,Le(),A("("),_e(P(0)),A(")",e),de(!0,!0),u.funct["(breakage)"]-=1,u.funct["(loopage)"]-=1,this}).labelled=!0,D("with",function(){var e=u.tokens.next;return u.isStrict()?w("E010",u.tokens.curr):u.option.withstmt||x("W085",u.tokens.curr),A("("),P(0),A(")",e),de(!0,!0),this}),D("switch",function(){var e=u.tokens.next,t=!1,n=!1;for(u.funct["(breakage)"]+=1,A("("),_e(P(0)),A(")",e),e=u.tokens.next,A("{"),u.tokens.next.from===Xe&&(n=!0),n||(Xe+=u.option.indent),this.cases=[];;)switch(u.tokens.next.id){case"case":switch(u.funct["(verb)"]){case"yield":case"break":case"case":case"continue":case"return":case"switch":case"throw":break;default:u.tokens.curr.caseFallsThrough||x("W086",u.tokens.curr,"case")}A("case"),this.cases.push(P(0)),Le(),t=!0,A(":"),u.funct["(verb)"]="case";break;case"default":switch(u.funct["(verb)"]){case"yield":case"break":case"continue":case"return":case"throw":break;default:this.cases.length&&(u.tokens.curr.caseFallsThrough||x("W086",u.tokens.curr,"default"))}A("default"),t=!0,A(":");break;case"}":return n||(Xe-=u.option.indent),A("}",e),u.funct["(breakage)"]-=1,void(u.funct["(verb)"]=void 0);case"(end)":return void w("E023",u.tokens.next,"}");default:if(Xe+=u.option.indent,t)switch(u.tokens.curr.id){case",":return void w("E040");case":":t=!1,he();break;default:return void w("E025",u.tokens.curr)}else{if(":"!==u.tokens.curr.id)return void w("E021",u.tokens.next,"case",u.tokens.next.value);A(":"),w("E024",u.tokens.curr,":"),he()}Xe-=u.option.indent}return this}).labelled=!0,U("debugger",function(){return u.option.debug||x("W087",this),this}).exps=!0,function(){var e=U("do",function(){u.funct["(breakage)"]+=1,u.funct["(loopage)"]+=1,Le(),this.first=de(!0,!0),A("while");var e=u.tokens.next;return A("("),_e(P(0)),A(")",e),u.funct["(breakage)"]-=1,u.funct["(loopage)"]-=1,this});e.labelled=!0,e.exps=!0}(),D("for",function(){var e,t=u.tokens.next,n=!1,i=null;"each"===t.value&&(i=t,A("each"),u.inMoz()||x("W118",u.tokens.curr,"for each")),Le(),A("(");var o,s,a,c=0,l=["in","of"],f=0;Ue(u.tokens.next,["{","["])&&++f;do{if(o=L(c),++c,Ue(o,["{","["])?++f:Ue(o,["}","]"])&&--f,f<0)break;0===f&&(!s&&De(o,",")?s=o:!a&&De(o,"=")&&(a=o))}while(f>0||!r.contains(l,o.value)&&";"!==o.value&&"(end)"!==o.type);if(r.contains(l,o.value)){u.inES6()||"of"!==o.value||x("W104",o,"for of","6");var h=!(a||s);if(a&&w("W133",s,o.value,"initializer is forbidden"),s&&w("W133",s,o.value,"more than one ForBinding"),"var"===u.tokens.next.id?(A("var"),u.tokens.curr.fud({prefix:!0})):"let"===u.tokens.next.id||"const"===u.tokens.next.id?(A(u.tokens.next.id),n=!0,u.funct["(scope)"].stack(),u.tokens.curr.fud({prefix:!0})):Object.create(ht).fud({prefix:!0,implied:"for",ignore:!h}),A(o.value),P(20),A(")",t),"in"===o.value&&u.option.forin&&(u.forinifcheckneeded=!0,void 0===u.forinifchecks&&(u.forinifchecks=[]),u.forinifchecks.push({type:"(none)"})),u.funct["(breakage)"]+=1,u.funct["(loopage)"]+=1,e=de(!0,!0),"in"===o.value&&u.option.forin){if(u.forinifchecks&&u.forinifchecks.length>0){var p=u.forinifchecks.pop();(e&&e.length>0&&("object"!=typeof e[0]||"if"!==e[0].value)||"(positive)"===p.type&&e.length>1||"(negative)"===p.type)&&x("W089",this)}u.forinifcheckneeded=!1}u.funct["(breakage)"]-=1,u.funct["(loopage)"]-=1}else{if(i&&w("E045",i),";"!==u.tokens.next.id)if("var"===u.tokens.next.id)A("var"),u.tokens.curr.fud();else if("let"===u.tokens.next.id)A("let"),n=!0,u.funct["(scope)"].stack(),u.tokens.curr.fud();else for(;P(0,"for"),","===u.tokens.next.id;)s();if(C(u.tokens.curr),A(";"),u.funct["(loopage)"]+=1,";"!==u.tokens.next.id&&_e(P(0)),C(u.tokens.curr),A(";"),";"===u.tokens.next.id&&w("E021",u.tokens.next,")",";"),")"!==u.tokens.next.id)for(;P(0,"for"),","===u.tokens.next.id;)s();A(")",t),u.funct["(breakage)"]+=1,de(!0,!0),u.funct["(breakage)"]-=1,u.funct["(loopage)"]-=1}return n&&u.funct["(scope)"].unstack(),this}).labelled=!0,U("break",function(){var e=u.tokens.next.value;return u.option.asi||C(this),";"===u.tokens.next.id||u.tokens.next.reach||u.tokens.curr.line!==G(u.tokens.next)?0===u.funct["(breakage)"]&&x("W052",u.tokens.next,this.value):(u.funct["(scope)"].funct.hasBreakLabel(e)||x("W090",u.tokens.next,e),this.first=u.tokens.next,A()),ue(this),this}).exps=!0,U("continue",function(){var e=u.tokens.next.value;return 0===u.funct["(breakage)"]&&x("W052",u.tokens.next,this.value),u.funct["(loopage)"]||x("W052",u.tokens.next,this.value),u.option.asi||C(this),";"===u.tokens.next.id||u.tokens.next.reach||u.tokens.curr.line===G(u.tokens.next)&&(u.funct["(scope)"].funct.hasBreakLabel(e)||x("W090",u.tokens.next,e),this.first=u.tokens.next,A()),ue(this),this}).exps=!0,U("return",function(){return this.line===G(u.tokens.next)?";"===u.tokens.next.id||u.tokens.next.reach||(this.first=P(0),!this.first||"(punctuator)"!==this.first.type||"="!==this.first.value||this.first.paren||u.option.boss||E("W093",this.first.line,this.first.character)):"(punctuator)"===u.tokens.next.type&&["[","{","+","-"].indexOf(u.tokens.next.value)>-1&&C(this),ue(this),this}).exps=!0,function(e){e.exps=!0,e.lbp=25}(B("yield",function(){var e=u.tokens.prev;u.inES6(!0)&&!u.funct["(generator)"]?"(catch)"===u.funct["(name)"]&&u.funct["(context)"]["(generator)"]||w("E046",u.tokens.curr,"yield"):u.inES6()||x("W104",u.tokens.curr,"yield","6"),u.funct["(generator)"]="yielded";var t=!1;return"*"===u.tokens.next.value&&(t=!0,A("*")),this.line!==G(u.tokens.next)&&u.inMoz()?u.option.asi||C(this):((t||";"!==u.tokens.next.id&&!u.option.asi&&!u.tokens.next.reach&&u.tokens.next.nud)&&(V(u.tokens.curr,u.tokens.next),this.first=P(10),"(punctuator)"!==this.first.type||"="!==this.first.value||this.first.paren||u.option.boss||E("W093",this.first.line,this.first.character)),u.inMoz()&&")"!==u.tokens.next.id&&(e.lbp>30||!e.assign&&!O()||"yield"===e.id)&&w("E050",this)),this})),U("throw",function(){return C(this),this.first=P(20),ue(this),this}).exps=!0,U("import",function(){if(u.inES6()||x("W119",u.tokens.curr,"import","6"),"(string)"===u.tokens.next.type)return A("(string)"),this;if(u.tokens.next.identifier){if(this.name=ce(),u.funct["(scope)"].addlabel(this.name,{type:"const",token:u.tokens.curr}),","!==u.tokens.next.value)return A("from"),A("(string)"),this;A(",")}if("*"===u.tokens.next.id)A("*"),A("as"),u.tokens.next.identifier&&(this.name=ce(),u.funct["(scope)"].addlabel(this.name,{type:"const",token:u.tokens.curr}));else for(A("{");;){if("}"===u.tokens.next.value){A("}");break}var e;if("default"===u.tokens.next.type?(e="default",A("default")):e=ce(),"as"===u.tokens.next.value&&(A("as"),e=ce()),u.funct["(scope)"].addlabel(e,{type:"const",token:u.tokens.curr}),","!==u.tokens.next.value){if("}"===u.tokens.next.value){A("}");break}w("E024",u.tokens.next,u.tokens.next.value);break}A(",")}return A("from"),A("(string)"),this}).exps=!0,U("export",function(){var e,t,n=!0;if(u.inES6()||(x("W119",u.tokens.curr,"export","6"),n=!1),u.funct["(scope)"].block.isGlobal()||(w("E053",u.tokens.curr),n=!1),"*"===u.tokens.next.value)return A("*"),A("from"),A("(string)"),this;if("default"===u.tokens.next.type){u.nameStack.set(u.tokens.next),A("default");var r=u.tokens.next.id;return"function"!==r&&"class"!==r||(this.block=!0),e=L(),P(10),t=e.value,this.block&&(u.funct["(scope)"].addlabel(t,{type:r,token:e}),u.funct["(scope)"].setExported(t,e)),this}if("{"===u.tokens.next.value){A("{");for(var i=[];;){if(u.tokens.next.identifier||w("E030",u.tokens.next,u.tokens.next.value),A(),i.push(u.tokens.curr),"as"===u.tokens.next.value&&(A("as"),u.tokens.next.identifier||w("E030",u.tokens.next,u.tokens.next.value),A()),","!==u.tokens.next.value){if("}"===u.tokens.next.value){A("}");break}w("E024",u.tokens.next,u.tokens.next.value);break}A(",")}return"from"===u.tokens.next.value?(A("from"),A("(string)")):n&&i.forEach(function(e){u.funct["(scope)"].setExported(e.value,e)}),this}if("var"===u.tokens.next.id)A("var"),u.tokens.curr.fud({inexport:!0});else if("let"===u.tokens.next.id)A("let"),u.tokens.curr.fud({inexport:!0});else if("const"===u.tokens.next.id)A("const"),u.tokens.curr.fud({inexport:!0});else if("function"===u.tokens.next.id)this.block=!0,A("function"),u.syntax["function"].fud({inexport:!0});else if("class"===u.tokens.next.id){this.block=!0,A("class");var o=u.tokens.next;u.syntax["class"].fud(),u.funct["(scope)"].setExported(o.value,o)}else w("E024",u.tokens.next,u.tokens.next.value);return this}).exps=!0,z("abstract"),z("boolean"),z("byte"),z("char"),z("class",{es5:!0,nud:Ve}),z("double"),z("enum",{es5:!0}),z("export",{es5:!0}),z("extends",{es5:!0}),z("final"),z("float"),z("goto"),z("implements",{es5:!0,strictOnly:!0}),z("import",{es5:!0}),z("int"),z("interface",{es5:!0,strictOnly:!0}),z("long"),z("native"),z("package",{es5:!0,strictOnly:!0}),z("private",{es5:!0,strictOnly:!0}),z("protected",{es5:!0,strictOnly:!0}),z("public",{es5:!0,strictOnly:!0}),z("short"),z("static",{es5:!0,strictOnly:!0}),z("super",{es5:!0}),z("synchronized"),z("transient"),z("volatile");var pt=function(){var e,t,n,r=-1,i=0,o={};Ue(u.tokens.curr,["[","{"])&&(i+=1);do{if(n=r===-1?u.tokens.curr:e,e=r===-1?u.tokens.next:L(r),t=L(r+1),r+=1,Ue(e,["[","{"])?i+=1:Ue(e,["]","}"])&&(i-=1),1===i&&e.identifier&&"for"===e.value&&!De(n,".")){o.isCompArray=!0,o.notJson=!0;break}if(0===i&&Ue(e,["}","]"])){if("="===t.value){o.isDestAssign=!0,o.notJson=!0;break}if("."===t.value){o.notJson=!0;break}}De(e,";")&&(o.isBlock=!0,o.notJson=!0)}while(i>0&&"(end)"!==e.id);return o},dt=function(){function e(e){var t=n.variables.filter(function(t){if(t.value===e)return t.undef=!1,e}).length;return 0!==t}function t(e){var t=n.variables.filter(function(t){if(t.value===e&&!t.undef)return t.unused===!0&&(t.unused=!1),e}).length;return 0===t; -}var n,i=function(){this.mode="use",this.variables=[]},o=[];return{stack:function(){n=new i,o.push(n)},unstack:function(){n.variables.filter(function(e){e.unused&&x("W098",e.token,e.raw_text||e.value),e.undef&&u.funct["(scope)"].block.use(e.value,e.token)}),o.splice(-1,1),n=o[o.length-1]},setState:function(e){r.contains(["use","define","generate","filter"],e)&&(n.mode=e)},check:function(r){if(n)return n&&"use"===n.mode?(t(r)&&n.variables.push({funct:u.funct,token:u.tokens.curr,value:r,undef:!0,unused:!1}),!0):n&&"define"===n.mode?(e(r)||n.variables.push({funct:u.funct,token:u.tokens.curr,value:r,undef:!1,unused:!0}),!0):n&&"generate"===n.mode?(u.funct["(scope)"].block.use(r,u.tokens.curr),!0):!(!n||"filter"!==n.mode)&&(t(r)&&u.funct["(scope)"].block.use(r,u.tokens.curr),!0)}}},mt=function(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")},vt=function(n,i,s){function c(e,t){e&&(Array.isArray(e)||"object"!=typeof e||(e=Object.keys(e)),e.forEach(t))}var l,f,d,m,g,y,W={},j={};i=r.clone(i),u.reset(),i&&i.scope?p.scope=i.scope:(p.errors=[],p.undefs=[],p.internals=[],p.blacklist={},p.scope="(main)"),et=Object.create(null),v(et,o.ecmaIdentifiers[3]),v(et,o.reservedVars),v(et,s||{}),He=Object.create(null);var L=Object.create(null);if(i)for(c(i.predef||null,function(e){var t,n;"-"===e[0]?(t=e.slice(1),p.blacklist[t]=t,delete et[t]):(n=Object.getOwnPropertyDescriptor(i.predef,e),et[e]=!!n&&n.value)}),c(i.exported||null,function(e){L[e]=!0}),delete i.predef,delete i.exported,y=Object.keys(i),d=0;d0&&(s.implieds=a),nt.length>0&&(s.urls=nt),o=u.funct["(scope)"].getUsedOrDefinedGlobals(),o.length>0&&(s.globals=o),n=1;n0&&(s.unused=c);for(i in Qe)if("number"==typeof Qe[i]){s.member=Qe;break}return s},vt.jshint=vt,vt}();"object"==typeof n&&n&&(n.JSHINT=p)},{"../lodash":"/node_modules/jshint/lodash.js","./lex.js":"/node_modules/jshint/src/lex.js","./messages.js":"/node_modules/jshint/src/messages.js","./options.js":"/node_modules/jshint/src/options.js","./reg.js":"/node_modules/jshint/src/reg.js","./scope-manager.js":"/node_modules/jshint/src/scope-manager.js","./state.js":"/node_modules/jshint/src/state.js","./style.js":"/node_modules/jshint/src/style.js","./vars.js":"/node_modules/jshint/src/vars.js",events:"/node_modules/browserify/node_modules/events/events.js"}],"/node_modules/jshint/src/lex.js":[function(e,t,n){"use strict";function r(){var e=[];return{push:function(t){e.push(t)},check:function(){for(var t=0;t0&&this.context[this.context.length-1].type===e},pushContext:function(e){this.context.push({type:e})},popContext:function(){return this.context.pop()},isContext:function(e){return this.context.length>0&&this.context[this.context.length-1]===e},currentContext:function(){return this.context.length>0&&this.context[this.context.length-1]},getLines:function(){return this._lines=c.lines,this._lines},setLines:function(e){this._lines=e,c.lines=this._lines},peek:function(e){return this.input.charAt(e||0)},skip:function(e){e=e||1,this["char"]+=e,this.input=this.input.slice(e)},on:function(e,t){e.split(" ").forEach(function(e){this.emitter.on(e,t)}.bind(this))},trigger:function(){this.emitter.emit.apply(this.emitter,Array.prototype.slice.call(arguments))},triggerAsync:function(e,t,n,r){n.push(function(){r()&&this.trigger(e,t)}.bind(this))},scanPunctuator:function(){var e,t,n,r=this.peek();switch(r){case".":if(/^[0-9]$/.test(this.peek(1)))return null;if("."===this.peek(1)&&"."===this.peek(2))return{type:h.Punctuator,value:"..."};case"(":case")":case";":case",":case"[":case"]":case":":case"~":case"?":return{type:h.Punctuator,value:r};case"{":return this.pushContext(p.Block),{type:h.Punctuator,value:r};case"}":return this.inContext(p.Block)&&this.popContext(),{type:h.Punctuator,value:r};case"#":return{type:h.Punctuator,value:r};case"":return null}return e=this.peek(1),t=this.peek(2),n=this.peek(3),">"===r&&">"===e&&">"===t&&"="===n?{type:h.Punctuator,value:">>>="}:"="===r&&"="===e&&"="===t?{type:h.Punctuator,value:"==="}:"!"===r&&"="===e&&"="===t?{type:h.Punctuator,value:"!=="}:">"===r&&">"===e&&">"===t?{type:h.Punctuator,value:">>>"}:"<"===r&&"<"===e&&"="===t?{type:h.Punctuator,value:"<<="}:">"===r&&">"===e&&"="===t?{type:h.Punctuator,value:">>="}:"="===r&&">"===e?{type:h.Punctuator,value:r+e}:r===e&&"+-<>&|".indexOf(r)>=0?{type:h.Punctuator,value:r+e}:"<>=!+-*%&|^".indexOf(r)>=0?"="===e?{type:h.Punctuator,value:r+e}:{type:h.Punctuator,value:r}:"/"===r?"="===e?{type:h.Punctuator,value:"/="}:{type:h.Punctuator,value:"/"}:null},scanComments:function(){function e(e,t,n){var r=["jshint","jslint","members","member","globals","global","exported"],i=!1,o=e+t,c="plain";return n=n||{},n.isMultiline&&(o+="*/"),t=t.replace(/\n/g," "),"/*"===e&&a.fallsThrough.test(t)&&(i=!0,c="falls through"),r.forEach(function(n){if(!i&&("//"!==e||"jshint"===n)&&(" "===t.charAt(n.length)&&t.substr(0,n.length)===n&&(i=!0,e+=n,t=t.substr(n.length)),i||" "!==t.charAt(0)||" "!==t.charAt(n.length+1)||t.substr(1,n.length)!==n||(i=!0,e=e+" "+n,t=t.substr(n.length+1)),i))switch(n){case"member":c="members";break;case"global":c="globals";break;default:var r=t.split(":").map(function(e){return e.replace(/^\s+/,"").replace(/\s+$/,"")});if(2===r.length)switch(r[0]){case"ignore":switch(r[1]){case"start":s.ignoringLinterErrors=!0,i=!1;break;case"end":s.ignoringLinterErrors=!1,i=!1}}c=n}}),{type:h.Comment,commentType:c,value:o,body:t,isSpecial:i,isMultiline:n.isMultiline||!1,isMalformed:n.isMalformed||!1}}var t=this.peek(),n=this.peek(1),r=this.input.substr(2),i=this.line,o=this["char"],s=this;if("*"===t&&"/"===n)return this.trigger("error",{code:"E018",line:i,character:o}),this.skip(2),null;if("/"!==t||"*"!==n&&"/"!==n)return null;if("/"===n)return this.skip(this.input.length),e("//",r);var c="";if("*"===n){for(this.inComment=!0,this.skip(2);"*"!==this.peek()||"/"!==this.peek(1);)if(""===this.peek()){if(c+="\n",!this.nextLine())return this.trigger("error",{code:"E017",line:i,character:o}),this.inComment=!1,e("/*",c,{isMultiline:!0,isMalformed:!0})}else c+=this.peek(),this.skip();return this.skip(2),this.inComment=!1,e("/*",c,{isMultiline:!0})}},scanKeyword:function(){var e=/^[a-zA-Z_$][a-zA-Z0-9_$]*/.exec(this.input),t=["if","in","do","var","for","new","try","let","this","else","case","void","with","enum","while","break","catch","throw","const","yield","class","super","return","typeof","delete","switch","export","import","default","finally","extends","function","continue","debugger","instanceof"];return e&&t.indexOf(e[0])>=0?{type:h.Keyword,value:e[0]}:null},scanIdentifier:function(){function e(e){return e>256}function t(e){return e>256}function n(e){return/^[0-9a-fA-F]$/.test(e)}function r(e){return e.replace(/\\u([0-9a-fA-F]{4})/g,function(e,t){return String.fromCharCode(parseInt(t,16))})}var i,o,s="",a=0,c=function(){if(a+=1,"u"!==this.peek(a))return null;var e,r=this.peek(a+1),i=this.peek(a+2),o=this.peek(a+3),s=this.peek(a+4);return n(r)&&n(i)&&n(o)&&n(s)?(e=parseInt(r+i+o+s,16),f[e]||t(e)?(a+=5,"\\u"+r+i+o+s):null):null}.bind(this),u=function(){var t=this.peek(a),n=t.charCodeAt(0);return 92===n?c():n<128?l[n]?(a+=1,t):null:e(n)?(a+=1,t):null}.bind(this),p=function(){var e=this.peek(a),n=e.charCodeAt(0);return 92===n?c():n<128?f[n]?(a+=1,e):null:t(n)?(a+=1,e):null}.bind(this);if(o=u(),null===o)return null;for(s=o;o=p(),null!==o;)s+=o;switch(s){case"true":case"false":i=h.BooleanLiteral;break;case"null":i=h.NullLiteral;break;default:i=h.Identifier}return{type:i,value:r(s),text:s,tokenLength:s.length}},scanNumericLiteral:function(){function e(e){return/^[0-9]$/.test(e)}function t(e){return/^[0-7]$/.test(e)}function n(e){return/^[01]$/.test(e)}function r(e){return/^[0-9a-fA-F]$/.test(e)}function i(e){return"$"===e||"_"===e||"\\"===e||e>="a"&&e<="z"||e>="A"&&e<="Z"}var o,s=0,a="",u=this.input.length,l=this.peek(s),f=e,p=10,d=!1;if("."!==l&&!e(l))return null;if("."!==l){for(a=this.peek(s),s+=1,l=this.peek(s),"0"===a&&("x"!==l&&"X"!==l||(f=r,p=16,s+=1,a+=l),"o"!==l&&"O"!==l||(f=t,p=8,c.inES6(!0)||this.trigger("warning",{code:"W119",line:this.line,character:this["char"],data:["Octal integer literal","6"]}),s+=1,a+=l),"b"!==l&&"B"!==l||(f=n,p=2,c.inES6(!0)||this.trigger("warning",{code:"W119",line:this.line,character:this["char"],data:["Binary integer literal","6"]}),s+=1,a+=l),t(l)&&(f=t,p=8,d=!0,o=!1,s+=1,a+=l),!t(l)&&e(l)&&(s+=1,a+=l));s=0&&i<=7&&c.isStrict()});break;case"u":var o=this.input.substr(1,4),s=parseInt(o,16);isNaN(s)&&this.trigger("warning",{code:"W052",line:this.line,character:this["char"],data:["u"+o]}),r=String.fromCharCode(s),n=5;break;case"v":this.triggerAsync("warning",{code:"W114",line:this.line,character:this["char"],data:["\\v"]},e,function(){return c.jsonMode}),r="\x0B";break;case"x":var a=parseInt(this.input.substr(1,2),16);this.triggerAsync("warning",{code:"W114",line:this.line,character:this["char"],data:["\\x-"]},e,function(){return c.jsonMode}),r=String.fromCharCode(a),n=3;break;case"\\":r="\\\\";break;case'"':r='\\"';break;case"/":break;case"":t=!0,r=""}return{"char":r,jump:n,allowNewLine:t}},scanTemplateLiteral:function(e){var t,n,r="",i=this.line,o=this["char"],s=this.templateStarts.length;if(!c.inES6(!0))return null;if("`"===this.peek())t=h.TemplateHead,this.templateStarts.push({line:this.line,"char":this["char"]}),s=this.templateStarts.length,this.skip(1),this.pushContext(p.Template);else{if(!this.inContext(p.Template)||"}"!==this.peek())return null;t=h.TemplateMiddle}for(;"`"!==this.peek();){for(;""===(n=this.peek());)if(r+="\n",!this.nextLine()){var a=this.templateStarts.pop();return this.trigger("error",{code:"E052",line:a.line,character:a["char"]}),{type:t,value:r,startLine:i,startChar:o,isUnclosed:!0,depth:s,context:this.popContext()}}if("$"===n&&"{"===this.peek(1))return r+="${",this.skip(2),{type:t,value:r,startLine:i,startChar:o,isUnclosed:!1,depth:s,context:this.currentContext()};if("\\"===n){var u=this.scanEscapeSequence(e);r+=u["char"],this.skip(u.jump)}else"`"!==n&&(r+=n,this.skip(1))}return t=t===h.TemplateHead?h.NoSubstTemplate:h.TemplateTail,this.skip(1),this.templateStarts.pop(),{type:t,value:r,startLine:i,startChar:o,isUnclosed:!1,depth:s,context:this.popContext()}},scanStringLiteral:function(e){var t=this.peek();if('"'!==t&&"'"!==t)return null;this.triggerAsync("warning",{code:"W108",line:this.line,character:this["char"]},e,function(){return c.jsonMode&&'"'!==t});var n="",r=this.line,i=this["char"],o=!1;for(this.skip();this.peek()!==t;)if(""===this.peek()){if(o?(o=!1,this.triggerAsync("warning",{code:"W043",line:this.line,character:this["char"]},e,function(){return!c.option.multistr}),this.triggerAsync("warning",{code:"W042",line:this.line,character:this["char"]},e,function(){return c.jsonMode&&c.option.multistr})):this.trigger("warning",{code:"W112",line:this.line,character:this["char"]}),!this.nextLine())return this.trigger("error",{code:"E029",line:r,character:i}),{type:h.StringLiteral,value:n,startLine:r,startChar:i,isUnclosed:!0,quote:t}}else{o=!1;var s=this.peek(),a=1;if(s<" "&&this.trigger("warning",{code:"W113",line:this.line,character:this["char"],data:[""]}),"\\"===s){var u=this.scanEscapeSequence(e);s=u["char"],a=u.jump,o=u.allowNewLine}n+=s,this.skip(a)}return this.skip(),{type:h.StringLiteral,value:n,startLine:r,startChar:i,isUnclosed:!1,quote:t}},scanRegExp:function(){var e,t=0,n=this.input.length,r=this.peek(),i=r,o="",s=[],a=!1,c=!1,u=function(){r<" "&&(a=!0,this.trigger("warning",{code:"W048",line:this.line,character:this["char"]})),"<"===r&&(a=!0,this.trigger("warning",{code:"W049",line:this.line,character:this["char"],data:[r]}))}.bind(this);if(!this.prereg||"/"!==r)return null;for(t+=1,e=!1;t=this.getLines().length)return!1;this.input=this.getLines()[this.line],this.line+=1,this["char"]=1,this.from=1;var t=this.input.trim(),n=function(){return o.some(arguments,function(e){return 0===t.indexOf(e)})},r=function(){return o.some(arguments,function(e){return t.indexOf(e,t.length-e.length)!==-1})};if(this.ignoringLinterErrors===!0&&(n("/*","//")||this.inComment&&r("*/")||(this.input="")),e=this.scanNonBreakingSpaces(),e>=0&&this.trigger("warning",{code:"W125",line:this.line,character:e+1}),this.input=this.input.replace(/\t/g,c.tab),e=this.scanUnsafeChars(),e>=0&&this.trigger("warning",{code:"W100",line:this.line,character:e}),!this.ignoringLinterErrors&&c.option.maxlen&&c.option.maxlen=0;--t){var n=k[t]["(labels)"];if(n[e])return n}}function d(e){for(var t=k.length-1;t>=0;t--){var n=k[t];if(n["(usages)"][e])return n["(usages)"][e];if(n===b)break}return!1}function m(t,n){if("outer"===e.option.shadow)for(var r="global"===b["(type)"],i="functionparams"===g["(type)"],o=!r,s=0;s1?k[k.length-2]:null,a=g===b,l="functionparams"===g["(type)"],h="functionouter"===g["(type)"],p=g["(usages)"],d=g["(labels)"],m=Object.keys(p);for(p.__proto__&&m.indexOf("__proto__")===-1&&m.push("__proto__"),t=0;t=0;o--){var s=k[o];if(s["(labels)"][e]&&(!n||s["(labels)"][e]["(blockscoped)"]))return s["(labels)"][e]["(type)"];var a=r?k[o-1]:s;if(a&&"functionparams"===a["(type)"])return null}return null},hasBreakLabel:function(e){for(var t=k.length-1;t>=0;t--){var n=k[t];if(n["(breakLabels)"][e])return!0;if("functionparams"===n["(type)"])return!1}return!1},has:function(e,t){return Boolean(this.labeltype(e,t))},add:function(e,t,n,r){g["(labels)"][e]={"(type)":t,"(token)":n,"(blockscoped)":!1,"(function)":b,"(unused)":r}}},block:{isGlobal:function(){return"global"===g["(type)"]},use:function(t,n){var r=b["(parent)"];r&&r["(labels)"][t]&&"param"===r["(labels)"][t]["(type)"]&&(j.funct.has(t,{excludeParams:!0,onlyBlockscoped:!0})||(r["(labels)"][t]["(unused)"]=!1)),n&&(e.ignored.W117||e.option.undef===!1)&&(n.ignoreUndef=!0),l(t),n&&(n["(function)"]=b,g["(usages)"][t]["(tokens)"].push(n))},reassign:function(e,t){this.modify(e,t),g["(usages)"][e]["(reassigned)"].push(t)},modify:function(e,t){l(e),g["(usages)"][e]["(modified)"].push(t)},add:function(e,t,n,r){g["(labels)"][e]={"(type)":t,"(token)":n,"(blockscoped)":!0,"(unused)":r}},addBreakLabel:function(t,n){var r=n.token;j.funct.hasBreakLabel(t)?c("E011",r,t):"outer"===e.option.shadow&&(j.funct.has(t)?c("W004",r,t):m(t,r)),g["(breakLabels)"][t]=r}}};return j};t.exports=s},{"../lodash":"/node_modules/jshint/lodash.js",events:"/node_modules/browserify/node_modules/events/events.js"}],"/node_modules/jshint/src/state.js":[function(e,t,n){"use strict";var r=e("./name-stack.js"),i={syntax:{},isStrict:function(){return this.directive["use strict"]||this.inClassBody||this.option.module||"implied"===this.option.strict},inMoz:function(){return this.option.moz},inES6:function(){return this.option.moz||this.option.esversion>=6},inES5:function(e){return e?!(this.option.esversion&&5!==this.option.esversion||this.option.moz):!this.option.esversion||this.option.esversion>=5||this.option.moz},reset:function(){this.tokens={prev:null,next:null,curr:null},this.option={},this.funct=null,this.ignored={},this.directive={},this.jsonMode=!1,this.jsonWarnings=[],this.lines=[],this.tab="",this.cache={},this.ignoredLines={},this.forinifcheckneeded=!1,this.nameStack=new r,this.inClassBody=!1}};n.state=i},{"./name-stack.js":"/node_modules/jshint/src/name-stack.js"}],"/node_modules/jshint/src/style.js":[function(e,t,n){"use strict";n.register=function(e){e.on("Identifier",function(t){e.getOption("proto")||"__proto__"===t.name&&e.warn("W103",{line:t.line,"char":t["char"],data:[t.name,"6"]})}),e.on("Identifier",function(t){e.getOption("iterator")||"__iterator__"===t.name&&e.warn("W103",{line:t.line,"char":t["char"],data:[t.name]})}),e.on("Identifier",function(t){e.getOption("camelcase")&&t.name.replace(/^_+|_+$/g,"").indexOf("_")>-1&&!t.name.match(/^[A-Z0-9_]*$/)&&e.warn("W106",{line:t.line,"char":t.from,data:[t.name]})}),e.on("String",function(t){var n,r=e.getOption("quotmark");r&&("single"===r&&"'"!==t.quote&&(n="W109"),"double"===r&&'"'!==t.quote&&(n="W108"),r===!0&&(e.getCache("quotmark")||e.setCache("quotmark",t.quote),e.getCache("quotmark")!==t.quote&&(n="W110")),n&&e.warn(n,{line:t.line,"char":t["char"]}))}),e.on("Number",function(t){"."===t.value.charAt(0)&&e.warn("W008",{line:t.line,"char":t["char"],data:[t.value]}),"."===t.value.substr(t.value.length-1)&&e.warn("W047",{line:t.line,"char":t["char"],data:[t.value]}),/^00+/.test(t.value)&&e.warn("W046",{line:t.line,"char":t["char"],data:[t.value]})}),e.on("String",function(t){var n=/^(?:javascript|jscript|ecmascript|vbscript|livescript)\s*:/i;e.getOption("scripturl")||n.test(t.value)&&e.warn("W107",{line:t.line,"char":t["char"]})})}},{}],"/node_modules/jshint/src/vars.js":[function(e,t,n){"use strict";n.reservedVars={arguments:!1,NaN:!1},n.ecmaIdentifiers={3:{Array:!1,Boolean:!1,Date:!1,decodeURI:!1,decodeURIComponent:!1,encodeURI:!1,encodeURIComponent:!1,Error:!1,eval:!1,EvalError:!1,Function:!1,hasOwnProperty:!1,isFinite:!1,isNaN:!1,Math:!1,Number:!1,Object:!1,parseInt:!1,parseFloat:!1,RangeError:!1,ReferenceError:!1,RegExp:!1,String:!1,SyntaxError:!1,TypeError:!1,URIError:!1},5:{JSON:!1},6:{Map:!1,Promise:!1,Proxy:!1,Reflect:!1,Set:!1,Symbol:!1,WeakMap:!1,WeakSet:!1}},n.browser={Audio:!1,Blob:!1,addEventListener:!1,applicationCache:!1,atob:!1,blur:!1,btoa:!1,cancelAnimationFrame:!1,CanvasGradient:!1,CanvasPattern:!1,CanvasRenderingContext2D:!1,CSS:!1,clearInterval:!1,clearTimeout:!1,close:!1,closed:!1,Comment:!1,CustomEvent:!1,DOMParser:!1,defaultStatus:!1,Document:!1,document:!1,DocumentFragment:!1,Element:!1,ElementTimeControl:!1,Event:!1,event:!1,fetch:!1,FileReader:!1,FormData:!1,focus:!1,frames:!1,getComputedStyle:!1,HTMLElement:!1,HTMLAnchorElement:!1,HTMLBaseElement:!1,HTMLBlockquoteElement:!1,HTMLBodyElement:!1,HTMLBRElement:!1,HTMLButtonElement:!1,HTMLCanvasElement:!1,HTMLCollection:!1,HTMLDirectoryElement:!1,HTMLDivElement:!1,HTMLDListElement:!1,HTMLFieldSetElement:!1,HTMLFontElement:!1,HTMLFormElement:!1,HTMLFrameElement:!1,HTMLFrameSetElement:!1,HTMLHeadElement:!1,HTMLHeadingElement:!1,HTMLHRElement:!1,HTMLHtmlElement:!1,HTMLIFrameElement:!1,HTMLImageElement:!1,HTMLInputElement:!1,HTMLIsIndexElement:!1,HTMLLabelElement:!1,HTMLLayerElement:!1,HTMLLegendElement:!1,HTMLLIElement:!1,HTMLLinkElement:!1,HTMLMapElement:!1,HTMLMenuElement:!1,HTMLMetaElement:!1,HTMLModElement:!1,HTMLObjectElement:!1,HTMLOListElement:!1,HTMLOptGroupElement:!1,HTMLOptionElement:!1,HTMLParagraphElement:!1,HTMLParamElement:!1,HTMLPreElement:!1,HTMLQuoteElement:!1,HTMLScriptElement:!1,HTMLSelectElement:!1,HTMLStyleElement:!1,HTMLTableCaptionElement:!1,HTMLTableCellElement:!1,HTMLTableColElement:!1,HTMLTableElement:!1,HTMLTableRowElement:!1,HTMLTableSectionElement:!1,HTMLTemplateElement:!1,HTMLTextAreaElement:!1,HTMLTitleElement:!1,HTMLUListElement:!1,HTMLVideoElement:!1,history:!1,Image:!1,Intl:!1,length:!1,localStorage:!1,location:!1,matchMedia:!1,MessageChannel:!1,MessageEvent:!1,MessagePort:!1,MouseEvent:!1,moveBy:!1,moveTo:!1,MutationObserver:!1,name:!1,Node:!1,NodeFilter:!1,NodeList:!1,Notification:!1,navigator:!1,onbeforeunload:!0,onblur:!0,onerror:!0,onfocus:!0,onload:!0,onresize:!0,onunload:!0,open:!1,openDatabase:!1,opener:!1,Option:!1,parent:!1,performance:!1,print:!1,Range:!1,requestAnimationFrame:!1,removeEventListener:!1,resizeBy:!1,resizeTo:!1,screen:!1,scroll:!1,scrollBy:!1,scrollTo:!1,sessionStorage:!1,setInterval:!1,setTimeout:!1,SharedWorker:!1,status:!1,SVGAElement:!1,SVGAltGlyphDefElement:!1,SVGAltGlyphElement:!1,SVGAltGlyphItemElement:!1,SVGAngle:!1,SVGAnimateColorElement:!1,SVGAnimateElement:!1,SVGAnimateMotionElement:!1,SVGAnimateTransformElement:!1,SVGAnimatedAngle:!1,SVGAnimatedBoolean:!1,SVGAnimatedEnumeration:!1,SVGAnimatedInteger:!1,SVGAnimatedLength:!1,SVGAnimatedLengthList:!1,SVGAnimatedNumber:!1,SVGAnimatedNumberList:!1,SVGAnimatedPathData:!1,SVGAnimatedPoints:!1,SVGAnimatedPreserveAspectRatio:!1,SVGAnimatedRect:!1,SVGAnimatedString:!1,SVGAnimatedTransformList:!1,SVGAnimationElement:!1,SVGCSSRule:!1,SVGCircleElement:!1,SVGClipPathElement:!1,SVGColor:!1,SVGColorProfileElement:!1,SVGColorProfileRule:!1,SVGComponentTransferFunctionElement:!1,SVGCursorElement:!1,SVGDefsElement:!1,SVGDescElement:!1,SVGDocument:!1,SVGElement:!1,SVGElementInstance:!1,SVGElementInstanceList:!1,SVGEllipseElement:!1,SVGExternalResourcesRequired:!1,SVGFEBlendElement:!1,SVGFEColorMatrixElement:!1,SVGFEComponentTransferElement:!1,SVGFECompositeElement:!1,SVGFEConvolveMatrixElement:!1,SVGFEDiffuseLightingElement:!1,SVGFEDisplacementMapElement:!1,SVGFEDistantLightElement:!1,SVGFEFloodElement:!1,SVGFEFuncAElement:!1,SVGFEFuncBElement:!1,SVGFEFuncGElement:!1,SVGFEFuncRElement:!1,SVGFEGaussianBlurElement:!1,SVGFEImageElement:!1,SVGFEMergeElement:!1,SVGFEMergeNodeElement:!1,SVGFEMorphologyElement:!1,SVGFEOffsetElement:!1,SVGFEPointLightElement:!1,SVGFESpecularLightingElement:!1,SVGFESpotLightElement:!1,SVGFETileElement:!1,SVGFETurbulenceElement:!1,SVGFilterElement:!1,SVGFilterPrimitiveStandardAttributes:!1,SVGFitToViewBox:!1,SVGFontElement:!1,SVGFontFaceElement:!1,SVGFontFaceFormatElement:!1,SVGFontFaceNameElement:!1,SVGFontFaceSrcElement:!1,SVGFontFaceUriElement:!1,SVGForeignObjectElement:!1,SVGGElement:!1,SVGGlyphElement:!1,SVGGlyphRefElement:!1,SVGGradientElement:!1,SVGHKernElement:!1,SVGICCColor:!1,SVGImageElement:!1,SVGLangSpace:!1,SVGLength:!1,SVGLengthList:!1,SVGLineElement:!1,SVGLinearGradientElement:!1,SVGLocatable:!1,SVGMPathElement:!1,SVGMarkerElement:!1,SVGMaskElement:!1,SVGMatrix:!1,SVGMetadataElement:!1,SVGMissingGlyphElement:!1,SVGNumber:!1,SVGNumberList:!1,SVGPaint:!1,SVGPathElement:!1,SVGPathSeg:!1,SVGPathSegArcAbs:!1,SVGPathSegArcRel:!1,SVGPathSegClosePath:!1,SVGPathSegCurvetoCubicAbs:!1,SVGPathSegCurvetoCubicRel:!1,SVGPathSegCurvetoCubicSmoothAbs:!1,SVGPathSegCurvetoCubicSmoothRel:!1,SVGPathSegCurvetoQuadraticAbs:!1,SVGPathSegCurvetoQuadraticRel:!1,SVGPathSegCurvetoQuadraticSmoothAbs:!1,SVGPathSegCurvetoQuadraticSmoothRel:!1,SVGPathSegLinetoAbs:!1,SVGPathSegLinetoHorizontalAbs:!1,SVGPathSegLinetoHorizontalRel:!1,SVGPathSegLinetoRel:!1,SVGPathSegLinetoVerticalAbs:!1,SVGPathSegLinetoVerticalRel:!1,SVGPathSegList:!1,SVGPathSegMovetoAbs:!1,SVGPathSegMovetoRel:!1,SVGPatternElement:!1,SVGPoint:!1,SVGPointList:!1,SVGPolygonElement:!1,SVGPolylineElement:!1,SVGPreserveAspectRatio:!1,SVGRadialGradientElement:!1,SVGRect:!1,SVGRectElement:!1,SVGRenderingIntent:!1,SVGSVGElement:!1,SVGScriptElement:!1,SVGSetElement:!1,SVGStopElement:!1,SVGStringList:!1,SVGStylable:!1,SVGStyleElement:!1,SVGSwitchElement:!1,SVGSymbolElement:!1,SVGTRefElement:!1,SVGTSpanElement:!1,SVGTests:!1,SVGTextContentElement:!1,SVGTextElement:!1,SVGTextPathElement:!1,SVGTextPositioningElement:!1,SVGTitleElement:!1,SVGTransform:!1,SVGTransformList:!1,SVGTransformable:!1,SVGURIReference:!1,SVGUnitTypes:!1,SVGUseElement:!1,SVGVKernElement:!1,SVGViewElement:!1,SVGViewSpec:!1,SVGZoomAndPan:!1,Text:!1,TextDecoder:!1,TextEncoder:!1,TimeEvent:!1,top:!1,URL:!1,WebGLActiveInfo:!1,WebGLBuffer:!1,WebGLContextEvent:!1,WebGLFramebuffer:!1,WebGLProgram:!1,WebGLRenderbuffer:!1,WebGLRenderingContext:!1,WebGLShader:!1,WebGLShaderPrecisionFormat:!1,WebGLTexture:!1,WebGLUniformLocation:!1,WebSocket:!1,window:!1,Window:!1,Worker:!1,XDomainRequest:!1,XMLHttpRequest:!1,XMLSerializer:!1,XPathEvaluator:!1,XPathException:!1,XPathExpression:!1,XPathNamespace:!1,XPathNSResolver:!1,XPathResult:!1},n.devel={alert:!1,confirm:!1,console:!1,Debug:!1,opera:!1,prompt:!1},n.worker={importScripts:!0,postMessage:!0,self:!0,FileReaderSync:!0},n.nonstandard={escape:!1,unescape:!1},n.couch={require:!1,respond:!1,getRow:!1,emit:!1,send:!1,start:!1,sum:!1,log:!1,exports:!1,module:!1,provides:!1},n.node={__filename:!1,__dirname:!1,GLOBAL:!1,global:!1,module:!1,require:!1,Buffer:!0,console:!0,exports:!0,process:!0,setTimeout:!0,clearTimeout:!0,setInterval:!0,clearInterval:!0,setImmediate:!0,clearImmediate:!0},n.browserify={__filename:!1,__dirname:!1,global:!1,module:!1,require:!1,Buffer:!0,exports:!0,process:!0},n.phantom={phantom:!0,require:!0,WebPage:!0,console:!0,exports:!0},n.qunit={asyncTest:!1,deepEqual:!1,equal:!1,expect:!1,module:!1,notDeepEqual:!1,notEqual:!1,notPropEqual:!1,notStrictEqual:!1,ok:!1,propEqual:!1,QUnit:!1,raises:!1,start:!1,stop:!1,strictEqual:!1,test:!1,"throws":!1},n.rhino={defineClass:!1,deserialize:!1,gc:!1,help:!1,importClass:!1,importPackage:!1,java:!1,load:!1,loadClass:!1,Packages:!1,print:!1,quit:!1,readFile:!1,readUrl:!1,runCommand:!1,seal:!1,serialize:!1,spawn:!1,sync:!1,toint32:!1,version:!1},n.shelljs={target:!1,echo:!1,exit:!1,cd:!1,pwd:!1,ls:!1,find:!1,cp:!1,rm:!1,mv:!1,mkdir:!1,test:!1,cat:!1,sed:!1,grep:!1,which:!1,dirs:!1,pushd:!1,popd:!1,env:!1,exec:!1,chmod:!1,config:!1,error:!1,tempdir:!1},n.typed={ArrayBuffer:!1,ArrayBufferView:!1,DataView:!1,Float32Array:!1,Float64Array:!1,Int16Array:!1,Int32Array:!1,Int8Array:!1,Uint16Array:!1,Uint32Array:!1,Uint8Array:!1,Uint8ClampedArray:!1},n.wsh={ActiveXObject:!0,Enumerator:!0,GetObject:!0,ScriptEngine:!0,ScriptEngineBuildVersion:!0,ScriptEngineMajorVersion:!0,ScriptEngineMinorVersion:!0,VBArray:!0,WSH:!0,WScript:!0,XDomainRequest:!0},n.dojo={dojo:!1,dijit:!1,dojox:!1,define:!1,require:!1},n.jquery={$:!1,jQuery:!1},n.mootools={$:!1,$$:!1,Asset:!1,Browser:!1,Chain:!1,Class:!1,Color:!1,Cookie:!1,Core:!1,Document:!1,DomReady:!1,DOMEvent:!1,DOMReady:!1,Drag:!1,Element:!1,Elements:!1,Event:!1,Events:!1,Fx:!1,Group:!1,Hash:!1,HtmlTable:!1,IFrame:!1,IframeShim:!1,InputValidator:!1,instanceOf:!1,Keyboard:!1,Locale:!1,Mask:!1,MooTools:!1,Native:!1,Options:!1,OverText:!1,Request:!1,Scroller:!1,Slick:!1,Slider:!1,Sortables:!1,Spinner:!1,Swiff:!1,Tips:!1,Type:!1,typeOf:!1,URI:!1,Window:!1},n.prototypejs={$:!1,$$:!1,$A:!1,$F:!1,$H:!1,$R:!1,$break:!1,$continue:!1,$w:!1,Abstract:!1,Ajax:!1,Class:!1,Enumerable:!1,Element:!1,Event:!1,Field:!1,Form:!1,Hash:!1,Insertion:!1,ObjectRange:!1,PeriodicalExecuter:!1,Position:!1,Prototype:!1,Selector:!1,Template:!1,Toggle:!1,Try:!1,Autocompleter:!1,Builder:!1,Control:!1,Draggable:!1,Draggables:!1,Droppables:!1,Effect:!1,Sortable:!1,SortableObserver:!1,Sound:!1,Scriptaculous:!1},n.yui={YUI:!1,Y:!1,YUI_config:!1},n.mocha={mocha:!1,describe:!1,xdescribe:!1,it:!1,xit:!1,context:!1,xcontext:!1,before:!1,after:!1,beforeEach:!1,afterEach:!1,suite:!1,test:!1,setup:!1,teardown:!1,suiteSetup:!1,suiteTeardown:!1},n.jasmine={jasmine:!1,describe:!1,xdescribe:!1,it:!1,xit:!1,beforeEach:!1,afterEach:!1,setFixtures:!1,loadFixtures:!1,spyOn:!1,expect:!1,runs:!1,waitsFor:!1,waits:!1,beforeAll:!1,afterAll:!1,fail:!1,fdescribe:!1,fit:!1,pending:!1}},{}]},{},["/node_modules/jshint/src/jshint.js"])}),define("ace/mode/javascript_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/javascript/jshint"],function(require,exports,module){"use strict";function startRegex(e){return RegExp("^("+e.join("|")+")")}var oop=require("../lib/oop"),Mirror=require("../worker/mirror").Mirror,lint=require("./javascript/jshint").JSHINT,disabledWarningsRe=startRegex(["Bad for in variable '(.+)'.",'Missing "use strict"']),errorsRe=startRegex(["Unexpected","Expected ","Confusing (plus|minus)","\\{a\\} unterminated regular expression","Unclosed ","Unmatched ","Unbegun comment","Bad invocation","Missing space after","Missing operator at"]),infoRe=startRegex(["Expected an assignment","Bad escapement of EOL","Unexpected comma","Unexpected space","Missing radix parameter.","A leading decimal point can","\\['{a}'\\] is better written in dot notation.","'{a}' used out of scope"]),JavaScriptWorker=exports.JavaScriptWorker=function(e){Mirror.call(this,e),this.setTimeout(500),this.setOptions()};oop.inherits(JavaScriptWorker,Mirror),function(){this.setOptions=function(e){this.options=e||{esnext:!0,moz:!0,devel:!0,browser:!0,node:!0,laxcomma:!0,laxbreak:!0,lastsemic:!0,onevar:!1,passfail:!1,maxerr:100,expr:!0,multistr:!0,globalstrict:!0},this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.changeOptions=function(e){oop.mixin(this.options,e),this.doc.getValue()&&this.deferredUpdate.schedule(100)},this.isValidJS=function(str){try{eval("throw 0;"+str)}catch(e){if(0===e)return!0}return!1},this.onUpdate=function(){var e=this.doc.getValue();if(e=e.replace(/^#!.*\n/,"\n"),!e)return this.sender.emit("annotate",[]);var t=[],n=this.isValidJS(e)?"warning":"error";lint(e,this.options,this.options.globals);for(var r=lint.errors,i=!1,o=0;o0||-1)*Math.floor(Math.abs(e))),e}Function.prototype.bind||(Function.prototype.bind=function(e){var t=this;if("function"!=typeof t)throw new TypeError("Function.prototype.bind called on incompatible "+t);var n=d.call(arguments,1),i=function(){if(this instanceof i){var r=t.apply(this,n.concat(d.call(arguments)));return Object(r)===r?r:this}return t.apply(e,n.concat(d.call(arguments)))};return t.prototype&&(r.prototype=t.prototype,i.prototype=new r,r.prototype=null),i});var s,a,c,u,l,f=Function.prototype.call,h=Array.prototype,p=Object.prototype,d=h.slice,m=f.bind(p.toString),v=f.bind(p.hasOwnProperty);if((l=v(p,"__defineGetter__"))&&(s=f.bind(p.__defineGetter__),a=f.bind(p.__defineSetter__),c=f.bind(p.__lookupGetter__),u=f.bind(p.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t,n=[];if(n.splice.apply(n,e(20)),n.splice.apply(n,e(26)),t=n.length,n.splice(5,0,"XXX"),t+1==n.length,t+1==n.length)return!0}()){var g=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?g.apply(this,[void 0===e?0:e,void 0===t?this.length-e:t].concat(d.call(arguments,2))):[]}}else Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):void 0==e?e=0:e<0&&(e=Math.max(n+e,0)),e+ta)for(f=u;f--;)this[c+f]=this[a+f];if(o&&e===l)this.length=l,this.push.apply(this,i);else for(this.length=l+o,f=0;f>>0;if("[object Function]"!=m(e))throw new TypeError;for(;++i>>0,i=Array(r),o=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var s=0;s>>0,o=[],s=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var a=0;a>>0,i=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0,i=arguments[1];if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");for(var o=0;o>>0;if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");if(!r&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var i,o=0;if(arguments.length>=2)i=arguments[1];else for(;;){if(o in n){i=n[o++];break}if(++o>=r)throw new TypeError("reduce of empty array with no initial value")}for(;o>>0;if("[object Function]"!=m(e))throw new TypeError(e+" is not a function");if(!r&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var i,o=r-1;if(arguments.length>=2)i=arguments[1];else for(;;){if(o in n){i=n[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}do o in this&&(i=e.call(void 0,i,n[o],o,t));while(o--);return i}),Array.prototype.indexOf&&[0,1].indexOf(1,2)==-1||(Array.prototype.indexOf=function(e){var t=b&&"[object String]"==m(this)?this.split(""):C(this),n=t.length>>>0;if(!n)return-1;var r=0;for(arguments.length>1&&(r=o(arguments[1])),r=r>=0?r:Math.max(0,n+r);r>>0;if(!n)return-1;var r=n-1;for(arguments.length>1&&(r=Math.min(r,o(arguments[1]))),r=r>=0?r:n-Math.abs(r);r>=0;r--)if(r in t&&e===t[r])return r;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(e){return e.__proto__||(e.constructor?e.constructor.prototype:p)}),!Object.getOwnPropertyDescriptor){var y="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(e,t){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError(y+e);if(v(e,t)){var n,r,i;if(n={enumerable:!0,configurable:!0},l){var o=e.__proto__;e.__proto__=p;var r=c(e,t),i=u(e,t);if(e.__proto__=o,r||i)return r&&(n.get=r),i&&(n.set=i),n}return n.value=e[t],n}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(e){return Object.keys(e)}),!Object.create){var x;x=null===Object.prototype.__proto__?function(){return{__proto__:null}}: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(e,t){var n;if(null===e)n=x();else{if("object"!=typeof e)throw new TypeError("typeof prototype["+typeof e+"] != 'object'");var r=function(){};r.prototype=e,n=new r,n.__proto__=e}return void 0!==t&&Object.defineProperties(n,t),n}}if(Object.defineProperty){var E=i({}),w="undefined"==typeof document||i(document.createElement("div"));if(!E||!w)var S=Object.defineProperty}if(!Object.defineProperty||S){var W="Property description must be an object: ",j="Object.defineProperty called on non-object: ",L="getters & setters can not be defined on this javascript engine"; -Object.defineProperty=function(e,t,n){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError(j+e);if("object"!=typeof n&&"function"!=typeof n||null===n)throw new TypeError(W+n);if(S)try{return S.call(Object,e,t,n)}catch(r){}if(v(n,"value"))if(l&&(c(e,t)||u(e,t))){var i=e.__proto__;e.__proto__=p,delete e[t],e[t]=n.value,e.__proto__=i}else e[t]=n.value;else{if(!l)throw new TypeError(L);v(n,"get")&&s(e,t,n.get),v(n,"set")&&a(e,t,n.set)}return e}}Object.defineProperties||(Object.defineProperties=function(e,t){for(var n in t)v(t,n)&&Object.defineProperty(e,n,t[n]);return e}),Object.seal||(Object.seal=function(e){return e}),Object.freeze||(Object.freeze=function(e){return e});try{Object.freeze(function(){})}catch(_){Object.freeze=function(e){return function(t){return"function"==typeof t?t:e(t)}}(Object.freeze)}if(Object.preventExtensions||(Object.preventExtensions=function(e){return e}),Object.isSealed||(Object.isSealed=function(e){return!1}),Object.isFrozen||(Object.isFrozen=function(e){return!1}),Object.isExtensible||(Object.isExtensible=function(e){if(Object(e)===e)throw new TypeError;for(var t="";v(e,t);)t+="?";e[t]=!0;var n=v(e,t);return delete e[t],n}),!Object.keys){var A=!0,M=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],O=M.length;for(var T in{toString:null})A=!1;Object.keys=function F(e){if("object"!=typeof e&&"function"!=typeof e||null===e)throw new TypeError("Object.keys called on a non-object");var F=[];for(var t in e)v(e,t)&&F.push(t);if(A)for(var n=0,r=O;n ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(t,e){return 0==this.compare(t,e)},this.compareRange=function(t){var e,n=t.end,r=t.start;return e=this.compare(n.row,n.column),1==e?(e=this.compare(r.row,r.column),1==e?2:0==e?1:0):e==-1?-2:(e=this.compare(r.row,r.column),e==-1?-1:1==e?42:0)},this.comparePoint=function(t){return this.compare(t.row,t.column)},this.containsRange=function(t){return 0==this.comparePoint(t.start)&&0==this.comparePoint(t.end)},this.intersects=function(t){var e=this.compareRange(t);return e==-1||0==e||1==e},this.isEnd=function(t,e){return this.end.row==t&&this.end.column==e},this.isStart=function(t,e){return this.start.row==t&&this.start.column==e},this.setStart=function(t,e){"object"==typeof t?(this.start.column=t.column,this.start.row=t.row):(this.start.row=t,this.start.column=e)},this.setEnd=function(t,e){"object"==typeof t?(this.end.column=t.column,this.end.row=t.row):(this.end.row=t,this.end.column=e)},this.inside=function(t,e){return 0==this.compare(t,e)&&(!this.isEnd(t,e)&&!this.isStart(t,e))},this.insideStart=function(t,e){return 0==this.compare(t,e)&&!this.isEnd(t,e)},this.insideEnd=function(t,e){return 0==this.compare(t,e)&&!this.isStart(t,e)},this.compare=function(t,e){return this.isMultiLine()||t!==this.start.row?tthis.end.row?1:this.start.row===t?e>=this.start.column?0:-1:this.end.row===t?e<=this.end.column?0:1:0:ethis.end.column?1:0},this.compareStart=function(t,e){return this.start.row==t&&this.start.column==e?-1:this.compare(t,e)},this.compareEnd=function(t,e){return this.end.row==t&&this.end.column==e?1:this.compare(t,e)},this.compareInside=function(t,e){return this.end.row==t&&this.end.column==e?1:this.start.row==t&&this.start.column==e?-1:this.compare(t,e)},this.clipRows=function(t,e){if(this.end.row>e)var n={row:e+1,column:0};else if(this.end.rowe)var r={row:e+1,column:0};else if(this.start.rowthis.row)){var n=e(t,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)}},this.setPosition=function(t,e,n){var r;if(r=n?{row:t,column:e}:this.$clipPositionToDocument(t,e),this.row!=r.row||this.column!=r.column){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(t){this.document=t||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(t,e){var n={};return t>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):t<0?(n.row=0,n.column=0):(n.row=t,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,e))),e<0&&(n.column=0),n}}).call(o.prototype)}),define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(t,e,n){"use strict";var r=t("./lib/oop"),i=t("./apply_delta").applyDelta,o=t("./lib/event_emitter").EventEmitter,s=t("./range").Range,a=t("./anchor").Anchor,c=function(t){this.$lines=[""],0===t.length?this.$lines=[""]:Array.isArray(t)?this.insertMergedLines({row:0,column:0},t):this.insert({row:0,column:0},t)};(function(){r.implement(this,o),this.setValue=function(t){var e=this.getLength()-1;this.remove(new s(0,0,e,this.getLine(e).length)),this.insert({row:0,column:0},t)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(t,e){return new a(this,t,e)},0==="aaa".split(/a/).length?this.$split=function(t){return t.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(t){return t.split(/\r\n|\r|\n/)},this.$detectNewLine=function(t){var e=t.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=e?e[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(t){this.$newLineMode!==t&&(this.$newLineMode=t,this._signal("changeNewLineMode"))},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(t){return"\r\n"==t||"\r"==t||"\n"==t},this.getLine=function(t){return this.$lines[t]||""},this.getLines=function(t,e){return this.$lines.slice(t,e+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(t){return this.getLinesForRange(t).join(this.getNewLineCharacter())},this.getLinesForRange=function(t){var e;if(t.start.row===t.end.row)e=[this.getLine(t.start.row).substring(t.start.column,t.end.column)];else{e=this.getLines(t.start.row,t.end.row),e[0]=(e[0]||"").substring(t.start.column);var n=e.length-1;t.end.row-t.start.row==n&&(e[n]=e[n].substring(0,t.end.column))}return e},this.insertLines=function(t,e){return this.insertFullLines(t,e)},this.removeLines=function(t,e){return this.removeFullLines(t,e)},this.insertNewLine=function(t){return this.insertMergedLines(t,["",""])},this.insert=function(t,e){return this.getLength()<=1&&this.$detectNewLine(e),this.insertMergedLines(t,this.$split(e))},this.insertInLine=function(t,e){var n=this.clippedPos(t.row,t.column),r=this.pos(t.row,t.column+e.length);return this.applyDelta({start:n,end:r,action:"insert",lines:[e]},!0),this.clonePos(r)},this.clippedPos=function(t,e){var n=this.getLength();void 0===t?t=n:t<0?t=0:t>=n&&(t=n-1,e=void 0);var r=this.getLine(t);return void 0==e&&(e=r.length),e=Math.min(Math.max(e,0),r.length),{row:t,column:e}},this.clonePos=function(t){return{row:t.row,column:t.column}},this.pos=function(t,e){return{row:t,column:e}},this.$clipPosition=function(t){var e=this.getLength();return t.row>=e?(t.row=Math.max(0,e-1),t.column=this.getLine(e-1).length):(t.row=Math.max(0,t.row),t.column=Math.min(Math.max(t.column,0),this.getLine(t.row).length)),t},this.insertFullLines=function(t,e){t=Math.min(Math.max(t,0),this.getLength());var n=0;t0,r=e=0&&this.applyDelta({start:this.pos(t,this.getLine(t).length),end:this.pos(t+1,0),action:"remove",lines:["",""]})},this.replace=function(t,e){if(t instanceof s||(t=s.fromPoints(t.start,t.end)),0===e.length&&t.isEmpty())return t.start;if(e==this.getTextRange(t))return t.end;this.remove(t);var n;return n=e?this.insert(t.start,e):t.start},this.applyDeltas=function(t){for(var e=0;e=0;e--)this.revertDelta(t[e])},this.applyDelta=function(t,e){var n="insert"==t.action;(n?t.lines.length<=1&&!t.lines[0]:!s.comparePoints(t.start,t.end))||(n&&t.lines.length>2e4&&this.$splitAndapplyLargeDelta(t,2e4),i(this.$lines,t,e),this._signal("change",t))},this.$splitAndapplyLargeDelta=function(t,e){for(var n=t.lines,r=n.length,i=t.start.row,o=t.start.column,s=0,a=0;;){s=a,a+=e-1;var c=n.slice(s,a);if(a>r){t.lines=c,t.start.row=i+s,t.start.column=o;break}c.push(""),this.applyDelta({start:this.pos(i+s,o),end:this.pos(i+a,o=0),action:t.action,lines:c},!0)}},this.revertDelta=function(t){this.applyDelta({start:this.clonePos(t.start),end:this.clonePos(t.end),action:"insert"==t.action?"remove":"insert",lines:t.lines.slice()})},this.indexToPosition=function(t,e){for(var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=e||0,o=n.length;i0;)1&e&&(n+=t),(e>>=1)&&(t+=t);return n};var r=/^\s\s*/,i=/\s\s*$/;e.stringTrimLeft=function(t){return t.replace(r,"")},e.stringTrimRight=function(t){return t.replace(i,"")},e.copyObject=function(t){var e={};for(var n in t)e[n]=t[n];return e},e.copyArray=function(t){for(var e=[],n=0,r=t.length;n="0"&&i<="9";)e+=i,u();if("."===i)for(e+=".";u()&&i>="0"&&i<="9";)e+=i;if("e"===i||"E"===i)for(e+=i,u(),"-"!==i&&"+"!==i||(e+=i,u());i>="0"&&i<="9";)e+=i,u();return t=+e,isNaN(t)?void c("Bad number"):t},h=function(){var t,e,n,r="";if('"'===i)for(;u();){if('"'===i)return u(),r;if("\\"===i)if(u(),"u"===i){for(n=0,e=0;e<4&&(t=parseInt(u(),16),isFinite(t));e+=1)n=16*n+t;r+=String.fromCharCode(n)}else{if("string"!=typeof a[i])break;r+=a[i]}else r+=i}c("Bad string")},f=function(){for(;i&&i<=" ";)u()},p=function(){switch(i){case"t":return u("t"),u("r"),u("u"),u("e"),!0;case"f":return u("f"),u("a"),u("l"),u("s"),u("e"),!1;case"n":return u("n"),u("u"),u("l"),u("l"),null}c("Unexpected '"+i+"'")},d=function(){var t=[];if("["===i){if(u("["),f(),"]"===i)return u("]"),t;for(;i;){if(t.push(s()),f(),"]"===i)return u("]"),t;u(","),f()}}c("Bad array")},m=function(){var t,e={};if("{"===i){if(u("{"),f(),"}"===i)return u("}"),e;for(;i;){if(t=h(),f(),u(":"),Object.hasOwnProperty.call(e,t)&&c('Duplicate key "'+t+'"'),e[t]=s(),f(),"}"===i)return u("}"),e;u(","),f()}}c("Bad object")};return s=function(){switch(f(),i){case"{":return m();case"[":return d();case'"':return h();case"-":return l();default:return i>="0"&&i<="9"?l():p()}},function(t,e){var n;return o=t,r=0,i=" ",n=s(),f(),i&&c("Syntax error"),"function"==typeof e?function a(t,n){var r,i,o=t[n];if(o&&"object"==typeof o)for(r in o)Object.hasOwnProperty.call(o,r)&&(i=a(o,r),void 0!==i?o[r]=i:delete o[r]);return e.call(t,n,o)}({"":n},""):n}}),define("ace/mode/json_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/json/json_parse"],function(t,e,n){"use strict";var r=t("../lib/oop"),i=t("../worker/mirror").Mirror,o=t("./json/json_parse"),s=e.JsonWorker=function(t){i.call(this,t),this.setTimeout(200)};r.inherits(s,i),function(){this.onUpdate=function(){var t=this.doc.getValue(),e=[];try{t&&o(t)}catch(n){var r=this.doc.indexToPosition(n.at-1);e.push({row:r.row,column:r.column,text:n.message,type:"error"})}this.sender.emit("annotate",e)}}.call(s.prototype)}),define("ace/lib/es5-shim",["require","exports","module"],function(t,e,n){function r(){}function i(t){try{return Object.defineProperty(t,"sentinel",{}),"sentinel"in t}catch(e){}}function o(t){return t=+t,t!==t?t=0:0!==t&&t!==1/0&&t!==-(1/0)&&(t=(t>0||-1)*Math.floor(Math.abs(t))),t}Function.prototype.bind||(Function.prototype.bind=function(t){var e=this;if("function"!=typeof e)throw new TypeError("Function.prototype.bind called on incompatible "+e);var n=d.call(arguments,1),i=function(){if(this instanceof i){var r=e.apply(this,n.concat(d.call(arguments)));return Object(r)===r?r:this}return e.apply(t,n.concat(d.call(arguments)))};return e.prototype&&(r.prototype=e.prototype,i.prototype=new r,r.prototype=null),i});var s,a,c,u,l,h=Function.prototype.call,f=Array.prototype,p=Object.prototype,d=f.slice,m=h.bind(p.toString),g=h.bind(p.hasOwnProperty);if((l=g(p,"__defineGetter__"))&&(s=h.bind(p.__defineGetter__),a=h.bind(p.__defineSetter__),c=h.bind(p.__lookupGetter__),u=h.bind(p.__lookupSetter__)),2!=[1,2].splice(0).length)if(function(){function t(t){var e=new Array(t+2);return e[0]=e[1]=0,e}var e,n=[];if(n.splice.apply(n,t(20)),n.splice.apply(n,t(26)),e=n.length,n.splice(5,0,"XXX"),e+1==n.length,e+1==n.length)return!0}()){var v=Array.prototype.splice;Array.prototype.splice=function(t,e){return arguments.length?v.apply(this,[void 0===t?0:t,void 0===e?this.length-t:e].concat(d.call(arguments,2))):[]}}else Array.prototype.splice=function(t,e){var n=this.length;t>0?t>n&&(t=n):void 0==t?t=0:t<0&&(t=Math.max(n+t,0)),t+ea)for(h=u;h--;)this[c+h]=this[a+h];if(o&&t===l)this.length=l,this.push.apply(this,i);else for(this.length=l+o,h=0;h>>0;if("[object Function]"!=m(t))throw new TypeError;for(;++i>>0,i=Array(r),o=arguments[1];if("[object Function]"!=m(t))throw new TypeError(t+" is not a function");for(var s=0;s>>0,o=[],s=arguments[1];if("[object Function]"!=m(t))throw new TypeError(t+" is not a function");for(var a=0;a>>0,i=arguments[1];if("[object Function]"!=m(t))throw new TypeError(t+" is not a function");for(var o=0;o>>0,i=arguments[1];if("[object Function]"!=m(t))throw new TypeError(t+" is not a function");for(var o=0;o>>0;if("[object Function]"!=m(t))throw new TypeError(t+" is not a function");if(!r&&1==arguments.length)throw new TypeError("reduce of empty array with no initial value");var i,o=0;if(arguments.length>=2)i=arguments[1];else for(;;){if(o in n){i=n[o++];break}if(++o>=r)throw new TypeError("reduce of empty array with no initial value")}for(;o>>0;if("[object Function]"!=m(t))throw new TypeError(t+" is not a function");if(!r&&1==arguments.length)throw new TypeError("reduceRight of empty array with no initial value");var i,o=r-1;if(arguments.length>=2)i=arguments[1];else for(;;){if(o in n){i=n[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}do o in this&&(i=t.call(void 0,i,n[o],o,e));while(o--);return i}),Array.prototype.indexOf&&[0,1].indexOf(1,2)==-1||(Array.prototype.indexOf=function(t){var e=y&&"[object String]"==m(this)?this.split(""):k(this),n=e.length>>>0;if(!n)return-1;var r=0;for(arguments.length>1&&(r=o(arguments[1])),r=r>=0?r:Math.max(0,n+r);r>>0;if(!n)return-1;var r=n-1;for(arguments.length>1&&(r=Math.min(r,o(arguments[1]))),r=r>=0?r:n-Math.abs(r);r>=0;r--)if(r in e&&t===e[r])return r;return-1}),Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:p)}),!Object.getOwnPropertyDescriptor){var b="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(t,e){if("object"!=typeof t&&"function"!=typeof t||null===t)throw new TypeError(b+t);if(g(t,e)){var n,r,i;if(n={enumerable:!0,configurable:!0},l){var o=t.__proto__;t.__proto__=p;var r=c(t,e),i=u(t,e);if(t.__proto__=o,r||i)return r&&(n.get=r),i&&(n.set=i),n}return n.value=t[e],n}}}if(Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)}),!Object.create){var _;_=null===Object.prototype.__proto__?function(){return{__proto__:null}}:function(){var t={};for(var e in t)t[e]=null;return t.constructor=t.hasOwnProperty=t.propertyIsEnumerable=t.isPrototypeOf=t.toLocaleString=t.toString=t.valueOf=t.__proto__=null,t},Object.create=function(t,e){var n;if(null===t)n=_();else{if("object"!=typeof t)throw new TypeError("typeof prototype["+typeof t+"] != 'object'");var r=function(){};r.prototype=t,n=new r,n.__proto__=t}return void 0!==e&&Object.defineProperties(n,e),n}}if(Object.defineProperty){var j=i({}),L="undefined"==typeof document||i(document.createElement("div"));if(!j||!L)var O=Object.defineProperty}if(!Object.defineProperty||O){var P="Property description must be an object: ",x="Object.defineProperty called on non-object: ",E="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(t,e,n){if("object"!=typeof t&&"function"!=typeof t||null===t)throw new TypeError(x+t);if("object"!=typeof n&&"function"!=typeof n||null===n)throw new TypeError(P+n);if(O)try{return O.call(Object,t,e,n)}catch(r){}if(g(n,"value"))if(l&&(c(t,e)||u(t,e))){var i=t.__proto__;t.__proto__=p,delete t[e],t[e]=n.value,t.__proto__=i}else t[e]=n.value;else{if(!l)throw new TypeError(E);g(n,"get")&&s(t,e,n.get),g(n,"set")&&a(t,e,n.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,e){for(var n in e)g(e,n)&&Object.defineProperty(t,n,e[n]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(M){Object.freeze=function(t){return function(e){return"function"==typeof e?e:t(e)}}(Object.freeze)}if(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;for(var e="";g(t,e);)e+="?";t[e]=!0;var n=g(t,e);return delete t[e],n}),!Object.keys){var A=!0,$=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],R=$.length;for(var T in{toString:null})A=!1;Object.keys=function F(t){if("object"!=typeof t&&"function"!=typeof t||null===t)throw new TypeError("Object.keys called on a non-object");var F=[];for(var e in t)g(t,e)&&F.push(e);if(A)for(var n=0,r=R;n0||(o.cookie="test").indexOf.call(o.cookie,"test")>-1)}catch(r){return e.$broadcast("LocalStorageModule.notification.error",r.message),!1}}(),_=function(t,r){if(i(r))return!1;if((s(r)||c(r))&&(r=l(r)),!M)return e.$broadcast("LocalStorageModule.notification.error","COOKIES_NOT_SUPPORTED"),!1;try{var n="",a=new Date,u="";if(null===r?(a.setTime(a.getTime()+-864e5),n="; expires="+a.toGMTString(),r=""):0!==S.expiry&&(a.setTime(a.getTime()+24*S.expiry*60*60*1e3),n="; expires="+a.toGMTString()),t){var g="; path="+S.path;S.domain&&(u="; domain="+S.domain),o.cookie=y(t)+"="+encodeURIComponent(r)+n+g+u}}catch(f){return e.$broadcast("LocalStorageModule.notification.error",f.message),!1}return!0},A=function(t){if(!M)return e.$broadcast("LocalStorageModule.notification.error","COOKIES_NOT_SUPPORTED"),!1;for(var r=o.cookie&&o.cookie.split(";")||[],n=0;n=1&&r<=127?e+=t.charAt(i):r>2047?(e+=String.fromCharCode(224|r>>12&15),e+=String.fromCharCode(128|r>>6&63),e+=String.fromCharCode(128|r>>0&63)):(e+=String.fromCharCode(192|r>>6&31),e+=String.fromCharCode(128|r>>0&63));return e}function r(t){var e,i,o,r,a,l;for(o=t.length,i=0,e="";i>2),e+=n.charAt((3&r)<<4),e+="==";break}if(a=t.charCodeAt(i++),i==o){e+=n.charAt(r>>2),e+=n.charAt((3&r)<<4|(240&a)>>4),e+=n.charAt((15&a)<<2),e+="=";break}l=t.charCodeAt(i++),e+=n.charAt(r>>2),e+=n.charAt((3&r)<<4|(240&a)>>4),e+=n.charAt((15&a)<<2|(192&l)>>6),e+=n.charAt(63&l)}return e}var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",a={chunkSize:4194304,maxRetryTimes:3,mkblk:[],mkfile:[]};if("https:"===window.location.protocol?(a.mkblk=["https://up.qbox.me/mkblk/","https://up-z1.qbox.me/mkblk/","https://up-z2.qbox.me/mkblk/"],a.mkfile=["https://up.qbox.me/mkfile/","https://up-z1.qbox.me/mkfile/","https://up-z2.qbox.me/mkfile/"]):(a.mkblk=["http://up.qiniu.com/mkblk/","http://up-z1.qiniu.com/mkblk/","http://up-z2.qiniu.com/mkblk/"],a.mkfile=["http://up.qiniu.com/mkfile/","http://up-z1.qiniu.com/mkfile/","http://up-z2.qiniu.com/mkfile/"]),this.support=!("undefined"==typeof File||"undefined"==typeof Blob||"undefined"==typeof FileList||!Blob.prototype.slice&&!Blob.prototype.webkitSlice&&!Blob.prototype.mozSlice),!this.support)return null;var l=function(t){return t.name+t.lastModified+t.size+t.type};this.upload=function(n){var u=e.defer(),s=u.promise,c=n.file;if(c){var p=l(c),f=i.get(p);f||(f=[]);var m,h=c.size+4194303>>22,d=function(t,e,i){return t[t.slice?"slice":t.mozSlice?"mozSlice":t.webkitSlice?"webkitSlice":"slice"](e,i)},k=function(t,e,i){return i===e-1?t.size-4194304*i:4194304},b=function(e,l){if(0!==l.length){for(var s,c="",f=0;f'),l=0;ltextarea{width:0;height:0;outline:0;resize:none}.editormd .editormd-html-textarea,.editormd .editormd-markdown-textarea{display:none}.editormd button,.editormd input[type=text],.editormd input[type=button],.editormd input[type=submit],.editormd select,.editormd textarea{-webkit-appearance:none;-moz-appearance:none;-ms-appearance:none;appearance:none}.editormd ::-webkit-scrollbar{height:10px;width:7px;background:rgba(0,0,0,.1)}.editormd ::-webkit-scrollbar:hover{background:rgba(0,0,0,.2)}.editormd ::-webkit-scrollbar-thumb{background:rgba(0,0,0,.3);-webkit-border-radius:6px;-moz-border-radius:6px;-ms-border-radius:6px;-o-border-radius:6px;border-radius:6px}.editormd ::-webkit-scrollbar-thumb:hover{-webkit-box-shadow:inset 1px 1px 1px rgba(0,0,0,.25);-moz-box-shadow:inset 1px 1px 1px rgba(0,0,0,.25);-ms-box-shadow:inset 1px 1px 1px rgba(0,0,0,.25);-o-box-shadow:inset 1px 1px 1px rgba(0,0,0,.25);box-shadow:inset 1px 1px 1px rgba(0,0,0,.25);background-color:rgba(0,0,0,.4)}.editormd-user-unselect{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.editormd-toolbar{width:100%;min-height:37px;background:#fff;display:none;position:absolute;top:0;left:0;z-index:10;border-bottom:1px solid #ddd}.editormd-toolbar-container{padding:0 8px;min-height:35px;-o-user-select:none;user-select:none}.editormd-toolbar-container,.markdown-body .octicon{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.editormd-menu,.markdown-body ol,.markdown-body td,.markdown-body th,.markdown-body ul{padding:0}.editormd-menu{margin:0;list-style:none}.editormd-menu>li{margin:0;padding:5px 1px;display:inline-block;position:relative}.editormd-menu>li.divider{display:inline-block;text-indent:-9999px;margin:0 5px;height:65%;border-right:1px solid #ddd}.editormd-menu>li>a{outline:0;color:#666;display:inline-block;min-width:24px;font-size:16px;text-decoration:none;text-align:center;-webkit-border-radius:2px;-moz-border-radius:2px;-ms-border-radius:2px;-o-border-radius:2px;border-radius:2px;border:1px solid #fff;transition:all 300ms ease-out}.editormd-dropdown-menu>li>a:hover,.editormd-menu>li>a{-webkit-transition:all 300ms ease-out;-moz-transition:all 300ms ease-out}.editormd-menu>li>a.active,.editormd-menu>li>a:hover{border:1px solid #ddd;background:#eee}.editormd-menu>li>a>.fa{text-align:center;display:block;padding:5px}.editormd-menu>li>a>.editormd-bold{padding:5px 2px;display:inline-block;font-weight:700}.editormd-menu>li:hover .editormd-dropdown-menu{display:block}.editormd-menu>li+li>a{margin-left:3px}.editormd-dropdown-menu{display:none;background:#fff;border:1px solid #ddd;width:148px;list-style:none;position:absolute;top:33px;left:0;z-index:100;-webkit-box-shadow:1px 2px 6px rgba(0,0,0,.15);-moz-box-shadow:1px 2px 6px rgba(0,0,0,.15);-ms-box-shadow:1px 2px 6px rgba(0,0,0,.15);-o-box-shadow:1px 2px 6px rgba(0,0,0,.15);box-shadow:1px 2px 6px rgba(0,0,0,.15)}.editormd-dropdown-menu:after,.editormd-dropdown-menu:before{width:0;height:0;display:block;content:"";position:absolute;top:-11px;left:8px;border:5px solid transparent}.editormd-dropdown-menu:before{border-bottom-color:#ccc}.editormd-dropdown-menu:after{border-bottom-color:#fff;top:-10px}.editormd-dropdown-menu>li>a{color:#666;display:block;text-decoration:none;padding:8px 10px}.editormd-dropdown-menu>li>a:hover{background:#f6f6f6;transition:all 300ms ease-out}.editormd-dropdown-menu>li+li{border-top:1px solid #ddd}.editormd-container{margin:0;width:100%;height:100%;overflow:hidden;padding:35px 0 0;position:relative;background:#fff;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.editormd-dialog{color:#666;position:fixed;z-index:99999;display:none;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 10px rgba(0,0,0,.3);-moz-box-shadow:0 0 10px rgba(0,0,0,.3);-ms-box-shadow:0 0 10px rgba(0,0,0,.3);-o-box-shadow:0 0 10px rgba(0,0,0,.3);box-shadow:0 0 10px rgba(0,0,0,.3);background:#fff;font-size:14px}.editormd-dialog-container{position:relative;padding:20px;line-height:1.4}.editormd-dialog-container h1{font-size:24px;margin-bottom:10px}.editormd-dialog-container h1 .fa{color:#2C7EEA;padding-right:5px}.editormd-dialog-container h1 small{padding-left:5px;font-weight:400;font-size:12px;color:#999}.editormd-dialog-container select{color:#999;padding:3px 8px;border:1px solid #ddd}.editormd-dialog-close{position:absolute;top:12px;right:15px;font-size:18px;color:#ccc;-webkit-transition:color 300ms ease-out;-moz-transition:color 300ms ease-out;transition:color 300ms ease-out}.editormd-dialog-close:hover{color:#999}.editormd-dialog-header{padding:11px 20px;border-bottom:1px solid #eee;-webkit-transition:background 300ms ease-out;-moz-transition:background 300ms ease-out;transition:background 300ms ease-out}.editormd-dialog-header:hover{background:#f6f6f6}.editormd-dialog-title{font-size:14px}.editormd-dialog-footer{padding:10px 0 0;text-align:right}.editormd-dialog-info{width:420px}.editormd-dialog-info h1{font-weight:400}.editormd-dialog-info .editormd-dialog-container{padding:20px 25px 25px}.editormd-dialog-info .editormd-dialog-close{top:10px;right:10px}.editormd-dialog-info .hover-link:hover,.editormd-dialog-info p>a{color:#2196F3}.editormd-dialog-info .hover-link{color:#666}.editormd-dialog-info a .fa-external-link{display:none}.editormd-dialog-info a:hover{color:#2196F3}.editormd-dialog-info a:hover .fa-external-link{display:inline-block}.editormd-container-mask,.editormd-dialog-mask,.editormd-mask{display:none;width:100%;height:100%;position:absolute;top:0;left:0}.editormd-dialog-mask-bg,.editormd-mask{background:#fff;opacity:.5;filter:alpha(opacity=50)}.editormd-mask{position:fixed;background:#000;opacity:.2;filter:alpha(opacity=20);z-index:99998}.editormd-container-mask,.editormd-dialog-mask-con{background:url(../images/loading.gif)center center no-repeat;-webkit-background-size:32px 32px;-moz-background-size:32px 32px;-o-background-size:32px 32px;background-size:32px 32px}.editormd-container-mask{z-index:20;display:block;background-color:#fff}@media only screen and (-webkit-min-device-pixel-ratio:2),only screen and (min-device-pixel-ratio:2){.editormd-container-mask,.editormd-dialog-mask-con{background-image:url(../images/loading@2x.gif)}}@media only screen and (-webkit-min-device-pixel-ratio:3),only screen and (min-device-pixel-ratio:3){.editormd-container-mask,.editormd-dialog-mask-con{background-image:url(../images/loading@3x.gif)}}.editormd-code-block-dialog textarea,.editormd-preformatted-text-dialog textarea{width:100%;height:400px;margin-bottom:6px;overflow:auto;border:1px solid #eee;background:#fff;padding:15px;resize:none}.editormd-code-toolbar{color:#999;font-size:14px;margin:-5px 0 10px}.editormd-grid-table{width:99%;display:table;border:1px solid #ddd;border-collapse:collapse}.editormd-grid-table-row{width:100%;display:table-row}.editormd-grid-table-row a{font-size:1.4em;width:5%;height:36px;color:#999;text-align:center;display:table-cell;vertical-align:middle;border:1px solid #ddd;text-decoration:none;-webkit-transition:background-color 300ms ease-out,color 100ms ease-in;-moz-transition:background-color 300ms ease-out,color 100ms ease-in;transition:background-color 300ms ease-out,color 100ms ease-in}.editormd-grid-table-row a.selected{color:#666;background-color:#eee}.editormd-grid-table-row a:hover{color:#777;background-color:#f6f6f6}.editormd-tab-head{list-style:none;border-bottom:1px solid #ddd}.editormd-tab-head li{display:inline-block}.editormd-tab-head li a{color:#999;display:block;padding:6px 12px 5px;text-align:center;text-decoration:none;margin-bottom:-1px;border:1px solid #ddd;-webkit-border-top-left-radius:3px;-moz-border-top-left-radius:3px;-ms-border-top-left-radius:3px;-o-border-top-left-radius:3px;border-top-left-radius:3px;-webkit-border-top-right-radius:3px;-moz-border-top-right-radius:3px;-ms-border-top-right-radius:3px;-o-border-top-right-radius:3px;border-top-right-radius:3px;background:#f6f6f6;-webkit-transition:all 300ms ease-out;-moz-transition:all 300ms ease-out;transition:all 300ms ease-out}.editormd-tab-head li a:hover{color:#666;background:#eee}.editormd-tab-head li.active a{color:#666;background:#fff;border-bottom-color:#fff}.editormd-tab-head li+li{margin-left:3px}.editormd-tab-box{padding:20px 0}.editormd-form{color:#666}.editormd-form label{float:left;display:block;width:75px;text-align:left;padding:7px 0 15px 5px;margin:0 0 2px;font-weight:400}.editormd-form iframe{display:none}.editormd-form input:focus{outline:0}.editormd-form input[type=text],.editormd-form input[type=number]{color:#999;padding:8px;border:1px solid #ddd}.editormd-form input[type=number]{width:40px;display:inline-block;padding:6px 8px}.editormd-form input[type=text]{display:inline-block;width:264px}.editormd-form .fa-btns{display:inline-block}.editormd-form .fa-btns a{color:#999;padding:7px 10px 0 0;display:inline-block;text-decoration:none;text-align:center}.editormd-form .fa-btns .fa{font-size:1.3em}.editormd-form .fa-btns label{float:none;display:inline-block;width:auto;text-align:left;padding:0 0 0 5px;cursor:pointer}.fa-fw,.fa-li{text-align:center}.editormd-dialog-container .editormd-btn,.editormd-dialog-container button,.editormd-dialog-container input[type=submit],.editormd-dialog-footer .editormd-btn,.editormd-dialog-footer button,.editormd-dialog-footer input[type=submit],.editormd-form .editormd-btn,.editormd-form button,.editormd-form input[type=submit]{color:#666;min-width:75px;cursor:pointer;background:#fff;padding:7px 10px;border:1px solid #ddd;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;-webkit-transition:background 300ms ease-out;-moz-transition:background 300ms ease-out;transition:background 300ms ease-out}.editormd-dialog-container .editormd-btn:hover,.editormd-dialog-container button:hover,.editormd-dialog-container input[type=submit]:hover,.editormd-dialog-footer .editormd-btn:hover,.editormd-dialog-footer button:hover,.editormd-dialog-footer input[type=submit]:hover,.editormd-form .editormd-btn:hover,.editormd-form button:hover,.editormd-form input[type=submit]:hover{background:#eee}.editormd-dialog-container .editormd-btn+.editormd-btn,.editormd-dialog-footer .editormd-btn+.editormd-btn,.editormd-form .editormd-btn+.editormd-btn{margin-left:8px}.editormd-file-input{width:75px;height:32px;margin-left:8px;position:relative;display:inline-block}.editormd-file-input input[type=file]{width:75px;height:32px;opacity:0;cursor:pointer;background:#000;display:inline-block;position:absolute;top:0;right:0}.editormd-file-input input[type=file]::-webkit-file-upload-button{visibility:hidden}.editormd-file-input:hover input[type=submit]{background:#eee}.editormd .CodeMirror,.editormd-preview{display:inline-block;width:50%;height:100%;vertical-align:top;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;margin:0}.editormd-preview{position:absolute;top:35px;right:0;overflow:auto;line-height:1.6;display:none;background:#fff}.fa,.fa-stack{display:inline-block}.editormd .CodeMirror{z-index:10;float:left;border-right:1px solid #ddd;font-size:14px;font-family:"YaHei Consolas Hybrid",Consolas,"微软雅黑","Meiryo UI","Malgun Gothic","Segoe UI","Trebuchet MS",Helvetica,Monaco,courier,monospace;line-height:1.6;margin-top:35px}.editormd .CodeMirror pre{font-size:14px;padding:0 12px}.editormd .CodeMirror-linenumbers{padding:0 5px}.editormd .CodeMirror-focused .CodeMirror-selected,.editormd .CodeMirror-selected{background:#70B7FF}.editormd .CodeMirror,.editormd .CodeMirror-scroll,.editormd .editormd-preview{-webkit-overflow-scrolling:touch}.editormd .styled-background{background-color:#ff7}.editormd .CodeMirror-focused .cm-matchhighlight{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAFklEQVQI12NgYGBgkKzc8x9CMDAwAAAmhwSbidEoSQAAAABJRU5ErkJggg==);background-position:bottom;background-repeat:repeat-x}.editormd .CodeMirror-empty.CodeMirror-focused{outline:0}.editormd .CodeMirror pre.CodeMirror-placeholder{color:#999}.editormd .cm-trailingspace{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAACCAYAAAB/qH1jAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3QUXCToH00Y1UgAAACFJREFUCNdjPMDBUc/AwNDAAAFMTAwMDA0OP34wQgX/AQBYgwYEx4f9lQAAAABJRU5ErkJggg==);background-position:bottom left;background-repeat:repeat-x}.editormd .cm-tab{background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAMCAYAAAAkuj5RAAAAAXNSR0IArs4c6QAAAGFJREFUSMft1LsRQFAQheHPowAKoACx3IgEKtaEHujDjORSgWTH/ZOdnZOcM/sgk/kFFWY0qV8foQwS4MKBCS3qR6ixBJvElOobYAtivseIE120FaowJPN75GMu8j/LfMwNjh4HUpwg4LUAAAAASUVORK5CYII=)right no-repeat}/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 *//*! - * Font Awesome 4.3.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:FontAwesome;src:url(../fonts/fontawesome-webfont.eot?v=4.3.0);src:url(../fonts/fontawesome-webfont.eot?#iefix&v=4.3.0)format("embedded-opentype"),url(../fonts/fontawesome-webfont.woff2?v=4.3.0)format("woff2"),url(../fonts/fontawesome-webfont.woff?v=4.3.0)format("woff"),url(../fonts/fontawesome-webfont.ttf?v=4.3.0)format("truetype"),url(../fonts/fontawesome-webfont.svg?v=4.3.0#fontawesomeregular)format("svg");font-weight:400;font-style:normal}.fa{font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transform:translate(0,0)}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em}.fa-ul{padding-left:0;margin-left:2.14285714em}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1,1);-ms-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scale(1,-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{filter:none}.fa-stack{position:relative;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-close:before,.fa-remove:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-cog:before,.fa-gear:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-repeat:before,.fa-rotate-right:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-exclamation-triangle:before,.fa-warning:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-cogs:before,.fa-gears:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-floppy-o:before,.fa-save:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-sort:before,.fa-unsorted:before{content:"\f0dc"}.fa-sort-desc:before,.fa-sort-down:before{content:"\f0dd"}.fa-sort-asc:before,.fa-sort-up:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-gavel:before,.fa-legal:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-bolt:before,.fa-flash:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-clipboard:before,.fa-paste:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-chain-broken:before,.fa-unlink:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:"\f150"}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:"\f151"}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:"\f152"}.fa-eur:before,.fa-euro:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-inr:before,.fa-rupee:before{content:"\f156"}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:"\f157"}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:"\f158"}.fa-krw:before,.fa-won:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-try:before,.fa-turkish-lira:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-bank:before,.fa-institution:before,.fa-university:before{content:"\f19c"}.fa-graduation-cap:before,.fa-mortar-board:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:"\f1c5"}.fa-file-archive-o:before,.fa-file-zip-o:before{content:"\f1c6"}.fa-file-audio-o:before,.fa-file-sound-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-empire:before,.fa-ge:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-paper-plane:before,.fa-send:before{content:"\f1d8"}.fa-paper-plane-o:before,.fa-send-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before,.fa-genderless:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-bed:before,.fa-hotel:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}/*! prefixes.scss v0.1.0 | Author: Pandao | https://github.com/pandao/prefixes.scss | MIT license | Copyright (c) 2015 */@font-face{font-family:editormd-logo;src:url(../fonts/editormd-logo.eot?-5y8q6h);src:url(.../fonts/editormd-logo.eot?#iefix-5y8q6h)format("embedded-opentype"),url(../fonts/editormd-logo.woff?-5y8q6h)format("woff"),url(../fonts/editormd-logo.ttf?-5y8q6h)format("truetype"),url(../fonts/editormd-logo.svg?-5y8q6h#icomoon)format("svg");font-weight:400;font-style:normal}.editormd-logo,.editormd-logo-1x,.editormd-logo-2x,.editormd-logo-3x,.editormd-logo-4x,.editormd-logo-5x,.editormd-logo-6x,.editormd-logo-7x,.editormd-logo-8x{font-family:editormd-logo;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;font-size:inherit;line-height:1;display:inline-block;text-rendering:auto;vertical-align:inherit;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.markdown-body hr:after,.markdown-body hr:before{content:"";display:table}.editormd-logo-1x:before,.editormd-logo-2x:before,.editormd-logo-3x:before,.editormd-logo-4x:before,.editormd-logo-5x:before,.editormd-logo-6x:before,.editormd-logo-7x:before,.editormd-logo-8x:before,.editormd-logo:before{content:"\e1987"}.editormd-logo-1x{font-size:1em}.editormd-logo-lg{font-size:1.2em}.editormd-logo-2x{font-size:2em}.editormd-logo-3x{font-size:3em}.editormd-logo-4x{font-size:4em}.editormd-logo-5x{font-size:5em}.editormd-logo-6x{font-size:6em}.editormd-logo-7x{font-size:7em}.editormd-logo-8x{font-size:8em}.editormd-logo-color{color:#2196F3}/*! github-markdown-css | The MIT License (MIT) | Copyright (c) Sindre Sorhus (sindresorhus.com) | https://github.com/sindresorhus/github-markdown-css */@font-face{font-family:octicons-anchor;src:url(data:font/woff;charset=utf-8;base64,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)format("woff")}.markdown-body{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;color:#333;overflow:hidden;font-family:"Microsoft YaHei",Helvetica,"Meiryo UI","Malgun Gothic","Segoe UI","Trebuchet MS",Monaco,monospace,Tahoma,STXihei,"华文细黑",STHeiti,"Helvetica Neue","Droid Sans","wenquanyi micro hei",FreeSans,Arimo,Arial,SimSun,"宋体",Heiti,"黑体",sans-serif;font-size:16px;line-height:1.6;word-wrap:break-word}.markdown-body strong{font-weight:700}.markdown-body h1{margin:.67em 0}.markdown-body img{border:0}.markdown-body hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}.markdown-body input{color:inherit;margin:0;line-height:normal;font:13px/1.4 Helvetica,arial,freesans,clean,sans-serif,"Segoe UI Emoji","Segoe UI Symbol"}.markdown-body html input[disabled]{cursor:default}.markdown-body input[type=checkbox]{-moz-box-sizing:border-box;box-sizing:border-box;padding:0}.markdown-body *{-moz-box-sizing:border-box;box-sizing:border-box}.markdown-body a{background:0 0;color:#4183c4;text-decoration:none}.markdown-body a:active,.markdown-body a:hover{outline:0;text-decoration:underline}.markdown-body hr{margin:15px 0;overflow:hidden;background:0 0;border:0;border-bottom:1px solid #ddd}.markdown-body h1,.markdown-body h2{padding-bottom:.3em;border-bottom:1px solid #eee}.markdown-body blockquote{margin:0}.markdown-body ol ol,.markdown-body ul ol{list-style-type:lower-roman}.markdown-body ol ol ol,.markdown-body ol ul ol,.markdown-body ul ol ol,.markdown-body ul ul ol{list-style-type:lower-alpha}.markdown-body dd{margin-left:0}.markdown-body code{font-family:Consolas,"Liberation Mono",Menlo,Courier,monospace}.markdown-body pre{font:12px Consolas,"Liberation Mono",Menlo,Courier,monospace;word-wrap:normal}.markdown-body .octicon{font:normal normal 16px octicons-anchor;line-height:1;display:inline-block;text-decoration:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;user-select:none}.markdown-body .octicon-link:before{content:'\f05c'}.markdown-body>:first-child{margin-top:0!important}.markdown-body>:last-child{margin-bottom:0!important}.markdown-body .anchor{position:absolute;top:0;left:0;display:block;padding-right:6px;padding-left:30px;margin-left:-30px}.markdown-body .anchor:focus{outline:0}.markdown-body h1,.markdown-body h2,.markdown-body h3,.markdown-body h4,.markdown-body h5,.markdown-body h6{position:relative;margin-top:1em;margin-bottom:16px;font-weight:700;line-height:1.4}.markdown-body h1 .octicon-link,.markdown-body h2 .octicon-link,.markdown-body h3 .octicon-link,.markdown-body h4 .octicon-link,.markdown-body h5 .octicon-link,.markdown-body h6 .octicon-link{display:none;color:#000;vertical-align:middle}.markdown-body h1:hover .anchor,.markdown-body h2:hover .anchor,.markdown-body h3:hover .anchor,.markdown-body h4:hover .anchor,.markdown-body h5:hover .anchor,.markdown-body h6:hover .anchor{padding-left:8px;margin-left:-30px;text-decoration:none}.markdown-body h1:hover .anchor .octicon-link,.markdown-body h2:hover .anchor .octicon-link,.markdown-body h3:hover .anchor .octicon-link,.markdown-body h4:hover .anchor .octicon-link,.markdown-body h5:hover .anchor .octicon-link,.markdown-body h6:hover .anchor .octicon-link{display:inline-block}.markdown-body h1{font-size:2.25em;line-height:1.2}.markdown-body h1 .anchor{line-height:1}.markdown-body h2{font-size:1.75em;line-height:1.225}.markdown-body h2 .anchor{line-height:1}.markdown-body h3{font-size:1.5em;line-height:1.43}.markdown-body h3 .anchor,.markdown-body h4 .anchor{line-height:1.2}.markdown-body h4{font-size:1.25em}.markdown-body h5 .anchor,.markdown-body h6 .anchor{line-height:1.1}.markdown-body h5{font-size:1em}.markdown-body h6{font-size:1em;color:#777}.markdown-body blockquote,.markdown-body dl,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin-top:0;margin-bottom:16px}.markdown-body ol,.markdown-body ul{padding-left:2em}.markdown-body ol ol,.markdown-body ol ul,.markdown-body ul ol,.markdown-body ul ul{margin-top:0;margin-bottom:0}.markdown-body li>p{margin-top:16px}.markdown-body dl{padding:0}.markdown-body dl dt{padding:0;margin-top:16px;font-size:1em;font-style:italic;font-weight:700}.markdown-body dl dd{padding:0 16px;margin-bottom:16px}.markdown-body blockquote{padding:0 15px;color:#777;border-left:4px solid #ddd}.markdown-body blockquote>:first-child{margin-top:0}.markdown-body blockquote>:last-child{margin-bottom:0}.markdown-body table{border-collapse:collapse;border-spacing:0;display:block;width:100%;overflow:auto;word-break:normal;word-break:keep-all}.markdown-body table th{font-weight:700}.markdown-body table td,.markdown-body table th{padding:6px 13px;border:1px solid #ddd}.markdown-body table tr{background-color:#fff;border-top:1px solid #ccc}.markdown-body table tr:nth-child(2n){background-color:#f8f8f8}.markdown-body img{max-width:100%;-moz-box-sizing:border-box;box-sizing:border-box}.markdown-body code{padding:.2em 0;margin:0;font-size:85%;background-color:rgba(0,0,0,.04);border-radius:3px}.markdown-body code:after,.markdown-body code:before{letter-spacing:-.2em;content:"\00a0"}.markdown-body pre>code{padding:0;margin:0;font-size:100%;word-break:normal;white-space:pre;background:0 0;border:0}.markdown-body .highlight{margin-bottom:16px}.markdown-body .highlight pre,.markdown-body pre{padding:16px;overflow:auto;font-size:85%;background-color:#f7f7f7;border-radius:3px}.markdown-body .highlight pre{margin-bottom:0;word-break:normal}.markdown-body pre code{display:inline;max-width:initial;padding:0;margin:0;overflow:initial;line-height:inherit;word-wrap:normal;background-color:transparent;border:0}.markdown-body pre code:after,.markdown-body pre code:before{content:normal}.markdown-body .pl-c{color:#969896}.markdown-body .pl-c1,.markdown-body .pl-mdh,.markdown-body .pl-mm,.markdown-body .pl-mp,.markdown-body .pl-mr,.markdown-body .pl-s1 .pl-v,.markdown-body .pl-s3,.markdown-body .pl-sc,.markdown-body .pl-sv{color:#0086b3}.markdown-body .pl-e,.markdown-body .pl-en{color:#795da3}.markdown-body .pl-s1 .pl-s2,.markdown-body .pl-smi,.markdown-body .pl-smp,.markdown-body .pl-stj,.markdown-body .pl-vo,.markdown-body .pl-vpf{color:#333}.markdown-body .pl-ent{color:#63a35c}.markdown-body .pl-k,.markdown-body .pl-s,.markdown-body .pl-st{color:#a71d5d}.markdown-body .pl-pds,.markdown-body .pl-s1,.markdown-body .pl-s1 .pl-pse .pl-s2,.markdown-body .pl-sr,.markdown-body .pl-sr .pl-cce,.markdown-body .pl-sr .pl-sra,.markdown-body .pl-sr .pl-sre,.markdown-body .pl-src{color:#df5000}.markdown-body .pl-mo,.markdown-body .pl-v{color:#1d3e81}.markdown-body .pl-id{color:#b52a1d}.markdown-body .pl-ii{background-color:#b52a1d;color:#f8f8f8}.markdown-body .pl-sr .pl-cce{color:#63a35c;font-weight:700}.markdown-body .pl-ml{color:#693a17}.markdown-body .pl-mh,.markdown-body .pl-mh .pl-en,.markdown-body .pl-ms{color:#1d3e81;font-weight:700}.markdown-body .pl-mq{color:teal}.markdown-body .pl-mi{color:#333;font-style:italic}.markdown-body .pl-mb{color:#333;font-weight:700}.markdown-body .pl-md,.markdown-body .pl-mdhf{background-color:#ffecec;color:#bd2c00}.markdown-body .pl-mdht,.markdown-body .pl-mi1{background-color:#eaffea;color:#55a532}.markdown-body .pl-mdr{color:#795da3;font-weight:700}.markdown-body kbd{display:inline-block;padding:3px 5px;font:11px Consolas,"Liberation Mono",Menlo,Courier,monospace;line-height:10px;color:#555;vertical-align:middle;background-color:#fcfcfc;border:1px solid #ccc;border-bottom-color:#bbb;border-radius:3px;box-shadow:inset 0 -1px 0 #bbb}.markdown-body .task-list-item+.task-list-item{margin-top:3px}.markdown-body .task-list-item input{float:left;margin:.3em 0 .25em -1.6em;vertical-align:middle}.markdown-body :checked+.radio-label{z-index:1;position:relative;border-color:#4183c4}.editormd-html-preview,.editormd-preview-container{text-align:left;font-size:14px;line-height:1.6;padding:20px;overflow:auto;width:100%;background-color:#fff}.editormd-html-preview blockquote,.editormd-preview-container blockquote{color:#666;border-left:4px solid #ddd;padding-left:20px;margin-left:0;font-size:14px;font-style:italic}.editormd-html-preview p code,.editormd-preview-container p code{margin-left:5px;margin-right:4px}.editormd-html-preview abbr,.editormd-preview-container abbr{background:#ffd}.editormd-html-preview hr,.editormd-preview-container hr{height:1px;border:none;border-top:1px solid #ddd;background:0 0}.editormd-html-preview code,.editormd-preview-container code{border:1px solid #ddd;background:#f6f6f6;padding:3px;border-radius:3px;font-size:14px}.editormd-html-preview pre,.editormd-preview-container pre{border:1px solid #ddd;background:#f6f6f6;padding:10px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px}.editormd-html-preview pre code,.editormd-preview-container pre code{padding:0}.editormd-html-preview code,.editormd-html-preview kbd,.editormd-html-preview pre,.editormd-preview-container code,.editormd-preview-container kbd,.editormd-preview-container pre{font-family:"YaHei Consolas Hybrid",Consolas,"Meiryo UI","Malgun Gothic","Segoe UI","Trebuchet MS",Helvetica,monospace,monospace}.editormd-html-preview table thead tr,.editormd-preview-container table thead tr{background-color:#F8F8F8}.editormd-html-preview p.editormd-tex,.editormd-preview-container p.editormd-tex{text-align:center}.editormd-html-preview span.editormd-tex,.editormd-preview-container span.editormd-tex{margin:0 5px}.editormd-html-preview .emoji,.editormd-preview-container .emoji{width:24px;height:24px}.editormd-html-preview .katex,.editormd-preview-container .katex{font-size:1.4em}.editormd-html-preview .flowchart,.editormd-html-preview .sequence-diagram,.editormd-preview-container .flowchart,.editormd-preview-container .sequence-diagram{margin:0 auto;text-align:center}.editormd-html-preview .flowchart svg,.editormd-html-preview .sequence-diagram svg,.editormd-preview-container .flowchart svg,.editormd-preview-container .sequence-diagram svg{margin:0 auto}.editormd-html-preview .flowchart text,.editormd-html-preview .sequence-diagram text,.editormd-preview-container .flowchart text,.editormd-preview-container .sequence-diagram text{font-size:15px!important;font-family:"YaHei Consolas Hybrid",Consolas,"Microsoft YaHei","Malgun Gothic","Segoe UI",Helvetica,Arial!important}/*! Pretty printing styles. Used with prettify.js. */.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.clo,.opn,.pun{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.kwd,.tag,.typ{font-weight:700}.str{color:#060}.kwd{color:#006}.com{color:#600;font-style:italic}.typ{color:#404}.lit{color:#044}.clo,.opn,.pun{color:#440}.tag{color:#006}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}.editormd-html-preview pre.prettyprint,.editormd-preview-container pre.prettyprint{padding:10px;border:1px solid #ddd;white-space:pre-wrap;word-wrap:break-word}.editormd-html-preview ol.linenums,.editormd-preview-container ol.linenums{color:#999;padding-left:2.5em}.editormd-html-preview ol.linenums li,.editormd-preview-container ol.linenums li{list-style-type:decimal}.editormd-html-preview ol.linenums li code,.editormd-preview-container ol.linenums li code{border:none;background:0 0;padding:0}.editormd-html-preview .editormd-toc-menu,.editormd-preview-container .editormd-toc-menu{margin:8px 0 12px;display:inline-block}.editormd-html-preview .editormd-toc-menu>.markdown-toc,.editormd-preview-container .editormd-toc-menu>.markdown-toc{position:relative;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;border:1px solid #ddd;display:inline-block;font-size:1em}.editormd-html-preview .editormd-toc-menu>.markdown-toc>ul,.editormd-preview-container .editormd-toc-menu>.markdown-toc>ul{width:160%;min-width:180px;position:absolute;left:-1px;top:-2px;z-index:100;padding:0 10px 10px;display:none;background:#fff;border:1px solid #ddd;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);-moz-box-shadow:0 3px 5px rgba(0,0,0,.2);-ms-box-shadow:0 3px 5px rgba(0,0,0,.2);-o-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2)}.editormd-html-preview .editormd-toc-menu>.markdown-toc>ul>li ul,.editormd-preview-container .editormd-toc-menu>.markdown-toc>ul>li ul{width:100%;min-width:180px;border:1px solid #ddd;display:none;background:#fff;-webkit-border-radius:4px;-moz-border-radius:4px;-ms-border-radius:4px;-o-border-radius:4px;border-radius:4px}.editormd-html-preview .editormd-toc-menu .toc-menu-btn:hover,.editormd-html-preview .editormd-toc-menu>.markdown-toc>ul>li a:hover,.editormd-preview-container .editormd-toc-menu .toc-menu-btn:hover,.editormd-preview-container .editormd-toc-menu>.markdown-toc>ul>li a:hover{background-color:#f6f6f6}.editormd-html-preview .editormd-toc-menu>.markdown-toc>ul>li a,.editormd-preview-container .editormd-toc-menu>.markdown-toc>ul>li a{color:#666;padding:6px 10px;display:block;-webkit-transition:background-color 500ms ease-out;-moz-transition:background-color 500ms ease-out;transition:background-color 500ms ease-out}.editormd-html-preview .editormd-toc-menu>.markdown-toc li,.editormd-preview-container .editormd-toc-menu>.markdown-toc li{position:relative}.editormd-html-preview .editormd-toc-menu>.markdown-toc li>ul,.editormd-preview-container .editormd-toc-menu>.markdown-toc li>ul{position:absolute;top:32px;left:10%;display:none;-webkit-box-shadow:0 3px 5px rgba(0,0,0,.2);-moz-box-shadow:0 3px 5px rgba(0,0,0,.2);-ms-box-shadow:0 3px 5px rgba(0,0,0,.2);-o-box-shadow:0 3px 5px rgba(0,0,0,.2);box-shadow:0 3px 5px rgba(0,0,0,.2)}.editormd-html-preview .editormd-toc-menu>.markdown-toc li>ul:after,.editormd-html-preview .editormd-toc-menu>.markdown-toc li>ul:before,.editormd-preview-container .editormd-toc-menu>.markdown-toc li>ul:after,.editormd-preview-container .editormd-toc-menu>.markdown-toc li>ul:before{pointer-events:pointer-events;position:absolute;left:15px;top:-6px;display:block;content:"";width:0;height:0;border:6px solid transparent;border-width:0 6px 6px;z-index:10}.editormd-html-preview .editormd-toc-menu>.markdown-toc li>ul:before,.editormd-preview-container .editormd-toc-menu>.markdown-toc li>ul:before{border-bottom-color:#ccc}.editormd-html-preview .editormd-toc-menu>.markdown-toc li>ul:after,.editormd-preview-container .editormd-toc-menu>.markdown-toc li>ul:after{border-bottom-color:#fff;top:-5px}.editormd-html-preview .editormd-toc-menu ul,.editormd-preview-container .editormd-toc-menu ul{list-style:none}.editormd-html-preview .editormd-toc-menu a,.editormd-preview-container .editormd-toc-menu a{text-decoration:none}.editormd-html-preview .editormd-toc-menu h1,.editormd-preview-container .editormd-toc-menu h1{font-size:16px;padding:5px 0 10px 10px;line-height:1;border-bottom:1px solid #eee}.editormd-html-preview .editormd-toc-menu h1 .fa,.editormd-preview-container .editormd-toc-menu h1 .fa{padding-left:10px}.editormd-html-preview .editormd-toc-menu .toc-menu-btn,.editormd-preview-container .editormd-toc-menu .toc-menu-btn{color:#666;min-width:180px;padding:5px 10px;border-radius:4px;display:inline-block;-webkit-transition:background-color 500ms ease-out;-moz-transition:background-color 500ms ease-out;transition:background-color 500ms ease-out}.editormd-html-preview textarea,.editormd-onlyread .editormd-toolbar{display:none}.editormd-html-preview .editormd-toc-menu .toc-menu-btn .fa,.editormd-preview-container .editormd-toc-menu .toc-menu-btn .fa{float:right;padding:3px 0 0 10px;font-size:1.3em}.markdown-body .editormd-toc-menu ul{padding-left:0}.markdown-body .highlight pre,.markdown-body pre{line-height:1.6}hr.editormd-page-break{border:1px dotted #ccc;font-size:0;height:2px}@media only print{hr.editormd-page-break{background:0 0;border:none;height:0}}.editormd-html-preview hr.editormd-page-break{background:0 0;border:none;height:0}.editormd-preview-close-btn{color:#fff;padding:4px 6px;font-size:18px;-webkit-border-radius:500px;-moz-border-radius:500px;-ms-border-radius:500px;-o-border-radius:500px;border-radius:500px;display:none;background-color:#ccc;position:absolute;top:25px;right:35px;z-index:19;-webkit-transition:background-color 300ms ease-out;-moz-transition:background-color 300ms ease-out;transition:background-color 300ms ease-out}.editormd-preview-close-btn:hover{background-color:#999}.editormd-preview-active{width:100%;padding:40px}.editormd-preview-theme-dark{color:#777;background:#2C2827}.editormd-preview-theme-dark .editormd-preview-container{color:#888;background-color:#2C2827}.editormd-preview-theme-dark .editormd-preview-container pre.prettyprint{border:none}.editormd-preview-theme-dark .editormd-preview-container blockquote{color:#555;padding:.5em;background:#222;border-color:#333}.editormd-preview-theme-dark .editormd-preview-container abbr{color:#fff;padding:1px 3px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;background:#f90}.editormd-preview-theme-dark .editormd-preview-container code{color:#fff;border:none;padding:1px 3px;-webkit-border-radius:3px;-moz-border-radius:3px;-ms-border-radius:3px;-o-border-radius:3px;border-radius:3px;background:#5A9600}.editormd-preview-theme-dark .editormd-preview-container table{border:none}.editormd-preview-theme-dark .editormd-preview-container .fa-emoji{color:#B4BF42}.editormd-preview-theme-dark .editormd-preview-container .katex{color:#FEC93F}.editormd-preview-theme-dark .editormd-toc-menu>.markdown-toc{background:#fff;border:none}.editormd-preview-theme-dark .editormd-toc-menu>.markdown-toc h1{border-color:#ddd}.editormd-preview-theme-dark .markdown-body h1,.editormd-preview-theme-dark .markdown-body h2,.editormd-preview-theme-dark .markdown-body hr{border-color:#222}.editormd-preview-theme-dark pre{color:#999;background-color:#111;background-color:rgba(0,0,0,.4)}.editormd-preview-theme-dark pre .pln{color:#999}.editormd-preview-theme-dark li.L1,.editormd-preview-theme-dark li.L3,.editormd-preview-theme-dark li.L5,.editormd-preview-theme-dark li.L7,.editormd-preview-theme-dark li.L9{background:0 0}.editormd-preview-theme-dark [class*=editormd-logo]{color:#2196F3}.editormd-preview-theme-dark .sequence-diagram text{fill:#fff}.editormd-preview-theme-dark .sequence-diagram path,.editormd-preview-theme-dark .sequence-diagram rect{color:#fff;fill:#64D1CB;stroke:#64D1CB}.editormd-preview-theme-dark .flowchart path,.editormd-preview-theme-dark .flowchart rect{stroke:#A6C6FF}.editormd-preview-theme-dark .flowchart rect{fill:#A6C6FF}.editormd-preview-theme-dark .flowchart text{fill:#5879B4}@media screen{.editormd-preview-theme-dark .str{color:#080}.editormd-preview-theme-dark .kwd{color:#f90}.editormd-preview-theme-dark .com{color:#444}.editormd-preview-theme-dark .typ{color:#606}.editormd-preview-theme-dark .lit{color:#066}.editormd-preview-theme-dark .clo,.editormd-preview-theme-dark .opn,.editormd-preview-theme-dark .pun{color:#660}.editormd-preview-theme-dark .tag{color:#f90}.editormd-preview-theme-dark .atn{color:#6C95F5}.editormd-preview-theme-dark .atv{color:#080}.editormd-preview-theme-dark .dec,.editormd-preview-theme-dark .var{color:#008BA7}.editormd-preview-theme-dark .fun{color:red}}.editormd-onlyread .CodeMirror{margin-top:0}.editormd-onlyread .editormd-preview{top:0}.editormd-fullscreen{position:fixed;top:0;left:0;border:none;margin:0 auto}.editormd-theme-dark{border-color:#1a1a17}.editormd-theme-dark .editormd-toolbar{background:#1A1A17;border-color:#1a1a17}.editormd-theme-dark .editormd-menu>li>a{color:#777;border-color:#1a1a17}.editormd-theme-dark .editormd-menu>li>a.active,.editormd-theme-dark .editormd-menu>li>a:hover{border-color:#333;background:#333}.editormd-theme-dark .editormd-menu>li.divider{border-right:1px solid #111}.editormd-theme-dark .CodeMirror{border-right:1px solid rgba(0,0,0,.1)} \ No newline at end of file diff --git a/eolinker_os_3.5/libs/editor.md/editormd.min.js b/eolinker_os_3.5/libs/editor.md/editormd.min.js deleted file mode 100644 index 21f0295..0000000 --- a/eolinker_os_3.5/libs/editor.md/editormd.min.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(e){"use strict";"function"==typeof require&&"object"==typeof exports&&"object"==typeof module?module.exports=e:window.editormd=e()}(function(){"use strict";var e="undefined"!=typeof jQuery?jQuery:Zepto;if("undefined"!=typeof e){var t=function(e,i){return new t.fn.init(e,i)};t.title=t.$name="Editor.md",t.version="1.5.0",t.homePage="https://pandao.github.io/editor.md/",t.classPrefix="editormd-",t.toolbarModes={full:["undo","redo","|","bold","del","italic","quote","ucwords","uppercase","lowercase","|","h1","h2","h3","h4","h5","h6","|","list-ul","list-ol","hr","|","link","reference-link","image","code","preformatted-text","code-block","table","datetime","emoji","html-entities","pagebreak","|","goto-line","watch","preview","fullscreen","clear","search","|","help","info"],simple:["undo","redo","|","bold","del","italic","quote","uppercase","lowercase","|","h1","h2","h3","h4","h5","h6","|","list-ul","list-ol","hr","|","watch","preview","fullscreen","|","help","info"],mini:["undo","redo","|","watch","preview","|","help","info"]},t.defaults={mode:"gfm",name:"",value:"",theme:"",editorTheme:"default",previewTheme:"",markdown:"",appendMarkdown:"",width:"100%",height:"100%",path:"./lib/",pluginPath:"",delay:300,autoLoadModules:!0,watch:!0,placeholder:"Enjoy Markdown! coding now...",gotoLine:!0,codeFold:!1,autoHeight:!1,autoFocus:!0,autoCloseTags:!0,searchReplace:!0,syncScrolling:!0,readOnly:!1,tabSize:4,indentUnit:4,lineNumbers:!0,lineWrapping:!0,autoCloseBrackets:!0,showTrailingSpace:!0,matchBrackets:!0,indentWithTabs:!0,styleSelectedText:!0,matchWordHighlight:!0,styleActiveLine:!0,dialogLockScreen:!0,dialogShowMask:!0,dialogDraggable:!0,dialogMaskBgColor:"#fff",dialogMaskOpacity:.1,fontSize:"13px",saveHTMLToTextarea:!1,disabledKeyMaps:[],onload:function(){},onresize:function(){},onchange:function(){},onwatch:null,onunwatch:null,onpreviewing:function(){},onpreviewed:function(){},onfullscreen:function(){},onfullscreenExit:function(){},onscroll:function(){},onpreviewscroll:function(){},imageUpload:!1,imageFormats:["jpg","jpeg","gif","png","bmp","webp"],imageUploadURL:"",crossDomainUpload:!1,uploadCallbackURL:"",toc:!0,tocm:!1,tocTitle:"",tocDropdown:!1,tocContainer:"",tocStartLevel:1,htmlDecode:!1,pageBreak:!0,atLink:!0,emailLink:!0,taskList:!1,emoji:!1,tex:!1,flowChart:!1,sequenceDiagram:!1,previewCodeHighlight:!0,toolbar:!0,toolbarAutoFixed:!0,toolbarIcons:"full",toolbarTitles:{},toolbarHandlers:{ucwords:function(){return t.toolbarHandlers.ucwords},lowercase:function(){return t.toolbarHandlers.lowercase}},toolbarCustomIcons:{lowercase:'a',ucwords:'Aa'},toolbarIconsClass:{undo:"fa-undo",redo:"fa-repeat",bold:"fa-bold",del:"fa-strikethrough",italic:"fa-italic",quote:"fa-quote-left",uppercase:"fa-font",h1:t.classPrefix+"bold",h2:t.classPrefix+"bold",h3:t.classPrefix+"bold",h4:t.classPrefix+"bold",h5:t.classPrefix+"bold",h6:t.classPrefix+"bold","list-ul":"fa-list-ul","list-ol":"fa-list-ol",hr:"fa-minus",link:"fa-link","reference-link":"fa-anchor",image:"fa-picture-o",code:"fa-code","preformatted-text":"fa-file-code-o","code-block":"fa-file-code-o",table:"fa-table",datetime:"fa-clock-o",emoji:"fa-smile-o","html-entities":"fa-copyright",pagebreak:"fa-newspaper-o","goto-line":"fa-terminal",watch:"fa-eye-slash",unwatch:"fa-eye",preview:"fa-desktop",search:"fa-search",fullscreen:"fa-arrows-alt",clear:"fa-eraser",help:"fa-question-circle",info:"fa-info-circle"},toolbarIconTexts:{},lang:{name:"zh-cn",description:"开源在线Markdown编辑器
Open source online Markdown editor.",tocTitle:"目录",toolbar:{undo:"撤销(Ctrl+Z)",redo:"重做(Ctrl+Y)",bold:"粗体",del:"删除线",italic:"斜体",quote:"引用",ucwords:"将每个单词首字母转成大写",uppercase:"将所选转换成大写",lowercase:"将所选转换成小写",h1:"标题1",h2:"标题2",h3:"标题3",h4:"标题4",h5:"标题5",h6:"标题6","list-ul":"无序列表","list-ol":"有序列表",hr:"横线",link:"链接","reference-link":"引用链接",image:"添加图片",code:"行内代码","preformatted-text":"预格式文本 / 代码块(缩进风格)","code-block":"代码块(多语言风格)",table:"添加表格",datetime:"日期时间",emoji:"Emoji表情","html-entities":"HTML实体字符",pagebreak:"插入分页符","goto-line":"跳转到行",watch:"关闭实时预览",unwatch:"开启实时预览",preview:"全窗口预览HTML(按 Shift + ESC还原)",fullscreen:"全屏(按ESC还原)",clear:"清空",search:"搜索",help:"使用帮助",info:"关于"+t.title},buttons:{enter:"确定",cancel:"取消",close:"关闭"},dialog:{link:{title:"添加链接",url:"链接地址",urlTitle:"链接标题",urlEmpty:"错误:请填写链接地址。"},referenceLink:{title:"添加引用链接",name:"引用名称",url:"链接地址",urlId:"链接ID",urlTitle:"链接标题",nameEmpty:"错误:引用链接的名称不能为空。",idEmpty:"错误:请填写引用链接的ID。",urlEmpty:"错误:请填写引用链接的URL地址。"},image:{title:"添加图片",url:"图片地址",link:"图片链接",alt:"图片描述",uploadButton:"本地上传",imageURLEmpty:"错误:图片地址不能为空。",uploadFileEmpty:"错误:上传的图片不能为空。",formatNotAllowed:"错误:只允许上传图片文件,允许上传的图片文件格式有:"},preformattedText:{title:"添加预格式文本或代码块",emptyAlert:"错误:请填写预格式文本或代码的内容。"},codeBlock:{title:"添加代码块",selectLabel:"代码语言:",selectDefaultText:"请选择代码语言",otherLanguage:"其他语言",unselectedLanguageAlert:"错误:请选择代码所属的语言类型。",codeEmptyAlert:"错误:请填写代码内容。"},htmlEntities:{title:"HTML 实体字符"},help:{title:"使用帮助"}}}},t.classNames={tex:t.classPrefix+"tex"},t.dialogZindex=99999,t.$katex=null,t.$marked=null,t.$CodeMirror=null,t.$prettyPrint=null;var i,o;t.prototype=t.fn={state:{watching:!1,loaded:!1,preview:!1,fullscreen:!1},init:function(i,o){o=o||{},"object"==typeof i&&(o=i);var r=this.classPrefix=t.classPrefix,n=this.settings=e.extend(!0,t.defaults,o);i="object"==typeof i?n.id:i;var a=this.editor=e("#"+i);this.id=i,this.lang=n.lang;var s=this.classNames={textarea:{html:r+"html-textarea",markdown:r+"markdown-textarea"}};n.pluginPath=""===n.pluginPath?n.path+"../plugins/":n.pluginPath,this.state.watching=!!n.watch,a.hasClass("editormd")||a.addClass("editormd"),a.css({width:"number"==typeof n.width?n.width+"px":n.width,height:"number"==typeof n.height?n.height+"px":n.height}),n.autoHeight&&a.css("height","auto");var l=this.markdownTextarea=a.children("textarea");l.length<1&&(a.append(""),l=this.markdownTextarea=a.children("textarea")),l.addClass(s.textarea.markdown).attr("placeholder",n.placeholder),("undefined"==typeof l.attr("name")||""===l.attr("name"))&&l.attr("name",""!==n.name?n.name:i+"-markdown-doc");var c=[n.readOnly?"":'',n.saveHTMLToTextarea?'':"",'
','
','
'].join("\n");return a.append(c).addClass(r+"vertical"),""!==n.theme&&a.addClass(r+"theme-"+n.theme),this.mask=a.children("."+r+"mask"),this.containerMask=a.children("."+r+"container-mask"),""!==n.markdown&&l.val(n.markdown),""!==n.appendMarkdown&&l.val(l.val()+n.appendMarkdown),this.htmlTextarea=a.children("."+s.textarea.html),this.preview=a.children("."+r+"preview"),this.previewContainer=this.preview.children("."+r+"preview-container"),""!==n.previewTheme&&this.preview.addClass(r+"preview-theme-"+n.previewTheme),"function"==typeof define&&define.amd&&("undefined"!=typeof katex&&(t.$katex=katex),n.searchReplace&&!n.readOnly&&(t.loadCSS(n.path+"codemirror/addon/dialog/dialog"),t.loadCSS(n.path+"codemirror/addon/search/matchesonscrollbar"))),"function"==typeof define&&define.amd||!n.autoLoadModules?("undefined"!=typeof CodeMirror&&(t.$CodeMirror=CodeMirror),"undefined"!=typeof marked&&(t.$marked=marked),this.setCodeMirror().setToolbar().loadedDisplay()):this.loadQueues(),this},loadQueues:function(){var e=this,i=this.settings,o=i.path,r=function(){return t.isIE8?void e.loadedDisplay():void(i.flowChart||i.sequenceDiagram?t.loadScript(o+"raphael.min",function(){t.loadScript(o+"underscore.min",function(){!i.flowChart&&i.sequenceDiagram?t.loadScript(o+"sequence-diagram.min",function(){e.loadedDisplay()}):i.flowChart&&!i.sequenceDiagram?t.loadScript(o+"flowchart.min",function(){t.loadScript(o+"jquery.flowchart.min",function(){e.loadedDisplay()})}):i.flowChart&&i.sequenceDiagram&&t.loadScript(o+"flowchart.min",function(){t.loadScript(o+"jquery.flowchart.min",function(){t.loadScript(o+"sequence-diagram.min",function(){e.loadedDisplay()})})})})}):e.loadedDisplay())};return t.loadCSS(o+"codemirror/codemirror.min"),i.searchReplace&&!i.readOnly&&(t.loadCSS(o+"codemirror/addon/dialog/dialog"),t.loadCSS(o+"codemirror/addon/search/matchesonscrollbar")),i.codeFold&&t.loadCSS(o+"codemirror/addon/fold/foldgutter"),t.loadScript(o+"codemirror/codemirror.min",function(){t.$CodeMirror=CodeMirror,t.loadScript(o+"codemirror/modes.min",function(){t.loadScript(o+"codemirror/addons.min",function(){return e.setCodeMirror(),"gfm"!==i.mode&&"markdown"!==i.mode?(e.loadedDisplay(),!1):(e.setToolbar(),void t.loadScript(o+"marked.min",function(){t.$marked=marked,i.previewCodeHighlight?t.loadScript(o+"prettify.min",function(){r()}):r()}))})})}),this},setTheme:function(e){var t=this.editor,i=this.settings.theme,o=this.classPrefix+"theme-";return t.removeClass(o+i).addClass(o+e),this.settings.theme=e,this},setEditorTheme:function(e){var i=this.settings;return i.editorTheme=e,"default"!==e&&t.loadCSS(i.path+"codemirror/theme/"+i.editorTheme),this.cm.setOption("theme",e),this},setCodeMirrorTheme:function(e){return this.setEditorTheme(e),this},setPreviewTheme:function(e){var t=this.preview,i=this.settings.previewTheme,o=this.classPrefix+"preview-theme-";return t.removeClass(o+i).addClass(o+e),this.settings.previewTheme=e,this},setCodeMirror:function(){var e=this.settings,i=this.editor;"default"!==e.editorTheme&&t.loadCSS(e.path+"codemirror/theme/"+e.editorTheme);var o={mode:e.mode,theme:e.editorTheme,tabSize:e.tabSize,dragDrop:!1,autofocus:e.autoFocus,autoCloseTags:e.autoCloseTags,readOnly:!!e.readOnly&&"nocursor",indentUnit:e.indentUnit,lineNumbers:e.lineNumbers,lineWrapping:e.lineWrapping,extraKeys:{"Ctrl-Q":function(e){e.foldCode(e.getCursor())}},foldGutter:e.codeFold,gutters:["CodeMirror-linenumbers","CodeMirror-foldgutter"],matchBrackets:e.matchBrackets,indentWithTabs:e.indentWithTabs,styleActiveLine:e.styleActiveLine,styleSelectedText:e.styleSelectedText,autoCloseBrackets:e.autoCloseBrackets,showTrailingSpace:e.showTrailingSpace,highlightSelectionMatches:!!e.matchWordHighlight&&{showToken:"onselected"!==e.matchWordHighlight&&/\w/}};return this.codeEditor=this.cm=t.$CodeMirror.fromTextArea(this.markdownTextarea[0],o),this.codeMirror=this.cmElement=i.children(".CodeMirror"),""!==e.value&&this.cm.setValue(e.value),this.codeMirror.css({fontSize:e.fontSize,width:e.watch?"50%":"100%"}),e.autoHeight&&(this.codeMirror.css("height","auto"),this.cm.setOption("viewportMargin",1/0)),e.lineNumbers||this.codeMirror.find(".CodeMirror-gutters").css("border-right","none"),this},getCodeMirrorOption:function(e){return this.cm.getOption(e)},setCodeMirrorOption:function(e,t){return this.cm.setOption(e,t),this},addKeyMap:function(e,t){return this.cm.addKeyMap(e,t),this},removeKeyMap:function(e){return this.cm.removeKeyMap(e),this},gotoLine:function(t){var i=this.settings;if(!i.gotoLine)return this;var o=this.cm,r=(this.editor,o.lineCount()),n=this.preview;if("string"==typeof t&&("last"===t&&(t=r),"first"===t&&(t=1)),"number"!=typeof t)return this;if(t=parseInt(t)-1,t>r)return this;o.setCursor({line:t,ch:0});var a=o.getScrollInfo(),s=a.clientHeight,l=o.charCoords({line:t,ch:0},"local");if(o.scrollTo(null,(l.top+l.bottom-s)/2),i.watch){var c=this.codeMirror.find(".CodeMirror-scroll")[0],h=e(c).height(),d=c.scrollTop,u=d/c.scrollHeight;n.scrollTop(0===d?0:d+h>=c.scrollHeight-16?n[0].scrollHeight:n[0].scrollHeight*u)}return o.focus(),this},extend:function(){return"undefined"!=typeof arguments[1]&&("function"==typeof arguments[1]&&(arguments[1]=e.proxy(arguments[1],this)),this[arguments[0]]=arguments[1]),"object"==typeof arguments[0]&&"undefined"==typeof arguments[0].length&&e.extend(!0,this,arguments[0]),this},set:function(t,i){return"undefined"!=typeof i&&"function"==typeof i&&(i=e.proxy(i,this)),this[t]=i,this},config:function(t,i){var o=this.settings;return"object"==typeof t&&(o=e.extend(!0,o,t)),"string"==typeof t&&(o[t]=i),this.settings=o,this.recreate(),this},on:function(t,i){var o=this.settings;return"undefined"!=typeof o["on"+t]&&(o["on"+t]=e.proxy(i,this)),this},off:function(e){var t=this.settings;return"undefined"!=typeof t["on"+e]&&(t["on"+e]=function(){}),this},showToolbar:function(t){var i=this.settings;return i.readOnly?this:(i.toolbar&&(this.toolbar.length<1||""===this.toolbar.find("."+this.classPrefix+"menu").html())&&this.setToolbar(),i.toolbar=!0,this.toolbar.show(),this.resize(),e.proxy(t||function(){},this)(),this)},hideToolbar:function(t){var i=this.settings;return i.toolbar=!1,this.toolbar.hide(),this.resize(),e.proxy(t||function(){},this)(),this},setToolbarAutoFixed:function(t){var i=this.state,o=this.editor,r=this.toolbar,n=this.settings;"undefined"!=typeof t&&(n.toolbarAutoFixed=t);var a=function(){var t=e(window),i=t.scrollTop();return!!n.toolbarAutoFixed&&void r.css(i-o.offset().top>10&&i
    ';i.append(n),r=this.toolbar=i.children("."+o+"toolbar")}if(!e.toolbar)return r.hide(),this;r.show();for(var a="function"==typeof e.toolbarIcons?e.toolbarIcons():"string"==typeof e.toolbarIcons?t.toolbarModes[e.toolbarIcons]:e.toolbarIcons,s=r.find("."+this.classPrefix+"menu"),l="",c=!1,h=0,d=a.length;d>h;h++){var u=a[h];if("||"===u)c=!0;else if("|"===u)l+='
  • |
  • ';else{var f=/h(\d)/.test(u),p=u;"watch"!==u||e.watch||(p="unwatch");var g=e.lang.toolbar[p],m=e.toolbarIconTexts[p],w=e.toolbarIconsClass[p];g="undefined"==typeof g?"":g,m="undefined"==typeof m?"":m,w="undefined"==typeof w?"":w;var v=c?'
  • ':"
  • ";"undefined"!=typeof e.toolbarCustomIcons[u]&&"function"!=typeof e.toolbarCustomIcons[u]?v+=e.toolbarCustomIcons[u]:(v+='',v+=''+(f?u.toUpperCase():""===w?m:"")+"",v+=""),v+="
  • ",l=c?v+l:l+v}}return s.html(l),s.find('[title="Lowercase"]').attr("title",e.lang.toolbar.lowercase),s.find('[title="ucwords"]').attr("title",e.lang.toolbar.ucwords),this.setToolbarHandler(),this.setToolbarAutoFixed(),this},dialogLockScreen:function(){return e.proxy(t.dialogLockScreen,this)(),this},dialogShowMask:function(i){return e.proxy(t.dialogShowMask,this)(i),this},getToolbarHandles:function(e){var i=this.toolbarHandlers=t.toolbarHandlers;return e&&"undefined"!=typeof toolbarIconHandlers[e]?i[e]:i},setToolbarHandler:function(){var i=this,o=this.settings;if(!o.toolbar||o.readOnly)return this;var r=this.toolbar,n=this.cm,a=this.classPrefix,s=this.toolbarIcons=r.find("."+a+"menu > li > a"),l=this.getToolbarHandles();return s.bind(t.mouseOrTouch("click","touchend"),function(t){var r=e(this).children(".fa"),a=r.attr("name"),s=n.getCursor(),c=n.getSelection();return""!==a?(i.activeIcon=r,"undefined"!=typeof l[a]?e.proxy(l[a],i)(n):"undefined"!=typeof o.toolbarHandlers[a]&&e.proxy(o.toolbarHandlers[a],i)(n,r,s,c),"link"!==a&&"reference-link"!==a&&"image"!==a&&"code-block"!==a&&"preformatted-text"!==a&&"watch"!==a&&"preview"!==a&&"search"!==a&&"fullscreen"!==a&&"info"!==a&&n.focus(),!1):void 0}),this},createDialog:function(i){return e.proxy(t.createDialog,this)(i)},createInfoDialog:function(){var e=this,i=this.editor,o=this.classPrefix,r=['
    ','
    ','

    '+t.title+"v"+t.version+"

    ","

    "+this.lang.description+"

    ",'

    '+t.homePage+'

    ','

    Copyright © 2015 Pandao, The MIT License.

    ',"
    ",'',"
    "].join("\n");i.append(r);var n=this.infoDialog=i.children("."+o+"dialog-info");return n.find("."+o+"dialog-close").bind(t.mouseOrTouch("click","touchend"),function(){e.hideInfoDialog()}),n.css("border",t.isIE8?"1px solid #ddd":"").css("z-index",t.dialogZindex).show(),this.infoDialogPosition(),this},infoDialogPosition:function(){var t=this.infoDialog,i=function(){t.css({top:(e(window).height()-t.height())/2+"px",left:(e(window).width()-t.width())/2+"px"})};return i(),e(window).resize(i),this},showInfoDialog:function(){e("html,body").css("overflow-x","hidden");var i=this.editor,o=this.settings,r=this.infoDialog=i.children("."+this.classPrefix+"dialog-info");return r.length<1&&this.createInfoDialog(),this.lockScreen(!0),this.mask.css({opacity:o.dialogMaskOpacity,backgroundColor:o.dialogMaskBgColor}).show(),r.css("z-index",t.dialogZindex).show(),this.infoDialogPosition(),this},hideInfoDialog:function(){return e("html,body").css("overflow-x",""),this.infoDialog.hide(),this.mask.hide(),this.lockScreen(!1),this},lockScreen:function(e){return t.lockScreen(e),this.resize(),this},recreate:function(){var e=this.editor,t=this.settings;return this.codeMirror.remove(),this.setCodeMirror(),t.readOnly||(e.find(".editormd-dialog").length>0&&e.find(".editormd-dialog").remove(),t.toolbar&&(this.getToolbarHandles(),this.setToolbar())),this.loadedDisplay(!0),this},previewCodeHighlight:function(){var e=this.settings,t=this.previewContainer;return e.previewCodeHighlight&&(t.find("pre").addClass("prettyprint linenums"),"undefined"!=typeof prettyPrint&&prettyPrint()),this},katexRender:function(){return null===i?this:(this.previewContainer.find("."+t.classNames.tex).each(function(){var i=e(this);t.$katex.render(i.text(),i[0]),i.find(".katex").css("font-size","1.6em")}),this)},flowChartAndSequenceDiagramRender:function(){var i=this,r=this.settings,n=this.previewContainer;if(t.isIE8)return this;if(r.flowChart){if(null===o)return this;n.find(".flowchart").flowChart()}r.sequenceDiagram&&n.find(".sequence-diagram").sequenceDiagram({theme:"simple"});var a=i.preview,s=i.codeMirror,l=s.find(".CodeMirror-scroll"),c=l.height(),h=l.scrollTop(),d=h/l[0].scrollHeight,u=0;a.find(".markdown-toc-list").each(function(){u+=e(this).height()});var f=a.find(".editormd-toc-menu").height();return f=f?f:0,a.scrollTop(0===h?0:h+c>=l[0].scrollHeight-16?a[0].scrollHeight:(a[0].scrollHeight+u+f)*d),this},registerKeyMaps:function(i){var o=this,r=this.cm,n=this.settings,a=t.toolbarHandlers,s=n.disabledKeyMaps;if(i=i||null){for(var l in i)if(e.inArray(l,s)<0){var c={};c[l]=i[l],r.addKeyMap(i)}}else{for(var h in t.keyMaps){var d=t.keyMaps[h],u="string"==typeof d?e.proxy(a[d],o):e.proxy(d,o);if(e.inArray(h,["F9","F10","F11"])<0&&e.inArray(h,s)<0){var f={};f[h]=u,r.addKeyMap(f)}}e(window).keydown(function(t){var i={120:"F9",121:"F10",122:"F11"};if(e.inArray(i[t.keyCode],s)<0)switch(t.keyCode){case 120:return e.proxy(a.watch,o)(),!1;case 121:return e.proxy(a.preview,o)(),!1;case 122:return e.proxy(a.fullscreen,o)(),!1}})}return this},bindScrollEvent:function(){var i=this,o=this.preview,r=this.settings,n=this.codeMirror,a=t.mouseOrTouch;if(!r.syncScrolling)return this;var s=function(){n.find(".CodeMirror-scroll").bind(a("scroll","touchmove"),function(t){var n=e(this).height(),a=e(this).scrollTop(),s=a/e(this)[0].scrollHeight,l=0;o.find(".markdown-toc-list").each(function(){l+=e(this).height()});var c=o.find(".editormd-toc-menu").height();c=c?c:0,o.scrollTop(0===a?0:a+n>=e(this)[0].scrollHeight-16?o[0].scrollHeight:(o[0].scrollHeight+l+c)*s),e.proxy(r.onscroll,i)(t)})},l=function(){n.find(".CodeMirror-scroll").unbind(a("scroll","touchmove"))},c=function(){o.bind(a("scroll","touchmove"),function(t){var o=e(this).height(),a=e(this).scrollTop(),s=a/e(this)[0].scrollHeight,l=n.find(".CodeMirror-scroll");l.scrollTop(0===a?0:a+o>=e(this)[0].scrollHeight?l[0].scrollHeight:l[0].scrollHeight*s),e.proxy(r.onpreviewscroll,i)(t)})},h=function(){o.unbind(a("scroll","touchmove"))};return n.bind({mouseover:s,mouseout:l,touchstart:s,touchend:l}),"single"===r.syncScrolling?this:(o.bind({mouseover:c,mouseout:h,touchstart:c,touchend:h}),this)},bindChangeEvent:function(){var e=this,t=this.cm,o=this.settings;return o.syncScrolling?(t.on("change",function(t,r){o.watch&&e.previewContainer.css("padding",o.autoHeight?"20px 20px 50px 40px":"20px"),i=setTimeout(function(){clearTimeout(i),e.save(),i=null},o.delay)}),this):this},loadedDisplay:function(t){t=t||!1;var i=this,o=this.editor,r=this.preview,n=this.settings;return this.containerMask.hide(),this.save(),n.watch&&r.show(),o.data("oldWidth",o.width()).data("oldHeight",o.height()),this.resize(),this.registerKeyMaps(),e(window).resize(function(){i.resize()}),this.bindScrollEvent().bindChangeEvent(),t||e.proxy(n.onload,this)(),this.state.loaded=!0,this},width:function(e){return this.editor.css("width","number"==typeof e?e+"px":e),this.resize(),this},height:function(e){return this.editor.css("height","number"==typeof e?e+"px":e),this.resize(),this},resize:function(t,i){t=t||null,i=i||null;var o=this.state,r=this.editor,n=this.preview,a=this.toolbar,s=this.settings,l=this.codeMirror;if(t&&r.css("width","number"==typeof t?t+"px":t),!s.autoHeight||o.fullscreen||o.preview?(i&&r.css("height","number"==typeof i?i+"px":i),o.fullscreen&&r.height(e(window).height()),s.toolbar&&!s.readOnly?l.css("margin-top",a.height()+1).height(r.height()-a.height()):l.css("margin-top",0).height(r.height())):(r.css("height","auto"),l.css("height","auto")),s.watch)if(l.width(r.width()/2),n.width(o.preview?r.width():r.width()/2),this.previewContainer.css("padding",s.autoHeight?"20px 20px 50px 40px":"20px"),s.toolbar&&!s.readOnly?n.css("top",a.height()+1):n.css("top",0),!s.autoHeight||o.fullscreen||o.preview){var c=s.toolbar&&!s.readOnly?r.height()-a.height():r.height();n.height(c)}else n.height("");else l.width(r.width()),n.hide();return o.loaded&&e.proxy(s.onresize,this)(),this},save:function(){if(null===i)return this;var r=this,n=this.state,a=this.settings,s=this.cm,l=s.getValue(),c=this.previewContainer;if("gfm"!==a.mode&&"markdown"!==a.mode)return this.markdownTextarea.val(l),this;var h=t.$marked,d=this.markdownToC=[],u=this.markedRendererOptions={toc:a.toc,tocm:a.tocm,tocStartLevel:a.tocStartLevel,pageBreak:a.pageBreak,taskList:a.taskList,emoji:a.emoji,tex:a.tex,atLink:a.atLink,emailLink:a.emailLink,flowChart:a.flowChart,sequenceDiagram:a.sequenceDiagram,previewCodeHighlight:a.previewCodeHighlight},f=this.markedOptions={renderer:t.markedRenderer(d,u),gfm:!0,tables:!0,breaks:!0,pedantic:!1,sanitize:!a.htmlDecode,smartLists:!0,smartypants:!0};h.setOptions(f);var p=t.$marked(l,f);if(p=t.filterHTMLTags(p,a.htmlDecode),this.markdownTextarea.text(l),s.save(),a.saveHTMLToTextarea&&this.htmlTextarea.text(p),a.watch||!a.watch&&n.preview){if(c.html(p),this.previewCodeHighlight(),a.toc){var g=""===a.tocContainer?c:e(a.tocContainer),m=g.find("."+this.classPrefix+"toc-menu");g.attr("previewContainer",""===a.tocContainer?"true":"false"),""!==a.tocContainer&&m.length>0&&m.remove(),t.markdownToCRenderer(d,g,a.tocDropdown,a.tocStartLevel),(a.tocDropdown||g.find("."+this.classPrefix+"toc-menu").length>0)&&t.tocDropdownMenu(g,""!==a.tocTitle?a.tocTitle:this.lang.tocTitle),""!==a.tocContainer&&c.find(".markdown-toc").css("border","none")}a.tex&&(!t.kaTeXLoaded&&a.autoLoadModules?t.loadKaTeX(function(){t.$katex=katex,t.kaTeXLoaded=!0,r.katexRender()}):(t.$katex=katex,this.katexRender())),(a.flowChart||a.sequenceDiagram)&&(o=setTimeout(function(){clearTimeout(o),r.flowChartAndSequenceDiagramRender(),o=null},10)),n.loaded&&e.proxy(a.onchange,this)()}return this},focus:function(){return this.cm.focus(),this},setCursor:function(e){return this.cm.setCursor(e),this},getCursor:function(){return this.cm.getCursor()},setSelection:function(e,t){return this.cm.setSelection(e,t),this},getSelection:function(){return this.cm.getSelection()},setSelections:function(e){return this.cm.setSelections(e),this},getSelections:function(){return this.cm.getSelections()},replaceSelection:function(e){return this.cm.replaceSelection(e),this},insertValue:function(e){return this.replaceSelection(e),this},appendMarkdown:function(e){var t=(this.settings,this.cm);return t.setValue(t.getValue()+e),this},setMarkdown:function(e){return this.cm.setValue(e||this.settings.markdown),this},getMarkdown:function(){return this.cm.getValue()},getValue:function(){return this.cm.getValue()},setValue:function(e){return this.cm.setValue(e),this},clear:function(){return this.cm.setValue(""),this},getHTML:function(){return!!this.settings.saveHTMLToTextarea&&this.htmlTextarea.val()},getTextareaSavedHTML:function(){return this.getHTML()},getPreviewedHTML:function(){return!!this.settings.watch&&this.previewContainer.html()},watch:function(t){var o=this.settings;if(e.inArray(o.mode,["gfm","markdown"])<0)return this;if(this.state.watching=o.watch=!0,this.preview.show(),this.toolbar){var r=o.toolbarIconsClass.watch,n=o.toolbarIconsClass.unwatch,a=this.toolbar.find(".fa[name=watch]");a.parent().attr("title",o.lang.toolbar.watch),a.removeClass(n).addClass(r)}return this.codeMirror.css("border-right","1px solid #ddd").width(this.editor.width()/2),i=0,this.save().resize(),o.onwatch||(o.onwatch=t||function(){}),e.proxy(o.onwatch,this)(),this},unwatch:function(t){var i=this.settings;if(this.state.watching=i.watch=!1,this.preview.hide(),this.toolbar){var o=i.toolbarIconsClass.watch,r=i.toolbarIconsClass.unwatch,n=this.toolbar.find(".fa[name=watch]");n.parent().attr("title",i.lang.toolbar.unwatch),n.removeClass(o).addClass(r)}return this.codeMirror.css("border-right","none").width(this.editor.width()),this.resize(),i.onunwatch||(i.onunwatch=t||function(){}),e.proxy(i.onunwatch,this)(),this},show:function(t){t=t||function(){};var i=this;return this.editor.show(0,function(){e.proxy(t,i)()}),this},hide:function(t){t=t||function(){};var i=this;return this.editor.hide(0,function(){e.proxy(t,i)()}),this},previewing:function(){var i=this,o=this.editor,r=this.preview,n=this.toolbar,a=this.settings,s=this.codeMirror,l=this.previewContainer;if(e.inArray(a.mode,["gfm","markdown"])<0)return this;a.toolbar&&n&&(n.toggle(),n.find(".fa[name=preview]").toggleClass("active")),s.toggle();var c=function(e){e.shiftKey&&27===e.keyCode&&i.previewed()};"none"===s.css("display")?(this.state.preview=!0,this.state.fullscreen&&r.css("background","#fff"),o.find("."+this.classPrefix+"preview-close-btn").show().bind(t.mouseOrTouch("click","touchend"),function(){i.previewed()}),a.watch?l.css("padding",""):this.save(),l.addClass(this.classPrefix+"preview-active"),r.show().css({position:"",top:0,width:o.width(),height:a.autoHeight&&!this.state.fullscreen?"auto":o.height()}),this.state.loaded&&e.proxy(a.onpreviewing,this)(),e(window).bind("keyup",c)):(e(window).unbind("keyup",c),this.previewed())},previewed:function(){var i=this.editor,o=this.preview,r=this.toolbar,n=this.settings,a=this.previewContainer,s=i.find("."+this.classPrefix+"preview-close-btn");return this.state.preview=!1,this.codeMirror.show(),n.toolbar&&r.show(),o[n.watch?"show":"hide"](),s.hide().unbind(t.mouseOrTouch("click","touchend")),a.removeClass(this.classPrefix+"preview-active"),n.watch&&a.css("padding","20px"),o.css({background:null,position:"absolute",width:i.width()/2,height:n.autoHeight&&!this.state.fullscreen?"auto":i.height()-r.height(),top:n.toolbar?r.height():0}),this.state.loaded&&e.proxy(n.onpreviewed,this)(),this},fullscreen:function(){var t=this,i=this.state,o=this.editor,r=(this.preview,this.toolbar),n=this.settings,a=this.classPrefix+"fullscreen";r&&r.find(".fa[name=fullscreen]").parent().toggleClass("active");var s=function(e){e.shiftKey||27!==e.keyCode||i.fullscreen&&t.fullscreenExit()};return o.hasClass(a)?(e(window).unbind("keyup",s),this.fullscreenExit()):(i.fullscreen=!0,e("html,body").css("overflow","hidden"),o.css({width:e(window).width(),height:e(window).height()}).addClass(a),this.resize(),e.proxy(n.onfullscreen,this)(),e(window).bind("keyup",s)),this},fullscreenExit:function(){var t=this.editor,i=this.settings,o=this.toolbar,r=this.classPrefix+"fullscreen";return this.state.fullscreen=!1,o&&o.find(".fa[name=fullscreen]").parent().removeClass("active"),e("html,body").css("overflow",""),t.css({width:t.data("oldWidth"),height:t.data("oldHeight")}).removeClass(r),this.resize(),e.proxy(i.onfullscreenExit,this)(),this},executePlugin:function(i,o){var r=this,n=this.cm,a=this.settings;return o=a.pluginPath+o,"function"==typeof define?"undefined"==typeof this[i]?this:(this[i](n),this):(e.inArray(o,t.loadFiles.plugin)<0?t.loadPlugin(o,function(){t.loadPlugins[i]=r[i],r[i](n)}):e.proxy(t.loadPlugins[i],this)(n),this)},search:function(e){var t=this.settings;return t.searchReplace?(t.readOnly||this.cm.execCommand(e||"find"),this):this},searchReplace:function(){return this.search("replace"),this},searchReplaceAll:function(){return this.search("replaceAll"),this}},t.fn.init.prototype=t.fn,t.dialogLockScreen=function(){var t=this.settings||{dialogLockScreen:!0};t.dialogLockScreen&&(e("html,body").css("overflow","hidden"),this.resize())},t.dialogShowMask=function(t){var i=this.editor,o=this.settings||{dialogShowMask:!0};t.css({top:(e(window).height()-t.height())/2+"px",left:(e(window).width()-t.width())/2+"px"}),o.dialogShowMask&&i.children("."+this.classPrefix+"mask").css("z-index",parseInt(t.css("z-index"))-1).show()},t.toolbarHandlers={undo:function(){this.cm.undo()},redo:function(){this.cm.redo()},bold:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();e.replaceSelection("**"+i+"**"),""===i&&e.setCursor(t.line,t.ch+2)},del:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();e.replaceSelection("~~"+i+"~~"),""===i&&e.setCursor(t.line,t.ch+2)},italic:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();e.replaceSelection("*"+i+"*"),""===i&&e.setCursor(t.line,t.ch+1)},quote:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();0!==t.ch?(e.setCursor(t.line,0),e.replaceSelection("> "+i),e.setCursor(t.line,t.ch+2)):e.replaceSelection("> "+i)},ucfirst:function(){var e=this.cm,i=e.getSelection(),o=e.listSelections();e.replaceSelection(t.firstUpperCase(i)),e.setSelections(o)},ucwords:function(){var e=this.cm,i=e.getSelection(),o=e.listSelections();e.replaceSelection(t.wordsFirstUpperCase(i)),e.setSelections(o)},uppercase:function(){var e=this.cm,t=e.getSelection(),i=e.listSelections();e.replaceSelection(t.toUpperCase()),e.setSelections(i)},lowercase:function(){var e=this.cm,t=(e.getCursor(),e.getSelection()),i=e.listSelections();e.replaceSelection(t.toLowerCase()),e.setSelections(i)},h1:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();0!==t.ch?(e.setCursor(t.line,0),e.replaceSelection("# "+i),e.setCursor(t.line,t.ch+2)):e.replaceSelection("# "+i)},h2:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();0!==t.ch?(e.setCursor(t.line,0),e.replaceSelection("## "+i),e.setCursor(t.line,t.ch+3)):e.replaceSelection("## "+i)},h3:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();0!==t.ch?(e.setCursor(t.line,0),e.replaceSelection("### "+i),e.setCursor(t.line,t.ch+4)):e.replaceSelection("### "+i)},h4:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();0!==t.ch?(e.setCursor(t.line,0),e.replaceSelection("#### "+i), -e.setCursor(t.line,t.ch+5)):e.replaceSelection("#### "+i)},h5:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();0!==t.ch?(e.setCursor(t.line,0),e.replaceSelection("##### "+i),e.setCursor(t.line,t.ch+6)):e.replaceSelection("##### "+i)},h6:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();0!==t.ch?(e.setCursor(t.line,0),e.replaceSelection("###### "+i),e.setCursor(t.line,t.ch+7)):e.replaceSelection("###### "+i)},"list-ul":function(){var e=this.cm,t=(e.getCursor(),e.getSelection());if(""===t)e.replaceSelection("- "+t);else{for(var i=t.split("\n"),o=0,r=i.length;r>o;o++)i[o]=""===i[o]?"":"- "+i[o];e.replaceSelection(i.join("\n"))}},"list-ol":function(){var e=this.cm,t=(e.getCursor(),e.getSelection());if(""===t)e.replaceSelection("1. "+t);else{for(var i=t.split("\n"),o=0,r=i.length;r>o;o++)i[o]=""===i[o]?"":o+1+". "+i[o];e.replaceSelection(i.join("\n"))}},hr:function(){var e=this.cm,t=e.getCursor();e.getSelection(),e.replaceSelection((0!==t.ch?"\n\n":"\n")+"------------\n\n")},tex:function(){if(!this.settings.tex)return this;var e=this.cm,t=e.getCursor(),i=e.getSelection();e.replaceSelection("$$"+i+"$$"),""===i&&e.setCursor(t.line,t.ch+2)},link:function(){this.executePlugin("linkDialog","link-dialog/link-dialog")},"reference-link":function(){this.executePlugin("referenceLinkDialog","reference-link-dialog/reference-link-dialog")},pagebreak:function(){if(!this.settings.pageBreak)return this;var e=this.cm;e.getSelection(),e.replaceSelection("\r\n[========]\r\n")},image:function(){this.executePlugin("imageDialog","image-dialog/image-dialog")},code:function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();e.replaceSelection("`"+i+"`"),""===i&&e.setCursor(t.line,t.ch+1)},"code-block":function(){this.executePlugin("codeBlockDialog","code-block-dialog/code-block-dialog")},"preformatted-text":function(){this.executePlugin("preformattedTextDialog","preformatted-text-dialog/preformatted-text-dialog")},table:function(){this.executePlugin("tableDialog","table-dialog/table-dialog")},datetime:function(){var e=this.cm,i=(e.getSelection(),new Date,this.settings.lang.name),o=t.dateFormat()+" "+t.dateFormat("zh-cn"===i||"zh-tw"===i?"cn-week-day":"week-day");e.replaceSelection(o)},emoji:function(){this.executePlugin("emojiDialog","emoji-dialog/emoji-dialog")},"html-entities":function(){this.executePlugin("htmlEntitiesDialog","html-entities-dialog/html-entities-dialog")},"goto-line":function(){this.executePlugin("gotoLineDialog","goto-line-dialog/goto-line-dialog")},watch:function(){this[this.settings.watch?"unwatch":"watch"]()},preview:function(){this.previewing()},fullscreen:function(){this.fullscreen()},clear:function(){this.clear()},search:function(){this.search()},help:function(){this.executePlugin("helpDialog","help-dialog/help-dialog")},info:function(){this.showInfoDialog()}},t.keyMaps={"Ctrl-1":"h1","Ctrl-2":"h2","Ctrl-3":"h3","Ctrl-4":"h4","Ctrl-5":"h5","Ctrl-6":"h6","Ctrl-B":"bold","Ctrl-D":"datetime","Ctrl-E":function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();return this.settings.emoji?(e.replaceSelection(":"+i+":"),void(""===i&&e.setCursor(t.line,t.ch+1))):void 0},"Ctrl-Alt-G":"goto-line","Ctrl-H":"hr","Ctrl-I":"italic","Ctrl-K":"code","Ctrl-L":function(){var e=this.cm,t=e.getCursor(),i=e.getSelection(),o=""===i?"":' "'+i+'"';e.replaceSelection("["+i+"]("+o+")"),""===i&&e.setCursor(t.line,t.ch+1)},"Ctrl-U":"list-ul","Shift-Ctrl-A":function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();return this.settings.atLink?(e.replaceSelection("@"+i),void(""===i&&e.setCursor(t.line,t.ch+1))):void 0},"Shift-Ctrl-C":"code","Shift-Ctrl-Q":"quote","Shift-Ctrl-S":"del","Shift-Ctrl-K":"tex","Shift-Alt-C":function(){var e=this.cm,t=e.getCursor(),i=e.getSelection();e.replaceSelection(["```",i,"```"].join("\n")),""===i&&e.setCursor(t.line,t.ch+3)},"Shift-Ctrl-Alt-C":"code-block","Shift-Ctrl-H":"html-entities","Shift-Alt-H":"help","Shift-Ctrl-E":"emoji","Shift-Ctrl-U":"uppercase","Shift-Alt-U":"ucwords","Shift-Ctrl-Alt-U":"ucfirst","Shift-Alt-L":"lowercase","Shift-Ctrl-I":function(){var e=this.cm,t=e.getCursor(),i=e.getSelection(),o=""===i?"":' "'+i+'"';e.replaceSelection("!["+i+"]("+o+")"),""===i&&e.setCursor(t.line,t.ch+4)},"Shift-Ctrl-Alt-I":"image","Shift-Ctrl-L":"link","Shift-Ctrl-O":"list-ol","Shift-Ctrl-P":"preformatted-text","Shift-Ctrl-T":"table","Shift-Alt-P":"pagebreak",F9:"watch",F10:"preview",F11:"fullscreen"};var r=function(e){return String.prototype.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")};t.trim=r;var n=function(e){return e.toLowerCase().replace(/\b(\w)|\s(\w)/g,function(e){return e.toUpperCase()})};t.ucwords=t.wordsFirstUpperCase=n;var a=function(e){return e.toLowerCase().replace(/\b(\w)/,function(e){return e.toUpperCase()})};return t.firstUpperCase=t.ucfirst=a,t.urls={atLinkBase:"https://github.com/"},t.regexs={atLink:/@(\w+)/g,email:/(\w+)@(\w+)\.(\w+)\.?(\w+)?/g,emailLink:/(mailto:)?([\w\.\_]+)@(\w+)\.(\w+)\.?(\w+)?/g,emoji:/:([\w\+-]+):/g,emojiDatetime:/(\d{2}:\d{2}:\d{2})/g,twemoji:/:(tw-([\w]+)-?(\w+)?):/g,fontAwesome:/:(fa-([\w]+)(-(\w+)){0,}):/g,editormdLogo:/:(editormd-logo-?(\w+)?):/g,pageBreak:/^\[[=]{8,}\]$/},t.emoji={path:"http://www.emoji-cheat-sheet.com/graphics/emojis/",ext:".png"},t.twemoji={path:"http://twemoji.maxcdn.com/36x36/",ext:".png"},t.markedRenderer=function(i,o){var n={toc:!0,tocm:!1,tocStartLevel:1,pageBreak:!0,atLink:!0,emailLink:!0,taskList:!1,emoji:!1,tex:!1,flowChart:!1,sequenceDiagram:!1},a=e.extend(n,o||{}),s=t.$marked,l=new s.Renderer;i=i||[];var c=t.regexs,h=c.atLink,d=c.emoji,u=c.email,f=c.emailLink,p=c.twemoji,g=c.fontAwesome,m=c.editormdLogo,w=c.pageBreak;return l.emoji=function(e){e=e.replace(t.regexs.emojiDatetime,function(e){return e.replace(/:/g,":")});var i=e.match(d);if(!i||!a.emoji)return e;for(var o=0,r=i.length;r>o;o++)":+1:"===i[o]&&(i[o]=":\\+1:"),e=e.replace(new RegExp(i[o]),function(e,i){var o=e.match(g),r=e.replace(/:/g,"");if(o)for(var n=0,a=o.length;a>n;n++){var s=o[n].replace(/:/g,"");return''}else{var l=e.match(m),c=e.match(p);if(l)for(var h=0,d=l.length;d>h;h++){var u=l[h].replace(/:/g,"");return''}else{if(!c){var f="+1"===r?"plus1":r;return f="black_large_square"===f?"black_square":f,f="moon"===f?"waxing_gibbous_moon":f,':'+r+':'}for(var w=0,v=c.length;v>w;w++){var k=c[w].replace(/:/g,"").replace("tw-","");return'twemoji-'+k+''}}}});return e},l.atLink=function(i){return h.test(i)?(a.atLink&&(i=i.replace(u,function(e,t,i,o){return e.replace(/@/g,"_#_@_#_")}),i=i.replace(h,function(e,i){return''+e+""}).replace(/_#_@_#_/g,"@")),a.emailLink&&(i=i.replace(f,function(t,i,o,r,n){return!i&&e.inArray(n,"jpg|jpeg|png|gif|webp|ico|icon|pdf".split("|"))<0?''+t+"":t})),i):i},l.link=function(e,t,i){if(this.options.sanitize){try{var o=decodeURIComponent(unescape(e)).replace(/[^\w:]/g,"").toLowerCase()}catch(r){return""}if(0===o.indexOf("javascript:"))return""}var n=''+i.replace(/@/g,"@")+""):(t&&(n+=' title="'+t+'"'),n+=">"+i+"")},l.heading=function(e,t,o){var n=e,a=/\s*\]*)\>(.*)\<\/a\>\s*/;if(a.test(e)){var s=[];e=e.split(/\]+)\>([^\>]*)\<\/a\>/);for(var l=0,c=e.length;c>l;l++)s.push(e[l].replace(/\s*href\=\"(.*)\"\s*/g,""));e=s.join(" ")}e=r(e);var h=e.toLowerCase().replace(/[^\w]+/g,"-"),d={text:e,level:t,slug:h},u=/^[\u4e00-\u9fa5]+$/.test(e),f=u?escape(e).replace(/\%/g,""):e.toLowerCase().replace(/[^\w]+/g,"-");i.push(d);var p="';return p+='',p+='',p+=this.atLink(a?this.emoji(n):this.emoji(e)),p+=""},l.pageBreak=function(e){return w.test(e)&&a.pageBreak&&(e='
    '),e},l.paragraph=function(e){var i=/\$\$(.*)\$\$/g.test(e),o=/^\$\$(.*)\$\$$/.test(e),r=o?' class="'+t.classNames.tex+'"':"",n=a.tocm?/^(\[TOC\]|\[TOCM\])$/.test(e):/^\[TOC\]$/.test(e),s=/^\[TOCM\]$/.test(e);e=!o&&i?e.replace(/(\$\$([^\$]*)\$\$)+/g,function(e,i){return''+i.replace(/\$/g,"")+""}):o?e.replace(/\$/g,""):e;var l='
    '+e+"
    ";return n?s?'
    '+l+"

    ":l:w.test(e)?this.pageBreak(e):""+this.atLink(this.emoji(e))+"

    \n"},l.code=function(e,i,o){return"seq"===i||"sequence"===i?'
    '+e+"
    ":"flow"===i?'
    '+e+"
    ":"math"===i||"latex"===i||"katex"===i?'

    '+e+"

    ":s.Renderer.prototype.code.apply(this,arguments)},l.tablecell=function(e,t){var i=t.header?"th":"td",o=t.align?"<"+i+' style="text-align:'+t.align+'">':"<"+i+">";return o+this.atLink(this.emoji(e))+"\n"},l.listitem=function(e){return a.taskList&&/^\s*\[[x\s]\]\s*/.test(e)?(e=e.replace(/^\s*\[\s\]\s*/,' ').replace(/^\s*\[x\]\s*/,' '),'
  • '+this.atLink(this.emoji(e))+"
  • "):"
  • "+this.atLink(this.emoji(e))+"
  • "},l},t.markdownToCRenderer=function(e,t,i,o){var r="",n=0,a=this.classPrefix;o=o||1;for(var s=0,l=e.length;l>s;s++){var c=e[s].text,h=e[s].level;o>h||(r+=h>n?"":n>h?new Array(n-h+2).join(""):"",r+='
  • '+c+"
      ",n=h)}var d=t.find(".markdown-toc");if(d.length<1&&"false"===t.attr("previewContainer")){var u='
      ';u=i?'
      '+u+"
      ":u,t.html(u),d=t.find(".markdown-toc")}return i&&d.wrap('

      '),d.html('
        ').children(".markdown-toc-list").html(r.replace(/\r?\n?\\<\/ul\>/g,"")),d},t.tocDropdownMenu=function(t,i){i=i||"Table of Contents";var o=400,r=t.find("."+this.classPrefix+"toc-menu");return r.each(function(){var t=e(this),r=t.children(".markdown-toc"),n='',a=''+n+i+"",s=r.children("ul"),l=s.find("li");r.append(a),l.first().before("
      • "+i+" "+n+"

      • "),t.mouseover(function(){s.show(),l.each(function(){var t=e(this),i=t.children("ul");if(""===i.html()&&i.remove(),i.length>0&&""!==i.html()){var r=t.children("a").first();r.children(".fa").length<1&&r.append(e(n).css({"float":"right",paddingTop:"4px"}))}t.mouseover(function(){i.css("z-index",o).show(),o+=1}).mouseleave(function(){i.hide()})})}).mouseleave(function(){s.hide()})}),r},t.filterHTMLTags=function(t,i){if("string"!=typeof t&&(t=new String(t)),"string"!=typeof i)return t;for(var o=i.split("|"),r=o[0].split(","),n=o[1],a=0,s=r.length;s>a;a++){var l=r[a];t=t.replace(new RegExp("]*)>([^>]*)","igm"),"")}if("undefined"!=typeof n){var c=/\<(\w+)\s*([^\>]*)\>([^\>]*)\<\/(\w+)\>/gi;t="*"===n?t.replace(c,function(e,t,i,o,r){return"<"+t+">"+o+""}):"on*"===n?t.replace(c,function(t,i,o,r,n){var a=e("<"+i+">"+r+""),s=e(t)[0].attributes,l={};e.each(s,function(e,t){'"'!==t.nodeName&&(l[t.nodeName]=t.nodeValue)}),e.each(l,function(e){0===e.indexOf("on")&&delete l[e]}),a.attr(l);var c="undefined"!=typeof a[1]?e(a[1]).text():"";return a[0].outerHTML+c}):t.replace(c,function(t,i,o,r){var a=n.split(","),s=e(t);return s.html(r),e.each(a,function(e){s.attr(a[e],null)}),s[0].outerHTML})}return t},t.markdownToHTML=function(i,o){var r={gfm:!0,toc:!0,tocm:!1,tocStartLevel:1,tocTitle:"目录",tocDropdown:!1,tocContainer:"",markdown:"",markdownSourceCode:!1,htmlDecode:!1,autoLoadKaTeX:!0,pageBreak:!0,atLink:!0,emailLink:!0,tex:!1,taskList:!1,emoji:!1,flowChart:!1,sequenceDiagram:!1,previewCodeHighlight:!0};t.$marked=marked;var n=e("#"+i),a=n.settings=e.extend(!0,r,o||{}),s=n.find("textarea");s.length<1&&(n.append(""),s=n.find("textarea"));var l=""===a.markdown?s.val():a.markdown,c=[],h={toc:a.toc,tocm:a.tocm,tocStartLevel:a.tocStartLevel,taskList:a.taskList,emoji:a.emoji,tex:a.tex,pageBreak:a.pageBreak,atLink:a.atLink,emailLink:a.emailLink,flowChart:a.flowChart,sequenceDiagram:a.sequenceDiagram,previewCodeHighlight:a.previewCodeHighlight},d={renderer:t.markedRenderer(c,h),gfm:a.gfm,tables:!0,breaks:!0,pedantic:!1,sanitize:!a.htmlDecode,smartLists:!0,smartypants:!0};l=new String(l);var u=marked(l,d);u=t.filterHTMLTags(u,a.htmlDecode),a.markdownSourceCode?s.text(l):s.remove(),n.addClass("markdown-body "+this.classPrefix+"html-preview").append(u);var f=""!==a.tocContainer?e(a.tocContainer):n;if(""!==a.tocContainer&&f.attr("previewContainer",!1),a.toc&&(n.tocContainer=this.markdownToCRenderer(c,f,a.tocDropdown,a.tocStartLevel),(a.tocDropdown||n.find("."+this.classPrefix+"toc-menu").length>0)&&this.tocDropdownMenu(n,a.tocTitle),""!==a.tocContainer&&n.find(".editormd-toc-menu, .editormd-markdown-toc").remove()),a.previewCodeHighlight&&(n.find("pre").addClass("prettyprint linenums"),prettyPrint()),t.isIE8||(a.flowChart&&n.find(".flowchart").flowChart(),a.sequenceDiagram&&n.find(".sequence-diagram").sequenceDiagram({theme:"simple"})),a.tex){var p=function(){n.find("."+t.classNames.tex).each(function(){var t=e(this);katex.render(t.html().replace(/</g,"<").replace(/>/g,">"),t[0]),t.find(".katex").css("font-size","1.6em")})};!a.autoLoadKaTeX||t.$katex||t.kaTeXLoaded?p():this.loadKaTeX(function(){t.$katex=katex,t.kaTeXLoaded=!0,p()})}return n.getMarkdown=function(){return s.val()},n},t.themes=["default","dark"],t.previewThemes=["default","dark"],t.editorThemes=["default","3024-day","3024-night","ambiance","ambiance-mobile","base16-dark","base16-light","blackboard","cobalt","eclipse","elegant","erlang-dark","lesser-dark","mbo","mdn-like","midnight","monokai","neat","neo","night","paraiso-dark","paraiso-light","pastel-on-dark","rubyblue","solarized","the-matrix","tomorrow-night-eighties","twilight","vibrant-ink","xq-dark","xq-light"],t.loadPlugins={},t.loadFiles={js:[],css:[],plugin:[]},t.loadPlugin=function(e,i,o){i=i||function(){},this.loadScript(e,function(){t.loadFiles.plugin.push(e),i()},o)},t.loadCSS=function(e,i,o){o=o||"head",i=i||function(){};var r=document.createElement("link");r.type="text/css",r.rel="stylesheet",r.onload=r.onreadystatechange=function(){t.loadFiles.css.push(e),i()},r.href=e+".css","head"===o?document.getElementsByTagName("head")[0].appendChild(r):document.body.appendChild(r)},t.isIE="Microsoft Internet Explorer"==navigator.appName,t.isIE8=t.isIE&&"8."==navigator.appVersion.match(/8./i),t.loadScript=function(e,i,o){o=o||"head",i=i||function(){};var r=null;r=document.createElement("script"),r.id=e.replace(/[\.\/]+/g,"-"),r.type="text/javascript",r.src=e+".js",t.isIE8?r.onreadystatechange=function(){r.readyState&&("loaded"===r.readyState||"complete"===r.readyState)&&(r.onreadystatechange=null,t.loadFiles.js.push(e),i())}:r.onload=function(){t.loadFiles.js.push(e),i()},"head"===o?document.getElementsByTagName("head")[0].appendChild(r):document.body.appendChild(r)},t.katexURL={css:"//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.3.0/katex.min",js:"//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.3.0/katex.min"},t.kaTeXLoaded=!1,t.loadKaTeX=function(e){t.loadCSS(t.katexURL.css,function(){t.loadScript(t.katexURL.js,e||function(){})})},t.lockScreen=function(t){e("html,body").css("overflow",t?"hidden":"")},t.createDialog=function(i){var o={name:"",width:420,height:240,title:"",drag:!0,closed:!0,content:"",mask:!0,maskStyle:{backgroundColor:"#fff",opacity:.1},lockScreen:!0,footer:!0,buttons:!1};i=e.extend(!0,o,i);var r=this,n=this.editor,a=t.classPrefix,s=(new Date).getTime(),l=""===i.name?a+"dialog-"+s:i.name,c=t.mouseOrTouch,h='
        ';""!==i.title&&(h+='
        ",h+=''+i.title+"",h+="
        "),i.closed&&(h+=''),h+='
        '+i.content,(i.footer||"string"==typeof i.footer)&&(h+='"),h+="
        ",h+='
        ',h+='
        ',h+="
        ",n.append(h);var d=n.find("."+l);d.lockScreen=function(t){return i.lockScreen&&(e("html,body").css("overflow",t?"hidden":""),r.resize()),d},d.showMask=function(){return i.mask&&n.find("."+a+"mask").css(i.maskStyle).css("z-index",t.dialogZindex-1).show(),d},d.hideMask=function(){return i.mask&&n.find("."+a+"mask").hide(),d},d.loading=function(e){var t=d.find("."+a+"dialog-mask");return t[e?"show":"hide"](),d},d.lockScreen(!0).showMask(),d.show().css({zIndex:t.dialogZindex,border:t.isIE8?"1px solid #ddd":"",width:"number"==typeof i.width?i.width+"px":i.width,height:"number"==typeof i.height?i.height+"px":i.height});var u=function(){d.css({top:(e(window).height()-d.height())/2+"px",left:(e(window).width()-d.width())/2+"px"})};if(u(),e(window).resize(u),d.children("."+a+"dialog-close").bind(c("click","touchend"),function(){d.hide().lockScreen(!1).hideMask()}),"object"==typeof i.buttons){var f=d.footer=d.find("."+a+"dialog-footer");for(var p in i.buttons){var g=i.buttons[p],m=a+p+"-btn";f.append('"),g[1]=e.proxy(g[1],d),f.children("."+m).bind(c("click","touchend"),g[1])}}if(""!==i.title&&i.drag){var w,v,k=d.children("."+a+"dialog-header");i.mask||k.bind(c("click","touchend"),function(){t.dialogZindex+=2,d.css("z-index",t.dialogZindex)}),k.mousedown(function(e){e=e||window.event,w=e.clientX-parseInt(d[0].style.left),v=e.clientY-parseInt(d[0].style.top),document.onmousemove=y});var b=function(e){e.removeClass(a+"user-unselect").off("selectstart")},x=function(e){e.addClass(a+"user-unselect").on("selectstart",function(e){return!1})},y=function(t){t=t||window.event;var i,o,r=parseInt(d[0].style.left),n=parseInt(d[0].style.top);r>=0?r+d.width()<=e(window).width()?i=t.clientX-w:(i=e(window).width()-d.width(),document.onmousemove=null):(i=0,document.onmousemove=null),n>=0?o=t.clientY-v:(o=0,document.onmousemove=null),document.onselectstart=function(){return!1},x(e("body")),x(d),d[0].style.left=i+"px",d[0].style.top=o+"px"};document.onmouseup=function(){b(e("body")),b(d),document.onselectstart=null,document.onmousemove=null},k.touchDraggable=function(){var t=null,i=function(i){var o=i.originalEvent,r=e(this).parent().position();t={x:o.changedTouches[0].pageX-r.left,y:o.changedTouches[0].pageY-r.top}},o=function(i){i.preventDefault();var o=i.originalEvent;e(this).parent().css({top:o.changedTouches[0].pageY-t.y,left:o.changedTouches[0].pageX-t.x})};this.bind("touchstart",i).bind("touchmove",o)},k.touchDraggable()}return t.dialogZindex+=2,d},t.mouseOrTouch=function(e,t){e=e||"click",t=t||"touchend";var i=e;try{document.createEvent("TouchEvent"),i=t}catch(o){}return i},t.dateFormat=function(e){e=e||"";var t=function(e){return 10>e?"0"+e:e},i=new Date,o=i.getFullYear(),r=o.toString().slice(2,4),n=t(i.getMonth()+1),a=t(i.getDate()),s=i.getDay(),l=t(i.getHours()),c=t(i.getMinutes()),h=t(i.getSeconds()),d=t(i.getMilliseconds()),u="",f=r+"-"+n+"-"+a,p=o+"-"+n+"-"+a,g=l+":"+c+":"+h;switch(e){case"UNIX Time":u=i.getTime();break;case"UTC":u=i.toUTCString();break;case"yy":u=r;break;case"year":case"yyyy":u=o;break;case"month":case"mm":u=n;break;case"cn-week-day":case"cn-wd":var m=["日","一","二","三","四","五","六"];u="星期"+m[s];break;case"week-day":case"wd":var w=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];u=w[s];break;case"day":case"dd":u=a;break;case"hour":case"hh":u=l;break;case"min":case"ii":u=c;break;case"second":case"ss":u=h;break;case"ms":u=d;break;case"yy-mm-dd":u=f;break;case"yyyy-mm-dd":u=p;break;case"yyyy-mm-dd h:i:s ms":case"full + ms":u=p+" "+g+" "+d;break;case"full":case"yyyy-mm-dd h:i:s":default:u=p+" "+g}return u},t}}); \ No newline at end of file diff --git a/eolinker_os_3.5/libs/editor.md/fonts/fontawesome-webfont.eot b/eolinker_os_3.5/libs/editor.md/fonts/fontawesome-webfont.eot deleted file mode 100644 index 33b2bb80055cc480e797de704925acaba4ba7d7d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 60767 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%0DKehr}RFC`2XTB_?==0w^)u1m5PYii@6f)6_5Ydu zv+NIZ_(Rt}Q++LT5!n8!J4x!>sE&v_3*cXat{Zq5;17w;B6$epw}$Rg`0nFJg5D-L zYvw@(goc5TeJjM($AJAZxZHZN}RzBcP0=_>ZI6WVGU zO#Nk-YqZTa3{!84P0K~GsI#32<+_AsXU43wILwZS(8n%S9)lP!Dg$$e2$$9$E?^Nj zql4do#+a8qEP(bD2)DpP|$dp<`TZ#bY6^~7Xv_Lle)77^OsVhMOm(@ z??8O8kA%}ZWpR&2v!7qFSw@TF6d*=9YT^Rtk(n8p=CQWvt1Om=n&5uP;GiT6 zMRvbm39kbp*KB`qoVg12w52Z)T}`X41P>D|q_%K#zuhwb+BpEogY0E)KnSy#@+(m5 z20@LG@LUEvk`I|OIUV^^0_YtG9AElBS!Dsh%k^P9r0moJ25Lkm-gh#igwBDhAOj0!EF&8MxV^-m1U1MEd?H7} zL;r;tfFIT|ei3-Z@gyM=!%Ba7Pa626JRAA`V<2D<{RLRT@0o=bE)XF)nFtUL67`2L z{?_Qz_`Yy2t+I)?9&z#z__Q%L3pnhN}U z_rN#WU)kD59D4whbSYERHY01jM7id50EuI1ctl?<_IT=Y5vP>(sNNkB&U5&F&^kBhm5y{o!y!F+4wdxXoy;!4$W`?_nL(+bK_QDAMUV1O0AwZ| z6j)s}9YEZbY-C^Y)9Ej`aS&~{sXCG2SS3ce$EY;Yv-c8TlrD$C85ATlLZpGP_YWfi z`RQ?z1@zIfa{yqfsUDMEPpwuX%XHdO+ASb3EPi1fBPocvfgsC0xa^CG2SWBPWQ&GS zpCXPti8b>WkYbf#Vg%A?&_UwUsUQE_t4GX?7QqUpKJ2Iw#%)Q4Ft(`9Ja&Yk{C@38 z@%T`)#wWy(kKfEH;ZBQ(m*Iq&L=<)4D7tNO{SsA4Fp4D?(Ex6nQS&f3TK|atgj`fE z2|OX0(&(ZqxJd~IANX&dvX?U14_<~h2(lP6k^H8ep;2HW6oPo?U%v{M>|{sU~;p zLTv$OTx3H^4zNUn4wUfo>j{CEvTC@C+cw+cW*ABH6u@!M2EdBL?1GbL_#e;7YDBas zic?MTazk(khXSyPeDom_I~wkLv?Wr8<%egEfM!*M9^kl$>zsVzaP}S!gcD3;Czy#58RTm?`p)RTS8I<-sC3+*n{A)P*rU!@Npj`e{x9xsif2v zTW`{q3p^?A!Mk60Q{(FLt(&TVe9z z0-!PiOV02JcNeq?AbJaI+B9xC;LB=}Ho0vH(@;Qe0zq~-8ckOa!(u@Wou`p_TR|QT z38H`lJE$G{q1egUX@&v$x7wNLWD#j*!D58GLv^bT+jpdKBrK#SsQsWK(+RO40VA^w z0nA7MN1Y1Fc#5JkwD5TtHG1t;lo=i)U+kFG?1Jh11h9382!marrRE2eZh;JGh`wNO zQA_~n?%97HOKLA^#oG(5*bgSllS%rOc(S%Yj00cYR;!D9G_90{pfq7D4I*$k?byOV zR|epi%oIJ{ou`5zS!-_dnxOa{uNv)(luMo^5TCOItq}2}sxCztLEzBGS)Mf6dzaw< z!GweAgvFYJu&mH(Vl9HJBV%=Jz~~i%nDGIF9ncTET-AQ=fv{L11&K_;ei!iht(!De;ym|y7ksL|^5Ko~B-vSh80++s?unD}bZaYa@ zPH4M$&fw;xEGN3_H1vHW><%-+dg7dfW)F8$bB+h7sThoOtteO(v{&-+iK}r$%G))# z*Nhx^!ZMj1VeG?EkWg+0CYQSX1t96fV9^3c+9C393LU&CHsFCa1q99$`zTMsEWwLc zxsw1|A?k8-m8HCrk6;K7dhNDJN3R9iws%6vTq_}PtR2CZ8TG;ltZ4I}sU+^s8`P3F5QxrypG1-{ zGlr^7$Wsy(lo=xfC~BpKfg<2z4OEeEF@~x{Pi7O#CvqMJy+f+}=CB_$&IuEslB@s# J000000038FvZ??8 diff --git a/eolinker_os_3.5/libs/editor.md/fonts/fontawesome-webfont.svg b/eolinker_os_3.5/libs/editor.md/fonts/fontawesome-webfont.svg deleted file mode 100644 index 1ee89d4..0000000 --- a/eolinker_os_3.5/libs/editor.md/fonts/fontawesome-webfont.svg +++ /dev/null @@ -1,565 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/eolinker_os_3.5/libs/editor.md/fonts/fontawesome-webfont.ttf b/eolinker_os_3.5/libs/editor.md/fonts/fontawesome-webfont.ttf deleted file mode 100644 index ed9372f8ea0fbaa04f42630a48887e4b38945345..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 122092 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 +|+&Vdls@0SAya!5R?! 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
        6YuX1v{q9=vI}{pN+P4FW!CI?#11< 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 z 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 diff --git a/eolinker_os_3.5/libs/editor.md/fonts/fontawesome-webfont.woff b/eolinker_os_3.5/libs/editor.md/fonts/fontawesome-webfont.woff deleted file mode 100644 index 8b280b98fa2fa261aa4b0f8fd061f772073ef83e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 71508 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 diff --git a/eolinker_os_3.5/libs/editor.md/images/loading.gif b/eolinker_os_3.5/libs/editor.md/images/loading.gif deleted file mode 100644 index 3aa9c85aec01ff026445aeaae26cabb0c3d9488d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7726 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 VifYZ_gR_6Ce{1wKUk{J-{~yeEA>IH0 diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/AUTHORS b/eolinker_os_3.5/libs/editor.md/lib/codemirror/AUTHORS deleted file mode 100644 index 9d62d48..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/AUTHORS +++ /dev/null @@ -1,436 +0,0 @@ -List of CodeMirror contributors. Updated before every release. - -4r2r -Aaron Brooks -Abdelouahab -Abe Fettig -Adam Ahmed -Adam King -adanlobato -Adán Lobato -Adrian Aichner -aeroson -Ahmad Amireh -Ahmad M. Zawawi -ahoward -Akeksandr Motsjonov -Alberto González Palomo -Alberto Pose -Albert Xing -Alexander Pavlov -Alexander Schepanovski -Alexander Shvets -Alexander Solovyov -Alexandre Bique -alexey-k -Alex Piggott -Aliaksei Chapyzhenka -Amsul -amuntean -Amy -Ananya Sen -anaran -AndersMad -Anders Nawroth -Anderson Mesquita -Andrea G -Andreas Reischuck -Andre von Houck -Andrey Fedorov -Andrey Klyuchnikov -Andrey Lushnikov -Andy Joslin -Andy Kimball -Andy Li -angelozerr -angelo.zerr@gmail.com -Ankit -Ankit Ahuja -Ansel Santosa -Anthony Grimes -Anton Kovalyov -areos -as3boyan -AtomicPages LLC -Atul Bhouraskar -Aurelian Oancea -Bastian Müller -Bem Jones-Bey -benbro -Beni Cherniavsky-Paskin -Benjamin DeCoste -Ben Keen -Bernhard Sirlinger -Bert Chang -Billy Moon -binny -B Krishna Chaitanya -Blaine G -blukat29 -boomyjee -borawjm -Brandon Frohs -Brandon Wamboldt -Brett Zamir -Brian Grinstead -Brian Sletten -Bruce Mitchener -Chandra Sekhar Pydi -Charles Skelton -Cheah Chu Yeow -Chris Coyier -Chris Granger -Chris Houseknecht -Chris Morgan -Christian Oyarzun -Christian Petrov -Christopher Brown -ciaranj -CodeAnimal -ComFreek -Curtis Gagliardi -dagsta -daines -Dale Jung -Dan Bentley -Dan Heberden -Daniel, Dao Quang Minh -Daniele Di Sarli -Daniel Faust -Daniel Huigens -Daniel KJ -Daniel Neel -Daniel Parnell -Danny Yoo -darealshinji -Darius Roberts -Dave Myers -David Mignot -David Pathakjee -David Vázquez -deebugger -Deep Thought -Devon Carew -dignifiedquire -Dimage Sapelkin -Dmitry Kiselyov -domagoj412 -Dominator008 -Domizio Demichelis -Doug Wikle -Drew Bratcher -Drew Hintz -Drew Khoury -Dror BG -duralog -eborden -edsharp -ekhaled -Enam Mijbah Noor -Eric Allam -eustas -Fabien O'Carroll -Fabio Zendhi Nagao -Faiza Alsaied -Fauntleroy -fbuchinger -feizhang365 -Felipe Lalanne -Felix Raab -Filip Noetzel -flack -ForbesLindesay -Forbes Lindesay -Ford_Lawnmower -Forrest Oliphant -Frank Wiegand -Gabriel Gheorghian -Gabriel Horner -Gabriel Nahmias -galambalazs -Gautam Mehta -gekkoe -Gerard Braad -Gergely Hegykozi -Giovanni Calò -Glenn Jorde -Glenn Ruehle -Golevka -Gordon Smith -Grant Skinner -greengiant -Gregory Koberger -Guillaume Massé -Guillaume Massé -Gustavo Rodrigues -Hakan Tunc -Hans Engel -Hardest -Hasan Karahan -Herculano Campos -Hiroyuki Makino -hitsthings -Hocdoc -Ian Beck -Ian Dickinson -Ian Wehrman -Ian Wetherbee -Ice White -ICHIKAWA, Yuji -ilvalle -Ingo Richter -Irakli Gozalishvili -Ivan Kurnosov -Jacob Lee -Jakob Miland -Jakub Vrana -Jakub Vrána -James Campos -James Thorne -Jamie Hill -Jan Jongboom -jankeromnes -Jan Keromnes -Jan Odvarko -Jan T. Sott -Jared Forsyth -Jason -Jason Barnabe -Jason Grout -Jason Johnston -Jason San Jose -Jason Siefken -Jaydeep Solanki -Jean Boussier -jeffkenton -Jeff Pickhardt -jem (graphite) -Jeremy Parmenter -Jochen Berger -Johan Ask -John Connor -John Lees-Miller -John Snelson -John Van Der Loo -Jonathan Malmaud -jongalloway -Jon Malmaud -Jon Sangster -Joost-Wim Boekesteijn -Joseph Pecoraro -Joshua Newman -Josh Watzman -jots -jsoojeon -Juan Benavides Romero -Jucovschi Constantin -Juho Vuori -Justin Hileman -jwallers@gmail.com -kaniga -Ken Newman -Ken Rockot -Kevin Sawicki -Kevin Ushey -Klaus Silveira -Koh Zi Han, Cliff -komakino -Konstantin Lopuhin -koops -ks-ifware -kubelsmieci -KwanEsq -Lanfei -Lanny -Laszlo Vidacs -leaf corcoran -Leonid Khachaturov -Leon Sorokin -Leonya Khachaturov -Liam Newman -LM -lochel -Lorenzo Stoakes -Luciano Longo -Luke Stagner -lynschinzer -Maksim Lin -Maksym Taran -Malay Majithia -Manuel Rego Casasnovas -Marat Dreizin -Marcel Gerber -Marco Aurélio -Marco Munizaga -Marcus Bointon -Marek Rudnicki -Marijn Haverbeke -Mário Gonçalves -Mario Pietsch -Mark Lentczner -Marko Bonaci -Martin Balek -Martín Gaitán -Martin Hasoň -Mason Malone -Mateusz Paprocki -Mathias Bynens -mats cronqvist -Matthew Beale -Matthias Bussonnier -Matthias BUSSONNIER -Matt McDonald -Matt Pass -Matt Sacks -mauricio -Maximilian Hils -Maxim Kraev -Max Kirsch -Max Xiantu -mbarkhau -Metatheos -Micah Dubinko -Michael Lehenbauer -Michael Zhou -Mighty Guava -Miguel Castillo -mihailik -Mike -Mike Brevoort -Mike Diaz -Mike Ivanov -Mike Kadin -MinRK -Miraculix87 -misfo -mloginov -Moritz Schwörer -mps -mtaran-google -Narciso Jaramillo -Nathan Williams -ndr -nerbert -nextrevision -ngn -nguillaumin -Ng Zhi An -Nicholas Bollweg -Nicholas Bollweg (Nick) -Nick Small -Niels van Groningen -nightwing -Nikita Beloglazov -Nikita Vasilyev -Nikolay Kostov -nilp0inter -Nisarg Jhaveri -nlwillia -Norman Rzepka -pablo -Page -Panupong Pasupat -paris -Patil Arpith -Patrick Stoica -Patrick Strawderman -Paul Garvin -Paul Ivanov -Pavel Feldman -Pavel Strashkin -Paweł Bartkiewicz -peteguhl -Peter Flynn -peterkroon -Peter Kroon -prasanthj -Prasanth J -Radek Piórkowski -Rahul -Randall Mason -Randy Burden -Randy Edmunds -Rasmus Erik Voel Jensen -Ray Ratchup -Richard van der Meer -Richard Z.H. Wang -Robert Crossfield -Roberto Abdelkader Martínez Pérez -robertop23 -Robert Plummer -Ruslan Osmanov -Ryan Prior -sabaca -Samuel Ainsworth -sandeepshetty -Sander AKA Redsandro -santec -Sascha Peilicke -satchmorun -sathyamoorthi -SCLINIC\jdecker -Scott Aikin -Scott Goodhew -Sebastian Zaha -shaund -shaun gilchrist -Shawn A -sheopory -Shiv Deepak -Shmuel Englard -Shubham Jain -silverwind -snasa -soliton4 -sonson -spastorelli -srajanpaliwal -Stanislav Oaserele -Stas Kobzar -Stefan Borsje -Steffen Beyer -Steve O'Hara -stoskov -Taha Jahangir -Takuji Shimokawa -Tarmil -tel -tfjgeorge -Thaddee Tyl -TheHowl -think -Thomas Dvornik -Thomas Schmid -Tim Alby -Tim Baumann -Timothy Farrell -Timothy Hatcher -TobiasBg -Tomas-A -Tomas Varaneckas -Tom Erik Støwer -Tom MacWright -Tony Jian -Travis Heppe -Triangle717 -twifkak -Vestimir Markov -vf -Vincent Woo -Volker Mische -wenli -Wesley Wiser -Will Binns-Smith -William Jamieson -William Stein -Willy -Wojtek Ptak -Xavier Mendez -Yassin N. Hassan -YNH Webdev -Yunchi Luo -Yuvi Panda -Zachary Dremann -Zhang Hao -zziuni -魏鹏刚 diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/LICENSE b/eolinker_os_3.5/libs/editor.md/lib/codemirror/LICENSE deleted file mode 100644 index d21bbea..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (C) 2014 by Marijn Haverbeke and others - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/README.md b/eolinker_os_3.5/libs/editor.md/lib/codemirror/README.md deleted file mode 100644 index bc6e7f5..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# CodeMirror -[![Build Status](https://travis-ci.org/codemirror/CodeMirror.svg)](https://travis-ci.org/codemirror/CodeMirror) -[![NPM version](https://img.shields.io/npm/v/codemirror.svg)](https://www.npmjs.org/package/codemirror) -[Funding status: ![maintainer happiness](https://marijnhaverbeke.nl/fund/status_s.png)](https://marijnhaverbeke.nl/fund/) - -CodeMirror is a JavaScript component that provides a code editor in -the browser. When a mode is available for the language you are coding -in, it will color your code, and optionally help with indentation. - -The project page is http://codemirror.net -The manual is at http://codemirror.net/doc/manual.html -The contributing guidelines are in [CONTRIBUTING.md](https://github.com/codemirror/CodeMirror/blob/master/CONTRIBUTING.md) diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/comment/comment.js b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/comment/comment.js deleted file mode 100644 index 91ef0a3..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/comment/comment.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function n(e){var n=e.search(i);return n==-1?0:n}var t={},i=/[^\s\u00a0]/,l=e.Pos;e.commands.toggleComment=function(e){for(var n=1/0,t=e.listSelections(),i=null,o=t.length-1;o>=0;o--){var r=t[o].from(),a=t[o].to();r.line>=n||(a.line>=n&&(a=l(n,0)),n=r.line,null==i?e.uncomment(r,a)?i="un":(e.lineComment(r,a),i="line"):"un"==i?e.uncomment(r,a):e.lineComment(r,a))}},e.defineExtension("lineComment",function(e,o,r){r||(r=t);var a=this,m=a.getModeAt(e),c=r.lineComment||m.lineComment;if(!c)return void((r.blockCommentStart||m.blockCommentStart)&&(r.fullLines=!0,a.blockComment(e,o,r)));var f=a.getLine(e.line);if(null!=f){var g=Math.min(0!=o.ch||o.line==e.line?o.line+1:o.line,a.lastLine()+1),s=null==r.padding?" ":r.padding,d=r.commentBlankLines||e.line==o.line;a.operation(function(){if(r.indent)for(var t=f.slice(0,n(f)),o=e.line;of||r.operation(function(){if(0!=o.fullLines){var t=i.test(r.getLine(f));r.replaceRange(g+c,l(f)),r.replaceRange(m+g,l(e.line,0));var s=o.blockCommentLead||a.blockCommentLead;if(null!=s)for(var d=e.line+1;d<=f;++d)(d!=f||t)&&r.replaceRange(s+g,l(d,0))}else r.replaceRange(c,n),r.replaceRange(m,e)})}),e.defineExtension("uncomment",function(e,n,o){o||(o=t);var r,a=this,m=a.getModeAt(e),c=Math.min(0!=n.ch||n.line==e.line?n.line:n.line-1,a.lastLine()),f=Math.min(e.line,c),g=o.lineComment||m.lineComment,s=[],d=null==o.padding?" ":o.padding;e:if(g){for(var u=f;u<=c;++u){var h=a.getLine(u),v=h.indexOf(g);if(v>-1&&!/comment/.test(a.getTokenTypeAt(l(u,v+1)))&&(v=-1),v==-1&&(u!=c||u==f)&&i.test(h))break e;if(v>-1&&i.test(h.slice(0,v)))break e;s.push(h)}if(a.operation(function(){for(var e=f;e<=c;++e){var n=s[e-f],t=n.indexOf(g),i=t+g.length;t<0||(n.slice(i,i+d.length)==d&&(i+=d.length),r=!0,a.replaceRange("",l(e,t),l(e,i)))}}),r)return!0}var p=o.blockCommentStart||m.blockCommentStart,C=o.blockCommentEnd||m.blockCommentEnd;if(!p||!C)return!1;var b=o.blockCommentLead||m.blockCommentLead,k=a.getLine(f),L=c==f?k:a.getLine(c),x=k.indexOf(p),R=L.lastIndexOf(C);if(R==-1&&f!=c&&(L=a.getLine(--c),R=L.lastIndexOf(C)),x==-1||R==-1||!/comment/.test(a.getTokenTypeAt(l(f,x+1)))||!/comment/.test(a.getTokenTypeAt(l(c,R+1))))return!1;var O=k.lastIndexOf(p,e.ch),M=O==-1?-1:k.slice(0,e.ch).indexOf(C,O+p.length);if(O!=-1&&M!=-1&&M+C.length!=e.ch)return!1;M=L.indexOf(C,n.ch);var E=L.slice(n.ch).lastIndexOf(p,M-n.ch);return O=M==-1||E==-1?-1:n.ch+E,(M==-1||O==-1||O==n.ch)&&(a.operation(function(){a.replaceRange("",l(c,R-(d&&L.slice(R-d.length,R)==d?d.length:0)),l(c,R+C.length));var e=x+p.length;if(d&&k.slice(e,e+d.length)==d&&(e+=d.length),a.replaceRange("",l(f,x),l(f,e)),b)for(var n=f+1;n<=c;++n){var t=a.getLine(n),o=t.indexOf(b);if(o!=-1&&!i.test(t.slice(0,o))){var r=o+b.length;d&&t.slice(r,r+d.length)==d&&(r+=d.length),a.replaceRange("",l(n,o),l(n,r))}}}),!0)})}); \ No newline at end of file diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/comment/continuecomment.js b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/comment/continuecomment.js deleted file mode 100644 index cb2e627..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/comment/continuecomment.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){function n(n){if(n.getOption("disableInput"))return e.Pass;for(var o,i=n.listSelections(),r=[],l=0;l=u);else if(0==s.string.indexOf(o.blockCommentStart)){if(f=d.slice(0,s.start),!/^\s*$/.test(f)){f="";for(var C=0;Cs.start&&/^\s*$/.test(d.slice(0,a))&&(f=d.slice(0,a));null!=f&&(f+=o.blockCommentContinue)}if(null==f&&o.lineComment&&t(n)){var g=n.getLine(m.line),a=g.indexOf(o.lineComment);a>-1&&(f=g.slice(0,a),/\S/.test(f)?f=null:f+=o.lineComment+g.slice(a+o.lineComment.length).match(/^\s*/)[0])}if(null==f)return e.Pass;r[l]="\n"+f}n.operation(function(){for(var e=i.length-1;e>=0;e--)n.replaceRange(r[e],i[e].from(),i[e].to(),"+insert")})}function t(e){var n=e.getOption("continueComments");return!n||"object"!=typeof n||n.continueLineComment!==!1}for(var o=["clike","css","javascript"],i=0;i=0;r--){var o=e.display.lineSpace.childNodes[r];/(^|\s)CodeMirror-ruler($|\s)/.test(o.className)&&o.parentNode.removeChild(o)}}function o(r){for(var o=r.getOption("rulers"),t=r.defaultCharWidth(),l=r.charCoords(e.Pos(r.firstLine(),0),"div").left,i=r.display.scroller.offsetHeight+30,s=0;s=t.ch+1)return/\bstring2?\b/.test(l);a.start=a.pos}}function r(r,i){for(var o={name:"autoCloseBrackets",Backspace:function(t){if(t.getOption("disableInput"))return e.Pass;for(var i=t.listSelections(),o=0;o=0;o--){var l=i[o].head;t.replaceRange("",c(l.line,l.ch-1),c(l.line,l.ch+1))}}},a="",l=0;l1&&i.indexOf(n)>=0&&o.getRange(c(p.line,p.ch-2),p)==n+n&&(p.ch<=2||o.getRange(c(p.line,p.ch-3),c(p.line,p.ch-2))!=n))d="addFour";else if('"'==n||"'"==n){if(e.isWordChar(f)||!t(o,p,n))return e.Pass;d="both"}else{if(!(o.getLine(p.line).length==p.ch||a.indexOf(f)>=0||s.test(f)))return e.Pass;d="both"}else d="surround";if(l){if(l!=d)return e.Pass}else l=d}o.operation(function(){if("skip"==l)o.execCommand("goCharRight");else if("skipThree"==l)for(var e=0;e<3;e++)o.execCommand("goCharRight");else if("surround"==l){for(var t=o.getSelections(),e=0;ec.ch&&(v=v.slice(0,v.length-d.end+c.ch));var b=v.toLowerCase();if(!v||"string"==d.type&&(d.end!=c.ch||!/[\"\']/.test(d.string.charAt(d.string.length-1))||1==d.string.length)||"tag"==d.type&&"closeTag"==g.type||d.string.indexOf("/")==d.string.length-1||h&&r(h,b)>-1||a(t,v,c,g,!0))return e.Pass;var y=p&&r(p,b)>-1;o[l]={indent:y,text:">"+(y?"\n\n":"")+"",newPos:y?e.Pos(c.line+1,0):e.Pos(c.line,c.ch+1)}}for(var l=n.length-1;l>=0;l--){var x=o[l];t.replaceRange(x.text,n[l].head,n[l].anchor,"+insert");var P=t.listSelections().slice(0);P[l]={head:x.newPos,anchor:x.newPos},t.setSelections(P),x.indent&&(t.indentLine(x.newPos.line,null,!0),t.indentLine(x.newPos.line+1,null,!0))}}function n(t,n){for(var o=t.listSelections(),r=[],i=n?"/":"";else{if("htmlmixed"!=t.getMode().name||"css"!=d.mode.name)return e.Pass;r[s]=i+"style>"}else{if(!f.context||!f.context.tagName||a(t,f.context.tagName,l,f))return e.Pass;r[s]=i+f.context.tagName+">"}}t.replaceSelections(r),o=t.listSelections();for(var s=0;s'"]=function(e){return t(e)}),n.addKeyMap(i)}});var i=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],s=["applet","blockquote","body","button","div","dl","fieldset","form","frameset","h1","h2","h3","h4","h5","h6","head","html","iframe","layer","legend","object","ol","p","select","table","ul"];e.commands.closeTag=function(e){return n(e)}}); \ No newline at end of file diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/edit/continuelist.js b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/edit/continuelist.js deleted file mode 100644 index c64320e..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/edit/continuelist.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";var n=/^(\s*)(>[> ]*|[*+-]\s|(\d+)\.)(\s*)/,t=/^(\s*)(>[> ]*|[*+-]|(\d+)\.)(\s*)$/,i=/[*+-]\s/;e.commands.newlineAndIndentContinueMarkdownList=function(o){if(o.getOption("disableInput"))return e.Pass;for(var r=o.listSelections(),d=[],l=0;l")>=0?s[2]:parseInt(s[3],10)+1+".";d[l]="\n"+m+h+p}}o.replaceSelections(d)}}); \ No newline at end of file diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/edit/matchbrackets.js b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/edit/matchbrackets.js deleted file mode 100644 index 8c78786..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/edit/matchbrackets.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){function t(e,t,i,r){var o=e.getLineHandle(t.line),f=t.ch-1,l=f>=0&&c[o.text.charAt(f)]||c[o.text.charAt(++f)];if(!l)return null;var u=">"==l.charAt(1)?1:-1;if(i&&u>0!=(f==t.ch))return null;var h=e.getTokenTypeAt(a(t.line,f+1)),s=n(e,a(t.line,f+(u>0?1:0)),u,h||null,r);return null==s?null:{from:a(t.line,f),to:s&&s.pos,match:s&&s.ch==l.charAt(0),forward:u>0}}function n(e,t,n,i,r){for(var o=r&&r.maxScanLineLength||1e4,f=r&&r.maxScanLines||1e3,l=[],u=r&&r.bracketRegex?r.bracketRegex:/[(){}[\]]/,h=n>0?Math.min(t.line+f,e.lastLine()+1):Math.max(e.firstLine()-1,t.line-f),s=t.line;s!=h;s+=n){var m=e.getLine(s);if(m){var d=n>0?0:m.length-1,g=n>0?m.length:-1;if(!(m.length>o))for(s==t.line&&(d=t.ch-(n<0?1:0));d!=g;d+=n){var p=m.charAt(d);if(u.test(p)&&(void 0===i||e.getTokenTypeAt(a(s,d+1))==i)){var v=c[p];if(">"==v.charAt(1)==n>0)l.push(p);else{if(!l.length)return{pos:a(s,d),ch:p};l.pop()}}}}}return s-n!=(n>0?e.lastLine():e.firstLine())&&null}function i(e,n,i){for(var r=e.state.matchBrackets.maxHighlightLineLength||1e3,c=[],f=e.listSelections(),l=0;l",")":"(<","[":"]>","]":"[<","{":"}>","}":"{<"},f=null;e.defineOption("matchBrackets",!1,function(t,n,i){i&&i!=e.Init&&t.off("cursorActivity",r),n&&(t.state.matchBrackets="object"==typeof n?n:{},t.on("cursorActivity",r))}),e.defineExtension("matchBrackets",function(){i(this,!0)}),e.defineExtension("findMatchingBracket",function(e,n,i){return t(this,e,n,i)}),e.defineExtension("scanForBracket",function(e,t,i,r){return n(this,e,t,i,r)})}); \ No newline at end of file diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/edit/matchtags.js b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/edit/matchtags.js deleted file mode 100644 index ad512db..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/edit/matchtags.js +++ /dev/null @@ -1 +0,0 @@ -!function(t){"object"==typeof exports&&"object"==typeof module?t(require("../../lib/codemirror"),require("../fold/xml-fold")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../fold/xml-fold"],t):t(CodeMirror)}(function(t){"use strict";function e(t){t.state.tagHit&&t.state.tagHit.clear(),t.state.tagOther&&t.state.tagOther.clear(),t.state.tagHit=t.state.tagOther=null}function a(a){a.state.failedTagMatch=!1,a.operation(function(){if(e(a),!a.somethingSelected()){var o=a.getCursor(),i=a.getViewport();i.from=Math.min(i.from,o.line),i.to=Math.max(o.line+1,i.to);var r=t.findMatchingTag(a,o,i);if(r){if(a.state.matchBothTags){var n="open"==r.at?r.open:r.close;n&&(a.state.tagHit=a.markText(n.from,n.to,{className:"CodeMirror-matchingtag"}))}var c="close"==r.at?r.open:r.close;c?a.state.tagOther=a.markText(c.from,c.to,{className:"CodeMirror-matchingtag"}):a.state.failedTagMatch=!0}}})}function o(t){t.state.failedTagMatch&&a(t)}t.defineOption("matchTags",!1,function(i,r,n){n&&n!=t.Init&&(i.off("cursorActivity",a),i.off("viewportChange",o),e(i)),r&&(i.state.matchBothTags="object"==typeof r&&r.bothTags,i.on("cursorActivity",a),i.on("viewportChange",o),a(i))}),t.commands.toMatchingTag=function(e){var a=t.findMatchingTag(e,e.getCursor());if(a){var o="close"==a.at?a.open:a.close;o&&e.extendSelection(o.to,o.from)}}}); \ No newline at end of file diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/edit/trailingspace.js b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/edit/trailingspace.js deleted file mode 100644 index ce38681..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/edit/trailingspace.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){e.defineOption("showTrailingSpace",!1,function(i,n,o){o==e.Init&&(o=!1),o&&!n?i.removeOverlay("trailingspace"):!o&&n&&i.addOverlay({token:function(e){for(var i=e.string.length,n=i;n&&/\s/.test(e.string.charAt(n-1));--n);return n>e.pos?(e.pos=n,null):(e.pos=i,"trailingspace")},name:"trailingspace"})})}); \ No newline at end of file diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/fold/brace-fold.js b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/fold/brace-fold.js deleted file mode 100644 index 3625c5a..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/fold/brace-fold.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.registerHelper("fold","brace",function(r,n){function t(t){for(var i=n.ch,s=0;;){var u=i<=0?-1:f.lastIndexOf(t,i-1);if(u!=-1){if(1==s&&ur.lastLine())return null;var t=r.getTokenAt(e.Pos(n,1));if(/\S/.test(t.string)||(t=r.getTokenAt(e.Pos(n,t.end+1))),"keyword"!=t.type||"import"!=t.string)return null;for(var i=n,o=Math.min(r.lastLine(),n+10);i<=o;++i){var l=r.getLine(i),f=l.indexOf(";");if(f!=-1)return{startCh:t.end,end:e.Pos(i,f)}}}var i,n=n.line,o=t(n);if(!o||t(n-1)||(i=t(n-2))&&i.end.line==n-1)return null;for(var l=o.end;;){var f=t(l.line+1);if(null==f)break;l=f.end}return{from:r.clipPos(e.Pos(n,o.startCh+1)),to:l}}),e.registerHelper("fold","include",function(r,n){function t(n){if(nr.lastLine())return null;var t=r.getTokenAt(e.Pos(n,1));return/\S/.test(t.string)||(t=r.getTokenAt(e.Pos(n,t.end+1))),"meta"==t.type&&"#include"==t.string.slice(0,8)?t.start+8:void 0}var n=n.line,i=t(n);if(null==i||null!=t(n-1))return null;for(var o=n;;){var l=t(o+1);if(null==l)break;++o}return{from:e.Pos(n,i+1),to:r.clipPos(e.Pos(o))}})}); \ No newline at end of file diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/fold/comment-fold.js b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/fold/comment-fold.js deleted file mode 100644 index 6a18986..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/fold/comment-fold.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.registerGlobalHelper("fold","comment",function(e){return e.blockCommentStart&&e.blockCommentEnd},function(t,n){var o=t.getModeAt(n),r=o.blockCommentStart,i=o.blockCommentEnd;if(r&&i){for(var f,l=n.line,c=t.getLine(l),m=n.ch,a=0;;){var d=m<=0?-1:c.lastIndexOf(r,m-1);if(d!=-1){if(1==a&&do.firstLine();)i=n.Pos(i.line-1,0),a=l(!1);if(a&&!a.cleared&&"unfold"!==f){var c=e(o,t);n.on(c,"mousedown",function(o){s.clear(),n.e_preventDefault(o)});var s=o.markText(a.from,a.to,{replacedWith:c,clearOnEnter:!0,__isFold:!0});s.on("clear",function(e,r){n.signal(o,"unfold",o,e,r)}),n.signal(o,"fold",o,a.from,a.to)}}function e(n,o){var e=r(n,o,"widget");if("string"==typeof e){var i=document.createTextNode(e);e=document.createElement("span"),e.appendChild(i),e.className="CodeMirror-foldmarker"}return e}function r(n,o,e){if(o&&void 0!==o[e])return o[e];var r=n.options.foldOptions;return r&&void 0!==r[e]?r[e]:i[e]}n.newFoldFunction=function(n,e){return function(r,i){o(r,i,{rangeFinder:n,widget:e})}},n.defineExtension("foldCode",function(n,e,r){o(this,n,e,r)}),n.defineExtension("isFolded",function(n){for(var o=this.findMarksAt(n),e=0;e=d&&(e=n(i.indicatorOpen))}o.setGutterMarker(t,i.gutter,e),++f})}function f(o){var t=o.getViewport(),e=o.state.foldGutter;e&&(o.operation(function(){i(o,t.from,t.to)}),e.from=t.from,e.to=t.to)}function d(o,t,e){var r=o.state.foldGutter;if(r){var n=r.options;e==n.gutter&&o.foldCode(c(t,0),n.rangeFinder)}}function a(o){var t=o.state.foldGutter;if(t){var e=t.options;t.from=t.to=0,clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout(function(){f(o)},e.foldOnChangeTimeSpan||600)}}function u(o){var t=o.state.foldGutter;if(t){var e=t.options;clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout(function(){var e=o.getViewport();t.from==t.to||e.from-t.to>20||t.from-e.to>20?f(o):o.operation(function(){e.fromt.to&&(i(o,t.to,e.to),t.to=e.to)})},e.updateViewportTimeSpan||400)}}function l(o,t){var e=o.state.foldGutter;if(e){var r=t.line;r>=e.from&&rf)l=u;else if(/\S/.test(d))break}return l?{from:e.Pos(n.line,o.length),to:e.Pos(l,t.getLine(l).length)}:void 0}})}); \ No newline at end of file diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/fold/markdown-fold.js b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/fold/markdown-fold.js deleted file mode 100644 index bf367f3..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/fold/markdown-fold.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.registerHelper("fold","markdown",function(n,t){function r(t){var r=n.getTokenTypeAt(e.Pos(t,0));return r&&/\bheader\b/.test(r)}function i(e,n,t){var i=n&&n.match(/^#+/);return i&&r(e)?i[0].length:(i=t&&t.match(/^[=\-]+\s*$/),i&&r(e+1)?"="==t[0]?1:2:o)}var o=100,f=n.getLine(t.line),l=n.getLine(t.line+1),c=i(t.line,f,l);if(c!==o){for(var u=n.lastLine(),d=t.line,a=n.getLine(d+2);d=e.max))return e.ch=0,e.text=e.cm.getLine(++e.line),!0}function f(e){if(!(e.line<=e.min))return e.text=e.cm.getLine(--e.line),e.ch=e.text.length,!0}function o(e){for(;;){var n=e.text.indexOf(">",e.ch);if(n==-1){if(r(e))continue;return}{if(i(e,n+1)){var t=e.text.lastIndexOf("/",n),f=t>-1&&!/\S/.test(e.text.slice(t+1,n));return e.ch=n+1,f?"selfClose":"regular"}e.ch=n+1}}}function u(e){for(;;){var n=e.ch?e.text.lastIndexOf("<",e.ch-1):-1;if(n==-1){if(f(e))continue;return}if(i(e,n+1)){v.lastIndex=n,e.ch=n;var t=v.exec(e.text);if(t&&t.index==n)return t}else e.ch=n}}function c(e){for(;;){v.lastIndex=e.ch;var n=v.exec(e.text);if(!n){if(r(e))continue;return}{if(i(e,n.index+1))return e.ch=n.index+n[0].length,n;e.ch=n.index+1}}}function l(e){for(;;){var n=e.ch?e.text.lastIndexOf(">",e.ch-1):-1;if(n==-1){if(f(e))continue;return}{if(i(e,n+1)){var t=e.text.lastIndexOf("/",n),r=t>-1&&!/\S/.test(e.text.slice(t+1,n));return e.ch=n+1,r?"selfClose":"regular"}e.ch=n}}}function a(e,n){for(var t=[];;){var i,r=c(e),f=e.line,u=e.ch-(r?r[0].length:0);if(!r||!(i=o(e)))return;if("selfClose"!=i)if(r[1]){for(var l=t.length-1;l>=0;--l)if(t[l]==r[2]){t.length=l;break}if(l<0&&(!n||n==r[2]))return{tag:r[2],from:h(f,u),to:h(e.line,e.ch)}}else t.push(r[2])}}function s(e,n){for(var t=[];;){var i=l(e);if(!i)return;if("selfClose"!=i){var r=e.line,f=e.ch,o=u(e);if(!o)return;if(o[1])t.push(o[2]);else{for(var c=t.length-1;c>=0;--c)if(t[c]==o[2]){t.length=c;break}if(c<0&&(!n||n==o[2]))return{tag:o[2],from:h(e.line,e.ch),to:h(r,f)}}}else u(e)}}var h=e.Pos,x="A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",g=x+"-:.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040",v=new RegExp("<(/?)(["+x+"]["+g+"]*)","g");e.registerHelper("fold","xml",function(e,n){for(var i=new t(e,n.line,0);;){var r,f=c(i);if(!f||i.line!=n.line||!(r=o(i)))return;if(!f[1]&&"selfClose"!=r){var n=h(i.line,i.ch),u=a(i,f[2]);return u&&{from:n,to:u.from}}}}),e.findMatchingTag=function(e,i,r){var f=new t(e,i.line,i.ch,r);if(f.text.indexOf(">")!=-1||f.text.indexOf("<")!=-1){var c=o(f),l=c&&h(f.line,f.ch),x=c&&u(f);if(c&&x&&!(n(f,i)>0)){var g={from:h(f.line,f.ch),to:l,tag:x[2]};return"selfClose"==c?{open:g,close:null,at:"open"}:x[1]?{open:s(f,x[2]),close:g,at:"close"}:(f=new t(e,l.line,l.ch,r),{open:g,close:a(f,x[2]),at:"open"})}}},e.findEnclosingTag=function(e,n,i){for(var r=new t(e,n.line,n.ch,i);;){var f=s(r);if(!f)break;var o=new t(e,n.line,n.ch,i),u=a(o,f.tag);if(u)return{open:f,close:u}}},e.scanForClosingTag=function(e,n,i,r){var f=new t(e,n.line,n.ch,r?{from:0,to:r}:null);return a(f,i)}}); \ No newline at end of file diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/anyword-hint.js b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/anyword-hint.js deleted file mode 100644 index 0ac688a..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/anyword-hint.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";var r=/[\w$]+/,o=500;e.registerHelper("hint","anyword",function(t,i){for(var n=i&&i.word||r,f=i&&i.range||o,a=t.getCursor(),c=t.getLine(a.line),s=a.ch,l=s;l&&n.test(c.charAt(l-1));)--l;for(var d=l!=s&&c.slice(l,s),u=[],p={},g=new RegExp(n.source,"g"),h=-1;h<=1;h+=2)for(var m=a.line,y=Math.min(Math.max(m+h*f,t.firstLine()),t.lastLine())+h;m!=y;m+=h)for(var b,v=t.getLine(m);b=g.exec(v);)m==a.line&&b[0]===d||d&&0!=b[0].lastIndexOf(d,0)||Object.prototype.hasOwnProperty.call(p,b[0])||(p[b[0]]=!0,u.push(b[0]));return{list:u,from:e.Pos(a.line,l),to:e.Pos(a.line,s)}})}); \ No newline at end of file diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/css-hint.js b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/css-hint.js deleted file mode 100644 index dd5ab35..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/css-hint.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("../../mode/css/css")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../../mode/css/css"],e):e(CodeMirror)}(function(e){"use strict";var r={link:1,visited:1,active:1,hover:1,focus:1,"first-letter":1,"first-line":1,"first-child":1,before:1,after:1,lang:1};e.registerHelper("hint","css",function(t){function o(e){for(var r in e)c&&0!=r.lastIndexOf(c,0)||l.push(r)}var s=t.getCursor(),i=t.getTokenAt(s),n=e.innerMode(t.getMode(),i.state);if("css"==n.mode.name){var a=i.start,d=s.ch,c=i.string.slice(0,d-a);/[^\w$_-]/.test(c)&&(c="",a=d=s.ch);var f=e.resolveMode("text/css"),l=[],p=n.state.state;return"pseudo"==p||"variable-3"==i.type?o(r):"block"==p||"maybeprop"==p?o(f.propertyKeywords):"prop"==p||"parens"==p||"at"==p||"params"==p?(o(f.valueKeywords),o(f.colorKeywords)):"media"!=p&&"media_parens"!=p||(o(f.mediaTypes),o(f.mediaFeatures)),l.length?{list:l,from:e.Pos(s.line,a),to:e.Pos(s.line,d)}:void 0}})}); \ No newline at end of file diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/html-hint.js b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/html-hint.js deleted file mode 100644 index dc4f8e6..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/html-hint.js +++ /dev/null @@ -1 +0,0 @@ -!function(l){"object"==typeof exports&&"object"==typeof module?l(require("../../lib/codemirror"),require("./xml-hint")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","./xml-hint"],l):l(CodeMirror)}(function(l){"use strict";function t(l){for(var t in c)c.hasOwnProperty(t)&&(l.attrs[t]=c[t])}function e(t,e){var a={schemaInfo:d};if(e)for(var n in e)a[n]=e[n];return l.hint.xml(t,a)}var a="ab aa af ak sq am ar an hy as av ae ay az bm ba eu be bn bh bi bs br bg my ca ch ce ny zh cv kw co cr hr cs da dv nl dz en eo et ee fo fj fi fr ff gl ka de el gn gu ht ha he hz hi ho hu ia id ie ga ig ik io is it iu ja jv kl kn kr ks kk km ki rw ky kv kg ko ku kj la lb lg li ln lo lt lu lv gv mk mg ms ml mt mi mr mh mn na nv nb nd ne ng nn no ii nr oc oj cu om or os pa pi fa pl ps pt qu rm rn ro ru sa sc sd se sm sg sr gd sn si sk sl so st es su sw ss sv ta te tg th ti bo tk tl tn to tr ts tt tw ty ug uk ur uz ve vi vo wa cy wo fy xh yi yo za zu".split(" "),n=["_blank","_self","_top","_parent"],r=["ascii","utf-8","utf-16","latin1","latin1"],o=["get","post","put","delete"],s=["application/x-www-form-urlencoded","multipart/form-data","text/plain"],u=["all","screen","print","embossed","braille","handheld","print","projection","screen","tty","tv","speech","3d-glasses","resolution [>][<][=] [X]","device-aspect-ratio: X/Y","orientation:portrait","orientation:landscape","device-height: [X]","device-width: [X]"],i={attrs:{}},d={a:{attrs:{href:null,ping:null,type:null,media:u,target:n,hreflang:a}},abbr:i,acronym:i,address:i,applet:i,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:u,hreflang:a,type:null,shape:["default","rect","circle","poly"]}},article:i,aside:i,audio:{attrs:{src:null,mediagroup:null,crossorigin:["anonymous","use-credentials"],preload:["none","metadata","auto"],autoplay:["","autoplay"],loop:["","loop"],controls:["","controls"]}},b:i,base:{attrs:{href:null,target:n}},basefont:i,bdi:i,bdo:i,big:i,blockquote:{attrs:{cite:null}},body:i,br:i,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:["","autofocus"],disabled:["","autofocus"],formenctype:s,formmethod:o,formnovalidate:["","novalidate"],formtarget:n,type:["submit","reset","button"]}},canvas:{attrs:{width:null,height:null}},caption:i,center:i,cite:i,code:i,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:["command","checkbox","radio"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:["","disabled"],checked:["","checked"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:["","disabled"],multiple:["","multiple"]}},datalist:{attrs:{data:null}},dd:i,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:["","open"]}},dfn:i,dir:i,div:i,dl:i,dt:i,em:i,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:["","disabled"],form:null,name:null}},figcaption:i,figure:i,font:i,footer:i,form:{attrs:{action:null,name:null,"accept-charset":r,autocomplete:["on","off"],enctype:s,method:o,novalidate:["","novalidate"],target:n}},frame:i,frameset:i,h1:i,h2:i,h3:i,h4:i,h5:i,h6:i,head:{attrs:{},children:["title","base","link","style","meta","script","noscript","command"]},header:i,hgroup:i,hr:i,html:{attrs:{manifest:null},children:["head","body"]},i:i,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:["allow-top-navigation","allow-same-origin","allow-forms","allow-scripts"],seamless:["","seamless"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:["anonymous","use-credentials"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:["audio/*","video/*","image/*"],autocomplete:["on","off"],autofocus:["","autofocus"],checked:["","checked"],disabled:["","disabled"],formenctype:s,formmethod:o,formnovalidate:["","novalidate"],formtarget:n,multiple:["","multiple"],readonly:["","readonly"],required:["","required"],type:["hidden","text","search","tel","url","email","password","datetime","date","month","week","time","datetime-local","number","range","color","checkbox","radio","file","submit","image","reset","button"]}},ins:{attrs:{cite:null,datetime:null}},kbd:i,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:["","autofocus"],disabled:["","disabled"],keytype:["RSA"]}},label:{attrs:{"for":null,form:null}},legend:i,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:a,media:u,sizes:["all","16x16","16x16 32x32","16x16 32x32 64x64"]}},map:{attrs:{name:null}},mark:i,menu:{attrs:{label:null,type:["list","context","toolbar"]}},meta:{attrs:{content:null,charset:r,name:["viewport","application-name","author","description","generator","keywords"],"http-equiv":["content-language","content-type","default-style","refresh"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:i,noframes:i,noscript:i,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:["","typemustmatch"]}},ol:{attrs:{reversed:["","reversed"],start:null,type:["1","a","A","i","I"]}},optgroup:{attrs:{disabled:["","disabled"],label:null}},option:{attrs:{disabled:["","disabled"],label:null,selected:["","selected"],value:null}},output:{attrs:{"for":null,form:null,name:null}},p:i,param:{attrs:{name:null,value:null}},pre:i,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:i,rt:i,ruby:i,s:i,samp:i,script:{attrs:{type:["text/javascript"],src:null,async:["","async"],defer:["","defer"],charset:r}},section:i,select:{attrs:{form:null,name:null,size:null,autofocus:["","autofocus"],disabled:["","disabled"],multiple:["","multiple"]}},small:i,source:{attrs:{src:null,type:null,media:null}},span:i,strike:i,strong:i,style:{attrs:{type:["text/css"],media:u,scoped:null}},sub:i,summary:i,sup:i,table:i,tbody:i,td:{attrs:{colspan:null,rowspan:null,headers:null}},textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:["","autofocus"],disabled:["","disabled"],readonly:["","readonly"],required:["","required"],wrap:["soft","hard"]}},tfoot:i,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:["row","col","rowgroup","colgroup"]}},thead:i,time:{attrs:{datetime:null}},title:i,tr:i,track:{attrs:{src:null,label:null,"default":null,kind:["subtitles","captions","descriptions","chapters","metadata"],srclang:a}},tt:i,u:i,ul:i,"var":i,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:["anonymous","use-credentials"],preload:["auto","metadata","none"],autoplay:["","autoplay"],mediagroup:["movie"],muted:["","muted"],controls:["","controls"]}},wbr:i},c={accesskey:["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9"],"class":null,contenteditable:["true","false"],contextmenu:null,dir:["ltr","rtl","auto"],draggable:["true","false","auto"],dropzone:["copy","move","link","string:","file:"],hidden:["hidden"],id:null,inert:["inert"],itemid:null,itemprop:null,itemref:null,itemscope:["itemscope"],itemtype:null,lang:["en","es"],spellcheck:["true","false"],style:null,tabindex:["1","2","3","4","5","6","7","8","9"],title:null,translate:["yes","no"],onclick:null,rel:["stylesheet","alternate","author","bookmark","help","license","next","nofollow","noreferrer","prefetch","prev","search","tag"]};t(i);for(var m in d)d.hasOwnProperty(m)&&d[m]!=i&&t(d[m]);l.htmlSchema=d,l.registerHelper("hint","html",e)}); \ No newline at end of file diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/javascript-hint.js b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/javascript-hint.js deleted file mode 100644 index 0fe9ec0..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/javascript-hint.js +++ /dev/null @@ -1 +0,0 @@ -!function(t){"object"==typeof exports&&"object"==typeof module?t(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],t):t(CodeMirror)}(function(t){function e(t,e){for(var r=0,n=t.length;ro.ch&&(s.end=o.ch,s.string=s.string.slice(0,o.ch-s.start)):s={start:o.ch,end:o.ch,string:"",state:s.state,type:"."==s.string?"property":null};for(var f=s;"property"==f.type;){if(f=n(e,l(o.line,f.start)),"."!=f.string)return;if(f=n(e,l(o.line,f.start)),!c)var c=[];c.push(f)}return{list:a(s,c,r,i),from:l(o.line,s.start),to:l(o.line,s.end)}}}function i(t,e){return n(t,u,function(t,e){return t.getTokenAt(e)},e)}function o(t,e){var r=t.getTokenAt(e);return e.ch==r.start+1&&"."==r.string.charAt(0)?(r.end=r.start,r.string=".",r.type="property"):/^\.[\w$_]*$/.test(r.string)&&(r.type="property",r.start++,r.string=r.string.replace(/\./,"")),r}function s(t,e){return n(t,d,o,e)}function a(t,n,i,o){function s(t){0!=t.lastIndexOf(u,0)||r(l,t)||l.push(t)}function a(t){"string"==typeof t?e(f,s):t instanceof Array?e(c,s):t instanceof Function&&e(p,s);for(var r in t)s(r)}var l=[],u=t.string,d=o&&o.globalScope||window;if(n&&n.length){var g,h=n.pop();for(h.type&&0===h.type.indexOf("variable")?(o&&o.additionalContext&&(g=o.additionalContext[h.string]),o&&o.useGlobalScope===!1||(g=g||d[h.string])):"string"==h.type?g="":"atom"==h.type?g=1:"function"==h.type&&(null==d.jQuery||"$"!=h.string&&"jQuery"!=h.string||"function"!=typeof d.jQuery?null!=d._&&"_"==h.string&&"function"==typeof d._&&(g=d._()):g=d.jQuery());null!=g&&n.length;)g=g[n.pop().string];null!=g&&a(g)}else{for(var y=t.state.localVars;y;y=y.next)s(y.name);for(var y=t.state.globalVars;y;y=y.next)s(y.name);o&&o.useGlobalScope===!1||a(d),e(i,s)}return l}var l=t.Pos;t.registerHelper("hint","javascript",i),t.registerHelper("hint","coffeescript",s);var f="charAt charCodeAt indexOf lastIndexOf substring substr slice trim trimLeft trimRight toUpperCase toLowerCase split concat match replace search".split(" "),c="length concat join splice push pop shift unshift slice reverse sort indexOf lastIndexOf every some filter forEach map reduce reduceRight ".split(" "),p="prototype apply call bind".split(" "),u="break case catch continue debugger default delete do else false finally for function if in instanceof new null return switch throw true try typeof var void while with".split(" "),d="and break catch class continue delete do else extends false finally for if in instanceof isnt new no not null of off on or return switch then throw true try typeof until void while with yes".split(" ")}); \ No newline at end of file diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/show-hint.css b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/show-hint.css deleted file mode 100644 index 924e638..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/show-hint.css +++ /dev/null @@ -1,38 +0,0 @@ -.CodeMirror-hints { - position: absolute; - z-index: 10; - overflow: hidden; - list-style: none; - - margin: 0; - padding: 2px; - - -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2); - -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2); - box-shadow: 2px 3px 5px rgba(0,0,0,.2); - border-radius: 3px; - border: 1px solid silver; - - background: white; - font-size: 90%; - font-family: monospace; - - max-height: 20em; - overflow-y: auto; -} - -.CodeMirror-hint { - margin: 0; - padding: 0 4px; - border-radius: 2px; - max-width: 19em; - overflow: hidden; - white-space: pre; - color: black; - cursor: pointer; -} - -li.CodeMirror-hint-active { - background: #08f; - color: white; -} diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/show-hint.js b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/show-hint.js deleted file mode 100644 index b019a07..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/show-hint.js +++ /dev/null @@ -1 +0,0 @@ -!function(t){"object"==typeof exports&&"object"==typeof module?t(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],t):t(CodeMirror)}(function(t){"use strict";function e(t,e,i,n){if(t.async){var o=++h;t(e,function(t){h==o&&n(t)},i)}else n(t(e,i))}function i(t,e){this.cm=t,this.options=this.buildOptions(e),this.widget=this.onClose=null}function n(t){return"string"==typeof t?t:t.text}function o(t,e){function i(t,i){var o;o="string"!=typeof i?function(t){return i(t,e)}:n.hasOwnProperty(i)?n[i]:i,s[t]=o}var n={Up:function(){e.moveFocus(-1)},Down:function(){e.moveFocus(1)},PageUp:function(){e.moveFocus(-e.menuSize()+1,!0)},PageDown:function(){e.moveFocus(e.menuSize()-1,!0)},Home:function(){e.setFocus(0)},End:function(){e.setFocus(e.length-1)},Enter:e.pick,Tab:e.pick,Esc:e.close},o=t.options.customKeys,s=o?{}:n;if(o)for(var c in o)o.hasOwnProperty(c)&&i(c,o[c]);var l=t.options.extraKeys;if(l)for(var c in l)l.hasOwnProperty(c)&&i(c,l[c]);return s}function s(t,e){for(;e&&e!=t;){if("LI"===e.nodeName.toUpperCase()&&e.parentNode==t)return e;e=e.parentNode}}function c(e,i){this.completion=e,this.data=i;var c=this,h=e.cm,f=this.hints=document.createElement("ul");f.className="CodeMirror-hints",this.selectedHint=i.selectedHint||0;for(var a=i.list,u=0;u0){var k=b.bottom-b.top,A=g.top-(g.bottom-b.top);if(A-k>0)f.style.top=(w=g.top-k)+"px",y=!1;else if(k>H){f.style.height=H-5+"px",f.style.top=(w=g.bottom-b.top)+"px";var T=h.getCursor();i.from.ch!=T.ch&&(g=h.cursorCoords(T),f.style.left=(v=g.left)+"px",b=f.getBoundingClientRect())}}var N=b.right-C;if(N>0&&(b.right-b.left>C&&(f.style.width=C-5+"px",N-=b.right-b.left-C),f.style.left=(v=g.left-N)+"px"),h.addKeyMap(this.keyMap=o(e,{moveFocus:function(t,e){c.changeActive(c.selectedHint+t,e)},setFocus:function(t){c.changeActive(t)},menuSize:function(){return c.screenAmount()},length:a.length,close:function(){e.close()},pick:function(){c.pick()},data:i})),e.options.closeOnUnfocus){var O;h.on("blur",this.onBlur=function(){O=setTimeout(function(){e.close()},100)}),h.on("focus",this.onFocus=function(){clearTimeout(O)})}var S=h.getScrollInfo();return h.on("scroll",this.onScroll=function(){var t=h.getScrollInfo(),i=h.getWrapperElement().getBoundingClientRect(),n=w+S.top-t.top,o=n-(window.pageYOffset||(document.documentElement||document.body).scrollTop);return y||(o+=f.offsetHeight),o<=i.top||o>=i.bottom?e.close():(f.style.top=n+"px",void(f.style.left=v+S.left-t.left+"px"))}),t.on(f,"dblclick",function(t){var e=s(f,t.target||t.srcElement);e&&null!=e.hintId&&(c.changeActive(e.hintId),c.pick())}),t.on(f,"click",function(t){var i=s(f,t.target||t.srcElement);i&&null!=i.hintId&&(c.changeActive(i.hintId),e.options.completeOnSingleClick&&c.pick())}),t.on(f,"mousedown",function(){setTimeout(function(){h.focus()},20)}),t.signal(i,"select",a[0],f.firstChild),!0}var l="CodeMirror-hint",r="CodeMirror-hint-active";t.showHint=function(t,e,i){if(!e)return t.showHint(i);i&&i.async&&(e.async=!0);var n={hint:e};if(i)for(var o in i)n[o]=i[o];return t.showHint(n)};var h=0;t.defineExtension("showHint",function(n){if(!(this.listSelections().length>1||this.somethingSelected())){this.state.completionActive&&this.state.completionActive.close();var o=this.state.completionActive=new i(this,n),s=o.options.hint;if(s)return t.signal(this,"startCompletion",this),e(s,this,o.options,function(t){o.showHints(t)})}}),i.prototype={close:function(){this.active()&&(this.cm.state.completionActive=null,this.widget&&this.widget.close(),this.onClose&&this.onClose(),t.signal(this.cm,"endCompletion",this.cm))},active:function(){return this.cm.state.completionActive==this},pick:function(e,i){var o=e.list[i];o.hint?o.hint(this.cm,e,o):this.cm.replaceRange(n(o),o.from||e.from,o.to||e.to,"complete"),t.signal(e,"pick",o),this.close()},showHints:function(t){return t&&t.list.length&&this.active()?void(this.options.completeSingle&&1==t.list.length?this.pick(t,0):this.showWidget(t)):this.close()},showWidget:function(i){function n(){h||(h=!0,a.close(),a.cm.off("cursorActivity",r),i&&t.signal(i,"close"))}function o(){h||(t.signal(i,"update"),e(a.options.hint,a.cm,a.options,s))}function s(t){if(i=t,!h){if(!i||!i.list.length)return n();a.widget&&a.widget.close(),a.widget=new c(a,i)}}function l(){f&&(g(f),f=0)}function r(){l();var t=a.cm.getCursor(),e=a.cm.getLine(t.line);t.line!=d.line||e.length-t.ch!=p-d.ch||t.ch=this.data.list.length?e=i?this.data.list.length-1:0:e<0&&(e=i?0:this.data.list.length-1),this.selectedHint!=e){var n=this.hints.childNodes[this.selectedHint];n.className=n.className.replace(" "+r,""),n=this.hints.childNodes[this.selectedHint=e],n.className+=" "+r,n.offsetTopthis.hints.scrollTop+this.hints.clientHeight&&(this.hints.scrollTop=n.offsetTop+n.offsetHeight-this.hints.clientHeight+3),t.signal(this.data,"select",this.data.list[this.selectedHint],n)}},screenAmount:function(){return Math.floor(this.hints.clientHeight/this.hints.firstChild.offsetHeight)||1}},t.registerHelper("hint","auto",function(e,i){var n,o=e.getHelpers(e.getCursor(),"hint");if(o.length)for(var s=0;s,]/,closeOnUnfocus:!0,completeOnSingleClick:!1,container:null,customKeys:null,extraKeys:null};t.defineOption("hintOptions",null)}); \ No newline at end of file diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/sql-hint.js b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/sql-hint.js deleted file mode 100644 index 2e93f4d..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/sql-hint.js +++ /dev/null @@ -1 +0,0 @@ -!function(t){"object"==typeof exports&&"object"==typeof module?t(require("../../lib/codemirror"),require("../../mode/sql/sql")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","../../mode/sql/sql"],t):t(CodeMirror)}(function(t){"use strict";function r(r){var n=r.doc.modeOption;return"sql"===n&&(n="text/x-sql"),t.resolveMode(n).keywords}function n(t){return"string"==typeof t?t:t.text}function e(t,r){if(!t.slice)return t[r];for(var e=t.length-1;e>=0;e--)if(n(t[e])==r)return t[e]}function o(t){var r={};for(var n in t)t.hasOwnProperty(n)&&(r[n]=t[n]);return r}function i(t,r){var e=t.length,o=n(r).substr(0,e);return t.toUpperCase()===o.toUpperCase()}function s(t,r,n,e){for(var o in n)n.hasOwnProperty(o)&&(Array.isArray(n)&&(o=n[o]),i(r,o)&&t.push(e(o)))}function a(t){return"."==t.charAt(0)&&(t=t.substr(1)),t.replace(/`/g,"")}function u(t){for(var r=n(t).split("."),e=0;ed&&v<=x){f={start:p(d),end:p(x)};break}d=x}for(var b=n.getRange(f.start,f.end,!1),m=0;mc.ch&&(p.end=c.ch,p.string=p.string.slice(0,c.ch-p.start)),p.string.match(/^[.`\w@]\w*$/)?(u=p.string,i=p.start,a=p.end):(i=a=c.ch,u=""),"."==u.charAt(0)||"`"==u.charAt(0)?i=f(c,p,l,t):(s(l,u,h,function(t){return t}),s(l,u,d,function(t){return t}),s(l,u,v,function(t){return t.toUpperCase()})),{list:l,from:y(c.line,i),to:y(c.line,a)}})}); \ No newline at end of file diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/xml-hint.js b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/xml-hint.js deleted file mode 100644 index bee0be1..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/hint/xml-hint.js +++ /dev/null @@ -1 +0,0 @@ -!function(t){"object"==typeof exports&&"object"==typeof module?t(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],t):t(CodeMirror)}(function(t){"use strict";function e(e,s){var n=s&&s.schemaInfo,a=s&&s.quoteChar||'"';if(n){var i=e.getCursor(),o=e.getTokenAt(i);o.end>i.ch&&(o.end=i.ch,o.string=o.string.slice(0,i.ch-o.start));var l=t.innerMode(e.getMode(),o.state);if("xml"==l.mode.name){var f,g,c=[],h=!1,p=/\btag\b/.test(o.type)&&!/>$/.test(o.string),u=p&&/^\w/.test(o.string);if(u){var d=e.getLine(i.line).slice(Math.max(0,o.start-2),o.start),m=/<\/$/.test(d)?"close":/<$/.test(d)?"open":null;m&&(g=o.start-("close"==m?2:1))}else p&&"<"==o.string?m="open":p&&"")}else{var y=n[l.state.tagName],w=y&&y.attrs,I=n["!attrs"];if(!w&&!I)return;if(w){if(I){var P={};for(var A in I)I.hasOwnProperty(A)&&(P[A]=I[A]);for(var A in w)w.hasOwnProperty(A)&&(P[A]=w[A]);w=P}}else w=I;if("string"==o.type||"="==o.string){var M,d=e.getRange(r(i.line,Math.max(0,i.ch-60)),r(i.line,"string"==o.type?o.start:o.end)),N=d.match(/([^\s\u00a0=<>\"\']+)=$/);if(!N||!w.hasOwnProperty(N[1])||!(M=w[N[1]]))return;if("function"==typeof M&&(M=M.call(this,e)),"string"==o.type){f=o.string;var $=0;/['"]/.test(o.string.charAt(0))&&(a=o.string.charAt(0),f=o.string.slice(1),$++);var C=o.string.length;/['"]/.test(o.string.charAt(C-1))&&(a=o.string.charAt(C-1),f=o.string.substr($,C-2)),h=!0}for(var O=0;O0){var d=o.character;s.forEach(function(e){d>e&&(d-=1)}),o.character=d}}var u=o.character-1,l=u+1;o.evidence&&(c=o.evidence.substring(u).search(/.\b/),c>-1&&(l+=c)),o.description=o.reason,o.start=o.character,o.end=l,o=n(o),o&&i.push({message:o.description,severity:o.severity,from:e.Pos(o.line-1,u),to:e.Pos(o.line-1,l)})}}}var a=["Dangerous comment"],c=[["Expected '{'","Statement body should be inside '{ }' braces."]],s=["Missing semicolon","Extra comma","Missing property name","Unmatched "," and instead saw"," is not defined","Unclosed string","Stopping, unable to continue"];e.registerHelper("lint","javascript",r)}); \ No newline at end of file diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/lint/json-lint.js b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/lint/json-lint.js deleted file mode 100644 index a7ccc3c..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/lint/json-lint.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.registerHelper("lint","json",function(o){var r=[];jsonlint.parseError=function(o,t){var n=t.loc;r.push({from:e.Pos(n.first_line-1,n.first_column),to:e.Pos(n.last_line-1,n.last_column),message:o})};try{jsonlint.parse(o)}catch(t){}return r})}); \ No newline at end of file diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/lint/lint.css b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/lint/lint.css deleted file mode 100644 index 414a9a0..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/lint/lint.css +++ /dev/null @@ -1,73 +0,0 @@ -/* The lint marker gutter */ -.CodeMirror-lint-markers { - width: 16px; -} - -.CodeMirror-lint-tooltip { - background-color: infobackground; - border: 1px solid black; - border-radius: 4px 4px 4px 4px; - color: infotext; - font-family: monospace; - font-size: 10pt; - overflow: hidden; - padding: 2px 5px; - position: fixed; - white-space: pre; - white-space: pre-wrap; - z-index: 100; - max-width: 600px; - opacity: 0; - transition: opacity .4s; - -moz-transition: opacity .4s; - -webkit-transition: opacity .4s; - -o-transition: opacity .4s; - -ms-transition: opacity .4s; -} - -.CodeMirror-lint-mark-error, .CodeMirror-lint-mark-warning { - background-position: left bottom; - background-repeat: repeat-x; -} - -.CodeMirror-lint-mark-error { - background-image: - url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJDw4cOCW1/KIAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAHElEQVQI12NggIL/DAz/GdA5/xkY/qPKMDAwAADLZwf5rvm+LQAAAABJRU5ErkJggg==") - ; -} - -.CodeMirror-lint-mark-warning { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAYAAAC09K7GAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sJFhQXEbhTg7YAAAAZdEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIEdJTVBXgQ4XAAAAMklEQVQI12NkgIIvJ3QXMjAwdDN+OaEbysDA4MPAwNDNwMCwiOHLCd1zX07o6kBVGQEAKBANtobskNMAAAAASUVORK5CYII="); -} - -.CodeMirror-lint-marker-error, .CodeMirror-lint-marker-warning { - background-position: center center; - background-repeat: no-repeat; - cursor: pointer; - display: inline-block; - height: 16px; - width: 16px; - vertical-align: middle; - position: relative; -} - -.CodeMirror-lint-message-error, .CodeMirror-lint-message-warning { - padding-left: 18px; - background-position: top left; - background-repeat: no-repeat; -} - -.CodeMirror-lint-marker-error, .CodeMirror-lint-message-error { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAHlBMVEW7AAC7AACxAAC7AAC7AAAAAAC4AAC5AAD///+7AAAUdclpAAAABnRSTlMXnORSiwCK0ZKSAAAATUlEQVR42mWPOQ7AQAgDuQLx/z8csYRmPRIFIwRGnosRrpamvkKi0FTIiMASR3hhKW+hAN6/tIWhu9PDWiTGNEkTtIOucA5Oyr9ckPgAWm0GPBog6v4AAAAASUVORK5CYII="); -} - -.CodeMirror-lint-marker-warning, .CodeMirror-lint-message-warning { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAANlBMVEX/uwDvrwD/uwD/uwD/uwD/uwD/uwD/uwD/uwD6twD/uwAAAADurwD2tQD7uAD+ugAAAAD/uwDhmeTRAAAADHRSTlMJ8mN1EYcbmiixgACm7WbuAAAAVklEQVR42n3PUQqAIBBFUU1LLc3u/jdbOJoW1P08DA9Gba8+YWJ6gNJoNYIBzAA2chBth5kLmG9YUoG0NHAUwFXwO9LuBQL1giCQb8gC9Oro2vp5rncCIY8L8uEx5ZkAAAAASUVORK5CYII="); -} - -.CodeMirror-lint-marker-multiple { - background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAMAAADzjKfhAAAACVBMVEUAAAAAAAC/v7914kyHAAAAAXRSTlMAQObYZgAAACNJREFUeNo1ioEJAAAIwmz/H90iFFSGJgFMe3gaLZ0od+9/AQZ0ADosbYraAAAAAElFTkSuQmCC"); - background-repeat: no-repeat; - background-position: right bottom; - width: 100%; height: 100%; -} diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/lint/lint.js b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/lint/lint.js deleted file mode 100644 index 4333e99..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/lint/lint.js +++ /dev/null @@ -1 +0,0 @@ -!function(t){"object"==typeof exports&&"object"==typeof module?t(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],t):t(CodeMirror)}(function(t){"use strict";function e(e,n){function o(e){return r.parentNode?(r.style.top=Math.max(0,e.clientY-r.offsetHeight-5)+"px",void(r.style.left=e.clientX+5+"px")):t.off(document,"mousemove",o)}var r=document.createElement("div");return r.className="CodeMirror-lint-tooltip",r.appendChild(n.cloneNode(!0)),document.body.appendChild(r),t.on(document,"mousemove",o),o(e),null!=r.style.opacity&&(r.style.opacity=1),r}function n(t){t.parentNode&&t.parentNode.removeChild(t)}function o(t){t.parentNode&&(null==t.style.opacity&&n(t),t.style.opacity=0,setTimeout(function(){n(t)},600))}function r(n,r,i){function a(){t.off(i,"mouseout",a),s&&(o(s),s=null)}var s=e(n,r),u=setInterval(function(){if(s)for(var t=i;;t=t.parentNode){if(t&&11==t.nodeType&&(t=t.host),t==document.body)return;if(!t){a();break}}if(!s)return clearInterval(u)},400);t.on(i,"mouseout",a)}function i(t,e,n){this.marked=[],this.options=e,this.timeout=null,this.hasGutter=n,this.onMouseOver=function(e){g(t,e)}}function a(e,n){if(n instanceof Function)return{getAnnotations:n};if(n&&n!==!0||(n={}),n.getAnnotations||(n.getAnnotations=e.getHelper(t.Pos(0,0),"lint")),!n.getAnnotations)throw new Error("Required option 'getAnnotations' missing (lint addon)");return n}function s(t){var e=t.state.lint;e.hasGutter&&t.clearGutter(h);for(var n=0;n1,n.options.tooltips))}}o.onUpdateLinting&&o.onUpdateLinting(e,r,t)}function p(t){var e=t.state.lint;clearTimeout(e.timeout),e.timeout=setTimeout(function(){d(t)},e.options.delay||500)}function v(t,e){var n=e.target||e.srcElement;r(e,f(t),n)}function g(t,e){var n=e.target||e.srcElement;if(/\bCodeMirror-lint-mark-/.test(n.className))for(var o=n.getBoundingClientRect(),r=(o.left+o.right)/2,i=(o.top+o.bottom)/2,a=t.findMarksAt(t.coordsChar({left:r,top:i},"client")),s=0;so)return!1;var n=r.getScrollInfo();if("align"==e.mv.options.connect)p=n.top;else{var l,c,s=.5*n.clientHeight,f=n.top+s,h=r.lineAtHeight(f,"local"),d=L(e.chunks,h,t==DIFF_INSERT),u=a(r,t==DIFF_INSERT?d.edit:d.orig),g=a(i,t==DIFF_INSERT?d.orig:d.edit),m=(f-u.top)/(u.bot-u.top),p=g.top-s+m*(g.bot-g.top);if(p>n.top&&(c=n.top/s)<1)p=p*c+n.top*(1-c);else if((l=n.height-n.clientHeight-n.top)l&&(c=l/s)<1&&(p=p*c+(v.height-v.clientHeight-l)*(1-c))}}return i.scrollTo(n.left,p),i.state.scrollSetAt=o,i.state.scrollSetBy=e,!0}function a(e,t){var r=t.after;return null==r&&(r=e.lastLine()+1),{top:e.heightAtLine(t.before||0,"local"),bot:e.heightAtLine(r,"local")}}function c(e,t,r){e.lockScroll=t,t&&0!=r&&l(e,DIFF_INSERT)&&d(e),e.lockButton.innerHTML=t?"⇛⇚":"⇛  ⇚"}function s(t,r,i){for(var o=0;o20||r.from-n.to>20?(s(e,r.marked,o),h(e,t,i,r.marked,n.from,n.to,o),r.from=n.from,r.to=n.to):(n.fromr.to&&(h(e,t,i,r.marked,r.to,n.to,o),r.to=n.to))})}function h(e,t,r,i,o,n,l){function a(t,r){for(var a=Math.max(o,t),c=Math.min(n,r),s=a;sv&&(u&&a(d,v),d=k)}else if(m==r){var C=x(c,p,!0),T=R(s,c),F=B(f,C);V(T,F)||i.push(e.markText(T,F,{className:h})),c=C}}d<=c.line&&a(d,c.line+1)}function d(e){if(e.showDifferences){if(e.svg){N(e.svg);var t=e.gap.offsetWidth;_(e.svg,"width",t,"height",e.gap.offsetHeight)}e.copyButtons&&N(e.copyButtons);for(var r=e.edit.getViewport(),i=e.orig.getViewport(),o=e.edit.getScrollInfo().top,n=e.orig.getScrollInfo().top,l=0;l=r.from&&a.origFrom<=i.to&&a.origTo>=i.from&&k(e,a,n,o,t)}}}function u(e,t){for(var r=0,i=0,o=0;oe&&n.editFrom<=e)return null;if(n.editFrom>e)break;r=n.editTo,i=n.origTo}return i+(e-r)}function g(e,t){for(var r=[],i=0;io.editTo)break}n>-1&&r.splice(n-1,0,[u(o.editTo,e.chunks),o.editTo,o.origTo])}return r}function m(e,t){if(e.dealigned||t){if(!e.orig.curOp)return e.orig.operation(function(){m(e,t)});e.dealigned=!1;var r=e.mv.left==e?e.mv.right:e.mv.left;r&&(i(r),r.dealigned=!1);for(var o=g(e,r),n=e.mv.aligners,l=0;l1&&r.push(v(e[n],t[n],a))}}function v(e,t,r){var i=!0;t>e.lastLine()&&(t--,i=!1);var o=document.createElement("div");return o.className="CodeMirror-merge-spacer",o.style.height=r+"px",o.style.minWidth="1px",e.addLineWidget(t,o,{height:r,above:i})}function k(e,t,r,i,o){var n="left"==e.type,l=e.orig.heightAtLine(t.origFrom,"local")-r;if(e.svg){var a=l,c=e.edit.heightAtLine(t.editFrom,"local")-i;if(n){var s=a;a=c,c=s}var f=e.orig.heightAtLine(t.origTo,"local")-r,h=e.edit.heightAtLine(t.editTo,"local")-i;if(n){var s=f;f=h,h=s}var d=" C "+o/2+" "+c+" "+o/2+" "+a+" "+(o+2)+" "+a,u=" C "+o/2+" "+f+" "+o/2+" "+h+" -1 "+h;_(e.svg.appendChild(document.createElementNS(P,"path")),"d","M -1 "+c+d+" L "+(o+2)+" "+f+u+" z","class",e.classes.connect)}if(e.copyButtons){var g=e.copyButtons.appendChild(O("div","left"==e.type?"⇝":"⇜","CodeMirror-merge-copy")),m=e.mv.options.allowEditingOriginals;if(g.title=m?"Push to left":"Revert chunk",g.chunk=t,g.style.top=l+"px",m){var p=e.orig.heightAtLine(t.editFrom,"local")-i,v=e.copyButtons.appendChild(O("div","right"==e.type?"⇝":"⇜","CodeMirror-merge-copy-reverse"));v.title="Push to right",v.chunk={editFrom:t.origFrom,editTo:t.origTo,origFrom:t.editFrom,origTo:t.editTo},v.style.top=p+"px","right"==e.type?v.style.left="2px":v.style.right="2px"}}}function C(e,t,r,i){e.diffOutOfDate||t.replaceRange(r.getRange(H(i.origFrom,0),H(i.origTo,0)),H(i.editFrom,0),H(i.editTo,0))}function T(t){var r=t.lockButton=O("div",null,"CodeMirror-merge-scrolllock");r.title="Toggle locked scrolling";var i=O("div",[r],"CodeMirror-merge-scrolllock-wrap");e.on(r,"click",function(){c(t,!t.lockScroll)});var o=[i];if(t.mv.options.revertButtons!==!1&&(t.copyButtons=O("div",null,"CodeMirror-merge-copybuttons-"+t.type),e.on(t.copyButtons,"click",function(e){var r=e.target||e.srcElement;if(r.chunk)return"CodeMirror-merge-copy-reverse"==r.className?void C(t,t.orig,t.edit,r.chunk):void C(t,t.edit,t.orig,r.chunk)}),o.unshift(t.copyButtons)),"align"!=t.mv.options.connect){var n=document.createElementNS&&document.createElementNS(P,"svg");n&&!n.createSVGRect&&(n=null),t.svg=n,n&&o.push(n)}return t.gap=O("div",o,"CodeMirror-merge-gap")}function F(e){return"string"==typeof e?e:e.getValue()}function y(e,t){var r=z.diff_main(e,t);z.diff_cleanupSemantic(r);for(var i=0;if&&(l&&t.push({origFrom:i,origTo:h,editFrom:r,editTo:f}),r=u,i=g)}else x(c==DIFF_INSERT?o:n,a[1])}return(r<=o.line||i<=n.line)&&t.push({origFrom:i,origTo:n.line+1,editFrom:r,editTo:o.line+1}),t}function M(e,t){if(t==e.length-1)return!0;var r=e[t+1][1];return 1!=r.length&&10==r.charCodeAt(0)&&(t==e.length-2||(r=e[t+2][1],r.length>1&&10==r.charCodeAt(0)))}function D(e,t){if(0==t)return!0;var r=e[t-1][1];return 10==r.charCodeAt(r.length-1)&&(1==t||(r=e[t-2][1],10==r.charCodeAt(r.length-1)))}function L(e,t,r){for(var i,o,n,l,a=0;at?(o=c.editFrom,l=c.origFrom):f>t&&(o=c.editTo,l=c.origTo)),f<=t?(i=c.editTo,n=c.origTo):s<=t&&(i=c.editFrom,n=c.origFrom)}return{edit:{before:i,after:o},orig:{before:n,after:l}}}function I(e,t,r){function i(){n.clear(),e.removeLineClass(t,"wrap","CodeMirror-merge-collapsed-line")}e.addLineClass(t,"wrap","CodeMirror-merge-collapsed-line");var o=document.createElement("span");o.className="CodeMirror-merge-collapsed-widget",o.title="Identical text collapsed. Click to expand.";var n=e.markText(H(t,0),H(r-1),{inclusiveLeft:!0,inclusiveRight:!0,replacedWith:o,clearOnEnter:!0});return o.addEventListener("click",i),{mark:n,clear:i}}function b(e,t){function r(){for(var e=0;e=0&&at){var f=[{line:c,cm:i}];e.left&&f.push({line:u(c,e.left.chunks),cm:e.left.orig}),e.right&&f.push({line:u(c,e.right.chunks),cm:e.right.orig});var h=b(s,f);e.options.onCollapse&&e.options.onCollapse(e,c,s,h)}}}function O(e,t,r,i){var o=document.createElement(e);if(r&&(o.className=r),i&&(o.style.cssText=i),"string"==typeof t)o.appendChild(document.createTextNode(t));else if(t)for(var n=0;n0;--t)e.removeChild(e.firstChild)}function _(e){for(var t=1;t0?e:t}function V(e,t){return e.line==t.line&&e.ch==t.ch}var H=e.Pos,P="http://www.w3.org/2000/svg";r.prototype={constructor:r,init:function(t,r,i){this.edit=this.mv.edit,this.orig=e(t,A({value:r,readOnly:!this.mv.options.allowEditingOriginals},A(i))),this.diff=y(F(r),F(i.value)),this.chunks=w(this.diff),this.diffOutOfDate=this.dealigned=!1,this.showDifferences=i.showDifferences!==!1,this.forceUpdate=o(this),c(this,!0,!1),n(this)},setShowDifferences:function(e){e=e!==!1,e!=this.showDifferences&&(this.showDifferences=e,this.forceUpdate("full"))}};var U=!1,W=e.MergeView=function(t,i){if(!(this instanceof W))return new W(t,i);this.options=i;var o=i.origLeft,n=null==i.origRight?i.orig:i.origRight,l=null!=o,a=null!=n,c=1+(l?1:0)+(a?1:0),s=[],f=this.left=null,h=this.right=null,u=this;if(l){f=this.left=new r(this,"left");var g=O("div",null,"CodeMirror-merge-pane");s.push(g),s.push(T(f))}var p=O("div",null,"CodeMirror-merge-pane");if(s.push(p),a){h=this.right=new r(this,"right"),s.push(T(h));var v=O("div",null,"CodeMirror-merge-pane");s.push(v)}(a?v:p).className+=" CodeMirror-merge-pane-rightmost",s.push(O("div",null,null,"height: 0; clear: both;"));var k=this.wrap=t.appendChild(O("div",s,"CodeMirror-merge CodeMirror-merge-"+c+"pane"));this.edit=e(p,A(i)),f&&f.init(g,o,i),h&&h.init(v,n,i),i.collapseIdentical&&(U=!0,this.editor().operation(function(){S(u,i.collapseIdentical)}),U=!1),"align"==i.connect&&(this.aligners=[],m(this.left||this.right,!0));var C=function(){f&&d(f),h&&d(h)};e.on(window,"resize",C);var F=setInterval(function(){for(var t=k.parentNode;t&&t!=document.body;t=t.parentNode);t||(clearInterval(F),e.off(window,"resize",C))},5e3)};W.prototype={constuctor:W,editor:function(){return this.edit},rightOriginal:function(){return this.right&&this.right.orig},leftOriginal:function(){return this.left&&this.left.orig},setShowDifferences:function(e){this.right&&this.right.setShowDifferences(e),this.left&&this.left.setShowDifferences(e)},rightChunks:function(){if(this.right)return i(this.right),this.right.chunks},leftChunks:function(){if(this.left)return i(this.left),this.left.chunks}};var z=new t}); \ No newline at end of file diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/mode/loadmode.js b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/mode/loadmode.js deleted file mode 100644 index 6403f3b..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/mode/loadmode.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),"cjs"):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],function(r){e(r,"amd")}):e(CodeMirror,"plain")}(function(e,r){function o(e,r){var o=r;return function(){0==--o&&e()}}function n(r,n){var t=e.modes[r].dependencies;if(!t)return n();for(var i=[],d=0;d-1&&(o.string=u.slice(0,a));var s=l.mode.token(o,c.inner);return a>-1&&(o.string=u),l.innerStyle&&(s=s?s+" "+l.innerStyle:l.innerStyle),s}for(var v=1/0,u=o.string,d=0;d2){a.pending=[];for(var f=2;f-1)return e.Pass;var i=a.indent.length-1,l=t[a.state];e:for(;;){for(var d=0;d=this.string.length},sol:function(){return 0==this.pos},peek:function(){return this.string.charAt(this.pos)||null},next:function(){if(this.posr},eatSpace:function(){for(var t=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>t},skipToEnd:function(){this.pos=this.string.length},skipTo:function(t){var r=this.string.indexOf(t,this.pos);if(r>-1)return this.pos=r,!0},backUp:function(t){this.pos-=t},column:function(){return this.start-this.lineStart},indentation:function(){return 0},match:function(t,r,e){if("string"!=typeof t){var n=this.string.slice(this.pos).match(t);return n&&n.index>0?null:(n&&r!==!1&&(this.pos+=n[0].length),n)}var i=function(t){return e?t.toLowerCase():t},o=this.string.substr(this.pos,t.length);if(i(o)==i(t))return r!==!1&&(this.pos+=t.length),!0},current:function(){return this.string.slice(this.start,this.pos)},hideFirstChars:function(t,r){this.lineStart+=t;try{return r()}finally{this.lineStart-=t}}},CodeMirror.StringStream=r,CodeMirror.startState=function(t,r,e){return!t.startState||t.startState(r,e)};var e=CodeMirror.modes={},n=CodeMirror.mimeModes={};CodeMirror.defineMode=function(t,r){arguments.length>2&&(r.dependencies=Array.prototype.slice.call(arguments,2)),e[t]=r},CodeMirror.defineMIME=function(t,r){n[t]=r},CodeMirror.resolveMode=function(t){return"string"==typeof t&&n.hasOwnProperty(t)?t=n[t]:t&&"string"==typeof t.name&&n.hasOwnProperty(t.name)&&(t=n[t.name]),"string"==typeof t?{name:t}:t||{name:"null"}},CodeMirror.getMode=function(t,r){r=CodeMirror.resolveMode(r);var n=e[r.name];if(!n)throw new Error("Unknown mode: "+r);return n(t,r)},CodeMirror.registerHelper=CodeMirror.registerGlobalHelper=Math.min,CodeMirror.defineMode("null",function(){return{token:function(t){t.skipToEnd()}}}),CodeMirror.defineMIME("text/plain","null"),CodeMirror.runMode=function(r,e,n,i){var o=CodeMirror.getMode({indentUnit:2},e);if(1==n.nodeType){var s=i&&i.tabSize||4,a=n,h=0;a.innerHTML="",n=function(t,r){if("\n"==t)return a.appendChild(document.createElement("br")),void(h=0);for(var e="",n=0;;){var i=t.indexOf("\t",n);if(i==-1){e+=t.slice(n),h+=t.length-n;break}h+=i-n,e+=t.slice(n,i);var o=s-h%s;h+=o;for(var u=0;u=this.string.length},sol:function(){return 0==this.pos},peek:function(){return this.string.charAt(this.pos)||null},next:function(){if(this.pose},eatSpace:function(){for(var t=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>t},skipToEnd:function(){this.pos=this.string.length},skipTo:function(t){var e=this.string.indexOf(t,this.pos);if(e>-1)return this.pos=e,!0},backUp:function(t){this.pos-=t},column:function(){return this.start-this.lineStart},indentation:function(){return 0},match:function(t,e,r){if("string"!=typeof t){var n=this.string.slice(this.pos).match(t);return n&&n.index>0?null:(n&&e!==!1&&(this.pos+=n[0].length),n)}var s=function(t){return r?t.toLowerCase():t},i=this.string.substr(this.pos,t.length);if(s(i)==s(t))return e!==!1&&(this.pos+=t.length),!0},current:function(){return this.string.slice(this.start,this.pos)},hideFirstChars:function(t,e){this.lineStart+=t;try{return e()}finally{this.lineStart-=t}}},exports.StringStream=StringStream,exports.startState=function(t,e,r){return!t.startState||t.startState(e,r)};var modes=exports.modes={},mimeModes=exports.mimeModes={};exports.defineMode=function(t,e){arguments.length>2&&(e.dependencies=Array.prototype.slice.call(arguments,2)),modes[t]=e},exports.defineMIME=function(t,e){mimeModes[t]=e},exports.defineMode("null",function(){return{token:function(t){t.skipToEnd()}}}),exports.defineMIME("text/plain","null"),exports.resolveMode=function(t){return"string"==typeof t&&mimeModes.hasOwnProperty(t)?t=mimeModes[t]:t&&"string"==typeof t.name&&mimeModes.hasOwnProperty(t.name)&&(t=mimeModes[t.name]),"string"==typeof t?{name:t}:t||{name:"null"}},exports.getMode=function(t,e){e=exports.resolveMode(e);var r=modes[e.name];if(!r)throw new Error("Unknown mode: "+e);return r(t,e)},exports.registerHelper=exports.registerGlobalHelper=Math.min,exports.runMode=function(t,e,r,n){for(var s=exports.getMode({indentUnit:2},e),i=splitLines(t),o=n&&n.state||exports.startState(s),a=0,h=i.length;ad+.9));)s=n[++a],d=e.charCoords(s.to,"local").bottom*i;if(d!=h){var c=Math.max(d-h,3),l=o.appendChild(document.createElement("div"));l.style.cssText="position: absolute; right: 0px; width: "+Math.max(e.display.barWidth-1,2)+"px; top: "+(h+this.buttonHeight)+"px; height: "+c+"px",l.className=this.options.className}}this.div.textContent="",this.div.appendChild(o)},e.prototype.clear=function(){this.cm.off("refresh",this.resizeHandler),this.cm.off("markerAdded",this.resizeHandler),this.cm.off("markerCleared",this.resizeHandler),this.changeHandler&&this.cm.off("change",this.changeHandler),this.div.parentNode.removeChild(this.div)}}); \ No newline at end of file diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/scroll/scrollpastend.js b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/scroll/scrollpastend.js deleted file mode 100644 index 3b1a976..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/scroll/scrollpastend.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function n(n,i){e.changeEnd(i).line==n.lastLine()&&t(n)}function t(e){var n="";if(e.lineCount()>1){var t=e.display.scroller.clientHeight-30,i=e.getLineHandle(e.lastLine()).height;n=t-i+"px"}e.state.scrollPastEndPadding!=n&&(e.state.scrollPastEndPadding=n,e.display.lineSpace.parentNode.style.paddingBottom=n,e.setSize())}e.defineOption("scrollPastEnd",!1,function(i,o,d){d&&d!=e.Init&&(i.off("change",n),i.off("refresh",t),i.display.lineSpace.parentNode.style.paddingBottom="",i.state.scrollPastEndPadding=null),o&&(i.on("change",n),i.on("refresh",t),t(i))})}); \ No newline at end of file diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/scroll/simplescrollbars.css b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/scroll/simplescrollbars.css deleted file mode 100644 index 5eea7aa..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/scroll/simplescrollbars.css +++ /dev/null @@ -1,66 +0,0 @@ -.CodeMirror-simplescroll-horizontal div, .CodeMirror-simplescroll-vertical div { - position: absolute; - background: #ccc; - -moz-box-sizing: border-box; - box-sizing: border-box; - border: 1px solid #bbb; - border-radius: 2px; -} - -.CodeMirror-simplescroll-horizontal, .CodeMirror-simplescroll-vertical { - position: absolute; - z-index: 6; - background: #eee; -} - -.CodeMirror-simplescroll-horizontal { - bottom: 0; left: 0; - height: 8px; -} -.CodeMirror-simplescroll-horizontal div { - bottom: 0; - height: 100%; -} - -.CodeMirror-simplescroll-vertical { - right: 0; top: 0; - width: 8px; -} -.CodeMirror-simplescroll-vertical div { - right: 0; - width: 100%; -} - - -.CodeMirror-overlayscroll .CodeMirror-scrollbar-filler, .CodeMirror-overlayscroll .CodeMirror-gutter-filler { - display: none; -} - -.CodeMirror-overlayscroll-horizontal div, .CodeMirror-overlayscroll-vertical div { - position: absolute; - background: #bcd; - border-radius: 3px; -} - -.CodeMirror-overlayscroll-horizontal, .CodeMirror-overlayscroll-vertical { - position: absolute; - z-index: 6; -} - -.CodeMirror-overlayscroll-horizontal { - bottom: 0; left: 0; - height: 6px; -} -.CodeMirror-overlayscroll-horizontal div { - bottom: 0; - height: 100%; -} - -.CodeMirror-overlayscroll-vertical { - right: 0; top: 0; - width: 6px; -} -.CodeMirror-overlayscroll-vertical div { - right: 0; - width: 100%; -} diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/scroll/simplescrollbars.js b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/scroll/simplescrollbars.js deleted file mode 100644 index 92db1e4..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/scroll/simplescrollbars.js +++ /dev/null @@ -1 +0,0 @@ -!function(t){"object"==typeof exports&&"object"==typeof module?t(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],t):t(CodeMirror)}(function(t){"use strict";function e(e,o,i){function n(e){var o=t.wheelEventPixels(e)["horizontal"==s.orientation?"x":"y"],i=s.pos;s.moveTo(s.pos+o),s.pos!=i&&t.e_preventDefault(e)}this.orientation=o,this.scroll=i,this.screen=this.total=this.size=1,this.pos=0,this.node=document.createElement("div"),this.node.className=e+"-"+o,this.inner=this.node.appendChild(document.createElement("div"));var s=this;t.on(this.inner,"mousedown",function(e){function o(){t.off(document,"mousemove",i),t.off(document,"mouseup",o)}function i(t){return 1!=t.which?o():void s.moveTo(h+(t[n]-r)*(s.total/s.size))}if(1==e.which){t.e_preventDefault(e);var n="horizontal"==s.orientation?"pageX":"pageY",r=e[n],h=s.pos;t.on(document,"mousemove",i),t.on(document,"mouseup",o)}}),t.on(this.node,"click",function(e){t.e_preventDefault(e);var o,i=s.inner.getBoundingClientRect();o="horizontal"==s.orientation?e.clientXi.right?1:0:e.clientYi.bottom?1:0,s.moveTo(s.pos+o*s.screen)}),t.on(this.node,"mousewheel",n),t.on(this.node,"DOMMouseScroll",n)}function o(t,o,i){this.addClass=t,this.horiz=new e(t,"horizontal",i),o(this.horiz.node),this.vert=new e(t,"vertical",i),o(this.vert.node),this.width=null}e.prototype.moveTo=function(t,e){t<0&&(t=0),t>this.total-this.screen&&(t=this.total-this.screen),t!=this.pos&&(this.pos=t,this.inner.style["horizontal"==this.orientation?"left":"top"]=t*(this.size/this.total)+"px",e!==!1&&this.scroll(t,this.orientation))},e.prototype.update=function(t,e,o){this.screen=e,this.total=t,this.size=o,this.inner.style["horizontal"==this.orientation?"width":"height"]=this.screen*(this.size/this.total)+"px",this.inner.style["horizontal"==this.orientation?"left":"top"]=this.pos*(this.size/this.total)+"px"},o.prototype.update=function(t){if(null==this.width){var e=window.getComputedStyle?window.getComputedStyle(this.horiz.node):this.horiz.node.currentStyle;e&&(this.width=parseInt(e.height))}var o=this.width||0,i=t.scrollWidth>t.clientWidth+1,n=t.scrollHeight>t.clientHeight+1;return this.vert.node.style.display=n?"block":"none",this.horiz.node.style.display=i?"block":"none",n&&(this.vert.update(t.scrollHeight,t.clientHeight,t.viewHeight-(i?o:0)),this.vert.node.style.display="block",this.vert.node.style.bottom=i?o+"px":"0"),i&&(this.horiz.update(t.scrollWidth,t.clientWidth,t.viewWidth-(n?o:0)-t.barLeft),this.horiz.node.style.right=n?o+"px":"0",this.horiz.node.style.left=t.barLeft+"px"),{right:n?o:0,bottom:i?o:0}},o.prototype.setScrollTop=function(t){this.vert.moveTo(t,!1)},o.prototype.setScrollLeft=function(t){this.horiz.moveTo(t,!1)},o.prototype.clear=function(){var t=this.horiz.node.parentNode;t.removeChild(this.horiz.node),t.removeChild(this.vert.node)},t.scrollbarModel.simple=function(t,e){return new o("CodeMirror-simplescroll",t,e)},t.scrollbarModel.overlay=function(t,e){return new o("CodeMirror-overlayscroll",t,e)}}); \ No newline at end of file diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/search/match-highlighter.js b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/search/match-highlighter.js deleted file mode 100644 index c7fbfa3..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/search/match-highlighter.js +++ /dev/null @@ -1 +0,0 @@ -!function(t){"object"==typeof exports&&"object"==typeof module?t(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],t):t(CodeMirror)}(function(t){"use strict";function e(t){"object"==typeof t&&(this.minChars=t.minChars,this.style=t.style,this.showToken=t.showToken,this.delay=t.delay,this.wordsOnly=t.wordsOnly),null==this.style&&(this.style=s),null==this.minChars&&(this.minChars=h),null==this.delay&&(this.delay=a),null==this.wordsOnly&&(this.wordsOnly=c),this.overlay=this.timeout=null}function i(t){var e=t.state.matchHighlighter;clearTimeout(e.timeout),e.timeout=setTimeout(function(){r(t)},e.delay)}function r(t){t.operation(function(){var e=t.state.matchHighlighter;if(e.overlay&&(t.removeOverlay(e.overlay),e.overlay=null),!t.somethingSelected()&&e.showToken){for(var i=e.showToken===!0?/[\w$]/:e.showToken,r=t.getCursor(),o=t.getLine(r.line),h=r.ch,s=h;h&&i.test(o.charAt(h-1));)--h;for(;s=e.minChars&&t.addOverlay(e.overlay=l(u,!1,e.style))}})}function n(t,e,i){var r=t.getRange(e,i);if(null!==r.match(/^\w+$/)){if(e.ch>0){var n={line:e.line,ch:e.ch-1},o=t.getRange(n,e);if(null===o.match(/\W/))return!1}if(i.ch=this.gap.to)break;i.to.line>=this.gap.from&&this.matches.splice(e--,1)}for(var a=this.cm.getSearchCursor(this.query,t.Pos(this.gap.from,0),this.caseFold);a.findNext();){var i={from:a.from(),to:a.to()};if(i.from.line>=this.gap.to)break;if(this.matches.splice(e++,0,i),this.matches.length>o)break}this.gap=null}},e.prototype.onChange=function(e){var o=e.from.line,a=t.changeEnd(e).line,r=a-e.to.line;if(this.gap?(this.gap.from=Math.min(i(this.gap.from,o,r),e.from.line),this.gap.to=Math.max(i(this.gap.to,o,r),e.from.line)):this.gap={from:e.from.line,to:a+1},r)for(var n=0;n-1)return c=n(f,h,c),{from:i(o.line,c),to:i(o.line,c+s.length)}}else{var f=e.getLine(o.line).slice(o.ch),h=l(f),c=h.indexOf(t);if(c>-1)return c=n(f,h,c)+o.ch,{from:i(o.line,c),to:i(o.line,c+s.length)}}}:this.matches=function(){};else{var h=s.split("\n");this.matches=function(t,n){var r=f.length-1;if(t){if(n.line-(f.length-1)=1;--c,--s)if(f[c]!=l(e.getLine(s)))return;var u=e.getLine(s),a=u.length-h[0].length;if(l(u.slice(a))!=f[0])return;return{from:i(s,a),to:o}}if(!(n.line+(f.length-1)>e.lastLine())){var u=e.getLine(n.line),a=u.length-h[0].length;if(l(u.slice(a))==f[0]){for(var g=i(n.line,a),s=n.line+1,c=1;cn))return i;--i}}}var i=e.Pos;t.prototype={findNext:function(){return this.find(!1)},findPrevious:function(){return this.find(!0)},find:function(e){function t(e){var t=i(e,0);return n.pos={from:t,to:t},n.atOccurrence=!1,!1}for(var n=this,r=this.doc.clipPos(e?this.pos.from:this.pos.to);;){if(this.pos=this.matches(e,r))return this.atOccurrence=!0,this.pos.match||!0;if(e){if(!r.line)return t(0);r=i(r.line-1,this.doc.getLine(r.line-1).length)}else{var o=this.doc.lineCount();if(r.line==o-1)return t(o);r=i(r.line+1,0)}}},from:function(){if(this.atOccurrence)return this.pos.from},to:function(){if(this.atOccurrence)return this.pos.to},replace:function(t){if(this.atOccurrence){var n=e.splitLines(t);this.doc.replaceRange(n,this.pos.from,this.pos.to),this.pos.to=i(this.pos.from.line+n.length-1,n[n.length-1].length+(1==n.length?this.pos.from.ch:0))}}},e.defineExtension("getSearchCursor",function(e,n,i){return new t(this.doc,e,n,i)}),e.defineDocExtension("getSearchCursor",function(e,n,i){return new t(this,e,n,i)}),e.defineExtension("selectMatches",function(t,n){for(var i,r=[],o=this.getSearchCursor(t,this.getCursor("from"),n);(i=o.findNext())&&!(e.cmpPos(o.to(),this.getCursor("to"))>0);)r.push({anchor:o.from(),head:o.to()});r.length&&this.setSelections(r,0)})}); \ No newline at end of file diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/selection/active-line.js b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/selection/active-line.js deleted file mode 100644 index ed40234..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/selection/active-line.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e){for(var t=0;t=n.line,m=u?n:c(d,0),S=e.markText(s,m,{className:i});if(null==o?r.push(S):r.splice(o++,0,S),u)break;l=d}}function r(e){for(var t=e.state.markedSelection,n=0;n1)return i(e);var t=e.getCursor("start"),n=e.getCursor("end"),l=e.state.markedSelection;if(!l.length)return o(e,t,n);var c=l[0].find(),s=l[l.length-1].find();if(!c||!s||n.line-t.line=0||a(n,c.from)<=0)return i(e);for(;a(t,c.from)>0;)l.shift().clear(),c=l[0].find();for(a(t,c.from)<0&&(c.to.line-t.line0&&(n.line-s.from.line=t.mouseX&&l.top<=t.mouseY&&l.bottom>=t.mouseY&&(n=!0)}var s=n?t.value:"";e.display.lineDiv.style.cursor!=s&&(e.display.lineDiv.style.cursor=s)}}e.defineOption("selectionPointer",!1,function(i,l){var s=i.state.selectionPointer;s&&(e.off(i.getWrapperElement(),"mousemove",s.mousemove),e.off(i.getWrapperElement(),"mouseout",s.mouseout),e.off(window,"scroll",s.windowScroll),i.off("cursorActivity",n),i.off("scroll",n),i.state.selectionPointer=null,i.display.lineDiv.style.cursor=""),l&&(s=i.state.selectionPointer={value:"string"==typeof l?l:"default",mousemove:function(e){t(i,e)},mouseout:function(e){o(i,e)},windowScroll:function(){n(i)},rects:null,mouseX:null,mouseY:null,willUpdate:!1},e.on(i.getWrapperElement(),"mousemove",s.mousemove),e.on(i.getWrapperElement(),"mouseout",s.mouseout),e.on(window,"scroll",s.windowScroll),i.on("cursorActivity",n),i.on("scroll",n))})}); \ No newline at end of file diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/tern/tern.css b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/tern/tern.css deleted file mode 100644 index 76fba33..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/tern/tern.css +++ /dev/null @@ -1,86 +0,0 @@ -.CodeMirror-Tern-completion { - padding-left: 22px; - position: relative; -} -.CodeMirror-Tern-completion:before { - position: absolute; - left: 2px; - bottom: 2px; - border-radius: 50%; - font-size: 12px; - font-weight: bold; - height: 15px; - width: 15px; - line-height: 16px; - text-align: center; - color: white; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -.CodeMirror-Tern-completion-unknown:before { - content: "?"; - background: #4bb; -} -.CodeMirror-Tern-completion-object:before { - content: "O"; - background: #77c; -} -.CodeMirror-Tern-completion-fn:before { - content: "F"; - background: #7c7; -} -.CodeMirror-Tern-completion-array:before { - content: "A"; - background: #c66; -} -.CodeMirror-Tern-completion-number:before { - content: "1"; - background: #999; -} -.CodeMirror-Tern-completion-string:before { - content: "S"; - background: #999; -} -.CodeMirror-Tern-completion-bool:before { - content: "B"; - background: #999; -} - -.CodeMirror-Tern-completion-guess { - color: #999; -} - -.CodeMirror-Tern-tooltip { - border: 1px solid silver; - border-radius: 3px; - color: #444; - padding: 2px 5px; - font-size: 90%; - font-family: monospace; - background-color: white; - white-space: pre-wrap; - - max-width: 40em; - position: absolute; - z-index: 10; - -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2); - -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2); - box-shadow: 2px 3px 5px rgba(0,0,0,.2); - - transition: opacity 1s; - -moz-transition: opacity 1s; - -webkit-transition: opacity 1s; - -o-transition: opacity 1s; - -ms-transition: opacity 1s; -} - -.CodeMirror-Tern-hint-doc { - max-width: 25em; - margin-top: -3px; -} - -.CodeMirror-Tern-fname { color: black; } -.CodeMirror-Tern-farg { color: #70a; } -.CodeMirror-Tern-farg-current { text-decoration: underline; } -.CodeMirror-Tern-type { color: #07c; } -.CodeMirror-Tern-fhint-guess { opacity: .7; } diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/tern/tern.js b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/tern/tern.js deleted file mode 100644 index f6980ea..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/tern/tern.js +++ /dev/null @@ -1 +0,0 @@ -!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t,n){var o=e.docs[t];o?n(F(e,o)):e.options.getFile?e.options.getFile(t,n):n(null)}function n(e,t,n){for(var o in e.docs){var r=e.docs[o];if(r.doc==t)return r}if(!n)for(var i=0;;++i)if(o="[doc"+(i||"")+"]",!e.docs[o]){n=o;break}return e.addDoc(n,t)}function o(t,o){return"string"==typeof o?t.docs[o]:(o instanceof e&&(o=o.getDoc()),o instanceof e.Doc?n(t,o):void 0)}function r(e,t,o){var r=n(e,t),s=e.cachedArgHints;s&&s.doc==t&&R(s.start,o.to)<=0&&(e.cachedArgHints=null);var a=r.changed;null==a&&(r.changed=a={from:o.from.line,to:o.from.line});var c=o.from.line+(o.text.length-1);o.from.line=a.to&&(a.to=c+1),a.from>o.from.line&&(a.from=o.from.line),t.lineCount()>L&&o.to-a.from>100&&setTimeout(function(){r.changed&&r.changed.to-r.changed.from>100&&i(e,r)},200)}function i(e,t){e.server.request({files:[{type:"full",name:t.name,text:F(e,t)}]},function(e){e||(t.changed=null)})}function s(t,n,o){t.request(n,{type:"completions",types:!0,docs:!0,urls:!0},function(r,i){if(r)return H(t,n,r);var s=[],c="",l=i.start,u=i.end;'["'==n.getRange(M(l.line,l.ch-2),l)&&'"]'!=n.getRange(u,M(u.line,u.ch+2))&&(c='"]');for(var f=0;f=d;--l){for(var h=n.getLine(l),g=0,m=0;;){var v=h.indexOf("\t",m);if(v==-1)break;g+=c-(v+g)%c-1,m=v+1}if(s=i.column-g,"("==h.charAt(s)){p=!0;break}}if(p){var y=M(l,s),C=t.cachedArgHints;return C&&C.doc==n.getDoc()&&0==R(y,C.start)?u(t,n,a):void t.request(n,{type:"type",preferFunction:!0,end:y},function(e,o){!e&&o.type&&/^fn\(/.test(o.type)&&(t.cachedArgHints={start:m,type:f(o.type),name:o.exprName||o.name||"fn",guess:o.guess,doc:n.getDoc()},u(t,n,a))})}}}}}function u(e,t,n){S(e);for(var o=e.cachedArgHints,r=o.type,i=T("span",o.guess?j+"fhint-guess":null,T("span",j+"fname",o.name),"("),s=0;s ":")")),r.rettype&&i.appendChild(T("span",j+"type",r.rettype));var c=t.cursorCoords(null,"page");e.activeArgHints=A(c.right+1,c.bottom,i)}function f(e){function t(t){for(var n=0,r=o;;){var i=e.charAt(o);if(t.test(i)&&!n)return e.slice(r,o);/[{\[\(]/.test(i)?++n:/[}\]\)]/.test(i)&&--n,++o}}var n=[],o=3;if(")"!=e.charAt(o))for(;;){var r=e.slice(o).match(/^([^, \(\[\{]+): /);if(r&&(o+=r[0].length,r=r[1]),n.push({name:r,type:t(/[\),]/)}),")"==e.charAt(o))break;o+=2}var i=e.slice(o).match(/^\) -> (.*)$/);return{args:n,rettype:i&&i[1]}}function d(e,t){function o(o){var r={type:"definition",variable:o||null},i=n(e,t.getDoc());e.server.request(x(e,i,r),function(n,o){if(n)return H(e,t,n);if(!o.file&&o.url)return void window.open(o.url);if(o.file){var r,s=e.docs[o.file];if(s&&(r=g(s.doc,o)))return e.jumpStack.push({file:i.name,start:t.getCursor("from"),end:t.getCursor("to")}),void h(e,i,s,r.start,r.end)}H(e,t,"Could not find a definition.")})}m(t)?o():w(t,"Jump to variable",function(e){e&&o(e)})}function p(e,t){var o=e.jumpStack.pop(),r=o&&e.docs[o.file];r&&h(e,n(e,t.getDoc()),r,o.start,o.end)}function h(e,t,n,o,r){n.doc.setSelection(o,r),t!=n&&e.options.switchToDoc&&(S(e),e.options.switchToDoc(n.name,n.doc))}function g(e,t){for(var n=t.context.slice(0,t.contextOffset).split("\n"),o=t.start.line-(n.length-1),r=M(o,(1==n.length?t.start.ch:e.getLine(o).length)-n[0].length),i=e.getLine(o).slice(r.ch),s=o+1;s=0&&R(s,c.end)<=0&&(s=i.length-1))}t.setSelections(i,s)})}function C(e,t){for(var n=Object.create(null),o=0;oL&&s!==!1&&t.changed.to-t.changed.from<100&&t.changed.from<=a.line&&t.changed.to>n.end.line){r.push(b(t,a,n.end)),n.file="#0";var i=r[0].offsetLines;null!=n.start&&(n.start=M(n.start.line- -i,n.start.ch)),n.end=M(n.end.line-i,n.end.ch)}else r.push({type:"full",name:t.name,text:F(e,t)}),n.file=t.name,t.changed=null;else n.file=t.name;for(var c in e.docs){var l=e.docs[c];l.changed&&l!=t&&(r.push({type:"full",name:l.name,text:F(e,l)}),l.changed=null)}return{query:n,files:r}}function b(t,n,o){for(var r,i=t.doc,s=null,a=null,c=4,l=n.line-1,u=Math.max(0,l-50);l>=u;--l){var f=i.getLine(l),d=f.search(/\bfunction\b/);if(!(d<0)){var p=e.countColumn(f,null,c);null!=s&&s<=p||(s=p,a=l)}}null==a&&(a=u);var h=Math.min(i.lastLine(),o.line+20);if(null==s||s==e.countColumn(i.getLine(n.line),null,c))r=h;else for(r=o.line+1;r",n):n(prompt(t,""))}function k(t,n){function o(){c=!0,a||r()}function r(){t.state.ternTooltip=null,s.parentNode&&(t.off("cursorActivity",r),t.off("blur",r),t.off("scroll",r),N(s))}t.state.ternTooltip&&D(t.state.ternTooltip);var i=t.cursorCoords(),s=t.state.ternTooltip=A(i.right+1,i.bottom,n),a=!1,c=!1;e.on(s,"mousemove",function(){a=!0}),e.on(s,"mouseout",function(t){e.contains(s,t.relatedTarget||t.toElement)||(c?r():a=!1)}),setTimeout(o,1700),t.on("cursorActivity",r),t.on("blur",r),t.on("scroll",r)}function A(e,t,n){var o=T("div",j+"tooltip",n);return o.style.left=e+"px",o.style.top=t+"px",document.body.appendChild(o),o}function D(e){var t=e&&e.parentNode;t&&t.removeChild(e)}function N(e){e.style.opacity="0",setTimeout(function(){D(e)},1100)}function H(e,t,n){e.options.showError?e.options.showError(t,n):k(t,String(n))}function S(e){e.activeArgHints&&(D(e.activeArgHints),e.activeArgHints=null)}function F(e,t){var n=t.doc.getValue();return e.options.fileFilter&&(n=e.options.fileFilter(n,t.name,t.doc)),n}function q(e){function n(e,t){t&&(e.id=++r,i[r]=t),o.postMessage(e)}var o=e.worker=new Worker(e.options.workerScript);o.postMessage({type:"init",defs:e.options.defs,plugins:e.options.plugins,scripts:e.options.workerDeps});var r=0,i={};o.onmessage=function(o){var r=o.data;"getFile"==r.type?t(e,r.name,function(e,t){n({type:"getFile",err:String(e),text:t,id:r.id})}):"debug"==r.type||r.id&&i[r.id]&&(i[r.id](r.err,r.body),delete i[r.id])},o.onerror=function(e){for(var t in i)i[t](e);i={}},this.addFile=function(e,t){n({type:"add",name:e,text:t})},this.delFile=function(e){n({type:"del",name:e})},this.request=function(e,t){n({type:"req",body:e},t)}}e.TernServer=function(e){var n=this;this.options=e||{};var o=this.options.plugins||(this.options.plugins={});o.doc_comment||(o.doc_comment=!0),this.options.useWorker?this.server=new q(this):this.server=new tern.Server({getFile:function(e,o){return t(n,e,o)},async:!0,defs:this.options.defs||[],plugins:o}),this.docs=Object.create(null),this.trackChange=function(e,t){r(n,e,t)},this.cachedArgHints=null,this.activeArgHints=null,this.jumpStack=[],this.getHint=function(e,t){return s(n,e,t)},this.getHint.async=!0},e.TernServer.prototype={addDoc:function(t,n){var o={doc:n,name:t,changed:null};return this.server.addFile(t,F(this,o)),e.on(n,"change",this.trackChange),this.docs[t]=o},delDoc:function(t){var n=o(this,t);n&&(e.off(n.doc,"change",this.trackChange),delete this.docs[n.name],this.server.delFile(n.name))},hideDoc:function(e){S(this);var t=o(this,e);t&&t.changed&&i(this,t)},complete:function(e){e.showHint({hint:this.getHint})},showType:function(e,t,n){c(this,e,t,"type",n)},showDocs:function(e,t,n){c(this,e,t,"documentation",n)},updateArgHints:function(e){l(this,e)},jumpToDef:function(e){d(this,e)},jumpBack:function(e){p(this,e)},rename:function(e){v(this,e)},selectName:function(e){y(this,e)},request:function(e,t,o,r){var i=this,s=n(this,e.getDoc()),a=x(this,s,t,r);this.server.request(a,function(e,n){!e&&i.options.responseFilter&&(n=i.options.responseFilter(s,t,a,e,n)),o(e,n)})},destroy:function(){this.worker&&(this.worker.terminate(),this.worker=null)}};var M=e.Pos,j="CodeMirror-Tern-",L=250,O=0,R=e.cmpPos}); \ No newline at end of file diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/tern/worker.js b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/tern/worker.js deleted file mode 100644 index 9c6543c..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/tern/worker.js +++ /dev/null @@ -1 +0,0 @@ -function getFile(e,r){postMessage({type:"getFile",name:e,id:++nextId}),pending[nextId]=r}function startServer(e,r,t){t&&importScripts.apply(null,t),server=new tern.Server({getFile:getFile,async:!0,defs:e,plugins:r})}var server;this.onmessage=function(e){var r=e.data;switch(r.type){case"init":return startServer(r.defs,r.plugins,r.scripts);case"add":return server.addFile(r.name,r.text);case"del":return server.delFile(r.name);case"req":return server.request(r.body,function(e,t){postMessage({id:r.id,body:t,err:e&&String(e)})});case"getFile":var t=pending[r.id];return delete pending[r.id],t(r.err,r.text);default:throw new Error("Unknown message type: "+r.type)}};var nextId=0,pending={},console={log:function(e){postMessage({type:"debug",message:e})}}; \ No newline at end of file diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/wrap/hardwrap.js b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/wrap/hardwrap.js deleted file mode 100644 index 061578a..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addon/wrap/hardwrap.js +++ /dev/null @@ -1 +0,0 @@ -!function(r){"object"==typeof exports&&"object"==typeof module?r(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],r):r(CodeMirror)}(function(r){"use strict";function t(r,t,e){for(var n=e.paragraphStart||r.getHelper(t,"paragraphStart"),o=t.line,a=r.firstLine();o>a;--o){var i=r.getLine(o);if(n&&n.test(i))break;if(!/\S/.test(i)){++o;break}}for(var f=e.paragraphEnd||r.getHelper(t,"paragraphEnd"),l=t.line+1,s=r.lastLine();l<=s;++l){var i=r.getLine(l);if(f&&f.test(i)){++l;break}if(!/\S/.test(i))break}return{from:o,to:l}}function e(r,t,e,n){for(var o=t;o>0&&!e.test(r.slice(o-1,o+1));--o);0==o&&(o=t);var a=o;if(n)for(;" "==r.charAt(a-1);)--a;return{from:a,to:o}}function n(t,n,a,i){n=t.clipPos(n),a=t.clipPos(a);var f=i.column||80,l=i.wrapOn||/\s\S|-[^\.\d]/,s=i.killTrailingSpace!==!1,h=[],c="",g=n.line,p=t.getRange(n,a,!1);if(!p.length)return null;for(var u=p[0].match(/^[ \t]*/)[0],m=0;mf&&u==x&&e(c,f,l,s);S&&S.from==d&&S.to==d+b?(c=u+v,++g):h.push({text:[b?" ":""],from:o(g,d),to:o(g+1,x.length)})}for(;c.length>f;){var E=e(c,f,l,s);h.push({text:["",u],from:o(g,E.from),to:o(g,E.to)}),c=u+c.slice(E.to),++g}}return h.length&&t.operation(function(){for(var r=0;r=0;i--){var f,l=e[i];if(l.empty()){var s=t(r,l.head,{});f={from:o(s.from,0),to:o(s.to-1)}}else f={from:l.from(),to:l.to()};f.to.line>=a||(a=f.from.line,n(r,f.from,f.to,{}))}})},r.defineExtension("wrapRange",function(r,t,e){return n(this,r,t,e||{})}),r.defineExtension("wrapParagraphsInRange",function(r,e,a){a=a||{};for(var i=this,f=[],l=r.line;l<=e.line;){var s=t(i,o(l,0),a);f.push(s),l=s.to}var h=!1;return f.length&&i.operation(function(){for(var r=f.length-1;r>=0;--r)h=h||n(i,o(f[r].from,0),o(f[r].to-1),a)}),h})}); \ No newline at end of file diff --git a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addons.min.js b/eolinker_os_3.5/libs/editor.md/lib/codemirror/addons.min.js deleted file mode 100644 index 3e80988..0000000 --- a/eolinker_os_3.5/libs/editor.md/lib/codemirror/addons.min.js +++ /dev/null @@ -1,2 +0,0 @@ -!function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){e.defineOption("showTrailingSpace",!1,function(t,n,o){o==e.Init&&(o=!1),o&&!n?t.removeOverlay("trailingspace"):!o&&n&&t.addOverlay({token:function(e){for(var t=e.string.length,n=t;n&&/\s/.test(e.string.charAt(n-1));--n);return n>e.pos?(e.pos=n,null):(e.pos=t,"trailingspace")},name:"trailingspace"})})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){function t(e,t,n){var o,r=e.getWrapperElement();return o=r.appendChild(document.createElement("div")),n?o.className="CodeMirror-dialog CodeMirror-dialog-bottom":o.className="CodeMirror-dialog CodeMirror-dialog-top","string"==typeof t?o.innerHTML=t:o.appendChild(t),o}function n(e,t){e.state.currentNotificationClose&&e.state.currentNotificationClose(),e.state.currentNotificationClose=t}e.defineExtension("openDialog",function(o,r,i){function a(e){if("string"==typeof e)u.value=e;else{if(f)return;f=!0,s.parentNode.removeChild(s),c.focus(),i.onClose&&i.onClose(s)}}i||(i={}),n(this,null);var l,s=t(this,o,i.bottom),f=!1,c=this,u=s.getElementsByTagName("input")[0];return u?(i.value&&(u.value=i.value,u.select()),i.onInput&&e.on(u,"input",function(e){i.onInput(e,u.value,a)}),i.onKeyUp&&e.on(u,"keyup",function(e){i.onKeyUp(e,u.value,a)}),e.on(u,"keydown",function(t){i&&i.onKeyDown&&i.onKeyDown(t,u.value,a)||((27==t.keyCode||i.closeOnEnter!==!1&&13==t.keyCode)&&(u.blur(),e.e_stop(t),a()),13==t.keyCode&&r(u.value,t))}),i.closeOnBlur!==!1&&e.on(u,"blur",a),u.focus()):(l=s.getElementsByTagName("button")[0])&&(e.on(l,"click",function(){a(),c.focus()}),i.closeOnBlur!==!1&&e.on(l,"blur",a),l.focus()),a}),e.defineExtension("openConfirm",function(o,r,i){function a(){f||(f=!0,l.parentNode.removeChild(l),c.focus())}n(this,null);var l=t(this,o,i&&i.bottom),s=l.getElementsByTagName("button"),f=!1,c=this,u=1;s[0].focus();for(var d=0;d=u&&a()},200)}),e.on(h,"focus",function(){++u})}}),e.defineExtension("openNotification",function(o,r){function i(){s||(s=!0,clearTimeout(a),l.parentNode.removeChild(l))}n(this,i);var a,l=t(this,o,r&&r.bottom),s=!1,f=r&&"undefined"!=typeof r.duration?r.duration:5e3;return e.on(l,"click",function(t){e.e_preventDefault(t),i()}),f&&(a=setTimeout(i,f)),i})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t,r,i){if(this.atOccurrence=!1,this.doc=e,null==i&&"string"==typeof t&&(i=!1),r=r?e.clipPos(r):o(0,0),this.pos={from:r,to:r},"string"!=typeof t)t.global||(t=new RegExp(t.source,t.ignoreCase?"ig":"g")),this.matches=function(n,r){if(n){t.lastIndex=0;for(var i,a,l=e.getLine(r.line).slice(0,r.ch),s=0;;){t.lastIndex=s;var f=t.exec(l);if(!f)break;if(i=f,a=i.index,s=i.index+(i[0].length||1),s==l.length)break}var c=i&&i[0].length||0;c||(0==a&&0==l.length?i=void 0:a!=e.getLine(r.line).length&&c++)}else{t.lastIndex=r.ch;var l=e.getLine(r.line),i=t.exec(l),c=i&&i[0].length||0,a=i&&i.index;a+c==l.length||c||(c=1)}return i&&c?{from:o(r.line,a),to:o(r.line,a+c),match:i}:void 0};else{var a=t;i&&(t=t.toLowerCase());var l=i?function(e){return e.toLowerCase()}:function(e){return e},s=t.split("\n");if(1==s.length)t.length?this.matches=function(r,i){if(r){var s=e.getLine(i.line).slice(0,i.ch),f=l(s),c=f.lastIndexOf(t);if(c>-1)return c=n(s,f,c),{from:o(i.line,c),to:o(i.line,c+a.length)}}else{var s=e.getLine(i.line).slice(i.ch),f=l(s),c=f.indexOf(t);if(c>-1)return c=n(s,f,c)+i.ch,{from:o(i.line,c),to:o(i.line,c+a.length)}}}:this.matches=function(){};else{var f=a.split("\n");this.matches=function(t,n){var r=s.length-1;if(t){if(n.line-(s.length-1)=1;--c,--a)if(s[c]!=l(e.getLine(a)))return;var u=e.getLine(a),d=u.length-f[0].length;if(l(u.slice(d))!=s[0])return;return{from:o(a,d),to:i}}if(!(n.line+(s.length-1)>e.lastLine())){var u=e.getLine(n.line),d=u.length-f[0].length;if(l(u.slice(d))==s[0]){for(var h=o(n.line,d),a=n.line+1,c=1;r>c;++c,++a)if(s[c]!=l(e.getLine(a)))return;if(l(e.getLine(a).slice(0,f[r].length))==s[r])return{from:h,to:o(a,f[r].length)}}}}}}}function n(e,t,n){if(e.length==t.length)return n;for(var o=Math.min(n,e.length);;){var r=e.slice(0,o).toLowerCase().length;if(n>r)++o;else{if(!(r>n))return o;--o}}}var o=e.Pos;t.prototype={findNext:function(){return this.find(!1)},findPrevious:function(){return this.find(!0)},find:function(e){function t(e){var t=o(e,0);return n.pos={from:t,to:t},n.atOccurrence=!1,!1}for(var n=this,r=this.doc.clipPos(e?this.pos.from:this.pos.to);;){if(this.pos=this.matches(e,r))return this.atOccurrence=!0,this.pos.match||!0;if(e){if(!r.line)return t(0);r=o(r.line-1,this.doc.getLine(r.line-1).length)}else{var i=this.doc.lineCount();if(r.line==i-1)return t(i);r=o(r.line+1,0)}}},from:function(){return this.atOccurrence?this.pos.from:void 0},to:function(){return this.atOccurrence?this.pos.to:void 0},replace:function(t){if(this.atOccurrence){var n=e.splitLines(t);this.doc.replaceRange(n,this.pos.from,this.pos.to),this.pos.to=o(this.pos.from.line+n.length-1,n[n.length-1].length+(1==n.length?this.pos.from.ch:0))}}},e.defineExtension("getSearchCursor",function(e,n,o){return new t(this.doc,e,n,o)}),e.defineDocExtension("getSearchCursor",function(e,n,o){return new t(this,e,n,o)}),e.defineExtension("selectMatches",function(t,n){for(var o,r=[],i=this.getSearchCursor(t,this.getCursor("from"),n);(o=i.findNext())&&!(e.cmpPos(i.to(),this.getCursor("to"))>0);)r.push({anchor:i.from(),head:i.to()});r.length&&this.setSelections(r,0)})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("./searchcursor"),require("../dialog/dialog")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","./searchcursor","../dialog/dialog"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t){return"string"==typeof e?e=new RegExp(e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),t?"gi":"g"):e.global||(e=new RegExp(e.source,e.ignoreCase?"gi":"g")),{token:function(t){e.lastIndex=t.pos;var n=e.exec(t.string);return n&&n.index==t.pos?(t.pos+=n[0].length,"searching"):void(n?t.pos=n.index:t.skipToEnd())}}}function n(){this.posFrom=this.posTo=this.query=null,this.overlay=null}function o(e){return e.state.search||(e.state.search=new n)}function r(e){return"string"==typeof e&&e==e.toLowerCase()}function i(e,t,n){return e.getSearchCursor(t,n,r(t))}function a(e,t,n,o,r){e.openDialog?e.openDialog(t,r,{value:o}):r(prompt(n,o))}function l(e,t,n,o){e.openConfirm?e.openConfirm(t,o):confirm(n)&&o[0]()}function s(e){var t=e.match(/^\/(.*)\/([a-z]*)$/);if(t)try{e=new RegExp(t[1],-1==t[2].indexOf("i")?"":"i")}catch(n){}return("string"==typeof e?""==e:e.test(""))&&(e=/x^/),e}function f(e,n){var i=o(e);return i.query?c(e,n):void a(e,h,"Search for:",e.getSelection(),function(o){e.operation(function(){o&&!i.query&&(i.query=s(o),e.removeOverlay(i.overlay,r(i.query)),i.overlay=t(i.query,r(i.query)),e.addOverlay(i.overlay),e.showMatchesOnScrollbar&&(i.annotate&&(i.annotate.clear(),i.annotate=null),i.annotate=e.showMatchesOnScrollbar(i.query,r(i.query))),i.posFrom=i.posTo=e.getCursor(),c(e,n))})})}function c(t,n){t.operation(function(){var r=o(t),a=i(t,r.query,n?r.posFrom:r.posTo);(a.find(n)||(a=i(t,r.query,n?e.Pos(t.lastLine()):e.Pos(t.firstLine(),0)),a.find(n)))&&(t.setSelection(a.from(),a.to()),t.scrollIntoView({from:a.from(),to:a.to()}),r.posFrom=a.from(),r.posTo=a.to())})}function u(e){e.operation(function(){var t=o(e);t.query&&(t.query=null,e.removeOverlay(t.overlay),t.annotate&&(t.annotate.clear(),t.annotate=null))})}function d(e,t){e.getOption("readOnly")||a(e,p,"Replace:",e.getSelection(),function(n){n&&(n=s(n),a(e,m,"Replace with:","",function(o){if(t)e.operation(function(){for(var t=i(e,n);t.findNext();)if("string"!=typeof n){var r=e.getRange(t.from(),t.to()).match(n);t.replace(o.replace(/\$(\d)/g,function(e,t){return r[t]}))}else t.replace(o)});else{u(e);var r=i(e,n,e.getCursor()),a=function(){var t,o=r.from();!(t=r.findNext())&&(r=i(e,n),!(t=r.findNext())||o&&r.from().line==o.line&&r.from().ch==o.ch)||(e.setSelection(r.from(),r.to()),e.scrollIntoView({from:r.from(),to:r.to()}),l(e,g,"Replace?",[function(){s(t)},a]))},s=function(e){r.replace("string"==typeof n?o:o.replace(/\$(\d)/g,function(t,n){return e[n]})),a()};a()}}))})}var h='Search: (Use /re/ syntax for regexp search)',p='Replace: (Use /re/ syntax for regexp search)',m='With: ',g="Replace? ";e.commands.find=function(e){u(e),f(e)},e.commands.findNext=f,e.commands.findPrev=function(e){f(e,!0)},e.commands.clearSearch=u,e.commands.replace=d,e.commands.replaceAll=function(e){d(e,!0)}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t){function n(e){clearTimeout(o.doRedraw),o.doRedraw=setTimeout(function(){o.redraw()},e)}this.cm=e,this.options=t,this.buttonHeight=t.scrollButtonHeight||e.getOption("scrollButtonHeight"),this.annotations=[],this.doRedraw=this.doUpdate=null,this.div=e.getWrapperElement().appendChild(document.createElement("div")),this.div.style.cssText="position: absolute; right: 0; top: 0; z-index: 7; pointer-events: none",this.computeScale();var o=this;e.on("refresh",this.resizeHandler=function(){clearTimeout(o.doUpdate),o.doUpdate=setTimeout(function(){o.computeScale()&&n(20)},100)}),e.on("markerAdded",this.resizeHandler),e.on("markerCleared",this.resizeHandler),t.listenForChanges!==!1&&e.on("change",this.changeHandler=function(){n(250)})}e.defineExtension("annotateScrollbar",function(e){return"string"==typeof e&&(e={className:e}),new t(this,e)}),e.defineOption("scrollButtonHeight",0),t.prototype.computeScale=function(){var e=this.cm,t=(e.getWrapperElement().clientHeight-e.display.barHeight-2*this.buttonHeight)/e.heightAtLine(e.lastLine()+1,"local");return t!=this.hScale?(this.hScale=t,!0):void 0},t.prototype.update=function(e){this.annotations=e,this.redraw()},t.prototype.redraw=function(e){e!==!1&&this.computeScale();var t=this.cm,n=this.hScale,o=document.createDocumentFragment(),r=this.annotations;if(t.display.barWidth)for(var i,a=0;af+.9));)l=r[++a],f=t.charCoords(l.to,"local").bottom*n;if(f!=s){var c=Math.max(f-s,3),u=o.appendChild(document.createElement("div"));u.style.cssText="position: absolute; right: 0px; width: "+Math.max(t.display.barWidth-1,2)+"px; top: "+(s+this.buttonHeight)+"px; height: "+c+"px",u.className=this.options.className}}this.div.textContent="",this.div.appendChild(o)},t.prototype.clear=function(){this.cm.off("refresh",this.resizeHandler),this.cm.off("markerAdded",this.resizeHandler),this.cm.off("markerCleared",this.resizeHandler),this.changeHandler&&this.cm.off("change",this.changeHandler),this.div.parentNode.removeChild(this.div)}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror"),require("./searchcursor"),require("../scroll/annotatescrollbar")):"function"==typeof define&&define.amd?define(["../../lib/codemirror","./searchcursor","../scroll/annotatescrollbar"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t,n,o){this.cm=e;var r={listenForChanges:!1};for(var i in o)r[i]=o[i];r.className||(r.className="CodeMirror-search-match"),this.annotation=e.annotateScrollbar(r),this.query=t,this.caseFold=n,this.gap={from:e.firstLine(),to:e.lastLine()+1},this.matches=[],this.update=null,this.findMatches(),this.annotation.update(this.matches);var a=this;e.on("change",this.changeHandler=function(e,t){a.onChange(t)})}function n(e,t,n){return t>=e?e:Math.max(t,e+n)}e.defineExtension("showMatchesOnScrollbar",function(e,n,o){return"string"==typeof o&&(o={className:o}),o||(o={}),new t(this,e,n,o)});var o=1e3;t.prototype.findMatches=function(){if(this.gap){for(var t=0;t=this.gap.to)break;n.to.line>=this.gap.from&&this.matches.splice(t--,1)}for(var r=this.cm.getSearchCursor(this.query,e.Pos(this.gap.from,0),this.caseFold);r.findNext();){var n={from:r.from(),to:r.to()};if(n.from.line>=this.gap.to)break;if(this.matches.splice(t++,0,n),this.matches.length>o)break}this.gap=null}},t.prototype.onChange=function(t){var o=t.from.line,r=e.changeEnd(t).line,i=r-t.to.line;if(this.gap?(this.gap.from=Math.min(n(this.gap.from,o,i),t.from.line),this.gap.to=Math.max(n(this.gap.to,o,i),t.from.line)):this.gap={from:t.from.line,to:r+1},i)for(var a=0;af.ch&&(v=v.slice(0,v.length-c.end+f.ch));var y=v.toLowerCase();if(!v||"string"==c.type&&(c.end!=f.ch||!/[\"\']/.test(c.string.charAt(c.string.length-1))||1==c.string.length)||"tag"==c.type&&"closeTag"==d.type||c.string.indexOf("/")==c.string.length-1||m&&r(m,y)>-1||i(t,v,f,d,!0))return e.Pass;var b=g&&r(g,y)>-1;o[s]={indent:b,text:">"+(b?"\n\n":"")+"",newPos:b?e.Pos(f.line+1,0):e.Pos(f.line,f.ch+1)}}for(var s=n.length-1;s>=0;s--){var C=o[s];t.replaceRange(C.text,n[s].head,n[s].anchor,"+insert");var x=t.listSelections().slice(0);x[s]={head:C.newPos,anchor:C.newPos},t.setSelections(x),C.indent&&(t.indentLine(C.newPos.line,null,!0),t.indentLine(C.newPos.line+1,null,!0))}}function n(t,n){for(var o=t.listSelections(),r=[],a=n?"/":"";else{if("htmlmixed"!=t.getMode().name||"css"!=c.mode.name)return e.Pass;r[l]=a+"style>"}else{if(!u.context||!u.context.tagName||i(t,u.context.tagName,s,u))return e.Pass;r[l]=a+u.context.tagName+">"}}t.replaceSelections(r),o=t.listSelections();for(var l=0;ln;++n)if(e[n]==t)return n;return-1}function i(t,n,o,r,i){if(!e.scanForClosingTag)return!1;var a=Math.min(t.lastLine()+1,o.line+500),l=e.scanForClosingTag(t,o,null,a);if(!l||l.tag!=n)return!1;for(var s=r.context,f=i?1:0;s&&s.tagName==n;s=s.prev)++f;o=l.to;for(var c=1;f>c;c++){var u=e.scanForClosingTag(t,o,null,a);if(!u||u.tag!=n)return!1;o=u.to}return!0}e.defineOption("autoCloseTags",!1,function(n,r,i){if(i!=e.Init&&i&&n.removeKeyMap("autoCloseTags"),r){var a={name:"autoCloseTags"};("object"!=typeof r||r.whenClosing)&&(a["'/'"]=function(e){return o(e)}),("object"!=typeof r||r.whenOpening)&&(a["'>'"]=function(e){return t(e)}),n.addKeyMap(a)}});var a=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],l=["applet","blockquote","body","button","div","dl","fieldset","form","frameset","h1","h2","h3","h4","h5","h6","head","html","iframe","layer","legend","object","ol","p","select","table","ul"];e.commands.closeTag=function(e){return n(e)}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(t,r,i,a){function l(e){var n=s(t,r);if(!n||n.to.line-n.from.linet.firstLine();)r=e.Pos(r.line-1,0),c=l(!1);if(c&&!c.cleared&&"unfold"!==a){var u=n(t,i);e.on(u,"mousedown",function(t){d.clear(),e.e_preventDefault(t)});var d=t.markText(c.from,c.to,{replacedWith:u,clearOnEnter:!0,__isFold:!0});d.on("clear",function(n,o){e.signal(t,"unfold",t,n,o)}),e.signal(t,"fold",t,c.from,c.to)}}function n(e,t){var n=o(e,t,"widget");if("string"==typeof n){var r=document.createTextNode(n);n=document.createElement("span"),n.appendChild(r),n.className="CodeMirror-foldmarker"}return n}function o(e,t,n){if(t&&void 0!==t[n])return t[n];var o=e.options.foldOptions;return o&&void 0!==o[n]?o[n]:r[n]}e.newFoldFunction=function(e,n){return function(o,r){t(o,r,{rangeFinder:e,widget:n})}},e.defineExtension("foldCode",function(e,n,o){t(this,e,n,o)}),e.defineExtension("isFolded",function(e){for(var t=this.findMarksAt(e),n=0;n=n;n++)t.foldCode(e.Pos(n,0),null,"fold")})},e.commands.unfoldAll=function(t){t.operation(function(){for(var n=t.firstLine(),o=t.lastLine();o>=n;n++)t.foldCode(e.Pos(n,0),null,"unfold")})},e.registerHelper("fold","combine",function(){var e=Array.prototype.slice.call(arguments,0);return function(t,n){for(var o=0;o=l&&(n=r(i.indicatorOpen))}e.setGutterMarker(t,i.gutter,n),++a})}function a(e){var t=e.getViewport(),n=e.state.foldGutter;n&&(e.operation(function(){i(e,t.from,t.to)}),n.from=t.from,n.to=t.to)}function l(e,t,n){var o=e.state.foldGutter;if(o){var r=o.options;n==r.gutter&&e.foldCode(u(t,0),r.rangeFinder)}}function s(e){var t=e.state.foldGutter;if(t){var n=t.options;t.from=t.to=0,clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout(function(){a(e)},n.foldOnChangeTimeSpan||600)}}function f(e){var t=e.state.foldGutter;if(t){var n=t.options;clearTimeout(t.changeUpdate),t.changeUpdate=setTimeout(function(){var n=e.getViewport();t.from==t.to||n.from-t.to>20||t.from-n.to>20?a(e):e.operation(function(){n.fromt.to&&(i(e,t.to,n.to),t.to=n.to)})},n.updateViewportTimeSpan||400)}}function c(e,t){var n=e.state.foldGutter;if(n){var o=t.line;o>=n.from&&o=s;++s){var c=t.getLine(s),u=i(c);if(u>a)l=s;else if(/\S/.test(c))break}return l?{from:e.Pos(n.line,r.length),to:e.Pos(l,t.getLine(l).length)}:void 0}})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.registerHelper("fold","brace",function(t,n){function o(o){for(var r=n.ch,s=0;;){var f=0>=r?-1:l.lastIndexOf(o,r-1);if(-1!=f){if(1==s&&f=p;++p)for(var m=t.getLine(p),g=p==a?r:0;;){var v=m.indexOf(s,g),y=m.indexOf(f,g);if(0>v&&(v=m.length),0>y&&(y=m.length),g=Math.min(v,y),g==m.length)break;if(t.getTokenTypeAt(e.Pos(p,g+1))==i)if(g==v)++d;else if(!--d){c=p,u=g;break e}++g}if(null!=c&&(a!=c||u!=r))return{from:e.Pos(a,r),to:e.Pos(c,u)}}}),e.registerHelper("fold","import",function(t,n){function o(n){if(nt.lastLine())return null;var o=t.getTokenAt(e.Pos(n,1));if(/\S/.test(o.string)||(o=t.getTokenAt(e.Pos(n,o.end+1))),"keyword"!=o.type||"import"!=o.string)return null;for(var r=n,i=Math.min(t.lastLine(),n+10);i>=r;++r){var a=t.getLine(r),l=a.indexOf(";");if(-1!=l)return{startCh:o.end,end:e.Pos(r,l)}}}var r,n=n.line,i=o(n);if(!i||o(n-1)||(r=o(n-2))&&r.end.line==n-1)return null;for(var a=i.end;;){var l=o(a.line+1);if(null==l)break;a=l.end}return{from:t.clipPos(e.Pos(n,i.startCh+1)),to:a}}),e.registerHelper("fold","include",function(t,n){function o(n){if(nt.lastLine())return null;var o=t.getTokenAt(e.Pos(n,1));return/\S/.test(o.string)||(o=t.getTokenAt(e.Pos(n,o.end+1))),"meta"==o.type&&"#include"==o.string.slice(0,8)?o.start+8:void 0}var n=n.line,r=o(n);if(null==r||null!=o(n-1))return null;for(var i=n;;){var a=o(i+1);if(null==a)break;++i}return{from:e.Pos(n,r+1),to:t.clipPos(e.Pos(i))}})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";function t(e,t){return e.line-t.line||e.ch-t.ch}function n(e,t,n,o){this.line=t,this.ch=n,this.cm=e,this.text=e.getLine(t),this.min=o?o.from:e.firstLine(),this.max=o?o.to-1:e.lastLine()}function o(e,t){var n=e.cm.getTokenTypeAt(d(e.line,t));return n&&/\btag\b/.test(n)}function r(e){return e.line>=e.max?void 0:(e.ch=0,e.text=e.cm.getLine(++e.line),!0)}function i(e){return e.line<=e.min?void 0:(e.text=e.cm.getLine(--e.line),e.ch=e.text.length,!0)}function a(e){for(;;){var t=e.text.indexOf(">",e.ch);if(-1==t){if(r(e))continue;return}if(o(e,t+1)){var n=e.text.lastIndexOf("/",t),i=n>-1&&!/\S/.test(e.text.slice(n+1,t));return e.ch=t+1,i?"selfClose":"regular"}e.ch=t+1}}function l(e){for(;;){var t=e.ch?e.text.lastIndexOf("<",e.ch-1):-1;if(-1==t){if(i(e))continue;return}if(o(e,t+1)){m.lastIndex=t,e.ch=t;var n=m.exec(e.text);if(n&&n.index==t)return n}else e.ch=t}}function s(e){for(;;){m.lastIndex=e.ch;var t=m.exec(e.text);if(!t){if(r(e))continue;return}if(o(e,t.index+1))return e.ch=t.index+t[0].length,t;e.ch=t.index+1}}function f(e){for(;;){var t=e.ch?e.text.lastIndexOf(">",e.ch-1):-1;if(-1==t){if(i(e))continue;return}if(o(e,t+1)){var n=e.text.lastIndexOf("/",t),r=n>-1&&!/\S/.test(e.text.slice(n+1,t));return e.ch=t+1,r?"selfClose":"regular"}e.ch=t}}function c(e,t){for(var n=[];;){var o,r=s(e),i=e.line,l=e.ch-(r?r[0].length:0);if(!r||!(o=a(e)))return;if("selfClose"!=o)if(r[1]){for(var f=n.length-1;f>=0;--f)if(n[f]==r[2]){n.length=f;break}if(0>f&&(!t||t==r[2]))return{tag:r[2],from:d(i,l),to:d(e.line,e.ch)}}else n.push(r[2])}}function u(e,t){for(var n=[];;){var o=f(e);if(!o)return;if("selfClose"!=o){var r=e.line,i=e.ch,a=l(e);if(!a)return;if(a[1])n.push(a[2]);else{for(var s=n.length-1;s>=0;--s)if(n[s]==a[2]){n.length=s;break}if(0>s&&(!t||t==a[2]))return{tag:a[2],from:d(e.line,e.ch),to:d(r,i)}}}else l(e)}}var d=e.Pos,h="A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",p=h+"-:.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040",m=new RegExp("<(/?)(["+h+"]["+p+"]*)","g");e.registerHelper("fold","xml",function(e,t){for(var o=new n(e,t.line,0);;){var r,i=s(o);if(!i||o.line!=t.line||!(r=a(o)))return;if(!i[1]&&"selfClose"!=r){var t=d(o.line,o.ch),l=c(o,i[2]);return l&&{from:t,to:l.from}}}}),e.findMatchingTag=function(e,o,r){var i=new n(e,o.line,o.ch,r);if(-1!=i.text.indexOf(">")||-1!=i.text.indexOf("<")){var s=a(i),f=s&&d(i.line,i.ch),h=s&&l(i);if(s&&h&&!(t(i,o)>0)){var p={from:d(i.line,i.ch),to:f,tag:h[2]};return"selfClose"==s?{open:p,close:null,at:"open"}:h[1]?{open:u(i,h[2]),close:p,at:"close"}:(i=new n(e,f.line,f.ch,r),{open:p,close:c(i,h[2]),at:"open"})}}},e.findEnclosingTag=function(e,t,o){for(var r=new n(e,t.line,t.ch,o);;){var i=u(r);if(!i)break;var a=new n(e,t.line,t.ch,o),l=c(a,i.tag);if(l)return{open:i,close:l}}},e.scanForClosingTag=function(e,t,o,r){var i=new n(e,t.line,t.ch,r?{from:0,to:r}:null);return c(i,o)}}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.registerHelper("fold","markdown",function(t,n){function o(n){var o=t.getTokenTypeAt(e.Pos(n,0));return o&&/\bheader\b/.test(o)}function r(e,t,n){var r=t&&t.match(/^#+/);return r&&o(e)?r[0].length:(r=n&&n.match(/^[=\-]+\s*$/),r&&o(e+1)?"="==n[0]?1:2:i)}var i=100,a=t.getLine(n.line),l=t.getLine(n.line+1),s=r(n.line,a,l);if(s!==i){for(var f=t.lastLine(),c=n.line,u=t.getLine(c+2);f>c&&!(r(c+1,l,u)<=s);)++c,l=u,u=t.getLine(c+2);return{from:e.Pos(n.line,a.length),to:e.Pos(c,t.getLine(c).length)}}})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.registerGlobalHelper("fold","comment",function(e){return e.blockCommentStart&&e.blockCommentEnd},function(t,n){var o=t.getModeAt(n),r=o.blockCommentStart,i=o.blockCommentEnd;if(r&&i){for(var a,l=n.line,s=t.getLine(l),f=n.ch,c=0;;){var u=0>=f?-1:s.lastIndexOf(r,f-1);if(-1!=u){if(1==c&&u=g;++g)for(var v=t.getLine(g),y=g==l?a:0;;){var b=v.indexOf(r,y),C=v.indexOf(i,y);if(0>b&&(b=v.length),0>C&&(C=v.length),y=Math.min(b,C),y==v.length)break;if(y==b)++p;else if(!--p){d=g,h=y;break e}++y}if(null!=d&&(l!=d||h!=a))return{from:e.Pos(l,a),to:e.Pos(d,h)}}})}),function(e){"object"==typeof exports&&"object"==typeof module?e(require("../../lib/codemirror")):"function"==typeof define&&define.amd?define(["../../lib/codemirror"],e):e(CodeMirror)}(function(e){"use strict";e.overlayMode=function(t,n,o){return{startState:function(){return{base:e.startState(t),overlay:e.startState(n),basePos:0,baseCur:null,overlayPos:0,overlayCur:null,streamSeen:null}},copyState:function(o){return{base:e.copyState(t,o.base),overlay:e.copyState(n,o.overlay),basePos:o.basePos,baseCur:null,overlayPos:o.overlayPos,overlayCur:null}},token:function(e,r){return(e!=r.streamSeen||Math.min(r.basePos,r.overlayPos)=n.ch+1)return/\bstring2?\b/.test(l);a.start=a.pos}}function o(o,r){for(var i={name:"autoCloseBrackets",Backspace:function(n){if(n.getOption("disableInput"))return e.Pass;for(var r=n.listSelections(),i=0;i=0;i--){var l=r[i].head;n.replaceRange("",f(l.line,l.ch-1),f(l.line,l.ch+1))}}},a="",l=0;l1&&r.indexOf(t)>=0&&i.getRange(f(m.line,m.ch-2),m)==t+t&&(m.ch<=2||i.getRange(f(m.line,m.ch-3),f(m.line,m.ch-2))!=t))h="addFour";else if('"'==t||"'"==t){if(e.isWordChar(c)||!n(i,m,t))return e.Pass;h="both"}else{if(!(i.getLine(m.line).length==m.ch||a.indexOf(c)>=0||s.test(c)))return e.Pass;h="both"}else h="surround";if(l){if(l!=h)return e.Pass}else l=h}i.operation(function(){if("skip"==l)i.execCommand("goCharRight");else if("skipThree"==l)for(var e=0;3>e;e++)i.execCommand("goCharRight");else if("surround"==l){for(var n=i.getSelections(),e=0;el&&e.addOverlay(t.overlay=a(i.slice(l,s),n,t.style)))}var f=e.getCursor("from"),c=e.getCursor("to");if(f.line==c.line&&(!t.wordsOnly||r(e,f,c))){var u=e.getRange(f,c).replace(/^\s+|\s+$/g,"");u.length>=t.minChars&&e.addOverlay(t.overlay=a(u,!1,t.style))}})}function r(e,t,n){var o=e.getRange(t,n);if(null!==o.match(/^\w+$/)){if(t.ch>0){var r={line:t.line,ch:t.ch-1},i=e.getRange(r,t);if(null===i.match(/\W/))return!1}if(n.cht.maxLineLength&&(t.maxLineLength=r,t.maxLine=e)})}function d(e){var t=Ti(e.gutters,"CodeMirror-linenumbers");t==-1&&e.lineNumbers?e.gutters=e.gutters.concat(["CodeMirror-linenumbers"]):t>-1&&!e.lineNumbers&&(e.gutters=e.gutters.slice(0),e.gutters.splice(t,1))}function p(e){var t=e.display,r=t.gutters.offsetWidth,n=Math.round(e.doc.height+Ge(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?r:0,docHeight:n,scrollHeight:n+Ve(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:r}}function g(e,t,r){this.cm=r;var n=this.vert=Pi("div",[Pi("div",null,null,"min-width: 1px")],"CodeMirror-vscrollbar"),i=this.horiz=Pi("div",[Pi("div",null,null,"height: 100%; min-height: 1px")],"CodeMirror-hscrollbar");e(n),e(i),wl(n,"scroll",function(){n.clientHeight&&t(n.scrollTop,"vertical")}),wl(i,"scroll",function(){i.clientWidth&&t(i.scrollLeft,"horizontal")}),this.checkedOverlay=!1,uo&&co<8&&(this.horiz.style.minHeight=this.vert.style.minWidth="18px")}function v(){}function m(t){t.display.scrollbars&&(t.display.scrollbars.clear(),t.display.scrollbars.addClass&&Rl(t.display.wrapper,t.display.scrollbars.addClass)),t.display.scrollbars=new e.scrollbarModel[t.options.scrollbarStyle](function(e){t.display.wrapper.insertBefore(e,t.display.scrollbarFiller),wl(e,"mousedown",function(){t.state.focused&&setTimeout(function(){t.display.input.focus()},0)}),e.setAttribute("cm-not-content","true")},function(e,r){"horizontal"==r?Qt(t,e):Zt(t,e)},t),t.display.scrollbars.addClass&&Bl(t.display.wrapper,t.display.scrollbars.addClass)}function y(e,t){t||(t=p(e));var r=e.display.barWidth,n=e.display.barHeight;b(e,t);for(var i=0;i<4&&r!=e.display.barWidth||n!=e.display.barHeight;i++)r!=e.display.barWidth&&e.options.lineWrapping&&O(e),b(e,p(e)),r=e.display.barWidth,n=e.display.barHeight}function b(e,t){var r=e.display,n=r.scrollbars.update(t);r.sizer.style.paddingRight=(r.barWidth=n.right)+"px",r.sizer.style.paddingBottom=(r.barHeight=n.bottom)+"px",n.right&&n.bottom?(r.scrollbarFiller.style.display="block",r.scrollbarFiller.style.height=n.bottom+"px",r.scrollbarFiller.style.width=n.right+"px"):r.scrollbarFiller.style.display="",n.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(r.gutterFiller.style.display="block",r.gutterFiller.style.height=n.bottom+"px",r.gutterFiller.style.width=t.gutterWidth+"px"):r.gutterFiller.style.display=""}function w(e,t,r){var n=r&&null!=r.top?Math.max(0,r.top):e.scroller.scrollTop;n=Math.floor(n-Be(e));var i=r&&null!=r.bottom?r.bottom:n+e.wrapper.clientHeight,o=$n(t,n),l=$n(t,i);if(r&&r.ensure){var s=r.ensure.from.line,a=r.ensure.to.line;s=l&&(o=$n(t,qn(Kn(t,a))-e.wrapper.clientHeight),l=a)}return{from:o,to:Math.max(l,o+1)}}function x(e){var t=e.display,r=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var n=L(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=n+"px",l=0;l=r.viewFrom&&t.visible.to<=r.viewTo&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo)&&r.renderedView==r.view&&0==Ft(e))return!1;C(e)&&(It(e),t.dims=H(e));var i=n.first+n.size,o=Math.max(t.visible.from-e.options.viewportMargin,n.first),l=Math.min(i,t.visible.to+e.options.viewportMargin);r.viewFroml&&r.viewTo-l<20&&(l=Math.min(i,r.viewTo)),Mo&&(o=dn(e.doc,o),l=pn(e.doc,l));var s=o!=r.viewFrom||l!=r.viewTo||r.lastWrapHeight!=t.wrapperHeight||r.lastWrapWidth!=t.wrapperWidth;Et(e,o,l),r.viewOffset=qn(Kn(e.doc,r.viewFrom)),e.display.mover.style.top=r.viewOffset+"px";var a=Ft(e);if(!s&&0==a&&!t.force&&r.renderedView==r.view&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo))return!1;var u=Fi();return a>4&&(r.lineDiv.style.display="none"),I(e,r.updateLineNumbers,t.dims),a>4&&(r.lineDiv.style.display=""),r.renderedView=r.view,u&&Fi()!=u&&u.offsetHeight&&u.focus(),zi(r.cursorDiv),zi(r.selectionDiv),r.gutters.style.height=0,s&&(r.lastWrapHeight=t.wrapperHeight,r.lastWrapWidth=t.wrapperWidth,ze(e,400)),r.updateLineNumbers=null,!0}function N(e,t){for(var r=t.force,n=t.viewport,i=!0;;i=!1){if(i&&e.options.lineWrapping&&t.oldDisplayWidth!=Ke(e))r=!0;else if(r=!1,n&&null!=n.top&&(n={top:Math.min(e.doc.height+Ge(e.display)-je(e),n.top)}),t.visible=w(e.display,e.doc,n),t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)break;if(!M(e,t))break;O(e);var o=p(e);Oe(e),W(e,o),y(e,o)}t.signal(e,"update",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,"viewportChange",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function A(e,t){var r=new k(e,t);if(M(e,r)){O(e),N(e,r);var n=p(e);Oe(e),W(e,n),y(e,n),r.finish()}}function W(e,t){e.display.sizer.style.minHeight=t.docHeight+"px";var r=t.docHeight+e.display.barHeight;e.display.heightForcer.style.top=r+"px",e.display.gutters.style.height=Math.max(r+Ve(e),t.clientHeight)+"px"}function O(e){for(var t=e.display,r=t.lineDiv.offsetTop,n=0;n.001||a<-.001)&&(_n(o.line,i),D(o.line),o.rest))for(var u=0;u-1&&(h=!1),P(e,f,u,r)),h&&(zi(f.lineNumber),f.lineNumber.appendChild(document.createTextNode(S(e.options,u)))),s=f.node.nextSibling}else{var d=V(e,f,u,r);l.insertBefore(d,s)}u+=f.size}for(;s;)s=n(s)}function P(e,t,r,n){for(var i=0;i1&&(Wo&&Wo.join("\n")==t?l=n.ranges.length%Wo.length==0&&Mi(Wo,Vl):o.length==n.ranges.length&&(l=Mi(o,function(e){return[e]})));for(var s=n.ranges.length-1;s>=0;s--){var a=n.ranges[s],u=a.from(),c=a.to();a.empty()&&(r&&r>0?u=No(u.line,u.ch-r):e.state.overwrite&&!e.state.pasteIncoming&&(c=No(c.line,Math.min(Kn(i,c.line).text.length,c.ch+ki(o).length))));var f=e.curOp.updateInput,h={from:u,to:c,text:l?l[s%l.length]:o,origin:e.state.pasteIncoming?"paste":e.state.cutIncoming?"cut":"+input"};if(yr(e.doc,h),vi(e,"inputRead",e,h),t&&!e.state.pasteIncoming&&e.options.electricChars&&e.options.smartIndent&&a.head.ch<100&&(!s||n.ranges[s-1].head.line!=a.head.line)){var d=e.getModeAt(a.head),p=Vo(h);if(d.electricChars){for(var g=0;g-1){Dr(e,p.line,"smart");break}}else d.electricInput&&d.electricInput.test(Kn(i,p.line).text.slice(0,p.ch))&&Dr(e,p.line,"smart")}}Wr(e),e.curOp.updateInput=f,e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=!1}function J(e){for(var t=[],r=[],n=0;n=0){var l=$(o.from(),i.from()),s=Y(o.to(),i.to()),a=o.empty()?i.from()==i.head:o.from()==o.head;n<=t&&--t,e.splice(--n,2,new ce(a?s:l,a?l:s))}}return new ue(e,t)}function he(e,t){return new ue([new ce(e,t||e)],0)}function de(e,t){return Math.max(e.first,Math.min(t,e.first+e.size-1))}function pe(e,t){if(t.liner?No(r,Kn(e,r).text.length):ge(t,Kn(e,t.line).text.length)}function ge(e,t){var r=e.ch;return null==r||r>t?No(e.line,t):r<0?No(e.line,0):e}function ve(e,t){return t>=e.first&&t=o.ch:u.to>o.ch))){if(n&&(Cl(c,"beforeCursorEnter"),c.explicitlyCleared)){if(s.markedSpans){--a;continue}break}if(!c.atomic)continue;var f=c.find(l<0?-1:1);if(0==Ao(f,o)&&(f.ch+=l,f.ch<0?f=f.line>e.first?pe(e,No(f.line-1)):null:f.ch>s.text.length&&(f=f.line3&&(n(d,g.top,null,g.bottom),d=u,g.bottoma.bottom||f.bottom==a.bottom&&f.right>a.right)&&(a=f),d0?t.blinker=setInterval(function(){t.cursorDiv.style.visibility=(r=!r)?"":"hidden"},e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility="hidden")}}function ze(e,t){e.doc.mode.startState&&e.doc.frontier=e.display.viewTo)){var r=+new Date+e.options.workTime,n=Qo(t.mode,Re(e,t.frontier)),i=[];t.iter(t.frontier,Math.min(t.first+t.size,e.display.viewTo+500),function(o){if(t.frontier>=e.display.viewFrom){var l=o.styles,s=Mn(e,o,n,!0);o.styles=s.styles;var a=o.styleClasses,u=s.classes;u?o.styleClasses=u:a&&(o.styleClasses=null);for(var c=!l||l.length!=o.styles.length||a!=u&&(!a||!u||a.bgClass!=u.bgClass||a.textClass!=u.textClass),f=0;!c&&fr)return ze(e,e.options.workDelay),!0}),i.length&&Tt(e,function(){for(var t=0;tl;--s){if(s<=o.first)return o.first;var a=Kn(o,s-1);if(a.stateAfter&&(!r||s<=o.frontier))return s;var u=Al(a.text,null,e.options.tabSize);(null==i||n>u)&&(i=s-1,n=u)}return i}function Re(e,t,r){var n=e.doc,i=e.display;if(!n.mode.startState)return!0;var o=Fe(e,t,r),l=o>n.first&&Kn(n,o-1).stateAfter;return l=l?Qo(n.mode,l):Jo(n.mode),n.iter(o,t,function(r){An(e,r.text,l);var s=o==t-1||o%5==0||o>=i.viewFrom&&o2&&o.push((a.bottom+u.top)/2-r.top)}}o.push(r.bottom-r.top)}}function _e(e,t,r){if(e.line==t)return{map:e.measure.map,cache:e.measure.cache};for(var n=0;nr)return{map:e.measure.maps[n],cache:e.measure.caches[n],before:!0}}function Ye(e,t){t=fn(t);var r=Yn(t),n=e.display.externalMeasured=new Wt(e.doc,t,r);n.lineN=r;var i=n.built=On(e,n);return n.text=i.pre,Ei(e.display.lineMeasure,i.pre),n}function $e(e,t,r,n){return Qe(e,Ze(e,t),r,n)}function qe(e,t){if(t>=e.display.viewFrom&&t=r.lineN&&tt)&&(o=u-a,i=o-1,t>=u&&(l="right")),null!=i){if(n=e[s+2],a==u&&r==(n.insertLeft?"left":"right")&&(l=r),"left"==r&&0==i)for(;s&&e[s-2]==e[s-3]&&e[s-1].insertLeft;)n=e[(s-=3)+2],l="left";if("right"==r&&i==u-a)for(;s0&&(u=n="right");var f;i=e.options.lineWrapping&&(f=l.getClientRects()).length>1?f["right"==n?f.length-1:0]:l.getBoundingClientRect()}if(uo&&co<9&&!s&&(!i||!i.left&&!i.right)){var h=l.parentNode.getClientRects()[0];i=h?{left:h.left,right:h.left+vt(e.display),top:h.top,bottom:h.bottom}:Io}for(var d=i.top-t.rect.top,p=i.bottom-t.rect.top,g=(d+p)/2,v=t.view.measure.heights,c=0;cr.from?l(e-1):l(e,n)}n=n||Kn(e.doc,t.line),i||(i=Ze(e,n));var a=Zn(n),u=t.ch;if(!a)return l(u);var c=ro(a,u),f=s(u,c);return null!=Yl&&(f.other=s(u,Yl)),f}function ft(e,t){var r=0,t=pe(e.doc,t);e.options.lineWrapping||(r=vt(e.display)*t.ch);var n=Kn(e.doc,t.line),i=qn(n)+Be(e.display);return{left:r,right:r,top:i,bottom:i+n.height}}function ht(e,t,r,n){var i=No(e,t);return i.xRel=n,r&&(i.outside=!0),i}function dt(e,t,r){var n=e.doc;if(r+=e.display.viewOffset,r<0)return ht(n.first,0,!0,-1);var i=$n(n,r),o=n.first+n.size-1;if(i>o)return ht(n.first+n.size-1,Kn(n,o).text.length,!0,1);t<0&&(t=0);for(var l=Kn(n,i);;){var s=pt(e,l,i,t,r),a=un(l),u=a&&a.find(0,!0);if(!a||!(s.ch>u.from.ch||s.ch==u.from.ch&&s.xRel>0))return s;i=Yn(l=u.to.line)}}function pt(e,t,r,n,i){function o(n){var i=ct(e,No(r,n),"line",t,u);return s=!0,l>i.bottom?i.left-a:lv)return ht(r,d,m,1);for(;;){if(c?d==h||d==io(t,h,1):d-h<=1){for(var y=n1?1:0);return w}var x=Math.ceil(f/2),C=h+x;if(c){C=h;for(var S=0;Sn?(d=C,v=L,(m=s)&&(v+=1e3),f=x):(h=C,p=L,g=s,f-=x)}}function gt(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==Oo){Oo=Pi("pre");for(var t=0;t<49;++t)Oo.appendChild(document.createTextNode("x")),Oo.appendChild(Pi("br"));Oo.appendChild(document.createTextNode("x"))}Ei(e.measure,Oo);var r=Oo.offsetHeight/50;return r>3&&(e.cachedTextHeight=r),zi(e.measure),r||1}function vt(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=Pi("span","xxxxxxxxxx"),r=Pi("pre",[t]);Ei(e.measure,r);var n=t.getBoundingClientRect(),i=(n.right-n.left)/10;return i>2&&(e.cachedCharWidth=i),i||10}function mt(e){e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,id:++zo},Po?Po.ops.push(e.curOp):e.curOp.ownsGroup=Po={ops:[e.curOp],delayedCallbacks:[]}}function yt(e){var t=e.delayedCallbacks,r=0;do{for(;r=r.viewTo)||r.maxLineChanged&&t.options.lineWrapping,e.update=e.mustUpdate&&new k(t,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function Ct(e){e.updatedDisplay=e.mustUpdate&&M(e.cm,e.update)}function St(e){var t=e.cm,r=t.display;e.updatedDisplay&&O(t),e.barMeasure=p(t),r.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=$e(t,r.maxLine,r.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(r.scroller.clientWidth,r.sizer.offsetLeft+e.adjustWidthTo+Ve(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,r.sizer.offsetLeft+e.adjustWidthTo-Ke(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=r.input.prepareSelection())}function Lt(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+"px",e.maxScrollLeftt)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)Mo&&dn(e.doc,t)i.viewFrom?It(e):(i.viewFrom+=n,i.viewTo+=n);else if(t<=i.viewFrom&&r>=i.viewTo)It(e);else if(t<=i.viewFrom){var o=zt(e,r,r+n,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=n):It(e)}else if(r>=i.viewTo){var o=zt(e,t,t,-1);o?(i.view=i.view.slice(0,o.index),i.viewTo=o.lineN):It(e)}else{var l=zt(e,t,t,-1),s=zt(e,r,r+n,1);l&&s?(i.view=i.view.slice(0,l.index).concat(Ot(e,l.lineN,s.lineN)).concat(i.view.slice(s.index)),i.viewTo+=n):It(e)}var a=i.externalMeasured;a&&(r=i.lineN&&t=n.viewTo)){var o=n.view[Pt(e,t)];if(null!=o.node){var l=o.changes||(o.changes=[]);Ti(l,r)==-1&&l.push(r)}}}function It(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function Pt(e,t){if(t>=e.display.viewTo)return null;if(t-=e.display.viewFrom,t<0)return null;for(var r=e.display.view,n=0;n0){if(o==l.length-1)return null;i=a+l[o].size-t,o++}else i=a-t;t+=i,r+=i}for(;dn(e.doc,r)!=r;){if(o==(n<0?0:l.length-1))return null;r+=n*l[o-(n<0?1:0)].size,o+=n}return{index:o,lineN:r}}function Et(e,t,r){var n=e.display,i=n.view;0==i.length||t>=n.viewTo||r<=n.viewFrom?(n.view=Ot(e,t,r),n.viewFrom=t):(n.viewFrom>t?n.view=Ot(e,t,n.viewFrom).concat(n.view):n.viewFromr&&(n.view=n.view.slice(0,Pt(e,r)))),n.viewTo=r}function Ft(e){for(var t=e.display.view,r=0,n=0;n400}function i(t){yi(e,t)||bl(t)}var o=e.display;wl(o.scroller,"mousedown",Mt(e,Vt)),uo&&co<11?wl(o.scroller,"dblclick",Mt(e,function(t){if(!yi(e,t)){var r=Ut(e,t);if(r&&!Yt(e,t)&&!Gt(e.display,t)){ml(t);var n=e.findWordAt(r);be(e.doc,n.anchor,n.head)}}})):wl(o.scroller,"dblclick",function(t){yi(e,t)||ml(t)}),ko||wl(o.scroller,"contextmenu",function(t){fr(e,t)});var l,s={end:0};wl(o.scroller,"touchstart",function(e){if(!r(e)){clearTimeout(l);var t=+new Date;o.activeTouch={start:t,moved:!1,prev:t-s.end<=300?s:null},1==e.touches.length&&(o.activeTouch.left=e.touches[0].pageX,o.activeTouch.top=e.touches[0].pageY)}}),wl(o.scroller,"touchmove",function(){o.activeTouch&&(o.activeTouch.moved=!0)}),wl(o.scroller,"touchend",function(r){var i=o.activeTouch;if(i&&!Gt(o,r)&&null!=i.left&&!i.moved&&new Date-i.start<300){var l,s=e.coordsChar(o.activeTouch,"page");l=!i.prev||n(i,i.prev)?new ce(s,s):!i.prev.prev||n(i,i.prev.prev)?e.findWordAt(s):new ce(No(s.line,0),pe(e.doc,No(s.line+1,0))),e.setSelection(l.anchor,l.head),e.focus(),ml(r)}t()}),wl(o.scroller,"touchcancel",t),wl(o.scroller,"scroll",function(){o.scroller.clientHeight&&(Zt(e,o.scroller.scrollTop),Qt(e,o.scroller.scrollLeft,!0),Cl(e,"scroll",e))}),wl(o.scroller,"mousewheel",function(t){Jt(e,t)}),wl(o.scroller,"DOMMouseScroll",function(t){Jt(e,t)}),wl(o.wrapper,"scroll",function(){o.wrapper.scrollTop=o.wrapper.scrollLeft=0}),e.options.dragDrop&&(wl(o.scroller,"dragstart",function(t){qt(e,t)}),wl(o.scroller,"dragenter",i),wl(o.scroller,"dragover",i),wl(o.scroller,"drop",Mt(e,$t)));var a=o.input.getField();wl(a,"keyup",function(t){sr.call(e,t)}),wl(a,"keydown",Mt(e,or)),wl(a,"keypress",Mt(e,ar)),wl(a,"focus",Oi(ur,e)),wl(a,"blur",Oi(cr,e))}function Bt(e){var t=e.display;t.lastWrapHeight==t.wrapper.clientHeight&&t.lastWrapWidth==t.wrapper.clientWidth||(t.cachedCharWidth=t.cachedTextHeight=t.cachedPaddingH=null,t.scrollbarsClipped=!1,e.setSize())}function Gt(e,t){for(var r=pi(t);r!=e.wrapper;r=r.parentNode)if(!r||1==r.nodeType&&"true"==r.getAttribute("cm-ignore-events")||r.parentNode==e.sizer&&r!=e.mover)return!0}function Ut(e,t,r,n){var i=e.display;if(!r&&"true"==pi(t).getAttribute("cm-not-content"))return null;var o,l,s=i.lineSpace.getBoundingClientRect();try{o=t.clientX-s.left,l=t.clientY-s.top}catch(t){return null}var a,u=dt(e,o,l);if(n&&1==u.xRel&&(a=Kn(e.doc,u.line).text).length==u.ch){var c=Al(a,a.length,e.options.tabSize)-a.length;u=No(u.line,Math.max(0,Math.round((o-Ue(e.display).left)/vt(e.display))-c))}return u}function Vt(e){var t=this,r=t.display;if(!(r.activeTouch&&r.input.supportsTouch()||yi(t,e))){if(r.shift=e.shiftKey,Gt(r,e))return void(fo||(r.scroller.draggable=!1,setTimeout(function(){r.scroller.draggable=!0},100)));if(!Yt(t,e)){var n=Ut(t,e);switch(window.focus(),gi(e)){case 1:n?Kt(t,e,n):pi(e)==r.scroller&&ml(e);break;case 2:fo&&(t.state.lastMiddleDown=+new Date),n&&be(t.doc,n),setTimeout(function(){r.input.focus()},20),ml(e);break;case 3:ko&&fr(t,e)}}}}function Kt(e,t,r){uo?setTimeout(Oi(q,e),0):q(e);var n,i=+new Date;Ho&&Ho.time>i-400&&0==Ao(Ho.pos,r)?n="triple":Do&&Do.time>i-400&&0==Ao(Do.pos,r)?(n="double",Ho={time:i,pos:r}):(n="single",Do={time:i,pos:r});var o,l=e.doc.sel,s=xo?t.metaKey:t.ctrlKey;e.options.dragDrop&&Ul&&!Z(e)&&"single"==n&&(o=l.contains(r))>-1&&!l.ranges[o].empty()?jt(e,t,r,s):Xt(e,t,r,n,s)}function jt(e,t,r,n){var i=e.display,o=Mt(e,function(l){fo&&(i.scroller.draggable=!1),e.state.draggingText=!1,xl(document,"mouseup",o),xl(i.scroller,"drop",o),Math.abs(t.clientX-l.clientX)+Math.abs(t.clientY-l.clientY)<10&&(ml(l),n||be(e.doc,r),i.input.focus(),uo&&9==co&&setTimeout(function(){document.body.focus(),i.input.focus()},20))});fo&&(i.scroller.draggable=!0),e.state.draggingText=o,i.scroller.dragDrop&&i.scroller.dragDrop(),wl(document,"mouseup",o),wl(i.scroller,"drop",o)}function Xt(e,t,r,n,i){function o(t){if(0!=Ao(v,t))if(v=t,"rect"==n){for(var i=[],o=e.options.tabSize,l=Al(Kn(u,r.line).text,r.ch,o),s=Al(Kn(u,t.line).text,t.ch,o),a=Math.min(l,s),d=Math.max(l,s),p=Math.min(r.line,t.line),g=Math.min(e.lastLine(),Math.max(r.line,t.line));p<=g;p++){var m=Kn(u,p).text,y=Si(m,a,o);a==d?i.push(new ce(No(p,y),No(p,y))):m.length>y&&i.push(new ce(No(p,y),No(p,Si(m,d,o))))}i.length||i.push(new ce(r,r)),ke(u,fe(h.ranges.slice(0,f).concat(i),f),{origin:"*mouse",scroll:!1}),e.scrollIntoView(t)}else{var b=c,w=b.anchor,x=t;if("single"!=n){if("double"==n)var C=e.findWordAt(t);else var C=new ce(No(t.line,0),pe(u,No(t.line+1,0)));Ao(C.anchor,w)>0?(x=C.head,w=$(b.from(),C.anchor)):(x=C.anchor,w=Y(b.to(),C.head))}var i=h.ranges.slice(0);i[f]=new ce(pe(u,w),x),ke(u,fe(i,f),Ml)}}function l(t){var r=++y,i=Ut(e,t,!0,"rect"==n);if(i)if(0!=Ao(i,v)){q(e),o(i);var s=w(a,u);(i.line>=s.to||i.linem.bottom?20:0;c&&setTimeout(Mt(e,function(){y==r&&(a.scroller.scrollTop+=c,l(t))}),50)}}function s(e){y=1/0,ml(e),a.input.focus(),xl(document,"mousemove",b),xl(document,"mouseup",x),u.history.lastSelOrigin=null}var a=e.display,u=e.doc;ml(t);var c,f,h=u.sel,d=h.ranges;if(i&&!t.shiftKey?(f=u.sel.contains(r),c=f>-1?d[f]:new ce(r,r)):c=u.sel.primary(),t.altKey)n="rect",i||(c=new ce(r,r)),r=Ut(e,t,!0,!0),f=-1;else if("double"==n){var p=e.findWordAt(r);c=e.display.shift||u.extend?ye(u,c,p.anchor,p.head):p}else if("triple"==n){var g=new ce(No(r.line,0),pe(u,No(r.line+1,0)));c=e.display.shift||u.extend?ye(u,c,g.anchor,g.head):g}else c=ye(u,c,r);i?f==-1?(f=d.length,ke(u,fe(d.concat([c]),f),{scroll:!1,origin:"*mouse"})):d.length>1&&d[f].empty()&&"single"==n?(ke(u,fe(d.slice(0,f).concat(d.slice(f+1)),0)),h=u.sel):xe(u,f,c,Ml):(f=0,ke(u,new ue([c],0),Ml),h=u.sel);var v=r,m=a.wrapper.getBoundingClientRect(),y=0,b=Mt(e,function(e){gi(e)?l(e):s(e)}),x=Mt(e,s);wl(document,"mousemove",b),wl(document,"mouseup",x)}function _t(e,t,r,n,i){try{var o=t.clientX,l=t.clientY}catch(t){return!1}if(o>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;n&&ml(t);var s=e.display,a=s.lineDiv.getBoundingClientRect();if(l>a.bottom||!wi(e,r))return di(t);l-=a.top-s.viewOffset;for(var u=0;u=o){var f=$n(e.doc,l),h=e.options.gutters[u];return i(e,r,e,f,h,t),di(t)}}}function Yt(e,t){return _t(e,t,"gutterClick",!0,vi)}function $t(e){var t=this;if(!yi(t,e)&&!Gt(t.display,e)){ml(e),uo&&(Eo=+new Date);var r=Ut(t,e,!0),n=e.dataTransfer.files;if(r&&!Z(t))if(n&&n.length&&window.FileReader&&window.File)for(var i=n.length,o=Array(i),l=0,s=function(e,n){var s=new FileReader;s.onload=Mt(t,function(){if(o[n]=s.result,++l==i){r=pe(t.doc,r);var e={from:r,to:r,text:Vl(o.join("\n")),origin:"paste"};yr(t.doc,e),Le(t.doc,he(r,Vo(e)))}}),s.readAsText(e)},a=0;a-1)return t.state.draggingText(e),void setTimeout(function(){t.display.input.focus()},20);try{var o=e.dataTransfer.getData("Text");if(o){if(t.state.draggingText&&!(xo?e.metaKey:e.ctrlKey))var u=t.listSelections();if(Te(t.doc,he(r,r)),u)for(var a=0;al.clientWidth||i&&l.scrollHeight>l.clientHeight){if(i&&xo&&fo)e:for(var s=t.target,a=o.view;s!=l;s=s.parentNode)for(var u=0;u=0;--i)br(e,{from:n[i].from,to:n[i].to,text:i?[""]:t.text});else br(e,t)}}function br(e,t){if(1!=t.text.length||""!=t.text[0]||0!=Ao(t.from,t.to)){var r=pr(e,t);ri(e,t,r,e.cm?e.cm.curOp.id:NaN),Cr(e,t,r,Zr(e,t));var n=[];Un(e,function(e,r){r||Ti(n,e.history)!=-1||(hi(e.history,t),n.push(e.history)),Cr(e,t,null,Zr(e,t))})}}function wr(e,t,r){if(!e.cm||!e.cm.state.suppressEdits){for(var n,i=e.history,o=e.sel,l="undo"==t?i.done:i.undone,s="undo"==t?i.undone:i.done,a=0;a=0;--a){var f=n.changes[a];if(f.origin=t,c&&!mr(e,f,!1))return void(l.length=0);u.push(Jn(e,f));var h=a?pr(e,f):ki(l);Cr(e,f,h,Jr(e,f)),!a&&e.cm&&e.cm.scrollIntoView({from:f.from,to:Vo(f)});var d=[];Un(e,function(e,t){t||Ti(d,e.history)!=-1||(hi(e.history,f),d.push(e.history)),Cr(e,f,null,Jr(e,f))})}}}}function xr(e,t){if(0!=t&&(e.first+=t,e.sel=new ue(Mi(e.sel.ranges,function(e){return new ce(No(e.anchor.line+t,e.anchor.ch),No(e.head.line+t,e.head.ch))}),e.sel.primIndex),e.cm)){Dt(e.cm,e.first,e.first-t,t);for(var r=e.cm.display,n=r.viewFrom;ne.lastLine())){if(t.from.lineo&&(t={from:t.from,to:No(o,Kn(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=jn(e,t.from,t.to),r||(r=pr(e,t)),e.cm?Sr(e.cm,t,n):Rn(e,t,n),Te(e,r,Tl)}}function Sr(e,t,r){var n=e.doc,i=e.display,l=t.from,s=t.to,a=!1,u=l.line;e.options.lineWrapping||(u=Yn(fn(Kn(n,l.line))),n.iter(u,s.line+1,function(e){if(e==i.maxLine)return a=!0,!0})),n.sel.contains(t.from,t.to)>-1&&bi(e),Rn(n,t,r,o(e)),e.options.lineWrapping||(n.iter(u,l.line+t.text.length,function(e){var t=f(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,a=!1)}),a&&(e.curOp.updateMaxLine=!0)),n.frontier=Math.min(n.frontier,l.line),ze(e,400);var c=t.text.length-(s.line-l.line)-1;t.full?Dt(e):l.line!=s.line||1!=t.text.length||Fn(e.doc,t)?Dt(e,l.line,s.line+1,c):Ht(e,l.line,"text");var h=wi(e,"changes"),d=wi(e,"change");if(d||h){var p={from:l,to:s,text:t.text,removed:t.removed,origin:t.origin};d&&vi(e,"change",e,p),h&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(p)}e.display.selForContextMenu=null}function Lr(e,t,r,n,i){if(n||(n=r),Ao(n,r)<0){var o=n;n=r,r=o}"string"==typeof t&&(t=Vl(t)),yr(e,{from:r,to:n,text:t,origin:i})}function kr(e,t){if(!yi(e,"scrollCursorIntoView")){var r=e.display,n=r.sizer.getBoundingClientRect(),i=null;if(t.top+n.top<0?i=!0:t.bottom+n.top>(window.innerHeight||document.documentElement.clientHeight)&&(i=!1),null!=i&&!yo){var o=Pi("div","​",null,"position: absolute; top: "+(t.top-r.viewOffset-Be(e.display))+"px; height: "+(t.bottom-t.top+Ve(e)+r.barHeight)+"px; left: "+t.left+"px; width: 2px;");e.display.lineSpace.appendChild(o),o.scrollIntoView(i),e.display.lineSpace.removeChild(o)}}}function Tr(e,t,r,n){null==n&&(n=0);for(var i=0;i<5;i++){var o=!1,l=ct(e,t),s=r&&r!=t?ct(e,r):l,a=Nr(e,Math.min(l.left,s.left),Math.min(l.top,s.top)-n,Math.max(l.left,s.left),Math.max(l.bottom,s.bottom)+n),u=e.doc.scrollTop,c=e.doc.scrollLeft;if(null!=a.scrollTop&&(Zt(e,a.scrollTop),Math.abs(e.doc.scrollTop-u)>1&&(o=!0)),null!=a.scrollLeft&&(Qt(e,a.scrollLeft),Math.abs(e.doc.scrollLeft-c)>1&&(o=!0)),!o)break}return l}function Mr(e,t,r,n,i){var o=Nr(e,t,r,n,i);null!=o.scrollTop&&Zt(e,o.scrollTop),null!=o.scrollLeft&&Qt(e,o.scrollLeft)}function Nr(e,t,r,n,i){var o=e.display,l=gt(e.display);r<0&&(r=0);var s=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:o.scroller.scrollTop,a=je(e),u={};i-r>a&&(i=r+a);var c=e.doc.height+Ge(o),f=rc-l;if(rs+a){var d=Math.min(r,(h?c:i)-a);d!=s&&(u.scrollTop=d)}var p=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:o.scroller.scrollLeft,g=Ke(e)-(e.options.fixedGutter?o.gutters.offsetWidth:0),v=n-t>g;return v&&(n=t+g),t<10?u.scrollLeft=0:tg+p-3&&(u.scrollLeft=n+(v?0:10)-g),u}function Ar(e,t,r){null==t&&null==r||Or(e),null!=t&&(e.curOp.scrollLeft=(null==e.curOp.scrollLeft?e.doc.scrollLeft:e.curOp.scrollLeft)+t),null!=r&&(e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+r)}function Wr(e){Or(e);var t=e.getCursor(),r=t,n=t;e.options.lineWrapping||(r=t.ch?No(t.line,t.ch-1):t,n=No(t.line,t.ch+1)),e.curOp.scrollToPos={from:r,to:n,margin:e.options.cursorScrollMargin,isCursor:!0}}function Or(e){var t=e.curOp.scrollToPos;if(t){e.curOp.scrollToPos=null;var r=ft(e,t.from),n=ft(e,t.to),i=Nr(e,Math.min(r.left,n.left),Math.min(r.top,n.top)-t.margin,Math.max(r.right,n.right),Math.max(r.bottom,n.bottom)+t.margin);e.scrollTo(i.scrollLeft,i.scrollTop)}}function Dr(e,t,r,n){var i,o=e.doc;null==r&&(r="add"),"smart"==r&&(o.mode.indent?i=Re(e,t):r="prev");var l=e.options.tabSize,s=Kn(o,t),a=Al(s.text,null,l);s.stateAfter&&(s.stateAfter=null);var u,c=s.text.match(/^\s*/)[0];if(n||/\S/.test(s.text)){if("smart"==r&&(u=o.mode.indent(i,s.text.slice(c.length),s.text),u==kl||u>150)){if(!n)return;r="prev"}}else u=0,r="not";"prev"==r?u=t>o.first?Al(Kn(o,t-1).text,null,l):0:"add"==r?u=a+e.options.indentUnit:"subtract"==r?u=a-e.options.indentUnit:"number"==typeof r&&(u=a+r),u=Math.max(0,u);var f="",h=0;if(e.options.indentWithTabs)for(var d=Math.floor(u/l);d;--d)h+=l,f+="\t";if(h=0;t--)Lr(e.doc,"",n[t].from,n[t].to,"+delete");Wr(e)})}function Pr(e,t,r,n,i){function o(){var t=s+r;return t=e.first+e.size?f=!1:(s=t,c=Kn(e,t))}function l(e){var t=(i?io:oo)(c,a,r,!0);if(null==t){if(e||!o())return f=!1;a=i?(r<0?Zi:qi)(c):r<0?c.text.length:0}else a=t;return!0}var s=t.line,a=t.ch,u=r,c=Kn(e,s),f=!0;if("char"==n)l();else if("column"==n)l(!0);else if("word"==n||"group"==n)for(var h=null,d="group"==n,p=e.cm&&e.cm.getHelper(t,"wordChars"),g=!0;!(r<0)||l(!g);g=!1){var v=c.text.charAt(a)||"\n",m=Di(v,p)?"w":d&&"\n"==v?"n":!d||/\s/.test(v)?null:"p";if(!d||g||m||(m="s"),h&&h!=m){r<0&&(r=1,l());break}if(m&&(h=m),r>0&&!l(!g))break}var y=We(e,No(s,a),u,!0);return f||(y.hitSide=!0),y}function zr(e,t,r,n){var i,o=e.doc,l=t.left;if("page"==n){var s=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight);i=t.top+r*(s-(r<0?1.5:.5)*gt(e.display))}else"line"==n&&(i=r>0?t.bottom+3:t.top-3);for(;;){var a=dt(e,l,i);if(!a.outside)break;if(r<0?i<=0:i>=o.height){a.hitSide=!0;break}i+=5*r}return a}function Er(t,r,n,i){e.defaults[t]=r,n&&(jo[t]=i?function(e,t,r){r!=Xo&&n(e,t,r)}:n)}function Fr(e){for(var t,r,n,i,o=e.split(/-(?!$)/),e=o[o.length-1],l=0;l0||0==l&&o.clearWhenEmpty!==!1)return o;if(o.replacedWith&&(o.collapsed=!0,o.widgetNode=Pi("span",[o.replacedWith],"CodeMirror-widget"),n.handleMouseEvents||o.widgetNode.setAttribute("cm-ignore-events","true"),n.insertLeft&&(o.widgetNode.insertLeft=!0)),o.collapsed){if(cn(e,t.line,t,r,o)||t.line!=r.line&&cn(e,r.line,t,r,o))throw new Error("Inserting collapsed marker partially overlapping an existing one");Mo=!0}o.addToHistory&&ri(e,{from:t,to:r,origin:"markText"},e.sel,NaN);var s,a=t.line,u=e.cm;if(e.iter(a,r.line+1,function(e){u&&o.collapsed&&!u.options.lineWrapping&&fn(e)==u.display.maxLine&&(s=!0),o.collapsed&&a!=t.line&&_n(e,0),Yr(e,new jr(o,a==t.line?t.ch:null,a==r.line?r.ch:null)),++a}),o.collapsed&&e.iter(t.line,r.line+1,function(t){gn(e,t)&&_n(t,0)}),o.clearOnEnter&&wl(o,"beforeCursorEnter",function(){o.clear()}),o.readOnly&&(To=!0,(e.history.done.length||e.history.undone.length)&&e.clearHistory()),o.collapsed&&(o.id=++ll,o.atomic=!0),u){if(s&&(u.curOp.updateMaxLine=!0),o.collapsed)Dt(u,t.line,r.line+1);else if(o.className||o.title||o.startStyle||o.endStyle||o.css)for(var c=t.line;c<=r.line;c++)Ht(u,c,"text");o.atomic&&Ne(u.doc),vi(u,"markerAdded",u,o)}return o}function Gr(e,t,r,n,i){n=Wi(n),n.shared=!1;var o=[Br(e,t,r,n,i)],l=o[0],s=n.widgetNode;return Un(e,function(e){s&&(n.widgetNode=s.cloneNode(!0)),o.push(Br(e,pe(e,t),pe(e,r),n,i));for(var a=0;a=t:o.to>t);(n||(n=[])).push(new jr(l,o.from,a?null:o.to))}}return n}function qr(e,t,r){if(e)for(var n,i=0;i=t:o.to>t);if(s||o.from==t&&"bookmark"==l.type&&(!r||o.marker.insertLeft)){var a=null==o.from||(l.inclusiveLeft?o.from<=t:o.from0&&s)for(var f=0;f0)){var c=[a,1],f=Ao(u.from,s.from),h=Ao(u.to,s.to);(f<0||!l.inclusiveLeft&&!f)&&c.push({from:u.from,to:s.from}),(h>0||!l.inclusiveRight&&!h)&&c.push({from:s.to,to:u.to}),i.splice.apply(i,c),a+=c.length-1}}return i}function tn(e){var t=e.markedSpans;if(t){for(var r=0;r=0&&f<=0||c<=0&&f>=0)&&(c<=0&&(Ao(u.to,r)>0||a.marker.inclusiveRight&&i.inclusiveLeft)||c>=0&&(Ao(u.from,n)<0||a.marker.inclusiveLeft&&i.inclusiveRight)))return!0}}}function fn(e){for(var t;t=an(e);)e=t.find(-1,!0).line;return e}function hn(e){for(var t,r;t=un(e);)e=t.find(1,!0).line,(r||(r=[])).push(e);return r}function dn(e,t){var r=Kn(e,t),n=fn(r);return r==n?t:Yn(n)}function pn(e,t){if(t>e.lastLine())return t;var r,n=Kn(e,t);if(!gn(e,n))return t;for(;r=un(n);)n=r.find(1,!0).line;return Yn(n)+1}function gn(e,t){var r=Mo&&t.markedSpans;if(r)for(var n,i=0;ir.start)return l}throw new Error("Mode "+t.name+" failed to advance stream.")}function kn(e,t,r,n){function i(e){return{start:f.start,end:f.pos,string:f.current(),type:o||null,state:e?Qo(l.mode,c):c}}var o,l=e.doc,s=l.mode;t=pe(l,t);var a,u=Kn(l,t.line),c=Re(e,t.line,r),f=new ol(u.text,e.options.tabSize);for(n&&(a=[]);(n||f.pose.options.maxHighlightLength?(s=!1,l&&An(e,t,n,f.pos),f.pos=t.length,a=null):a=Cn(Ln(r,f,n,h),o),h){var d=h[0].name;d&&(a="m-"+(a?d+" "+a:d))}if(!s||c!=a){for(;ue&&i.splice(a,1,e,i[a+1],n),a+=2,u=Math.min(e,n)}if(t)if(s.opaque)i.splice(r,a-r,e,"cm-overlay "+t),a=r+2;else for(;ra&&f.from<=a)break}if(f.to>=u)return e(r,n,i,o,l,s);e(r,n.slice(0,f.to-a),i,o,null,s),o=null,n=n.slice(f.to-a),a=f.to}}}function zn(e,t,r,n){var i=!n&&r.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!n&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement("span"))),i.setAttribute("cm-marker",r.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t}function En(e,t,r){var n=e.markedSpans,i=e.text,o=0;if(n)for(var l,s,a,u,c,f,h,d=i.length,p=0,g=1,v="",m=0;;){if(m==p){a=u=c=f=s="",h=null,m=1/0;for(var y=[],b=0;bp)?(null!=w.to&&m>w.to&&(m=w.to,u=""),x.className&&(a+=" "+x.className),x.css&&(s=x.css),x.startStyle&&w.from==p&&(c+=" "+x.startStyle),x.endStyle&&w.to==m&&(u+=" "+x.endStyle),x.title&&!f&&(f=x.title),x.collapsed&&(!h||ln(h.marker,x)<0)&&(h=w)):w.from>p&&m>w.from&&(m=w.from),"bookmark"==x.type&&w.from==p&&x.widgetNode&&y.push(x)}if(h&&(h.from||0)==p&&(zn(t,(null==h.to?d+1:h.to)-p,h.marker,null==h.from),null==h.to))return;if(!h&&y.length)for(var b=0;b=d)break;for(var C=Math.min(d,m);;){if(v){var S=p+v.length;if(!h){var L=S>C?v.slice(0,C-p):v;t.addToken(t,L,l?l+a:a,c,p+L.length==m?u:"",f,s)}if(S>=C){v=v.slice(C-p),p=C;break}p=S,c=""}v=i.slice(o,o=r[g++]),l=Wn(r[g++],t.cm.options)}}else for(var g=1;g1&&e.remove(s.line+1,p-1),e.insert(s.line+1,g)}vi(e,"change",e,t)}function Bn(e){this.lines=e,this.parent=null;for(var t=0,r=0;t=e.size)throw new Error("There is no line "+(t+e.first)+" in the document.");for(var r=e;!r.lines;)for(var n=0;;++n){var i=r.children[n],o=i.chunkSize();if(t1&&!e.done[e.done.length-2].ranges?(e.done.pop(),ki(e.done)):void 0}function ri(e,t,r,n){var i=e.history;i.undone.length=0;var o,l=+new Date;if((i.lastOp==n||i.lastOrigin==t.origin&&t.origin&&("+"==t.origin.charAt(0)&&e.cm&&i.lastModTime>l-e.cm.options.historyEventDelay||"*"==t.origin.charAt(0)))&&(o=ti(i,i.lastOp==n))){var s=ki(o.changes);0==Ao(t.from,t.to)&&0==Ao(t.from,s.to)?s.to=Vo(t):o.changes.push(Jn(e,t))}else{var a=ki(i.done);for(a&&a.ranges||oi(e.sel,i.done),o={changes:[Jn(e,t)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(r),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=l,i.lastOp=i.lastSelOp=n,i.lastOrigin=i.lastSelOrigin=t.origin,s||Cl(e,"historyAdded")}function ni(e,t,r,n){var i=t.charAt(0);return"*"==i||"+"==i&&r.ranges.length==n.ranges.length&&r.somethingSelected()==n.somethingSelected()&&new Date-e.history.lastSelTime<=(e.cm?e.cm.options.historyEventDelay:500)}function ii(e,t,r,n){var i=e.history,o=n&&n.origin;r==i.lastSelOp||o&&i.lastSelOrigin==o&&(i.lastModTime==i.lastSelTime&&i.lastOrigin==o||ni(e,o,ki(i.done),t))?i.done[i.done.length-1]=t:oi(t,i.done),i.lastSelTime=+new Date,i.lastSelOrigin=o,i.lastSelOp=r,n&&n.clearRedo!==!1&&ei(i.undone)}function oi(e,t){var r=ki(t);r&&r.ranges&&r.equals(e)||t.push(e)}function li(e,t,r,n){var i=t["spans_"+e.id],o=0;e.iter(Math.max(e.first,r),Math.min(e.first+e.size,n),function(r){r.markedSpans&&((i||(i=t["spans_"+e.id]={}))[o]=r.markedSpans),++o})}function si(e){if(!e)return null;for(var t,r=0;r-1&&(ki(s)[f]=c[f],delete c[f])}}}return i}function ci(e,t,r,n){r0}function xi(e){e.prototype.on=function(e,t){wl(this,e,t)},e.prototype.off=function(e,t){xl(this,e,t)}}function Ci(){this.id=null}function Si(e,t,r){for(var n=0,i=0;;){var o=e.indexOf("\t",n);o==-1&&(o=e.length);var l=o-n;if(o==e.length||i+l>=t)return n+Math.min(l,t-i);if(i+=o-n,i+=r-i%r,n=o+1,i>=t)return n}}function Li(e){for(;Wl.length<=e;)Wl.push(ki(Wl)+" ");return Wl[e]}function ki(e){return e[e.length-1]}function Ti(e,t){for(var r=0;r-1&&Il(e))||t.test(e):Il(e)}function Hi(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}function Ii(e){return e.charCodeAt(0)>=768&&Pl.test(e)}function Pi(e,t,r,n){var i=document.createElement(e);if(r&&(i.className=r),n&&(i.style.cssText=n),"string"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o0;--t)e.removeChild(e.firstChild);return e}function Ei(e,t){return zi(e).appendChild(t)}function Fi(){return document.activeElement}function Ri(e){return new RegExp("(^|\\s)"+e+"(?:$|\\s)\\s*")}function Bi(e,t){for(var r=e.split(" "),n=0;n2&&!(uo&&co<8))}var r=El?Pi("span","​"):Pi("span"," ",null,"display: inline-block; width: 1px; margin-right: -1px");return r.setAttribute("cm-text",""),r}function ji(e){if(null!=Fl)return Fl;var t=Ei(e,document.createTextNode("AخA")),r=Dl(t,0,1).getBoundingClientRect();if(!r||r.left==r.right)return!1;var n=Dl(t,1,2).getBoundingClientRect();return Fl=n.right-r.right<3}function Xi(e){if(null!=Xl)return Xl;var t=Ei(e,Pi("span","x")),r=t.getBoundingClientRect(),n=Dl(t,0,1).getBoundingClientRect();return Xl=Math.abs(r.left-n.left)>1}function _i(e,t,r,n){if(!e)return n(t,r,"ltr");for(var i=!1,o=0;ot||t==r&&l.to==t)&&(n(Math.max(l.from,t),Math.min(l.to,r),1==l.level?"rtl":"ltr"),i=!0)}i||n(t,r,"ltr")}function Yi(e){return e.level%2?e.to:e.from}function $i(e){return e.level%2?e.from:e.to}function qi(e){var t=Zn(e);return t?Yi(t[0]):0}function Zi(e){var t=Zn(e);return t?$i(ki(t)):e.text.length}function Qi(e,t){var r=Kn(e.doc,t),n=fn(r);n!=r&&(t=Yn(n));var i=Zn(n),o=i?i[0].level%2?Zi(n):qi(n):0;return No(t,o)}function Ji(e,t){for(var r,n=Kn(e.doc,t);r=un(n);)n=r.find(1,!0).line,t=null;var i=Zn(n),o=i?i[0].level%2?qi(n):Zi(n):n.text.length;return No(null==t?Yn(n):t,o)}function eo(e,t){var r=Qi(e,t.line),n=Kn(e.doc,r.line),i=Zn(n);if(!i||0==i[0].level){var o=Math.max(0,n.text.search(/\S/)),l=t.line==r.line&&t.ch<=o&&t.ch;return No(r.line,l?0:o)}return r}function to(e,t,r){var n=e[0].level;return t==n||r!=n&&tt)return n;if(i.from==t||i.to==t){if(null!=r)return to(e,i.level,e[r].level)?(i.from!=i.to&&(Yl=r),n):(i.from!=i.to&&(Yl=n),r);r=n}}return r}function no(e,t,r,n){if(!n)return t+r;do t+=r;while(t>0&&Ii(e.text.charAt(t)));return t}function io(e,t,r,n){var i=Zn(e);if(!i)return oo(e,t,r,n);for(var o=ro(i,t),l=i[o],s=no(e,t,l.level%2?-r:r,n);;){if(s>l.from&&s0==l.level%2?l.to:l.from);if(l=i[o+=r],!l)return null;s=r>0==l.level%2?no(e,l.to,-1,n):no(e,l.from,1,n)}}function oo(e,t,r,n){var i=t+r;if(n)for(;i>0&&Ii(e.text.charAt(i));)i+=r;return i<0||i>e.text.length?null:i}var lo=/gecko\/\d/i.test(navigator.userAgent),so=/MSIE \d/.test(navigator.userAgent),ao=/Trident\/(?:[7-9]|\d{2,})\..*rv:(\d+)/.exec(navigator.userAgent),uo=so||ao,co=uo&&(so?document.documentMode||6:ao[1]),fo=/WebKit\//.test(navigator.userAgent),ho=fo&&/Qt\/\d+\.\d+/.test(navigator.userAgent),po=/Chrome\//.test(navigator.userAgent),go=/Opera\//.test(navigator.userAgent),vo=/Apple Computer/.test(navigator.vendor),mo=/Mac OS X 1\d\D([8-9]|\d\d)\D/.test(navigator.userAgent),yo=/PhantomJS/.test(navigator.userAgent),bo=/AppleWebKit/.test(navigator.userAgent)&&/Mobile\/\w+/.test(navigator.userAgent),wo=bo||/Android|webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(navigator.userAgent),xo=bo||/Mac/.test(navigator.platform),Co=/win/i.test(navigator.platform),So=go&&navigator.userAgent.match(/Version\/(\d*\.\d*)/);So&&(So=Number(So[1])),So&&So>=15&&(go=!1,fo=!0);var Lo=xo&&(ho||go&&(null==So||So<12.11)),ko=lo||uo&&co>=9,To=!1,Mo=!1;g.prototype=Wi({update:function(e){var t=e.scrollWidth>e.clientWidth+1,r=e.scrollHeight>e.clientHeight+1,n=e.nativeBarWidth;if(r){this.vert.style.display="block",this.vert.style.bottom=t?n+"px":"0";var i=e.viewHeight-(t?n:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+"px"}else this.vert.style.display="",this.vert.firstChild.style.height="0";if(t){this.horiz.style.display="block",this.horiz.style.right=r?n+"px":"0",this.horiz.style.left=e.barLeft+"px";var o=e.viewWidth-e.barLeft-(r?n:0);this.horiz.firstChild.style.width=e.scrollWidth-e.clientWidth+o+"px"}else this.horiz.style.display="",this.horiz.firstChild.style.width="0";return!this.checkedOverlay&&e.clientHeight>0&&(0==n&&this.overlayHack(),this.checkedOverlay=!0),{right:r?n:0,bottom:t?n:0}},setScrollLeft:function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e)},setScrollTop:function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e)},overlayHack:function(){var e=xo&&!mo?"12px":"18px";this.horiz.style.minHeight=this.vert.style.minWidth=e;var t=this,r=function(e){pi(e)!=t.vert&&pi(e)!=t.horiz&&Mt(t.cm,Vt)(e)};wl(this.vert,"mousedown",r),wl(this.horiz,"mousedown",r)},clear:function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)}},g.prototype),v.prototype=Wi({update:function(){return{bottom:0,right:0}},setScrollLeft:function(){},setScrollTop:function(){},clear:function(){}},v.prototype),e.scrollbarModel={"native":g,"null":v},k.prototype.signal=function(e,t){wi(e,t)&&this.events.push(arguments)},k.prototype.finish=function(){for(var e=0;e=9&&r.hasSelection&&(r.hasSelection=null),r.poll()}),wl(o,"paste",function(){if(fo&&!n.state.fakedLastChar&&!(new Date-n.state.lastMiddleDown<200)){var e=o.selectionStart,t=o.selectionEnd;o.value+="$",o.selectionEnd=t,o.selectionStart=e,n.state.fakedLastChar=!0}n.state.pasteIncoming=!0,r.fastPoll()}),wl(o,"cut",t),wl(o,"copy",t),wl(e.scroller,"paste",function(t){Gt(e,t)||(n.state.pasteIncoming=!0,r.focus())}),wl(e.lineSpace,"selectstart",function(t){Gt(e,t)||ml(t)})},prepareSelection:function(){var e=this.cm,t=e.display,r=e.doc,n=De(e);if(e.options.moveInputWithCursor){var i=ct(e,r.sel.primary().head,"div"),o=t.wrapper.getBoundingClientRect(),l=t.lineDiv.getBoundingClientRect();n.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+l.top-o.top)),n.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+l.left-o.left))}return n},showSelection:function(e){var t=this.cm,r=t.display;Ei(r.cursorDiv,e.cursors),Ei(r.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+"px",this.wrapper.style.left=e.teLeft+"px")},reset:function(e){if(!this.contextMenuPending){var t,r,n=this.cm,i=n.doc;if(n.somethingSelected()){this.prevInput="";var o=i.sel.primary();t=jl&&(o.to().line-o.from().line>100||(r=n.getSelection()).length>1e3);var l=t?"-":r||n.getSelection();this.textarea.value=l,n.state.focused&&Ol(this.textarea),uo&&co>=9&&(this.hasSelection=l)}else e||(this.prevInput=this.textarea.value="",uo&&co>=9&&(this.hasSelection=null));this.inaccurateSelection=t}},getField:function(){return this.textarea},supportsTouch:function(){return!1},focus:function(){if("nocursor"!=this.cm.options.readOnly&&(!wo||Fi()!=this.textarea))try{this.textarea.focus()}catch(e){}},blur:function(){this.textarea.blur()},resetPosition:function(){this.wrapper.style.top=this.wrapper.style.left=0},receivedFocus:function(){this.slowPoll()},slowPoll:function(){var e=this;e.pollingFast||e.polling.set(this.cm.options.pollInterval,function(){e.poll(),e.cm.state.focused&&e.slowPoll()})},fastPoll:function(){function e(){var n=r.poll();n||t?(r.pollingFast=!1,r.slowPoll()):(t=!0,r.polling.set(60,e))}var t=!1,r=this;r.pollingFast=!0,r.polling.set(20,e)},poll:function(){var e=this.cm,t=this.textarea,r=this.prevInput;if(!e.state.focused||Kl(t)&&!r||Z(e)||e.options.disableInput||e.state.keySeq)return!1;e.state.pasteIncoming&&e.state.fakedLastChar&&(t.value=t.value.substring(0,t.value.length-1),e.state.fakedLastChar=!1);var n=t.value;if(n==r&&!e.somethingSelected())return!1;if(uo&&co>=9&&this.hasSelection===n||xo&&/[\uf700-\uf7ff]/.test(n))return e.display.input.reset(),!1;8203!=n.charCodeAt(0)||e.doc.sel!=e.display.selForContextMenu||r||(r="​");for(var i=0,o=Math.min(r.length,n.length);i1e3||n.indexOf("\n")>-1?t.value=l.prevInput="":l.prevInput=n}),!0},ensurePolled:function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},onKeyPress:function(){uo&&co>=9&&(this.hasSelection=null),this.fastPoll()},onContextMenu:function(e){function t(){if(null!=l.selectionStart){var e=i.somethingSelected(),t=l.value="​"+(e?l.value:"");n.prevInput=e?"":"​",l.selectionStart=1,l.selectionEnd=t.length,o.selForContextMenu=i.doc.sel}}function r(){if(n.contextMenuPending=!1,n.wrapper.style.position="relative",l.style.cssText=c,uo&&co<9&&o.scrollbars.setScrollTop(o.scroller.scrollTop=a),null!=l.selectionStart){(!uo||uo&&co<9)&&t();var e=0,r=function(){o.selForContextMenu==i.doc.sel&&0==l.selectionStart?Mt(i,el.selectAll)(i):e++<10?o.detectingSelectAll=setTimeout(r,500):o.input.reset()};o.detectingSelectAll=setTimeout(r,200)}}var n=this,i=n.cm,o=i.display,l=n.textarea,s=Ut(i,e),a=o.scroller.scrollTop;if(s&&!go){var u=i.options.resetSelectionOnContextMenu;u&&i.doc.sel.contains(s)==-1&&Mt(i,ke)(i.doc,he(s),Tl);var c=l.style.cssText;if(n.wrapper.style.position="absolute",l.style.cssText="position: fixed; width: 30px; height: 30px; top: "+(e.clientY-5)+"px; left: "+(e.clientX-5)+"px; z-index: 1000; background: "+(uo?"rgba(255, 255, 255, .05)":"transparent")+"; outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);",fo)var f=window.scrollY;if(o.input.focus(),fo&&window.scrollTo(null,f),o.input.reset(),i.somethingSelected()||(l.value=n.prevInput=" "),n.contextMenuPending=!0,o.selForContextMenu=i.doc.sel,clearTimeout(o.detectingSelectAll),uo&&co>=9&&t(),ko){bl(e);var h=function(){xl(window,"mouseup",h),setTimeout(r,20)};wl(window,"mouseup",h)}else setTimeout(r,50)}},setUneditable:Ni,needsContentAttribute:!1},te.prototype),ne.prototype=Wi({init:function(e){function t(e){if(n.somethingSelected())Wo=n.getSelections(),"cut"==e.type&&n.replaceSelection("",null,"cut");else{var t=J(n);Wo=t.text,"cut"==e.type&&n.operation(function(){n.setSelections(t.ranges,0,Tl),n.replaceSelection("",null,"cut")})}if(e.clipboardData&&!bo)e.preventDefault(),e.clipboardData.clearData(),e.clipboardData.setData("text/plain",Wo.join("\n"));else{var r=re(),i=r.firstChild;n.display.lineSpace.insertBefore(r,n.display.lineSpace.firstChild),i.value=Wo.join("\n");var o=document.activeElement;Ol(i),setTimeout(function(){n.display.lineSpace.removeChild(r),o.focus()},50)}}var r=this,n=r.cm,i=r.div=e.lineDiv;i.contentEditable="true",ee(i),wl(i,"paste",function(e){var t=e.clipboardData&&e.clipboardData.getData("text/plain");t&&(e.preventDefault(),n.replaceSelection(t,null,"paste"))}),wl(i,"compositionstart",function(e){var t=e.data;if(r.composing={sel:n.doc.sel,data:t,startData:t},t){var i=n.doc.sel.primary(),o=n.getLine(i.head.line),l=o.indexOf(t,Math.max(0,i.head.ch-t.length));l>-1&&l<=i.head.ch&&(r.composing.sel=he(No(i.head.line,l),No(i.head.line,l+t.length)))}}),wl(i,"compositionupdate",function(e){r.composing.data=e.data}),wl(i,"compositionend",function(e){var t=r.composing;t&&(e.data==t.startData||/\u200b/.test(e.data)||(t.data=e.data),setTimeout(function(){t.handled||r.applyComposition(t),r.composing==t&&(r.composing=null)},50))}),wl(i,"touchstart",function(){r.forceCompositionEnd()}),wl(i,"input",function(){r.composing||r.pollContent()||Tt(r.cm,function(){Dt(n)})}),wl(i,"copy",t),wl(i,"cut",t)},prepareSelection:function(){var e=De(this.cm,!1);return e.focus=this.cm.state.focused,e},showSelection:function(e){e&&this.cm.display.view.length&&(e.focus&&this.showPrimarySelection(),this.showMultipleSelections(e))},showPrimarySelection:function(){var e=window.getSelection(),t=this.cm.doc.sel.primary(),r=le(this.cm,e.anchorNode,e.anchorOffset),n=le(this.cm,e.focusNode,e.focusOffset);if(!r||r.bad||!n||n.bad||0!=Ao($(r,n),t.from())||0!=Ao(Y(r,n),t.to())){var i=ie(this.cm,t.from()),o=ie(this.cm,t.to());if(i||o){var l=this.cm.display.view,s=e.rangeCount&&e.getRangeAt(0);if(i){if(!o){var a=l[l.length-1].measure,u=a.maps?a.maps[a.maps.length-1]:a.map;o={node:u[u.length-1],offset:u[u.length-2]-u[u.length-3]}}}else i={node:l[0].measure.map[2],offset:0};try{var c=Dl(i.node,i.offset,o.offset,o.node)}catch(f){}c&&(e.removeAllRanges(),e.addRange(c),s&&null==e.anchorNode&&e.addRange(s)),this.rememberSelection()}}},showMultipleSelections:function(e){Ei(this.cm.display.cursorDiv,e.cursors),Ei(this.cm.display.selectionDiv,e.selection)},rememberSelection:function(){var e=window.getSelection();this.lastAnchorNode=e.anchorNode,this.lastAnchorOffset=e.anchorOffset,this.lastFocusNode=e.focusNode,this.lastFocusOffset=e.focusOffset},selectionInEditor:function(){var e=window.getSelection();if(!e.rangeCount)return!1;var t=e.getRangeAt(0).commonAncestorContainer;return zl(this.div,t)},focus:function(){"nocursor"!=this.cm.options.readOnly&&this.div.focus()},blur:function(){this.div.blur()},getField:function(){return this.div},supportsTouch:function(){return!0},receivedFocus:function(){function e(){t.cm.state.focused&&(t.pollSelection(),t.polling.set(t.cm.options.pollInterval,e))}var t=this;this.selectionInEditor()?this.pollSelection():Tt(this.cm,function(){t.cm.curOp.selectionChanged=!0}),this.polling.set(this.cm.options.pollInterval,e)},pollSelection:function(){if(!this.composing){var e=window.getSelection(),t=this.cm;if(e.anchorNode!=this.lastAnchorNode||e.anchorOffset!=this.lastAnchorOffset||e.focusNode!=this.lastFocusNode||e.focusOffset!=this.lastFocusOffset){this.rememberSelection();var r=le(t,e.anchorNode,e.anchorOffset),n=le(t,e.focusNode,e.focusOffset);r&&n&&Tt(t,function(){ke(t.doc,he(r,n),Tl),(r.bad||n.bad)&&(t.curOp.selectionChanged=!0)})}}},pollContent:function(){var e=this.cm,t=e.display,r=e.doc.sel.primary(),n=r.from(),i=r.to();if(n.linet.viewTo-1)return!1;var o;if(n.line==t.viewFrom||0==(o=Pt(e,n.line)))var l=Yn(t.view[0].line),s=t.view[0].node;else var l=Yn(t.view[o].line),s=t.view[o-1].node.nextSibling;var a=Pt(e,i.line);if(a==t.view.length-1)var u=t.viewTo-1,c=t.view[a].node;else var u=Yn(t.view[a+1].line)-1,c=t.view[a+1].node.previousSibling;for(var f=Vl(ae(e,s,c,l,u)),h=jn(e.doc,No(l,0),No(u,Kn(e.doc,u).text.length));f.length>1&&h.length>1;)if(ki(f)==ki(h))f.pop(),h.pop(),u--;else{if(f[0]!=h[0])break;f.shift(),h.shift(),l++}for(var d=0,p=0,g=f[0],v=h[0],m=Math.min(g.length,v.length);d1||f[0]||Ao(x,C)?(Lr(e.doc,f,x,C,"+input"),!0):void 0},ensurePolled:function(){this.forceCompositionEnd()},reset:function(){this.forceCompositionEnd()},forceCompositionEnd:function(){this.composing&&!this.composing.handled&&(this.applyComposition(this.composing),this.composing.handled=!0,this.div.blur(),this.div.focus())},applyComposition:function(e){e.data&&e.data!=e.startData&&Mt(this.cm,Q)(this.cm,e.data,0,e.sel)},setUneditable:function(e){e.setAttribute("contenteditable","false")},onKeyPress:function(e){e.preventDefault(),Mt(this.cm,Q)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0)},onContextMenu:Ni,resetPosition:Ni,needsContentAttribute:!0},ne.prototype),e.inputStyles={textarea:te,contenteditable:ne},ue.prototype={primary:function(){return this.ranges[this.primIndex]},equals:function(e){if(e==this)return!0;if(e.primIndex!=this.primIndex||e.ranges.length!=this.ranges.length)return!1;for(var t=0;t=0&&Ao(e,n.to())<=0)return r}return-1}},ce.prototype={from:function(){return $(this.anchor,this.head)},to:function(){return Y(this.anchor,this.head)},empty:function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch}};var Oo,Do,Ho,Io={left:0,right:0,top:0,bottom:0},Po=null,zo=0,Eo=0,Fo=0,Ro=null;uo?Ro=-.53:lo?Ro=15:po?Ro=-.7:vo&&(Ro=-1/3);var Bo=function(e){var t=e.wheelDeltaX,r=e.wheelDeltaY;return null==t&&e.detail&&e.axis==e.HORIZONTAL_AXIS&&(t=e.detail),null==r&&e.detail&&e.axis==e.VERTICAL_AXIS?r=e.detail:null==r&&(r=e.wheelDelta),{x:t,y:r}};e.wheelEventPixels=function(e){var t=Bo(e);return t.x*=Ro,t.y*=Ro,t};var Go=new Ci,Uo=null,Vo=e.changeEnd=function(e){return e.text?No(e.from.line+e.text.length-1,ki(e.text).length+(1==e.text.length?e.from.ch:0)):e.to};e.prototype={constructor:e,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,t){var r=this.options,n=r[e];r[e]==t&&"mode"!=e||(r[e]=t,jo.hasOwnProperty(e)&&Mt(this,jo[e])(this,t,n))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?"push":"unshift"](Rr(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,r=0;rr&&(Dr(this,i.head.line,e,!0),r=i.head.line,n==this.doc.sel.primIndex&&Wr(this));else{var o=i.from(),l=i.to(),s=Math.max(r,o.line);r=Math.min(this.lastLine(),l.line-(l.ch?0:1))+1;for(var a=s;a0&&xe(this.doc,n,new ce(o,u[n].to()),Tl)}}}),getTokenAt:function(e,t){return kn(this,e,t)},getLineTokens:function(e,t){return kn(this,No(e),t,!0)},getTokenTypeAt:function(e){e=pe(this.doc,e);var t,r=Nn(this,Kn(this.doc,e.line)),n=0,i=(r.length-1)/2,o=e.ch;if(0==o)t=r[2];else for(;;){var l=n+i>>1;if((l?r[2*l-1]:0)>=o)i=l;else{if(!(r[2*l+1]n&&(e=n,r=!0);var i=Kn(this.doc,e);return st(this,i,{top:0,left:0},t||"page").top+(r?this.doc.height-qn(i):0)},defaultTextHeight:function(){return gt(this.display)},defaultCharWidth:function(){return vt(this.display)},setGutterMarker:Nt(function(e,t,r){return Hr(this.doc,e,"gutter",function(e){var n=e.gutterMarkers||(e.gutterMarkers={});return n[t]=r,!r&&Hi(n)&&(e.gutterMarkers=null),!0})}),clearGutter:Nt(function(e){var t=this,r=t.doc,n=r.first;r.iter(function(r){r.gutterMarkers&&r.gutterMarkers[e]&&(r.gutterMarkers[e]=null,Ht(t,n,"gutter"),Hi(r.gutterMarkers)&&(r.gutterMarkers=null)),++n})}),addLineWidget:Nt(function(e,t,r){return bn(this,e,t,r)}),removeLineWidget:function(e){e.clear()},lineInfo:function(e){if("number"==typeof e){if(!ve(this.doc,e))return null;var t=e;if(e=Kn(this.doc,e),!e)return null}else{var t=Yn(e);if(null==t)return null}return{line:t,handle:e,text:e.text,gutterMarkers:e.gutterMarkers,textClass:e.textClass,bgClass:e.bgClass,wrapClass:e.wrapClass,widgets:e.widgets}},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,r,n,i){var o=this.display;e=ct(this,pe(this.doc,e));var l=e.bottom,s=e.left;if(t.style.position="absolute",t.setAttribute("cm-ignore-events","true"),this.display.input.setUneditable(t),o.sizer.appendChild(t),"over"==n)l=e.top;else if("above"==n||"near"==n){var a=Math.max(o.wrapper.clientHeight,this.doc.height),u=Math.max(o.sizer.clientWidth,o.lineSpace.clientWidth);("above"==n||e.bottom+t.offsetHeight>a)&&e.top>t.offsetHeight?l=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=a&&(l=e.bottom),s+t.offsetWidth>u&&(s=u-t.offsetWidth)}t.style.top=l+"px",t.style.left=t.style.right="","right"==i?(s=o.sizer.clientWidth-t.offsetWidth,t.style.right="0px"):("left"==i?s=0:"middle"==i&&(s=(o.sizer.clientWidth-t.offsetWidth)/2),t.style.left=s+"px"),r&&Mr(this,s,l,s+t.offsetWidth,l+t.offsetHeight)},triggerOnKeyDown:Nt(or),triggerOnKeyPress:Nt(ar),triggerOnKeyUp:sr,execCommand:function(e){if(el.hasOwnProperty(e))return el[e](this)},findPosH:function(e,t,r,n){var i=1;t<0&&(i=-1,t=-t);for(var o=0,l=pe(this.doc,e);o0&&s(r.charAt(n-1));)--n;for(;i.5)&&l(this),Cl(this,"refresh",this)}),swapDoc:Nt(function(e){var t=this.doc;return t.cm=null,Vn(this,e),it(this),this.display.input.reset(),this.scrollTo(e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,vi(this,"swapDoc",this,t),t}),getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},xi(e);var Ko=e.defaults={},jo=e.optionHandlers={},Xo=e.Init={toString:function(){return"CodeMirror.Init"}};Er("value","",function(e,t){e.setValue(t)},!0),Er("mode",null,function(e,t){e.doc.modeOption=t,r(e)},!0),Er("indentUnit",2,r,!0),Er("indentWithTabs",!1),Er("smartIndent",!0),Er("tabSize",4,function(e){n(e),it(e),Dt(e)},!0),Er("specialChars",/[\t\u0000-\u0019\u00ad\u200b-\u200f\u2028\u2029\ufeff]/g,function(e,t){e.options.specialChars=new RegExp(t.source+(t.test("\t")?"":"|\t"),"g"),e.refresh()},!0),Er("specialCharPlaceholder",Dn,function(e){e.refresh()},!0),Er("electricChars",!0),Er("inputStyle",wo?"contenteditable":"textarea",function(){throw new Error("inputStyle can not (yet) be changed in a running editor")},!0),Er("rtlMoveVisually",!Co),Er("wholeLineUpdateBefore",!0),Er("theme","default",function(e){s(e),a(e)},!0),Er("keyMap","default",function(t,r,n){var i=Rr(r),o=n!=e.Init&&Rr(n);o&&o.detach&&o.detach(t,i),i.attach&&i.attach(t,o||null)}),Er("extraKeys",null),Er("lineWrapping",!1,i,!0),Er("gutters",[],function(e){d(e.options),a(e)},!0),Er("fixedGutter",!0,function(e,t){e.display.gutters.style.left=t?L(e.display)+"px":"0",e.refresh()},!0),Er("coverGutterNextToScrollbar",!1,function(e){y(e)},!0),Er("scrollbarStyle","native",function(e){m(e),y(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)},!0),Er("lineNumbers",!1,function(e){d(e.options),a(e)},!0),Er("firstLineNumber",1,a,!0),Er("lineNumberFormatter",function(e){return e},a,!0),Er("showCursorWhenSelecting",!1,Oe,!0),Er("resetSelectionOnContextMenu",!0),Er("readOnly",!1,function(e,t){"nocursor"==t?(cr(e),e.display.input.blur(),e.display.disabled=!0):(e.display.disabled=!1,t||e.display.input.reset())}),Er("disableInput",!1,function(e,t){t||e.display.input.reset()},!0),Er("dragDrop",!0),Er("cursorBlinkRate",530),Er("cursorScrollMargin",0),Er("cursorHeight",1,Oe,!0),Er("singleCursorHeightPerLine",!0,Oe,!0),Er("workTime",100),Er("workDelay",100),Er("flattenSpans",!0,n,!0),Er("addModeClass",!1,n,!0),Er("pollInterval",100),Er("undoDepth",200,function(e,t){e.doc.history.undoDepth=t}),Er("historyEventDelay",1250),Er("viewportMargin",10,function(e){e.refresh()},!0),Er("maxHighlightLength",1e4,n,!0),Er("moveInputWithCursor",!0,function(e,t){t||e.display.input.resetPosition()}),Er("tabindex",null,function(e,t){e.display.input.getField().tabIndex=t||""}),Er("autofocus",null);var _o=e.modes={},Yo=e.mimeModes={};e.defineMode=function(t,r){e.defaults.mode||"null"==t||(e.defaults.mode=t),arguments.length>2&&(r.dependencies=Array.prototype.slice.call(arguments,2)),_o[t]=r},e.defineMIME=function(e,t){Yo[e]=t},e.resolveMode=function(t){if("string"==typeof t&&Yo.hasOwnProperty(t))t=Yo[t];else if(t&&"string"==typeof t.name&&Yo.hasOwnProperty(t.name)){var r=Yo[t.name];"string"==typeof r&&(r={name:r}),t=Ai(r,t),t.name=r.name}else if("string"==typeof t&&/^[\w\-]+\/[\w\-]+\+xml$/.test(t))return e.resolveMode("application/xml");return"string"==typeof t?{name:t}:t||{name:"null"}},e.getMode=function(t,r){var r=e.resolveMode(r),n=_o[r.name];if(!n)return e.getMode(t,"text/plain");var i=n(t,r);if($o.hasOwnProperty(r.name)){var o=$o[r.name];for(var l in o)o.hasOwnProperty(l)&&(i.hasOwnProperty(l)&&(i["_"+l]=i[l]),i[l]=o[l])}if(i.name=r.name,r.helperType&&(i.helperType=r.helperType),r.modeProps)for(var l in r.modeProps)i[l]=r.modeProps[l];return i},e.defineMode("null",function(){return{token:function(e){e.skipToEnd()}}}),e.defineMIME("text/plain","null");var $o=e.modeExtensions={};e.extendMode=function(e,t){var r=$o.hasOwnProperty(e)?$o[e]:$o[e]={};Wi(t,r)},e.defineExtension=function(t,r){e.prototype[t]=r},e.defineDocExtension=function(e,t){pl.prototype[e]=t},e.defineOption=Er;var qo=[];e.defineInitHook=function(e){qo.push(e)};var Zo=e.helpers={};e.registerHelper=function(t,r,n){Zo.hasOwnProperty(t)||(Zo[t]=e[t]={_global:[]}),Zo[t][r]=n},e.registerGlobalHelper=function(t,r,n,i){e.registerHelper(t,r,i),Zo[t]._global.push({pred:n,val:i})};var Qo=e.copyState=function(e,t){if(t===!0)return t;if(e.copyState)return e.copyState(t);var r={};for(var n in t){var i=t[n];i instanceof Array&&(i=i.concat([])),r[n]=i}return r},Jo=e.startState=function(e,t,r){return!e.startState||e.startState(t,r)};e.innerMode=function(e,t){for(;e.innerMode;){var r=e.innerMode(t);if(!r||r.mode==e)break;t=r.state,e=r.mode}return r||{mode:e,state:t}};var el=e.commands={selectAll:function(e){e.setSelection(No(e.firstLine(),0),No(e.lastLine()),Tl)},singleSelection:function(e){e.setSelection(e.getCursor("anchor"),e.getCursor("head"),Tl)},killLine:function(e){Ir(e,function(t){if(t.empty()){var r=Kn(e.doc,t.head.line).text.length;return t.head.ch==r&&t.head.line0)i=new No(i.line,i.ch+1),e.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),No(i.line,i.ch-2),i,"+transpose");else if(i.line>e.doc.first){var l=Kn(e.doc,i.line-1).text;l&&e.replaceRange(o.charAt(0)+"\n"+l.charAt(l.length-1),No(i.line-1,l.length-1),No(i.line,1),"+transpose")}r.push(new ce(i,i))}e.setSelections(r)})},newlineAndIndent:function(e){Tt(e,function(){for(var t=e.listSelections().length,r=0;r=this.string.length},sol:function(){return this.pos==this.lineStart},peek:function(){return this.string.charAt(this.pos)||void 0},next:function(){if(this.post},eatSpace:function(){for(var e=this.pos;/[\s\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},skipToEnd:function(){this.pos=this.string.length},skipTo:function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},backUp:function(e){this.pos-=e},column:function(){return this.lastColumnPos0?null:(n&&t!==!1&&(this.pos+=n[0].length),n)}var i=function(e){return r?e.toLowerCase():e},o=this.string.substr(this.pos,e.length);if(i(o)==i(e))return t!==!1&&(this.pos+=e.length),!0},current:function(){return this.string.slice(this.start,this.pos)},hideFirstChars:function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}}};var ll=0,sl=e.TextMarker=function(e,t){this.lines=[],this.type=t,this.doc=e,this.id=++ll};xi(sl),sl.prototype.clear=function(){if(!this.explicitlyCleared){var e=this.doc.cm,t=e&&!e.curOp;if(t&&mt(e),wi(this,"clear")){var r=this.find();r&&vi(this,"clear",r.from,r.to)}for(var n=null,i=null,o=0;oe.display.maxLineLength&&(e.display.maxLine=a,e.display.maxLineLength=u,e.display.maxLineChanged=!0)}null!=n&&e&&this.collapsed&&Dt(e,n,i+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,e&&Ne(e.doc)),e&&vi(e,"markerCleared",e,this),t&&bt(e),this.parent&&this.parent.clear()}},sl.prototype.find=function(e,t){null==e&&"bookmark"==this.type&&(e=1);for(var r,n,i=0;i1||!(this.children[0]instanceof Bn))){var s=[];this.collapse(s),this.children=[new Bn(s)],this.children[0].parent=this}},collapse:function(e){for(var t=0;t50){for(;i.lines.length>50;){var l=i.lines.splice(i.lines.length-25,25),s=new Bn(l);i.height-=s.height,this.children.splice(n+1,0,s),s.parent=this}this.maybeSpill()}break}e-=o}},maybeSpill:function(){if(!(this.children.length<=10)){var e=this;do{var t=e.children.splice(e.children.length-5,5),r=new Gn(t);if(e.parent){e.size-=r.size,e.height-=r.height;var n=Ti(e.parent.children,e);e.parent.children.splice(n+1,0,r)}else{var i=new Gn(e.children);i.parent=e,e.children=[i,r],e=i}r.parent=e.parent}while(e.children.length>10);e.parent.maybeSpill()}},iterN:function(e,t,r){for(var n=0;n=0;o--)yr(this,n[o]);s?Le(this,s):this.cm&&Wr(this.cm)}),undo:At(function(){wr(this,"undo")}),redo:At(function(){wr(this,"redo")}),undoSelection:At(function(){wr(this,"undo",!0)}),redoSelection:At(function(){wr(this,"redo",!0)}),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,r=0,n=0;n=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,r){e=pe(this,e),t=pe(this,t);var n=[],i=e.line;return this.iter(e.line,t.line+1,function(o){var l=o.markedSpans;if(l)for(var s=0;sa.to||null==a.from&&i!=e.line||i==t.line&&a.from>t.ch||r&&!r(a.marker)||n.push(a.marker.parent||a.marker)}++i}),n},getAllMarks:function(){var e=[];return this.iter(function(t){var r=t.markedSpans;if(r)for(var n=0;ne?(t=e,!0):(e-=i,void++r)}),pe(this,No(r,t))},indexFromPos:function(e){e=pe(this,e);var t=e.ch;return e.linet&&(t=e.from),null!=e.to&&e.to=t)return l+(t-o);l+=s-o,l+=r-l%r,o=s+1}},Wl=[""],Ol=function(e){e.select()};bo?Ol=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:uo&&(Ol=function(e){try{e.select()}catch(t){}});var Dl,Hl=/[\u00df\u0590-\u05f4\u0600-\u06ff\u3040-\u309f\u30a0-\u30ff\u3400-\u4db5\u4e00-\u9fcc\uac00-\ud7af]/,Il=e.isWordChar=function(e){return/\w/.test(e)||e>"€"&&(e.toUpperCase()!=e.toLowerCase()||Hl.test(e))},Pl=/[\u0300-\u036f\u0483-\u0489\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u065e\u0670\u06d6-\u06dc\u06de-\u06e4\u06e7\u06e8\u06ea-\u06ed\u0711\u0730-\u074a\u07a6-\u07b0\u07eb-\u07f3\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0900-\u0902\u093c\u0941-\u0948\u094d\u0951-\u0955\u0962\u0963\u0981\u09bc\u09be\u09c1-\u09c4\u09cd\u09d7\u09e2\u09e3\u0a01\u0a02\u0a3c\u0a41\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a70\u0a71\u0a75\u0a81\u0a82\u0abc\u0ac1-\u0ac5\u0ac7\u0ac8\u0acd\u0ae2\u0ae3\u0b01\u0b3c\u0b3e\u0b3f\u0b41-\u0b44\u0b4d\u0b56\u0b57\u0b62\u0b63\u0b82\u0bbe\u0bc0\u0bcd\u0bd7\u0c3e-\u0c40\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0cbc\u0cbf\u0cc2\u0cc6\u0ccc\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0d3e\u0d41-\u0d44\u0d4d\u0d57\u0d62\u0d63\u0dca\u0dcf\u0dd2-\u0dd4\u0dd6\u0ddf\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0eb1\u0eb4-\u0eb9\u0ebb\u0ebc\u0ec8-\u0ecd\u0f18\u0f19\u0f35\u0f37\u0f39\u0f71-\u0f7e\u0f80-\u0f84\u0f86\u0f87\u0f90-\u0f97\u0f99-\u0fbc\u0fc6\u102d-\u1030\u1032-\u1037\u1039\u103a\u103d\u103e\u1058\u1059\u105e-\u1060\u1071-\u1074\u1082\u1085\u1086\u108d\u109d\u135f\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b7-\u17bd\u17c6\u17c9-\u17d3\u17dd\u180b-\u180d\u18a9\u1920-\u1922\u1927\u1928\u1932\u1939-\u193b\u1a17\u1a18\u1a56\u1a58-\u1a5e\u1a60\u1a62\u1a65-\u1a6c\u1a73-\u1a7c\u1a7f\u1b00-\u1b03\u1b34\u1b36-\u1b3a\u1b3c\u1b42\u1b6b-\u1b73\u1b80\u1b81\u1ba2-\u1ba5\u1ba8\u1ba9\u1c2c-\u1c33\u1c36\u1c37\u1cd0-\u1cd2\u1cd4-\u1ce0\u1ce2-\u1ce8\u1ced\u1dc0-\u1de6\u1dfd-\u1dff\u200c\u200d\u20d0-\u20f0\u2cef-\u2cf1\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua66f-\ua672\ua67c\ua67d\ua6f0\ua6f1\ua802\ua806\ua80b\ua825\ua826\ua8c4\ua8e0-\ua8f1\ua926-\ua92d\ua947-\ua951\ua980-\ua982\ua9b3\ua9b6-\ua9b9\ua9bc\uaa29-\uaa2e\uaa31\uaa32\uaa35\uaa36\uaa43\uaa4c\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uabe5\uabe8\uabed\udc00-\udfff\ufb1e\ufe00-\ufe0f\ufe20-\ufe26\uff9e\uff9f]/;Dl=document.createRange?function(e,t,r,n){var i=document.createRange();return i.setEnd(n||e,r),i.setStart(e,t),i}:function(e,t,r){var n=document.body.createTextRange();try{n.moveToElementText(e.parentNode)}catch(i){return n}return n.collapse(!0),n.moveEnd("character",r),n.moveStart("character",t),n};var zl=e.contains=function(e,t){if(3==t.nodeType&&(t=t.parentNode),e.contains)return e.contains(t);do if(11==t.nodeType&&(t=t.host),t==e)return!0;while(t=t.parentNode)};uo&&co<11&&(Fi=function(){try{return document.activeElement}catch(e){return document.body}});var El,Fl,Rl=e.rmClass=function(e,t){var r=e.className,n=Ri(t).exec(r);if(n){var i=r.slice(n.index+n[0].length);e.className=r.slice(0,n.index)+(i?n[1]+i:"")}},Bl=e.addClass=function(e,t){var r=e.className;Ri(t).test(r)||(e.className+=(r?" ":"")+t)},Gl=!1,Ul=function(){if(uo&&co<9)return!1;var e=Pi("div");return"draggable"in e||"dragDrop"in e}(),Vl=e.splitLines=3!="\n\nb".split(/\n/).length?function(e){for(var t=0,r=[],n=e.length;t<=n;){var i=e.indexOf("\n",t);i==-1&&(i=e.length);var o=e.slice(t,"\r"==e.charAt(i-1)?i-1:i),l=o.indexOf("\r");l!=-1?(r.push(o.slice(0,l)),t+=l+1):(r.push(o),t=i+1)}return r}:function(e){return e.split(/\r\n?|\n/)},Kl=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(t){return!1}}:function(e){try{var t=e.ownerDocument.selection.createRange()}catch(r){}return!(!t||t.parentElement()!=e)&&0!=t.compareEndPoints("StartToEnd",t)},jl=function(){var e=Pi("div");return"oncopy"in e||(e.setAttribute("oncopy","return;"),"function"==typeof e.oncopy)}(),Xl=null,_l={3:"Enter",8:"Backspace",9:"Tab",13:"Enter",16:"Shift",17:"Ctrl",18:"Alt",19:"Pause",20:"CapsLock",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"PrintScrn",45:"Insert",46:"Delete",59:";",61:"=",91:"Mod",92:"Mod",93:"Mod",107:"=",109:"-",127:"Delete",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",63232:"Up",63233:"Down",63234:"Left",63235:"Right",63272:"Delete",63273:"Home",63275:"End",63276:"PageUp",63277:"PageDown",63302:"Insert"};e.keyNames=_l,function(){for(var e=0;e<10;e++)_l[e+48]=_l[e+96]=String(e);for(var e=65;e<=90;e++)_l[e]=String.fromCharCode(e);for(var e=1;e<=12;e++)_l[e+111]=_l[e+63235]="F"+e}();var Yl,$l=function(){function e(e){return e<=247?r.charAt(e):1424<=e&&e<=1524?"R":1536<=e&&e<=1773?n.charAt(e-1536):1774<=e&&e<=2220?"r":8192<=e&&e<=8203?"w":8204==e?"b":"L"}function t(e,t,r){this.level=e,this.from=t,this.to=r}var r="bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN",n="rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm",i=/[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/,o=/[stwN]/,l=/[LRr]/,s=/[Lb1n]/,a=/[1n]/,u="L";return function(r){if(!i.test(r))return!1;for(var n,c=r.length,f=[],h=0;h