From 28f4826ceb5137336071535e88a27bbd49ea5503 Mon Sep 17 00:00:00 2001 From: Jeangowhy <118757675+Jeangowhy@users.noreply.github.com> Date: Mon, 11 Sep 2023 10:14:14 +0800 Subject: [PATCH 01/18] Update origami.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit upgrade zoom_pane(self, auto_zoom) to support auto zoom in X and Y direction,Origami settings update: // Automatically zoom the active pane. // Set it to `true` for the default zoom, or to a user-definable // fraction of the screen, such as "0.75" or [0.5, 0.7]. "auto_zoom_on_focus": [0.55, 0.75], --- origami.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/origami.py b/origami.py index e456e97..70286ff 100644 --- a/origami.py +++ b/origami.py @@ -309,11 +309,20 @@ def _on_resize_panes(self, orientation, cells, relevant_index, orig_data, text): layout = self._on_resize_panes_get_layout(orientation, cells, relevant_index, orig_data, text) self.window.set_layout(layout) - def zoom_pane(self, fraction): - if fraction is None: - fraction = .9 + def zoom_pane(self, auto_zoom): + # if fraction is None: + # fraction = .9 + fraction = .9 + height = .9 + # if isinstance(auto_zoom, float|int): + if isinstance(auto_zoom, float) or isinstance(auto_zoom, int): + fraction = auto_zoom + elif isinstance(auto_zoom, list): + fraction = auto_zoom[0] + height = auto_zoom[1] fraction = min(1, max(0, fraction)) + height = min(1, max(0, height)) window = self.window rows, cols, cells = self.get_layout() @@ -334,7 +343,8 @@ def zoom_pane(self, fraction): current_row = current_cell[1] num_rows = len(rows) - 1 - current_row_height = 1 if num_rows == 1 else fraction + # current_row_height = 1 if num_rows == 1 else fraction + current_row_height = 1 if num_rows == 1 else height other_row_height = 0 if num_rows == 1 else (1 - current_row_height) / (num_rows - 1) rows = [0.0] for i in range(num_rows): From a7ef03372f3ce22a7c84ab3dab61caaf13da355d Mon Sep 17 00:00:00 2001 From: Jeangowhy <254141203@qq.com> Date: Thu, 14 Sep 2023 20:12:38 +0800 Subject: [PATCH 02/18] update zoom_pane: You can have Origami automatically zoom the active pane by setting `auto_zoom_on_focus` in your Origami user preferences. Set it to `true` for the default zoom, or set it to a user-definable fraction of the screen, such as `0.75`, or `[0.5, 0.6]` for horitontal and vertical correspondingly. --- Origami_PR.sublime-workspace | 13111 +++++++++++++++++++++++++++++++++ README.md | 2 +- origami.py | 25 +- 3 files changed, 13124 insertions(+), 14 deletions(-) create mode 100644 Origami_PR.sublime-workspace diff --git a/Origami_PR.sublime-workspace b/Origami_PR.sublime-workspace new file mode 100644 index 0000000..be84920 --- /dev/null +++ b/Origami_PR.sublime-workspace @@ -0,0 +1,13111 @@ +{ + "auto_complete": + { + "selected_items": + [ + [ + "shell", + "shell-script" + ], + [ + "get_tm", + "get_tmpfile" + ], + [ + "M", + "Makefile" + ], + [ + "MAKE", + "MAKELEVEL" + ], + [ + "instance", + "isinstance" + ], + [ + "tuple", + "Tuple" + ], + [ + "lua", + "luacguess" + ], + [ + "for", + "forp" + ], + [ + "_", + "_VERSION" + ], + [ + "fun", + "function" + ], + [ + "xComm", + "xCommonSymbol ©" + ], + [ + "xarrow", + "xDiagonalArrowsA-LD ↙" + ], + [ + "some", + "something" + ], + [ + "load", + "loadfile(filename, mode, env)" + ], + [ + "xarrowc", + "xArrowsC-R ➡" + ], + [ + "xarrowr", + "xArrowsC-R ➡" + ], + [ + "else", + "elseif .. then" + ], + [ + "traver", + "traverse" + ], + [ + "functi", + "function ()" + ], + [ + "funct", + "function ()" + ], + [ + "xarrowU", + "xArrowsC-U ⬆" + ], + [ + "xarrorU", + "xarrowRU" + ], + [ + "xScriptilx", + "xScript-BIL-x 𝒙" + ], + [ + "xScripty", + "xScript-BIL-y 𝒚" + ], + [ + "xScriptlx", + "xScript-BIL-x 𝒙" + ], + [ + "xScriptBy", + "xScript-BU-y 𝓨" + ], + [ + "xScriptIL", + "xScript-IL 𝑓" + ], + [ + "xgeeka", + "xGreek-L-a α" + ], + [ + "xsupx", + "xsupx" + ], + [ + "Can", + "CanBeLinkSymblic" + ], + [ + "node", + "node_modules/" + ], + [ + "print", + "printUniSymbols" + ], + [ + "settings", + "settings_get" + ], + [ + "re", + "region" + ], + [ + "cla", + "class" + ], + [ + "xsupb", + "xsupb" + ], + [ + "xsupa", + "xsupa" + ], + [ + "ge", + "gettype" + ], + [ + "Write", + "Write-Progress" + ], + [ + "Arra", + "ArrayList" + ], + [ + "Start", + "StartJobs" + ], + [ + "Co", + "Collections" + ], + [ + "Format-", + "Format-Table" + ], + [ + "Get-", + "Get-Date" + ], + [ + "R", + "Remove-Job" + ], + [ + "Last", + "LASTEXITCODE" + ], + [ + "Arr", + "ArrayList" + ], + [ + "maiz", + "PyMapping_Size" + ], + [ + "main", + "mainformatlong" + ], + [ + "xdoubli", + "xDoubleStruck-I-𝕀" + ], + [ + "Par", + "Parameter" + ], + [ + "Hash", + "HashTable" + ], + [ + "sh", + "shell" + ], + [ + "USERP", + "userProfile" + ], + [ + "AccessCon", + "AccessControlType" + ], + [ + "Progra", + "ProgramData" + ], + [ + "r", + "rmdir" + ], + [ + "if", + "ifmain" + ], + [ + "py", + "pybind11" + ], + [ + "cpp", + "cppmult" + ], + [ + "get", + "get_config_var" + ], + [ + "__", + "__main__" + ], + [ + "name", + "namespace" + ], + [ + "addd", + "add_library_dir" + ], + [ + "build", + "build_cffi" + ], + [ + "dump", + "dump_traceback_later" + ], + [ + "Pyunicode1", + "PyUnicode_1BYTE_KIND" + ], + [ + "PyUni", + "PyUnicode_READ" + ], + [ + "file", + "file_chunks" + ], + [ + "default", + "default_factory" + ], + [ + "__ini", + "__init__" + ], + [ + "set_", + "set_event_loop_policy" + ], + [ + "cons", + "console_id" + ], + [ + "ex", + "execpanel" + ], + [ + "mo", + "mod_root/" + ], + [ + "function", + "create_function()" + ], + [ + "code", + "code_snippet" + ], + [ + "init", + "init_file" + ], + [ + "in", + "init_file" + ], + [ + "ini", + "init_code" + ], + [ + "win", + "window_id" + ], + [ + "oper", + "operand2" + ], + [ + "App", + "Append" + ], + [ + "under", + "underScores" + ], + [ + "sublim", + "sublime" + ], + [ + "se", + "selections" + ], + [ + "View", + "ViewLatexCommand" + ], + [ + "glo", + "globals" + ], + [ + "index", + "index_file" + ], + [ + "starts", + "str_starts_with()" + ], + [ + "fil", + "file_get_contents" + ], + [ + "ob_get", + "ob_get_length()" + ], + [ + "ob_", + "ob_start" + ], + [ + "nex", + "nextlen" + ], + [ + "tex", + "text-overflow" + ], + [ + "wor", + "word-break" + ], + [ + "ind", + "inden.m3u8" + ], + [ + "SE", + "SECTSIZE\tabc" + ], + [ + "hard", + "hard-light\t(svg.md)" + ], + [ + "g", + "知识付费时代-gitchat/" + ], + [ + "dra", + "draw/" + ], + [ + "loca", + "location\t(csharp.md)" + ], + [ + "repos", + "repository\t(csharp.md)" + ], + [ + "fle", + "flex" + ], + [ + "json", + "json_encode" + ], + [ + "JSON", + "json_encode" + ], + [ + "FILE", + "_FILES" + ], + [ + "n", + "node_modules/" + ], + [ + "value", + "value4\tlet" + ], + [ + "con", + "console\tvar" + ], + [ + "LogL", + "LogLevelStrings\ttype" + ], + [ + "par", + "parseInt\tfunction" + ], + [ + "resu", + "result2\tlet" + ], + [ + "ReactRou", + "ReactRouterDOM" + ], + [ + "ne", + "nextPuzzle" + ], + [ + "max", + "max-width\tproperty" + ], + [ + "word", + "wordlist" + ], + [ + "qml", + "main.qml" + ], + [ + "p", + "plugins/" + ], + [ + "img", + "imageMat" + ], + [ + "lena", + "lena_thresh" + ], + [ + "chapp", + "ch_app.erl" + ], + [ + "wxMen", + "wxMenuBar" + ], + [ + "create", + "create_test_menu" + ], + [ + "I", + "IsStatic" + ], + [ + "lo", + "localhost.pfx" + ], + [ + "Hook", + "KeyboardHook" + ], + [ + "Hoo", + "HookStop" + ] + ] + }, + "buffers": + [ + { + "file": "origami.py", + "settings": + { + "buffer_size": 30916, + "encoding": "UTF-8", + "line_ending": "Windows" + }, + "undo_stack": + [ + [ + 22, + 2, + "right_delete", + null, + "AgAAAE8sAAAAAAAATywAAAAAAABVAQAAICAgICMgICB1cGdyYWRlICB6b29tX3BhbmUoc2VsZiwgYXV0b196b29tKSB0byBzdXBwb3J0IGF1dG8gem9vbSBpbiBYIGFuZCBZIGRpcmVjdGlvbu+8jE9yaWdhbWkgc2V0dGluZ3MgdXBkYXRlOgogICAgIyAgIC8vIEF1dG9tYXRpY2FsbHkgem9vbSB0aGUgYWN0aXZlIHBhbmUuCiAgICAjICAgLy8gU2V0IGl0IHRvIGB0cnVlYCBmb3IgdGhlIGRlZmF1bHQgem9vbSwgb3IgdG8gYSB1c2VyLWRlZmluYWJsZQogICAgIyAgIC8vIGZyYWN0aW9uIG9mIHRoZSBzY3JlZW4sIHN1Y2ggYXMgIjAuNzUiIG9yIFswLjUsIDAuN10uCiAgICAjICAgImF1dG9fem9vbV9vbl9mb2N1cyI6IFswLjU1LCAwLjc1XSxPLAAAAAAAAE8sAAAAAAAAAQAAAAo", + "BwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAoi0AAAAAAABPLAAAAAAAAAAAAAAAAPC/" + ], + [ + 25, + 2, + "run_macro_file", + { + "file": "res://Packages/Default/Delete Line.sublime-macro" + }, + "AgAAAHMsAAAAAAAAcywAAAAAAAAfAAAAICAgICAgICAjIGlmIGZyYWN0aW9uIGlzIE5vbmU6CnMsAAAAAAAAcywAAAAAAAAcAAAAICAgICAgICAjICAgICBmcmFjdGlvbiA9IC45Cg", + "BwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAkSwAAAAAAACRLAAAAAAAAAAAAAAAAPC/" + ], + [ + 48, + 1, + "insert", + { + "characters": "_verti" + }, + "KgAAABgxAAAAAAAAGTEAAAAAAAAAAAAAnC8AAAAAAACdLwAAAAAAAAAAAADOLQAAAAAAAM8tAAAAAAAAAAAAALUtAAAAAAAAti0AAAAAAAAAAAAAci0AAAAAAABzLQAAAAAAAAAAAAAnLQAAAAAAACgtAAAAAAAAAAAAAIMsAAAAAAAAhCwAAAAAAAAAAAAAHzEAAAAAAAAgMQAAAAAAAAAAAACiLwAAAAAAAKMvAAAAAAAAAAAAANMtAAAAAAAA1C0AAAAAAAAAAAAAuS0AAAAAAAC6LQAAAAAAAAAAAAB1LQAAAAAAAHYtAAAAAAAAAAAAACktAAAAAAAAKi0AAAAAAAAAAAAAhCwAAAAAAACFLAAAAAAAAAAAAAAmMQAAAAAAACcxAAAAAAAAAAAAAKgvAAAAAAAAqS8AAAAAAAAAAAAA2C0AAAAAAADZLQAAAAAAAAAAAAC9LQAAAAAAAL4tAAAAAAAAAAAAAHgtAAAAAAAAeS0AAAAAAAAAAAAAKy0AAAAAAAAsLQAAAAAAAAAAAACFLAAAAAAAAIYsAAAAAAAAAAAAAC0xAAAAAAAALjEAAAAAAAAAAAAAri8AAAAAAACvLwAAAAAAAAAAAADdLQAAAAAAAN4tAAAAAAAAAAAAAMEtAAAAAAAAwi0AAAAAAAAAAAAAey0AAAAAAAB8LQAAAAAAAAAAAAAtLQAAAAAAAC4tAAAAAAAAAAAAAIYsAAAAAAAAhywAAAAAAAAAAAAANDEAAAAAAAA1MQAAAAAAAAAAAAC0LwAAAAAAALUvAAAAAAAAAAAAAOItAAAAAAAA4y0AAAAAAAAAAAAAxS0AAAAAAADGLQAAAAAAAAAAAAB+LQAAAAAAAH8tAAAAAAAAAAAAAC8tAAAAAAAAMC0AAAAAAAAAAAAAhywAAAAAAACILAAAAAAAAAAAAAA7MQAAAAAAADwxAAAAAAAAAAAAALovAAAAAAAAuy8AAAAAAAAAAAAA5y0AAAAAAADoLQAAAAAAAAAAAADJLQAAAAAAAMotAAAAAAAAAAAAAIEtAAAAAAAAgi0AAAAAAAAAAAAAMS0AAAAAAAAyLQAAAAAAAAAAAACILAAAAAAAAIksAAAAAAAAAAAAAA", + "BwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAAHAAAAgywAAAAAAACDLAAAAAAAAAAAAAAAAPC/Jy0AAAAAAAAnLQAAAAAAAAAAAAAAAPC/ci0AAAAAAAByLQAAAAAAAAAAAAAAAPC/tS0AAAAAAAC1LQAAAAAAAAAAAAAAAPC/zi0AAAAAAADOLQAAAAAAAAAAAAAAAPC/nC8AAAAAAACcLwAAAAAAAAAAAAAAAPC/GDEAAAAAAAAYMQAAAAAAAAAAAAAAAPC/" + ], + [ + 49, + 1, + "insert", + { + "characters": "ca" + }, + "DgAAAEIxAAAAAAAAQzEAAAAAAAAAAAAAwC8AAAAAAADBLwAAAAAAAAAAAADsLQAAAAAAAO0tAAAAAAAAAAAAAM0tAAAAAAAAzi0AAAAAAAAAAAAAhC0AAAAAAACFLQAAAAAAAAAAAAAzLQAAAAAAADQtAAAAAAAAAAAAAIksAAAAAAAAiiwAAAAAAAAAAAAASTEAAAAAAABKMQAAAAAAAAAAAADGLwAAAAAAAMcvAAAAAAAAAAAAAPEtAAAAAAAA8i0AAAAAAAAAAAAA0S0AAAAAAADSLQAAAAAAAAAAAACHLQAAAAAAAIgtAAAAAAAAAAAAADUtAAAAAAAANi0AAAAAAAAAAAAAiiwAAAAAAACLLAAAAAAAAAAAAAA", + "BwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAAHAAAAiSwAAAAAAACJLAAAAAAAAAAAAAAAAPC/My0AAAAAAAAzLQAAAAAAAAAAAAAAAPC/hC0AAAAAAACELQAAAAAAAAAAAAAAAPC/zS0AAAAAAADNLQAAAAAAAAAAAAAAAPC/7C0AAAAAAADsLQAAAAAAAAAAAAAAAPC/wC8AAAAAAADALwAAAAAAAAAAAAAAAPC/QjEAAAAAAABCMQAAAAAAAAAAAAAAAPC/" + ], + [ + 50, + 1, + "left_delete", + null, + "BwAAAE8xAAAAAAAATzEAAAAAAAABAAAAYcsvAAAAAAAAyy8AAAAAAAABAAAAYfUtAAAAAAAA9S0AAAAAAAABAAAAYdQtAAAAAAAA1C0AAAAAAAABAAAAYYktAAAAAAAAiS0AAAAAAAABAAAAYTYtAAAAAAAANi0AAAAAAAABAAAAYYosAAAAAAAAiiwAAAAAAAABAAAAYQ", + "BwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAAHAAAAiywAAAAAAACLLAAAAAAAAAAAAAAAAPC/Ny0AAAAAAAA3LQAAAAAAAAAAAAAAAPC/ii0AAAAAAACKLQAAAAAAAAAAAAAAAPC/1S0AAAAAAADVLQAAAAAAAAAAAAAAAPC/9i0AAAAAAAD2LQAAAAAAAAAAAAAAAPC/zC8AAAAAAADMLwAAAAAAAAAAAAAAAPC/UDEAAAAAAABQMQAAAAAAAAAAAAAAAPC/" + ], + [ + 51, + 1, + "insert", + { + "characters": "cal" + }, + "FQAAAEkxAAAAAAAASjEAAAAAAAAAAAAAxi8AAAAAAADHLwAAAAAAAAAAAADxLQAAAAAAAPItAAAAAAAAAAAAANEtAAAAAAAA0i0AAAAAAAAAAAAAhy0AAAAAAACILQAAAAAAAAAAAAA1LQAAAAAAADYtAAAAAAAAAAAAAIosAAAAAAAAiywAAAAAAAAAAAAAUDEAAAAAAABRMQAAAAAAAAAAAADMLwAAAAAAAM0vAAAAAAAAAAAAAPYtAAAAAAAA9y0AAAAAAAAAAAAA1S0AAAAAAADWLQAAAAAAAAAAAACKLQAAAAAAAIstAAAAAAAAAAAAADctAAAAAAAAOC0AAAAAAAAAAAAAiywAAAAAAACMLAAAAAAAAAAAAABXMQAAAAAAAFgxAAAAAAAAAAAAANIvAAAAAAAA0y8AAAAAAAAAAAAA+y0AAAAAAAD8LQAAAAAAAAAAAADZLQAAAAAAANotAAAAAAAAAAAAAI0tAAAAAAAAji0AAAAAAAAAAAAAOS0AAAAAAAA6LQAAAAAAAAAAAACMLAAAAAAAAI0sAAAAAAAAAAAAAA", + "BwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAAHAAAAiiwAAAAAAACKLAAAAAAAAAAAAAAAAPC/NS0AAAAAAAA1LQAAAAAAAAAAAAAAAPC/hy0AAAAAAACHLQAAAAAAAAAAAAAAAPC/0S0AAAAAAADRLQAAAAAAAAAAAAAAAPC/8S0AAAAAAADxLQAAAAAAAAAAAAAAAPC/xi8AAAAAAADGLwAAAAAAAAAAAAAAAPC/STEAAAAAAABJMQAAAAAAAAAAAAAAAPC/" + ], + [ + 67, + 1, + "paste", + null, + "CgAAAJQxAAAAAAAAnTEAAAAAAAAAAAAAnTEAAAAAAACdMQAAAAAAAAYAAABoZWlnaHQjLgAAAAAAACwuAAAAAAAAAAAAACwuAAAAAAAALC4AAAAAAAAGAAAAaGVpZ2h0Cy4AAAAAAAAULgAAAAAAAAAAAAAULgAAAAAAABQuAAAAAAAABgAAAGhlaWdodKwtAAAAAAAAtS0AAAAAAAAAAAAAtS0AAAAAAAC1LQAAAAAAAAYAAABoZWlnaHSbLAAAAAAAAKQsAAAAAAAAAAAAAKQsAAAAAAAApCwAAAAAAAAGAAAAaGVpZ2h0", + "BwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAAFAAAAmywAAAAAAAChLAAAAAAAAAAAAAAAAPC/rC0AAAAAAACyLQAAAAAAAAAAAAAAAPC/Cy4AAAAAAAARLgAAAAAAAAAAAAAAAPC/Iy4AAAAAAAApLgAAAAAAAAAAAAAAAPC/lDEAAAAAAACaMQAAAAAAAAAAAAAAAPC/" + ], + [ + 68, + 1, + "insert", + { + "characters": "hori" + }, + "FAAAAKkxAAAAAAAAqjEAAAAAAAAAAAAANS4AAAAAAAA2LgAAAAAAAAAAAAAaLgAAAAAAABsuAAAAAAAAAAAAALgtAAAAAAAAuS0AAAAAAAAAAAAApCwAAAAAAAClLAAAAAAAAAAAAACuMQAAAAAAAK8xAAAAAAAAAAAAADkuAAAAAAAAOi4AAAAAAAAAAAAAHS4AAAAAAAAeLgAAAAAAAAAAAAC6LQAAAAAAALstAAAAAAAAAAAAAKUsAAAAAAAApiwAAAAAAAAAAAAAszEAAAAAAAC0MQAAAAAAAAAAAAA9LgAAAAAAAD4uAAAAAAAAAAAAACAuAAAAAAAAIS4AAAAAAAAAAAAAvC0AAAAAAAC9LQAAAAAAAAAAAACmLAAAAAAAAKcsAAAAAAAAAAAAALgxAAAAAAAAuTEAAAAAAAAAAAAAQS4AAAAAAABCLgAAAAAAAAAAAAAjLgAAAAAAACQuAAAAAAAAAAAAAL4tAAAAAAAAvy0AAAAAAAAAAAAApywAAAAAAACoLAAAAAAAAAAAAAA", + "BwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAAFAAAApCwAAAAAAACkLAAAAAAAAAAAAAAAAPC/uC0AAAAAAAC4LQAAAAAAAAAAAAAAAPC/Gi4AAAAAAAAaLgAAAAAAAAAAAAAAAPC/NS4AAAAAAAA1LgAAAAAAAAAAAAAAAPC/qTEAAAAAAACpMQAAAAAAAAAAAAAAAPC/" + ], + [ + 95, + 1, + "paste", + null, + "DgAAAHExAAAAAAAAezEAAAAAAAAAAAAAezEAAAAAAAB7MQAAAAAAAAkAAAB2ZXJ0aWNjYWzrLwAAAAAAAPUvAAAAAAAAAAAAAPUvAAAAAAAA9S8AAAAAAAAJAAAAdmVydGljY2FsBS4AAAAAAAAPLgAAAAAAAAAAAAAPLgAAAAAAAA8uAAAAAAAACQAAAHZlcnRpY2NhbOItAAAAAAAA7C0AAAAAAAAAAAAA7C0AAAAAAADsLQAAAAAAAAkAAAB2ZXJ0aWNjYWyOLQAAAAAAAJgtAAAAAAAAAAAAAJgtAAAAAAAAmC0AAAAAAAAJAAAAdmVydGljY2FsOS0AAAAAAABDLQAAAAAAAAAAAABDLQAAAAAAAEMtAAAAAAAACQAAAHZlcnRpY2NhbIQsAAAAAAAAjiwAAAAAAAAAAAAAjiwAAAAAAACOLAAAAAAAAAkAAAB2ZXJ0aWNjYWw", + "BwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAAHAAAAjSwAAAAAAACELAAAAAAAAAAAAAAAAPC/Qi0AAAAAAAA5LQAAAAAAAAAAAAAAAPC/ly0AAAAAAACOLQAAAAAAAAAAAAAAAPC/6y0AAAAAAADiLQAAAAAAAAAAAAAAAPC/Di4AAAAAAAAFLgAAAAAAAAAAAAAAAPC/9C8AAAAAAADrLwAAAAAAAAAAAAAAAPC/ejEAAAAAAABxMQAAAAAAAAAAAAAAAPC/" + ], + [ + 98, + 1, + "insert", + { + "characters": "vertical" + }, + "LQAAAMAxAAAAAAAAwTEAAAAAAAAAAAAAwTEAAAAAAADBMQAAAAAAAAQAAABob3JpRi4AAAAAAABHLgAAAAAAAAAAAABHLgAAAAAAAEcuAAAAAAAABAAAAGhvcmknLgAAAAAAACguAAAAAAAAAAAAACguAAAAAAAAKC4AAAAAAAAEAAAAaG9yab8tAAAAAAAAwC0AAAAAAAAAAAAAwC0AAAAAAADALQAAAAAAAAQAAABob3JppSwAAAAAAACmLAAAAAAAAAAAAACmLAAAAAAAAKYsAAAAAAAABAAAAGhvcmm1MQAAAAAAALYxAAAAAAAAAAAAAD4uAAAAAAAAPy4AAAAAAAAAAAAAIi4AAAAAAAAjLgAAAAAAAAAAAAC9LQAAAAAAAL4tAAAAAAAAAAAAAKYsAAAAAAAApywAAAAAAAAAAAAAujEAAAAAAAC7MQAAAAAAAAAAAABCLgAAAAAAAEMuAAAAAAAAAAAAACUuAAAAAAAAJi4AAAAAAAAAAAAAvy0AAAAAAADALQAAAAAAAAAAAACnLAAAAAAAAKgsAAAAAAAAAAAAAL8xAAAAAAAAwDEAAAAAAAAAAAAARi4AAAAAAABHLgAAAAAAAAAAAAAoLgAAAAAAACkuAAAAAAAAAAAAAMEtAAAAAAAAwi0AAAAAAAAAAAAAqCwAAAAAAACpLAAAAAAAAAAAAADEMQAAAAAAAMUxAAAAAAAAAAAAAEouAAAAAAAASy4AAAAAAAAAAAAAKy4AAAAAAAAsLgAAAAAAAAAAAADDLQAAAAAAAMQtAAAAAAAAAAAAAKksAAAAAAAAqiwAAAAAAAAAAAAAyTEAAAAAAADKMQAAAAAAAAAAAABOLgAAAAAAAE8uAAAAAAAAAAAAAC4uAAAAAAAALy4AAAAAAAAAAAAAxS0AAAAAAADGLQAAAAAAAAAAAACqLAAAAAAAAKssAAAAAAAAAAAAAM4xAAAAAAAAzzEAAAAAAAAAAAAAUi4AAAAAAABTLgAAAAAAAAAAAAAxLgAAAAAAADIuAAAAAAAAAAAAAMctAAAAAAAAyC0AAAAAAAAAAAAAqywAAAAAAACsLAAAAAAAAAAAAADTMQAAAAAAANQxAAAAAAAAAAAAAFYuAAAAAAAAVy4AAAAAAAAAAAAANC4AAAAAAAA1LgAAAAAAAAAAAADJLQAAAAAAAMotAAAAAAAAAAAAAKwsAAAAAAAArSwAAAAAAAAAAAAA", + "BwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAAFAAAAqSwAAAAAAAClLAAAAAAAAAAAAAAAAPC/wy0AAAAAAAC/LQAAAAAAAAAAAAAAAPC/Ky4AAAAAAAAnLgAAAAAAAAAAAAAAAPC/Si4AAAAAAABGLgAAAAAAAAAAAAAAAPC/xDEAAAAAAADAMQAAAAAAAAAAAAAAAPC/" + ], + [ + 107, + 1, + "insert", + { + "characters": " " + }, + "AQAAAOEsAAAAAAAA4iwAAAAAAAAAAAAA", + "BwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAA4SwAAAAAAADhLAAAAAAAAAAAAAAAAPC/" + ], + [ + 110, + 1, + "right_delete", + null, + "AQAAALssAAAAAAAAuywAAAAAAAAnAAAAIyBpZiBpc2luc3RhbmNlKGF1dG9fem9vbSwgZmxvYXR8aW50KTog", + "BwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAuywAAAAAAADiLAAAAAAAAAAAAAAAAPC/" + ], + [ + 1, + 1, + "revert", + null, + "BwAAAAAAAAAAAAAAAAAAAAAAAAC/eAAAaW1wb3J0IHN1YmxpbWUKaW1wb3J0IHN1YmxpbWVfcGx1Z2luCmltcG9ydCBjb3B5CmZyb20gZnVuY3Rvb2xzIGltcG9ydCBwYXJ0aWFsCgoKU0VUVElOR1NfRklMRU5BTUUgPSAnT3JpZ2FtaS5zdWJsaW1lLXNldHRpbmdzJwpYTUlOLCBZTUlOLCBYTUFYLCBZTUFYID0gcmFuZ2UoNCkKCgpkZWYgaW5jcmVtZW50X2lmX2dyZWF0ZXJfb3JfZXF1YWwoeCwgdGhyZXNob2xkKToKICAgIGlmIHggPj0gdGhyZXNob2xkOgogICAgICAgIHJldHVybiB4ICsgMQogICAgcmV0dXJuIHgKCgpkZWYgZGVjcmVtZW50X2lmX2dyZWF0ZXIoeCwgdGhyZXNob2xkKToKICAgIGlmIHggPiB0aHJlc2hvbGQ6CiAgICAgICAgcmV0dXJuIHggLSAxCiAgICByZXR1cm4geAoKCmRlZiBwdWxsX3VwX2NlbGxzX2FmdGVyKGNlbGxzLCB0aHJlc2hvbGQpOgogICAgcmV0dXJuIFsKICAgICAgICBbeDAsIGRlY3JlbWVudF9pZl9ncmVhdGVyKHkwLCB0aHJlc2hvbGQpLCB4MSwgZGVjcmVtZW50X2lmX2dyZWF0ZXIoeTEsIHRocmVzaG9sZCldCiAgICAgICAgZm9yICh4MCwgeTAsIHgxLCB5MSkgaW4gY2VsbHMKICAgIF0KCgpkZWYgcHVzaF9yaWdodF9jZWxsc19hZnRlcihjZWxscywgdGhyZXNob2xkKToKICAgIHJldHVybiBbCiAgICAgICAgW2luY3JlbWVudF9pZl9ncmVhdGVyX29yX2VxdWFsKHgwLCB0aHJlc2hvbGQpLCB5MCwgaW5jcmVtZW50X2lmX2dyZWF0ZXJfb3JfZXF1YWwoeDEsIHRocmVzaG9sZCksIHkxXQogICAgICAgIGZvciAoeDAsIHkwLCB4MSwgeTEpIGluIGNlbGxzCiAgICBdCgoKZGVmIHB1c2hfZG93bl9jZWxsc19hZnRlcihjZWxscywgdGhyZXNob2xkKToKICAgIHJldHVybiBbCiAgICAgICAgW3gwLCBpbmNyZW1lbnRfaWZfZ3JlYXRlcl9vcl9lcXVhbCh5MCwgdGhyZXNob2xkKSwgeDEsIGluY3JlbWVudF9pZl9ncmVhdGVyX29yX2VxdWFsKHkxLCB0aHJlc2hvbGQpXQogICAgICAgIGZvciAoeDAsIHkwLCB4MSwgeTEpIGluIGNlbGxzCiAgICBdCgoKZGVmIHB1bGxfbGVmdF9jZWxsc19hZnRlcihjZWxscywgdGhyZXNob2xkKToKICAgIHJldHVybiBbCiAgICAgICAgW2RlY3JlbWVudF9pZl9ncmVhdGVyKHgwLCB0aHJlc2hvbGQpLCB5MCwgZGVjcmVtZW50X2lmX2dyZWF0ZXIoeDEsIHRocmVzaG9sZCksIHkxXQogICAgICAgIGZvciAoeDAsIHkwLCB4MSwgeTEpIGluIGNlbGxzCiAgICBdCgoKZGVmIG9wcG9zaXRlX2RpcmVjdGlvbihkaXJlY3Rpb24pOgogICAgaWYgZGlyZWN0aW9uID09ICJ1cCI6CiAgICAgICAgcmV0dXJuICJkb3duIgogICAgaWYgZGlyZWN0aW9uID09ICJyaWdodCI6CiAgICAgICAgcmV0dXJuICJsZWZ0IgogICAgaWYgZGlyZWN0aW9uID09ICJkb3duIjoKICAgICAgICByZXR1cm4gInVwIgogICAgaWYgZGlyZWN0aW9uID09ICJsZWZ0IjoKICAgICAgICByZXR1cm4gInJpZ2h0IgoKCmRlZiBjZWxsc19hZGphY2VudF90b19jZWxsX2luX2RpcmVjdGlvbihjZWxscywgY2VsbCwgZGlyZWN0aW9uKToKICAgIGlmIGRpcmVjdGlvbiA9PSAidXAiOgogICAgICAgIHJldHVybiBbYyBmb3IgYyBpbiBjZWxscyBpZiBjZWxsW1lNSU5dID09IGNbWU1BWF1dCiAgICBpZiBkaXJlY3Rpb24gPT0gInJpZ2h0IjoKICAgICAgICByZXR1cm4gW2MgZm9yIGMgaW4gY2VsbHMgaWYgY2VsbFtYTUFYXSA9PSBjW1hNSU5dXQogICAgaWYgZGlyZWN0aW9uID09ICJkb3duIjoKICAgICAgICByZXR1cm4gW2MgZm9yIGMgaW4gY2VsbHMgaWYgY2VsbFtZTUFYXSA9PSBjW1lNSU5dXQogICAgaWYgZGlyZWN0aW9uID09ICJsZWZ0IjoKICAgICAgICByZXR1cm4gW2MgZm9yIGMgaW4gY2VsbHMgaWYgY2VsbFtYTUlOXSA9PSBjW1hNQVhdXQogICAgcmFpc2UgRXhjZXB0aW9uKCdVbnN1cHBvcnRlZCBkaXJlY3Rpb24gInt9IicuZm9ybWF0KGRpcmVjdGlvbikpCgoKY2xhc3MgV2l0aFNldHRpbmdzOgogICAgX3NldHRpbmdzID0gTm9uZQoKICAgIGRlZiBzZXR0aW5ncyhzZWxmKToKICAgICAgICBpZiBzZWxmLl9zZXR0aW5ncyBpcyBOb25lOgogICAgICAgICAgICBzZWxmLl9zZXR0aW5ncyA9IHN1YmxpbWUubG9hZF9zZXR0aW5ncyhTRVRUSU5HU19GSUxFTkFNRSkKICAgICAgICByZXR1cm4gc2VsZi5fc2V0dGluZ3MKCgpjbGFzcyBQYW5lQ29tbWFuZChzdWJsaW1lX3BsdWdpbi5XaW5kb3dDb21tYW5kKToKICAgICIiIkFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIGNvbW1hbmRzLiIiIgoKICAgIGRlZiBnZXRfbGF5b3V0KHNlbGYpOgogICAgICAgIGxheW91dCA9IHNlbGYud2luZG93LmxheW91dCgpCiAgICAgICAgcm93cyA9IGxheW91dFsicm93cyJdCiAgICAgICAgY29scyA9IGxheW91dFsiY29scyJdCiAgICAgICAgY2VsbHMgPSBsYXlvdXRbImNlbGxzIl0KICAgICAgICByZXR1cm4gcm93cywgY29scywgY2VsbHMKCiAgICBkZWYgZ2V0X2NlbGxzKHNlbGYpOgogICAgICAgIHJldHVybiBzZWxmLmdldF9sYXlvdXQoKVsyXQoKICAgIGRlZiBhZGphY2VudF9jZWxsKHNlbGYsIGRpcmVjdGlvbik6CiAgICAgICAgY2VsbHMgPSBzZWxmLmdldF9jZWxscygpCiAgICAgICAgY3VycmVudF9jZWxsID0gY2VsbHNbc2VsZi53aW5kb3cuYWN0aXZlX2dyb3VwKCldCiAgICAgICAgYWRqYWNlbnRfY2VsbHMgPSBjZWxsc19hZGphY2VudF90b19jZWxsX2luX2RpcmVjdGlvbihjZWxscywgY3VycmVudF9jZWxsLCBkaXJlY3Rpb24pCiAgICAgICAgcm93cywgY29scywgXyA9IHNlbGYuZ2V0X2xheW91dCgpCgogICAgICAgIGlmIGRpcmVjdGlvbiBpbiAoImxlZnQiLCAicmlnaHQiKToKICAgICAgICAgICAgTUlOLCBNQVgsIGZpZWxkcyA9IFlNSU4sIFlNQVgsIHJvd3MKICAgICAgICBlbHNlOiAgIyB1cCBvciBkb3duCiAgICAgICAgICAgIE1JTiwgTUFYLCBmaWVsZHMgPSBYTUlOLCBYTUFYLCBjb2xzCgogICAgICAgIGNlbGxfb3ZlcmxhcCA9IFtdCiAgICAgICAgZm9yIGNlbGwgaW4gYWRqYWNlbnRfY2VsbHM6CiAgICAgICAgICAgIHN0YXJ0ID0gbWF4KGZpZWxkc1tjZWxsW01JTl1dLCBmaWVsZHNbY3VycmVudF9jZWxsW01JTl1dKQogICAgICAgICAgICBlbmQgPSBtaW4oZmllbGRzW2NlbGxbTUFYXV0sIGZpZWxkc1tjdXJyZW50X2NlbGxbTUFYXV0pCiAgICAgICAgICAgIG92ZXJsYXAgPSBlbmQgLSBzdGFydCAgIyAvIChmaWVsZHNbY2VsbFtNQVhdXSAtIGZpZWxkc1tjZWxsW01JTl1dKQogICAgICAgICAgICBjZWxsX292ZXJsYXAuYXBwZW5kKG92ZXJsYXApCgogICAgICAgIGlmIGxlbihjZWxsX292ZXJsYXApICE9IDA6CiAgICAgICAgICAgIGNlbGxfaW5kZXggPSBjZWxsX292ZXJsYXAuaW5kZXgobWF4KGNlbGxfb3ZlcmxhcCkpCiAgICAgICAgICAgIHJldHVybiBhZGphY2VudF9jZWxsc1tjZWxsX2luZGV4XQogICAgICAgIHJldHVybiBOb25lCgogICAgZGVmIGR1cGxpY2F0ZWRfdmlld3Moc2VsZiwgb3JpZ2luYWxfZ3JvdXAsIGR1cGxpY2F0aW5nX2dyb3VwKToKICAgICAgICBvcmlnaW5hbF92aWV3cyA9IHNlbGYud2luZG93LnZpZXdzX2luX2dyb3VwKG9yaWdpbmFsX2dyb3VwKQogICAgICAgIG9yaWdpbmFsX2J1ZmZlcnMgPSB7di5idWZmZXJfaWQoKSBmb3IgdiBpbiBvcmlnaW5hbF92aWV3c30KICAgICAgICBwb3RlbnRpYWxfZHVwZV92aWV3cyA9IHNlbGYud2luZG93LnZpZXdzX2luX2dyb3VwKGR1cGxpY2F0aW5nX2dyb3VwKQogICAgICAgIHJldHVybiBbcGQgZm9yIHBkIGluIHBvdGVudGlhbF9kdXBlX3ZpZXdzIGlmIHBkLmJ1ZmZlcl9pZCgpIGluIG9yaWdpbmFsX2J1ZmZlcnNdCgogICAgZGVmIHRyYXZlbF90b19wYW5lKHNlbGYsIGRpcmVjdGlvbiwgY3JlYXRlX25ld19pZl9uZWNlc3Nhcnk9RmFsc2UsIGRlc3Ryb3lfb2xkX2lmX2VtcHR5PUZhbHNlKToKICAgICAgICBhZGphY2VudF9jZWxsID0gc2VsZi5hZGphY2VudF9jZWxsKGRpcmVjdGlvbikKICAgICAgICBpZiBhZGphY2VudF9jZWxsOgogICAgICAgICAgICBjZWxscyA9IHNlbGYuZ2V0X2NlbGxzKCkKICAgICAgICAgICAgbmV3X2dyb3VwX2luZGV4ID0gY2VsbHMuaW5kZXgoYWRqYWNlbnRfY2VsbCkKICAgICAgICAgICAgc2VsZi53aW5kb3cuZm9jdXNfZ3JvdXAobmV3X2dyb3VwX2luZGV4KQogICAgICAgICAgICBpZiBkZXN0cm95X29sZF9pZl9lbXB0eToKICAgICAgICAgICAgICAgIHNlbGYuZGVzdHJveV9wYW5lKG9wcG9zaXRlX2RpcmVjdGlvbihkaXJlY3Rpb24pLCBUcnVlKQogICAgICAgIGVsaWYgY3JlYXRlX25ld19pZl9uZWNlc3Nhcnk6CiAgICAgICAgICAgIHNlbGYuY3JlYXRlX3BhbmUoZGlyZWN0aW9uLCBUcnVlLCBkZXN0cm95X29sZF9pZl9lbXB0eSkKCiAgICBkZWYgY2FycnlfZmlsZV90b19wYW5lKHNlbGYsIGRpcmVjdGlvbiwgY3JlYXRlX25ld19pZl9uZWNlc3Nhcnk9RmFsc2UsIGRlc3Ryb3lfb2xkX2lmX2VtcHR5PUZhbHNlKToKICAgICAgICB2aWV3ID0gc2VsZi53aW5kb3cuYWN0aXZlX3ZpZXcoKQogICAgICAgIGlmIHZpZXcgaXMgTm9uZToKICAgICAgICAgICAgIyBJZiB3ZSdyZSBpbiBhbiBlbXB0eSBncm91cCwgdGhlcmUncyBubyBhY3RpdmUgdmlldwogICAgICAgICAgICByZXR1cm4KICAgICAgICB3aW5kb3cgPSBzZWxmLndpbmRvdwogICAgICAgIHNlbGYudHJhdmVsX3RvX3BhbmUoZGlyZWN0aW9uLCBjcmVhdGVfbmV3X2lmX25lY2Vzc2FyeSkKCiAgICAgICAgYWN0aXZlX2dyb3VwID0gd2luZG93LmFjdGl2ZV9ncm91cCgpCiAgICAgICAgdmlld3NfaW5fZ3JvdXAgPSB3aW5kb3cudmlld3NfaW5fZ3JvdXAoYWN0aXZlX2dyb3VwKQogICAgICAgIHdpbmRvdy5zZXRfdmlld19pbmRleCh2aWV3LCBhY3RpdmVfZ3JvdXAsIGxlbih2aWV3c19pbl9ncm91cCkpCiAgICAgICAgc3VibGltZS5zZXRfdGltZW91dChsYW1iZGE6IHdpbmRvdy5mb2N1c192aWV3KHZpZXcpKQoKICAgICAgICBpZiBkZXN0cm95X29sZF9pZl9lbXB0eToKICAgICAgICAgICAgc2VsZi5kZXN0cm95X3BhbmUob3Bwb3NpdGVfZGlyZWN0aW9uKGRpcmVjdGlvbiksIFRydWUpCgogICAgZGVmIGNsb25lX2ZpbGVfdG9fcGFuZShzZWxmLCBkaXJlY3Rpb24sIGNyZWF0ZV9uZXdfaWZfbmVjZXNzYXJ5PUZhbHNlKToKICAgICAgICB3aW5kb3cgPSBzZWxmLndpbmRvdwogICAgICAgIHZpZXcgPSB3aW5kb3cuYWN0aXZlX3ZpZXcoKQogICAgICAgIGlmIHZpZXcgaXMgTm9uZToKICAgICAgICAgICAgIyBJZiB3ZSdyZSBpbiBhbiBlbXB0eSBncm91cCwgdGhlcmUncyBubyBhY3RpdmUgdmlldwogICAgICAgICAgICByZXR1cm4KICAgICAgICBncm91cCwgb3JpZ2luYWxfaW5kZXggPSB3aW5kb3cuZ2V0X3ZpZXdfaW5kZXgodmlldykKICAgICAgICB3aW5kb3cucnVuX2NvbW1hbmQoImNsb25lX2ZpbGUiKQoKICAgICAgICAjIElmIHdlIG1vdmUgdGhlIGNsb25lZCBmaWxlJ3MgdGFiIHRvIHRoZSBsZWZ0IG9mIHRoZSBvcmlnaW5hbCdzLAogICAgICAgICMgdGhlbiB3aGVuIHdlIHJlbW92ZSBpdCBmcm9tIHRoZSBncm91cCwgZm9jdXMgd2lsbCBmYWxsIHRvIHRoZQogICAgICAgICMgb3JpZ2luYWwgdmlldy4KICAgICAgICBuZXdfdmlldyA9IHdpbmRvdy5hY3RpdmVfdmlldygpCiAgICAgICAgaWYgbmV3X3ZpZXcgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgd2luZG93LnNldF92aWV3X2luZGV4KG5ld192aWV3LCBncm91cCwgb3JpZ2luYWxfaW5kZXgpCgogICAgICAgICMgRml4IHRoZSBuZXcgdmlldydzIHNlbGVjdGlvbiBhbmQgdmlld3BvcnQKICAgICAgICBuZXdfc2VsID0gbmV3X3ZpZXcuc2VsKCkKICAgICAgICBuZXdfc2VsLmNsZWFyKCkKICAgICAgICBmb3IgcyBpbiB2aWV3LnNlbCgpOgogICAgICAgICAgICBuZXdfc2VsLmFkZChzKQogICAgICAgIHN1YmxpbWUuc2V0X3RpbWVvdXQobGFtYmRhOiBuZXdfdmlldy5zZXRfdmlld3BvcnRfcG9zaXRpb24odmlldy52aWV3cG9ydF9wb3NpdGlvbigpLCBGYWxzZSksIDApCgogICAgICAgIHNlbGYuY2FycnlfZmlsZV90b19wYW5lKGRpcmVjdGlvbiwgY3JlYXRlX25ld19pZl9uZWNlc3NhcnkpCgogICAgZGVmIHJlb3JkZXJfcGFuZXMoc2VsZiwgbGVhdmVfZmlsZXNfYXRfcG9zaXRpb249VHJ1ZSk6CiAgICAgICAgb2xkX2luZGV4ID0gc2VsZi53aW5kb3cuYWN0aXZlX2dyb3VwKCkKICAgICAgICBvbl9kb25lID0gcGFydGlhbChzZWxmLl9vbl9yZW9yZGVyX2RvbmUsIG9sZF9pbmRleCwgbGVhdmVfZmlsZXNfYXRfcG9zaXRpb24pCiAgICAgICAgdmlldyA9IHNlbGYud2luZG93LnNob3dfaW5wdXRfcGFuZWwoImVudGVyIG5ldyBpbmRleCIsIHN0cihvbGRfaW5kZXggKyAxKSwgb25fZG9uZSwgTm9uZSwgTm9uZSkKICAgICAgICB2aWV3LnNlbCgpLmNsZWFyKCkKICAgICAgICB2aWV3LnNlbCgpLmFkZChzdWJsaW1lLlJlZ2lvbigwLCB2aWV3LnNpemUoKSkpCgogICAgZGVmIF9vbl9yZW9yZGVyX2RvbmUoc2VsZiwgb2xkX2luZGV4LCBsZWF2ZV9maWxlc19hdF9wb3NpdGlvbiwgdGV4dCk6CiAgICAgICAgdHJ5OgogICAgICAgICAgICBuZXdfaW5kZXggPSBpbnQodGV4dCkgLSAxCiAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CiAgICAgICAgICAgIHJldHVybgoKICAgICAgICByb3dzLCBjb2xzLCBjZWxscyA9IHNlbGYuZ2V0X2xheW91dCgpCgogICAgICAgIGlmIG5ld19pbmRleCA8IDAgb3IgbmV3X2luZGV4ID49IGxlbihjZWxscyk6CiAgICAgICAgICAgIHJldHVybgoKICAgICAgICBjZWxsc1tvbGRfaW5kZXhdLCBjZWxsc1tuZXdfaW5kZXhdID0gY2VsbHNbbmV3X2luZGV4XSwgY2VsbHNbb2xkX2luZGV4XQoKICAgICAgICBpZiBsZWF2ZV9maWxlc19hdF9wb3NpdGlvbjoKICAgICAgICAgICAgb2xkX2ZpbGVzID0gc2VsZi53aW5kb3cudmlld3NfaW5fZ3JvdXAob2xkX2luZGV4KQogICAgICAgICAgICBuZXdfZmlsZXMgPSBzZWxmLndpbmRvdy52aWV3c19pbl9ncm91cChuZXdfaW5kZXgpCiAgICAgICAgICAgIGZvciBwb3NpdGlvbiwgdiBpbiBlbnVtZXJhdGUob2xkX2ZpbGVzKToKICAgICAgICAgICAgICAgIHNlbGYud2luZG93LnNldF92aWV3X2luZGV4KHYsIG5ld19pbmRleCwgcG9zaXRpb24pCiAgICAgICAgICAgIGZvciBwb3NpdGlvbiwgdiBpbiBlbnVtZXJhdGUobmV3X2ZpbGVzKToKICAgICAgICAgICAgICAgIHNlbGYud2luZG93LnNldF92aWV3X2luZGV4KHYsIG9sZF9pbmRleCwgcG9zaXRpb24pCgogICAgICAgIGxheW91dCA9IHsiY29scyI6IGNvbHMsICJyb3dzIjogcm93cywgImNlbGxzIjogY2VsbHN9ICAjIHR5cGU6IHN1YmxpbWUuTGF5b3V0CiAgICAgICAgc2VsZi53aW5kb3cuc2V0X2xheW91dChsYXlvdXQpCgogICAgZGVmIHJlc2l6ZV9wYW5lcyhzZWxmLCBvcmllbnRhdGlvbiwgbW9kZSk6CiAgICAgICAgcm93cywgY29scywgY2VsbHMgPSBzZWxmLmdldF9sYXlvdXQoKQoKICAgICAgICBpZiBvcmllbnRhdGlvbiA9PSAiY29scyI6CiAgICAgICAgICAgIGRhdGEgPSBjb2xzCiAgICAgICAgICAgIG1pbjEgPSBZTUlOCiAgICAgICAgICAgIG1heDEgPSBZTUFYCiAgICAgICAgICAgIG1pbjIgPSBYTUlOCiAgICAgICAgICAgIG1heDIgPSBYTUFYCiAgICAgICAgZWxpZiBvcmllbnRhdGlvbiA9PSAicm93cyI6CiAgICAgICAgICAgIGRhdGEgPSByb3dzCiAgICAgICAgICAgIG1pbjEgPSBYTUlOCiAgICAgICAgICAgIG1heDEgPSBYTUFYCiAgICAgICAgICAgIG1pbjIgPSBZTUlOCiAgICAgICAgICAgIG1heDIgPSBZTUFYCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdVbnN1cHBvcnRlZCBvcmllbnRhdGlvbiAie30iJy5mb3JtYXQob3JpZW50YXRpb24pKQoKICAgICAgICByZWxldmFudF9pbmRleCA9IHNldCgpCgogICAgICAgIGlmIG1vZGUgPT0gIkJFRk9SRSI6CiAgICAgICAgICAgIGN1cnJlbnRfY2VsbCA9IGNlbGxzW3NlbGYud2luZG93LmFjdGl2ZV9ncm91cCgpXQogICAgICAgICAgICByZWxldmFudF9pbmRleC5hZGQoY3VycmVudF9jZWxsW21pbjJdKQoKICAgICAgICBlbGlmIG1vZGUgPT0gIkFGVEVSIjoKICAgICAgICAgICAgY3VycmVudF9jZWxsID0gY2VsbHNbc2VsZi53aW5kb3cuYWN0aXZlX2dyb3VwKCldCiAgICAgICAgICAgIHJlbGV2YW50X2luZGV4LmFkZChjdXJyZW50X2NlbGxbbWF4Ml0pCgogICAgICAgIGVsaWYgbW9kZSA9PSAiTkVBUkVTVCI6CiAgICAgICAgICAgIGN1cnJlbnRfY2VsbCA9IGNlbGxzW3NlbGYud2luZG93LmFjdGl2ZV9ncm91cCgpXQogICAgICAgICAgICByZWxldmFudF9pbmRleC51cGRhdGUoKGN1cnJlbnRfY2VsbFttaW4yXSwgY3VycmVudF9jZWxsW21heDJdKSkKCiAgICAgICAgZWxpZiBtb2RlID09ICJSRUxFVkFOVCI6CiAgICAgICAgICAgIGN1cnJlbnRfY2VsbCA9IGNlbGxzW3NlbGYud2luZG93LmFjdGl2ZV9ncm91cCgpXQogICAgICAgICAgICBtaW5fdmFsMSA9IGN1cnJlbnRfY2VsbFttaW4xXQogICAgICAgICAgICBtYXhfdmFsMSA9IGN1cnJlbnRfY2VsbFttYXgxXQogICAgICAgICAgICBmb3IgYyBpbiBjZWxsczoKICAgICAgICAgICAgICAgIG1pbl92YWwyID0gY1ttaW4xXQogICAgICAgICAgICAgICAgbWF4X3ZhbDIgPSBjW21heDFdCiAgICAgICAgICAgICAgICBpZiBtaW5fdmFsMSA+PSBtYXhfdmFsMiBvciBtaW5fdmFsMiA+PSBtYXhfdmFsMToKICAgICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgICAgcmVsZXZhbnRfaW5kZXgudXBkYXRlKChjW21pbjJdLCBjW21heDJdKSkKCiAgICAgICAgZWxpZiBtb2RlID09ICJBTEwiOgogICAgICAgICAgICByZWxldmFudF9pbmRleC51cGRhdGUocmFuZ2UobGVuKGRhdGEpKSkKCiAgICAgICAgcmVsZXZhbnRfaW5kZXguZGlmZmVyZW5jZV91cGRhdGUoKDAsIGxlbihkYXRhKSAtIDEpKSAgIyBkb250IHNob3cgdGhlIGZpcnN0IGFuZCBsYXN0IHZhbHVlIChpdCdzIGFsd2F5cyAwIGFuZCAxKQogICAgICAgIHJlbGV2YW50X2luZGV4ID0gc29ydGVkKHJlbGV2YW50X2luZGV4KQoKICAgICAgICB0ZXh0ID0gIiwgIi5qb2luKHN0cihkYXRhW2ldKSBmb3IgaSBpbiByZWxldmFudF9pbmRleCkKICAgICAgICBvbl9kb25lID0gcGFydGlhbChzZWxmLl9vbl9yZXNpemVfcGFuZXMsIG9yaWVudGF0aW9uLCBjZWxscywgcmVsZXZhbnRfaW5kZXgsIGRhdGEpCiAgICAgICAgb25fdXBkYXRlID0gcGFydGlhbChzZWxmLl9vbl9yZXNpemVfcGFuZXNfdXBkYXRlLCBvcmllbnRhdGlvbiwgY2VsbHMsIHJlbGV2YW50X2luZGV4LCBkYXRhKQogICAgICAgIG9uX2NhbmNsZSA9IHBhcnRpYWwoc2VsZi5fb25fcmVzaXplX3BhbmVzLCBvcmllbnRhdGlvbiwgY2VsbHMsIHJlbGV2YW50X2luZGV4LCBkYXRhLCB0ZXh0KQogICAgICAgIHZpZXcgPSBzZWxmLndpbmRvdy5zaG93X2lucHV0X3BhbmVsKG9yaWVudGF0aW9uLCB0ZXh0LCBvbl9kb25lLCBvbl91cGRhdGUsIG9uX2NhbmNsZSkKICAgICAgICB2aWV3LnNlbCgpLmNsZWFyKCkKICAgICAgICB2aWV3LnNlbCgpLmFkZChzdWJsaW1lLlJlZ2lvbigwLCB2aWV3LnNpemUoKSkpCgogICAgZGVmIF9vbl9yZXNpemVfcGFuZXNfZ2V0X2xheW91dChzZWxmLCBvcmllbnRhdGlvbiwgY2VsbHMsIHJlbGV2YW50X2luZGV4LCBvcmlnX2RhdGEsIHRleHQpOgogICAgICAgIHJvd3MsIGNvbHMsIF8gPSBzZWxmLmdldF9sYXlvdXQoKQoKICAgICAgICBpbnB1dF9kYXRhID0gW2Zsb2F0KHgpIGZvciB4IGluIHRleHQuc3BsaXQoIiwiKV0KICAgICAgICBpZiBhbnkoZCA+IDEuMCBmb3IgZCBpbiBpbnB1dF9kYXRhKToKICAgICAgICAgICAgcmV0dXJuIHsiY29scyI6IGNvbHMsICJyb3dzIjogcm93cywgImNlbGxzIjogY2VsbHN9CgogICAgICAgIGNlbGxzID0gY29weS5kZWVwY29weShjZWxscykKICAgICAgICBkYXRhID0gY29weS5kZWVwY29weShvcmlnX2RhdGEpCiAgICAgICAgZm9yIGksIGQgaW4gemlwKHJlbGV2YW50X2luZGV4LCBpbnB1dF9kYXRhKToKICAgICAgICAgICAgZGF0YVtpXSA9IGQKCiAgICAgICAgZGF0YSA9IHNvcnRlZChlbnVtZXJhdGUoZGF0YSksIGtleT1sYW1iZGEgeDogeFsxXSkgICMgc29ydCBzdWNoIHRoYXQgeW91IGNhbiBzd2FwIGdyaWQgbGluZXMKICAgICAgICBpbmRleGVzLCBkYXRhID0gbWFwKGxpc3QsIHppcCgqZGF0YSkpICAjIGluZGV4ZXMgYXJlIGFsc28gc29ydGVkCgogICAgICAgIHJldmVsYW50X2NlbGxfZW50cmllcyA9IFtdCiAgICAgICAgaWYgb3JpZW50YXRpb24gPT0gImNvbHMiOgogICAgICAgICAgICByZXZlbGFudF9jZWxsX2VudHJpZXMgPSBbWE1JTiwgWE1BWF0KICAgICAgICBlbGlmIG9yaWVudGF0aW9uID09ICJyb3dzIjoKICAgICAgICAgICAgcmV2ZWxhbnRfY2VsbF9lbnRyaWVzID0gW1lNSU4sIFlNQVhdCgogICAgICAgICMgY2hhbmdlIHRoZSBjZWxsIGJvdW5kYXJpZXMgYWNjb3JkaW5nIHRvIHRoZSBzb3J0ZWQgaW5kZXhlcwogICAgICAgIGZvciBjZWxsIGluIGNlbGxzOgogICAgICAgICAgICBmb3IgaiBpbiByZXZlbGFudF9jZWxsX2VudHJpZXM6CiAgICAgICAgICAgICAgICBmb3IgbmV3LCBvbGQgaW4gZW51bWVyYXRlKGluZGV4ZXMpOgogICAgICAgICAgICAgICAgICAgIGlmIG5ldyAhPSBvbGQgYW5kIGNlbGxbal0gPT0gbmV3OgogICAgICAgICAgICAgICAgICAgICAgICBjZWxsW2pdID0gb2xkCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCgogICAgICAgIGlmIG9yaWVudGF0aW9uID09ICJjb2xzIjoKICAgICAgICAgICAgaWYgbGVuKGNvbHMpID09IGxlbihkYXRhKToKICAgICAgICAgICAgICAgIGNvbHMgPSBkYXRhCiAgICAgICAgZWxpZiBvcmllbnRhdGlvbiA9PSAicm93cyI6CiAgICAgICAgICAgIGlmIGxlbihyb3dzKSA9PSBsZW4oZGF0YSk6CiAgICAgICAgICAgICAgICByb3dzID0gZGF0YQoKICAgICAgICByZXR1cm4geyJjb2xzIjogY29scywgInJvd3MiOiByb3dzLCAiY2VsbHMiOiBjZWxsc30KCiAgICBkZWYgX29uX3Jlc2l6ZV9wYW5lc191cGRhdGUoc2VsZiwgb3JpZW50YXRpb24sIGNlbGxzLCByZWxldmFudF9pbmRleCwgb3JpZ19kYXRhLCB0ZXh0KToKICAgICAgICBsYXlvdXQgPSBzZWxmLl9vbl9yZXNpemVfcGFuZXNfZ2V0X2xheW91dChvcmllbnRhdGlvbiwgY2VsbHMsIHJlbGV2YW50X2luZGV4LCBvcmlnX2RhdGEsIHRleHQpCiAgICAgICAgc2VsZi53aW5kb3cuc2V0X2xheW91dChsYXlvdXQpCgogICAgZGVmIF9vbl9yZXNpemVfcGFuZXMoc2VsZiwgb3JpZW50YXRpb24sIGNlbGxzLCByZWxldmFudF9pbmRleCwgb3JpZ19kYXRhLCB0ZXh0KToKICAgICAgICBsYXlvdXQgPSBzZWxmLl9vbl9yZXNpemVfcGFuZXNfZ2V0X2xheW91dChvcmllbnRhdGlvbiwgY2VsbHMsIHJlbGV2YW50X2luZGV4LCBvcmlnX2RhdGEsIHRleHQpCiAgICAgICAgc2VsZi53aW5kb3cuc2V0X2xheW91dChsYXlvdXQpCgoKICAgIGRlZiB6b29tX3BhbmUoc2VsZiwgYXV0b196b29tKToKICAgICAgICBmcmFjdGlvbl9ob3Jpem9udGFsID0gLjkKICAgICAgICBmcmFjdGlvbl92ZXJ0aWNhbCA9IC45CiAgICAgICAgCiAgICAgICAgaWYgaXNpbnN0YW5jZShhdXRvX3pvb20sIGZsb2F0KSBvciBpc2luc3RhbmNlKGF1dG9fem9vbSwgaW50KToKICAgICAgICAgICAgZnJhY3Rpb25faG9yaXpvbnRhbCA9IGF1dG9fem9vbQogICAgICAgIGVsaWYgaXNpbnN0YW5jZShhdXRvX3pvb20sIGxpc3QpOgogICAgICAgICAgICBmcmFjdGlvbl9ob3Jpem9udGFsID0gYXV0b196b29tWzBdCiAgICAgICAgICAgIGZyYWN0aW9uX3ZlcnRpY2FsID0gYXV0b196b29tWzFdCgogICAgICAgIGZyYWN0aW9uX2hvcml6b250YWwgPSBtaW4oMSwgbWF4KDAsIGZyYWN0aW9uX2hvcml6b250YWwpKQogICAgICAgIGZyYWN0aW9uX3ZlcnRpY2FsICA9IG1pbigxLCBtYXgoMCwgZnJhY3Rpb25fdmVydGljYWwpKQoKICAgICAgICB3aW5kb3cgPSBzZWxmLndpbmRvdwogICAgICAgIHJvd3MsIGNvbHMsIGNlbGxzID0gc2VsZi5nZXRfbGF5b3V0KCkKICAgICAgICBjdXJyZW50X2NlbGwgPSBjZWxsc1t3aW5kb3cuYWN0aXZlX2dyb3VwKCldCgogICAgICAgIGN1cnJlbnRfY29sID0gY3VycmVudF9jZWxsWzBdCiAgICAgICAgbnVtX2NvbHMgPSBsZW4oY29scykgLSAxCgogICAgICAgICMgVE9ETzogdGhlIHNpemVzIG9mIHRoZSB1bnpvb21lZCBwYW5lcyBhcmUgY2FsY3VsYXRlZCBpbmNvcnJlY3RseSBpZiB0aGUKICAgICAgICAjICAgICAgIHVuem9vbWVkIHBhbmVzIGhhdmUgYSBzcGxpdCB0aGF0IG92ZXJsYXBzIHRoZSB6b29tZWQgcGFuZS4KICAgICAgICBjdXJyZW50X2NvbF93aWR0aCA9IDEgaWYgbnVtX2NvbHMgPT0gMSBlbHNlIGZyYWN0aW9uX2hvcml6b250YWwKICAgICAgICBvdGhlcl9jb2xfd2lkdGggPSAwIGlmIG51bV9jb2xzID09IDEgZWxzZSAoMSAtIGN1cnJlbnRfY29sX3dpZHRoKSAvIChudW1fY29scyAtIDEpCgogICAgICAgIGNvbHMgPSBbMC4wXQogICAgICAgIGZvciBpIGluIHJhbmdlKG51bV9jb2xzKToKICAgICAgICAgICAgY29scy5hcHBlbmQoY29sc1tpXSArIChjdXJyZW50X2NvbF93aWR0aCBpZiBpID09IGN1cnJlbnRfY29sIGVsc2Ugb3RoZXJfY29sX3dpZHRoKSkKCiAgICAgICAgY3VycmVudF9yb3cgPSBjdXJyZW50X2NlbGxbMV0KICAgICAgICBudW1fcm93cyA9IGxlbihyb3dzKSAtIDEKCiAgICAgICAgIyBjdXJyZW50X3Jvd19oZWlnaHQgPSAxIGlmIG51bV9yb3dzID09IDEgZWxzZSBmcmFjdGlvbl9ob3Jpem9udGFsCiAgICAgICAgY3VycmVudF9yb3dfaGVpZ2h0ID0gMSBpZiBudW1fcm93cyA9PSAxIGVsc2UgZnJhY3Rpb25fdmVydGljYWwKICAgICAgICBvdGhlcl9yb3dfaGVpZ2h0ID0gMCBpZiBudW1fcm93cyA9PSAxIGVsc2UgKDEgLSBjdXJyZW50X3Jvd19oZWlnaHQpIC8gKG51bV9yb3dzIC0gMSkKICAgICAgICByb3dzID0gWzAuMF0KICAgICAgICBmb3IgaSBpbiByYW5nZShudW1fcm93cyk6CiAgICAgICAgICAgIHJvd3MuYXBwZW5kKHJvd3NbaV0gKyAoY3VycmVudF9yb3dfaGVpZ2h0IGlmIGkgPT0gY3VycmVudF9yb3cgZWxzZSBvdGhlcl9yb3dfaGVpZ2h0KSkKCiAgICAgICAgbGF5b3V0ID0geyJjb2xzIjogY29scywgInJvd3MiOiByb3dzLCAiY2VsbHMiOiBjZWxsc30gICMgdHlwZTogc3VibGltZS5MYXlvdXQKICAgICAgICB3aW5kb3cuc2V0X2xheW91dChsYXlvdXQpCgogICAgZGVmIHVuem9vbV9wYW5lKHNlbGYpOgogICAgICAgIHdpbmRvdyA9IHNlbGYud2luZG93CiAgICAgICAgcm93cywgY29scywgY2VsbHMgPSBzZWxmLmdldF9sYXlvdXQoKQoKICAgICAgICBudW1fY29scyA9IGxlbihjb2xzKSAtIDEKICAgICAgICBjb2xfd2lkdGggPSAxLjAgLyBudW1fY29scwoKICAgICAgICBjb2xzID0gWzAuMF0KICAgICAgICBmb3IgaSBpbiByYW5nZShudW1fY29scyk6CiAgICAgICAgICAgIGNvbHMuYXBwZW5kKGNvbHNbaV0gKyBjb2xfd2lkdGgpCgogICAgICAgIG51bV9yb3dzID0gbGVuKHJvd3MpIC0gMQogICAgICAgIHJvd19oZWlnaHQgPSAxLjAgLyBudW1fcm93cwoKICAgICAgICByb3dzID0gWzAuMF0KICAgICAgICBmb3IgaSBpbiByYW5nZShudW1fcm93cyk6CiAgICAgICAgICAgIHJvd3MuYXBwZW5kKHJvd3NbaV0gKyByb3dfaGVpZ2h0KQoKICAgICAgICBsYXlvdXQgPSB7ImNvbHMiOiBjb2xzLCAicm93cyI6IHJvd3MsICJjZWxscyI6IGNlbGxzfSAgIyB0eXBlOiBzdWJsaW1lLkxheW91dAogICAgICAgIHdpbmRvdy5zZXRfbGF5b3V0KGxheW91dCkKCiAgICBkZWYgdG9nZ2xlX3pvb20oc2VsZiwgZnJhY3Rpb24pOgogICAgICAgIHJvd3MsIGNvbHMsIGNlbGxzID0gc2VsZi5nZXRfbGF5b3V0KCkKICAgICAgICBlcXVhbF9zcGFjaW5nID0gVHJ1ZQoKICAgICAgICBudW1fY29scyA9IGxlbihjb2xzKSAtIDEKICAgICAgICBjb2xfd2lkdGggPSAxIC8gbnVtX2NvbHMKCiAgICAgICAgZm9yIGksIGMgaW4gZW51bWVyYXRlKGNvbHMpOgogICAgICAgICAgICBpZiBjICE9IGkgKiBjb2xfd2lkdGg6CiAgICAgICAgICAgICAgICBlcXVhbF9zcGFjaW5nID0gRmFsc2UKICAgICAgICAgICAgICAgIGJyZWFrCgogICAgICAgIG51bV9yb3dzID0gbGVuKHJvd3MpIC0gMQogICAgICAgIHJvd19oZWlnaHQgPSAxIC8gbnVtX3Jvd3MKCiAgICAgICAgZm9yIGksIHIgaW4gZW51bWVyYXRlKHJvd3MpOgogICAgICAgICAgICBpZiByICE9IGkgKiByb3dfaGVpZ2h0OgogICAgICAgICAgICAgICAgZXF1YWxfc3BhY2luZyA9IEZhbHNlCiAgICAgICAgICAgICAgICBicmVhawoKICAgICAgICBpZiBlcXVhbF9zcGFjaW5nOgogICAgICAgICAgICBzZWxmLnpvb21fcGFuZShmcmFjdGlvbikKICAgICAgICBlbHNlOgogICAgICAgICAgICBzZWxmLnVuem9vbV9wYW5lKCkKCiAgICBkZWYgY3JlYXRlX3BhbmUoc2VsZiwgZGlyZWN0aW9uLCBnaXZlX2ZvY3VzPUZhbHNlLCBkZXN0cm95X29sZF9pZl9lbXB0eT1GYWxzZSk6CiAgICAgICAgd2luZG93ID0gc2VsZi53aW5kb3cKICAgICAgICByb3dzLCBjb2xzLCBjZWxscyA9IHNlbGYuZ2V0X2xheW91dCgpCiAgICAgICAgY3VycmVudF9ncm91cCA9IHdpbmRvdy5hY3RpdmVfZ3JvdXAoKQoKICAgICAgICBvbGRfY2VsbCA9IGNlbGxzLnBvcChjdXJyZW50X2dyb3VwKQogICAgICAgIG5ld19jZWxsID0gW10KCiAgICAgICAgaWYgZGlyZWN0aW9uIGluICgidXAiLCAiZG93biIpOgogICAgICAgICAgICBjZWxscyA9IHB1c2hfZG93bl9jZWxsc19hZnRlcihjZWxscywgb2xkX2NlbGxbWU1BWF0pCiAgICAgICAgICAgIHJvd3MuaW5zZXJ0KG9sZF9jZWxsW1lNQVhdLCAocm93c1tvbGRfY2VsbFtZTUlOXV0gKyByb3dzW29sZF9jZWxsW1lNQVhdXSkgLyAyKQogICAgICAgICAgICBuZXdfY2VsbCA9IFtvbGRfY2VsbFtYTUlOXSwgb2xkX2NlbGxbWU1BWF0sIG9sZF9jZWxsW1hNQVhdLCBvbGRfY2VsbFtZTUFYXSArIDFdCiAgICAgICAgICAgIG9sZF9jZWxsID0gW29sZF9jZWxsW1hNSU5dLCBvbGRfY2VsbFtZTUlOXSwgb2xkX2NlbGxbWE1BWF0sIG9sZF9jZWxsW1lNQVhdXQoKICAgICAgICBlbGlmIGRpcmVjdGlvbiBpbiAoInJpZ2h0IiwgImxlZnQiKToKICAgICAgICAgICAgY2VsbHMgPSBwdXNoX3JpZ2h0X2NlbGxzX2FmdGVyKGNlbGxzLCBvbGRfY2VsbFtYTUFYXSkKICAgICAgICAgICAgY29scy5pbnNlcnQob2xkX2NlbGxbWE1BWF0sIChjb2xzW29sZF9jZWxsW1hNSU5dXSArIGNvbHNbb2xkX2NlbGxbWE1BWF1dKSAvIDIpCiAgICAgICAgICAgIG5ld19jZWxsID0gW29sZF9jZWxsW1hNQVhdLCBvbGRfY2VsbFtZTUlOXSwgb2xkX2NlbGxbWE1BWF0gKyAxLCBvbGRfY2VsbFtZTUFYXV0KICAgICAgICAgICAgb2xkX2NlbGwgPSBbb2xkX2NlbGxbWE1JTl0sIG9sZF9jZWxsW1lNSU5dLCBvbGRfY2VsbFtYTUFYXSwgb2xkX2NlbGxbWU1BWF1dCgogICAgICAgIGlmIG5ld19jZWxsOgogICAgICAgICAgICBpZiBkaXJlY3Rpb24gaW4gKCJsZWZ0IiwgInVwIik6CiAgICAgICAgICAgICAgICBmb2N1c2VkX2NlbGwgPSBuZXdfY2VsbAogICAgICAgICAgICAgICAgdW5mb2N1c2VkX2NlbGwgPSBvbGRfY2VsbAogICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgZm9jdXNlZF9jZWxsID0gb2xkX2NlbGwKICAgICAgICAgICAgICAgIHVuZm9jdXNlZF9jZWxsID0gbmV3X2NlbGwKICAgICAgICAgICAgY2VsbHMuaW5zZXJ0KGN1cnJlbnRfZ3JvdXAsIGZvY3VzZWRfY2VsbCkKICAgICAgICAgICAgY2VsbHMuYXBwZW5kKHVuZm9jdXNlZF9jZWxsKQogICAgICAgICAgICBsYXlvdXQgPSB7ImNvbHMiOiBjb2xzLCAicm93cyI6IHJvd3MsICJjZWxscyI6IGNlbGxzfSAgIyB0eXBlOiBzdWJsaW1lLkxheW91dAogICAgICAgICAgICB3aW5kb3cuc2V0X2xheW91dChsYXlvdXQpCgogICAgICAgICAgICBpZiBnaXZlX2ZvY3VzOgogICAgICAgICAgICAgICAgc2VsZi50cmF2ZWxfdG9fcGFuZShkaXJlY3Rpb24sIEZhbHNlLCBkZXN0cm95X29sZF9pZl9lbXB0eSkKCiAgICBkZWYgZGVzdHJveV9jdXJyZW50X3BhbmUoc2VsZik6CiAgICAgICAgIyBPdXQgb2YgdGhlIGZvdXIgYWRqYWNlbnQgcGFuZXMsIG9uZSB3YXMgc3BsaXQgdG8gY3JlYXRlIHRoaXMgcGFuZS4KICAgICAgICAjIEZpbmQgb3V0IHdoaWNoIG9uZSwgbW92ZSB0byBpdCwgdGhlbiBkZXN0cm95IHRoaXMgcGFuZS4KICAgICAgICBjZWxscyA9IHNlbGYuZ2V0X2NlbGxzKCkKCiAgICAgICAgY3VycmVudCA9IGNlbGxzW3NlbGYud2luZG93LmFjdGl2ZV9ncm91cCgpXQoKICAgICAgICB0YXJnZXRfZGlyID0gTm9uZQogICAgICAgIGZvciBkaXIgaW4gKCJ1cCIsICJyaWdodCIsICJkb3duIiwgImxlZnQiKToKICAgICAgICAgICAgYyA9IHNlbGYuYWRqYWNlbnRfY2VsbChkaXIpCiAgICAgICAgICAgIGlmIG5vdCBjOgogICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgaWYgZGlyIGluICgidXAiLCAiZG93biIpOgogICAgICAgICAgICAgICAgaWYgY1tYTUlOXSA9PSBjdXJyZW50W1hNSU5dIGFuZCBjW1hNQVhdID09IGN1cnJlbnRbWE1BWF06CiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2RpciA9IGRpcgogICAgICAgICAgICBlbGlmIGRpciBpbiAoImxlZnQiLCAicmlnaHQiKToKICAgICAgICAgICAgICAgIGlmIGNbWU1JTl0gPT0gY3VycmVudFtZTUlOXSBhbmQgY1tZTUFYXSA9PSBjdXJyZW50W1lNQVhdOgogICAgICAgICAgICAgICAgICAgIHRhcmdldF9kaXIgPSBkaXIKICAgICAgICBpZiB0YXJnZXRfZGlyOgogICAgICAgICAgICBzZWxmLnRyYXZlbF90b19wYW5lKHRhcmdldF9kaXIpCiAgICAgICAgICAgIHNlbGYuZGVzdHJveV9wYW5lKG9wcG9zaXRlX2RpcmVjdGlvbih0YXJnZXRfZGlyKSkKCiAgICBkZWYgZGVzdHJveV9wYW5lKHNlbGYsIGRpcmVjdGlvbiwgb25seV9vbl9lbXB0eT1GYWxzZSk6CiAgICAgICAgaWYgZGlyZWN0aW9uID09ICJzZWxmIjoKICAgICAgICAgICAgc2VsZi5kZXN0cm95X2N1cnJlbnRfcGFuZSgpCiAgICAgICAgICAgIHJldHVybgoKICAgICAgICB3aW5kb3cgPSBzZWxmLndpbmRvdwogICAgICAgIHJvd3MsIGNvbHMsIGNlbGxzID0gc2VsZi5nZXRfbGF5b3V0KCkKICAgICAgICBjdXJyZW50X2dyb3VwID0gd2luZG93LmFjdGl2ZV9ncm91cCgpCgogICAgICAgIGNlbGxfdG9fcmVtb3ZlID0gTm9uZQogICAgICAgIGN1cnJlbnRfY2VsbCA9IGNlbGxzW2N1cnJlbnRfZ3JvdXBdCgogICAgICAgIGFkamFjZW50X2NlbGxzID0gY2VsbHNfYWRqYWNlbnRfdG9fY2VsbF9pbl9kaXJlY3Rpb24oY2VsbHMsIGN1cnJlbnRfY2VsbCwgZGlyZWN0aW9uKQogICAgICAgIGlmIGxlbihhZGphY2VudF9jZWxscykgPT0gMToKICAgICAgICAgICAgY2VsbF90b19yZW1vdmUgPSBhZGphY2VudF9jZWxsc1swXQoKICAgICAgICBpZiBjZWxsX3RvX3JlbW92ZToKICAgICAgICAgICAgYWN0aXZlX3ZpZXcgPSB3aW5kb3cuYWN0aXZlX3ZpZXcoKQogICAgICAgICAgICBncm91cF90b19yZW1vdmUgPSBjZWxscy5pbmRleChjZWxsX3RvX3JlbW92ZSkKICAgICAgICAgICAgaGFzX2NvbnRlbnQgPSBsZW4od2luZG93LnNoZWV0c19pbl9ncm91cChncm91cF90b19yZW1vdmUpKSA+IDAKICAgICAgICAgICAgaWYgb25seV9vbl9lbXB0eSBhbmQgaGFzX2NvbnRlbnQ6CiAgICAgICAgICAgICAgICByZXR1cm4KCiAgICAgICAgICAgIGR1cGVfdmlld3MgPSBzZWxmLmR1cGxpY2F0ZWRfdmlld3MoY3VycmVudF9ncm91cCwgZ3JvdXBfdG9fcmVtb3ZlKQogICAgICAgICAgICBmb3IgZCBpbiBkdXBlX3ZpZXdzOgogICAgICAgICAgICAgICAgd2luZG93LmZvY3VzX3ZpZXcoZCkKICAgICAgICAgICAgICAgIHdpbmRvdy5ydW5fY29tbWFuZCgnY2xvc2UnKQogICAgICAgICAgICBpZiBhY3RpdmVfdmlldzoKICAgICAgICAgICAgICAgIHdpbmRvdy5mb2N1c192aWV3KGFjdGl2ZV92aWV3KQoKICAgICAgICAgICAgY2VsbHMucmVtb3ZlKGNlbGxfdG9fcmVtb3ZlKQogICAgICAgICAgICBpZiBkaXJlY3Rpb24gPT0gInVwIjoKICAgICAgICAgICAgICAgIHJvd3MucG9wKGNlbGxfdG9fcmVtb3ZlW1lNQVhdKQogICAgICAgICAgICAgICAgYWRqYWNlbnRfY2VsbHMgPSBjZWxsc19hZGphY2VudF90b19jZWxsX2luX2RpcmVjdGlvbihjZWxscywgY2VsbF90b19yZW1vdmUsICJkb3duIikKICAgICAgICAgICAgICAgIGZvciBjZWxsIGluIGFkamFjZW50X2NlbGxzOgogICAgICAgICAgICAgICAgICAgIGNlbGxzW2NlbGxzLmluZGV4KGNlbGwpXVtZTUlOXSA9IGNlbGxfdG9fcmVtb3ZlW1lNSU5dCiAgICAgICAgICAgICAgICBjZWxscyA9IHB1bGxfdXBfY2VsbHNfYWZ0ZXIoY2VsbHMsIGNlbGxfdG9fcmVtb3ZlW1lNQVhdKQogICAgICAgICAgICBlbGlmIGRpcmVjdGlvbiA9PSAicmlnaHQiOgogICAgICAgICAgICAgICAgY29scy5wb3AoY2VsbF90b19yZW1vdmVbWE1JTl0pCiAgICAgICAgICAgICAgICBhZGphY2VudF9jZWxscyA9IGNlbGxzX2FkamFjZW50X3RvX2NlbGxfaW5fZGlyZWN0aW9uKGNlbGxzLCBjZWxsX3RvX3JlbW92ZSwgImxlZnQiKQogICAgICAgICAgICAgICAgZm9yIGNlbGwgaW4gYWRqYWNlbnRfY2VsbHM6CiAgICAgICAgICAgICAgICAgICAgY2VsbHNbY2VsbHMuaW5kZXgoY2VsbCldW1hNQVhdID0gY2VsbF90b19yZW1vdmVbWE1BWF0KICAgICAgICAgICAgICAgIGNlbGxzID0gcHVsbF9sZWZ0X2NlbGxzX2FmdGVyKGNlbGxzLCBjZWxsX3RvX3JlbW92ZVtYTUlOXSkKICAgICAgICAgICAgZWxpZiBkaXJlY3Rpb24gPT0gImRvd24iOgogICAgICAgICAgICAgICAgcm93cy5wb3AoY2VsbF90b19yZW1vdmVbWU1JTl0pCiAgICAgICAgICAgICAgICBhZGphY2VudF9jZWxscyA9IGNlbGxzX2FkamFjZW50X3RvX2NlbGxfaW5fZGlyZWN0aW9uKGNlbGxzLCBjZWxsX3RvX3JlbW92ZSwgInVwIikKICAgICAgICAgICAgICAgIGZvciBjZWxsIGluIGFkamFjZW50X2NlbGxzOgogICAgICAgICAgICAgICAgICAgIGNlbGxzW2NlbGxzLmluZGV4KGNlbGwpXVtZTUFYXSA9IGNlbGxfdG9fcmVtb3ZlW1lNQVhdCiAgICAgICAgICAgICAgICBjZWxscyA9IHB1bGxfdXBfY2VsbHNfYWZ0ZXIoY2VsbHMsIGNlbGxfdG9fcmVtb3ZlW1lNSU5dKQogICAgICAgICAgICBlbGlmIGRpcmVjdGlvbiA9PSAibGVmdCI6CiAgICAgICAgICAgICAgICBjb2xzLnBvcChjZWxsX3RvX3JlbW92ZVtYTUFYXSkKICAgICAgICAgICAgICAgIGFkamFjZW50X2NlbGxzID0gY2VsbHNfYWRqYWNlbnRfdG9fY2VsbF9pbl9kaXJlY3Rpb24oY2VsbHMsIGNlbGxfdG9fcmVtb3ZlLCAicmlnaHQiKQogICAgICAgICAgICAgICAgZm9yIGNlbGwgaW4gYWRqYWNlbnRfY2VsbHM6CiAgICAgICAgICAgICAgICAgICAgY2VsbHNbY2VsbHMuaW5kZXgoY2VsbCldW1hNSU5dID0gY2VsbF90b19yZW1vdmVbWE1JTl0KICAgICAgICAgICAgICAgIGNlbGxzID0gcHVsbF9sZWZ0X2NlbGxzX2FmdGVyKGNlbGxzLCBjZWxsX3RvX3JlbW92ZVtYTUFYXSkKCiAgICAgICAgICAgIGxheW91dCA9IHsiY29scyI6IGNvbHMsICJyb3dzIjogcm93cywgImNlbGxzIjogY2VsbHN9ICAjIHR5cGU6IHN1YmxpbWUuTGF5b3V0CiAgICAgICAgICAgIHdpbmRvdy5zZXRfbGF5b3V0KGxheW91dCkKCiAgICBkZWYgcHVsbF9maWxlX2Zyb21fcGFuZShzZWxmLCBkaXJlY3Rpb24pOgogICAgICAgIGFkamFjZW50X2NlbGwgPSBzZWxmLmFkamFjZW50X2NlbGwoZGlyZWN0aW9uKQoKICAgICAgICBpZiBhZGphY2VudF9jZWxsOgogICAgICAgICAgICBjZWxscyA9IHNlbGYuZ2V0X2NlbGxzKCkKICAgICAgICAgICAgZ3JvdXBfaW5kZXggPSBjZWxscy5pbmRleChhZGphY2VudF9jZWxsKQoKICAgICAgICAgICAgdmlldyA9IHNlbGYud2luZG93LmFjdGl2ZV92aWV3X2luX2dyb3VwKGdyb3VwX2luZGV4KQoKICAgICAgICAgICAgaWYgdmlldzoKICAgICAgICAgICAgICAgIGFjdGl2ZV9ncm91cF9pbmRleCA9IHNlbGYud2luZG93LmFjdGl2ZV9ncm91cCgpCiAgICAgICAgICAgICAgICB2aWV3c19pbl9ncm91cCA9IHNlbGYud2luZG93LnZpZXdzX2luX2dyb3VwKGFjdGl2ZV9ncm91cF9pbmRleCkKICAgICAgICAgICAgICAgIHNlbGYud2luZG93LnNldF92aWV3X2luZGV4KHZpZXcsIGFjdGl2ZV9ncm91cF9pbmRleCwgbGVuKHZpZXdzX2luX2dyb3VwKSkKCgpjbGFzcyBUcmF2ZWxUb1BhbmVDb21tYW5kKFBhbmVDb21tYW5kLCBXaXRoU2V0dGluZ3MpOgogICAgZGVmIHJ1bihzZWxmLCBkaXJlY3Rpb24sIGNyZWF0ZV9uZXdfaWZfbmVjZXNzYXJ5PU5vbmUsIGRlc3Ryb3lfb2xkX2lmX2VtcHR5PU5vbmUpOgogICAgICAgIGlmIGNyZWF0ZV9uZXdfaWZfbmVjZXNzYXJ5IGlzIE5vbmU6CiAgICAgICAgICAgIGNyZWF0ZV9uZXdfaWZfbmVjZXNzYXJ5ID0gc2VsZi5zZXR0aW5ncygpLmdldCgnY3JlYXRlX25ld19wYW5lX2lmX25lY2Vzc2FyeScpCiAgICAgICAgaWYgZGVzdHJveV9vbGRfaWZfZW1wdHkgaXMgTm9uZToKICAgICAgICAgICAgZGVzdHJveV9vbGRfaWZfZW1wdHkgPSBzZWxmLnNldHRpbmdzKCkuZ2V0KCdkZXN0cm95X2VtcHR5X3BhbmVzJykKICAgICAgICBzZWxmLnRyYXZlbF90b19wYW5lKGRpcmVjdGlvbiwgY3JlYXRlX25ld19pZl9uZWNlc3NhcnksIGRlc3Ryb3lfb2xkX2lmX2VtcHR5KQoKCmNsYXNzIENhcnJ5RmlsZVRvUGFuZUNvbW1hbmQoUGFuZUNvbW1hbmQsIFdpdGhTZXR0aW5ncyk6CiAgICBkZWYgcnVuKHNlbGYsIGRpcmVjdGlvbiwgY3JlYXRlX25ld19pZl9uZWNlc3Nhcnk9Tm9uZSwgZGVzdHJveV9vbGRfaWZfZW1wdHk9Tm9uZSk6CiAgICAgICAgaWYgY3JlYXRlX25ld19pZl9uZWNlc3NhcnkgaXMgTm9uZToKICAgICAgICAgICAgY3JlYXRlX25ld19pZl9uZWNlc3NhcnkgPSBzZWxmLnNldHRpbmdzKCkuZ2V0KCdjcmVhdGVfbmV3X3BhbmVfaWZfbmVjZXNzYXJ5JykKICAgICAgICBpZiBkZXN0cm95X29sZF9pZl9lbXB0eSBpcyBOb25lOgogICAgICAgICAgICBkZXN0cm95X29sZF9pZl9lbXB0eSA9IHNlbGYuc2V0dGluZ3MoKS5nZXQoJ2Rlc3Ryb3lfZW1wdHlfcGFuZXMnKQogICAgICAgIHNlbGYuY2FycnlfZmlsZV90b19wYW5lKGRpcmVjdGlvbiwgY3JlYXRlX25ld19pZl9uZWNlc3NhcnksIGRlc3Ryb3lfb2xkX2lmX2VtcHR5KQoKCmNsYXNzIENsb25lRmlsZVRvUGFuZUNvbW1hbmQoUGFuZUNvbW1hbmQsIFdpdGhTZXR0aW5ncyk6CiAgICBkZWYgcnVuKHNlbGYsIGRpcmVjdGlvbiwgY3JlYXRlX25ld19pZl9uZWNlc3Nhcnk9Tm9uZSk6CiAgICAgICAgaWYgY3JlYXRlX25ld19pZl9uZWNlc3NhcnkgaXMgTm9uZToKICAgICAgICAgICAgY3JlYXRlX25ld19pZl9uZWNlc3NhcnkgPSBzZWxmLnNldHRpbmdzKCkuZ2V0KCdjcmVhdGVfbmV3X3BhbmVfaWZfbmVjZXNzYXJ5JykKICAgICAgICBzZWxmLmNsb25lX2ZpbGVfdG9fcGFuZShkaXJlY3Rpb24sIGNyZWF0ZV9uZXdfaWZfbmVjZXNzYXJ5KQoKCmNsYXNzIENyZWF0ZVBhbmVXaXRoRmlsZUNvbW1hbmQoUGFuZUNvbW1hbmQpOgogICAgZGVmIHJ1bihzZWxmLCBkaXJlY3Rpb24pOgogICAgICAgIHNlbGYuY3JlYXRlX3BhbmUoZGlyZWN0aW9uKQogICAgICAgIHNlbGYucHVsbF9maWxlX2Zyb21fcGFuZShvcHBvc2l0ZV9kaXJlY3Rpb24oZGlyZWN0aW9uKSkKCgpjbGFzcyBDcmVhdGVQYW5lV2l0aENsb25lZEZpbGVDb21tYW5kKFBhbmVDb21tYW5kKToKICAgIGRlZiBydW4oc2VsZiwgZGlyZWN0aW9uKToKICAgICAgICBzZWxmLmNyZWF0ZV9wYW5lKGRpcmVjdGlvbikKICAgICAgICBzZWxmLmNsb25lX2ZpbGVfdG9fcGFuZShkaXJlY3Rpb24pCgoKY2xhc3MgUHVsbEZpbGVGcm9tUGFuZUNvbW1hbmQoUGFuZUNvbW1hbmQpOgogICAgZGVmIHJ1bihzZWxmLCBkaXJlY3Rpb24pOgogICAgICAgIHNlbGYucHVsbF9maWxlX2Zyb21fcGFuZShkaXJlY3Rpb24pCgoKY2xhc3MgWm9vbVBhbmVDb21tYW5kKFBhbmVDb21tYW5kKToKICAgIGRlZiBydW4oc2VsZiwgZnJhY3Rpb249Tm9uZSk6CiAgICAgICAgc2VsZi56b29tX3BhbmUoZnJhY3Rpb24pCgoKY2xhc3MgVW56b29tUGFuZUNvbW1hbmQoUGFuZUNvbW1hbmQpOgogICAgZGVmIHJ1bihzZWxmKToKICAgICAgICBzZWxmLnVuem9vbV9wYW5lKCkKCgpjbGFzcyBUb2dnbGVab29tUGFuZUNvbW1hbmQoUGFuZUNvbW1hbmQpOgogICAgZGVmIHJ1bihzZWxmLCBmcmFjdGlvbj1Ob25lKToKICAgICAgICBzZWxmLnRvZ2dsZV96b29tKGZyYWN0aW9uKQoKCmNsYXNzIENyZWF0ZVBhbmVDb21tYW5kKFBhbmVDb21tYW5kKToKICAgIGRlZiBydW4oc2VsZiwgZGlyZWN0aW9uLCBnaXZlX2ZvY3VzPUZhbHNlKToKICAgICAgICBzZWxmLmNyZWF0ZV9wYW5lKGRpcmVjdGlvbiwgZ2l2ZV9mb2N1cykKCgpjbGFzcyBEZXN0cm95UGFuZUNvbW1hbmQoUGFuZUNvbW1hbmQpOgogICAgZGVmIHJ1bihzZWxmLCBkaXJlY3Rpb24pOgogICAgICAgIHNlbGYuZGVzdHJveV9wYW5lKGRpcmVjdGlvbikKCgpjbGFzcyBSZXNpemVQYW5lQ29tbWFuZChQYW5lQ29tbWFuZCk6CiAgICBkZWYgcnVuKHNlbGYsIG9yaWVudGF0aW9uLCBtb2RlPU5vbmUpOgogICAgICAgIGlmIG1vZGUgaXMgTm9uZToKICAgICAgICAgICAgbW9kZSA9ICJORUFSRVNUIgogICAgICAgIHNlbGYucmVzaXplX3BhbmVzKG9yaWVudGF0aW9uLCBtb2RlKQoKCmNsYXNzIFJlb3JkZXJQYW5lQ29tbWFuZChQYW5lQ29tbWFuZCk6CiAgICBkZWYgcnVuKHNlbGYpOgogICAgICAgIHNlbGYucmVvcmRlcl9wYW5lcygpCgoKY2xhc3MgU2F2ZUxheW91dENvbW1hbmQoUGFuZUNvbW1hbmQsIFdpdGhTZXR0aW5ncyk6CiAgICAiIiJTYXZlIHRoZSBjdXJyZW50IGxheW91dCBjb25maWd1cmF0aW9uIGluIGEgc2V0dGluZ3MgZmlsZS4iIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgd2luZG93KToKICAgICAgICBzZWxmLndpbmRvdyA9IHdpbmRvdwogICAgICAgIHN1cGVyKFNhdmVMYXlvdXRDb21tYW5kLCBzZWxmKS5fX2luaXRfXyh3aW5kb3cpCgogICAgZGVmIG9uX2RvbmUoc2VsZiwgbmlja25hbWUpOgogICAgICAgIHNhdmVkX2xheW91dHMgPSBzZWxmLnNldHRpbmdzKCkuZ2V0KCdzYXZlZF9sYXlvdXRzJykKICAgICAgICBsYXlvdXRfbmFtZXMgPSBbbGF5b3V0WyduaWNrbmFtZSddIGZvciBsYXlvdXQgaW4gc2F2ZWRfbGF5b3V0c10KICAgICAgICBsYXlvdXRfZGF0YSA9IHNlbGYuZ2V0X2xheW91dCgpCgogICAgICAgIGlmIG5pY2tuYW1lIGluIGxheW91dF9uYW1lczoKICAgICAgICAgICAgZGlhbG9nX3N0ciA9ICgnWW91IGFscmVhZHkgaGF2ZSBhIGxheW91dCBzdG9yZWQgYXMgInswfSIuXG5cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnRG8geW91IHdhbnQgdG8gY29udGludWUgYW5kIG92ZXJ3cml0ZSB0aGF0IGxheW91dD8nLmZvcm1hdChuaWNrbmFtZSkpCiAgICAgICAgICAgIGRpYWxvZ19idG4gPSAnT3ZlcndyaXRlIGxheW91dCcKCiAgICAgICAgICAgIGlmIHN1YmxpbWUub2tfY2FuY2VsX2RpYWxvZyhkaWFsb2dfc3RyLCBkaWFsb2dfYnRuKToKICAgICAgICAgICAgICAgIGRlZiBnZXRfaW5kZXgoc2VxLCBhdHRyLCB2YWx1ZSk6CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5leHQoaSBmb3IgKGksIGQpIGluIGVudW1lcmF0ZShzZXEpIGlmIGRbYXR0cl0gPT0gdmFsdWUpCgogICAgICAgICAgICAgICAgbGF5b3V0ID0gc2F2ZWRfbGF5b3V0c1tnZXRfaW5kZXgoc2F2ZWRfbGF5b3V0cywgJ25pY2tuYW1lJywgbmlja25hbWUpXQogICAgICAgICAgICAgICAgbGF5b3V0Wydyb3dzJ10gPSBsYXlvdXRfZGF0YVswXQogICAgICAgICAgICAgICAgbGF5b3V0Wydjb2xzJ10gPSBsYXlvdXRfZGF0YVsxXQogICAgICAgICAgICAgICAgbGF5b3V0WydjZWxscyddID0gbGF5b3V0X2RhdGFbMl0KICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgIHNlbGYud2luZG93LnJ1bl9jb21tYW5kKCJzYXZlX2xheW91dCIpCiAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICBlbHNlOgogICAgICAgICAgICBsYXlvdXQgPSB7CiAgICAgICAgICAgICAgICAnbmlja25hbWUnOiBuaWNrbmFtZSwKICAgICAgICAgICAgICAgICdyb3dzJzogbGF5b3V0X2RhdGFbMF0sCiAgICAgICAgICAgICAgICAnY29scyc6IGxheW91dF9kYXRhWzFdLAogICAgICAgICAgICAgICAgJ2NlbGxzJzogbGF5b3V0X2RhdGFbMl0sCiAgICAgICAgICAgIH0KICAgICAgICAgICAgc2F2ZWRfbGF5b3V0cy5hcHBlbmQobGF5b3V0KQoKICAgICAgICBzZWxmLnNldHRpbmdzKCkuc2V0KCdzYXZlZF9sYXlvdXRzJywgc2F2ZWRfbGF5b3V0cykKICAgICAgICBzdWJsaW1lLnNhdmVfc2V0dGluZ3MoU0VUVElOR1NfRklMRU5BTUUpCgogICAgZGVmIHJ1bihzZWxmKToKICAgICAgICBzZWxmLndpbmRvdy5zaG93X2lucHV0X3BhbmVsKAogICAgICAgICAgICAnV2luZG93IGxheW91dCBuaWNrbmFtZTonLAogICAgICAgICAgICAnJywKICAgICAgICAgICAgc2VsZi5vbl9kb25lLAogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBOb25lCiAgICAgICAgKQoKCmNsYXNzIFJlc3RvcmVMYXlvdXRDb21tYW5kKFBhbmVDb21tYW5kLCBXaXRoU2V0dGluZ3MpOgogICAgIiIiUmVzdG9yZSBhIHNhdmVkIGxheW91dCBmcm9tIGEgc2V0dGluZ3MgZmlsZS4iIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgd2luZG93KToKICAgICAgICBzZWxmLndpbmRvdyA9IHdpbmRvdwogICAgICAgIHN1cGVyKFJlc3RvcmVMYXlvdXRDb21tYW5kLCBzZWxmKS5fX2luaXRfXyh3aW5kb3cpCgogICAgZGVmIG9uX2RvbmUoc2VsZiwgaW5kZXgpOgogICAgICAgIHNhdmVkX2xheW91dHMgPSBzZWxmLnNldHRpbmdzKCkuZ2V0KCdzYXZlZF9sYXlvdXRzJykKCiAgICAgICAgaWYgaW5kZXggIT0gLTE6CiAgICAgICAgICAgIHNlbGVjdGVkX2xheW91dCA9IHNhdmVkX2xheW91dHNbaW5kZXhdCiAgICAgICAgICAgIGxheW91dCA9IHsKICAgICAgICAgICAgICAgICdjZWxscyc6IHNlbGVjdGVkX2xheW91dFsnY2VsbHMnXSwKICAgICAgICAgICAgICAgICdjb2xzJzogc2VsZWN0ZWRfbGF5b3V0Wydjb2xzJ10sCiAgICAgICAgICAgICAgICAncm93cyc6IHNlbGVjdGVkX2xheW91dFsncm93cyddCiAgICAgICAgICAgIH0gICMgdHlwZTogc3VibGltZS5MYXlvdXQKICAgICAgICAgICAgc2VsZi53aW5kb3cuc2V0X2xheW91dChsYXlvdXQpCgogICAgZGVmIHJ1bihzZWxmKToKICAgICAgICBpZiBzZWxmLnNldHRpbmdzKCkuaGFzKCdzYXZlZF9sYXlvdXRzJyk6CiAgICAgICAgICAgIHNhdmVkX2xheW91dHMgPSBzZWxmLnNldHRpbmdzKCkuZ2V0KCdzYXZlZF9sYXlvdXRzJykKICAgICAgICAgICAgbGF5b3V0X25hbWVzID0gW2xheW91dFsnbmlja25hbWUnXSBmb3IgbGF5b3V0IGluIHNhdmVkX2xheW91dHNdCiAgICAgICAgICAgIHNlbGYud2luZG93LnNob3dfcXVpY2tfcGFuZWwobGF5b3V0X25hbWVzLCBzZWxmLm9uX2RvbmUpCgoKY2xhc3MgUmVtb3ZlTGF5b3V0Q29tbWFuZChQYW5lQ29tbWFuZCwgV2l0aFNldHRpbmdzKToKICAgICIiIlJlbW92ZSBhIHByZXZpb3VzbHkgc2F2ZWQgbGF5b3V0IGZyb20geW91ciBzZXR0aW5ncyBmaWxlLiIiIgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCB3aW5kb3cpOgogICAgICAgIHNlbGYud2luZG93ID0gd2luZG93CiAgICAgICAgc3VwZXIoUmVtb3ZlTGF5b3V0Q29tbWFuZCwgc2VsZikuX19pbml0X18od2luZG93KQoKICAgIGRlZiBvbl9kb25lKHNlbGYsIGluZGV4KToKICAgICAgICBzYXZlZF9sYXlvdXRzID0gc2VsZi5zZXR0aW5ncygpLmdldCgnc2F2ZWRfbGF5b3V0cycpCgogICAgICAgIGlmIGluZGV4ICE9IC0xOgogICAgICAgICAgICBzYXZlZF9sYXlvdXRzLnBvcChpbmRleCkKICAgICAgICAgICAgc2VsZi5zZXR0aW5ncygpLnNldCgnc2F2ZWRfbGF5b3V0cycsIHNhdmVkX2xheW91dHMpCiAgICAgICAgICAgIHN1YmxpbWUuc2F2ZV9zZXR0aW5ncyhTRVRUSU5HU19GSUxFTkFNRSkKCiAgICBkZWYgcnVuKHNlbGYpOgogICAgICAgIGlmIHNlbGYuc2V0dGluZ3MoKS5oYXMoJ3NhdmVkX2xheW91dHMnKToKICAgICAgICAgICAgc2F2ZWRfbGF5b3V0cyA9IHNlbGYuc2V0dGluZ3MoKS5nZXQoJ3NhdmVkX2xheW91dHMnKQogICAgICAgICAgICBsYXlvdXRfbmFtZXMgPSBbbGF5b3V0WyduaWNrbmFtZSddIGZvciBsYXlvdXQgaW4gc2F2ZWRfbGF5b3V0c10KICAgICAgICAgICAgc2VsZi53aW5kb3cuc2hvd19xdWlja19wYW5lbChsYXlvdXRfbmFtZXMsIHNlbGYub25fZG9uZSkKCgpjbGFzcyBOZXdXaW5kb3dGcm9tU2F2ZWRMYXlvdXRDb21tYW5kKFBhbmVDb21tYW5kLCBXaXRoU2V0dGluZ3MpOgogICAgIiIiCiAgICBCcmluZ3MgdXAgYSBsaXN0IG9mIHNhdmVkIHZpZXdzIGFuZCBhbGxvd3MgdGhlIHVzZXIKICAgIHRvIGNyZWF0ZSBhIG5ldyB3aW5kb3cgdXNpbmcgdGhhdCBsYXlvdXQuCiAgICAiIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgd2luZG93KToKICAgICAgICBzZWxmLndpbmRvdyA9IHdpbmRvdwogICAgICAgIHN1cGVyKE5ld1dpbmRvd0Zyb21TYXZlZExheW91dENvbW1hbmQsIHNlbGYpLl9faW5pdF9fKHdpbmRvdykKCiAgICBkZWYgb25fZG9uZShzZWxmLCBpbmRleCk6CiAgICAgICAgc2F2ZWRfbGF5b3V0cyA9IHNlbGYuc2V0dGluZ3MoKS5nZXQoJ3NhdmVkX2xheW91dHMnKQoKICAgICAgICBpZiBpbmRleCAhPSAtMToKICAgICAgICAgICAgc2VsZWN0ZWRfbGF5b3V0ID0gc2F2ZWRfbGF5b3V0c1tpbmRleF0KICAgICAgICAgICAgbGF5b3V0ID0gewogICAgICAgICAgICAgICAgJ2NlbGxzJzogc2VsZWN0ZWRfbGF5b3V0WydjZWxscyddLAogICAgICAgICAgICAgICAgJ2NvbHMnOiBzZWxlY3RlZF9sYXlvdXRbJ2NvbHMnXSwKICAgICAgICAgICAgICAgICdyb3dzJzogc2VsZWN0ZWRfbGF5b3V0Wydyb3dzJ10KICAgICAgICAgICAgfSAgIyB0eXBlOiBzdWJsaW1lLkxheW91dAoKICAgICAgICAgICAgc2VsZi53aW5kb3cucnVuX2NvbW1hbmQoIm5ld193aW5kb3ciKQogICAgICAgICAgICBuZXdfd2luZG93ID0gc3VibGltZS5hY3RpdmVfd2luZG93KCkKICAgICAgICAgICAgbmV3X3dpbmRvdy5zZXRfbGF5b3V0KGxheW91dCkKCiAgICBkZWYgcnVuKHNlbGYpOgogICAgICAgIGlmIHNlbGYuc2V0dGluZ3MoKS5oYXMoJ3NhdmVkX2xheW91dHMnKToKICAgICAgICAgICAgc2F2ZWRfbGF5b3V0cyA9IHNlbGYuc2V0dGluZ3MoKS5nZXQoJ3NhdmVkX2xheW91dHMnKQogICAgICAgICAgICBsYXlvdXRfbmFtZXMgPSBbbGF5b3V0WyduaWNrbmFtZSddIGZvciBsYXlvdXQgaW4gc2F2ZWRfbGF5b3V0c10KICAgICAgICAgICAgc2VsZi53aW5kb3cuc2hvd19xdWlja19wYW5lbChsYXlvdXRfbmFtZXMsIHNlbGYub25fZG9uZSkKCgpjbGFzcyBOZXdXaW5kb3dXaXRoQ3VycmVudExheW91dENvbW1hbmQoUGFuZUNvbW1hbmQpOgogICAgIiIiT3BlbnMgYSBuZXcgd2luZG93IHVzaW5nIHRoZSBjdXJyZW50IGxheW91dCBzZXR0aW5ncy4iIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgd2luZG93KToKICAgICAgICBzZWxmLndpbmRvdyA9IHdpbmRvdwogICAgICAgIHN1cGVyKE5ld1dpbmRvd1dpdGhDdXJyZW50TGF5b3V0Q29tbWFuZCwgc2VsZikuX19pbml0X18od2luZG93KQoKICAgIGRlZiBydW4oc2VsZik6CiAgICAgICAgbGF5b3V0ID0gc2VsZi53aW5kb3cubGF5b3V0KCkKICAgICAgICBzZWxmLndpbmRvdy5ydW5fY29tbWFuZCgibmV3X3dpbmRvdyIpCiAgICAgICAgbmV3X3dpbmRvdyA9IHN1YmxpbWUuYWN0aXZlX3dpbmRvdygpCiAgICAgICAgbmV3X3dpbmRvdy5zZXRfbGF5b3V0KGxheW91dCkKCgpjbGFzcyBBdXRvQ2xvc2VFbXB0eVBhbmVzKHN1YmxpbWVfcGx1Z2luLkV2ZW50TGlzdGVuZXIsIFdpdGhTZXR0aW5ncyk6CiAgICBkZWYgaXNfdGFibGVzc192aWV3KHNlbGYsIHZpZXcpOgogICAgICAgICIiIldoZW4geW91IG1ha2UgYSBuZXcgcGFuZSwgaXQgY29tZXMgd2l0aCBhIHRhYmxlc3MgdmlldyB0aGF0IGdldHMgYQogICAgICAgIHRhYiB3aGVuIHlvdSB0eXBlIGludG8gaXQuIFlvdSBhbHNvIGdldCBhIHNpbWlsYXIgdmlldyB3aGVuIHVzaW5nIHRoZQogICAgICAgIGNvbW1hbmQgcGFsZXR0ZSB0byBvcGVuIGEgZmlsZS4KICAgICAgICBJZiB3ZSB0aGluayBpdCdzIHRoaXMga2luZCBvZiB2aWV3LCByZXR1cm4gVHJ1ZS4iIiIKICAgICAgICBpZiBzdWJsaW1lLnZlcnNpb24oKVswXSA9PSAnMic6CiAgICAgICAgICAgIHJldHVybiBGYWxzZQogICAgICAgIGVsaWYgdmlldy53aW5kb3coKSBhbmQgdmlldy53aW5kb3coKS5nZXRfdmlld19pbmRleCh2aWV3KVsxXSA9PSAtMToKICAgICAgICAgICAgcmV0dXJuIFRydWUKICAgICAgICByZXR1cm4gRmFsc2UKCiAgICBkZWYgb25fY2xvc2Uoc2VsZiwgdmlldyk6CiAgICAgICAgaWYgc3VibGltZS52ZXJzaW9uKClbMF0gPT0gJzInOgogICAgICAgICAgICBzZWxmLm9uX3ByZV9jbG9zZSh2aWV3KQoKICAgIGRlZiBvbl9wcmVfY2xvc2Uoc2VsZiwgdmlldyk6CiAgICAgICAgIyBSZWFkIGZyb20gZ2xvYmFsIHNldHRpbmdzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5CiAgICAgICAgYXV0b19jbG9zZSA9IHZpZXcuc2V0dGluZ3MoKS5nZXQoIm9yaWdhbWlfYXV0b19jbG9zZV9lbXB0eV9wYW5lcyIpCiAgICAgICAgaWYgYXV0b19jbG9zZSBpcyBOb25lOgogICAgICAgICAgICBhdXRvX2Nsb3NlID0gc2VsZi5zZXR0aW5ncygpLmdldCgiYXV0b19jbG9zZV9lbXB0eV9wYW5lcyIpCiAgICAgICAgaWYgbm90IGF1dG9fY2xvc2U6CiAgICAgICAgICAgIHJldHVybgoKICAgICAgICB3aW5kb3cgPSB2aWV3LndpbmRvdygpCiAgICAgICAgaWYgd2luZG93IGlzIE5vbmU6CiAgICAgICAgICAgICMgSWYgd2UncmUgdGhlIGxhc3QgdmlldyBpbiB0aGUgd2luZG93LCB0aGVuIHRoZSB3aW5kb3cgY2xvc2VzCiAgICAgICAgICAgICMgYmVmb3JlIG9uX3ByZV9jbG9zZSBpcyBjYWxsZWQgKCEhKS4KICAgICAgICAgICAgIyBJbiB0aGlzIGNhc2UsIHdlIGRvbid0IHdhbnQgdG8gY2xvc2UgYW55dGhpbmcgZXh0cmEgYmVjYXVzZSB0aGUKICAgICAgICAgICAgIyB3aW5kb3cgaXMgYWxyZWFkeSBjbG9zaW5nLgogICAgICAgICAgICByZXR1cm4KICAgICAgICBhY3RpdmVfZ3JvdXAgPSB3aW5kb3cuYWN0aXZlX2dyb3VwKCkKCiAgICAgICAgaWYgc2VsZi5pc190YWJsZXNzX3ZpZXcodmlldyk6CiAgICAgICAgICAgICMgV2UgZG9uJ3Qgd2FudCB0byBjbG9zZSB0aGUgcGFuZSB3aGVuIGNsb3NpbmcgYSB0cmFuc2llbnQgdmlldwogICAgICAgICAgICByZXR1cm4KCiAgICAgICAgIyBXZSdyZSBpbiBwcmVfY2xvc2UsIHNvIHVzZSBzZXRfdGltZW91dCB0byBjbG9zZSB0aGUgZ3JvdXAgcmlnaHQgYWZ0ZXIgdGhpcy4KICAgICAgICBpZiBsZW4od2luZG93LnZpZXdzX2luX2dyb3VwKGFjdGl2ZV9ncm91cCkpID09IDE6CiAgICAgICAgICAgIHN1YmxpbWUuc2V0X3RpbWVvdXQobGFtYmRhOiB3aW5kb3cucnVuX2NvbW1hbmQoImRlc3Ryb3lfcGFuZSIsIHsiZGlyZWN0aW9uIjogInNlbGYifSksIDApCgoKY2xhc3MgQXV0b1pvb21PbkZvY3VzKHN1YmxpbWVfcGx1Z2luLkV2ZW50TGlzdGVuZXIsIFdpdGhTZXR0aW5ncyk6CiAgICBydW5uaW5nID0gRmFsc2UKICAgIGFjdGl2ZV9ncm91cCA9IC0xCgogICAgZGVmIGRlbGF5ZWRfem9vbShzZWxmLCB2aWV3LCBmcmFjdGlvbik6CiAgICAgICAgIyB6b29tX3BhbmUgaGFuZ3Mgc3VibGltZSBpZiB5b3UgZGVzdHJveSB0aGUgcGFuZSBhYm92ZSBvciB0byB5b3VyIGxlZnQuCiAgICAgICAgIyBjYWxsIGl0IGluIGEgc3VibGltZS5zZXRfdGltZW91dCB0byBmaXggdGhlIGlzc3VlCgogICAgICAgICMgU3VibGltZSBUZXh0IDIgaGFzIGlzc3VlcyBvbiBzdGFydHVwIHdoZXJlIHZpZXdzIGRvbid0IGhhdmUgd2luZG93cyB5ZXQuCiAgICAgICAgIyBJZiB3ZSBkb24ndCBoYXZlIGEgd2luZG93IHlldCwgYmFpbC4KICAgICAgICBpZiB2aWV3LndpbmRvdygpIGlzIE5vbmU6CiAgICAgICAgICAgIHNlbGYucnVubmluZyA9IEZhbHNlCiAgICAgICAgICAgIHJldHVybgoKICAgICAgICBhcmdzID0ge30KICAgICAgICAjIFdvcmsgY29ycmVjdGx5IGlmIHNvbWVvbmUgc2V0cyAib3JpZ2FtaV9hdXRvX3pvb21fb25fZm9jdXMiOiB0cnVlIHJhdGhlcgogICAgICAgICMgdGhhbiBlLmcuICJvcmlnYW1pX2F1dG9fem9vbV9vbl9mb2N1cyI6IC44LgogICAgICAgIGlmIGZyYWN0aW9uIGlzIG5vdCBUcnVlOgogICAgICAgICAgICBhcmdzWyJmcmFjdGlvbiJdID0gZnJhY3Rpb24KICAgICAgICB2aWV3LndpbmRvdygpLnJ1bl9jb21tYW5kKCJ6b29tX3BhbmUiLCBhcmdzKQogICAgICAgIHNlbGYucnVubmluZyA9IEZhbHNlCgogICAgZGVmIG9uX2FjdGl2YXRlZChzZWxmLCB2aWV3KToKICAgICAgICBpZiBzZWxmLnJ1bm5pbmc6CiAgICAgICAgICAgIHJldHVybgogICAgICAgICMgUmVhZCBmcm9tIGdsb2JhbCBzZXR0aW5ncyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQogICAgICAgIGZyYWN0aW9uID0gdmlldy5zZXR0aW5ncygpLmdldCgib3JpZ2FtaV9hdXRvX3pvb21fb25fZm9jdXMiKQogICAgICAgIGlmIGZyYWN0aW9uIGlzIE5vbmU6CiAgICAgICAgICAgIGZyYWN0aW9uID0gc2VsZi5zZXR0aW5ncygpLmdldCgiYXV0b196b29tX29uX2ZvY3VzIikKICAgICAgICBpZiBub3QgZnJhY3Rpb246CiAgICAgICAgICAgIHJldHVybgogICAgICAgIGlmIHZpZXcuc2V0dGluZ3MoKS5nZXQoImlzX3dpZGdldCIpOgogICAgICAgICAgICByZXR1cm4KCiAgICAgICAgbmV3X2FjdGl2ZV9ncm91cCA9IHZpZXcud2luZG93KCkuYWN0aXZlX2dyb3VwKCkKICAgICAgICBpZiBuZXdfYWN0aXZlX2dyb3VwID09IHNlbGYuYWN0aXZlX2dyb3VwOgogICAgICAgICAgICByZXR1cm4KCiAgICAgICAgc2VsZi5hY3RpdmVfZ3JvdXAgPSBuZXdfYWN0aXZlX2dyb3VwCiAgICAgICAgc2VsZi5ydW5uaW5nID0gVHJ1ZQoKICAgICAgICBzdWJsaW1lLnNldF90aW1lb3V0KGxhbWJkYTogc2VsZi5kZWxheWVkX3pvb20odmlldywgZnJhY3Rpb24pLCAwKQoAAAAAAAAAAJt4AAAAAAAAAAAAAAAAAAAAAAAAm3gAAAAAAAAAAAAAAAAAAAAAAACbeAAAAAAAAAAAAAAAAAAAAAAAAJt4AAAAAAAAAAAAAAAAAAAAAAAAm3gAAAAAAAAAAAAAAAAAAAAAAACbeAAAAAAAAAAAAAA", + "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAALswAAAAAAAAuzAAAAAAAAAAAAAAAADwvw" + ], + [ + 15, + 1, + "paste", + null, + "AgAAAFIsAAAAAAAAJzMAAAAAAAAAAAAAJzMAAAAAAAAnMwAAAAAAAKwGAABkZWYgem9vbV9wYW5lKHNlbGYsIGF1dG9fem9vbSk6CiAgICAgICAgIyBpZiBmcmFjdGlvbiBpcyBOb25lOgogICAgICAgICMgICAgIGZyYWN0aW9uID0gLjkKICAgICAgICBmcmFjdGlvbiA9IC45CiAgICAgICAgaGVpZ2h0ID0gLjkKICAgICAgICAjIGlmIGlzaW5zdGFuY2UoYXV0b196b29tLCBmbG9hdHxpbnQpOgogICAgICAgIGlmIGlzaW5zdGFuY2UoYXV0b196b29tLCBmbG9hdCkgb3IgaXNpbnN0YW5jZShhdXRvX3pvb20sIGludCk6CiAgICAgICAgICAgIGZyYWN0aW9uID0gYXV0b196b29tCiAgICAgICAgZWxpZiBpc2luc3RhbmNlKGF1dG9fem9vbSwgbGlzdCk6CiAgICAgICAgICAgIGZyYWN0aW9uID0gYXV0b196b29tWzBdCiAgICAgICAgICAgIGhlaWdodCA9IGF1dG9fem9vbVsxXQoKICAgICAgICBmcmFjdGlvbiA9IG1pbigxLCBtYXgoMCwgZnJhY3Rpb24pKQogICAgICAgIGhlaWdodCAgPSBtaW4oMSwgbWF4KDAsIGhlaWdodCkpCgogICAgICAgIHdpbmRvdyA9IHNlbGYud2luZG93CiAgICAgICAgcm93cywgY29scywgY2VsbHMgPSBzZWxmLmdldF9sYXlvdXQoKQogICAgICAgIGN1cnJlbnRfY2VsbCA9IGNlbGxzW3dpbmRvdy5hY3RpdmVfZ3JvdXAoKV0KCiAgICAgICAgY3VycmVudF9jb2wgPSBjdXJyZW50X2NlbGxbMF0KICAgICAgICBudW1fY29scyA9IGxlbihjb2xzKSAtIDEKCiAgICAgICAgIyBUT0RPOiB0aGUgc2l6ZXMgb2YgdGhlIHVuem9vbWVkIHBhbmVzIGFyZSBjYWxjdWxhdGVkIGluY29ycmVjdGx5IGlmIHRoZQogICAgICAgICMgICAgICAgdW56b29tZWQgcGFuZXMgaGF2ZSBhIHNwbGl0IHRoYXQgb3ZlcmxhcHMgdGhlIHpvb21lZCBwYW5lLgogICAgICAgIGN1cnJlbnRfY29sX3dpZHRoID0gMSBpZiBudW1fY29scyA9PSAxIGVsc2UgZnJhY3Rpb24KICAgICAgICBvdGhlcl9jb2xfd2lkdGggPSAwIGlmIG51bV9jb2xzID09IDEgZWxzZSAoMSAtIGN1cnJlbnRfY29sX3dpZHRoKSAvIChudW1fY29scyAtIDEpCgogICAgICAgIGNvbHMgPSBbMC4wXQogICAgICAgIGZvciBpIGluIHJhbmdlKG51bV9jb2xzKToKICAgICAgICAgICAgY29scy5hcHBlbmQoY29sc1tpXSArIChjdXJyZW50X2NvbF93aWR0aCBpZiBpID09IGN1cnJlbnRfY29sIGVsc2Ugb3RoZXJfY29sX3dpZHRoKSkKCiAgICAgICAgY3VycmVudF9yb3cgPSBjdXJyZW50X2NlbGxbMV0KICAgICAgICBudW1fcm93cyA9IGxlbihyb3dzKSAtIDEKCiAgICAgICAgIyBjdXJyZW50X3Jvd19oZWlnaHQgPSAxIGlmIG51bV9yb3dzID09IDEgZWxzZSBmcmFjdGlvbgogICAgICAgIGN1cnJlbnRfcm93X2hlaWdodCA9IDEgaWYgbnVtX3Jvd3MgPT0gMSBlbHNlIGhlaWdodAogICAgICAgIG90aGVyX3Jvd19oZWlnaHQgPSAwIGlmIG51bV9yb3dzID09IDEgZWxzZSAoMSAtIGN1cnJlbnRfcm93X2hlaWdodCkgLyAobnVtX3Jvd3MgLSAxKQogICAgICAgIHJvd3MgPSBbMC4wXQogICAgICAgIGZvciBpIGluIHJhbmdlKG51bV9yb3dzKToKICAgICAgICAgICAgcm93cy5hcHBlbmQocm93c1tpXSArIChjdXJyZW50X3Jvd19oZWlnaHQgaWYgaSA9PSBjdXJyZW50X3JvdyBlbHNlIG90aGVyX3Jvd19oZWlnaHQpKQoKICAgICAgICBsYXlvdXQgPSB7ImNvbHMiOiBjb2xzLCAicm93cyI6IHJvd3MsICJjZWxscyI6IGNlbGxzfSAgIyB0eXBlOiBzdWJsaW1lLkxheW91dAogICAgICAgIHdpbmRvdy5zZXRfbGF5b3V0KGxheW91dCkK", + "AQAAAAAAAAABAAAAUiwAAAAAAAD+MgAAAAAAAAAAAAAAAPC/" + ], + [ + 29, + 1, + "revert", + null, + "AgAAAAAAAAAAAAAAAAAAAAAAAADEeAAAaW1wb3J0IHN1YmxpbWUKaW1wb3J0IHN1YmxpbWVfcGx1Z2luCmltcG9ydCBjb3B5CmZyb20gZnVuY3Rvb2xzIGltcG9ydCBwYXJ0aWFsCgoKU0VUVElOR1NfRklMRU5BTUUgPSAnT3JpZ2FtaS5zdWJsaW1lLXNldHRpbmdzJwpYTUlOLCBZTUlOLCBYTUFYLCBZTUFYID0gcmFuZ2UoNCkKCgpkZWYgaW5jcmVtZW50X2lmX2dyZWF0ZXJfb3JfZXF1YWwoeCwgdGhyZXNob2xkKToKICAgIGlmIHggPj0gdGhyZXNob2xkOgogICAgICAgIHJldHVybiB4ICsgMQogICAgcmV0dXJuIHgKCgpkZWYgZGVjcmVtZW50X2lmX2dyZWF0ZXIoeCwgdGhyZXNob2xkKToKICAgIGlmIHggPiB0aHJlc2hvbGQ6CiAgICAgICAgcmV0dXJuIHggLSAxCiAgICByZXR1cm4geAoKCmRlZiBwdWxsX3VwX2NlbGxzX2FmdGVyKGNlbGxzLCB0aHJlc2hvbGQpOgogICAgcmV0dXJuIFsKICAgICAgICBbeDAsIGRlY3JlbWVudF9pZl9ncmVhdGVyKHkwLCB0aHJlc2hvbGQpLCB4MSwgZGVjcmVtZW50X2lmX2dyZWF0ZXIoeTEsIHRocmVzaG9sZCldCiAgICAgICAgZm9yICh4MCwgeTAsIHgxLCB5MSkgaW4gY2VsbHMKICAgIF0KCgpkZWYgcHVzaF9yaWdodF9jZWxsc19hZnRlcihjZWxscywgdGhyZXNob2xkKToKICAgIHJldHVybiBbCiAgICAgICAgW2luY3JlbWVudF9pZl9ncmVhdGVyX29yX2VxdWFsKHgwLCB0aHJlc2hvbGQpLCB5MCwgaW5jcmVtZW50X2lmX2dyZWF0ZXJfb3JfZXF1YWwoeDEsIHRocmVzaG9sZCksIHkxXQogICAgICAgIGZvciAoeDAsIHkwLCB4MSwgeTEpIGluIGNlbGxzCiAgICBdCgoKZGVmIHB1c2hfZG93bl9jZWxsc19hZnRlcihjZWxscywgdGhyZXNob2xkKToKICAgIHJldHVybiBbCiAgICAgICAgW3gwLCBpbmNyZW1lbnRfaWZfZ3JlYXRlcl9vcl9lcXVhbCh5MCwgdGhyZXNob2xkKSwgeDEsIGluY3JlbWVudF9pZl9ncmVhdGVyX29yX2VxdWFsKHkxLCB0aHJlc2hvbGQpXQogICAgICAgIGZvciAoeDAsIHkwLCB4MSwgeTEpIGluIGNlbGxzCiAgICBdCgoKZGVmIHB1bGxfbGVmdF9jZWxsc19hZnRlcihjZWxscywgdGhyZXNob2xkKToKICAgIHJldHVybiBbCiAgICAgICAgW2RlY3JlbWVudF9pZl9ncmVhdGVyKHgwLCB0aHJlc2hvbGQpLCB5MCwgZGVjcmVtZW50X2lmX2dyZWF0ZXIoeDEsIHRocmVzaG9sZCksIHkxXQogICAgICAgIGZvciAoeDAsIHkwLCB4MSwgeTEpIGluIGNlbGxzCiAgICBdCgoKZGVmIG9wcG9zaXRlX2RpcmVjdGlvbihkaXJlY3Rpb24pOgogICAgaWYgZGlyZWN0aW9uID09ICJ1cCI6CiAgICAgICAgcmV0dXJuICJkb3duIgogICAgaWYgZGlyZWN0aW9uID09ICJyaWdodCI6CiAgICAgICAgcmV0dXJuICJsZWZ0IgogICAgaWYgZGlyZWN0aW9uID09ICJkb3duIjoKICAgICAgICByZXR1cm4gInVwIgogICAgaWYgZGlyZWN0aW9uID09ICJsZWZ0IjoKICAgICAgICByZXR1cm4gInJpZ2h0IgoKCmRlZiBjZWxsc19hZGphY2VudF90b19jZWxsX2luX2RpcmVjdGlvbihjZWxscywgY2VsbCwgZGlyZWN0aW9uKToKICAgIGlmIGRpcmVjdGlvbiA9PSAidXAiOgogICAgICAgIHJldHVybiBbYyBmb3IgYyBpbiBjZWxscyBpZiBjZWxsW1lNSU5dID09IGNbWU1BWF1dCiAgICBpZiBkaXJlY3Rpb24gPT0gInJpZ2h0IjoKICAgICAgICByZXR1cm4gW2MgZm9yIGMgaW4gY2VsbHMgaWYgY2VsbFtYTUFYXSA9PSBjW1hNSU5dXQogICAgaWYgZGlyZWN0aW9uID09ICJkb3duIjoKICAgICAgICByZXR1cm4gW2MgZm9yIGMgaW4gY2VsbHMgaWYgY2VsbFtZTUFYXSA9PSBjW1lNSU5dXQogICAgaWYgZGlyZWN0aW9uID09ICJsZWZ0IjoKICAgICAgICByZXR1cm4gW2MgZm9yIGMgaW4gY2VsbHMgaWYgY2VsbFtYTUlOXSA9PSBjW1hNQVhdXQogICAgcmFpc2UgRXhjZXB0aW9uKCdVbnN1cHBvcnRlZCBkaXJlY3Rpb24gInt9IicuZm9ybWF0KGRpcmVjdGlvbikpCgoKY2xhc3MgV2l0aFNldHRpbmdzOgogICAgX3NldHRpbmdzID0gTm9uZQoKICAgIGRlZiBzZXR0aW5ncyhzZWxmKToKICAgICAgICBpZiBzZWxmLl9zZXR0aW5ncyBpcyBOb25lOgogICAgICAgICAgICBzZWxmLl9zZXR0aW5ncyA9IHN1YmxpbWUubG9hZF9zZXR0aW5ncyhTRVRUSU5HU19GSUxFTkFNRSkKICAgICAgICByZXR1cm4gc2VsZi5fc2V0dGluZ3MKCgpjbGFzcyBQYW5lQ29tbWFuZChzdWJsaW1lX3BsdWdpbi5XaW5kb3dDb21tYW5kKToKICAgICIiIkFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIGNvbW1hbmRzLiIiIgoKICAgIGRlZiBnZXRfbGF5b3V0KHNlbGYpOgogICAgICAgIGxheW91dCA9IHNlbGYud2luZG93LmxheW91dCgpCiAgICAgICAgcm93cyA9IGxheW91dFsicm93cyJdCiAgICAgICAgY29scyA9IGxheW91dFsiY29scyJdCiAgICAgICAgY2VsbHMgPSBsYXlvdXRbImNlbGxzIl0KICAgICAgICByZXR1cm4gcm93cywgY29scywgY2VsbHMKCiAgICBkZWYgZ2V0X2NlbGxzKHNlbGYpOgogICAgICAgIHJldHVybiBzZWxmLmdldF9sYXlvdXQoKVsyXQoKICAgIGRlZiBhZGphY2VudF9jZWxsKHNlbGYsIGRpcmVjdGlvbik6CiAgICAgICAgY2VsbHMgPSBzZWxmLmdldF9jZWxscygpCiAgICAgICAgY3VycmVudF9jZWxsID0gY2VsbHNbc2VsZi53aW5kb3cuYWN0aXZlX2dyb3VwKCldCiAgICAgICAgYWRqYWNlbnRfY2VsbHMgPSBjZWxsc19hZGphY2VudF90b19jZWxsX2luX2RpcmVjdGlvbihjZWxscywgY3VycmVudF9jZWxsLCBkaXJlY3Rpb24pCiAgICAgICAgcm93cywgY29scywgXyA9IHNlbGYuZ2V0X2xheW91dCgpCgogICAgICAgIGlmIGRpcmVjdGlvbiBpbiAoImxlZnQiLCAicmlnaHQiKToKICAgICAgICAgICAgTUlOLCBNQVgsIGZpZWxkcyA9IFlNSU4sIFlNQVgsIHJvd3MKICAgICAgICBlbHNlOiAgIyB1cCBvciBkb3duCiAgICAgICAgICAgIE1JTiwgTUFYLCBmaWVsZHMgPSBYTUlOLCBYTUFYLCBjb2xzCgogICAgICAgIGNlbGxfb3ZlcmxhcCA9IFtdCiAgICAgICAgZm9yIGNlbGwgaW4gYWRqYWNlbnRfY2VsbHM6CiAgICAgICAgICAgIHN0YXJ0ID0gbWF4KGZpZWxkc1tjZWxsW01JTl1dLCBmaWVsZHNbY3VycmVudF9jZWxsW01JTl1dKQogICAgICAgICAgICBlbmQgPSBtaW4oZmllbGRzW2NlbGxbTUFYXV0sIGZpZWxkc1tjdXJyZW50X2NlbGxbTUFYXV0pCiAgICAgICAgICAgIG92ZXJsYXAgPSBlbmQgLSBzdGFydCAgIyAvIChmaWVsZHNbY2VsbFtNQVhdXSAtIGZpZWxkc1tjZWxsW01JTl1dKQogICAgICAgICAgICBjZWxsX292ZXJsYXAuYXBwZW5kKG92ZXJsYXApCgogICAgICAgIGlmIGxlbihjZWxsX292ZXJsYXApICE9IDA6CiAgICAgICAgICAgIGNlbGxfaW5kZXggPSBjZWxsX292ZXJsYXAuaW5kZXgobWF4KGNlbGxfb3ZlcmxhcCkpCiAgICAgICAgICAgIHJldHVybiBhZGphY2VudF9jZWxsc1tjZWxsX2luZGV4XQogICAgICAgIHJldHVybiBOb25lCgogICAgZGVmIGR1cGxpY2F0ZWRfdmlld3Moc2VsZiwgb3JpZ2luYWxfZ3JvdXAsIGR1cGxpY2F0aW5nX2dyb3VwKToKICAgICAgICBvcmlnaW5hbF92aWV3cyA9IHNlbGYud2luZG93LnZpZXdzX2luX2dyb3VwKG9yaWdpbmFsX2dyb3VwKQogICAgICAgIG9yaWdpbmFsX2J1ZmZlcnMgPSB7di5idWZmZXJfaWQoKSBmb3IgdiBpbiBvcmlnaW5hbF92aWV3c30KICAgICAgICBwb3RlbnRpYWxfZHVwZV92aWV3cyA9IHNlbGYud2luZG93LnZpZXdzX2luX2dyb3VwKGR1cGxpY2F0aW5nX2dyb3VwKQogICAgICAgIHJldHVybiBbcGQgZm9yIHBkIGluIHBvdGVudGlhbF9kdXBlX3ZpZXdzIGlmIHBkLmJ1ZmZlcl9pZCgpIGluIG9yaWdpbmFsX2J1ZmZlcnNdCgogICAgZGVmIHRyYXZlbF90b19wYW5lKHNlbGYsIGRpcmVjdGlvbiwgY3JlYXRlX25ld19pZl9uZWNlc3Nhcnk9RmFsc2UsIGRlc3Ryb3lfb2xkX2lmX2VtcHR5PUZhbHNlKToKICAgICAgICBhZGphY2VudF9jZWxsID0gc2VsZi5hZGphY2VudF9jZWxsKGRpcmVjdGlvbikKICAgICAgICBpZiBhZGphY2VudF9jZWxsOgogICAgICAgICAgICBjZWxscyA9IHNlbGYuZ2V0X2NlbGxzKCkKICAgICAgICAgICAgbmV3X2dyb3VwX2luZGV4ID0gY2VsbHMuaW5kZXgoYWRqYWNlbnRfY2VsbCkKICAgICAgICAgICAgc2VsZi53aW5kb3cuZm9jdXNfZ3JvdXAobmV3X2dyb3VwX2luZGV4KQogICAgICAgICAgICBpZiBkZXN0cm95X29sZF9pZl9lbXB0eToKICAgICAgICAgICAgICAgIHNlbGYuZGVzdHJveV9wYW5lKG9wcG9zaXRlX2RpcmVjdGlvbihkaXJlY3Rpb24pLCBUcnVlKQogICAgICAgIGVsaWYgY3JlYXRlX25ld19pZl9uZWNlc3Nhcnk6CiAgICAgICAgICAgIHNlbGYuY3JlYXRlX3BhbmUoZGlyZWN0aW9uLCBUcnVlLCBkZXN0cm95X29sZF9pZl9lbXB0eSkKCiAgICBkZWYgY2FycnlfZmlsZV90b19wYW5lKHNlbGYsIGRpcmVjdGlvbiwgY3JlYXRlX25ld19pZl9uZWNlc3Nhcnk9RmFsc2UsIGRlc3Ryb3lfb2xkX2lmX2VtcHR5PUZhbHNlKToKICAgICAgICB2aWV3ID0gc2VsZi53aW5kb3cuYWN0aXZlX3ZpZXcoKQogICAgICAgIGlmIHZpZXcgaXMgTm9uZToKICAgICAgICAgICAgIyBJZiB3ZSdyZSBpbiBhbiBlbXB0eSBncm91cCwgdGhlcmUncyBubyBhY3RpdmUgdmlldwogICAgICAgICAgICByZXR1cm4KICAgICAgICB3aW5kb3cgPSBzZWxmLndpbmRvdwogICAgICAgIHNlbGYudHJhdmVsX3RvX3BhbmUoZGlyZWN0aW9uLCBjcmVhdGVfbmV3X2lmX25lY2Vzc2FyeSkKCiAgICAgICAgYWN0aXZlX2dyb3VwID0gd2luZG93LmFjdGl2ZV9ncm91cCgpCiAgICAgICAgdmlld3NfaW5fZ3JvdXAgPSB3aW5kb3cudmlld3NfaW5fZ3JvdXAoYWN0aXZlX2dyb3VwKQogICAgICAgIHdpbmRvdy5zZXRfdmlld19pbmRleCh2aWV3LCBhY3RpdmVfZ3JvdXAsIGxlbih2aWV3c19pbl9ncm91cCkpCiAgICAgICAgc3VibGltZS5zZXRfdGltZW91dChsYW1iZGE6IHdpbmRvdy5mb2N1c192aWV3KHZpZXcpKQoKICAgICAgICBpZiBkZXN0cm95X29sZF9pZl9lbXB0eToKICAgICAgICAgICAgc2VsZi5kZXN0cm95X3BhbmUob3Bwb3NpdGVfZGlyZWN0aW9uKGRpcmVjdGlvbiksIFRydWUpCgogICAgZGVmIGNsb25lX2ZpbGVfdG9fcGFuZShzZWxmLCBkaXJlY3Rpb24sIGNyZWF0ZV9uZXdfaWZfbmVjZXNzYXJ5PUZhbHNlKToKICAgICAgICB3aW5kb3cgPSBzZWxmLndpbmRvdwogICAgICAgIHZpZXcgPSB3aW5kb3cuYWN0aXZlX3ZpZXcoKQogICAgICAgIGlmIHZpZXcgaXMgTm9uZToKICAgICAgICAgICAgIyBJZiB3ZSdyZSBpbiBhbiBlbXB0eSBncm91cCwgdGhlcmUncyBubyBhY3RpdmUgdmlldwogICAgICAgICAgICByZXR1cm4KICAgICAgICBncm91cCwgb3JpZ2luYWxfaW5kZXggPSB3aW5kb3cuZ2V0X3ZpZXdfaW5kZXgodmlldykKICAgICAgICB3aW5kb3cucnVuX2NvbW1hbmQoImNsb25lX2ZpbGUiKQoKICAgICAgICAjIElmIHdlIG1vdmUgdGhlIGNsb25lZCBmaWxlJ3MgdGFiIHRvIHRoZSBsZWZ0IG9mIHRoZSBvcmlnaW5hbCdzLAogICAgICAgICMgdGhlbiB3aGVuIHdlIHJlbW92ZSBpdCBmcm9tIHRoZSBncm91cCwgZm9jdXMgd2lsbCBmYWxsIHRvIHRoZQogICAgICAgICMgb3JpZ2luYWwgdmlldy4KICAgICAgICBuZXdfdmlldyA9IHdpbmRvdy5hY3RpdmVfdmlldygpCiAgICAgICAgaWYgbmV3X3ZpZXcgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgd2luZG93LnNldF92aWV3X2luZGV4KG5ld192aWV3LCBncm91cCwgb3JpZ2luYWxfaW5kZXgpCgogICAgICAgICMgRml4IHRoZSBuZXcgdmlldydzIHNlbGVjdGlvbiBhbmQgdmlld3BvcnQKICAgICAgICBuZXdfc2VsID0gbmV3X3ZpZXcuc2VsKCkKICAgICAgICBuZXdfc2VsLmNsZWFyKCkKICAgICAgICBmb3IgcyBpbiB2aWV3LnNlbCgpOgogICAgICAgICAgICBuZXdfc2VsLmFkZChzKQogICAgICAgIHN1YmxpbWUuc2V0X3RpbWVvdXQobGFtYmRhOiBuZXdfdmlldy5zZXRfdmlld3BvcnRfcG9zaXRpb24odmlldy52aWV3cG9ydF9wb3NpdGlvbigpLCBGYWxzZSksIDApCgogICAgICAgIHNlbGYuY2FycnlfZmlsZV90b19wYW5lKGRpcmVjdGlvbiwgY3JlYXRlX25ld19pZl9uZWNlc3NhcnkpCgogICAgZGVmIHJlb3JkZXJfcGFuZXMoc2VsZiwgbGVhdmVfZmlsZXNfYXRfcG9zaXRpb249VHJ1ZSk6CiAgICAgICAgb2xkX2luZGV4ID0gc2VsZi53aW5kb3cuYWN0aXZlX2dyb3VwKCkKICAgICAgICBvbl9kb25lID0gcGFydGlhbChzZWxmLl9vbl9yZW9yZGVyX2RvbmUsIG9sZF9pbmRleCwgbGVhdmVfZmlsZXNfYXRfcG9zaXRpb24pCiAgICAgICAgdmlldyA9IHNlbGYud2luZG93LnNob3dfaW5wdXRfcGFuZWwoImVudGVyIG5ldyBpbmRleCIsIHN0cihvbGRfaW5kZXggKyAxKSwgb25fZG9uZSwgTm9uZSwgTm9uZSkKICAgICAgICB2aWV3LnNlbCgpLmNsZWFyKCkKICAgICAgICB2aWV3LnNlbCgpLmFkZChzdWJsaW1lLlJlZ2lvbigwLCB2aWV3LnNpemUoKSkpCgogICAgZGVmIF9vbl9yZW9yZGVyX2RvbmUoc2VsZiwgb2xkX2luZGV4LCBsZWF2ZV9maWxlc19hdF9wb3NpdGlvbiwgdGV4dCk6CiAgICAgICAgdHJ5OgogICAgICAgICAgICBuZXdfaW5kZXggPSBpbnQodGV4dCkgLSAxCiAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CiAgICAgICAgICAgIHJldHVybgoKICAgICAgICByb3dzLCBjb2xzLCBjZWxscyA9IHNlbGYuZ2V0X2xheW91dCgpCgogICAgICAgIGlmIG5ld19pbmRleCA8IDAgb3IgbmV3X2luZGV4ID49IGxlbihjZWxscyk6CiAgICAgICAgICAgIHJldHVybgoKICAgICAgICBjZWxsc1tvbGRfaW5kZXhdLCBjZWxsc1tuZXdfaW5kZXhdID0gY2VsbHNbbmV3X2luZGV4XSwgY2VsbHNbb2xkX2luZGV4XQoKICAgICAgICBpZiBsZWF2ZV9maWxlc19hdF9wb3NpdGlvbjoKICAgICAgICAgICAgb2xkX2ZpbGVzID0gc2VsZi53aW5kb3cudmlld3NfaW5fZ3JvdXAob2xkX2luZGV4KQogICAgICAgICAgICBuZXdfZmlsZXMgPSBzZWxmLndpbmRvdy52aWV3c19pbl9ncm91cChuZXdfaW5kZXgpCiAgICAgICAgICAgIGZvciBwb3NpdGlvbiwgdiBpbiBlbnVtZXJhdGUob2xkX2ZpbGVzKToKICAgICAgICAgICAgICAgIHNlbGYud2luZG93LnNldF92aWV3X2luZGV4KHYsIG5ld19pbmRleCwgcG9zaXRpb24pCiAgICAgICAgICAgIGZvciBwb3NpdGlvbiwgdiBpbiBlbnVtZXJhdGUobmV3X2ZpbGVzKToKICAgICAgICAgICAgICAgIHNlbGYud2luZG93LnNldF92aWV3X2luZGV4KHYsIG9sZF9pbmRleCwgcG9zaXRpb24pCgogICAgICAgIGxheW91dCA9IHsiY29scyI6IGNvbHMsICJyb3dzIjogcm93cywgImNlbGxzIjogY2VsbHN9ICAjIHR5cGU6IHN1YmxpbWUuTGF5b3V0CiAgICAgICAgc2VsZi53aW5kb3cuc2V0X2xheW91dChsYXlvdXQpCgogICAgZGVmIHJlc2l6ZV9wYW5lcyhzZWxmLCBvcmllbnRhdGlvbiwgbW9kZSk6CiAgICAgICAgcm93cywgY29scywgY2VsbHMgPSBzZWxmLmdldF9sYXlvdXQoKQoKICAgICAgICBpZiBvcmllbnRhdGlvbiA9PSAiY29scyI6CiAgICAgICAgICAgIGRhdGEgPSBjb2xzCiAgICAgICAgICAgIG1pbjEgPSBZTUlOCiAgICAgICAgICAgIG1heDEgPSBZTUFYCiAgICAgICAgICAgIG1pbjIgPSBYTUlOCiAgICAgICAgICAgIG1heDIgPSBYTUFYCiAgICAgICAgZWxpZiBvcmllbnRhdGlvbiA9PSAicm93cyI6CiAgICAgICAgICAgIGRhdGEgPSByb3dzCiAgICAgICAgICAgIG1pbjEgPSBYTUlOCiAgICAgICAgICAgIG1heDEgPSBYTUFYCiAgICAgICAgICAgIG1pbjIgPSBZTUlOCiAgICAgICAgICAgIG1heDIgPSBZTUFYCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdVbnN1cHBvcnRlZCBvcmllbnRhdGlvbiAie30iJy5mb3JtYXQob3JpZW50YXRpb24pKQoKICAgICAgICByZWxldmFudF9pbmRleCA9IHNldCgpCgogICAgICAgIGlmIG1vZGUgPT0gIkJFRk9SRSI6CiAgICAgICAgICAgIGN1cnJlbnRfY2VsbCA9IGNlbGxzW3NlbGYud2luZG93LmFjdGl2ZV9ncm91cCgpXQogICAgICAgICAgICByZWxldmFudF9pbmRleC5hZGQoY3VycmVudF9jZWxsW21pbjJdKQoKICAgICAgICBlbGlmIG1vZGUgPT0gIkFGVEVSIjoKICAgICAgICAgICAgY3VycmVudF9jZWxsID0gY2VsbHNbc2VsZi53aW5kb3cuYWN0aXZlX2dyb3VwKCldCiAgICAgICAgICAgIHJlbGV2YW50X2luZGV4LmFkZChjdXJyZW50X2NlbGxbbWF4Ml0pCgogICAgICAgIGVsaWYgbW9kZSA9PSAiTkVBUkVTVCI6CiAgICAgICAgICAgIGN1cnJlbnRfY2VsbCA9IGNlbGxzW3NlbGYud2luZG93LmFjdGl2ZV9ncm91cCgpXQogICAgICAgICAgICByZWxldmFudF9pbmRleC51cGRhdGUoKGN1cnJlbnRfY2VsbFttaW4yXSwgY3VycmVudF9jZWxsW21heDJdKSkKCiAgICAgICAgZWxpZiBtb2RlID09ICJSRUxFVkFOVCI6CiAgICAgICAgICAgIGN1cnJlbnRfY2VsbCA9IGNlbGxzW3NlbGYud2luZG93LmFjdGl2ZV9ncm91cCgpXQogICAgICAgICAgICBtaW5fdmFsMSA9IGN1cnJlbnRfY2VsbFttaW4xXQogICAgICAgICAgICBtYXhfdmFsMSA9IGN1cnJlbnRfY2VsbFttYXgxXQogICAgICAgICAgICBmb3IgYyBpbiBjZWxsczoKICAgICAgICAgICAgICAgIG1pbl92YWwyID0gY1ttaW4xXQogICAgICAgICAgICAgICAgbWF4X3ZhbDIgPSBjW21heDFdCiAgICAgICAgICAgICAgICBpZiBtaW5fdmFsMSA+PSBtYXhfdmFsMiBvciBtaW5fdmFsMiA+PSBtYXhfdmFsMToKICAgICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgICAgcmVsZXZhbnRfaW5kZXgudXBkYXRlKChjW21pbjJdLCBjW21heDJdKSkKCiAgICAgICAgZWxpZiBtb2RlID09ICJBTEwiOgogICAgICAgICAgICByZWxldmFudF9pbmRleC51cGRhdGUocmFuZ2UobGVuKGRhdGEpKSkKCiAgICAgICAgcmVsZXZhbnRfaW5kZXguZGlmZmVyZW5jZV91cGRhdGUoKDAsIGxlbihkYXRhKSAtIDEpKSAgIyBkb250IHNob3cgdGhlIGZpcnN0IGFuZCBsYXN0IHZhbHVlIChpdCdzIGFsd2F5cyAwIGFuZCAxKQogICAgICAgIHJlbGV2YW50X2luZGV4ID0gc29ydGVkKHJlbGV2YW50X2luZGV4KQoKICAgICAgICB0ZXh0ID0gIiwgIi5qb2luKHN0cihkYXRhW2ldKSBmb3IgaSBpbiByZWxldmFudF9pbmRleCkKICAgICAgICBvbl9kb25lID0gcGFydGlhbChzZWxmLl9vbl9yZXNpemVfcGFuZXMsIG9yaWVudGF0aW9uLCBjZWxscywgcmVsZXZhbnRfaW5kZXgsIGRhdGEpCiAgICAgICAgb25fdXBkYXRlID0gcGFydGlhbChzZWxmLl9vbl9yZXNpemVfcGFuZXNfdXBkYXRlLCBvcmllbnRhdGlvbiwgY2VsbHMsIHJlbGV2YW50X2luZGV4LCBkYXRhKQogICAgICAgIG9uX2NhbmNsZSA9IHBhcnRpYWwoc2VsZi5fb25fcmVzaXplX3BhbmVzLCBvcmllbnRhdGlvbiwgY2VsbHMsIHJlbGV2YW50X2luZGV4LCBkYXRhLCB0ZXh0KQogICAgICAgIHZpZXcgPSBzZWxmLndpbmRvdy5zaG93X2lucHV0X3BhbmVsKG9yaWVudGF0aW9uLCB0ZXh0LCBvbl9kb25lLCBvbl91cGRhdGUsIG9uX2NhbmNsZSkKICAgICAgICB2aWV3LnNlbCgpLmNsZWFyKCkKICAgICAgICB2aWV3LnNlbCgpLmFkZChzdWJsaW1lLlJlZ2lvbigwLCB2aWV3LnNpemUoKSkpCgogICAgZGVmIF9vbl9yZXNpemVfcGFuZXNfZ2V0X2xheW91dChzZWxmLCBvcmllbnRhdGlvbiwgY2VsbHMsIHJlbGV2YW50X2luZGV4LCBvcmlnX2RhdGEsIHRleHQpOgogICAgICAgIHJvd3MsIGNvbHMsIF8gPSBzZWxmLmdldF9sYXlvdXQoKQoKICAgICAgICBpbnB1dF9kYXRhID0gW2Zsb2F0KHgpIGZvciB4IGluIHRleHQuc3BsaXQoIiwiKV0KICAgICAgICBpZiBhbnkoZCA+IDEuMCBmb3IgZCBpbiBpbnB1dF9kYXRhKToKICAgICAgICAgICAgcmV0dXJuIHsiY29scyI6IGNvbHMsICJyb3dzIjogcm93cywgImNlbGxzIjogY2VsbHN9CgogICAgICAgIGNlbGxzID0gY29weS5kZWVwY29weShjZWxscykKICAgICAgICBkYXRhID0gY29weS5kZWVwY29weShvcmlnX2RhdGEpCiAgICAgICAgZm9yIGksIGQgaW4gemlwKHJlbGV2YW50X2luZGV4LCBpbnB1dF9kYXRhKToKICAgICAgICAgICAgZGF0YVtpXSA9IGQKCiAgICAgICAgZGF0YSA9IHNvcnRlZChlbnVtZXJhdGUoZGF0YSksIGtleT1sYW1iZGEgeDogeFsxXSkgICMgc29ydCBzdWNoIHRoYXQgeW91IGNhbiBzd2FwIGdyaWQgbGluZXMKICAgICAgICBpbmRleGVzLCBkYXRhID0gbWFwKGxpc3QsIHppcCgqZGF0YSkpICAjIGluZGV4ZXMgYXJlIGFsc28gc29ydGVkCgogICAgICAgIHJldmVsYW50X2NlbGxfZW50cmllcyA9IFtdCiAgICAgICAgaWYgb3JpZW50YXRpb24gPT0gImNvbHMiOgogICAgICAgICAgICByZXZlbGFudF9jZWxsX2VudHJpZXMgPSBbWE1JTiwgWE1BWF0KICAgICAgICBlbGlmIG9yaWVudGF0aW9uID09ICJyb3dzIjoKICAgICAgICAgICAgcmV2ZWxhbnRfY2VsbF9lbnRyaWVzID0gW1lNSU4sIFlNQVhdCgogICAgICAgICMgY2hhbmdlIHRoZSBjZWxsIGJvdW5kYXJpZXMgYWNjb3JkaW5nIHRvIHRoZSBzb3J0ZWQgaW5kZXhlcwogICAgICAgIGZvciBjZWxsIGluIGNlbGxzOgogICAgICAgICAgICBmb3IgaiBpbiByZXZlbGFudF9jZWxsX2VudHJpZXM6CiAgICAgICAgICAgICAgICBmb3IgbmV3LCBvbGQgaW4gZW51bWVyYXRlKGluZGV4ZXMpOgogICAgICAgICAgICAgICAgICAgIGlmIG5ldyAhPSBvbGQgYW5kIGNlbGxbal0gPT0gbmV3OgogICAgICAgICAgICAgICAgICAgICAgICBjZWxsW2pdID0gb2xkCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCgogICAgICAgIGlmIG9yaWVudGF0aW9uID09ICJjb2xzIjoKICAgICAgICAgICAgaWYgbGVuKGNvbHMpID09IGxlbihkYXRhKToKICAgICAgICAgICAgICAgIGNvbHMgPSBkYXRhCiAgICAgICAgZWxpZiBvcmllbnRhdGlvbiA9PSAicm93cyI6CiAgICAgICAgICAgIGlmIGxlbihyb3dzKSA9PSBsZW4oZGF0YSk6CiAgICAgICAgICAgICAgICByb3dzID0gZGF0YQoKICAgICAgICByZXR1cm4geyJjb2xzIjogY29scywgInJvd3MiOiByb3dzLCAiY2VsbHMiOiBjZWxsc30KCiAgICBkZWYgX29uX3Jlc2l6ZV9wYW5lc191cGRhdGUoc2VsZiwgb3JpZW50YXRpb24sIGNlbGxzLCByZWxldmFudF9pbmRleCwgb3JpZ19kYXRhLCB0ZXh0KToKICAgICAgICBsYXlvdXQgPSBzZWxmLl9vbl9yZXNpemVfcGFuZXNfZ2V0X2xheW91dChvcmllbnRhdGlvbiwgY2VsbHMsIHJlbGV2YW50X2luZGV4LCBvcmlnX2RhdGEsIHRleHQpCiAgICAgICAgc2VsZi53aW5kb3cuc2V0X2xheW91dChsYXlvdXQpCgogICAgZGVmIF9vbl9yZXNpemVfcGFuZXMoc2VsZiwgb3JpZW50YXRpb24sIGNlbGxzLCByZWxldmFudF9pbmRleCwgb3JpZ19kYXRhLCB0ZXh0KToKICAgICAgICBsYXlvdXQgPSBzZWxmLl9vbl9yZXNpemVfcGFuZXNfZ2V0X2xheW91dChvcmllbnRhdGlvbiwgY2VsbHMsIHJlbGV2YW50X2luZGV4LCBvcmlnX2RhdGEsIHRleHQpCiAgICAgICAgc2VsZi53aW5kb3cuc2V0X2xheW91dChsYXlvdXQpCgogICAgCgogICAgZGVmIHpvb21fcGFuZShzZWxmLCBhdXRvX3pvb20pOgogICAgICAgIGZyYWN0aW9uX2hvcml6b250YWwgPSAuOQogICAgICAgIGZyYWN0aW9uX3ZlcnRpY2FsID0gLjkKICAgICAgICAKICAgICAgICBpZiBpc2luc3RhbmNlKGF1dG9fem9vbSwgZmxvYXQpIG9yIGlzaW5zdGFuY2UoYXV0b196b29tLCBpbnQpOgogICAgICAgICAgICBmcmFjdGlvbl9ob3Jpem9udGFsID0gYXV0b196b29tCiAgICAgICAgZWxpZiBpc2luc3RhbmNlKGF1dG9fem9vbSwgbGlzdCk6CiAgICAgICAgICAgIGZyYWN0aW9uX2hvcml6b250YWwgPSBhdXRvX3pvb21bMF0KICAgICAgICAgICAgZnJhY3Rpb25fdmVydGljYWwgPSBhdXRvX3pvb21bMV0KCiAgICAgICAgZnJhY3Rpb25faG9yaXpvbnRhbCA9IG1pbigxLCBtYXgoMCwgZnJhY3Rpb25faG9yaXpvbnRhbCkpCiAgICAgICAgZnJhY3Rpb25fdmVydGljYWwgID0gbWluKDEsIG1heCgwLCBmcmFjdGlvbl92ZXJ0aWNhbCkpCgogICAgICAgIHdpbmRvdyA9IHNlbGYud2luZG93CiAgICAgICAgcm93cywgY29scywgY2VsbHMgPSBzZWxmLmdldF9sYXlvdXQoKQogICAgICAgIGN1cnJlbnRfY2VsbCA9IGNlbGxzW3dpbmRvdy5hY3RpdmVfZ3JvdXAoKV0KCiAgICAgICAgY3VycmVudF9jb2wgPSBjdXJyZW50X2NlbGxbMF0KICAgICAgICBudW1fY29scyA9IGxlbihjb2xzKSAtIDEKCiAgICAgICAgIyBUT0RPOiB0aGUgc2l6ZXMgb2YgdGhlIHVuem9vbWVkIHBhbmVzIGFyZSBjYWxjdWxhdGVkIGluY29ycmVjdGx5IGlmIHRoZQogICAgICAgICMgICAgICAgdW56b29tZWQgcGFuZXMgaGF2ZSBhIHNwbGl0IHRoYXQgb3ZlcmxhcHMgdGhlIHpvb21lZCBwYW5lLgogICAgICAgIGN1cnJlbnRfY29sX3dpZHRoID0gMSBpZiBudW1fY29scyA9PSAxIGVsc2UgZnJhY3Rpb25faG9yaXpvbnRhbAogICAgICAgIG90aGVyX2NvbF93aWR0aCA9IDAgaWYgbnVtX2NvbHMgPT0gMSBlbHNlICgxIC0gY3VycmVudF9jb2xfd2lkdGgpIC8gKG51bV9jb2xzIC0gMSkKCiAgICAgICAgY29scyA9IFswLjBdCiAgICAgICAgZm9yIGkgaW4gcmFuZ2UobnVtX2NvbHMpOgogICAgICAgICAgICBjb2xzLmFwcGVuZChjb2xzW2ldICsgKGN1cnJlbnRfY29sX3dpZHRoIGlmIGkgPT0gY3VycmVudF9jb2wgZWxzZSBvdGhlcl9jb2xfd2lkdGgpKQoKICAgICAgICBjdXJyZW50X3JvdyA9IGN1cnJlbnRfY2VsbFsxXQogICAgICAgIG51bV9yb3dzID0gbGVuKHJvd3MpIC0gMQoKICAgICAgICAjIGN1cnJlbnRfcm93X2hlaWdodCA9IDEgaWYgbnVtX3Jvd3MgPT0gMSBlbHNlIGZyYWN0aW9uX2hvcml6b250YWwKICAgICAgICBjdXJyZW50X3Jvd19oZWlnaHQgPSAxIGlmIG51bV9yb3dzID09IDEgZWxzZSBmcmFjdGlvbl92ZXJ0aWNhbAogICAgICAgIG90aGVyX3Jvd19oZWlnaHQgPSAwIGlmIG51bV9yb3dzID09IDEgZWxzZSAoMSAtIGN1cnJlbnRfcm93X2hlaWdodCkgLyAobnVtX3Jvd3MgLSAxKQogICAgICAgIHJvd3MgPSBbMC4wXQogICAgICAgIGZvciBpIGluIHJhbmdlKG51bV9yb3dzKToKICAgICAgICAgICAgcm93cy5hcHBlbmQocm93c1tpXSArIChjdXJyZW50X3Jvd19oZWlnaHQgaWYgaSA9PSBjdXJyZW50X3JvdyBlbHNlIG90aGVyX3Jvd19oZWlnaHQpKQoKICAgICAgICBsYXlvdXQgPSB7ImNvbHMiOiBjb2xzLCAicm93cyI6IHJvd3MsICJjZWxscyI6IGNlbGxzfSAgIyB0eXBlOiBzdWJsaW1lLkxheW91dAogICAgICAgIHdpbmRvdy5zZXRfbGF5b3V0KGxheW91dCkKCiAgICBkZWYgdW56b29tX3BhbmUoc2VsZik6CiAgICAgICAgd2luZG93ID0gc2VsZi53aW5kb3cKICAgICAgICByb3dzLCBjb2xzLCBjZWxscyA9IHNlbGYuZ2V0X2xheW91dCgpCgogICAgICAgIG51bV9jb2xzID0gbGVuKGNvbHMpIC0gMQogICAgICAgIGNvbF93aWR0aCA9IDEuMCAvIG51bV9jb2xzCgogICAgICAgIGNvbHMgPSBbMC4wXQogICAgICAgIGZvciBpIGluIHJhbmdlKG51bV9jb2xzKToKICAgICAgICAgICAgY29scy5hcHBlbmQoY29sc1tpXSArIGNvbF93aWR0aCkKCiAgICAgICAgbnVtX3Jvd3MgPSBsZW4ocm93cykgLSAxCiAgICAgICAgcm93X2hlaWdodCA9IDEuMCAvIG51bV9yb3dzCgogICAgICAgIHJvd3MgPSBbMC4wXQogICAgICAgIGZvciBpIGluIHJhbmdlKG51bV9yb3dzKToKICAgICAgICAgICAgcm93cy5hcHBlbmQocm93c1tpXSArIHJvd19oZWlnaHQpCgogICAgICAgIGxheW91dCA9IHsiY29scyI6IGNvbHMsICJyb3dzIjogcm93cywgImNlbGxzIjogY2VsbHN9ICAjIHR5cGU6IHN1YmxpbWUuTGF5b3V0CiAgICAgICAgd2luZG93LnNldF9sYXlvdXQobGF5b3V0KQoKICAgIGRlZiB0b2dnbGVfem9vbShzZWxmLCBmcmFjdGlvbik6CiAgICAgICAgcm93cywgY29scywgY2VsbHMgPSBzZWxmLmdldF9sYXlvdXQoKQogICAgICAgIGVxdWFsX3NwYWNpbmcgPSBUcnVlCgogICAgICAgIG51bV9jb2xzID0gbGVuKGNvbHMpIC0gMQogICAgICAgIGNvbF93aWR0aCA9IDEgLyBudW1fY29scwoKICAgICAgICBmb3IgaSwgYyBpbiBlbnVtZXJhdGUoY29scyk6CiAgICAgICAgICAgIGlmIGMgIT0gaSAqIGNvbF93aWR0aDoKICAgICAgICAgICAgICAgIGVxdWFsX3NwYWNpbmcgPSBGYWxzZQogICAgICAgICAgICAgICAgYnJlYWsKCiAgICAgICAgbnVtX3Jvd3MgPSBsZW4ocm93cykgLSAxCiAgICAgICAgcm93X2hlaWdodCA9IDEgLyBudW1fcm93cwoKICAgICAgICBmb3IgaSwgciBpbiBlbnVtZXJhdGUocm93cyk6CiAgICAgICAgICAgIGlmIHIgIT0gaSAqIHJvd19oZWlnaHQ6CiAgICAgICAgICAgICAgICBlcXVhbF9zcGFjaW5nID0gRmFsc2UKICAgICAgICAgICAgICAgIGJyZWFrCgogICAgICAgIGlmIGVxdWFsX3NwYWNpbmc6CiAgICAgICAgICAgIHNlbGYuem9vbV9wYW5lKGZyYWN0aW9uKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHNlbGYudW56b29tX3BhbmUoKQoKICAgIGRlZiBjcmVhdGVfcGFuZShzZWxmLCBkaXJlY3Rpb24sIGdpdmVfZm9jdXM9RmFsc2UsIGRlc3Ryb3lfb2xkX2lmX2VtcHR5PUZhbHNlKToKICAgICAgICB3aW5kb3cgPSBzZWxmLndpbmRvdwogICAgICAgIHJvd3MsIGNvbHMsIGNlbGxzID0gc2VsZi5nZXRfbGF5b3V0KCkKICAgICAgICBjdXJyZW50X2dyb3VwID0gd2luZG93LmFjdGl2ZV9ncm91cCgpCgogICAgICAgIG9sZF9jZWxsID0gY2VsbHMucG9wKGN1cnJlbnRfZ3JvdXApCiAgICAgICAgbmV3X2NlbGwgPSBbXQoKICAgICAgICBpZiBkaXJlY3Rpb24gaW4gKCJ1cCIsICJkb3duIik6CiAgICAgICAgICAgIGNlbGxzID0gcHVzaF9kb3duX2NlbGxzX2FmdGVyKGNlbGxzLCBvbGRfY2VsbFtZTUFYXSkKICAgICAgICAgICAgcm93cy5pbnNlcnQob2xkX2NlbGxbWU1BWF0sIChyb3dzW29sZF9jZWxsW1lNSU5dXSArIHJvd3Nbb2xkX2NlbGxbWU1BWF1dKSAvIDIpCiAgICAgICAgICAgIG5ld19jZWxsID0gW29sZF9jZWxsW1hNSU5dLCBvbGRfY2VsbFtZTUFYXSwgb2xkX2NlbGxbWE1BWF0sIG9sZF9jZWxsW1lNQVhdICsgMV0KICAgICAgICAgICAgb2xkX2NlbGwgPSBbb2xkX2NlbGxbWE1JTl0sIG9sZF9jZWxsW1lNSU5dLCBvbGRfY2VsbFtYTUFYXSwgb2xkX2NlbGxbWU1BWF1dCgogICAgICAgIGVsaWYgZGlyZWN0aW9uIGluICgicmlnaHQiLCAibGVmdCIpOgogICAgICAgICAgICBjZWxscyA9IHB1c2hfcmlnaHRfY2VsbHNfYWZ0ZXIoY2VsbHMsIG9sZF9jZWxsW1hNQVhdKQogICAgICAgICAgICBjb2xzLmluc2VydChvbGRfY2VsbFtYTUFYXSwgKGNvbHNbb2xkX2NlbGxbWE1JTl1dICsgY29sc1tvbGRfY2VsbFtYTUFYXV0pIC8gMikKICAgICAgICAgICAgbmV3X2NlbGwgPSBbb2xkX2NlbGxbWE1BWF0sIG9sZF9jZWxsW1lNSU5dLCBvbGRfY2VsbFtYTUFYXSArIDEsIG9sZF9jZWxsW1lNQVhdXQogICAgICAgICAgICBvbGRfY2VsbCA9IFtvbGRfY2VsbFtYTUlOXSwgb2xkX2NlbGxbWU1JTl0sIG9sZF9jZWxsW1hNQVhdLCBvbGRfY2VsbFtZTUFYXV0KCiAgICAgICAgaWYgbmV3X2NlbGw6CiAgICAgICAgICAgIGlmIGRpcmVjdGlvbiBpbiAoImxlZnQiLCAidXAiKToKICAgICAgICAgICAgICAgIGZvY3VzZWRfY2VsbCA9IG5ld19jZWxsCiAgICAgICAgICAgICAgICB1bmZvY3VzZWRfY2VsbCA9IG9sZF9jZWxsCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICBmb2N1c2VkX2NlbGwgPSBvbGRfY2VsbAogICAgICAgICAgICAgICAgdW5mb2N1c2VkX2NlbGwgPSBuZXdfY2VsbAogICAgICAgICAgICBjZWxscy5pbnNlcnQoY3VycmVudF9ncm91cCwgZm9jdXNlZF9jZWxsKQogICAgICAgICAgICBjZWxscy5hcHBlbmQodW5mb2N1c2VkX2NlbGwpCiAgICAgICAgICAgIGxheW91dCA9IHsiY29scyI6IGNvbHMsICJyb3dzIjogcm93cywgImNlbGxzIjogY2VsbHN9ICAjIHR5cGU6IHN1YmxpbWUuTGF5b3V0CiAgICAgICAgICAgIHdpbmRvdy5zZXRfbGF5b3V0KGxheW91dCkKCiAgICAgICAgICAgIGlmIGdpdmVfZm9jdXM6CiAgICAgICAgICAgICAgICBzZWxmLnRyYXZlbF90b19wYW5lKGRpcmVjdGlvbiwgRmFsc2UsIGRlc3Ryb3lfb2xkX2lmX2VtcHR5KQoKICAgIGRlZiBkZXN0cm95X2N1cnJlbnRfcGFuZShzZWxmKToKICAgICAgICAjIE91dCBvZiB0aGUgZm91ciBhZGphY2VudCBwYW5lcywgb25lIHdhcyBzcGxpdCB0byBjcmVhdGUgdGhpcyBwYW5lLgogICAgICAgICMgRmluZCBvdXQgd2hpY2ggb25lLCBtb3ZlIHRvIGl0LCB0aGVuIGRlc3Ryb3kgdGhpcyBwYW5lLgogICAgICAgIGNlbGxzID0gc2VsZi5nZXRfY2VsbHMoKQoKICAgICAgICBjdXJyZW50ID0gY2VsbHNbc2VsZi53aW5kb3cuYWN0aXZlX2dyb3VwKCldCgogICAgICAgIHRhcmdldF9kaXIgPSBOb25lCiAgICAgICAgZm9yIGRpciBpbiAoInVwIiwgInJpZ2h0IiwgImRvd24iLCAibGVmdCIpOgogICAgICAgICAgICBjID0gc2VsZi5hZGphY2VudF9jZWxsKGRpcikKICAgICAgICAgICAgaWYgbm90IGM6CiAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICBpZiBkaXIgaW4gKCJ1cCIsICJkb3duIik6CiAgICAgICAgICAgICAgICBpZiBjW1hNSU5dID09IGN1cnJlbnRbWE1JTl0gYW5kIGNbWE1BWF0gPT0gY3VycmVudFtYTUFYXToKICAgICAgICAgICAgICAgICAgICB0YXJnZXRfZGlyID0gZGlyCiAgICAgICAgICAgIGVsaWYgZGlyIGluICgibGVmdCIsICJyaWdodCIpOgogICAgICAgICAgICAgICAgaWYgY1tZTUlOXSA9PSBjdXJyZW50W1lNSU5dIGFuZCBjW1lNQVhdID09IGN1cnJlbnRbWU1BWF06CiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2RpciA9IGRpcgogICAgICAgIGlmIHRhcmdldF9kaXI6CiAgICAgICAgICAgIHNlbGYudHJhdmVsX3RvX3BhbmUodGFyZ2V0X2RpcikKICAgICAgICAgICAgc2VsZi5kZXN0cm95X3BhbmUob3Bwb3NpdGVfZGlyZWN0aW9uKHRhcmdldF9kaXIpKQoKICAgIGRlZiBkZXN0cm95X3BhbmUoc2VsZiwgZGlyZWN0aW9uLCBvbmx5X29uX2VtcHR5PUZhbHNlKToKICAgICAgICBpZiBkaXJlY3Rpb24gPT0gInNlbGYiOgogICAgICAgICAgICBzZWxmLmRlc3Ryb3lfY3VycmVudF9wYW5lKCkKICAgICAgICAgICAgcmV0dXJuCgogICAgICAgIHdpbmRvdyA9IHNlbGYud2luZG93CiAgICAgICAgcm93cywgY29scywgY2VsbHMgPSBzZWxmLmdldF9sYXlvdXQoKQogICAgICAgIGN1cnJlbnRfZ3JvdXAgPSB3aW5kb3cuYWN0aXZlX2dyb3VwKCkKCiAgICAgICAgY2VsbF90b19yZW1vdmUgPSBOb25lCiAgICAgICAgY3VycmVudF9jZWxsID0gY2VsbHNbY3VycmVudF9ncm91cF0KCiAgICAgICAgYWRqYWNlbnRfY2VsbHMgPSBjZWxsc19hZGphY2VudF90b19jZWxsX2luX2RpcmVjdGlvbihjZWxscywgY3VycmVudF9jZWxsLCBkaXJlY3Rpb24pCiAgICAgICAgaWYgbGVuKGFkamFjZW50X2NlbGxzKSA9PSAxOgogICAgICAgICAgICBjZWxsX3RvX3JlbW92ZSA9IGFkamFjZW50X2NlbGxzWzBdCgogICAgICAgIGlmIGNlbGxfdG9fcmVtb3ZlOgogICAgICAgICAgICBhY3RpdmVfdmlldyA9IHdpbmRvdy5hY3RpdmVfdmlldygpCiAgICAgICAgICAgIGdyb3VwX3RvX3JlbW92ZSA9IGNlbGxzLmluZGV4KGNlbGxfdG9fcmVtb3ZlKQogICAgICAgICAgICBoYXNfY29udGVudCA9IGxlbih3aW5kb3cuc2hlZXRzX2luX2dyb3VwKGdyb3VwX3RvX3JlbW92ZSkpID4gMAogICAgICAgICAgICBpZiBvbmx5X29uX2VtcHR5IGFuZCBoYXNfY29udGVudDoKICAgICAgICAgICAgICAgIHJldHVybgoKICAgICAgICAgICAgZHVwZV92aWV3cyA9IHNlbGYuZHVwbGljYXRlZF92aWV3cyhjdXJyZW50X2dyb3VwLCBncm91cF90b19yZW1vdmUpCiAgICAgICAgICAgIGZvciBkIGluIGR1cGVfdmlld3M6CiAgICAgICAgICAgICAgICB3aW5kb3cuZm9jdXNfdmlldyhkKQogICAgICAgICAgICAgICAgd2luZG93LnJ1bl9jb21tYW5kKCdjbG9zZScpCiAgICAgICAgICAgIGlmIGFjdGl2ZV92aWV3OgogICAgICAgICAgICAgICAgd2luZG93LmZvY3VzX3ZpZXcoYWN0aXZlX3ZpZXcpCgogICAgICAgICAgICBjZWxscy5yZW1vdmUoY2VsbF90b19yZW1vdmUpCiAgICAgICAgICAgIGlmIGRpcmVjdGlvbiA9PSAidXAiOgogICAgICAgICAgICAgICAgcm93cy5wb3AoY2VsbF90b19yZW1vdmVbWU1BWF0pCiAgICAgICAgICAgICAgICBhZGphY2VudF9jZWxscyA9IGNlbGxzX2FkamFjZW50X3RvX2NlbGxfaW5fZGlyZWN0aW9uKGNlbGxzLCBjZWxsX3RvX3JlbW92ZSwgImRvd24iKQogICAgICAgICAgICAgICAgZm9yIGNlbGwgaW4gYWRqYWNlbnRfY2VsbHM6CiAgICAgICAgICAgICAgICAgICAgY2VsbHNbY2VsbHMuaW5kZXgoY2VsbCldW1lNSU5dID0gY2VsbF90b19yZW1vdmVbWU1JTl0KICAgICAgICAgICAgICAgIGNlbGxzID0gcHVsbF91cF9jZWxsc19hZnRlcihjZWxscywgY2VsbF90b19yZW1vdmVbWU1BWF0pCiAgICAgICAgICAgIGVsaWYgZGlyZWN0aW9uID09ICJyaWdodCI6CiAgICAgICAgICAgICAgICBjb2xzLnBvcChjZWxsX3RvX3JlbW92ZVtYTUlOXSkKICAgICAgICAgICAgICAgIGFkamFjZW50X2NlbGxzID0gY2VsbHNfYWRqYWNlbnRfdG9fY2VsbF9pbl9kaXJlY3Rpb24oY2VsbHMsIGNlbGxfdG9fcmVtb3ZlLCAibGVmdCIpCiAgICAgICAgICAgICAgICBmb3IgY2VsbCBpbiBhZGphY2VudF9jZWxsczoKICAgICAgICAgICAgICAgICAgICBjZWxsc1tjZWxscy5pbmRleChjZWxsKV1bWE1BWF0gPSBjZWxsX3RvX3JlbW92ZVtYTUFYXQogICAgICAgICAgICAgICAgY2VsbHMgPSBwdWxsX2xlZnRfY2VsbHNfYWZ0ZXIoY2VsbHMsIGNlbGxfdG9fcmVtb3ZlW1hNSU5dKQogICAgICAgICAgICBlbGlmIGRpcmVjdGlvbiA9PSAiZG93biI6CiAgICAgICAgICAgICAgICByb3dzLnBvcChjZWxsX3RvX3JlbW92ZVtZTUlOXSkKICAgICAgICAgICAgICAgIGFkamFjZW50X2NlbGxzID0gY2VsbHNfYWRqYWNlbnRfdG9fY2VsbF9pbl9kaXJlY3Rpb24oY2VsbHMsIGNlbGxfdG9fcmVtb3ZlLCAidXAiKQogICAgICAgICAgICAgICAgZm9yIGNlbGwgaW4gYWRqYWNlbnRfY2VsbHM6CiAgICAgICAgICAgICAgICAgICAgY2VsbHNbY2VsbHMuaW5kZXgoY2VsbCldW1lNQVhdID0gY2VsbF90b19yZW1vdmVbWU1BWF0KICAgICAgICAgICAgICAgIGNlbGxzID0gcHVsbF91cF9jZWxsc19hZnRlcihjZWxscywgY2VsbF90b19yZW1vdmVbWU1JTl0pCiAgICAgICAgICAgIGVsaWYgZGlyZWN0aW9uID09ICJsZWZ0IjoKICAgICAgICAgICAgICAgIGNvbHMucG9wKGNlbGxfdG9fcmVtb3ZlW1hNQVhdKQogICAgICAgICAgICAgICAgYWRqYWNlbnRfY2VsbHMgPSBjZWxsc19hZGphY2VudF90b19jZWxsX2luX2RpcmVjdGlvbihjZWxscywgY2VsbF90b19yZW1vdmUsICJyaWdodCIpCiAgICAgICAgICAgICAgICBmb3IgY2VsbCBpbiBhZGphY2VudF9jZWxsczoKICAgICAgICAgICAgICAgICAgICBjZWxsc1tjZWxscy5pbmRleChjZWxsKV1bWE1JTl0gPSBjZWxsX3RvX3JlbW92ZVtYTUlOXQogICAgICAgICAgICAgICAgY2VsbHMgPSBwdWxsX2xlZnRfY2VsbHNfYWZ0ZXIoY2VsbHMsIGNlbGxfdG9fcmVtb3ZlW1hNQVhdKQoKICAgICAgICAgICAgbGF5b3V0ID0geyJjb2xzIjogY29scywgInJvd3MiOiByb3dzLCAiY2VsbHMiOiBjZWxsc30gICMgdHlwZTogc3VibGltZS5MYXlvdXQKICAgICAgICAgICAgd2luZG93LnNldF9sYXlvdXQobGF5b3V0KQoKICAgIGRlZiBwdWxsX2ZpbGVfZnJvbV9wYW5lKHNlbGYsIGRpcmVjdGlvbik6CiAgICAgICAgYWRqYWNlbnRfY2VsbCA9IHNlbGYuYWRqYWNlbnRfY2VsbChkaXJlY3Rpb24pCgogICAgICAgIGlmIGFkamFjZW50X2NlbGw6CiAgICAgICAgICAgIGNlbGxzID0gc2VsZi5nZXRfY2VsbHMoKQogICAgICAgICAgICBncm91cF9pbmRleCA9IGNlbGxzLmluZGV4KGFkamFjZW50X2NlbGwpCgogICAgICAgICAgICB2aWV3ID0gc2VsZi53aW5kb3cuYWN0aXZlX3ZpZXdfaW5fZ3JvdXAoZ3JvdXBfaW5kZXgpCgogICAgICAgICAgICBpZiB2aWV3OgogICAgICAgICAgICAgICAgYWN0aXZlX2dyb3VwX2luZGV4ID0gc2VsZi53aW5kb3cuYWN0aXZlX2dyb3VwKCkKICAgICAgICAgICAgICAgIHZpZXdzX2luX2dyb3VwID0gc2VsZi53aW5kb3cudmlld3NfaW5fZ3JvdXAoYWN0aXZlX2dyb3VwX2luZGV4KQogICAgICAgICAgICAgICAgc2VsZi53aW5kb3cuc2V0X3ZpZXdfaW5kZXgodmlldywgYWN0aXZlX2dyb3VwX2luZGV4LCBsZW4odmlld3NfaW5fZ3JvdXApKQoKCmNsYXNzIFRyYXZlbFRvUGFuZUNvbW1hbmQoUGFuZUNvbW1hbmQsIFdpdGhTZXR0aW5ncyk6CiAgICBkZWYgcnVuKHNlbGYsIGRpcmVjdGlvbiwgY3JlYXRlX25ld19pZl9uZWNlc3Nhcnk9Tm9uZSwgZGVzdHJveV9vbGRfaWZfZW1wdHk9Tm9uZSk6CiAgICAgICAgaWYgY3JlYXRlX25ld19pZl9uZWNlc3NhcnkgaXMgTm9uZToKICAgICAgICAgICAgY3JlYXRlX25ld19pZl9uZWNlc3NhcnkgPSBzZWxmLnNldHRpbmdzKCkuZ2V0KCdjcmVhdGVfbmV3X3BhbmVfaWZfbmVjZXNzYXJ5JykKICAgICAgICBpZiBkZXN0cm95X29sZF9pZl9lbXB0eSBpcyBOb25lOgogICAgICAgICAgICBkZXN0cm95X29sZF9pZl9lbXB0eSA9IHNlbGYuc2V0dGluZ3MoKS5nZXQoJ2Rlc3Ryb3lfZW1wdHlfcGFuZXMnKQogICAgICAgIHNlbGYudHJhdmVsX3RvX3BhbmUoZGlyZWN0aW9uLCBjcmVhdGVfbmV3X2lmX25lY2Vzc2FyeSwgZGVzdHJveV9vbGRfaWZfZW1wdHkpCgoKY2xhc3MgQ2FycnlGaWxlVG9QYW5lQ29tbWFuZChQYW5lQ29tbWFuZCwgV2l0aFNldHRpbmdzKToKICAgIGRlZiBydW4oc2VsZiwgZGlyZWN0aW9uLCBjcmVhdGVfbmV3X2lmX25lY2Vzc2FyeT1Ob25lLCBkZXN0cm95X29sZF9pZl9lbXB0eT1Ob25lKToKICAgICAgICBpZiBjcmVhdGVfbmV3X2lmX25lY2Vzc2FyeSBpcyBOb25lOgogICAgICAgICAgICBjcmVhdGVfbmV3X2lmX25lY2Vzc2FyeSA9IHNlbGYuc2V0dGluZ3MoKS5nZXQoJ2NyZWF0ZV9uZXdfcGFuZV9pZl9uZWNlc3NhcnknKQogICAgICAgIGlmIGRlc3Ryb3lfb2xkX2lmX2VtcHR5IGlzIE5vbmU6CiAgICAgICAgICAgIGRlc3Ryb3lfb2xkX2lmX2VtcHR5ID0gc2VsZi5zZXR0aW5ncygpLmdldCgnZGVzdHJveV9lbXB0eV9wYW5lcycpCiAgICAgICAgc2VsZi5jYXJyeV9maWxlX3RvX3BhbmUoZGlyZWN0aW9uLCBjcmVhdGVfbmV3X2lmX25lY2Vzc2FyeSwgZGVzdHJveV9vbGRfaWZfZW1wdHkpCgoKY2xhc3MgQ2xvbmVGaWxlVG9QYW5lQ29tbWFuZChQYW5lQ29tbWFuZCwgV2l0aFNldHRpbmdzKToKICAgIGRlZiBydW4oc2VsZiwgZGlyZWN0aW9uLCBjcmVhdGVfbmV3X2lmX25lY2Vzc2FyeT1Ob25lKToKICAgICAgICBpZiBjcmVhdGVfbmV3X2lmX25lY2Vzc2FyeSBpcyBOb25lOgogICAgICAgICAgICBjcmVhdGVfbmV3X2lmX25lY2Vzc2FyeSA9IHNlbGYuc2V0dGluZ3MoKS5nZXQoJ2NyZWF0ZV9uZXdfcGFuZV9pZl9uZWNlc3NhcnknKQogICAgICAgIHNlbGYuY2xvbmVfZmlsZV90b19wYW5lKGRpcmVjdGlvbiwgY3JlYXRlX25ld19pZl9uZWNlc3NhcnkpCgoKY2xhc3MgQ3JlYXRlUGFuZVdpdGhGaWxlQ29tbWFuZChQYW5lQ29tbWFuZCk6CiAgICBkZWYgcnVuKHNlbGYsIGRpcmVjdGlvbik6CiAgICAgICAgc2VsZi5jcmVhdGVfcGFuZShkaXJlY3Rpb24pCiAgICAgICAgc2VsZi5wdWxsX2ZpbGVfZnJvbV9wYW5lKG9wcG9zaXRlX2RpcmVjdGlvbihkaXJlY3Rpb24pKQoKCmNsYXNzIENyZWF0ZVBhbmVXaXRoQ2xvbmVkRmlsZUNvbW1hbmQoUGFuZUNvbW1hbmQpOgogICAgZGVmIHJ1bihzZWxmLCBkaXJlY3Rpb24pOgogICAgICAgIHNlbGYuY3JlYXRlX3BhbmUoZGlyZWN0aW9uKQogICAgICAgIHNlbGYuY2xvbmVfZmlsZV90b19wYW5lKGRpcmVjdGlvbikKCgpjbGFzcyBQdWxsRmlsZUZyb21QYW5lQ29tbWFuZChQYW5lQ29tbWFuZCk6CiAgICBkZWYgcnVuKHNlbGYsIGRpcmVjdGlvbik6CiAgICAgICAgc2VsZi5wdWxsX2ZpbGVfZnJvbV9wYW5lKGRpcmVjdGlvbikKCgpjbGFzcyBab29tUGFuZUNvbW1hbmQoUGFuZUNvbW1hbmQpOgogICAgZGVmIHJ1bihzZWxmLCBmcmFjdGlvbj1Ob25lKToKICAgICAgICBzZWxmLnpvb21fcGFuZShmcmFjdGlvbikKCgpjbGFzcyBVbnpvb21QYW5lQ29tbWFuZChQYW5lQ29tbWFuZCk6CiAgICBkZWYgcnVuKHNlbGYpOgogICAgICAgIHNlbGYudW56b29tX3BhbmUoKQoKCmNsYXNzIFRvZ2dsZVpvb21QYW5lQ29tbWFuZChQYW5lQ29tbWFuZCk6CiAgICBkZWYgcnVuKHNlbGYsIGZyYWN0aW9uPU5vbmUpOgogICAgICAgIHNlbGYudG9nZ2xlX3pvb20oZnJhY3Rpb24pCgoKY2xhc3MgQ3JlYXRlUGFuZUNvbW1hbmQoUGFuZUNvbW1hbmQpOgogICAgZGVmIHJ1bihzZWxmLCBkaXJlY3Rpb24sIGdpdmVfZm9jdXM9RmFsc2UpOgogICAgICAgIHNlbGYuY3JlYXRlX3BhbmUoZGlyZWN0aW9uLCBnaXZlX2ZvY3VzKQoKCmNsYXNzIERlc3Ryb3lQYW5lQ29tbWFuZChQYW5lQ29tbWFuZCk6CiAgICBkZWYgcnVuKHNlbGYsIGRpcmVjdGlvbik6CiAgICAgICAgc2VsZi5kZXN0cm95X3BhbmUoZGlyZWN0aW9uKQoKCmNsYXNzIFJlc2l6ZVBhbmVDb21tYW5kKFBhbmVDb21tYW5kKToKICAgIGRlZiBydW4oc2VsZiwgb3JpZW50YXRpb24sIG1vZGU9Tm9uZSk6CiAgICAgICAgaWYgbW9kZSBpcyBOb25lOgogICAgICAgICAgICBtb2RlID0gIk5FQVJFU1QiCiAgICAgICAgc2VsZi5yZXNpemVfcGFuZXMob3JpZW50YXRpb24sIG1vZGUpCgoKY2xhc3MgUmVvcmRlclBhbmVDb21tYW5kKFBhbmVDb21tYW5kKToKICAgIGRlZiBydW4oc2VsZik6CiAgICAgICAgc2VsZi5yZW9yZGVyX3BhbmVzKCkKCgpjbGFzcyBTYXZlTGF5b3V0Q29tbWFuZChQYW5lQ29tbWFuZCwgV2l0aFNldHRpbmdzKToKICAgICIiIlNhdmUgdGhlIGN1cnJlbnQgbGF5b3V0IGNvbmZpZ3VyYXRpb24gaW4gYSBzZXR0aW5ncyBmaWxlLiIiIgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCB3aW5kb3cpOgogICAgICAgIHNlbGYud2luZG93ID0gd2luZG93CiAgICAgICAgc3VwZXIoU2F2ZUxheW91dENvbW1hbmQsIHNlbGYpLl9faW5pdF9fKHdpbmRvdykKCiAgICBkZWYgb25fZG9uZShzZWxmLCBuaWNrbmFtZSk6CiAgICAgICAgc2F2ZWRfbGF5b3V0cyA9IHNlbGYuc2V0dGluZ3MoKS5nZXQoJ3NhdmVkX2xheW91dHMnKQogICAgICAgIGxheW91dF9uYW1lcyA9IFtsYXlvdXRbJ25pY2tuYW1lJ10gZm9yIGxheW91dCBpbiBzYXZlZF9sYXlvdXRzXQogICAgICAgIGxheW91dF9kYXRhID0gc2VsZi5nZXRfbGF5b3V0KCkKCiAgICAgICAgaWYgbmlja25hbWUgaW4gbGF5b3V0X25hbWVzOgogICAgICAgICAgICBkaWFsb2dfc3RyID0gKCdZb3UgYWxyZWFkeSBoYXZlIGEgbGF5b3V0IHN0b3JlZCBhcyAiezB9Ii5cblxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdEbyB5b3Ugd2FudCB0byBjb250aW51ZSBhbmQgb3ZlcndyaXRlIHRoYXQgbGF5b3V0PycuZm9ybWF0KG5pY2tuYW1lKSkKICAgICAgICAgICAgZGlhbG9nX2J0biA9ICdPdmVyd3JpdGUgbGF5b3V0JwoKICAgICAgICAgICAgaWYgc3VibGltZS5va19jYW5jZWxfZGlhbG9nKGRpYWxvZ19zdHIsIGRpYWxvZ19idG4pOgogICAgICAgICAgICAgICAgZGVmIGdldF9pbmRleChzZXEsIGF0dHIsIHZhbHVlKToKICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV4dChpIGZvciAoaSwgZCkgaW4gZW51bWVyYXRlKHNlcSkgaWYgZFthdHRyXSA9PSB2YWx1ZSkKCiAgICAgICAgICAgICAgICBsYXlvdXQgPSBzYXZlZF9sYXlvdXRzW2dldF9pbmRleChzYXZlZF9sYXlvdXRzLCAnbmlja25hbWUnLCBuaWNrbmFtZSldCiAgICAgICAgICAgICAgICBsYXlvdXRbJ3Jvd3MnXSA9IGxheW91dF9kYXRhWzBdCiAgICAgICAgICAgICAgICBsYXlvdXRbJ2NvbHMnXSA9IGxheW91dF9kYXRhWzFdCiAgICAgICAgICAgICAgICBsYXlvdXRbJ2NlbGxzJ10gPSBsYXlvdXRfZGF0YVsyXQogICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgc2VsZi53aW5kb3cucnVuX2NvbW1hbmQoInNhdmVfbGF5b3V0IikKICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgIGVsc2U6CiAgICAgICAgICAgIGxheW91dCA9IHsKICAgICAgICAgICAgICAgICduaWNrbmFtZSc6IG5pY2tuYW1lLAogICAgICAgICAgICAgICAgJ3Jvd3MnOiBsYXlvdXRfZGF0YVswXSwKICAgICAgICAgICAgICAgICdjb2xzJzogbGF5b3V0X2RhdGFbMV0sCiAgICAgICAgICAgICAgICAnY2VsbHMnOiBsYXlvdXRfZGF0YVsyXSwKICAgICAgICAgICAgfQogICAgICAgICAgICBzYXZlZF9sYXlvdXRzLmFwcGVuZChsYXlvdXQpCgogICAgICAgIHNlbGYuc2V0dGluZ3MoKS5zZXQoJ3NhdmVkX2xheW91dHMnLCBzYXZlZF9sYXlvdXRzKQogICAgICAgIHN1YmxpbWUuc2F2ZV9zZXR0aW5ncyhTRVRUSU5HU19GSUxFTkFNRSkKCiAgICBkZWYgcnVuKHNlbGYpOgogICAgICAgIHNlbGYud2luZG93LnNob3dfaW5wdXRfcGFuZWwoCiAgICAgICAgICAgICdXaW5kb3cgbGF5b3V0IG5pY2tuYW1lOicsCiAgICAgICAgICAgICcnLAogICAgICAgICAgICBzZWxmLm9uX2RvbmUsCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIE5vbmUKICAgICAgICApCgoKY2xhc3MgUmVzdG9yZUxheW91dENvbW1hbmQoUGFuZUNvbW1hbmQsIFdpdGhTZXR0aW5ncyk6CiAgICAiIiJSZXN0b3JlIGEgc2F2ZWQgbGF5b3V0IGZyb20gYSBzZXR0aW5ncyBmaWxlLiIiIgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCB3aW5kb3cpOgogICAgICAgIHNlbGYud2luZG93ID0gd2luZG93CiAgICAgICAgc3VwZXIoUmVzdG9yZUxheW91dENvbW1hbmQsIHNlbGYpLl9faW5pdF9fKHdpbmRvdykKCiAgICBkZWYgb25fZG9uZShzZWxmLCBpbmRleCk6CiAgICAgICAgc2F2ZWRfbGF5b3V0cyA9IHNlbGYuc2V0dGluZ3MoKS5nZXQoJ3NhdmVkX2xheW91dHMnKQoKICAgICAgICBpZiBpbmRleCAhPSAtMToKICAgICAgICAgICAgc2VsZWN0ZWRfbGF5b3V0ID0gc2F2ZWRfbGF5b3V0c1tpbmRleF0KICAgICAgICAgICAgbGF5b3V0ID0gewogICAgICAgICAgICAgICAgJ2NlbGxzJzogc2VsZWN0ZWRfbGF5b3V0WydjZWxscyddLAogICAgICAgICAgICAgICAgJ2NvbHMnOiBzZWxlY3RlZF9sYXlvdXRbJ2NvbHMnXSwKICAgICAgICAgICAgICAgICdyb3dzJzogc2VsZWN0ZWRfbGF5b3V0Wydyb3dzJ10KICAgICAgICAgICAgfSAgIyB0eXBlOiBzdWJsaW1lLkxheW91dAogICAgICAgICAgICBzZWxmLndpbmRvdy5zZXRfbGF5b3V0KGxheW91dCkKCiAgICBkZWYgcnVuKHNlbGYpOgogICAgICAgIGlmIHNlbGYuc2V0dGluZ3MoKS5oYXMoJ3NhdmVkX2xheW91dHMnKToKICAgICAgICAgICAgc2F2ZWRfbGF5b3V0cyA9IHNlbGYuc2V0dGluZ3MoKS5nZXQoJ3NhdmVkX2xheW91dHMnKQogICAgICAgICAgICBsYXlvdXRfbmFtZXMgPSBbbGF5b3V0WyduaWNrbmFtZSddIGZvciBsYXlvdXQgaW4gc2F2ZWRfbGF5b3V0c10KICAgICAgICAgICAgc2VsZi53aW5kb3cuc2hvd19xdWlja19wYW5lbChsYXlvdXRfbmFtZXMsIHNlbGYub25fZG9uZSkKCgpjbGFzcyBSZW1vdmVMYXlvdXRDb21tYW5kKFBhbmVDb21tYW5kLCBXaXRoU2V0dGluZ3MpOgogICAgIiIiUmVtb3ZlIGEgcHJldmlvdXNseSBzYXZlZCBsYXlvdXQgZnJvbSB5b3VyIHNldHRpbmdzIGZpbGUuIiIiCgogICAgZGVmIF9faW5pdF9fKHNlbGYsIHdpbmRvdyk6CiAgICAgICAgc2VsZi53aW5kb3cgPSB3aW5kb3cKICAgICAgICBzdXBlcihSZW1vdmVMYXlvdXRDb21tYW5kLCBzZWxmKS5fX2luaXRfXyh3aW5kb3cpCgogICAgZGVmIG9uX2RvbmUoc2VsZiwgaW5kZXgpOgogICAgICAgIHNhdmVkX2xheW91dHMgPSBzZWxmLnNldHRpbmdzKCkuZ2V0KCdzYXZlZF9sYXlvdXRzJykKCiAgICAgICAgaWYgaW5kZXggIT0gLTE6CiAgICAgICAgICAgIHNhdmVkX2xheW91dHMucG9wKGluZGV4KQogICAgICAgICAgICBzZWxmLnNldHRpbmdzKCkuc2V0KCdzYXZlZF9sYXlvdXRzJywgc2F2ZWRfbGF5b3V0cykKICAgICAgICAgICAgc3VibGltZS5zYXZlX3NldHRpbmdzKFNFVFRJTkdTX0ZJTEVOQU1FKQoKICAgIGRlZiBydW4oc2VsZik6CiAgICAgICAgaWYgc2VsZi5zZXR0aW5ncygpLmhhcygnc2F2ZWRfbGF5b3V0cycpOgogICAgICAgICAgICBzYXZlZF9sYXlvdXRzID0gc2VsZi5zZXR0aW5ncygpLmdldCgnc2F2ZWRfbGF5b3V0cycpCiAgICAgICAgICAgIGxheW91dF9uYW1lcyA9IFtsYXlvdXRbJ25pY2tuYW1lJ10gZm9yIGxheW91dCBpbiBzYXZlZF9sYXlvdXRzXQogICAgICAgICAgICBzZWxmLndpbmRvdy5zaG93X3F1aWNrX3BhbmVsKGxheW91dF9uYW1lcywgc2VsZi5vbl9kb25lKQoKCmNsYXNzIE5ld1dpbmRvd0Zyb21TYXZlZExheW91dENvbW1hbmQoUGFuZUNvbW1hbmQsIFdpdGhTZXR0aW5ncyk6CiAgICAiIiIKICAgIEJyaW5ncyB1cCBhIGxpc3Qgb2Ygc2F2ZWQgdmlld3MgYW5kIGFsbG93cyB0aGUgdXNlcgogICAgdG8gY3JlYXRlIGEgbmV3IHdpbmRvdyB1c2luZyB0aGF0IGxheW91dC4KICAgICIiIgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCB3aW5kb3cpOgogICAgICAgIHNlbGYud2luZG93ID0gd2luZG93CiAgICAgICAgc3VwZXIoTmV3V2luZG93RnJvbVNhdmVkTGF5b3V0Q29tbWFuZCwgc2VsZikuX19pbml0X18od2luZG93KQoKICAgIGRlZiBvbl9kb25lKHNlbGYsIGluZGV4KToKICAgICAgICBzYXZlZF9sYXlvdXRzID0gc2VsZi5zZXR0aW5ncygpLmdldCgnc2F2ZWRfbGF5b3V0cycpCgogICAgICAgIGlmIGluZGV4ICE9IC0xOgogICAgICAgICAgICBzZWxlY3RlZF9sYXlvdXQgPSBzYXZlZF9sYXlvdXRzW2luZGV4XQogICAgICAgICAgICBsYXlvdXQgPSB7CiAgICAgICAgICAgICAgICAnY2VsbHMnOiBzZWxlY3RlZF9sYXlvdXRbJ2NlbGxzJ10sCiAgICAgICAgICAgICAgICAnY29scyc6IHNlbGVjdGVkX2xheW91dFsnY29scyddLAogICAgICAgICAgICAgICAgJ3Jvd3MnOiBzZWxlY3RlZF9sYXlvdXRbJ3Jvd3MnXQogICAgICAgICAgICB9ICAjIHR5cGU6IHN1YmxpbWUuTGF5b3V0CgogICAgICAgICAgICBzZWxmLndpbmRvdy5ydW5fY29tbWFuZCgibmV3X3dpbmRvdyIpCiAgICAgICAgICAgIG5ld193aW5kb3cgPSBzdWJsaW1lLmFjdGl2ZV93aW5kb3coKQogICAgICAgICAgICBuZXdfd2luZG93LnNldF9sYXlvdXQobGF5b3V0KQoKICAgIGRlZiBydW4oc2VsZik6CiAgICAgICAgaWYgc2VsZi5zZXR0aW5ncygpLmhhcygnc2F2ZWRfbGF5b3V0cycpOgogICAgICAgICAgICBzYXZlZF9sYXlvdXRzID0gc2VsZi5zZXR0aW5ncygpLmdldCgnc2F2ZWRfbGF5b3V0cycpCiAgICAgICAgICAgIGxheW91dF9uYW1lcyA9IFtsYXlvdXRbJ25pY2tuYW1lJ10gZm9yIGxheW91dCBpbiBzYXZlZF9sYXlvdXRzXQogICAgICAgICAgICBzZWxmLndpbmRvdy5zaG93X3F1aWNrX3BhbmVsKGxheW91dF9uYW1lcywgc2VsZi5vbl9kb25lKQoKCmNsYXNzIE5ld1dpbmRvd1dpdGhDdXJyZW50TGF5b3V0Q29tbWFuZChQYW5lQ29tbWFuZCk6CiAgICAiIiJPcGVucyBhIG5ldyB3aW5kb3cgdXNpbmcgdGhlIGN1cnJlbnQgbGF5b3V0IHNldHRpbmdzLiIiIgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCB3aW5kb3cpOgogICAgICAgIHNlbGYud2luZG93ID0gd2luZG93CiAgICAgICAgc3VwZXIoTmV3V2luZG93V2l0aEN1cnJlbnRMYXlvdXRDb21tYW5kLCBzZWxmKS5fX2luaXRfXyh3aW5kb3cpCgogICAgZGVmIHJ1bihzZWxmKToKICAgICAgICBsYXlvdXQgPSBzZWxmLndpbmRvdy5sYXlvdXQoKQogICAgICAgIHNlbGYud2luZG93LnJ1bl9jb21tYW5kKCJuZXdfd2luZG93IikKICAgICAgICBuZXdfd2luZG93ID0gc3VibGltZS5hY3RpdmVfd2luZG93KCkKICAgICAgICBuZXdfd2luZG93LnNldF9sYXlvdXQobGF5b3V0KQoKCmNsYXNzIEF1dG9DbG9zZUVtcHR5UGFuZXMoc3VibGltZV9wbHVnaW4uRXZlbnRMaXN0ZW5lciwgV2l0aFNldHRpbmdzKToKICAgIGRlZiBpc190YWJsZXNzX3ZpZXcoc2VsZiwgdmlldyk6CiAgICAgICAgIiIiV2hlbiB5b3UgbWFrZSBhIG5ldyBwYW5lLCBpdCBjb21lcyB3aXRoIGEgdGFibGVzcyB2aWV3IHRoYXQgZ2V0cyBhCiAgICAgICAgdGFiIHdoZW4geW91IHR5cGUgaW50byBpdC4gWW91IGFsc28gZ2V0IGEgc2ltaWxhciB2aWV3IHdoZW4gdXNpbmcgdGhlCiAgICAgICAgY29tbWFuZCBwYWxldHRlIHRvIG9wZW4gYSBmaWxlLgogICAgICAgIElmIHdlIHRoaW5rIGl0J3MgdGhpcyBraW5kIG9mIHZpZXcsIHJldHVybiBUcnVlLiIiIgogICAgICAgIGlmIHN1YmxpbWUudmVyc2lvbigpWzBdID09ICcyJzoKICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgZWxpZiB2aWV3LndpbmRvdygpIGFuZCB2aWV3LndpbmRvdygpLmdldF92aWV3X2luZGV4KHZpZXcpWzFdID09IC0xOgogICAgICAgICAgICByZXR1cm4gVHJ1ZQogICAgICAgIHJldHVybiBGYWxzZQoKICAgIGRlZiBvbl9jbG9zZShzZWxmLCB2aWV3KToKICAgICAgICBpZiBzdWJsaW1lLnZlcnNpb24oKVswXSA9PSAnMic6CiAgICAgICAgICAgIHNlbGYub25fcHJlX2Nsb3NlKHZpZXcpCgogICAgZGVmIG9uX3ByZV9jbG9zZShzZWxmLCB2aWV3KToKICAgICAgICAjIFJlYWQgZnJvbSBnbG9iYWwgc2V0dGluZ3MgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKICAgICAgICBhdXRvX2Nsb3NlID0gdmlldy5zZXR0aW5ncygpLmdldCgib3JpZ2FtaV9hdXRvX2Nsb3NlX2VtcHR5X3BhbmVzIikKICAgICAgICBpZiBhdXRvX2Nsb3NlIGlzIE5vbmU6CiAgICAgICAgICAgIGF1dG9fY2xvc2UgPSBzZWxmLnNldHRpbmdzKCkuZ2V0KCJhdXRvX2Nsb3NlX2VtcHR5X3BhbmVzIikKICAgICAgICBpZiBub3QgYXV0b19jbG9zZToKICAgICAgICAgICAgcmV0dXJuCgogICAgICAgIHdpbmRvdyA9IHZpZXcud2luZG93KCkKICAgICAgICBpZiB3aW5kb3cgaXMgTm9uZToKICAgICAgICAgICAgIyBJZiB3ZSdyZSB0aGUgbGFzdCB2aWV3IGluIHRoZSB3aW5kb3csIHRoZW4gdGhlIHdpbmRvdyBjbG9zZXMKICAgICAgICAgICAgIyBiZWZvcmUgb25fcHJlX2Nsb3NlIGlzIGNhbGxlZCAoISEpLgogICAgICAgICAgICAjIEluIHRoaXMgY2FzZSwgd2UgZG9uJ3Qgd2FudCB0byBjbG9zZSBhbnl0aGluZyBleHRyYSBiZWNhdXNlIHRoZQogICAgICAgICAgICAjIHdpbmRvdyBpcyBhbHJlYWR5IGNsb3NpbmcuCiAgICAgICAgICAgIHJldHVybgogICAgICAgIGFjdGl2ZV9ncm91cCA9IHdpbmRvdy5hY3RpdmVfZ3JvdXAoKQoKICAgICAgICBpZiBzZWxmLmlzX3RhYmxlc3Nfdmlldyh2aWV3KToKICAgICAgICAgICAgIyBXZSBkb24ndCB3YW50IHRvIGNsb3NlIHRoZSBwYW5lIHdoZW4gY2xvc2luZyBhIHRyYW5zaWVudCB2aWV3CiAgICAgICAgICAgIHJldHVybgoKICAgICAgICAjIFdlJ3JlIGluIHByZV9jbG9zZSwgc28gdXNlIHNldF90aW1lb3V0IHRvIGNsb3NlIHRoZSBncm91cCByaWdodCBhZnRlciB0aGlzLgogICAgICAgIGlmIGxlbih3aW5kb3cudmlld3NfaW5fZ3JvdXAoYWN0aXZlX2dyb3VwKSkgPT0gMToKICAgICAgICAgICAgc3VibGltZS5zZXRfdGltZW91dChsYW1iZGE6IHdpbmRvdy5ydW5fY29tbWFuZCgiZGVzdHJveV9wYW5lIiwgeyJkaXJlY3Rpb24iOiAic2VsZiJ9KSwgMCkKCgpjbGFzcyBBdXRvWm9vbU9uRm9jdXMoc3VibGltZV9wbHVnaW4uRXZlbnRMaXN0ZW5lciwgV2l0aFNldHRpbmdzKToKICAgIHJ1bm5pbmcgPSBGYWxzZQogICAgYWN0aXZlX2dyb3VwID0gLTEKCiAgICBkZWYgZGVsYXllZF96b29tKHNlbGYsIHZpZXcsIGZyYWN0aW9uKToKICAgICAgICAjIHpvb21fcGFuZSBoYW5ncyBzdWJsaW1lIGlmIHlvdSBkZXN0cm95IHRoZSBwYW5lIGFib3ZlIG9yIHRvIHlvdXIgbGVmdC4KICAgICAgICAjIGNhbGwgaXQgaW4gYSBzdWJsaW1lLnNldF90aW1lb3V0IHRvIGZpeCB0aGUgaXNzdWUKCiAgICAgICAgIyBTdWJsaW1lIFRleHQgMiBoYXMgaXNzdWVzIG9uIHN0YXJ0dXAgd2hlcmUgdmlld3MgZG9uJ3QgaGF2ZSB3aW5kb3dzIHlldC4KICAgICAgICAjIElmIHdlIGRvbid0IGhhdmUgYSB3aW5kb3cgeWV0LCBiYWlsLgogICAgICAgIGlmIHZpZXcud2luZG93KCkgaXMgTm9uZToKICAgICAgICAgICAgc2VsZi5ydW5uaW5nID0gRmFsc2UKICAgICAgICAgICAgcmV0dXJuCgogICAgICAgIGFyZ3MgPSB7fQogICAgICAgICMgV29yayBjb3JyZWN0bHkgaWYgc29tZW9uZSBzZXRzICJvcmlnYW1pX2F1dG9fem9vbV9vbl9mb2N1cyI6IHRydWUgcmF0aGVyCiAgICAgICAgIyB0aGFuIGUuZy4gIm9yaWdhbWlfYXV0b196b29tX29uX2ZvY3VzIjogLjguCiAgICAgICAgaWYgZnJhY3Rpb24gaXMgbm90IFRydWU6CiAgICAgICAgICAgIGFyZ3NbImZyYWN0aW9uIl0gPSBmcmFjdGlvbgogICAgICAgIHZpZXcud2luZG93KCkucnVuX2NvbW1hbmQoInpvb21fcGFuZSIsIGFyZ3MpCiAgICAgICAgc2VsZi5ydW5uaW5nID0gRmFsc2UKCiAgICBkZWYgb25fYWN0aXZhdGVkKHNlbGYsIHZpZXcpOgogICAgICAgIGlmIHNlbGYucnVubmluZzoKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgIyBSZWFkIGZyb20gZ2xvYmFsIHNldHRpbmdzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5CiAgICAgICAgZnJhY3Rpb24gPSB2aWV3LnNldHRpbmdzKCkuZ2V0KCJvcmlnYW1pX2F1dG9fem9vbV9vbl9mb2N1cyIpCiAgICAgICAgaWYgZnJhY3Rpb24gaXMgTm9uZToKICAgICAgICAgICAgZnJhY3Rpb24gPSBzZWxmLnNldHRpbmdzKCkuZ2V0KCJhdXRvX3pvb21fb25fZm9jdXMiKQogICAgICAgIGlmIG5vdCBmcmFjdGlvbjoKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgaWYgdmlldy5zZXR0aW5ncygpLmdldCgiaXNfd2lkZ2V0Iik6CiAgICAgICAgICAgIHJldHVybgoKICAgICAgICBuZXdfYWN0aXZlX2dyb3VwID0gdmlldy53aW5kb3coKS5hY3RpdmVfZ3JvdXAoKQogICAgICAgIGlmIG5ld19hY3RpdmVfZ3JvdXAgPT0gc2VsZi5hY3RpdmVfZ3JvdXA6CiAgICAgICAgICAgIHJldHVybgoKICAgICAgICBzZWxmLmFjdGl2ZV9ncm91cCA9IG5ld19hY3RpdmVfZ3JvdXAKICAgICAgICBzZWxmLnJ1bm5pbmcgPSBUcnVlCgogICAgICAgIHN1YmxpbWUuc2V0X3RpbWVvdXQobGFtYmRhOiBzZWxmLmRlbGF5ZWRfem9vbSh2aWV3LCBmcmFjdGlvbiksIDApCgAAAAAAAAAAxHgAAAAAAAAAAAAA", + "AQAAAAAAAAABAAAAuS0AAAAAAAC5LQAAAAAAAAAAAAAAAPC/" + ] + ] + }, + { + "file": ".git/config", + "settings": + { + "buffer_size": 391, + "encoding": "UTF-8", + "line_ending": "Unix" + }, + "undo_stack": + [ + [ + 13, + 1, + "duplicate_line", + null, + "AQAAANsAAAAAAAAARgEAAAAAAAAAAAAA", + "AQAAAAAAAAABAAAAcAAAAAAAAADbAAAAAAAAAAAAAAAAAPC/" + ], + [ + 17, + 1, + "insert", + { + "characters": "https" + }, + "BgAAAOQAAAAAAAAA5QAAAAAAAAAAAAAA5QAAAAAAAADlAAAAAAAAAAYAAABvcmlnaW7lAAAAAAAAAOYAAAAAAAAAAAAAAOYAAAAAAAAA5wAAAAAAAAAAAAAA5wAAAAAAAADoAAAAAAAAAAAAAADoAAAAAAAAAOkAAAAAAAAAAAAAAA", + "AQAAAAAAAAABAAAA5AAAAAAAAADqAAAAAAAAAAAAAAAAAPC/" + ], + [ + 22, + 1, + "paste", + null, + "AgAAAPMAAAAAAAAAGwEAAAAAAAAAAAAAGwEAAAAAAAAbAQAAAAAAACQAAABnaXRAZ2l0aHViLmNvbTpKZWFuZ293aHkvT3JpZ2FtaS5naXQ", + "AQAAAAAAAAABAAAA8wAAAAAAAAAXAQAAAAAAAAAAAAAAAPC/" + ] + ] + }, + { + "file": "Origami_PR.sublime-project", + "settings": + { + "buffer_size": 46, + "encoding": "UTF-8", + "line_ending": "Windows" + }, + "undo_stack": + [ + [ + 5, + 1, + "revert", + null, + "AwAAAAAAAAAAAAAAAAAAAAAAAAAtAAAAewoJImZvbGRlcnMiOgoJWwoJCXsKCQkJInBhdGgiOiAiLiIKCQl9CgldCn0KAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAA", + "AgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAtAAAAAAAAAC0AAAAAAAAAAAAAAAAA8L8" + ], + [ + 7, + 1, + "revert", + null, + "AgAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAewp9CgAAAAAAAAAALgAAAAAAAAAAAAAA", + "AQAAAAAAAAABAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAPC/" + ] + ] + }, + { + "file": "README.md", + "settings": + { + "buffer_size": 4495, + "encoding": "UTF-8", + "line_ending": "Unix" + }, + "undo_stack": + [ + [ + 5, + 1, + "", + null, + "AQAAAPYNAAAAAAAA9w0AAAAAAAAAAAAA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 6, + 1, + "left_delete", + null, + "AQAAAPYNAAAAAAAA9g0AAAAAAAADAAAA77yM", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 7, + 1, + "insert", + { + "characters": "," + }, + "AQAAAPYNAAAAAAAA9w0AAAAAAAAAAAAA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 8, + 1, + "insert", + { + "characters": " or" + }, + "AwAAAPcNAAAAAAAA+A0AAAAAAAAAAAAA+A0AAAAAAAD5DQAAAAAAAAAAAAD5DQAAAAAAAPoNAAAAAAAAAAAAAA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 9, + 1, + "insert", + { + "characters": " " + }, + "AQAAAPoNAAAAAAAA+w0AAAAAAAAAAAAA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 10, + 1, + "", + null, + "AQAAAPsNAAAAAAAA/A0AAAAAAAAAAAAA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 11, + 1, + "left_delete", + null, + "AQAAAPsNAAAAAAAA+w0AAAAAAAACAAAAwrc", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 12, + 1, + "insert_snippet", + { + "contents": "`$0`" + }, + "AQAAAPsNAAAAAAAA/Q0AAAAAAAAAAAAA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 13, + 1, + "insert", + { + "characters": "[]" + }, + "AgAAAPwNAAAAAAAA/Q0AAAAAAAAAAAAA/Q0AAAAAAAD+DQAAAAAAAAAAAAA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 15, + 1, + "insert", + { + "characters": "0.5" + }, + "AwAAAP0NAAAAAAAA/g0AAAAAAAAAAAAA/g0AAAAAAAD/DQAAAAAAAAAAAAD/DQAAAAAAAAAOAAAAAAAAAAAAAA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 16, + 1, + "insert", + { + "characters": "," + }, + "AQAAAAAOAAAAAAAAAQ4AAAAAAAAAAAAA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 17, + 1, + "insert", + { + "characters": " 0.6" + }, + "BAAAAAEOAAAAAAAAAg4AAAAAAAAAAAAAAg4AAAAAAAADDgAAAAAAAAAAAAADDgAAAAAAAAQOAAAAAAAAAAAAAAQOAAAAAAAABQ4AAAAAAAAAAAAA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 19, + 1, + "insert", + { + "characters": ",w" + }, + "AgAAAAcOAAAAAAAACA4AAAAAAAAAAAAACA4AAAAAAAAJDgAAAAAAAAAAAAA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 20, + 2, + "left_delete", + null, + "AgAAAAgOAAAAAAAACA4AAAAAAAABAAAAdwcOAAAAAAAABw4AAAAAAAABAAAALA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 21, + 1, + "insert", + { + "characters": ",w" + }, + "AgAAAAcOAAAAAAAACA4AAAAAAAAAAAAACA4AAAAAAAAJDgAAAAAAAAAAAAA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 22, + 2, + "left_delete", + null, + "AgAAAAgOAAAAAAAACA4AAAAAAAABAAAAdwcOAAAAAAAABw4AAAAAAAABAAAALA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 23, + 1, + "insert", + { + "characters": " ()" + }, + "AwAAAAcOAAAAAAAACA4AAAAAAAAAAAAACA4AAAAAAAAJDgAAAAAAAAAAAAAJDgAAAAAAAAoOAAAAAAAAAAAAAA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 25, + 1, + "run_macro_file", + { + "file": "res://Packages/Default/Delete Left Right.sublime-macro" + }, + "AgAAAAgOAAAAAAAACA4AAAAAAAABAAAAKAgOAAAAAAAACA4AAAAAAAABAAAAKQ", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 26, + 1, + "left_delete", + null, + "AQAAAAcOAAAAAAAABw4AAAAAAAABAAAAIA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 27, + 1, + "insert", + { + "characters": " for" + }, + "BAAAAAcOAAAAAAAACA4AAAAAAAAAAAAACA4AAAAAAAAJDgAAAAAAAAAAAAAJDgAAAAAAAAoOAAAAAAAAAAAAAAoOAAAAAAAACw4AAAAAAAAAAAAA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 28, + 1, + "insert", + { + "characters": " both" + }, + "BQAAAAsOAAAAAAAADA4AAAAAAAAAAAAADA4AAAAAAAANDgAAAAAAAAAAAAANDgAAAAAAAA4OAAAAAAAAAAAAAA4OAAAAAAAADw4AAAAAAAAAAAAADw4AAAAAAAAQDgAAAAAAAAAAAAA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 29, + 1, + "insert", + { + "characters": " w" + }, + "AgAAABAOAAAAAAAAEQ4AAAAAAAAAAAAAEQ4AAAAAAAASDgAAAAAAAAAAAAA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 30, + 1, + "left_delete", + null, + "AQAAABEOAAAAAAAAEQ4AAAAAAAABAAAAdw", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 31, + 1, + "insert", + { + "characters": "w" + }, + "AQAAABEOAAAAAAAAEg4AAAAAAAAAAAAA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 32, + 1, + "left_delete", + null, + "AQAAABEOAAAAAAAAEQ4AAAAAAAABAAAAdw", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 33, + 1, + "insert", + { + "characters": "w" + }, + "AQAAABEOAAAAAAAAEg4AAAAAAAAAAAAA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 34, + 1, + "left_delete", + null, + "AQAAABEOAAAAAAAAEQ4AAAAAAAABAAAAdw", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 35, + 1, + "delete_word", + { + "forward": false + }, + "AQAAAAwOAAAAAAAADA4AAAAAAAAFAAAAYm90aCA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 36, + 1, + "insert", + { + "characters": "w" + }, + "AQAAAAwOAAAAAAAADQ4AAAAAAAAAAAAA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 37, + 1, + "left_delete", + null, + "AQAAAAwOAAAAAAAADA4AAAAAAAABAAAAdw", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 38, + 1, + "insert", + { + "characters": "horiton" + }, + "BwAAAAwOAAAAAAAADQ4AAAAAAAAAAAAADQ4AAAAAAAAODgAAAAAAAAAAAAAODgAAAAAAAA8OAAAAAAAAAAAAAA8OAAAAAAAAEA4AAAAAAAAAAAAAEA4AAAAAAAARDgAAAAAAAAAAAAARDgAAAAAAABIOAAAAAAAAAAAAABIOAAAAAAAAEw4AAAAAAAAAAAAA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 39, + 1, + "insert", + { + "characters": "tal" + }, + "AwAAABMOAAAAAAAAFA4AAAAAAAAAAAAAFA4AAAAAAAAVDgAAAAAAAAAAAAAVDgAAAAAAABYOAAAAAAAAAAAAAA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 40, + 1, + "insert", + { + "characters": " w" + }, + "AgAAABYOAAAAAAAAFw4AAAAAAAAAAAAAFw4AAAAAAAAYDgAAAAAAAAAAAAA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 41, + 1, + "left_delete", + null, + "AQAAABcOAAAAAAAAFw4AAAAAAAABAAAAdw", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 42, + 1, + "insert", + { + "characters": "and" + }, + "AwAAABcOAAAAAAAAGA4AAAAAAAAAAAAAGA4AAAAAAAAZDgAAAAAAAAAAAAAZDgAAAAAAABoOAAAAAAAAAAAAAA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 43, + 1, + "insert", + { + "characters": " w" + }, + "AgAAABoOAAAAAAAAGw4AAAAAAAAAAAAAGw4AAAAAAAAcDgAAAAAAAAAAAAA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 44, + 1, + "left_delete", + null, + "AQAAABsOAAAAAAAAGw4AAAAAAAABAAAAdw", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 45, + 1, + "insert", + { + "characters": "w" + }, + "AQAAABsOAAAAAAAAHA4AAAAAAAAAAAAA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 46, + 2, + "left_delete", + null, + "AgAAABsOAAAAAAAAGw4AAAAAAAABAAAAdxoOAAAAAAAAGg4AAAAAAAABAAAAIA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 47, + 1, + "insert", + { + "characters": " vertical" + }, + "CQAAABoOAAAAAAAAGw4AAAAAAAAAAAAAGw4AAAAAAAAcDgAAAAAAAAAAAAAcDgAAAAAAAB0OAAAAAAAAAAAAAB0OAAAAAAAAHg4AAAAAAAAAAAAAHg4AAAAAAAAfDgAAAAAAAAAAAAAfDgAAAAAAACAOAAAAAAAAAAAAACAOAAAAAAAAIQ4AAAAAAAAAAAAAIQ4AAAAAAAAiDgAAAAAAAAAAAAAiDgAAAAAAACMOAAAAAAAAAAAAAA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 48, + 1, + "insert", + { + "characters": " respe" + }, + "BgAAACMOAAAAAAAAJA4AAAAAAAAAAAAAJA4AAAAAAAAlDgAAAAAAAAAAAAAlDgAAAAAAACYOAAAAAAAAAAAAACYOAAAAAAAAJw4AAAAAAAAAAAAAJw4AAAAAAAAoDgAAAAAAAAAAAAAoDgAAAAAAACkOAAAAAAAAAAAAAA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 49, + 1, + "insert", + { + "characters": "ctlly" + }, + "BQAAACkOAAAAAAAAKg4AAAAAAAAAAAAAKg4AAAAAAAArDgAAAAAAAAAAAAArDgAAAAAAACwOAAAAAAAAAAAAACwOAAAAAAAALQ4AAAAAAAAAAAAALQ4AAAAAAAAuDgAAAAAAAAAAAAA", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ], + [ + 55, + 1, + "paste", + null, + "AgAAACQOAAAAAAAAMw4AAAAAAAAAAAAAMw4AAAAAAAAzDgAAAAAAAAoAAAByZXNwZWN0bGx5", + "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" + ] + ] + }, + { + "contents": "", + "settings": + { + "buffer_size": 0, + "line_ending": "Windows" + } + }, + { + "contents": "Windows PowerShell \n版权所有 (C) Microsoft Corporation。保留所有 \n权利。 \n \n尝试新的跨平台 PowerShell https://aka.ms/psco​‌​\nre6 \n \nPS C:\\Users\\OCEAN\\AppData\\Roaming\\Sublime Tex​‌​\nt 3\\unpacked\\Origami> ", + "settings": + { + "buffer_size": 377, + "line_ending": "Windows", + "name": "PowerShell", + "scratch": true + }, + "undo_stack": + [ + [ + 2, + 1, + "terminus_activate", + { + "auto_close": true, + "cancellable": false, + "cmd": + [ + "powershell.exe" + ], + "cwd": "C:\\Users\\OCEAN\\AppData\\Roaming\\Sublime Text 3\\unpacked\\Origami", + "default_title": "PowerShell", + "env": + { + "TERMINUS_SUBLIME": "1", + "TERM_PROGRAM": "Terminus-Sublime" + }, + "file_regex": null, + "line_regex": null, + "panel_name": "Terminus", + "show_in_panel": null, + "tag": null, + "timeit": false, + "title": null + }, + "AQAAAAAAAAAAAAAAAAAAAAAAAAAxKgAAV2luZG93cyBQb3dlclNoZWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK54mI5p2D5omA5pyJIChDKSBNaWNyb3NvZnQgQ29ycG9yYXRpb27jgILkv53nlZnmiYDmnInmnYPliKnjgIIgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK5bCd6K+V5paw55qE6Leo5bmz5Y+wIFBvd2VyU2hlbGwgaHR0cHM6Ly9ha2EubXMvcHNjb3JlNiAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgClBTIEM6XFVzZXJzXE9DRUFOXEFwcERhdGFcUm9hbWluZ1xTdWJsaW1lIFRleHQgM1x1bnBhY2tlZFxPcmlnYW1pPiAKICAgICAgICB0YXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAp0YXIuZXhlOiBNdXN0IHNwZWNpZnkgb25lIG9mIC1jLCAtciwgLXQsIC11LCAteCAgICAgICAgICAgICAgICAgICAgClBTIEM6XFVzZXJzXE9DRUFOXEFwcERhdGFcUm9hbWluZ1xTdWJsaW1lIFRleHQgM1x1bnBhY2tlZFxPcmlnYW1pPnTigIvigIzigIsKYXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAp0YXIuZXhlOiBNdXN0IHNwZWNpZnkgb25lIG9mIC1jLCAtciwgLXQsIC11LCAteCAgICAgICAgICAgICAgICAgICAgClBTIEM6XFVzZXJzXE9DRUFOXEFwcERhdGFcUm9hbWluZ1xTdWJsaW1lIFRleHQgM1x1bnBhY2tlZFxPcmlnYW0+IHTigIvigIzigIsKYXJ0IC10ICcuLlwuLlxJbnN0YWxsZWQgUGFja2FnZXNcT3JpZ2FtaS5zdWJsaW1lLXBhY2thZ2UnICAgICAgICAgIAp0YXJ0IDog5peg5rOV5bCG4oCcdGFydOKAnemhueivhuWIq+S4uiBjbWRsZXTjgIHlh73mlbDjgIHohJrmnKzmlofku7bmiJblj6/ov5DooYznqIvluo/nmoQgICAK5ZCN56ew44CC6K+35qOA5p+l5ZCN56ew55qE5ou85YaZ77yM5aaC5p6c5YyF5ous6Lev5b6E77yM6K+356Gu5L+d6Lev5b6E5q2j56Gu77yM54S25ZCO5YaN6K+V5LiA5qyhIArjgIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIArmiYDlnKjkvY3nva4g6KGMOjEg5a2X56ymOiAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorIHRhcnQgLXQgJy4uXC4uXEluc3RhbGxlZCBQYWNrYWdlc1xPcmlnYW1pLnN1YmxpbWUtcGFja2FnZScgICAgICAgCisgfn5+fiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICsgQ2F0ZWdvcnlJbmZvICAgICAgICAgIDogT2JqZWN0Tm90Rm91bmQ6ICh0YXJ0OlN0cmluZykgW10sIEMgIAogICBvbW1hbmROb3RGb3VuZEV4Y2VwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICArIEZ1bGx5UXVhbGlmaWVkRXJyb3JJZCA6IENvbW1hbmROb3RGb3VuZEV4Y2VwdGlvbiAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApQUyBDOlxVc2Vyc1xPQ0VBTlxBcHBEYXRhXFJvYW1pbmdcU3VibGltZSBUZXh0IDNcdW5wYWNrZWRcT3JpZ2FtaT504oCL4oCM4oCLCmFyIC10ICcuLlwuLlxJbnN0YWxsZWQgUGFja2FnZXNcT3JpZ2FtaS5zdWJsaW1lLXBhY2thZ2UnICAgICAgICAgICAKdGFyLmV4ZTogRXJyb3Igb3BlbmluZyBhcmNoaXZlOiBGYWlsZWQgdG8gb3BlbiAnXFwuXHRhcGUwJyAgICAgICAgIApQUyBDOlxVc2Vyc1xPQ0VBTlxBcHBEYXRhXFJvYW1pbmdcU3VibGltZSBUZXh0IDNcdW5wYWNrZWRcT3JpZ2FtaT564oCL4oCM4oCLCmlwICAnLi5cLi5cSW5zdGFsbGVkIFBhY2thZ2VzXE9yaWdhbWkuc3VibGltZS1wYWNrYWdlJyAgICAgICAgICAgICAKemlwIDog5peg5rOV5bCG4oCcemlw4oCd6aG56K+G5Yir5Li6IGNtZGxldOOAgeWHveaVsOOAgeiEmuacrOaWh+S7tuaIluWPr+i/kOihjOeoi+W6j+eahOWQjSAgIArnp7DjgILor7fmo4Dmn6XlkI3np7DnmoTmi7zlhpnvvIzlpoLmnpzljIXmi6zot6/lvoTvvIzor7fnoa7kv53ot6/lvoTmraPnoa7vvIznhLblkI7lho3or5XkuIDmrKHjgIIgCuaJgOWcqOS9jee9riDooYw6MSDlrZfnrKY6IDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgemlwICAnLi5cLi5cSW5zdGFsbGVkIFBhY2thZ2VzXE9yaWdhbWkuc3VibGltZS1wYWNrYWdlJyAgICAgICAgICAKKyB+fn4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgKyBDYXRlZ29yeUluZm8gICAgICAgICAgOiBPYmplY3ROb3RGb3VuZDogKHppcDpTdHJpbmcpIFtdLCBDbyAgCiAgIG1tYW5kTm90Rm91bmRFeGNlcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICsgRnVsbHlRdWFsaWZpZWRFcnJvcklkIDogQ29tbWFuZE5vdEZvdW5kRXhjZXB0aW9uICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgClBTIEM6XFVzZXJzXE9DRUFOXEFwcERhdGFcUm9hbWluZ1xTdWJsaW1lIFRleHQgM1x1bnBhY2tlZFxPcmlnYW1pPnDigIvigIzigIsKYWNtYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAplcnJvcjogbm8gb3BlcmF0aW9uIHNwZWNpZmllZCAodXNlIC1oIGZvciBoZWxwKSAgICAgICAgICAgICAgICAgICAgClBTIEM6XFVzZXJzXE9DRUFOXEFwcERhdGFcUm9hbWluZ1xTdWJsaW1lIFRleHQgM1x1bnBhY2tlZFxPcmlnYW1pPnDigIvigIzigIsKYWNtYW4gLVEgemlwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAplcnJvcjogcGFja2FnZSAnemlwJyB3YXMgbm90IGZvdW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgClBTIEM6XFVzZXJzXE9DRUFOXEFwcERhdGFcUm9hbWluZ1xTdWJsaW1lIFRleHQgM1x1bnBhY2tlZFxPcmlnYW1pPnDigIvigIzigIsKYWNtYW4gLVEgN3ppcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAplcnJvcjogcGFja2FnZSAnN3ppcCcgd2FzIG5vdCBmb3VuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgClBTIEM6XFVzZXJzXE9DRUFOXEFwcERhdGFcUm9hbWluZ1xTdWJsaW1lIFRleHQgM1x1bnBhY2tlZFxPcmlnYW1pPk7igIvigIzigIsKZXctSXRlbSAtdHlwZSBTeW1ib2xpY0xpbmsgLXRhcmdldCBDOlxQcm9ncmFtIEZpbGVzXDctWmlwXDd6LmV4ZSAtcOKAi+KAjOKAiwphdGggQzpcdmNwa2dcN3ouZXhlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCk5ldy1JdGVtIDog5om+5LiN5Yiw5o6l5Y+X5a6e6ZmF5Y+C5pWw4oCcRmlsZXNcNy1aaXBcN3ouZXhl4oCd55qE5L2N572u5b2i5byP5Y+C5pWwICAgIArjgIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIArmiYDlnKjkvY3nva4g6KGMOjEg5a2X56ymOiAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorIE5ldy1JdGVtIC10eXBlIFN5bWJvbGljTGluayAtdGFyZ2V0IEM6XFByb2dyYW0gRmlsZXNcNy1aaXBcN3ouZXggCmUgLXBhIC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+IAp+fn5+fiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICArIENhdGVnb3J5SW5mbyAgICAgICAgICA6IEludmFsaWRBcmd1bWVudDogKDopIFtOZXctSXRlbV3vvIxQYXIgCiAgICBhbWV0ZXJCaW5kaW5nRXhjZXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICsgRnVsbHlRdWFsaWZpZWRFcnJvcklkIDogUG9zaXRpb25hbFBhcmFtZXRlck5vdEZvdW5kLE1pY3Jvc28gIAogICBmdC5Qb3dlclNoZWxsLkNvbW1hbmRzLk5ld0l0ZW1Db21tYW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKUFMgQzpcVXNlcnNcT0NFQU5cQXBwRGF0YVxSb2FtaW5nXFN1YmxpbWUgVGV4dCAzXHVucGFja2VkXE9yaWdhbT4gTuKAi+KAjOKAiwpldy1JdGVtIC10eXBlIFN5bWJvbGljTGluayAtdGFyZ2V0ICJDOlxQcm9ncmFtIEZpbGVzXDctWmlwXDd6LmV4ZSIgCi1wYXRoIEM6XHZjcGtnXDd6LmV4ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKTmV3LUl0ZW0gOiDmraTmk43kvZzpnIDopoHnrqHnkIblkZjmnYPpmZDjgIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCuaJgOWcqOS9jee9riDooYw6MSDlrZfnrKY6IDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgTmV3LUl0ZW0gLXR5cGUgU3ltYm9saWNMaW5rIC10YXJnZXQgIkM6XFByb2dyYW0gRmlsZXNcNy1aaXBcN3ouZSAKeGUiIC0gLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4gCn5+fn5+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICsgQ2F0ZWdvcnlJbmZvICAgICAgICAgIDogUGVybWlzc2lvbkRlbmllZDogKEM6XFByb2dyYW0gRmlsZXMgIAogICBcNy1aaXBcN3ouZXhlOlN0cmluZykgW05ldy1JdGVtXSwgVW5hdXRob3JpemVkQWNjZXNzRXhjZXB0aW9uICAgCiAgICArIEZ1bGx5UXVhbGlmaWVkRXJyb3JJZCA6IE5ld0l0ZW1TeW1ib2xpY0xpbmtFbGV2YXRpb25SZXF1aXJlICAKICAgZCxNaWNyb3NvZnQuUG93ZXJTaGVsbC5Db21tYW5kcy5OZXdJdGVtQ29tbWFuZCAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgClBTIEM6XFVzZXJzXE9DRUFOXEFwcERhdGFcUm9hbWluZ1xTdWJsaW1lIFRleHQgM1x1bnBhY2tlZFxPcmlnYW1pPjfigIvigIzigIsKeiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCjctWmlwIDIzLjAxICh4NjQpIDogQ29weXJpZ2h0IChjKSAxOTk5LTIwMjMgSWdvciBQYXZsb3YgOiAyMDIzLTA2LTLigIvigIzigIsKMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgClVzYWdlOiA3eiA8Y29tbWFuZD4gWzxzd2l0Y2hlcz4uLi5dIDxhcmNoaXZlX25hbWU+IFs8ZmlsZV9uYW1lcz4uLi7igIvigIzigIsKXSBbQGxpc3RmaWxlXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCjxDb21tYW5kcz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICBhIDogQWRkIGZpbGVzIHRvIGFyY2hpdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIGIgOiBCZW5jaG1hcmsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgZCA6IERlbGV0ZSBmaWxlcyBmcm9tIGFyY2hpdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICBlIDogRXh0cmFjdCBmaWxlcyBmcm9tIGFyY2hpdmUgKHdpdGhvdXQgdXNpbmcgZGlyZWN0b3J5IG5hbWVzKSAgIAogIGggOiBDYWxjdWxhdGUgaGFzaCB2YWx1ZXMgZm9yIGZpbGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgaSA6IFNob3cgaW5mb3JtYXRpb24gYWJvdXQgc3VwcG9ydGVkIGZvcm1hdHMgICAgICAgICAgICAgICAgICAgICAKICBsIDogTGlzdCBjb250ZW50cyBvZiBhcmNoaXZlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIHJuIDogUmVuYW1lIGZpbGVzIGluIGFyY2hpdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgdCA6IFRlc3QgaW50ZWdyaXR5IG9mIGFyY2hpdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICB1IDogVXBkYXRlIGZpbGVzIHRvIGFyY2hpdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIHggOiBlWHRyYWN0IGZpbGVzIHdpdGggZnVsbCBwYXRocyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPFN3aXRjaGVzPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIC0tIDogU3RvcCBzd2l0Y2hlcyBhbmQgQGxpc3RmaWxlIHBhcnNpbmcgICAgICAgICAgICAgICAgICAgICAgICAgCiAgLWFpW3JbLXwwXV17QGxpc3RmaWxlfCF3aWxkY2FyZH0gOiBJbmNsdWRlIGFyY2hpdmVzICAgICAgICAgICAgICAKICAtYXhbclstfDBdXXtAbGlzdGZpbGV8IXdpbGRjYXJkfSA6IGVYY2x1ZGUgYXJjaGl2ZXMgICAgICAgICAgICAgIAogIC1hb3thfHN8dHx1fSA6IHNldCBPdmVyd3JpdGUgbW9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgLWFuIDogZGlzYWJsZSBhcmNoaXZlX25hbWUgZmllbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAtYmJbMC0zXSA6IHNldCBvdXRwdXQgbG9nIGxldmVsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIC1iZCA6IGRpc2FibGUgcHJvZ3Jlc3MgaW5kaWNhdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgLWJze298ZXxwfXswfDF8Mn0gOiBzZXQgb3V0cHV0IHN0cmVhbSBmb3Igb3V0cHV0L2Vycm9yL3Byb2dyZXNzIGzigIvigIzigIsKaW5lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIC1idCA6IHNob3cgZXhlY3V0aW9uIHRpbWUgc3RhdGlzdGljcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgLWlbclstfDBdXXtAbGlzdGZpbGV8IXdpbGRjYXJkfSA6IEluY2x1ZGUgZmlsZW5hbWVzICAgICAgICAgICAgICAKICAtbXtQYXJhbWV0ZXJzfSA6IHNldCBjb21wcmVzc2lvbiBNZXRob2QgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgLW1tdFtOXSA6IHNldCBudW1iZXIgb2YgQ1BVIHRocmVhZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAtbXhbTl0gOiBzZXQgY29tcHJlc3Npb24gbGV2ZWw6IC1teDEgKGZhc3Rlc3QpIC4uLiAtbXg5ICh1bHRyYSnigIvigIzigIsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIC1ve0RpcmVjdG9yeX0gOiBzZXQgT3V0cHV0IGRpcmVjdG9yeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgLXB7UGFzc3dvcmR9IDogc2V0IFBhc3N3b3JkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAtclstfDBdIDogUmVjdXJzZSBzdWJkaXJlY3RvcmllcyBmb3IgbmFtZSBzZWFyY2ggICAgICAgICAgICAgICAgIAogIC1zYXthfGV8c30gOiBzZXQgQXJjaGl2ZSBuYW1lIG1vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgLXNjY3tVVEYtOHxXSU58RE9TfSA6IHNldCBjaGFyc2V0IGZvciBjb25zb2xlIGlucHV0L291dHB1dCAgICAgICAKICAtc2Nze1VURi04fFVURi0xNkxFfFVURi0xNkJFfFdJTnxET1N8e2lkfX0gOiBzZXQgY2hhcnNldCBmb3IgbGlzdOKAi+KAjOKAiwogZmlsZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgLXNjcmNbQ1JDMzJ8Q1JDNjR8U0hBMXxTSEEyNTZ8Kl0gOiBzZXQgaGFzaCBmdW5jdGlvbiBmb3IgeCwgZSwgaCAKY29tbWFuZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIC1zZGVsIDogZGVsZXRlIGZpbGVzIGFmdGVyIGNvbXByZXNzaW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgLXNlbWxbLl0gOiBzZW5kIGFyY2hpdmUgYnkgZW1haWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAtc2Z4W3tuYW1lfV0gOiBDcmVhdGUgU0ZYIGFyY2hpdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIC1zaVt7bmFtZX1dIDogcmVhZCBkYXRhIGZyb20gc3RkaW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgLXNscCA6IHNldCBMYXJnZSBQYWdlcyBtb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAtc2x0IDogc2hvdyB0ZWNobmljYWwgaW5mb3JtYXRpb24gZm9yIGwgKExpc3QpIGNvbW1hbmQgICAgICAgICAgIAogIC1zbmggOiBzdG9yZSBoYXJkIGxpbmtzIGFzIGxpbmtzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgLXNubCA6IHN0b3JlIHN5bWJvbGljIGxpbmtzIGFzIGxpbmtzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAtc25pIDogc3RvcmUgTlQgc2VjdXJpdHkgaW5mb3JtYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIC1zbnNbLV0gOiBzdG9yZSBOVEZTIGFsdGVybmF0ZSBzdHJlYW1zICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgLXNvIDogd3JpdGUgZGF0YSB0byBzdGRvdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAtc3BkIDogZGlzYWJsZSB3aWxkY2FyZCBtYXRjaGluZyBmb3IgZmlsZSBuYW1lcyAgICAgICAgICAgICAgICAgIAogIC1zcGUgOiBlbGltaW5hdGUgZHVwbGljYXRpb24gb2Ygcm9vdCBmb2xkZXIgZm9yIGV4dHJhY3QgY29tbWFuZCAgCiAgLXNwZlsyXSA6IHVzZSBmdWxseSBxdWFsaWZpZWQgZmlsZSBwYXRocyAgICAgICAgICAgICAgICAgICAgICAgICAKICAtc3NjWy1dIDogc2V0IHNlbnNpdGl2ZSBjYXNlIG1vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIC1zc2UgOiBzdG9wIGFyY2hpdmUgY3JlYXRpbmcsIGlmIGl0IGNhbid0IG9wZW4gc29tZSBpbnB1dCBmaWxlICAgCiAgLXNzcCA6IGRvIG5vdCBjaGFuZ2UgTGFzdCBBY2Nlc3MgVGltZSBvZiBzb3VyY2UgZmlsZXMgd2hpbGUgYXJjaGnigIvigIzigIsKdmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIC1zc3cgOiBjb21wcmVzcyBzaGFyZWQgZmlsZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgLXN0bCA6IHNldCBhcmNoaXZlIHRpbWVzdGFtcCBmcm9tIHRoZSBtb3N0IHJlY2VudGx5IG1vZGlmaWVkIGZpbGXigIvigIzigIsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIC1zdG17SGV4TWFza30gOiBzZXQgQ1BVIHRocmVhZCBhZmZpbml0eSBtYXNrIChoZXhhZGVjaW1hbCBudW1iZXIp4oCL4oCM4oCLCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAtc3R4e1R5cGV9IDogZXhjbHVkZSBhcmNoaXZlIHR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIC10e1R5cGV9IDogU2V0IHR5cGUgb2YgYXJjaGl2ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgLXVbLV1bcCNdW3EjXVtyI11beCNdW3kjXVt6I11bIW5ld0FyY2hpdmVOYW1lXSA6IFVwZGF0ZSBvcHRpb25zICAKICAtdntTaXplfVtifGt8bXxnXSA6IENyZWF0ZSB2b2x1bWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIC13W3twYXRofV0gOiBhc3NpZ24gV29yayBkaXJlY3RvcnkuIEVtcHR5IHBhdGggbWVhbnMgYSB0ZW1wb3JhcnkgCmRpcmVjdG9yeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAteFtyWy18MF1de0BsaXN0ZmlsZXwhd2lsZGNhcmR9IDogZVhjbHVkZSBmaWxlbmFtZXMgICAgICAgICAgICAgIAogIC15IDogYXNzdW1lIFllcyBvbiBhbGwgcXVlcmllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgClBTIEM6XFVzZXJzXE9DRUFOXEFwcERhdGFcUm9hbWluZ1xTdWJsaW1lIFRleHQgM1x1bnBhY2tlZFxPcmlnYW1pPg", + "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAADsoAAAAAAAAOygAAAAAAAAAAAAAAADwvw" + ], + [ + 3, + 4, + "terminus_render", + null, + "SQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAAAACAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAABQAAAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAAAAAFAAAAAAAAAAYAAAAAAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAABgAAAAAAAAAHAAAAAAAAAAAAAAAHAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAAACAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAAAAAAIAAAAAAAAAAkAAAAAAAAAAAAAAAkAAAAAAAAACQAAAAAAAAAAAAAACQAAAAAAAAAKAAAAAAAAAAAAAAAKAAAAAAAAAAoAAAAAAAAAAAAAAAoAAAAAAAAACwAAAAAAAAAAAAAACwAAAAAAAAALAAAAAAAAAAAAAAALAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAANAAAAAAAAAAAAAAANAAAAAAAAAA0AAAAAAAAAAAAAAA0AAAAAAAAADgAAAAAAAAAAAAAADgAAAAAAAAAOAAAAAAAAAAAAAAAOAAAAAAAAAA8AAAAAAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAAAAAADwAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAA8AAAAAAAAADwAAAAAAAAABAAAACg4AAAAAAAAADgAAAAAAAAABAAAACg0AAAAAAAAADQAAAAAAAAABAAAACgwAAAAAAAAADAAAAAAAAAABAAAACgsAAAAAAAAACwAAAAAAAAABAAAACgoAAAAAAAAACgAAAAAAAAABAAAACgkAAAAAAAAACQAAAAAAAAABAAAACggAAAAAAAAACAAAAAAAAAABAAAACgcAAAAAAAAABwAAAAAAAAABAAAACgYAAAAAAAAABgAAAAAAAAABAAAACgUAAAAAAAAABQAAAAAAAAABAAAACgQAAAAAAAAABAAAAAAAAAABAAAACgMAAAAAAAAAAwAAAAAAAAABAAAACgIAAAAAAAAAAgAAAAAAAAABAAAACgEAAAAAAAAAAQAAAAAAAAABAAAACgAAAAAAAAAAAAAAAAAAAAABAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQwAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAAAAAAABIAAAAAAAAAAAAAABIAAAAAAAAAQwAAAAAAAAAAAAAAQwAAAAAAAABEAAAAAAAAAAAAAABEAAAAAAAAAGoAAAAAAAAAAAAAAGoAAAAAAAAAewAAAAAAAAAAAAAAewAAAAAAAAB8AAAAAAAAAAAAAAB8AAAAAAAAAHwAAAAAAAAAAAAAAHwAAAAAAAAAvwAAAAAAAAAAAAAAvwAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAOkAAAAAAAAAAAAAAOkAAAAAAAAA/AAAAAAAAAAAAAAA/AAAAAAAAAD9AAAAAAAAAAAAAAD9AAAAAAAAAP0AAAAAAAAAAAAAAP0AAAAAAAAAQAEAAAAAAAAAAAAAQAEAAAAAAABBAQAAAAAAAAAAAABBAQAAAAAAAEEBAAAAAAAAAAAAAEEBAAAAAAAAhAEAAAAAAAAAAAAAQQEAAAAAAABBAQAAAAAAAEMAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQQEAAAAAAACDAQAAAAAAAAAAAACDAQAAAAAAAIQBAAAAAAAAAAAAAIMBAAAAAAAAgwEAAAAAAAABAAAAIA", + "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvw" + ], + [ + 1, + 1, + "terminus_activate", + { + "auto_close": true, + "cancellable": false, + "cmd": + [ + "powershell.exe" + ], + "cwd": "C:\\Users\\OCEAN\\AppData\\Roaming\\Sublime Text 3\\unpacked\\Origami", + "default_title": "PowerShell", + "env": + { + "TERMINUS_SUBLIME": "1", + "TERM_PROGRAM": "Terminus-Sublime" + }, + "file_regex": null, + "line_regex": null, + "panel_name": "Terminus", + "show_in_panel": null, + "tag": null, + "timeit": false, + "title": null + }, + "AQAAAAAAAAAAAAAAAAAAAAAAAACpAQAAV2luZG93cyBQb3dlclNoZWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIArniYjmnYPmiYDmnIkgKEMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbuOAguS/neeVmeaJgOacieadg+WIqeOAgiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK5bCd6K+V5paw55qE6Leo5bmz5Y+wIFBvd2VyU2hlbGwgaHR0cHM6Ly9ha2EubXMvcHNjb3JlNiAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApQUyBDOlxVc2Vyc1xPQ0VBTlxBcHBEYXRhXFJvYW1pbmdcU3VibGltZSBUZXh0IDNcdW5wYWNrZWRcT3JpZ2FtaT4", + "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAACDAQAAAAAAAIMBAAAAAAAAAAAAAAAA8L8" + ], + [ + 2, + 5, + "terminus_render", + null, + "SgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAAAACAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAABQAAAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAAAAAFAAAAAAAAAAYAAAAAAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAABgAAAAAAAAAHAAAAAAAAAAAAAAAHAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAAACAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAAAAAAIAAAAAAAAAAkAAAAAAAAAAAAAAAkAAAAAAAAACQAAAAAAAAAAAAAACQAAAAAAAAAKAAAAAAAAAAAAAAAKAAAAAAAAAAoAAAAAAAAAAAAAAAoAAAAAAAAACwAAAAAAAAAAAAAACwAAAAAAAAALAAAAAAAAAAAAAAALAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAANAAAAAAAAAAAAAAANAAAAAAAAAA0AAAAAAAAAAAAAAA0AAAAAAAAADgAAAAAAAAAAAAAADgAAAAAAAAAOAAAAAAAAAAAAAAAOAAAAAAAAAA8AAAAAAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAAAAAADwAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAA8AAAAAAAAADwAAAAAAAAABAAAACg4AAAAAAAAADgAAAAAAAAABAAAACg0AAAAAAAAADQAAAAAAAAABAAAACgwAAAAAAAAADAAAAAAAAAABAAAACgsAAAAAAAAACwAAAAAAAAABAAAACgoAAAAAAAAACgAAAAAAAAABAAAACgkAAAAAAAAACQAAAAAAAAABAAAACggAAAAAAAAACAAAAAAAAAABAAAACgcAAAAAAAAABwAAAAAAAAABAAAACgYAAAAAAAAABgAAAAAAAAABAAAACgUAAAAAAAAABQAAAAAAAAABAAAACgQAAAAAAAAABAAAAAAAAAABAAAACgMAAAAAAAAAAwAAAAAAAAABAAAACgIAAAAAAAAAAgAAAAAAAAABAAAACgEAAAAAAAAAAQAAAAAAAAABAAAACgAAAAAAAAAAAAAAAAAAAAABAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQwAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAAAAAAABIAAAAAAAAAAAAAABIAAAAAAAAAQwAAAAAAAAAAAAAAQwAAAAAAAABEAAAAAAAAAAAAAABEAAAAAAAAAGoAAAAAAAAAAAAAAGoAAAAAAAAAewAAAAAAAAAAAAAAewAAAAAAAAB8AAAAAAAAAAAAAAB8AAAAAAAAAHwAAAAAAAAAAAAAAHwAAAAAAAAAvwAAAAAAAAAAAAAAvwAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAOkAAAAAAAAAAAAAAOkAAAAAAAAA/AAAAAAAAAAAAAAA6QAAAAAAAADpAAAAAAAAABMAAAAgICAgICAgICAgICAgICAgICAg6QAAAAAAAADqAAAAAAAAAAAAAADqAAAAAAAAAOoAAAAAAAAAAAAAAOoAAAAAAAAALQEAAAAAAAAAAAAALQEAAAAAAAAuAQAAAAAAAAAAAAAuAQAAAAAAAC4BAAAAAAAAAAAAAC4BAAAAAAAAcQEAAAAAAAAAAAAALgEAAAAAAAAuAQAAAAAAAEMAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLgEAAAAAAABwAQAAAAAAAAAAAABwAQAAAAAAAHEBAAAAAAAAAAAAAHABAAAAAAAAcAEAAAAAAAABAAAAIA", + "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8" + ], + [ + 2, + 1, + "", + null, + "AQAAAAAAAAAAAAAAAAAAAAAAAACWAQAAV2luZG93cyBQb3dlclNoZWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIArniYjmnYPmiYDmnIkgKEMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbuOAguS/neeVmeaJgOacieadg+WIqeOAgiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK5bCd6K+V5paw55qE6Leo5bmz5Y+wIFBvd2VyU2hlbGwgaHR0cHM6Ly9ha2EubXMvcHNjb3JlNgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgClBTIEM6XFVzZXJzXE9DRUFOXEFwcERhdGFcUm9hbWluZ1xTdWJsaW1lIFRleHQgM1x1bnBhY2tlZFxPcmlnYW1pPg", + "AQAAAAAAAAABAAAAcAEAAAAAAABwAQAAAAAAAAAAAAAAAPC/" + ], + [ + 4, + 4, + "terminus_render", + null, + "TQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAAAACAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAABQAAAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAAAAAFAAAAAAAAAAYAAAAAAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAABgAAAAAAAAAHAAAAAAAAAAAAAAAHAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAAACAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAAAAAAIAAAAAAAAAAkAAAAAAAAAAAAAAAkAAAAAAAAACQAAAAAAAAAAAAAACQAAAAAAAAAKAAAAAAAAAAAAAAAKAAAAAAAAAAoAAAAAAAAAAAAAAAoAAAAAAAAACwAAAAAAAAAAAAAACwAAAAAAAAALAAAAAAAAAAAAAAALAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAANAAAAAAAAAAAAAAANAAAAAAAAAA0AAAAAAAAAAAAAAA0AAAAAAAAADgAAAAAAAAAAAAAADgAAAAAAAAAOAAAAAAAAAAAAAAAOAAAAAAAAAA8AAAAAAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAAAAAADgAAAAAAAAAOAAAAAAAAAAEAAAAKDQAAAAAAAAANAAAAAAAAAAEAAAAKDAAAAAAAAAAMAAAAAAAAAAEAAAAKCwAAAAAAAAALAAAAAAAAAAEAAAAKCgAAAAAAAAAKAAAAAAAAAAEAAAAKCQAAAAAAAAAJAAAAAAAAAAEAAAAKCAAAAAAAAAAIAAAAAAAAAAEAAAAKBwAAAAAAAAAHAAAAAAAAAAEAAAAKBgAAAAAAAAAGAAAAAAAAAAEAAAAKBQAAAAAAAAAFAAAAAAAAAAEAAAAKBAAAAAAAAAAEAAAAAAAAAAEAAAAKAwAAAAAAAAADAAAAAAAAAAEAAAAKAgAAAAAAAAACAAAAAAAAAAEAAAAKAQAAAAAAAAABAAAAAAAAAAEAAAAKAAAAAAAAAAAAAAAAAAAAAAEAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAAAAAAAASAAAAAAAAAAAAAAASAAAAAAAAAC0AAAAAAAAAAAAAAC0AAAAAAAAALgAAAAAAAAAAAAAALgAAAAAAAABRAAAAAAAAAAAAAABRAAAAAAAAAFIAAAAAAAAAAAAAAFIAAAAAAAAAUwAAAAAAAAAAAAAAUwAAAAAAAABWAAAAAAAAAAAAAABWAAAAAAAAAH0AAAAAAAAAAAAAAH0AAAAAAAAAfgAAAAAAAAAAAAAAfgAAAAAAAAB+AAAAAAAAAAAAAAB+AAAAAAAAAKsAAAAAAAAAAAAAAKsAAAAAAAAArAAAAAAAAAAAAAAArAAAAAAAAADVAAAAAAAAAAAAAADVAAAAAAAAANYAAAAAAAAAAAAAANYAAAAAAAAA2QAAAAAAAAAAAAAA2QAAAAAAAAADAQAAAAAAAAAAAAADAQAAAAAAAAQBAAAAAAAAAAAAAAQBAAAAAAAABAEAAAAAAAAAAAAABAEAAAAAAAAxAQAAAAAAAAAAAAAxAQAAAAAAADIBAAAAAAAAAAAAADIBAAAAAAAAMgEAAAAAAAAAAAAAMgEAAAAAAABfAQAAAAAAAAAAAAAyAQAAAAAAADIBAAAAAAAALQAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIBAAAAAAAAYgEAAAAAAAAAAAAAYgEAAAAAAABjAQAAAAAAAAAAAABjAQAAAAAAAHgBAAAAAAAAAAAAAHgBAAAAAAAAkAEAAAAAAAAAAAAAeQEAAAAAAAB5AQAAAAAAABcAAAAgICAgICAgICAgICAgICAgICAgICAgIA", + "AQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/" + ], + [ + 6, + 1, + "terminus_render", + null, + "IAAAAAAAAAAAAAAAEgAAAAAAAAAtAAAAV2luZG93cyBQb3dlclNoZWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgEgAAAAAAAAAtAAAAAAAAAAAAAAAuAAAAAAAAAFEAAAAAAAAANgAAAOeJiOadg+aJgOaciSAoQykgTWljcm9zb2Z0IENvcnBvcmF0aW9u44CC5L+d55WZ5omA5pyJIFEAAAAAAAAAUgAAAAAAAAAAAAAAUwAAAAAAAABWAAAAAAAAADAAAADmnYPliKnjgIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWAAAAAAAAAH0AAAAAAAAAAAAAAH4AAAAAAAAAfgAAAAAAAAAtAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfgAAAAAAAACrAAAAAAAAAAAAAACsAAAAAAAAANUAAAAAAAAAPQAAAOWwneivleaWsOeahOi3qOW5s+WPsCBQb3dlclNoZWxsIGh0dHBzOi8vYWthLm1zL3BzY2/igIvigIzigIvWAAAAAAAAANkAAAAAAAAALQAAAHJlNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINkAAAAAAAAAAwEAAAAAAAAAAAAABAEAAAAAAAAEAQAAAAAAAC0AAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAEAQAAAAAAADEBAAAAAAAAAAAAADIBAAAAAAAAYgEAAAAAAAA2AAAAUFMgQzpcVXNlcnNcT0NFQU5cQXBwRGF0YVxSb2FtaW5nXFN1YmxpbWUgVGV44oCL4oCM4oCLYwEAAAAAAAB4AQAAAAAAABYAAAB0IDNcdW5wYWNrZWRcT3JpZ2FtaT4geAEAAAAAAACQAQAAAAAAAAAAAACQAQAAAAAAAJEBAAAAAAAAAAAAAJEBAAAAAAAAkQEAAAAAAAAAAAAAkQEAAAAAAACSAQAAAAAAAAAAAACSAQAAAAAAAJIBAAAAAAAAAAAAAJIBAAAAAAAAkwEAAAAAAAAAAAAAkwEAAAAAAACTAQAAAAAAAAAAAACTAQAAAAAAAJQBAAAAAAAAAAAAAJQBAAAAAAAAlAEAAAAAAAAAAAAAlAEAAAAAAACVAQAAAAAAAAAAAACVAQAAAAAAAJUBAAAAAAAAAAAAAJQBAAAAAAAAlAEAAAAAAAABAAAACpMBAAAAAAAAkwEAAAAAAAABAAAACpIBAAAAAAAAkgEAAAAAAAABAAAACpEBAAAAAAAAkQEAAAAAAAABAAAACpABAAAAAAAAkAEAAAAAAAABAAAACnkBAAAAAAAAeQEAAAAAAAAXAAAAICAgICAgICAgICAgICAgICAgICAgICA", + "AQAAAAAAAAABAAAAeQEAAAAAAAB5AQAAAAAAAAAAAAAAAPC/" + ] + ] + } + ], + "build_system": "", + "build_system_choices": + [ + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git Origin URL" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/CMake.sublime-build", + "" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Sublime Text 2 - Ninja" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Visual Studio 16 2019" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Visual Studio 15 2017" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake Build Release" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake Build Debug" + ], + [ + "Packages/User/CMake.sublime-build", + "Memory Layout of Class (GCC)" + ], + [ + "Packages/User/CMake.sublime-build", + "Compile & Run (GCC Debug)" + ], + [ + "Packages/User/CMake.sublime-build", + "Compile & Run (GCC Release)" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make Win32" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make all" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make Clean" + ] + ], + [ + "Git Demo", + "" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin URL" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/CMake.sublime-build", + "" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Sublime Text 2 - Ninja" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Visual Studio 16 2019" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Visual Studio 15 2017" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake Build Release" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake Build Debug" + ], + [ + "Packages/User/CMake.sublime-build", + "Memory Layout of Class (GCC)" + ], + [ + "Packages/User/CMake.sublime-build", + "Compile & Run (GCC Debug)" + ], + [ + "Packages/User/CMake.sublime-build", + "Compile & Run (GCC Release)" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make Win32" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make all" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make Clean" + ] + ], + [ + "Git Demo", + "Git Origin URL" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ] + ], + [ + "Git Demo", + "Git help" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/MarkdownPreview/Markdown.sublime-build", + "" + ] + ], + [ + "Packages/MarkdownPreview/Markdown.sublime-build", + "" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/User/GoLang.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go install" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run with Test Arguments" + ] + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/User/PlantUML.sublime-build", + "" + ], + [ + "Packages/User/PlantUML.sublime-build", + " --> ASCII Art" + ], + [ + "Packages/User/PlantUML.sublime-build", + " --> PNG" + ] + ], + [ + "Packages/User/PlantUML.sublime-build", + " --> ASCII Art" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/User/PlantUML.sublime-build", + "" + ], + [ + "Packages/User/PlantUML.sublime-build", + "-> Test" + ], + [ + "Packages/User/PlantUML.sublime-build", + " --> ASCII Art" + ], + [ + "Packages/User/PlantUML.sublime-build", + " --> PNG" + ] + ], + [ + "Packages/User/PlantUML.sublime-build", + " --> ASCII Art" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/User/PlantUML.sublime-build", + "" + ], + [ + "Packages/User/PlantUML.sublime-build", + "-> Test" + ], + [ + "Packages/User/PlantUML.sublime-build", + "-> Test" + ], + [ + "Packages/User/PlantUML.sublime-build", + " --> ASCII Art" + ], + [ + "Packages/User/PlantUML.sublime-build", + " --> PNG" + ] + ], + [ + "Packages/User/PlantUML.sublime-build", + "-> Test" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/User/PlantUML.sublime-build", + "" + ], + [ + "Packages/User/PlantUML.sublime-build", + "-> Test cmd" + ], + [ + "Packages/User/PlantUML.sublime-build", + "-> Test shell_cmd" + ], + [ + "Packages/User/PlantUML.sublime-build", + " --> ASCII Art" + ], + [ + "Packages/User/PlantUML.sublime-build", + " --> PNG" + ] + ], + [ + "Packages/User/PlantUML.sublime-build", + " --> PNG" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/User/PlantUML.sublime-build", + "" + ], + [ + "Packages/User/PlantUML.sublime-build", + "PlantUML --> ASCII Art" + ], + [ + "Packages/User/PlantUML.sublime-build", + "PlantUML --> PNG" + ] + ], + [ + "Packages/User/PlantUML.sublime-build", + "" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/C++/C Single File.sublime-build", + "" + ], + [ + "Packages/C++/C Single File.sublime-build", + "Run" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ] + ], + [ + "Packages/C++/C Single File.sublime-build", + "Run" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/C++/C Single File.sublime-build", + "" + ], + [ + "Packages/C++/C Single File.sublime-build", + "Run" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++17)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++14)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++11)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++11) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++11) Release with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++0x) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++98) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-ansi)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c11)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c99)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c90)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-ansi) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c11) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c99) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c90) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "控制台中运行" + ] + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c11)" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/C++/C Single File.sublime-build", + "" + ], + [ + "Packages/C++/C Single File.sublime-build", + "Run" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/MinGW.sublime-build", + "" + ], + [ + "Packages/User/MinGW.sublime-build", + "(-std=c++17)" + ], + [ + "Packages/User/MinGW.sublime-build", + "(-std=c++14)" + ], + [ + "Packages/User/MinGW.sublime-build", + "(-std=c++11)" + ], + [ + "Packages/User/MinGW.sublime-build", + "(-std=c++11) with ENV" + ], + [ + "Packages/User/MinGW.sublime-build", + "(-std=c++11) Release with ENV" + ], + [ + "Packages/User/MinGW.sublime-build", + "(-std=c++0x) with ENV" + ], + [ + "Packages/User/MinGW.sublime-build", + "(-std=c++98) with ENV" + ], + [ + "Packages/User/MinGW.sublime-build", + "(-ansi)" + ], + [ + "Packages/User/MinGW.sublime-build", + "(-std=c11)" + ], + [ + "Packages/User/MinGW.sublime-build", + "(-std=c99)" + ], + [ + "Packages/User/MinGW.sublime-build", + "(-std=c90)" + ], + [ + "Packages/User/MinGW.sublime-build", + "(-ansi) with ENV" + ], + [ + "Packages/User/MinGW.sublime-build", + "(-std=c11) with ENV" + ], + [ + "Packages/User/MinGW.sublime-build", + "(-std=c99) with ENV" + ], + [ + "Packages/User/MinGW.sublime-build", + "(-std=c90) with ENV" + ], + [ + "Packages/User/MinGW.sublime-build", + "控制台中运行" + ] + ], + [ + "Packages/User/MinGW.sublime-build", + "(-std=c99)" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/C++/C++ Single File.sublime-build", + "" + ], + [ + "Packages/C++/C++ Single File.sublime-build", + "Run" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++17)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++14)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++11)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++11) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++11) Release with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++0x) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++98) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-ansi)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c11)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c99)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c90)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-ansi) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c11) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c99) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c90) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "控制台中运行" + ] + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++11)" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/C++/C++ Single File.sublime-build", + "" + ], + [ + "Packages/C++/C++ Single File.sublime-build", + "Run" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++17)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++14)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++11)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++11) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++11) Release with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++0x) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++98) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-ansi) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c11) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c99) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c90) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "控制台中运行" + ] + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++11)" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/MarkdownPreview/Markdown.sublime-build", + "" + ] + ], + [ + "Git Demo", + "" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/PowerShell/Support/Powershell.sublime-build", + "" + ] + ], + [ + "Packages/PowerShell/Support/Powershell.sublime-build", + "" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/TypeScript/TypeScript.sublime-build", + "" + ], + [ + "Packages/User/Node.sublime-build", + "" + ], + [ + "Packages/User/Node.sublime-build", + "Node ESM(.mjs)" + ], + [ + "Packages/User/Node.sublime-build", + "Deno Run" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript ts-node" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript Watch" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript => ES3" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript => ES5" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript => ES6" + ], + [ + "Packages/User/Node.sublime-build", + "ES6(ECMAScript 2015)" + ], + [ + "Packages/User/Node.sublime-build", + "ES5(ECMAScript 2009)" + ] + ], + [ + "Packages/User/Node.sublime-build", + "Deno Run" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/TypeScript/TypeScript.sublime-build", + "" + ], + [ + "Packages/User/Node.sublime-build", + "" + ], + [ + "Packages/User/Node.sublime-build", + "Node ESM(.mjs)" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript Deno" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript ts-node" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript Watch" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript => ES3" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript => ES5" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript => ES6" + ], + [ + "Packages/User/Node.sublime-build", + "ES6(ECMAScript 2015)" + ], + [ + "Packages/User/Node.sublime-build", + "ES5(ECMAScript 2009)" + ] + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript ts-node" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/TypeScript/TypeScript.sublime-build", + "" + ], + [ + "Packages/User/Node.sublime-build", + "" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript Deno" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript ts-node" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript => ES3" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript => ES5" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript => ES6" + ], + [ + "Packages/User/Node.sublime-build", + "ES6(ECMAScript 2015)" + ], + [ + "Packages/User/Node.sublime-build", + "ES5(ECMAScript 2009)" + ] + ], + [ + "Packages/User/Node.sublime-build", + "" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/TypeScript/TypeScript.sublime-build", + "" + ], + [ + "Packages/User/Node.sublime-build", + "" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript ts-node" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript Deno" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript => ES3" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript => ES5" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript => ES6" + ], + [ + "Packages/User/Node.sublime-build", + "ES6(ECMAScript 2015)" + ], + [ + "Packages/User/Node.sublime-build", + "ES5(ECMAScript 2009)" + ] + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript Deno" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/TypeScript/TypeScript.sublime-build", + "" + ], + [ + "Packages/User/Node.sublime-build", + "" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript[ts-node]" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript ES3)" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript ES5)" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript ES6)" + ], + [ + "Packages/User/Node.sublime-build", + "ES6(ECMAScript 2015)" + ], + [ + "Packages/User/Node.sublime-build", + "ES5(ECMAScript 2009)" + ], + [ + "Packages/User/ts-node.sublime-build", + "" + ] + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript[ts-node]" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 10.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 8.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 6.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 5.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 4.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 3.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 2.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 1.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "C# version ..." + ], + [ + "Packages/User/C#.sublime-build", + "Build DLL" + ], + [ + "Packages/User/C#.sublime-build", + "Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net New" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Watch" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run Project" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Watch Project" + ], + [ + "Packages/User/C#.sublime-build", + "Run with Test Arguments" + ], + [ + "Packages/User/CMake.sublime-build", + "" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Sublime Text 2 - Ninja" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Visual Studio 16 2019" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Visual Studio 15 2017" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake Build Release" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake Build Debug" + ], + [ + "Packages/User/CMake.sublime-build", + "Memory Layout of Class (GCC)" + ], + [ + "Packages/User/CMake.sublime-build", + "Compile & Run (GCC Debug)" + ], + [ + "Packages/User/CMake.sublime-build", + "Compile & Run (GCC Release)" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make Win32" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make all" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make Clean" + ] + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 6.0)..." + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 10.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 9.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 8.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.3)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.2)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.1)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 6.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 5.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 4.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 3.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 2.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 1.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "C# version ..." + ], + [ + "Packages/User/C#.sublime-build", + "Build DLL" + ], + [ + "Packages/User/C#.sublime-build", + "Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net New" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Watch" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run Project" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Watch Project" + ], + [ + "Packages/User/C#.sublime-build", + "Run with Test Arguments" + ], + [ + "Packages/User/CMake.sublime-build", + "" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Sublime Text 2 - Ninja" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Visual Studio 16 2019" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Visual Studio 15 2017" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake Build Release" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake Build Debug" + ], + [ + "Packages/User/CMake.sublime-build", + "Memory Layout of Class (GCC)" + ], + [ + "Packages/User/CMake.sublime-build", + "Compile & Run (GCC Debug)" + ], + [ + "Packages/User/CMake.sublime-build", + "Compile & Run (GCC Release)" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make Win32" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make all" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make Clean" + ] + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 1.0)..." + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 10.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 9.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 8.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.3)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.2)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.1)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 6.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 5.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 4.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 3.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 2.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 1.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "C# version ..." + ], + [ + "Packages/User/C#.sublime-build", + "Build DLL" + ], + [ + "Packages/User/C#.sublime-build", + "Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net New Console" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Watch" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run Project" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Watch Project" + ], + [ + "Packages/User/C#.sublime-build", + "Run with Test Arguments" + ], + [ + "Packages/User/CMake.sublime-build", + "" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Sublime Text 2 - Ninja" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Visual Studio 16 2019" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Visual Studio 15 2017" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake Build Release" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake Build Debug" + ], + [ + "Packages/User/CMake.sublime-build", + "Memory Layout of Class (GCC)" + ], + [ + "Packages/User/CMake.sublime-build", + "Compile & Run (GCC Debug)" + ], + [ + "Packages/User/CMake.sublime-build", + "Compile & Run (GCC Release)" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make Win32" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make all" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make Clean" + ] + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run ..." + ], + [ + "Packages/User/C#.sublime-build", + "Build DLL" + ], + [ + "Packages/User/C#.sublime-build", + "Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net New" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Watch" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run Project" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Watch Project" + ], + [ + "Packages/User/C#.sublime-build", + "Run with Test Arguments" + ], + [ + "Packages/User/CMake.sublime-build", + "" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Sublime Text 2 - Ninja" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Visual Studio 16 2019" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Visual Studio 15 2017" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake Build Release" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake Build Debug" + ], + [ + "Packages/User/CMake.sublime-build", + "Memory Layout of Class (GCC)" + ], + [ + "Packages/User/CMake.sublime-build", + "Compile & Run (GCC Debug)" + ], + [ + "Packages/User/CMake.sublime-build", + "Compile & Run (GCC Release)" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make Win32" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make all" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make Clean" + ] + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run ..." + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run ..." + ], + [ + "Packages/User/C#.sublime-build", + "C# version ..." + ], + [ + "Packages/User/C#.sublime-build", + "Build DLL" + ], + [ + "Packages/User/C#.sublime-build", + "Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net New" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Watch" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run Project" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Watch Project" + ], + [ + "Packages/User/C#.sublime-build", + "Run with Test Arguments" + ], + [ + "Packages/User/CMake.sublime-build", + "" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Sublime Text 2 - Ninja" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Visual Studio 16 2019" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Visual Studio 15 2017" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake Build Release" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake Build Debug" + ], + [ + "Packages/User/CMake.sublime-build", + "Memory Layout of Class (GCC)" + ], + [ + "Packages/User/CMake.sublime-build", + "Compile & Run (GCC Debug)" + ], + [ + "Packages/User/CMake.sublime-build", + "Compile & Run (GCC Release)" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make Win32" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make all" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make Clean" + ] + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run ..." + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go WebAssembly" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go install" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run with Test Arguments" + ] + ], + [ + "Packages/User/GoLang.sublime-build", + "Go WebAssembly" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/Node.sublime-build", + "" + ], + [ + "Packages/User/Node.sublime-build", + "Node ESM(.mjs)" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript Deno" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript ts-node" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript Watch" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript => ES3" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript => ES5" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript => ES6" + ], + [ + "Packages/User/Node.sublime-build", + "ES6(ECMAScript 2015)" + ], + [ + "Packages/User/Node.sublime-build", + "ES5(ECMAScript 2009)" + ] + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript Deno" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/Node.sublime-build", + "" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript Deno" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript ts-node" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript Watch" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript => ES3" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript => ES5" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript => ES6" + ], + [ + "Packages/User/Node.sublime-build", + "ES6(ECMAScript 2015)" + ], + [ + "Packages/User/Node.sublime-build", + "ES5(ECMAScript 2009)" + ] + ], + [ + "Packages/User/Node.sublime-build", + "" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/php.sublime-build", + "" + ] + ], + [ + "Packages/User/php.sublime-build", + "" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/Lua/Lua.sublime-build", + "" + ], + [ + "Packages/User/lua.sublime-build", + "" + ] + ], + [ + "Packages/Lua/Lua.sublime-build", + "" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/MarkdownPreview/Markdown.sublime-build", + "" + ] + ], + [ + "Packages/MarkdownPreview/Markdown.sublime-build", + "" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/Python/Python.sublime-build", + "" + ], + [ + "Packages/Python/Python.sublime-build", + "Syntax Check" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "Run" + ] + ], + [ + "Packages/User/Python.sublime-build", + "" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/Rust/Cargo.sublime-build", + "" + ], + [ + "Packages/Rust/Cargo.sublime-build", + "Run" + ], + [ + "Packages/Rust/Cargo.sublime-build", + "Test" + ], + [ + "Packages/Rust/Cargo.sublime-build", + "Bench" + ], + [ + "Packages/Rust/Cargo.sublime-build", + "Clean" + ], + [ + "Packages/Rust/Rust.sublime-build", + "" + ], + [ + "Packages/Rust/Rust.sublime-build", + "Run" + ], + [ + "Packages/Rust/Rust.sublime-build", + "Build & Run" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ] + ], + [ + "Packages/Rust/Rust.sublime-build", + "Build & Run" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/TypeScript/TypeScript.sublime-build", + "" + ] + ], + [ + "Packages/TypeScript/TypeScript.sublime-build", + "" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/TypeScript/TypeScript.sublime-build", + "" + ], + [ + "Packages/User/Node.sublime-build", + "" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript[ts-node]" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript ES3)" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript ES5)" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript ES6)" + ], + [ + "Packages/User/Node.sublime-build", + "ES6(ECMAScript 2015)" + ], + [ + "Packages/User/Node.sublime-build", + "ES5(ECMAScript 2009)" + ] + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript ES6)" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/TypeScript/TypeScript.sublime-build", + "" + ], + [ + "Packages/User/Node.sublime-build", + "" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript[ts-node]" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript ES3)" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript ES5)" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript ES6)" + ], + [ + "Packages/User/Node.sublime-build", + "ES6(ECMAScript 2015)" + ], + [ + "Packages/User/Node.sublime-build", + "ES5(ECMAScript 2009)" + ], + [ + "Packages/User/ts-node.sublime-build", + "" + ] + ], + [ + "Packages/User/ts-node.sublime-build", + "" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/User/Node.sublime-build", + "" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript[ts-node]" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript ES3)" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript ES5)" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript ES6)" + ], + [ + "Packages/User/Node.sublime-build", + "ES6(ECMAScript 2015)" + ], + [ + "Packages/User/Node.sublime-build", + "ES5(ECMAScript 2009)" + ] + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript ES6)" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/User/PlantUML.sublime-build", + "" + ], + [ + "Packages/User/PlantUML.sublime-build", + " --> ASCII Art" + ], + [ + "Packages/User/PlantUML.sublime-build", + " --> PNG" + ] + ], + [ + "Git Demo", + "git show" + ] + ], + [ + [ + [ + "Git Demo", + "" + ], + [ + "Git Demo", + "Git help" + ], + [ + "Git Demo", + "Git Origin attach" + ], + [ + "Git Demo", + "Push" + ], + [ + "Git Demo", + "Branch List" + ], + [ + "Git Demo", + "Branch List remote" + ], + [ + "Git Demo", + "Diff --cached" + ], + [ + "Git Demo", + "git show" + ], + [ + "Packages/User/lisp.sublime-build", + "" + ] + ], + [ + "Packages/User/lisp.sublime-build", + "" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/C++/C++ Single File.sublime-build", + "" + ], + [ + "Packages/C++/C++ Single File.sublime-build", + "Run" + ], + [ + "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", + "" + ], + [ + "Packages/User/CMake.sublime-build", + "" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Visual Studio 17 2020" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Visual Studio 16 2019" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Visual Studio 15 2017" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Ninja - Vcpkg [Default]" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Ninja - Vcpkg [MSVC]" + ], + [ + "Packages/User/CMake.sublime-build", + "Ninja - all [Default]" + ], + [ + "Packages/User/CMake.sublime-build", + "Ninja - all [MSVC]" + ], + [ + "Packages/User/CMake.sublime-build", + "Ninja - clean" + ], + [ + "Packages/User/CMake.sublime-build", + "Ninja - rebuild_cache" + ], + [ + "Packages/User/CMake.sublime-build", + "Ninja - test" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake Build Release" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake Build Debug" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake install" + ], + [ + "Packages/User/CMake.sublime-build", + "Memory Layout of Class (GCC)" + ], + [ + "Packages/User/CMake.sublime-build", + "Compile & Run (GCC Debug)" + ], + [ + "Packages/User/CMake.sublime-build", + "Compile & Run (GCC Release)" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make Win32" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make all" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make Clean" + ], + [ + "Packages/User/MinGW.sublime-build", + "" + ], + [ + "Packages/User/MinGW.sublime-build", + "(-std=c++17)" + ], + [ + "Packages/User/MinGW.sublime-build", + "(-std=c++14)" + ], + [ + "Packages/User/MinGW.sublime-build", + "(-std=c++11)" + ], + [ + "Packages/User/MinGW.sublime-build", + "(-std=c++11) with ENV" + ], + [ + "Packages/User/MinGW.sublime-build", + "(-std=c++11) Release with ENV" + ], + [ + "Packages/User/MinGW.sublime-build", + "(-std=c++0x) with ENV" + ], + [ + "Packages/User/MinGW.sublime-build", + "(-std=c++98) with ENV" + ], + [ + "Packages/User/MinGW.sublime-build", + "(-ansi)" + ], + [ + "Packages/User/MinGW.sublime-build", + "(-std=c11)" + ], + [ + "Packages/User/MinGW.sublime-build", + "(-std=c99)" + ], + [ + "Packages/User/MinGW.sublime-build", + "(-std=c90)" + ], + [ + "Packages/User/MinGW.sublime-build", + "(-ansi) with ENV" + ], + [ + "Packages/User/MinGW.sublime-build", + "(-std=c11) with ENV" + ], + [ + "Packages/User/MinGW.sublime-build", + "(-std=c99) with ENV" + ], + [ + "Packages/User/MinGW.sublime-build", + "(-std=c90) with ENV" + ], + [ + "Packages/User/MinGW.sublime-build", + "控制台中运行" + ] + ], + [ + "Packages/User/MinGW.sublime-build", + "(-std=c++17)" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/MarkdownPreview/Markdown.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 -m coding]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 sys.path]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9]" + ], + [ + "Packages/User/Python.sublime-build", + "Syntax Check" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Default Console]" + ] + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9]" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/PowerShell/Support/Powershell.sublime-build", + "" + ] + ], + [ + "Packages/PowerShell/Support/Powershell.sublime-build", + "" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 10.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 1.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 9.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 8.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.3)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.2)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.1)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 6.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 5.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 4.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 3.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 2.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build DLL" + ], + [ + "Packages/User/C#.sublime-build", + "Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net New Console" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Watch" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run Project" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Watch Project" + ], + [ + "Packages/User/C#.sublime-build", + "Run with Test Arguments" + ] + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 8.0)..." + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 10.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 9.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 8.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.3)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.2)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.1)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 6.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 5.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 4.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 3.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 2.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 1.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build DLL" + ], + [ + "Packages/User/C#.sublime-build", + "Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net New Console" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Watch" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run Project" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Watch Project" + ], + [ + "Packages/User/C#.sublime-build", + "Run with Test Arguments" + ] + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 6.0)..." + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 10.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 9.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 8.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.3)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.2)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.1)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 6.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 5.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 4.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 3.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 2.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 1.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "C# version ..." + ], + [ + "Packages/User/C#.sublime-build", + "Build DLL" + ], + [ + "Packages/User/C#.sublime-build", + "Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net New Console" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Watch" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run Project" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Watch Project" + ], + [ + "Packages/User/C#.sublime-build", + "Run with Test Arguments" + ] + ], + [ + "Packages/User/C#.sublime-build", + "" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/CMake.sublime-build", + "" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Sublime Text 2 - Ninja" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Visual Studio 16 2019" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Visual Studio 15 2017" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake Build Release" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake Build Debug" + ], + [ + "Packages/User/CMake.sublime-build", + "Memory Layout of Class (GCC)" + ], + [ + "Packages/User/CMake.sublime-build", + "Compile & Run (GCC Debug)" + ], + [ + "Packages/User/CMake.sublime-build", + "Compile & Run (GCC Release)" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make Win32" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make all" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make Clean" + ] + ], + [ + "MD Git", + "Branch List remote" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 -m coding]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 sys.path]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 Install]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9]" + ], + [ + "Packages/User/Python.sublime-build", + "Syntax Check" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Default Console]" + ] + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9]" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 -m coding]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 sys.path]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9]" + ], + [ + "Packages/User/Python.sublime-build", + "Syntax Check" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Default Console]" + ] + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2]" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 -m coding]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 sys.path]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10 Module Docs (64-bit)]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 Install]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9]" + ], + [ + "Packages/User/Python.sublime-build", + "Syntax Check" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Default Console]" + ] + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10 Module Docs (64-bit)]" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 -m coding]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 sys.path]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 Module Docs (64-bit)]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 Install]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9]" + ], + [ + "Packages/User/Python.sublime-build", + "Syntax Check" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Default Console]" + ] + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2]" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 -m coding]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 sys.path]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 Module Docs (64-bit)]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 build module]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 Install]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9]" + ], + [ + "Packages/User/Python.sublime-build", + "Syntax Check" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Default Console]" + ] + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 Install]" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/php.sublime-build", + "" + ] + ], + [ + "Packages/User/php.sublime-build", + "" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/php.sublime-build", + "" + ], + [ + "Packages/User/php.sublime-build", + "7.4.28 Win32-vc15-x64" + ] + ], + [ + "Packages/User/php.sublime-build", + "7.4.28 Win32-vc15-x64" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/php.sublime-build", + "" + ], + [ + "Packages/User/php.sublime-build", + "7.4.28 Win32-vc15-x64" + ], + [ + "Packages/User/php.sublime-build", + "7.4.28 Info" + ] + ], + [ + "Packages/User/php.sublime-build", + "7.4.28 Win32-vc15-x64" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/php.sublime-build", + "" + ], + [ + "Packages/User/php.sublime-build", + "PHP 7.4.28 Win32-vc15-x64" + ] + ], + [ + "Packages/User/php.sublime-build", + "PHP 7.4.28 Win32-vc15-x64" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/php.sublime-build", + "" + ], + [ + "Packages/User/php.sublime-build", + "PHP 7.4.28 Win32-vc15-x64" + ], + [ + "Packages/User/php.sublime-build", + "PHP 7.4.28 -V" + ] + ], + [ + "Packages/User/php.sublime-build", + "PHP 7.4.28 -V" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/php.sublime-build", + "" + ], + [ + "Packages/User/php.sublime-build", + "PHP 7.4.28 Win32-vc15-x64" + ], + [ + "Packages/User/php.sublime-build", + "PHP 7.4.28 -v" + ] + ], + [ + "Packages/User/php.sublime-build", + "PHP 7.4.28 -v" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Java/Ant.sublime-build", + "" + ], + [ + "Packages/Java/JavaC.sublime-build", + "" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/java.sublime-build", + "" + ], + [ + "Packages/User/java.sublime-build", + "编译运行" + ], + [ + "Packages/User/java.sublime-build", + "运行当前类" + ], + [ + "Packages/User/java.sublime-build", + "cmd中运行" + ] + ], + [ + "Packages/User/java.sublime-build", + "编译运行" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Lua/Lua.sublime-build", + "" + ] + ], + [ + "Packages/Lua/Lua.sublime-build", + "" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/MSBuild/MSBuild.sublime-build", + "" + ], + [ + "Packages/MSBuild/MSBuild.sublime-build", + "Parallel Build" + ], + [ + "Packages/MSBuild/MSBuild.sublime-build", + "Debug Configuration" + ], + [ + "Packages/MSBuild/MSBuild.sublime-build", + "Release Configuration" + ], + [ + "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 10.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 1.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 9.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 8.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.3)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.2)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.1)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 6.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 5.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 4.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 3.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 2.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build DLL" + ], + [ + "Packages/User/C#.sublime-build", + "MSBuild proj" + ], + [ + "Packages/User/C#.sublime-build", + "MSBuild proj - DEBUG" + ], + [ + "Packages/User/C#.sublime-build", + "Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net New Console" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Watch" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run Project" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Watch Project" + ], + [ + "Packages/User/C#.sublime-build", + "Run with Test Arguments" + ] + ], + [ + "Packages/User/C#.sublime-build", + "MSBuild proj - DEBUG" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/MSBuild/MSBuild.sublime-build", + "" + ], + [ + "Packages/MSBuild/MSBuild.sublime-build", + "Parallel Build" + ], + [ + "Packages/MSBuild/MSBuild.sublime-build", + "Debug Configuration" + ], + [ + "Packages/MSBuild/MSBuild.sublime-build", + "Release Configuration" + ], + [ + "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 10.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 1.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 9.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 8.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.3)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.2)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.1)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 6.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 5.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 4.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 3.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 2.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build DLL" + ], + [ + "Packages/User/C#.sublime-build", + "MSBuild proj" + ], + [ + "Packages/User/C#.sublime-build", + "Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net New Console" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Watch" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run Project" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Watch Project" + ], + [ + "Packages/User/C#.sublime-build", + "Run with Test Arguments" + ] + ], + [ + "Packages/User/C#.sublime-build", + "MSBuild proj" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/MarkdownPreview/Markdown.sublime-build", + "" + ] + ], + [ + "Packages/MarkdownPreview/Markdown.sublime-build", + "" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Perl/Perl.sublime-build", + "" + ], + [ + "Packages/Perl/Perl.sublime-build", + "Syntax Check" + ] + ], + [ + "Packages/Perl/Perl.sublime-build", + "" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/PowerShell/Support/Powershell.sublime-build", + "" + ], + [ + "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", + "" + ] + ], + [ + "Packages/PowerShell/Support/Powershell.sublime-build", + "" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Python/Python.sublime-build", + "" + ], + [ + "Packages/Python/Python.sublime-build", + "Syntax Check" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "Run" + ] + ], + [ + "Packages/User/Python.sublime-build", + "" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Python/Python.sublime-build", + "" + ], + [ + "Packages/Python/Python.sublime-build", + "Syntax Check" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Console Python v3.10.2]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2]" + ] + ], + [ + "Packages/User/Python.sublime-build", + "" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Python/Python.sublime-build", + "" + ], + [ + "Packages/Python/Python.sublime-build", + "Syntax Check" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Default Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 -m MAIN.MODULE]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9]" + ] + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 -m MAIN.MODULE]" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Python/Python.sublime-build", + "" + ], + [ + "Packages/Python/Python.sublime-build", + "Syntax Check" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Default Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 -m MAIN_MODULE]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9]" + ] + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 -m MAIN_MODULE]" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Python/Python.sublime-build", + "" + ], + [ + "Packages/Python/Python.sublime-build", + "Syntax Check" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Default Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 -m coding]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 sys.path]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9]" + ] + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 Console]" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Python/Python.sublime-build", + "" + ], + [ + "Packages/Python/Python.sublime-build", + "Syntax Check" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Default Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 -m coding]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9]" + ] + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 -m coding]" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Python/Python.sublime-build", + "" + ], + [ + "Packages/Python/Python.sublime-build", + "Syntax Check" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Default Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 -m main.module]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9]" + ] + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 -m main.module]" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Python/Python.sublime-build", + "" + ], + [ + "Packages/Python/Python.sublime-build", + "Syntax Check" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Default Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 -m mainmodule]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9]" + ] + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 -m mainmodule]" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Python/Python.sublime-build", + "" + ], + [ + "Packages/Python/Python.sublime-build", + "Syntax Check" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Default Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2]" + ] + ], + [ + "Packages/User/Python.sublime-build", + "" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Python/Python.sublime-build", + "" + ], + [ + "Packages/Python/Python.sublime-build", + "Syntax Check" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Default Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.0 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.0]" + ] + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.0]" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Python/Python.sublime-build", + "" + ], + [ + "Packages/Python/Python.sublime-build", + "Syntax Check" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Default Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9]" + ] + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2]" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Python/Python.sublime-build", + "" + ], + [ + "Packages/Python/Python.sublime-build", + "Syntax Check" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 -m coding]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 sys.path]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Default Console]" + ] + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2]" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 10.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 1.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 9.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 8.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.3)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.2)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.1)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 6.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 5.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 4.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 3.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 2.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build DLL" + ], + [ + "Packages/User/C#.sublime-build", + "MSBuild proj" + ], + [ + "Packages/User/C#.sublime-build", + "MSBuild proj - DEBUG" + ], + [ + "Packages/User/C#.sublime-build", + "Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net New Console" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Watch" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run Project" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Watch Project" + ], + [ + "Packages/User/C#.sublime-build", + "Run with Test Arguments" + ] + ], + [ + "Packages/User/C#.sublime-build", + "MSBuild proj - DEBUG" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 10.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 1.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 9.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 8.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.3)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.2)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.1)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 6.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 5.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 4.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 3.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 2.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build DLL" + ], + [ + "Packages/User/C#.sublime-build", + "MSBuild proj" + ], + [ + "Packages/User/C#.sublime-build", + "Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net New Console" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Watch" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run Project" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Watch Project" + ], + [ + "Packages/User/C#.sublime-build", + "Run with Test Arguments" + ] + ], + [ + "Packages/User/C#.sublime-build", + "MSBuild proj" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 10.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 1.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 9.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 8.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.3)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.2)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.1)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 7.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 6.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 5.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 4.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 3.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 2.0)..." + ], + [ + "Packages/User/C#.sublime-build", + "Build DLL" + ], + [ + "Packages/User/C#.sublime-build", + "Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net New Console" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Watch" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run Project" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Watch Project" + ], + [ + "Packages/User/C#.sublime-build", + "Run with Test Arguments" + ] + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run (C# 10.0)..." + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", + "" + ], + [ + "Packages/User/CMake.sublime-build", + "" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Sublime Text 2 - Ninja" + ], + [ + "Packages/User/CMake.sublime-build", + "Ninja - all" + ], + [ + "Packages/User/CMake.sublime-build", + "Ninja - clean" + ], + [ + "Packages/User/CMake.sublime-build", + "Ninja - rebuild_cache" + ], + [ + "Packages/User/CMake.sublime-build", + "Ninja - test" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Visual Studio 16 2019" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Visual Studio 15 2017" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake Build Release" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake Build Debug" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake install" + ], + [ + "Packages/User/CMake.sublime-build", + "Memory Layout of Class (GCC)" + ], + [ + "Packages/User/CMake.sublime-build", + "Compile & Run (GCC Debug)" + ], + [ + "Packages/User/CMake.sublime-build", + "Compile & Run (GCC Release)" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make Win32" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make all" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make Clean" + ] + ], + [ + "Packages/User/CMake.sublime-build", + "" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", + "" + ], + [ + "Packages/User/MSBuild.sublime-build", + "" + ], + [ + "Packages/User/MSBuild.sublime-build", + "MSBuild proj" + ], + [ + "Packages/User/MSBuild.sublime-build", + "MSBuild proj - DEBUG" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net MSBuild Project" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Run Project" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Watch Project" + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 10.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 1.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 9.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 8.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 7.3)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 7.2)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 7.1)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 7.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 6.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 5.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 4.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 3.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 2.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build DLL" + ], + [ + "Packages/User/MSBuild.sublime-build", + "Run" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Info (SDKs & Runtimes List)" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net New Console" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Run" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Watch" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net New - console" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net New - winforms" + ], + [ + "Packages/User/MSBuild.sublime-build", + "Run with Test Arguments" + ] + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 8.0)..." + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", + "" + ], + [ + "Packages/User/MSBuild.sublime-build", + "" + ], + [ + "Packages/User/MSBuild.sublime-build", + "MSBuild proj" + ], + [ + "Packages/User/MSBuild.sublime-build", + "MSBuild proj - DEBUG" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net MSBuild Project" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Run Project" + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 10.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 1.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 9.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 8.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 7.3)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 7.2)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 7.1)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 7.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 6.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 5.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 4.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 3.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 2.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build DLL" + ], + [ + "Packages/User/MSBuild.sublime-build", + "Run" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Info (SDKs & Runtimes List)" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net New Console" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Run" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Watch" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Run Project" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Watch Project" + ], + [ + "Packages/User/MSBuild.sublime-build", + "Run with Test Arguments" + ] + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Run Project" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", + "" + ], + [ + "Packages/User/MSBuild.sublime-build", + "" + ], + [ + "Packages/User/MSBuild.sublime-build", + "MSBuild proj" + ], + [ + "Packages/User/MSBuild.sublime-build", + "MSBuild proj - DEBUG" + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 10.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 1.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 9.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 8.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 7.3)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 7.2)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 7.1)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 7.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 6.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 5.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 4.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 3.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 2.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build DLL" + ], + [ + "Packages/User/MSBuild.sublime-build", + "Run" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Info (SDKs & Runtimes List)" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net New Console" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net New Console" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Run" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Watch" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Run Project" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Watch Project" + ], + [ + "Packages/User/MSBuild.sublime-build", + "Run with Test Arguments" + ] + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Info (SDKs & Runtimes List)" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", + "" + ], + [ + "Packages/User/MSBuild.sublime-build", + "" + ], + [ + "Packages/User/MSBuild.sublime-build", + "MSBuild proj" + ], + [ + "Packages/User/MSBuild.sublime-build", + "MSBuild proj - DEBUG" + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 10.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 1.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 9.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 8.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 7.3)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 7.2)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 7.1)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 7.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 6.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 5.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 4.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 3.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 2.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build DLL" + ], + [ + "Packages/User/MSBuild.sublime-build", + "Run" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Info (SDKs & Runtimes List)" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net New Console" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Run" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Watch" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Run Project" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Watch Project" + ], + [ + "Packages/User/MSBuild.sublime-build", + "Run with Test Arguments" + ] + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Run Project" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", + "" + ], + [ + "Packages/User/MSBuild.sublime-build", + "" + ], + [ + "Packages/User/MSBuild.sublime-build", + "MSBuild proj" + ], + [ + "Packages/User/MSBuild.sublime-build", + "MSBuild proj - DEBUG" + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 10.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 1.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 9.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 8.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 7.3)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 7.2)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 7.1)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 7.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 6.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 5.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 4.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 3.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 2.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build DLL" + ], + [ + "Packages/User/MSBuild.sublime-build", + "Run" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net New Console" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Run" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Watch" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Run Project" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Watch Project" + ], + [ + "Packages/User/MSBuild.sublime-build", + "Run with Test Arguments" + ] + ], + [ + "Packages/User/MSBuild.sublime-build", + "" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", + "" + ], + [ + "Packages/User/MSBuild.sublime-build", + "" + ], + [ + "Packages/User/MSBuild.sublime-build", + "MSBuild proj" + ], + [ + "Packages/User/MSBuild.sublime-build", + "MSBuild proj - DEBUG" + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 10.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 1.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 9.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 8.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 7.3)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 7.2)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 7.1)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 7.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 6.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 5.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 4.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 3.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build Exe & Run (C# 2.0)..." + ], + [ + "Packages/User/MSBuild.sublime-build", + "C# Build DLL" + ], + [ + "Packages/User/MSBuild.sublime-build", + "Run" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Runtimes List" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net SDK list" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net New Console" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net New Console" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Run" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Watch" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Run Project" + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net Watch Project" + ], + [ + "Packages/User/MSBuild.sublime-build", + "Run with Test Arguments" + ] + ], + [ + "Packages/User/MSBuild.sublime-build", + ".Net SDK list" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 -m coding]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 sys.path]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 Module Docs (64-bit)]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 build module]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 Install]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9]" + ], + [ + "Packages/User/Python.sublime-build", + "Syntax Check" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Default Console]" + ] + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.10.2 Install]" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 -m coding]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 sys.path]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 Module Docs]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 tokenize]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 AST]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 dis]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 build module]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 Install]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9]" + ], + [ + "Packages/User/Python.sublime-build", + "Syntax Check" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Default Console]" + ] + ], + [ + "Packages/User/Python.sublime-build", + "" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 -m coding]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 sys.path]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 Module Docs]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 tokenize]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 build module]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 Install]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9]" + ], + [ + "Packages/User/Python.sublime-build", + "Syntax Check" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Default Console]" + ] + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2]" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 -m coding]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 sys.path]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 Module Docs]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 tokenize]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 dis]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 build module]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 Install]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9]" + ], + [ + "Packages/User/Python.sublime-build", + "Syntax Check" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Default Console]" + ] + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 tokenize]" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/User/Node.sublime-build", + "" + ], + [ + "Packages/User/Node.sublime-build", + "Node ESM(.mjs)" + ], + [ + "Packages/User/Node.sublime-build", + "Deno Run" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript ts-node" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript Watch" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript => ES3" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript => ES5" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript => ES6" + ], + [ + "Packages/User/Node.sublime-build", + "ES6(ECMAScript 2015)" + ], + [ + "Packages/User/Node.sublime-build", + "ES5(ECMAScript 2009)" + ] + ], + [ + "Packages/User/Node.sublime-build", + "Deno Run" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/User/Python.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 -m coding]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 sys.path]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 Module Docs]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 tokenize]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 AST]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 dis]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 build module]" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 Install]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9]" + ], + [ + "Packages/User/Python.sublime-build", + "Syntax Check" + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Python v3.7.9 Console]" + ], + [ + "Packages/User/Python.sublime-build", + "Run [Default Console]" + ] + ], + [ + "Packages/User/Python.sublime-build", + "💛Run [Python v3.10.2]" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Git Origin URL" + ], + [ + "MD Git", + "Push" + ], + [ + "MD Git", + "Branch List" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "MD Git", + "git show" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/CMake.sublime-build", + "" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Sublime Text 2 - Ninja" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Visual Studio 16 2019" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Visual Studio 15 2017" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake Build Release" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake Build Debug" + ], + [ + "Packages/User/CMake.sublime-build", + "Memory Layout of Class (GCC)" + ], + [ + "Packages/User/CMake.sublime-build", + "Compile & Run (GCC Debug)" + ], + [ + "Packages/User/CMake.sublime-build", + "Compile & Run (GCC Release)" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make Win32" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make all" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make Clean" + ] + ], + [ + "MD Git", + "Git Origin URL" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Origin URL" + ], + [ + "MD Git", + "Branch List" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "MD Git", + "git show" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/CMake.sublime-build", + "" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Sublime Text 2 - Ninja" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Visual Studio 16 2019" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Visual Studio 15 2017" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake Build Release" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake Build Debug" + ], + [ + "Packages/User/CMake.sublime-build", + "Memory Layout of Class (GCC)" + ], + [ + "Packages/User/CMake.sublime-build", + "Compile & Run (GCC Debug)" + ], + [ + "Packages/User/CMake.sublime-build", + "Compile & Run (GCC Release)" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make Win32" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make all" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make Clean" + ] + ], + [ + "MD Git", + "git show" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Origin URL" + ], + [ + "MD Git", + "Branch List" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/CMake.sublime-build", + "" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Sublime Text 2 - Ninja" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Visual Studio 16 2019" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Visual Studio 15 2017" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake Build Release" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake Build Debug" + ], + [ + "Packages/User/CMake.sublime-build", + "Memory Layout of Class (GCC)" + ], + [ + "Packages/User/CMake.sublime-build", + "Compile & Run (GCC Debug)" + ], + [ + "Packages/User/CMake.sublime-build", + "Compile & Run (GCC Release)" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make Win32" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make all" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make Clean" + ] + ], + [ + "MD Git", + "Diff --cached" + ] + ], + [ + [ + [ + "MD Git", + "" + ], + [ + "MD Git", + "Origin URL" + ], + [ + "MD Git", + "Branch List remote" + ], + [ + "MD Git", + "Diff --cached" + ], + [ + "Packages/Flow/Flow.sublime-build", + "" + ], + [ + "Packages/User/CMake.sublime-build", + "" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Sublime Text 2 - Ninja" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Visual Studio 16 2019" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake - Visual Studio 15 2017" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake Build Release" + ], + [ + "Packages/User/CMake.sublime-build", + "CMake Build Debug" + ], + [ + "Packages/User/CMake.sublime-build", + "Memory Layout of Class (GCC)" + ], + [ + "Packages/User/CMake.sublime-build", + "Compile & Run (GCC Debug)" + ], + [ + "Packages/User/CMake.sublime-build", + "Compile & Run (GCC Release)" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make Win32" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make all" + ], + [ + "Packages/User/CMake.sublime-build", + "GNU Make Clean" + ] + ], + [ + "MD Git", + "" + ] + ], + [ + [ + [ + "Packages/C++/C Single File.sublime-build", + "" + ], + [ + "Packages/C++/C Single File.sublime-build", + "Run" + ], + [ + "Packages/User/Dart 2.2.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go install" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run with Test Arguments" + ], + [ + "Packages/User/php.sublime-build", + "" + ] + ], + [ + "Packages/C++/C Single File.sublime-build", + "" + ] + ], + [ + [ + [ + "Packages/C++/C++ Single File.sublime-build", + "" + ], + [ + "Packages/C++/C++ Single File.sublime-build", + "Run" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++11)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "Qt(-std=c++11)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "Qt(-std=c++11) Release" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "Qt(-std=c++0x)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "Qt(-std=c++98)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "Qt(-ansi)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "Qt(-std=c11)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "Qt(-std=c99)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "Qt(-std=c90)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "控制台中运行" + ], + [ + "Packages/User/Dart 2.2.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go install" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run with Test Arguments" + ], + [ + "Packages/User/php.sublime-build", + "" + ] + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++11)" + ] + ], + [ + [ + [ + "Packages/C++/C++ Single File.sublime-build", + "" + ], + [ + "Packages/C++/C++ Single File.sublime-build", + "Run" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++17)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++14)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++11)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++11) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++11) Release with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++0x) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++98) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-ansi) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c11) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c99) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c90) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "控制台中运行" + ] + ], + [ + "Packages/C++/C++ Single File.sublime-build", + "Run" + ] + ], + [ + [ + [ + "Packages/C++/C++ Single File.sublime-build", + "" + ], + [ + "Packages/C++/C++ Single File.sublime-build", + "Run" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++17)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++14)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++11)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++11) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++11) Release with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++0x) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++98) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-ansi) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c11) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c99) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c90) with ENV" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "控制台中运行" + ], + [ + "Packages/User/Dart 2.2.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go install" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run with Test Arguments" + ], + [ + "Packages/User/php.sublime-build", + "" + ] + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++11) with ENV" + ] + ], + [ + [ + [ + "Packages/C++/C++ Single File.sublime-build", + "" + ], + [ + "Packages/C++/C++ Single File.sublime-build", + "Run" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++17)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++14)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "(-std=c++11)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "Qt(-std=c++11)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "Qt(-std=c++11) Release" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "Qt(-std=c++0x)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "Qt(-std=c++98)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "Qt(-ansi)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "Qt(-std=c11)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "Qt(-std=c99)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "Qt(-std=c90)" + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "控制台中运行" + ], + [ + "Packages/User/Dart 2.2.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go install" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run with Test Arguments" + ], + [ + "Packages/User/php.sublime-build", + "" + ] + ], + [ + "Packages/User/C++ MinGW.sublime-build", + "" + ] + ], + [ + [ + [ + "Packages/C++/C++ Single File.sublime-build", + "" + ], + [ + "Packages/C++/C++ Single File.sublime-build", + "Run" + ], + [ + "Packages/User/Dart 2.2.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go install" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run with Test Arguments" + ], + [ + "Packages/User/php.sublime-build", + "" + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "" + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "编译再运行(-std=c++0x)" + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "编译再运行(-std=c++11)" + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "编译再运行(-std=c++11) Release" + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "编译再运行(-std=c++98)" + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "编译再运行(-ansi)" + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "编译再运行(-std=c11)" + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "编译再运行(-std=c99)" + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "编译再运行(-std=c90)" + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "控制台中运行" + ] + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "编译再运行(-std=c++11)" + ] + ], + [ + [ + [ + "Packages/C++/C++ Single File.sublime-build", + "" + ], + [ + "Packages/C++/C++ Single File.sublime-build", + "Run" + ], + [ + "Packages/User/Dart 2.2.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go install" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run with Test Arguments" + ], + [ + "Packages/User/php.sublime-build", + "" + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "" + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "编译再运行(-std=c++0x)" + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "编译再运行(-std=c++112)" + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "编译再运行(-std=c++11)" + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "编译再运行(-std=c++11) Release" + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "编译再运行(-std=c++98)" + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "编译再运行(-ansi)" + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "编译再运行(-std=c11)" + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "编译再运行(-std=c99)" + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "编译再运行(-std=c90)" + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "控制台中运行" + ] + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "编译再运行(-std=c++112)" + ] + ], + [ + [ + [ + "Packages/C++/C++ Single File.sublime-build", + "" + ], + [ + "Packages/C++/C++ Single File.sublime-build", + "Run" + ], + [ + "Packages/User/Dart 2.2.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go install" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run with Test Arguments" + ], + [ + "Packages/User/php.sublime-build", + "" + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "" + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "编译再运行(-std=c++11)" + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "编译再运行(-std=c++11) Release" + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "编译再运行(-std=c++98)" + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "编译再运行(-ansi)" + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "编译再运行(-std=c11)" + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "编译再运行(-std=c99)" + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "编译再运行(-std=c90)" + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "控制台中运行" + ] + ], + [ + "Packages/User/Qt+MinGW.sublime-build", + "编译再运行(-std=c++11)" + ] + ], + [ + [ + [ + "Packages/Lua/Lua.sublime-build", + "" + ], + [ + "Packages/User/Dart 2.2.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go install" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run with Test Arguments" + ], + [ + "Packages/User/php.sublime-build", + "" + ] + ], + [ + "Packages/Lua/Lua.sublime-build", + "" + ] + ], + [ + [ + [ + "Packages/MarkdownPreview/Markdown.sublime-build", + "" + ], + [ + "Packages/User/Dart 2.2.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go install" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run with Test Arguments" + ], + [ + "Packages/User/php.sublime-build", + "" + ] + ], + [ + "Packages/MarkdownPreview/Markdown.sublime-build", + "" + ] + ], + [ + [ + [ + "Packages/Python/Python.sublime-build", + "" + ], + [ + "Packages/Python/Python.sublime-build", + "Syntax Check" + ], + [ + "Packages/User/Dart 2.2.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go install" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run with Test Arguments" + ], + [ + "Packages/User/php.sublime-build", + "" + ] + ], + [ + "Packages/Python/Python.sublime-build", + "" + ] + ], + [ + [ + [ + "Packages/Python/Python.sublime-build", + "" + ], + [ + "Packages/Python/Python.sublime-build", + "Syntax Check" + ], + [ + "Packages/User/Dart 2.2.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go install" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run with Test Arguments" + ], + [ + "Packages/User/php.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "" + ], + [ + "Packages/User/Python.sublime-build", + "Run" + ] + ], + [ + "Packages/User/Python.sublime-build", + "" + ] + ], + [ + [ + [ + "Packages/Rust/Cargo.sublime-build", + "" + ], + [ + "Packages/Rust/Cargo.sublime-build", + "Run" + ], + [ + "Packages/Rust/Cargo.sublime-build", + "Test" + ], + [ + "Packages/Rust/Cargo.sublime-build", + "Bench" + ], + [ + "Packages/Rust/Cargo.sublime-build", + "Clean" + ], + [ + "Packages/Rust/Rust.sublime-build", + "" + ], + [ + "Packages/Rust/Rust.sublime-build", + "Run" + ], + [ + "Packages/Rust/Rust.sublime-build", + "Build & Run" + ], + [ + "Packages/User/Dart 2.2.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go install" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run with Test Arguments" + ], + [ + "Packages/User/php.sublime-build", + "" + ] + ], + [ + "Packages/Rust/Cargo.sublime-build", + "Run" + ] + ], + [ + [ + [ + "Packages/Sublime-Erlang/Erlang.sublime-build", + "" + ], + [ + "Packages/Sublime-Erlang/rebar.sublime-build", + "" + ], + [ + "Packages/Sublime-Erlang/rebar.sublime-build", + "Clean" + ], + [ + "Packages/Sublime-Erlang/rebar.sublime-build", + "Build with dependencies" + ], + [ + "Packages/Sublime-Erlang/rebar.sublime-build", + "Test (common_test)" + ], + [ + "Packages/Sublime-Erlang/rebar.sublime-build", + "Test (eunit)" + ], + [ + "Packages/Sublime-Erlang/rebar.sublime-build", + "Test Current Module (eunit)" + ], + [ + "Packages/Sublime-Erlang/rebar.sublime-build", + "Generate Documentation" + ], + [ + "Packages/Sublime-Erlang/rebar.sublime-build", + "Update Dependencies" + ], + [ + "Packages/User/Dart 2.2.sublime-build", + "" + ], + [ + "Packages/User/erlang.sublime-build", + "" + ], + [ + "Packages/User/erlang.sublime-build", + "Run ..." + ], + [ + "Packages/User/GoLang.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go install" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run with Test Arguments" + ], + [ + "Packages/User/php.sublime-build", + "" + ] + ], + [ + "Packages/User/erlang.sublime-build", + "Run ..." + ] + ], + [ + [ + [ + "Packages/Sublime-Erlang/Erlang.sublime-build", + "" + ], + [ + "Packages/Sublime-Erlang/rebar.sublime-build", + "" + ], + [ + "Packages/Sublime-Erlang/rebar.sublime-build", + "Clean" + ], + [ + "Packages/Sublime-Erlang/rebar.sublime-build", + "Build with dependencies" + ], + [ + "Packages/Sublime-Erlang/rebar.sublime-build", + "Test (common_test)" + ], + [ + "Packages/Sublime-Erlang/rebar.sublime-build", + "Test (eunit)" + ], + [ + "Packages/Sublime-Erlang/rebar.sublime-build", + "Test Current Module (eunit)" + ], + [ + "Packages/Sublime-Erlang/rebar.sublime-build", + "Generate Documentation" + ], + [ + "Packages/Sublime-Erlang/rebar.sublime-build", + "Update Dependencies" + ], + [ + "Packages/User/Dart 2.2.sublime-build", + "" + ], + [ + "Packages/User/erlang.sublime-build", + "" + ], + [ + "Packages/User/erlang.sublime-build", + "Run ..." + ], + [ + "Packages/User/erlang.sublime-build", + "Run escript ..." + ], + [ + "Packages/User/GoLang.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go install" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run with Test Arguments" + ], + [ + "Packages/User/php.sublime-build", + "" + ] + ], + [ + "Packages/User/erlang.sublime-build", + "Run ..." + ] + ], + [ + [ + [ + "Packages/TypeScript/TypeScript.sublime-build", + "" + ], + [ + "Packages/User/Dart 2.2.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go install" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run with Test Arguments" + ], + [ + "Packages/User/Node.sublime-build", + "" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript[ts-node]" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript ES3)" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript ES5)" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript ES6)" + ], + [ + "Packages/User/Node.sublime-build", + "ES6(ECMAScript 2015)" + ], + [ + "Packages/User/Node.sublime-build", + "ES5(ECMAScript 2009)" + ], + [ + "Packages/User/php.sublime-build", + "" + ] + ], + [ + "Packages/TypeScript/TypeScript.sublime-build", + "" + ] + ], + [ + [ + [ + "Packages/TypeScript/TypeScript.sublime-build", + "" + ], + [ + "Packages/User/Dart 2.2.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go install" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run with Test Arguments" + ], + [ + "Packages/User/php.sublime-build", + "" + ] + ], + [ + "Packages/TypeScript/TypeScript.sublime-build", + "" + ] + ], + [ + [ + [ + "Packages/User/C#.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe" + ], + [ + "Packages/User/C#.sublime-build", + "Build DLL" + ], + [ + "Packages/User/C#.sublime-build", + "Run" + ], + [ + "Packages/User/C#.sublime-build", + "Run with Test Arguments" + ], + [ + "Packages/User/Dart 2.2.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go install" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run with Test Arguments" + ], + [ + "Packages/User/php.sublime-build", + "" + ] + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe" + ] + ], + [ + [ + [ + "Packages/User/C#.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run ..." + ], + [ + "Packages/User/C#.sublime-build", + "Build DLL" + ], + [ + "Packages/User/C#.sublime-build", + "Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net New" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run Project" + ], + [ + "Packages/User/C#.sublime-build", + "Run with Test Arguments" + ], + [ + "Packages/User/Dart 2.2.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go install" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run with Test Arguments" + ], + [ + "Packages/User/php.sublime-build", + "" + ] + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run ..." + ] + ], + [ + [ + [ + "Packages/User/C#.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run ..." + ], + [ + "Packages/User/C#.sublime-build", + "Build DLL" + ], + [ + "Packages/User/C#.sublime-build", + "Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net New" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Watch" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run Project" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Watch Project" + ], + [ + "Packages/User/C#.sublime-build", + "Run with Test Arguments" + ], + [ + "Packages/User/Dart 2.2.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go install" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run with Test Arguments" + ], + [ + "Packages/User/php.sublime-build", + "" + ] + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run ..." + ] + ], + [ + [ + [ + "Packages/User/C#.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run ..." + ], + [ + "Packages/User/C#.sublime-build", + "Build DLL" + ], + [ + "Packages/User/C#.sublime-build", + "Run" + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run" + ], + [ + "Packages/User/C#.sublime-build", + "Run with Test Arguments" + ], + [ + "Packages/User/Dart 2.2.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go install" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run with Test Arguments" + ], + [ + "Packages/User/php.sublime-build", + "" + ] + ], + [ + "Packages/User/C#.sublime-build", + ".Net Run" + ] + ], + [ + [ + [ + "Packages/User/C#.sublime-build", + "" + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run ..." + ], + [ + "Packages/User/C#.sublime-build", + "Build DLL" + ], + [ + "Packages/User/C#.sublime-build", + "Run" + ], + [ + "Packages/User/C#.sublime-build", + "Run with Test Arguments" + ], + [ + "Packages/User/Dart 2.2.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go install" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run with Test Arguments" + ], + [ + "Packages/User/php.sublime-build", + "" + ] + ], + [ + "Packages/User/C#.sublime-build", + "Build Exe & Run ..." + ] + ], + [ + [ + [ + "Packages/User/Dart 2.2.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go install" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run with Test Arguments" + ], + [ + "Packages/User/Node.sublime-build", + "" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript[ts-node]" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript ES3)" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript ES5)" + ], + [ + "Packages/User/Node.sublime-build", + "TypeScript ES6)" + ], + [ + "Packages/User/Node.sublime-build", + "ES6(ECMAScript 2015)" + ], + [ + "Packages/User/Node.sublime-build", + "ES5(ECMAScript 2009)" + ], + [ + "Packages/User/php.sublime-build", + "" + ] + ], + [ + "Packages/User/Node.sublime-build", + "" + ] + ], + [ + [ + [ + "Packages/User/Dart 2.2.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go install" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run with Test Arguments" + ], + [ + "Packages/User/php.sublime-build", + "" + ] + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run" + ] + ], + [ + [ + [ + "Packages/User/Dart 2.2.sublime-build", + "" + ], + [ + "Packages/User/erlang.sublime-build", + "" + ], + [ + "Packages/User/erlang.sublime-build", + "Run ..." + ], + [ + "Packages/User/GoLang.sublime-build", + "" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go build Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release Window GUI App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go Release App" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go install" + ], + [ + "Packages/User/GoLang.sublime-build", + "Go run with Test Arguments" + ], + [ + "Packages/User/php.sublime-build", + "" + ] + ], + [ + "Packages/User/erlang.sublime-build", + "Run ..." + ] + ] + ], + "build_varint": "", + "command_palette": + { + "height": 0.0, + "last_filter": "", + "selected_items": + [ + [ + "git pu", + "Git: Push Current Branch" + ], + [ + "git add", + "Git: Add All" + ], + [ + "save", + "Project: Save As" + ], + [ + "edi", + "Project: Edit Project" + ], + [ + "push", + "Git: Push Current Branch" + ], + [ + "com", + "Git: Commit" + ], + [ + "add", + "Git: Add All" + ], + [ + "jon snip", + "Snippet: json - Snippet" + ], + [ + "mark", + "Set Syntax: Markdown" + ], + [ + "json", + "Set Syntax: JSON" + ], + [ + "commit", + "Git: Commit" + ], + [ + "comm", + "Git: Commit" + ], + [ + "lsp:", + "LSP: Disable Language Server Globally" + ], + [ + "scope", + "Snippet: scope - Scope test Snippet" + ], + [ + "lsp", + "Preferences: LSP Settings" + ], + [ + "cpp", + "Snippet: cpp - Snippet" + ], + [ + "syntax ", + "Set Syntax: C++" + ], + [ + "rename", + "Rename File" + ], + [ + "gui snip", + "Snippet: guile - Snippet" + ], + [ + "git push", + "Git: Push Current Branch" + ], + [ + "markdown", + "Set Syntax: Markdown" + ], + [ + "gu", + "Snippet: guile - Snippet" + ], + [ + "make", + "Snippet: makefile - Snippet" + ], + [ + "package", + "Package Control: Enable Package" + ], + [ + "guile", + "Snippet: guile - Snippet" + ], + [ + "ren", + "Rename File" + ], + [ + "perl", + "Snippet: perl - Snippet" + ], + [ + "makefi", + "Set Syntax: Makefile" + ], + [ + "code", + "Snippet: Code - ZenCode block Snippet" + ], + [ + "ori", + "Preferences: Origami Settings" + ], + [ + "bash", + "Set Syntax: Bash" + ], + [ + "git comm", + "Git: Commit" + ], + [ + "gita", + "Git: Add All" + ], + [ + "History", + "History: Toggle Inline Diff" + ], + [ + "key", + "Preferences: Key Bindings" + ], + [ + "git com", + "Git: Commit" + ], + [ + "git ad", + "Git: Add All" + ], + [ + "min", + "View: Toggle Minimap" + ], + [ + "origam", + "Preferences: Origami Settings" + ], + [ + "origa", + "Preferences: Origami Settings" + ], + [ + "pack", + "Package Control: Enable Package" + ], + [ + "origami setting", + "Preferences: Origami Settings" + ], + [ + "setting", + "Preferences: Settings" + ], + [ + "cod", + "Snippet: Code - ZenCode block Snippet" + ], + [ + "lsp ", + "LSP: Disable Language Server Globally" + ], + [ + "git", + "Git: Commit" + ], + [ + "git a", + "Git: Add All" + ], + [ + "rena", + "Rename File" + ], + [ + "git:", + "Git: Push" + ], + [ + "gits", + "Git: Status" + ], + [ + "py", + "Snippet: Py - ZenCode block Snippet" + ], + [ + "git stat", + "Git: Status" + ], + [ + "m", + "Set Syntax: Markdown" + ], + [ + "marK", + "Set Syntax: Markdown" + ], + [ + "envi", + "Table Editor: Enable for current view" + ], + [ + "lua", + "Set Syntax: Lua" + ], + [ + "pcep", + "Package Control: Enable Package" + ], + [ + "dis", + "Package Control: Disable Package" + ], + [ + "LSP log", + "LSP: Toggle Log Panel" + ], + [ + "enab", + "Table Editor: Enable for current view" + ], + [ + "LSP", + "LSP: Troubleshoot Server" + ], + [ + "LSP pow", + "Preferences: LSP-PowerShellEditorServices Settings" + ], + [ + "LSP:", + "LSP: Troubleshoot Server" + ], + [ + "LSP: ", + "LSP: Troubleshoot Server" + ], + [ + "lsp: ", + "LSP: Enable Language Server in Project" + ], + [ + "LSP Power", + "Preferences: LSP-PowerShellEditorServices Settings" + ], + [ + "j", + "Set Syntax: JavaScript" + ], + [ + "html ", + "Set Syntax: HTML" + ], + [ + "palin", + "Set Syntax: Plain Text" + ], + [ + "lsp py", + "Preferences: LSP-pylsp Settings" + ], + [ + "pci", + "Package Control: Install Package" + ], + [ + "envie", + "Table Editor: Enable for current view" + ], + [ + "text", + "Set Syntax: Plain Text" + ], + [ + "git log", + "Git: Log All" + ], + [ + "git ", + "Git: Graph All" + ], + [ + "git show ", + "Git: Show Commit By Hash" + ], + [ + "git status", + "Git: Status" + ], + [ + "status", + "Git: Status" + ], + [ + "ev", + "Table Editor: Enable for current view" + ], + [ + "sort", + "Sort Lines" + ], + [ + "pcip", + "Package Control: Install Package" + ], + [ + "ad", + "Git: Add All" + ], + [ + "disable", + "Package Control: Disable Package" + ], + [ + "enablepa", + "Package Control: Enable Package" + ], + [ + "hex", + "HexViewer: Toggle Hex View" + ], + [ + "pw", + "Preferences: Browse Packages" + ], + [ + "edit", + "Project: Edit Project" + ], + [ + "scopt", + "Snippet: scope - Scope test Snippet" + ], + [ + "Package", + "Package Control: Advanced Install Package" + ], + [ + "ins", + "Package Control: Install Package" + ], + [ + "enable p", + "Package Control: Enable Package" + ], + [ + "renam", + "Rename File" + ], + [ + "upg", + "Package Control: Upgrade Package" + ], + [ + "remove", + "Package Control: Remove Package" + ], + [ + "Install Package", + "Package Control: Install Package" + ], + [ + "Add Repository", + "Package Control: Add Repository" + ], + [ + "insta", + "Package Control: Install Package" + ], + [ + "remov", + "Package Control: Remove Package" + ], + [ + "disa", + "Package Control: Disable Package" + ], + [ + "sco", + "Snippet: scope - Scope test Snippet" + ], + [ + "pow", + "Set Syntax: PowerShell" + ], + [ + "enable ", + "Package Control: Enable Package" + ], + [ + "enable", + "Table Editor: Enable for current view" + ], + [ + "env", + "Table Editor: Enable for current view" + ], + [ + "ed", + "Project: Edit Project" + ], + [ + "install", + "Package Control: Install Package" + ], + [ + "c", + "Git: Commit" + ], + [ + "previe", + "Markdown Preview: Preview in Browser" + ], + [ + "editserver", + "SFTP: Edit Server…" + ], + [ + "sftp", + "SFTP: Browse Server…" + ], + [ + "ftpremot", + "SFTP: Browse Remote…" + ], + [ + "pus", + "Git: Push Current Branch" + ], + [ + "c++", + "Set Syntax: C++" + ], + [ + "syntaxcpp", + "Set Syntax: TypeScript" + ], + [ + "update pack", + "Package Control: Upgrade/Overwrite All Packages" + ], + [ + "plug", + "Plugin Development: Profile Events" + ], + [ + "add folder", + "Project: Add Folder" + ], + [ + "xml", + "Set Syntax: XML" + ], + [ + "ms", + "Set Syntax: MSBuild" + ], + [ + "mar", + "Set Syntax: Markdown" + ], + [ + "rst", + "Set Syntax: reStructuredText" + ], + [ + "sh", + "Set Syntax: CMake C Header" + ], + [ + "antlr", + "Set Syntax: Antlr" + ], + [ + "markdwn", + "Set Syntax: Markdown" + ], + [ + "instac", + "Package Control: Install Package" + ], + [ + "permute", + "Permute Lines: Unique" + ], + [ + "cma", + "Set Syntax: CMake" + ], + [ + "msbuild", + "Set Syntax: MSBuild" + ] + ], + "width": 0.0 + }, + "console": + { + "height": 164.0, + "history": + [ + "(1,2).__class__", + "(1,2).className", + "(1,2).class", + "type (1,2)", + "typeof (1,2)", + "(1,2)", + "typeof", + "'\\x53'", + "'\\0x53'", + "'0x53'", + "0x53", + "\"ABCD\".rfind(\"Ad\")", + "\"ABCD\".rfind(\"A\")", + "\"ABCD\".rfind", + "\"ABCD\".find", + "\"ABCD\".lfind", + "\"ABCD\".serach", + "import re; re.sub(r'[-_#]',lambda x: '=',\"12345#-——_$%^\")", + "import re; re.sub(r'[\\\\#-_]',lambda x: '=',\"12345#-——_$%^\")", + "import re; re.sub(r'[\\#-_]',lambda x: '=',\"12345#-——_$%^\")", + "import re; re.sub(r'[#-_]',lambda x: '=',\"12345#-——_$%^\")", + "import re; re.sub(r'[#-_]',lambda x: ' ',\"12345#-——_$%^\")", + "import re; re.sub(r'[-_]',lambda x: '=',\"12345#-——_$%^\")", + "import re; re.sub(r'[#-_]',lambda x: '=',\"12345#-——_$%^\")", + "import re; re.sub(r'[#-_]',' ',\"12345#-——_$%^\")", + "import re; re.replace(\"12345#-——_$%^\",r'[#-_]',' ')", + "\"12345#-——_$%^\".replace(r'#',' ')", + "\"12345#-——_$%^\".replace(r'[#-_]',' ')", + "\"12345#-——_$%^\".replace('[#-_]',' ')", + "\"12345#-——_$%^\".replace('[#$%-_]',' ')", + "\"12345#-——_$%^\".replace('[#$%-_\\\\^&*()~@!{}\\\\/]',' ')", + "\"12345#-——_$%^\".replace('[#$%-_\\^&*()~@!{}\\\\/]',' ')", + "\"12345#-——_$%^\".replace('[#$%-_^&*()~@!{}\\\\/]',' ')", + "\"12345\"[1:]", + "not 1 or 1", + "not 1 or 0", + "isinstance(b\"a\", bytes)", + "type(b\"a\")", + "b\"ABC\".decode", + "\"ABC\".decode", + "a.a", + "a and \"BCA\"", + "a=0", + "a and \"ABC\"", + "a = 1", + "hasattr(map,'ac')", + "map['ac']", + "map['a']", + "map.a", + "for it in map: print(it)", + "map = {\"a\":1, \"b\":2}", + "map = {a:1, b:2}", + "for it in range(0,2): print(it)", + "for it in range(0,2): it", + "range(0,2)", + "0..2", + "du > datetime.timedelta(microseconds=300)", + "du", + "du = datetime.datetime.now() - dt", + "du", + "du > datetime.timedelta(microseconds=300)", + "datetime.timedelta(microseconds=300)", + "datetime.timedelta(10)", + "datetime.timedelta", + "du.total_seconds()", + "dir(du)", + "type(du)", + "du.type()", + "du.microseconds", + "du", + "du = dt - datetime.datetime.now()", + "du", + "du = dt - datetime.datetime.now()", + "dt - datetime.datetime.now()", + "dt", + "dt = datetime.datetime.now()", + "datetime.datetime.now()", + "dir(datetime.datetime.now)", + "dir(datetime.datetime)", + "dir(datetime.date)", + "datetime.date.now", + "datetime.time.now", + "datetime.time", + "dir(datetime)", + "datetime.now", + "datetime", + "import datetime", + "datetime", + "1 != 2", + "1 != 1", + "1 <> 1", + "[(1,2),(3,4),(5,6)][2] == ((3,4))", + "[(1,2),(3,4),(5,6)][1] == ((3,4))", + "[(1,2),(3,4),(5,6)].index((3,4))", + "[(1,2),(3,4),(5,6)].find((3,4))", + "((1,2),(3,4),(5,6)).find((3,4))", + "((1,2),(3,4),(5,6).find((3,4))", + "9 < 10 < 10 ", + "9 < 10 < 11 ", + "10 between (9,11)", + "not isinstance(\"AB\",str)", + "isinstance(\"AB\",str)", + "\"123456\"[-20]", + "\"123456\"[-2]", + "sublime.dctxmenu_temp_data_test = \"ABC\"", + "sublime.dctxmenu_temp_data", + "os.path.isfile(\"c:/codin\")", + "os.path.isfile(\"c:/coding\")", + "os.path.isfile", + "os.path.exists(\"c:/coding\")", + "os.path.exists(\"c:/md\")", + "os.path.exists", + "os.path", + "os", + "import io.path", + "import path", + "\"1 - 2\".split(' - ')", + "\"1 - 2\".split", + "\"1234\".rfind(\"5\")", + "\"1234\".rfind(\"1\")", + "\"1234\".rfind", + "\"1234\".left", + "\"1234\".indexof", + "int(\"1\")", + "int(\"1 ad\")", + "len((1,2,3))", + "sublime.active_window().active_view()", + "sublime.active_window()" + ] + }, + "distraction_free": + { + "menu_visible": true, + "show_minimap": false, + "show_open_files": false, + "show_tabs": false, + "side_bar_visible": false, + "status_bar_visible": false + }, + "expanded_folders": + [ + "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/Packages/Origami_PR" + ], + "file_history": + [ + "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/Packages/Origami_PR/README.md", + "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/Packages/Origami_PR/Origami.sublime-project", + "/C/download/pl/make-4.3/src/guile.c", + "/C/download/pl/make-4.4/src/job.c", + "/C/download/pl/guile-3.0.9/libguile/load.c", + "/C/coding/md-code/erlang/port/hi.scm", + "/C/coding/md-code/erlang/port/EMakefile", + "/C/dl/pl/guile-3.0.9/Makefile", + "/C/coding/md-code/erlang/port/Makefile", + "/C/coding/md/opendocs/guile.r5rs.info.md", + "/C/coding/md/opendocs/guile.info.3.0.9.md", + "/C/coding/md/opendocs/make.info.4.4.md", + "/C/coding/md/opendocs/lisp.md", + "/C/coding/md/opendocs/Makefile.md", + "/C/coding/md/opendocs/cpl.md", + "/C/coding/md/opendocs/bash.5.1.md", + "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/Packages/User/json.sublime-snippet", + "/C/coding/md/opendocs/readme.md", + "/C/coding/md/opendocs/TS.md", + "/C/dl/pl/guile-3.0.9/libguile/Makefile", + "/C/dl/pl/hyperpolyglot.org_shell.html", + "/C/download/pl/guile-3.0.9/examples/sym.md", + "/C/download/pl/guile-3.0.9/NEWS", + "/C/download/pl/guile-3.0.9/module/ice-9/boot-9.scm", + "/C/download/pl/guile-3.0.9/doc/ref/api-evaluation.texi", + "/C/download/pl/make-4.4/src/output.c", + "/C/download/pl/make-4.4/src/signame.c", + "/C/download/pl/make-4.4/src/gmk-default.scm", + "/C/download/pl/guile-3.0.9/examples/flags.md", + "/C/download/pl/make-4.4/src/gmk-default.h", + "/C/download/pl/make-4.4/src/gnumake.h", + "/C/download/pl/make-4.4/src/loadapi.c", + "/C/download/pl/make-4.4/build_w32.bat", + "/C/vcpkg/mingw.bat", + "/C/mingw/include/guile/3.0/libguile/eval.h", + "/C/mingw/include/guile/3.0/readline.h", + "/C/mingw/include/guile/3.0/libguile.h", + "/C/download/pl/guile-3.0.9/examples/Makefile.am", + "/C/download/pl/guile-3.0.9/libguile.h", + "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/Packages/User/cpp.sublime-snippet", + "/C/download/pl/make-4.4/Makefile", + "/C/download/pl/make-4.4/configure", + "/C/download/pl/guile-3.0.9/doc/ref/tour.texi", + "/C/download/pl/make-4.4/configure.ac", + "/C/download/pl/guile-3.0.9/libguile/numbers.h", + "/C/download/pl/make-4.4/src/makeint.h", + "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/Packages/User/cpp-template.sublime-snippet", + "/C/coding/md/opendocs/ps.md", + "/C/coding/md-code/erlang/port/port_test.erl", + "/C/download/pl/make-4.4/lib/Makefile.am", + "/C/download/pl/guile-3.0.9/guile-readline/ice-9/readline.scm", + "/C/download/pl/guile-3.0.9/prebuilt/32-bit-big-endian/ice-9/psyntax-pp.go", + "/C/download/pl/guile-3.0.9/doc/ref/guile.info-11", + "/C/download/pl/guile-3.0.9/doc/ref/guile.info-9", + "/C/download/pl/guile-3.0.9/doc/ref/guile.info-10", + "/C/download/pl/guile-3.0.9/doc/ref/guile.info-8", + "/C/download/pl/guile-3.0.9/doc/ref/guile.info-7", + "/C/download/pl/guile-3.0.9/doc/ref/guile.info-6", + "/C/download/pl/guile-3.0.9/doc/ref/guile.info-5", + "/C/download/pl/guile-3.0.9/doc/ref/guile.info-4", + "/C/download/pl/guile-3.0.9/doc/ref/guile.info-3", + "/C/download/pl/guile-3.0.9/doc/ref/guile.info-2", + "/C/download/pl/guile-3.0.9/doc/ref/guile.info-1", + "/C/vcpkg/downloads/tools/msys2/msys64/etc/pacman.conf", + "/C/vcpkg/downloads/tools/msys2/msys64/etc/pacman.d/mirrorlist.mingw64", + "/C/vcpkg/downloads/tools/msys2/msys64/usr/lib/guile/3.0/ccache/texinfo.go", + "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/Packages/User/guile.sublime-snippet", + "/C/download/pl/make-4.4/ChangeLog", + "/C/download/pl/make-4.3/tests/scripts/features/jobserver", + "/C/download/pl/make-4.3/build_w32.bat", + "/C/coding/md-code/erlang/port/ModuleA/Makefile", + "/C/coding/md-code/erlang/port/ModuleBMakefile", + "/C/coding/md-code/erlang/port/foo.mk", + "/C/coding/md-code/erlang/port/makefile.mk", + "/C/Python310/Python-3.10.2/Tools/peg_generator/pegen/parser_generator.py", + "/C/download/pl/make-4.3/tests/scripts/features/parallelism", + "/C/download/pl/make-4.4/doc/make.info-3", + "/C/download/pl/make-4.4/doc/make.info-2", + "/C/download/pl/make-4.3/doc/make.info.md", + "/C/nvm/node_modules/watch/cli.js", + "/C/nvm/node_modules/watch/main.js", + "/C/nodejs/node_modules/.bin/watch.cmd", + "/C/dl/VJBkJR4WXye.m3u8", + "/C/coding/md-code/erlang/port/port.h", + "/C/coding/md-code/erlang/port/port.c", + "/C/coding/md-code/erlang/port/makedebug.md", + "/C/coding/md-code/erlang/port/implicit.md", + "/C/download/pl/make-4.3/tests/scripts/variables/MAKE_RESTARTS", + "/C/coding/md-code/erlang/port/watchit.bat", + "/C/coding/md-code/erlang/port/Makefile.mk", + "/C/coding/md-code/erlang/port/some.pl", + "/C/download/pl/make-4.3/tests/run_make_tests.pl", + "/C/download/pl/make-4.3/tests/test_driver.pl", + "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/Packages/User/perl.sublime-snippet", + "/C/download/pl/make-4.3/tests/scripts/options/symlinks", + "/C/download/pl/make-4.3/tests/scripts/features/patspecific_vars", + "/C/download/pl/make-4.3/tests/scripts/features/conditionals", + "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/Packages/RunSnippet/material/Programming-in-Lua.md", + "/C/download/pl/make-4.3/tests/scripts/test_template", + "/C/download/pl/make-4.3/Basic.mk", + "/C/download/pl/make-4.3/tests/run_make_tests.bat", + "/C/download/pl/make-4.3/doc/make.texi", + "/C/download/pl/make-4.3/ChangeLog", + "/C/download/pl/make-4.3/NEWS", + "/C/download/pl/make-4.3/doc/make.info-2", + "/C/download/pl/make-4.3/doc/make.info-1", + "/C/download/pl/make-4.3/README", + "/C/download/pl/make-4.3/README.W32", + "/C/download/pl/make-4.3/Makefile", + "/C/download/pl/make-4.3/tests/README", + "/C/coding/md-code/erlang/port/ebin/Makefile", + "/C/coding/md-code/erlang/port/index.html", + "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/Packages/User/py.sublime-snippet", + "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/Packages/User/makefile.sublime-snippet", + "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/Packages/User/code.sublime-snippet", + "/C/coding/md-code/erlang/port/Makefile.sh", + "/C/coding/md-code/erlang/port/Makefile.echo", + "/C/coding/md-code/erlang/port/Makefile.txt", + "/C/coding/md-code/erlang/port/ei.erl", + "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/unpacked/Origami/origami.py", + "/C/coding/md-code/erlang/port/foobar", + "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/unpacked/Origami/test.py", + "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/Packages/RunSnippet/ColumnsOps.py", + "/C/coding/md/opendocs/Python.md", + "/C/coding/md-code/coding/__main__.py", + "/C/Python310/Python-3.10.2/Doc/tutorial/inputoutput.rst", + "/C/coding/md-code/coding/coding.lua", + "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/Packages/RunSnippet/UnicodeSymbols.py" + ], + "find": + { + "height": 27.0 + }, + "find_in_files": + { + "height": 104.0, + "where_history": + [ + ] + }, + "find_state": + { + "case_sensitive": false, + "find_history": + [ + "fraction_verticcal", + "height", + "fraction" + ], + "highlight": false, + "in_selection": false, + "preserve_case": false, + "regex": false, + "replace_history": + [ + ], + "reverse": false, + "scrollbar_highlights": true, + "show_context": true, + "use_buffer2": true, + "use_gitignore": true, + "whole_word": false, + "wrap": true + }, + "groups": + [ + { + "sheets": + [ + { + "buffer": 0, + "file": "origami.py", + "semi_transient": false, + "settings": + { + "buffer_size": 30916, + "regions": + { + }, + "selection": + [ + [ + 12252, + 12252 + ] + ], + "settings": + { + "incomplete_sync": null, + "lsp_uri": "file:///C:/Users/OCEAN/AppData/Roaming/Sublime%20Text%203/Packages/Origami_PR/origami.py", + "origin_encoding": "ASCII", + "remote_loading": false, + "synced": false, + "syntax": "Packages/Python/Python.sublime-syntax", + "tab_size": 4, + "translate_tabs_to_spaces": true + }, + "translation.x": 0.0, + "translation.y": 5621.0, + "zoom_level": 1.0 + }, + "stack_index": 1, + "stack_multiselect": false, + "type": "text" + }, + { + "buffer": 1, + "file": ".git/config", + "selected": true, + "semi_transient": false, + "settings": + { + "buffer_size": 391, + "regions": + { + }, + "selection": + [ + [ + 283, + 283 + ] + ], + "settings": + { + "incomplete_sync": null, + "lsp_uri": "file:///C:/Users/OCEAN/AppData/Roaming/Sublime%20Text%203/Packages/Origami_PR/.git/config", + "origin_encoding": "ASCII", + "remote_loading": false, + "synced": false, + "syntax": "Packages/Git Formats/Git Config.sublime-syntax", + "tab_size": 4, + "translate_tabs_to_spaces": false + }, + "translation.x": 0.0, + "translation.y": 0.0, + "zoom_level": 1.0 + }, + "stack_index": 0, + "stack_multiselect": false, + "type": "text" + }, + { + "buffer": 2, + "file": "Origami_PR.sublime-project", + "semi_transient": false, + "settings": + { + "buffer_size": 46, + "regions": + { + }, + "selection": + [ + [ + 4, + 4 + ] + ], + "settings": + { + "incomplete_sync": null, + "lsp_uri": "file:///C:/Users/OCEAN/AppData/Roaming/Sublime%20Text%203/Packages/Origami_PR/Origami_PR.sublime-project", + "origin_encoding": "ASCII", + "remote_loading": false, + "synced": false, + "syntax": "Packages/JSON/JSON.sublime-syntax", + "tab_size": 4, + "translate_tabs_to_spaces": false + }, + "translation.x": 0.0, + "translation.y": 0.0, + "zoom_level": 1.0 + }, + "stack_index": 2, + "stack_multiselect": false, + "type": "text" + } + ] + }, + { + "sheets": + [ + { + "buffer": 3, + "file": "README.md", + "selected": true, + "semi_transient": false, + "settings": + { + "buffer_size": 4495, + "regions": + { + }, + "selection": + [ + [ + 913, + 940 + ] + ], + "settings": + { + "auto_complete_triggers": + [ + { + "characters": "<", + "selector": "text.html, text.xml" + }, + { + "rhs_empty": true, + "selector": "punctuation.accessor" + } + ], + "incomplete_sync": null, + "lsp_uri": "file:///C:/Users/OCEAN/AppData/Roaming/Sublime%20Text%203/Packages/Origami_PR/README.md", + "remote_loading": false, + "sftp_duplicate_views": 1, + "synced": false, + "syntax": "Packages/Markdown/Markdown.sublime-syntax" + }, + "translation.x": 0.0, + "translation.y": 0.0, + "zoom_level": 1.0 + }, + "stack_index": 0, + "stack_multiselect": false, + "type": "text" + } + ] + }, + { + "sheets": + [ + { + "buffer": 4, + "semi_transient": false, + "settings": + { + "buffer_size": 0, + "regions": + { + }, + "selection": + [ + [ + 0, + 0 + ] + ], + "settings": + { + "incomplete_sync": null, + "lsp_uri": "buffer://sublime/355", + "remote_loading": false, + "synced": false, + "syntax": "Packages/Text/Plain text.tmLanguage" + }, + "translation.x": 0.0, + "translation.y": 0.0, + "zoom_level": 1.0 + }, + "stack_index": 1, + "stack_multiselect": false, + "type": "text" + }, + { + "buffer": 5, + "selected": true, + "semi_transient": false, + "settings": + { + "buffer_size": 377, + "regions": + { + }, + "selection": + [ + [ + 377, + 377 + ] + ], + "settings": + { + "__vi_external_disable": true, + "auto_complete": false, + "auto_complete_commit_on_tab": false, + "bracket_highlighter.clone_locations": + { + }, + "bracket_highlighter.ignore": true, + "color_scheme": "Terminus.hidden-color-scheme", + "draw_centered": false, + "draw_indent_guides": false, + "draw_unicode_white_space": false, + "draw_white_space": "none", + "gutter": false, + "highlight_line": false, + "incomplete_sync": null, + "is_widget": true, + "lsp_uri": "buffer://sublime/363", + "result_base_dir": "C:\\Users\\OCEAN\\AppData\\Roaming\\Sublime Text 3\\unpacked\\Origami", + "result_file_regex": null, + "result_line_regex": null, + "rulers": + [ + 80, + 500 + ], + "scroll_past_end": true, + "syntax": "Packages/Text/Plain text.tmLanguage", + "terminus.highlight_counter": 573, + "terminus_view": true, + "terminus_view.args": + { + "auto_close": true, + "cancellable": false, + "cmd": + [ + "powershell.exe" + ], + "cwd": "C:\\Users\\OCEAN\\AppData\\Roaming\\Sublime Text 3\\unpacked\\Origami", + "default_title": "PowerShell", + "env": + { + "TERMINUS_SUBLIME": "1", + "TERM_PROGRAM": "Terminus-Sublime" + }, + "file_regex": null, + "line_regex": null, + "panel_name": "Terminus", + "show_in_panel": null, + "tag": null, + "timeit": false, + "title": null + }, + "terminus_view.cancellable": false, + "terminus_view.key.ctrl+k": true, + "terminus_view.key.ctrl+p": true, + "terminus_view.natural_keyboard": true, + "terminus_view.tag": null, + "terminus_view.viewport_y": 2.0, + "word_wrap": false + }, + "translation.x": 0.0, + "translation.y": 2.0, + "zoom_level": 1.0 + }, + "stack_index": 0, + "stack_multiselect": false, + "type": "text" + } + ] + } + ], + "incremental_find": + { + "height": 27.0 + }, + "input": + { + "height": 153.0 + }, + "layout": + { + "cells": + [ + [ + 0, + 0, + 1, + 2 + ], + [ + 1, + 0, + 2, + 1 + ], + [ + 1, + 1, + 2, + 2 + ] + ], + "cols": + [ + 0.0, + 0.55, + 1.0 + ], + "rows": + [ + 0.0, + 0.65, + 1.0 + ] + }, + "menu_visible": true, + "output.9o://9o": + { + "height": 109.0 + }, + "output.GoSublime-output": + { + "height": 97.0 + }, + "output.GoSublime/HUD": + { + "height": 0.0 + }, + "output.LSP Log Panel": + { + "height": 132.0 + }, + "output.MarGo-output": + { + "height": 97.0 + }, + "output.SFTP": + { + "height": 206.0 + }, + "output.TestPlugin": + { + "height": 102.0 + }, + "output.TestPlugin_OutputPanel": + { + "height": 329.0 + }, + "output.diagnostics": + { + "height": 324.0 + }, + "output.doc": + { + "height": 103.0 + }, + "output.exec": + { + "height": 328.0 + }, + "output.find_results": + { + "height": 0.0 + }, + "output.git": + { + "height": 118.0 + }, + "output.hex_viewer_inspector": + { + "height": 97.0 + }, + "output.language servers": + { + "height": 383.0 + }, + "output.markdown": + { + "height": 97.0 + }, + "output.mdpopups": + { + "height": 0.0 + }, + "output.mdpopups-dummy": + { + "height": 0.0 + }, + "output.references": + { + "height": 346.0 + }, + "output.sftp": + { + "height": 127.0 + }, + "output.unsaved_changes": + { + "height": 97.0 + }, + "pinned_build_system": "", + "project": "Origami_PR.sublime-project", + "replace": + { + "height": 50.0 + }, + "save_all_on_build": true, + "select_file": + { + "height": 0.0, + "last_filter": "", + "selected_items": + [ + [ + "read", + "README.md" + ], + [ + "o", + "origami.py" + ], + [ + "cpp.sni", + "User\\cpp.sublime-snippet" + ], + [ + "buildw32", + "make-4.4\\build_w32.bat" + ], + [ + "src/signame.c ", + "make-4.4\\src\\signame.c" + ], + [ + "makefilesnip", + "User\\makefile.sublime-snippet" + ], + [ + "libguile/numbers.h", + "guile-3.0.9\\libguile\\numbers.h" + ], + [ + "src/makeint.h", + "make-4.4\\src\\makeint.h" + ], + [ + "ps.md", + "md\\opendocs\\ps.md" + ], + [ + "lisp.md", + "md\\opendocs\\lisp.md" + ], + [ + "makesnip", + "User\\makefile.sublime-snippet" + ], + [ + "makefile.sni", + "User\\makefile.sublime-snippet" + ], + [ + "tests/scripts/variables/MAKE_RESTARTS", + "make-4.3\\tests\\scripts\\variables\\MAKE_RESTARTS" + ], + [ + "bash", + "md\\opendocs\\bash.5.1.md" + ], + [ + "ebin/m", + "port\\ebin\\Makefile" + ], + [ + "ebin/make", + "port\\ebin\\Makefile" + ], + [ + "cpl", + "md\\opendocs\\cpl.md" + ], + [ + "makefile.md", + "md\\opendocs\\Makefile.md" + ], + [ + "portemake", + "port\\EMakefile" + ], + [ + "make", + "port\\Makefile" + ], + [ + "lib/os.rst", + "Python-3.10.2\\Doc\\library\\os.rst" + ], + [ + "tutorial\\inputoutput.rst", + "Python-3.10.2\\Doc\\tutorial\\inputoutput.rst" + ], + [ + "pyt", + "md\\Python.md" + ], + [ + "py", + "md\\Python.md" + ], + [ + "pyth", + "md\\PythonRef.md" + ], + [ + "run", + "RunSnippet\\RunSnippet.py" + ], + [ + "math", + "md\\Maths.md" + ], + [ + "blene", + "md\\OpenToonz\\Blender.md" + ], + [ + "unreal", + "md\\OpenGL\\UnrealEngine.md" + ], + [ + "git", + "md\\git.md" + ], + [ + "ffmp", + "md\\OpenToonz\\ffmpeg.md" + ], + [ + "forex", + "md\\forex.md" + ], + [ + "mat", + "md\\Maths.md" + ], + [ + "android", + "md\\Android.md" + ], + [ + "rsa", + "md\\rsa\\RSA.md" + ], + [ + "linux", + "md\\Linux.md" + ], + [ + "git ", + "md\\git.md" + ], + [ + "make.md", + "md\\OpenGL\\Makefile.md" + ], + [ + "lua-5.1/lobject", + "lua-5.1\\lobject.h" + ], + [ + "lua-5.1/lfunc.", + "lua-5.1\\lfunc.h" + ], + [ + "es6", + "md\\webpack\\ES6.md" + ], + [ + "lua-5.1/ltable.", + "lua-5.1\\ltable.h" + ], + [ + "lua.h", + "lua-5.1\\lua.h" + ], + [ + "lualib", + "lua-5.1\\lualib.h" + ], + [ + "Makefile", + "lua-5.1\\Makefile" + ], + [ + "lua-5.1/lparser.c", + "lua-5.1\\lparser.c" + ], + [ + "lua-5.1/lcode.c", + "lua-5.1\\lopcodes.c" + ], + [ + "lparser.c", + "lua-5.1\\lparser.c" + ], + [ + "uni", + "md\\uni-symbol.md" + ], + [ + "coding.lua", + "coding\\coding.lua" + ], + [ + "react", + "md\\webpack\\React.md" + ], + [ + "node", + "md\\webpack\\Node.md" + ], + [ + "vue", + "md\\c-daystep\\readme_vue.md" + ], + [ + "rust.", + "md\\Rust.md" + ], + [ + "System.Mana", + "PowerShell\\src\\System.Management.Automation\\System.Management.Automation.csproj" + ], + [ + "rust", + "md\\Rust.md" + ], + [ + "cshar", + "md\\csharp.md" + ], + [ + "cloj", + "md\\clojure.md" + ], + [ + "cloju", + "md\\clojure.md" + ], + [ + "gitmd", + "md\\git.md" + ], + [ + "coding.js", + "coding\\coding.js" + ], + [ + "visu", + "md\\writing\\listing-file\\Visual C++ 那个隐藏的多面手.md" + ], + [ + "git.md", + "md\\git.md" + ], + [ + "unisym", + "md\\uni-symbol.md" + ], + [ + "mpeg.md", + "md\\OpenToonz\\ffmpeg.md" + ], + [ + "un", + "md\\uni-symbol.md" + ], + [ + "CMakeLists", + "Python-3.10.2\\externals\\zlib-1.2.11\\CMakeLists.txt" + ], + [ + "cmake", + "antlr-4.10\\runtime\\Cpp\\demo\\CMakeLists.txt" + ], + [ + "re.rst", + "Python-3.10.2\\Doc\\library\\re.rst" + ], + [ + "stdtyp", + "Python-3.10.2\\Doc\\library\\stdtypes.rst" + ], + [ + "markdow", + "md\\markdown.md" + ], + [ + "sub", + "md\\sublime.md" + ], + [ + "venv/", + "Python-3.10.2\\Lib\\venv\\__main__.py" + ], + [ + "pyvenv.cfg", + "tutorial-env\\pyvenv.cfg" + ], + [ + "peps/0405.txt", + "peps\\pep-0405.txt" + ], + [ + "venv.rst", + "Python-3.10.2\\Doc\\tutorial\\venv.rst" + ], + [ + "User/RunSnippet.sublime-settings", + "User\\RunSnippet.sublime-settings" + ], + [ + "sublime.md", + "md\\sublime.md" + ], + [ + "builtin.rst", + "Python-3.10.2\\Doc\\library\\builtins.rst" + ], + [ + "lua", + "md\\lua.md" + ], + [ + "material/bash 5.1.md", + "RunSnippet\\material\\bash.5.1.md" + ], + [ + "run redme", + "RunSnippet\\readme.md" + ], + [ + "setting", + "RunSnippet\\Settings.py" + ], + [ + "jumpto", + "RunSnippet\\JumpTo.py" + ], + [ + "runsett", + "User\\RunSnippet.sublime-settings" + ], + [ + "csharp", + "md\\csharp.md" + ], + [ + "ts.md", + "md\\webpack\\TS.md" + ], + [ + "RunSnippet.sublime-settings", + "User\\RunSnippet.sublime-settings" + ], + [ + "linuxbibl", + "RunSnippet\\material\\linux_cli_script_bible.md" + ], + [ + "runreadme", + "RunSnippet\\readme.md" + ], + [ + "runsnippet", + "User\\RunSnippet.sublime-settings" + ], + [ + "Package Control.sublime-settings", + "User\\Package Control.sublime-settings" + ], + [ + "sublime", + "md\\sublime.md" + ], + [ + "subli", + "Lib\\python33\\sublime.py" + ], + [ + "plugin", + "tutorial-env\\Lib\\site-packages\\pygments\\plugin.py" + ], + [ + "ps.", + "md\\ps.md" + ], + [ + "sublime.", + "md\\sublime.md" + ], + [ + "sublimepy", + "Lib\\python38\\sublime.py" + ], + [ + "about_Foreach", + "PowerShell-Docs\\reference\\7.0\\Microsoft.PowerShell.Core\\About\\about_Foreach.md" + ], + [ + "ForEach-Object", + "PowerShell-Docs\\reference\\7.3\\Microsoft.PowerShell.Core\\ForEach-Object.md" + ], + [ + "Microsoft.PowerShell.Core/ForEach-Object.md", + "PowerShell-Docs\\reference\\7.0\\Microsoft.PowerShell.Core\\ForEach-Object.md" + ], + [ + "sent", + "RunSnippet\\SendTo.py" + ], + [ + "runsnp", + "RunSnippet\\RunSnippet.py" + ], + [ + "runrea", + "RunSnippet\\readme.md" + ], + [ + "python", + "md\\Python.md" + ], + [ + "sublim", + "md\\sublime.md" + ], + [ + "runread", + "RunSnippet\\readme.md" + ], + [ + "path.rst", + "Python-3.10.2\\Doc\\library\\os.path.rst" + ], + [ + "io.rst", + "Python-3.10.2\\Doc\\library\\io.rst" + ], + [ + "runke", + "RunSnippet\\Default.sublime-keymap" + ], + [ + "run context", + "RunSnippet\\Context.sublime-menu" + ], + [ + "sublimepl", + "Lib\\python33\\sublime_plugin.py" + ], + [ + "library/re.rst", + "Python-3.10.2\\Doc\\library\\re.rst" + ], + [ + "howto/regex.rst", + "Python-3.10.2\\Doc\\howto\\regex.rst" + ], + [ + "about_CommonParameters", + "PowerShell-Docs\\reference\\5.1\\Microsoft.PowerShell.Core\\About\\about_CommonParameters.md" + ], + [ + "./Microsoft.PowerShell.Utility/Write-Host.md", + "PowerShell-Docs\\reference\\7.2\\Microsoft.PowerShell.Utility\\Write-Host.md" + ], + [ + "Out-host", + "PowerShell-Docs\\reference\\7.3\\Microsoft.PowerShell.Core\\Out-Host.md" + ], + [ + "Start-ThreadJob", + "PowerShell-Docs\\reference\\7.0\\ThreadJob\\Start-ThreadJob.md" + ], + [ + "Microsoft.PowerShell.Utility/Write-Progress.md", + "PowerShell-Docs\\reference\\5.1\\Microsoft.PowerShell.Utility\\Write-Progress.md" + ], + [ + "vim", + "md\\vim\\vimtutor.md" + ], + [ + "Microsoft.PowerShell.Core/About/about_Splatting.md", + "PowerShell-Docs\\reference\\5.1\\Microsoft.PowerShell.Core\\About\\about_Splatting.md" + ], + [ + "job.md", + "PowerShell-Docs\\reference\\5.1\\Microsoft.PowerShell.Core\\Debug-Job.md" + ], + [ + "learn/deep-dives/write-progress-across-multiple-threads", + "PowerShell-Docs\\reference\\docs-conceptual\\learn\\deep-dives\\write-progress-across-multiple-threads.md" + ], + [ + "unisy", + "md\\uni-symbol.md" + ], + [ + "Write-Progress", + "PowerShell-Docs\\reference\\5.1\\Microsoft.PowerShell.Utility\\Write-Progress.md" + ], + [ + "runreamd", + "RunSnippet\\readme.md" + ], + [ + "ffmpeg", + "md\\OpenToonz\\ffmpeg.md" + ], + [ + "about_Using.md", + "PowerShell-Docs\\reference\\5.1\\Microsoft.PowerShell.Core\\About\\about_Using.md" + ] + ], + "width": 0.0 + }, + "select_project": + { + "height": 500.0, + "last_filter": "", + "selected_items": + [ + [ + "", + "C:\\download\\games\\Godot.sublime-project" + ], + [ + "boo", + "C:\\coding\\md-code\\bootstrap-5.0\\bootstrap.sublime-project" + ] + ], + "width": 380.0 + }, + "select_symbol": + { + "height": 323.0, + "last_filter": "lua_checkver", + "selected_items": + [ + [ + "lua_checkver", + "luaL_checkversion" + ], + [ + "undump", + "luaU_undump" + ], + [ + "luaopen_table", + "luaopen_table" + ], + [ + "Flush", + "Flush" + ], + [ + "flush", + "FlushPipe" + ], + [ + "ParentActivityId", + "ParentActivityId" + ], + [ + "Job", + "Job" + ], + [ + "PSObject", + "PSObject" + ], + [ + "InputStream", + "InputStream" + ], + [ + "CHILD", + "CHILD" + ], + [ + "", + "/" + ], + [ + "fork", + "fork" + ], + [ + "opipe", + "os_pipe" + ], + [ + "SMALL_REQUEST_THRESHOLD", + "SMALL_REQUEST_THRESHOLD" + ], + [ + "FileSystemAccessRule", + "C" + ], + [ + "SetAccessRule", + "SetAccessRule" + ], + [ + "powerShell", + "PowerShell" + ], + [ + "Sddl", + "Sddl" + ], + [ + "ScriptBlock", + "GetScriptBlock" + ], + [ + "pytest_load_initial_conftests", + "pytest_load_initial_conftests" + ], + [ + "PyBuiltin", + "_PyBuiltin_Init" + ], + [ + "PRId64", + "PRId64" + ], + [ + "div", + "div" + ], + [ + "abs", + "abs" + ], + [ + "pyunico", + "PyUnicode_Kind" + ], + [ + "strncmp", + "strncmp" + ], + [ + "SSTATE_", + "SSTATE_NOT_INTERNED" + ], + [ + "objectprint", + "PyObject_Print" + ], + [ + "join_i", + "join_list_unicode" + ], + [ + "setbuil", + "SETBUILTIN" + ], + [ + "pytypeobject", + "PyTypeObject" + ], + [ + "build_cla", + "builtin___build_class__" + ], + [ + "PyObject_Print", + "PyObject_Print" + ], + [ + "setbuiltin", + "SETBUILTIN" + ], + [ + "Object_Print", + "PyObject_Print" + ], + [ + "builtin___build_class__", + "builtin___build_class__" + ], + [ + "func_new", + "func_new" + ], + [ + "__build_class__", + "builtin___build_class__" + ], + [ + "pyidenti", + "_Py_IDENTIFIER" + ], + [ + "_is", + "_is" + ], + [ + "PyCodeObject", + "PyCodeObject" + ], + [ + "pycodeo", + "PyCodeObject" + ], + [ + "PyBytesObject", + "PyBytesObject" + ], + [ + "_Py_HOT_FUNCTION", + "_Py_HOT_FUNCTION" + ], + [ + "_PyEval_EvalFrameDefault", + "_PyEval_EvalFrameDefault" + ], + [ + "_ceval_runtime_state", + "_ceval_runtime_state" + ], + [ + "PyThread_type_lock", + "PyThread_type_lock" + ], + [ + "PyThread_acquire_lock", + "PyThread_acquire_lock" + ], + [ + "print", + "print" + ], + [ + "stackeffec", + "stack_effect" + ], + [ + "cframe", + "_cframe" + ], + [ + "_ts", + "_ts" + ], + [ + "eval_frame", + "_PyEval_EvalFrame" + ], + [ + "runeval", + "run_eval_code_obj" + ], + [ + "run_eval_code_obj", + "run_eval_code_obj" + ], + [ + "_getframe", + "sys__getframe" + ], + [ + "type_ready", + "type_ready" + ], + [ + "pyid", + "PyIdPersPicklerTests" + ], + [ + "_typeo", + "_typeobject" + ], + [ + "unicodeo", + "PyUnicodeObject" + ], + [ + "rangeo", + "rangeobject" + ], + [ + "mapobject", + "mapobject" + ], + [ + "listobject", + "PyListObject" + ], + [ + "longobjec", + "PyLongObject" + ], + [ + "Py_NotImplemented", + "Py_NotImplemented" + ], + [ + "Py_Ellipsis", + "Py_Ellipsis" + ], + [ + "Py_None", + "Py_None" + ], + [ + "longobj", + "PyLongObject" + ], + [ + "SETBUILTIN", + "SETBUILTIN" + ], + [ + "PyLongObject", + "PyLongObject" + ], + [ + "PyObject_HEAD", + "PyObject_HEAD" + ], + [ + "PyCFunction", + "PyCFunction_Call" + ], + [ + "typobject", + "_typeobject" + ], + [ + "_oject", + "_object" + ], + [ + "PyListObject", + "PyListObject" + ], + [ + "_longo", + "_longobject" + ], + [ + "typeobject", + "PyTypeObject" + ], + [ + "PyFloat_Type", + "_PyFloat_InitTypes" + ], + [ + "_long", + "_longobject" + ], + [ + "_longobject", + "_longobject" + ], + [ + "_typeobject", + "_typeobject" + ], + [ + "_stmt", + "_stmt" + ], + [ + "PyAST_Compile", + "_PyAST_Compile" + ], + [ + "PyAST_Compil", + "_PyAST_Compile" + ], + [ + "compiler", + "compiler" + ], + [ + "builtin_e", + "builtin_exec" + ], + [ + "compile", + "compile" + ], + [ + "LOAD_CONST", + "LOAD_CONST" + ], + [ + "pyobject", + "PyObject" + ], + [ + "pyob", + "PyObject" + ], + [ + "metaclass", + "metaclass" + ], + [ + "MapResult", + "MapResult" + ], + [ + "BINARY_ADD", + "BINARY_ADD" + ], + [ + "_mod", + "_mod" + ], + [ + "mod", + "mod" + ], + [ + "symtable_enter_block", + "symtable_enter_block" + ], + [ + "PySTEntryObject", + "PySTEntryObject" + ], + [ + "LOAD_CLOSURE", + "LOAD_CLOSURE" + ], + [ + "compiler_addop", + "compiler_addop" + ], + [ + "ADDOP", + "ADDOP" + ], + [ + "pyO", + "PyObject" + ], + [ + "PyGC_Head", + "PyGC_Head" + ], + [ + "_PyObject_HEAD_EXTRA", + "_PyObject_HEAD_EXTRA" + ], + [ + "TokenInfo", + "TokenInfo" + ], + [ + "tokget", + "tok_get" + ], + [ + "runpyc", + "run_pyc_file" + ], + [ + "run_parser_from_string", + "_PyPegen_run_parser_from_string" + ], + [ + "astfrom", + "_PyParser_ASTFromString" + ], + [ + "_PyParser_ASTFromString", + "_PyParser_ASTFromString" + ], + [ + "PyRun_StringFlags", + "PyRun_StringFlags" + ], + [ + "_PyRun_AnyFileObject", + "_PyRun_AnyFileObject" + ], + [ + "PyRun_InteractiveOneObjectEx", + "PyRun_InteractiveOneObjectEx" + ], + [ + "PyRun_SimpleStringFlags", + "PyRun_SimpleStringFlags" + ], + [ + "pyconfig", + "PyConfig" + ], + [ + "_pygetenv", + "_Py_GetEnv" + ], + [ + "Py_RunMain", + "Py_RunMain" + ], + [ + "reco", + "run_eval_code_obj" + ], + [ + "PyObject", + "PyObject" + ], + [ + "PyDef", + "PyMemberDef" + ], + [ + "PygsDef", + "PyGetSetDef" + ], + [ + "typenewallo", + "type_new_alloc" + ], + [ + "PyType_Ready", + "PyType_Ready" + ], + [ + "_meta", + "_metaclass" + ], + [ + "type_new_alloc", + "type_new_alloc" + ], + [ + "PyType_GenericAlloc", + "PyType_GenericAlloc" + ], + [ + "PyVarObject_HEAD_INIT", + "PyVarObject_HEAD_INIT" + ], + [ + "_Py_ForgetReference", + "_Py_ForgetReference" + ], + [ + "_Py_Dealloc", + "_Py_Dealloc" + ] + ], + "width": 591.0 + }, + "selected_group": 0, + "settings": + { + }, + "show_minimap": true, + "show_open_files": true, + "show_tabs": true, + "side_bar_visible": true, + "side_bar_width": 197.0, + "status_bar_visible": true, + "template_settings": + { + "max_columns": 2 + } +} diff --git a/README.md b/README.md index f685b8f..5006174 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ In the keybindings you can change a `mode` which specifies which separation line Automation ---------- -You can have Origami automatically zoom the active pane by setting `auto_zoom_on_focus` in your Origami user preferences. Set it to `true` for the default zoom, or set it to a user-definable fraction of the screen, such as `0.75`. +You can have Origami automatically zoom the active pane by setting `auto_zoom_on_focus` in your Origami user preferences. Set it to `true` for the default zoom, or set it to a user-definable fraction of the screen, such as `0.75`, or `[0.5, 0.6]` for horitontal and vertical correspondingly. Origami can also automatically close a pane for you once you've closed the last file in it. Just set `auto_close_empty_panes` to true in the Origami preferences. diff --git a/origami.py b/origami.py index 70286ff..5eab019 100644 --- a/origami.py +++ b/origami.py @@ -309,20 +309,20 @@ def _on_resize_panes(self, orientation, cells, relevant_index, orig_data, text): layout = self._on_resize_panes_get_layout(orientation, cells, relevant_index, orig_data, text) self.window.set_layout(layout) + + def zoom_pane(self, auto_zoom): - # if fraction is None: - # fraction = .9 - fraction = .9 - height = .9 - # if isinstance(auto_zoom, float|int): + fraction_horizontal = .9 + fraction_vertical = .9 + if isinstance(auto_zoom, float) or isinstance(auto_zoom, int): - fraction = auto_zoom + fraction_horizontal = auto_zoom elif isinstance(auto_zoom, list): - fraction = auto_zoom[0] - height = auto_zoom[1] + fraction_horizontal = auto_zoom[0] + fraction_vertical = auto_zoom[1] - fraction = min(1, max(0, fraction)) - height = min(1, max(0, height)) + fraction_horizontal = min(1, max(0, fraction_horizontal)) + fraction_vertical = min(1, max(0, fraction_vertical)) window = self.window rows, cols, cells = self.get_layout() @@ -333,7 +333,7 @@ def zoom_pane(self, auto_zoom): # TODO: the sizes of the unzoomed panes are calculated incorrectly if the # unzoomed panes have a split that overlaps the zoomed pane. - current_col_width = 1 if num_cols == 1 else fraction + current_col_width = 1 if num_cols == 1 else fraction_horizontal other_col_width = 0 if num_cols == 1 else (1 - current_col_width) / (num_cols - 1) cols = [0.0] @@ -343,8 +343,7 @@ def zoom_pane(self, auto_zoom): current_row = current_cell[1] num_rows = len(rows) - 1 - # current_row_height = 1 if num_rows == 1 else fraction - current_row_height = 1 if num_rows == 1 else height + current_row_height = 1 if num_rows == 1 else fraction_vertical other_row_height = 0 if num_rows == 1 else (1 - current_row_height) / (num_rows - 1) rows = [0.0] for i in range(num_rows): From 434a90568f21c0078d3ac2f4526e72e7e0a2b605 Mon Sep 17 00:00:00 2001 From: Jeangowhy <254141203@qq.com> Date: Thu, 14 Sep 2023 20:14:37 +0800 Subject: [PATCH 03/18] Remove Sublime workspace --- .gitignore | 1 + Origami_PR.sublime-workspace | 13111 --------------------------------- 2 files changed, 1 insertion(+), 13111 deletions(-) delete mode 100644 Origami_PR.sublime-workspace diff --git a/.gitignore b/.gitignore index 1519a5d..17c9600 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ *.pyc *.cache *.sublime-project +*.sublime-workspace *.hgignore *.hgtags *.DS_Store diff --git a/Origami_PR.sublime-workspace b/Origami_PR.sublime-workspace deleted file mode 100644 index be84920..0000000 --- a/Origami_PR.sublime-workspace +++ /dev/null @@ -1,13111 +0,0 @@ -{ - "auto_complete": - { - "selected_items": - [ - [ - "shell", - "shell-script" - ], - [ - "get_tm", - "get_tmpfile" - ], - [ - "M", - "Makefile" - ], - [ - "MAKE", - "MAKELEVEL" - ], - [ - "instance", - "isinstance" - ], - [ - "tuple", - "Tuple" - ], - [ - "lua", - "luacguess" - ], - [ - "for", - "forp" - ], - [ - "_", - "_VERSION" - ], - [ - "fun", - "function" - ], - [ - "xComm", - "xCommonSymbol ©" - ], - [ - "xarrow", - "xDiagonalArrowsA-LD ↙" - ], - [ - "some", - "something" - ], - [ - "load", - "loadfile(filename, mode, env)" - ], - [ - "xarrowc", - "xArrowsC-R ➡" - ], - [ - "xarrowr", - "xArrowsC-R ➡" - ], - [ - "else", - "elseif .. then" - ], - [ - "traver", - "traverse" - ], - [ - "functi", - "function ()" - ], - [ - "funct", - "function ()" - ], - [ - "xarrowU", - "xArrowsC-U ⬆" - ], - [ - "xarrorU", - "xarrowRU" - ], - [ - "xScriptilx", - "xScript-BIL-x 𝒙" - ], - [ - "xScripty", - "xScript-BIL-y 𝒚" - ], - [ - "xScriptlx", - "xScript-BIL-x 𝒙" - ], - [ - "xScriptBy", - "xScript-BU-y 𝓨" - ], - [ - "xScriptIL", - "xScript-IL 𝑓" - ], - [ - "xgeeka", - "xGreek-L-a α" - ], - [ - "xsupx", - "xsupx" - ], - [ - "Can", - "CanBeLinkSymblic" - ], - [ - "node", - "node_modules/" - ], - [ - "print", - "printUniSymbols" - ], - [ - "settings", - "settings_get" - ], - [ - "re", - "region" - ], - [ - "cla", - "class" - ], - [ - "xsupb", - "xsupb" - ], - [ - "xsupa", - "xsupa" - ], - [ - "ge", - "gettype" - ], - [ - "Write", - "Write-Progress" - ], - [ - "Arra", - "ArrayList" - ], - [ - "Start", - "StartJobs" - ], - [ - "Co", - "Collections" - ], - [ - "Format-", - "Format-Table" - ], - [ - "Get-", - "Get-Date" - ], - [ - "R", - "Remove-Job" - ], - [ - "Last", - "LASTEXITCODE" - ], - [ - "Arr", - "ArrayList" - ], - [ - "maiz", - "PyMapping_Size" - ], - [ - "main", - "mainformatlong" - ], - [ - "xdoubli", - "xDoubleStruck-I-𝕀" - ], - [ - "Par", - "Parameter" - ], - [ - "Hash", - "HashTable" - ], - [ - "sh", - "shell" - ], - [ - "USERP", - "userProfile" - ], - [ - "AccessCon", - "AccessControlType" - ], - [ - "Progra", - "ProgramData" - ], - [ - "r", - "rmdir" - ], - [ - "if", - "ifmain" - ], - [ - "py", - "pybind11" - ], - [ - "cpp", - "cppmult" - ], - [ - "get", - "get_config_var" - ], - [ - "__", - "__main__" - ], - [ - "name", - "namespace" - ], - [ - "addd", - "add_library_dir" - ], - [ - "build", - "build_cffi" - ], - [ - "dump", - "dump_traceback_later" - ], - [ - "Pyunicode1", - "PyUnicode_1BYTE_KIND" - ], - [ - "PyUni", - "PyUnicode_READ" - ], - [ - "file", - "file_chunks" - ], - [ - "default", - "default_factory" - ], - [ - "__ini", - "__init__" - ], - [ - "set_", - "set_event_loop_policy" - ], - [ - "cons", - "console_id" - ], - [ - "ex", - "execpanel" - ], - [ - "mo", - "mod_root/" - ], - [ - "function", - "create_function()" - ], - [ - "code", - "code_snippet" - ], - [ - "init", - "init_file" - ], - [ - "in", - "init_file" - ], - [ - "ini", - "init_code" - ], - [ - "win", - "window_id" - ], - [ - "oper", - "operand2" - ], - [ - "App", - "Append" - ], - [ - "under", - "underScores" - ], - [ - "sublim", - "sublime" - ], - [ - "se", - "selections" - ], - [ - "View", - "ViewLatexCommand" - ], - [ - "glo", - "globals" - ], - [ - "index", - "index_file" - ], - [ - "starts", - "str_starts_with()" - ], - [ - "fil", - "file_get_contents" - ], - [ - "ob_get", - "ob_get_length()" - ], - [ - "ob_", - "ob_start" - ], - [ - "nex", - "nextlen" - ], - [ - "tex", - "text-overflow" - ], - [ - "wor", - "word-break" - ], - [ - "ind", - "inden.m3u8" - ], - [ - "SE", - "SECTSIZE\tabc" - ], - [ - "hard", - "hard-light\t(svg.md)" - ], - [ - "g", - "知识付费时代-gitchat/" - ], - [ - "dra", - "draw/" - ], - [ - "loca", - "location\t(csharp.md)" - ], - [ - "repos", - "repository\t(csharp.md)" - ], - [ - "fle", - "flex" - ], - [ - "json", - "json_encode" - ], - [ - "JSON", - "json_encode" - ], - [ - "FILE", - "_FILES" - ], - [ - "n", - "node_modules/" - ], - [ - "value", - "value4\tlet" - ], - [ - "con", - "console\tvar" - ], - [ - "LogL", - "LogLevelStrings\ttype" - ], - [ - "par", - "parseInt\tfunction" - ], - [ - "resu", - "result2\tlet" - ], - [ - "ReactRou", - "ReactRouterDOM" - ], - [ - "ne", - "nextPuzzle" - ], - [ - "max", - "max-width\tproperty" - ], - [ - "word", - "wordlist" - ], - [ - "qml", - "main.qml" - ], - [ - "p", - "plugins/" - ], - [ - "img", - "imageMat" - ], - [ - "lena", - "lena_thresh" - ], - [ - "chapp", - "ch_app.erl" - ], - [ - "wxMen", - "wxMenuBar" - ], - [ - "create", - "create_test_menu" - ], - [ - "I", - "IsStatic" - ], - [ - "lo", - "localhost.pfx" - ], - [ - "Hook", - "KeyboardHook" - ], - [ - "Hoo", - "HookStop" - ] - ] - }, - "buffers": - [ - { - "file": "origami.py", - "settings": - { - "buffer_size": 30916, - "encoding": "UTF-8", - "line_ending": "Windows" - }, - "undo_stack": - [ - [ - 22, - 2, - "right_delete", - null, - "AgAAAE8sAAAAAAAATywAAAAAAABVAQAAICAgICMgICB1cGdyYWRlICB6b29tX3BhbmUoc2VsZiwgYXV0b196b29tKSB0byBzdXBwb3J0IGF1dG8gem9vbSBpbiBYIGFuZCBZIGRpcmVjdGlvbu+8jE9yaWdhbWkgc2V0dGluZ3MgdXBkYXRlOgogICAgIyAgIC8vIEF1dG9tYXRpY2FsbHkgem9vbSB0aGUgYWN0aXZlIHBhbmUuCiAgICAjICAgLy8gU2V0IGl0IHRvIGB0cnVlYCBmb3IgdGhlIGRlZmF1bHQgem9vbSwgb3IgdG8gYSB1c2VyLWRlZmluYWJsZQogICAgIyAgIC8vIGZyYWN0aW9uIG9mIHRoZSBzY3JlZW4sIHN1Y2ggYXMgIjAuNzUiIG9yIFswLjUsIDAuN10uCiAgICAjICAgImF1dG9fem9vbV9vbl9mb2N1cyI6IFswLjU1LCAwLjc1XSxPLAAAAAAAAE8sAAAAAAAAAQAAAAo", - "BwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAoi0AAAAAAABPLAAAAAAAAAAAAAAAAPC/" - ], - [ - 25, - 2, - "run_macro_file", - { - "file": "res://Packages/Default/Delete Line.sublime-macro" - }, - "AgAAAHMsAAAAAAAAcywAAAAAAAAfAAAAICAgICAgICAjIGlmIGZyYWN0aW9uIGlzIE5vbmU6CnMsAAAAAAAAcywAAAAAAAAcAAAAICAgICAgICAjICAgICBmcmFjdGlvbiA9IC45Cg", - "BwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAkSwAAAAAAACRLAAAAAAAAAAAAAAAAPC/" - ], - [ - 48, - 1, - "insert", - { - "characters": "_verti" - }, - "KgAAABgxAAAAAAAAGTEAAAAAAAAAAAAAnC8AAAAAAACdLwAAAAAAAAAAAADOLQAAAAAAAM8tAAAAAAAAAAAAALUtAAAAAAAAti0AAAAAAAAAAAAAci0AAAAAAABzLQAAAAAAAAAAAAAnLQAAAAAAACgtAAAAAAAAAAAAAIMsAAAAAAAAhCwAAAAAAAAAAAAAHzEAAAAAAAAgMQAAAAAAAAAAAACiLwAAAAAAAKMvAAAAAAAAAAAAANMtAAAAAAAA1C0AAAAAAAAAAAAAuS0AAAAAAAC6LQAAAAAAAAAAAAB1LQAAAAAAAHYtAAAAAAAAAAAAACktAAAAAAAAKi0AAAAAAAAAAAAAhCwAAAAAAACFLAAAAAAAAAAAAAAmMQAAAAAAACcxAAAAAAAAAAAAAKgvAAAAAAAAqS8AAAAAAAAAAAAA2C0AAAAAAADZLQAAAAAAAAAAAAC9LQAAAAAAAL4tAAAAAAAAAAAAAHgtAAAAAAAAeS0AAAAAAAAAAAAAKy0AAAAAAAAsLQAAAAAAAAAAAACFLAAAAAAAAIYsAAAAAAAAAAAAAC0xAAAAAAAALjEAAAAAAAAAAAAAri8AAAAAAACvLwAAAAAAAAAAAADdLQAAAAAAAN4tAAAAAAAAAAAAAMEtAAAAAAAAwi0AAAAAAAAAAAAAey0AAAAAAAB8LQAAAAAAAAAAAAAtLQAAAAAAAC4tAAAAAAAAAAAAAIYsAAAAAAAAhywAAAAAAAAAAAAANDEAAAAAAAA1MQAAAAAAAAAAAAC0LwAAAAAAALUvAAAAAAAAAAAAAOItAAAAAAAA4y0AAAAAAAAAAAAAxS0AAAAAAADGLQAAAAAAAAAAAAB+LQAAAAAAAH8tAAAAAAAAAAAAAC8tAAAAAAAAMC0AAAAAAAAAAAAAhywAAAAAAACILAAAAAAAAAAAAAA7MQAAAAAAADwxAAAAAAAAAAAAALovAAAAAAAAuy8AAAAAAAAAAAAA5y0AAAAAAADoLQAAAAAAAAAAAADJLQAAAAAAAMotAAAAAAAAAAAAAIEtAAAAAAAAgi0AAAAAAAAAAAAAMS0AAAAAAAAyLQAAAAAAAAAAAACILAAAAAAAAIksAAAAAAAAAAAAAA", - "BwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAAHAAAAgywAAAAAAACDLAAAAAAAAAAAAAAAAPC/Jy0AAAAAAAAnLQAAAAAAAAAAAAAAAPC/ci0AAAAAAAByLQAAAAAAAAAAAAAAAPC/tS0AAAAAAAC1LQAAAAAAAAAAAAAAAPC/zi0AAAAAAADOLQAAAAAAAAAAAAAAAPC/nC8AAAAAAACcLwAAAAAAAAAAAAAAAPC/GDEAAAAAAAAYMQAAAAAAAAAAAAAAAPC/" - ], - [ - 49, - 1, - "insert", - { - "characters": "ca" - }, - "DgAAAEIxAAAAAAAAQzEAAAAAAAAAAAAAwC8AAAAAAADBLwAAAAAAAAAAAADsLQAAAAAAAO0tAAAAAAAAAAAAAM0tAAAAAAAAzi0AAAAAAAAAAAAAhC0AAAAAAACFLQAAAAAAAAAAAAAzLQAAAAAAADQtAAAAAAAAAAAAAIksAAAAAAAAiiwAAAAAAAAAAAAASTEAAAAAAABKMQAAAAAAAAAAAADGLwAAAAAAAMcvAAAAAAAAAAAAAPEtAAAAAAAA8i0AAAAAAAAAAAAA0S0AAAAAAADSLQAAAAAAAAAAAACHLQAAAAAAAIgtAAAAAAAAAAAAADUtAAAAAAAANi0AAAAAAAAAAAAAiiwAAAAAAACLLAAAAAAAAAAAAAA", - "BwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAAHAAAAiSwAAAAAAACJLAAAAAAAAAAAAAAAAPC/My0AAAAAAAAzLQAAAAAAAAAAAAAAAPC/hC0AAAAAAACELQAAAAAAAAAAAAAAAPC/zS0AAAAAAADNLQAAAAAAAAAAAAAAAPC/7C0AAAAAAADsLQAAAAAAAAAAAAAAAPC/wC8AAAAAAADALwAAAAAAAAAAAAAAAPC/QjEAAAAAAABCMQAAAAAAAAAAAAAAAPC/" - ], - [ - 50, - 1, - "left_delete", - null, - "BwAAAE8xAAAAAAAATzEAAAAAAAABAAAAYcsvAAAAAAAAyy8AAAAAAAABAAAAYfUtAAAAAAAA9S0AAAAAAAABAAAAYdQtAAAAAAAA1C0AAAAAAAABAAAAYYktAAAAAAAAiS0AAAAAAAABAAAAYTYtAAAAAAAANi0AAAAAAAABAAAAYYosAAAAAAAAiiwAAAAAAAABAAAAYQ", - "BwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAAHAAAAiywAAAAAAACLLAAAAAAAAAAAAAAAAPC/Ny0AAAAAAAA3LQAAAAAAAAAAAAAAAPC/ii0AAAAAAACKLQAAAAAAAAAAAAAAAPC/1S0AAAAAAADVLQAAAAAAAAAAAAAAAPC/9i0AAAAAAAD2LQAAAAAAAAAAAAAAAPC/zC8AAAAAAADMLwAAAAAAAAAAAAAAAPC/UDEAAAAAAABQMQAAAAAAAAAAAAAAAPC/" - ], - [ - 51, - 1, - "insert", - { - "characters": "cal" - }, - "FQAAAEkxAAAAAAAASjEAAAAAAAAAAAAAxi8AAAAAAADHLwAAAAAAAAAAAADxLQAAAAAAAPItAAAAAAAAAAAAANEtAAAAAAAA0i0AAAAAAAAAAAAAhy0AAAAAAACILQAAAAAAAAAAAAA1LQAAAAAAADYtAAAAAAAAAAAAAIosAAAAAAAAiywAAAAAAAAAAAAAUDEAAAAAAABRMQAAAAAAAAAAAADMLwAAAAAAAM0vAAAAAAAAAAAAAPYtAAAAAAAA9y0AAAAAAAAAAAAA1S0AAAAAAADWLQAAAAAAAAAAAACKLQAAAAAAAIstAAAAAAAAAAAAADctAAAAAAAAOC0AAAAAAAAAAAAAiywAAAAAAACMLAAAAAAAAAAAAABXMQAAAAAAAFgxAAAAAAAAAAAAANIvAAAAAAAA0y8AAAAAAAAAAAAA+y0AAAAAAAD8LQAAAAAAAAAAAADZLQAAAAAAANotAAAAAAAAAAAAAI0tAAAAAAAAji0AAAAAAAAAAAAAOS0AAAAAAAA6LQAAAAAAAAAAAACMLAAAAAAAAI0sAAAAAAAAAAAAAA", - "BwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAAHAAAAiiwAAAAAAACKLAAAAAAAAAAAAAAAAPC/NS0AAAAAAAA1LQAAAAAAAAAAAAAAAPC/hy0AAAAAAACHLQAAAAAAAAAAAAAAAPC/0S0AAAAAAADRLQAAAAAAAAAAAAAAAPC/8S0AAAAAAADxLQAAAAAAAAAAAAAAAPC/xi8AAAAAAADGLwAAAAAAAAAAAAAAAPC/STEAAAAAAABJMQAAAAAAAAAAAAAAAPC/" - ], - [ - 67, - 1, - "paste", - null, - "CgAAAJQxAAAAAAAAnTEAAAAAAAAAAAAAnTEAAAAAAACdMQAAAAAAAAYAAABoZWlnaHQjLgAAAAAAACwuAAAAAAAAAAAAACwuAAAAAAAALC4AAAAAAAAGAAAAaGVpZ2h0Cy4AAAAAAAAULgAAAAAAAAAAAAAULgAAAAAAABQuAAAAAAAABgAAAGhlaWdodKwtAAAAAAAAtS0AAAAAAAAAAAAAtS0AAAAAAAC1LQAAAAAAAAYAAABoZWlnaHSbLAAAAAAAAKQsAAAAAAAAAAAAAKQsAAAAAAAApCwAAAAAAAAGAAAAaGVpZ2h0", - "BwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAAFAAAAmywAAAAAAAChLAAAAAAAAAAAAAAAAPC/rC0AAAAAAACyLQAAAAAAAAAAAAAAAPC/Cy4AAAAAAAARLgAAAAAAAAAAAAAAAPC/Iy4AAAAAAAApLgAAAAAAAAAAAAAAAPC/lDEAAAAAAACaMQAAAAAAAAAAAAAAAPC/" - ], - [ - 68, - 1, - "insert", - { - "characters": "hori" - }, - "FAAAAKkxAAAAAAAAqjEAAAAAAAAAAAAANS4AAAAAAAA2LgAAAAAAAAAAAAAaLgAAAAAAABsuAAAAAAAAAAAAALgtAAAAAAAAuS0AAAAAAAAAAAAApCwAAAAAAAClLAAAAAAAAAAAAACuMQAAAAAAAK8xAAAAAAAAAAAAADkuAAAAAAAAOi4AAAAAAAAAAAAAHS4AAAAAAAAeLgAAAAAAAAAAAAC6LQAAAAAAALstAAAAAAAAAAAAAKUsAAAAAAAApiwAAAAAAAAAAAAAszEAAAAAAAC0MQAAAAAAAAAAAAA9LgAAAAAAAD4uAAAAAAAAAAAAACAuAAAAAAAAIS4AAAAAAAAAAAAAvC0AAAAAAAC9LQAAAAAAAAAAAACmLAAAAAAAAKcsAAAAAAAAAAAAALgxAAAAAAAAuTEAAAAAAAAAAAAAQS4AAAAAAABCLgAAAAAAAAAAAAAjLgAAAAAAACQuAAAAAAAAAAAAAL4tAAAAAAAAvy0AAAAAAAAAAAAApywAAAAAAACoLAAAAAAAAAAAAAA", - "BwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAAFAAAApCwAAAAAAACkLAAAAAAAAAAAAAAAAPC/uC0AAAAAAAC4LQAAAAAAAAAAAAAAAPC/Gi4AAAAAAAAaLgAAAAAAAAAAAAAAAPC/NS4AAAAAAAA1LgAAAAAAAAAAAAAAAPC/qTEAAAAAAACpMQAAAAAAAAAAAAAAAPC/" - ], - [ - 95, - 1, - "paste", - null, - "DgAAAHExAAAAAAAAezEAAAAAAAAAAAAAezEAAAAAAAB7MQAAAAAAAAkAAAB2ZXJ0aWNjYWzrLwAAAAAAAPUvAAAAAAAAAAAAAPUvAAAAAAAA9S8AAAAAAAAJAAAAdmVydGljY2FsBS4AAAAAAAAPLgAAAAAAAAAAAAAPLgAAAAAAAA8uAAAAAAAACQAAAHZlcnRpY2NhbOItAAAAAAAA7C0AAAAAAAAAAAAA7C0AAAAAAADsLQAAAAAAAAkAAAB2ZXJ0aWNjYWyOLQAAAAAAAJgtAAAAAAAAAAAAAJgtAAAAAAAAmC0AAAAAAAAJAAAAdmVydGljY2FsOS0AAAAAAABDLQAAAAAAAAAAAABDLQAAAAAAAEMtAAAAAAAACQAAAHZlcnRpY2NhbIQsAAAAAAAAjiwAAAAAAAAAAAAAjiwAAAAAAACOLAAAAAAAAAkAAAB2ZXJ0aWNjYWw", - "BwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAAHAAAAjSwAAAAAAACELAAAAAAAAAAAAAAAAPC/Qi0AAAAAAAA5LQAAAAAAAAAAAAAAAPC/ly0AAAAAAACOLQAAAAAAAAAAAAAAAPC/6y0AAAAAAADiLQAAAAAAAAAAAAAAAPC/Di4AAAAAAAAFLgAAAAAAAAAAAAAAAPC/9C8AAAAAAADrLwAAAAAAAAAAAAAAAPC/ejEAAAAAAABxMQAAAAAAAAAAAAAAAPC/" - ], - [ - 98, - 1, - "insert", - { - "characters": "vertical" - }, - "LQAAAMAxAAAAAAAAwTEAAAAAAAAAAAAAwTEAAAAAAADBMQAAAAAAAAQAAABob3JpRi4AAAAAAABHLgAAAAAAAAAAAABHLgAAAAAAAEcuAAAAAAAABAAAAGhvcmknLgAAAAAAACguAAAAAAAAAAAAACguAAAAAAAAKC4AAAAAAAAEAAAAaG9yab8tAAAAAAAAwC0AAAAAAAAAAAAAwC0AAAAAAADALQAAAAAAAAQAAABob3JppSwAAAAAAACmLAAAAAAAAAAAAACmLAAAAAAAAKYsAAAAAAAABAAAAGhvcmm1MQAAAAAAALYxAAAAAAAAAAAAAD4uAAAAAAAAPy4AAAAAAAAAAAAAIi4AAAAAAAAjLgAAAAAAAAAAAAC9LQAAAAAAAL4tAAAAAAAAAAAAAKYsAAAAAAAApywAAAAAAAAAAAAAujEAAAAAAAC7MQAAAAAAAAAAAABCLgAAAAAAAEMuAAAAAAAAAAAAACUuAAAAAAAAJi4AAAAAAAAAAAAAvy0AAAAAAADALQAAAAAAAAAAAACnLAAAAAAAAKgsAAAAAAAAAAAAAL8xAAAAAAAAwDEAAAAAAAAAAAAARi4AAAAAAABHLgAAAAAAAAAAAAAoLgAAAAAAACkuAAAAAAAAAAAAAMEtAAAAAAAAwi0AAAAAAAAAAAAAqCwAAAAAAACpLAAAAAAAAAAAAADEMQAAAAAAAMUxAAAAAAAAAAAAAEouAAAAAAAASy4AAAAAAAAAAAAAKy4AAAAAAAAsLgAAAAAAAAAAAADDLQAAAAAAAMQtAAAAAAAAAAAAAKksAAAAAAAAqiwAAAAAAAAAAAAAyTEAAAAAAADKMQAAAAAAAAAAAABOLgAAAAAAAE8uAAAAAAAAAAAAAC4uAAAAAAAALy4AAAAAAAAAAAAAxS0AAAAAAADGLQAAAAAAAAAAAACqLAAAAAAAAKssAAAAAAAAAAAAAM4xAAAAAAAAzzEAAAAAAAAAAAAAUi4AAAAAAABTLgAAAAAAAAAAAAAxLgAAAAAAADIuAAAAAAAAAAAAAMctAAAAAAAAyC0AAAAAAAAAAAAAqywAAAAAAACsLAAAAAAAAAAAAADTMQAAAAAAANQxAAAAAAAAAAAAAFYuAAAAAAAAVy4AAAAAAAAAAAAANC4AAAAAAAA1LgAAAAAAAAAAAADJLQAAAAAAAMotAAAAAAAAAAAAAKwsAAAAAAAArSwAAAAAAAAAAAAA", - "BwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAAFAAAAqSwAAAAAAAClLAAAAAAAAAAAAAAAAPC/wy0AAAAAAAC/LQAAAAAAAAAAAAAAAPC/Ky4AAAAAAAAnLgAAAAAAAAAAAAAAAPC/Si4AAAAAAABGLgAAAAAAAAAAAAAAAPC/xDEAAAAAAADAMQAAAAAAAAAAAAAAAPC/" - ], - [ - 107, - 1, - "insert", - { - "characters": " " - }, - "AQAAAOEsAAAAAAAA4iwAAAAAAAAAAAAA", - "BwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAA4SwAAAAAAADhLAAAAAAAAAAAAAAAAPC/" - ], - [ - 110, - 1, - "right_delete", - null, - "AQAAALssAAAAAAAAuywAAAAAAAAnAAAAIyBpZiBpc2luc3RhbmNlKGF1dG9fem9vbSwgZmxvYXR8aW50KTog", - "BwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAuywAAAAAAADiLAAAAAAAAAAAAAAAAPC/" - ], - [ - 1, - 1, - "revert", - null, - "BwAAAAAAAAAAAAAAAAAAAAAAAAC/eAAAaW1wb3J0IHN1YmxpbWUKaW1wb3J0IHN1YmxpbWVfcGx1Z2luCmltcG9ydCBjb3B5CmZyb20gZnVuY3Rvb2xzIGltcG9ydCBwYXJ0aWFsCgoKU0VUVElOR1NfRklMRU5BTUUgPSAnT3JpZ2FtaS5zdWJsaW1lLXNldHRpbmdzJwpYTUlOLCBZTUlOLCBYTUFYLCBZTUFYID0gcmFuZ2UoNCkKCgpkZWYgaW5jcmVtZW50X2lmX2dyZWF0ZXJfb3JfZXF1YWwoeCwgdGhyZXNob2xkKToKICAgIGlmIHggPj0gdGhyZXNob2xkOgogICAgICAgIHJldHVybiB4ICsgMQogICAgcmV0dXJuIHgKCgpkZWYgZGVjcmVtZW50X2lmX2dyZWF0ZXIoeCwgdGhyZXNob2xkKToKICAgIGlmIHggPiB0aHJlc2hvbGQ6CiAgICAgICAgcmV0dXJuIHggLSAxCiAgICByZXR1cm4geAoKCmRlZiBwdWxsX3VwX2NlbGxzX2FmdGVyKGNlbGxzLCB0aHJlc2hvbGQpOgogICAgcmV0dXJuIFsKICAgICAgICBbeDAsIGRlY3JlbWVudF9pZl9ncmVhdGVyKHkwLCB0aHJlc2hvbGQpLCB4MSwgZGVjcmVtZW50X2lmX2dyZWF0ZXIoeTEsIHRocmVzaG9sZCldCiAgICAgICAgZm9yICh4MCwgeTAsIHgxLCB5MSkgaW4gY2VsbHMKICAgIF0KCgpkZWYgcHVzaF9yaWdodF9jZWxsc19hZnRlcihjZWxscywgdGhyZXNob2xkKToKICAgIHJldHVybiBbCiAgICAgICAgW2luY3JlbWVudF9pZl9ncmVhdGVyX29yX2VxdWFsKHgwLCB0aHJlc2hvbGQpLCB5MCwgaW5jcmVtZW50X2lmX2dyZWF0ZXJfb3JfZXF1YWwoeDEsIHRocmVzaG9sZCksIHkxXQogICAgICAgIGZvciAoeDAsIHkwLCB4MSwgeTEpIGluIGNlbGxzCiAgICBdCgoKZGVmIHB1c2hfZG93bl9jZWxsc19hZnRlcihjZWxscywgdGhyZXNob2xkKToKICAgIHJldHVybiBbCiAgICAgICAgW3gwLCBpbmNyZW1lbnRfaWZfZ3JlYXRlcl9vcl9lcXVhbCh5MCwgdGhyZXNob2xkKSwgeDEsIGluY3JlbWVudF9pZl9ncmVhdGVyX29yX2VxdWFsKHkxLCB0aHJlc2hvbGQpXQogICAgICAgIGZvciAoeDAsIHkwLCB4MSwgeTEpIGluIGNlbGxzCiAgICBdCgoKZGVmIHB1bGxfbGVmdF9jZWxsc19hZnRlcihjZWxscywgdGhyZXNob2xkKToKICAgIHJldHVybiBbCiAgICAgICAgW2RlY3JlbWVudF9pZl9ncmVhdGVyKHgwLCB0aHJlc2hvbGQpLCB5MCwgZGVjcmVtZW50X2lmX2dyZWF0ZXIoeDEsIHRocmVzaG9sZCksIHkxXQogICAgICAgIGZvciAoeDAsIHkwLCB4MSwgeTEpIGluIGNlbGxzCiAgICBdCgoKZGVmIG9wcG9zaXRlX2RpcmVjdGlvbihkaXJlY3Rpb24pOgogICAgaWYgZGlyZWN0aW9uID09ICJ1cCI6CiAgICAgICAgcmV0dXJuICJkb3duIgogICAgaWYgZGlyZWN0aW9uID09ICJyaWdodCI6CiAgICAgICAgcmV0dXJuICJsZWZ0IgogICAgaWYgZGlyZWN0aW9uID09ICJkb3duIjoKICAgICAgICByZXR1cm4gInVwIgogICAgaWYgZGlyZWN0aW9uID09ICJsZWZ0IjoKICAgICAgICByZXR1cm4gInJpZ2h0IgoKCmRlZiBjZWxsc19hZGphY2VudF90b19jZWxsX2luX2RpcmVjdGlvbihjZWxscywgY2VsbCwgZGlyZWN0aW9uKToKICAgIGlmIGRpcmVjdGlvbiA9PSAidXAiOgogICAgICAgIHJldHVybiBbYyBmb3IgYyBpbiBjZWxscyBpZiBjZWxsW1lNSU5dID09IGNbWU1BWF1dCiAgICBpZiBkaXJlY3Rpb24gPT0gInJpZ2h0IjoKICAgICAgICByZXR1cm4gW2MgZm9yIGMgaW4gY2VsbHMgaWYgY2VsbFtYTUFYXSA9PSBjW1hNSU5dXQogICAgaWYgZGlyZWN0aW9uID09ICJkb3duIjoKICAgICAgICByZXR1cm4gW2MgZm9yIGMgaW4gY2VsbHMgaWYgY2VsbFtZTUFYXSA9PSBjW1lNSU5dXQogICAgaWYgZGlyZWN0aW9uID09ICJsZWZ0IjoKICAgICAgICByZXR1cm4gW2MgZm9yIGMgaW4gY2VsbHMgaWYgY2VsbFtYTUlOXSA9PSBjW1hNQVhdXQogICAgcmFpc2UgRXhjZXB0aW9uKCdVbnN1cHBvcnRlZCBkaXJlY3Rpb24gInt9IicuZm9ybWF0KGRpcmVjdGlvbikpCgoKY2xhc3MgV2l0aFNldHRpbmdzOgogICAgX3NldHRpbmdzID0gTm9uZQoKICAgIGRlZiBzZXR0aW5ncyhzZWxmKToKICAgICAgICBpZiBzZWxmLl9zZXR0aW5ncyBpcyBOb25lOgogICAgICAgICAgICBzZWxmLl9zZXR0aW5ncyA9IHN1YmxpbWUubG9hZF9zZXR0aW5ncyhTRVRUSU5HU19GSUxFTkFNRSkKICAgICAgICByZXR1cm4gc2VsZi5fc2V0dGluZ3MKCgpjbGFzcyBQYW5lQ29tbWFuZChzdWJsaW1lX3BsdWdpbi5XaW5kb3dDb21tYW5kKToKICAgICIiIkFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIGNvbW1hbmRzLiIiIgoKICAgIGRlZiBnZXRfbGF5b3V0KHNlbGYpOgogICAgICAgIGxheW91dCA9IHNlbGYud2luZG93LmxheW91dCgpCiAgICAgICAgcm93cyA9IGxheW91dFsicm93cyJdCiAgICAgICAgY29scyA9IGxheW91dFsiY29scyJdCiAgICAgICAgY2VsbHMgPSBsYXlvdXRbImNlbGxzIl0KICAgICAgICByZXR1cm4gcm93cywgY29scywgY2VsbHMKCiAgICBkZWYgZ2V0X2NlbGxzKHNlbGYpOgogICAgICAgIHJldHVybiBzZWxmLmdldF9sYXlvdXQoKVsyXQoKICAgIGRlZiBhZGphY2VudF9jZWxsKHNlbGYsIGRpcmVjdGlvbik6CiAgICAgICAgY2VsbHMgPSBzZWxmLmdldF9jZWxscygpCiAgICAgICAgY3VycmVudF9jZWxsID0gY2VsbHNbc2VsZi53aW5kb3cuYWN0aXZlX2dyb3VwKCldCiAgICAgICAgYWRqYWNlbnRfY2VsbHMgPSBjZWxsc19hZGphY2VudF90b19jZWxsX2luX2RpcmVjdGlvbihjZWxscywgY3VycmVudF9jZWxsLCBkaXJlY3Rpb24pCiAgICAgICAgcm93cywgY29scywgXyA9IHNlbGYuZ2V0X2xheW91dCgpCgogICAgICAgIGlmIGRpcmVjdGlvbiBpbiAoImxlZnQiLCAicmlnaHQiKToKICAgICAgICAgICAgTUlOLCBNQVgsIGZpZWxkcyA9IFlNSU4sIFlNQVgsIHJvd3MKICAgICAgICBlbHNlOiAgIyB1cCBvciBkb3duCiAgICAgICAgICAgIE1JTiwgTUFYLCBmaWVsZHMgPSBYTUlOLCBYTUFYLCBjb2xzCgogICAgICAgIGNlbGxfb3ZlcmxhcCA9IFtdCiAgICAgICAgZm9yIGNlbGwgaW4gYWRqYWNlbnRfY2VsbHM6CiAgICAgICAgICAgIHN0YXJ0ID0gbWF4KGZpZWxkc1tjZWxsW01JTl1dLCBmaWVsZHNbY3VycmVudF9jZWxsW01JTl1dKQogICAgICAgICAgICBlbmQgPSBtaW4oZmllbGRzW2NlbGxbTUFYXV0sIGZpZWxkc1tjdXJyZW50X2NlbGxbTUFYXV0pCiAgICAgICAgICAgIG92ZXJsYXAgPSBlbmQgLSBzdGFydCAgIyAvIChmaWVsZHNbY2VsbFtNQVhdXSAtIGZpZWxkc1tjZWxsW01JTl1dKQogICAgICAgICAgICBjZWxsX292ZXJsYXAuYXBwZW5kKG92ZXJsYXApCgogICAgICAgIGlmIGxlbihjZWxsX292ZXJsYXApICE9IDA6CiAgICAgICAgICAgIGNlbGxfaW5kZXggPSBjZWxsX292ZXJsYXAuaW5kZXgobWF4KGNlbGxfb3ZlcmxhcCkpCiAgICAgICAgICAgIHJldHVybiBhZGphY2VudF9jZWxsc1tjZWxsX2luZGV4XQogICAgICAgIHJldHVybiBOb25lCgogICAgZGVmIGR1cGxpY2F0ZWRfdmlld3Moc2VsZiwgb3JpZ2luYWxfZ3JvdXAsIGR1cGxpY2F0aW5nX2dyb3VwKToKICAgICAgICBvcmlnaW5hbF92aWV3cyA9IHNlbGYud2luZG93LnZpZXdzX2luX2dyb3VwKG9yaWdpbmFsX2dyb3VwKQogICAgICAgIG9yaWdpbmFsX2J1ZmZlcnMgPSB7di5idWZmZXJfaWQoKSBmb3IgdiBpbiBvcmlnaW5hbF92aWV3c30KICAgICAgICBwb3RlbnRpYWxfZHVwZV92aWV3cyA9IHNlbGYud2luZG93LnZpZXdzX2luX2dyb3VwKGR1cGxpY2F0aW5nX2dyb3VwKQogICAgICAgIHJldHVybiBbcGQgZm9yIHBkIGluIHBvdGVudGlhbF9kdXBlX3ZpZXdzIGlmIHBkLmJ1ZmZlcl9pZCgpIGluIG9yaWdpbmFsX2J1ZmZlcnNdCgogICAgZGVmIHRyYXZlbF90b19wYW5lKHNlbGYsIGRpcmVjdGlvbiwgY3JlYXRlX25ld19pZl9uZWNlc3Nhcnk9RmFsc2UsIGRlc3Ryb3lfb2xkX2lmX2VtcHR5PUZhbHNlKToKICAgICAgICBhZGphY2VudF9jZWxsID0gc2VsZi5hZGphY2VudF9jZWxsKGRpcmVjdGlvbikKICAgICAgICBpZiBhZGphY2VudF9jZWxsOgogICAgICAgICAgICBjZWxscyA9IHNlbGYuZ2V0X2NlbGxzKCkKICAgICAgICAgICAgbmV3X2dyb3VwX2luZGV4ID0gY2VsbHMuaW5kZXgoYWRqYWNlbnRfY2VsbCkKICAgICAgICAgICAgc2VsZi53aW5kb3cuZm9jdXNfZ3JvdXAobmV3X2dyb3VwX2luZGV4KQogICAgICAgICAgICBpZiBkZXN0cm95X29sZF9pZl9lbXB0eToKICAgICAgICAgICAgICAgIHNlbGYuZGVzdHJveV9wYW5lKG9wcG9zaXRlX2RpcmVjdGlvbihkaXJlY3Rpb24pLCBUcnVlKQogICAgICAgIGVsaWYgY3JlYXRlX25ld19pZl9uZWNlc3Nhcnk6CiAgICAgICAgICAgIHNlbGYuY3JlYXRlX3BhbmUoZGlyZWN0aW9uLCBUcnVlLCBkZXN0cm95X29sZF9pZl9lbXB0eSkKCiAgICBkZWYgY2FycnlfZmlsZV90b19wYW5lKHNlbGYsIGRpcmVjdGlvbiwgY3JlYXRlX25ld19pZl9uZWNlc3Nhcnk9RmFsc2UsIGRlc3Ryb3lfb2xkX2lmX2VtcHR5PUZhbHNlKToKICAgICAgICB2aWV3ID0gc2VsZi53aW5kb3cuYWN0aXZlX3ZpZXcoKQogICAgICAgIGlmIHZpZXcgaXMgTm9uZToKICAgICAgICAgICAgIyBJZiB3ZSdyZSBpbiBhbiBlbXB0eSBncm91cCwgdGhlcmUncyBubyBhY3RpdmUgdmlldwogICAgICAgICAgICByZXR1cm4KICAgICAgICB3aW5kb3cgPSBzZWxmLndpbmRvdwogICAgICAgIHNlbGYudHJhdmVsX3RvX3BhbmUoZGlyZWN0aW9uLCBjcmVhdGVfbmV3X2lmX25lY2Vzc2FyeSkKCiAgICAgICAgYWN0aXZlX2dyb3VwID0gd2luZG93LmFjdGl2ZV9ncm91cCgpCiAgICAgICAgdmlld3NfaW5fZ3JvdXAgPSB3aW5kb3cudmlld3NfaW5fZ3JvdXAoYWN0aXZlX2dyb3VwKQogICAgICAgIHdpbmRvdy5zZXRfdmlld19pbmRleCh2aWV3LCBhY3RpdmVfZ3JvdXAsIGxlbih2aWV3c19pbl9ncm91cCkpCiAgICAgICAgc3VibGltZS5zZXRfdGltZW91dChsYW1iZGE6IHdpbmRvdy5mb2N1c192aWV3KHZpZXcpKQoKICAgICAgICBpZiBkZXN0cm95X29sZF9pZl9lbXB0eToKICAgICAgICAgICAgc2VsZi5kZXN0cm95X3BhbmUob3Bwb3NpdGVfZGlyZWN0aW9uKGRpcmVjdGlvbiksIFRydWUpCgogICAgZGVmIGNsb25lX2ZpbGVfdG9fcGFuZShzZWxmLCBkaXJlY3Rpb24sIGNyZWF0ZV9uZXdfaWZfbmVjZXNzYXJ5PUZhbHNlKToKICAgICAgICB3aW5kb3cgPSBzZWxmLndpbmRvdwogICAgICAgIHZpZXcgPSB3aW5kb3cuYWN0aXZlX3ZpZXcoKQogICAgICAgIGlmIHZpZXcgaXMgTm9uZToKICAgICAgICAgICAgIyBJZiB3ZSdyZSBpbiBhbiBlbXB0eSBncm91cCwgdGhlcmUncyBubyBhY3RpdmUgdmlldwogICAgICAgICAgICByZXR1cm4KICAgICAgICBncm91cCwgb3JpZ2luYWxfaW5kZXggPSB3aW5kb3cuZ2V0X3ZpZXdfaW5kZXgodmlldykKICAgICAgICB3aW5kb3cucnVuX2NvbW1hbmQoImNsb25lX2ZpbGUiKQoKICAgICAgICAjIElmIHdlIG1vdmUgdGhlIGNsb25lZCBmaWxlJ3MgdGFiIHRvIHRoZSBsZWZ0IG9mIHRoZSBvcmlnaW5hbCdzLAogICAgICAgICMgdGhlbiB3aGVuIHdlIHJlbW92ZSBpdCBmcm9tIHRoZSBncm91cCwgZm9jdXMgd2lsbCBmYWxsIHRvIHRoZQogICAgICAgICMgb3JpZ2luYWwgdmlldy4KICAgICAgICBuZXdfdmlldyA9IHdpbmRvdy5hY3RpdmVfdmlldygpCiAgICAgICAgaWYgbmV3X3ZpZXcgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgd2luZG93LnNldF92aWV3X2luZGV4KG5ld192aWV3LCBncm91cCwgb3JpZ2luYWxfaW5kZXgpCgogICAgICAgICMgRml4IHRoZSBuZXcgdmlldydzIHNlbGVjdGlvbiBhbmQgdmlld3BvcnQKICAgICAgICBuZXdfc2VsID0gbmV3X3ZpZXcuc2VsKCkKICAgICAgICBuZXdfc2VsLmNsZWFyKCkKICAgICAgICBmb3IgcyBpbiB2aWV3LnNlbCgpOgogICAgICAgICAgICBuZXdfc2VsLmFkZChzKQogICAgICAgIHN1YmxpbWUuc2V0X3RpbWVvdXQobGFtYmRhOiBuZXdfdmlldy5zZXRfdmlld3BvcnRfcG9zaXRpb24odmlldy52aWV3cG9ydF9wb3NpdGlvbigpLCBGYWxzZSksIDApCgogICAgICAgIHNlbGYuY2FycnlfZmlsZV90b19wYW5lKGRpcmVjdGlvbiwgY3JlYXRlX25ld19pZl9uZWNlc3NhcnkpCgogICAgZGVmIHJlb3JkZXJfcGFuZXMoc2VsZiwgbGVhdmVfZmlsZXNfYXRfcG9zaXRpb249VHJ1ZSk6CiAgICAgICAgb2xkX2luZGV4ID0gc2VsZi53aW5kb3cuYWN0aXZlX2dyb3VwKCkKICAgICAgICBvbl9kb25lID0gcGFydGlhbChzZWxmLl9vbl9yZW9yZGVyX2RvbmUsIG9sZF9pbmRleCwgbGVhdmVfZmlsZXNfYXRfcG9zaXRpb24pCiAgICAgICAgdmlldyA9IHNlbGYud2luZG93LnNob3dfaW5wdXRfcGFuZWwoImVudGVyIG5ldyBpbmRleCIsIHN0cihvbGRfaW5kZXggKyAxKSwgb25fZG9uZSwgTm9uZSwgTm9uZSkKICAgICAgICB2aWV3LnNlbCgpLmNsZWFyKCkKICAgICAgICB2aWV3LnNlbCgpLmFkZChzdWJsaW1lLlJlZ2lvbigwLCB2aWV3LnNpemUoKSkpCgogICAgZGVmIF9vbl9yZW9yZGVyX2RvbmUoc2VsZiwgb2xkX2luZGV4LCBsZWF2ZV9maWxlc19hdF9wb3NpdGlvbiwgdGV4dCk6CiAgICAgICAgdHJ5OgogICAgICAgICAgICBuZXdfaW5kZXggPSBpbnQodGV4dCkgLSAxCiAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CiAgICAgICAgICAgIHJldHVybgoKICAgICAgICByb3dzLCBjb2xzLCBjZWxscyA9IHNlbGYuZ2V0X2xheW91dCgpCgogICAgICAgIGlmIG5ld19pbmRleCA8IDAgb3IgbmV3X2luZGV4ID49IGxlbihjZWxscyk6CiAgICAgICAgICAgIHJldHVybgoKICAgICAgICBjZWxsc1tvbGRfaW5kZXhdLCBjZWxsc1tuZXdfaW5kZXhdID0gY2VsbHNbbmV3X2luZGV4XSwgY2VsbHNbb2xkX2luZGV4XQoKICAgICAgICBpZiBsZWF2ZV9maWxlc19hdF9wb3NpdGlvbjoKICAgICAgICAgICAgb2xkX2ZpbGVzID0gc2VsZi53aW5kb3cudmlld3NfaW5fZ3JvdXAob2xkX2luZGV4KQogICAgICAgICAgICBuZXdfZmlsZXMgPSBzZWxmLndpbmRvdy52aWV3c19pbl9ncm91cChuZXdfaW5kZXgpCiAgICAgICAgICAgIGZvciBwb3NpdGlvbiwgdiBpbiBlbnVtZXJhdGUob2xkX2ZpbGVzKToKICAgICAgICAgICAgICAgIHNlbGYud2luZG93LnNldF92aWV3X2luZGV4KHYsIG5ld19pbmRleCwgcG9zaXRpb24pCiAgICAgICAgICAgIGZvciBwb3NpdGlvbiwgdiBpbiBlbnVtZXJhdGUobmV3X2ZpbGVzKToKICAgICAgICAgICAgICAgIHNlbGYud2luZG93LnNldF92aWV3X2luZGV4KHYsIG9sZF9pbmRleCwgcG9zaXRpb24pCgogICAgICAgIGxheW91dCA9IHsiY29scyI6IGNvbHMsICJyb3dzIjogcm93cywgImNlbGxzIjogY2VsbHN9ICAjIHR5cGU6IHN1YmxpbWUuTGF5b3V0CiAgICAgICAgc2VsZi53aW5kb3cuc2V0X2xheW91dChsYXlvdXQpCgogICAgZGVmIHJlc2l6ZV9wYW5lcyhzZWxmLCBvcmllbnRhdGlvbiwgbW9kZSk6CiAgICAgICAgcm93cywgY29scywgY2VsbHMgPSBzZWxmLmdldF9sYXlvdXQoKQoKICAgICAgICBpZiBvcmllbnRhdGlvbiA9PSAiY29scyI6CiAgICAgICAgICAgIGRhdGEgPSBjb2xzCiAgICAgICAgICAgIG1pbjEgPSBZTUlOCiAgICAgICAgICAgIG1heDEgPSBZTUFYCiAgICAgICAgICAgIG1pbjIgPSBYTUlOCiAgICAgICAgICAgIG1heDIgPSBYTUFYCiAgICAgICAgZWxpZiBvcmllbnRhdGlvbiA9PSAicm93cyI6CiAgICAgICAgICAgIGRhdGEgPSByb3dzCiAgICAgICAgICAgIG1pbjEgPSBYTUlOCiAgICAgICAgICAgIG1heDEgPSBYTUFYCiAgICAgICAgICAgIG1pbjIgPSBZTUlOCiAgICAgICAgICAgIG1heDIgPSBZTUFYCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdVbnN1cHBvcnRlZCBvcmllbnRhdGlvbiAie30iJy5mb3JtYXQob3JpZW50YXRpb24pKQoKICAgICAgICByZWxldmFudF9pbmRleCA9IHNldCgpCgogICAgICAgIGlmIG1vZGUgPT0gIkJFRk9SRSI6CiAgICAgICAgICAgIGN1cnJlbnRfY2VsbCA9IGNlbGxzW3NlbGYud2luZG93LmFjdGl2ZV9ncm91cCgpXQogICAgICAgICAgICByZWxldmFudF9pbmRleC5hZGQoY3VycmVudF9jZWxsW21pbjJdKQoKICAgICAgICBlbGlmIG1vZGUgPT0gIkFGVEVSIjoKICAgICAgICAgICAgY3VycmVudF9jZWxsID0gY2VsbHNbc2VsZi53aW5kb3cuYWN0aXZlX2dyb3VwKCldCiAgICAgICAgICAgIHJlbGV2YW50X2luZGV4LmFkZChjdXJyZW50X2NlbGxbbWF4Ml0pCgogICAgICAgIGVsaWYgbW9kZSA9PSAiTkVBUkVTVCI6CiAgICAgICAgICAgIGN1cnJlbnRfY2VsbCA9IGNlbGxzW3NlbGYud2luZG93LmFjdGl2ZV9ncm91cCgpXQogICAgICAgICAgICByZWxldmFudF9pbmRleC51cGRhdGUoKGN1cnJlbnRfY2VsbFttaW4yXSwgY3VycmVudF9jZWxsW21heDJdKSkKCiAgICAgICAgZWxpZiBtb2RlID09ICJSRUxFVkFOVCI6CiAgICAgICAgICAgIGN1cnJlbnRfY2VsbCA9IGNlbGxzW3NlbGYud2luZG93LmFjdGl2ZV9ncm91cCgpXQogICAgICAgICAgICBtaW5fdmFsMSA9IGN1cnJlbnRfY2VsbFttaW4xXQogICAgICAgICAgICBtYXhfdmFsMSA9IGN1cnJlbnRfY2VsbFttYXgxXQogICAgICAgICAgICBmb3IgYyBpbiBjZWxsczoKICAgICAgICAgICAgICAgIG1pbl92YWwyID0gY1ttaW4xXQogICAgICAgICAgICAgICAgbWF4X3ZhbDIgPSBjW21heDFdCiAgICAgICAgICAgICAgICBpZiBtaW5fdmFsMSA+PSBtYXhfdmFsMiBvciBtaW5fdmFsMiA+PSBtYXhfdmFsMToKICAgICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgICAgcmVsZXZhbnRfaW5kZXgudXBkYXRlKChjW21pbjJdLCBjW21heDJdKSkKCiAgICAgICAgZWxpZiBtb2RlID09ICJBTEwiOgogICAgICAgICAgICByZWxldmFudF9pbmRleC51cGRhdGUocmFuZ2UobGVuKGRhdGEpKSkKCiAgICAgICAgcmVsZXZhbnRfaW5kZXguZGlmZmVyZW5jZV91cGRhdGUoKDAsIGxlbihkYXRhKSAtIDEpKSAgIyBkb250IHNob3cgdGhlIGZpcnN0IGFuZCBsYXN0IHZhbHVlIChpdCdzIGFsd2F5cyAwIGFuZCAxKQogICAgICAgIHJlbGV2YW50X2luZGV4ID0gc29ydGVkKHJlbGV2YW50X2luZGV4KQoKICAgICAgICB0ZXh0ID0gIiwgIi5qb2luKHN0cihkYXRhW2ldKSBmb3IgaSBpbiByZWxldmFudF9pbmRleCkKICAgICAgICBvbl9kb25lID0gcGFydGlhbChzZWxmLl9vbl9yZXNpemVfcGFuZXMsIG9yaWVudGF0aW9uLCBjZWxscywgcmVsZXZhbnRfaW5kZXgsIGRhdGEpCiAgICAgICAgb25fdXBkYXRlID0gcGFydGlhbChzZWxmLl9vbl9yZXNpemVfcGFuZXNfdXBkYXRlLCBvcmllbnRhdGlvbiwgY2VsbHMsIHJlbGV2YW50X2luZGV4LCBkYXRhKQogICAgICAgIG9uX2NhbmNsZSA9IHBhcnRpYWwoc2VsZi5fb25fcmVzaXplX3BhbmVzLCBvcmllbnRhdGlvbiwgY2VsbHMsIHJlbGV2YW50X2luZGV4LCBkYXRhLCB0ZXh0KQogICAgICAgIHZpZXcgPSBzZWxmLndpbmRvdy5zaG93X2lucHV0X3BhbmVsKG9yaWVudGF0aW9uLCB0ZXh0LCBvbl9kb25lLCBvbl91cGRhdGUsIG9uX2NhbmNsZSkKICAgICAgICB2aWV3LnNlbCgpLmNsZWFyKCkKICAgICAgICB2aWV3LnNlbCgpLmFkZChzdWJsaW1lLlJlZ2lvbigwLCB2aWV3LnNpemUoKSkpCgogICAgZGVmIF9vbl9yZXNpemVfcGFuZXNfZ2V0X2xheW91dChzZWxmLCBvcmllbnRhdGlvbiwgY2VsbHMsIHJlbGV2YW50X2luZGV4LCBvcmlnX2RhdGEsIHRleHQpOgogICAgICAgIHJvd3MsIGNvbHMsIF8gPSBzZWxmLmdldF9sYXlvdXQoKQoKICAgICAgICBpbnB1dF9kYXRhID0gW2Zsb2F0KHgpIGZvciB4IGluIHRleHQuc3BsaXQoIiwiKV0KICAgICAgICBpZiBhbnkoZCA+IDEuMCBmb3IgZCBpbiBpbnB1dF9kYXRhKToKICAgICAgICAgICAgcmV0dXJuIHsiY29scyI6IGNvbHMsICJyb3dzIjogcm93cywgImNlbGxzIjogY2VsbHN9CgogICAgICAgIGNlbGxzID0gY29weS5kZWVwY29weShjZWxscykKICAgICAgICBkYXRhID0gY29weS5kZWVwY29weShvcmlnX2RhdGEpCiAgICAgICAgZm9yIGksIGQgaW4gemlwKHJlbGV2YW50X2luZGV4LCBpbnB1dF9kYXRhKToKICAgICAgICAgICAgZGF0YVtpXSA9IGQKCiAgICAgICAgZGF0YSA9IHNvcnRlZChlbnVtZXJhdGUoZGF0YSksIGtleT1sYW1iZGEgeDogeFsxXSkgICMgc29ydCBzdWNoIHRoYXQgeW91IGNhbiBzd2FwIGdyaWQgbGluZXMKICAgICAgICBpbmRleGVzLCBkYXRhID0gbWFwKGxpc3QsIHppcCgqZGF0YSkpICAjIGluZGV4ZXMgYXJlIGFsc28gc29ydGVkCgogICAgICAgIHJldmVsYW50X2NlbGxfZW50cmllcyA9IFtdCiAgICAgICAgaWYgb3JpZW50YXRpb24gPT0gImNvbHMiOgogICAgICAgICAgICByZXZlbGFudF9jZWxsX2VudHJpZXMgPSBbWE1JTiwgWE1BWF0KICAgICAgICBlbGlmIG9yaWVudGF0aW9uID09ICJyb3dzIjoKICAgICAgICAgICAgcmV2ZWxhbnRfY2VsbF9lbnRyaWVzID0gW1lNSU4sIFlNQVhdCgogICAgICAgICMgY2hhbmdlIHRoZSBjZWxsIGJvdW5kYXJpZXMgYWNjb3JkaW5nIHRvIHRoZSBzb3J0ZWQgaW5kZXhlcwogICAgICAgIGZvciBjZWxsIGluIGNlbGxzOgogICAgICAgICAgICBmb3IgaiBpbiByZXZlbGFudF9jZWxsX2VudHJpZXM6CiAgICAgICAgICAgICAgICBmb3IgbmV3LCBvbGQgaW4gZW51bWVyYXRlKGluZGV4ZXMpOgogICAgICAgICAgICAgICAgICAgIGlmIG5ldyAhPSBvbGQgYW5kIGNlbGxbal0gPT0gbmV3OgogICAgICAgICAgICAgICAgICAgICAgICBjZWxsW2pdID0gb2xkCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCgogICAgICAgIGlmIG9yaWVudGF0aW9uID09ICJjb2xzIjoKICAgICAgICAgICAgaWYgbGVuKGNvbHMpID09IGxlbihkYXRhKToKICAgICAgICAgICAgICAgIGNvbHMgPSBkYXRhCiAgICAgICAgZWxpZiBvcmllbnRhdGlvbiA9PSAicm93cyI6CiAgICAgICAgICAgIGlmIGxlbihyb3dzKSA9PSBsZW4oZGF0YSk6CiAgICAgICAgICAgICAgICByb3dzID0gZGF0YQoKICAgICAgICByZXR1cm4geyJjb2xzIjogY29scywgInJvd3MiOiByb3dzLCAiY2VsbHMiOiBjZWxsc30KCiAgICBkZWYgX29uX3Jlc2l6ZV9wYW5lc191cGRhdGUoc2VsZiwgb3JpZW50YXRpb24sIGNlbGxzLCByZWxldmFudF9pbmRleCwgb3JpZ19kYXRhLCB0ZXh0KToKICAgICAgICBsYXlvdXQgPSBzZWxmLl9vbl9yZXNpemVfcGFuZXNfZ2V0X2xheW91dChvcmllbnRhdGlvbiwgY2VsbHMsIHJlbGV2YW50X2luZGV4LCBvcmlnX2RhdGEsIHRleHQpCiAgICAgICAgc2VsZi53aW5kb3cuc2V0X2xheW91dChsYXlvdXQpCgogICAgZGVmIF9vbl9yZXNpemVfcGFuZXMoc2VsZiwgb3JpZW50YXRpb24sIGNlbGxzLCByZWxldmFudF9pbmRleCwgb3JpZ19kYXRhLCB0ZXh0KToKICAgICAgICBsYXlvdXQgPSBzZWxmLl9vbl9yZXNpemVfcGFuZXNfZ2V0X2xheW91dChvcmllbnRhdGlvbiwgY2VsbHMsIHJlbGV2YW50X2luZGV4LCBvcmlnX2RhdGEsIHRleHQpCiAgICAgICAgc2VsZi53aW5kb3cuc2V0X2xheW91dChsYXlvdXQpCgoKICAgIGRlZiB6b29tX3BhbmUoc2VsZiwgYXV0b196b29tKToKICAgICAgICBmcmFjdGlvbl9ob3Jpem9udGFsID0gLjkKICAgICAgICBmcmFjdGlvbl92ZXJ0aWNhbCA9IC45CiAgICAgICAgCiAgICAgICAgaWYgaXNpbnN0YW5jZShhdXRvX3pvb20sIGZsb2F0KSBvciBpc2luc3RhbmNlKGF1dG9fem9vbSwgaW50KToKICAgICAgICAgICAgZnJhY3Rpb25faG9yaXpvbnRhbCA9IGF1dG9fem9vbQogICAgICAgIGVsaWYgaXNpbnN0YW5jZShhdXRvX3pvb20sIGxpc3QpOgogICAgICAgICAgICBmcmFjdGlvbl9ob3Jpem9udGFsID0gYXV0b196b29tWzBdCiAgICAgICAgICAgIGZyYWN0aW9uX3ZlcnRpY2FsID0gYXV0b196b29tWzFdCgogICAgICAgIGZyYWN0aW9uX2hvcml6b250YWwgPSBtaW4oMSwgbWF4KDAsIGZyYWN0aW9uX2hvcml6b250YWwpKQogICAgICAgIGZyYWN0aW9uX3ZlcnRpY2FsICA9IG1pbigxLCBtYXgoMCwgZnJhY3Rpb25fdmVydGljYWwpKQoKICAgICAgICB3aW5kb3cgPSBzZWxmLndpbmRvdwogICAgICAgIHJvd3MsIGNvbHMsIGNlbGxzID0gc2VsZi5nZXRfbGF5b3V0KCkKICAgICAgICBjdXJyZW50X2NlbGwgPSBjZWxsc1t3aW5kb3cuYWN0aXZlX2dyb3VwKCldCgogICAgICAgIGN1cnJlbnRfY29sID0gY3VycmVudF9jZWxsWzBdCiAgICAgICAgbnVtX2NvbHMgPSBsZW4oY29scykgLSAxCgogICAgICAgICMgVE9ETzogdGhlIHNpemVzIG9mIHRoZSB1bnpvb21lZCBwYW5lcyBhcmUgY2FsY3VsYXRlZCBpbmNvcnJlY3RseSBpZiB0aGUKICAgICAgICAjICAgICAgIHVuem9vbWVkIHBhbmVzIGhhdmUgYSBzcGxpdCB0aGF0IG92ZXJsYXBzIHRoZSB6b29tZWQgcGFuZS4KICAgICAgICBjdXJyZW50X2NvbF93aWR0aCA9IDEgaWYgbnVtX2NvbHMgPT0gMSBlbHNlIGZyYWN0aW9uX2hvcml6b250YWwKICAgICAgICBvdGhlcl9jb2xfd2lkdGggPSAwIGlmIG51bV9jb2xzID09IDEgZWxzZSAoMSAtIGN1cnJlbnRfY29sX3dpZHRoKSAvIChudW1fY29scyAtIDEpCgogICAgICAgIGNvbHMgPSBbMC4wXQogICAgICAgIGZvciBpIGluIHJhbmdlKG51bV9jb2xzKToKICAgICAgICAgICAgY29scy5hcHBlbmQoY29sc1tpXSArIChjdXJyZW50X2NvbF93aWR0aCBpZiBpID09IGN1cnJlbnRfY29sIGVsc2Ugb3RoZXJfY29sX3dpZHRoKSkKCiAgICAgICAgY3VycmVudF9yb3cgPSBjdXJyZW50X2NlbGxbMV0KICAgICAgICBudW1fcm93cyA9IGxlbihyb3dzKSAtIDEKCiAgICAgICAgIyBjdXJyZW50X3Jvd19oZWlnaHQgPSAxIGlmIG51bV9yb3dzID09IDEgZWxzZSBmcmFjdGlvbl9ob3Jpem9udGFsCiAgICAgICAgY3VycmVudF9yb3dfaGVpZ2h0ID0gMSBpZiBudW1fcm93cyA9PSAxIGVsc2UgZnJhY3Rpb25fdmVydGljYWwKICAgICAgICBvdGhlcl9yb3dfaGVpZ2h0ID0gMCBpZiBudW1fcm93cyA9PSAxIGVsc2UgKDEgLSBjdXJyZW50X3Jvd19oZWlnaHQpIC8gKG51bV9yb3dzIC0gMSkKICAgICAgICByb3dzID0gWzAuMF0KICAgICAgICBmb3IgaSBpbiByYW5nZShudW1fcm93cyk6CiAgICAgICAgICAgIHJvd3MuYXBwZW5kKHJvd3NbaV0gKyAoY3VycmVudF9yb3dfaGVpZ2h0IGlmIGkgPT0gY3VycmVudF9yb3cgZWxzZSBvdGhlcl9yb3dfaGVpZ2h0KSkKCiAgICAgICAgbGF5b3V0ID0geyJjb2xzIjogY29scywgInJvd3MiOiByb3dzLCAiY2VsbHMiOiBjZWxsc30gICMgdHlwZTogc3VibGltZS5MYXlvdXQKICAgICAgICB3aW5kb3cuc2V0X2xheW91dChsYXlvdXQpCgogICAgZGVmIHVuem9vbV9wYW5lKHNlbGYpOgogICAgICAgIHdpbmRvdyA9IHNlbGYud2luZG93CiAgICAgICAgcm93cywgY29scywgY2VsbHMgPSBzZWxmLmdldF9sYXlvdXQoKQoKICAgICAgICBudW1fY29scyA9IGxlbihjb2xzKSAtIDEKICAgICAgICBjb2xfd2lkdGggPSAxLjAgLyBudW1fY29scwoKICAgICAgICBjb2xzID0gWzAuMF0KICAgICAgICBmb3IgaSBpbiByYW5nZShudW1fY29scyk6CiAgICAgICAgICAgIGNvbHMuYXBwZW5kKGNvbHNbaV0gKyBjb2xfd2lkdGgpCgogICAgICAgIG51bV9yb3dzID0gbGVuKHJvd3MpIC0gMQogICAgICAgIHJvd19oZWlnaHQgPSAxLjAgLyBudW1fcm93cwoKICAgICAgICByb3dzID0gWzAuMF0KICAgICAgICBmb3IgaSBpbiByYW5nZShudW1fcm93cyk6CiAgICAgICAgICAgIHJvd3MuYXBwZW5kKHJvd3NbaV0gKyByb3dfaGVpZ2h0KQoKICAgICAgICBsYXlvdXQgPSB7ImNvbHMiOiBjb2xzLCAicm93cyI6IHJvd3MsICJjZWxscyI6IGNlbGxzfSAgIyB0eXBlOiBzdWJsaW1lLkxheW91dAogICAgICAgIHdpbmRvdy5zZXRfbGF5b3V0KGxheW91dCkKCiAgICBkZWYgdG9nZ2xlX3pvb20oc2VsZiwgZnJhY3Rpb24pOgogICAgICAgIHJvd3MsIGNvbHMsIGNlbGxzID0gc2VsZi5nZXRfbGF5b3V0KCkKICAgICAgICBlcXVhbF9zcGFjaW5nID0gVHJ1ZQoKICAgICAgICBudW1fY29scyA9IGxlbihjb2xzKSAtIDEKICAgICAgICBjb2xfd2lkdGggPSAxIC8gbnVtX2NvbHMKCiAgICAgICAgZm9yIGksIGMgaW4gZW51bWVyYXRlKGNvbHMpOgogICAgICAgICAgICBpZiBjICE9IGkgKiBjb2xfd2lkdGg6CiAgICAgICAgICAgICAgICBlcXVhbF9zcGFjaW5nID0gRmFsc2UKICAgICAgICAgICAgICAgIGJyZWFrCgogICAgICAgIG51bV9yb3dzID0gbGVuKHJvd3MpIC0gMQogICAgICAgIHJvd19oZWlnaHQgPSAxIC8gbnVtX3Jvd3MKCiAgICAgICAgZm9yIGksIHIgaW4gZW51bWVyYXRlKHJvd3MpOgogICAgICAgICAgICBpZiByICE9IGkgKiByb3dfaGVpZ2h0OgogICAgICAgICAgICAgICAgZXF1YWxfc3BhY2luZyA9IEZhbHNlCiAgICAgICAgICAgICAgICBicmVhawoKICAgICAgICBpZiBlcXVhbF9zcGFjaW5nOgogICAgICAgICAgICBzZWxmLnpvb21fcGFuZShmcmFjdGlvbikKICAgICAgICBlbHNlOgogICAgICAgICAgICBzZWxmLnVuem9vbV9wYW5lKCkKCiAgICBkZWYgY3JlYXRlX3BhbmUoc2VsZiwgZGlyZWN0aW9uLCBnaXZlX2ZvY3VzPUZhbHNlLCBkZXN0cm95X29sZF9pZl9lbXB0eT1GYWxzZSk6CiAgICAgICAgd2luZG93ID0gc2VsZi53aW5kb3cKICAgICAgICByb3dzLCBjb2xzLCBjZWxscyA9IHNlbGYuZ2V0X2xheW91dCgpCiAgICAgICAgY3VycmVudF9ncm91cCA9IHdpbmRvdy5hY3RpdmVfZ3JvdXAoKQoKICAgICAgICBvbGRfY2VsbCA9IGNlbGxzLnBvcChjdXJyZW50X2dyb3VwKQogICAgICAgIG5ld19jZWxsID0gW10KCiAgICAgICAgaWYgZGlyZWN0aW9uIGluICgidXAiLCAiZG93biIpOgogICAgICAgICAgICBjZWxscyA9IHB1c2hfZG93bl9jZWxsc19hZnRlcihjZWxscywgb2xkX2NlbGxbWU1BWF0pCiAgICAgICAgICAgIHJvd3MuaW5zZXJ0KG9sZF9jZWxsW1lNQVhdLCAocm93c1tvbGRfY2VsbFtZTUlOXV0gKyByb3dzW29sZF9jZWxsW1lNQVhdXSkgLyAyKQogICAgICAgICAgICBuZXdfY2VsbCA9IFtvbGRfY2VsbFtYTUlOXSwgb2xkX2NlbGxbWU1BWF0sIG9sZF9jZWxsW1hNQVhdLCBvbGRfY2VsbFtZTUFYXSArIDFdCiAgICAgICAgICAgIG9sZF9jZWxsID0gW29sZF9jZWxsW1hNSU5dLCBvbGRfY2VsbFtZTUlOXSwgb2xkX2NlbGxbWE1BWF0sIG9sZF9jZWxsW1lNQVhdXQoKICAgICAgICBlbGlmIGRpcmVjdGlvbiBpbiAoInJpZ2h0IiwgImxlZnQiKToKICAgICAgICAgICAgY2VsbHMgPSBwdXNoX3JpZ2h0X2NlbGxzX2FmdGVyKGNlbGxzLCBvbGRfY2VsbFtYTUFYXSkKICAgICAgICAgICAgY29scy5pbnNlcnQob2xkX2NlbGxbWE1BWF0sIChjb2xzW29sZF9jZWxsW1hNSU5dXSArIGNvbHNbb2xkX2NlbGxbWE1BWF1dKSAvIDIpCiAgICAgICAgICAgIG5ld19jZWxsID0gW29sZF9jZWxsW1hNQVhdLCBvbGRfY2VsbFtZTUlOXSwgb2xkX2NlbGxbWE1BWF0gKyAxLCBvbGRfY2VsbFtZTUFYXV0KICAgICAgICAgICAgb2xkX2NlbGwgPSBbb2xkX2NlbGxbWE1JTl0sIG9sZF9jZWxsW1lNSU5dLCBvbGRfY2VsbFtYTUFYXSwgb2xkX2NlbGxbWU1BWF1dCgogICAgICAgIGlmIG5ld19jZWxsOgogICAgICAgICAgICBpZiBkaXJlY3Rpb24gaW4gKCJsZWZ0IiwgInVwIik6CiAgICAgICAgICAgICAgICBmb2N1c2VkX2NlbGwgPSBuZXdfY2VsbAogICAgICAgICAgICAgICAgdW5mb2N1c2VkX2NlbGwgPSBvbGRfY2VsbAogICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgZm9jdXNlZF9jZWxsID0gb2xkX2NlbGwKICAgICAgICAgICAgICAgIHVuZm9jdXNlZF9jZWxsID0gbmV3X2NlbGwKICAgICAgICAgICAgY2VsbHMuaW5zZXJ0KGN1cnJlbnRfZ3JvdXAsIGZvY3VzZWRfY2VsbCkKICAgICAgICAgICAgY2VsbHMuYXBwZW5kKHVuZm9jdXNlZF9jZWxsKQogICAgICAgICAgICBsYXlvdXQgPSB7ImNvbHMiOiBjb2xzLCAicm93cyI6IHJvd3MsICJjZWxscyI6IGNlbGxzfSAgIyB0eXBlOiBzdWJsaW1lLkxheW91dAogICAgICAgICAgICB3aW5kb3cuc2V0X2xheW91dChsYXlvdXQpCgogICAgICAgICAgICBpZiBnaXZlX2ZvY3VzOgogICAgICAgICAgICAgICAgc2VsZi50cmF2ZWxfdG9fcGFuZShkaXJlY3Rpb24sIEZhbHNlLCBkZXN0cm95X29sZF9pZl9lbXB0eSkKCiAgICBkZWYgZGVzdHJveV9jdXJyZW50X3BhbmUoc2VsZik6CiAgICAgICAgIyBPdXQgb2YgdGhlIGZvdXIgYWRqYWNlbnQgcGFuZXMsIG9uZSB3YXMgc3BsaXQgdG8gY3JlYXRlIHRoaXMgcGFuZS4KICAgICAgICAjIEZpbmQgb3V0IHdoaWNoIG9uZSwgbW92ZSB0byBpdCwgdGhlbiBkZXN0cm95IHRoaXMgcGFuZS4KICAgICAgICBjZWxscyA9IHNlbGYuZ2V0X2NlbGxzKCkKCiAgICAgICAgY3VycmVudCA9IGNlbGxzW3NlbGYud2luZG93LmFjdGl2ZV9ncm91cCgpXQoKICAgICAgICB0YXJnZXRfZGlyID0gTm9uZQogICAgICAgIGZvciBkaXIgaW4gKCJ1cCIsICJyaWdodCIsICJkb3duIiwgImxlZnQiKToKICAgICAgICAgICAgYyA9IHNlbGYuYWRqYWNlbnRfY2VsbChkaXIpCiAgICAgICAgICAgIGlmIG5vdCBjOgogICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgaWYgZGlyIGluICgidXAiLCAiZG93biIpOgogICAgICAgICAgICAgICAgaWYgY1tYTUlOXSA9PSBjdXJyZW50W1hNSU5dIGFuZCBjW1hNQVhdID09IGN1cnJlbnRbWE1BWF06CiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2RpciA9IGRpcgogICAgICAgICAgICBlbGlmIGRpciBpbiAoImxlZnQiLCAicmlnaHQiKToKICAgICAgICAgICAgICAgIGlmIGNbWU1JTl0gPT0gY3VycmVudFtZTUlOXSBhbmQgY1tZTUFYXSA9PSBjdXJyZW50W1lNQVhdOgogICAgICAgICAgICAgICAgICAgIHRhcmdldF9kaXIgPSBkaXIKICAgICAgICBpZiB0YXJnZXRfZGlyOgogICAgICAgICAgICBzZWxmLnRyYXZlbF90b19wYW5lKHRhcmdldF9kaXIpCiAgICAgICAgICAgIHNlbGYuZGVzdHJveV9wYW5lKG9wcG9zaXRlX2RpcmVjdGlvbih0YXJnZXRfZGlyKSkKCiAgICBkZWYgZGVzdHJveV9wYW5lKHNlbGYsIGRpcmVjdGlvbiwgb25seV9vbl9lbXB0eT1GYWxzZSk6CiAgICAgICAgaWYgZGlyZWN0aW9uID09ICJzZWxmIjoKICAgICAgICAgICAgc2VsZi5kZXN0cm95X2N1cnJlbnRfcGFuZSgpCiAgICAgICAgICAgIHJldHVybgoKICAgICAgICB3aW5kb3cgPSBzZWxmLndpbmRvdwogICAgICAgIHJvd3MsIGNvbHMsIGNlbGxzID0gc2VsZi5nZXRfbGF5b3V0KCkKICAgICAgICBjdXJyZW50X2dyb3VwID0gd2luZG93LmFjdGl2ZV9ncm91cCgpCgogICAgICAgIGNlbGxfdG9fcmVtb3ZlID0gTm9uZQogICAgICAgIGN1cnJlbnRfY2VsbCA9IGNlbGxzW2N1cnJlbnRfZ3JvdXBdCgogICAgICAgIGFkamFjZW50X2NlbGxzID0gY2VsbHNfYWRqYWNlbnRfdG9fY2VsbF9pbl9kaXJlY3Rpb24oY2VsbHMsIGN1cnJlbnRfY2VsbCwgZGlyZWN0aW9uKQogICAgICAgIGlmIGxlbihhZGphY2VudF9jZWxscykgPT0gMToKICAgICAgICAgICAgY2VsbF90b19yZW1vdmUgPSBhZGphY2VudF9jZWxsc1swXQoKICAgICAgICBpZiBjZWxsX3RvX3JlbW92ZToKICAgICAgICAgICAgYWN0aXZlX3ZpZXcgPSB3aW5kb3cuYWN0aXZlX3ZpZXcoKQogICAgICAgICAgICBncm91cF90b19yZW1vdmUgPSBjZWxscy5pbmRleChjZWxsX3RvX3JlbW92ZSkKICAgICAgICAgICAgaGFzX2NvbnRlbnQgPSBsZW4od2luZG93LnNoZWV0c19pbl9ncm91cChncm91cF90b19yZW1vdmUpKSA+IDAKICAgICAgICAgICAgaWYgb25seV9vbl9lbXB0eSBhbmQgaGFzX2NvbnRlbnQ6CiAgICAgICAgICAgICAgICByZXR1cm4KCiAgICAgICAgICAgIGR1cGVfdmlld3MgPSBzZWxmLmR1cGxpY2F0ZWRfdmlld3MoY3VycmVudF9ncm91cCwgZ3JvdXBfdG9fcmVtb3ZlKQogICAgICAgICAgICBmb3IgZCBpbiBkdXBlX3ZpZXdzOgogICAgICAgICAgICAgICAgd2luZG93LmZvY3VzX3ZpZXcoZCkKICAgICAgICAgICAgICAgIHdpbmRvdy5ydW5fY29tbWFuZCgnY2xvc2UnKQogICAgICAgICAgICBpZiBhY3RpdmVfdmlldzoKICAgICAgICAgICAgICAgIHdpbmRvdy5mb2N1c192aWV3KGFjdGl2ZV92aWV3KQoKICAgICAgICAgICAgY2VsbHMucmVtb3ZlKGNlbGxfdG9fcmVtb3ZlKQogICAgICAgICAgICBpZiBkaXJlY3Rpb24gPT0gInVwIjoKICAgICAgICAgICAgICAgIHJvd3MucG9wKGNlbGxfdG9fcmVtb3ZlW1lNQVhdKQogICAgICAgICAgICAgICAgYWRqYWNlbnRfY2VsbHMgPSBjZWxsc19hZGphY2VudF90b19jZWxsX2luX2RpcmVjdGlvbihjZWxscywgY2VsbF90b19yZW1vdmUsICJkb3duIikKICAgICAgICAgICAgICAgIGZvciBjZWxsIGluIGFkamFjZW50X2NlbGxzOgogICAgICAgICAgICAgICAgICAgIGNlbGxzW2NlbGxzLmluZGV4KGNlbGwpXVtZTUlOXSA9IGNlbGxfdG9fcmVtb3ZlW1lNSU5dCiAgICAgICAgICAgICAgICBjZWxscyA9IHB1bGxfdXBfY2VsbHNfYWZ0ZXIoY2VsbHMsIGNlbGxfdG9fcmVtb3ZlW1lNQVhdKQogICAgICAgICAgICBlbGlmIGRpcmVjdGlvbiA9PSAicmlnaHQiOgogICAgICAgICAgICAgICAgY29scy5wb3AoY2VsbF90b19yZW1vdmVbWE1JTl0pCiAgICAgICAgICAgICAgICBhZGphY2VudF9jZWxscyA9IGNlbGxzX2FkamFjZW50X3RvX2NlbGxfaW5fZGlyZWN0aW9uKGNlbGxzLCBjZWxsX3RvX3JlbW92ZSwgImxlZnQiKQogICAgICAgICAgICAgICAgZm9yIGNlbGwgaW4gYWRqYWNlbnRfY2VsbHM6CiAgICAgICAgICAgICAgICAgICAgY2VsbHNbY2VsbHMuaW5kZXgoY2VsbCldW1hNQVhdID0gY2VsbF90b19yZW1vdmVbWE1BWF0KICAgICAgICAgICAgICAgIGNlbGxzID0gcHVsbF9sZWZ0X2NlbGxzX2FmdGVyKGNlbGxzLCBjZWxsX3RvX3JlbW92ZVtYTUlOXSkKICAgICAgICAgICAgZWxpZiBkaXJlY3Rpb24gPT0gImRvd24iOgogICAgICAgICAgICAgICAgcm93cy5wb3AoY2VsbF90b19yZW1vdmVbWU1JTl0pCiAgICAgICAgICAgICAgICBhZGphY2VudF9jZWxscyA9IGNlbGxzX2FkamFjZW50X3RvX2NlbGxfaW5fZGlyZWN0aW9uKGNlbGxzLCBjZWxsX3RvX3JlbW92ZSwgInVwIikKICAgICAgICAgICAgICAgIGZvciBjZWxsIGluIGFkamFjZW50X2NlbGxzOgogICAgICAgICAgICAgICAgICAgIGNlbGxzW2NlbGxzLmluZGV4KGNlbGwpXVtZTUFYXSA9IGNlbGxfdG9fcmVtb3ZlW1lNQVhdCiAgICAgICAgICAgICAgICBjZWxscyA9IHB1bGxfdXBfY2VsbHNfYWZ0ZXIoY2VsbHMsIGNlbGxfdG9fcmVtb3ZlW1lNSU5dKQogICAgICAgICAgICBlbGlmIGRpcmVjdGlvbiA9PSAibGVmdCI6CiAgICAgICAgICAgICAgICBjb2xzLnBvcChjZWxsX3RvX3JlbW92ZVtYTUFYXSkKICAgICAgICAgICAgICAgIGFkamFjZW50X2NlbGxzID0gY2VsbHNfYWRqYWNlbnRfdG9fY2VsbF9pbl9kaXJlY3Rpb24oY2VsbHMsIGNlbGxfdG9fcmVtb3ZlLCAicmlnaHQiKQogICAgICAgICAgICAgICAgZm9yIGNlbGwgaW4gYWRqYWNlbnRfY2VsbHM6CiAgICAgICAgICAgICAgICAgICAgY2VsbHNbY2VsbHMuaW5kZXgoY2VsbCldW1hNSU5dID0gY2VsbF90b19yZW1vdmVbWE1JTl0KICAgICAgICAgICAgICAgIGNlbGxzID0gcHVsbF9sZWZ0X2NlbGxzX2FmdGVyKGNlbGxzLCBjZWxsX3RvX3JlbW92ZVtYTUFYXSkKCiAgICAgICAgICAgIGxheW91dCA9IHsiY29scyI6IGNvbHMsICJyb3dzIjogcm93cywgImNlbGxzIjogY2VsbHN9ICAjIHR5cGU6IHN1YmxpbWUuTGF5b3V0CiAgICAgICAgICAgIHdpbmRvdy5zZXRfbGF5b3V0KGxheW91dCkKCiAgICBkZWYgcHVsbF9maWxlX2Zyb21fcGFuZShzZWxmLCBkaXJlY3Rpb24pOgogICAgICAgIGFkamFjZW50X2NlbGwgPSBzZWxmLmFkamFjZW50X2NlbGwoZGlyZWN0aW9uKQoKICAgICAgICBpZiBhZGphY2VudF9jZWxsOgogICAgICAgICAgICBjZWxscyA9IHNlbGYuZ2V0X2NlbGxzKCkKICAgICAgICAgICAgZ3JvdXBfaW5kZXggPSBjZWxscy5pbmRleChhZGphY2VudF9jZWxsKQoKICAgICAgICAgICAgdmlldyA9IHNlbGYud2luZG93LmFjdGl2ZV92aWV3X2luX2dyb3VwKGdyb3VwX2luZGV4KQoKICAgICAgICAgICAgaWYgdmlldzoKICAgICAgICAgICAgICAgIGFjdGl2ZV9ncm91cF9pbmRleCA9IHNlbGYud2luZG93LmFjdGl2ZV9ncm91cCgpCiAgICAgICAgICAgICAgICB2aWV3c19pbl9ncm91cCA9IHNlbGYud2luZG93LnZpZXdzX2luX2dyb3VwKGFjdGl2ZV9ncm91cF9pbmRleCkKICAgICAgICAgICAgICAgIHNlbGYud2luZG93LnNldF92aWV3X2luZGV4KHZpZXcsIGFjdGl2ZV9ncm91cF9pbmRleCwgbGVuKHZpZXdzX2luX2dyb3VwKSkKCgpjbGFzcyBUcmF2ZWxUb1BhbmVDb21tYW5kKFBhbmVDb21tYW5kLCBXaXRoU2V0dGluZ3MpOgogICAgZGVmIHJ1bihzZWxmLCBkaXJlY3Rpb24sIGNyZWF0ZV9uZXdfaWZfbmVjZXNzYXJ5PU5vbmUsIGRlc3Ryb3lfb2xkX2lmX2VtcHR5PU5vbmUpOgogICAgICAgIGlmIGNyZWF0ZV9uZXdfaWZfbmVjZXNzYXJ5IGlzIE5vbmU6CiAgICAgICAgICAgIGNyZWF0ZV9uZXdfaWZfbmVjZXNzYXJ5ID0gc2VsZi5zZXR0aW5ncygpLmdldCgnY3JlYXRlX25ld19wYW5lX2lmX25lY2Vzc2FyeScpCiAgICAgICAgaWYgZGVzdHJveV9vbGRfaWZfZW1wdHkgaXMgTm9uZToKICAgICAgICAgICAgZGVzdHJveV9vbGRfaWZfZW1wdHkgPSBzZWxmLnNldHRpbmdzKCkuZ2V0KCdkZXN0cm95X2VtcHR5X3BhbmVzJykKICAgICAgICBzZWxmLnRyYXZlbF90b19wYW5lKGRpcmVjdGlvbiwgY3JlYXRlX25ld19pZl9uZWNlc3NhcnksIGRlc3Ryb3lfb2xkX2lmX2VtcHR5KQoKCmNsYXNzIENhcnJ5RmlsZVRvUGFuZUNvbW1hbmQoUGFuZUNvbW1hbmQsIFdpdGhTZXR0aW5ncyk6CiAgICBkZWYgcnVuKHNlbGYsIGRpcmVjdGlvbiwgY3JlYXRlX25ld19pZl9uZWNlc3Nhcnk9Tm9uZSwgZGVzdHJveV9vbGRfaWZfZW1wdHk9Tm9uZSk6CiAgICAgICAgaWYgY3JlYXRlX25ld19pZl9uZWNlc3NhcnkgaXMgTm9uZToKICAgICAgICAgICAgY3JlYXRlX25ld19pZl9uZWNlc3NhcnkgPSBzZWxmLnNldHRpbmdzKCkuZ2V0KCdjcmVhdGVfbmV3X3BhbmVfaWZfbmVjZXNzYXJ5JykKICAgICAgICBpZiBkZXN0cm95X29sZF9pZl9lbXB0eSBpcyBOb25lOgogICAgICAgICAgICBkZXN0cm95X29sZF9pZl9lbXB0eSA9IHNlbGYuc2V0dGluZ3MoKS5nZXQoJ2Rlc3Ryb3lfZW1wdHlfcGFuZXMnKQogICAgICAgIHNlbGYuY2FycnlfZmlsZV90b19wYW5lKGRpcmVjdGlvbiwgY3JlYXRlX25ld19pZl9uZWNlc3NhcnksIGRlc3Ryb3lfb2xkX2lmX2VtcHR5KQoKCmNsYXNzIENsb25lRmlsZVRvUGFuZUNvbW1hbmQoUGFuZUNvbW1hbmQsIFdpdGhTZXR0aW5ncyk6CiAgICBkZWYgcnVuKHNlbGYsIGRpcmVjdGlvbiwgY3JlYXRlX25ld19pZl9uZWNlc3Nhcnk9Tm9uZSk6CiAgICAgICAgaWYgY3JlYXRlX25ld19pZl9uZWNlc3NhcnkgaXMgTm9uZToKICAgICAgICAgICAgY3JlYXRlX25ld19pZl9uZWNlc3NhcnkgPSBzZWxmLnNldHRpbmdzKCkuZ2V0KCdjcmVhdGVfbmV3X3BhbmVfaWZfbmVjZXNzYXJ5JykKICAgICAgICBzZWxmLmNsb25lX2ZpbGVfdG9fcGFuZShkaXJlY3Rpb24sIGNyZWF0ZV9uZXdfaWZfbmVjZXNzYXJ5KQoKCmNsYXNzIENyZWF0ZVBhbmVXaXRoRmlsZUNvbW1hbmQoUGFuZUNvbW1hbmQpOgogICAgZGVmIHJ1bihzZWxmLCBkaXJlY3Rpb24pOgogICAgICAgIHNlbGYuY3JlYXRlX3BhbmUoZGlyZWN0aW9uKQogICAgICAgIHNlbGYucHVsbF9maWxlX2Zyb21fcGFuZShvcHBvc2l0ZV9kaXJlY3Rpb24oZGlyZWN0aW9uKSkKCgpjbGFzcyBDcmVhdGVQYW5lV2l0aENsb25lZEZpbGVDb21tYW5kKFBhbmVDb21tYW5kKToKICAgIGRlZiBydW4oc2VsZiwgZGlyZWN0aW9uKToKICAgICAgICBzZWxmLmNyZWF0ZV9wYW5lKGRpcmVjdGlvbikKICAgICAgICBzZWxmLmNsb25lX2ZpbGVfdG9fcGFuZShkaXJlY3Rpb24pCgoKY2xhc3MgUHVsbEZpbGVGcm9tUGFuZUNvbW1hbmQoUGFuZUNvbW1hbmQpOgogICAgZGVmIHJ1bihzZWxmLCBkaXJlY3Rpb24pOgogICAgICAgIHNlbGYucHVsbF9maWxlX2Zyb21fcGFuZShkaXJlY3Rpb24pCgoKY2xhc3MgWm9vbVBhbmVDb21tYW5kKFBhbmVDb21tYW5kKToKICAgIGRlZiBydW4oc2VsZiwgZnJhY3Rpb249Tm9uZSk6CiAgICAgICAgc2VsZi56b29tX3BhbmUoZnJhY3Rpb24pCgoKY2xhc3MgVW56b29tUGFuZUNvbW1hbmQoUGFuZUNvbW1hbmQpOgogICAgZGVmIHJ1bihzZWxmKToKICAgICAgICBzZWxmLnVuem9vbV9wYW5lKCkKCgpjbGFzcyBUb2dnbGVab29tUGFuZUNvbW1hbmQoUGFuZUNvbW1hbmQpOgogICAgZGVmIHJ1bihzZWxmLCBmcmFjdGlvbj1Ob25lKToKICAgICAgICBzZWxmLnRvZ2dsZV96b29tKGZyYWN0aW9uKQoKCmNsYXNzIENyZWF0ZVBhbmVDb21tYW5kKFBhbmVDb21tYW5kKToKICAgIGRlZiBydW4oc2VsZiwgZGlyZWN0aW9uLCBnaXZlX2ZvY3VzPUZhbHNlKToKICAgICAgICBzZWxmLmNyZWF0ZV9wYW5lKGRpcmVjdGlvbiwgZ2l2ZV9mb2N1cykKCgpjbGFzcyBEZXN0cm95UGFuZUNvbW1hbmQoUGFuZUNvbW1hbmQpOgogICAgZGVmIHJ1bihzZWxmLCBkaXJlY3Rpb24pOgogICAgICAgIHNlbGYuZGVzdHJveV9wYW5lKGRpcmVjdGlvbikKCgpjbGFzcyBSZXNpemVQYW5lQ29tbWFuZChQYW5lQ29tbWFuZCk6CiAgICBkZWYgcnVuKHNlbGYsIG9yaWVudGF0aW9uLCBtb2RlPU5vbmUpOgogICAgICAgIGlmIG1vZGUgaXMgTm9uZToKICAgICAgICAgICAgbW9kZSA9ICJORUFSRVNUIgogICAgICAgIHNlbGYucmVzaXplX3BhbmVzKG9yaWVudGF0aW9uLCBtb2RlKQoKCmNsYXNzIFJlb3JkZXJQYW5lQ29tbWFuZChQYW5lQ29tbWFuZCk6CiAgICBkZWYgcnVuKHNlbGYpOgogICAgICAgIHNlbGYucmVvcmRlcl9wYW5lcygpCgoKY2xhc3MgU2F2ZUxheW91dENvbW1hbmQoUGFuZUNvbW1hbmQsIFdpdGhTZXR0aW5ncyk6CiAgICAiIiJTYXZlIHRoZSBjdXJyZW50IGxheW91dCBjb25maWd1cmF0aW9uIGluIGEgc2V0dGluZ3MgZmlsZS4iIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgd2luZG93KToKICAgICAgICBzZWxmLndpbmRvdyA9IHdpbmRvdwogICAgICAgIHN1cGVyKFNhdmVMYXlvdXRDb21tYW5kLCBzZWxmKS5fX2luaXRfXyh3aW5kb3cpCgogICAgZGVmIG9uX2RvbmUoc2VsZiwgbmlja25hbWUpOgogICAgICAgIHNhdmVkX2xheW91dHMgPSBzZWxmLnNldHRpbmdzKCkuZ2V0KCdzYXZlZF9sYXlvdXRzJykKICAgICAgICBsYXlvdXRfbmFtZXMgPSBbbGF5b3V0WyduaWNrbmFtZSddIGZvciBsYXlvdXQgaW4gc2F2ZWRfbGF5b3V0c10KICAgICAgICBsYXlvdXRfZGF0YSA9IHNlbGYuZ2V0X2xheW91dCgpCgogICAgICAgIGlmIG5pY2tuYW1lIGluIGxheW91dF9uYW1lczoKICAgICAgICAgICAgZGlhbG9nX3N0ciA9ICgnWW91IGFscmVhZHkgaGF2ZSBhIGxheW91dCBzdG9yZWQgYXMgInswfSIuXG5cbicKICAgICAgICAgICAgICAgICAgICAgICAgICAnRG8geW91IHdhbnQgdG8gY29udGludWUgYW5kIG92ZXJ3cml0ZSB0aGF0IGxheW91dD8nLmZvcm1hdChuaWNrbmFtZSkpCiAgICAgICAgICAgIGRpYWxvZ19idG4gPSAnT3ZlcndyaXRlIGxheW91dCcKCiAgICAgICAgICAgIGlmIHN1YmxpbWUub2tfY2FuY2VsX2RpYWxvZyhkaWFsb2dfc3RyLCBkaWFsb2dfYnRuKToKICAgICAgICAgICAgICAgIGRlZiBnZXRfaW5kZXgoc2VxLCBhdHRyLCB2YWx1ZSk6CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5leHQoaSBmb3IgKGksIGQpIGluIGVudW1lcmF0ZShzZXEpIGlmIGRbYXR0cl0gPT0gdmFsdWUpCgogICAgICAgICAgICAgICAgbGF5b3V0ID0gc2F2ZWRfbGF5b3V0c1tnZXRfaW5kZXgoc2F2ZWRfbGF5b3V0cywgJ25pY2tuYW1lJywgbmlja25hbWUpXQogICAgICAgICAgICAgICAgbGF5b3V0Wydyb3dzJ10gPSBsYXlvdXRfZGF0YVswXQogICAgICAgICAgICAgICAgbGF5b3V0Wydjb2xzJ10gPSBsYXlvdXRfZGF0YVsxXQogICAgICAgICAgICAgICAgbGF5b3V0WydjZWxscyddID0gbGF5b3V0X2RhdGFbMl0KICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgIHNlbGYud2luZG93LnJ1bl9jb21tYW5kKCJzYXZlX2xheW91dCIpCiAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICBlbHNlOgogICAgICAgICAgICBsYXlvdXQgPSB7CiAgICAgICAgICAgICAgICAnbmlja25hbWUnOiBuaWNrbmFtZSwKICAgICAgICAgICAgICAgICdyb3dzJzogbGF5b3V0X2RhdGFbMF0sCiAgICAgICAgICAgICAgICAnY29scyc6IGxheW91dF9kYXRhWzFdLAogICAgICAgICAgICAgICAgJ2NlbGxzJzogbGF5b3V0X2RhdGFbMl0sCiAgICAgICAgICAgIH0KICAgICAgICAgICAgc2F2ZWRfbGF5b3V0cy5hcHBlbmQobGF5b3V0KQoKICAgICAgICBzZWxmLnNldHRpbmdzKCkuc2V0KCdzYXZlZF9sYXlvdXRzJywgc2F2ZWRfbGF5b3V0cykKICAgICAgICBzdWJsaW1lLnNhdmVfc2V0dGluZ3MoU0VUVElOR1NfRklMRU5BTUUpCgogICAgZGVmIHJ1bihzZWxmKToKICAgICAgICBzZWxmLndpbmRvdy5zaG93X2lucHV0X3BhbmVsKAogICAgICAgICAgICAnV2luZG93IGxheW91dCBuaWNrbmFtZTonLAogICAgICAgICAgICAnJywKICAgICAgICAgICAgc2VsZi5vbl9kb25lLAogICAgICAgICAgICBOb25lLAogICAgICAgICAgICBOb25lCiAgICAgICAgKQoKCmNsYXNzIFJlc3RvcmVMYXlvdXRDb21tYW5kKFBhbmVDb21tYW5kLCBXaXRoU2V0dGluZ3MpOgogICAgIiIiUmVzdG9yZSBhIHNhdmVkIGxheW91dCBmcm9tIGEgc2V0dGluZ3MgZmlsZS4iIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgd2luZG93KToKICAgICAgICBzZWxmLndpbmRvdyA9IHdpbmRvdwogICAgICAgIHN1cGVyKFJlc3RvcmVMYXlvdXRDb21tYW5kLCBzZWxmKS5fX2luaXRfXyh3aW5kb3cpCgogICAgZGVmIG9uX2RvbmUoc2VsZiwgaW5kZXgpOgogICAgICAgIHNhdmVkX2xheW91dHMgPSBzZWxmLnNldHRpbmdzKCkuZ2V0KCdzYXZlZF9sYXlvdXRzJykKCiAgICAgICAgaWYgaW5kZXggIT0gLTE6CiAgICAgICAgICAgIHNlbGVjdGVkX2xheW91dCA9IHNhdmVkX2xheW91dHNbaW5kZXhdCiAgICAgICAgICAgIGxheW91dCA9IHsKICAgICAgICAgICAgICAgICdjZWxscyc6IHNlbGVjdGVkX2xheW91dFsnY2VsbHMnXSwKICAgICAgICAgICAgICAgICdjb2xzJzogc2VsZWN0ZWRfbGF5b3V0Wydjb2xzJ10sCiAgICAgICAgICAgICAgICAncm93cyc6IHNlbGVjdGVkX2xheW91dFsncm93cyddCiAgICAgICAgICAgIH0gICMgdHlwZTogc3VibGltZS5MYXlvdXQKICAgICAgICAgICAgc2VsZi53aW5kb3cuc2V0X2xheW91dChsYXlvdXQpCgogICAgZGVmIHJ1bihzZWxmKToKICAgICAgICBpZiBzZWxmLnNldHRpbmdzKCkuaGFzKCdzYXZlZF9sYXlvdXRzJyk6CiAgICAgICAgICAgIHNhdmVkX2xheW91dHMgPSBzZWxmLnNldHRpbmdzKCkuZ2V0KCdzYXZlZF9sYXlvdXRzJykKICAgICAgICAgICAgbGF5b3V0X25hbWVzID0gW2xheW91dFsnbmlja25hbWUnXSBmb3IgbGF5b3V0IGluIHNhdmVkX2xheW91dHNdCiAgICAgICAgICAgIHNlbGYud2luZG93LnNob3dfcXVpY2tfcGFuZWwobGF5b3V0X25hbWVzLCBzZWxmLm9uX2RvbmUpCgoKY2xhc3MgUmVtb3ZlTGF5b3V0Q29tbWFuZChQYW5lQ29tbWFuZCwgV2l0aFNldHRpbmdzKToKICAgICIiIlJlbW92ZSBhIHByZXZpb3VzbHkgc2F2ZWQgbGF5b3V0IGZyb20geW91ciBzZXR0aW5ncyBmaWxlLiIiIgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCB3aW5kb3cpOgogICAgICAgIHNlbGYud2luZG93ID0gd2luZG93CiAgICAgICAgc3VwZXIoUmVtb3ZlTGF5b3V0Q29tbWFuZCwgc2VsZikuX19pbml0X18od2luZG93KQoKICAgIGRlZiBvbl9kb25lKHNlbGYsIGluZGV4KToKICAgICAgICBzYXZlZF9sYXlvdXRzID0gc2VsZi5zZXR0aW5ncygpLmdldCgnc2F2ZWRfbGF5b3V0cycpCgogICAgICAgIGlmIGluZGV4ICE9IC0xOgogICAgICAgICAgICBzYXZlZF9sYXlvdXRzLnBvcChpbmRleCkKICAgICAgICAgICAgc2VsZi5zZXR0aW5ncygpLnNldCgnc2F2ZWRfbGF5b3V0cycsIHNhdmVkX2xheW91dHMpCiAgICAgICAgICAgIHN1YmxpbWUuc2F2ZV9zZXR0aW5ncyhTRVRUSU5HU19GSUxFTkFNRSkKCiAgICBkZWYgcnVuKHNlbGYpOgogICAgICAgIGlmIHNlbGYuc2V0dGluZ3MoKS5oYXMoJ3NhdmVkX2xheW91dHMnKToKICAgICAgICAgICAgc2F2ZWRfbGF5b3V0cyA9IHNlbGYuc2V0dGluZ3MoKS5nZXQoJ3NhdmVkX2xheW91dHMnKQogICAgICAgICAgICBsYXlvdXRfbmFtZXMgPSBbbGF5b3V0WyduaWNrbmFtZSddIGZvciBsYXlvdXQgaW4gc2F2ZWRfbGF5b3V0c10KICAgICAgICAgICAgc2VsZi53aW5kb3cuc2hvd19xdWlja19wYW5lbChsYXlvdXRfbmFtZXMsIHNlbGYub25fZG9uZSkKCgpjbGFzcyBOZXdXaW5kb3dGcm9tU2F2ZWRMYXlvdXRDb21tYW5kKFBhbmVDb21tYW5kLCBXaXRoU2V0dGluZ3MpOgogICAgIiIiCiAgICBCcmluZ3MgdXAgYSBsaXN0IG9mIHNhdmVkIHZpZXdzIGFuZCBhbGxvd3MgdGhlIHVzZXIKICAgIHRvIGNyZWF0ZSBhIG5ldyB3aW5kb3cgdXNpbmcgdGhhdCBsYXlvdXQuCiAgICAiIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgd2luZG93KToKICAgICAgICBzZWxmLndpbmRvdyA9IHdpbmRvdwogICAgICAgIHN1cGVyKE5ld1dpbmRvd0Zyb21TYXZlZExheW91dENvbW1hbmQsIHNlbGYpLl9faW5pdF9fKHdpbmRvdykKCiAgICBkZWYgb25fZG9uZShzZWxmLCBpbmRleCk6CiAgICAgICAgc2F2ZWRfbGF5b3V0cyA9IHNlbGYuc2V0dGluZ3MoKS5nZXQoJ3NhdmVkX2xheW91dHMnKQoKICAgICAgICBpZiBpbmRleCAhPSAtMToKICAgICAgICAgICAgc2VsZWN0ZWRfbGF5b3V0ID0gc2F2ZWRfbGF5b3V0c1tpbmRleF0KICAgICAgICAgICAgbGF5b3V0ID0gewogICAgICAgICAgICAgICAgJ2NlbGxzJzogc2VsZWN0ZWRfbGF5b3V0WydjZWxscyddLAogICAgICAgICAgICAgICAgJ2NvbHMnOiBzZWxlY3RlZF9sYXlvdXRbJ2NvbHMnXSwKICAgICAgICAgICAgICAgICdyb3dzJzogc2VsZWN0ZWRfbGF5b3V0Wydyb3dzJ10KICAgICAgICAgICAgfSAgIyB0eXBlOiBzdWJsaW1lLkxheW91dAoKICAgICAgICAgICAgc2VsZi53aW5kb3cucnVuX2NvbW1hbmQoIm5ld193aW5kb3ciKQogICAgICAgICAgICBuZXdfd2luZG93ID0gc3VibGltZS5hY3RpdmVfd2luZG93KCkKICAgICAgICAgICAgbmV3X3dpbmRvdy5zZXRfbGF5b3V0KGxheW91dCkKCiAgICBkZWYgcnVuKHNlbGYpOgogICAgICAgIGlmIHNlbGYuc2V0dGluZ3MoKS5oYXMoJ3NhdmVkX2xheW91dHMnKToKICAgICAgICAgICAgc2F2ZWRfbGF5b3V0cyA9IHNlbGYuc2V0dGluZ3MoKS5nZXQoJ3NhdmVkX2xheW91dHMnKQogICAgICAgICAgICBsYXlvdXRfbmFtZXMgPSBbbGF5b3V0WyduaWNrbmFtZSddIGZvciBsYXlvdXQgaW4gc2F2ZWRfbGF5b3V0c10KICAgICAgICAgICAgc2VsZi53aW5kb3cuc2hvd19xdWlja19wYW5lbChsYXlvdXRfbmFtZXMsIHNlbGYub25fZG9uZSkKCgpjbGFzcyBOZXdXaW5kb3dXaXRoQ3VycmVudExheW91dENvbW1hbmQoUGFuZUNvbW1hbmQpOgogICAgIiIiT3BlbnMgYSBuZXcgd2luZG93IHVzaW5nIHRoZSBjdXJyZW50IGxheW91dCBzZXR0aW5ncy4iIiIKCiAgICBkZWYgX19pbml0X18oc2VsZiwgd2luZG93KToKICAgICAgICBzZWxmLndpbmRvdyA9IHdpbmRvdwogICAgICAgIHN1cGVyKE5ld1dpbmRvd1dpdGhDdXJyZW50TGF5b3V0Q29tbWFuZCwgc2VsZikuX19pbml0X18od2luZG93KQoKICAgIGRlZiBydW4oc2VsZik6CiAgICAgICAgbGF5b3V0ID0gc2VsZi53aW5kb3cubGF5b3V0KCkKICAgICAgICBzZWxmLndpbmRvdy5ydW5fY29tbWFuZCgibmV3X3dpbmRvdyIpCiAgICAgICAgbmV3X3dpbmRvdyA9IHN1YmxpbWUuYWN0aXZlX3dpbmRvdygpCiAgICAgICAgbmV3X3dpbmRvdy5zZXRfbGF5b3V0KGxheW91dCkKCgpjbGFzcyBBdXRvQ2xvc2VFbXB0eVBhbmVzKHN1YmxpbWVfcGx1Z2luLkV2ZW50TGlzdGVuZXIsIFdpdGhTZXR0aW5ncyk6CiAgICBkZWYgaXNfdGFibGVzc192aWV3KHNlbGYsIHZpZXcpOgogICAgICAgICIiIldoZW4geW91IG1ha2UgYSBuZXcgcGFuZSwgaXQgY29tZXMgd2l0aCBhIHRhYmxlc3MgdmlldyB0aGF0IGdldHMgYQogICAgICAgIHRhYiB3aGVuIHlvdSB0eXBlIGludG8gaXQuIFlvdSBhbHNvIGdldCBhIHNpbWlsYXIgdmlldyB3aGVuIHVzaW5nIHRoZQogICAgICAgIGNvbW1hbmQgcGFsZXR0ZSB0byBvcGVuIGEgZmlsZS4KICAgICAgICBJZiB3ZSB0aGluayBpdCdzIHRoaXMga2luZCBvZiB2aWV3LCByZXR1cm4gVHJ1ZS4iIiIKICAgICAgICBpZiBzdWJsaW1lLnZlcnNpb24oKVswXSA9PSAnMic6CiAgICAgICAgICAgIHJldHVybiBGYWxzZQogICAgICAgIGVsaWYgdmlldy53aW5kb3coKSBhbmQgdmlldy53aW5kb3coKS5nZXRfdmlld19pbmRleCh2aWV3KVsxXSA9PSAtMToKICAgICAgICAgICAgcmV0dXJuIFRydWUKICAgICAgICByZXR1cm4gRmFsc2UKCiAgICBkZWYgb25fY2xvc2Uoc2VsZiwgdmlldyk6CiAgICAgICAgaWYgc3VibGltZS52ZXJzaW9uKClbMF0gPT0gJzInOgogICAgICAgICAgICBzZWxmLm9uX3ByZV9jbG9zZSh2aWV3KQoKICAgIGRlZiBvbl9wcmVfY2xvc2Uoc2VsZiwgdmlldyk6CiAgICAgICAgIyBSZWFkIGZyb20gZ2xvYmFsIHNldHRpbmdzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5CiAgICAgICAgYXV0b19jbG9zZSA9IHZpZXcuc2V0dGluZ3MoKS5nZXQoIm9yaWdhbWlfYXV0b19jbG9zZV9lbXB0eV9wYW5lcyIpCiAgICAgICAgaWYgYXV0b19jbG9zZSBpcyBOb25lOgogICAgICAgICAgICBhdXRvX2Nsb3NlID0gc2VsZi5zZXR0aW5ncygpLmdldCgiYXV0b19jbG9zZV9lbXB0eV9wYW5lcyIpCiAgICAgICAgaWYgbm90IGF1dG9fY2xvc2U6CiAgICAgICAgICAgIHJldHVybgoKICAgICAgICB3aW5kb3cgPSB2aWV3LndpbmRvdygpCiAgICAgICAgaWYgd2luZG93IGlzIE5vbmU6CiAgICAgICAgICAgICMgSWYgd2UncmUgdGhlIGxhc3QgdmlldyBpbiB0aGUgd2luZG93LCB0aGVuIHRoZSB3aW5kb3cgY2xvc2VzCiAgICAgICAgICAgICMgYmVmb3JlIG9uX3ByZV9jbG9zZSBpcyBjYWxsZWQgKCEhKS4KICAgICAgICAgICAgIyBJbiB0aGlzIGNhc2UsIHdlIGRvbid0IHdhbnQgdG8gY2xvc2UgYW55dGhpbmcgZXh0cmEgYmVjYXVzZSB0aGUKICAgICAgICAgICAgIyB3aW5kb3cgaXMgYWxyZWFkeSBjbG9zaW5nLgogICAgICAgICAgICByZXR1cm4KICAgICAgICBhY3RpdmVfZ3JvdXAgPSB3aW5kb3cuYWN0aXZlX2dyb3VwKCkKCiAgICAgICAgaWYgc2VsZi5pc190YWJsZXNzX3ZpZXcodmlldyk6CiAgICAgICAgICAgICMgV2UgZG9uJ3Qgd2FudCB0byBjbG9zZSB0aGUgcGFuZSB3aGVuIGNsb3NpbmcgYSB0cmFuc2llbnQgdmlldwogICAgICAgICAgICByZXR1cm4KCiAgICAgICAgIyBXZSdyZSBpbiBwcmVfY2xvc2UsIHNvIHVzZSBzZXRfdGltZW91dCB0byBjbG9zZSB0aGUgZ3JvdXAgcmlnaHQgYWZ0ZXIgdGhpcy4KICAgICAgICBpZiBsZW4od2luZG93LnZpZXdzX2luX2dyb3VwKGFjdGl2ZV9ncm91cCkpID09IDE6CiAgICAgICAgICAgIHN1YmxpbWUuc2V0X3RpbWVvdXQobGFtYmRhOiB3aW5kb3cucnVuX2NvbW1hbmQoImRlc3Ryb3lfcGFuZSIsIHsiZGlyZWN0aW9uIjogInNlbGYifSksIDApCgoKY2xhc3MgQXV0b1pvb21PbkZvY3VzKHN1YmxpbWVfcGx1Z2luLkV2ZW50TGlzdGVuZXIsIFdpdGhTZXR0aW5ncyk6CiAgICBydW5uaW5nID0gRmFsc2UKICAgIGFjdGl2ZV9ncm91cCA9IC0xCgogICAgZGVmIGRlbGF5ZWRfem9vbShzZWxmLCB2aWV3LCBmcmFjdGlvbik6CiAgICAgICAgIyB6b29tX3BhbmUgaGFuZ3Mgc3VibGltZSBpZiB5b3UgZGVzdHJveSB0aGUgcGFuZSBhYm92ZSBvciB0byB5b3VyIGxlZnQuCiAgICAgICAgIyBjYWxsIGl0IGluIGEgc3VibGltZS5zZXRfdGltZW91dCB0byBmaXggdGhlIGlzc3VlCgogICAgICAgICMgU3VibGltZSBUZXh0IDIgaGFzIGlzc3VlcyBvbiBzdGFydHVwIHdoZXJlIHZpZXdzIGRvbid0IGhhdmUgd2luZG93cyB5ZXQuCiAgICAgICAgIyBJZiB3ZSBkb24ndCBoYXZlIGEgd2luZG93IHlldCwgYmFpbC4KICAgICAgICBpZiB2aWV3LndpbmRvdygpIGlzIE5vbmU6CiAgICAgICAgICAgIHNlbGYucnVubmluZyA9IEZhbHNlCiAgICAgICAgICAgIHJldHVybgoKICAgICAgICBhcmdzID0ge30KICAgICAgICAjIFdvcmsgY29ycmVjdGx5IGlmIHNvbWVvbmUgc2V0cyAib3JpZ2FtaV9hdXRvX3pvb21fb25fZm9jdXMiOiB0cnVlIHJhdGhlcgogICAgICAgICMgdGhhbiBlLmcuICJvcmlnYW1pX2F1dG9fem9vbV9vbl9mb2N1cyI6IC44LgogICAgICAgIGlmIGZyYWN0aW9uIGlzIG5vdCBUcnVlOgogICAgICAgICAgICBhcmdzWyJmcmFjdGlvbiJdID0gZnJhY3Rpb24KICAgICAgICB2aWV3LndpbmRvdygpLnJ1bl9jb21tYW5kKCJ6b29tX3BhbmUiLCBhcmdzKQogICAgICAgIHNlbGYucnVubmluZyA9IEZhbHNlCgogICAgZGVmIG9uX2FjdGl2YXRlZChzZWxmLCB2aWV3KToKICAgICAgICBpZiBzZWxmLnJ1bm5pbmc6CiAgICAgICAgICAgIHJldHVybgogICAgICAgICMgUmVhZCBmcm9tIGdsb2JhbCBzZXR0aW5ncyBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eQogICAgICAgIGZyYWN0aW9uID0gdmlldy5zZXR0aW5ncygpLmdldCgib3JpZ2FtaV9hdXRvX3pvb21fb25fZm9jdXMiKQogICAgICAgIGlmIGZyYWN0aW9uIGlzIE5vbmU6CiAgICAgICAgICAgIGZyYWN0aW9uID0gc2VsZi5zZXR0aW5ncygpLmdldCgiYXV0b196b29tX29uX2ZvY3VzIikKICAgICAgICBpZiBub3QgZnJhY3Rpb246CiAgICAgICAgICAgIHJldHVybgogICAgICAgIGlmIHZpZXcuc2V0dGluZ3MoKS5nZXQoImlzX3dpZGdldCIpOgogICAgICAgICAgICByZXR1cm4KCiAgICAgICAgbmV3X2FjdGl2ZV9ncm91cCA9IHZpZXcud2luZG93KCkuYWN0aXZlX2dyb3VwKCkKICAgICAgICBpZiBuZXdfYWN0aXZlX2dyb3VwID09IHNlbGYuYWN0aXZlX2dyb3VwOgogICAgICAgICAgICByZXR1cm4KCiAgICAgICAgc2VsZi5hY3RpdmVfZ3JvdXAgPSBuZXdfYWN0aXZlX2dyb3VwCiAgICAgICAgc2VsZi5ydW5uaW5nID0gVHJ1ZQoKICAgICAgICBzdWJsaW1lLnNldF90aW1lb3V0KGxhbWJkYTogc2VsZi5kZWxheWVkX3pvb20odmlldywgZnJhY3Rpb24pLCAwKQoAAAAAAAAAAJt4AAAAAAAAAAAAAAAAAAAAAAAAm3gAAAAAAAAAAAAAAAAAAAAAAACbeAAAAAAAAAAAAAAAAAAAAAAAAJt4AAAAAAAAAAAAAAAAAAAAAAAAm3gAAAAAAAAAAAAAAAAAAAAAAACbeAAAAAAAAAAAAAA", - "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAALswAAAAAAAAuzAAAAAAAAAAAAAAAADwvw" - ], - [ - 15, - 1, - "paste", - null, - "AgAAAFIsAAAAAAAAJzMAAAAAAAAAAAAAJzMAAAAAAAAnMwAAAAAAAKwGAABkZWYgem9vbV9wYW5lKHNlbGYsIGF1dG9fem9vbSk6CiAgICAgICAgIyBpZiBmcmFjdGlvbiBpcyBOb25lOgogICAgICAgICMgICAgIGZyYWN0aW9uID0gLjkKICAgICAgICBmcmFjdGlvbiA9IC45CiAgICAgICAgaGVpZ2h0ID0gLjkKICAgICAgICAjIGlmIGlzaW5zdGFuY2UoYXV0b196b29tLCBmbG9hdHxpbnQpOgogICAgICAgIGlmIGlzaW5zdGFuY2UoYXV0b196b29tLCBmbG9hdCkgb3IgaXNpbnN0YW5jZShhdXRvX3pvb20sIGludCk6CiAgICAgICAgICAgIGZyYWN0aW9uID0gYXV0b196b29tCiAgICAgICAgZWxpZiBpc2luc3RhbmNlKGF1dG9fem9vbSwgbGlzdCk6CiAgICAgICAgICAgIGZyYWN0aW9uID0gYXV0b196b29tWzBdCiAgICAgICAgICAgIGhlaWdodCA9IGF1dG9fem9vbVsxXQoKICAgICAgICBmcmFjdGlvbiA9IG1pbigxLCBtYXgoMCwgZnJhY3Rpb24pKQogICAgICAgIGhlaWdodCAgPSBtaW4oMSwgbWF4KDAsIGhlaWdodCkpCgogICAgICAgIHdpbmRvdyA9IHNlbGYud2luZG93CiAgICAgICAgcm93cywgY29scywgY2VsbHMgPSBzZWxmLmdldF9sYXlvdXQoKQogICAgICAgIGN1cnJlbnRfY2VsbCA9IGNlbGxzW3dpbmRvdy5hY3RpdmVfZ3JvdXAoKV0KCiAgICAgICAgY3VycmVudF9jb2wgPSBjdXJyZW50X2NlbGxbMF0KICAgICAgICBudW1fY29scyA9IGxlbihjb2xzKSAtIDEKCiAgICAgICAgIyBUT0RPOiB0aGUgc2l6ZXMgb2YgdGhlIHVuem9vbWVkIHBhbmVzIGFyZSBjYWxjdWxhdGVkIGluY29ycmVjdGx5IGlmIHRoZQogICAgICAgICMgICAgICAgdW56b29tZWQgcGFuZXMgaGF2ZSBhIHNwbGl0IHRoYXQgb3ZlcmxhcHMgdGhlIHpvb21lZCBwYW5lLgogICAgICAgIGN1cnJlbnRfY29sX3dpZHRoID0gMSBpZiBudW1fY29scyA9PSAxIGVsc2UgZnJhY3Rpb24KICAgICAgICBvdGhlcl9jb2xfd2lkdGggPSAwIGlmIG51bV9jb2xzID09IDEgZWxzZSAoMSAtIGN1cnJlbnRfY29sX3dpZHRoKSAvIChudW1fY29scyAtIDEpCgogICAgICAgIGNvbHMgPSBbMC4wXQogICAgICAgIGZvciBpIGluIHJhbmdlKG51bV9jb2xzKToKICAgICAgICAgICAgY29scy5hcHBlbmQoY29sc1tpXSArIChjdXJyZW50X2NvbF93aWR0aCBpZiBpID09IGN1cnJlbnRfY29sIGVsc2Ugb3RoZXJfY29sX3dpZHRoKSkKCiAgICAgICAgY3VycmVudF9yb3cgPSBjdXJyZW50X2NlbGxbMV0KICAgICAgICBudW1fcm93cyA9IGxlbihyb3dzKSAtIDEKCiAgICAgICAgIyBjdXJyZW50X3Jvd19oZWlnaHQgPSAxIGlmIG51bV9yb3dzID09IDEgZWxzZSBmcmFjdGlvbgogICAgICAgIGN1cnJlbnRfcm93X2hlaWdodCA9IDEgaWYgbnVtX3Jvd3MgPT0gMSBlbHNlIGhlaWdodAogICAgICAgIG90aGVyX3Jvd19oZWlnaHQgPSAwIGlmIG51bV9yb3dzID09IDEgZWxzZSAoMSAtIGN1cnJlbnRfcm93X2hlaWdodCkgLyAobnVtX3Jvd3MgLSAxKQogICAgICAgIHJvd3MgPSBbMC4wXQogICAgICAgIGZvciBpIGluIHJhbmdlKG51bV9yb3dzKToKICAgICAgICAgICAgcm93cy5hcHBlbmQocm93c1tpXSArIChjdXJyZW50X3Jvd19oZWlnaHQgaWYgaSA9PSBjdXJyZW50X3JvdyBlbHNlIG90aGVyX3Jvd19oZWlnaHQpKQoKICAgICAgICBsYXlvdXQgPSB7ImNvbHMiOiBjb2xzLCAicm93cyI6IHJvd3MsICJjZWxscyI6IGNlbGxzfSAgIyB0eXBlOiBzdWJsaW1lLkxheW91dAogICAgICAgIHdpbmRvdy5zZXRfbGF5b3V0KGxheW91dCkK", - "AQAAAAAAAAABAAAAUiwAAAAAAAD+MgAAAAAAAAAAAAAAAPC/" - ], - [ - 29, - 1, - "revert", - null, - "AgAAAAAAAAAAAAAAAAAAAAAAAADEeAAAaW1wb3J0IHN1YmxpbWUKaW1wb3J0IHN1YmxpbWVfcGx1Z2luCmltcG9ydCBjb3B5CmZyb20gZnVuY3Rvb2xzIGltcG9ydCBwYXJ0aWFsCgoKU0VUVElOR1NfRklMRU5BTUUgPSAnT3JpZ2FtaS5zdWJsaW1lLXNldHRpbmdzJwpYTUlOLCBZTUlOLCBYTUFYLCBZTUFYID0gcmFuZ2UoNCkKCgpkZWYgaW5jcmVtZW50X2lmX2dyZWF0ZXJfb3JfZXF1YWwoeCwgdGhyZXNob2xkKToKICAgIGlmIHggPj0gdGhyZXNob2xkOgogICAgICAgIHJldHVybiB4ICsgMQogICAgcmV0dXJuIHgKCgpkZWYgZGVjcmVtZW50X2lmX2dyZWF0ZXIoeCwgdGhyZXNob2xkKToKICAgIGlmIHggPiB0aHJlc2hvbGQ6CiAgICAgICAgcmV0dXJuIHggLSAxCiAgICByZXR1cm4geAoKCmRlZiBwdWxsX3VwX2NlbGxzX2FmdGVyKGNlbGxzLCB0aHJlc2hvbGQpOgogICAgcmV0dXJuIFsKICAgICAgICBbeDAsIGRlY3JlbWVudF9pZl9ncmVhdGVyKHkwLCB0aHJlc2hvbGQpLCB4MSwgZGVjcmVtZW50X2lmX2dyZWF0ZXIoeTEsIHRocmVzaG9sZCldCiAgICAgICAgZm9yICh4MCwgeTAsIHgxLCB5MSkgaW4gY2VsbHMKICAgIF0KCgpkZWYgcHVzaF9yaWdodF9jZWxsc19hZnRlcihjZWxscywgdGhyZXNob2xkKToKICAgIHJldHVybiBbCiAgICAgICAgW2luY3JlbWVudF9pZl9ncmVhdGVyX29yX2VxdWFsKHgwLCB0aHJlc2hvbGQpLCB5MCwgaW5jcmVtZW50X2lmX2dyZWF0ZXJfb3JfZXF1YWwoeDEsIHRocmVzaG9sZCksIHkxXQogICAgICAgIGZvciAoeDAsIHkwLCB4MSwgeTEpIGluIGNlbGxzCiAgICBdCgoKZGVmIHB1c2hfZG93bl9jZWxsc19hZnRlcihjZWxscywgdGhyZXNob2xkKToKICAgIHJldHVybiBbCiAgICAgICAgW3gwLCBpbmNyZW1lbnRfaWZfZ3JlYXRlcl9vcl9lcXVhbCh5MCwgdGhyZXNob2xkKSwgeDEsIGluY3JlbWVudF9pZl9ncmVhdGVyX29yX2VxdWFsKHkxLCB0aHJlc2hvbGQpXQogICAgICAgIGZvciAoeDAsIHkwLCB4MSwgeTEpIGluIGNlbGxzCiAgICBdCgoKZGVmIHB1bGxfbGVmdF9jZWxsc19hZnRlcihjZWxscywgdGhyZXNob2xkKToKICAgIHJldHVybiBbCiAgICAgICAgW2RlY3JlbWVudF9pZl9ncmVhdGVyKHgwLCB0aHJlc2hvbGQpLCB5MCwgZGVjcmVtZW50X2lmX2dyZWF0ZXIoeDEsIHRocmVzaG9sZCksIHkxXQogICAgICAgIGZvciAoeDAsIHkwLCB4MSwgeTEpIGluIGNlbGxzCiAgICBdCgoKZGVmIG9wcG9zaXRlX2RpcmVjdGlvbihkaXJlY3Rpb24pOgogICAgaWYgZGlyZWN0aW9uID09ICJ1cCI6CiAgICAgICAgcmV0dXJuICJkb3duIgogICAgaWYgZGlyZWN0aW9uID09ICJyaWdodCI6CiAgICAgICAgcmV0dXJuICJsZWZ0IgogICAgaWYgZGlyZWN0aW9uID09ICJkb3duIjoKICAgICAgICByZXR1cm4gInVwIgogICAgaWYgZGlyZWN0aW9uID09ICJsZWZ0IjoKICAgICAgICByZXR1cm4gInJpZ2h0IgoKCmRlZiBjZWxsc19hZGphY2VudF90b19jZWxsX2luX2RpcmVjdGlvbihjZWxscywgY2VsbCwgZGlyZWN0aW9uKToKICAgIGlmIGRpcmVjdGlvbiA9PSAidXAiOgogICAgICAgIHJldHVybiBbYyBmb3IgYyBpbiBjZWxscyBpZiBjZWxsW1lNSU5dID09IGNbWU1BWF1dCiAgICBpZiBkaXJlY3Rpb24gPT0gInJpZ2h0IjoKICAgICAgICByZXR1cm4gW2MgZm9yIGMgaW4gY2VsbHMgaWYgY2VsbFtYTUFYXSA9PSBjW1hNSU5dXQogICAgaWYgZGlyZWN0aW9uID09ICJkb3duIjoKICAgICAgICByZXR1cm4gW2MgZm9yIGMgaW4gY2VsbHMgaWYgY2VsbFtZTUFYXSA9PSBjW1lNSU5dXQogICAgaWYgZGlyZWN0aW9uID09ICJsZWZ0IjoKICAgICAgICByZXR1cm4gW2MgZm9yIGMgaW4gY2VsbHMgaWYgY2VsbFtYTUlOXSA9PSBjW1hNQVhdXQogICAgcmFpc2UgRXhjZXB0aW9uKCdVbnN1cHBvcnRlZCBkaXJlY3Rpb24gInt9IicuZm9ybWF0KGRpcmVjdGlvbikpCgoKY2xhc3MgV2l0aFNldHRpbmdzOgogICAgX3NldHRpbmdzID0gTm9uZQoKICAgIGRlZiBzZXR0aW5ncyhzZWxmKToKICAgICAgICBpZiBzZWxmLl9zZXR0aW5ncyBpcyBOb25lOgogICAgICAgICAgICBzZWxmLl9zZXR0aW5ncyA9IHN1YmxpbWUubG9hZF9zZXR0aW5ncyhTRVRUSU5HU19GSUxFTkFNRSkKICAgICAgICByZXR1cm4gc2VsZi5fc2V0dGluZ3MKCgpjbGFzcyBQYW5lQ29tbWFuZChzdWJsaW1lX3BsdWdpbi5XaW5kb3dDb21tYW5kKToKICAgICIiIkFic3RyYWN0IGJhc2UgY2xhc3MgZm9yIGNvbW1hbmRzLiIiIgoKICAgIGRlZiBnZXRfbGF5b3V0KHNlbGYpOgogICAgICAgIGxheW91dCA9IHNlbGYud2luZG93LmxheW91dCgpCiAgICAgICAgcm93cyA9IGxheW91dFsicm93cyJdCiAgICAgICAgY29scyA9IGxheW91dFsiY29scyJdCiAgICAgICAgY2VsbHMgPSBsYXlvdXRbImNlbGxzIl0KICAgICAgICByZXR1cm4gcm93cywgY29scywgY2VsbHMKCiAgICBkZWYgZ2V0X2NlbGxzKHNlbGYpOgogICAgICAgIHJldHVybiBzZWxmLmdldF9sYXlvdXQoKVsyXQoKICAgIGRlZiBhZGphY2VudF9jZWxsKHNlbGYsIGRpcmVjdGlvbik6CiAgICAgICAgY2VsbHMgPSBzZWxmLmdldF9jZWxscygpCiAgICAgICAgY3VycmVudF9jZWxsID0gY2VsbHNbc2VsZi53aW5kb3cuYWN0aXZlX2dyb3VwKCldCiAgICAgICAgYWRqYWNlbnRfY2VsbHMgPSBjZWxsc19hZGphY2VudF90b19jZWxsX2luX2RpcmVjdGlvbihjZWxscywgY3VycmVudF9jZWxsLCBkaXJlY3Rpb24pCiAgICAgICAgcm93cywgY29scywgXyA9IHNlbGYuZ2V0X2xheW91dCgpCgogICAgICAgIGlmIGRpcmVjdGlvbiBpbiAoImxlZnQiLCAicmlnaHQiKToKICAgICAgICAgICAgTUlOLCBNQVgsIGZpZWxkcyA9IFlNSU4sIFlNQVgsIHJvd3MKICAgICAgICBlbHNlOiAgIyB1cCBvciBkb3duCiAgICAgICAgICAgIE1JTiwgTUFYLCBmaWVsZHMgPSBYTUlOLCBYTUFYLCBjb2xzCgogICAgICAgIGNlbGxfb3ZlcmxhcCA9IFtdCiAgICAgICAgZm9yIGNlbGwgaW4gYWRqYWNlbnRfY2VsbHM6CiAgICAgICAgICAgIHN0YXJ0ID0gbWF4KGZpZWxkc1tjZWxsW01JTl1dLCBmaWVsZHNbY3VycmVudF9jZWxsW01JTl1dKQogICAgICAgICAgICBlbmQgPSBtaW4oZmllbGRzW2NlbGxbTUFYXV0sIGZpZWxkc1tjdXJyZW50X2NlbGxbTUFYXV0pCiAgICAgICAgICAgIG92ZXJsYXAgPSBlbmQgLSBzdGFydCAgIyAvIChmaWVsZHNbY2VsbFtNQVhdXSAtIGZpZWxkc1tjZWxsW01JTl1dKQogICAgICAgICAgICBjZWxsX292ZXJsYXAuYXBwZW5kKG92ZXJsYXApCgogICAgICAgIGlmIGxlbihjZWxsX292ZXJsYXApICE9IDA6CiAgICAgICAgICAgIGNlbGxfaW5kZXggPSBjZWxsX292ZXJsYXAuaW5kZXgobWF4KGNlbGxfb3ZlcmxhcCkpCiAgICAgICAgICAgIHJldHVybiBhZGphY2VudF9jZWxsc1tjZWxsX2luZGV4XQogICAgICAgIHJldHVybiBOb25lCgogICAgZGVmIGR1cGxpY2F0ZWRfdmlld3Moc2VsZiwgb3JpZ2luYWxfZ3JvdXAsIGR1cGxpY2F0aW5nX2dyb3VwKToKICAgICAgICBvcmlnaW5hbF92aWV3cyA9IHNlbGYud2luZG93LnZpZXdzX2luX2dyb3VwKG9yaWdpbmFsX2dyb3VwKQogICAgICAgIG9yaWdpbmFsX2J1ZmZlcnMgPSB7di5idWZmZXJfaWQoKSBmb3IgdiBpbiBvcmlnaW5hbF92aWV3c30KICAgICAgICBwb3RlbnRpYWxfZHVwZV92aWV3cyA9IHNlbGYud2luZG93LnZpZXdzX2luX2dyb3VwKGR1cGxpY2F0aW5nX2dyb3VwKQogICAgICAgIHJldHVybiBbcGQgZm9yIHBkIGluIHBvdGVudGlhbF9kdXBlX3ZpZXdzIGlmIHBkLmJ1ZmZlcl9pZCgpIGluIG9yaWdpbmFsX2J1ZmZlcnNdCgogICAgZGVmIHRyYXZlbF90b19wYW5lKHNlbGYsIGRpcmVjdGlvbiwgY3JlYXRlX25ld19pZl9uZWNlc3Nhcnk9RmFsc2UsIGRlc3Ryb3lfb2xkX2lmX2VtcHR5PUZhbHNlKToKICAgICAgICBhZGphY2VudF9jZWxsID0gc2VsZi5hZGphY2VudF9jZWxsKGRpcmVjdGlvbikKICAgICAgICBpZiBhZGphY2VudF9jZWxsOgogICAgICAgICAgICBjZWxscyA9IHNlbGYuZ2V0X2NlbGxzKCkKICAgICAgICAgICAgbmV3X2dyb3VwX2luZGV4ID0gY2VsbHMuaW5kZXgoYWRqYWNlbnRfY2VsbCkKICAgICAgICAgICAgc2VsZi53aW5kb3cuZm9jdXNfZ3JvdXAobmV3X2dyb3VwX2luZGV4KQogICAgICAgICAgICBpZiBkZXN0cm95X29sZF9pZl9lbXB0eToKICAgICAgICAgICAgICAgIHNlbGYuZGVzdHJveV9wYW5lKG9wcG9zaXRlX2RpcmVjdGlvbihkaXJlY3Rpb24pLCBUcnVlKQogICAgICAgIGVsaWYgY3JlYXRlX25ld19pZl9uZWNlc3Nhcnk6CiAgICAgICAgICAgIHNlbGYuY3JlYXRlX3BhbmUoZGlyZWN0aW9uLCBUcnVlLCBkZXN0cm95X29sZF9pZl9lbXB0eSkKCiAgICBkZWYgY2FycnlfZmlsZV90b19wYW5lKHNlbGYsIGRpcmVjdGlvbiwgY3JlYXRlX25ld19pZl9uZWNlc3Nhcnk9RmFsc2UsIGRlc3Ryb3lfb2xkX2lmX2VtcHR5PUZhbHNlKToKICAgICAgICB2aWV3ID0gc2VsZi53aW5kb3cuYWN0aXZlX3ZpZXcoKQogICAgICAgIGlmIHZpZXcgaXMgTm9uZToKICAgICAgICAgICAgIyBJZiB3ZSdyZSBpbiBhbiBlbXB0eSBncm91cCwgdGhlcmUncyBubyBhY3RpdmUgdmlldwogICAgICAgICAgICByZXR1cm4KICAgICAgICB3aW5kb3cgPSBzZWxmLndpbmRvdwogICAgICAgIHNlbGYudHJhdmVsX3RvX3BhbmUoZGlyZWN0aW9uLCBjcmVhdGVfbmV3X2lmX25lY2Vzc2FyeSkKCiAgICAgICAgYWN0aXZlX2dyb3VwID0gd2luZG93LmFjdGl2ZV9ncm91cCgpCiAgICAgICAgdmlld3NfaW5fZ3JvdXAgPSB3aW5kb3cudmlld3NfaW5fZ3JvdXAoYWN0aXZlX2dyb3VwKQogICAgICAgIHdpbmRvdy5zZXRfdmlld19pbmRleCh2aWV3LCBhY3RpdmVfZ3JvdXAsIGxlbih2aWV3c19pbl9ncm91cCkpCiAgICAgICAgc3VibGltZS5zZXRfdGltZW91dChsYW1iZGE6IHdpbmRvdy5mb2N1c192aWV3KHZpZXcpKQoKICAgICAgICBpZiBkZXN0cm95X29sZF9pZl9lbXB0eToKICAgICAgICAgICAgc2VsZi5kZXN0cm95X3BhbmUob3Bwb3NpdGVfZGlyZWN0aW9uKGRpcmVjdGlvbiksIFRydWUpCgogICAgZGVmIGNsb25lX2ZpbGVfdG9fcGFuZShzZWxmLCBkaXJlY3Rpb24sIGNyZWF0ZV9uZXdfaWZfbmVjZXNzYXJ5PUZhbHNlKToKICAgICAgICB3aW5kb3cgPSBzZWxmLndpbmRvdwogICAgICAgIHZpZXcgPSB3aW5kb3cuYWN0aXZlX3ZpZXcoKQogICAgICAgIGlmIHZpZXcgaXMgTm9uZToKICAgICAgICAgICAgIyBJZiB3ZSdyZSBpbiBhbiBlbXB0eSBncm91cCwgdGhlcmUncyBubyBhY3RpdmUgdmlldwogICAgICAgICAgICByZXR1cm4KICAgICAgICBncm91cCwgb3JpZ2luYWxfaW5kZXggPSB3aW5kb3cuZ2V0X3ZpZXdfaW5kZXgodmlldykKICAgICAgICB3aW5kb3cucnVuX2NvbW1hbmQoImNsb25lX2ZpbGUiKQoKICAgICAgICAjIElmIHdlIG1vdmUgdGhlIGNsb25lZCBmaWxlJ3MgdGFiIHRvIHRoZSBsZWZ0IG9mIHRoZSBvcmlnaW5hbCdzLAogICAgICAgICMgdGhlbiB3aGVuIHdlIHJlbW92ZSBpdCBmcm9tIHRoZSBncm91cCwgZm9jdXMgd2lsbCBmYWxsIHRvIHRoZQogICAgICAgICMgb3JpZ2luYWwgdmlldy4KICAgICAgICBuZXdfdmlldyA9IHdpbmRvdy5hY3RpdmVfdmlldygpCiAgICAgICAgaWYgbmV3X3ZpZXcgaXMgTm9uZToKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgd2luZG93LnNldF92aWV3X2luZGV4KG5ld192aWV3LCBncm91cCwgb3JpZ2luYWxfaW5kZXgpCgogICAgICAgICMgRml4IHRoZSBuZXcgdmlldydzIHNlbGVjdGlvbiBhbmQgdmlld3BvcnQKICAgICAgICBuZXdfc2VsID0gbmV3X3ZpZXcuc2VsKCkKICAgICAgICBuZXdfc2VsLmNsZWFyKCkKICAgICAgICBmb3IgcyBpbiB2aWV3LnNlbCgpOgogICAgICAgICAgICBuZXdfc2VsLmFkZChzKQogICAgICAgIHN1YmxpbWUuc2V0X3RpbWVvdXQobGFtYmRhOiBuZXdfdmlldy5zZXRfdmlld3BvcnRfcG9zaXRpb24odmlldy52aWV3cG9ydF9wb3NpdGlvbigpLCBGYWxzZSksIDApCgogICAgICAgIHNlbGYuY2FycnlfZmlsZV90b19wYW5lKGRpcmVjdGlvbiwgY3JlYXRlX25ld19pZl9uZWNlc3NhcnkpCgogICAgZGVmIHJlb3JkZXJfcGFuZXMoc2VsZiwgbGVhdmVfZmlsZXNfYXRfcG9zaXRpb249VHJ1ZSk6CiAgICAgICAgb2xkX2luZGV4ID0gc2VsZi53aW5kb3cuYWN0aXZlX2dyb3VwKCkKICAgICAgICBvbl9kb25lID0gcGFydGlhbChzZWxmLl9vbl9yZW9yZGVyX2RvbmUsIG9sZF9pbmRleCwgbGVhdmVfZmlsZXNfYXRfcG9zaXRpb24pCiAgICAgICAgdmlldyA9IHNlbGYud2luZG93LnNob3dfaW5wdXRfcGFuZWwoImVudGVyIG5ldyBpbmRleCIsIHN0cihvbGRfaW5kZXggKyAxKSwgb25fZG9uZSwgTm9uZSwgTm9uZSkKICAgICAgICB2aWV3LnNlbCgpLmNsZWFyKCkKICAgICAgICB2aWV3LnNlbCgpLmFkZChzdWJsaW1lLlJlZ2lvbigwLCB2aWV3LnNpemUoKSkpCgogICAgZGVmIF9vbl9yZW9yZGVyX2RvbmUoc2VsZiwgb2xkX2luZGV4LCBsZWF2ZV9maWxlc19hdF9wb3NpdGlvbiwgdGV4dCk6CiAgICAgICAgdHJ5OgogICAgICAgICAgICBuZXdfaW5kZXggPSBpbnQodGV4dCkgLSAxCiAgICAgICAgZXhjZXB0IFZhbHVlRXJyb3I6CiAgICAgICAgICAgIHJldHVybgoKICAgICAgICByb3dzLCBjb2xzLCBjZWxscyA9IHNlbGYuZ2V0X2xheW91dCgpCgogICAgICAgIGlmIG5ld19pbmRleCA8IDAgb3IgbmV3X2luZGV4ID49IGxlbihjZWxscyk6CiAgICAgICAgICAgIHJldHVybgoKICAgICAgICBjZWxsc1tvbGRfaW5kZXhdLCBjZWxsc1tuZXdfaW5kZXhdID0gY2VsbHNbbmV3X2luZGV4XSwgY2VsbHNbb2xkX2luZGV4XQoKICAgICAgICBpZiBsZWF2ZV9maWxlc19hdF9wb3NpdGlvbjoKICAgICAgICAgICAgb2xkX2ZpbGVzID0gc2VsZi53aW5kb3cudmlld3NfaW5fZ3JvdXAob2xkX2luZGV4KQogICAgICAgICAgICBuZXdfZmlsZXMgPSBzZWxmLndpbmRvdy52aWV3c19pbl9ncm91cChuZXdfaW5kZXgpCiAgICAgICAgICAgIGZvciBwb3NpdGlvbiwgdiBpbiBlbnVtZXJhdGUob2xkX2ZpbGVzKToKICAgICAgICAgICAgICAgIHNlbGYud2luZG93LnNldF92aWV3X2luZGV4KHYsIG5ld19pbmRleCwgcG9zaXRpb24pCiAgICAgICAgICAgIGZvciBwb3NpdGlvbiwgdiBpbiBlbnVtZXJhdGUobmV3X2ZpbGVzKToKICAgICAgICAgICAgICAgIHNlbGYud2luZG93LnNldF92aWV3X2luZGV4KHYsIG9sZF9pbmRleCwgcG9zaXRpb24pCgogICAgICAgIGxheW91dCA9IHsiY29scyI6IGNvbHMsICJyb3dzIjogcm93cywgImNlbGxzIjogY2VsbHN9ICAjIHR5cGU6IHN1YmxpbWUuTGF5b3V0CiAgICAgICAgc2VsZi53aW5kb3cuc2V0X2xheW91dChsYXlvdXQpCgogICAgZGVmIHJlc2l6ZV9wYW5lcyhzZWxmLCBvcmllbnRhdGlvbiwgbW9kZSk6CiAgICAgICAgcm93cywgY29scywgY2VsbHMgPSBzZWxmLmdldF9sYXlvdXQoKQoKICAgICAgICBpZiBvcmllbnRhdGlvbiA9PSAiY29scyI6CiAgICAgICAgICAgIGRhdGEgPSBjb2xzCiAgICAgICAgICAgIG1pbjEgPSBZTUlOCiAgICAgICAgICAgIG1heDEgPSBZTUFYCiAgICAgICAgICAgIG1pbjIgPSBYTUlOCiAgICAgICAgICAgIG1heDIgPSBYTUFYCiAgICAgICAgZWxpZiBvcmllbnRhdGlvbiA9PSAicm93cyI6CiAgICAgICAgICAgIGRhdGEgPSByb3dzCiAgICAgICAgICAgIG1pbjEgPSBYTUlOCiAgICAgICAgICAgIG1heDEgPSBYTUFYCiAgICAgICAgICAgIG1pbjIgPSBZTUlOCiAgICAgICAgICAgIG1heDIgPSBZTUFYCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmFpc2UgRXhjZXB0aW9uKCdVbnN1cHBvcnRlZCBvcmllbnRhdGlvbiAie30iJy5mb3JtYXQob3JpZW50YXRpb24pKQoKICAgICAgICByZWxldmFudF9pbmRleCA9IHNldCgpCgogICAgICAgIGlmIG1vZGUgPT0gIkJFRk9SRSI6CiAgICAgICAgICAgIGN1cnJlbnRfY2VsbCA9IGNlbGxzW3NlbGYud2luZG93LmFjdGl2ZV9ncm91cCgpXQogICAgICAgICAgICByZWxldmFudF9pbmRleC5hZGQoY3VycmVudF9jZWxsW21pbjJdKQoKICAgICAgICBlbGlmIG1vZGUgPT0gIkFGVEVSIjoKICAgICAgICAgICAgY3VycmVudF9jZWxsID0gY2VsbHNbc2VsZi53aW5kb3cuYWN0aXZlX2dyb3VwKCldCiAgICAgICAgICAgIHJlbGV2YW50X2luZGV4LmFkZChjdXJyZW50X2NlbGxbbWF4Ml0pCgogICAgICAgIGVsaWYgbW9kZSA9PSAiTkVBUkVTVCI6CiAgICAgICAgICAgIGN1cnJlbnRfY2VsbCA9IGNlbGxzW3NlbGYud2luZG93LmFjdGl2ZV9ncm91cCgpXQogICAgICAgICAgICByZWxldmFudF9pbmRleC51cGRhdGUoKGN1cnJlbnRfY2VsbFttaW4yXSwgY3VycmVudF9jZWxsW21heDJdKSkKCiAgICAgICAgZWxpZiBtb2RlID09ICJSRUxFVkFOVCI6CiAgICAgICAgICAgIGN1cnJlbnRfY2VsbCA9IGNlbGxzW3NlbGYud2luZG93LmFjdGl2ZV9ncm91cCgpXQogICAgICAgICAgICBtaW5fdmFsMSA9IGN1cnJlbnRfY2VsbFttaW4xXQogICAgICAgICAgICBtYXhfdmFsMSA9IGN1cnJlbnRfY2VsbFttYXgxXQogICAgICAgICAgICBmb3IgYyBpbiBjZWxsczoKICAgICAgICAgICAgICAgIG1pbl92YWwyID0gY1ttaW4xXQogICAgICAgICAgICAgICAgbWF4X3ZhbDIgPSBjW21heDFdCiAgICAgICAgICAgICAgICBpZiBtaW5fdmFsMSA+PSBtYXhfdmFsMiBvciBtaW5fdmFsMiA+PSBtYXhfdmFsMToKICAgICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAgICAgcmVsZXZhbnRfaW5kZXgudXBkYXRlKChjW21pbjJdLCBjW21heDJdKSkKCiAgICAgICAgZWxpZiBtb2RlID09ICJBTEwiOgogICAgICAgICAgICByZWxldmFudF9pbmRleC51cGRhdGUocmFuZ2UobGVuKGRhdGEpKSkKCiAgICAgICAgcmVsZXZhbnRfaW5kZXguZGlmZmVyZW5jZV91cGRhdGUoKDAsIGxlbihkYXRhKSAtIDEpKSAgIyBkb250IHNob3cgdGhlIGZpcnN0IGFuZCBsYXN0IHZhbHVlIChpdCdzIGFsd2F5cyAwIGFuZCAxKQogICAgICAgIHJlbGV2YW50X2luZGV4ID0gc29ydGVkKHJlbGV2YW50X2luZGV4KQoKICAgICAgICB0ZXh0ID0gIiwgIi5qb2luKHN0cihkYXRhW2ldKSBmb3IgaSBpbiByZWxldmFudF9pbmRleCkKICAgICAgICBvbl9kb25lID0gcGFydGlhbChzZWxmLl9vbl9yZXNpemVfcGFuZXMsIG9yaWVudGF0aW9uLCBjZWxscywgcmVsZXZhbnRfaW5kZXgsIGRhdGEpCiAgICAgICAgb25fdXBkYXRlID0gcGFydGlhbChzZWxmLl9vbl9yZXNpemVfcGFuZXNfdXBkYXRlLCBvcmllbnRhdGlvbiwgY2VsbHMsIHJlbGV2YW50X2luZGV4LCBkYXRhKQogICAgICAgIG9uX2NhbmNsZSA9IHBhcnRpYWwoc2VsZi5fb25fcmVzaXplX3BhbmVzLCBvcmllbnRhdGlvbiwgY2VsbHMsIHJlbGV2YW50X2luZGV4LCBkYXRhLCB0ZXh0KQogICAgICAgIHZpZXcgPSBzZWxmLndpbmRvdy5zaG93X2lucHV0X3BhbmVsKG9yaWVudGF0aW9uLCB0ZXh0LCBvbl9kb25lLCBvbl91cGRhdGUsIG9uX2NhbmNsZSkKICAgICAgICB2aWV3LnNlbCgpLmNsZWFyKCkKICAgICAgICB2aWV3LnNlbCgpLmFkZChzdWJsaW1lLlJlZ2lvbigwLCB2aWV3LnNpemUoKSkpCgogICAgZGVmIF9vbl9yZXNpemVfcGFuZXNfZ2V0X2xheW91dChzZWxmLCBvcmllbnRhdGlvbiwgY2VsbHMsIHJlbGV2YW50X2luZGV4LCBvcmlnX2RhdGEsIHRleHQpOgogICAgICAgIHJvd3MsIGNvbHMsIF8gPSBzZWxmLmdldF9sYXlvdXQoKQoKICAgICAgICBpbnB1dF9kYXRhID0gW2Zsb2F0KHgpIGZvciB4IGluIHRleHQuc3BsaXQoIiwiKV0KICAgICAgICBpZiBhbnkoZCA+IDEuMCBmb3IgZCBpbiBpbnB1dF9kYXRhKToKICAgICAgICAgICAgcmV0dXJuIHsiY29scyI6IGNvbHMsICJyb3dzIjogcm93cywgImNlbGxzIjogY2VsbHN9CgogICAgICAgIGNlbGxzID0gY29weS5kZWVwY29weShjZWxscykKICAgICAgICBkYXRhID0gY29weS5kZWVwY29weShvcmlnX2RhdGEpCiAgICAgICAgZm9yIGksIGQgaW4gemlwKHJlbGV2YW50X2luZGV4LCBpbnB1dF9kYXRhKToKICAgICAgICAgICAgZGF0YVtpXSA9IGQKCiAgICAgICAgZGF0YSA9IHNvcnRlZChlbnVtZXJhdGUoZGF0YSksIGtleT1sYW1iZGEgeDogeFsxXSkgICMgc29ydCBzdWNoIHRoYXQgeW91IGNhbiBzd2FwIGdyaWQgbGluZXMKICAgICAgICBpbmRleGVzLCBkYXRhID0gbWFwKGxpc3QsIHppcCgqZGF0YSkpICAjIGluZGV4ZXMgYXJlIGFsc28gc29ydGVkCgogICAgICAgIHJldmVsYW50X2NlbGxfZW50cmllcyA9IFtdCiAgICAgICAgaWYgb3JpZW50YXRpb24gPT0gImNvbHMiOgogICAgICAgICAgICByZXZlbGFudF9jZWxsX2VudHJpZXMgPSBbWE1JTiwgWE1BWF0KICAgICAgICBlbGlmIG9yaWVudGF0aW9uID09ICJyb3dzIjoKICAgICAgICAgICAgcmV2ZWxhbnRfY2VsbF9lbnRyaWVzID0gW1lNSU4sIFlNQVhdCgogICAgICAgICMgY2hhbmdlIHRoZSBjZWxsIGJvdW5kYXJpZXMgYWNjb3JkaW5nIHRvIHRoZSBzb3J0ZWQgaW5kZXhlcwogICAgICAgIGZvciBjZWxsIGluIGNlbGxzOgogICAgICAgICAgICBmb3IgaiBpbiByZXZlbGFudF9jZWxsX2VudHJpZXM6CiAgICAgICAgICAgICAgICBmb3IgbmV3LCBvbGQgaW4gZW51bWVyYXRlKGluZGV4ZXMpOgogICAgICAgICAgICAgICAgICAgIGlmIG5ldyAhPSBvbGQgYW5kIGNlbGxbal0gPT0gbmV3OgogICAgICAgICAgICAgICAgICAgICAgICBjZWxsW2pdID0gb2xkCiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCgogICAgICAgIGlmIG9yaWVudGF0aW9uID09ICJjb2xzIjoKICAgICAgICAgICAgaWYgbGVuKGNvbHMpID09IGxlbihkYXRhKToKICAgICAgICAgICAgICAgIGNvbHMgPSBkYXRhCiAgICAgICAgZWxpZiBvcmllbnRhdGlvbiA9PSAicm93cyI6CiAgICAgICAgICAgIGlmIGxlbihyb3dzKSA9PSBsZW4oZGF0YSk6CiAgICAgICAgICAgICAgICByb3dzID0gZGF0YQoKICAgICAgICByZXR1cm4geyJjb2xzIjogY29scywgInJvd3MiOiByb3dzLCAiY2VsbHMiOiBjZWxsc30KCiAgICBkZWYgX29uX3Jlc2l6ZV9wYW5lc191cGRhdGUoc2VsZiwgb3JpZW50YXRpb24sIGNlbGxzLCByZWxldmFudF9pbmRleCwgb3JpZ19kYXRhLCB0ZXh0KToKICAgICAgICBsYXlvdXQgPSBzZWxmLl9vbl9yZXNpemVfcGFuZXNfZ2V0X2xheW91dChvcmllbnRhdGlvbiwgY2VsbHMsIHJlbGV2YW50X2luZGV4LCBvcmlnX2RhdGEsIHRleHQpCiAgICAgICAgc2VsZi53aW5kb3cuc2V0X2xheW91dChsYXlvdXQpCgogICAgZGVmIF9vbl9yZXNpemVfcGFuZXMoc2VsZiwgb3JpZW50YXRpb24sIGNlbGxzLCByZWxldmFudF9pbmRleCwgb3JpZ19kYXRhLCB0ZXh0KToKICAgICAgICBsYXlvdXQgPSBzZWxmLl9vbl9yZXNpemVfcGFuZXNfZ2V0X2xheW91dChvcmllbnRhdGlvbiwgY2VsbHMsIHJlbGV2YW50X2luZGV4LCBvcmlnX2RhdGEsIHRleHQpCiAgICAgICAgc2VsZi53aW5kb3cuc2V0X2xheW91dChsYXlvdXQpCgogICAgCgogICAgZGVmIHpvb21fcGFuZShzZWxmLCBhdXRvX3pvb20pOgogICAgICAgIGZyYWN0aW9uX2hvcml6b250YWwgPSAuOQogICAgICAgIGZyYWN0aW9uX3ZlcnRpY2FsID0gLjkKICAgICAgICAKICAgICAgICBpZiBpc2luc3RhbmNlKGF1dG9fem9vbSwgZmxvYXQpIG9yIGlzaW5zdGFuY2UoYXV0b196b29tLCBpbnQpOgogICAgICAgICAgICBmcmFjdGlvbl9ob3Jpem9udGFsID0gYXV0b196b29tCiAgICAgICAgZWxpZiBpc2luc3RhbmNlKGF1dG9fem9vbSwgbGlzdCk6CiAgICAgICAgICAgIGZyYWN0aW9uX2hvcml6b250YWwgPSBhdXRvX3pvb21bMF0KICAgICAgICAgICAgZnJhY3Rpb25fdmVydGljYWwgPSBhdXRvX3pvb21bMV0KCiAgICAgICAgZnJhY3Rpb25faG9yaXpvbnRhbCA9IG1pbigxLCBtYXgoMCwgZnJhY3Rpb25faG9yaXpvbnRhbCkpCiAgICAgICAgZnJhY3Rpb25fdmVydGljYWwgID0gbWluKDEsIG1heCgwLCBmcmFjdGlvbl92ZXJ0aWNhbCkpCgogICAgICAgIHdpbmRvdyA9IHNlbGYud2luZG93CiAgICAgICAgcm93cywgY29scywgY2VsbHMgPSBzZWxmLmdldF9sYXlvdXQoKQogICAgICAgIGN1cnJlbnRfY2VsbCA9IGNlbGxzW3dpbmRvdy5hY3RpdmVfZ3JvdXAoKV0KCiAgICAgICAgY3VycmVudF9jb2wgPSBjdXJyZW50X2NlbGxbMF0KICAgICAgICBudW1fY29scyA9IGxlbihjb2xzKSAtIDEKCiAgICAgICAgIyBUT0RPOiB0aGUgc2l6ZXMgb2YgdGhlIHVuem9vbWVkIHBhbmVzIGFyZSBjYWxjdWxhdGVkIGluY29ycmVjdGx5IGlmIHRoZQogICAgICAgICMgICAgICAgdW56b29tZWQgcGFuZXMgaGF2ZSBhIHNwbGl0IHRoYXQgb3ZlcmxhcHMgdGhlIHpvb21lZCBwYW5lLgogICAgICAgIGN1cnJlbnRfY29sX3dpZHRoID0gMSBpZiBudW1fY29scyA9PSAxIGVsc2UgZnJhY3Rpb25faG9yaXpvbnRhbAogICAgICAgIG90aGVyX2NvbF93aWR0aCA9IDAgaWYgbnVtX2NvbHMgPT0gMSBlbHNlICgxIC0gY3VycmVudF9jb2xfd2lkdGgpIC8gKG51bV9jb2xzIC0gMSkKCiAgICAgICAgY29scyA9IFswLjBdCiAgICAgICAgZm9yIGkgaW4gcmFuZ2UobnVtX2NvbHMpOgogICAgICAgICAgICBjb2xzLmFwcGVuZChjb2xzW2ldICsgKGN1cnJlbnRfY29sX3dpZHRoIGlmIGkgPT0gY3VycmVudF9jb2wgZWxzZSBvdGhlcl9jb2xfd2lkdGgpKQoKICAgICAgICBjdXJyZW50X3JvdyA9IGN1cnJlbnRfY2VsbFsxXQogICAgICAgIG51bV9yb3dzID0gbGVuKHJvd3MpIC0gMQoKICAgICAgICAjIGN1cnJlbnRfcm93X2hlaWdodCA9IDEgaWYgbnVtX3Jvd3MgPT0gMSBlbHNlIGZyYWN0aW9uX2hvcml6b250YWwKICAgICAgICBjdXJyZW50X3Jvd19oZWlnaHQgPSAxIGlmIG51bV9yb3dzID09IDEgZWxzZSBmcmFjdGlvbl92ZXJ0aWNhbAogICAgICAgIG90aGVyX3Jvd19oZWlnaHQgPSAwIGlmIG51bV9yb3dzID09IDEgZWxzZSAoMSAtIGN1cnJlbnRfcm93X2hlaWdodCkgLyAobnVtX3Jvd3MgLSAxKQogICAgICAgIHJvd3MgPSBbMC4wXQogICAgICAgIGZvciBpIGluIHJhbmdlKG51bV9yb3dzKToKICAgICAgICAgICAgcm93cy5hcHBlbmQocm93c1tpXSArIChjdXJyZW50X3Jvd19oZWlnaHQgaWYgaSA9PSBjdXJyZW50X3JvdyBlbHNlIG90aGVyX3Jvd19oZWlnaHQpKQoKICAgICAgICBsYXlvdXQgPSB7ImNvbHMiOiBjb2xzLCAicm93cyI6IHJvd3MsICJjZWxscyI6IGNlbGxzfSAgIyB0eXBlOiBzdWJsaW1lLkxheW91dAogICAgICAgIHdpbmRvdy5zZXRfbGF5b3V0KGxheW91dCkKCiAgICBkZWYgdW56b29tX3BhbmUoc2VsZik6CiAgICAgICAgd2luZG93ID0gc2VsZi53aW5kb3cKICAgICAgICByb3dzLCBjb2xzLCBjZWxscyA9IHNlbGYuZ2V0X2xheW91dCgpCgogICAgICAgIG51bV9jb2xzID0gbGVuKGNvbHMpIC0gMQogICAgICAgIGNvbF93aWR0aCA9IDEuMCAvIG51bV9jb2xzCgogICAgICAgIGNvbHMgPSBbMC4wXQogICAgICAgIGZvciBpIGluIHJhbmdlKG51bV9jb2xzKToKICAgICAgICAgICAgY29scy5hcHBlbmQoY29sc1tpXSArIGNvbF93aWR0aCkKCiAgICAgICAgbnVtX3Jvd3MgPSBsZW4ocm93cykgLSAxCiAgICAgICAgcm93X2hlaWdodCA9IDEuMCAvIG51bV9yb3dzCgogICAgICAgIHJvd3MgPSBbMC4wXQogICAgICAgIGZvciBpIGluIHJhbmdlKG51bV9yb3dzKToKICAgICAgICAgICAgcm93cy5hcHBlbmQocm93c1tpXSArIHJvd19oZWlnaHQpCgogICAgICAgIGxheW91dCA9IHsiY29scyI6IGNvbHMsICJyb3dzIjogcm93cywgImNlbGxzIjogY2VsbHN9ICAjIHR5cGU6IHN1YmxpbWUuTGF5b3V0CiAgICAgICAgd2luZG93LnNldF9sYXlvdXQobGF5b3V0KQoKICAgIGRlZiB0b2dnbGVfem9vbShzZWxmLCBmcmFjdGlvbik6CiAgICAgICAgcm93cywgY29scywgY2VsbHMgPSBzZWxmLmdldF9sYXlvdXQoKQogICAgICAgIGVxdWFsX3NwYWNpbmcgPSBUcnVlCgogICAgICAgIG51bV9jb2xzID0gbGVuKGNvbHMpIC0gMQogICAgICAgIGNvbF93aWR0aCA9IDEgLyBudW1fY29scwoKICAgICAgICBmb3IgaSwgYyBpbiBlbnVtZXJhdGUoY29scyk6CiAgICAgICAgICAgIGlmIGMgIT0gaSAqIGNvbF93aWR0aDoKICAgICAgICAgICAgICAgIGVxdWFsX3NwYWNpbmcgPSBGYWxzZQogICAgICAgICAgICAgICAgYnJlYWsKCiAgICAgICAgbnVtX3Jvd3MgPSBsZW4ocm93cykgLSAxCiAgICAgICAgcm93X2hlaWdodCA9IDEgLyBudW1fcm93cwoKICAgICAgICBmb3IgaSwgciBpbiBlbnVtZXJhdGUocm93cyk6CiAgICAgICAgICAgIGlmIHIgIT0gaSAqIHJvd19oZWlnaHQ6CiAgICAgICAgICAgICAgICBlcXVhbF9zcGFjaW5nID0gRmFsc2UKICAgICAgICAgICAgICAgIGJyZWFrCgogICAgICAgIGlmIGVxdWFsX3NwYWNpbmc6CiAgICAgICAgICAgIHNlbGYuem9vbV9wYW5lKGZyYWN0aW9uKQogICAgICAgIGVsc2U6CiAgICAgICAgICAgIHNlbGYudW56b29tX3BhbmUoKQoKICAgIGRlZiBjcmVhdGVfcGFuZShzZWxmLCBkaXJlY3Rpb24sIGdpdmVfZm9jdXM9RmFsc2UsIGRlc3Ryb3lfb2xkX2lmX2VtcHR5PUZhbHNlKToKICAgICAgICB3aW5kb3cgPSBzZWxmLndpbmRvdwogICAgICAgIHJvd3MsIGNvbHMsIGNlbGxzID0gc2VsZi5nZXRfbGF5b3V0KCkKICAgICAgICBjdXJyZW50X2dyb3VwID0gd2luZG93LmFjdGl2ZV9ncm91cCgpCgogICAgICAgIG9sZF9jZWxsID0gY2VsbHMucG9wKGN1cnJlbnRfZ3JvdXApCiAgICAgICAgbmV3X2NlbGwgPSBbXQoKICAgICAgICBpZiBkaXJlY3Rpb24gaW4gKCJ1cCIsICJkb3duIik6CiAgICAgICAgICAgIGNlbGxzID0gcHVzaF9kb3duX2NlbGxzX2FmdGVyKGNlbGxzLCBvbGRfY2VsbFtZTUFYXSkKICAgICAgICAgICAgcm93cy5pbnNlcnQob2xkX2NlbGxbWU1BWF0sIChyb3dzW29sZF9jZWxsW1lNSU5dXSArIHJvd3Nbb2xkX2NlbGxbWU1BWF1dKSAvIDIpCiAgICAgICAgICAgIG5ld19jZWxsID0gW29sZF9jZWxsW1hNSU5dLCBvbGRfY2VsbFtZTUFYXSwgb2xkX2NlbGxbWE1BWF0sIG9sZF9jZWxsW1lNQVhdICsgMV0KICAgICAgICAgICAgb2xkX2NlbGwgPSBbb2xkX2NlbGxbWE1JTl0sIG9sZF9jZWxsW1lNSU5dLCBvbGRfY2VsbFtYTUFYXSwgb2xkX2NlbGxbWU1BWF1dCgogICAgICAgIGVsaWYgZGlyZWN0aW9uIGluICgicmlnaHQiLCAibGVmdCIpOgogICAgICAgICAgICBjZWxscyA9IHB1c2hfcmlnaHRfY2VsbHNfYWZ0ZXIoY2VsbHMsIG9sZF9jZWxsW1hNQVhdKQogICAgICAgICAgICBjb2xzLmluc2VydChvbGRfY2VsbFtYTUFYXSwgKGNvbHNbb2xkX2NlbGxbWE1JTl1dICsgY29sc1tvbGRfY2VsbFtYTUFYXV0pIC8gMikKICAgICAgICAgICAgbmV3X2NlbGwgPSBbb2xkX2NlbGxbWE1BWF0sIG9sZF9jZWxsW1lNSU5dLCBvbGRfY2VsbFtYTUFYXSArIDEsIG9sZF9jZWxsW1lNQVhdXQogICAgICAgICAgICBvbGRfY2VsbCA9IFtvbGRfY2VsbFtYTUlOXSwgb2xkX2NlbGxbWU1JTl0sIG9sZF9jZWxsW1hNQVhdLCBvbGRfY2VsbFtZTUFYXV0KCiAgICAgICAgaWYgbmV3X2NlbGw6CiAgICAgICAgICAgIGlmIGRpcmVjdGlvbiBpbiAoImxlZnQiLCAidXAiKToKICAgICAgICAgICAgICAgIGZvY3VzZWRfY2VsbCA9IG5ld19jZWxsCiAgICAgICAgICAgICAgICB1bmZvY3VzZWRfY2VsbCA9IG9sZF9jZWxsCiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICBmb2N1c2VkX2NlbGwgPSBvbGRfY2VsbAogICAgICAgICAgICAgICAgdW5mb2N1c2VkX2NlbGwgPSBuZXdfY2VsbAogICAgICAgICAgICBjZWxscy5pbnNlcnQoY3VycmVudF9ncm91cCwgZm9jdXNlZF9jZWxsKQogICAgICAgICAgICBjZWxscy5hcHBlbmQodW5mb2N1c2VkX2NlbGwpCiAgICAgICAgICAgIGxheW91dCA9IHsiY29scyI6IGNvbHMsICJyb3dzIjogcm93cywgImNlbGxzIjogY2VsbHN9ICAjIHR5cGU6IHN1YmxpbWUuTGF5b3V0CiAgICAgICAgICAgIHdpbmRvdy5zZXRfbGF5b3V0KGxheW91dCkKCiAgICAgICAgICAgIGlmIGdpdmVfZm9jdXM6CiAgICAgICAgICAgICAgICBzZWxmLnRyYXZlbF90b19wYW5lKGRpcmVjdGlvbiwgRmFsc2UsIGRlc3Ryb3lfb2xkX2lmX2VtcHR5KQoKICAgIGRlZiBkZXN0cm95X2N1cnJlbnRfcGFuZShzZWxmKToKICAgICAgICAjIE91dCBvZiB0aGUgZm91ciBhZGphY2VudCBwYW5lcywgb25lIHdhcyBzcGxpdCB0byBjcmVhdGUgdGhpcyBwYW5lLgogICAgICAgICMgRmluZCBvdXQgd2hpY2ggb25lLCBtb3ZlIHRvIGl0LCB0aGVuIGRlc3Ryb3kgdGhpcyBwYW5lLgogICAgICAgIGNlbGxzID0gc2VsZi5nZXRfY2VsbHMoKQoKICAgICAgICBjdXJyZW50ID0gY2VsbHNbc2VsZi53aW5kb3cuYWN0aXZlX2dyb3VwKCldCgogICAgICAgIHRhcmdldF9kaXIgPSBOb25lCiAgICAgICAgZm9yIGRpciBpbiAoInVwIiwgInJpZ2h0IiwgImRvd24iLCAibGVmdCIpOgogICAgICAgICAgICBjID0gc2VsZi5hZGphY2VudF9jZWxsKGRpcikKICAgICAgICAgICAgaWYgbm90IGM6CiAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICBpZiBkaXIgaW4gKCJ1cCIsICJkb3duIik6CiAgICAgICAgICAgICAgICBpZiBjW1hNSU5dID09IGN1cnJlbnRbWE1JTl0gYW5kIGNbWE1BWF0gPT0gY3VycmVudFtYTUFYXToKICAgICAgICAgICAgICAgICAgICB0YXJnZXRfZGlyID0gZGlyCiAgICAgICAgICAgIGVsaWYgZGlyIGluICgibGVmdCIsICJyaWdodCIpOgogICAgICAgICAgICAgICAgaWYgY1tZTUlOXSA9PSBjdXJyZW50W1lNSU5dIGFuZCBjW1lNQVhdID09IGN1cnJlbnRbWU1BWF06CiAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2RpciA9IGRpcgogICAgICAgIGlmIHRhcmdldF9kaXI6CiAgICAgICAgICAgIHNlbGYudHJhdmVsX3RvX3BhbmUodGFyZ2V0X2RpcikKICAgICAgICAgICAgc2VsZi5kZXN0cm95X3BhbmUob3Bwb3NpdGVfZGlyZWN0aW9uKHRhcmdldF9kaXIpKQoKICAgIGRlZiBkZXN0cm95X3BhbmUoc2VsZiwgZGlyZWN0aW9uLCBvbmx5X29uX2VtcHR5PUZhbHNlKToKICAgICAgICBpZiBkaXJlY3Rpb24gPT0gInNlbGYiOgogICAgICAgICAgICBzZWxmLmRlc3Ryb3lfY3VycmVudF9wYW5lKCkKICAgICAgICAgICAgcmV0dXJuCgogICAgICAgIHdpbmRvdyA9IHNlbGYud2luZG93CiAgICAgICAgcm93cywgY29scywgY2VsbHMgPSBzZWxmLmdldF9sYXlvdXQoKQogICAgICAgIGN1cnJlbnRfZ3JvdXAgPSB3aW5kb3cuYWN0aXZlX2dyb3VwKCkKCiAgICAgICAgY2VsbF90b19yZW1vdmUgPSBOb25lCiAgICAgICAgY3VycmVudF9jZWxsID0gY2VsbHNbY3VycmVudF9ncm91cF0KCiAgICAgICAgYWRqYWNlbnRfY2VsbHMgPSBjZWxsc19hZGphY2VudF90b19jZWxsX2luX2RpcmVjdGlvbihjZWxscywgY3VycmVudF9jZWxsLCBkaXJlY3Rpb24pCiAgICAgICAgaWYgbGVuKGFkamFjZW50X2NlbGxzKSA9PSAxOgogICAgICAgICAgICBjZWxsX3RvX3JlbW92ZSA9IGFkamFjZW50X2NlbGxzWzBdCgogICAgICAgIGlmIGNlbGxfdG9fcmVtb3ZlOgogICAgICAgICAgICBhY3RpdmVfdmlldyA9IHdpbmRvdy5hY3RpdmVfdmlldygpCiAgICAgICAgICAgIGdyb3VwX3RvX3JlbW92ZSA9IGNlbGxzLmluZGV4KGNlbGxfdG9fcmVtb3ZlKQogICAgICAgICAgICBoYXNfY29udGVudCA9IGxlbih3aW5kb3cuc2hlZXRzX2luX2dyb3VwKGdyb3VwX3RvX3JlbW92ZSkpID4gMAogICAgICAgICAgICBpZiBvbmx5X29uX2VtcHR5IGFuZCBoYXNfY29udGVudDoKICAgICAgICAgICAgICAgIHJldHVybgoKICAgICAgICAgICAgZHVwZV92aWV3cyA9IHNlbGYuZHVwbGljYXRlZF92aWV3cyhjdXJyZW50X2dyb3VwLCBncm91cF90b19yZW1vdmUpCiAgICAgICAgICAgIGZvciBkIGluIGR1cGVfdmlld3M6CiAgICAgICAgICAgICAgICB3aW5kb3cuZm9jdXNfdmlldyhkKQogICAgICAgICAgICAgICAgd2luZG93LnJ1bl9jb21tYW5kKCdjbG9zZScpCiAgICAgICAgICAgIGlmIGFjdGl2ZV92aWV3OgogICAgICAgICAgICAgICAgd2luZG93LmZvY3VzX3ZpZXcoYWN0aXZlX3ZpZXcpCgogICAgICAgICAgICBjZWxscy5yZW1vdmUoY2VsbF90b19yZW1vdmUpCiAgICAgICAgICAgIGlmIGRpcmVjdGlvbiA9PSAidXAiOgogICAgICAgICAgICAgICAgcm93cy5wb3AoY2VsbF90b19yZW1vdmVbWU1BWF0pCiAgICAgICAgICAgICAgICBhZGphY2VudF9jZWxscyA9IGNlbGxzX2FkamFjZW50X3RvX2NlbGxfaW5fZGlyZWN0aW9uKGNlbGxzLCBjZWxsX3RvX3JlbW92ZSwgImRvd24iKQogICAgICAgICAgICAgICAgZm9yIGNlbGwgaW4gYWRqYWNlbnRfY2VsbHM6CiAgICAgICAgICAgICAgICAgICAgY2VsbHNbY2VsbHMuaW5kZXgoY2VsbCldW1lNSU5dID0gY2VsbF90b19yZW1vdmVbWU1JTl0KICAgICAgICAgICAgICAgIGNlbGxzID0gcHVsbF91cF9jZWxsc19hZnRlcihjZWxscywgY2VsbF90b19yZW1vdmVbWU1BWF0pCiAgICAgICAgICAgIGVsaWYgZGlyZWN0aW9uID09ICJyaWdodCI6CiAgICAgICAgICAgICAgICBjb2xzLnBvcChjZWxsX3RvX3JlbW92ZVtYTUlOXSkKICAgICAgICAgICAgICAgIGFkamFjZW50X2NlbGxzID0gY2VsbHNfYWRqYWNlbnRfdG9fY2VsbF9pbl9kaXJlY3Rpb24oY2VsbHMsIGNlbGxfdG9fcmVtb3ZlLCAibGVmdCIpCiAgICAgICAgICAgICAgICBmb3IgY2VsbCBpbiBhZGphY2VudF9jZWxsczoKICAgICAgICAgICAgICAgICAgICBjZWxsc1tjZWxscy5pbmRleChjZWxsKV1bWE1BWF0gPSBjZWxsX3RvX3JlbW92ZVtYTUFYXQogICAgICAgICAgICAgICAgY2VsbHMgPSBwdWxsX2xlZnRfY2VsbHNfYWZ0ZXIoY2VsbHMsIGNlbGxfdG9fcmVtb3ZlW1hNSU5dKQogICAgICAgICAgICBlbGlmIGRpcmVjdGlvbiA9PSAiZG93biI6CiAgICAgICAgICAgICAgICByb3dzLnBvcChjZWxsX3RvX3JlbW92ZVtZTUlOXSkKICAgICAgICAgICAgICAgIGFkamFjZW50X2NlbGxzID0gY2VsbHNfYWRqYWNlbnRfdG9fY2VsbF9pbl9kaXJlY3Rpb24oY2VsbHMsIGNlbGxfdG9fcmVtb3ZlLCAidXAiKQogICAgICAgICAgICAgICAgZm9yIGNlbGwgaW4gYWRqYWNlbnRfY2VsbHM6CiAgICAgICAgICAgICAgICAgICAgY2VsbHNbY2VsbHMuaW5kZXgoY2VsbCldW1lNQVhdID0gY2VsbF90b19yZW1vdmVbWU1BWF0KICAgICAgICAgICAgICAgIGNlbGxzID0gcHVsbF91cF9jZWxsc19hZnRlcihjZWxscywgY2VsbF90b19yZW1vdmVbWU1JTl0pCiAgICAgICAgICAgIGVsaWYgZGlyZWN0aW9uID09ICJsZWZ0IjoKICAgICAgICAgICAgICAgIGNvbHMucG9wKGNlbGxfdG9fcmVtb3ZlW1hNQVhdKQogICAgICAgICAgICAgICAgYWRqYWNlbnRfY2VsbHMgPSBjZWxsc19hZGphY2VudF90b19jZWxsX2luX2RpcmVjdGlvbihjZWxscywgY2VsbF90b19yZW1vdmUsICJyaWdodCIpCiAgICAgICAgICAgICAgICBmb3IgY2VsbCBpbiBhZGphY2VudF9jZWxsczoKICAgICAgICAgICAgICAgICAgICBjZWxsc1tjZWxscy5pbmRleChjZWxsKV1bWE1JTl0gPSBjZWxsX3RvX3JlbW92ZVtYTUlOXQogICAgICAgICAgICAgICAgY2VsbHMgPSBwdWxsX2xlZnRfY2VsbHNfYWZ0ZXIoY2VsbHMsIGNlbGxfdG9fcmVtb3ZlW1hNQVhdKQoKICAgICAgICAgICAgbGF5b3V0ID0geyJjb2xzIjogY29scywgInJvd3MiOiByb3dzLCAiY2VsbHMiOiBjZWxsc30gICMgdHlwZTogc3VibGltZS5MYXlvdXQKICAgICAgICAgICAgd2luZG93LnNldF9sYXlvdXQobGF5b3V0KQoKICAgIGRlZiBwdWxsX2ZpbGVfZnJvbV9wYW5lKHNlbGYsIGRpcmVjdGlvbik6CiAgICAgICAgYWRqYWNlbnRfY2VsbCA9IHNlbGYuYWRqYWNlbnRfY2VsbChkaXJlY3Rpb24pCgogICAgICAgIGlmIGFkamFjZW50X2NlbGw6CiAgICAgICAgICAgIGNlbGxzID0gc2VsZi5nZXRfY2VsbHMoKQogICAgICAgICAgICBncm91cF9pbmRleCA9IGNlbGxzLmluZGV4KGFkamFjZW50X2NlbGwpCgogICAgICAgICAgICB2aWV3ID0gc2VsZi53aW5kb3cuYWN0aXZlX3ZpZXdfaW5fZ3JvdXAoZ3JvdXBfaW5kZXgpCgogICAgICAgICAgICBpZiB2aWV3OgogICAgICAgICAgICAgICAgYWN0aXZlX2dyb3VwX2luZGV4ID0gc2VsZi53aW5kb3cuYWN0aXZlX2dyb3VwKCkKICAgICAgICAgICAgICAgIHZpZXdzX2luX2dyb3VwID0gc2VsZi53aW5kb3cudmlld3NfaW5fZ3JvdXAoYWN0aXZlX2dyb3VwX2luZGV4KQogICAgICAgICAgICAgICAgc2VsZi53aW5kb3cuc2V0X3ZpZXdfaW5kZXgodmlldywgYWN0aXZlX2dyb3VwX2luZGV4LCBsZW4odmlld3NfaW5fZ3JvdXApKQoKCmNsYXNzIFRyYXZlbFRvUGFuZUNvbW1hbmQoUGFuZUNvbW1hbmQsIFdpdGhTZXR0aW5ncyk6CiAgICBkZWYgcnVuKHNlbGYsIGRpcmVjdGlvbiwgY3JlYXRlX25ld19pZl9uZWNlc3Nhcnk9Tm9uZSwgZGVzdHJveV9vbGRfaWZfZW1wdHk9Tm9uZSk6CiAgICAgICAgaWYgY3JlYXRlX25ld19pZl9uZWNlc3NhcnkgaXMgTm9uZToKICAgICAgICAgICAgY3JlYXRlX25ld19pZl9uZWNlc3NhcnkgPSBzZWxmLnNldHRpbmdzKCkuZ2V0KCdjcmVhdGVfbmV3X3BhbmVfaWZfbmVjZXNzYXJ5JykKICAgICAgICBpZiBkZXN0cm95X29sZF9pZl9lbXB0eSBpcyBOb25lOgogICAgICAgICAgICBkZXN0cm95X29sZF9pZl9lbXB0eSA9IHNlbGYuc2V0dGluZ3MoKS5nZXQoJ2Rlc3Ryb3lfZW1wdHlfcGFuZXMnKQogICAgICAgIHNlbGYudHJhdmVsX3RvX3BhbmUoZGlyZWN0aW9uLCBjcmVhdGVfbmV3X2lmX25lY2Vzc2FyeSwgZGVzdHJveV9vbGRfaWZfZW1wdHkpCgoKY2xhc3MgQ2FycnlGaWxlVG9QYW5lQ29tbWFuZChQYW5lQ29tbWFuZCwgV2l0aFNldHRpbmdzKToKICAgIGRlZiBydW4oc2VsZiwgZGlyZWN0aW9uLCBjcmVhdGVfbmV3X2lmX25lY2Vzc2FyeT1Ob25lLCBkZXN0cm95X29sZF9pZl9lbXB0eT1Ob25lKToKICAgICAgICBpZiBjcmVhdGVfbmV3X2lmX25lY2Vzc2FyeSBpcyBOb25lOgogICAgICAgICAgICBjcmVhdGVfbmV3X2lmX25lY2Vzc2FyeSA9IHNlbGYuc2V0dGluZ3MoKS5nZXQoJ2NyZWF0ZV9uZXdfcGFuZV9pZl9uZWNlc3NhcnknKQogICAgICAgIGlmIGRlc3Ryb3lfb2xkX2lmX2VtcHR5IGlzIE5vbmU6CiAgICAgICAgICAgIGRlc3Ryb3lfb2xkX2lmX2VtcHR5ID0gc2VsZi5zZXR0aW5ncygpLmdldCgnZGVzdHJveV9lbXB0eV9wYW5lcycpCiAgICAgICAgc2VsZi5jYXJyeV9maWxlX3RvX3BhbmUoZGlyZWN0aW9uLCBjcmVhdGVfbmV3X2lmX25lY2Vzc2FyeSwgZGVzdHJveV9vbGRfaWZfZW1wdHkpCgoKY2xhc3MgQ2xvbmVGaWxlVG9QYW5lQ29tbWFuZChQYW5lQ29tbWFuZCwgV2l0aFNldHRpbmdzKToKICAgIGRlZiBydW4oc2VsZiwgZGlyZWN0aW9uLCBjcmVhdGVfbmV3X2lmX25lY2Vzc2FyeT1Ob25lKToKICAgICAgICBpZiBjcmVhdGVfbmV3X2lmX25lY2Vzc2FyeSBpcyBOb25lOgogICAgICAgICAgICBjcmVhdGVfbmV3X2lmX25lY2Vzc2FyeSA9IHNlbGYuc2V0dGluZ3MoKS5nZXQoJ2NyZWF0ZV9uZXdfcGFuZV9pZl9uZWNlc3NhcnknKQogICAgICAgIHNlbGYuY2xvbmVfZmlsZV90b19wYW5lKGRpcmVjdGlvbiwgY3JlYXRlX25ld19pZl9uZWNlc3NhcnkpCgoKY2xhc3MgQ3JlYXRlUGFuZVdpdGhGaWxlQ29tbWFuZChQYW5lQ29tbWFuZCk6CiAgICBkZWYgcnVuKHNlbGYsIGRpcmVjdGlvbik6CiAgICAgICAgc2VsZi5jcmVhdGVfcGFuZShkaXJlY3Rpb24pCiAgICAgICAgc2VsZi5wdWxsX2ZpbGVfZnJvbV9wYW5lKG9wcG9zaXRlX2RpcmVjdGlvbihkaXJlY3Rpb24pKQoKCmNsYXNzIENyZWF0ZVBhbmVXaXRoQ2xvbmVkRmlsZUNvbW1hbmQoUGFuZUNvbW1hbmQpOgogICAgZGVmIHJ1bihzZWxmLCBkaXJlY3Rpb24pOgogICAgICAgIHNlbGYuY3JlYXRlX3BhbmUoZGlyZWN0aW9uKQogICAgICAgIHNlbGYuY2xvbmVfZmlsZV90b19wYW5lKGRpcmVjdGlvbikKCgpjbGFzcyBQdWxsRmlsZUZyb21QYW5lQ29tbWFuZChQYW5lQ29tbWFuZCk6CiAgICBkZWYgcnVuKHNlbGYsIGRpcmVjdGlvbik6CiAgICAgICAgc2VsZi5wdWxsX2ZpbGVfZnJvbV9wYW5lKGRpcmVjdGlvbikKCgpjbGFzcyBab29tUGFuZUNvbW1hbmQoUGFuZUNvbW1hbmQpOgogICAgZGVmIHJ1bihzZWxmLCBmcmFjdGlvbj1Ob25lKToKICAgICAgICBzZWxmLnpvb21fcGFuZShmcmFjdGlvbikKCgpjbGFzcyBVbnpvb21QYW5lQ29tbWFuZChQYW5lQ29tbWFuZCk6CiAgICBkZWYgcnVuKHNlbGYpOgogICAgICAgIHNlbGYudW56b29tX3BhbmUoKQoKCmNsYXNzIFRvZ2dsZVpvb21QYW5lQ29tbWFuZChQYW5lQ29tbWFuZCk6CiAgICBkZWYgcnVuKHNlbGYsIGZyYWN0aW9uPU5vbmUpOgogICAgICAgIHNlbGYudG9nZ2xlX3pvb20oZnJhY3Rpb24pCgoKY2xhc3MgQ3JlYXRlUGFuZUNvbW1hbmQoUGFuZUNvbW1hbmQpOgogICAgZGVmIHJ1bihzZWxmLCBkaXJlY3Rpb24sIGdpdmVfZm9jdXM9RmFsc2UpOgogICAgICAgIHNlbGYuY3JlYXRlX3BhbmUoZGlyZWN0aW9uLCBnaXZlX2ZvY3VzKQoKCmNsYXNzIERlc3Ryb3lQYW5lQ29tbWFuZChQYW5lQ29tbWFuZCk6CiAgICBkZWYgcnVuKHNlbGYsIGRpcmVjdGlvbik6CiAgICAgICAgc2VsZi5kZXN0cm95X3BhbmUoZGlyZWN0aW9uKQoKCmNsYXNzIFJlc2l6ZVBhbmVDb21tYW5kKFBhbmVDb21tYW5kKToKICAgIGRlZiBydW4oc2VsZiwgb3JpZW50YXRpb24sIG1vZGU9Tm9uZSk6CiAgICAgICAgaWYgbW9kZSBpcyBOb25lOgogICAgICAgICAgICBtb2RlID0gIk5FQVJFU1QiCiAgICAgICAgc2VsZi5yZXNpemVfcGFuZXMob3JpZW50YXRpb24sIG1vZGUpCgoKY2xhc3MgUmVvcmRlclBhbmVDb21tYW5kKFBhbmVDb21tYW5kKToKICAgIGRlZiBydW4oc2VsZik6CiAgICAgICAgc2VsZi5yZW9yZGVyX3BhbmVzKCkKCgpjbGFzcyBTYXZlTGF5b3V0Q29tbWFuZChQYW5lQ29tbWFuZCwgV2l0aFNldHRpbmdzKToKICAgICIiIlNhdmUgdGhlIGN1cnJlbnQgbGF5b3V0IGNvbmZpZ3VyYXRpb24gaW4gYSBzZXR0aW5ncyBmaWxlLiIiIgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCB3aW5kb3cpOgogICAgICAgIHNlbGYud2luZG93ID0gd2luZG93CiAgICAgICAgc3VwZXIoU2F2ZUxheW91dENvbW1hbmQsIHNlbGYpLl9faW5pdF9fKHdpbmRvdykKCiAgICBkZWYgb25fZG9uZShzZWxmLCBuaWNrbmFtZSk6CiAgICAgICAgc2F2ZWRfbGF5b3V0cyA9IHNlbGYuc2V0dGluZ3MoKS5nZXQoJ3NhdmVkX2xheW91dHMnKQogICAgICAgIGxheW91dF9uYW1lcyA9IFtsYXlvdXRbJ25pY2tuYW1lJ10gZm9yIGxheW91dCBpbiBzYXZlZF9sYXlvdXRzXQogICAgICAgIGxheW91dF9kYXRhID0gc2VsZi5nZXRfbGF5b3V0KCkKCiAgICAgICAgaWYgbmlja25hbWUgaW4gbGF5b3V0X25hbWVzOgogICAgICAgICAgICBkaWFsb2dfc3RyID0gKCdZb3UgYWxyZWFkeSBoYXZlIGEgbGF5b3V0IHN0b3JlZCBhcyAiezB9Ii5cblxuJwogICAgICAgICAgICAgICAgICAgICAgICAgICdEbyB5b3Ugd2FudCB0byBjb250aW51ZSBhbmQgb3ZlcndyaXRlIHRoYXQgbGF5b3V0PycuZm9ybWF0KG5pY2tuYW1lKSkKICAgICAgICAgICAgZGlhbG9nX2J0biA9ICdPdmVyd3JpdGUgbGF5b3V0JwoKICAgICAgICAgICAgaWYgc3VibGltZS5va19jYW5jZWxfZGlhbG9nKGRpYWxvZ19zdHIsIGRpYWxvZ19idG4pOgogICAgICAgICAgICAgICAgZGVmIGdldF9pbmRleChzZXEsIGF0dHIsIHZhbHVlKToKICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV4dChpIGZvciAoaSwgZCkgaW4gZW51bWVyYXRlKHNlcSkgaWYgZFthdHRyXSA9PSB2YWx1ZSkKCiAgICAgICAgICAgICAgICBsYXlvdXQgPSBzYXZlZF9sYXlvdXRzW2dldF9pbmRleChzYXZlZF9sYXlvdXRzLCAnbmlja25hbWUnLCBuaWNrbmFtZSldCiAgICAgICAgICAgICAgICBsYXlvdXRbJ3Jvd3MnXSA9IGxheW91dF9kYXRhWzBdCiAgICAgICAgICAgICAgICBsYXlvdXRbJ2NvbHMnXSA9IGxheW91dF9kYXRhWzFdCiAgICAgICAgICAgICAgICBsYXlvdXRbJ2NlbGxzJ10gPSBsYXlvdXRfZGF0YVsyXQogICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAgc2VsZi53aW5kb3cucnVuX2NvbW1hbmQoInNhdmVfbGF5b3V0IikKICAgICAgICAgICAgICAgIHJldHVybgogICAgICAgIGVsc2U6CiAgICAgICAgICAgIGxheW91dCA9IHsKICAgICAgICAgICAgICAgICduaWNrbmFtZSc6IG5pY2tuYW1lLAogICAgICAgICAgICAgICAgJ3Jvd3MnOiBsYXlvdXRfZGF0YVswXSwKICAgICAgICAgICAgICAgICdjb2xzJzogbGF5b3V0X2RhdGFbMV0sCiAgICAgICAgICAgICAgICAnY2VsbHMnOiBsYXlvdXRfZGF0YVsyXSwKICAgICAgICAgICAgfQogICAgICAgICAgICBzYXZlZF9sYXlvdXRzLmFwcGVuZChsYXlvdXQpCgogICAgICAgIHNlbGYuc2V0dGluZ3MoKS5zZXQoJ3NhdmVkX2xheW91dHMnLCBzYXZlZF9sYXlvdXRzKQogICAgICAgIHN1YmxpbWUuc2F2ZV9zZXR0aW5ncyhTRVRUSU5HU19GSUxFTkFNRSkKCiAgICBkZWYgcnVuKHNlbGYpOgogICAgICAgIHNlbGYud2luZG93LnNob3dfaW5wdXRfcGFuZWwoCiAgICAgICAgICAgICdXaW5kb3cgbGF5b3V0IG5pY2tuYW1lOicsCiAgICAgICAgICAgICcnLAogICAgICAgICAgICBzZWxmLm9uX2RvbmUsCiAgICAgICAgICAgIE5vbmUsCiAgICAgICAgICAgIE5vbmUKICAgICAgICApCgoKY2xhc3MgUmVzdG9yZUxheW91dENvbW1hbmQoUGFuZUNvbW1hbmQsIFdpdGhTZXR0aW5ncyk6CiAgICAiIiJSZXN0b3JlIGEgc2F2ZWQgbGF5b3V0IGZyb20gYSBzZXR0aW5ncyBmaWxlLiIiIgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCB3aW5kb3cpOgogICAgICAgIHNlbGYud2luZG93ID0gd2luZG93CiAgICAgICAgc3VwZXIoUmVzdG9yZUxheW91dENvbW1hbmQsIHNlbGYpLl9faW5pdF9fKHdpbmRvdykKCiAgICBkZWYgb25fZG9uZShzZWxmLCBpbmRleCk6CiAgICAgICAgc2F2ZWRfbGF5b3V0cyA9IHNlbGYuc2V0dGluZ3MoKS5nZXQoJ3NhdmVkX2xheW91dHMnKQoKICAgICAgICBpZiBpbmRleCAhPSAtMToKICAgICAgICAgICAgc2VsZWN0ZWRfbGF5b3V0ID0gc2F2ZWRfbGF5b3V0c1tpbmRleF0KICAgICAgICAgICAgbGF5b3V0ID0gewogICAgICAgICAgICAgICAgJ2NlbGxzJzogc2VsZWN0ZWRfbGF5b3V0WydjZWxscyddLAogICAgICAgICAgICAgICAgJ2NvbHMnOiBzZWxlY3RlZF9sYXlvdXRbJ2NvbHMnXSwKICAgICAgICAgICAgICAgICdyb3dzJzogc2VsZWN0ZWRfbGF5b3V0Wydyb3dzJ10KICAgICAgICAgICAgfSAgIyB0eXBlOiBzdWJsaW1lLkxheW91dAogICAgICAgICAgICBzZWxmLndpbmRvdy5zZXRfbGF5b3V0KGxheW91dCkKCiAgICBkZWYgcnVuKHNlbGYpOgogICAgICAgIGlmIHNlbGYuc2V0dGluZ3MoKS5oYXMoJ3NhdmVkX2xheW91dHMnKToKICAgICAgICAgICAgc2F2ZWRfbGF5b3V0cyA9IHNlbGYuc2V0dGluZ3MoKS5nZXQoJ3NhdmVkX2xheW91dHMnKQogICAgICAgICAgICBsYXlvdXRfbmFtZXMgPSBbbGF5b3V0WyduaWNrbmFtZSddIGZvciBsYXlvdXQgaW4gc2F2ZWRfbGF5b3V0c10KICAgICAgICAgICAgc2VsZi53aW5kb3cuc2hvd19xdWlja19wYW5lbChsYXlvdXRfbmFtZXMsIHNlbGYub25fZG9uZSkKCgpjbGFzcyBSZW1vdmVMYXlvdXRDb21tYW5kKFBhbmVDb21tYW5kLCBXaXRoU2V0dGluZ3MpOgogICAgIiIiUmVtb3ZlIGEgcHJldmlvdXNseSBzYXZlZCBsYXlvdXQgZnJvbSB5b3VyIHNldHRpbmdzIGZpbGUuIiIiCgogICAgZGVmIF9faW5pdF9fKHNlbGYsIHdpbmRvdyk6CiAgICAgICAgc2VsZi53aW5kb3cgPSB3aW5kb3cKICAgICAgICBzdXBlcihSZW1vdmVMYXlvdXRDb21tYW5kLCBzZWxmKS5fX2luaXRfXyh3aW5kb3cpCgogICAgZGVmIG9uX2RvbmUoc2VsZiwgaW5kZXgpOgogICAgICAgIHNhdmVkX2xheW91dHMgPSBzZWxmLnNldHRpbmdzKCkuZ2V0KCdzYXZlZF9sYXlvdXRzJykKCiAgICAgICAgaWYgaW5kZXggIT0gLTE6CiAgICAgICAgICAgIHNhdmVkX2xheW91dHMucG9wKGluZGV4KQogICAgICAgICAgICBzZWxmLnNldHRpbmdzKCkuc2V0KCdzYXZlZF9sYXlvdXRzJywgc2F2ZWRfbGF5b3V0cykKICAgICAgICAgICAgc3VibGltZS5zYXZlX3NldHRpbmdzKFNFVFRJTkdTX0ZJTEVOQU1FKQoKICAgIGRlZiBydW4oc2VsZik6CiAgICAgICAgaWYgc2VsZi5zZXR0aW5ncygpLmhhcygnc2F2ZWRfbGF5b3V0cycpOgogICAgICAgICAgICBzYXZlZF9sYXlvdXRzID0gc2VsZi5zZXR0aW5ncygpLmdldCgnc2F2ZWRfbGF5b3V0cycpCiAgICAgICAgICAgIGxheW91dF9uYW1lcyA9IFtsYXlvdXRbJ25pY2tuYW1lJ10gZm9yIGxheW91dCBpbiBzYXZlZF9sYXlvdXRzXQogICAgICAgICAgICBzZWxmLndpbmRvdy5zaG93X3F1aWNrX3BhbmVsKGxheW91dF9uYW1lcywgc2VsZi5vbl9kb25lKQoKCmNsYXNzIE5ld1dpbmRvd0Zyb21TYXZlZExheW91dENvbW1hbmQoUGFuZUNvbW1hbmQsIFdpdGhTZXR0aW5ncyk6CiAgICAiIiIKICAgIEJyaW5ncyB1cCBhIGxpc3Qgb2Ygc2F2ZWQgdmlld3MgYW5kIGFsbG93cyB0aGUgdXNlcgogICAgdG8gY3JlYXRlIGEgbmV3IHdpbmRvdyB1c2luZyB0aGF0IGxheW91dC4KICAgICIiIgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCB3aW5kb3cpOgogICAgICAgIHNlbGYud2luZG93ID0gd2luZG93CiAgICAgICAgc3VwZXIoTmV3V2luZG93RnJvbVNhdmVkTGF5b3V0Q29tbWFuZCwgc2VsZikuX19pbml0X18od2luZG93KQoKICAgIGRlZiBvbl9kb25lKHNlbGYsIGluZGV4KToKICAgICAgICBzYXZlZF9sYXlvdXRzID0gc2VsZi5zZXR0aW5ncygpLmdldCgnc2F2ZWRfbGF5b3V0cycpCgogICAgICAgIGlmIGluZGV4ICE9IC0xOgogICAgICAgICAgICBzZWxlY3RlZF9sYXlvdXQgPSBzYXZlZF9sYXlvdXRzW2luZGV4XQogICAgICAgICAgICBsYXlvdXQgPSB7CiAgICAgICAgICAgICAgICAnY2VsbHMnOiBzZWxlY3RlZF9sYXlvdXRbJ2NlbGxzJ10sCiAgICAgICAgICAgICAgICAnY29scyc6IHNlbGVjdGVkX2xheW91dFsnY29scyddLAogICAgICAgICAgICAgICAgJ3Jvd3MnOiBzZWxlY3RlZF9sYXlvdXRbJ3Jvd3MnXQogICAgICAgICAgICB9ICAjIHR5cGU6IHN1YmxpbWUuTGF5b3V0CgogICAgICAgICAgICBzZWxmLndpbmRvdy5ydW5fY29tbWFuZCgibmV3X3dpbmRvdyIpCiAgICAgICAgICAgIG5ld193aW5kb3cgPSBzdWJsaW1lLmFjdGl2ZV93aW5kb3coKQogICAgICAgICAgICBuZXdfd2luZG93LnNldF9sYXlvdXQobGF5b3V0KQoKICAgIGRlZiBydW4oc2VsZik6CiAgICAgICAgaWYgc2VsZi5zZXR0aW5ncygpLmhhcygnc2F2ZWRfbGF5b3V0cycpOgogICAgICAgICAgICBzYXZlZF9sYXlvdXRzID0gc2VsZi5zZXR0aW5ncygpLmdldCgnc2F2ZWRfbGF5b3V0cycpCiAgICAgICAgICAgIGxheW91dF9uYW1lcyA9IFtsYXlvdXRbJ25pY2tuYW1lJ10gZm9yIGxheW91dCBpbiBzYXZlZF9sYXlvdXRzXQogICAgICAgICAgICBzZWxmLndpbmRvdy5zaG93X3F1aWNrX3BhbmVsKGxheW91dF9uYW1lcywgc2VsZi5vbl9kb25lKQoKCmNsYXNzIE5ld1dpbmRvd1dpdGhDdXJyZW50TGF5b3V0Q29tbWFuZChQYW5lQ29tbWFuZCk6CiAgICAiIiJPcGVucyBhIG5ldyB3aW5kb3cgdXNpbmcgdGhlIGN1cnJlbnQgbGF5b3V0IHNldHRpbmdzLiIiIgoKICAgIGRlZiBfX2luaXRfXyhzZWxmLCB3aW5kb3cpOgogICAgICAgIHNlbGYud2luZG93ID0gd2luZG93CiAgICAgICAgc3VwZXIoTmV3V2luZG93V2l0aEN1cnJlbnRMYXlvdXRDb21tYW5kLCBzZWxmKS5fX2luaXRfXyh3aW5kb3cpCgogICAgZGVmIHJ1bihzZWxmKToKICAgICAgICBsYXlvdXQgPSBzZWxmLndpbmRvdy5sYXlvdXQoKQogICAgICAgIHNlbGYud2luZG93LnJ1bl9jb21tYW5kKCJuZXdfd2luZG93IikKICAgICAgICBuZXdfd2luZG93ID0gc3VibGltZS5hY3RpdmVfd2luZG93KCkKICAgICAgICBuZXdfd2luZG93LnNldF9sYXlvdXQobGF5b3V0KQoKCmNsYXNzIEF1dG9DbG9zZUVtcHR5UGFuZXMoc3VibGltZV9wbHVnaW4uRXZlbnRMaXN0ZW5lciwgV2l0aFNldHRpbmdzKToKICAgIGRlZiBpc190YWJsZXNzX3ZpZXcoc2VsZiwgdmlldyk6CiAgICAgICAgIiIiV2hlbiB5b3UgbWFrZSBhIG5ldyBwYW5lLCBpdCBjb21lcyB3aXRoIGEgdGFibGVzcyB2aWV3IHRoYXQgZ2V0cyBhCiAgICAgICAgdGFiIHdoZW4geW91IHR5cGUgaW50byBpdC4gWW91IGFsc28gZ2V0IGEgc2ltaWxhciB2aWV3IHdoZW4gdXNpbmcgdGhlCiAgICAgICAgY29tbWFuZCBwYWxldHRlIHRvIG9wZW4gYSBmaWxlLgogICAgICAgIElmIHdlIHRoaW5rIGl0J3MgdGhpcyBraW5kIG9mIHZpZXcsIHJldHVybiBUcnVlLiIiIgogICAgICAgIGlmIHN1YmxpbWUudmVyc2lvbigpWzBdID09ICcyJzoKICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgZWxpZiB2aWV3LndpbmRvdygpIGFuZCB2aWV3LndpbmRvdygpLmdldF92aWV3X2luZGV4KHZpZXcpWzFdID09IC0xOgogICAgICAgICAgICByZXR1cm4gVHJ1ZQogICAgICAgIHJldHVybiBGYWxzZQoKICAgIGRlZiBvbl9jbG9zZShzZWxmLCB2aWV3KToKICAgICAgICBpZiBzdWJsaW1lLnZlcnNpb24oKVswXSA9PSAnMic6CiAgICAgICAgICAgIHNlbGYub25fcHJlX2Nsb3NlKHZpZXcpCgogICAgZGVmIG9uX3ByZV9jbG9zZShzZWxmLCB2aWV3KToKICAgICAgICAjIFJlYWQgZnJvbSBnbG9iYWwgc2V0dGluZ3MgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkKICAgICAgICBhdXRvX2Nsb3NlID0gdmlldy5zZXR0aW5ncygpLmdldCgib3JpZ2FtaV9hdXRvX2Nsb3NlX2VtcHR5X3BhbmVzIikKICAgICAgICBpZiBhdXRvX2Nsb3NlIGlzIE5vbmU6CiAgICAgICAgICAgIGF1dG9fY2xvc2UgPSBzZWxmLnNldHRpbmdzKCkuZ2V0KCJhdXRvX2Nsb3NlX2VtcHR5X3BhbmVzIikKICAgICAgICBpZiBub3QgYXV0b19jbG9zZToKICAgICAgICAgICAgcmV0dXJuCgogICAgICAgIHdpbmRvdyA9IHZpZXcud2luZG93KCkKICAgICAgICBpZiB3aW5kb3cgaXMgTm9uZToKICAgICAgICAgICAgIyBJZiB3ZSdyZSB0aGUgbGFzdCB2aWV3IGluIHRoZSB3aW5kb3csIHRoZW4gdGhlIHdpbmRvdyBjbG9zZXMKICAgICAgICAgICAgIyBiZWZvcmUgb25fcHJlX2Nsb3NlIGlzIGNhbGxlZCAoISEpLgogICAgICAgICAgICAjIEluIHRoaXMgY2FzZSwgd2UgZG9uJ3Qgd2FudCB0byBjbG9zZSBhbnl0aGluZyBleHRyYSBiZWNhdXNlIHRoZQogICAgICAgICAgICAjIHdpbmRvdyBpcyBhbHJlYWR5IGNsb3NpbmcuCiAgICAgICAgICAgIHJldHVybgogICAgICAgIGFjdGl2ZV9ncm91cCA9IHdpbmRvdy5hY3RpdmVfZ3JvdXAoKQoKICAgICAgICBpZiBzZWxmLmlzX3RhYmxlc3Nfdmlldyh2aWV3KToKICAgICAgICAgICAgIyBXZSBkb24ndCB3YW50IHRvIGNsb3NlIHRoZSBwYW5lIHdoZW4gY2xvc2luZyBhIHRyYW5zaWVudCB2aWV3CiAgICAgICAgICAgIHJldHVybgoKICAgICAgICAjIFdlJ3JlIGluIHByZV9jbG9zZSwgc28gdXNlIHNldF90aW1lb3V0IHRvIGNsb3NlIHRoZSBncm91cCByaWdodCBhZnRlciB0aGlzLgogICAgICAgIGlmIGxlbih3aW5kb3cudmlld3NfaW5fZ3JvdXAoYWN0aXZlX2dyb3VwKSkgPT0gMToKICAgICAgICAgICAgc3VibGltZS5zZXRfdGltZW91dChsYW1iZGE6IHdpbmRvdy5ydW5fY29tbWFuZCgiZGVzdHJveV9wYW5lIiwgeyJkaXJlY3Rpb24iOiAic2VsZiJ9KSwgMCkKCgpjbGFzcyBBdXRvWm9vbU9uRm9jdXMoc3VibGltZV9wbHVnaW4uRXZlbnRMaXN0ZW5lciwgV2l0aFNldHRpbmdzKToKICAgIHJ1bm5pbmcgPSBGYWxzZQogICAgYWN0aXZlX2dyb3VwID0gLTEKCiAgICBkZWYgZGVsYXllZF96b29tKHNlbGYsIHZpZXcsIGZyYWN0aW9uKToKICAgICAgICAjIHpvb21fcGFuZSBoYW5ncyBzdWJsaW1lIGlmIHlvdSBkZXN0cm95IHRoZSBwYW5lIGFib3ZlIG9yIHRvIHlvdXIgbGVmdC4KICAgICAgICAjIGNhbGwgaXQgaW4gYSBzdWJsaW1lLnNldF90aW1lb3V0IHRvIGZpeCB0aGUgaXNzdWUKCiAgICAgICAgIyBTdWJsaW1lIFRleHQgMiBoYXMgaXNzdWVzIG9uIHN0YXJ0dXAgd2hlcmUgdmlld3MgZG9uJ3QgaGF2ZSB3aW5kb3dzIHlldC4KICAgICAgICAjIElmIHdlIGRvbid0IGhhdmUgYSB3aW5kb3cgeWV0LCBiYWlsLgogICAgICAgIGlmIHZpZXcud2luZG93KCkgaXMgTm9uZToKICAgICAgICAgICAgc2VsZi5ydW5uaW5nID0gRmFsc2UKICAgICAgICAgICAgcmV0dXJuCgogICAgICAgIGFyZ3MgPSB7fQogICAgICAgICMgV29yayBjb3JyZWN0bHkgaWYgc29tZW9uZSBzZXRzICJvcmlnYW1pX2F1dG9fem9vbV9vbl9mb2N1cyI6IHRydWUgcmF0aGVyCiAgICAgICAgIyB0aGFuIGUuZy4gIm9yaWdhbWlfYXV0b196b29tX29uX2ZvY3VzIjogLjguCiAgICAgICAgaWYgZnJhY3Rpb24gaXMgbm90IFRydWU6CiAgICAgICAgICAgIGFyZ3NbImZyYWN0aW9uIl0gPSBmcmFjdGlvbgogICAgICAgIHZpZXcud2luZG93KCkucnVuX2NvbW1hbmQoInpvb21fcGFuZSIsIGFyZ3MpCiAgICAgICAgc2VsZi5ydW5uaW5nID0gRmFsc2UKCiAgICBkZWYgb25fYWN0aXZhdGVkKHNlbGYsIHZpZXcpOgogICAgICAgIGlmIHNlbGYucnVubmluZzoKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgIyBSZWFkIGZyb20gZ2xvYmFsIHNldHRpbmdzIGZvciBiYWNrd2FyZCBjb21wYXRpYmlsaXR5CiAgICAgICAgZnJhY3Rpb24gPSB2aWV3LnNldHRpbmdzKCkuZ2V0KCJvcmlnYW1pX2F1dG9fem9vbV9vbl9mb2N1cyIpCiAgICAgICAgaWYgZnJhY3Rpb24gaXMgTm9uZToKICAgICAgICAgICAgZnJhY3Rpb24gPSBzZWxmLnNldHRpbmdzKCkuZ2V0KCJhdXRvX3pvb21fb25fZm9jdXMiKQogICAgICAgIGlmIG5vdCBmcmFjdGlvbjoKICAgICAgICAgICAgcmV0dXJuCiAgICAgICAgaWYgdmlldy5zZXR0aW5ncygpLmdldCgiaXNfd2lkZ2V0Iik6CiAgICAgICAgICAgIHJldHVybgoKICAgICAgICBuZXdfYWN0aXZlX2dyb3VwID0gdmlldy53aW5kb3coKS5hY3RpdmVfZ3JvdXAoKQogICAgICAgIGlmIG5ld19hY3RpdmVfZ3JvdXAgPT0gc2VsZi5hY3RpdmVfZ3JvdXA6CiAgICAgICAgICAgIHJldHVybgoKICAgICAgICBzZWxmLmFjdGl2ZV9ncm91cCA9IG5ld19hY3RpdmVfZ3JvdXAKICAgICAgICBzZWxmLnJ1bm5pbmcgPSBUcnVlCgogICAgICAgIHN1YmxpbWUuc2V0X3RpbWVvdXQobGFtYmRhOiBzZWxmLmRlbGF5ZWRfem9vbSh2aWV3LCBmcmFjdGlvbiksIDApCgAAAAAAAAAAxHgAAAAAAAAAAAAA", - "AQAAAAAAAAABAAAAuS0AAAAAAAC5LQAAAAAAAAAAAAAAAPC/" - ] - ] - }, - { - "file": ".git/config", - "settings": - { - "buffer_size": 391, - "encoding": "UTF-8", - "line_ending": "Unix" - }, - "undo_stack": - [ - [ - 13, - 1, - "duplicate_line", - null, - "AQAAANsAAAAAAAAARgEAAAAAAAAAAAAA", - "AQAAAAAAAAABAAAAcAAAAAAAAADbAAAAAAAAAAAAAAAAAPC/" - ], - [ - 17, - 1, - "insert", - { - "characters": "https" - }, - "BgAAAOQAAAAAAAAA5QAAAAAAAAAAAAAA5QAAAAAAAADlAAAAAAAAAAYAAABvcmlnaW7lAAAAAAAAAOYAAAAAAAAAAAAAAOYAAAAAAAAA5wAAAAAAAAAAAAAA5wAAAAAAAADoAAAAAAAAAAAAAADoAAAAAAAAAOkAAAAAAAAAAAAAAA", - "AQAAAAAAAAABAAAA5AAAAAAAAADqAAAAAAAAAAAAAAAAAPC/" - ], - [ - 22, - 1, - "paste", - null, - "AgAAAPMAAAAAAAAAGwEAAAAAAAAAAAAAGwEAAAAAAAAbAQAAAAAAACQAAABnaXRAZ2l0aHViLmNvbTpKZWFuZ293aHkvT3JpZ2FtaS5naXQ", - "AQAAAAAAAAABAAAA8wAAAAAAAAAXAQAAAAAAAAAAAAAAAPC/" - ] - ] - }, - { - "file": "Origami_PR.sublime-project", - "settings": - { - "buffer_size": 46, - "encoding": "UTF-8", - "line_ending": "Windows" - }, - "undo_stack": - [ - [ - 5, - 1, - "revert", - null, - "AwAAAAAAAAAAAAAAAAAAAAAAAAAtAAAAewoJImZvbGRlcnMiOgoJWwoJCXsKCQkJInBhdGgiOiAiLiIKCQl9CgldCn0KAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAA", - "AgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAtAAAAAAAAAC0AAAAAAAAAAAAAAAAA8L8" - ], - [ - 7, - 1, - "revert", - null, - "AgAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAewp9CgAAAAAAAAAALgAAAAAAAAAAAAAA", - "AQAAAAAAAAABAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAPC/" - ] - ] - }, - { - "file": "README.md", - "settings": - { - "buffer_size": 4495, - "encoding": "UTF-8", - "line_ending": "Unix" - }, - "undo_stack": - [ - [ - 5, - 1, - "", - null, - "AQAAAPYNAAAAAAAA9w0AAAAAAAAAAAAA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 6, - 1, - "left_delete", - null, - "AQAAAPYNAAAAAAAA9g0AAAAAAAADAAAA77yM", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 7, - 1, - "insert", - { - "characters": "," - }, - "AQAAAPYNAAAAAAAA9w0AAAAAAAAAAAAA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 8, - 1, - "insert", - { - "characters": " or" - }, - "AwAAAPcNAAAAAAAA+A0AAAAAAAAAAAAA+A0AAAAAAAD5DQAAAAAAAAAAAAD5DQAAAAAAAPoNAAAAAAAAAAAAAA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 9, - 1, - "insert", - { - "characters": " " - }, - "AQAAAPoNAAAAAAAA+w0AAAAAAAAAAAAA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 10, - 1, - "", - null, - "AQAAAPsNAAAAAAAA/A0AAAAAAAAAAAAA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 11, - 1, - "left_delete", - null, - "AQAAAPsNAAAAAAAA+w0AAAAAAAACAAAAwrc", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 12, - 1, - "insert_snippet", - { - "contents": "`$0`" - }, - "AQAAAPsNAAAAAAAA/Q0AAAAAAAAAAAAA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 13, - 1, - "insert", - { - "characters": "[]" - }, - "AgAAAPwNAAAAAAAA/Q0AAAAAAAAAAAAA/Q0AAAAAAAD+DQAAAAAAAAAAAAA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 15, - 1, - "insert", - { - "characters": "0.5" - }, - "AwAAAP0NAAAAAAAA/g0AAAAAAAAAAAAA/g0AAAAAAAD/DQAAAAAAAAAAAAD/DQAAAAAAAAAOAAAAAAAAAAAAAA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 16, - 1, - "insert", - { - "characters": "," - }, - "AQAAAAAOAAAAAAAAAQ4AAAAAAAAAAAAA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 17, - 1, - "insert", - { - "characters": " 0.6" - }, - "BAAAAAEOAAAAAAAAAg4AAAAAAAAAAAAAAg4AAAAAAAADDgAAAAAAAAAAAAADDgAAAAAAAAQOAAAAAAAAAAAAAAQOAAAAAAAABQ4AAAAAAAAAAAAA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 19, - 1, - "insert", - { - "characters": ",w" - }, - "AgAAAAcOAAAAAAAACA4AAAAAAAAAAAAACA4AAAAAAAAJDgAAAAAAAAAAAAA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 20, - 2, - "left_delete", - null, - "AgAAAAgOAAAAAAAACA4AAAAAAAABAAAAdwcOAAAAAAAABw4AAAAAAAABAAAALA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 21, - 1, - "insert", - { - "characters": ",w" - }, - "AgAAAAcOAAAAAAAACA4AAAAAAAAAAAAACA4AAAAAAAAJDgAAAAAAAAAAAAA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 22, - 2, - "left_delete", - null, - "AgAAAAgOAAAAAAAACA4AAAAAAAABAAAAdwcOAAAAAAAABw4AAAAAAAABAAAALA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 23, - 1, - "insert", - { - "characters": " ()" - }, - "AwAAAAcOAAAAAAAACA4AAAAAAAAAAAAACA4AAAAAAAAJDgAAAAAAAAAAAAAJDgAAAAAAAAoOAAAAAAAAAAAAAA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 25, - 1, - "run_macro_file", - { - "file": "res://Packages/Default/Delete Left Right.sublime-macro" - }, - "AgAAAAgOAAAAAAAACA4AAAAAAAABAAAAKAgOAAAAAAAACA4AAAAAAAABAAAAKQ", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 26, - 1, - "left_delete", - null, - "AQAAAAcOAAAAAAAABw4AAAAAAAABAAAAIA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 27, - 1, - "insert", - { - "characters": " for" - }, - "BAAAAAcOAAAAAAAACA4AAAAAAAAAAAAACA4AAAAAAAAJDgAAAAAAAAAAAAAJDgAAAAAAAAoOAAAAAAAAAAAAAAoOAAAAAAAACw4AAAAAAAAAAAAA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 28, - 1, - "insert", - { - "characters": " both" - }, - "BQAAAAsOAAAAAAAADA4AAAAAAAAAAAAADA4AAAAAAAANDgAAAAAAAAAAAAANDgAAAAAAAA4OAAAAAAAAAAAAAA4OAAAAAAAADw4AAAAAAAAAAAAADw4AAAAAAAAQDgAAAAAAAAAAAAA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 29, - 1, - "insert", - { - "characters": " w" - }, - "AgAAABAOAAAAAAAAEQ4AAAAAAAAAAAAAEQ4AAAAAAAASDgAAAAAAAAAAAAA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 30, - 1, - "left_delete", - null, - "AQAAABEOAAAAAAAAEQ4AAAAAAAABAAAAdw", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 31, - 1, - "insert", - { - "characters": "w" - }, - "AQAAABEOAAAAAAAAEg4AAAAAAAAAAAAA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 32, - 1, - "left_delete", - null, - "AQAAABEOAAAAAAAAEQ4AAAAAAAABAAAAdw", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 33, - 1, - "insert", - { - "characters": "w" - }, - "AQAAABEOAAAAAAAAEg4AAAAAAAAAAAAA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 34, - 1, - "left_delete", - null, - "AQAAABEOAAAAAAAAEQ4AAAAAAAABAAAAdw", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 35, - 1, - "delete_word", - { - "forward": false - }, - "AQAAAAwOAAAAAAAADA4AAAAAAAAFAAAAYm90aCA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 36, - 1, - "insert", - { - "characters": "w" - }, - "AQAAAAwOAAAAAAAADQ4AAAAAAAAAAAAA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 37, - 1, - "left_delete", - null, - "AQAAAAwOAAAAAAAADA4AAAAAAAABAAAAdw", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 38, - 1, - "insert", - { - "characters": "horiton" - }, - "BwAAAAwOAAAAAAAADQ4AAAAAAAAAAAAADQ4AAAAAAAAODgAAAAAAAAAAAAAODgAAAAAAAA8OAAAAAAAAAAAAAA8OAAAAAAAAEA4AAAAAAAAAAAAAEA4AAAAAAAARDgAAAAAAAAAAAAARDgAAAAAAABIOAAAAAAAAAAAAABIOAAAAAAAAEw4AAAAAAAAAAAAA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 39, - 1, - "insert", - { - "characters": "tal" - }, - "AwAAABMOAAAAAAAAFA4AAAAAAAAAAAAAFA4AAAAAAAAVDgAAAAAAAAAAAAAVDgAAAAAAABYOAAAAAAAAAAAAAA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 40, - 1, - "insert", - { - "characters": " w" - }, - "AgAAABYOAAAAAAAAFw4AAAAAAAAAAAAAFw4AAAAAAAAYDgAAAAAAAAAAAAA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 41, - 1, - "left_delete", - null, - "AQAAABcOAAAAAAAAFw4AAAAAAAABAAAAdw", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 42, - 1, - "insert", - { - "characters": "and" - }, - "AwAAABcOAAAAAAAAGA4AAAAAAAAAAAAAGA4AAAAAAAAZDgAAAAAAAAAAAAAZDgAAAAAAABoOAAAAAAAAAAAAAA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 43, - 1, - "insert", - { - "characters": " w" - }, - "AgAAABoOAAAAAAAAGw4AAAAAAAAAAAAAGw4AAAAAAAAcDgAAAAAAAAAAAAA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 44, - 1, - "left_delete", - null, - "AQAAABsOAAAAAAAAGw4AAAAAAAABAAAAdw", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 45, - 1, - "insert", - { - "characters": "w" - }, - "AQAAABsOAAAAAAAAHA4AAAAAAAAAAAAA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 46, - 2, - "left_delete", - null, - "AgAAABsOAAAAAAAAGw4AAAAAAAABAAAAdxoOAAAAAAAAGg4AAAAAAAABAAAAIA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 47, - 1, - "insert", - { - "characters": " vertical" - }, - "CQAAABoOAAAAAAAAGw4AAAAAAAAAAAAAGw4AAAAAAAAcDgAAAAAAAAAAAAAcDgAAAAAAAB0OAAAAAAAAAAAAAB0OAAAAAAAAHg4AAAAAAAAAAAAAHg4AAAAAAAAfDgAAAAAAAAAAAAAfDgAAAAAAACAOAAAAAAAAAAAAACAOAAAAAAAAIQ4AAAAAAAAAAAAAIQ4AAAAAAAAiDgAAAAAAAAAAAAAiDgAAAAAAACMOAAAAAAAAAAAAAA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 48, - 1, - "insert", - { - "characters": " respe" - }, - "BgAAACMOAAAAAAAAJA4AAAAAAAAAAAAAJA4AAAAAAAAlDgAAAAAAAAAAAAAlDgAAAAAAACYOAAAAAAAAAAAAACYOAAAAAAAAJw4AAAAAAAAAAAAAJw4AAAAAAAAoDgAAAAAAAAAAAAAoDgAAAAAAACkOAAAAAAAAAAAAAA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 49, - 1, - "insert", - { - "characters": "ctlly" - }, - "BQAAACkOAAAAAAAAKg4AAAAAAAAAAAAAKg4AAAAAAAArDgAAAAAAAAAAAAArDgAAAAAAACwOAAAAAAAAAAAAACwOAAAAAAAALQ4AAAAAAAAAAAAALQ4AAAAAAAAuDgAAAAAAAAAAAAA", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ], - [ - 55, - 1, - "paste", - null, - "AgAAACQOAAAAAAAAMw4AAAAAAAAAAAAAMw4AAAAAAAAzDgAAAAAAAAoAAAByZXNwZWN0bGx5", - "AgAAAAAAAAABAAAAKAgAAAAAAAAoCAAAAAAAAAAAAAAAAPC/" - ] - ] - }, - { - "contents": "", - "settings": - { - "buffer_size": 0, - "line_ending": "Windows" - } - }, - { - "contents": "Windows PowerShell \n版权所有 (C) Microsoft Corporation。保留所有 \n权利。 \n \n尝试新的跨平台 PowerShell https://aka.ms/psco​‌​\nre6 \n \nPS C:\\Users\\OCEAN\\AppData\\Roaming\\Sublime Tex​‌​\nt 3\\unpacked\\Origami> ", - "settings": - { - "buffer_size": 377, - "line_ending": "Windows", - "name": "PowerShell", - "scratch": true - }, - "undo_stack": - [ - [ - 2, - 1, - "terminus_activate", - { - "auto_close": true, - "cancellable": false, - "cmd": - [ - "powershell.exe" - ], - "cwd": "C:\\Users\\OCEAN\\AppData\\Roaming\\Sublime Text 3\\unpacked\\Origami", - "default_title": "PowerShell", - "env": - { - "TERMINUS_SUBLIME": "1", - "TERM_PROGRAM": "Terminus-Sublime" - }, - "file_regex": null, - "line_regex": null, - "panel_name": "Terminus", - "show_in_panel": null, - "tag": null, - "timeit": false, - "title": null - }, - "AQAAAAAAAAAAAAAAAAAAAAAAAAAxKgAAV2luZG93cyBQb3dlclNoZWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK54mI5p2D5omA5pyJIChDKSBNaWNyb3NvZnQgQ29ycG9yYXRpb27jgILkv53nlZnmiYDmnInmnYPliKnjgIIgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK5bCd6K+V5paw55qE6Leo5bmz5Y+wIFBvd2VyU2hlbGwgaHR0cHM6Ly9ha2EubXMvcHNjb3JlNiAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgClBTIEM6XFVzZXJzXE9DRUFOXEFwcERhdGFcUm9hbWluZ1xTdWJsaW1lIFRleHQgM1x1bnBhY2tlZFxPcmlnYW1pPiAKICAgICAgICB0YXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAp0YXIuZXhlOiBNdXN0IHNwZWNpZnkgb25lIG9mIC1jLCAtciwgLXQsIC11LCAteCAgICAgICAgICAgICAgICAgICAgClBTIEM6XFVzZXJzXE9DRUFOXEFwcERhdGFcUm9hbWluZ1xTdWJsaW1lIFRleHQgM1x1bnBhY2tlZFxPcmlnYW1pPnTigIvigIzigIsKYXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAp0YXIuZXhlOiBNdXN0IHNwZWNpZnkgb25lIG9mIC1jLCAtciwgLXQsIC11LCAteCAgICAgICAgICAgICAgICAgICAgClBTIEM6XFVzZXJzXE9DRUFOXEFwcERhdGFcUm9hbWluZ1xTdWJsaW1lIFRleHQgM1x1bnBhY2tlZFxPcmlnYW0+IHTigIvigIzigIsKYXJ0IC10ICcuLlwuLlxJbnN0YWxsZWQgUGFja2FnZXNcT3JpZ2FtaS5zdWJsaW1lLXBhY2thZ2UnICAgICAgICAgIAp0YXJ0IDog5peg5rOV5bCG4oCcdGFydOKAnemhueivhuWIq+S4uiBjbWRsZXTjgIHlh73mlbDjgIHohJrmnKzmlofku7bmiJblj6/ov5DooYznqIvluo/nmoQgICAK5ZCN56ew44CC6K+35qOA5p+l5ZCN56ew55qE5ou85YaZ77yM5aaC5p6c5YyF5ous6Lev5b6E77yM6K+356Gu5L+d6Lev5b6E5q2j56Gu77yM54S25ZCO5YaN6K+V5LiA5qyhIArjgIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIArmiYDlnKjkvY3nva4g6KGMOjEg5a2X56ymOiAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorIHRhcnQgLXQgJy4uXC4uXEluc3RhbGxlZCBQYWNrYWdlc1xPcmlnYW1pLnN1YmxpbWUtcGFja2FnZScgICAgICAgCisgfn5+fiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICsgQ2F0ZWdvcnlJbmZvICAgICAgICAgIDogT2JqZWN0Tm90Rm91bmQ6ICh0YXJ0OlN0cmluZykgW10sIEMgIAogICBvbW1hbmROb3RGb3VuZEV4Y2VwdGlvbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICArIEZ1bGx5UXVhbGlmaWVkRXJyb3JJZCA6IENvbW1hbmROb3RGb3VuZEV4Y2VwdGlvbiAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApQUyBDOlxVc2Vyc1xPQ0VBTlxBcHBEYXRhXFJvYW1pbmdcU3VibGltZSBUZXh0IDNcdW5wYWNrZWRcT3JpZ2FtaT504oCL4oCM4oCLCmFyIC10ICcuLlwuLlxJbnN0YWxsZWQgUGFja2FnZXNcT3JpZ2FtaS5zdWJsaW1lLXBhY2thZ2UnICAgICAgICAgICAKdGFyLmV4ZTogRXJyb3Igb3BlbmluZyBhcmNoaXZlOiBGYWlsZWQgdG8gb3BlbiAnXFwuXHRhcGUwJyAgICAgICAgIApQUyBDOlxVc2Vyc1xPQ0VBTlxBcHBEYXRhXFJvYW1pbmdcU3VibGltZSBUZXh0IDNcdW5wYWNrZWRcT3JpZ2FtaT564oCL4oCM4oCLCmlwICAnLi5cLi5cSW5zdGFsbGVkIFBhY2thZ2VzXE9yaWdhbWkuc3VibGltZS1wYWNrYWdlJyAgICAgICAgICAgICAKemlwIDog5peg5rOV5bCG4oCcemlw4oCd6aG56K+G5Yir5Li6IGNtZGxldOOAgeWHveaVsOOAgeiEmuacrOaWh+S7tuaIluWPr+i/kOihjOeoi+W6j+eahOWQjSAgIArnp7DjgILor7fmo4Dmn6XlkI3np7DnmoTmi7zlhpnvvIzlpoLmnpzljIXmi6zot6/lvoTvvIzor7fnoa7kv53ot6/lvoTmraPnoa7vvIznhLblkI7lho3or5XkuIDmrKHjgIIgCuaJgOWcqOS9jee9riDooYw6MSDlrZfnrKY6IDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgemlwICAnLi5cLi5cSW5zdGFsbGVkIFBhY2thZ2VzXE9yaWdhbWkuc3VibGltZS1wYWNrYWdlJyAgICAgICAgICAKKyB+fn4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgKyBDYXRlZ29yeUluZm8gICAgICAgICAgOiBPYmplY3ROb3RGb3VuZDogKHppcDpTdHJpbmcpIFtdLCBDbyAgCiAgIG1tYW5kTm90Rm91bmRFeGNlcHRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICsgRnVsbHlRdWFsaWZpZWRFcnJvcklkIDogQ29tbWFuZE5vdEZvdW5kRXhjZXB0aW9uICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgClBTIEM6XFVzZXJzXE9DRUFOXEFwcERhdGFcUm9hbWluZ1xTdWJsaW1lIFRleHQgM1x1bnBhY2tlZFxPcmlnYW1pPnDigIvigIzigIsKYWNtYW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAplcnJvcjogbm8gb3BlcmF0aW9uIHNwZWNpZmllZCAodXNlIC1oIGZvciBoZWxwKSAgICAgICAgICAgICAgICAgICAgClBTIEM6XFVzZXJzXE9DRUFOXEFwcERhdGFcUm9hbWluZ1xTdWJsaW1lIFRleHQgM1x1bnBhY2tlZFxPcmlnYW1pPnDigIvigIzigIsKYWNtYW4gLVEgemlwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAplcnJvcjogcGFja2FnZSAnemlwJyB3YXMgbm90IGZvdW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgClBTIEM6XFVzZXJzXE9DRUFOXEFwcERhdGFcUm9hbWluZ1xTdWJsaW1lIFRleHQgM1x1bnBhY2tlZFxPcmlnYW1pPnDigIvigIzigIsKYWNtYW4gLVEgN3ppcCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAplcnJvcjogcGFja2FnZSAnN3ppcCcgd2FzIG5vdCBmb3VuZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgClBTIEM6XFVzZXJzXE9DRUFOXEFwcERhdGFcUm9hbWluZ1xTdWJsaW1lIFRleHQgM1x1bnBhY2tlZFxPcmlnYW1pPk7igIvigIzigIsKZXctSXRlbSAtdHlwZSBTeW1ib2xpY0xpbmsgLXRhcmdldCBDOlxQcm9ncmFtIEZpbGVzXDctWmlwXDd6LmV4ZSAtcOKAi+KAjOKAiwphdGggQzpcdmNwa2dcN3ouZXhlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCk5ldy1JdGVtIDog5om+5LiN5Yiw5o6l5Y+X5a6e6ZmF5Y+C5pWw4oCcRmlsZXNcNy1aaXBcN3ouZXhl4oCd55qE5L2N572u5b2i5byP5Y+C5pWwICAgIArjgIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIArmiYDlnKjkvY3nva4g6KGMOjEg5a2X56ymOiAxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorIE5ldy1JdGVtIC10eXBlIFN5bWJvbGljTGluayAtdGFyZ2V0IEM6XFByb2dyYW0gRmlsZXNcNy1aaXBcN3ouZXggCmUgLXBhIC4uLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+IAp+fn5+fiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICArIENhdGVnb3J5SW5mbyAgICAgICAgICA6IEludmFsaWRBcmd1bWVudDogKDopIFtOZXctSXRlbV3vvIxQYXIgCiAgICBhbWV0ZXJCaW5kaW5nRXhjZXB0aW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICsgRnVsbHlRdWFsaWZpZWRFcnJvcklkIDogUG9zaXRpb25hbFBhcmFtZXRlck5vdEZvdW5kLE1pY3Jvc28gIAogICBmdC5Qb3dlclNoZWxsLkNvbW1hbmRzLk5ld0l0ZW1Db21tYW5kICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKUFMgQzpcVXNlcnNcT0NFQU5cQXBwRGF0YVxSb2FtaW5nXFN1YmxpbWUgVGV4dCAzXHVucGFja2VkXE9yaWdhbT4gTuKAi+KAjOKAiwpldy1JdGVtIC10eXBlIFN5bWJvbGljTGluayAtdGFyZ2V0ICJDOlxQcm9ncmFtIEZpbGVzXDctWmlwXDd6LmV4ZSIgCi1wYXRoIEM6XHZjcGtnXDd6LmV4ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKTmV3LUl0ZW0gOiDmraTmk43kvZzpnIDopoHnrqHnkIblkZjmnYPpmZDjgIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCuaJgOWcqOS9jee9riDooYw6MSDlrZfnrKY6IDEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgTmV3LUl0ZW0gLXR5cGUgU3ltYm9saWNMaW5rIC10YXJnZXQgIkM6XFByb2dyYW0gRmlsZXNcNy1aaXBcN3ouZSAKeGUiIC0gLi4uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4gCn5+fn5+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICsgQ2F0ZWdvcnlJbmZvICAgICAgICAgIDogUGVybWlzc2lvbkRlbmllZDogKEM6XFByb2dyYW0gRmlsZXMgIAogICBcNy1aaXBcN3ouZXhlOlN0cmluZykgW05ldy1JdGVtXSwgVW5hdXRob3JpemVkQWNjZXNzRXhjZXB0aW9uICAgCiAgICArIEZ1bGx5UXVhbGlmaWVkRXJyb3JJZCA6IE5ld0l0ZW1TeW1ib2xpY0xpbmtFbGV2YXRpb25SZXF1aXJlICAKICAgZCxNaWNyb3NvZnQuUG93ZXJTaGVsbC5Db21tYW5kcy5OZXdJdGVtQ29tbWFuZCAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgClBTIEM6XFVzZXJzXE9DRUFOXEFwcERhdGFcUm9hbWluZ1xTdWJsaW1lIFRleHQgM1x1bnBhY2tlZFxPcmlnYW1pPjfigIvigIzigIsKeiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCjctWmlwIDIzLjAxICh4NjQpIDogQ29weXJpZ2h0IChjKSAxOTk5LTIwMjMgSWdvciBQYXZsb3YgOiAyMDIzLTA2LTLigIvigIzigIsKMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgClVzYWdlOiA3eiA8Y29tbWFuZD4gWzxzd2l0Y2hlcz4uLi5dIDxhcmNoaXZlX25hbWU+IFs8ZmlsZV9uYW1lcz4uLi7igIvigIzigIsKXSBbQGxpc3RmaWxlXSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCjxDb21tYW5kcz4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICBhIDogQWRkIGZpbGVzIHRvIGFyY2hpdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIGIgOiBCZW5jaG1hcmsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgZCA6IERlbGV0ZSBmaWxlcyBmcm9tIGFyY2hpdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICBlIDogRXh0cmFjdCBmaWxlcyBmcm9tIGFyY2hpdmUgKHdpdGhvdXQgdXNpbmcgZGlyZWN0b3J5IG5hbWVzKSAgIAogIGggOiBDYWxjdWxhdGUgaGFzaCB2YWx1ZXMgZm9yIGZpbGVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgaSA6IFNob3cgaW5mb3JtYXRpb24gYWJvdXQgc3VwcG9ydGVkIGZvcm1hdHMgICAgICAgICAgICAgICAgICAgICAKICBsIDogTGlzdCBjb250ZW50cyBvZiBhcmNoaXZlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIHJuIDogUmVuYW1lIGZpbGVzIGluIGFyY2hpdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgdCA6IFRlc3QgaW50ZWdyaXR5IG9mIGFyY2hpdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICB1IDogVXBkYXRlIGZpbGVzIHRvIGFyY2hpdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIHggOiBlWHRyYWN0IGZpbGVzIHdpdGggZnVsbCBwYXRocyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKPFN3aXRjaGVzPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIC0tIDogU3RvcCBzd2l0Y2hlcyBhbmQgQGxpc3RmaWxlIHBhcnNpbmcgICAgICAgICAgICAgICAgICAgICAgICAgCiAgLWFpW3JbLXwwXV17QGxpc3RmaWxlfCF3aWxkY2FyZH0gOiBJbmNsdWRlIGFyY2hpdmVzICAgICAgICAgICAgICAKICAtYXhbclstfDBdXXtAbGlzdGZpbGV8IXdpbGRjYXJkfSA6IGVYY2x1ZGUgYXJjaGl2ZXMgICAgICAgICAgICAgIAogIC1hb3thfHN8dHx1fSA6IHNldCBPdmVyd3JpdGUgbW9kZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgLWFuIDogZGlzYWJsZSBhcmNoaXZlX25hbWUgZmllbGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAtYmJbMC0zXSA6IHNldCBvdXRwdXQgbG9nIGxldmVsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIC1iZCA6IGRpc2FibGUgcHJvZ3Jlc3MgaW5kaWNhdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgLWJze298ZXxwfXswfDF8Mn0gOiBzZXQgb3V0cHV0IHN0cmVhbSBmb3Igb3V0cHV0L2Vycm9yL3Byb2dyZXNzIGzigIvigIzigIsKaW5lICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIC1idCA6IHNob3cgZXhlY3V0aW9uIHRpbWUgc3RhdGlzdGljcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgLWlbclstfDBdXXtAbGlzdGZpbGV8IXdpbGRjYXJkfSA6IEluY2x1ZGUgZmlsZW5hbWVzICAgICAgICAgICAgICAKICAtbXtQYXJhbWV0ZXJzfSA6IHNldCBjb21wcmVzc2lvbiBNZXRob2QgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgLW1tdFtOXSA6IHNldCBudW1iZXIgb2YgQ1BVIHRocmVhZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAtbXhbTl0gOiBzZXQgY29tcHJlc3Npb24gbGV2ZWw6IC1teDEgKGZhc3Rlc3QpIC4uLiAtbXg5ICh1bHRyYSnigIvigIzigIsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIC1ve0RpcmVjdG9yeX0gOiBzZXQgT3V0cHV0IGRpcmVjdG9yeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgLXB7UGFzc3dvcmR9IDogc2V0IFBhc3N3b3JkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAtclstfDBdIDogUmVjdXJzZSBzdWJkaXJlY3RvcmllcyBmb3IgbmFtZSBzZWFyY2ggICAgICAgICAgICAgICAgIAogIC1zYXthfGV8c30gOiBzZXQgQXJjaGl2ZSBuYW1lIG1vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgLXNjY3tVVEYtOHxXSU58RE9TfSA6IHNldCBjaGFyc2V0IGZvciBjb25zb2xlIGlucHV0L291dHB1dCAgICAgICAKICAtc2Nze1VURi04fFVURi0xNkxFfFVURi0xNkJFfFdJTnxET1N8e2lkfX0gOiBzZXQgY2hhcnNldCBmb3IgbGlzdOKAi+KAjOKAiwogZmlsZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgLXNjcmNbQ1JDMzJ8Q1JDNjR8U0hBMXxTSEEyNTZ8Kl0gOiBzZXQgaGFzaCBmdW5jdGlvbiBmb3IgeCwgZSwgaCAKY29tbWFuZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIC1zZGVsIDogZGVsZXRlIGZpbGVzIGFmdGVyIGNvbXByZXNzaW9uICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgLXNlbWxbLl0gOiBzZW5kIGFyY2hpdmUgYnkgZW1haWwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAtc2Z4W3tuYW1lfV0gOiBDcmVhdGUgU0ZYIGFyY2hpdmUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIC1zaVt7bmFtZX1dIDogcmVhZCBkYXRhIGZyb20gc3RkaW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgLXNscCA6IHNldCBMYXJnZSBQYWdlcyBtb2RlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAtc2x0IDogc2hvdyB0ZWNobmljYWwgaW5mb3JtYXRpb24gZm9yIGwgKExpc3QpIGNvbW1hbmQgICAgICAgICAgIAogIC1zbmggOiBzdG9yZSBoYXJkIGxpbmtzIGFzIGxpbmtzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgLXNubCA6IHN0b3JlIHN5bWJvbGljIGxpbmtzIGFzIGxpbmtzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAtc25pIDogc3RvcmUgTlQgc2VjdXJpdHkgaW5mb3JtYXRpb24gICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIC1zbnNbLV0gOiBzdG9yZSBOVEZTIGFsdGVybmF0ZSBzdHJlYW1zICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgLXNvIDogd3JpdGUgZGF0YSB0byBzdGRvdXQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAtc3BkIDogZGlzYWJsZSB3aWxkY2FyZCBtYXRjaGluZyBmb3IgZmlsZSBuYW1lcyAgICAgICAgICAgICAgICAgIAogIC1zcGUgOiBlbGltaW5hdGUgZHVwbGljYXRpb24gb2Ygcm9vdCBmb2xkZXIgZm9yIGV4dHJhY3QgY29tbWFuZCAgCiAgLXNwZlsyXSA6IHVzZSBmdWxseSBxdWFsaWZpZWQgZmlsZSBwYXRocyAgICAgICAgICAgICAgICAgICAgICAgICAKICAtc3NjWy1dIDogc2V0IHNlbnNpdGl2ZSBjYXNlIG1vZGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIC1zc2UgOiBzdG9wIGFyY2hpdmUgY3JlYXRpbmcsIGlmIGl0IGNhbid0IG9wZW4gc29tZSBpbnB1dCBmaWxlICAgCiAgLXNzcCA6IGRvIG5vdCBjaGFuZ2UgTGFzdCBBY2Nlc3MgVGltZSBvZiBzb3VyY2UgZmlsZXMgd2hpbGUgYXJjaGnigIvigIzigIsKdmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIC1zc3cgOiBjb21wcmVzcyBzaGFyZWQgZmlsZXMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgLXN0bCA6IHNldCBhcmNoaXZlIHRpbWVzdGFtcCBmcm9tIHRoZSBtb3N0IHJlY2VudGx5IG1vZGlmaWVkIGZpbGXigIvigIzigIsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIC1zdG17SGV4TWFza30gOiBzZXQgQ1BVIHRocmVhZCBhZmZpbml0eSBtYXNrIChoZXhhZGVjaW1hbCBudW1iZXIp4oCL4oCM4oCLCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAtc3R4e1R5cGV9IDogZXhjbHVkZSBhcmNoaXZlIHR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIC10e1R5cGV9IDogU2V0IHR5cGUgb2YgYXJjaGl2ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgLXVbLV1bcCNdW3EjXVtyI11beCNdW3kjXVt6I11bIW5ld0FyY2hpdmVOYW1lXSA6IFVwZGF0ZSBvcHRpb25zICAKICAtdntTaXplfVtifGt8bXxnXSA6IENyZWF0ZSB2b2x1bWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogIC13W3twYXRofV0gOiBhc3NpZ24gV29yayBkaXJlY3RvcnkuIEVtcHR5IHBhdGggbWVhbnMgYSB0ZW1wb3JhcnkgCmRpcmVjdG9yeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAteFtyWy18MF1de0BsaXN0ZmlsZXwhd2lsZGNhcmR9IDogZVhjbHVkZSBmaWxlbmFtZXMgICAgICAgICAgICAgIAogIC15IDogYXNzdW1lIFllcyBvbiBhbGwgcXVlcmllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgClBTIEM6XFVzZXJzXE9DRUFOXEFwcERhdGFcUm9hbWluZ1xTdWJsaW1lIFRleHQgM1x1bnBhY2tlZFxPcmlnYW1pPg", - "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAADsoAAAAAAAAOygAAAAAAAAAAAAAAADwvw" - ], - [ - 3, - 4, - "terminus_render", - null, - "SQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAAAACAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAABQAAAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAAAAAFAAAAAAAAAAYAAAAAAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAABgAAAAAAAAAHAAAAAAAAAAAAAAAHAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAAACAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAAAAAAIAAAAAAAAAAkAAAAAAAAAAAAAAAkAAAAAAAAACQAAAAAAAAAAAAAACQAAAAAAAAAKAAAAAAAAAAAAAAAKAAAAAAAAAAoAAAAAAAAAAAAAAAoAAAAAAAAACwAAAAAAAAAAAAAACwAAAAAAAAALAAAAAAAAAAAAAAALAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAANAAAAAAAAAAAAAAANAAAAAAAAAA0AAAAAAAAAAAAAAA0AAAAAAAAADgAAAAAAAAAAAAAADgAAAAAAAAAOAAAAAAAAAAAAAAAOAAAAAAAAAA8AAAAAAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAAAAAADwAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAA8AAAAAAAAADwAAAAAAAAABAAAACg4AAAAAAAAADgAAAAAAAAABAAAACg0AAAAAAAAADQAAAAAAAAABAAAACgwAAAAAAAAADAAAAAAAAAABAAAACgsAAAAAAAAACwAAAAAAAAABAAAACgoAAAAAAAAACgAAAAAAAAABAAAACgkAAAAAAAAACQAAAAAAAAABAAAACggAAAAAAAAACAAAAAAAAAABAAAACgcAAAAAAAAABwAAAAAAAAABAAAACgYAAAAAAAAABgAAAAAAAAABAAAACgUAAAAAAAAABQAAAAAAAAABAAAACgQAAAAAAAAABAAAAAAAAAABAAAACgMAAAAAAAAAAwAAAAAAAAABAAAACgIAAAAAAAAAAgAAAAAAAAABAAAACgEAAAAAAAAAAQAAAAAAAAABAAAACgAAAAAAAAAAAAAAAAAAAAABAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQwAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAAAAAAABIAAAAAAAAAAAAAABIAAAAAAAAAQwAAAAAAAAAAAAAAQwAAAAAAAABEAAAAAAAAAAAAAABEAAAAAAAAAGoAAAAAAAAAAAAAAGoAAAAAAAAAewAAAAAAAAAAAAAAewAAAAAAAAB8AAAAAAAAAAAAAAB8AAAAAAAAAHwAAAAAAAAAAAAAAHwAAAAAAAAAvwAAAAAAAAAAAAAAvwAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAOkAAAAAAAAAAAAAAOkAAAAAAAAA/AAAAAAAAAAAAAAA/AAAAAAAAAD9AAAAAAAAAAAAAAD9AAAAAAAAAP0AAAAAAAAAAAAAAP0AAAAAAAAAQAEAAAAAAAAAAAAAQAEAAAAAAABBAQAAAAAAAAAAAABBAQAAAAAAAEEBAAAAAAAAAAAAAEEBAAAAAAAAhAEAAAAAAAAAAAAAQQEAAAAAAABBAQAAAAAAAEMAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQQEAAAAAAACDAQAAAAAAAAAAAACDAQAAAAAAAIQBAAAAAAAAAAAAAIMBAAAAAAAAgwEAAAAAAAABAAAAIA", - "BgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvw" - ], - [ - 1, - 1, - "terminus_activate", - { - "auto_close": true, - "cancellable": false, - "cmd": - [ - "powershell.exe" - ], - "cwd": "C:\\Users\\OCEAN\\AppData\\Roaming\\Sublime Text 3\\unpacked\\Origami", - "default_title": "PowerShell", - "env": - { - "TERMINUS_SUBLIME": "1", - "TERM_PROGRAM": "Terminus-Sublime" - }, - "file_regex": null, - "line_regex": null, - "panel_name": "Terminus", - "show_in_panel": null, - "tag": null, - "timeit": false, - "title": null - }, - "AQAAAAAAAAAAAAAAAAAAAAAAAACpAQAAV2luZG93cyBQb3dlclNoZWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIArniYjmnYPmiYDmnIkgKEMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbuOAguS/neeVmeaJgOacieadg+WIqeOAgiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK5bCd6K+V5paw55qE6Leo5bmz5Y+wIFBvd2VyU2hlbGwgaHR0cHM6Ly9ha2EubXMvcHNjb3JlNiAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApQUyBDOlxVc2Vyc1xPQ0VBTlxBcHBEYXRhXFJvYW1pbmdcU3VibGltZSBUZXh0IDNcdW5wYWNrZWRcT3JpZ2FtaT4", - "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAACDAQAAAAAAAIMBAAAAAAAAAAAAAAAA8L8" - ], - [ - 2, - 5, - "terminus_render", - null, - "SgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAAAACAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAABQAAAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAAAAAFAAAAAAAAAAYAAAAAAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAABgAAAAAAAAAHAAAAAAAAAAAAAAAHAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAAACAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAAAAAAIAAAAAAAAAAkAAAAAAAAAAAAAAAkAAAAAAAAACQAAAAAAAAAAAAAACQAAAAAAAAAKAAAAAAAAAAAAAAAKAAAAAAAAAAoAAAAAAAAAAAAAAAoAAAAAAAAACwAAAAAAAAAAAAAACwAAAAAAAAALAAAAAAAAAAAAAAALAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAANAAAAAAAAAAAAAAANAAAAAAAAAA0AAAAAAAAAAAAAAA0AAAAAAAAADgAAAAAAAAAAAAAADgAAAAAAAAAOAAAAAAAAAAAAAAAOAAAAAAAAAA8AAAAAAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAAAAAADwAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAA8AAAAAAAAADwAAAAAAAAABAAAACg4AAAAAAAAADgAAAAAAAAABAAAACg0AAAAAAAAADQAAAAAAAAABAAAACgwAAAAAAAAADAAAAAAAAAABAAAACgsAAAAAAAAACwAAAAAAAAABAAAACgoAAAAAAAAACgAAAAAAAAABAAAACgkAAAAAAAAACQAAAAAAAAABAAAACggAAAAAAAAACAAAAAAAAAABAAAACgcAAAAAAAAABwAAAAAAAAABAAAACgYAAAAAAAAABgAAAAAAAAABAAAACgUAAAAAAAAABQAAAAAAAAABAAAACgQAAAAAAAAABAAAAAAAAAABAAAACgMAAAAAAAAAAwAAAAAAAAABAAAACgIAAAAAAAAAAgAAAAAAAAABAAAACgEAAAAAAAAAAQAAAAAAAAABAAAACgAAAAAAAAAAAAAAAAAAAAABAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQwAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAAAAAAAAAAABIAAAAAAAAAAAAAABIAAAAAAAAAQwAAAAAAAAAAAAAAQwAAAAAAAABEAAAAAAAAAAAAAABEAAAAAAAAAGoAAAAAAAAAAAAAAGoAAAAAAAAAewAAAAAAAAAAAAAAewAAAAAAAAB8AAAAAAAAAAAAAAB8AAAAAAAAAHwAAAAAAAAAAAAAAHwAAAAAAAAAvwAAAAAAAAAAAAAAvwAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAOkAAAAAAAAAAAAAAOkAAAAAAAAA/AAAAAAAAAAAAAAA6QAAAAAAAADpAAAAAAAAABMAAAAgICAgICAgICAgICAgICAgICAg6QAAAAAAAADqAAAAAAAAAAAAAADqAAAAAAAAAOoAAAAAAAAAAAAAAOoAAAAAAAAALQEAAAAAAAAAAAAALQEAAAAAAAAuAQAAAAAAAAAAAAAuAQAAAAAAAC4BAAAAAAAAAAAAAC4BAAAAAAAAcQEAAAAAAAAAAAAALgEAAAAAAAAuAQAAAAAAAEMAAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLgEAAAAAAABwAQAAAAAAAAAAAABwAQAAAAAAAHEBAAAAAAAAAAAAAHABAAAAAAAAcAEAAAAAAAABAAAAIA", - "BQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwvwAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8L8" - ], - [ - 2, - 1, - "", - null, - "AQAAAAAAAAAAAAAAAAAAAAAAAACWAQAAV2luZG93cyBQb3dlclNoZWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIArniYjmnYPmiYDmnIkgKEMpIE1pY3Jvc29mdCBDb3Jwb3JhdGlvbuOAguS/neeVmeaJgOacieadg+WIqeOAgiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK5bCd6K+V5paw55qE6Leo5bmz5Y+wIFBvd2VyU2hlbGwgaHR0cHM6Ly9ha2EubXMvcHNjb3JlNgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgClBTIEM6XFVzZXJzXE9DRUFOXEFwcERhdGFcUm9hbWluZ1xTdWJsaW1lIFRleHQgM1x1bnBhY2tlZFxPcmlnYW1pPg", - "AQAAAAAAAAABAAAAcAEAAAAAAABwAQAAAAAAAAAAAAAAAPC/" - ], - [ - 4, - 4, - "terminus_render", - null, - "TQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAgAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAAAACAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAABQAAAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAAAAAFAAAAAAAAAAYAAAAAAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAABgAAAAAAAAAHAAAAAAAAAAAAAAAHAAAAAAAAAAcAAAAAAAAAAAAAAAcAAAAAAAAACAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAAAAAAIAAAAAAAAAAkAAAAAAAAAAAAAAAkAAAAAAAAACQAAAAAAAAAAAAAACQAAAAAAAAAKAAAAAAAAAAAAAAAKAAAAAAAAAAoAAAAAAAAAAAAAAAoAAAAAAAAACwAAAAAAAAAAAAAACwAAAAAAAAALAAAAAAAAAAAAAAALAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAANAAAAAAAAAAAAAAANAAAAAAAAAA0AAAAAAAAAAAAAAA0AAAAAAAAADgAAAAAAAAAAAAAADgAAAAAAAAAOAAAAAAAAAAAAAAAOAAAAAAAAAA8AAAAAAAAAAAAAAA8AAAAAAAAADwAAAAAAAAAAAAAADgAAAAAAAAAOAAAAAAAAAAEAAAAKDQAAAAAAAAANAAAAAAAAAAEAAAAKDAAAAAAAAAAMAAAAAAAAAAEAAAAKCwAAAAAAAAALAAAAAAAAAAEAAAAKCgAAAAAAAAAKAAAAAAAAAAEAAAAKCQAAAAAAAAAJAAAAAAAAAAEAAAAKCAAAAAAAAAAIAAAAAAAAAAEAAAAKBwAAAAAAAAAHAAAAAAAAAAEAAAAKBgAAAAAAAAAGAAAAAAAAAAEAAAAKBQAAAAAAAAAFAAAAAAAAAAEAAAAKBAAAAAAAAAAEAAAAAAAAAAEAAAAKAwAAAAAAAAADAAAAAAAAAAEAAAAKAgAAAAAAAAACAAAAAAAAAAEAAAAKAQAAAAAAAAABAAAAAAAAAAEAAAAKAAAAAAAAAAAAAAAAAAAAAAEAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgAAAAAAAAAAASAAAAAAAAAAAAAAASAAAAAAAAAC0AAAAAAAAAAAAAAC0AAAAAAAAALgAAAAAAAAAAAAAALgAAAAAAAABRAAAAAAAAAAAAAABRAAAAAAAAAFIAAAAAAAAAAAAAAFIAAAAAAAAAUwAAAAAAAAAAAAAAUwAAAAAAAABWAAAAAAAAAAAAAABWAAAAAAAAAH0AAAAAAAAAAAAAAH0AAAAAAAAAfgAAAAAAAAAAAAAAfgAAAAAAAAB+AAAAAAAAAAAAAAB+AAAAAAAAAKsAAAAAAAAAAAAAAKsAAAAAAAAArAAAAAAAAAAAAAAArAAAAAAAAADVAAAAAAAAAAAAAADVAAAAAAAAANYAAAAAAAAAAAAAANYAAAAAAAAA2QAAAAAAAAAAAAAA2QAAAAAAAAADAQAAAAAAAAAAAAADAQAAAAAAAAQBAAAAAAAAAAAAAAQBAAAAAAAABAEAAAAAAAAAAAAABAEAAAAAAAAxAQAAAAAAAAAAAAAxAQAAAAAAADIBAAAAAAAAAAAAADIBAAAAAAAAMgEAAAAAAAAAAAAAMgEAAAAAAABfAQAAAAAAAAAAAAAyAQAAAAAAADIBAAAAAAAALQAAACAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIBAAAAAAAAYgEAAAAAAAAAAAAAYgEAAAAAAABjAQAAAAAAAAAAAABjAQAAAAAAAHgBAAAAAAAAAAAAAHgBAAAAAAAAkAEAAAAAAAAAAAAAeQEAAAAAAAB5AQAAAAAAABcAAAAgICAgICAgICAgICAgICAgICAgICAgIA", - "AQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPC/" - ], - [ - 6, - 1, - "terminus_render", - null, - "IAAAAAAAAAAAAAAAEgAAAAAAAAAtAAAAV2luZG93cyBQb3dlclNoZWxsICAgICAgICAgICAgICAgICAgICAgICAgICAgEgAAAAAAAAAtAAAAAAAAAAAAAAAuAAAAAAAAAFEAAAAAAAAANgAAAOeJiOadg+aJgOaciSAoQykgTWljcm9zb2Z0IENvcnBvcmF0aW9u44CC5L+d55WZ5omA5pyJIFEAAAAAAAAAUgAAAAAAAAAAAAAAUwAAAAAAAABWAAAAAAAAADAAAADmnYPliKnjgIIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWAAAAAAAAAH0AAAAAAAAAAAAAAH4AAAAAAAAAfgAAAAAAAAAtAAAAICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfgAAAAAAAACrAAAAAAAAAAAAAACsAAAAAAAAANUAAAAAAAAAPQAAAOWwneivleaWsOeahOi3qOW5s+WPsCBQb3dlclNoZWxsIGh0dHBzOi8vYWthLm1zL3BzY2/igIvigIzigIvWAAAAAAAAANkAAAAAAAAALQAAAHJlNiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgINkAAAAAAAAAAwEAAAAAAAAAAAAABAEAAAAAAAAEAQAAAAAAAC0AAAAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAEAQAAAAAAADEBAAAAAAAAAAAAADIBAAAAAAAAYgEAAAAAAAA2AAAAUFMgQzpcVXNlcnNcT0NFQU5cQXBwRGF0YVxSb2FtaW5nXFN1YmxpbWUgVGV44oCL4oCM4oCLYwEAAAAAAAB4AQAAAAAAABYAAAB0IDNcdW5wYWNrZWRcT3JpZ2FtaT4geAEAAAAAAACQAQAAAAAAAAAAAACQAQAAAAAAAJEBAAAAAAAAAAAAAJEBAAAAAAAAkQEAAAAAAAAAAAAAkQEAAAAAAACSAQAAAAAAAAAAAACSAQAAAAAAAJIBAAAAAAAAAAAAAJIBAAAAAAAAkwEAAAAAAAAAAAAAkwEAAAAAAACTAQAAAAAAAAAAAACTAQAAAAAAAJQBAAAAAAAAAAAAAJQBAAAAAAAAlAEAAAAAAAAAAAAAlAEAAAAAAACVAQAAAAAAAAAAAACVAQAAAAAAAJUBAAAAAAAAAAAAAJQBAAAAAAAAlAEAAAAAAAABAAAACpMBAAAAAAAAkwEAAAAAAAABAAAACpIBAAAAAAAAkgEAAAAAAAABAAAACpEBAAAAAAAAkQEAAAAAAAABAAAACpABAAAAAAAAkAEAAAAAAAABAAAACnkBAAAAAAAAeQEAAAAAAAAXAAAAICAgICAgICAgICAgICAgICAgICAgICA", - "AQAAAAAAAAABAAAAeQEAAAAAAAB5AQAAAAAAAAAAAAAAAPC/" - ] - ] - } - ], - "build_system": "", - "build_system_choices": - [ - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git Origin URL" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/CMake.sublime-build", - "" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Sublime Text 2 - Ninja" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Visual Studio 16 2019" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Visual Studio 15 2017" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake Build Release" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake Build Debug" - ], - [ - "Packages/User/CMake.sublime-build", - "Memory Layout of Class (GCC)" - ], - [ - "Packages/User/CMake.sublime-build", - "Compile & Run (GCC Debug)" - ], - [ - "Packages/User/CMake.sublime-build", - "Compile & Run (GCC Release)" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make Win32" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make all" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make Clean" - ] - ], - [ - "Git Demo", - "" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin URL" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/CMake.sublime-build", - "" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Sublime Text 2 - Ninja" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Visual Studio 16 2019" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Visual Studio 15 2017" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake Build Release" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake Build Debug" - ], - [ - "Packages/User/CMake.sublime-build", - "Memory Layout of Class (GCC)" - ], - [ - "Packages/User/CMake.sublime-build", - "Compile & Run (GCC Debug)" - ], - [ - "Packages/User/CMake.sublime-build", - "Compile & Run (GCC Release)" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make Win32" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make all" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make Clean" - ] - ], - [ - "Git Demo", - "Git Origin URL" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ] - ], - [ - "Git Demo", - "Git help" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/MarkdownPreview/Markdown.sublime-build", - "" - ] - ], - [ - "Packages/MarkdownPreview/Markdown.sublime-build", - "" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/User/GoLang.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go install" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run with Test Arguments" - ] - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/User/PlantUML.sublime-build", - "" - ], - [ - "Packages/User/PlantUML.sublime-build", - " --> ASCII Art" - ], - [ - "Packages/User/PlantUML.sublime-build", - " --> PNG" - ] - ], - [ - "Packages/User/PlantUML.sublime-build", - " --> ASCII Art" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/User/PlantUML.sublime-build", - "" - ], - [ - "Packages/User/PlantUML.sublime-build", - "-> Test" - ], - [ - "Packages/User/PlantUML.sublime-build", - " --> ASCII Art" - ], - [ - "Packages/User/PlantUML.sublime-build", - " --> PNG" - ] - ], - [ - "Packages/User/PlantUML.sublime-build", - " --> ASCII Art" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/User/PlantUML.sublime-build", - "" - ], - [ - "Packages/User/PlantUML.sublime-build", - "-> Test" - ], - [ - "Packages/User/PlantUML.sublime-build", - "-> Test" - ], - [ - "Packages/User/PlantUML.sublime-build", - " --> ASCII Art" - ], - [ - "Packages/User/PlantUML.sublime-build", - " --> PNG" - ] - ], - [ - "Packages/User/PlantUML.sublime-build", - "-> Test" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/User/PlantUML.sublime-build", - "" - ], - [ - "Packages/User/PlantUML.sublime-build", - "-> Test cmd" - ], - [ - "Packages/User/PlantUML.sublime-build", - "-> Test shell_cmd" - ], - [ - "Packages/User/PlantUML.sublime-build", - " --> ASCII Art" - ], - [ - "Packages/User/PlantUML.sublime-build", - " --> PNG" - ] - ], - [ - "Packages/User/PlantUML.sublime-build", - " --> PNG" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/User/PlantUML.sublime-build", - "" - ], - [ - "Packages/User/PlantUML.sublime-build", - "PlantUML --> ASCII Art" - ], - [ - "Packages/User/PlantUML.sublime-build", - "PlantUML --> PNG" - ] - ], - [ - "Packages/User/PlantUML.sublime-build", - "" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/C++/C Single File.sublime-build", - "" - ], - [ - "Packages/C++/C Single File.sublime-build", - "Run" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ] - ], - [ - "Packages/C++/C Single File.sublime-build", - "Run" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/C++/C Single File.sublime-build", - "" - ], - [ - "Packages/C++/C Single File.sublime-build", - "Run" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++17)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++14)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++11)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++11) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++11) Release with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++0x) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++98) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-ansi)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c11)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c99)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c90)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-ansi) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c11) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c99) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c90) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "控制台中运行" - ] - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c11)" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/C++/C Single File.sublime-build", - "" - ], - [ - "Packages/C++/C Single File.sublime-build", - "Run" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/MinGW.sublime-build", - "" - ], - [ - "Packages/User/MinGW.sublime-build", - "(-std=c++17)" - ], - [ - "Packages/User/MinGW.sublime-build", - "(-std=c++14)" - ], - [ - "Packages/User/MinGW.sublime-build", - "(-std=c++11)" - ], - [ - "Packages/User/MinGW.sublime-build", - "(-std=c++11) with ENV" - ], - [ - "Packages/User/MinGW.sublime-build", - "(-std=c++11) Release with ENV" - ], - [ - "Packages/User/MinGW.sublime-build", - "(-std=c++0x) with ENV" - ], - [ - "Packages/User/MinGW.sublime-build", - "(-std=c++98) with ENV" - ], - [ - "Packages/User/MinGW.sublime-build", - "(-ansi)" - ], - [ - "Packages/User/MinGW.sublime-build", - "(-std=c11)" - ], - [ - "Packages/User/MinGW.sublime-build", - "(-std=c99)" - ], - [ - "Packages/User/MinGW.sublime-build", - "(-std=c90)" - ], - [ - "Packages/User/MinGW.sublime-build", - "(-ansi) with ENV" - ], - [ - "Packages/User/MinGW.sublime-build", - "(-std=c11) with ENV" - ], - [ - "Packages/User/MinGW.sublime-build", - "(-std=c99) with ENV" - ], - [ - "Packages/User/MinGW.sublime-build", - "(-std=c90) with ENV" - ], - [ - "Packages/User/MinGW.sublime-build", - "控制台中运行" - ] - ], - [ - "Packages/User/MinGW.sublime-build", - "(-std=c99)" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/C++/C++ Single File.sublime-build", - "" - ], - [ - "Packages/C++/C++ Single File.sublime-build", - "Run" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++17)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++14)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++11)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++11) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++11) Release with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++0x) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++98) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-ansi)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c11)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c99)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c90)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-ansi) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c11) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c99) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c90) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "控制台中运行" - ] - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++11)" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/C++/C++ Single File.sublime-build", - "" - ], - [ - "Packages/C++/C++ Single File.sublime-build", - "Run" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++17)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++14)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++11)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++11) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++11) Release with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++0x) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++98) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-ansi) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c11) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c99) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c90) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "控制台中运行" - ] - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++11)" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/MarkdownPreview/Markdown.sublime-build", - "" - ] - ], - [ - "Git Demo", - "" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/PowerShell/Support/Powershell.sublime-build", - "" - ] - ], - [ - "Packages/PowerShell/Support/Powershell.sublime-build", - "" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/TypeScript/TypeScript.sublime-build", - "" - ], - [ - "Packages/User/Node.sublime-build", - "" - ], - [ - "Packages/User/Node.sublime-build", - "Node ESM(.mjs)" - ], - [ - "Packages/User/Node.sublime-build", - "Deno Run" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript ts-node" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript Watch" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript => ES3" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript => ES5" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript => ES6" - ], - [ - "Packages/User/Node.sublime-build", - "ES6(ECMAScript 2015)" - ], - [ - "Packages/User/Node.sublime-build", - "ES5(ECMAScript 2009)" - ] - ], - [ - "Packages/User/Node.sublime-build", - "Deno Run" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/TypeScript/TypeScript.sublime-build", - "" - ], - [ - "Packages/User/Node.sublime-build", - "" - ], - [ - "Packages/User/Node.sublime-build", - "Node ESM(.mjs)" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript Deno" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript ts-node" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript Watch" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript => ES3" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript => ES5" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript => ES6" - ], - [ - "Packages/User/Node.sublime-build", - "ES6(ECMAScript 2015)" - ], - [ - "Packages/User/Node.sublime-build", - "ES5(ECMAScript 2009)" - ] - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript ts-node" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/TypeScript/TypeScript.sublime-build", - "" - ], - [ - "Packages/User/Node.sublime-build", - "" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript Deno" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript ts-node" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript => ES3" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript => ES5" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript => ES6" - ], - [ - "Packages/User/Node.sublime-build", - "ES6(ECMAScript 2015)" - ], - [ - "Packages/User/Node.sublime-build", - "ES5(ECMAScript 2009)" - ] - ], - [ - "Packages/User/Node.sublime-build", - "" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/TypeScript/TypeScript.sublime-build", - "" - ], - [ - "Packages/User/Node.sublime-build", - "" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript ts-node" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript Deno" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript => ES3" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript => ES5" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript => ES6" - ], - [ - "Packages/User/Node.sublime-build", - "ES6(ECMAScript 2015)" - ], - [ - "Packages/User/Node.sublime-build", - "ES5(ECMAScript 2009)" - ] - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript Deno" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/TypeScript/TypeScript.sublime-build", - "" - ], - [ - "Packages/User/Node.sublime-build", - "" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript[ts-node]" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript ES3)" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript ES5)" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript ES6)" - ], - [ - "Packages/User/Node.sublime-build", - "ES6(ECMAScript 2015)" - ], - [ - "Packages/User/Node.sublime-build", - "ES5(ECMAScript 2009)" - ], - [ - "Packages/User/ts-node.sublime-build", - "" - ] - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript[ts-node]" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 10.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 8.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 6.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 5.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 4.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 3.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 2.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 1.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "C# version ..." - ], - [ - "Packages/User/C#.sublime-build", - "Build DLL" - ], - [ - "Packages/User/C#.sublime-build", - "Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net New" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Watch" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run Project" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Watch Project" - ], - [ - "Packages/User/C#.sublime-build", - "Run with Test Arguments" - ], - [ - "Packages/User/CMake.sublime-build", - "" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Sublime Text 2 - Ninja" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Visual Studio 16 2019" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Visual Studio 15 2017" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake Build Release" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake Build Debug" - ], - [ - "Packages/User/CMake.sublime-build", - "Memory Layout of Class (GCC)" - ], - [ - "Packages/User/CMake.sublime-build", - "Compile & Run (GCC Debug)" - ], - [ - "Packages/User/CMake.sublime-build", - "Compile & Run (GCC Release)" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make Win32" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make all" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make Clean" - ] - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 6.0)..." - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 10.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 9.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 8.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.3)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.2)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.1)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 6.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 5.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 4.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 3.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 2.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 1.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "C# version ..." - ], - [ - "Packages/User/C#.sublime-build", - "Build DLL" - ], - [ - "Packages/User/C#.sublime-build", - "Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net New" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Watch" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run Project" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Watch Project" - ], - [ - "Packages/User/C#.sublime-build", - "Run with Test Arguments" - ], - [ - "Packages/User/CMake.sublime-build", - "" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Sublime Text 2 - Ninja" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Visual Studio 16 2019" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Visual Studio 15 2017" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake Build Release" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake Build Debug" - ], - [ - "Packages/User/CMake.sublime-build", - "Memory Layout of Class (GCC)" - ], - [ - "Packages/User/CMake.sublime-build", - "Compile & Run (GCC Debug)" - ], - [ - "Packages/User/CMake.sublime-build", - "Compile & Run (GCC Release)" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make Win32" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make all" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make Clean" - ] - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 1.0)..." - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 10.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 9.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 8.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.3)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.2)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.1)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 6.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 5.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 4.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 3.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 2.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 1.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "C# version ..." - ], - [ - "Packages/User/C#.sublime-build", - "Build DLL" - ], - [ - "Packages/User/C#.sublime-build", - "Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net New Console" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Watch" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run Project" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Watch Project" - ], - [ - "Packages/User/C#.sublime-build", - "Run with Test Arguments" - ], - [ - "Packages/User/CMake.sublime-build", - "" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Sublime Text 2 - Ninja" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Visual Studio 16 2019" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Visual Studio 15 2017" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake Build Release" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake Build Debug" - ], - [ - "Packages/User/CMake.sublime-build", - "Memory Layout of Class (GCC)" - ], - [ - "Packages/User/CMake.sublime-build", - "Compile & Run (GCC Debug)" - ], - [ - "Packages/User/CMake.sublime-build", - "Compile & Run (GCC Release)" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make Win32" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make all" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make Clean" - ] - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run ..." - ], - [ - "Packages/User/C#.sublime-build", - "Build DLL" - ], - [ - "Packages/User/C#.sublime-build", - "Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net New" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Watch" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run Project" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Watch Project" - ], - [ - "Packages/User/C#.sublime-build", - "Run with Test Arguments" - ], - [ - "Packages/User/CMake.sublime-build", - "" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Sublime Text 2 - Ninja" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Visual Studio 16 2019" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Visual Studio 15 2017" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake Build Release" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake Build Debug" - ], - [ - "Packages/User/CMake.sublime-build", - "Memory Layout of Class (GCC)" - ], - [ - "Packages/User/CMake.sublime-build", - "Compile & Run (GCC Debug)" - ], - [ - "Packages/User/CMake.sublime-build", - "Compile & Run (GCC Release)" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make Win32" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make all" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make Clean" - ] - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run ..." - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run ..." - ], - [ - "Packages/User/C#.sublime-build", - "C# version ..." - ], - [ - "Packages/User/C#.sublime-build", - "Build DLL" - ], - [ - "Packages/User/C#.sublime-build", - "Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net New" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Watch" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run Project" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Watch Project" - ], - [ - "Packages/User/C#.sublime-build", - "Run with Test Arguments" - ], - [ - "Packages/User/CMake.sublime-build", - "" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Sublime Text 2 - Ninja" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Visual Studio 16 2019" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Visual Studio 15 2017" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake Build Release" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake Build Debug" - ], - [ - "Packages/User/CMake.sublime-build", - "Memory Layout of Class (GCC)" - ], - [ - "Packages/User/CMake.sublime-build", - "Compile & Run (GCC Debug)" - ], - [ - "Packages/User/CMake.sublime-build", - "Compile & Run (GCC Release)" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make Win32" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make all" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make Clean" - ] - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run ..." - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go WebAssembly" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go install" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run with Test Arguments" - ] - ], - [ - "Packages/User/GoLang.sublime-build", - "Go WebAssembly" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/Node.sublime-build", - "" - ], - [ - "Packages/User/Node.sublime-build", - "Node ESM(.mjs)" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript Deno" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript ts-node" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript Watch" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript => ES3" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript => ES5" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript => ES6" - ], - [ - "Packages/User/Node.sublime-build", - "ES6(ECMAScript 2015)" - ], - [ - "Packages/User/Node.sublime-build", - "ES5(ECMAScript 2009)" - ] - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript Deno" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/Node.sublime-build", - "" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript Deno" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript ts-node" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript Watch" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript => ES3" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript => ES5" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript => ES6" - ], - [ - "Packages/User/Node.sublime-build", - "ES6(ECMAScript 2015)" - ], - [ - "Packages/User/Node.sublime-build", - "ES5(ECMAScript 2009)" - ] - ], - [ - "Packages/User/Node.sublime-build", - "" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/php.sublime-build", - "" - ] - ], - [ - "Packages/User/php.sublime-build", - "" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/Lua/Lua.sublime-build", - "" - ], - [ - "Packages/User/lua.sublime-build", - "" - ] - ], - [ - "Packages/Lua/Lua.sublime-build", - "" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/MarkdownPreview/Markdown.sublime-build", - "" - ] - ], - [ - "Packages/MarkdownPreview/Markdown.sublime-build", - "" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/Python/Python.sublime-build", - "" - ], - [ - "Packages/Python/Python.sublime-build", - "Syntax Check" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "Run" - ] - ], - [ - "Packages/User/Python.sublime-build", - "" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/Rust/Cargo.sublime-build", - "" - ], - [ - "Packages/Rust/Cargo.sublime-build", - "Run" - ], - [ - "Packages/Rust/Cargo.sublime-build", - "Test" - ], - [ - "Packages/Rust/Cargo.sublime-build", - "Bench" - ], - [ - "Packages/Rust/Cargo.sublime-build", - "Clean" - ], - [ - "Packages/Rust/Rust.sublime-build", - "" - ], - [ - "Packages/Rust/Rust.sublime-build", - "Run" - ], - [ - "Packages/Rust/Rust.sublime-build", - "Build & Run" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ] - ], - [ - "Packages/Rust/Rust.sublime-build", - "Build & Run" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/TypeScript/TypeScript.sublime-build", - "" - ] - ], - [ - "Packages/TypeScript/TypeScript.sublime-build", - "" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/TypeScript/TypeScript.sublime-build", - "" - ], - [ - "Packages/User/Node.sublime-build", - "" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript[ts-node]" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript ES3)" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript ES5)" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript ES6)" - ], - [ - "Packages/User/Node.sublime-build", - "ES6(ECMAScript 2015)" - ], - [ - "Packages/User/Node.sublime-build", - "ES5(ECMAScript 2009)" - ] - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript ES6)" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/TypeScript/TypeScript.sublime-build", - "" - ], - [ - "Packages/User/Node.sublime-build", - "" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript[ts-node]" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript ES3)" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript ES5)" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript ES6)" - ], - [ - "Packages/User/Node.sublime-build", - "ES6(ECMAScript 2015)" - ], - [ - "Packages/User/Node.sublime-build", - "ES5(ECMAScript 2009)" - ], - [ - "Packages/User/ts-node.sublime-build", - "" - ] - ], - [ - "Packages/User/ts-node.sublime-build", - "" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/User/Node.sublime-build", - "" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript[ts-node]" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript ES3)" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript ES5)" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript ES6)" - ], - [ - "Packages/User/Node.sublime-build", - "ES6(ECMAScript 2015)" - ], - [ - "Packages/User/Node.sublime-build", - "ES5(ECMAScript 2009)" - ] - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript ES6)" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/User/PlantUML.sublime-build", - "" - ], - [ - "Packages/User/PlantUML.sublime-build", - " --> ASCII Art" - ], - [ - "Packages/User/PlantUML.sublime-build", - " --> PNG" - ] - ], - [ - "Git Demo", - "git show" - ] - ], - [ - [ - [ - "Git Demo", - "" - ], - [ - "Git Demo", - "Git help" - ], - [ - "Git Demo", - "Git Origin attach" - ], - [ - "Git Demo", - "Push" - ], - [ - "Git Demo", - "Branch List" - ], - [ - "Git Demo", - "Branch List remote" - ], - [ - "Git Demo", - "Diff --cached" - ], - [ - "Git Demo", - "git show" - ], - [ - "Packages/User/lisp.sublime-build", - "" - ] - ], - [ - "Packages/User/lisp.sublime-build", - "" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/C++/C++ Single File.sublime-build", - "" - ], - [ - "Packages/C++/C++ Single File.sublime-build", - "Run" - ], - [ - "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", - "" - ], - [ - "Packages/User/CMake.sublime-build", - "" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Visual Studio 17 2020" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Visual Studio 16 2019" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Visual Studio 15 2017" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Ninja - Vcpkg [Default]" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Ninja - Vcpkg [MSVC]" - ], - [ - "Packages/User/CMake.sublime-build", - "Ninja - all [Default]" - ], - [ - "Packages/User/CMake.sublime-build", - "Ninja - all [MSVC]" - ], - [ - "Packages/User/CMake.sublime-build", - "Ninja - clean" - ], - [ - "Packages/User/CMake.sublime-build", - "Ninja - rebuild_cache" - ], - [ - "Packages/User/CMake.sublime-build", - "Ninja - test" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake Build Release" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake Build Debug" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake install" - ], - [ - "Packages/User/CMake.sublime-build", - "Memory Layout of Class (GCC)" - ], - [ - "Packages/User/CMake.sublime-build", - "Compile & Run (GCC Debug)" - ], - [ - "Packages/User/CMake.sublime-build", - "Compile & Run (GCC Release)" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make Win32" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make all" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make Clean" - ], - [ - "Packages/User/MinGW.sublime-build", - "" - ], - [ - "Packages/User/MinGW.sublime-build", - "(-std=c++17)" - ], - [ - "Packages/User/MinGW.sublime-build", - "(-std=c++14)" - ], - [ - "Packages/User/MinGW.sublime-build", - "(-std=c++11)" - ], - [ - "Packages/User/MinGW.sublime-build", - "(-std=c++11) with ENV" - ], - [ - "Packages/User/MinGW.sublime-build", - "(-std=c++11) Release with ENV" - ], - [ - "Packages/User/MinGW.sublime-build", - "(-std=c++0x) with ENV" - ], - [ - "Packages/User/MinGW.sublime-build", - "(-std=c++98) with ENV" - ], - [ - "Packages/User/MinGW.sublime-build", - "(-ansi)" - ], - [ - "Packages/User/MinGW.sublime-build", - "(-std=c11)" - ], - [ - "Packages/User/MinGW.sublime-build", - "(-std=c99)" - ], - [ - "Packages/User/MinGW.sublime-build", - "(-std=c90)" - ], - [ - "Packages/User/MinGW.sublime-build", - "(-ansi) with ENV" - ], - [ - "Packages/User/MinGW.sublime-build", - "(-std=c11) with ENV" - ], - [ - "Packages/User/MinGW.sublime-build", - "(-std=c99) with ENV" - ], - [ - "Packages/User/MinGW.sublime-build", - "(-std=c90) with ENV" - ], - [ - "Packages/User/MinGW.sublime-build", - "控制台中运行" - ] - ], - [ - "Packages/User/MinGW.sublime-build", - "(-std=c++17)" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/MarkdownPreview/Markdown.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 -m coding]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 sys.path]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9]" - ], - [ - "Packages/User/Python.sublime-build", - "Syntax Check" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Default Console]" - ] - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9]" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/PowerShell/Support/Powershell.sublime-build", - "" - ] - ], - [ - "Packages/PowerShell/Support/Powershell.sublime-build", - "" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 10.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 1.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 9.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 8.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.3)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.2)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.1)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 6.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 5.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 4.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 3.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 2.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build DLL" - ], - [ - "Packages/User/C#.sublime-build", - "Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net New Console" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Watch" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run Project" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Watch Project" - ], - [ - "Packages/User/C#.sublime-build", - "Run with Test Arguments" - ] - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 8.0)..." - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 10.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 9.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 8.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.3)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.2)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.1)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 6.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 5.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 4.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 3.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 2.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 1.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build DLL" - ], - [ - "Packages/User/C#.sublime-build", - "Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net New Console" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Watch" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run Project" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Watch Project" - ], - [ - "Packages/User/C#.sublime-build", - "Run with Test Arguments" - ] - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 6.0)..." - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 10.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 9.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 8.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.3)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.2)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.1)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 6.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 5.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 4.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 3.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 2.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 1.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "C# version ..." - ], - [ - "Packages/User/C#.sublime-build", - "Build DLL" - ], - [ - "Packages/User/C#.sublime-build", - "Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net New Console" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Watch" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run Project" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Watch Project" - ], - [ - "Packages/User/C#.sublime-build", - "Run with Test Arguments" - ] - ], - [ - "Packages/User/C#.sublime-build", - "" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/CMake.sublime-build", - "" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Sublime Text 2 - Ninja" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Visual Studio 16 2019" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Visual Studio 15 2017" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake Build Release" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake Build Debug" - ], - [ - "Packages/User/CMake.sublime-build", - "Memory Layout of Class (GCC)" - ], - [ - "Packages/User/CMake.sublime-build", - "Compile & Run (GCC Debug)" - ], - [ - "Packages/User/CMake.sublime-build", - "Compile & Run (GCC Release)" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make Win32" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make all" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make Clean" - ] - ], - [ - "MD Git", - "Branch List remote" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 -m coding]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 sys.path]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 Install]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9]" - ], - [ - "Packages/User/Python.sublime-build", - "Syntax Check" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Default Console]" - ] - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9]" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 -m coding]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 sys.path]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9]" - ], - [ - "Packages/User/Python.sublime-build", - "Syntax Check" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Default Console]" - ] - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2]" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 -m coding]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 sys.path]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10 Module Docs (64-bit)]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 Install]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9]" - ], - [ - "Packages/User/Python.sublime-build", - "Syntax Check" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Default Console]" - ] - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10 Module Docs (64-bit)]" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 -m coding]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 sys.path]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 Module Docs (64-bit)]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 Install]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9]" - ], - [ - "Packages/User/Python.sublime-build", - "Syntax Check" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Default Console]" - ] - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2]" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 -m coding]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 sys.path]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 Module Docs (64-bit)]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 build module]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 Install]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9]" - ], - [ - "Packages/User/Python.sublime-build", - "Syntax Check" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Default Console]" - ] - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 Install]" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/php.sublime-build", - "" - ] - ], - [ - "Packages/User/php.sublime-build", - "" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/php.sublime-build", - "" - ], - [ - "Packages/User/php.sublime-build", - "7.4.28 Win32-vc15-x64" - ] - ], - [ - "Packages/User/php.sublime-build", - "7.4.28 Win32-vc15-x64" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/php.sublime-build", - "" - ], - [ - "Packages/User/php.sublime-build", - "7.4.28 Win32-vc15-x64" - ], - [ - "Packages/User/php.sublime-build", - "7.4.28 Info" - ] - ], - [ - "Packages/User/php.sublime-build", - "7.4.28 Win32-vc15-x64" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/php.sublime-build", - "" - ], - [ - "Packages/User/php.sublime-build", - "PHP 7.4.28 Win32-vc15-x64" - ] - ], - [ - "Packages/User/php.sublime-build", - "PHP 7.4.28 Win32-vc15-x64" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/php.sublime-build", - "" - ], - [ - "Packages/User/php.sublime-build", - "PHP 7.4.28 Win32-vc15-x64" - ], - [ - "Packages/User/php.sublime-build", - "PHP 7.4.28 -V" - ] - ], - [ - "Packages/User/php.sublime-build", - "PHP 7.4.28 -V" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/php.sublime-build", - "" - ], - [ - "Packages/User/php.sublime-build", - "PHP 7.4.28 Win32-vc15-x64" - ], - [ - "Packages/User/php.sublime-build", - "PHP 7.4.28 -v" - ] - ], - [ - "Packages/User/php.sublime-build", - "PHP 7.4.28 -v" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Java/Ant.sublime-build", - "" - ], - [ - "Packages/Java/JavaC.sublime-build", - "" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/java.sublime-build", - "" - ], - [ - "Packages/User/java.sublime-build", - "编译运行" - ], - [ - "Packages/User/java.sublime-build", - "运行当前类" - ], - [ - "Packages/User/java.sublime-build", - "cmd中运行" - ] - ], - [ - "Packages/User/java.sublime-build", - "编译运行" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Lua/Lua.sublime-build", - "" - ] - ], - [ - "Packages/Lua/Lua.sublime-build", - "" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/MSBuild/MSBuild.sublime-build", - "" - ], - [ - "Packages/MSBuild/MSBuild.sublime-build", - "Parallel Build" - ], - [ - "Packages/MSBuild/MSBuild.sublime-build", - "Debug Configuration" - ], - [ - "Packages/MSBuild/MSBuild.sublime-build", - "Release Configuration" - ], - [ - "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 10.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 1.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 9.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 8.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.3)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.2)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.1)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 6.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 5.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 4.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 3.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 2.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build DLL" - ], - [ - "Packages/User/C#.sublime-build", - "MSBuild proj" - ], - [ - "Packages/User/C#.sublime-build", - "MSBuild proj - DEBUG" - ], - [ - "Packages/User/C#.sublime-build", - "Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net New Console" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Watch" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run Project" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Watch Project" - ], - [ - "Packages/User/C#.sublime-build", - "Run with Test Arguments" - ] - ], - [ - "Packages/User/C#.sublime-build", - "MSBuild proj - DEBUG" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/MSBuild/MSBuild.sublime-build", - "" - ], - [ - "Packages/MSBuild/MSBuild.sublime-build", - "Parallel Build" - ], - [ - "Packages/MSBuild/MSBuild.sublime-build", - "Debug Configuration" - ], - [ - "Packages/MSBuild/MSBuild.sublime-build", - "Release Configuration" - ], - [ - "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 10.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 1.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 9.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 8.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.3)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.2)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.1)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 6.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 5.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 4.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 3.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 2.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build DLL" - ], - [ - "Packages/User/C#.sublime-build", - "MSBuild proj" - ], - [ - "Packages/User/C#.sublime-build", - "Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net New Console" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Watch" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run Project" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Watch Project" - ], - [ - "Packages/User/C#.sublime-build", - "Run with Test Arguments" - ] - ], - [ - "Packages/User/C#.sublime-build", - "MSBuild proj" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/MarkdownPreview/Markdown.sublime-build", - "" - ] - ], - [ - "Packages/MarkdownPreview/Markdown.sublime-build", - "" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Perl/Perl.sublime-build", - "" - ], - [ - "Packages/Perl/Perl.sublime-build", - "Syntax Check" - ] - ], - [ - "Packages/Perl/Perl.sublime-build", - "" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/PowerShell/Support/Powershell.sublime-build", - "" - ], - [ - "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", - "" - ] - ], - [ - "Packages/PowerShell/Support/Powershell.sublime-build", - "" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Python/Python.sublime-build", - "" - ], - [ - "Packages/Python/Python.sublime-build", - "Syntax Check" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "Run" - ] - ], - [ - "Packages/User/Python.sublime-build", - "" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Python/Python.sublime-build", - "" - ], - [ - "Packages/Python/Python.sublime-build", - "Syntax Check" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Console Python v3.10.2]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2]" - ] - ], - [ - "Packages/User/Python.sublime-build", - "" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Python/Python.sublime-build", - "" - ], - [ - "Packages/Python/Python.sublime-build", - "Syntax Check" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Default Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 -m MAIN.MODULE]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9]" - ] - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 -m MAIN.MODULE]" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Python/Python.sublime-build", - "" - ], - [ - "Packages/Python/Python.sublime-build", - "Syntax Check" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Default Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 -m MAIN_MODULE]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9]" - ] - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 -m MAIN_MODULE]" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Python/Python.sublime-build", - "" - ], - [ - "Packages/Python/Python.sublime-build", - "Syntax Check" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Default Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 -m coding]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 sys.path]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9]" - ] - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 Console]" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Python/Python.sublime-build", - "" - ], - [ - "Packages/Python/Python.sublime-build", - "Syntax Check" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Default Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 -m coding]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9]" - ] - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 -m coding]" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Python/Python.sublime-build", - "" - ], - [ - "Packages/Python/Python.sublime-build", - "Syntax Check" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Default Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 -m main.module]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9]" - ] - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 -m main.module]" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Python/Python.sublime-build", - "" - ], - [ - "Packages/Python/Python.sublime-build", - "Syntax Check" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Default Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 -m mainmodule]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9]" - ] - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 -m mainmodule]" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Python/Python.sublime-build", - "" - ], - [ - "Packages/Python/Python.sublime-build", - "Syntax Check" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Default Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2]" - ] - ], - [ - "Packages/User/Python.sublime-build", - "" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Python/Python.sublime-build", - "" - ], - [ - "Packages/Python/Python.sublime-build", - "Syntax Check" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Default Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.0 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.0]" - ] - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.0]" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Python/Python.sublime-build", - "" - ], - [ - "Packages/Python/Python.sublime-build", - "Syntax Check" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Default Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9]" - ] - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2]" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Python/Python.sublime-build", - "" - ], - [ - "Packages/Python/Python.sublime-build", - "Syntax Check" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 -m coding]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 sys.path]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Default Console]" - ] - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2]" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 10.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 1.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 9.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 8.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.3)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.2)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.1)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 6.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 5.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 4.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 3.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 2.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build DLL" - ], - [ - "Packages/User/C#.sublime-build", - "MSBuild proj" - ], - [ - "Packages/User/C#.sublime-build", - "MSBuild proj - DEBUG" - ], - [ - "Packages/User/C#.sublime-build", - "Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net New Console" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Watch" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run Project" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Watch Project" - ], - [ - "Packages/User/C#.sublime-build", - "Run with Test Arguments" - ] - ], - [ - "Packages/User/C#.sublime-build", - "MSBuild proj - DEBUG" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 10.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 1.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 9.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 8.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.3)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.2)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.1)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 6.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 5.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 4.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 3.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 2.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build DLL" - ], - [ - "Packages/User/C#.sublime-build", - "MSBuild proj" - ], - [ - "Packages/User/C#.sublime-build", - "Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net New Console" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Watch" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run Project" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Watch Project" - ], - [ - "Packages/User/C#.sublime-build", - "Run with Test Arguments" - ] - ], - [ - "Packages/User/C#.sublime-build", - "MSBuild proj" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 10.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 1.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 9.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 8.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.3)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.2)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.1)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 7.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 6.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 5.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 4.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 3.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 2.0)..." - ], - [ - "Packages/User/C#.sublime-build", - "Build DLL" - ], - [ - "Packages/User/C#.sublime-build", - "Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net New Console" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Watch" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run Project" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Watch Project" - ], - [ - "Packages/User/C#.sublime-build", - "Run with Test Arguments" - ] - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run (C# 10.0)..." - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", - "" - ], - [ - "Packages/User/CMake.sublime-build", - "" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Sublime Text 2 - Ninja" - ], - [ - "Packages/User/CMake.sublime-build", - "Ninja - all" - ], - [ - "Packages/User/CMake.sublime-build", - "Ninja - clean" - ], - [ - "Packages/User/CMake.sublime-build", - "Ninja - rebuild_cache" - ], - [ - "Packages/User/CMake.sublime-build", - "Ninja - test" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Visual Studio 16 2019" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Visual Studio 15 2017" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake Build Release" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake Build Debug" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake install" - ], - [ - "Packages/User/CMake.sublime-build", - "Memory Layout of Class (GCC)" - ], - [ - "Packages/User/CMake.sublime-build", - "Compile & Run (GCC Debug)" - ], - [ - "Packages/User/CMake.sublime-build", - "Compile & Run (GCC Release)" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make Win32" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make all" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make Clean" - ] - ], - [ - "Packages/User/CMake.sublime-build", - "" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", - "" - ], - [ - "Packages/User/MSBuild.sublime-build", - "" - ], - [ - "Packages/User/MSBuild.sublime-build", - "MSBuild proj" - ], - [ - "Packages/User/MSBuild.sublime-build", - "MSBuild proj - DEBUG" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net MSBuild Project" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Run Project" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Watch Project" - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 10.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 1.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 9.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 8.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 7.3)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 7.2)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 7.1)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 7.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 6.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 5.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 4.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 3.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 2.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build DLL" - ], - [ - "Packages/User/MSBuild.sublime-build", - "Run" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Info (SDKs & Runtimes List)" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net New Console" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Run" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Watch" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net New - console" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net New - winforms" - ], - [ - "Packages/User/MSBuild.sublime-build", - "Run with Test Arguments" - ] - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 8.0)..." - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", - "" - ], - [ - "Packages/User/MSBuild.sublime-build", - "" - ], - [ - "Packages/User/MSBuild.sublime-build", - "MSBuild proj" - ], - [ - "Packages/User/MSBuild.sublime-build", - "MSBuild proj - DEBUG" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net MSBuild Project" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Run Project" - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 10.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 1.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 9.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 8.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 7.3)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 7.2)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 7.1)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 7.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 6.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 5.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 4.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 3.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 2.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build DLL" - ], - [ - "Packages/User/MSBuild.sublime-build", - "Run" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Info (SDKs & Runtimes List)" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net New Console" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Run" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Watch" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Run Project" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Watch Project" - ], - [ - "Packages/User/MSBuild.sublime-build", - "Run with Test Arguments" - ] - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Run Project" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", - "" - ], - [ - "Packages/User/MSBuild.sublime-build", - "" - ], - [ - "Packages/User/MSBuild.sublime-build", - "MSBuild proj" - ], - [ - "Packages/User/MSBuild.sublime-build", - "MSBuild proj - DEBUG" - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 10.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 1.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 9.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 8.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 7.3)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 7.2)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 7.1)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 7.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 6.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 5.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 4.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 3.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 2.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build DLL" - ], - [ - "Packages/User/MSBuild.sublime-build", - "Run" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Info (SDKs & Runtimes List)" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net New Console" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net New Console" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Run" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Watch" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Run Project" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Watch Project" - ], - [ - "Packages/User/MSBuild.sublime-build", - "Run with Test Arguments" - ] - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Info (SDKs & Runtimes List)" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", - "" - ], - [ - "Packages/User/MSBuild.sublime-build", - "" - ], - [ - "Packages/User/MSBuild.sublime-build", - "MSBuild proj" - ], - [ - "Packages/User/MSBuild.sublime-build", - "MSBuild proj - DEBUG" - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 10.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 1.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 9.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 8.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 7.3)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 7.2)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 7.1)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 7.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 6.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 5.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 4.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 3.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 2.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build DLL" - ], - [ - "Packages/User/MSBuild.sublime-build", - "Run" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Info (SDKs & Runtimes List)" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net New Console" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Run" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Watch" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Run Project" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Watch Project" - ], - [ - "Packages/User/MSBuild.sublime-build", - "Run with Test Arguments" - ] - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Run Project" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", - "" - ], - [ - "Packages/User/MSBuild.sublime-build", - "" - ], - [ - "Packages/User/MSBuild.sublime-build", - "MSBuild proj" - ], - [ - "Packages/User/MSBuild.sublime-build", - "MSBuild proj - DEBUG" - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 10.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 1.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 9.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 8.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 7.3)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 7.2)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 7.1)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 7.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 6.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 5.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 4.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 3.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 2.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build DLL" - ], - [ - "Packages/User/MSBuild.sublime-build", - "Run" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net New Console" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Run" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Watch" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Run Project" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Watch Project" - ], - [ - "Packages/User/MSBuild.sublime-build", - "Run with Test Arguments" - ] - ], - [ - "Packages/User/MSBuild.sublime-build", - "" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", - "" - ], - [ - "Packages/User/MSBuild.sublime-build", - "" - ], - [ - "Packages/User/MSBuild.sublime-build", - "MSBuild proj" - ], - [ - "Packages/User/MSBuild.sublime-build", - "MSBuild proj - DEBUG" - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 10.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 1.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 9.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 8.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 7.3)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 7.2)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 7.1)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 7.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 6.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 5.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 4.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 3.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build Exe & Run (C# 2.0)..." - ], - [ - "Packages/User/MSBuild.sublime-build", - "C# Build DLL" - ], - [ - "Packages/User/MSBuild.sublime-build", - "Run" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Runtimes List" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net SDK list" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net New Console" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net New Console" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Run" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Watch" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Run Project" - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net Watch Project" - ], - [ - "Packages/User/MSBuild.sublime-build", - "Run with Test Arguments" - ] - ], - [ - "Packages/User/MSBuild.sublime-build", - ".Net SDK list" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 -m coding]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 sys.path]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 Module Docs (64-bit)]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 build module]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 Install]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9]" - ], - [ - "Packages/User/Python.sublime-build", - "Syntax Check" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Default Console]" - ] - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.10.2 Install]" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 -m coding]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 sys.path]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 Module Docs]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 tokenize]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 AST]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 dis]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 build module]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 Install]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9]" - ], - [ - "Packages/User/Python.sublime-build", - "Syntax Check" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Default Console]" - ] - ], - [ - "Packages/User/Python.sublime-build", - "" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 -m coding]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 sys.path]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 Module Docs]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 tokenize]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 build module]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 Install]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9]" - ], - [ - "Packages/User/Python.sublime-build", - "Syntax Check" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Default Console]" - ] - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2]" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/SublimeREPL/sublimerepl_build_system_hack.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 -m coding]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 sys.path]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 Module Docs]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 tokenize]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 dis]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 build module]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 Install]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9]" - ], - [ - "Packages/User/Python.sublime-build", - "Syntax Check" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Default Console]" - ] - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 tokenize]" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/User/Node.sublime-build", - "" - ], - [ - "Packages/User/Node.sublime-build", - "Node ESM(.mjs)" - ], - [ - "Packages/User/Node.sublime-build", - "Deno Run" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript ts-node" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript Watch" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript => ES3" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript => ES5" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript => ES6" - ], - [ - "Packages/User/Node.sublime-build", - "ES6(ECMAScript 2015)" - ], - [ - "Packages/User/Node.sublime-build", - "ES5(ECMAScript 2009)" - ] - ], - [ - "Packages/User/Node.sublime-build", - "Deno Run" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/User/Python.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 -m coding]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 sys.path]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 Module Docs]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 tokenize]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 AST]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 dis]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 build module]" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 Install]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9]" - ], - [ - "Packages/User/Python.sublime-build", - "Syntax Check" - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Python v3.7.9 Console]" - ], - [ - "Packages/User/Python.sublime-build", - "Run [Default Console]" - ] - ], - [ - "Packages/User/Python.sublime-build", - "💛Run [Python v3.10.2]" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Git Origin URL" - ], - [ - "MD Git", - "Push" - ], - [ - "MD Git", - "Branch List" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "MD Git", - "git show" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/CMake.sublime-build", - "" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Sublime Text 2 - Ninja" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Visual Studio 16 2019" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Visual Studio 15 2017" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake Build Release" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake Build Debug" - ], - [ - "Packages/User/CMake.sublime-build", - "Memory Layout of Class (GCC)" - ], - [ - "Packages/User/CMake.sublime-build", - "Compile & Run (GCC Debug)" - ], - [ - "Packages/User/CMake.sublime-build", - "Compile & Run (GCC Release)" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make Win32" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make all" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make Clean" - ] - ], - [ - "MD Git", - "Git Origin URL" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Origin URL" - ], - [ - "MD Git", - "Branch List" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "MD Git", - "git show" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/CMake.sublime-build", - "" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Sublime Text 2 - Ninja" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Visual Studio 16 2019" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Visual Studio 15 2017" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake Build Release" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake Build Debug" - ], - [ - "Packages/User/CMake.sublime-build", - "Memory Layout of Class (GCC)" - ], - [ - "Packages/User/CMake.sublime-build", - "Compile & Run (GCC Debug)" - ], - [ - "Packages/User/CMake.sublime-build", - "Compile & Run (GCC Release)" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make Win32" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make all" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make Clean" - ] - ], - [ - "MD Git", - "git show" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Origin URL" - ], - [ - "MD Git", - "Branch List" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/CMake.sublime-build", - "" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Sublime Text 2 - Ninja" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Visual Studio 16 2019" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Visual Studio 15 2017" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake Build Release" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake Build Debug" - ], - [ - "Packages/User/CMake.sublime-build", - "Memory Layout of Class (GCC)" - ], - [ - "Packages/User/CMake.sublime-build", - "Compile & Run (GCC Debug)" - ], - [ - "Packages/User/CMake.sublime-build", - "Compile & Run (GCC Release)" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make Win32" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make all" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make Clean" - ] - ], - [ - "MD Git", - "Diff --cached" - ] - ], - [ - [ - [ - "MD Git", - "" - ], - [ - "MD Git", - "Origin URL" - ], - [ - "MD Git", - "Branch List remote" - ], - [ - "MD Git", - "Diff --cached" - ], - [ - "Packages/Flow/Flow.sublime-build", - "" - ], - [ - "Packages/User/CMake.sublime-build", - "" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Sublime Text 2 - Ninja" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Visual Studio 16 2019" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake - Visual Studio 15 2017" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake Build Release" - ], - [ - "Packages/User/CMake.sublime-build", - "CMake Build Debug" - ], - [ - "Packages/User/CMake.sublime-build", - "Memory Layout of Class (GCC)" - ], - [ - "Packages/User/CMake.sublime-build", - "Compile & Run (GCC Debug)" - ], - [ - "Packages/User/CMake.sublime-build", - "Compile & Run (GCC Release)" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make Win32" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make all" - ], - [ - "Packages/User/CMake.sublime-build", - "GNU Make Clean" - ] - ], - [ - "MD Git", - "" - ] - ], - [ - [ - [ - "Packages/C++/C Single File.sublime-build", - "" - ], - [ - "Packages/C++/C Single File.sublime-build", - "Run" - ], - [ - "Packages/User/Dart 2.2.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go install" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run with Test Arguments" - ], - [ - "Packages/User/php.sublime-build", - "" - ] - ], - [ - "Packages/C++/C Single File.sublime-build", - "" - ] - ], - [ - [ - [ - "Packages/C++/C++ Single File.sublime-build", - "" - ], - [ - "Packages/C++/C++ Single File.sublime-build", - "Run" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++11)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "Qt(-std=c++11)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "Qt(-std=c++11) Release" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "Qt(-std=c++0x)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "Qt(-std=c++98)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "Qt(-ansi)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "Qt(-std=c11)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "Qt(-std=c99)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "Qt(-std=c90)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "控制台中运行" - ], - [ - "Packages/User/Dart 2.2.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go install" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run with Test Arguments" - ], - [ - "Packages/User/php.sublime-build", - "" - ] - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++11)" - ] - ], - [ - [ - [ - "Packages/C++/C++ Single File.sublime-build", - "" - ], - [ - "Packages/C++/C++ Single File.sublime-build", - "Run" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++17)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++14)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++11)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++11) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++11) Release with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++0x) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++98) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-ansi) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c11) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c99) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c90) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "控制台中运行" - ] - ], - [ - "Packages/C++/C++ Single File.sublime-build", - "Run" - ] - ], - [ - [ - [ - "Packages/C++/C++ Single File.sublime-build", - "" - ], - [ - "Packages/C++/C++ Single File.sublime-build", - "Run" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++17)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++14)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++11)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++11) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++11) Release with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++0x) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++98) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-ansi) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c11) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c99) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c90) with ENV" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "控制台中运行" - ], - [ - "Packages/User/Dart 2.2.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go install" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run with Test Arguments" - ], - [ - "Packages/User/php.sublime-build", - "" - ] - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++11) with ENV" - ] - ], - [ - [ - [ - "Packages/C++/C++ Single File.sublime-build", - "" - ], - [ - "Packages/C++/C++ Single File.sublime-build", - "Run" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++17)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++14)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "(-std=c++11)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "Qt(-std=c++11)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "Qt(-std=c++11) Release" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "Qt(-std=c++0x)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "Qt(-std=c++98)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "Qt(-ansi)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "Qt(-std=c11)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "Qt(-std=c99)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "Qt(-std=c90)" - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "控制台中运行" - ], - [ - "Packages/User/Dart 2.2.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go install" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run with Test Arguments" - ], - [ - "Packages/User/php.sublime-build", - "" - ] - ], - [ - "Packages/User/C++ MinGW.sublime-build", - "" - ] - ], - [ - [ - [ - "Packages/C++/C++ Single File.sublime-build", - "" - ], - [ - "Packages/C++/C++ Single File.sublime-build", - "Run" - ], - [ - "Packages/User/Dart 2.2.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go install" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run with Test Arguments" - ], - [ - "Packages/User/php.sublime-build", - "" - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "" - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "编译再运行(-std=c++0x)" - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "编译再运行(-std=c++11)" - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "编译再运行(-std=c++11) Release" - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "编译再运行(-std=c++98)" - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "编译再运行(-ansi)" - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "编译再运行(-std=c11)" - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "编译再运行(-std=c99)" - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "编译再运行(-std=c90)" - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "控制台中运行" - ] - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "编译再运行(-std=c++11)" - ] - ], - [ - [ - [ - "Packages/C++/C++ Single File.sublime-build", - "" - ], - [ - "Packages/C++/C++ Single File.sublime-build", - "Run" - ], - [ - "Packages/User/Dart 2.2.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go install" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run with Test Arguments" - ], - [ - "Packages/User/php.sublime-build", - "" - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "" - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "编译再运行(-std=c++0x)" - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "编译再运行(-std=c++112)" - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "编译再运行(-std=c++11)" - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "编译再运行(-std=c++11) Release" - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "编译再运行(-std=c++98)" - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "编译再运行(-ansi)" - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "编译再运行(-std=c11)" - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "编译再运行(-std=c99)" - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "编译再运行(-std=c90)" - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "控制台中运行" - ] - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "编译再运行(-std=c++112)" - ] - ], - [ - [ - [ - "Packages/C++/C++ Single File.sublime-build", - "" - ], - [ - "Packages/C++/C++ Single File.sublime-build", - "Run" - ], - [ - "Packages/User/Dart 2.2.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go install" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run with Test Arguments" - ], - [ - "Packages/User/php.sublime-build", - "" - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "" - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "编译再运行(-std=c++11)" - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "编译再运行(-std=c++11) Release" - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "编译再运行(-std=c++98)" - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "编译再运行(-ansi)" - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "编译再运行(-std=c11)" - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "编译再运行(-std=c99)" - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "编译再运行(-std=c90)" - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "控制台中运行" - ] - ], - [ - "Packages/User/Qt+MinGW.sublime-build", - "编译再运行(-std=c++11)" - ] - ], - [ - [ - [ - "Packages/Lua/Lua.sublime-build", - "" - ], - [ - "Packages/User/Dart 2.2.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go install" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run with Test Arguments" - ], - [ - "Packages/User/php.sublime-build", - "" - ] - ], - [ - "Packages/Lua/Lua.sublime-build", - "" - ] - ], - [ - [ - [ - "Packages/MarkdownPreview/Markdown.sublime-build", - "" - ], - [ - "Packages/User/Dart 2.2.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go install" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run with Test Arguments" - ], - [ - "Packages/User/php.sublime-build", - "" - ] - ], - [ - "Packages/MarkdownPreview/Markdown.sublime-build", - "" - ] - ], - [ - [ - [ - "Packages/Python/Python.sublime-build", - "" - ], - [ - "Packages/Python/Python.sublime-build", - "Syntax Check" - ], - [ - "Packages/User/Dart 2.2.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go install" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run with Test Arguments" - ], - [ - "Packages/User/php.sublime-build", - "" - ] - ], - [ - "Packages/Python/Python.sublime-build", - "" - ] - ], - [ - [ - [ - "Packages/Python/Python.sublime-build", - "" - ], - [ - "Packages/Python/Python.sublime-build", - "Syntax Check" - ], - [ - "Packages/User/Dart 2.2.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go install" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run with Test Arguments" - ], - [ - "Packages/User/php.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "" - ], - [ - "Packages/User/Python.sublime-build", - "Run" - ] - ], - [ - "Packages/User/Python.sublime-build", - "" - ] - ], - [ - [ - [ - "Packages/Rust/Cargo.sublime-build", - "" - ], - [ - "Packages/Rust/Cargo.sublime-build", - "Run" - ], - [ - "Packages/Rust/Cargo.sublime-build", - "Test" - ], - [ - "Packages/Rust/Cargo.sublime-build", - "Bench" - ], - [ - "Packages/Rust/Cargo.sublime-build", - "Clean" - ], - [ - "Packages/Rust/Rust.sublime-build", - "" - ], - [ - "Packages/Rust/Rust.sublime-build", - "Run" - ], - [ - "Packages/Rust/Rust.sublime-build", - "Build & Run" - ], - [ - "Packages/User/Dart 2.2.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go install" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run with Test Arguments" - ], - [ - "Packages/User/php.sublime-build", - "" - ] - ], - [ - "Packages/Rust/Cargo.sublime-build", - "Run" - ] - ], - [ - [ - [ - "Packages/Sublime-Erlang/Erlang.sublime-build", - "" - ], - [ - "Packages/Sublime-Erlang/rebar.sublime-build", - "" - ], - [ - "Packages/Sublime-Erlang/rebar.sublime-build", - "Clean" - ], - [ - "Packages/Sublime-Erlang/rebar.sublime-build", - "Build with dependencies" - ], - [ - "Packages/Sublime-Erlang/rebar.sublime-build", - "Test (common_test)" - ], - [ - "Packages/Sublime-Erlang/rebar.sublime-build", - "Test (eunit)" - ], - [ - "Packages/Sublime-Erlang/rebar.sublime-build", - "Test Current Module (eunit)" - ], - [ - "Packages/Sublime-Erlang/rebar.sublime-build", - "Generate Documentation" - ], - [ - "Packages/Sublime-Erlang/rebar.sublime-build", - "Update Dependencies" - ], - [ - "Packages/User/Dart 2.2.sublime-build", - "" - ], - [ - "Packages/User/erlang.sublime-build", - "" - ], - [ - "Packages/User/erlang.sublime-build", - "Run ..." - ], - [ - "Packages/User/GoLang.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go install" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run with Test Arguments" - ], - [ - "Packages/User/php.sublime-build", - "" - ] - ], - [ - "Packages/User/erlang.sublime-build", - "Run ..." - ] - ], - [ - [ - [ - "Packages/Sublime-Erlang/Erlang.sublime-build", - "" - ], - [ - "Packages/Sublime-Erlang/rebar.sublime-build", - "" - ], - [ - "Packages/Sublime-Erlang/rebar.sublime-build", - "Clean" - ], - [ - "Packages/Sublime-Erlang/rebar.sublime-build", - "Build with dependencies" - ], - [ - "Packages/Sublime-Erlang/rebar.sublime-build", - "Test (common_test)" - ], - [ - "Packages/Sublime-Erlang/rebar.sublime-build", - "Test (eunit)" - ], - [ - "Packages/Sublime-Erlang/rebar.sublime-build", - "Test Current Module (eunit)" - ], - [ - "Packages/Sublime-Erlang/rebar.sublime-build", - "Generate Documentation" - ], - [ - "Packages/Sublime-Erlang/rebar.sublime-build", - "Update Dependencies" - ], - [ - "Packages/User/Dart 2.2.sublime-build", - "" - ], - [ - "Packages/User/erlang.sublime-build", - "" - ], - [ - "Packages/User/erlang.sublime-build", - "Run ..." - ], - [ - "Packages/User/erlang.sublime-build", - "Run escript ..." - ], - [ - "Packages/User/GoLang.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go install" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run with Test Arguments" - ], - [ - "Packages/User/php.sublime-build", - "" - ] - ], - [ - "Packages/User/erlang.sublime-build", - "Run ..." - ] - ], - [ - [ - [ - "Packages/TypeScript/TypeScript.sublime-build", - "" - ], - [ - "Packages/User/Dart 2.2.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go install" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run with Test Arguments" - ], - [ - "Packages/User/Node.sublime-build", - "" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript[ts-node]" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript ES3)" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript ES5)" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript ES6)" - ], - [ - "Packages/User/Node.sublime-build", - "ES6(ECMAScript 2015)" - ], - [ - "Packages/User/Node.sublime-build", - "ES5(ECMAScript 2009)" - ], - [ - "Packages/User/php.sublime-build", - "" - ] - ], - [ - "Packages/TypeScript/TypeScript.sublime-build", - "" - ] - ], - [ - [ - [ - "Packages/TypeScript/TypeScript.sublime-build", - "" - ], - [ - "Packages/User/Dart 2.2.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go install" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run with Test Arguments" - ], - [ - "Packages/User/php.sublime-build", - "" - ] - ], - [ - "Packages/TypeScript/TypeScript.sublime-build", - "" - ] - ], - [ - [ - [ - "Packages/User/C#.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe" - ], - [ - "Packages/User/C#.sublime-build", - "Build DLL" - ], - [ - "Packages/User/C#.sublime-build", - "Run" - ], - [ - "Packages/User/C#.sublime-build", - "Run with Test Arguments" - ], - [ - "Packages/User/Dart 2.2.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go install" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run with Test Arguments" - ], - [ - "Packages/User/php.sublime-build", - "" - ] - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe" - ] - ], - [ - [ - [ - "Packages/User/C#.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run ..." - ], - [ - "Packages/User/C#.sublime-build", - "Build DLL" - ], - [ - "Packages/User/C#.sublime-build", - "Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net New" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run Project" - ], - [ - "Packages/User/C#.sublime-build", - "Run with Test Arguments" - ], - [ - "Packages/User/Dart 2.2.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go install" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run with Test Arguments" - ], - [ - "Packages/User/php.sublime-build", - "" - ] - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run ..." - ] - ], - [ - [ - [ - "Packages/User/C#.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run ..." - ], - [ - "Packages/User/C#.sublime-build", - "Build DLL" - ], - [ - "Packages/User/C#.sublime-build", - "Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net New" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Watch" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run Project" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Watch Project" - ], - [ - "Packages/User/C#.sublime-build", - "Run with Test Arguments" - ], - [ - "Packages/User/Dart 2.2.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go install" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run with Test Arguments" - ], - [ - "Packages/User/php.sublime-build", - "" - ] - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run ..." - ] - ], - [ - [ - [ - "Packages/User/C#.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run ..." - ], - [ - "Packages/User/C#.sublime-build", - "Build DLL" - ], - [ - "Packages/User/C#.sublime-build", - "Run" - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run" - ], - [ - "Packages/User/C#.sublime-build", - "Run with Test Arguments" - ], - [ - "Packages/User/Dart 2.2.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go install" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run with Test Arguments" - ], - [ - "Packages/User/php.sublime-build", - "" - ] - ], - [ - "Packages/User/C#.sublime-build", - ".Net Run" - ] - ], - [ - [ - [ - "Packages/User/C#.sublime-build", - "" - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run ..." - ], - [ - "Packages/User/C#.sublime-build", - "Build DLL" - ], - [ - "Packages/User/C#.sublime-build", - "Run" - ], - [ - "Packages/User/C#.sublime-build", - "Run with Test Arguments" - ], - [ - "Packages/User/Dart 2.2.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go install" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run with Test Arguments" - ], - [ - "Packages/User/php.sublime-build", - "" - ] - ], - [ - "Packages/User/C#.sublime-build", - "Build Exe & Run ..." - ] - ], - [ - [ - [ - "Packages/User/Dart 2.2.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go install" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run with Test Arguments" - ], - [ - "Packages/User/Node.sublime-build", - "" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript[ts-node]" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript ES3)" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript ES5)" - ], - [ - "Packages/User/Node.sublime-build", - "TypeScript ES6)" - ], - [ - "Packages/User/Node.sublime-build", - "ES6(ECMAScript 2015)" - ], - [ - "Packages/User/Node.sublime-build", - "ES5(ECMAScript 2009)" - ], - [ - "Packages/User/php.sublime-build", - "" - ] - ], - [ - "Packages/User/Node.sublime-build", - "" - ] - ], - [ - [ - [ - "Packages/User/Dart 2.2.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go install" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run with Test Arguments" - ], - [ - "Packages/User/php.sublime-build", - "" - ] - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run" - ] - ], - [ - [ - [ - "Packages/User/Dart 2.2.sublime-build", - "" - ], - [ - "Packages/User/erlang.sublime-build", - "" - ], - [ - "Packages/User/erlang.sublime-build", - "Run ..." - ], - [ - "Packages/User/GoLang.sublime-build", - "" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go build Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release Window GUI App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go Release App" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go install" - ], - [ - "Packages/User/GoLang.sublime-build", - "Go run with Test Arguments" - ], - [ - "Packages/User/php.sublime-build", - "" - ] - ], - [ - "Packages/User/erlang.sublime-build", - "Run ..." - ] - ] - ], - "build_varint": "", - "command_palette": - { - "height": 0.0, - "last_filter": "", - "selected_items": - [ - [ - "git pu", - "Git: Push Current Branch" - ], - [ - "git add", - "Git: Add All" - ], - [ - "save", - "Project: Save As" - ], - [ - "edi", - "Project: Edit Project" - ], - [ - "push", - "Git: Push Current Branch" - ], - [ - "com", - "Git: Commit" - ], - [ - "add", - "Git: Add All" - ], - [ - "jon snip", - "Snippet: json - Snippet" - ], - [ - "mark", - "Set Syntax: Markdown" - ], - [ - "json", - "Set Syntax: JSON" - ], - [ - "commit", - "Git: Commit" - ], - [ - "comm", - "Git: Commit" - ], - [ - "lsp:", - "LSP: Disable Language Server Globally" - ], - [ - "scope", - "Snippet: scope - Scope test Snippet" - ], - [ - "lsp", - "Preferences: LSP Settings" - ], - [ - "cpp", - "Snippet: cpp - Snippet" - ], - [ - "syntax ", - "Set Syntax: C++" - ], - [ - "rename", - "Rename File" - ], - [ - "gui snip", - "Snippet: guile - Snippet" - ], - [ - "git push", - "Git: Push Current Branch" - ], - [ - "markdown", - "Set Syntax: Markdown" - ], - [ - "gu", - "Snippet: guile - Snippet" - ], - [ - "make", - "Snippet: makefile - Snippet" - ], - [ - "package", - "Package Control: Enable Package" - ], - [ - "guile", - "Snippet: guile - Snippet" - ], - [ - "ren", - "Rename File" - ], - [ - "perl", - "Snippet: perl - Snippet" - ], - [ - "makefi", - "Set Syntax: Makefile" - ], - [ - "code", - "Snippet: Code - ZenCode block Snippet" - ], - [ - "ori", - "Preferences: Origami Settings" - ], - [ - "bash", - "Set Syntax: Bash" - ], - [ - "git comm", - "Git: Commit" - ], - [ - "gita", - "Git: Add All" - ], - [ - "History", - "History: Toggle Inline Diff" - ], - [ - "key", - "Preferences: Key Bindings" - ], - [ - "git com", - "Git: Commit" - ], - [ - "git ad", - "Git: Add All" - ], - [ - "min", - "View: Toggle Minimap" - ], - [ - "origam", - "Preferences: Origami Settings" - ], - [ - "origa", - "Preferences: Origami Settings" - ], - [ - "pack", - "Package Control: Enable Package" - ], - [ - "origami setting", - "Preferences: Origami Settings" - ], - [ - "setting", - "Preferences: Settings" - ], - [ - "cod", - "Snippet: Code - ZenCode block Snippet" - ], - [ - "lsp ", - "LSP: Disable Language Server Globally" - ], - [ - "git", - "Git: Commit" - ], - [ - "git a", - "Git: Add All" - ], - [ - "rena", - "Rename File" - ], - [ - "git:", - "Git: Push" - ], - [ - "gits", - "Git: Status" - ], - [ - "py", - "Snippet: Py - ZenCode block Snippet" - ], - [ - "git stat", - "Git: Status" - ], - [ - "m", - "Set Syntax: Markdown" - ], - [ - "marK", - "Set Syntax: Markdown" - ], - [ - "envi", - "Table Editor: Enable for current view" - ], - [ - "lua", - "Set Syntax: Lua" - ], - [ - "pcep", - "Package Control: Enable Package" - ], - [ - "dis", - "Package Control: Disable Package" - ], - [ - "LSP log", - "LSP: Toggle Log Panel" - ], - [ - "enab", - "Table Editor: Enable for current view" - ], - [ - "LSP", - "LSP: Troubleshoot Server" - ], - [ - "LSP pow", - "Preferences: LSP-PowerShellEditorServices Settings" - ], - [ - "LSP:", - "LSP: Troubleshoot Server" - ], - [ - "LSP: ", - "LSP: Troubleshoot Server" - ], - [ - "lsp: ", - "LSP: Enable Language Server in Project" - ], - [ - "LSP Power", - "Preferences: LSP-PowerShellEditorServices Settings" - ], - [ - "j", - "Set Syntax: JavaScript" - ], - [ - "html ", - "Set Syntax: HTML" - ], - [ - "palin", - "Set Syntax: Plain Text" - ], - [ - "lsp py", - "Preferences: LSP-pylsp Settings" - ], - [ - "pci", - "Package Control: Install Package" - ], - [ - "envie", - "Table Editor: Enable for current view" - ], - [ - "text", - "Set Syntax: Plain Text" - ], - [ - "git log", - "Git: Log All" - ], - [ - "git ", - "Git: Graph All" - ], - [ - "git show ", - "Git: Show Commit By Hash" - ], - [ - "git status", - "Git: Status" - ], - [ - "status", - "Git: Status" - ], - [ - "ev", - "Table Editor: Enable for current view" - ], - [ - "sort", - "Sort Lines" - ], - [ - "pcip", - "Package Control: Install Package" - ], - [ - "ad", - "Git: Add All" - ], - [ - "disable", - "Package Control: Disable Package" - ], - [ - "enablepa", - "Package Control: Enable Package" - ], - [ - "hex", - "HexViewer: Toggle Hex View" - ], - [ - "pw", - "Preferences: Browse Packages" - ], - [ - "edit", - "Project: Edit Project" - ], - [ - "scopt", - "Snippet: scope - Scope test Snippet" - ], - [ - "Package", - "Package Control: Advanced Install Package" - ], - [ - "ins", - "Package Control: Install Package" - ], - [ - "enable p", - "Package Control: Enable Package" - ], - [ - "renam", - "Rename File" - ], - [ - "upg", - "Package Control: Upgrade Package" - ], - [ - "remove", - "Package Control: Remove Package" - ], - [ - "Install Package", - "Package Control: Install Package" - ], - [ - "Add Repository", - "Package Control: Add Repository" - ], - [ - "insta", - "Package Control: Install Package" - ], - [ - "remov", - "Package Control: Remove Package" - ], - [ - "disa", - "Package Control: Disable Package" - ], - [ - "sco", - "Snippet: scope - Scope test Snippet" - ], - [ - "pow", - "Set Syntax: PowerShell" - ], - [ - "enable ", - "Package Control: Enable Package" - ], - [ - "enable", - "Table Editor: Enable for current view" - ], - [ - "env", - "Table Editor: Enable for current view" - ], - [ - "ed", - "Project: Edit Project" - ], - [ - "install", - "Package Control: Install Package" - ], - [ - "c", - "Git: Commit" - ], - [ - "previe", - "Markdown Preview: Preview in Browser" - ], - [ - "editserver", - "SFTP: Edit Server…" - ], - [ - "sftp", - "SFTP: Browse Server…" - ], - [ - "ftpremot", - "SFTP: Browse Remote…" - ], - [ - "pus", - "Git: Push Current Branch" - ], - [ - "c++", - "Set Syntax: C++" - ], - [ - "syntaxcpp", - "Set Syntax: TypeScript" - ], - [ - "update pack", - "Package Control: Upgrade/Overwrite All Packages" - ], - [ - "plug", - "Plugin Development: Profile Events" - ], - [ - "add folder", - "Project: Add Folder" - ], - [ - "xml", - "Set Syntax: XML" - ], - [ - "ms", - "Set Syntax: MSBuild" - ], - [ - "mar", - "Set Syntax: Markdown" - ], - [ - "rst", - "Set Syntax: reStructuredText" - ], - [ - "sh", - "Set Syntax: CMake C Header" - ], - [ - "antlr", - "Set Syntax: Antlr" - ], - [ - "markdwn", - "Set Syntax: Markdown" - ], - [ - "instac", - "Package Control: Install Package" - ], - [ - "permute", - "Permute Lines: Unique" - ], - [ - "cma", - "Set Syntax: CMake" - ], - [ - "msbuild", - "Set Syntax: MSBuild" - ] - ], - "width": 0.0 - }, - "console": - { - "height": 164.0, - "history": - [ - "(1,2).__class__", - "(1,2).className", - "(1,2).class", - "type (1,2)", - "typeof (1,2)", - "(1,2)", - "typeof", - "'\\x53'", - "'\\0x53'", - "'0x53'", - "0x53", - "\"ABCD\".rfind(\"Ad\")", - "\"ABCD\".rfind(\"A\")", - "\"ABCD\".rfind", - "\"ABCD\".find", - "\"ABCD\".lfind", - "\"ABCD\".serach", - "import re; re.sub(r'[-_#]',lambda x: '=',\"12345#-——_$%^\")", - "import re; re.sub(r'[\\\\#-_]',lambda x: '=',\"12345#-——_$%^\")", - "import re; re.sub(r'[\\#-_]',lambda x: '=',\"12345#-——_$%^\")", - "import re; re.sub(r'[#-_]',lambda x: '=',\"12345#-——_$%^\")", - "import re; re.sub(r'[#-_]',lambda x: ' ',\"12345#-——_$%^\")", - "import re; re.sub(r'[-_]',lambda x: '=',\"12345#-——_$%^\")", - "import re; re.sub(r'[#-_]',lambda x: '=',\"12345#-——_$%^\")", - "import re; re.sub(r'[#-_]',' ',\"12345#-——_$%^\")", - "import re; re.replace(\"12345#-——_$%^\",r'[#-_]',' ')", - "\"12345#-——_$%^\".replace(r'#',' ')", - "\"12345#-——_$%^\".replace(r'[#-_]',' ')", - "\"12345#-——_$%^\".replace('[#-_]',' ')", - "\"12345#-——_$%^\".replace('[#$%-_]',' ')", - "\"12345#-——_$%^\".replace('[#$%-_\\\\^&*()~@!{}\\\\/]',' ')", - "\"12345#-——_$%^\".replace('[#$%-_\\^&*()~@!{}\\\\/]',' ')", - "\"12345#-——_$%^\".replace('[#$%-_^&*()~@!{}\\\\/]',' ')", - "\"12345\"[1:]", - "not 1 or 1", - "not 1 or 0", - "isinstance(b\"a\", bytes)", - "type(b\"a\")", - "b\"ABC\".decode", - "\"ABC\".decode", - "a.a", - "a and \"BCA\"", - "a=0", - "a and \"ABC\"", - "a = 1", - "hasattr(map,'ac')", - "map['ac']", - "map['a']", - "map.a", - "for it in map: print(it)", - "map = {\"a\":1, \"b\":2}", - "map = {a:1, b:2}", - "for it in range(0,2): print(it)", - "for it in range(0,2): it", - "range(0,2)", - "0..2", - "du > datetime.timedelta(microseconds=300)", - "du", - "du = datetime.datetime.now() - dt", - "du", - "du > datetime.timedelta(microseconds=300)", - "datetime.timedelta(microseconds=300)", - "datetime.timedelta(10)", - "datetime.timedelta", - "du.total_seconds()", - "dir(du)", - "type(du)", - "du.type()", - "du.microseconds", - "du", - "du = dt - datetime.datetime.now()", - "du", - "du = dt - datetime.datetime.now()", - "dt - datetime.datetime.now()", - "dt", - "dt = datetime.datetime.now()", - "datetime.datetime.now()", - "dir(datetime.datetime.now)", - "dir(datetime.datetime)", - "dir(datetime.date)", - "datetime.date.now", - "datetime.time.now", - "datetime.time", - "dir(datetime)", - "datetime.now", - "datetime", - "import datetime", - "datetime", - "1 != 2", - "1 != 1", - "1 <> 1", - "[(1,2),(3,4),(5,6)][2] == ((3,4))", - "[(1,2),(3,4),(5,6)][1] == ((3,4))", - "[(1,2),(3,4),(5,6)].index((3,4))", - "[(1,2),(3,4),(5,6)].find((3,4))", - "((1,2),(3,4),(5,6)).find((3,4))", - "((1,2),(3,4),(5,6).find((3,4))", - "9 < 10 < 10 ", - "9 < 10 < 11 ", - "10 between (9,11)", - "not isinstance(\"AB\",str)", - "isinstance(\"AB\",str)", - "\"123456\"[-20]", - "\"123456\"[-2]", - "sublime.dctxmenu_temp_data_test = \"ABC\"", - "sublime.dctxmenu_temp_data", - "os.path.isfile(\"c:/codin\")", - "os.path.isfile(\"c:/coding\")", - "os.path.isfile", - "os.path.exists(\"c:/coding\")", - "os.path.exists(\"c:/md\")", - "os.path.exists", - "os.path", - "os", - "import io.path", - "import path", - "\"1 - 2\".split(' - ')", - "\"1 - 2\".split", - "\"1234\".rfind(\"5\")", - "\"1234\".rfind(\"1\")", - "\"1234\".rfind", - "\"1234\".left", - "\"1234\".indexof", - "int(\"1\")", - "int(\"1 ad\")", - "len((1,2,3))", - "sublime.active_window().active_view()", - "sublime.active_window()" - ] - }, - "distraction_free": - { - "menu_visible": true, - "show_minimap": false, - "show_open_files": false, - "show_tabs": false, - "side_bar_visible": false, - "status_bar_visible": false - }, - "expanded_folders": - [ - "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/Packages/Origami_PR" - ], - "file_history": - [ - "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/Packages/Origami_PR/README.md", - "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/Packages/Origami_PR/Origami.sublime-project", - "/C/download/pl/make-4.3/src/guile.c", - "/C/download/pl/make-4.4/src/job.c", - "/C/download/pl/guile-3.0.9/libguile/load.c", - "/C/coding/md-code/erlang/port/hi.scm", - "/C/coding/md-code/erlang/port/EMakefile", - "/C/dl/pl/guile-3.0.9/Makefile", - "/C/coding/md-code/erlang/port/Makefile", - "/C/coding/md/opendocs/guile.r5rs.info.md", - "/C/coding/md/opendocs/guile.info.3.0.9.md", - "/C/coding/md/opendocs/make.info.4.4.md", - "/C/coding/md/opendocs/lisp.md", - "/C/coding/md/opendocs/Makefile.md", - "/C/coding/md/opendocs/cpl.md", - "/C/coding/md/opendocs/bash.5.1.md", - "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/Packages/User/json.sublime-snippet", - "/C/coding/md/opendocs/readme.md", - "/C/coding/md/opendocs/TS.md", - "/C/dl/pl/guile-3.0.9/libguile/Makefile", - "/C/dl/pl/hyperpolyglot.org_shell.html", - "/C/download/pl/guile-3.0.9/examples/sym.md", - "/C/download/pl/guile-3.0.9/NEWS", - "/C/download/pl/guile-3.0.9/module/ice-9/boot-9.scm", - "/C/download/pl/guile-3.0.9/doc/ref/api-evaluation.texi", - "/C/download/pl/make-4.4/src/output.c", - "/C/download/pl/make-4.4/src/signame.c", - "/C/download/pl/make-4.4/src/gmk-default.scm", - "/C/download/pl/guile-3.0.9/examples/flags.md", - "/C/download/pl/make-4.4/src/gmk-default.h", - "/C/download/pl/make-4.4/src/gnumake.h", - "/C/download/pl/make-4.4/src/loadapi.c", - "/C/download/pl/make-4.4/build_w32.bat", - "/C/vcpkg/mingw.bat", - "/C/mingw/include/guile/3.0/libguile/eval.h", - "/C/mingw/include/guile/3.0/readline.h", - "/C/mingw/include/guile/3.0/libguile.h", - "/C/download/pl/guile-3.0.9/examples/Makefile.am", - "/C/download/pl/guile-3.0.9/libguile.h", - "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/Packages/User/cpp.sublime-snippet", - "/C/download/pl/make-4.4/Makefile", - "/C/download/pl/make-4.4/configure", - "/C/download/pl/guile-3.0.9/doc/ref/tour.texi", - "/C/download/pl/make-4.4/configure.ac", - "/C/download/pl/guile-3.0.9/libguile/numbers.h", - "/C/download/pl/make-4.4/src/makeint.h", - "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/Packages/User/cpp-template.sublime-snippet", - "/C/coding/md/opendocs/ps.md", - "/C/coding/md-code/erlang/port/port_test.erl", - "/C/download/pl/make-4.4/lib/Makefile.am", - "/C/download/pl/guile-3.0.9/guile-readline/ice-9/readline.scm", - "/C/download/pl/guile-3.0.9/prebuilt/32-bit-big-endian/ice-9/psyntax-pp.go", - "/C/download/pl/guile-3.0.9/doc/ref/guile.info-11", - "/C/download/pl/guile-3.0.9/doc/ref/guile.info-9", - "/C/download/pl/guile-3.0.9/doc/ref/guile.info-10", - "/C/download/pl/guile-3.0.9/doc/ref/guile.info-8", - "/C/download/pl/guile-3.0.9/doc/ref/guile.info-7", - "/C/download/pl/guile-3.0.9/doc/ref/guile.info-6", - "/C/download/pl/guile-3.0.9/doc/ref/guile.info-5", - "/C/download/pl/guile-3.0.9/doc/ref/guile.info-4", - "/C/download/pl/guile-3.0.9/doc/ref/guile.info-3", - "/C/download/pl/guile-3.0.9/doc/ref/guile.info-2", - "/C/download/pl/guile-3.0.9/doc/ref/guile.info-1", - "/C/vcpkg/downloads/tools/msys2/msys64/etc/pacman.conf", - "/C/vcpkg/downloads/tools/msys2/msys64/etc/pacman.d/mirrorlist.mingw64", - "/C/vcpkg/downloads/tools/msys2/msys64/usr/lib/guile/3.0/ccache/texinfo.go", - "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/Packages/User/guile.sublime-snippet", - "/C/download/pl/make-4.4/ChangeLog", - "/C/download/pl/make-4.3/tests/scripts/features/jobserver", - "/C/download/pl/make-4.3/build_w32.bat", - "/C/coding/md-code/erlang/port/ModuleA/Makefile", - "/C/coding/md-code/erlang/port/ModuleBMakefile", - "/C/coding/md-code/erlang/port/foo.mk", - "/C/coding/md-code/erlang/port/makefile.mk", - "/C/Python310/Python-3.10.2/Tools/peg_generator/pegen/parser_generator.py", - "/C/download/pl/make-4.3/tests/scripts/features/parallelism", - "/C/download/pl/make-4.4/doc/make.info-3", - "/C/download/pl/make-4.4/doc/make.info-2", - "/C/download/pl/make-4.3/doc/make.info.md", - "/C/nvm/node_modules/watch/cli.js", - "/C/nvm/node_modules/watch/main.js", - "/C/nodejs/node_modules/.bin/watch.cmd", - "/C/dl/VJBkJR4WXye.m3u8", - "/C/coding/md-code/erlang/port/port.h", - "/C/coding/md-code/erlang/port/port.c", - "/C/coding/md-code/erlang/port/makedebug.md", - "/C/coding/md-code/erlang/port/implicit.md", - "/C/download/pl/make-4.3/tests/scripts/variables/MAKE_RESTARTS", - "/C/coding/md-code/erlang/port/watchit.bat", - "/C/coding/md-code/erlang/port/Makefile.mk", - "/C/coding/md-code/erlang/port/some.pl", - "/C/download/pl/make-4.3/tests/run_make_tests.pl", - "/C/download/pl/make-4.3/tests/test_driver.pl", - "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/Packages/User/perl.sublime-snippet", - "/C/download/pl/make-4.3/tests/scripts/options/symlinks", - "/C/download/pl/make-4.3/tests/scripts/features/patspecific_vars", - "/C/download/pl/make-4.3/tests/scripts/features/conditionals", - "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/Packages/RunSnippet/material/Programming-in-Lua.md", - "/C/download/pl/make-4.3/tests/scripts/test_template", - "/C/download/pl/make-4.3/Basic.mk", - "/C/download/pl/make-4.3/tests/run_make_tests.bat", - "/C/download/pl/make-4.3/doc/make.texi", - "/C/download/pl/make-4.3/ChangeLog", - "/C/download/pl/make-4.3/NEWS", - "/C/download/pl/make-4.3/doc/make.info-2", - "/C/download/pl/make-4.3/doc/make.info-1", - "/C/download/pl/make-4.3/README", - "/C/download/pl/make-4.3/README.W32", - "/C/download/pl/make-4.3/Makefile", - "/C/download/pl/make-4.3/tests/README", - "/C/coding/md-code/erlang/port/ebin/Makefile", - "/C/coding/md-code/erlang/port/index.html", - "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/Packages/User/py.sublime-snippet", - "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/Packages/User/makefile.sublime-snippet", - "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/Packages/User/code.sublime-snippet", - "/C/coding/md-code/erlang/port/Makefile.sh", - "/C/coding/md-code/erlang/port/Makefile.echo", - "/C/coding/md-code/erlang/port/Makefile.txt", - "/C/coding/md-code/erlang/port/ei.erl", - "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/unpacked/Origami/origami.py", - "/C/coding/md-code/erlang/port/foobar", - "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/unpacked/Origami/test.py", - "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/Packages/RunSnippet/ColumnsOps.py", - "/C/coding/md/opendocs/Python.md", - "/C/coding/md-code/coding/__main__.py", - "/C/Python310/Python-3.10.2/Doc/tutorial/inputoutput.rst", - "/C/coding/md-code/coding/coding.lua", - "/C/Users/OCEAN/AppData/Roaming/Sublime Text 3/Packages/RunSnippet/UnicodeSymbols.py" - ], - "find": - { - "height": 27.0 - }, - "find_in_files": - { - "height": 104.0, - "where_history": - [ - ] - }, - "find_state": - { - "case_sensitive": false, - "find_history": - [ - "fraction_verticcal", - "height", - "fraction" - ], - "highlight": false, - "in_selection": false, - "preserve_case": false, - "regex": false, - "replace_history": - [ - ], - "reverse": false, - "scrollbar_highlights": true, - "show_context": true, - "use_buffer2": true, - "use_gitignore": true, - "whole_word": false, - "wrap": true - }, - "groups": - [ - { - "sheets": - [ - { - "buffer": 0, - "file": "origami.py", - "semi_transient": false, - "settings": - { - "buffer_size": 30916, - "regions": - { - }, - "selection": - [ - [ - 12252, - 12252 - ] - ], - "settings": - { - "incomplete_sync": null, - "lsp_uri": "file:///C:/Users/OCEAN/AppData/Roaming/Sublime%20Text%203/Packages/Origami_PR/origami.py", - "origin_encoding": "ASCII", - "remote_loading": false, - "synced": false, - "syntax": "Packages/Python/Python.sublime-syntax", - "tab_size": 4, - "translate_tabs_to_spaces": true - }, - "translation.x": 0.0, - "translation.y": 5621.0, - "zoom_level": 1.0 - }, - "stack_index": 1, - "stack_multiselect": false, - "type": "text" - }, - { - "buffer": 1, - "file": ".git/config", - "selected": true, - "semi_transient": false, - "settings": - { - "buffer_size": 391, - "regions": - { - }, - "selection": - [ - [ - 283, - 283 - ] - ], - "settings": - { - "incomplete_sync": null, - "lsp_uri": "file:///C:/Users/OCEAN/AppData/Roaming/Sublime%20Text%203/Packages/Origami_PR/.git/config", - "origin_encoding": "ASCII", - "remote_loading": false, - "synced": false, - "syntax": "Packages/Git Formats/Git Config.sublime-syntax", - "tab_size": 4, - "translate_tabs_to_spaces": false - }, - "translation.x": 0.0, - "translation.y": 0.0, - "zoom_level": 1.0 - }, - "stack_index": 0, - "stack_multiselect": false, - "type": "text" - }, - { - "buffer": 2, - "file": "Origami_PR.sublime-project", - "semi_transient": false, - "settings": - { - "buffer_size": 46, - "regions": - { - }, - "selection": - [ - [ - 4, - 4 - ] - ], - "settings": - { - "incomplete_sync": null, - "lsp_uri": "file:///C:/Users/OCEAN/AppData/Roaming/Sublime%20Text%203/Packages/Origami_PR/Origami_PR.sublime-project", - "origin_encoding": "ASCII", - "remote_loading": false, - "synced": false, - "syntax": "Packages/JSON/JSON.sublime-syntax", - "tab_size": 4, - "translate_tabs_to_spaces": false - }, - "translation.x": 0.0, - "translation.y": 0.0, - "zoom_level": 1.0 - }, - "stack_index": 2, - "stack_multiselect": false, - "type": "text" - } - ] - }, - { - "sheets": - [ - { - "buffer": 3, - "file": "README.md", - "selected": true, - "semi_transient": false, - "settings": - { - "buffer_size": 4495, - "regions": - { - }, - "selection": - [ - [ - 913, - 940 - ] - ], - "settings": - { - "auto_complete_triggers": - [ - { - "characters": "<", - "selector": "text.html, text.xml" - }, - { - "rhs_empty": true, - "selector": "punctuation.accessor" - } - ], - "incomplete_sync": null, - "lsp_uri": "file:///C:/Users/OCEAN/AppData/Roaming/Sublime%20Text%203/Packages/Origami_PR/README.md", - "remote_loading": false, - "sftp_duplicate_views": 1, - "synced": false, - "syntax": "Packages/Markdown/Markdown.sublime-syntax" - }, - "translation.x": 0.0, - "translation.y": 0.0, - "zoom_level": 1.0 - }, - "stack_index": 0, - "stack_multiselect": false, - "type": "text" - } - ] - }, - { - "sheets": - [ - { - "buffer": 4, - "semi_transient": false, - "settings": - { - "buffer_size": 0, - "regions": - { - }, - "selection": - [ - [ - 0, - 0 - ] - ], - "settings": - { - "incomplete_sync": null, - "lsp_uri": "buffer://sublime/355", - "remote_loading": false, - "synced": false, - "syntax": "Packages/Text/Plain text.tmLanguage" - }, - "translation.x": 0.0, - "translation.y": 0.0, - "zoom_level": 1.0 - }, - "stack_index": 1, - "stack_multiselect": false, - "type": "text" - }, - { - "buffer": 5, - "selected": true, - "semi_transient": false, - "settings": - { - "buffer_size": 377, - "regions": - { - }, - "selection": - [ - [ - 377, - 377 - ] - ], - "settings": - { - "__vi_external_disable": true, - "auto_complete": false, - "auto_complete_commit_on_tab": false, - "bracket_highlighter.clone_locations": - { - }, - "bracket_highlighter.ignore": true, - "color_scheme": "Terminus.hidden-color-scheme", - "draw_centered": false, - "draw_indent_guides": false, - "draw_unicode_white_space": false, - "draw_white_space": "none", - "gutter": false, - "highlight_line": false, - "incomplete_sync": null, - "is_widget": true, - "lsp_uri": "buffer://sublime/363", - "result_base_dir": "C:\\Users\\OCEAN\\AppData\\Roaming\\Sublime Text 3\\unpacked\\Origami", - "result_file_regex": null, - "result_line_regex": null, - "rulers": - [ - 80, - 500 - ], - "scroll_past_end": true, - "syntax": "Packages/Text/Plain text.tmLanguage", - "terminus.highlight_counter": 573, - "terminus_view": true, - "terminus_view.args": - { - "auto_close": true, - "cancellable": false, - "cmd": - [ - "powershell.exe" - ], - "cwd": "C:\\Users\\OCEAN\\AppData\\Roaming\\Sublime Text 3\\unpacked\\Origami", - "default_title": "PowerShell", - "env": - { - "TERMINUS_SUBLIME": "1", - "TERM_PROGRAM": "Terminus-Sublime" - }, - "file_regex": null, - "line_regex": null, - "panel_name": "Terminus", - "show_in_panel": null, - "tag": null, - "timeit": false, - "title": null - }, - "terminus_view.cancellable": false, - "terminus_view.key.ctrl+k": true, - "terminus_view.key.ctrl+p": true, - "terminus_view.natural_keyboard": true, - "terminus_view.tag": null, - "terminus_view.viewport_y": 2.0, - "word_wrap": false - }, - "translation.x": 0.0, - "translation.y": 2.0, - "zoom_level": 1.0 - }, - "stack_index": 0, - "stack_multiselect": false, - "type": "text" - } - ] - } - ], - "incremental_find": - { - "height": 27.0 - }, - "input": - { - "height": 153.0 - }, - "layout": - { - "cells": - [ - [ - 0, - 0, - 1, - 2 - ], - [ - 1, - 0, - 2, - 1 - ], - [ - 1, - 1, - 2, - 2 - ] - ], - "cols": - [ - 0.0, - 0.55, - 1.0 - ], - "rows": - [ - 0.0, - 0.65, - 1.0 - ] - }, - "menu_visible": true, - "output.9o://9o": - { - "height": 109.0 - }, - "output.GoSublime-output": - { - "height": 97.0 - }, - "output.GoSublime/HUD": - { - "height": 0.0 - }, - "output.LSP Log Panel": - { - "height": 132.0 - }, - "output.MarGo-output": - { - "height": 97.0 - }, - "output.SFTP": - { - "height": 206.0 - }, - "output.TestPlugin": - { - "height": 102.0 - }, - "output.TestPlugin_OutputPanel": - { - "height": 329.0 - }, - "output.diagnostics": - { - "height": 324.0 - }, - "output.doc": - { - "height": 103.0 - }, - "output.exec": - { - "height": 328.0 - }, - "output.find_results": - { - "height": 0.0 - }, - "output.git": - { - "height": 118.0 - }, - "output.hex_viewer_inspector": - { - "height": 97.0 - }, - "output.language servers": - { - "height": 383.0 - }, - "output.markdown": - { - "height": 97.0 - }, - "output.mdpopups": - { - "height": 0.0 - }, - "output.mdpopups-dummy": - { - "height": 0.0 - }, - "output.references": - { - "height": 346.0 - }, - "output.sftp": - { - "height": 127.0 - }, - "output.unsaved_changes": - { - "height": 97.0 - }, - "pinned_build_system": "", - "project": "Origami_PR.sublime-project", - "replace": - { - "height": 50.0 - }, - "save_all_on_build": true, - "select_file": - { - "height": 0.0, - "last_filter": "", - "selected_items": - [ - [ - "read", - "README.md" - ], - [ - "o", - "origami.py" - ], - [ - "cpp.sni", - "User\\cpp.sublime-snippet" - ], - [ - "buildw32", - "make-4.4\\build_w32.bat" - ], - [ - "src/signame.c ", - "make-4.4\\src\\signame.c" - ], - [ - "makefilesnip", - "User\\makefile.sublime-snippet" - ], - [ - "libguile/numbers.h", - "guile-3.0.9\\libguile\\numbers.h" - ], - [ - "src/makeint.h", - "make-4.4\\src\\makeint.h" - ], - [ - "ps.md", - "md\\opendocs\\ps.md" - ], - [ - "lisp.md", - "md\\opendocs\\lisp.md" - ], - [ - "makesnip", - "User\\makefile.sublime-snippet" - ], - [ - "makefile.sni", - "User\\makefile.sublime-snippet" - ], - [ - "tests/scripts/variables/MAKE_RESTARTS", - "make-4.3\\tests\\scripts\\variables\\MAKE_RESTARTS" - ], - [ - "bash", - "md\\opendocs\\bash.5.1.md" - ], - [ - "ebin/m", - "port\\ebin\\Makefile" - ], - [ - "ebin/make", - "port\\ebin\\Makefile" - ], - [ - "cpl", - "md\\opendocs\\cpl.md" - ], - [ - "makefile.md", - "md\\opendocs\\Makefile.md" - ], - [ - "portemake", - "port\\EMakefile" - ], - [ - "make", - "port\\Makefile" - ], - [ - "lib/os.rst", - "Python-3.10.2\\Doc\\library\\os.rst" - ], - [ - "tutorial\\inputoutput.rst", - "Python-3.10.2\\Doc\\tutorial\\inputoutput.rst" - ], - [ - "pyt", - "md\\Python.md" - ], - [ - "py", - "md\\Python.md" - ], - [ - "pyth", - "md\\PythonRef.md" - ], - [ - "run", - "RunSnippet\\RunSnippet.py" - ], - [ - "math", - "md\\Maths.md" - ], - [ - "blene", - "md\\OpenToonz\\Blender.md" - ], - [ - "unreal", - "md\\OpenGL\\UnrealEngine.md" - ], - [ - "git", - "md\\git.md" - ], - [ - "ffmp", - "md\\OpenToonz\\ffmpeg.md" - ], - [ - "forex", - "md\\forex.md" - ], - [ - "mat", - "md\\Maths.md" - ], - [ - "android", - "md\\Android.md" - ], - [ - "rsa", - "md\\rsa\\RSA.md" - ], - [ - "linux", - "md\\Linux.md" - ], - [ - "git ", - "md\\git.md" - ], - [ - "make.md", - "md\\OpenGL\\Makefile.md" - ], - [ - "lua-5.1/lobject", - "lua-5.1\\lobject.h" - ], - [ - "lua-5.1/lfunc.", - "lua-5.1\\lfunc.h" - ], - [ - "es6", - "md\\webpack\\ES6.md" - ], - [ - "lua-5.1/ltable.", - "lua-5.1\\ltable.h" - ], - [ - "lua.h", - "lua-5.1\\lua.h" - ], - [ - "lualib", - "lua-5.1\\lualib.h" - ], - [ - "Makefile", - "lua-5.1\\Makefile" - ], - [ - "lua-5.1/lparser.c", - "lua-5.1\\lparser.c" - ], - [ - "lua-5.1/lcode.c", - "lua-5.1\\lopcodes.c" - ], - [ - "lparser.c", - "lua-5.1\\lparser.c" - ], - [ - "uni", - "md\\uni-symbol.md" - ], - [ - "coding.lua", - "coding\\coding.lua" - ], - [ - "react", - "md\\webpack\\React.md" - ], - [ - "node", - "md\\webpack\\Node.md" - ], - [ - "vue", - "md\\c-daystep\\readme_vue.md" - ], - [ - "rust.", - "md\\Rust.md" - ], - [ - "System.Mana", - "PowerShell\\src\\System.Management.Automation\\System.Management.Automation.csproj" - ], - [ - "rust", - "md\\Rust.md" - ], - [ - "cshar", - "md\\csharp.md" - ], - [ - "cloj", - "md\\clojure.md" - ], - [ - "cloju", - "md\\clojure.md" - ], - [ - "gitmd", - "md\\git.md" - ], - [ - "coding.js", - "coding\\coding.js" - ], - [ - "visu", - "md\\writing\\listing-file\\Visual C++ 那个隐藏的多面手.md" - ], - [ - "git.md", - "md\\git.md" - ], - [ - "unisym", - "md\\uni-symbol.md" - ], - [ - "mpeg.md", - "md\\OpenToonz\\ffmpeg.md" - ], - [ - "un", - "md\\uni-symbol.md" - ], - [ - "CMakeLists", - "Python-3.10.2\\externals\\zlib-1.2.11\\CMakeLists.txt" - ], - [ - "cmake", - "antlr-4.10\\runtime\\Cpp\\demo\\CMakeLists.txt" - ], - [ - "re.rst", - "Python-3.10.2\\Doc\\library\\re.rst" - ], - [ - "stdtyp", - "Python-3.10.2\\Doc\\library\\stdtypes.rst" - ], - [ - "markdow", - "md\\markdown.md" - ], - [ - "sub", - "md\\sublime.md" - ], - [ - "venv/", - "Python-3.10.2\\Lib\\venv\\__main__.py" - ], - [ - "pyvenv.cfg", - "tutorial-env\\pyvenv.cfg" - ], - [ - "peps/0405.txt", - "peps\\pep-0405.txt" - ], - [ - "venv.rst", - "Python-3.10.2\\Doc\\tutorial\\venv.rst" - ], - [ - "User/RunSnippet.sublime-settings", - "User\\RunSnippet.sublime-settings" - ], - [ - "sublime.md", - "md\\sublime.md" - ], - [ - "builtin.rst", - "Python-3.10.2\\Doc\\library\\builtins.rst" - ], - [ - "lua", - "md\\lua.md" - ], - [ - "material/bash 5.1.md", - "RunSnippet\\material\\bash.5.1.md" - ], - [ - "run redme", - "RunSnippet\\readme.md" - ], - [ - "setting", - "RunSnippet\\Settings.py" - ], - [ - "jumpto", - "RunSnippet\\JumpTo.py" - ], - [ - "runsett", - "User\\RunSnippet.sublime-settings" - ], - [ - "csharp", - "md\\csharp.md" - ], - [ - "ts.md", - "md\\webpack\\TS.md" - ], - [ - "RunSnippet.sublime-settings", - "User\\RunSnippet.sublime-settings" - ], - [ - "linuxbibl", - "RunSnippet\\material\\linux_cli_script_bible.md" - ], - [ - "runreadme", - "RunSnippet\\readme.md" - ], - [ - "runsnippet", - "User\\RunSnippet.sublime-settings" - ], - [ - "Package Control.sublime-settings", - "User\\Package Control.sublime-settings" - ], - [ - "sublime", - "md\\sublime.md" - ], - [ - "subli", - "Lib\\python33\\sublime.py" - ], - [ - "plugin", - "tutorial-env\\Lib\\site-packages\\pygments\\plugin.py" - ], - [ - "ps.", - "md\\ps.md" - ], - [ - "sublime.", - "md\\sublime.md" - ], - [ - "sublimepy", - "Lib\\python38\\sublime.py" - ], - [ - "about_Foreach", - "PowerShell-Docs\\reference\\7.0\\Microsoft.PowerShell.Core\\About\\about_Foreach.md" - ], - [ - "ForEach-Object", - "PowerShell-Docs\\reference\\7.3\\Microsoft.PowerShell.Core\\ForEach-Object.md" - ], - [ - "Microsoft.PowerShell.Core/ForEach-Object.md", - "PowerShell-Docs\\reference\\7.0\\Microsoft.PowerShell.Core\\ForEach-Object.md" - ], - [ - "sent", - "RunSnippet\\SendTo.py" - ], - [ - "runsnp", - "RunSnippet\\RunSnippet.py" - ], - [ - "runrea", - "RunSnippet\\readme.md" - ], - [ - "python", - "md\\Python.md" - ], - [ - "sublim", - "md\\sublime.md" - ], - [ - "runread", - "RunSnippet\\readme.md" - ], - [ - "path.rst", - "Python-3.10.2\\Doc\\library\\os.path.rst" - ], - [ - "io.rst", - "Python-3.10.2\\Doc\\library\\io.rst" - ], - [ - "runke", - "RunSnippet\\Default.sublime-keymap" - ], - [ - "run context", - "RunSnippet\\Context.sublime-menu" - ], - [ - "sublimepl", - "Lib\\python33\\sublime_plugin.py" - ], - [ - "library/re.rst", - "Python-3.10.2\\Doc\\library\\re.rst" - ], - [ - "howto/regex.rst", - "Python-3.10.2\\Doc\\howto\\regex.rst" - ], - [ - "about_CommonParameters", - "PowerShell-Docs\\reference\\5.1\\Microsoft.PowerShell.Core\\About\\about_CommonParameters.md" - ], - [ - "./Microsoft.PowerShell.Utility/Write-Host.md", - "PowerShell-Docs\\reference\\7.2\\Microsoft.PowerShell.Utility\\Write-Host.md" - ], - [ - "Out-host", - "PowerShell-Docs\\reference\\7.3\\Microsoft.PowerShell.Core\\Out-Host.md" - ], - [ - "Start-ThreadJob", - "PowerShell-Docs\\reference\\7.0\\ThreadJob\\Start-ThreadJob.md" - ], - [ - "Microsoft.PowerShell.Utility/Write-Progress.md", - "PowerShell-Docs\\reference\\5.1\\Microsoft.PowerShell.Utility\\Write-Progress.md" - ], - [ - "vim", - "md\\vim\\vimtutor.md" - ], - [ - "Microsoft.PowerShell.Core/About/about_Splatting.md", - "PowerShell-Docs\\reference\\5.1\\Microsoft.PowerShell.Core\\About\\about_Splatting.md" - ], - [ - "job.md", - "PowerShell-Docs\\reference\\5.1\\Microsoft.PowerShell.Core\\Debug-Job.md" - ], - [ - "learn/deep-dives/write-progress-across-multiple-threads", - "PowerShell-Docs\\reference\\docs-conceptual\\learn\\deep-dives\\write-progress-across-multiple-threads.md" - ], - [ - "unisy", - "md\\uni-symbol.md" - ], - [ - "Write-Progress", - "PowerShell-Docs\\reference\\5.1\\Microsoft.PowerShell.Utility\\Write-Progress.md" - ], - [ - "runreamd", - "RunSnippet\\readme.md" - ], - [ - "ffmpeg", - "md\\OpenToonz\\ffmpeg.md" - ], - [ - "about_Using.md", - "PowerShell-Docs\\reference\\5.1\\Microsoft.PowerShell.Core\\About\\about_Using.md" - ] - ], - "width": 0.0 - }, - "select_project": - { - "height": 500.0, - "last_filter": "", - "selected_items": - [ - [ - "", - "C:\\download\\games\\Godot.sublime-project" - ], - [ - "boo", - "C:\\coding\\md-code\\bootstrap-5.0\\bootstrap.sublime-project" - ] - ], - "width": 380.0 - }, - "select_symbol": - { - "height": 323.0, - "last_filter": "lua_checkver", - "selected_items": - [ - [ - "lua_checkver", - "luaL_checkversion" - ], - [ - "undump", - "luaU_undump" - ], - [ - "luaopen_table", - "luaopen_table" - ], - [ - "Flush", - "Flush" - ], - [ - "flush", - "FlushPipe" - ], - [ - "ParentActivityId", - "ParentActivityId" - ], - [ - "Job", - "Job" - ], - [ - "PSObject", - "PSObject" - ], - [ - "InputStream", - "InputStream" - ], - [ - "CHILD", - "CHILD" - ], - [ - "", - "/" - ], - [ - "fork", - "fork" - ], - [ - "opipe", - "os_pipe" - ], - [ - "SMALL_REQUEST_THRESHOLD", - "SMALL_REQUEST_THRESHOLD" - ], - [ - "FileSystemAccessRule", - "C" - ], - [ - "SetAccessRule", - "SetAccessRule" - ], - [ - "powerShell", - "PowerShell" - ], - [ - "Sddl", - "Sddl" - ], - [ - "ScriptBlock", - "GetScriptBlock" - ], - [ - "pytest_load_initial_conftests", - "pytest_load_initial_conftests" - ], - [ - "PyBuiltin", - "_PyBuiltin_Init" - ], - [ - "PRId64", - "PRId64" - ], - [ - "div", - "div" - ], - [ - "abs", - "abs" - ], - [ - "pyunico", - "PyUnicode_Kind" - ], - [ - "strncmp", - "strncmp" - ], - [ - "SSTATE_", - "SSTATE_NOT_INTERNED" - ], - [ - "objectprint", - "PyObject_Print" - ], - [ - "join_i", - "join_list_unicode" - ], - [ - "setbuil", - "SETBUILTIN" - ], - [ - "pytypeobject", - "PyTypeObject" - ], - [ - "build_cla", - "builtin___build_class__" - ], - [ - "PyObject_Print", - "PyObject_Print" - ], - [ - "setbuiltin", - "SETBUILTIN" - ], - [ - "Object_Print", - "PyObject_Print" - ], - [ - "builtin___build_class__", - "builtin___build_class__" - ], - [ - "func_new", - "func_new" - ], - [ - "__build_class__", - "builtin___build_class__" - ], - [ - "pyidenti", - "_Py_IDENTIFIER" - ], - [ - "_is", - "_is" - ], - [ - "PyCodeObject", - "PyCodeObject" - ], - [ - "pycodeo", - "PyCodeObject" - ], - [ - "PyBytesObject", - "PyBytesObject" - ], - [ - "_Py_HOT_FUNCTION", - "_Py_HOT_FUNCTION" - ], - [ - "_PyEval_EvalFrameDefault", - "_PyEval_EvalFrameDefault" - ], - [ - "_ceval_runtime_state", - "_ceval_runtime_state" - ], - [ - "PyThread_type_lock", - "PyThread_type_lock" - ], - [ - "PyThread_acquire_lock", - "PyThread_acquire_lock" - ], - [ - "print", - "print" - ], - [ - "stackeffec", - "stack_effect" - ], - [ - "cframe", - "_cframe" - ], - [ - "_ts", - "_ts" - ], - [ - "eval_frame", - "_PyEval_EvalFrame" - ], - [ - "runeval", - "run_eval_code_obj" - ], - [ - "run_eval_code_obj", - "run_eval_code_obj" - ], - [ - "_getframe", - "sys__getframe" - ], - [ - "type_ready", - "type_ready" - ], - [ - "pyid", - "PyIdPersPicklerTests" - ], - [ - "_typeo", - "_typeobject" - ], - [ - "unicodeo", - "PyUnicodeObject" - ], - [ - "rangeo", - "rangeobject" - ], - [ - "mapobject", - "mapobject" - ], - [ - "listobject", - "PyListObject" - ], - [ - "longobjec", - "PyLongObject" - ], - [ - "Py_NotImplemented", - "Py_NotImplemented" - ], - [ - "Py_Ellipsis", - "Py_Ellipsis" - ], - [ - "Py_None", - "Py_None" - ], - [ - "longobj", - "PyLongObject" - ], - [ - "SETBUILTIN", - "SETBUILTIN" - ], - [ - "PyLongObject", - "PyLongObject" - ], - [ - "PyObject_HEAD", - "PyObject_HEAD" - ], - [ - "PyCFunction", - "PyCFunction_Call" - ], - [ - "typobject", - "_typeobject" - ], - [ - "_oject", - "_object" - ], - [ - "PyListObject", - "PyListObject" - ], - [ - "_longo", - "_longobject" - ], - [ - "typeobject", - "PyTypeObject" - ], - [ - "PyFloat_Type", - "_PyFloat_InitTypes" - ], - [ - "_long", - "_longobject" - ], - [ - "_longobject", - "_longobject" - ], - [ - "_typeobject", - "_typeobject" - ], - [ - "_stmt", - "_stmt" - ], - [ - "PyAST_Compile", - "_PyAST_Compile" - ], - [ - "PyAST_Compil", - "_PyAST_Compile" - ], - [ - "compiler", - "compiler" - ], - [ - "builtin_e", - "builtin_exec" - ], - [ - "compile", - "compile" - ], - [ - "LOAD_CONST", - "LOAD_CONST" - ], - [ - "pyobject", - "PyObject" - ], - [ - "pyob", - "PyObject" - ], - [ - "metaclass", - "metaclass" - ], - [ - "MapResult", - "MapResult" - ], - [ - "BINARY_ADD", - "BINARY_ADD" - ], - [ - "_mod", - "_mod" - ], - [ - "mod", - "mod" - ], - [ - "symtable_enter_block", - "symtable_enter_block" - ], - [ - "PySTEntryObject", - "PySTEntryObject" - ], - [ - "LOAD_CLOSURE", - "LOAD_CLOSURE" - ], - [ - "compiler_addop", - "compiler_addop" - ], - [ - "ADDOP", - "ADDOP" - ], - [ - "pyO", - "PyObject" - ], - [ - "PyGC_Head", - "PyGC_Head" - ], - [ - "_PyObject_HEAD_EXTRA", - "_PyObject_HEAD_EXTRA" - ], - [ - "TokenInfo", - "TokenInfo" - ], - [ - "tokget", - "tok_get" - ], - [ - "runpyc", - "run_pyc_file" - ], - [ - "run_parser_from_string", - "_PyPegen_run_parser_from_string" - ], - [ - "astfrom", - "_PyParser_ASTFromString" - ], - [ - "_PyParser_ASTFromString", - "_PyParser_ASTFromString" - ], - [ - "PyRun_StringFlags", - "PyRun_StringFlags" - ], - [ - "_PyRun_AnyFileObject", - "_PyRun_AnyFileObject" - ], - [ - "PyRun_InteractiveOneObjectEx", - "PyRun_InteractiveOneObjectEx" - ], - [ - "PyRun_SimpleStringFlags", - "PyRun_SimpleStringFlags" - ], - [ - "pyconfig", - "PyConfig" - ], - [ - "_pygetenv", - "_Py_GetEnv" - ], - [ - "Py_RunMain", - "Py_RunMain" - ], - [ - "reco", - "run_eval_code_obj" - ], - [ - "PyObject", - "PyObject" - ], - [ - "PyDef", - "PyMemberDef" - ], - [ - "PygsDef", - "PyGetSetDef" - ], - [ - "typenewallo", - "type_new_alloc" - ], - [ - "PyType_Ready", - "PyType_Ready" - ], - [ - "_meta", - "_metaclass" - ], - [ - "type_new_alloc", - "type_new_alloc" - ], - [ - "PyType_GenericAlloc", - "PyType_GenericAlloc" - ], - [ - "PyVarObject_HEAD_INIT", - "PyVarObject_HEAD_INIT" - ], - [ - "_Py_ForgetReference", - "_Py_ForgetReference" - ], - [ - "_Py_Dealloc", - "_Py_Dealloc" - ] - ], - "width": 591.0 - }, - "selected_group": 0, - "settings": - { - }, - "show_minimap": true, - "show_open_files": true, - "show_tabs": true, - "side_bar_visible": true, - "side_bar_width": 197.0, - "status_bar_visible": true, - "template_settings": - { - "max_columns": 2 - } -} From da27a5eba7513189f6ab965577241057840dc352 Mon Sep 17 00:00:00 2001 From: Jeangowhy <254141203@qq.com> Date: Thu, 14 Sep 2023 20:26:13 +0800 Subject: [PATCH 04/18] Update "auto_zoom_on_focus" settings. --- Origami.sublime-settings | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Origami.sublime-settings b/Origami.sublime-settings index 99c47f6..1462ebf 100644 --- a/Origami.sublime-settings +++ b/Origami.sublime-settings @@ -19,6 +19,8 @@ // Set it to `true` for the default zoom, or to a user-definable // fraction of the screen, such as "0.75". "auto_zoom_on_focus": false, + // "auto_zoom_on_focus": 0.75, + // "auto_zoom_on_focus": [0.55, 0.65], // Automatically close a pane once you've closed the last file in it. "auto_close_empty_panes": false, From 70c91b2585bdc77ad7f78d5c067bce6c11cf73e0 Mon Sep 17 00:00:00 2001 From: Jeangowhy <254141203@qq.com> Date: Thu, 14 Sep 2023 23:34:22 +0800 Subject: [PATCH 05/18] Feature add: auto_focus_on_hover if you want to activate a pane when mouse on hover event, set `auto_focus_on_hover` to true in the Origami preferences. --- .gitignore | 1 + Origami.sublime-settings | 3 +++ README.md | 3 +++ origami.py | 25 +++++++++++++++++++++++++ 4 files changed, 32 insertions(+) diff --git a/.gitignore b/.gitignore index 17c9600..28b7b95 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,5 @@ *.hgignore *.hgtags *.DS_Store +pyrightconfig.json package-metadata.json diff --git a/Origami.sublime-settings b/Origami.sublime-settings index 1462ebf..79f8e57 100644 --- a/Origami.sublime-settings +++ b/Origami.sublime-settings @@ -25,6 +25,9 @@ // Automatically close a pane once you've closed the last file in it. "auto_close_empty_panes": false, + // Automatically focus a pane when View.on_hover event. + "auto_focus_on_hover": false, + // Destroy unused panes when switching away from them. "destroy_empty_panes": false, } diff --git a/README.md b/README.md index 5006174..1f4ba16 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,9 @@ You can have Origami automatically zoom the active pane by setting `auto_zoom_on Origami can also automatically close a pane for you once you've closed the last file in it. Just set `auto_close_empty_panes` to true in the Origami preferences. +if you want to activate a pane when mouse on hover event, set `auto_focus_on_hover` to true in the Origami preferences. + + Installation ------------ diff --git a/origami.py b/origami.py index 5eab019..f5f931c 100644 --- a/origami.py +++ b/origami.py @@ -1,4 +1,6 @@ import sublime +# from sublime import HoverZone +import sublime_api import sublime_plugin import copy from functools import partial @@ -836,3 +838,26 @@ def on_activated(self, view): self.running = True sublime.set_timeout(lambda: self.delayed_zoom(view, fraction), 0) + + +class TravelToPaneOnMoveCommand(sublime_plugin.EventListener, WithSettings): + + # I know there is Command.want_event can trigger some input function when mouse action. + # But there any sublime callback like on_mouse_move? + # View.on_hover Event callback + # this callback receive a view reference, and a text point (text length), + # which can be conver to window position like this below: + # view.text_to_window(txtpoint) + # hover_zone enum defined sublime.HoverZone under sublime Python 3.8 + def on_hover(self, view, txtpoint, hover_zone): + + if not self.settings().get("auto_focus_on_hover") : + # or view.settings().get("origami_auto_focus_on_hover") + return + + try: + window_id = sublime.active_window().window_id + sublime_api.window_focus_view(window_id, view.view_id) + except Exception as ex: + zones = ['TEXT', 'GUTTER', 'MARGIN'] + print("on_hover error=>", ex, {"point": txtpoint, "hover_zone": zones[hover_zone-1]}) From c649d0595ece5a155b213314245a4350409fe68b Mon Sep 17 00:00:00 2001 From: Jeangowhy <254141203@qq.com> Date: Thu, 14 Sep 2023 23:49:19 +0800 Subject: [PATCH 06/18] Feature add: auto_focus_on_hover if you want to activate a pane when mouse on hover event, set `auto_focus_on_hover` to true in the Origami preferences. --- Origami.sublime-settings | 5 ++--- README.md | 2 +- origami.py | 8 ++++---- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/Origami.sublime-settings b/Origami.sublime-settings index 79f8e57..e3faf99 100644 --- a/Origami.sublime-settings +++ b/Origami.sublime-settings @@ -17,10 +17,9 @@ // Automatically zoom the active pane. // Set it to `true` for the default zoom, or to a user-definable - // fraction of the screen, such as "0.75". + // fraction of the screen, such as "0.75", or [0.55, 0.65] + // for both horizontal and vertical direction. "auto_zoom_on_focus": false, - // "auto_zoom_on_focus": 0.75, - // "auto_zoom_on_focus": [0.55, 0.65], // Automatically close a pane once you've closed the last file in it. "auto_close_empty_panes": false, diff --git a/README.md b/README.md index 1f4ba16..5dade83 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ In the keybindings you can change a `mode` which specifies which separation line Automation ---------- -You can have Origami automatically zoom the active pane by setting `auto_zoom_on_focus` in your Origami user preferences. Set it to `true` for the default zoom, or set it to a user-definable fraction of the screen, such as `0.75`, or `[0.5, 0.6]` for horitontal and vertical correspondingly. +You can have Origami automatically zoom the active pane by setting `auto_zoom_on_focus` in your Origami user preferences. Set it to `true` for the default zoom, or set it to a user-definable fraction of the screen, such as `0.75`, or `[0.5, 0.6]` for horizontal and vertical correspondingly. Origami can also automatically close a pane for you once you've closed the last file in it. Just set `auto_close_empty_panes` to true in the Origami preferences. diff --git a/origami.py b/origami.py index f5f931c..b80d158 100644 --- a/origami.py +++ b/origami.py @@ -311,8 +311,6 @@ def _on_resize_panes(self, orientation, cells, relevant_index, orig_data, text): layout = self._on_resize_panes_get_layout(orientation, cells, relevant_index, orig_data, text) self.window.set_layout(layout) - - def zoom_pane(self, auto_zoom): fraction_horizontal = .9 fraction_vertical = .9 @@ -320,8 +318,10 @@ def zoom_pane(self, auto_zoom): if isinstance(auto_zoom, float) or isinstance(auto_zoom, int): fraction_horizontal = auto_zoom elif isinstance(auto_zoom, list): - fraction_horizontal = auto_zoom[0] - fraction_vertical = auto_zoom[1] + if isinstance(auto_zoom[0], float) or isinstance(auto_zoom[0], int): + fraction_horizontal = auto_zoom[0] + if isinstance(auto_zoom[1], float) or isinstance(auto_zoom[1], int): + fraction_vertical = auto_zoom[1] fraction_horizontal = min(1, max(0, fraction_horizontal)) fraction_vertical = min(1, max(0, fraction_vertical)) From 285bf7dfcd60151a83f84b3c3c7b421b4e6014a8 Mon Sep 17 00:00:00 2001 From: Jeangowhy <254141203@qq.com> Date: Thu, 14 Sep 2023 23:57:02 +0800 Subject: [PATCH 07/18] step backward. --- origami.py | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/origami.py b/origami.py index b80d158..155d3fc 100644 --- a/origami.py +++ b/origami.py @@ -838,26 +838,3 @@ def on_activated(self, view): self.running = True sublime.set_timeout(lambda: self.delayed_zoom(view, fraction), 0) - - -class TravelToPaneOnMoveCommand(sublime_plugin.EventListener, WithSettings): - - # I know there is Command.want_event can trigger some input function when mouse action. - # But there any sublime callback like on_mouse_move? - # View.on_hover Event callback - # this callback receive a view reference, and a text point (text length), - # which can be conver to window position like this below: - # view.text_to_window(txtpoint) - # hover_zone enum defined sublime.HoverZone under sublime Python 3.8 - def on_hover(self, view, txtpoint, hover_zone): - - if not self.settings().get("auto_focus_on_hover") : - # or view.settings().get("origami_auto_focus_on_hover") - return - - try: - window_id = sublime.active_window().window_id - sublime_api.window_focus_view(window_id, view.view_id) - except Exception as ex: - zones = ['TEXT', 'GUTTER', 'MARGIN'] - print("on_hover error=>", ex, {"point": txtpoint, "hover_zone": zones[hover_zone-1]}) From 6d8712626aa8c38d2e6ebb12f82d03118a3b900f Mon Sep 17 00:00:00 2001 From: Jeangowhy <254141203@qq.com> Date: Fri, 15 Sep 2023 00:01:04 +0800 Subject: [PATCH 08/18] join two line --- origami.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/origami.py b/origami.py index 155d3fc..4241712 100644 --- a/origami.py +++ b/origami.py @@ -312,8 +312,7 @@ def _on_resize_panes(self, orientation, cells, relevant_index, orig_data, text): self.window.set_layout(layout) def zoom_pane(self, auto_zoom): - fraction_horizontal = .9 - fraction_vertical = .9 + fraction_horizontal = fraction_vertical = .9 if isinstance(auto_zoom, float) or isinstance(auto_zoom, int): fraction_horizontal = auto_zoom From 5108ee1a8d7786326ee0d71a36b5bd18bcf7e66b Mon Sep 17 00:00:00 2001 From: Jeangowhy <254141203@qq.com> Date: Fri, 15 Sep 2023 00:14:55 +0800 Subject: [PATCH 09/18] step backwared... --- README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/README.md b/README.md index 5dade83..c64f16b 100644 --- a/README.md +++ b/README.md @@ -56,8 +56,6 @@ You can have Origami automatically zoom the active pane by setting `auto_zoom_on Origami can also automatically close a pane for you once you've closed the last file in it. Just set `auto_close_empty_panes` to true in the Origami preferences. -if you want to activate a pane when mouse on hover event, set `auto_focus_on_hover` to true in the Origami preferences. - Installation ------------ From 69b87689194517653755fa678f54591e32aa4cee Mon Sep 17 00:00:00 2001 From: Jeangowhy <254141203@qq.com> Date: Fri, 15 Sep 2023 00:17:15 +0800 Subject: [PATCH 10/18] auto_focus_on_hover feature setting reset. --- Origami.sublime-settings | 3 --- 1 file changed, 3 deletions(-) diff --git a/Origami.sublime-settings b/Origami.sublime-settings index e3faf99..9b130fb 100644 --- a/Origami.sublime-settings +++ b/Origami.sublime-settings @@ -24,9 +24,6 @@ // Automatically close a pane once you've closed the last file in it. "auto_close_empty_panes": false, - // Automatically focus a pane when View.on_hover event. - "auto_focus_on_hover": false, - // Destroy unused panes when switching away from them. "destroy_empty_panes": false, } From 51cef708d04fa00266c3acac53ff933d9e468841 Mon Sep 17 00:00:00 2001 From: Jeangowhy <118757675+Jeangowhy@users.noreply.github.com> Date: Sat, 16 Sep 2023 04:10:50 +0800 Subject: [PATCH 11/18] Update origami.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Rafał Chłodnicki --- origami.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/origami.py b/origami.py index 4241712..a61fc89 100644 --- a/origami.py +++ b/origami.py @@ -316,7 +316,7 @@ def zoom_pane(self, auto_zoom): if isinstance(auto_zoom, float) or isinstance(auto_zoom, int): fraction_horizontal = auto_zoom - elif isinstance(auto_zoom, list): + elif isinstance(auto_zoom, list) and len(auto_zoom) == 2: if isinstance(auto_zoom[0], float) or isinstance(auto_zoom[0], int): fraction_horizontal = auto_zoom[0] if isinstance(auto_zoom[1], float) or isinstance(auto_zoom[1], int): From 6641b66f3dad1f1c570941e2e20b73739284d3ba Mon Sep 17 00:00:00 2001 From: Jeangowhy <118757675+Jeangowhy@users.noreply.github.com> Date: Sat, 16 Sep 2023 04:11:42 +0800 Subject: [PATCH 12/18] Update origami.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Rafał Chłodnicki --- origami.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/origami.py b/origami.py index a61fc89..5aef991 100644 --- a/origami.py +++ b/origami.py @@ -315,7 +315,7 @@ def zoom_pane(self, auto_zoom): fraction_horizontal = fraction_vertical = .9 if isinstance(auto_zoom, float) or isinstance(auto_zoom, int): - fraction_horizontal = auto_zoom + fraction_horizontal = fraction_vertical = auto_zoom elif isinstance(auto_zoom, list) and len(auto_zoom) == 2: if isinstance(auto_zoom[0], float) or isinstance(auto_zoom[0], int): fraction_horizontal = auto_zoom[0] From 56ec90ff34f1831a32c29a4413e6a4e6c4fc125f Mon Sep 17 00:00:00 2001 From: Jeangowhy <254141203@qq.com> Date: Fri, 15 Sep 2023 00:17:15 +0800 Subject: [PATCH 13/18] remove commited code. --- Origami.sublime-settings | 3 --- 1 file changed, 3 deletions(-) diff --git a/Origami.sublime-settings b/Origami.sublime-settings index e3faf99..9b130fb 100644 --- a/Origami.sublime-settings +++ b/Origami.sublime-settings @@ -24,9 +24,6 @@ // Automatically close a pane once you've closed the last file in it. "auto_close_empty_panes": false, - // Automatically focus a pane when View.on_hover event. - "auto_focus_on_hover": false, - // Destroy unused panes when switching away from them. "destroy_empty_panes": false, } From 91e93b84731535ecf543a3c22d2be518ac698bf4 Mon Sep 17 00:00:00 2001 From: Jeangowhy <254141203@qq.com> Date: Sat, 16 Sep 2023 04:19:33 +0800 Subject: [PATCH 14/18] remove commited code. --- origami.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/origami.py b/origami.py index 4241712..c8e93f8 100644 --- a/origami.py +++ b/origami.py @@ -1,5 +1,4 @@ import sublime -# from sublime import HoverZone import sublime_api import sublime_plugin import copy @@ -316,7 +315,7 @@ def zoom_pane(self, auto_zoom): if isinstance(auto_zoom, float) or isinstance(auto_zoom, int): fraction_horizontal = auto_zoom - elif isinstance(auto_zoom, list): + elif isinstance(auto_zoom, list) and len(auto_zoom) == 2: if isinstance(auto_zoom[0], float) or isinstance(auto_zoom[0], int): fraction_horizontal = auto_zoom[0] if isinstance(auto_zoom[1], float) or isinstance(auto_zoom[1], int): From 88810de837220a919db6f0287b72c6d23737908d Mon Sep 17 00:00:00 2001 From: Rafal Chlodnicki Date: Tue, 19 Sep 2023 22:14:42 +0200 Subject: [PATCH 15/18] rename --- origami.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/origami.py b/origami.py index 04c8f27..d773574 100644 --- a/origami.py +++ b/origami.py @@ -309,16 +309,16 @@ def _on_resize_panes(self, orientation, cells, relevant_index, orig_data, text): layout = self._on_resize_panes_get_layout(orientation, cells, relevant_index, orig_data, text) self.window.set_layout(layout) - def zoom_pane(self, auto_zoom): + def zoom_pane(self, fraction): fraction_horizontal = fraction_vertical = .9 - - if isinstance(auto_zoom, float) or isinstance(auto_zoom, int): - fraction_horizontal = fraction_vertical = auto_zoom - elif isinstance(auto_zoom, list) and len(auto_zoom) == 2: - if isinstance(auto_zoom[0], float) or isinstance(auto_zoom[0], int): - fraction_horizontal = auto_zoom[0] - if isinstance(auto_zoom[1], float) or isinstance(auto_zoom[1], int): - fraction_vertical = auto_zoom[1] + + if isinstance(fraction, float) or isinstance(fraction, int): + fraction_horizontal = fraction_vertical = fraction + elif isinstance(fraction, list) and len(fraction) == 2: + if isinstance(fraction[0], float) or isinstance(fraction[0], int): + fraction_horizontal = fraction[0] + if isinstance(fraction[1], float) or isinstance(fraction[1], int): + fraction_vertical = fraction[1] fraction_horizontal = min(1, max(0, fraction_horizontal)) fraction_vertical = min(1, max(0, fraction_vertical)) From 7e4a863059b014df68a5ac97aaf19e5fb9848a15 Mon Sep 17 00:00:00 2001 From: Rafal Chlodnicki Date: Tue, 19 Sep 2023 22:18:56 +0200 Subject: [PATCH 16/18] use same wording on both places --- Origami.sublime-settings | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Origami.sublime-settings b/Origami.sublime-settings index 9b130fb..50b0cc9 100644 --- a/Origami.sublime-settings +++ b/Origami.sublime-settings @@ -17,8 +17,8 @@ // Automatically zoom the active pane. // Set it to `true` for the default zoom, or to a user-definable - // fraction of the screen, such as "0.75", or [0.55, 0.65] - // for both horizontal and vertical direction. + // fraction of the screen, such as "0.75", or `[0.5, 0.6]` for + // horizontal and vertical correspondingly. "auto_zoom_on_focus": false, // Automatically close a pane once you've closed the last file in it. From 0e04c40ac8d1367fabe776550470532fba83b213 Mon Sep 17 00:00:00 2001 From: Rafal Chlodnicki Date: Tue, 19 Sep 2023 22:22:40 +0200 Subject: [PATCH 17/18] quotes --- Origami.sublime-settings | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Origami.sublime-settings b/Origami.sublime-settings index 50b0cc9..d0c8caa 100644 --- a/Origami.sublime-settings +++ b/Origami.sublime-settings @@ -17,7 +17,7 @@ // Automatically zoom the active pane. // Set it to `true` for the default zoom, or to a user-definable - // fraction of the screen, such as "0.75", or `[0.5, 0.6]` for + // fraction of the screen, such as "0.75", or "[0.5, 0.6]" for // horizontal and vertical correspondingly. "auto_zoom_on_focus": false, From bb988c279d0f8279d086a784805019ea6a4d13b6 Mon Sep 17 00:00:00 2001 From: Jeangowhy <254141203@qq.com> Date: Wed, 20 Sep 2023 14:41:52 +0800 Subject: [PATCH 18/18] if you want to activate a pane when mouse on hover event, set `auto_focus_on_hover` to true in the Origami preferences. --- Origami.sublime-settings | 5 ++++- README.md | 2 ++ origami.py | 27 +++++++++++++++++++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/Origami.sublime-settings b/Origami.sublime-settings index d0c8caa..31f1956 100644 --- a/Origami.sublime-settings +++ b/Origami.sublime-settings @@ -20,7 +20,10 @@ // fraction of the screen, such as "0.75", or "[0.5, 0.6]" for // horizontal and vertical correspondingly. "auto_zoom_on_focus": false, - + + // Automatically focus a pane when View.on_hover event. + "auto_focus_on_hover": false, + // Automatically close a pane once you've closed the last file in it. "auto_close_empty_panes": false, diff --git a/README.md b/README.md index 713ef39..17f2838 100644 --- a/README.md +++ b/README.md @@ -56,6 +56,8 @@ You can have Origami automatically zoom the active pane by setting `auto_zoom_on Origami can also automatically close a pane for you once you've closed the last file in it. Just set `auto_close_empty_panes` to true in the Origami preferences. +if you want to activate a pane when mouse on hover event, set `auto_focus_on_hover` to true in the Origami preferences. + Installation ------------ diff --git a/origami.py b/origami.py index d773574..ca827d4 100644 --- a/origami.py +++ b/origami.py @@ -835,3 +835,30 @@ def on_activated(self, view): self.running = True sublime.set_timeout(lambda: self.delayed_zoom(view, fraction), 0) + + +class TravelToPaneOnMoveCommand(sublime_plugin.EventListener, WithSettings): + + # I know there is Command.want_event can trigger some input function when mouse action. + # But there any sublime callback like on_mouse_move? + # View.on_hover Event callback + # this callback receive a view reference, and a text point (text length), + # which can be conver to window position like this below: + # view.text_to_window(txtpoint) + # hover_zone enum defined sublime.HoverZone under sublime Python 3.8 + # + # Add .python-version to support newest ST4 #174 + # https://www.sublimetext.com/docs/api_environments.html#python-version + # print({"sys.version": sys.version}) + def on_hover(self, view, txtpoint, hover_zone): + + if not self.settings().get("auto_focus_on_hover") : + # or view.settings().get("origami_auto_focus_on_hover") + return + + try: + window = sublime.active_window() + window.focus_view(view) + except Exception as ex: + zones = ['TEXT', 'GUTTER', 'MARGIN'] + print("on_hover error=>", ex, {"point": txtpoint, "hover_zone": zones[hover_zone-1]})