From c64d98141a05c90612f454ee8bc5878ad08e52eb Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Sat, 1 Jun 2019 10:15:58 +0800
Subject: [PATCH 01/92] fix: Show errors in the dialog (#336)

---
 src/commands/show.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/commands/show.ts b/src/commands/show.ts
index 6277241f..a0b23f64 100644
--- a/src/commands/show.ts
+++ b/src/commands/show.ts
@@ -131,7 +131,7 @@ async function showProblemInternal(node: IProblem): Promise<void> {
             ),
         ]);
     } catch (error) {
-        await promptForOpenOutputChannel("Failed to show the problem. Please open the output channel for details.", DialogType.error);
+        await promptForOpenOutputChannel(`${error} Please open the output channel for details.`, DialogType.error);
     }
 }
 

From e6cd9988b2843d18953d309c8529ca1bb9e5de7a Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Sat, 1 Jun 2019 10:32:28 +0800
Subject: [PATCH 02/92] fix: Do not sign out if switch to the same endpoint
 (#337)

---
 src/commands/plugin.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/commands/plugin.ts b/src/commands/plugin.ts
index 3e3b5bf0..481bd6dd 100644
--- a/src/commands/plugin.ts
+++ b/src/commands/plugin.ts
@@ -26,7 +26,7 @@ export async function switchEndpoint(): Promise<void> {
         },
     );
     const choice: IQuickItemEx<string> | undefined = await vscode.window.showQuickPick(picks);
-    if (!choice) {
+    if (!choice || choice.value === getLeetCodeEndpoint()) {
         return;
     }
     const leetCodeConfig: vscode.WorkspaceConfiguration = vscode.workspace.getConfiguration("leetcode");

From cdb46d052c253b2f0f5b77dfcbc9dd33a385cf07 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Sat, 1 Jun 2019 20:37:52 +0800
Subject: [PATCH 03/92] feat: Support open preview page through Code Lens and
 context menu (#338)

---
 package.json                           |  4 ++++
 src/codelens/CustomCodeLensProvider.ts |  5 +++++
 src/commands/show.ts                   | 31 +++++++++++++++++++++++---
 src/leetCodeExecutor.ts                |  4 ++--
 src/utils/problemUtils.ts              | 17 ++++++++++++++
 5 files changed, 56 insertions(+), 5 deletions(-)

diff --git a/package.json b/package.json
index 5413bc2b..7dae6443 100644
--- a/package.json
+++ b/package.json
@@ -225,6 +225,10 @@
                 {
                     "command": "leetcode.showSolution",
                     "group": "leetcode@3"
+                },
+                {
+                    "command": "leetcode.previewProblem",
+                    "group": "leetcode@4"
                 }
             ]
         },
diff --git a/src/codelens/CustomCodeLensProvider.ts b/src/codelens/CustomCodeLensProvider.ts
index 3ee7270d..1290e057 100644
--- a/src/codelens/CustomCodeLensProvider.ts
+++ b/src/codelens/CustomCodeLensProvider.ts
@@ -32,6 +32,11 @@ export class CustomCodeLensProvider implements vscode.CodeLensProvider {
                 command: "leetcode.showSolution",
                 arguments: [document.uri],
             }),
+            new vscode.CodeLens(range, {
+                title: "Preview",
+                command: "leetcode.previewProblem",
+                arguments: [document.uri],
+            }),
         ];
     }
 }
diff --git a/src/commands/show.ts b/src/commands/show.ts
index a0b23f64..f3bd0750 100644
--- a/src/commands/show.ts
+++ b/src/commands/show.ts
@@ -5,11 +5,13 @@ import * as fse from "fs-extra";
 import * as path from "path";
 import * as unescapeJS from "unescape-js";
 import * as vscode from "vscode";
+import { explorerNodeManager } from "../explorer/explorerNodeManager";
 import { LeetCodeNode } from "../explorer/LeetCodeNode";
 import { leetCodeChannel } from "../leetCodeChannel";
 import { leetCodeExecutor } from "../leetCodeExecutor";
 import { leetCodeManager } from "../leetCodeManager";
 import { IProblem, IQuickItemEx, languages, ProblemState } from "../shared";
+import { getNodeIdFromFile } from "../utils/problemUtils";
 import { DialogOptions, DialogType, openSettingsEditor, promptForOpenOutputChannel, promptForSignIn, promptHintMessage } from "../utils/uiUtils";
 import { selectWorkspaceFolder } from "../utils/workspaceUtils";
 import * as wsl from "../utils/wslUtils";
@@ -17,8 +19,31 @@ import { leetCodePreviewProvider } from "../webview/leetCodePreviewProvider";
 import { leetCodeSolutionProvider } from "../webview/leetCodeSolutionProvider";
 import * as list from "./list";
 
-export async function previewProblem(node: IProblem, isSideMode: boolean = false): Promise<void> {
-    const descString: string = await leetCodeExecutor.getDescription(node);
+export async function previewProblem(input: IProblem | vscode.Uri, isSideMode: boolean = false): Promise<void> {
+    let node: LeetCodeNode;
+    if (input instanceof LeetCodeNode) {
+        node = input;
+    } else if (input instanceof vscode.Uri) {
+        const activeFilePath: string = input.fsPath;
+        const id: string = await getNodeIdFromFile(activeFilePath);
+        if (!id) {
+            vscode.window.showErrorMessage(`Failed to resolve the problem id from file: ${activeFilePath}.`);
+            return;
+        }
+        const cachedNode: LeetCodeNode | undefined = explorerNodeManager.getNodeById(id);
+        if (!cachedNode) {
+            vscode.window.showErrorMessage(`Failed to resolve the problem with id: ${id}.`);
+            return;
+        }
+        node = cachedNode;
+        // Move the preview page aside if it's triggered from Code Lens
+        isSideMode = true;
+    } else {
+        vscode.window.showErrorMessage("Invalid input to fetch the preview data.");
+        return;
+    }
+
+    const descString: string = await leetCodeExecutor.getDescription(node.id);
     leetCodePreviewProvider.show(descString, node, isSideMode);
 }
 
@@ -54,7 +79,7 @@ export async function showSolution(input: LeetCodeNode | vscode.Uri): Promise<vo
     } else if (input instanceof vscode.Uri) {
         problemInput = `"${input.fsPath}"`;
     } else {
-        vscode.window.showErrorMessage("Invalid input to fetch the solution data");
+        vscode.window.showErrorMessage("Invalid input to fetch the solution data.");
         return;
     }
 
diff --git a/src/leetCodeExecutor.ts b/src/leetCodeExecutor.ts
index ac110190..ad2d0514 100644
--- a/src/leetCodeExecutor.ts
+++ b/src/leetCodeExecutor.ts
@@ -112,8 +112,8 @@ class LeetCodeExecutor implements Disposable {
         return solution;
     }
 
-    public async getDescription(problemNode: IProblem): Promise<string> {
-        return await this.executeCommandWithProgressEx("Fetching problem description...", this.nodeExecutable, [await this.getLeetCodeBinaryPath(), "show", problemNode.id, "-x"]);
+    public async getDescription(problemNodeId: string): Promise<string> {
+        return await this.executeCommandWithProgressEx("Fetching problem description...", this.nodeExecutable, [await this.getLeetCodeBinaryPath(), "show", problemNodeId, "-x"]);
     }
 
     public async listSessions(): Promise<string> {
diff --git a/src/utils/problemUtils.ts b/src/utils/problemUtils.ts
index 10df523b..d2dcc3ed 100644
--- a/src/utils/problemUtils.ts
+++ b/src/utils/problemUtils.ts
@@ -1,7 +1,9 @@
 // Copyright (c) jdneo. All rights reserved.
 // Licensed under the MIT license.
 
+import * as fse from "fs-extra";
 import * as _ from "lodash";
+import * as path from "path";
 import { IProblem, langExt } from "../shared";
 
 export function genFileExt(language: string): string {
@@ -17,3 +19,18 @@ export function genFileName(node: IProblem, language: string): string {
     const ext: string = genFileExt(language);
     return `${node.id}.${slug}.${ext}`;
 }
+
+export async function getNodeIdFromFile(fsPath: string): Promise<string> {
+    const fileContent: string = await fse.readFile(fsPath, "utf8");
+    let id: string = "";
+    const matchResults: RegExpMatchArray | null = fileContent.match(/@lc.+id=(.+?) /);
+    if (matchResults && matchResults.length === 2) {
+        id = matchResults[1];
+    }
+    // Try to get id from file name if getting from comments failed
+    if (!id) {
+        id = path.basename(fsPath).split(".")[0];
+    }
+
+    return id;
+}

From 41b3d32cabdfe21af6be437da5e5e555f0f9e553 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Mon, 3 Jun 2019 10:07:03 +0800
Subject: [PATCH 04/92] feat: Refresh the explorer after submitting (#339)

---
 src/commands/submit.ts                   |  4 ++++
 src/explorer/LeetCodeTreeDataProvider.ts | 13 ++++++++-----
 src/extension.ts                         |  4 ++--
 3 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/src/commands/submit.ts b/src/commands/submit.ts
index f6e2d989..26660029 100644
--- a/src/commands/submit.ts
+++ b/src/commands/submit.ts
@@ -2,6 +2,7 @@
 // Licensed under the MIT license.
 
 import * as vscode from "vscode";
+import { leetCodeTreeDataProvider } from "../explorer/LeetCodeTreeDataProvider";
 import { leetCodeExecutor } from "../leetCodeExecutor";
 import { leetCodeManager } from "../leetCodeManager";
 import { DialogType, promptForOpenOutputChannel, promptForSignIn } from "../utils/uiUtils";
@@ -24,5 +25,8 @@ export async function submitSolution(uri?: vscode.Uri): Promise<void> {
         leetCodeSubmissionProvider.show(result);
     } catch (error) {
         await promptForOpenOutputChannel("Failed to submit the solution. Please open the output channel for details.", DialogType.error);
+        return;
     }
+
+    leetCodeTreeDataProvider.refresh();
 }
diff --git a/src/explorer/LeetCodeTreeDataProvider.ts b/src/explorer/LeetCodeTreeDataProvider.ts
index a4339614..ac115424 100644
--- a/src/explorer/LeetCodeTreeDataProvider.ts
+++ b/src/explorer/LeetCodeTreeDataProvider.ts
@@ -11,11 +11,15 @@ import { LeetCodeNode } from "./LeetCodeNode";
 
 export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCodeNode> {
 
-    private onDidChangeTreeDataEvent: vscode.EventEmitter<any> = new vscode.EventEmitter<any>();
+    private context: vscode.ExtensionContext;
+
+    private onDidChangeTreeDataEvent: vscode.EventEmitter<LeetCodeNode | undefined | null> = new vscode.EventEmitter<LeetCodeNode | undefined | null>();
     // tslint:disable-next-line:member-ordering
     public readonly onDidChangeTreeData: vscode.Event<any> = this.onDidChangeTreeDataEvent.event;
 
-    constructor(private context: vscode.ExtensionContext) { }
+    public initialize(context: vscode.ExtensionContext): void {
+        this.context = context;
+    }
 
     public async refresh(): Promise<void> {
         await explorerNodeManager.refreshCache();
@@ -26,7 +30,6 @@ export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCod
         if (element.id === "notSignIn") {
             return {
                 label: element.name,
-                id: element.id,
                 collapsibleState: vscode.TreeItemCollapsibleState.None,
                 command: {
                     command: "leetcode.signin",
@@ -35,11 +38,9 @@ export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCod
             };
         }
 
-        const idPrefix: number = Date.now();
         return {
             label: element.isProblem ? `[${element.id}] ${element.name}` : element.name,
             tooltip: this.getSubCategoryTooltip(element),
-            id: `${idPrefix}.${element.id}`,
             collapsibleState: element.isProblem ? vscode.TreeItemCollapsibleState.None : vscode.TreeItemCollapsibleState.Collapsed,
             contextValue: element.isProblem ? "problem" : element.id.toLowerCase(),
             iconPath: this.parseIconPathFromProblemState(element),
@@ -128,3 +129,5 @@ export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCod
         ].join(os.EOL);
     }
 }
+
+export const leetCodeTreeDataProvider: LeetCodeTreeDataProvider = new LeetCodeTreeDataProvider();
diff --git a/src/extension.ts b/src/extension.ts
index 978d90ae..a2467c8d 100644
--- a/src/extension.ts
+++ b/src/extension.ts
@@ -12,7 +12,7 @@ import * as submit from "./commands/submit";
 import * as test from "./commands/test";
 import { explorerNodeManager } from "./explorer/explorerNodeManager";
 import { LeetCodeNode } from "./explorer/LeetCodeNode";
-import { LeetCodeTreeDataProvider } from "./explorer/LeetCodeTreeDataProvider";
+import { leetCodeTreeDataProvider } from "./explorer/LeetCodeTreeDataProvider";
 import { leetCodeChannel } from "./leetCodeChannel";
 import { leetCodeExecutor } from "./leetCodeExecutor";
 import { leetCodeManager } from "./leetCodeManager";
@@ -34,7 +34,7 @@ export async function activate(context: vscode.ExtensionContext): Promise<void>
             leetCodeTreeDataProvider.refresh();
         });
 
-        const leetCodeTreeDataProvider: LeetCodeTreeDataProvider = new LeetCodeTreeDataProvider(context);
+        leetCodeTreeDataProvider.initialize(context);
 
         context.subscriptions.push(
             leetCodeStatusBarController,

From 2adaa4351f0b5429ef5303f7e7bc2a6b6c283cd0 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Mon, 3 Jun 2019 14:35:49 +0800
Subject: [PATCH 05/92] feat: Customize the shortcuts in editor (#340)

---
 package.json                           | 20 +++++++++-
 src/codelens/CodeLensController.ts     |  2 +
 src/codelens/CustomCodeLensProvider.ts | 52 +++++++++++++++++++-------
 src/utils/settingUtils.ts              |  4 ++
 4 files changed, 64 insertions(+), 14 deletions(-)

diff --git a/package.json b/package.json
index 7dae6443..d8187565 100644
--- a/package.json
+++ b/package.json
@@ -331,7 +331,25 @@
                         "type": "boolean",
                         "default": true,
                         "scope": "application",
-                        "description": "Show the submit and test shortcuts in editor or not."
+                        "description": "[Deprecated] Show the submit and test shortcuts in editor or not."
+                    },
+                    "leetcode.editor.shortcuts": {
+                        "type": "array",
+                        "default": [
+                            "submit",
+                            "test"
+                        ],
+                        "scope": "application",
+                        "items": {
+                            "type": "string",
+                            "enum": [
+                                "submit",
+                                "test",
+                                "solution",
+                                "description"
+                            ]
+                        },
+                        "description": "Customize the shorcuts in editor."
                     },
                     "leetcode.enableSideMode": {
                         "type": "boolean",
diff --git a/src/codelens/CodeLensController.ts b/src/codelens/CodeLensController.ts
index a7fa1ef7..9373df27 100644
--- a/src/codelens/CodeLensController.ts
+++ b/src/codelens/CodeLensController.ts
@@ -15,6 +15,8 @@ class CodeLensController implements Disposable {
         this.configurationChangeListener = workspace.onDidChangeConfiguration((event: ConfigurationChangeEvent) => {
             if (event.affectsConfiguration("leetcode.enableShortcuts")) {
                 this.setCodeLensVisibility();
+            } else if (event.affectsConfiguration("leetcode.editor.shortcuts")) {
+                this.internalProvider.refresh();
             }
         }, this);
 
diff --git a/src/codelens/CustomCodeLensProvider.ts b/src/codelens/CustomCodeLensProvider.ts
index 1290e057..f201dbd7 100644
--- a/src/codelens/CustomCodeLensProvider.ts
+++ b/src/codelens/CustomCodeLensProvider.ts
@@ -2,41 +2,67 @@
 // Licensed under the MIT license.
 
 import * as vscode from "vscode";
+import { getEditorShortcuts } from "../utils/settingUtils";
 
 export class CustomCodeLensProvider implements vscode.CodeLensProvider {
 
-    private validFileNamePattern: RegExp = /\d+\..*\.(.+)/;
+    private onDidChangeCodeLensesEmitter: vscode.EventEmitter<void> = new vscode.EventEmitter<void>();
+
+    get onDidChangeCodeLenses(): vscode.Event<void> {
+        return this.onDidChangeCodeLensesEmitter.event;
+    }
+
+    public refresh(): void {
+        this.onDidChangeCodeLensesEmitter.fire();
+    }
 
     public provideCodeLenses(document: vscode.TextDocument): vscode.ProviderResult<vscode.CodeLens[]> {
+        const shortcuts: string[] = getEditorShortcuts();
+        if (!shortcuts) {
+            return;
+        }
+
         const fileName: string = document.fileName.trim();
-        const matchResult: RegExpMatchArray | null = fileName.match(this.validFileNamePattern);
+        const matchResult: RegExpMatchArray | null = fileName.match(/\d+\..*\.(.+)/);
         if (!matchResult) {
             return undefined;
         }
 
         const range: vscode.Range = new vscode.Range(document.lineCount - 1, 0, document.lineCount - 1, 0);
+        const codeLens: vscode.CodeLens[] = [];
 
-        return [
-            new vscode.CodeLens(range, {
+        if (shortcuts.indexOf("submit") >= 0) {
+            codeLens.push(new vscode.CodeLens(range, {
                 title: "Submit",
                 command: "leetcode.submitSolution",
                 arguments: [document.uri],
-            }),
-            new vscode.CodeLens(range, {
+            }));
+        }
+
+        if (shortcuts.indexOf("test") >= 0) {
+            codeLens.push(new vscode.CodeLens(range, {
                 title: "Test",
                 command: "leetcode.testSolution",
                 arguments: [document.uri],
-            }),
-            new vscode.CodeLens(range, {
+            }));
+        }
+
+        if (shortcuts.indexOf("solution") >= 0) {
+            codeLens.push(new vscode.CodeLens(range, {
                 title: "Solution",
                 command: "leetcode.showSolution",
                 arguments: [document.uri],
-            }),
-            new vscode.CodeLens(range, {
-                title: "Preview",
+            }));
+        }
+
+        if (shortcuts.indexOf("description") >= 0) {
+            codeLens.push(new vscode.CodeLens(range, {
+                title: "Description",
                 command: "leetcode.previewProblem",
                 arguments: [document.uri],
-            }),
-        ];
+            }));
+        }
+
+        return codeLens;
     }
 }
diff --git a/src/utils/settingUtils.ts b/src/utils/settingUtils.ts
index c6c643c4..3cc48ea7 100644
--- a/src/utils/settingUtils.ts
+++ b/src/utils/settingUtils.ts
@@ -10,3 +10,7 @@ export function getWorkspaceConfiguration(): WorkspaceConfiguration {
 export function shouldHideSolvedProblem(): boolean {
     return getWorkspaceConfiguration().get<boolean>("hideSolved", false);
 }
+
+export function getEditorShortcuts(): string[] {
+    return getWorkspaceConfiguration().get<string[]>("editor.shortcuts", ["submit", "test"]);
+}

From 123d95b32dcaf5bd1d8cb30c2b35b43cec4dddaa Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Sat, 8 Jun 2019 15:56:16 +0800
Subject: [PATCH 06/92] chore: Bump version to 0.15.0 (#343)

---
 CHANGELOG.md            |   9 +++++++++
 README.md               |  38 ++++++++++----------------------------
 docs/README_zh-CN.md    |  38 ++++++++++----------------------------
 docs/imgs/shortcuts.png | Bin 0 -> 22573 bytes
 docs/imgs/solution.png  | Bin 112604 -> 0 bytes
 docs/imgs/submit.png    | Bin 19839 -> 0 bytes
 docs/imgs/test.png      | Bin 147940 -> 0 bytes
 package-lock.json       |  38 +++++++++++++++++++-------------------
 package.json            |   4 ++--
 9 files changed, 50 insertions(+), 77 deletions(-)
 create mode 100644 docs/imgs/shortcuts.png
 delete mode 100644 docs/imgs/solution.png
 delete mode 100644 docs/imgs/submit.png
 delete mode 100644 docs/imgs/test.png

diff --git a/CHANGELOG.md b/CHANGELOG.md
index ffc9f01e..e8839e7a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,15 @@ All notable changes to the "leetcode" extension will be documented in this file.
 
 Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
 
+## [0.15.0]
+### Added
+- Auto refresh the explorer after submitting [#91](https://github.com/jdneo/vscode-leetcode/issues/91)
+- Add a editor shortcut `Description` to show the problem description [#286](https://github.com/jdneo/vscode-leetcode/issues/286)
+- Support customizing the shortcuts in editor [#335](https://github.com/jdneo/vscode-leetcode/issues/335)
+
+### Fixed
+[Bugs fixed](https://github.com/jdneo/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.15.0+is%3Aclosed+label%3Abug)
+
 ## [0.14.3]
 ### Added
 - Support interpolation for `leetcode.outputFolder` settings [#151](https://github.com/jdneo/vscode-leetcode/issues/151)
diff --git a/README.md b/README.md
index 64f62c19..5fcf3138 100644
--- a/README.md
+++ b/README.md
@@ -81,37 +81,18 @@
 
 ---
 
-### Show Top Voted Solution
+### Editor Shortcuts
 <p align="center">
-  <img src="https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/docs/imgs/solution.png" alt="Show Top Voted Solution" />
+  <img src="https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/docs/imgs/shortcuts.png" alt="Editor Shortcuts" />
 </p>
 
-- Select `Show Top Voted Solution` will display the top voted solution for you.
+- The extension supports 4 editor shortcuts (aka Code Lens):
+  - `Submit`: Submit your answer to LeetCode.
+  - `Test`: Test your answer with customized test cases.
+  - `Solution`: Show the top voted solution for the current problem.
+  - `Description`: Show the problem description page.
 
----
-
-### Submit the Answer
-<p align="center">
-  <img src="https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/docs/imgs/submit.png" alt="Submit the Answer" />
-</p>
-
-- You can submit the answer by clicking `Submit` at the bottom of the file. Or you can right click in the editor and select `Submit to LeetCode`.
-
-> If you want to hide the shortcuts showing in the editor, just simply set the setting `leetcode.enableShortcuts` to false.
-
----
-
-### Test the Answer
-<p align="center">
-  <img src="https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/docs/imgs/test.png" alt="Test the Answer" />
-</p>
-
-- You can test the answer by clicking `Test` at the bottom of the file. Or you can right click in the editor and select `Test in LeetCode`.
-
-- There are 3 ways to test the answer:
-  - **Test with the default cases**
-  - **Write test cases in input box**
-  - **Test with the written cases in file**
+  > Note: You can customize the shortcuts using the setting: `leetcode.editor.shortcuts`. By default, only `Submit` and `Test` shortcuts are enabled.
 
 ---
 
@@ -142,7 +123,8 @@
 | `leetcode.endpoint`        | Specify the active endpoint. Supported endpoints are: `leetcode`, `leetcode-cn`                                                                                                                                                                                                                                                                                                    | `leetcode`    |
 | `leetcode.outputFolder`    | Specify the relative path to save the problem files. Besides using customized path, there are also several reserved words which can be used here: <ul><li>`${tag}`: Categorize the problem according to their tags.<li>`${language}`: Categorize the problem according to their language.</li><li>`${difficulty}`: Categorize the problem according to their difficulty.</li></ul>For example: `problem-${tag}-${difficulty}` | N/A           |
 | `leetcode.enableStatusBar` | Specify whether the LeetCode status bar will be shown or not.                                                                                                                                                                                                                                                                                                                      | `true`        |
-| `leetcode.enableShortcuts` | Specify whether the submit and test shortcuts in editor or not.                                                                                                                                                                                                                                                                                                                    | `true`        |
+| **(Deprecated)** `leetcode.enableShortcuts` | Specify whether the submit and test shortcuts in editor or not.                                                                                                                                                                                                                                                                                                                    | `true`        |
+| `leetcode.editor.shortcuts` | Specify the customized shorcuts in editors | `["submit, test"]` |
 | `leetcode.enableSideMode`  | Specify whether `preview`, `solution` and `submission` tab should be grouped into the second editor column when solving a problem.                                                                                                                                                                                                                                                 | `true`        |
 | `leetcode.nodePath`        | Specify the `Node.js` executable path.                                                                                                                                                                                                                                                                                                                                             | `node`        |
 
diff --git a/docs/README_zh-CN.md b/docs/README_zh-CN.md
index 39ae2683..0bd9d54d 100644
--- a/docs/README_zh-CN.md
+++ b/docs/README_zh-CN.md
@@ -81,37 +81,18 @@
 
 ---
 
-### 查看高票解答
+### 编辑器快捷方式
 <p align="center">
-  <img src="https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/docs/imgs/solution.png" alt="高票解答" />
+  <img src="https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/docs/imgs/shortcuts.png" alt="Editor Shortcuts" />
 </p>
 
-- 选择 `Show Top Voted Solution` 可查看该题目在讨论区内的高票解答。
+- 插件会在编辑区域内支持四种不同的快捷方式(Code Lens):
+  - `Submit`: 提交你的答案至 LeetCode;
+  - `Test`: 用给定的测试用例测试你的答案;
+  - `Solution`: 显示该问题的高票解答;
+  - `Description`: 显示该问题的题目描述。
 
----
-
-### 提交答案
-<p align="center">
-  <img src="https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/docs/imgs/submit.png" alt="提交答案" />
-</p>
-
-- 通过点击文件最下方的 `Submit` 可提交答案。 你也可以在编辑区内右键并选择 `Submit to LeetCode`,将**当前**文件提交。
-
-> 如果你不希望在编辑器中显示**测试**和**提交**的快捷方式,可以将配置项 `leetcode.enableShortcuts` 设置为 `false`。
-
----
-
-### 测试答案
-<p align="center">
-  <img src="https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/docs/imgs/test.png" alt="测试答案" />
-</p>
-
-- 通过点击文件最下方的 `Test` 可测试答案。你也可以在编辑区内右键并选择 `Test in LeetCode`,对**当前**文件进行测试。
-
-- 有下列三种测试集来源:
-  - **默认测试集**:Test with the default cases
-  - **在输入框内输入测试集**:Write test cases in input box
-  - **提供自定义测试集文件**:Test with the written cases in file
+  > 注意:你可以通过 `leetcode.editor.shortcuts` 配置项来定制需要激活的快捷方式。默认情况下只有 `Submit` 和 `Test` 会被激活。
 
 ---
 
@@ -142,7 +123,8 @@
 | `leetcode.endpoint`        | 指定使用的终端,可用终端有:`leetcode`, `leetcode-cn`                                                                                                                                                                               | `leetcode` |
 | `leetcode.outputFolder`    | 指定保存文件时所用的相对文件夹路径。除了用户自定义路径外,也可以使用保留项,包括:<ul><li>`${tag}`: 根据题目的类别进行分类。<li>`${language}`: 根据题目的语言进行分类。</li><li>`${difficulty}`: 根据题目的难度进行分类。</li></ul>例如:`problem-${tag}-${difficulty}` | N/A        |
 | `leetcode.enableStatusBar` | 指定是否在 VS Code 下方显示插件状态栏。                                                                                                                                                                                             | `true`     |
-| `leetcode.enableShortcuts` | 指定是否在 VS Code 编辑文件下方显示提交和测试的快捷按钮。                                                                                                                                                                           | `true`     |
+| **(Deprecated)** `leetcode.enableShortcuts` | 指定是否在 VS Code 编辑文件下方显示提交和测试的快捷按钮。                                                                                                                                                                           | `true`     |
+| `leetcode.editor.shortcuts` | 指定在编辑器内所自定义的快捷方式。 | `["submit, test"]` |
 | `leetcode.enableSideMode`  | 指定在解决一道题时,是否将`问题预览`、`高票答案`与`提交结果`窗口集中在编辑器的第二栏。                                                                                                                                              | `true`     |
 | `leetcode.nodePath`        | 指定 `Node.js` 可执行文件的路径。                                                                                                                                                                                                   | `node`     |
 
diff --git a/docs/imgs/shortcuts.png b/docs/imgs/shortcuts.png
new file mode 100644
index 0000000000000000000000000000000000000000..c949989d5f237ea67d5277ade9a3a13b47610b0b
GIT binary patch
literal 22573
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

literal 0
HcmV?d00001

diff --git a/docs/imgs/solution.png b/docs/imgs/solution.png
deleted file mode 100644
index 526d3f66ac976c4a44f5216840ef77590fb943b4..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 112604
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
TR$0`&00000NkvXXu0mjfA6|)I

diff --git a/docs/imgs/submit.png b/docs/imgs/submit.png
deleted file mode 100644
index 9c81a76000bef412df8bb35fbd14a35e9f6870ab..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 19839
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
Lu6{1-oD!M<3H(+o

diff --git a/docs/imgs/test.png b/docs/imgs/test.png
deleted file mode 100644
index b90feab802444b07f42dada87389898d63d0a990..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 147940
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

diff --git a/package-lock.json b/package-lock.json
index 7ea3a73c..f6c87e2d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
 {
     "name": "vscode-leetcode",
-    "version": "0.14.3",
+    "version": "0.15.0",
     "lockfileVersion": 1,
     "requires": true,
     "dependencies": {
@@ -66,13 +66,13 @@
         },
         "acorn": {
             "version": "2.7.0",
-            "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz",
+            "resolved": "http://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz",
             "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=",
             "optional": true
         },
         "acorn-globals": {
             "version": "1.0.9",
-            "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz",
+            "resolved": "http://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz",
             "integrity": "sha1-VbtemGkVB7dFedBRNBMhfDgMVM8=",
             "optional": true,
             "requires": {
@@ -135,7 +135,7 @@
         },
         "async": {
             "version": "1.5.2",
-            "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+            "resolved": "http://registry.npmjs.org/async/-/async-1.5.2.tgz",
             "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
         },
         "asynckit": {
@@ -258,7 +258,7 @@
         },
         "cheerio": {
             "version": "0.20.0",
-            "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.20.0.tgz",
+            "resolved": "http://registry.npmjs.org/cheerio/-/cheerio-0.20.0.tgz",
             "integrity": "sha1-XHEPK6uVZTJyhCugHG6mGzVF7DU=",
             "requires": {
                 "css-select": "~1.2.0",
@@ -358,7 +358,7 @@
         },
         "css-select": {
             "version": "1.2.0",
-            "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
+            "resolved": "http://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
             "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
             "requires": {
                 "boolbase": "~1.0.0",
@@ -715,7 +715,7 @@
         },
         "htmlparser2": {
             "version": "3.8.3",
-            "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
+            "resolved": "http://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
             "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=",
             "requires": {
                 "domelementtype": "1",
@@ -727,7 +727,7 @@
             "dependencies": {
                 "entities": {
                     "version": "1.0.0",
-                    "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
+                    "resolved": "http://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
                     "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY="
                 }
             }
@@ -855,7 +855,7 @@
         },
         "jsdom": {
             "version": "7.2.2",
-            "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-7.2.2.tgz",
+            "resolved": "http://registry.npmjs.org/jsdom/-/jsdom-7.2.2.tgz",
             "integrity": "sha1-QLQCdwwr2iNGkJa+6Rq2deOx/G4=",
             "optional": true,
             "requires": {
@@ -1135,7 +1135,7 @@
             "dependencies": {
                 "yargs": {
                     "version": "3.32.0",
-                    "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz",
+                    "resolved": "http://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz",
                     "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=",
                     "requires": {
                         "camelcase": "^2.0.1",
@@ -1151,7 +1151,7 @@
         },
         "ncp": {
             "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/ncp/-/ncp-1.0.1.tgz",
+            "resolved": "http://registry.npmjs.org/ncp/-/ncp-1.0.1.tgz",
             "integrity": "sha1-0VNn5cuHQyuhF9K/gP30Wuz7QkY="
         },
         "nice-try": {
@@ -1251,7 +1251,7 @@
         },
         "os-locale": {
             "version": "1.4.0",
-            "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
+            "resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
             "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
             "requires": {
                 "lcid": "^1.0.0"
@@ -1389,7 +1389,7 @@
         },
         "readable-stream": {
             "version": "1.1.14",
-            "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+            "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
             "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
             "requires": {
                 "core-util-is": "~1.0.0",
@@ -1613,7 +1613,7 @@
         },
         "strip-eof": {
             "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+            "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
             "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="
         },
         "supports-color": {
@@ -1765,7 +1765,7 @@
             "dependencies": {
                 "async": {
                     "version": "0.9.2",
-                    "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
+                    "resolved": "http://registry.npmjs.org/async/-/async-0.9.2.tgz",
                     "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0="
                 }
             }
@@ -1873,7 +1873,7 @@
         },
         "winston": {
             "version": "2.1.1",
-            "resolved": "https://registry.npmjs.org/winston/-/winston-2.1.1.tgz",
+            "resolved": "http://registry.npmjs.org/winston/-/winston-2.1.1.tgz",
             "integrity": "sha1-PJNJ0ZYgf9G9/51LxD73JRDjoS4=",
             "requires": {
                 "async": "~1.0.0",
@@ -1887,12 +1887,12 @@
             "dependencies": {
                 "async": {
                     "version": "1.0.0",
-                    "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz",
+                    "resolved": "http://registry.npmjs.org/async/-/async-1.0.0.tgz",
                     "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k="
                 },
                 "colors": {
                     "version": "1.0.3",
-                    "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
+                    "resolved": "http://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
                     "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs="
                 },
                 "pkginfo": {
@@ -1909,7 +1909,7 @@
         },
         "wrap-ansi": {
             "version": "2.1.0",
-            "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+            "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
             "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
             "requires": {
                 "string-width": "^1.0.1",
diff --git a/package.json b/package.json
index d8187565..607dc824 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
     "name": "vscode-leetcode",
     "displayName": "LeetCode",
     "description": "Solve LeetCode problems in VS Code",
-    "version": "0.14.3",
+    "version": "0.15.0",
     "author": "Sheng Chen",
     "publisher": "shengchen",
     "license": "MIT",
@@ -349,7 +349,7 @@
                                 "description"
                             ]
                         },
-                        "description": "Customize the shorcuts in editor."
+                        "description": "Customize the shorcuts in editors."
                     },
                     "leetcode.enableSideMode": {
                         "type": "boolean",

From 1572c7a34a482326ae22dec87f25edd6840084c3 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Fri, 14 Jun 2019 11:27:59 +0800
Subject: [PATCH 07/92] fix: Cannot show description page (#345)

---
 src/commands/show.ts                   | 11 ++++-------
 src/webview/leetCodePreviewProvider.ts | 16 +++++++++-------
 2 files changed, 13 insertions(+), 14 deletions(-)

diff --git a/src/commands/show.ts b/src/commands/show.ts
index f3bd0750..7dceffed 100644
--- a/src/commands/show.ts
+++ b/src/commands/show.ts
@@ -20,17 +20,15 @@ import { leetCodeSolutionProvider } from "../webview/leetCodeSolutionProvider";
 import * as list from "./list";
 
 export async function previewProblem(input: IProblem | vscode.Uri, isSideMode: boolean = false): Promise<void> {
-    let node: LeetCodeNode;
-    if (input instanceof LeetCodeNode) {
-        node = input;
-    } else if (input instanceof vscode.Uri) {
+    let node: IProblem;
+    if (input instanceof vscode.Uri) {
         const activeFilePath: string = input.fsPath;
         const id: string = await getNodeIdFromFile(activeFilePath);
         if (!id) {
             vscode.window.showErrorMessage(`Failed to resolve the problem id from file: ${activeFilePath}.`);
             return;
         }
-        const cachedNode: LeetCodeNode | undefined = explorerNodeManager.getNodeById(id);
+        const cachedNode: IProblem | undefined = explorerNodeManager.getNodeById(id);
         if (!cachedNode) {
             vscode.window.showErrorMessage(`Failed to resolve the problem with id: ${id}.`);
             return;
@@ -39,8 +37,7 @@ export async function previewProblem(input: IProblem | vscode.Uri, isSideMode: b
         // Move the preview page aside if it's triggered from Code Lens
         isSideMode = true;
     } else {
-        vscode.window.showErrorMessage("Invalid input to fetch the preview data.");
-        return;
+        node = input;
     }
 
     const descString: string = await leetCodeExecutor.getDescription(node.id);
diff --git a/src/webview/leetCodePreviewProvider.ts b/src/webview/leetCodePreviewProvider.ts
index 8d186b29..a019db95 100644
--- a/src/webview/leetCodePreviewProvider.ts
+++ b/src/webview/leetCodePreviewProvider.ts
@@ -22,9 +22,11 @@ class LeetCodePreviewProvider extends LeetCodeWebview {
         this.node = node;
         this.sideMode = isSideMode;
         this.showWebviewInternal();
-        if (this.sideMode) {
-            this.hideSideBar(); // For better view area
-        }
+        // Comment out this operation since it sometimes may cause the webview become empty.
+        // Waiting for the progress of the VS Code side issue: https://github.com/microsoft/vscode/issues/3742
+        // if (this.sideMode) {
+        //     this.hideSideBar(); // For better view area
+        // }
     }
 
     protected getWebviewOption(): ILeetCodeWebviewOption {
@@ -134,10 +136,10 @@ class LeetCodePreviewProvider extends LeetCodeWebview {
         }
     }
 
-    private async hideSideBar(): Promise<void> {
-        await commands.executeCommand("workbench.action.focusSideBar");
-        await commands.executeCommand("workbench.action.toggleSidebarVisibility");
-    }
+    // private async hideSideBar(): Promise<void> {
+    //     await commands.executeCommand("workbench.action.focusSideBar");
+    //     await commands.executeCommand("workbench.action.toggleSidebarVisibility");
+    // }
 
     private parseDescription(descString: string, problem: IProblem): IDescription {
         const [

From ee972498479cc3031bd5ac1d2c6cb79c3f61a53e Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Mon, 17 Jun 2019 20:31:01 +0800
Subject: [PATCH 08/92] chore: prepare for 0.15.1 (#349)

---
 CHANGELOG.md      |  4 ++++
 package-lock.json | 50 +++++++++++++++++++++++------------------------
 package.json      |  4 ++--
 3 files changed, 31 insertions(+), 27 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index e8839e7a..41a9e7a9 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,10 @@ All notable changes to the "leetcode" extension will be documented in this file.
 
 Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
 
+## [0.15.1]
+### Fixed
+[Bugs fixed](https://github.com/jdneo/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.15.1+is%3Aclosed+label%3Abug)
+
 ## [0.15.0]
 ### Added
 - Auto refresh the explorer after submitting [#91](https://github.com/jdneo/vscode-leetcode/issues/91)
diff --git a/package-lock.json b/package-lock.json
index f6c87e2d..0dbe10b8 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
 {
     "name": "vscode-leetcode",
-    "version": "0.15.0",
+    "version": "0.15.1",
     "lockfileVersion": 1,
     "requires": true,
     "dependencies": {
@@ -66,13 +66,13 @@
         },
         "acorn": {
             "version": "2.7.0",
-            "resolved": "http://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz",
+            "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz",
             "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=",
             "optional": true
         },
         "acorn-globals": {
             "version": "1.0.9",
-            "resolved": "http://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz",
+            "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz",
             "integrity": "sha1-VbtemGkVB7dFedBRNBMhfDgMVM8=",
             "optional": true,
             "requires": {
@@ -135,7 +135,7 @@
         },
         "async": {
             "version": "1.5.2",
-            "resolved": "http://registry.npmjs.org/async/-/async-1.5.2.tgz",
+            "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
             "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
         },
         "asynckit": {
@@ -258,7 +258,7 @@
         },
         "cheerio": {
             "version": "0.20.0",
-            "resolved": "http://registry.npmjs.org/cheerio/-/cheerio-0.20.0.tgz",
+            "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.20.0.tgz",
             "integrity": "sha1-XHEPK6uVZTJyhCugHG6mGzVF7DU=",
             "requires": {
                 "css-select": "~1.2.0",
@@ -358,7 +358,7 @@
         },
         "css-select": {
             "version": "1.2.0",
-            "resolved": "http://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
+            "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
             "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
             "requires": {
                 "boolbase": "~1.0.0",
@@ -715,7 +715,7 @@
         },
         "htmlparser2": {
             "version": "3.8.3",
-            "resolved": "http://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
+            "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
             "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=",
             "requires": {
                 "domelementtype": "1",
@@ -727,7 +727,7 @@
             "dependencies": {
                 "entities": {
                     "version": "1.0.0",
-                    "resolved": "http://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
+                    "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
                     "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY="
                 }
             }
@@ -855,7 +855,7 @@
         },
         "jsdom": {
             "version": "7.2.2",
-            "resolved": "http://registry.npmjs.org/jsdom/-/jsdom-7.2.2.tgz",
+            "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-7.2.2.tgz",
             "integrity": "sha1-QLQCdwwr2iNGkJa+6Rq2deOx/G4=",
             "optional": true,
             "requires": {
@@ -1135,7 +1135,7 @@
             "dependencies": {
                 "yargs": {
                     "version": "3.32.0",
-                    "resolved": "http://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz",
+                    "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz",
                     "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=",
                     "requires": {
                         "camelcase": "^2.0.1",
@@ -1151,7 +1151,7 @@
         },
         "ncp": {
             "version": "1.0.1",
-            "resolved": "http://registry.npmjs.org/ncp/-/ncp-1.0.1.tgz",
+            "resolved": "https://registry.npmjs.org/ncp/-/ncp-1.0.1.tgz",
             "integrity": "sha1-0VNn5cuHQyuhF9K/gP30Wuz7QkY="
         },
         "nice-try": {
@@ -1251,7 +1251,7 @@
         },
         "os-locale": {
             "version": "1.4.0",
-            "resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
+            "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
             "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
             "requires": {
                 "lcid": "^1.0.0"
@@ -1389,7 +1389,7 @@
         },
         "readable-stream": {
             "version": "1.1.14",
-            "resolved": "http://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+            "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
             "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
             "requires": {
                 "core-util-is": "~1.0.0",
@@ -1613,7 +1613,7 @@
         },
         "strip-eof": {
             "version": "1.0.0",
-            "resolved": "http://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+            "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
             "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="
         },
         "supports-color": {
@@ -1625,9 +1625,9 @@
             }
         },
         "symbol-tree": {
-            "version": "3.2.2",
-            "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz",
-            "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=",
+            "version": "3.2.4",
+            "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
+            "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
             "optional": true
         },
         "tough-cookie": {
@@ -1765,7 +1765,7 @@
             "dependencies": {
                 "async": {
                     "version": "0.9.2",
-                    "resolved": "http://registry.npmjs.org/async/-/async-0.9.2.tgz",
+                    "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
                     "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0="
                 }
             }
@@ -1786,9 +1786,9 @@
             }
         },
         "vsc-leetcode-cli": {
-            "version": "2.6.6",
-            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.6.6.tgz",
-            "integrity": "sha512-BWwwQu77RaKUqroRntGvoNzPRPAeZXnvDO5OGKM4lDPQyZmlb7auvYW0MSJe027WtYRudNOLVZpoirokA3QfcA==",
+            "version": "2.6.7",
+            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.6.7.tgz",
+            "integrity": "sha512-OBTF0XV9drJEdGCOysx/nCmmzgqBOnn6baH9On6ZbTNr9chl3reuC7OfKHNts/DzEW71wStT7Xg2N2WJSMsojw==",
             "requires": {
                 "ansi-styles": "3.2.1",
                 "cheerio": "0.20.0",
@@ -1873,7 +1873,7 @@
         },
         "winston": {
             "version": "2.1.1",
-            "resolved": "http://registry.npmjs.org/winston/-/winston-2.1.1.tgz",
+            "resolved": "https://registry.npmjs.org/winston/-/winston-2.1.1.tgz",
             "integrity": "sha1-PJNJ0ZYgf9G9/51LxD73JRDjoS4=",
             "requires": {
                 "async": "~1.0.0",
@@ -1887,12 +1887,12 @@
             "dependencies": {
                 "async": {
                     "version": "1.0.0",
-                    "resolved": "http://registry.npmjs.org/async/-/async-1.0.0.tgz",
+                    "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz",
                     "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k="
                 },
                 "colors": {
                     "version": "1.0.3",
-                    "resolved": "http://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
+                    "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
                     "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs="
                 },
                 "pkginfo": {
@@ -1909,7 +1909,7 @@
         },
         "wrap-ansi": {
             "version": "2.1.0",
-            "resolved": "http://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+            "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
             "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
             "requires": {
                 "string-width": "^1.0.1",
diff --git a/package.json b/package.json
index 607dc824..d0f5360e 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
     "name": "vscode-leetcode",
     "displayName": "LeetCode",
     "description": "Solve LeetCode problems in VS Code",
-    "version": "0.15.0",
+    "version": "0.15.1",
     "author": "Sheng Chen",
     "publisher": "shengchen",
     "license": "MIT",
@@ -394,6 +394,6 @@
         "markdown-it": "^8.4.2",
         "require-from-string": "^2.0.2",
         "unescape-js": "^1.1.1",
-        "vsc-leetcode-cli": "2.6.6"
+        "vsc-leetcode-cli": "2.6.7"
     }
 }

From 19af64fec1693e88c8b94335cd968892672a12fa Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Thu, 20 Jun 2019 12:58:20 +0800
Subject: [PATCH 09/92] docs: Update documents (#351)

---
 README.md            | 2 +-
 docs/README_zh-CN.md | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index 5fcf3138..8943f671 100644
--- a/README.md
+++ b/README.md
@@ -124,7 +124,7 @@
 | `leetcode.outputFolder`    | Specify the relative path to save the problem files. Besides using customized path, there are also several reserved words which can be used here: <ul><li>`${tag}`: Categorize the problem according to their tags.<li>`${language}`: Categorize the problem according to their language.</li><li>`${difficulty}`: Categorize the problem according to their difficulty.</li></ul>For example: `problem-${tag}-${difficulty}` | N/A           |
 | `leetcode.enableStatusBar` | Specify whether the LeetCode status bar will be shown or not.                                                                                                                                                                                                                                                                                                                      | `true`        |
 | **(Deprecated)** `leetcode.enableShortcuts` | Specify whether the submit and test shortcuts in editor or not.                                                                                                                                                                                                                                                                                                                    | `true`        |
-| `leetcode.editor.shortcuts` | Specify the customized shorcuts in editors | `["submit, test"]` |
+| `leetcode.editor.shortcuts` | Specify the customized shorcuts in editors. Supported values are: `submit`, `test`, `solution` and `description`. | `["submit, test"]` |
 | `leetcode.enableSideMode`  | Specify whether `preview`, `solution` and `submission` tab should be grouped into the second editor column when solving a problem.                                                                                                                                                                                                                                                 | `true`        |
 | `leetcode.nodePath`        | Specify the `Node.js` executable path.                                                                                                                                                                                                                                                                                                                                             | `node`        |
 
diff --git a/docs/README_zh-CN.md b/docs/README_zh-CN.md
index 0bd9d54d..d1a06b16 100644
--- a/docs/README_zh-CN.md
+++ b/docs/README_zh-CN.md
@@ -124,7 +124,7 @@
 | `leetcode.outputFolder`    | 指定保存文件时所用的相对文件夹路径。除了用户自定义路径外,也可以使用保留项,包括:<ul><li>`${tag}`: 根据题目的类别进行分类。<li>`${language}`: 根据题目的语言进行分类。</li><li>`${difficulty}`: 根据题目的难度进行分类。</li></ul>例如:`problem-${tag}-${difficulty}` | N/A        |
 | `leetcode.enableStatusBar` | 指定是否在 VS Code 下方显示插件状态栏。                                                                                                                                                                                             | `true`     |
 | **(Deprecated)** `leetcode.enableShortcuts` | 指定是否在 VS Code 编辑文件下方显示提交和测试的快捷按钮。                                                                                                                                                                           | `true`     |
-| `leetcode.editor.shortcuts` | 指定在编辑器内所自定义的快捷方式。 | `["submit, test"]` |
+| `leetcode.editor.shortcuts` | 指定在编辑器内所自定义的快捷方式。可用的快捷方式有: `submit`, `test`, `solution`, `description`。 | `["submit, test"]` |
 | `leetcode.enableSideMode`  | 指定在解决一道题时,是否将`问题预览`、`高票答案`与`提交结果`窗口集中在编辑器的第二栏。                                                                                                                                              | `true`     |
 | `leetcode.nodePath`        | 指定 `Node.js` 可执行文件的路径。                                                                                                                                                                                                   | `node`     |
 

From 1004e1df2573a8665a6060f6bd68cae852cfa80b Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Fri, 28 Jun 2019 13:07:47 +0800
Subject: [PATCH 10/92] feat: Support delete a session (#358)

---
 README.md                              |  2 +-
 docs/README_zh-CN.md                   |  2 +-
 package-lock.json                      |  6 +-
 package.json                           | 14 ++--
 src/commands/session.ts                | 91 +++++++++++++++++++++-----
 src/extension.ts                       |  3 +-
 src/leetCodeExecutor.ts                |  8 ++-
 src/statusbar/LeetCodeStatusBarItem.ts |  2 +-
 8 files changed, 91 insertions(+), 37 deletions(-)

diff --git a/README.md b/README.md
index 8943f671..cc0bffea 100644
--- a/README.md
+++ b/README.md
@@ -110,7 +110,7 @@
   <img src="https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/docs/imgs/session.png" alt="Manage Session" />
 </p>
 
-- To manage your LeetCode sessions, just clicking the `LeetCode: ***` at the bottom of the status bar. You can **switch** between sessions or **create** a new session.
+- To manage your LeetCode sessions, just clicking the `LeetCode: ***` at the bottom of the status bar. You can **switch** between sessions or **create**, **delete** a session.
 
 
 ## Settings
diff --git a/docs/README_zh-CN.md b/docs/README_zh-CN.md
index d1a06b16..0a3e23e5 100644
--- a/docs/README_zh-CN.md
+++ b/docs/README_zh-CN.md
@@ -110,7 +110,7 @@
   <img src="https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/docs/imgs/session.png" alt="管理存档" />
 </p>
 
-- 点击位于 VS Code 底部状态栏的 `LeetCode: ***` 管理 `LeetCode 存档`。你可以**切换**存档或者**创建**新的存档。
+- 点击位于 VS Code 底部状态栏的 `LeetCode: ***` 管理 `LeetCode 存档`。你可以**切换**存档或者**创建**,**删除**存档。
 
 
 ## 插件配置项
diff --git a/package-lock.json b/package-lock.json
index 0dbe10b8..46afe0b2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1786,9 +1786,9 @@
             }
         },
         "vsc-leetcode-cli": {
-            "version": "2.6.7",
-            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.6.7.tgz",
-            "integrity": "sha512-OBTF0XV9drJEdGCOysx/nCmmzgqBOnn6baH9On6ZbTNr9chl3reuC7OfKHNts/DzEW71wStT7Xg2N2WJSMsojw==",
+            "version": "2.6.8",
+            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.6.8.tgz",
+            "integrity": "sha512-Zo1GBWgr7orJawlTUmXMUCGpPJ8RThoHMh9vABiPJO3n+uhPgLNGkuETIKk7u+I1dD7FHk+G/IxfD5siR49z2A==",
             "requires": {
                 "ansi-styles": "3.2.1",
                 "cheerio": "0.20.0",
diff --git a/package.json b/package.json
index d0f5360e..0ba3e9aa 100644
--- a/package.json
+++ b/package.json
@@ -29,8 +29,7 @@
         "onCommand:leetcode.toggleLeetCodeCn",
         "onCommand:leetcode.signin",
         "onCommand:leetcode.signout",
-        "onCommand:leetcode.selectSessions",
-        "onCommand:leetcode.createSession",
+        "onCommand:leetcode.manageSessions",
         "onCommand:leetcode.refreshExplorer",
         "onCommand:leetcode.showProblem",
         "onCommand:leetcode.previewProblem",
@@ -72,13 +71,8 @@
                 "category": "LeetCode"
             },
             {
-                "command": "leetcode.selectSessions",
-                "title": "Select Session",
-                "category": "LeetCode"
-            },
-            {
-                "command": "leetcode.createSession",
-                "title": "Create New Session",
+                "command": "leetcode.manageSessions",
+                "title": "Manage Sessions",
                 "category": "LeetCode"
             },
             {
@@ -394,6 +388,6 @@
         "markdown-it": "^8.4.2",
         "require-from-string": "^2.0.2",
         "unescape-js": "^1.1.1",
-        "vsc-leetcode-cli": "2.6.7"
+        "vsc-leetcode-cli": "2.6.8"
     }
 }
diff --git a/src/commands/session.ts b/src/commands/session.ts
index 5cf37724..f86d4cf3 100644
--- a/src/commands/session.ts
+++ b/src/commands/session.ts
@@ -5,7 +5,7 @@ import * as vscode from "vscode";
 import { leetCodeExecutor } from "../leetCodeExecutor";
 import { leetCodeManager } from "../leetCodeManager";
 import { IQuickItemEx } from "../shared";
-import { DialogType, promptForOpenOutputChannel, promptForSignIn } from "../utils/uiUtils";
+import { DialogOptions, DialogType, promptForOpenOutputChannel, promptForSignIn } from "../utils/uiUtils";
 
 export async function getSessionList(): Promise<ISession[]> {
     const signInStatus: string | undefined = leetCodeManager.getUser();
@@ -32,17 +32,21 @@ export async function getSessionList(): Promise<ISession[]> {
     return sessions;
 }
 
-export async function selectSession(): Promise<void> {
-    const choice: IQuickItemEx<string> | undefined = await vscode.window.showQuickPick(parseSessionsToPicks());
+export async function manageSessions(): Promise<void> {
+    const choice: IQuickItemEx<ISession | string> | undefined = await vscode.window.showQuickPick(parseSessionsToPicks(true /* includeOperation */));
     if (!choice || choice.description === "Active") {
         return;
     }
-    if (choice.value === ":createNewSession") {
-        await vscode.commands.executeCommand("leetcode.createSession");
+    if (choice.value === ":createSession") {
+        await createSession();
+        return;
+    }
+    if (choice.value === ":deleteSession") {
+        await deleteSession();
         return;
     }
     try {
-        await leetCodeExecutor.enableSession(choice.value);
+        await leetCodeExecutor.enableSession((choice.value as ISession).id);
         vscode.window.showInformationMessage(`Successfully switched to session '${choice.label}'.`);
         await vscode.commands.executeCommand("leetcode.refreshExplorer");
     } catch (error) {
@@ -50,22 +54,20 @@ export async function selectSession(): Promise<void> {
     }
 }
 
-async function parseSessionsToPicks(): Promise<Array<IQuickItemEx<string>>> {
-    return new Promise(async (resolve: (res: Array<IQuickItemEx<string>>) => void): Promise<void> => {
+async function parseSessionsToPicks(includeOperations: boolean = false): Promise<Array<IQuickItemEx<ISession | string>>> {
+    return new Promise(async (resolve: (res: Array<IQuickItemEx<ISession | string>>) => void): Promise<void> => {
         try {
             const sessions: ISession[] = await getSessionList();
-            const picks: Array<IQuickItemEx<string>> = sessions.map((s: ISession) => Object.assign({}, {
+            const picks: Array<IQuickItemEx<ISession | string>> = sessions.map((s: ISession) => Object.assign({}, {
                 label: `${s.active ? "$(check) " : ""}${s.name}`,
                 description: s.active ? "Active" : "",
                 detail: `AC Questions: ${s.acQuestions}, AC Submits: ${s.acSubmits}`,
-                value: s.id,
+                value: s,
             }));
-            picks.push({
-                label: "$(plus) Create a new session",
-                description: "",
-                detail: "Click this item to create a new session",
-                value: ":createNewSession",
-            });
+
+            if (includeOperations) {
+                picks.push(...parseSessionManagementOperations());
+            }
             resolve(picks);
         } catch (error) {
             return await promptForOpenOutputChannel("Failed to list sessions. Please open the output channel for details.", DialogType.error);
@@ -73,7 +75,21 @@ async function parseSessionsToPicks(): Promise<Array<IQuickItemEx<string>>> {
     });
 }
 
-export async function createSession(): Promise<void> {
+function parseSessionManagementOperations(): Array<IQuickItemEx<string>> {
+    return [{
+        label: "$(plus) Create a session",
+        description: "",
+        detail: "Click this item to create a session",
+        value: ":createSession",
+    }, {
+        label: "$(trashcan) Delete a session",
+        description: "",
+        detail: "Click this item to DELETE a session",
+        value: ":deleteSession",
+    }];
+}
+
+async function createSession(): Promise<void> {
     const session: string | undefined = await vscode.window.showInputBox({
         prompt: "Enter the new session name.",
         validateInput: (s: string): string | undefined => s && s.trim() ? undefined : "Session name must not be empty",
@@ -89,6 +105,47 @@ export async function createSession(): Promise<void> {
     }
 }
 
+async function deleteSession(): Promise<void> {
+    const choice: IQuickItemEx<ISession | string> | undefined = await vscode.window.showQuickPick(
+        parseSessionsToPicks(false /* includeOperation */),
+        { placeHolder: "Please select the session you want to delete" },
+    );
+    if (!choice) {
+        return;
+    }
+
+    const selectedSession: ISession = choice.value as ISession;
+    if (selectedSession.active) {
+        vscode.window.showInformationMessage("Cannot delete an active session.");
+        return;
+    }
+
+    const action: vscode.MessageItem | undefined = await vscode.window.showWarningMessage(
+        `This operation cannot be reverted. Are you sure to delete the session: ${selectedSession.name}?`,
+        DialogOptions.yes,
+        DialogOptions.no,
+    );
+    if (action !== DialogOptions.yes) {
+        return;
+    }
+
+    const confirm: string | undefined = await vscode.window.showInputBox({
+        prompt: "Enter 'yes' to confirm deleting the session",
+        validateInput: (value: string): string => {
+            if (value === "yes") {
+                return "";
+            } else {
+                return "Enter 'yes' to confirm";
+            }
+        },
+    });
+
+    if (confirm === "yes") {
+        await leetCodeExecutor.deleteSession(selectedSession.id);
+        vscode.window.showInformationMessage("The session has been successfully deleted.");
+    }
+}
+
 export interface ISession {
     active: boolean;
     id: string;
diff --git a/src/extension.ts b/src/extension.ts
index a2467c8d..4d33d803 100644
--- a/src/extension.ts
+++ b/src/extension.ts
@@ -51,8 +51,7 @@ export async function activate(context: vscode.ExtensionContext): Promise<void>
             vscode.commands.registerCommand("leetcode.toggleLeetCodeCn", () => plugin.switchEndpoint()),
             vscode.commands.registerCommand("leetcode.signin", () => leetCodeManager.signIn()),
             vscode.commands.registerCommand("leetcode.signout", () => leetCodeManager.signOut()),
-            vscode.commands.registerCommand("leetcode.selectSessions", () => session.selectSession()),
-            vscode.commands.registerCommand("leetcode.createSession", () => session.createSession()),
+            vscode.commands.registerCommand("leetcode.manageSessions", () => session.manageSessions()),
             vscode.commands.registerCommand("leetcode.previewProblem", (node: LeetCodeNode) => show.previewProblem(node)),
             vscode.commands.registerCommand("leetcode.showProblem", (node: LeetCodeNode) => show.showProblem(node)),
             vscode.commands.registerCommand("leetcode.searchProblem", () => show.searchProblem()),
diff --git a/src/leetCodeExecutor.ts b/src/leetCodeExecutor.ts
index ad2d0514..c3ef495c 100644
--- a/src/leetCodeExecutor.ts
+++ b/src/leetCodeExecutor.ts
@@ -124,8 +124,12 @@ class LeetCodeExecutor implements Disposable {
         return await this.executeCommandEx(this.nodeExecutable, [await this.getLeetCodeBinaryPath(), "session", "-e", name]);
     }
 
-    public async createSession(name: string): Promise<string> {
-        return await this.executeCommandEx(this.nodeExecutable, [await this.getLeetCodeBinaryPath(), "session", "-c", name]);
+    public async createSession(id: string): Promise<string> {
+        return await this.executeCommandEx(this.nodeExecutable, [await this.getLeetCodeBinaryPath(), "session", "-c", id]);
+    }
+
+    public async deleteSession(id: string): Promise<string> {
+        return await this.executeCommandEx(this.nodeExecutable, [await this.getLeetCodeBinaryPath(), "session", "-d", id]);
     }
 
     public async submitSolution(filePath: string): Promise<string> {
diff --git a/src/statusbar/LeetCodeStatusBarItem.ts b/src/statusbar/LeetCodeStatusBarItem.ts
index 5ca9bde6..35ca7412 100644
--- a/src/statusbar/LeetCodeStatusBarItem.ts
+++ b/src/statusbar/LeetCodeStatusBarItem.ts
@@ -9,7 +9,7 @@ export class LeetCodeStatusBarItem implements vscode.Disposable {
 
     constructor() {
         this.statusBarItem = vscode.window.createStatusBarItem();
-        this.statusBarItem.command = "leetcode.selectSessions";
+        this.statusBarItem.command = "leetcode.manageSessions";
     }
 
     public updateStatusBar(status: UserStatus, user?: string): void {

From 4abd6fcce099d1afc87638719c866ad477bce160 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Fri, 28 Jun 2019 13:29:23 +0800
Subject: [PATCH 11/92] fix: Break new line when the description is too long
 (#359)

---
 src/webview/leetCodePreviewProvider.ts | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/webview/leetCodePreviewProvider.ts b/src/webview/leetCodePreviewProvider.ts
index a019db95..1bd83e69 100644
--- a/src/webview/leetCodePreviewProvider.ts
+++ b/src/webview/leetCodePreviewProvider.ts
@@ -103,6 +103,9 @@ class LeetCodePreviewProvider extends LeetCodeWebview {
             <head>
                 ${markdownEngine.getStyles()}
                 ${!this.sideMode ? button.style : ""}
+                <style>
+                    code { white-space: pre-wrap; }
+                </style>
             </head>
             <body>
                 ${head}

From 453c51a3bf62aacb2354e92fdcccd3c49aeb3550 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Thu, 11 Jul 2019 16:23:40 +0800
Subject: [PATCH 12/92] feat: Can specify the workspace folder to save the
 files (#360)

---
 README.md                   |  3 ++-
 docs/README_zh-CN.md        |  3 ++-
 package.json                |  6 +++++
 src/commands/show.ts        |  4 +++
 src/utils/settingUtils.ts   |  6 +++++
 src/utils/workspaceUtils.ts | 54 +++++++++++++++++++++++++++++--------
 6 files changed, 63 insertions(+), 13 deletions(-)

diff --git a/README.md b/README.md
index cc0bffea..a46fe59c 100644
--- a/README.md
+++ b/README.md
@@ -73,7 +73,7 @@
 - Directly click on the problem or right click the problem in the `LeetCode Explorer` and select `Preview Problem` to see the problem description.
 - Select `Show Problem` to directly open the file with the problem description.
 
-  > Note: If no folder is opened in VS Code, the extension will save the problem files in **$HOME/.leetcode/**.
+  > Note:You can specify the path of the workspace folder to store the problem files by updating the setting `leetcode.workspaceFolder`. The default value is:**$HOME/.leetcode/**.
 
   > You can specify whether including the problem description in comments or not by updating the setting `leetcode.showCommentDescription`.
 
@@ -121,6 +121,7 @@
 | `leetcode.defaultLanguage` | Specify the default language used to solve the problem. Supported languages are: `bash`, `c`, `cpp`, `csharp`, `golang`, `java`, `javascript`, `kotlin`, `mysql`, `php`, `python`,`python3`,`ruby`,`rust`, `scala`,`swift`                                                                                                                                                         | `N/A`         |
 | `leetcode.useWsl`          | Specify whether to use WSL or not                                                                                                                                                                                                                                                                                                                                                  | `false`       |
 | `leetcode.endpoint`        | Specify the active endpoint. Supported endpoints are: `leetcode`, `leetcode-cn`                                                                                                                                                                                                                                                                                                    | `leetcode`    |
+| `leetcode.workspaceFolder` | Specify the path of the workspace folder to store the problem files. | `${home}/.leetcode` |
 | `leetcode.outputFolder`    | Specify the relative path to save the problem files. Besides using customized path, there are also several reserved words which can be used here: <ul><li>`${tag}`: Categorize the problem according to their tags.<li>`${language}`: Categorize the problem according to their language.</li><li>`${difficulty}`: Categorize the problem according to their difficulty.</li></ul>For example: `problem-${tag}-${difficulty}` | N/A           |
 | `leetcode.enableStatusBar` | Specify whether the LeetCode status bar will be shown or not.                                                                                                                                                                                                                                                                                                                      | `true`        |
 | **(Deprecated)** `leetcode.enableShortcuts` | Specify whether the submit and test shortcuts in editor or not.                                                                                                                                                                                                                                                                                                                    | `true`        |
diff --git a/docs/README_zh-CN.md b/docs/README_zh-CN.md
index 0a3e23e5..6d90edb6 100644
--- a/docs/README_zh-CN.md
+++ b/docs/README_zh-CN.md
@@ -73,7 +73,7 @@
 - 直接点击题目或者在 `LeetCode Explorer` 中**右键**题目并选择 `Preview Problem` 可查看题目描述
 - 选择 `Show Problem` 可直接进行答题。
 
-  > 注意:若当前 VS Code 没有已打开的文件夹,则生成的题目文件会存储于 **$HOME/.leetcode/** 目录下。
+  > 注意:你可以通过更新配置项 `leetcode.workspaceFolder` 来指定保存题目文件所用的工作区路径。默认工作区路径为:**$HOME/.leetcode/**。
 
   > 注意:你可以通过更新配置项 `leetcode.showCommentDescription` 来指定是否要在注释中包含题目描述。
 
@@ -121,6 +121,7 @@
 | `leetcode.defaultLanguage` | 指定答题时使用的默认语言,可选语言有:`bash`, `c`, `cpp`, `csharp`, `golang`, `java`, `javascript`, `kotlin`, `mysql`, `php`, `python`,`python3`,`ruby`, `rust`, `scala`,`swift`                                                    | `N/A`      |
 | `leetcode.useWsl`          | 指定是否启用 WSL                                                                                                                                                                                                                    | `false`    |
 | `leetcode.endpoint`        | 指定使用的终端,可用终端有:`leetcode`, `leetcode-cn`                                                                                                                                                                               | `leetcode` |
+| `leetcode.workspaceFolder` | 指定保存文件的工作区目录 | `${home}/.leetcode` |
 | `leetcode.outputFolder`    | 指定保存文件时所用的相对文件夹路径。除了用户自定义路径外,也可以使用保留项,包括:<ul><li>`${tag}`: 根据题目的类别进行分类。<li>`${language}`: 根据题目的语言进行分类。</li><li>`${difficulty}`: 根据题目的难度进行分类。</li></ul>例如:`problem-${tag}-${difficulty}` | N/A        |
 | `leetcode.enableStatusBar` | 指定是否在 VS Code 下方显示插件状态栏。                                                                                                                                                                                             | `true`     |
 | **(Deprecated)** `leetcode.enableShortcuts` | 指定是否在 VS Code 编辑文件下方显示提交和测试的快捷按钮。                                                                                                                                                                           | `true`     |
diff --git a/package.json b/package.json
index 0ba3e9aa..5f90e490 100644
--- a/package.json
+++ b/package.json
@@ -310,6 +310,12 @@
                         ],
                         "description": "Endpoint of the user account."
                     },
+                    "leetcode.workspaceFolder": {
+                        "type": "string",
+                        "scope": "application",
+                        "description": "The path of the workspace folder to store the problem files.",
+                        "default": "${home}/.leetcode"
+                    },
                     "leetcode.outputFolder": {
                         "type": "string",
                         "scope": "application",
diff --git a/src/commands/show.ts b/src/commands/show.ts
index 7dceffed..896516a9 100644
--- a/src/commands/show.ts
+++ b/src/commands/show.ts
@@ -128,6 +128,10 @@ async function showProblemInternal(node: IProblem): Promise<void> {
 
         const leetCodeConfig: vscode.WorkspaceConfiguration = vscode.workspace.getConfiguration("leetcode");
         let outDir: string = await selectWorkspaceFolder();
+        if (!outDir) {
+            return;
+        }
+
         let relativePath: string = (leetCodeConfig.get<string>("outputFolder", "")).trim();
         if (relativePath) {
             relativePath = await resolveRelativePath(relativePath, node, language);
diff --git a/src/utils/settingUtils.ts b/src/utils/settingUtils.ts
index 3cc48ea7..b7cb5919 100644
--- a/src/utils/settingUtils.ts
+++ b/src/utils/settingUtils.ts
@@ -1,6 +1,7 @@
 // Copyright (c) jdneo. All rights reserved.
 // Licensed under the MIT license.
 
+import * as os from "os";
 import { workspace, WorkspaceConfiguration } from "vscode";
 
 export function getWorkspaceConfiguration(): WorkspaceConfiguration {
@@ -11,6 +12,11 @@ export function shouldHideSolvedProblem(): boolean {
     return getWorkspaceConfiguration().get<boolean>("hideSolved", false);
 }
 
+export function getWorkspaceFolder(): string {
+    const rawWorkspaceFolder: string = getWorkspaceConfiguration().get<string>("workspaceFolder", "${home}/.leetcode");
+    return rawWorkspaceFolder.replace(/\${home}/i, os.homedir());
+}
+
 export function getEditorShortcuts(): string[] {
     return getWorkspaceConfiguration().get<string[]>("editor.shortcuts", ["submit", "test"]);
 }
diff --git a/src/utils/workspaceUtils.ts b/src/utils/workspaceUtils.ts
index f2f2d16b..df7df0ad 100644
--- a/src/utils/workspaceUtils.ts
+++ b/src/utils/workspaceUtils.ts
@@ -1,26 +1,47 @@
 // Copyright (c) jdneo. All rights reserved.
 // Licensed under the MIT license.
 
-import * as os from "os";
 import * as path from "path";
 import * as vscode from "vscode";
+import { getWorkspaceFolder } from "./settingUtils";
 import * as wsl from "./wslUtils";
 
 export async function selectWorkspaceFolder(): Promise<string> {
-    let folder: vscode.WorkspaceFolder | undefined;
-    if (vscode.workspace.workspaceFolders && vscode.workspace.workspaceFolders.length > 0) {
-        if (vscode.workspace.workspaceFolders.length > 1) {
-            folder = await vscode.window.showWorkspaceFolderPick({
-                placeHolder: "Select the working directory you wish to use",
-            });
-        } else {
-            folder = vscode.workspace.workspaceFolders[0];
+    const workspaceFolderSetting: string = getWorkspaceFolder();
+    const workspaceFolders: vscode.WorkspaceFolder[] = vscode.workspace.workspaceFolders || [];
+    let needAsk: boolean = true;
+    for (const folder of workspaceFolders) {
+        if (isSubFolder(folder.uri.fsPath, workspaceFolderSetting)) {
+            needAsk = false;
         }
     }
 
-    const workFolder: string = folder ? folder.uri.fsPath : path.join(os.homedir(), ".leetcode");
+    if (needAsk) {
+        const choice: string | undefined = await vscode.window.showQuickPick(
+            [
+                OpenOption.openInCurrentWindow,
+                OpenOption.openInNewWindow,
+                OpenOption.addToWorkspace,
+            ],
+            { placeHolder: "Select how you would like to open your workspace folder" },
+        );
 
-    return wsl.useWsl() ? wsl.toWslPath(workFolder) : workFolder;
+        switch (choice) {
+            case OpenOption.openInCurrentWindow:
+                await vscode.commands.executeCommand("vscode.openFolder", vscode.Uri.file(workspaceFolderSetting), false);
+                return "";
+            case OpenOption.openInNewWindow:
+                await vscode.commands.executeCommand("vscode.openFolder", vscode.Uri.file(workspaceFolderSetting), true);
+                return "";
+            case OpenOption.addToWorkspace:
+                vscode.workspace.updateWorkspaceFolders(workspaceFolders.length, 0, { uri: vscode.Uri.file(workspaceFolderSetting) });
+                break;
+            default:
+                return "";
+        }
+    }
+
+    return wsl.useWsl() ? wsl.toWslPath(workspaceFolderSetting) : workspaceFolderSetting;
 }
 
 export async function getActiveFilePath(uri?: vscode.Uri): Promise<string | undefined> {
@@ -40,3 +61,14 @@ export async function getActiveFilePath(uri?: vscode.Uri): Promise<string | unde
     }
     return wsl.useWsl() ? wsl.toWslPath(textEditor.document.uri.fsPath) : textEditor.document.uri.fsPath;
 }
+
+function isSubFolder(from: string, to: string): boolean {
+    const relative: string = path.relative(from, to);
+    return !!relative && !relative.startsWith("..") && !path.isAbsolute(relative);
+}
+
+enum OpenOption {
+    openInCurrentWindow = "Open in current window",
+    openInNewWindow = "Open in new window",
+    addToWorkspace = "Add to workspace",
+}

From 1798edd2d1d9b948be9a04f50a748075e6da5338 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Thu, 11 Jul 2019 17:00:49 +0800
Subject: [PATCH 13/92] fix: Failed to resolve the Node executable path when it
 contains spaces (#363)

---
 README.md                   | 2 +-
 docs/README_zh-CN.md        | 2 +-
 package.json                | 2 +-
 src/leetCodeExecutor.ts     | 2 ++
 src/utils/workspaceUtils.ts | 5 ++++-
 5 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/README.md b/README.md
index a46fe59c..ce36142a 100644
--- a/README.md
+++ b/README.md
@@ -127,7 +127,7 @@
 | **(Deprecated)** `leetcode.enableShortcuts` | Specify whether the submit and test shortcuts in editor or not.                                                                                                                                                                                                                                                                                                                    | `true`        |
 | `leetcode.editor.shortcuts` | Specify the customized shorcuts in editors. Supported values are: `submit`, `test`, `solution` and `description`. | `["submit, test"]` |
 | `leetcode.enableSideMode`  | Specify whether `preview`, `solution` and `submission` tab should be grouped into the second editor column when solving a problem.                                                                                                                                                                                                                                                 | `true`        |
-| `leetcode.nodePath`        | Specify the `Node.js` executable path.                                                                                                                                                                                                                                                                                                                                             | `node`        |
+| `leetcode.nodePath`        | Specify the `Node.js` executable path. for example, C:\Program Files\nodejs\node.exe                                                                                                                                                                                                                                                                                                                                            | `node`        |
 
 ## Want Help?
 
diff --git a/docs/README_zh-CN.md b/docs/README_zh-CN.md
index 6d90edb6..be328359 100644
--- a/docs/README_zh-CN.md
+++ b/docs/README_zh-CN.md
@@ -127,7 +127,7 @@
 | **(Deprecated)** `leetcode.enableShortcuts` | 指定是否在 VS Code 编辑文件下方显示提交和测试的快捷按钮。                                                                                                                                                                           | `true`     |
 | `leetcode.editor.shortcuts` | 指定在编辑器内所自定义的快捷方式。可用的快捷方式有: `submit`, `test`, `solution`, `description`。 | `["submit, test"]` |
 | `leetcode.enableSideMode`  | 指定在解决一道题时,是否将`问题预览`、`高票答案`与`提交结果`窗口集中在编辑器的第二栏。                                                                                                                                              | `true`     |
-| `leetcode.nodePath`        | 指定 `Node.js` 可执行文件的路径。                                                                                                                                                                                                   | `node`     |
+| `leetcode.nodePath`        | 指定 `Node.js` 可执行文件的路径。如:C:\Program Files\nodejs\node.exe                                                                                                                                                                                                   | `node`     |
 
 ## 需要帮助?
 在遇到任何问题时,可以先查看一下[疑难解答](https://github.com/jdneo/vscode-leetcode/wiki/%E7%96%91%E9%9A%BE%E8%A7%A3%E7%AD%94)以及[常见问题](https://github.com/jdneo/vscode-leetcode/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)寻求帮助。
diff --git a/package.json b/package.json
index 5f90e490..5e0005b8 100644
--- a/package.json
+++ b/package.json
@@ -361,7 +361,7 @@
                         "type": "string",
                         "default": "node",
                         "scope": "application",
-                        "description": "The Node.js executable path."
+                        "description": "The Node.js executable path. for example, C:\\Program Files\\nodejs\\node.exe"
                     }
                 }
             }
diff --git a/src/leetCodeExecutor.ts b/src/leetCodeExecutor.ts
index c3ef495c..8bef00fa 100644
--- a/src/leetCodeExecutor.ts
+++ b/src/leetCodeExecutor.ts
@@ -49,6 +49,8 @@ class LeetCodeExecutor implements Disposable {
             if (!await fse.pathExists(this.nodeExecutable)) {
                 throw new Error(`The Node.js executable does not exist on path ${this.nodeExecutable}`);
             }
+            // Wrap the executable with "" to avoid space issue in the path.
+            this.nodeExecutable = `"${this.nodeExecutable}"`;
             if (useWsl()) {
                 this.nodeExecutable = await toWslPath(this.nodeExecutable);
             }
diff --git a/src/utils/workspaceUtils.ts b/src/utils/workspaceUtils.ts
index df7df0ad..b27a3ddf 100644
--- a/src/utils/workspaceUtils.ts
+++ b/src/utils/workspaceUtils.ts
@@ -64,7 +64,10 @@ export async function getActiveFilePath(uri?: vscode.Uri): Promise<string | unde
 
 function isSubFolder(from: string, to: string): boolean {
     const relative: string = path.relative(from, to);
-    return !!relative && !relative.startsWith("..") && !path.isAbsolute(relative);
+    if (relative === "") {
+        return true;
+    }
+    return !relative.startsWith("..") && !path.isAbsolute(relative);
 }
 
 enum OpenOption {

From a00dac5d07bdb6369cc3dd64b03e3402f5f36a26 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Thu, 11 Jul 2019 20:21:04 +0800
Subject: [PATCH 14/92] chore: Prepare for 0.15.2 (#364)

---
 CHANGELOG.md      | 8 ++++++++
 package-lock.json | 2 +-
 package.json      | 2 +-
 3 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 41a9e7a9..c5e16401 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,14 @@ All notable changes to the "leetcode" extension will be documented in this file.
 
 Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
 
+##[0.15.2]
+### Added
+- Prompt to open the workspace for LeetCode [#130](https://github.com/jdneo/vscode-leetcode/issues/130)
+- Support deleting sessions [#198](https://github.com/jdneo/vscode-leetcode/issues/130)
+
+### Fixed
+[Bugs fixed](https://github.com/jdneo/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.15.2+is%3Aclosed+label%3Abug)
+
 ## [0.15.1]
 ### Fixed
 [Bugs fixed](https://github.com/jdneo/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.15.1+is%3Aclosed+label%3Abug)
diff --git a/package-lock.json b/package-lock.json
index 46afe0b2..ed6984a3 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
 {
     "name": "vscode-leetcode",
-    "version": "0.15.1",
+    "version": "0.15.2",
     "lockfileVersion": 1,
     "requires": true,
     "dependencies": {
diff --git a/package.json b/package.json
index 5e0005b8..66450123 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
     "name": "vscode-leetcode",
     "displayName": "LeetCode",
     "description": "Solve LeetCode problems in VS Code",
-    "version": "0.15.1",
+    "version": "0.15.2",
     "author": "Sheng Chen",
     "publisher": "shengchen",
     "license": "MIT",

From e1f3206756c1909c36a3832bec8f010e4e18bf8e Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Fri, 12 Jul 2019 15:16:12 +0800
Subject: [PATCH 15/92] feat: Can select folder to save the LeetCode files
 (#365)

---
 README.md                   |  2 +-
 docs/README_zh-CN.md        |  2 +-
 package.json                |  2 +-
 src/utils/settingUtils.ts   |  4 +--
 src/utils/uiUtils.ts        | 12 +++++++++
 src/utils/workspaceUtils.ts | 50 +++++++++++++++++++++++++++++++++++--
 6 files changed, 64 insertions(+), 8 deletions(-)

diff --git a/README.md b/README.md
index ce36142a..95067331 100644
--- a/README.md
+++ b/README.md
@@ -121,7 +121,7 @@
 | `leetcode.defaultLanguage` | Specify the default language used to solve the problem. Supported languages are: `bash`, `c`, `cpp`, `csharp`, `golang`, `java`, `javascript`, `kotlin`, `mysql`, `php`, `python`,`python3`,`ruby`,`rust`, `scala`,`swift`                                                                                                                                                         | `N/A`         |
 | `leetcode.useWsl`          | Specify whether to use WSL or not                                                                                                                                                                                                                                                                                                                                                  | `false`       |
 | `leetcode.endpoint`        | Specify the active endpoint. Supported endpoints are: `leetcode`, `leetcode-cn`                                                                                                                                                                                                                                                                                                    | `leetcode`    |
-| `leetcode.workspaceFolder` | Specify the path of the workspace folder to store the problem files. | `${home}/.leetcode` |
+| `leetcode.workspaceFolder` | Specify the path of the workspace folder to store the problem files. | `""` |
 | `leetcode.outputFolder`    | Specify the relative path to save the problem files. Besides using customized path, there are also several reserved words which can be used here: <ul><li>`${tag}`: Categorize the problem according to their tags.<li>`${language}`: Categorize the problem according to their language.</li><li>`${difficulty}`: Categorize the problem according to their difficulty.</li></ul>For example: `problem-${tag}-${difficulty}` | N/A           |
 | `leetcode.enableStatusBar` | Specify whether the LeetCode status bar will be shown or not.                                                                                                                                                                                                                                                                                                                      | `true`        |
 | **(Deprecated)** `leetcode.enableShortcuts` | Specify whether the submit and test shortcuts in editor or not.                                                                                                                                                                                                                                                                                                                    | `true`        |
diff --git a/docs/README_zh-CN.md b/docs/README_zh-CN.md
index be328359..c23ea861 100644
--- a/docs/README_zh-CN.md
+++ b/docs/README_zh-CN.md
@@ -121,7 +121,7 @@
 | `leetcode.defaultLanguage` | 指定答题时使用的默认语言,可选语言有:`bash`, `c`, `cpp`, `csharp`, `golang`, `java`, `javascript`, `kotlin`, `mysql`, `php`, `python`,`python3`,`ruby`, `rust`, `scala`,`swift`                                                    | `N/A`      |
 | `leetcode.useWsl`          | 指定是否启用 WSL                                                                                                                                                                                                                    | `false`    |
 | `leetcode.endpoint`        | 指定使用的终端,可用终端有:`leetcode`, `leetcode-cn`                                                                                                                                                                               | `leetcode` |
-| `leetcode.workspaceFolder` | 指定保存文件的工作区目录 | `${home}/.leetcode` |
+| `leetcode.workspaceFolder` | 指定保存文件的工作区目录 | `""` |
 | `leetcode.outputFolder`    | 指定保存文件时所用的相对文件夹路径。除了用户自定义路径外,也可以使用保留项,包括:<ul><li>`${tag}`: 根据题目的类别进行分类。<li>`${language}`: 根据题目的语言进行分类。</li><li>`${difficulty}`: 根据题目的难度进行分类。</li></ul>例如:`problem-${tag}-${difficulty}` | N/A        |
 | `leetcode.enableStatusBar` | 指定是否在 VS Code 下方显示插件状态栏。                                                                                                                                                                                             | `true`     |
 | **(Deprecated)** `leetcode.enableShortcuts` | 指定是否在 VS Code 编辑文件下方显示提交和测试的快捷按钮。                                                                                                                                                                           | `true`     |
diff --git a/package.json b/package.json
index 66450123..bb04635b 100644
--- a/package.json
+++ b/package.json
@@ -314,7 +314,7 @@
                         "type": "string",
                         "scope": "application",
                         "description": "The path of the workspace folder to store the problem files.",
-                        "default": "${home}/.leetcode"
+                        "default": ""
                     },
                     "leetcode.outputFolder": {
                         "type": "string",
diff --git a/src/utils/settingUtils.ts b/src/utils/settingUtils.ts
index b7cb5919..388f31b8 100644
--- a/src/utils/settingUtils.ts
+++ b/src/utils/settingUtils.ts
@@ -1,7 +1,6 @@
 // Copyright (c) jdneo. All rights reserved.
 // Licensed under the MIT license.
 
-import * as os from "os";
 import { workspace, WorkspaceConfiguration } from "vscode";
 
 export function getWorkspaceConfiguration(): WorkspaceConfiguration {
@@ -13,8 +12,7 @@ export function shouldHideSolvedProblem(): boolean {
 }
 
 export function getWorkspaceFolder(): string {
-    const rawWorkspaceFolder: string = getWorkspaceConfiguration().get<string>("workspaceFolder", "${home}/.leetcode");
-    return rawWorkspaceFolder.replace(/\${home}/i, os.homedir());
+    return getWorkspaceConfiguration().get<string>("workspaceFolder", "");
 }
 
 export function getEditorShortcuts(): string[] {
diff --git a/src/utils/uiUtils.ts b/src/utils/uiUtils.ts
index 1fec63e3..037b2371 100644
--- a/src/utils/uiUtils.ts
+++ b/src/utils/uiUtils.ts
@@ -92,6 +92,18 @@ export async function showFileSelectDialog(): Promise<vscode.Uri[] | undefined>
     return await vscode.window.showOpenDialog(options);
 }
 
+export async function showDirectorySelectDialog(): Promise<vscode.Uri[] | undefined> {
+    const defaultUri: vscode.Uri | undefined = vscode.workspace.rootPath ? vscode.Uri.file(vscode.workspace.rootPath) : undefined;
+    const options: vscode.OpenDialogOptions = {
+        defaultUri,
+        canSelectFiles: false,
+        canSelectFolders: true,
+        canSelectMany: false,
+        openLabel: "Select",
+    };
+    return await vscode.window.showOpenDialog(options);
+}
+
 export async function openUrl(url: string): Promise<void> {
     vscode.commands.executeCommand("vscode.open", vscode.Uri.parse(url));
 }
diff --git a/src/utils/workspaceUtils.ts b/src/utils/workspaceUtils.ts
index b27a3ddf..b77fc3c7 100644
--- a/src/utils/workspaceUtils.ts
+++ b/src/utils/workspaceUtils.ts
@@ -1,13 +1,23 @@
 // Copyright (c) jdneo. All rights reserved.
 // Licensed under the MIT license.
 
+import * as os from "os";
 import * as path from "path";
 import * as vscode from "vscode";
-import { getWorkspaceFolder } from "./settingUtils";
+import { IQuickItemEx } from "../shared";
+import { getWorkspaceConfiguration, getWorkspaceFolder } from "./settingUtils";
+import { showDirectorySelectDialog } from "./uiUtils";
 import * as wsl from "./wslUtils";
 
 export async function selectWorkspaceFolder(): Promise<string> {
-    const workspaceFolderSetting: string = getWorkspaceFolder();
+    let workspaceFolderSetting: string = getWorkspaceFolder();
+    if (workspaceFolderSetting.trim() === "") {
+        workspaceFolderSetting = await determineLeetCodeFolder();
+        if (workspaceFolderSetting === "") {
+            // User cancelled
+            return workspaceFolderSetting;
+        }
+    }
     const workspaceFolders: vscode.WorkspaceFolder[] = vscode.workspace.workspaceFolders || [];
     let needAsk: boolean = true;
     for (const folder of workspaceFolders) {
@@ -70,6 +80,42 @@ function isSubFolder(from: string, to: string): boolean {
     return !relative.startsWith("..") && !path.isAbsolute(relative);
 }
 
+async function determineLeetCodeFolder(): Promise<string> {
+    let result: string;
+    const picks: Array<IQuickItemEx<string>> = [];
+    picks.push(
+        {
+            label: `Default location`,
+            detail: `${path.join(os.homedir(), ".leetcode")}`,
+            value: `${path.join(os.homedir(), ".leetcode")}`,
+        },
+        {
+            label: "$(file-directory) Browse...",
+            value: ":browse",
+        },
+    );
+    const choice: IQuickItemEx<string> | undefined = await vscode.window.showQuickPick(
+        picks,
+        { placeHolder: "Select where you would like to save your LeetCode files" },
+    );
+    if (!choice) {
+        result = "";
+    } else if (choice.value === ":browse") {
+        const directory: vscode.Uri[] | undefined = await showDirectorySelectDialog();
+        if (!directory || directory.length < 1) {
+            result = "";
+        } else {
+            result = directory[0].fsPath;
+        }
+    } else {
+        result = choice.value;
+    }
+
+    getWorkspaceConfiguration().update("workspaceFolder", result, vscode.ConfigurationTarget.Global);
+
+    return result;
+}
+
 enum OpenOption {
     openInCurrentWindow = "Open in current window",
     openInNewWindow = "Open in new window",

From 9b7847588ed84153af23f0c957acb5ade2b76d5a Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Fri, 12 Jul 2019 15:43:13 +0800
Subject: [PATCH 16/92] chore: Fix the changelog format

---
 CHANGELOG.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index c5e16401..2dd16029 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,7 +3,7 @@ All notable changes to the "leetcode" extension will be documented in this file.
 
 Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
 
-##[0.15.2]
+## [0.15.2]
 ### Added
 - Prompt to open the workspace for LeetCode [#130](https://github.com/jdneo/vscode-leetcode/issues/130)
 - Support deleting sessions [#198](https://github.com/jdneo/vscode-leetcode/issues/130)

From 07ac6fb6b0a6527a4a0ccea02be3625781b89e96 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 15 Jul 2019 14:22:38 +0800
Subject: [PATCH 17/92] chore(deps): bump lodash from 4.17.11 to 4.17.13 (#366)

Bumps [lodash](https://github.com/lodash/lodash) from 4.17.11 to 4.17.13.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.11...4.17.13)

Signed-off-by: dependabot[bot] <support@github.com>
---
 package-lock.json | 6 +++---
 package.json      | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index ed6984a3..a01167a6 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -946,9 +946,9 @@
             }
         },
         "lodash": {
-            "version": "4.17.11",
-            "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
-            "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
+            "version": "4.17.13",
+            "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.13.tgz",
+            "integrity": "sha512-vm3/XWXfWtRua0FkUyEHBZy8kCPjErNBT9fJx8Zvs+U6zjqPbTUOpkaoum3O5uiA8sm+yNMHXfYkTUHFoMxFNA=="
         },
         "log-symbols": {
             "version": "2.2.0",
diff --git a/package.json b/package.json
index bb04635b..722a0916 100644
--- a/package.json
+++ b/package.json
@@ -390,7 +390,7 @@
     "dependencies": {
         "fs-extra": "^6.0.1",
         "highlight.js": "^9.15.6",
-        "lodash": "^4.17.11",
+        "lodash": "^4.17.13",
         "markdown-it": "^8.4.2",
         "require-from-string": "^2.0.2",
         "unescape-js": "^1.1.1",

From 6e37a825f4aef1c88d66f4ebdc346f13d49bb74d Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Sat, 17 Aug 2019 14:20:33 +0800
Subject: [PATCH 18/92] docs: Update readme page

---
 README.md                    |   6 +-----
 docs/README_zh-CN.md         |   6 +-----
 docs/imgs/sponsor_coding.png | Bin 138165 -> 0 bytes
 3 files changed, 2 insertions(+), 10 deletions(-)
 delete mode 100644 docs/imgs/sponsor_coding.png

diff --git a/README.md b/README.md
index 95067331..a1d6e64d 100644
--- a/README.md
+++ b/README.md
@@ -20,11 +20,7 @@
   </a>
 </p>
 
-## Sponsor
-[![coding](https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/docs/imgs/sponsor_coding.png)](https://coding.net/?utm_source=leetcode)
-
-- [English Document](#Requirements)
-- [中文文档](https://github.com/jdneo/vscode-leetcode/blob/master/docs/README_zh-CN.md)
+- English Document | [中文文档](https://github.com/jdneo/vscode-leetcode/blob/master/docs/README_zh-CN.md)
 
 ## Requirements
 - [VS Code 1.30.1+](https://code.visualstudio.com/)
diff --git a/docs/README_zh-CN.md b/docs/README_zh-CN.md
index c23ea861..619863bd 100644
--- a/docs/README_zh-CN.md
+++ b/docs/README_zh-CN.md
@@ -20,11 +20,7 @@
   </a>
 </p>
 
-## 赞助
-[![coding](https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/docs/imgs/sponsor_coding.png)](https://coding.net/?utm_source=leetcode)
-
-- [English Document](#Requirements)
-- [中文文档](https://github.com/jdneo/vscode-leetcode/blob/master/docs/README_zh-CN.md)
+- [English Document](https://github.com/jdneo/vscode-leetcode#requirements) | 中文文档
 
 ## 运行条件
 - [VS Code 1.23.0+](https://code.visualstudio.com/)
diff --git a/docs/imgs/sponsor_coding.png b/docs/imgs/sponsor_coding.png
deleted file mode 100644
index 78c47fc0e224c50fcd6b10ece915e10ae36dc1c1..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 138165
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


From 085b91f8561e3041aeb9643d77a570a44ea63d71 Mon Sep 17 00:00:00 2001
From: PoppinL <poppinlp@gmail.com>
Date: Tue, 27 Aug 2019 11:15:48 +0800
Subject: [PATCH 19/92] chore: replace sidebar icon (#400)

---
 resources/LeetCode.svg | 17 ++++++-----------
 1 file changed, 6 insertions(+), 11 deletions(-)

diff --git a/resources/LeetCode.svg b/resources/LeetCode.svg
index c06fe89d..a3bac1f0 100644
--- a/resources/LeetCode.svg
+++ b/resources/LeetCode.svg
@@ -1,16 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<svg width="36px" height="36px" viewBox="0 0 36 36" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <!-- Generator: Sketch 52.2 (67145) - http://www.bohemiancoding.com/sketch -->
-    <title>LeetCode_36</title>
+<svg width="15px" height="16px" viewBox="0 0 15 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 57 (83077) - https://sketch.com -->
+    <title>Combined Shape</title>
     <desc>Created with Sketch.</desc>
-    <g id="LeetCode_36" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="Group-2" transform="translate(3.000000, 1.000000)">
-            <rect id="Rectangle" fill="#B4B2B1" x="14.2222222" y="17.4222222" width="15.5555556" height="3.73333333"></rect>
-            <g id="Group-7" transform="translate(17.310596, 17.025282) rotate(45.000000) translate(-17.310596, -17.025282) translate(7.310596, 3.025282)">
-                <polygon id="Rectangle" fill="#000000" points="0 -2.84217094e-14 3.73333333 3.73333333 3.73333333 27.0666667 0 27.0666667"></polygon>
-                <path d="M14.739248,7.62222222 L11.0059147,11.3555556 L3.73333333,11.3555556 L3.73333333,7.62222222 L14.739248,7.62222222 Z M19.9111111,12.1298653 L19.9111111,27.0666667 L16.1777778,27.0666667 L16.1777778,15.8631986 L19.9111111,12.1298653 Z" id="Combined-Shape" fill="#EDA433"></path>
-                <rect id="Rectangle" fill="#000000" x="3.73333333" y="23.3333333" width="12.4444444" height="3.73333333"></rect>
-            </g>
+    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="Artboard" transform="translate(-439.000000, -612.000000)" fill="#303133" fill-rule="nonzero">
+            <path d="M448.617144,612.16769 C448.808341,612.363282 448.826418,612.663731 448.673533,612.879152 L448.608191,612.955578 L446.15,615.357 L449.894886,619.007259 C450.093972,619.194817 450.124399,619.494266 449.98051,619.715797 L449.918369,619.794848 C449.707367,620.01882 449.354751,620.029333 449.13078,619.818331 L449.13078,619.818331 L445.354,616.136 L440.170212,621.203943 C440.111737,621.261104 440.099007,621.347469 440.132652,621.417331 L440.166592,621.46592 L445.358074,626.829135 C445.415144,626.888093 445.501806,626.90111 445.571922,626.867432 L445.620685,626.833408 L445.623532,626.830592 L449.13805,623.278672 C449.354479,623.05994 449.707246,623.058073 449.925978,623.274502 C450.120407,623.466883 450.143485,623.766988 449.994209,623.984926 L449.930149,624.06243 L446.415631,627.61435 L446.395701,627.634062 C445.914207,628.100138 445.16516,628.119545 444.661422,627.700626 L444.55742,627.604151 L439.365938,622.240936 C438.901478,621.761111 438.880378,621.015175 439.29562,620.511206 L439.391276,620.407102 L447.829256,612.158737 C448.049297,611.94364 448.402047,611.947648 448.617144,612.16769 Z M446.514534,621 L453.485466,621 C453.769635,621 454,621.223858 454,621.5 C454,621.74546 453.817984,621.949608 453.577954,621.991944 L453.485466,622 L446.514534,622 C446.230365,622 446,621.776142 446,621.5 C446,621.25454 446.182016,621.050392 446.422046,621.008056 L446.514534,621 L453.485466,621 Z" id="Combined-Shape"></path>
         </g>
     </g>
 </svg>
\ No newline at end of file

From b96e7f5feff8352699c918f98d735342d4a4d4ce Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Tue, 27 Aug 2019 12:14:53 +0800
Subject: [PATCH 20/92] fix: Can trigger showTopVotedSolution from keyboard
 shortcut (#399)

---
 src/commands/show.ts | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/commands/show.ts b/src/commands/show.ts
index 896516a9..1846fe9f 100644
--- a/src/commands/show.ts
+++ b/src/commands/show.ts
@@ -13,7 +13,7 @@ import { leetCodeManager } from "../leetCodeManager";
 import { IProblem, IQuickItemEx, languages, ProblemState } from "../shared";
 import { getNodeIdFromFile } from "../utils/problemUtils";
 import { DialogOptions, DialogType, openSettingsEditor, promptForOpenOutputChannel, promptForSignIn, promptHintMessage } from "../utils/uiUtils";
-import { selectWorkspaceFolder } from "../utils/workspaceUtils";
+import { getActiveFilePath, selectWorkspaceFolder } from "../utils/workspaceUtils";
 import * as wsl from "../utils/wslUtils";
 import { leetCodePreviewProvider } from "../webview/leetCodePreviewProvider";
 import { leetCodeSolutionProvider } from "../webview/leetCodeSolutionProvider";
@@ -71,11 +71,15 @@ export async function searchProblem(): Promise<void> {
 
 export async function showSolution(input: LeetCodeNode | vscode.Uri): Promise<void> {
     let problemInput: string | undefined;
-    if (input instanceof LeetCodeNode) {
+    if (input instanceof LeetCodeNode) { // Triggerred from explorer
         problemInput = input.id;
-    } else if (input instanceof vscode.Uri) {
+    } else if (input instanceof vscode.Uri) { // Triggerred from Code Lens/context menu
         problemInput = `"${input.fsPath}"`;
-    } else {
+    } else if (!input) { // Triggerred from command
+        problemInput = await getActiveFilePath();
+    }
+
+    if (!problemInput) {
         vscode.window.showErrorMessage("Invalid input to fetch the solution data.");
         return;
     }

From 24f636d89bb7dea356fda237a164d93769bbd12b Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Tue, 27 Aug 2019 18:44:56 +0800
Subject: [PATCH 21/92] fix: Add CSP in the web view header (#394)

---
 src/webview/leetCodePreviewProvider.ts    | 1 +
 src/webview/leetCodeSolutionProvider.ts   | 1 +
 src/webview/leetCodeSubmissionProvider.ts | 1 +
 3 files changed, 3 insertions(+)

diff --git a/src/webview/leetCodePreviewProvider.ts b/src/webview/leetCodePreviewProvider.ts
index 1bd83e69..03a12e19 100644
--- a/src/webview/leetCodePreviewProvider.ts
+++ b/src/webview/leetCodePreviewProvider.ts
@@ -101,6 +101,7 @@ class LeetCodePreviewProvider extends LeetCodeWebview {
             <!DOCTYPE html>
             <html>
             <head>
+                <meta http-equiv="Content-Security-Policy" content="default-src 'none'; img-src https:; script-src vscode-resource: 'unsafe-inline'; style-src vscode-resource: 'unsafe-inline';"/>
                 ${markdownEngine.getStyles()}
                 ${!this.sideMode ? button.style : ""}
                 <style>
diff --git a/src/webview/leetCodeSolutionProvider.ts b/src/webview/leetCodeSolutionProvider.ts
index 59c548d6..d888b3bd 100644
--- a/src/webview/leetCodeSolutionProvider.ts
+++ b/src/webview/leetCodeSolutionProvider.ts
@@ -50,6 +50,7 @@ class LeetCodeSolutionProvider extends LeetCodeWebview {
             <!DOCTYPE html>
             <html>
             <head>
+                <meta http-equiv="Content-Security-Policy" content="default-src 'none'; img-src https:; script-src vscode-resource:; style-src vscode-resource:;"/>
                 ${styles}
             </head>
             <body class="vscode-body 'scrollBeyondLastLine' 'wordWrap' 'showEditorSelection'" style="tab-size:4">
diff --git a/src/webview/leetCodeSubmissionProvider.ts b/src/webview/leetCodeSubmissionProvider.ts
index 689c3a2f..f717a38a 100644
--- a/src/webview/leetCodeSubmissionProvider.ts
+++ b/src/webview/leetCodeSubmissionProvider.ts
@@ -28,6 +28,7 @@ class LeetCodeSubmissionProvider extends LeetCodeWebview {
         return `<!DOCTYPE html>
             <html lang="en">
             <head>
+                <meta http-equiv="Content-Security-Policy" content="default-src 'none'; img-src https:; script-src vscode-resource:; style-src vscode-resource:;"/>
                 <meta charset="UTF-8">
                 <meta name="viewport" content="width=device-width, initial-scale=1.0">
                 ${markdownEngine.getStyles()}

From 6ae22842548389f276fc3b23279056780739dc27 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Sun, 1 Sep 2019 18:08:20 +0800
Subject: [PATCH 22/92] feat: Support pick one (#404)

---
 package.json         | 11 +++++++++++
 src/commands/show.ts |  6 ++++++
 src/extension.ts     |  3 ++-
 3 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/package.json b/package.json
index 722a0916..fb8ff548 100644
--- a/package.json
+++ b/package.json
@@ -31,6 +31,7 @@
         "onCommand:leetcode.signout",
         "onCommand:leetcode.manageSessions",
         "onCommand:leetcode.refreshExplorer",
+        "onCommand:leetcode.pickOne",
         "onCommand:leetcode.showProblem",
         "onCommand:leetcode.previewProblem",
         "onCommand:leetcode.searchProblem",
@@ -84,6 +85,11 @@
                     "dark": "resources/dark/refresh.svg"
                 }
             },
+            {
+                "command": "leetcode.pickOne",
+                "title": "Pick One",
+                "category": "LeetCode"
+            },
             {
                 "command": "leetcode.showProblem",
                 "title": "Show Problem",
@@ -162,6 +168,11 @@
                     "command": "leetcode.refreshExplorer",
                     "when": "view == leetCodeExplorer",
                     "group": "navigation@3"
+                },
+                {
+                    "command": "leetcode.pickOne",
+                    "when": "view == leetCodeExplorer",
+                    "group": "overflow@0"
                 }
             ],
             "view/item/context": [
diff --git a/src/commands/show.ts b/src/commands/show.ts
index 1846fe9f..b946c298 100644
--- a/src/commands/show.ts
+++ b/src/commands/show.ts
@@ -44,6 +44,12 @@ export async function previewProblem(input: IProblem | vscode.Uri, isSideMode: b
     leetCodePreviewProvider.show(descString, node, isSideMode);
 }
 
+export async function pickOne(): Promise<void> {
+    const problems: IProblem[] = await list.listProblems();
+    const randomProblem: IProblem = problems[Math.floor(Math.random() * problems.length)];
+    await showProblemInternal(randomProblem);
+}
+
 export async function showProblem(node?: LeetCodeNode): Promise<void> {
     if (!node) {
         return;
diff --git a/src/extension.ts b/src/extension.ts
index 4d33d803..d1997945 100644
--- a/src/extension.ts
+++ b/src/extension.ts
@@ -54,6 +54,7 @@ export async function activate(context: vscode.ExtensionContext): Promise<void>
             vscode.commands.registerCommand("leetcode.manageSessions", () => session.manageSessions()),
             vscode.commands.registerCommand("leetcode.previewProblem", (node: LeetCodeNode) => show.previewProblem(node)),
             vscode.commands.registerCommand("leetcode.showProblem", (node: LeetCodeNode) => show.showProblem(node)),
+            vscode.commands.registerCommand("leetcode.pickOne", () => show.pickOne()),
             vscode.commands.registerCommand("leetcode.searchProblem", () => show.searchProblem()),
             vscode.commands.registerCommand("leetcode.showSolution", (input: LeetCodeNode | vscode.Uri) => show.showSolution(input)),
             vscode.commands.registerCommand("leetcode.refreshExplorer", () => leetCodeTreeDataProvider.refresh()),
@@ -63,7 +64,7 @@ export async function activate(context: vscode.ExtensionContext): Promise<void>
         );
 
         await leetCodeExecutor.switchEndpoint(plugin.getLeetCodeEndpoint());
-        leetCodeManager.getLoginStatus();
+        await leetCodeManager.getLoginStatus();
     } catch (error) {
         leetCodeChannel.appendLine(error.toString());
         promptForOpenOutputChannel("Extension initialization failed. Please open output channel for details.", DialogType.error);

From 71d9ec9e30f21552358a1c414ac27a98601069b8 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Tue, 3 Sep 2019 12:59:26 +0800
Subject: [PATCH 23/92] feat: Support toggle favorite problem (#405)

---
 package.json                             |  42 +++++++++++++++++++++--
 resources/dark/dislike.png               | Bin 0 -> 700 bytes
 resources/dark/like.png                  | Bin 0 -> 472 bytes
 resources/light/dislike.png              | Bin 0 -> 599 bytes
 resources/light/like.png                 | Bin 0 -> 418 bytes
 src/commands/star.ts                     |  26 ++++++++++++++
 src/explorer/LeetCodeTreeDataProvider.ts |   9 ++++-
 src/extension.ts                         |   3 ++
 src/leetCodeExecutor.ts                  |   8 +++++
 9 files changed, 84 insertions(+), 4 deletions(-)
 create mode 100644 resources/dark/dislike.png
 create mode 100644 resources/dark/like.png
 create mode 100644 resources/light/dislike.png
 create mode 100644 resources/light/like.png
 create mode 100644 src/commands/star.ts

diff --git a/package.json b/package.json
index fb8ff548..1e6ce79a 100644
--- a/package.json
+++ b/package.json
@@ -124,6 +124,24 @@
                 "title": "Submit to LeetCode",
                 "category": "LeetCode"
             },
+            {
+                "command": "leetcode.addFavorite",
+                "title": "Add to Favorite List",
+                "category": "LeetCode",
+                "icon": {
+                    "light": "resources/light/like.png",
+                    "dark": "resources/dark/like.png"
+                }
+            },
+            {
+                "command": "leetcode.removeFavorite",
+                "title": "Remove from Favorite List",
+                "category": "LeetCode",
+                "icon": {
+                    "light": "resources/light/dislike.png",
+                    "dark": "resources/dark/dislike.png"
+                }
+            },
             {
                 "command": "leetcode.switchDefaultLanguage",
                 "title": "Switch Default Language",
@@ -178,18 +196,28 @@
             "view/item/context": [
                 {
                     "command": "leetcode.previewProblem",
-                    "when": "view == leetCodeExplorer && viewItem == problem",
+                    "when": "view == leetCodeExplorer && viewItem =~ /problem*/",
                     "group": "leetcode@1"
                 },
                 {
                     "command": "leetcode.showProblem",
-                    "when": "view == leetCodeExplorer && viewItem == problem",
+                    "when": "view == leetCodeExplorer && viewItem =~ /problem*/",
                     "group": "leetcode@2"
                 },
                 {
                     "command": "leetcode.showSolution",
-                    "when": "view == leetCodeExplorer && viewItem == problem",
+                    "when": "view == leetCodeExplorer && viewItem =~ /problem*/",
                     "group": "leetcode@3"
+                },
+                {
+                    "command": "leetcode.addFavorite",
+                    "when": "view == leetCodeExplorer && viewItem == problem",
+                    "group": "inline"
+                },
+                {
+                    "command": "leetcode.removeFavorite",
+                    "when": "view == leetCodeExplorer && viewItem == problem-favorite",
+                    "group": "inline"
                 }
             ],
             "commandPalette": [
@@ -204,6 +232,14 @@
                 {
                     "command": "leetcode.previewProblem",
                     "when": "never"
+                },
+                {
+                    "command": "leetcode.addFavorite",
+                    "when": "never"
+                },
+                {
+                    "command": "leetcode.removeFavorite",
+                    "when": "never"
                 }
             ],
             "explorer/context": [
diff --git a/resources/dark/dislike.png b/resources/dark/dislike.png
new file mode 100644
index 0000000000000000000000000000000000000000..4a4fe0202483583ef0d5278b9be337aca5ce2a96
GIT binary patch
literal 700
zcmV;t0z>_YP)<h;3K|Lk000e1NJLTq001BW001Be1ONa4*>kdg00002VoOIv0RM-N
z%)bBt0(D75K~zY`?Uc())KL`2@A#M`dQn)SnbO}76(uy)qA-Hm^jKC<R@*2-TSi3?
zCJ`+|5>gDyMG+PQqH{mz=Z_xXP*|icGRs9a4mqN9TFh_!&CAC?%kFRWyZ4^YIp=%M
zJ;wZB|8i-OoRn_Hn3Es&6{o^wsgrOSr+Li;bByuK9@nBg=C&3W&G^RUh%v^<QN}Y*
ztkYkUYd(%L%vq;88nm@sw4*3$uX6)M8R3GhjRu`+X<!89TLwala8X|Nt@iiAWwwb~
z6lK;n`so<M8hTJ9EfG$j45ynXm+a#glkCmjch}lc)E@IMcB67GpRhJ$LwWblqdfH^
z7(<=vLMql@gYwk}%%JYdLIBTKppx(b!)Rnzfj#qxFFv3drL(ZM>nOH|{fsseL*>k3
z2AMU=shBjNOh*nbWG<H(>Z_cOcoQFNQ+8qQER2xLD9T5t!izVGqP8*n+D(+1w9Hce
zuAwLsDDP!MZ#jeBpV}+SKzQbtoND=u;_?n<sIQW%c@P?)ITH~skryb_cDFGeLX&Dl
z_ArBTJG;IC?q(vQLAp@lHsm3OB2~sv#}q0p`C23g;g-^g5=%zmd5@z!&_Mn!%Rz)o
zq#Y&3PGgLrjyP%`=ABC^gtVk1ddrj2MXHQ3hRu9J<xOP$V!a;V9?JLdDr1}q27T$$
z<Q#arZc&82Wp^0kR1i&hr;e#KIhTqenLSaI-|m)q={z|Hwn_q}XUSJ5ha`bYyR)A-
zN~>){iP;cOP=3m`WjtK!C4uq><#9)GN3m`5{+4HMj4^V6X_PLvG&u=qMVX9jFJOF7
iPiHjf4->hc^8Oc6unZX1>IL=y0000<MNUMnLSTYD`a}Z&

literal 0
HcmV?d00001

diff --git a/resources/dark/like.png b/resources/dark/like.png
new file mode 100644
index 0000000000000000000000000000000000000000..613fccd4a02d9c514bfab713760aaf1c768432e3
GIT binary patch
literal 472
zcmV;}0Vn>6P)<h;3K|Lk000e1NJLTq001BW001Be1ONa4*>kdg00002VoOIv0RM-N
z%)bBt0g*{WK~zYI?U1of6j2n0hb_oPgLZTq_BpJ;!fZn#jY^3o0+RRw(h{r?B@p!)
zEP#%v*~Z=Toy|5D)C+~nMjNmh2qeG7tPTS+II|in|6AR2&-dMPZxH;?-;7E=?b~!Y
z^RM=SnR@x>NxjTNKJtw-x@_5fl~Qo4(ng8Z^SeP11U^MCd19@`*k!zj=<v8z*&Vhj
z3$~AtEwPLcdpxn~?r^K(bL=4w5(<@QBX&NG#I<_a7CA+TQ+pOaCkVK~dxW2R2oDgQ
z^LP}$%@K!8T&%Zm+CH*-apN}f*|d+faT`yq&m%VD3A(6NNo&kXV+`>n7M!5=wIYJg
z*O4E`f(~llDk5M4(TTUKh<AkqJIL04Z5yL}NB$@;?z4z6@oPSZ2%EJ$c(dlm$evy(
z+e$t~vqp$`kv7<K#EDH_g>xqp&!gz$s~XB^&=4=P6@C15CVsUd7oM%?<8OY8M+$$H
zR20H5EBg4`+;~zk5FRO5M}&lk^}=|hur)N$?Xki)d}CldQv4DAPx1pRL|@&g-V}fU
O0000<MNUMnLSTYZWYv2B

literal 0
HcmV?d00001

diff --git a/resources/light/dislike.png b/resources/light/dislike.png
new file mode 100644
index 0000000000000000000000000000000000000000..b514f0f3223cdc878233d86e4427ac161b65ee05
GIT binary patch
literal 599
zcmV-d0;v6oP)<h;3K|Lk000e1NJLTq001BW001Be1ONa4*>kdg00002VoOIv0RM-N
z%)bBt0uV_=K~zY`?bP3E&2b#Z@yB*JmJAV=8Oz@w#LB@1k>bXWOO&6tB8^KSrCE|o
zEsC138)^IjSfaLQWL%ix0<&yu@^*2)JLl}|INQpl&-d!}{(N4~&-?xQ)R+J3pRP)K
zwCVNBXAkXFmD{PZ&m&*_((9gGDofexb%-%vpY33WzM`EcmW{Xf2|W&|lUDDj_d+=1
ztPtKgqF!2^L*5A=$090q2oF>j)T*2^B7_l*1>-PVyYRShkljMh7<+bY@ZC4-$JOU}
zFYL@0+Ju88gU!g4tREKc=4G!?H>DR_CVa@tVPWQ!05gQ4yzCLyObJlwy0>}RB(zQm
zK+3kfSg2pvU)E4vM&Xb!X!Bp~$8}qrQ;WQGs`$voGKk|sc%>%kw@V0(#mCMG!-bP2
z>$DKQ2rtaHKxd-DiOC?c_G9Y25js2<x-E9H6rw^?5n`JA!l1Pzh)B{{XIQvU+(U&+
zMToRJ!hlSI=vIpcKZNE|fsIE@*DCZUU1V<`5U#2y{bb`2)7%pJtp*JSglnb$OQVS9
zF^C08bhTiK*TOUND2KQ#d@>6)It!x9$NALU@`&?Rp+;Bk_69!+;+(LH?DSp2PfK&r
zjmEj$kkCF6fUSmvTQ(XHTHFx&W!x6NS}`$zErx{O!c8eDHxe~TJ8Uv2+%X-bv<Tm<
loUA?DMXPj9rCb@k{STAa<lj6S7v}%~002ovPDHLkV1oPqB254Q

literal 0
HcmV?d00001

diff --git a/resources/light/like.png b/resources/light/like.png
new file mode 100644
index 0000000000000000000000000000000000000000..0f7081d2a74f7186174e7495b02d9eb2456ab686
GIT binary patch
literal 418
zcmV;T0bTxyP)<h;3K|Lk000e1NJLTq001BW001Be1ONa4*>kdg00002VoOIv0RM-N
z%)bBt0b5B#K~zY`?U6lB0#O)64-|xG)Xt8;I;_CL(3oiBPpKw?nz#XNjaG^hh`I&~
zr6cMBH0)uZ5Q#QwGZ09w#Y-Fp7@R?4<u}#6-<&gfZ{UA^b;7JtqE3ew?pP!GwTZIM
zJ+E}AbHg&>L3n}+ay<<e09d5avw0-mk2eq&o5YBaV22t)9B_ybRkleGAx4%e;@PbT
zQ$duO=<1^E(?*CkdtJwYNp2Aj-3M7gST5YmEbqLL>g%VdA(ot?gvboM*d)n;{TAZd
ziFHIQ&>xE<o}Ac1j0F;mBbrXM5Ho=UDTL+39O5dFpp3{nahearhHpHBu-&(oMcAZ$
z;c1$P-QN1xry`AwI2p7$LbRA4iqCoDeiR1J5%PK=#OV-)!Oy+%;R;{4x5D5T-{VGc
z)}si7_bUv3=^uA1M#7DvfUvO<h2XeR<k4tfcN9g6qvJ;LBm6Js6PRC@{a13X<NyEw
M07*qoM6N<$g1hp%;{X5v

literal 0
HcmV?d00001

diff --git a/src/commands/star.ts b/src/commands/star.ts
new file mode 100644
index 00000000..baae0b07
--- /dev/null
+++ b/src/commands/star.ts
@@ -0,0 +1,26 @@
+
+// Copyright (c) jdneo. All rights reserved.
+// Licensed under the MIT license.
+
+import { LeetCodeNode } from "../explorer/LeetCodeNode";
+import { leetCodeTreeDataProvider } from "../explorer/LeetCodeTreeDataProvider";
+import { leetCodeExecutor } from "../leetCodeExecutor";
+import { DialogType, promptForOpenOutputChannel } from "../utils/uiUtils";
+
+export async function addFavorite(node: LeetCodeNode): Promise<void> {
+    try {
+        await leetCodeExecutor.toggleFavorite(node, true);
+        leetCodeTreeDataProvider.refresh();
+    } catch (error) {
+        await promptForOpenOutputChannel("Failed to add the problem to favorite. Please open the output channel for details.", DialogType.error);
+    }
+}
+
+export async function removeFavorite(node: LeetCodeNode): Promise<void> {
+    try {
+        await leetCodeExecutor.toggleFavorite(node, false);
+        leetCodeTreeDataProvider.refresh();
+    } catch (error) {
+        await promptForOpenOutputChannel("Failed to remove the problem from favorite. Please open the output channel for details.", DialogType.error);
+    }
+}
diff --git a/src/explorer/LeetCodeTreeDataProvider.ts b/src/explorer/LeetCodeTreeDataProvider.ts
index ac115424..69445bbb 100644
--- a/src/explorer/LeetCodeTreeDataProvider.ts
+++ b/src/explorer/LeetCodeTreeDataProvider.ts
@@ -38,13 +38,20 @@ export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCod
             };
         }
 
+        let contextValue: string;
+        if (element.isProblem) {
+            contextValue = element.isFavorite ? "problem-favorite" : "problem";
+        } else {
+            contextValue = element.id.toLowerCase();
+        }
+
         return {
             label: element.isProblem ? `[${element.id}] ${element.name}` : element.name,
             tooltip: this.getSubCategoryTooltip(element),
             collapsibleState: element.isProblem ? vscode.TreeItemCollapsibleState.None : vscode.TreeItemCollapsibleState.Collapsed,
-            contextValue: element.isProblem ? "problem" : element.id.toLowerCase(),
             iconPath: this.parseIconPathFromProblemState(element),
             command: element.isProblem ? element.previewCommand : undefined,
+            contextValue,
         };
     }
 
diff --git a/src/extension.ts b/src/extension.ts
index d1997945..9bb3ad41 100644
--- a/src/extension.ts
+++ b/src/extension.ts
@@ -8,6 +8,7 @@ import { switchDefaultLanguage } from "./commands/language";
 import * as plugin from "./commands/plugin";
 import * as session from "./commands/session";
 import * as show from "./commands/show";
+import * as star from "./commands/star";
 import * as submit from "./commands/submit";
 import * as test from "./commands/test";
 import { explorerNodeManager } from "./explorer/explorerNodeManager";
@@ -61,6 +62,8 @@ export async function activate(context: vscode.ExtensionContext): Promise<void>
             vscode.commands.registerCommand("leetcode.testSolution", (uri?: vscode.Uri) => test.testSolution(uri)),
             vscode.commands.registerCommand("leetcode.submitSolution", (uri?: vscode.Uri) => submit.submitSolution(uri)),
             vscode.commands.registerCommand("leetcode.switchDefaultLanguage", () => switchDefaultLanguage()),
+            vscode.commands.registerCommand("leetcode.addFavorite", (node: LeetCodeNode) => star.addFavorite(node)),
+            vscode.commands.registerCommand("leetcode.removeFavorite", (node: LeetCodeNode) => star.removeFavorite(node)),
         );
 
         await leetCodeExecutor.switchEndpoint(plugin.getLeetCodeEndpoint());
diff --git a/src/leetCodeExecutor.ts b/src/leetCodeExecutor.ts
index 8bef00fa..04b89013 100644
--- a/src/leetCodeExecutor.ts
+++ b/src/leetCodeExecutor.ts
@@ -162,6 +162,14 @@ class LeetCodeExecutor implements Disposable {
         }
     }
 
+    public async toggleFavorite(node: IProblem, addToFavorite: boolean): Promise<void> {
+        const commandParams: string[] = [await this.getLeetCodeBinaryPath(), "star", node.id];
+        if (!addToFavorite) {
+            commandParams.push("-d");
+        }
+        await this.executeCommandWithProgressEx("Updating the favorite list...", "node", commandParams);
+    }
+
     public async getCompaniesAndTags(): Promise<{ companies: { [key: string]: string[] }, tags: { [key: string]: string[] } }> {
         // preprocess the plugin source
         const companiesTagsPath: string = path.join(await leetCodeExecutor.getLeetCodeRootPath(), "lib", "plugins", "company.js");

From bbf6712790535aec86c6d68f548838c3359757cc Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Tue, 3 Sep 2019 18:22:57 +0800
Subject: [PATCH 24/92] Prepare for 0.15.3 (#408)

---
 CHANGELOG.md      | 11 +++++++++++
 package-lock.json |  2 +-
 package.json      |  2 +-
 3 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2dd16029..07f25a0f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,17 @@ All notable changes to the "leetcode" extension will be documented in this file.
 
 Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
 
+## [0.15.3]
+### Added
+- Support `Pick One` [#263](https://github.com/jdneo/vscode-leetcode/issues/263)
+- Support toggling the favorite problems [#378](https://github.com/jdneo/vscode-leetcode/issues/378)
+
+### Changed
+- Update the activity bar icon [#395](https://github.com/jdneo/vscode-leetcode/issues/263)
+
+### Fixed
+[Bugs fixed](https://github.com/jdneo/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.15.3+is%3Aclosed+label%3Abug)
+
 ## [0.15.2]
 ### Added
 - Prompt to open the workspace for LeetCode [#130](https://github.com/jdneo/vscode-leetcode/issues/130)
diff --git a/package-lock.json b/package-lock.json
index a01167a6..428ff0e2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
 {
     "name": "vscode-leetcode",
-    "version": "0.15.2",
+    "version": "0.15.3",
     "lockfileVersion": 1,
     "requires": true,
     "dependencies": {
diff --git a/package.json b/package.json
index 1e6ce79a..0d7d25b1 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
     "name": "vscode-leetcode",
     "displayName": "LeetCode",
     "description": "Solve LeetCode problems in VS Code",
-    "version": "0.15.2",
+    "version": "0.15.3",
     "author": "Sheng Chen",
     "publisher": "shengchen",
     "license": "MIT",

From a3528505543bdbf38ac7b85b677af9a7deb2dfcf Mon Sep 17 00:00:00 2001
From: SF-Zhou <sfzhou.scut@gmail.com>
Date: Tue, 10 Sep 2019 18:59:33 +0800
Subject: [PATCH 25/92] fix: add rust in default language list (#412)

---
 package.json | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package.json b/package.json
index 0d7d25b1..7e759e68 100644
--- a/package.json
+++ b/package.json
@@ -305,6 +305,7 @@
                             "python",
                             "python3",
                             "ruby",
+                            "rust",
                             "scala",
                             "swift"
                         ],

From 2d4266f1d6d5b4af3b3c7f232f58be9b1f20f812 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=98=BF=E5=8D=A1=E7=90=B3?= <hufan.akarin@gmail.com>
Date: Tue, 10 Sep 2019 19:12:12 +0800
Subject: [PATCH 26/92] implement leetcode.relativeFilePath (#380)

---
 package.json            | 243 +++++++++++++++++++++++++++++++++++++++-
 src/commands/show.ts    | 101 ++++++++++++-----
 src/leetCodeExecutor.ts |   8 +-
 3 files changed, 317 insertions(+), 35 deletions(-)

diff --git a/package.json b/package.json
index 7e759e68..0ffde67d 100644
--- a/package.json
+++ b/package.json
@@ -367,7 +367,248 @@
                     "leetcode.outputFolder": {
                         "type": "string",
                         "scope": "application",
-                        "description": "The relative path to save the problem files."
+                        "description": "[Deprecated] The output folder to save the problem files."
+                    },
+                    "leetcode.filePath": {
+                        "type": "object",
+                        "scope": "application",
+                        "description": "The output folder and filename to save the problem files.",
+                        "properties": {
+                            "default": {
+                                "type": "object",
+                                "properties": {
+                                    "folder": {
+                                        "type": "string",
+                                        "examples": [
+                                            "src"
+                                        ]
+                                    },
+                                    "filename": {
+                                        "type": "string",
+                                        "examples": [
+                                            "${camelCaseName}.${ext}",
+                                            "${PascalCaseName}.${ext}",
+                                            "${id}-${kebab-case-name}.${ext}",
+                                            "${id}_${snake_case_name}.${ext}"
+                                        ]
+                                    }
+                                },
+                                "required": [
+                                    "folder",
+                                    "filename"
+                                ]
+                            },
+                            "bash": {
+                                "type": "object",
+                                "properties": {
+                                    "folder": {
+                                        "type": "string"
+                                    },
+                                    "filename": {
+                                        "type": "string"
+                                    }
+                                },
+                                "minProperties": 1
+                            },
+                            "c": {
+                                "type": "object",
+                                "properties": {
+                                    "folder": {
+                                        "type": "string"
+                                    },
+                                    "filename": {
+                                        "type": "string"
+                                    }
+                                },
+                                "minProperties": 1
+                            },
+                            "cpp": {
+                                "type": "object",
+                                "properties": {
+                                    "folder": {
+                                        "type": "string"
+                                    },
+                                    "filename": {
+                                        "type": "string"
+                                    }
+                                },
+                                "minProperties": 1
+                            },
+                            "csharp": {
+                                "type": "object",
+                                "properties": {
+                                    "folder": {
+                                        "type": "string"
+                                    },
+                                    "filename": {
+                                        "type": "string"
+                                    }
+                                },
+                                "minProperties": 1
+                            },
+                            "golang": {
+                                "type": "object",
+                                "properties": {
+                                    "folder": {
+                                        "type": "string"
+                                    },
+                                    "filename": {
+                                        "type": "string"
+                                    }
+                                },
+                                "minProperties": 1
+                            },
+                            "java": {
+                                "type": "object",
+                                "properties": {
+                                    "folder": {
+                                        "type": "string"
+                                    },
+                                    "filename": {
+                                        "type": "string"
+                                    }
+                                },
+                                "minProperties": 1
+                            },
+                            "javascript": {
+                                "type": "object",
+                                "properties": {
+                                    "folder": {
+                                        "type": "string"
+                                    },
+                                    "filename": {
+                                        "type": "string"
+                                    }
+                                },
+                                "minProperties": 1
+                            },
+                            "kotlin": {
+                                "type": "object",
+                                "properties": {
+                                    "folder": {
+                                        "type": "string"
+                                    },
+                                    "filename": {
+                                        "type": "string"
+                                    }
+                                },
+                                "minProperties": 1
+                            },
+                            "mysql": {
+                                "type": "object",
+                                "properties": {
+                                    "folder": {
+                                        "type": "string"
+                                    },
+                                    "filename": {
+                                        "type": "string"
+                                    }
+                                },
+                                "minProperties": 1
+                            },
+                            "php": {
+                                "type": "object",
+                                "properties": {
+                                    "folder": {
+                                        "type": "string"
+                                    },
+                                    "filename": {
+                                        "type": "string"
+                                    }
+                                },
+                                "minProperties": 1
+                            },
+                            "python": {
+                                "type": "object",
+                                "properties": {
+                                    "folder": {
+                                        "type": "string"
+                                    },
+                                    "filename": {
+                                        "type": "string"
+                                    }
+                                },
+                                "minProperties": 1
+                            },
+                            "python3": {
+                                "type": "object",
+                                "properties": {
+                                    "folder": {
+                                        "type": "string"
+                                    },
+                                    "filename": {
+                                        "type": "string"
+                                    }
+                                },
+                                "minProperties": 1
+                            },
+                            "ruby": {
+                                "type": "object",
+                                "properties": {
+                                    "folder": {
+                                        "type": "string"
+                                    },
+                                    "filename": {
+                                        "type": "string"
+                                    }
+                                },
+                                "minProperties": 1
+                            },
+                            "rust": {
+                                "type": "object",
+                                "properties": {
+                                    "folder": {
+                                        "type": "string"
+                                    },
+                                    "filename": {
+                                        "type": "string"
+                                    }
+                                },
+                                "minProperties": 1
+                            },
+                            "scala": {
+                                "type": "object",
+                                "properties": {
+                                    "folder": {
+                                        "type": "string"
+                                    },
+                                    "filename": {
+                                        "type": "string"
+                                    }
+                                },
+                                "minProperties": 1
+                            },
+                            "swift": {
+                                "type": "object",
+                                "properties": {
+                                    "folder": {
+                                        "type": "string"
+                                    },
+                                    "filename": {
+                                        "type": "string"
+                                    }
+                                },
+                                "minProperties": 1
+                            }
+                        },
+                        "additionalProperties": {
+                            "type": "object",
+                            "properties": {
+                                "folder": {
+                                    "type": "string"
+                                },
+                                "filename": {
+                                    "type": "string"
+                                }
+                            },
+                            "minProperties": 1
+                        },
+                        "default": {
+                            "default": {
+                                "folder": "",
+                                "filename": "${id}.${kebab-case-name}.${ext}"
+                            }
+                        }
                     },
                     "leetcode.enableStatusBar": {
                         "type": "boolean",
diff --git a/src/commands/show.ts b/src/commands/show.ts
index b946c298..1906bd8e 100644
--- a/src/commands/show.ts
+++ b/src/commands/show.ts
@@ -1,7 +1,7 @@
 // Copyright (c) jdneo. All rights reserved.
 // Licensed under the MIT license.
 
-import * as fse from "fs-extra";
+import * as _ from "lodash";
 import * as path from "path";
 import * as unescapeJS from "unescape-js";
 import * as vscode from "vscode";
@@ -11,7 +11,7 @@ import { leetCodeChannel } from "../leetCodeChannel";
 import { leetCodeExecutor } from "../leetCodeExecutor";
 import { leetCodeManager } from "../leetCodeManager";
 import { IProblem, IQuickItemEx, languages, ProblemState } from "../shared";
-import { getNodeIdFromFile } from "../utils/problemUtils";
+import { genFileExt, genFileName, getNodeIdFromFile } from "../utils/problemUtils";
 import { DialogOptions, DialogType, openSettingsEditor, promptForOpenOutputChannel, promptForSignIn, promptHintMessage } from "../utils/uiUtils";
 import { getActiveFilePath, selectWorkspaceFolder } from "../utils/workspaceUtils";
 import * as wsl from "../utils/wslUtils";
@@ -137,27 +137,38 @@ async function showProblemInternal(node: IProblem): Promise<void> {
         }
 
         const leetCodeConfig: vscode.WorkspaceConfiguration = vscode.workspace.getConfiguration("leetcode");
-        let outDir: string = await selectWorkspaceFolder();
-        if (!outDir) {
+        const workspaceFolder: string = await selectWorkspaceFolder();
+        if (!workspaceFolder) {
             return;
         }
 
-        let relativePath: string = (leetCodeConfig.get<string>("outputFolder", "")).trim();
-        if (relativePath) {
-            relativePath = await resolveRelativePath(relativePath, node, language);
-            if (!relativePath) {
+        const outputFolder: string = leetCodeConfig.get<string>("outputFolder", "").trim();
+
+        const fileFolder: string = leetCodeConfig
+            .get<string>(`filePath.${language}.folder`, leetCodeConfig.get<string>(`filePath.default.folder`, outputFolder))
+            .trim();
+        const fileName: string = leetCodeConfig
+            .get<string>(
+                `filePath.${language}.filename`,
+                leetCodeConfig.get<string>(`filePath.default.filename`, genFileName(node, language)),
+            )
+            .trim();
+
+        let finalPath: string = path.join(workspaceFolder, fileFolder, fileName);
+
+        if (finalPath) {
+            finalPath = await resolveRelativePath(finalPath, node, language);
+            if (!finalPath) {
                 leetCodeChannel.appendLine("Showing problem canceled by user.");
                 return;
             }
         }
 
-        outDir = path.join(outDir, relativePath);
-        await fse.ensureDir(outDir);
+        finalPath = wsl.useWsl() ? await wsl.toWinPath(finalPath) : finalPath;
 
-        const originFilePath: string = await leetCodeExecutor.showProblem(node, language, outDir, leetCodeConfig.get<boolean>("showCommentDescription"));
-        const filePath: string = wsl.useWsl() ? await wsl.toWinPath(originFilePath) : originFilePath;
+        await leetCodeExecutor.showProblem(node, language, finalPath, leetCodeConfig.get<boolean>("showCommentDescription"));
         await Promise.all([
-            vscode.window.showTextDocument(vscode.Uri.file(filePath), { preview: false, viewColumn: vscode.ViewColumn.One }),
+            vscode.window.showTextDocument(vscode.Uri.file(finalPath), { preview: false, viewColumn: vscode.ViewColumn.One }),
             movePreviewAsideIfNeeded(node),
             promptHintMessage(
                 "hint.commentDescription",
@@ -201,26 +212,49 @@ function parseProblemDecorator(state: ProblemState, locked: boolean): string {
 }
 
 async function resolveRelativePath(relativePath: string, node: IProblem, selectedLanguage: string): Promise<string> {
+    let tag: string = "";
     if (/\$\{tag\}/i.test(relativePath)) {
-        const tag: string | undefined = await resolveTagForProblem(node);
-        if (!tag) {
-            return "";
-        }
-        relativePath = relativePath.replace(/\$\{tag\}/ig, tag);
+        tag = (await resolveTagForProblem(node)) || "";
     }
 
-    relativePath = relativePath.replace(/\$\{language\}/ig, selectedLanguage);
-    relativePath = relativePath.replace(/\$\{difficulty\}/ig, node.difficulty.toLocaleLowerCase());
-
-    // Check if there is any unsupported configuration
-    const matchResult: RegExpMatchArray | null = relativePath.match(/\$\{(.*?)\}/);
-    if (matchResult && matchResult.length >= 1) {
-        const errorMsg: string = `The config '${matchResult[1]}' is not supported.`;
-        leetCodeChannel.appendLine(errorMsg);
-        throw new Error(errorMsg);
+    let company: string = "";
+    if (/\$\{company\}/i.test(relativePath)) {
+        company = (await resolveCompanyForProblem(node)) || "";
     }
 
-    return relativePath;
+    return relativePath.replace(/\$\{(.*?)\}/g, (_substring: string, ...args: string[]) => {
+        const placeholder: string = args[0].toLowerCase().trim();
+        switch (placeholder) {
+            case "id":
+                return node.id;
+            case "name":
+                return node.name;
+            case "camelcasename":
+                return _.camelCase(node.name);
+            case "pascalcasename":
+                return _.upperFirst(_.camelCase(node.name));
+            case "kebabcasename":
+            case "kebab-case-name":
+                return _.kebabCase(node.name);
+            case "snakecasename":
+            case "snake_case_name":
+                return _.snakeCase(node.name);
+            case "ext":
+                return genFileExt(selectedLanguage);
+            case "language":
+                return selectedLanguage;
+            case "difficulty":
+                return node.difficulty.toLocaleLowerCase();
+            case "tag":
+                return tag;
+            case "company":
+                return company;
+            default:
+                const errorMsg: string = `The config '${placeholder}' is not supported.`;
+                leetCodeChannel.appendLine(errorMsg);
+                throw new Error(errorMsg);
+        }
+    });
 }
 
 async function resolveTagForProblem(problem: IProblem): Promise<string | undefined> {
@@ -236,3 +270,14 @@ async function resolveTagForProblem(problem: IProblem): Promise<string | undefin
         },
     );
 }
+
+async function resolveCompanyForProblem(problem: IProblem): Promise<string | undefined> {
+    if (problem.companies.length === 1) {
+        return problem.companies[0];
+    }
+    return await vscode.window.showQuickPick(problem.companies, {
+        matchOnDetail: true,
+        placeHolder: "Multiple tags available, please select one",
+        ignoreFocusOut: true,
+    });
+}
diff --git a/src/leetCodeExecutor.ts b/src/leetCodeExecutor.ts
index 04b89013..ce4a84e8 100644
--- a/src/leetCodeExecutor.ts
+++ b/src/leetCodeExecutor.ts
@@ -8,7 +8,6 @@ import * as requireFromString from "require-from-string";
 import { ConfigurationChangeEvent, Disposable, MessageItem, window, workspace, WorkspaceConfiguration } from "vscode";
 import { Endpoint, IProblem, supportedPlugins } from "./shared";
 import { executeCommand, executeCommandWithProgress } from "./utils/cpUtils";
-import { genFileName } from "./utils/problemUtils";
 import { DialogOptions, openUrl } from "./utils/uiUtils";
 import * as wsl from "./utils/wslUtils";
 import { toWslPath, useWsl } from "./utils/wslUtils";
@@ -96,17 +95,14 @@ class LeetCodeExecutor implements Disposable {
         );
     }
 
-    public async showProblem(problemNode: IProblem, language: string, outDir: string, detailed: boolean = false): Promise<string> {
-        const fileName: string = genFileName(problemNode, language);
-        const filePath: string = path.join(outDir, fileName);
+    public async showProblem(problemNode: IProblem, language: string, filePath: string, detailed: boolean = false): Promise<void> {
         const templateType: string = detailed ? "-cx" : "-c";
 
         if (!await fse.pathExists(filePath)) {
+            await fse.createFile(filePath);
             const codeTemplate: string = await this.executeCommandWithProgressEx("Fetching problem data...", this.nodeExecutable, [await this.getLeetCodeBinaryPath(), "show", problemNode.id, templateType, "-l", language]);
             await fse.writeFile(filePath, codeTemplate);
         }
-
-        return filePath;
     }
 
     public async showSolution(input: string, language: string): Promise<string> {

From 8d8f9ac5db7943927d2c3b6fd90c7fe7c1c45fd9 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Fri, 13 Sep 2019 16:24:14 +0800
Subject: [PATCH 27/92] docs: Update the document for new setting (#413)

---
 ACKNOWLEDGEMENTS.md  | 2 ++
 README.md            | 5 +++--
 docs/README_zh-CN.md | 5 +++--
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/ACKNOWLEDGEMENTS.md b/ACKNOWLEDGEMENTS.md
index bddc5bd5..75be5ed4 100644
--- a/ACKNOWLEDGEMENTS.md
+++ b/ACKNOWLEDGEMENTS.md
@@ -15,3 +15,5 @@ A big thanks to the following individuals for contributing:
 - [@xuzaixian](https://github.com/xuzaixian) — [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=xuzaixian)
 - [@ZainChen](https://github.com/ZainChen) — [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=ZainChen)
 - [@houtianze](https://github.com/houtianze) — [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=houtianze)
+- [@magic-akari](https://github.com/magic-akari) - [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=magic-akari)
+- [@SF-Zhou](https://github.com/SF-Zhou) - [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=SF-Zhou)
diff --git a/README.md b/README.md
index a1d6e64d..6bd352a9 100644
--- a/README.md
+++ b/README.md
@@ -118,9 +118,10 @@
 | `leetcode.useWsl`          | Specify whether to use WSL or not                                                                                                                                                                                                                                                                                                                                                  | `false`       |
 | `leetcode.endpoint`        | Specify the active endpoint. Supported endpoints are: `leetcode`, `leetcode-cn`                                                                                                                                                                                                                                                                                                    | `leetcode`    |
 | `leetcode.workspaceFolder` | Specify the path of the workspace folder to store the problem files. | `""` |
-| `leetcode.outputFolder`    | Specify the relative path to save the problem files. Besides using customized path, there are also several reserved words which can be used here: <ul><li>`${tag}`: Categorize the problem according to their tags.<li>`${language}`: Categorize the problem according to their language.</li><li>`${difficulty}`: Categorize the problem according to their difficulty.</li></ul>For example: `problem-${tag}-${difficulty}` | N/A           |
+| `leetcode.filePath` | Specify the relative path under the workspace and the file name to save the problem files. More details can be found [here](https://github.com/jdneo/vscode-leetcode/wiki/Customize-the-Relative-Folder-and-the-File-Name-of-the-Problem-File). |  |
+| **[Deprecated] Use `leetcode.filePath` instead** ~~`leetcode.outputFolder`~~    | ~~Specify the relative path to save the problem files. Besides using customized path, there are also several reserved words which can be used here: <ul><li>`${tag}`: Categorize the problem according to their tags.<li>`${language}`: Categorize the problem according to their language.</li><li>`${difficulty}`: Categorize the problem according to their difficulty.</li></ul>For example: `problem-${tag}-${difficulty}`~~ | ~~N/A~~           |
 | `leetcode.enableStatusBar` | Specify whether the LeetCode status bar will be shown or not.                                                                                                                                                                                                                                                                                                                      | `true`        |
-| **(Deprecated)** `leetcode.enableShortcuts` | Specify whether the submit and test shortcuts in editor or not.                                                                                                                                                                                                                                                                                                                    | `true`        |
+| **[Deprecated] Use `leetcode.editor.shortcuts` instead** ~~`leetcode.enableShortcuts`~~ | ~~Specify whether the submit and test shortcuts in editor or not.~~                                                                                                                                                                                                                                                                                                                    | ~~`true`~~        |
 | `leetcode.editor.shortcuts` | Specify the customized shorcuts in editors. Supported values are: `submit`, `test`, `solution` and `description`. | `["submit, test"]` |
 | `leetcode.enableSideMode`  | Specify whether `preview`, `solution` and `submission` tab should be grouped into the second editor column when solving a problem.                                                                                                                                                                                                                                                 | `true`        |
 | `leetcode.nodePath`        | Specify the `Node.js` executable path. for example, C:\Program Files\nodejs\node.exe                                                                                                                                                                                                                                                                                                                                            | `node`        |
diff --git a/docs/README_zh-CN.md b/docs/README_zh-CN.md
index 619863bd..4052da5f 100644
--- a/docs/README_zh-CN.md
+++ b/docs/README_zh-CN.md
@@ -118,9 +118,10 @@
 | `leetcode.useWsl`          | 指定是否启用 WSL                                                                                                                                                                                                                    | `false`    |
 | `leetcode.endpoint`        | 指定使用的终端,可用终端有:`leetcode`, `leetcode-cn`                                                                                                                                                                               | `leetcode` |
 | `leetcode.workspaceFolder` | 指定保存文件的工作区目录 | `""` |
-| `leetcode.outputFolder`    | 指定保存文件时所用的相对文件夹路径。除了用户自定义路径外,也可以使用保留项,包括:<ul><li>`${tag}`: 根据题目的类别进行分类。<li>`${language}`: 根据题目的语言进行分类。</li><li>`${difficulty}`: 根据题目的难度进行分类。</li></ul>例如:`problem-${tag}-${difficulty}` | N/A        |
+| `leetcode.filePath` | 指定生成题目文件的相对文件夹路径名和文件名。点击查看[更多详细用法](https://github.com/jdneo/vscode-leetcode/wiki/%E8%87%AA%E5%AE%9A%E4%B9%89%E9%A2%98%E7%9B%AE%E6%96%87%E4%BB%B6%E7%9A%84%E7%9B%B8%E5%AF%B9%E6%96%87%E4%BB%B6%E5%A4%B9%E8%B7%AF%E5%BE%84%E5%92%8C%E6%96%87%E4%BB%B6%E5%90%8D)。 |  |
+| **[Deprecated] 请使用 `leetcode.filePath`** ~~`leetcode.outputFolder`~~    | ~~指定保存文件时所用的相对文件夹路径。除了用户自定义路径外,也可以使用保留项,包括:<ul><li>`${tag}`: 根据题目的类别进行分类。<li>`${language}`: 根据题目的语言进行分类。</li><li>`${difficulty}`: 根据题目的难度进行分类。</li></ul>例如:`problem-${tag}-${difficulty}`~~ | ~~N/A~~        |
 | `leetcode.enableStatusBar` | 指定是否在 VS Code 下方显示插件状态栏。                                                                                                                                                                                             | `true`     |
-| **(Deprecated)** `leetcode.enableShortcuts` | 指定是否在 VS Code 编辑文件下方显示提交和测试的快捷按钮。                                                                                                                                                                           | `true`     |
+| **[Deprecated] 请使用 `leetcode.editor.shortcuts`** ~~`leetcode.enableShortcuts`~~ | ~~指定是否在 VS Code 编辑文件下方显示提交和测试的快捷按钮。~~                                                                                                                                                                           | ~~`true`~~     |
 | `leetcode.editor.shortcuts` | 指定在编辑器内所自定义的快捷方式。可用的快捷方式有: `submit`, `test`, `solution`, `description`。 | `["submit, test"]` |
 | `leetcode.enableSideMode`  | 指定在解决一道题时,是否将`问题预览`、`高票答案`与`提交结果`窗口集中在编辑器的第二栏。                                                                                                                                              | `true`     |
 | `leetcode.nodePath`        | 指定 `Node.js` 可执行文件的路径。如:C:\Program Files\nodejs\node.exe                                                                                                                                                                                                   | `node`     |

From ff9e36400aa2096dd1cb623341764f5ab2a96b11 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Sat, 14 Sep 2019 12:29:38 +0800
Subject: [PATCH 28/92] fix: Cannot show output when the answer is wrong (#416)

---
 package-lock.json | 36 ++++++++++++++++++------------------
 package.json      |  2 +-
 2 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 428ff0e2..c0c8e902 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -373,9 +373,9 @@
             "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg=="
         },
         "cssom": {
-            "version": "0.3.6",
-            "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.6.tgz",
-            "integrity": "sha512-DtUeseGk9/GBW0hl0vVPpU22iHL6YB5BUX7ml1hB+GMpo0NX5G4voX3kdWiMSEguFtcW3Vh3djqNF4aIe6ne0A==",
+            "version": "0.3.8",
+            "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
+            "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
             "optional": true
         },
         "cssstyle": {
@@ -518,9 +518,9 @@
             "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
         },
         "escodegen": {
-            "version": "1.11.1",
-            "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.1.tgz",
-            "integrity": "sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw==",
+            "version": "1.12.0",
+            "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz",
+            "integrity": "sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==",
             "optional": true,
             "requires": {
                 "esprima": "^3.1.3",
@@ -537,9 +537,9 @@
             "optional": true
         },
         "estraverse": {
-            "version": "4.2.0",
-            "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz",
-            "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=",
+            "version": "4.3.0",
+            "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+            "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
             "optional": true
         },
         "esutils": {
@@ -1273,9 +1273,9 @@
             "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg=="
         },
         "p-limit": {
-            "version": "2.2.0",
-            "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.0.tgz",
-            "integrity": "sha512-pZbTJpoUsCzV48Mc9Nh51VbwO0X9cuPFE8gYwx9BTCt9SF8/b7Zljd2fVgOxhIF/HDTKgpVzs+GPhyKfjLLFRQ==",
+            "version": "2.2.1",
+            "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
+            "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
             "requires": {
                 "p-try": "^2.0.0"
             }
@@ -1486,9 +1486,9 @@
             "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs="
         },
         "rimraf": {
-            "version": "2.6.3",
-            "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
-            "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
+            "version": "2.7.1",
+            "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+            "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
             "requires": {
                 "glob": "^7.1.3"
             }
@@ -1786,9 +1786,9 @@
             }
         },
         "vsc-leetcode-cli": {
-            "version": "2.6.8",
-            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.6.8.tgz",
-            "integrity": "sha512-Zo1GBWgr7orJawlTUmXMUCGpPJ8RThoHMh9vABiPJO3n+uhPgLNGkuETIKk7u+I1dD7FHk+G/IxfD5siR49z2A==",
+            "version": "2.6.10",
+            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.6.10.tgz",
+            "integrity": "sha512-eGf0GorHCkheBnqJN5B/RslZcfdcI6wL/v5Z23e4M3IZVOrrasiL9t6alAVXsOmeVubdMDJAaWT8R08lY46YCA==",
             "requires": {
                 "ansi-styles": "3.2.1",
                 "cheerio": "0.20.0",
diff --git a/package.json b/package.json
index 0ffde67d..ea25af60 100644
--- a/package.json
+++ b/package.json
@@ -683,6 +683,6 @@
         "markdown-it": "^8.4.2",
         "require-from-string": "^2.0.2",
         "unescape-js": "^1.1.1",
-        "vsc-leetcode-cli": "2.6.8"
+        "vsc-leetcode-cli": "2.6.10"
     }
 }

From a6d34bc98994462e7a2c42c85fbc6d072f11d7a5 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Sat, 14 Sep 2019 15:16:11 +0800
Subject: [PATCH 29/92] fix: Detect leetcode file by the comments (#417)

---
 src/codelens/CustomCodeLensProvider.ts | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/codelens/CustomCodeLensProvider.ts b/src/codelens/CustomCodeLensProvider.ts
index f201dbd7..52deaf38 100644
--- a/src/codelens/CustomCodeLensProvider.ts
+++ b/src/codelens/CustomCodeLensProvider.ts
@@ -22,8 +22,8 @@ export class CustomCodeLensProvider implements vscode.CodeLensProvider {
             return;
         }
 
-        const fileName: string = document.fileName.trim();
-        const matchResult: RegExpMatchArray | null = fileName.match(/\d+\..*\.(.+)/);
+        const content: string = document.getText();
+        const matchResult: RegExpMatchArray | null = content.match(/@lc app=.* id=.* lang=.*/);
         if (!matchResult) {
             return undefined;
         }

From ef0dd22e67e1231921f9e9a8777ba50f2f472421 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Sat, 14 Sep 2019 15:22:41 +0800
Subject: [PATCH 30/92] Prepare for 0.15.4 (#415)

---
 CHANGELOG.md         | 8 ++++++++
 README.md            | 1 +
 docs/README_zh-CN.md | 1 +
 package-lock.json    | 2 +-
 package.json         | 2 +-
 5 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 07f25a0f..af503540 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,14 @@ All notable changes to the "leetcode" extension will be documented in this file.
 
 Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
 
+## [0.15.4]
+### Added
+- Add a new setting `leetcode.filePath`. Now users can use this setting to dynamicly specify the relative folder name and file name. [#PR380](https://github.com/jdneo/vscode-leetcode/pull/380)
+
+### Fixed
+- Missing language `Rust` in the supported language list. [#PR412](https://github.com/jdneo/vscode-leetcode/pull/412)
+- Cannot show output when the answer is wrong. [#414](https://github.com/jdneo/vscode-leetcode/issues/414)
+
 ## [0.15.3]
 ### Added
 - Support `Pick One` [#263](https://github.com/jdneo/vscode-leetcode/issues/263)
diff --git a/README.md b/README.md
index 6bd352a9..2e445de4 100644
--- a/README.md
+++ b/README.md
@@ -125,6 +125,7 @@
 | `leetcode.editor.shortcuts` | Specify the customized shorcuts in editors. Supported values are: `submit`, `test`, `solution` and `description`. | `["submit, test"]` |
 | `leetcode.enableSideMode`  | Specify whether `preview`, `solution` and `submission` tab should be grouped into the second editor column when solving a problem.                                                                                                                                                                                                                                                 | `true`        |
 | `leetcode.nodePath`        | Specify the `Node.js` executable path. for example, C:\Program Files\nodejs\node.exe                                                                                                                                                                                                                                                                                                                                            | `node`        |
+| `leetcode.showCommentDescription` | Specify whether to include the problem description in the comments | `false` |
 
 ## Want Help?
 
diff --git a/docs/README_zh-CN.md b/docs/README_zh-CN.md
index 4052da5f..ed986874 100644
--- a/docs/README_zh-CN.md
+++ b/docs/README_zh-CN.md
@@ -125,6 +125,7 @@
 | `leetcode.editor.shortcuts` | 指定在编辑器内所自定义的快捷方式。可用的快捷方式有: `submit`, `test`, `solution`, `description`。 | `["submit, test"]` |
 | `leetcode.enableSideMode`  | 指定在解决一道题时,是否将`问题预览`、`高票答案`与`提交结果`窗口集中在编辑器的第二栏。                                                                                                                                              | `true`     |
 | `leetcode.nodePath`        | 指定 `Node.js` 可执行文件的路径。如:C:\Program Files\nodejs\node.exe                                                                                                                                                                                                   | `node`     |
+| `leetcode.showCommentDescription` | 指定是否要在注释中显示题干。 | `false` |
 
 ## 需要帮助?
 在遇到任何问题时,可以先查看一下[疑难解答](https://github.com/jdneo/vscode-leetcode/wiki/%E7%96%91%E9%9A%BE%E8%A7%A3%E7%AD%94)以及[常见问题](https://github.com/jdneo/vscode-leetcode/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)寻求帮助。
diff --git a/package-lock.json b/package-lock.json
index c0c8e902..cb81a83b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
 {
     "name": "vscode-leetcode",
-    "version": "0.15.3",
+    "version": "0.15.4",
     "lockfileVersion": 1,
     "requires": true,
     "dependencies": {
diff --git a/package.json b/package.json
index ea25af60..bedaed77 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
     "name": "vscode-leetcode",
     "displayName": "LeetCode",
     "description": "Solve LeetCode problems in VS Code",
-    "version": "0.15.3",
+    "version": "0.15.4",
     "author": "Sheng Chen",
     "publisher": "shengchen",
     "license": "MIT",

From 237e56fcc998e3ee73987c7fc7da2160c94d8d9d Mon Sep 17 00:00:00 2001
From: PoppinL <poppinlp@gmail.com>
Date: Mon, 16 Sep 2019 13:03:26 +0800
Subject: [PATCH 31/92] chore: replace the LeetCode.svg and LeetCode.png (#419)

---
 ACKNOWLEDGEMENTS.md    |   1 +
 README.md              |  32 ++++++++---------
 docs/README_zh-CN.md   |  32 ++++++++---------
 resources/LeetCode.png | Bin 4622 -> 15437 bytes
 resources/LeetCode.svg |  77 ++++++++++++++++++++++++++++++++++++++---
 5 files changed, 105 insertions(+), 37 deletions(-)

diff --git a/ACKNOWLEDGEMENTS.md b/ACKNOWLEDGEMENTS.md
index 75be5ed4..49a975e8 100644
--- a/ACKNOWLEDGEMENTS.md
+++ b/ACKNOWLEDGEMENTS.md
@@ -17,3 +17,4 @@ A big thanks to the following individuals for contributing:
 - [@houtianze](https://github.com/houtianze) — [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=houtianze)
 - [@magic-akari](https://github.com/magic-akari) - [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=magic-akari)
 - [@SF-Zhou](https://github.com/SF-Zhou) - [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=SF-Zhou)
+- [@JIEJIAN21](https://github.com/JIEJIAN21) - thanks for logo and icon design
diff --git a/README.md b/README.md
index 2e445de4..67fb4df0 100644
--- a/README.md
+++ b/README.md
@@ -110,22 +110,22 @@
 
 
 ## Settings
-| Setting Name               | Description                                                                                                                                                                                                                                                                                                                                                                        | Default Value |
-| -------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- |
-| `leetcode.hideSolved`      | Specify to hide the solved problems or not                                                                                                                                                                                                                                                                                                                                         | `false`       |
-| `leetcode.showLocked`      | Specify to show the locked problems or not. Only Premium users could open the locked problems                                                                                                                                                                                                                                                                                      | `false`       |
-| `leetcode.defaultLanguage` | Specify the default language used to solve the problem. Supported languages are: `bash`, `c`, `cpp`, `csharp`, `golang`, `java`, `javascript`, `kotlin`, `mysql`, `php`, `python`,`python3`,`ruby`,`rust`, `scala`,`swift`                                                                                                                                                         | `N/A`         |
-| `leetcode.useWsl`          | Specify whether to use WSL or not                                                                                                                                                                                                                                                                                                                                                  | `false`       |
-| `leetcode.endpoint`        | Specify the active endpoint. Supported endpoints are: `leetcode`, `leetcode-cn`                                                                                                                                                                                                                                                                                                    | `leetcode`    |
-| `leetcode.workspaceFolder` | Specify the path of the workspace folder to store the problem files. | `""` |
-| `leetcode.filePath` | Specify the relative path under the workspace and the file name to save the problem files. More details can be found [here](https://github.com/jdneo/vscode-leetcode/wiki/Customize-the-Relative-Folder-and-the-File-Name-of-the-Problem-File). |  |
-| **[Deprecated] Use `leetcode.filePath` instead** ~~`leetcode.outputFolder`~~    | ~~Specify the relative path to save the problem files. Besides using customized path, there are also several reserved words which can be used here: <ul><li>`${tag}`: Categorize the problem according to their tags.<li>`${language}`: Categorize the problem according to their language.</li><li>`${difficulty}`: Categorize the problem according to their difficulty.</li></ul>For example: `problem-${tag}-${difficulty}`~~ | ~~N/A~~           |
-| `leetcode.enableStatusBar` | Specify whether the LeetCode status bar will be shown or not.                                                                                                                                                                                                                                                                                                                      | `true`        |
-| **[Deprecated] Use `leetcode.editor.shortcuts` instead** ~~`leetcode.enableShortcuts`~~ | ~~Specify whether the submit and test shortcuts in editor or not.~~                                                                                                                                                                                                                                                                                                                    | ~~`true`~~        |
-| `leetcode.editor.shortcuts` | Specify the customized shorcuts in editors. Supported values are: `submit`, `test`, `solution` and `description`. | `["submit, test"]` |
-| `leetcode.enableSideMode`  | Specify whether `preview`, `solution` and `submission` tab should be grouped into the second editor column when solving a problem.                                                                                                                                                                                                                                                 | `true`        |
-| `leetcode.nodePath`        | Specify the `Node.js` executable path. for example, C:\Program Files\nodejs\node.exe                                                                                                                                                                                                                                                                                                                                            | `node`        |
-| `leetcode.showCommentDescription` | Specify whether to include the problem description in the comments | `false` |
+| Setting Name                                                                            | Description                                                                                                                                                                                                                                                                                                                                                                                                                       | Default Value      |
+| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ |
+| `leetcode.hideSolved`                                                                   | Specify to hide the solved problems or not                                                                                                                                                                                                                                                                                                                                                                                        | `false`            |
+| `leetcode.showLocked`                                                                   | Specify to show the locked problems or not. Only Premium users could open the locked problems                                                                                                                                                                                                                                                                                                                                     | `false`            |
+| `leetcode.defaultLanguage`                                                              | Specify the default language used to solve the problem. Supported languages are: `bash`, `c`, `cpp`, `csharp`, `golang`, `java`, `javascript`, `kotlin`, `mysql`, `php`, `python`,`python3`,`ruby`,`rust`, `scala`,`swift`                                                                                                                                                                                                        | `N/A`              |
+| `leetcode.useWsl`                                                                       | Specify whether to use WSL or not                                                                                                                                                                                                                                                                                                                                                                                                 | `false`            |
+| `leetcode.endpoint`                                                                     | Specify the active endpoint. Supported endpoints are: `leetcode`, `leetcode-cn`                                                                                                                                                                                                                                                                                                                                                   | `leetcode`         |
+| `leetcode.workspaceFolder`                                                              | Specify the path of the workspace folder to store the problem files.                                                                                                                                                                                                                                                                                                                                                              | `""`               |
+| `leetcode.filePath`                                                                     | Specify the relative path under the workspace and the file name to save the problem files. More details can be found [here](https://github.com/jdneo/vscode-leetcode/wiki/Customize-the-Relative-Folder-and-the-File-Name-of-the-Problem-File).                                                                                                                                                                                   |                    |
+| **[Deprecated] Use `leetcode.filePath` instead** ~~`leetcode.outputFolder`~~            | ~~Specify the relative path to save the problem files. Besides using customized path, there are also several reserved words which can be used here: <ul><li>`${tag}`: Categorize the problem according to their tags.<li>`${language}`: Categorize the problem according to their language.</li><li>`${difficulty}`: Categorize the problem according to their difficulty.</li></ul>For example: `problem-${tag}-${difficulty}`~~ | ~~N/A~~            |
+| `leetcode.enableStatusBar`                                                              | Specify whether the LeetCode status bar will be shown or not.                                                                                                                                                                                                                                                                                                                                                                     | `true`             |
+| **[Deprecated] Use `leetcode.editor.shortcuts` instead** ~~`leetcode.enableShortcuts`~~ | ~~Specify whether the submit and test shortcuts in editor or not.~~                                                                                                                                                                                                                                                                                                                                                               | ~~`true`~~         |
+| `leetcode.editor.shortcuts`                                                             | Specify the customized shorcuts in editors. Supported values are: `submit`, `test`, `solution` and `description`.                                                                                                                                                                                                                                                                                                                 | `["submit, test"]` |
+| `leetcode.enableSideMode`                                                               | Specify whether `preview`, `solution` and `submission` tab should be grouped into the second editor column when solving a problem.                                                                                                                                                                                                                                                                                                | `true`             |
+| `leetcode.nodePath`                                                                     | Specify the `Node.js` executable path. for example, C:\Program Files\nodejs\node.exe                                                                                                                                                                                                                                                                                                                                              | `node`             |
+| `leetcode.showCommentDescription`                                                       | Specify whether to include the problem description in the comments                                                                                                                                                                                                                                                                                                                                                                | `false`            |
 
 ## Want Help?
 
diff --git a/docs/README_zh-CN.md b/docs/README_zh-CN.md
index ed986874..4c9348a1 100644
--- a/docs/README_zh-CN.md
+++ b/docs/README_zh-CN.md
@@ -110,22 +110,22 @@
 
 
 ## 插件配置项
-| 配置项名称                 | 描述                                                                                                                                                                                                                                | 默认值     |
-| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- |
-| `leetcode.hideSolved`      | 指定是否要隐藏已解决的问题                                                                                                                                                                                                          | `false`    |
-| `leetcode.showLocked`      | 指定是否显示付费题目,只有付费账户才可以打开付费题目                                                                                                                                                                                | `false`    |
-| `leetcode.defaultLanguage` | 指定答题时使用的默认语言,可选语言有:`bash`, `c`, `cpp`, `csharp`, `golang`, `java`, `javascript`, `kotlin`, `mysql`, `php`, `python`,`python3`,`ruby`, `rust`, `scala`,`swift`                                                    | `N/A`      |
-| `leetcode.useWsl`          | 指定是否启用 WSL                                                                                                                                                                                                                    | `false`    |
-| `leetcode.endpoint`        | 指定使用的终端,可用终端有:`leetcode`, `leetcode-cn`                                                                                                                                                                               | `leetcode` |
-| `leetcode.workspaceFolder` | 指定保存文件的工作区目录 | `""` |
-| `leetcode.filePath` | 指定生成题目文件的相对文件夹路径名和文件名。点击查看[更多详细用法](https://github.com/jdneo/vscode-leetcode/wiki/%E8%87%AA%E5%AE%9A%E4%B9%89%E9%A2%98%E7%9B%AE%E6%96%87%E4%BB%B6%E7%9A%84%E7%9B%B8%E5%AF%B9%E6%96%87%E4%BB%B6%E5%A4%B9%E8%B7%AF%E5%BE%84%E5%92%8C%E6%96%87%E4%BB%B6%E5%90%8D)。 |  |
-| **[Deprecated] 请使用 `leetcode.filePath`** ~~`leetcode.outputFolder`~~    | ~~指定保存文件时所用的相对文件夹路径。除了用户自定义路径外,也可以使用保留项,包括:<ul><li>`${tag}`: 根据题目的类别进行分类。<li>`${language}`: 根据题目的语言进行分类。</li><li>`${difficulty}`: 根据题目的难度进行分类。</li></ul>例如:`problem-${tag}-${difficulty}`~~ | ~~N/A~~        |
-| `leetcode.enableStatusBar` | 指定是否在 VS Code 下方显示插件状态栏。                                                                                                                                                                                             | `true`     |
-| **[Deprecated] 请使用 `leetcode.editor.shortcuts`** ~~`leetcode.enableShortcuts`~~ | ~~指定是否在 VS Code 编辑文件下方显示提交和测试的快捷按钮。~~                                                                                                                                                                           | ~~`true`~~     |
-| `leetcode.editor.shortcuts` | 指定在编辑器内所自定义的快捷方式。可用的快捷方式有: `submit`, `test`, `solution`, `description`。 | `["submit, test"]` |
-| `leetcode.enableSideMode`  | 指定在解决一道题时,是否将`问题预览`、`高票答案`与`提交结果`窗口集中在编辑器的第二栏。                                                                                                                                              | `true`     |
-| `leetcode.nodePath`        | 指定 `Node.js` 可执行文件的路径。如:C:\Program Files\nodejs\node.exe                                                                                                                                                                                                   | `node`     |
-| `leetcode.showCommentDescription` | 指定是否要在注释中显示题干。 | `false` |
+| 配置项名称                                                                         | 描述                                                                                                                                                                                                                                                                                            | 默认值             |
+| ---------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ |
+| `leetcode.hideSolved`                                                              | 指定是否要隐藏已解决的问题                                                                                                                                                                                                                                                                      | `false`            |
+| `leetcode.showLocked`                                                              | 指定是否显示付费题目,只有付费账户才可以打开付费题目                                                                                                                                                                                                                                            | `false`            |
+| `leetcode.defaultLanguage`                                                         | 指定答题时使用的默认语言,可选语言有:`bash`, `c`, `cpp`, `csharp`, `golang`, `java`, `javascript`, `kotlin`, `mysql`, `php`, `python`,`python3`,`ruby`, `rust`, `scala`,`swift`                                                                                                                | `N/A`              |
+| `leetcode.useWsl`                                                                  | 指定是否启用 WSL                                                                                                                                                                                                                                                                                | `false`            |
+| `leetcode.endpoint`                                                                | 指定使用的终端,可用终端有:`leetcode`, `leetcode-cn`                                                                                                                                                                                                                                           | `leetcode`         |
+| `leetcode.workspaceFolder`                                                         | 指定保存文件的工作区目录                                                                                                                                                                                                                                                                        | `""`               |
+| `leetcode.filePath`                                                                | 指定生成题目文件的相对文件夹路径名和文件名。点击查看[更多详细用法](https://github.com/jdneo/vscode-leetcode/wiki/%E8%87%AA%E5%AE%9A%E4%B9%89%E9%A2%98%E7%9B%AE%E6%96%87%E4%BB%B6%E7%9A%84%E7%9B%B8%E5%AF%B9%E6%96%87%E4%BB%B6%E5%A4%B9%E8%B7%AF%E5%BE%84%E5%92%8C%E6%96%87%E4%BB%B6%E5%90%8D)。 |                    |
+| **[Deprecated] 请使用 `leetcode.filePath`** ~~`leetcode.outputFolder`~~            | ~~指定保存文件时所用的相对文件夹路径。除了用户自定义路径外,也可以使用保留项,包括:<ul><li>`${tag}`: 根据题目的类别进行分类。<li>`${language}`: 根据题目的语言进行分类。</li><li>`${difficulty}`: 根据题目的难度进行分类。</li></ul>例如:`problem-${tag}-${difficulty}`~~                     | ~~N/A~~            |
+| `leetcode.enableStatusBar`                                                         | 指定是否在 VS Code 下方显示插件状态栏。                                                                                                                                                                                                                                                         | `true`             |
+| **[Deprecated] 请使用 `leetcode.editor.shortcuts`** ~~`leetcode.enableShortcuts`~~ | ~~指定是否在 VS Code 编辑文件下方显示提交和测试的快捷按钮。~~                                                                                                                                                                                                                                   | ~~`true`~~         |
+| `leetcode.editor.shortcuts`                                                        | 指定在编辑器内所自定义的快捷方式。可用的快捷方式有: `submit`, `test`, `solution`, `description`。                                                                                                                                                                                               | `["submit, test"]` |
+| `leetcode.enableSideMode`                                                          | 指定在解决一道题时,是否将`问题预览`、`高票答案`与`提交结果`窗口集中在编辑器的第二栏。                                                                                                                                                                                                          | `true`             |
+| `leetcode.nodePath`                                                                | 指定 `Node.js` 可执行文件的路径。如:C:\Program Files\nodejs\node.exe                                                                                                                                                                                                                           | `node`             |
+| `leetcode.showCommentDescription`                                                  | 指定是否要在注释中显示题干。                                                                                                                                                                                                                                                                    | `false`            |
 
 ## 需要帮助?
 在遇到任何问题时,可以先查看一下[疑难解答](https://github.com/jdneo/vscode-leetcode/wiki/%E7%96%91%E9%9A%BE%E8%A7%A3%E7%AD%94)以及[常见问题](https://github.com/jdneo/vscode-leetcode/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)寻求帮助。
diff --git a/resources/LeetCode.png b/resources/LeetCode.png
index dcf79f2d94990c0c2e0437dd1df3d782f38e878c..d068e69789afa0277908230fc9f89c106f5c5487 100644
GIT binary patch
literal 15437
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%0Ao`s
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
D)Sv-e

literal 4622
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
Eg4n&jnE(I)

diff --git a/resources/LeetCode.svg b/resources/LeetCode.svg
index a3bac1f0..b8ea3230 100644
--- a/resources/LeetCode.svg
+++ b/resources/LeetCode.svg
@@ -1,11 +1,78 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<svg width="15px" height="16px" viewBox="0 0 15 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <!-- Generator: Sketch 57 (83077) - https://sketch.com -->
-    <title>Combined Shape</title>
+<svg width="77px" height="85px" viewBox="0 0 77 85" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 57.1 (83088) - https://sketch.com -->
+    <title>Group 2</title>
     <desc>Created with Sketch.</desc>
+    <defs>
+        <linearGradient x1="95.1049295%" y1="78.2798384%" x2="17.3264972%" y2="20.0581496%" id="linearGradient-1">
+            <stop stop-color="#FFC850" offset="0%"></stop>
+            <stop stop-color="#DBAC46" offset="100%"></stop>
+        </linearGradient>
+        <linearGradient x1="50.9225376%" y1="47.1028834%" x2="17.3264972%" y2="20.0581496%" id="linearGradient-2">
+            <stop stop-color="#EED160" stop-opacity="0" offset="0%"></stop>
+            <stop stop-color="#B8780A" offset="100%"></stop>
+        </linearGradient>
+        <linearGradient x1="95.1049295%" y1="70.3074724%" x2="17.3264972%" y2="28.4990532%" id="linearGradient-3">
+            <stop stop-color="#FFC850" offset="0%"></stop>
+            <stop stop-color="#DBAC46" offset="100%"></stop>
+        </linearGradient>
+        <linearGradient x1="50.9225376%" y1="47.9196092%" x2="17.3264972%" y2="28.4990532%" id="linearGradient-4">
+            <stop stop-color="#EED160" stop-opacity="0" offset="0%"></stop>
+            <stop stop-color="#B8780A" offset="100%"></stop>
+        </linearGradient>
+        <path d="M48.0907429,1.98230111 L9.7992724,39.9883685 C4.365387,45.3817528 4.27174622,54.1398004 9.58907078,59.6481363 L32.5977376,83.4833308 C33.3515315,84.2642028 34.3902808,84.7052417 35.4756224,84.7052417 L45.1816856,84.7052417 L45.1816856,84.7052417 L46.4248674,83.6239717 L46.4040725,83.6299012 C45.6581036,83.8426086 44.8564165,83.6047866 44.3471146,83.0197005 L21.3057723,56.5498051 C17.9292764,52.6708864 18.045281,46.8634428 21.5739856,43.1224565 L54.5886366,8.12169258 C55.7255138,6.91642245 55.6700705,5.01773684 54.4648003,3.88085958 C54.4422136,3.85955457 54.4192976,3.83860151 54.3960604,3.81800795 L52.1938718,1.86635544 C51.0096245,0.81683628 49.2138334,0.867581507 48.0907429,1.98230111 Z" id="path-5"></path>
+        <filter x="9.1%" y="0.7%" width="89.5%" height="99.9%" filterUnits="objectBoundingBox" id="filter-6">
+            <feGaussianBlur stdDeviation="0.5" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
+            <feOffset dx="0" dy="0" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
+            <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
+            <feColorMatrix values="0 0 0 0 1   0 0 0 0 0.920410497   0 0 0 0 0.746760671  0 0 0 1 0" type="matrix" in="shadowInnerInner1"></feColorMatrix>
+        </filter>
+        <radialGradient cx="88.6763606%" cy="52.7390436%" fx="88.6763606%" fy="52.7390436%" r="81.8107923%" gradientTransform="translate(0.886764,0.527390),scale(1.000000,0.669522),rotate(9.155165),scale(1.000000,1.054640),translate(-0.886764,-0.527390)" id="radialGradient-7">
+            <stop stop-color="#FFC850" offset="0%"></stop>
+            <stop stop-color="#FFC951" offset="88.6795822%"></stop>
+            <stop stop-color="#FFE688" offset="100%"></stop>
+        </radialGradient>
+        <path d="M48.0907429,1.98230111 L9.7992724,39.9883685 C4.365387,45.3817528 4.27174622,54.1398004 9.58907078,59.6481363 L32.5977376,83.4833308 C33.3515315,84.2642028 34.3902808,84.7052417 35.4756224,84.7052417 L45.1816856,84.7052417 L45.1816856,84.7052417 L46.4248674,83.6239717 L46.4040725,83.6299012 C45.6581036,83.8426086 44.8564165,83.6047866 44.3471146,83.0197005 L21.3057723,56.5498051 C17.9292764,52.6708864 18.045281,46.8634428 21.5739856,43.1224565 L54.5886366,8.12169258 C55.7255138,6.91642245 55.6700705,5.01773684 54.4648003,3.88085958 C54.4422136,3.85955457 54.4192976,3.83860151 54.3960604,3.81800795 L52.1938718,1.86635544 C51.0096245,0.81683628 49.2138334,0.867581507 48.0907429,1.98230111 Z" id="path-8"></path>
+        <filter x="9.1%" y="0.7%" width="89.5%" height="99.9%" filterUnits="objectBoundingBox" id="filter-9">
+            <feGaussianBlur stdDeviation="0.5" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
+            <feOffset dx="0" dy="0" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
+            <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
+            <feColorMatrix values="0 0 0 0 1   0 0 0 0 0.920410497   0 0 0 0 0.746760671  0 0 0 1 0" type="matrix" in="shadowInnerInner1"></feColorMatrix>
+        </filter>
+        <linearGradient x1="73.1557209%" y1="65.5860051%" x2="73.1557209%" y2="100%" id="linearGradient-10">
+            <stop stop-color="#FFC850" stop-opacity="0" offset="0%"></stop>
+            <stop stop-color="#FFC951" stop-opacity="0" offset="93.9189189%"></stop>
+            <stop stop-color="#FFE688" offset="100%"></stop>
+        </linearGradient>
+        <path d="M48.0907429,1.98230111 L9.7992724,39.9883685 C4.365387,45.3817528 4.27174622,54.1398004 9.58907078,59.6481363 L32.5977376,83.4833308 C33.3515315,84.2642028 34.3902808,84.7052417 35.4756224,84.7052417 L45.1816856,84.7052417 L45.1816856,84.7052417 L46.4248674,83.6239717 L46.4040725,83.6299012 C45.6581036,83.8426086 44.8564165,83.6047866 44.3471146,83.0197005 L21.3057723,56.5498051 C17.9292764,52.6708864 18.045281,46.8634428 21.5739856,43.1224565 L54.5886366,8.12169258 C55.7255138,6.91642245 55.6700705,5.01773684 54.4648003,3.88085958 C54.4422136,3.85955457 54.4192976,3.83860151 54.3960604,3.81800795 L52.1938718,1.86635544 C51.0096245,0.81683628 49.2138334,0.867581507 48.0907429,1.98230111 Z" id="path-11"></path>
+        <filter x="9.1%" y="0.7%" width="89.5%" height="99.9%" filterUnits="objectBoundingBox" id="filter-12">
+            <feGaussianBlur stdDeviation="0.5" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
+            <feOffset dx="0" dy="0" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
+            <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
+            <feColorMatrix values="0 0 0 0 1   0 0 0 0 0.920410497   0 0 0 0 0.746760671  0 0 0 1 0" type="matrix" in="shadowInnerInner1"></feColorMatrix>
+        </filter>
+    </defs>
     <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="Artboard" transform="translate(-439.000000, -612.000000)" fill="#303133" fill-rule="nonzero">
-            <path d="M448.617144,612.16769 C448.808341,612.363282 448.826418,612.663731 448.673533,612.879152 L448.608191,612.955578 L446.15,615.357 L449.894886,619.007259 C450.093972,619.194817 450.124399,619.494266 449.98051,619.715797 L449.918369,619.794848 C449.707367,620.01882 449.354751,620.029333 449.13078,619.818331 L449.13078,619.818331 L445.354,616.136 L440.170212,621.203943 C440.111737,621.261104 440.099007,621.347469 440.132652,621.417331 L440.166592,621.46592 L445.358074,626.829135 C445.415144,626.888093 445.501806,626.90111 445.571922,626.867432 L445.620685,626.833408 L445.623532,626.830592 L449.13805,623.278672 C449.354479,623.05994 449.707246,623.058073 449.925978,623.274502 C450.120407,623.466883 450.143485,623.766988 449.994209,623.984926 L449.930149,624.06243 L446.415631,627.61435 L446.395701,627.634062 C445.914207,628.100138 445.16516,628.119545 444.661422,627.700626 L444.55742,627.604151 L439.365938,622.240936 C438.901478,621.761111 438.880378,621.015175 439.29562,620.511206 L439.391276,620.407102 L447.829256,612.158737 C448.049297,611.94364 448.402047,611.947648 448.617144,612.16769 Z M446.514534,621 L453.485466,621 C453.769635,621 454,621.223858 454,621.5 C454,621.74546 453.817984,621.949608 453.577954,621.991944 L453.485466,622 L446.514534,622 C446.230365,622 446,621.776142 446,621.5 C446,621.25454 446.182016,621.050392 446.422046,621.008056 L446.514534,621 L453.485466,621 Z" id="Combined-Shape"></path>
+        <g id="Artboard" transform="translate(-448.000000, -253.000000)">
+            <g id="Group-2" transform="translate(442.410939, 252.558696)">
+                <path d="M42.5542463,15.4354491 L69.4589383,41.1447295 C70.2575266,41.9078353 70.2862907,43.1738386 69.5231848,43.9724268 C69.4743282,44.0235551 69.4227943,44.0720561 69.3688001,44.1177254 L67.6165172,45.599841 C66.8956455,46.2095686 65.8465638,46.2321199 65.1001563,45.6539334 L33.5988128,21.2521786 L33.5988128,21.2521786 L42.5542463,15.4354491 Z" id="Path-6" fill="url(#linearGradient-1)" transform="translate(52.332910, 31.040482) rotate(-1.000000) translate(-52.332910, -31.040482) "></path>
+                <path d="M42.5542463,15.4354491 L69.4589383,41.1447295 C70.2575266,41.9078353 70.2862907,43.1738386 69.5231848,43.9724268 C69.4743282,44.0235551 69.4227943,44.0720561 69.3688001,44.1177254 L67.6165172,45.599841 C66.8956455,46.2095686 65.8465638,46.2321199 65.1001563,45.6539334 L33.5988128,21.2521786 L33.5988128,21.2521786 L42.5542463,15.4354491 Z" id="Path-6" fill="url(#linearGradient-2)" opacity="0.575218564" transform="translate(52.332910, 31.040482) rotate(-1.000000) translate(-52.332910, -31.040482) "></path>
+                <path d="M45.1816856,57.9834216 L67.9190185,78.0824932 C68.7466031,78.8140515 68.8244479,80.0779865 68.0928897,80.9055711 C68.0845908,80.9149594 68.0762038,80.9242694 68.06773,80.9335001 L65.8223492,83.3793956 C65.130382,84.1331562 63.9810937,84.2430748 63.1587975,83.6341393 L31.589061,60.2557855 L31.589061,60.2557855 L32.7765693,59.1076831 C33.5224653,58.3865387 34.5193782,57.9834216 35.5568801,57.9834216 L45.1816856,57.9834216 L45.1816856,57.9834216 Z" id="Path-6-Copy" fill="url(#linearGradient-3)" transform="translate(50.517493, 71.344332) scale(-1, 1) rotate(-180.000000) translate(-50.517493, -71.344332) "></path>
+                <path d="M45.1816856,57.9834216 L67.9190185,78.0824932 C68.7466031,78.8140515 68.8244479,80.0779865 68.0928897,80.9055711 C68.0845908,80.9149594 68.0762038,80.9242694 68.06773,80.9335001 L65.8223492,83.3793956 C65.130382,84.1331562 63.9810937,84.2430748 63.1587975,83.6341393 L31.589061,60.2557855 L31.589061,60.2557855 L32.7765693,59.1076831 C33.5224653,58.3865387 34.5193782,57.9834216 35.5568801,57.9834216 L45.1816856,57.9834216 L45.1816856,57.9834216 Z" id="Path-6-Copy" fill="url(#linearGradient-4)" opacity="0.575218564" transform="translate(50.517493, 71.344332) scale(-1, 1) rotate(-180.000000) translate(-50.517493, -71.344332) "></path>
+                <g id="Path-5">
+                    <use fill="#FFC850" fill-rule="evenodd" xlink:href="#path-5"></use>
+                    <use fill="black" fill-opacity="1" filter="url(#filter-6)" xlink:href="#path-5"></use>
+                </g>
+                <g id="Path-5">
+                    <use fill="url(#radialGradient-7)" fill-rule="evenodd" xlink:href="#path-8"></use>
+                    <use fill="black" fill-opacity="1" filter="url(#filter-9)" xlink:href="#path-8"></use>
+                </g>
+                <g id="Path-5">
+                    <use fill="url(#linearGradient-10)" fill-rule="evenodd" xlink:href="#path-11"></use>
+                    <use fill="black" fill-opacity="1" filter="url(#filter-12)" xlink:href="#path-11"></use>
+                </g>
+                <path d="M57.226842,38.2936568 L78.4984074,60.6713202 C79.2458216,61.4575992 79.2301284,62.6963752 78.4630357,63.463468 L76.2170933,65.7094104 C75.4557792,66.4707245 74.228407,66.4927362 73.4402844,65.7592098 L50.8705573,44.7529721 C50.0620053,44.0004315 50.0165991,42.7349158 50.7691397,41.9263638 C50.7807829,41.913854 50.792586,41.9014939 50.804546,41.8892867 L54.3486501,38.2719185 C55.1216678,37.4829208 56.3879315,37.4699665 57.1769292,38.2429843 C57.1938659,38.2595779 57.2105061,38.2764714 57.226842,38.2936568 Z" id="Path-6" fill="#909399" transform="translate(64.605196, 51.932685) rotate(-45.000000) translate(-64.605196, -51.932685) "></path>
+            </g>
         </g>
     </g>
 </svg>
\ No newline at end of file

From d0f23e50840e11fb9e1c7e82acc0e8f9288de824 Mon Sep 17 00:00:00 2001
From: PoppinL <poppinlp@gmail.com>
Date: Tue, 17 Sep 2019 12:34:17 +0800
Subject: [PATCH 32/92] chore: revert the icon for activity bar (#423)

---
 resources/LeetCode.svg | 77 +++---------------------------------------
 1 file changed, 5 insertions(+), 72 deletions(-)

diff --git a/resources/LeetCode.svg b/resources/LeetCode.svg
index b8ea3230..a3bac1f0 100644
--- a/resources/LeetCode.svg
+++ b/resources/LeetCode.svg
@@ -1,78 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<svg width="77px" height="85px" viewBox="0 0 77 85" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <!-- Generator: Sketch 57.1 (83088) - https://sketch.com -->
-    <title>Group 2</title>
+<svg width="15px" height="16px" viewBox="0 0 15 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 57 (83077) - https://sketch.com -->
+    <title>Combined Shape</title>
     <desc>Created with Sketch.</desc>
-    <defs>
-        <linearGradient x1="95.1049295%" y1="78.2798384%" x2="17.3264972%" y2="20.0581496%" id="linearGradient-1">
-            <stop stop-color="#FFC850" offset="0%"></stop>
-            <stop stop-color="#DBAC46" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="50.9225376%" y1="47.1028834%" x2="17.3264972%" y2="20.0581496%" id="linearGradient-2">
-            <stop stop-color="#EED160" stop-opacity="0" offset="0%"></stop>
-            <stop stop-color="#B8780A" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="95.1049295%" y1="70.3074724%" x2="17.3264972%" y2="28.4990532%" id="linearGradient-3">
-            <stop stop-color="#FFC850" offset="0%"></stop>
-            <stop stop-color="#DBAC46" offset="100%"></stop>
-        </linearGradient>
-        <linearGradient x1="50.9225376%" y1="47.9196092%" x2="17.3264972%" y2="28.4990532%" id="linearGradient-4">
-            <stop stop-color="#EED160" stop-opacity="0" offset="0%"></stop>
-            <stop stop-color="#B8780A" offset="100%"></stop>
-        </linearGradient>
-        <path d="M48.0907429,1.98230111 L9.7992724,39.9883685 C4.365387,45.3817528 4.27174622,54.1398004 9.58907078,59.6481363 L32.5977376,83.4833308 C33.3515315,84.2642028 34.3902808,84.7052417 35.4756224,84.7052417 L45.1816856,84.7052417 L45.1816856,84.7052417 L46.4248674,83.6239717 L46.4040725,83.6299012 C45.6581036,83.8426086 44.8564165,83.6047866 44.3471146,83.0197005 L21.3057723,56.5498051 C17.9292764,52.6708864 18.045281,46.8634428 21.5739856,43.1224565 L54.5886366,8.12169258 C55.7255138,6.91642245 55.6700705,5.01773684 54.4648003,3.88085958 C54.4422136,3.85955457 54.4192976,3.83860151 54.3960604,3.81800795 L52.1938718,1.86635544 C51.0096245,0.81683628 49.2138334,0.867581507 48.0907429,1.98230111 Z" id="path-5"></path>
-        <filter x="9.1%" y="0.7%" width="89.5%" height="99.9%" filterUnits="objectBoundingBox" id="filter-6">
-            <feGaussianBlur stdDeviation="0.5" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
-            <feOffset dx="0" dy="0" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
-            <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
-            <feColorMatrix values="0 0 0 0 1   0 0 0 0 0.920410497   0 0 0 0 0.746760671  0 0 0 1 0" type="matrix" in="shadowInnerInner1"></feColorMatrix>
-        </filter>
-        <radialGradient cx="88.6763606%" cy="52.7390436%" fx="88.6763606%" fy="52.7390436%" r="81.8107923%" gradientTransform="translate(0.886764,0.527390),scale(1.000000,0.669522),rotate(9.155165),scale(1.000000,1.054640),translate(-0.886764,-0.527390)" id="radialGradient-7">
-            <stop stop-color="#FFC850" offset="0%"></stop>
-            <stop stop-color="#FFC951" offset="88.6795822%"></stop>
-            <stop stop-color="#FFE688" offset="100%"></stop>
-        </radialGradient>
-        <path d="M48.0907429,1.98230111 L9.7992724,39.9883685 C4.365387,45.3817528 4.27174622,54.1398004 9.58907078,59.6481363 L32.5977376,83.4833308 C33.3515315,84.2642028 34.3902808,84.7052417 35.4756224,84.7052417 L45.1816856,84.7052417 L45.1816856,84.7052417 L46.4248674,83.6239717 L46.4040725,83.6299012 C45.6581036,83.8426086 44.8564165,83.6047866 44.3471146,83.0197005 L21.3057723,56.5498051 C17.9292764,52.6708864 18.045281,46.8634428 21.5739856,43.1224565 L54.5886366,8.12169258 C55.7255138,6.91642245 55.6700705,5.01773684 54.4648003,3.88085958 C54.4422136,3.85955457 54.4192976,3.83860151 54.3960604,3.81800795 L52.1938718,1.86635544 C51.0096245,0.81683628 49.2138334,0.867581507 48.0907429,1.98230111 Z" id="path-8"></path>
-        <filter x="9.1%" y="0.7%" width="89.5%" height="99.9%" filterUnits="objectBoundingBox" id="filter-9">
-            <feGaussianBlur stdDeviation="0.5" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
-            <feOffset dx="0" dy="0" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
-            <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
-            <feColorMatrix values="0 0 0 0 1   0 0 0 0 0.920410497   0 0 0 0 0.746760671  0 0 0 1 0" type="matrix" in="shadowInnerInner1"></feColorMatrix>
-        </filter>
-        <linearGradient x1="73.1557209%" y1="65.5860051%" x2="73.1557209%" y2="100%" id="linearGradient-10">
-            <stop stop-color="#FFC850" stop-opacity="0" offset="0%"></stop>
-            <stop stop-color="#FFC951" stop-opacity="0" offset="93.9189189%"></stop>
-            <stop stop-color="#FFE688" offset="100%"></stop>
-        </linearGradient>
-        <path d="M48.0907429,1.98230111 L9.7992724,39.9883685 C4.365387,45.3817528 4.27174622,54.1398004 9.58907078,59.6481363 L32.5977376,83.4833308 C33.3515315,84.2642028 34.3902808,84.7052417 35.4756224,84.7052417 L45.1816856,84.7052417 L45.1816856,84.7052417 L46.4248674,83.6239717 L46.4040725,83.6299012 C45.6581036,83.8426086 44.8564165,83.6047866 44.3471146,83.0197005 L21.3057723,56.5498051 C17.9292764,52.6708864 18.045281,46.8634428 21.5739856,43.1224565 L54.5886366,8.12169258 C55.7255138,6.91642245 55.6700705,5.01773684 54.4648003,3.88085958 C54.4422136,3.85955457 54.4192976,3.83860151 54.3960604,3.81800795 L52.1938718,1.86635544 C51.0096245,0.81683628 49.2138334,0.867581507 48.0907429,1.98230111 Z" id="path-11"></path>
-        <filter x="9.1%" y="0.7%" width="89.5%" height="99.9%" filterUnits="objectBoundingBox" id="filter-12">
-            <feGaussianBlur stdDeviation="0.5" in="SourceAlpha" result="shadowBlurInner1"></feGaussianBlur>
-            <feOffset dx="0" dy="0" in="shadowBlurInner1" result="shadowOffsetInner1"></feOffset>
-            <feComposite in="shadowOffsetInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
-            <feColorMatrix values="0 0 0 0 1   0 0 0 0 0.920410497   0 0 0 0 0.746760671  0 0 0 1 0" type="matrix" in="shadowInnerInner1"></feColorMatrix>
-        </filter>
-    </defs>
     <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="Artboard" transform="translate(-448.000000, -253.000000)">
-            <g id="Group-2" transform="translate(442.410939, 252.558696)">
-                <path d="M42.5542463,15.4354491 L69.4589383,41.1447295 C70.2575266,41.9078353 70.2862907,43.1738386 69.5231848,43.9724268 C69.4743282,44.0235551 69.4227943,44.0720561 69.3688001,44.1177254 L67.6165172,45.599841 C66.8956455,46.2095686 65.8465638,46.2321199 65.1001563,45.6539334 L33.5988128,21.2521786 L33.5988128,21.2521786 L42.5542463,15.4354491 Z" id="Path-6" fill="url(#linearGradient-1)" transform="translate(52.332910, 31.040482) rotate(-1.000000) translate(-52.332910, -31.040482) "></path>
-                <path d="M42.5542463,15.4354491 L69.4589383,41.1447295 C70.2575266,41.9078353 70.2862907,43.1738386 69.5231848,43.9724268 C69.4743282,44.0235551 69.4227943,44.0720561 69.3688001,44.1177254 L67.6165172,45.599841 C66.8956455,46.2095686 65.8465638,46.2321199 65.1001563,45.6539334 L33.5988128,21.2521786 L33.5988128,21.2521786 L42.5542463,15.4354491 Z" id="Path-6" fill="url(#linearGradient-2)" opacity="0.575218564" transform="translate(52.332910, 31.040482) rotate(-1.000000) translate(-52.332910, -31.040482) "></path>
-                <path d="M45.1816856,57.9834216 L67.9190185,78.0824932 C68.7466031,78.8140515 68.8244479,80.0779865 68.0928897,80.9055711 C68.0845908,80.9149594 68.0762038,80.9242694 68.06773,80.9335001 L65.8223492,83.3793956 C65.130382,84.1331562 63.9810937,84.2430748 63.1587975,83.6341393 L31.589061,60.2557855 L31.589061,60.2557855 L32.7765693,59.1076831 C33.5224653,58.3865387 34.5193782,57.9834216 35.5568801,57.9834216 L45.1816856,57.9834216 L45.1816856,57.9834216 Z" id="Path-6-Copy" fill="url(#linearGradient-3)" transform="translate(50.517493, 71.344332) scale(-1, 1) rotate(-180.000000) translate(-50.517493, -71.344332) "></path>
-                <path d="M45.1816856,57.9834216 L67.9190185,78.0824932 C68.7466031,78.8140515 68.8244479,80.0779865 68.0928897,80.9055711 C68.0845908,80.9149594 68.0762038,80.9242694 68.06773,80.9335001 L65.8223492,83.3793956 C65.130382,84.1331562 63.9810937,84.2430748 63.1587975,83.6341393 L31.589061,60.2557855 L31.589061,60.2557855 L32.7765693,59.1076831 C33.5224653,58.3865387 34.5193782,57.9834216 35.5568801,57.9834216 L45.1816856,57.9834216 L45.1816856,57.9834216 Z" id="Path-6-Copy" fill="url(#linearGradient-4)" opacity="0.575218564" transform="translate(50.517493, 71.344332) scale(-1, 1) rotate(-180.000000) translate(-50.517493, -71.344332) "></path>
-                <g id="Path-5">
-                    <use fill="#FFC850" fill-rule="evenodd" xlink:href="#path-5"></use>
-                    <use fill="black" fill-opacity="1" filter="url(#filter-6)" xlink:href="#path-5"></use>
-                </g>
-                <g id="Path-5">
-                    <use fill="url(#radialGradient-7)" fill-rule="evenodd" xlink:href="#path-8"></use>
-                    <use fill="black" fill-opacity="1" filter="url(#filter-9)" xlink:href="#path-8"></use>
-                </g>
-                <g id="Path-5">
-                    <use fill="url(#linearGradient-10)" fill-rule="evenodd" xlink:href="#path-11"></use>
-                    <use fill="black" fill-opacity="1" filter="url(#filter-12)" xlink:href="#path-11"></use>
-                </g>
-                <path d="M57.226842,38.2936568 L78.4984074,60.6713202 C79.2458216,61.4575992 79.2301284,62.6963752 78.4630357,63.463468 L76.2170933,65.7094104 C75.4557792,66.4707245 74.228407,66.4927362 73.4402844,65.7592098 L50.8705573,44.7529721 C50.0620053,44.0004315 50.0165991,42.7349158 50.7691397,41.9263638 C50.7807829,41.913854 50.792586,41.9014939 50.804546,41.8892867 L54.3486501,38.2719185 C55.1216678,37.4829208 56.3879315,37.4699665 57.1769292,38.2429843 C57.1938659,38.2595779 57.2105061,38.2764714 57.226842,38.2936568 Z" id="Path-6" fill="#909399" transform="translate(64.605196, 51.932685) rotate(-45.000000) translate(-64.605196, -51.932685) "></path>
-            </g>
+        <g id="Artboard" transform="translate(-439.000000, -612.000000)" fill="#303133" fill-rule="nonzero">
+            <path d="M448.617144,612.16769 C448.808341,612.363282 448.826418,612.663731 448.673533,612.879152 L448.608191,612.955578 L446.15,615.357 L449.894886,619.007259 C450.093972,619.194817 450.124399,619.494266 449.98051,619.715797 L449.918369,619.794848 C449.707367,620.01882 449.354751,620.029333 449.13078,619.818331 L449.13078,619.818331 L445.354,616.136 L440.170212,621.203943 C440.111737,621.261104 440.099007,621.347469 440.132652,621.417331 L440.166592,621.46592 L445.358074,626.829135 C445.415144,626.888093 445.501806,626.90111 445.571922,626.867432 L445.620685,626.833408 L445.623532,626.830592 L449.13805,623.278672 C449.354479,623.05994 449.707246,623.058073 449.925978,623.274502 C450.120407,623.466883 450.143485,623.766988 449.994209,623.984926 L449.930149,624.06243 L446.415631,627.61435 L446.395701,627.634062 C445.914207,628.100138 445.16516,628.119545 444.661422,627.700626 L444.55742,627.604151 L439.365938,622.240936 C438.901478,621.761111 438.880378,621.015175 439.29562,620.511206 L439.391276,620.407102 L447.829256,612.158737 C448.049297,611.94364 448.402047,611.947648 448.617144,612.16769 Z M446.514534,621 L453.485466,621 C453.769635,621 454,621.223858 454,621.5 C454,621.74546 453.817984,621.949608 453.577954,621.991944 L453.485466,622 L446.514534,622 C446.230365,622 446,621.776142 446,621.5 C446,621.25454 446.182016,621.050392 446.422046,621.008056 L446.514534,621 L453.485466,621 Z" id="Combined-Shape"></path>
         </g>
     </g>
 </svg>
\ No newline at end of file

From 5e511329743f261e320ea5ac9d85f5a94668593a Mon Sep 17 00:00:00 2001
From: Zixiang Li <xiaofalzx@gmail.com>
Date: Sun, 22 Sep 2019 11:07:26 +0800
Subject: [PATCH 33/92] Add discuss link (#421)

---
 src/webview/leetCodePreviewProvider.ts | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/webview/leetCodePreviewProvider.ts b/src/webview/leetCodePreviewProvider.ts
index 03a12e19..d0378ef8 100644
--- a/src/webview/leetCodePreviewProvider.ts
+++ b/src/webview/leetCodePreviewProvider.ts
@@ -73,9 +73,9 @@ class LeetCodePreviewProvider extends LeetCodeWebview {
         const { title, url, category, difficulty, likes, dislikes, body } = this.description;
         const head: string = markdownEngine.render(`# [${title}](${url})`);
         const info: string = markdownEngine.render([
-            `| Category | Difficulty | Likes | Dislikes |`,
-            `| :------: | :--------: | :---: | :------: |`,
-            `| ${category} | ${difficulty} | ${likes} | ${dislikes} |`,
+            `| Category | Difficulty | Likes | Dislikes | [Discuss](${url.replace("/description/", "/discuss/?currentPage=1&orderBy=most_votes&query=")}) |`,
+            `| :------: | :--------: | :---: | :------: | :-----: |`,
+            `| ${category} | ${difficulty} | ${likes} | ${dislikes} | -- |`,
         ].join("\n"));
         const tags: string = [
             `<details>`,

From ef4bcbd78443dbf056c7b3b418f237e63e0ab26e Mon Sep 17 00:00:00 2001
From: Ye Zhihao <vigilans@foxmail.com>
Date: Sun, 22 Sep 2019 12:00:24 +0800
Subject: [PATCH 34/92] fix: Bring markdown engine into submission provider
 (#398)

---
 src/webview/leetCodeSubmissionProvider.ts | 68 ++++++++++++++++++++---
 1 file changed, 59 insertions(+), 9 deletions(-)

diff --git a/src/webview/leetCodeSubmissionProvider.ts b/src/webview/leetCodeSubmissionProvider.ts
index f717a38a..f4f18fd4 100644
--- a/src/webview/leetCodeSubmissionProvider.ts
+++ b/src/webview/leetCodeSubmissionProvider.ts
@@ -9,10 +9,10 @@ import { markdownEngine } from "./markdownEngine";
 class LeetCodeSubmissionProvider extends LeetCodeWebview {
 
     protected readonly viewType: string = "leetcode.submission";
-    private result: string;
+    private result: IResult;
 
-    public show(result: string): void {
-        this.result = result;
+    public show(resultString: string): void {
+        this.result = this.parseResult(resultString);
         this.showWebviewInternal();
         this.showKeybindingsHint();
     }
@@ -25,18 +25,36 @@ class LeetCodeSubmissionProvider extends LeetCodeWebview {
     }
 
     protected getWebviewContent(): string {
-        return `<!DOCTYPE html>
-            <html lang="en">
+        const styles: string = markdownEngine.getStyles();
+        const title: string = `## ${this.result.messages[0]}`;
+        const messages: string[] = this.result.messages.slice(1).map((m: string) => `* ${m}`);
+        const sections: string[] = Object.keys(this.result)
+            .filter((key: string) => key !== "messages")
+            .map((key: string) => [
+                `### ${key}`,
+                "```",
+                this.result[key].join("\n"),
+                "```",
+            ].join("\n"));
+        const body: string = markdownEngine.render([
+            title,
+            ...messages,
+            ...sections,
+        ].join("\n"));
+        return `
+            <!DOCTYPE html>
+            <html>
             <head>
                 <meta http-equiv="Content-Security-Policy" content="default-src 'none'; img-src https:; script-src vscode-resource:; style-src vscode-resource:;"/>
                 <meta charset="UTF-8">
                 <meta name="viewport" content="width=device-width, initial-scale=1.0">
-                ${markdownEngine.getStyles()}
+                ${styles}
             </head>
-            <body>
-                <pre><code>${this.result.trim()}</code></pre>
+            <body class="vscode-body 'scrollBeyondLastLine' 'wordWrap' 'showEditorSelection'" style="tab-size:4">
+                ${body}
             </body>
-            </html>`;
+            </html>
+        `;
     }
 
     protected onDidDisposeWebview(): void {
@@ -52,6 +70,38 @@ class LeetCodeSubmissionProvider extends LeetCodeWebview {
             (): Promise<any> => openKeybindingsEditor("leetcode solution"),
         );
     }
+
+    private parseResult(raw: string): IResult {
+        raw = raw.concat("  √ "); // Append a dummy sentinel to the end of raw string
+        const regSplit: RegExp = /  [√×✔✘vx] ([^]+?)\n(?=  [√×✔✘vx] )/g;
+        const regKeyVal: RegExp = /(.+?): ([^]*)/;
+        const result: IResult = { messages: [] };
+        let entry: RegExpExecArray | null;
+        do {
+            entry = regSplit.exec(raw);
+            if (!entry) {
+                continue;
+            }
+            const kvMatch: RegExpExecArray | null = regKeyVal.exec(entry[1]);
+            if (kvMatch) {
+                const [key, value] = kvMatch.slice(1);
+                if (value) { // Do not show empty string
+                    if (!result[key]) {
+                        result[key] = [];
+                    }
+                    result[key].push(value);
+                }
+            } else {
+                result.messages.push(entry[1]);
+            }
+        } while (entry);
+        return result;
+    }
+}
+
+interface IResult {
+    [key: string]: string[];
+    messages: string[];
 }
 
 export const leetCodeSubmissionProvider: LeetCodeSubmissionProvider = new LeetCodeSubmissionProvider();

From b7ededcbc4cceccd1f7b41f9caf21d1ac2cd286c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=98=BF=E5=8D=A1=E7=90=B3?= <hufan.akarin@gmail.com>
Date: Fri, 27 Sep 2019 20:04:17 +0800
Subject: [PATCH 35/92] fix: CodeLens position (#426)

---
 package-lock.json                      | 18 +++++++++---------
 package.json                           |  2 +-
 src/codelens/CustomCodeLensProvider.ts | 11 ++++++++++-
 3 files changed, 20 insertions(+), 11 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index cb81a83b..88602cc1 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -316,9 +316,9 @@
             "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
         },
         "colors": {
-            "version": "1.3.3",
-            "resolved": "https://registry.npmjs.org/colors/-/colors-1.3.3.tgz",
-            "integrity": "sha512-mmGt/1pZqYRjMxB1axhTo16/snVZ5krrKkcmMeVKxzECMMXoCgnvTPp10QgHfcbQZw8Dq2jMNG6je4JlWU0gWg=="
+            "version": "1.4.0",
+            "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
+            "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="
         },
         "combined-stream": {
             "version": "1.0.7",
@@ -485,9 +485,9 @@
             }
         },
         "end-of-stream": {
-            "version": "1.4.1",
-            "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
-            "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==",
+            "version": "1.4.4",
+            "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+            "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
             "requires": {
                 "once": "^1.4.0"
             }
@@ -1786,9 +1786,9 @@
             }
         },
         "vsc-leetcode-cli": {
-            "version": "2.6.10",
-            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.6.10.tgz",
-            "integrity": "sha512-eGf0GorHCkheBnqJN5B/RslZcfdcI6wL/v5Z23e4M3IZVOrrasiL9t6alAVXsOmeVubdMDJAaWT8R08lY46YCA==",
+            "version": "2.6.11",
+            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.6.11.tgz",
+            "integrity": "sha512-W0qFCLMh1vfFk/nbSj0Zc80tm1/kPAbF5gRJdm01XV19+2BE8RRHcwhWVPsOUksE6cK7Rw1KuvzGxS9wDLG2Qw==",
             "requires": {
                 "ansi-styles": "3.2.1",
                 "cheerio": "0.20.0",
diff --git a/package.json b/package.json
index bedaed77..45f6e63e 100644
--- a/package.json
+++ b/package.json
@@ -683,6 +683,6 @@
         "markdown-it": "^8.4.2",
         "require-from-string": "^2.0.2",
         "unescape-js": "^1.1.1",
-        "vsc-leetcode-cli": "2.6.10"
+        "vsc-leetcode-cli": "2.6.11"
     }
 }
diff --git a/src/codelens/CustomCodeLensProvider.ts b/src/codelens/CustomCodeLensProvider.ts
index 52deaf38..4764e999 100644
--- a/src/codelens/CustomCodeLensProvider.ts
+++ b/src/codelens/CustomCodeLensProvider.ts
@@ -28,7 +28,16 @@ export class CustomCodeLensProvider implements vscode.CodeLensProvider {
             return undefined;
         }
 
-        const range: vscode.Range = new vscode.Range(document.lineCount - 1, 0, document.lineCount - 1, 0);
+        let codeLensLine: number = document.lineCount - 1;
+        for (let i: number = document.lineCount - 1; i >= 0; i--) {
+            const lineContent: string = document.lineAt(i).text;
+            if (lineContent.indexOf("@lc code=end") >= 0) {
+                codeLensLine = i;
+                break;
+            }
+        }
+
+        const range: vscode.Range = new vscode.Range(codeLensLine, 0, codeLensLine, 0);
         const codeLens: vscode.CodeLens[] = [];
 
         if (shortcuts.indexOf("submit") >= 0) {

From 31d6f94c2c6a20d479fd5c6368ba9af390417be7 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Fri, 27 Sep 2019 20:11:04 +0800
Subject: [PATCH 36/92] fix: Use default file name when the setting is empty
 (#433)

---
 src/commands/show.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/commands/show.ts b/src/commands/show.ts
index 1906bd8e..3de4f89a 100644
--- a/src/commands/show.ts
+++ b/src/commands/show.ts
@@ -150,7 +150,7 @@ async function showProblemInternal(node: IProblem): Promise<void> {
         const fileName: string = leetCodeConfig
             .get<string>(
                 `filePath.${language}.filename`,
-                leetCodeConfig.get<string>(`filePath.default.filename`, genFileName(node, language)),
+                leetCodeConfig.get<string>(`filePath.default.filename`) || genFileName(node, language),
             )
             .trim();
 

From 8d50a2fab6d1c91e9f622f3ca282362ce5e63402 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Sat, 28 Sep 2019 16:13:22 +0800
Subject: [PATCH 37/92] chore: prepare for 0.15.5 (#438)

---
 CHANGELOG.md      | 7 +++++++
 package-lock.json | 8 ++++----
 package.json      | 4 ++--
 3 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index af503540..7f2f9985 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,13 @@ All notable changes to the "leetcode" extension will be documented in this file.
 
 Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
 
+## [0.15.5]
+### Added
+- Add a link to the discussion page [#420](https://github.com/jdneo/vscode-leetcode/issues/420)
+
+### Fixed
+[Bugs fixed](https://github.com/jdneo/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.15.5+is%3Aclosed+label%3Abug)
+
 ## [0.15.4]
 ### Added
 - Add a new setting `leetcode.filePath`. Now users can use this setting to dynamicly specify the relative folder name and file name. [#PR380](https://github.com/jdneo/vscode-leetcode/pull/380)
diff --git a/package-lock.json b/package-lock.json
index 88602cc1..47f8dab5 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
 {
     "name": "vscode-leetcode",
-    "version": "0.15.4",
+    "version": "0.15.5",
     "lockfileVersion": 1,
     "requires": true,
     "dependencies": {
@@ -1786,9 +1786,9 @@
             }
         },
         "vsc-leetcode-cli": {
-            "version": "2.6.11",
-            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.6.11.tgz",
-            "integrity": "sha512-W0qFCLMh1vfFk/nbSj0Zc80tm1/kPAbF5gRJdm01XV19+2BE8RRHcwhWVPsOUksE6cK7Rw1KuvzGxS9wDLG2Qw==",
+            "version": "2.6.13",
+            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.6.13.tgz",
+            "integrity": "sha512-otwxXXBDPGJX2IkIbTTsXdwA9yYMxdFWqmPwtSwXfNrN1oAturxfXS61T/1vUkcwAPMMpoFtXdGr99pnSVyYtw==",
             "requires": {
                 "ansi-styles": "3.2.1",
                 "cheerio": "0.20.0",
diff --git a/package.json b/package.json
index 45f6e63e..bbedd4ab 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
     "name": "vscode-leetcode",
     "displayName": "LeetCode",
     "description": "Solve LeetCode problems in VS Code",
-    "version": "0.15.4",
+    "version": "0.15.5",
     "author": "Sheng Chen",
     "publisher": "shengchen",
     "license": "MIT",
@@ -683,6 +683,6 @@
         "markdown-it": "^8.4.2",
         "require-from-string": "^2.0.2",
         "unescape-js": "^1.1.1",
-        "vsc-leetcode-cli": "2.6.11"
+        "vsc-leetcode-cli": "2.6.13"
     }
 }

From 01f5a2854087d08271961ea4aa7f12c108a5818c Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Wed, 2 Oct 2019 12:26:56 +0800
Subject: [PATCH 38/92] refactor: Stop using the 'vscode.workspace.rootPath'
 API (#443)

---
 src/commands/test.ts |  2 +-
 src/utils/uiUtils.ts | 19 +++++++++++++++----
 2 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/src/commands/test.ts b/src/commands/test.ts
index 262f7339..d070c9aa 100644
--- a/src/commands/test.ts
+++ b/src/commands/test.ts
@@ -65,7 +65,7 @@ export async function testSolution(uri?: vscode.Uri): Promise<void> {
                 }
                 break;
             case ":file":
-                const testFile: vscode.Uri[] | undefined = await showFileSelectDialog();
+                const testFile: vscode.Uri[] | undefined = await showFileSelectDialog(filePath);
                 if (testFile && testFile.length) {
                     const input: string = (await fse.readFile(testFile[0].fsPath, "utf-8")).trim();
                     if (input) {
diff --git a/src/utils/uiUtils.ts b/src/utils/uiUtils.ts
index 037b2371..53275fa0 100644
--- a/src/utils/uiUtils.ts
+++ b/src/utils/uiUtils.ts
@@ -80,8 +80,8 @@ export async function openKeybindingsEditor(query?: string): Promise<void> {
     await vscode.commands.executeCommand("workbench.action.openGlobalKeybindings", query);
 }
 
-export async function showFileSelectDialog(): Promise<vscode.Uri[] | undefined> {
-    const defaultUri: vscode.Uri | undefined = vscode.workspace.rootPath ? vscode.Uri.file(vscode.workspace.rootPath) : undefined;
+export async function showFileSelectDialog(fsPath?: string): Promise<vscode.Uri[] | undefined> {
+    const defaultUri: vscode.Uri | undefined = getBelongingWorkspaceFolderUri(fsPath);
     const options: vscode.OpenDialogOptions = {
         defaultUri,
         canSelectFiles: true,
@@ -92,8 +92,19 @@ export async function showFileSelectDialog(): Promise<vscode.Uri[] | undefined>
     return await vscode.window.showOpenDialog(options);
 }
 
-export async function showDirectorySelectDialog(): Promise<vscode.Uri[] | undefined> {
-    const defaultUri: vscode.Uri | undefined = vscode.workspace.rootPath ? vscode.Uri.file(vscode.workspace.rootPath) : undefined;
+function getBelongingWorkspaceFolderUri(fsPath: string | undefined): vscode.Uri | undefined {
+    let defaultUri: vscode.Uri | undefined;
+    if (fsPath) {
+        const workspaceFolder: vscode.WorkspaceFolder | undefined = vscode.workspace.getWorkspaceFolder(vscode.Uri.file(fsPath));
+        if (workspaceFolder) {
+            defaultUri = workspaceFolder.uri;
+        }
+    }
+    return defaultUri;
+}
+
+export async function showDirectorySelectDialog(fsPath?: string): Promise<vscode.Uri[] | undefined> {
+    const defaultUri: vscode.Uri | undefined = getBelongingWorkspaceFolderUri(fsPath);
     const options: vscode.OpenDialogOptions = {
         defaultUri,
         canSelectFiles: false,

From ffdccec272bdef9cdbf69ba3ea70cf39b3c0ab29 Mon Sep 17 00:00:00 2001
From: Bill Guo <iFun@users.noreply.github.com>
Date: Wed, 2 Oct 2019 01:34:48 -0400
Subject: [PATCH 39/92] feat: added solution link (#441)

---
 ACKNOWLEDGEMENTS.md                    |  4 +++-
 src/webview/leetCodePreviewProvider.ts | 27 ++++++++++++++++++++++----
 2 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/ACKNOWLEDGEMENTS.md b/ACKNOWLEDGEMENTS.md
index 49a975e8..4bc00ba3 100644
--- a/ACKNOWLEDGEMENTS.md
+++ b/ACKNOWLEDGEMENTS.md
@@ -2,6 +2,7 @@
 
 A big thanks to the following individuals for contributing:
 
+- [@JIEJIAN21](https://github.com/JIEJIAN21) - thanks for logo and icon design
 - [@TsFreddie](https://github.com/TsFreddie) — [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=TsFreddie)
 - [@ntt2k](https://github.com/ntt2k) — [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=ntt2k)
 - [@purocean](https://github.com/purocean) — [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=purocean)
@@ -17,4 +18,5 @@ A big thanks to the following individuals for contributing:
 - [@houtianze](https://github.com/houtianze) — [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=houtianze)
 - [@magic-akari](https://github.com/magic-akari) - [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=magic-akari)
 - [@SF-Zhou](https://github.com/SF-Zhou) - [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=SF-Zhou)
-- [@JIEJIAN21](https://github.com/JIEJIAN21) - thanks for logo and icon design
+- [@fuafa](https://github.com/fuafa) - [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=fuafa)
+- [@iFun](https://github.com/iFun) - [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=iFun)
diff --git a/src/webview/leetCodePreviewProvider.ts b/src/webview/leetCodePreviewProvider.ts
index d0378ef8..fba17728 100644
--- a/src/webview/leetCodePreviewProvider.ts
+++ b/src/webview/leetCodePreviewProvider.ts
@@ -2,7 +2,8 @@
 // Licensed under the MIT license.
 
 import { commands, ViewColumn } from "vscode";
-import { IProblem } from "../shared";
+import { getLeetCodeEndpoint } from "../commands/plugin";
+import { Endpoint, IProblem } from "../shared";
 import { ILeetCodeWebviewOption, LeetCodeWebview } from "./LeetCodeWebview";
 import { markdownEngine } from "./markdownEngine";
 
@@ -73,9 +74,9 @@ class LeetCodePreviewProvider extends LeetCodeWebview {
         const { title, url, category, difficulty, likes, dislikes, body } = this.description;
         const head: string = markdownEngine.render(`# [${title}](${url})`);
         const info: string = markdownEngine.render([
-            `| Category | Difficulty | Likes | Dislikes | [Discuss](${url.replace("/description/", "/discuss/?currentPage=1&orderBy=most_votes&query=")}) |`,
-            `| :------: | :--------: | :---: | :------: | :-----: |`,
-            `| ${category} | ${difficulty} | ${likes} | ${dislikes} | -- |`,
+            `| Category | Difficulty | Likes | Dislikes |`,
+            `| :------: | :--------: | :---: | :------: |`,
+            `| ${category} | ${difficulty} | ${likes} | ${dislikes} |`,
         ].join("\n"));
         const tags: string = [
             `<details>`,
@@ -97,6 +98,7 @@ class LeetCodePreviewProvider extends LeetCodeWebview {
             ),
             `</details>`,
         ].join("\n");
+        const links: string = markdownEngine.render(`[Discussion](${this.getDiscussionLink(url)}) | [Solution](${this.getSolutionLink(url)})`);
         return `
             <!DOCTYPE html>
             <html>
@@ -114,6 +116,8 @@ class LeetCodePreviewProvider extends LeetCodeWebview {
                 ${tags}
                 ${companies}
                 ${body}
+                <hr />
+                ${links}
                 ${!this.sideMode ? button.element : ""}
                 <script>
                     const vscode = acquireVsCodeApi();
@@ -172,6 +176,21 @@ class LeetCodePreviewProvider extends LeetCodeWebview {
             body: body.join("\n").replace(/<pre>[\r\n]*([^]+?)[\r\n]*<\/pre>/g, "<pre><code>$1</code></pre>"),
         };
     }
+
+    private getDiscussionLink(url: string): string {
+        const endPoint: string = getLeetCodeEndpoint();
+        if (endPoint === Endpoint.LeetCodeCN) {
+            return url.replace("/description/", "/comments/");
+        } else if (endPoint === Endpoint.LeetCode) {
+            return url.replace("/description/", "/discuss/?currentPage=1&orderBy=most_votes&query=");
+        }
+
+        return "https://leetcode.com";
+    }
+
+    private getSolutionLink(url: string): string {
+        return url.replace("/description/", "/solution/");
+    }
 }
 
 interface IDescription {

From e59e2913987bf0e08cd20e4a028dd916733d3ba7 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Mon, 7 Oct 2019 19:49:17 +0800
Subject: [PATCH 40/92] chore: Prepare for 0.15.6 (#453)

---
 CHANGELOG.md      | 7 +++++++
 package-lock.json | 8 ++++----
 package.json      | 4 ++--
 3 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7f2f9985..e251b450 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,13 @@ All notable changes to the "leetcode" extension will be documented in this file.
 
 Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
 
+## [0.15.6]
+### Added
+- Add a link to the solution page [#424](https://github.com/jdneo/vscode-leetcode/issues/424)
+
+### Fixed
+[Bugs fixed](https://github.com/jdneo/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.15.6+is%3Aclosed+label%3Abug)
+
 ## [0.15.5]
 ### Added
 - Add a link to the discussion page [#420](https://github.com/jdneo/vscode-leetcode/issues/420)
diff --git a/package-lock.json b/package-lock.json
index 47f8dab5..fdf4e4bd 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
 {
     "name": "vscode-leetcode",
-    "version": "0.15.5",
+    "version": "0.15.6",
     "lockfileVersion": 1,
     "requires": true,
     "dependencies": {
@@ -1786,9 +1786,9 @@
             }
         },
         "vsc-leetcode-cli": {
-            "version": "2.6.13",
-            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.6.13.tgz",
-            "integrity": "sha512-otwxXXBDPGJX2IkIbTTsXdwA9yYMxdFWqmPwtSwXfNrN1oAturxfXS61T/1vUkcwAPMMpoFtXdGr99pnSVyYtw==",
+            "version": "2.6.15",
+            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.6.15.tgz",
+            "integrity": "sha512-nIZi2xkJyKz5yFJwxbJLZBfYf07sdO/LY0dEZ8dgr2tiiOkPAOjk1wB+P20eUOf2U8185g9YxpREbwg3G6bDrw==",
             "requires": {
                 "ansi-styles": "3.2.1",
                 "cheerio": "0.20.0",
diff --git a/package.json b/package.json
index bbedd4ab..8df43748 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
     "name": "vscode-leetcode",
     "displayName": "LeetCode",
     "description": "Solve LeetCode problems in VS Code",
-    "version": "0.15.5",
+    "version": "0.15.6",
     "author": "Sheng Chen",
     "publisher": "shengchen",
     "license": "MIT",
@@ -683,6 +683,6 @@
         "markdown-it": "^8.4.2",
         "require-from-string": "^2.0.2",
         "unescape-js": "^1.1.1",
-        "vsc-leetcode-cli": "2.6.13"
+        "vsc-leetcode-cli": "2.6.15"
     }
 }

From b08b79ba6fdceced86d86ba049758e7b151361a0 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Wed, 9 Oct 2019 20:44:54 +0800
Subject: [PATCH 41/92] chore: Prepare for 0.15.7 (#458)

---
 CHANGELOG.md      | 4 ++++
 package-lock.json | 8 ++++----
 package.json      | 4 ++--
 3 files changed, 10 insertions(+), 6 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index e251b450..0f764830 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,10 @@ All notable changes to the "leetcode" extension will be documented in this file.
 
 Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
 
+## [0.15.7]
+### Fixed
+[Bugs fixed](https://github.com/jdneo/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.15.7+is%3Aclosed+label%3Abug)
+
 ## [0.15.6]
 ### Added
 - Add a link to the solution page [#424](https://github.com/jdneo/vscode-leetcode/issues/424)
diff --git a/package-lock.json b/package-lock.json
index fdf4e4bd..90ee4809 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
 {
     "name": "vscode-leetcode",
-    "version": "0.15.6",
+    "version": "0.15.7",
     "lockfileVersion": 1,
     "requires": true,
     "dependencies": {
@@ -1786,9 +1786,9 @@
             }
         },
         "vsc-leetcode-cli": {
-            "version": "2.6.15",
-            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.6.15.tgz",
-            "integrity": "sha512-nIZi2xkJyKz5yFJwxbJLZBfYf07sdO/LY0dEZ8dgr2tiiOkPAOjk1wB+P20eUOf2U8185g9YxpREbwg3G6bDrw==",
+            "version": "2.6.16",
+            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.6.16.tgz",
+            "integrity": "sha512-RvSrKJMgh08OYZDcJJDOkjMLtoWGbc5f1Kx8PQYwyiLdnJjOGG0wVc4gPyQAJCT1Xgd31wv04xIZmBSXbcvMEg==",
             "requires": {
                 "ansi-styles": "3.2.1",
                 "cheerio": "0.20.0",
diff --git a/package.json b/package.json
index 8df43748..91bc6e59 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
     "name": "vscode-leetcode",
     "displayName": "LeetCode",
     "description": "Solve LeetCode problems in VS Code",
-    "version": "0.15.6",
+    "version": "0.15.7",
     "author": "Sheng Chen",
     "publisher": "shengchen",
     "license": "MIT",
@@ -683,6 +683,6 @@
         "markdown-it": "^8.4.2",
         "require-from-string": "^2.0.2",
         "unescape-js": "^1.1.1",
-        "vsc-leetcode-cli": "2.6.15"
+        "vsc-leetcode-cli": "2.6.16"
     }
 }

From eb77cd97f295c465a9e8b0f23355d9e3e16172bb Mon Sep 17 00:00:00 2001
From: Gerry Gao <hologerry@gmail.com>
Date: Fri, 11 Oct 2019 09:35:45 +0800
Subject: [PATCH 42/92] ui: replace icons in extension with vscode icons (#461)

---
 resources/dark/endpoint.svg  |  9 +++------
 resources/dark/refresh.svg   | 10 ++++------
 resources/dark/search.svg    |  9 +++------
 resources/dark/signin.svg    | 10 +++-------
 resources/light/endpoint.svg |  9 +++------
 resources/light/refresh.svg  | 10 ++++------
 resources/light/search.svg   |  9 +++------
 resources/light/signin.svg   | 10 +++-------
 8 files changed, 26 insertions(+), 50 deletions(-)

diff --git a/resources/dark/endpoint.svg b/resources/dark/endpoint.svg
index c9b4d058..1ff60a53 100644
--- a/resources/dark/endpoint.svg
+++ b/resources/dark/endpoint.svg
@@ -1,6 +1,3 @@
-<?xml version="1.0"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Capa_1" x="0px" y="0px" viewBox="0 0 426.667 426.667" style="enable-background:new 0 0 426.667 426.667;" xml:space="preserve" width="512px" height="512px" class=""><g><g>
-	<g>
-		<path d="M213.333,0C95.467,0,0,95.467,0,213.333s95.467,213.333,213.333,213.333S426.667,331.2,426.667,213.333S331.2,0,213.333,0    z M192,382.507c-84.16-10.453-149.333-82.133-149.333-169.173c0-13.12,1.6-25.92,4.48-38.187l102.187,102.187v21.333    c0,23.573,19.093,42.667,42.667,42.667V382.507z M339.093,328.427c-5.44-17.28-21.44-29.76-40.427-29.76h-21.333v-64    c0-11.733-9.6-21.333-21.333-21.333H128v-42.667h42.667c11.733,0,21.333-9.6,21.333-21.333v-42.667h42.667    c23.573,0,42.667-19.093,42.667-42.667v-8.853C339.84,80.427,384,141.653,384,213.333    C384,257.707,366.933,298.027,339.093,328.427z" data-original="#000000" class="active-path" data-old_color="#c8c8c8" fill="#c8c8c8"/>
-	</g>
-</g></g> </svg>
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M8.5 1C9.78557 1 11.0423 1.38123 12.1112 2.09546C13.1801 2.80969 14.0132 3.82483 14.5052 5.01257C14.8972 5.95898 15.0586 6.98108 14.9811 7.99524C14.8962 9.10645 14.5267 10.1801 13.9046 11.1112C13.1903 12.1802 12.1752 13.0133 10.9874 13.5052C9.79973 13.9972 8.4928 14.126 7.23192 13.8751C5.97104 13.6243 4.81285 13.0052 3.90381 12.0962C2.99476 11.1871 2.3757 10.0289 2.12489 8.76807C1.8741 7.5072 2.00282 6.20032 2.49478 5.01257C2.98675 3.82483 3.81987 2.80969 4.88879 2.09546C5.95772 1.38123 7.21443 1 8.5 1ZM13.394 5C12.7527 3.75281 11.6613 2.79626 10.3412 2.32373C10.7845 3.16357 11.106 4.0647 11.294 5H13.394ZM13.9765 7.99524C13.9918 7.83081 13.9997 7.66553 14 7.5C13.999 6.99255 13.9273 6.48767 13.787 6H11.445C11.477 6.33105 11.5 6.66406 11.5 7C11.4997 7.12598 11.4971 7.25195 11.4921 7.37769C11.4917 7.38623 11.4914 7.39417 11.4911 7.40271C11.4834 7.58289 11.4709 7.76331 11.4536 7.94263C11.4192 8.29749 11.366 8.65039 11.294 9H13.787C13.8815 8.67139 13.9449 8.33496 13.9765 7.99524ZM10.4408 7.99524C10.4428 7.97815 10.4447 7.96106 10.4466 7.94397C10.4808 7.63074 10.4987 7.31567 10.5 7C10.4933 6.66553 10.4679 6.33167 10.424 6H6.576C6.53207 6.33167 6.5067 6.66553 6.5 7C6.50274 7.67334 6.5809 8.34412 6.733 9H10.267C10.3439 8.66833 10.4019 8.33289 10.4408 7.99524ZM10.249 5C10.1607 4.60352 10.0465 4.21399 9.90597 3.83447C9.67117 3.2019 9.36551 2.59644 8.994 2.03003C8.83 2.01599 8.666 2 8.5 2C8.39551 2 8.29182 2.00635 8.18843 2.01453C8.12755 2.01929 8.06677 2.02478 8.00599 2.03003L8 2.03918C7.40887 2.94299 6.98573 3.9458 6.75101 5H10.249ZM5.70601 5C5.89779 4.0647 6.22313 3.16174 6.672 2.31897C5.34599 2.78979 4.24946 3.74866 3.606 5H5.70601ZM3.213 6C3.07269 6.48767 3.00101 6.99255 3 7.5C3.00101 8.00745 3.07269 8.51233 3.213 9H5.70601C5.57043 8.34192 5.50142 7.67188 5.5 7C5.5 6.66406 5.52301 6.33105 5.55501 6H3.213ZM5.96701 10H3.60701C3.98501 10.7384 4.52472 11.382 5.18594 11.8829C5.84715 12.3838 6.61285 12.729 7.42601 12.8931C6.78598 12.0142 6.2932 11.0371 5.96701 10ZM8.5 12.644C9.13943 11.8531 9.63927 10.959 9.97799 10H7.022C7.36075 10.959 7.86058 11.8531 8.5 12.644ZM11.033 10C10.7068 11.0371 10.214 12.0142 9.574 12.8931C10.3872 12.729 11.1528 12.3838 11.8141 11.8829C12.4753 11.382 13.015 10.7384 13.393 10H11.033Z" fill="#C5C5C5"/>
+</svg>
diff --git a/resources/dark/refresh.svg b/resources/dark/refresh.svg
index fbc960f4..0442b2af 100644
--- a/resources/dark/refresh.svg
+++ b/resources/dark/refresh.svg
@@ -1,6 +1,4 @@
-<?xml version="1.0"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Capa_1" x="0px" y="0px" viewBox="0 0 341.333 341.333" style="enable-background:new 0 0 341.333 341.333;" xml:space="preserve" width="512px" height="512px"><g><g>
-	<g>
-		<path d="M341.227,149.333V0l-50.133,50.133C260.267,19.2,217.707,0,170.56,0C76.267,0,0.107,76.373,0.107,170.667    s76.16,170.667,170.453,170.667c79.467,0,146.027-54.4,164.907-128h-44.373c-17.6,49.707-64.747,85.333-120.533,85.333    c-70.72,0-128-57.28-128-128s57.28-128,128-128c35.307,0,66.987,14.72,90.133,37.867l-68.8,68.8H341.227z" data-original="#000000" class="active-path" data-old_color="#c8c8c8" fill="#c8c8c8"/>
-	</g>
-</g></g> </svg>
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M5.56253 2.5158C3.46348 3.45013 2 5.55417 2 8.00002C2 11.3137 4.68629 14 8 14C11.3137 14 14 11.3137 14 8.00002C14 5.32522 12.2497 3.05922 9.83199 2.28485L9.52968 3.23835C11.5429 3.88457 13 5.77213 13 8.00002C13 10.7614 10.7614 13 8 13C5.23858 13 3 10.7614 3 8.00002C3 6.31107 3.83742 4.8177 5.11969 3.91248L5.56253 2.5158Z" fill="#C5C5C5"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M5 3H2V2H5.5L6 2.5V6H5V3Z" fill="#C5C5C5"/>
+</svg>
diff --git a/resources/dark/search.svg b/resources/dark/search.svg
index 6cd41c04..e329b2d7 100644
--- a/resources/dark/search.svg
+++ b/resources/dark/search.svg
@@ -1,6 +1,3 @@
-<?xml version="1.0"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Capa_1" x="0px" y="0px" width="512px" height="512px" viewBox="0 0 446.25 446.25" style="enable-background:new 0 0 446.25 446.25;" xml:space="preserve" class=""><g><g>
-	<g id="search">
-		<path d="M318.75,280.5h-20.4l-7.649-7.65c25.5-28.05,40.8-66.3,40.8-107.1C331.5,73.95,257.55,0,165.75,0S0,73.95,0,165.75    S73.95,331.5,165.75,331.5c40.8,0,79.05-15.3,107.1-40.8l7.65,7.649v20.4L408,446.25L446.25,408L318.75,280.5z M165.75,280.5    C102,280.5,51,229.5,51,165.75S102,51,165.75,51S280.5,102,280.5,165.75S229.5,280.5,165.75,280.5z" data-original="#000000" class="active-path" data-old_color="#c8c8c8" fill="#c8c8c8"/>
-	</g>
-</g></g> </svg>
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M15.25 1.02546e-06C13.6605 -0.000791296 12.1046 0.457574 10.7694 1.32007C9.43422 2.18256 8.37657 3.4124 7.72375 4.8617C7.07094 6.31099 6.85077 7.91801 7.0896 9.4895C7.32843 11.061 8.01604 12.5301 9.06995 13.72L1 22.88L2.12 23.88L10.17 14.76C11.2055 15.5693 12.4192 16.1196 13.7103 16.365C15.0014 16.6104 16.3325 16.5437 17.5927 16.1707C18.8528 15.7976 20.0055 15.1288 20.955 14.2201C21.9044 13.3114 22.623 12.1891 23.0509 10.9465C23.4789 9.70396 23.6038 8.37703 23.4153 7.07642C23.2267 5.77581 22.7302 4.53915 21.967 3.46924C21.2039 2.39933 20.1962 1.52711 19.0278 0.925416C17.8595 0.323719 16.5642 0.00991516 15.25 0.0100108V1.02546e-06ZM15.25 15C13.915 15 12.6099 14.6041 11.4999 13.8624C10.3898 13.1207 9.52469 12.0665 9.01379 10.8331C8.5029 9.59973 8.36919 8.24248 8.62964 6.93311C8.89009 5.62373 9.53305 4.42106 10.4771 3.47705C11.4211 2.53305 12.6237 1.89009 13.9331 1.62964C15.2425 1.36919 16.5997 1.5029 17.8331 2.01379C19.0665 2.52469 20.1207 3.38985 20.8624 4.49988C21.6041 5.60991 22 6.91498 22 8.25C22 10.0402 21.2888 11.7571 20.0229 13.023C18.7571 14.2888 17.0402 15 15.25 15V15Z" fill="#C5C5C5"/>
+</svg>
diff --git a/resources/dark/signin.svg b/resources/dark/signin.svg
index 4c115bc6..2b96bb18 100644
--- a/resources/dark/signin.svg
+++ b/resources/dark/signin.svg
@@ -1,7 +1,3 @@
-<?xml version="1.0"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Capa_1" x="0px" y="0px" width="512px" height="512px" viewBox="0 0 438.542 438.542" style="enable-background:new 0 0 438.542 438.542;" xml:space="preserve" class=""><g><g>
-	<g>
-		<path d="M414.41,60.676c-16.084-16.083-35.446-24.125-58.102-24.125h-91.357c-2.478,0-4.429,0.614-5.853,1.855    c-1.431,1.237-2.382,3.093-2.854,5.568c-0.479,2.474-0.76,4.709-0.853,6.707c-0.096,1.997-0.051,4.521,0.144,7.565    c0.186,3.046,0.281,4.949,0.281,5.713c0.571,1.524,0.767,2.81,0.571,3.855c-0.191,1.043,0.476,1.903,1.998,2.568    c1.52,0.666,2.279,1.191,2.279,1.569c0,0.378,1.096,0.662,3.285,0.855c2.19,0.192,3.289,0.284,3.289,0.284h3.713h3.142h82.228    c12.56,0,23.312,4.471,32.258,13.422c8.952,8.945,13.422,19.696,13.422,32.261V319.77c0,12.563-4.47,23.312-13.422,32.258    c-8.945,8.948-19.698,13.421-32.258,13.421h-91.357c-2.478,0-4.436,0.62-5.853,1.855c-1.43,1.242-2.382,3.094-2.857,5.564    c-0.476,2.478-0.763,4.716-0.855,6.714c-0.092,1.995-0.051,4.518,0.144,7.563c0.195,3.046,0.288,4.948,0.288,5.708    c0,2.478,0.896,4.613,2.707,6.427c1.81,1.807,3.949,2.71,6.427,2.71h91.357c22.648,0,42.018-8.042,58.095-24.133    c16.084-16.077,24.126-35.446,24.126-58.095V118.769C438.533,96.118,430.491,76.754,414.41,60.676z" data-original="#000000" class="active-path" data-old_color="#c8c8c8" fill="#c8c8c8"/>
-		<path d="M338.047,219.27c0-4.948-1.813-9.233-5.427-12.85L177.302,51.101c-3.616-3.612-7.895-5.424-12.847-5.424    c-4.952,0-9.233,1.812-12.85,5.424c-3.615,3.617-5.424,7.904-5.424,12.85v82.226H18.274c-4.952,0-9.235,1.812-12.851,5.424    C1.807,155.219,0,159.503,0,164.452v109.635c0,4.949,1.807,9.233,5.424,12.848c3.619,3.61,7.902,5.427,12.851,5.427h127.906    v82.225c0,4.945,1.809,9.233,5.424,12.847c3.621,3.617,7.902,5.428,12.85,5.428c4.949,0,9.231-1.811,12.847-5.428l155.318-155.312    C336.234,228.501,338.047,224.216,338.047,219.27z" data-original="#000000" class="active-path" data-old_color="#c8c8c8" fill="#c8c8c8"/>
-	</g>
-</g></g> </svg>
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M11.02 3.77L11.03 3.76L12.02 4.75V2.5L11.52 2H2.52001L2.01001 2.5V2.99301L2 3.00003V13.29L2.36 13.75L7.36 15.47L8 15V14H11.52L12.02 13.5V11.25L11.02 12.25V13H8V4.71003L7.67 4.25003L4.03619 3H7.01001H11.02V3.77ZM7 14.28L3 12.94V3.72003L7 5.06003V14.28ZM10.09 7.53005H15.06V8.53005H10.13L11.72 10.1301L11.01 10.8301L8.53998 8.37005V7.66005L11.03 5.18005L11.73 5.88005L10.09 7.53005Z" fill="#C5C5C5"/>
+</svg>
diff --git a/resources/light/endpoint.svg b/resources/light/endpoint.svg
index 949fcd3e..91ad34f8 100644
--- a/resources/light/endpoint.svg
+++ b/resources/light/endpoint.svg
@@ -1,6 +1,3 @@
-<?xml version="1.0"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Capa_1" x="0px" y="0px" viewBox="0 0 426.667 426.667" style="enable-background:new 0 0 426.667 426.667;" xml:space="preserve" width="512px" height="512px" class=""><g><g>
-	<g>
-		<path d="M213.333,0C95.467,0,0,95.467,0,213.333s95.467,213.333,213.333,213.333S426.667,331.2,426.667,213.333S331.2,0,213.333,0    z M192,382.507c-84.16-10.453-149.333-82.133-149.333-169.173c0-13.12,1.6-25.92,4.48-38.187l102.187,102.187v21.333    c0,23.573,19.093,42.667,42.667,42.667V382.507z M339.093,328.427c-5.44-17.28-21.44-29.76-40.427-29.76h-21.333v-64    c0-11.733-9.6-21.333-21.333-21.333H128v-42.667h42.667c11.733,0,21.333-9.6,21.333-21.333v-42.667h42.667    c23.573,0,42.667-19.093,42.667-42.667v-8.853C339.84,80.427,384,141.653,384,213.333    C384,257.707,366.933,298.027,339.093,328.427z" data-original="#000000" class="active-path" fill="#000000"/>
-	</g>
-</g></g> </svg>
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M8.5 1C9.78557 1 11.0423 1.38123 12.1112 2.09546C13.1801 2.80969 14.0132 3.82483 14.5052 5.01257C14.8972 5.95898 15.0586 6.98108 14.9811 7.99524C14.8962 9.10645 14.5267 10.1801 13.9046 11.1112C13.1903 12.1802 12.1752 13.0133 10.9874 13.5052C9.79973 13.9972 8.4928 14.126 7.23192 13.8751C5.97104 13.6243 4.81285 13.0052 3.90381 12.0962C2.99476 11.1871 2.3757 10.0289 2.12489 8.76807C1.8741 7.5072 2.00282 6.20032 2.49478 5.01257C2.98675 3.82483 3.81987 2.80969 4.88879 2.09546C5.95772 1.38123 7.21443 1 8.5 1ZM13.394 5C12.7527 3.75281 11.6613 2.79626 10.3412 2.32373C10.7845 3.16357 11.106 4.0647 11.294 5H13.394ZM13.9765 7.99524C13.9918 7.83081 13.9997 7.66553 14 7.5C13.999 6.99255 13.9273 6.48767 13.787 6H11.445C11.477 6.33105 11.5 6.66406 11.5 7C11.4997 7.12598 11.4971 7.25195 11.4921 7.37769C11.4917 7.38623 11.4914 7.39417 11.4911 7.40271C11.4834 7.58289 11.4709 7.76331 11.4536 7.94263C11.4192 8.29749 11.366 8.65039 11.294 9H13.787C13.8815 8.67139 13.9449 8.33496 13.9765 7.99524ZM10.4408 7.99524C10.4428 7.97815 10.4447 7.96106 10.4466 7.94397C10.4808 7.63074 10.4987 7.31567 10.5 7C10.4933 6.66553 10.4679 6.33167 10.424 6H6.576C6.53207 6.33167 6.5067 6.66553 6.5 7C6.50274 7.67334 6.5809 8.34412 6.733 9H10.267C10.3439 8.66833 10.4019 8.33289 10.4408 7.99524ZM10.249 5C10.1607 4.60352 10.0465 4.21399 9.90597 3.83447C9.67117 3.2019 9.36551 2.59644 8.994 2.03003C8.83 2.01599 8.666 2 8.5 2C8.39551 2 8.29182 2.00635 8.18843 2.01453C8.12755 2.01929 8.06677 2.02478 8.00599 2.03003L8 2.03918C7.40887 2.94299 6.98573 3.9458 6.75101 5H10.249ZM5.70601 5C5.89779 4.0647 6.22313 3.16174 6.672 2.31897C5.34599 2.78979 4.24946 3.74866 3.606 5H5.70601ZM3.213 6C3.07269 6.48767 3.00101 6.99255 3 7.5C3.00101 8.00745 3.07269 8.51233 3.213 9H5.70601C5.57043 8.34192 5.50142 7.67188 5.5 7C5.5 6.66406 5.52301 6.33105 5.55501 6H3.213ZM5.96701 10H3.60701C3.98501 10.7384 4.52472 11.382 5.18594 11.8829C5.84715 12.3838 6.61285 12.729 7.42601 12.8931C6.78598 12.0142 6.2932 11.0371 5.96701 10ZM8.5 12.644C9.13943 11.8531 9.63927 10.959 9.97799 10H7.022C7.36075 10.959 7.86058 11.8531 8.5 12.644ZM11.033 10C10.7068 11.0371 10.214 12.0142 9.574 12.8931C10.3872 12.729 11.1528 12.3838 11.8141 11.8829C12.4753 11.382 13.015 10.7384 13.393 10H11.033Z" fill="#424242"/>
+</svg>
diff --git a/resources/light/refresh.svg b/resources/light/refresh.svg
index e1969cd4..8ade09df 100644
--- a/resources/light/refresh.svg
+++ b/resources/light/refresh.svg
@@ -1,6 +1,4 @@
-<?xml version="1.0"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Capa_1" x="0px" y="0px" viewBox="0 0 341.333 341.333" style="enable-background:new 0 0 341.333 341.333;" xml:space="preserve" width="512px" height="512px" class=""><g><g>
-	<g>
-		<path d="M341.227,149.333V0l-50.133,50.133C260.267,19.2,217.707,0,170.56,0C76.267,0,0.107,76.373,0.107,170.667    s76.16,170.667,170.453,170.667c79.467,0,146.027-54.4,164.907-128h-44.373c-17.6,49.707-64.747,85.333-120.533,85.333    c-70.72,0-128-57.28-128-128s57.28-128,128-128c35.307,0,66.987,14.72,90.133,37.867l-68.8,68.8H341.227z" data-original="#000000" class="active-path" data-old_color="#C8C8C8" fill="#000000"/>
-	</g>
-</g></g> </svg>
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M5.56253 2.5158C3.46348 3.45013 2 5.55417 2 8.00002C2 11.3137 4.68629 14 8 14C11.3137 14 14 11.3137 14 8.00002C14 5.32522 12.2497 3.05922 9.83199 2.28485L9.52968 3.23835C11.5429 3.88457 13 5.77213 13 8.00002C13 10.7614 10.7614 13 8 13C5.23858 13 3 10.7614 3 8.00002C3 6.31107 3.83742 4.8177 5.11969 3.91248L5.56253 2.5158Z" fill="#424242"/>
+<path fill-rule="evenodd" clip-rule="evenodd" d="M5 3H2V2H5.5L6 2.5V6H5V3Z" fill="#424242"/>
+</svg>
diff --git a/resources/light/search.svg b/resources/light/search.svg
index 48ffa86d..fa629e10 100644
--- a/resources/light/search.svg
+++ b/resources/light/search.svg
@@ -1,6 +1,3 @@
-<?xml version="1.0"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Capa_1" x="0px" y="0px" width="512px" height="512px" viewBox="0 0 446.25 446.25" style="enable-background:new 0 0 446.25 446.25;" xml:space="preserve" class=""><g><g>
-	<g id="search">
-		<path d="M318.75,280.5h-20.4l-7.649-7.65c25.5-28.05,40.8-66.3,40.8-107.1C331.5,73.95,257.55,0,165.75,0S0,73.95,0,165.75    S73.95,331.5,165.75,331.5c40.8,0,79.05-15.3,107.1-40.8l7.65,7.649v20.4L408,446.25L446.25,408L318.75,280.5z M165.75,280.5    C102,280.5,51,229.5,51,165.75S102,51,165.75,51S280.5,102,280.5,165.75S229.5,280.5,165.75,280.5z" data-original="#000000" class="active-path" fill="#000000"/>
-	</g>
-</g></g> </svg>
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path d="M15.25 1.02546e-06C13.6605 -0.000791296 12.1046 0.457574 10.7694 1.32007C9.43422 2.18256 8.37657 3.4124 7.72375 4.8617C7.07094 6.31099 6.85077 7.91801 7.0896 9.4895C7.32843 11.061 8.01604 12.5301 9.06995 13.72L1 22.88L2.12 23.88L10.17 14.76C11.2055 15.5693 12.4192 16.1196 13.7103 16.365C15.0014 16.6104 16.3325 16.5437 17.5927 16.1707C18.8528 15.7976 20.0055 15.1288 20.955 14.2201C21.9044 13.3114 22.623 12.1891 23.0509 10.9465C23.4789 9.70396 23.6038 8.37703 23.4153 7.07642C23.2267 5.77581 22.7302 4.53915 21.967 3.46924C21.2039 2.39933 20.1962 1.52711 19.0278 0.925416C17.8595 0.323719 16.5642 0.00991516 15.25 0.0100108V1.02546e-06ZM15.25 15C13.915 15 12.6099 14.6041 11.4999 13.8624C10.3898 13.1207 9.52469 12.0665 9.01379 10.8331C8.5029 9.59973 8.36919 8.24248 8.62964 6.93311C8.89009 5.62373 9.53305 4.42106 10.4771 3.47705C11.4211 2.53305 12.6237 1.89009 13.9331 1.62964C15.2425 1.36919 16.5997 1.5029 17.8331 2.01379C19.0665 2.52469 20.1207 3.38985 20.8624 4.49988C21.6041 5.60991 22 6.91498 22 8.25C22 10.0402 21.2888 11.7571 20.0229 13.023C18.7571 14.2888 17.0402 15 15.25 15V15Z" fill="#424242"/>
+</svg>
diff --git a/resources/light/signin.svg b/resources/light/signin.svg
index ab5fe2df..c7033f31 100644
--- a/resources/light/signin.svg
+++ b/resources/light/signin.svg
@@ -1,7 +1,3 @@
-<?xml version="1.0"?>
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" id="Capa_1" x="0px" y="0px" width="512px" height="512px" viewBox="0 0 438.542 438.542" style="enable-background:new 0 0 438.542 438.542;" xml:space="preserve"><g><g>
-	<g>
-		<path d="M414.41,60.676c-16.084-16.083-35.446-24.125-58.102-24.125h-91.357c-2.478,0-4.429,0.614-5.853,1.855    c-1.431,1.237-2.382,3.093-2.854,5.568c-0.479,2.474-0.76,4.709-0.853,6.707c-0.096,1.997-0.051,4.521,0.144,7.565    c0.186,3.046,0.281,4.949,0.281,5.713c0.571,1.524,0.767,2.81,0.571,3.855c-0.191,1.043,0.476,1.903,1.998,2.568    c1.52,0.666,2.279,1.191,2.279,1.569c0,0.378,1.096,0.662,3.285,0.855c2.19,0.192,3.289,0.284,3.289,0.284h3.713h3.142h82.228    c12.56,0,23.312,4.471,32.258,13.422c8.952,8.945,13.422,19.696,13.422,32.261V319.77c0,12.563-4.47,23.312-13.422,32.258    c-8.945,8.948-19.698,13.421-32.258,13.421h-91.357c-2.478,0-4.436,0.62-5.853,1.855c-1.43,1.242-2.382,3.094-2.857,5.564    c-0.476,2.478-0.763,4.716-0.855,6.714c-0.092,1.995-0.051,4.518,0.144,7.563c0.195,3.046,0.288,4.948,0.288,5.708    c0,2.478,0.896,4.613,2.707,6.427c1.81,1.807,3.949,2.71,6.427,2.71h91.357c22.648,0,42.018-8.042,58.095-24.133    c16.084-16.077,24.126-35.446,24.126-58.095V118.769C438.533,96.118,430.491,76.754,414.41,60.676z" data-original="#000000" class="active-path" fill="#000000"/>
-		<path d="M338.047,219.27c0-4.948-1.813-9.233-5.427-12.85L177.302,51.101c-3.616-3.612-7.895-5.424-12.847-5.424    c-4.952,0-9.233,1.812-12.85,5.424c-3.615,3.617-5.424,7.904-5.424,12.85v82.226H18.274c-4.952,0-9.235,1.812-12.851,5.424    C1.807,155.219,0,159.503,0,164.452v109.635c0,4.949,1.807,9.233,5.424,12.848c3.619,3.61,7.902,5.427,12.851,5.427h127.906    v82.225c0,4.945,1.809,9.233,5.424,12.847c3.621,3.617,7.902,5.428,12.85,5.428c4.949,0,9.231-1.811,12.847-5.428l155.318-155.312    C336.234,228.501,338.047,224.216,338.047,219.27z" data-original="#000000" class="active-path" fill="#000000"/>
-	</g>
-</g></g> </svg>
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
+<path fill-rule="evenodd" clip-rule="evenodd" d="M11.02 3.77L11.03 3.76L12.02 4.75V2.5L11.52 2H2.52001L2.01001 2.5V2.99301L2 3.00003V13.29L2.36 13.75L7.36 15.47L8 15V14H11.52L12.02 13.5V11.25L11.02 12.25V13H8V4.71003L7.67 4.25003L4.03619 3H7.01001H11.02V3.77ZM7 14.28L3 12.94V3.72003L7 5.06003V14.28ZM10.09 7.53005H15.06V8.53005H10.13L11.72 10.1301L11.01 10.8301L8.53998 8.37005V7.66005L11.03 5.18005L11.73 5.88005L10.09 7.53005Z" fill="#424242"/>
+</svg>

From 4979a0fbc3d1f5f1cd2c8caa20d3baa191f5aec4 Mon Sep 17 00:00:00 2001
From: yihong <zouzou0208@gmail.com>
Date: Thu, 5 Dec 2019 10:16:13 +0800
Subject: [PATCH 43/92] feat: add leetcode.signinByCookie but simple change
 (#487)

---
 README.md              |  3 ++-
 docs/README_zh-CN.md   |  3 ++-
 package.json           |  8 +++++++-
 src/extension.ts       |  1 +
 src/leetCodeManager.ts | 26 +++++++++++++++-----------
 5 files changed, 27 insertions(+), 14 deletions(-)

diff --git a/README.md b/README.md
index 67fb4df0..740f9913 100644
--- a/README.md
+++ b/README.md
@@ -40,8 +40,9 @@
 
 - Simply click `Sign in to LeetCode` in the `LeetCode Explorer` will let you **sign in** with your LeetCode account.
 
-- You can also use the following command to sign in/out:
+- You can also use the following command to sign in/sign in (by cookie)/out:
   - **LeetCode: Sign in**
+  - **LeetCode: Sign in (by cookie)**
   - **LeetCode: Sign out**
 
 ---
diff --git a/docs/README_zh-CN.md b/docs/README_zh-CN.md
index 4c9348a1..f7570685 100644
--- a/docs/README_zh-CN.md
+++ b/docs/README_zh-CN.md
@@ -40,8 +40,9 @@
 
 - 点击 `LeetCode Explorer` 中的 `Sign in to LeetCode` 即可登入。
 
-- 你也可以使用下来命令登入或登出:
+- 你也可以使用下来命令登入或利用cookie登入或登出:
   - **LeetCode: Sign in**
+  - **LeetCode: Sign in (by cookie)**
   - **LeetCode: Sign out**
 
 ---
diff --git a/package.json b/package.json
index 91bc6e59..149059de 100644
--- a/package.json
+++ b/package.json
@@ -38,11 +38,17 @@
         "onCommand:leetcode.testSolution",
         "onCommand:leetcode.submitSolution",
         "onCommand:leetcode.switchDefaultLanguage",
+        "onCommand:leetcode.signinByCookie",
         "onView:leetCodeExplorer"
     ],
     "main": "./out/src/extension",
     "contributes": {
         "commands": [
+            {
+                "command": "leetcode.signinByCookie",
+                "title": "Sign In by Cookie",
+                "category": "LeetCode"
+            },
             {
                 "command": "leetcode.deleteCache",
                 "title": "Delete Cache",
@@ -683,6 +689,6 @@
         "markdown-it": "^8.4.2",
         "require-from-string": "^2.0.2",
         "unescape-js": "^1.1.1",
-        "vsc-leetcode-cli": "2.6.16"
+        "vsc-leetcode-cli": "2.6.17"
     }
 }
diff --git a/src/extension.ts b/src/extension.ts
index 9bb3ad41..45de4a70 100644
--- a/src/extension.ts
+++ b/src/extension.ts
@@ -51,6 +51,7 @@ export async function activate(context: vscode.ExtensionContext): Promise<void>
             vscode.commands.registerCommand("leetcode.deleteCache", () => cache.deleteCache()),
             vscode.commands.registerCommand("leetcode.toggleLeetCodeCn", () => plugin.switchEndpoint()),
             vscode.commands.registerCommand("leetcode.signin", () => leetCodeManager.signIn()),
+            vscode.commands.registerCommand("leetcode.signinByCookie", () => leetCodeManager.signIn(true)),
             vscode.commands.registerCommand("leetcode.signout", () => leetCodeManager.signOut()),
             vscode.commands.registerCommand("leetcode.manageSessions", () => session.manageSessions()),
             vscode.commands.registerCommand("leetcode.previewProblem", (node: LeetCodeNode) => show.previewProblem(node)),
diff --git a/src/leetCodeManager.ts b/src/leetCodeManager.ts
index 96e3c0b0..0b70080e 100644
--- a/src/leetCodeManager.ts
+++ b/src/leetCodeManager.ts
@@ -34,7 +34,11 @@ class LeetCodeManager extends EventEmitter {
         }
     }
 
-    public async signIn(): Promise<void> {
+    public async signIn(isByCookie: boolean = false): Promise<void> {
+        const loginArg: string = "-l";
+        const cookieArg: string = "-c";
+        const commandArg: string = isByCookie ? cookieArg : loginArg;
+        const inMessage: string = isByCookie ? "sign in by cookie" : "sign in";
         try {
             const userName: string | undefined = await new Promise(async (resolve: (res: string | undefined) => void, reject: (e: Error) => void): Promise<void> => {
                 let result: string = "";
@@ -42,8 +46,8 @@ class LeetCodeManager extends EventEmitter {
                 const leetCodeBinaryPath: string = await leetCodeExecutor.getLeetCodeBinaryPath();
 
                 const childProc: cp.ChildProcess = wsl.useWsl()
-                    ? cp.spawn("wsl", [leetCodeExecutor.node, leetCodeBinaryPath, "user", "-l"], { shell: true })
-                    : cp.spawn(leetCodeExecutor.node, [leetCodeBinaryPath, "user", "-l"], {
+                    ? cp.spawn("wsl", [leetCodeExecutor.node, leetCodeBinaryPath, "user", commandArg], { shell: true })
+                    : cp.spawn(leetCodeExecutor.node, [leetCodeBinaryPath, "user", commandArg], {
                         shell: true,
                         env: createEnvOption(),
                     });
@@ -67,9 +71,9 @@ class LeetCodeManager extends EventEmitter {
                 }
                 childProc.stdin.write(`${name}\n`);
                 const pwd: string | undefined = await vscode.window.showInputBox({
-                    prompt: "Enter password.",
+                    prompt: isByCookie ? "Enter cookie" : "Enter password.",
                     password: true,
-                    validateInput: (s: string): string | undefined => s ? undefined : "Password must not be empty",
+                    validateInput: (s: string): string | undefined => s ? undefined : isByCookie ? "Cookie must not be empty" : "Password must not be empty",
                 });
                 if (!pwd) {
                     childProc.kill();
@@ -78,22 +82,22 @@ class LeetCodeManager extends EventEmitter {
                 childProc.stdin.write(`${pwd}\n`);
                 childProc.stdin.end();
                 childProc.on("close", () => {
-                    const match: RegExpMatchArray | null = result.match(/(?:.*) Successfully login as (.*)/i);
-                    if (match && match[1]) {
-                        resolve(match[1]);
+                    const match: RegExpMatchArray | null = result.match(/(?:.*) Successfully (login|cookie login) as (.*)/i);
+                    if (match && match[2]) {
+                        resolve(match[2]);
                     } else {
-                        reject(new Error("Failed to sign in."));
+                        reject(new Error(`Failed to ${inMessage}.`));
                     }
                 });
             });
             if (userName) {
-                vscode.window.showInformationMessage("Successfully signed in.");
+                vscode.window.showInformationMessage(`Successfully ${inMessage}.`);
                 this.currentUser = userName;
                 this.userStatus = UserStatus.SignedIn;
                 this.emit("statusChanged");
             }
         } catch (error) {
-            promptForOpenOutputChannel("Failed to sign in. Please open the output channel for details", DialogType.error);
+            promptForOpenOutputChannel(`Failed to ${inMessage}. Please open the output channel for details`, DialogType.error);
         }
 
     }

From cec17d68647e3e18bcfe7ccd5ef58547ab15186c Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Sun, 8 Dec 2019 14:26:51 +0800
Subject: [PATCH 44/92] Prepare for next release (#488)

---
 ACKNOWLEDGEMENTS.md  |  2 ++
 CHANGELOG.md         |  7 +++++++
 README.md            | 11 +++++++++++
 docs/README_zh-CN.md | 11 +++++++++++
 package-lock.json    | 43 ++++++++++++++++++++++++++++++-------------
 package.json         |  4 ++--
 6 files changed, 63 insertions(+), 15 deletions(-)

diff --git a/ACKNOWLEDGEMENTS.md b/ACKNOWLEDGEMENTS.md
index 4bc00ba3..8f9ea9ce 100644
--- a/ACKNOWLEDGEMENTS.md
+++ b/ACKNOWLEDGEMENTS.md
@@ -20,3 +20,5 @@ A big thanks to the following individuals for contributing:
 - [@SF-Zhou](https://github.com/SF-Zhou) - [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=SF-Zhou)
 - [@fuafa](https://github.com/fuafa) - [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=fuafa)
 - [@iFun](https://github.com/iFun) - [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=iFun)
+- [@hologerry](https://github.com/hologerry) - [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=hologerry)
+- [@yihong0618](https://github.com/yihong0618) - [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=yihong0618)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0f764830..78bab546 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,13 @@ All notable changes to the "leetcode" extension will be documented in this file.
 
 Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
 
+## [0.15.8]
+### Added
+- Add a new command `Sign In by Cookie` to workaround the issue that [users cannot login to LeetCode](https://github.com/jdneo/vscode-leetcode/issues/478). Please check the [workaround steps](https://github.com/jdneo/vscode-leetcode/tree/master#%EF%B8%8F-attention-%EF%B8%8F--workaround-to-login-to-leetcode-endpoint) for more details!
+
+### Changed
+- Update the explorer icons to be align with the VS Code design [#460](https://github.com/jdneo/vscode-leetcode/issues/460)
+
 ## [0.15.7]
 ### Fixed
 [Bugs fixed](https://github.com/jdneo/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.15.7+is%3Aclosed+label%3Abug)
diff --git a/README.md b/README.md
index 740f9913..b8aac1e3 100644
--- a/README.md
+++ b/README.md
@@ -22,6 +22,17 @@
 
 - English Document | [中文文档](https://github.com/jdneo/vscode-leetcode/blob/master/docs/README_zh-CN.md)
 
+## ❗️ Attention ❗️- Workaround to login to LeetCode endpoint
+> Note: If you are using `leetcode-cn.com`, you can just ignore this section.
+
+Recently we observed that [the extension cannot login to leetcode.com endpoint anymore](https://github.com/jdneo/vscode-leetcode/issues/478). The root cause of this issue is that leetcode.com changed its login mechanism and so far there is no ideal way to fix that issue.
+
+Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround which can somehow mitigate this by using the cookie to login. Here are the steps about what you should do if you want to login to `leetcode.com` endpoint using cookie:
+1. Logout from the extension
+2. Make sure current active endpoint is `leetcode.com` (Not leetcode-cn.com)
+3. Copy the cookie as mentioned [here](https://github.com/jdneo/vscode-leetcode/issues/478#issuecomment-560395305)
+4. Trigger the command `Sign In by Cookie` to login through the copied cookie.
+
 ## Requirements
 - [VS Code 1.30.1+](https://code.visualstudio.com/)
 - [Node.js 8+](https://nodejs.org)
diff --git a/docs/README_zh-CN.md b/docs/README_zh-CN.md
index f7570685..81c98fe7 100644
--- a/docs/README_zh-CN.md
+++ b/docs/README_zh-CN.md
@@ -22,6 +22,17 @@
 
 - [English Document](https://github.com/jdneo/vscode-leetcode#requirements) | 中文文档
 
+## ❗️ 注意 ❗️- 无法登录 LeetCode 节点的临时解决办法
+> 注意:如果使用的是 `leetcode-cn.com` 账户,可以跳过此段落。
+
+近期我们发现插件出现了[无法登录 leetcode.com 节点的问题](https://github.com/jdneo/vscode-leetcode/issues/478)。原因是因为近期 leetcode.com 改变了登录机制,目前我们暂时没有找到解决该问题的完美解决方案。
+
+感谢 [@yihong0618](https://github.com/yihong0618) 提供了一个通过 cookie 登录的临时解决办法。你可以参考如下步骤实现通过 cookie 登录 `leetcode.com`:
+1. 登出账户
+2. 确保当前激活的节点为 `leetcode.com` (而非 leetcode-cn.com)
+3. 按照这里的方法,[从浏览器中拷贝 cookie](https://github.com/jdneo/vscode-leetcode/issues/478#issuecomment-560395305)
+4. 使用命令 `Sign In by Cookie` 登录。
+
 ## 运行条件
 - [VS Code 1.23.0+](https://code.visualstudio.com/)
 - [Node.js 8+](https://nodejs.org)
diff --git a/package-lock.json b/package-lock.json
index 90ee4809..09316a21 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
 {
     "name": "vscode-leetcode",
-    "version": "0.15.7",
+    "version": "0.15.8",
     "lockfileVersion": 1,
     "requires": true,
     "dependencies": {
@@ -753,13 +753,24 @@
             }
         },
         "https-proxy-agent": {
-            "version": "2.2.1",
-            "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz",
-            "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==",
+            "version": "2.2.4",
+            "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz",
+            "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==",
             "dev": true,
             "requires": {
-                "agent-base": "^4.1.0",
+                "agent-base": "^4.3.0",
                 "debug": "^3.1.0"
+            },
+            "dependencies": {
+                "agent-base": {
+                    "version": "4.3.0",
+                    "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
+                    "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==",
+                    "dev": true,
+                    "requires": {
+                        "es6-promisify": "^5.0.0"
+                    }
+                }
             }
         },
         "i": {
@@ -1208,17 +1219,17 @@
             }
         },
         "optionator": {
-            "version": "0.8.2",
-            "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
-            "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=",
+            "version": "0.8.3",
+            "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+            "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
             "optional": true,
             "requires": {
                 "deep-is": "~0.1.3",
-                "fast-levenshtein": "~2.0.4",
+                "fast-levenshtein": "~2.0.6",
                 "levn": "~0.3.0",
                 "prelude-ls": "~1.1.2",
                 "type-check": "~0.3.2",
-                "wordwrap": "~1.0.0"
+                "word-wrap": "~1.2.3"
             }
         },
         "ora": {
@@ -1786,9 +1797,9 @@
             }
         },
         "vsc-leetcode-cli": {
-            "version": "2.6.16",
-            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.6.16.tgz",
-            "integrity": "sha512-RvSrKJMgh08OYZDcJJDOkjMLtoWGbc5f1Kx8PQYwyiLdnJjOGG0wVc4gPyQAJCT1Xgd31wv04xIZmBSXbcvMEg==",
+            "version": "2.6.18",
+            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.6.18.tgz",
+            "integrity": "sha512-46aJPFQfESBO0Jxa1NKaoyLjYqGi0pRhpNfS/q0ernhhWLKaeSsbeP9zMRkbOp3yFt5zkz0jNFWpZDJZLFl3lg==",
             "requires": {
                 "ansi-styles": "3.2.1",
                 "cheerio": "0.20.0",
@@ -1902,6 +1913,12 @@
                 }
             }
         },
+        "word-wrap": {
+            "version": "1.2.3",
+            "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+            "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+            "optional": true
+        },
         "wordwrap": {
             "version": "1.0.0",
             "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
diff --git a/package.json b/package.json
index 149059de..af0f71f0 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
     "name": "vscode-leetcode",
     "displayName": "LeetCode",
     "description": "Solve LeetCode problems in VS Code",
-    "version": "0.15.7",
+    "version": "0.15.8",
     "author": "Sheng Chen",
     "publisher": "shengchen",
     "license": "MIT",
@@ -689,6 +689,6 @@
         "markdown-it": "^8.4.2",
         "require-from-string": "^2.0.2",
         "unescape-js": "^1.1.1",
-        "vsc-leetcode-cli": "2.6.17"
+        "vsc-leetcode-cli": "2.6.18"
     }
 }

From 9767d72327b7c1129086773cb6ff1af5ebb11434 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Sun, 8 Dec 2019 14:57:00 +0800
Subject: [PATCH 45/92] chore: bump cli version to 2.6.19

---
 package-lock.json | 6 +++---
 package.json      | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 09316a21..029e6498 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1797,9 +1797,9 @@
             }
         },
         "vsc-leetcode-cli": {
-            "version": "2.6.18",
-            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.6.18.tgz",
-            "integrity": "sha512-46aJPFQfESBO0Jxa1NKaoyLjYqGi0pRhpNfS/q0ernhhWLKaeSsbeP9zMRkbOp3yFt5zkz0jNFWpZDJZLFl3lg==",
+            "version": "2.6.19",
+            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.6.19.tgz",
+            "integrity": "sha512-xvfdNe98N/mPR7VLCg1z0J5pn6QBVfI9kPqxFt6tZEIQNMeHrPlG6L5JA0LDJNVSCDWOyDsT77w3spA533XFPg==",
             "requires": {
                 "ansi-styles": "3.2.1",
                 "cheerio": "0.20.0",
diff --git a/package.json b/package.json
index af0f71f0..23ab4685 100644
--- a/package.json
+++ b/package.json
@@ -689,6 +689,6 @@
         "markdown-it": "^8.4.2",
         "require-from-string": "^2.0.2",
         "unescape-js": "^1.1.1",
-        "vsc-leetcode-cli": "2.6.18"
+        "vsc-leetcode-cli": "2.6.19"
     }
 }

From c20a2d5db7730344b7d7f0155c8461c501cdd287 Mon Sep 17 00:00:00 2001
From: yihong <zouzou0208@gmail.com>
Date: Sun, 12 Jan 2020 14:13:10 +0800
Subject: [PATCH 46/92] add thrid party login -- GitHub and LinkedIn (#496)

---
 README.md              |  4 +--
 docs/README_zh-CN.md   |  2 --
 package.json           |  8 +----
 src/extension.ts       |  1 -
 src/leetCodeManager.ts | 72 +++++++++++++++++++++++++++++++++---------
 src/shared.ts          |  7 ++++
 6 files changed, 66 insertions(+), 28 deletions(-)

diff --git a/README.md b/README.md
index b8aac1e3..1d8d21f3 100644
--- a/README.md
+++ b/README.md
@@ -51,11 +51,9 @@ Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround wh
 
 - Simply click `Sign in to LeetCode` in the `LeetCode Explorer` will let you **sign in** with your LeetCode account.
 
-- You can also use the following command to sign in/sign in (by cookie)/out:
+- You can also use the following command to sign in/out:
   - **LeetCode: Sign in**
-  - **LeetCode: Sign in (by cookie)**
   - **LeetCode: Sign out**
-
 ---
 
 ### Switch Endpoint
diff --git a/docs/README_zh-CN.md b/docs/README_zh-CN.md
index 81c98fe7..23faf30c 100644
--- a/docs/README_zh-CN.md
+++ b/docs/README_zh-CN.md
@@ -53,9 +53,7 @@
 
 - 你也可以使用下来命令登入或利用cookie登入或登出:
   - **LeetCode: Sign in**
-  - **LeetCode: Sign in (by cookie)**
   - **LeetCode: Sign out**
-
 ---
 
 ### 切换 LeetCode 版本
diff --git a/package.json b/package.json
index 23ab4685..743b2803 100644
--- a/package.json
+++ b/package.json
@@ -38,17 +38,11 @@
         "onCommand:leetcode.testSolution",
         "onCommand:leetcode.submitSolution",
         "onCommand:leetcode.switchDefaultLanguage",
-        "onCommand:leetcode.signinByCookie",
         "onView:leetCodeExplorer"
     ],
     "main": "./out/src/extension",
     "contributes": {
         "commands": [
-            {
-                "command": "leetcode.signinByCookie",
-                "title": "Sign In by Cookie",
-                "category": "LeetCode"
-            },
             {
                 "command": "leetcode.deleteCache",
                 "title": "Delete Cache",
@@ -689,6 +683,6 @@
         "markdown-it": "^8.4.2",
         "require-from-string": "^2.0.2",
         "unescape-js": "^1.1.1",
-        "vsc-leetcode-cli": "2.6.19"
+        "vsc-leetcode-cli": "2.6.20"
     }
 }
diff --git a/src/extension.ts b/src/extension.ts
index 45de4a70..9bb3ad41 100644
--- a/src/extension.ts
+++ b/src/extension.ts
@@ -51,7 +51,6 @@ export async function activate(context: vscode.ExtensionContext): Promise<void>
             vscode.commands.registerCommand("leetcode.deleteCache", () => cache.deleteCache()),
             vscode.commands.registerCommand("leetcode.toggleLeetCodeCn", () => plugin.switchEndpoint()),
             vscode.commands.registerCommand("leetcode.signin", () => leetCodeManager.signIn()),
-            vscode.commands.registerCommand("leetcode.signinByCookie", () => leetCodeManager.signIn(true)),
             vscode.commands.registerCommand("leetcode.signout", () => leetCodeManager.signOut()),
             vscode.commands.registerCommand("leetcode.manageSessions", () => session.manageSessions()),
             vscode.commands.registerCommand("leetcode.previewProblem", (node: LeetCodeNode) => show.previewProblem(node)),
diff --git a/src/leetCodeManager.ts b/src/leetCodeManager.ts
index 0b70080e..25439048 100644
--- a/src/leetCodeManager.ts
+++ b/src/leetCodeManager.ts
@@ -6,7 +6,7 @@ import { EventEmitter } from "events";
 import * as vscode from "vscode";
 import { leetCodeChannel } from "./leetCodeChannel";
 import { leetCodeExecutor } from "./leetCodeExecutor";
-import { UserStatus } from "./shared";
+import { IQuickItemEx, loginArgsMapping, UserStatus } from "./shared";
 import { createEnvOption } from "./utils/cpUtils";
 import { DialogType, promptForOpenOutputChannel } from "./utils/uiUtils";
 import * as wsl from "./utils/wslUtils";
@@ -34,14 +34,43 @@ class LeetCodeManager extends EventEmitter {
         }
     }
 
-    public async signIn(isByCookie: boolean = false): Promise<void> {
-        const loginArg: string = "-l";
-        const cookieArg: string = "-c";
-        const commandArg: string = isByCookie ? cookieArg : loginArg;
+    public async signIn(): Promise<void> {
+        const picks: Array<IQuickItemEx<string>> = [];
+        picks.push(
+            {
+                label: "LeetCode Account",
+                detail: "Use LeetCode account to login",
+                value: "LeetCode",
+            },
+            {
+                label: "LeetCode Cookie",
+                detail: "Use LeetCode cookie copied from browser to login",
+                value: "Cookie",
+            },
+            {
+                label: "Third-Party: GitHub",
+                detail: "Use GitHub account to login",
+                value: "GitHub",
+            },
+            {
+                label: "Third-Party: LinkedIn",
+                detail: "Use LinkedIn account to login",
+                value: "LinkedIn",
+            },
+        );
+        const choice: IQuickItemEx<string> | undefined = await vscode.window.showQuickPick(picks);
+        if (!choice) {
+            return;
+        }
+        const loginMethod: string = choice.value;
+        const commandArg: string | undefined = loginArgsMapping.get(loginMethod);
+        if (!commandArg) {
+            throw new Error(`The login method "${loginMethod}" is not supported.`);
+        }
+        const isByCookie: boolean = loginMethod === "Cookie";
         const inMessage: string = isByCookie ? "sign in by cookie" : "sign in";
         try {
             const userName: string | undefined = await new Promise(async (resolve: (res: string | undefined) => void, reject: (e: Error) => void): Promise<void> => {
-                let result: string = "";
 
                 const leetCodeBinaryPath: string = await leetCodeExecutor.getLeetCodeBinaryPath();
 
@@ -52,10 +81,27 @@ class LeetCodeManager extends EventEmitter {
                         env: createEnvOption(),
                     });
 
-                childProc.stdout.on("data", (data: string | Buffer) => {
+                childProc.stdout.on("data", async (data: string | Buffer) => {
                     data = data.toString();
-                    result = result.concat(data);
                     leetCodeChannel.append(data);
+                    if (data.includes("twoFactorCode")) {
+                        const twoFactor: string | undefined = await vscode.window.showInputBox({
+                            prompt: "Enter two-factor code.",
+                            validateInput: (s: string): string | undefined => s && s.trim() ? undefined : "The input must not be empty",
+                        });
+                        if (!twoFactor) {
+                            childProc.kill();
+                            return resolve(undefined);
+                        }
+                        childProc.stdin.write(`${twoFactor}\n`);
+                        childProc.stdin.end();
+                    } else {
+                        const match: RegExpMatchArray | null = data.match(/(?:.*)Successfully .*login as (.*)/i);
+                        if (match && match[1]) {
+                            childProc.stdin.end();
+                            return resolve(match[1]);
+                        }
+                    }
                 });
 
                 childProc.stderr.on("data", (data: string | Buffer) => leetCodeChannel.append(data.toString()));
@@ -80,13 +126,9 @@ class LeetCodeManager extends EventEmitter {
                     return resolve(undefined);
                 }
                 childProc.stdin.write(`${pwd}\n`);
-                childProc.stdin.end();
-                childProc.on("close", () => {
-                    const match: RegExpMatchArray | null = result.match(/(?:.*) Successfully (login|cookie login) as (.*)/i);
-                    if (match && match[2]) {
-                        resolve(match[2]);
-                    } else {
-                        reject(new Error(`Failed to ${inMessage}.`));
+                childProc.on("close", (code: number) => {
+                    if (code !== 0) {
+                        reject(new Error("Failed to login."));
                     }
                 });
             });
diff --git a/src/shared.ts b/src/shared.ts
index 78518454..5f1039e4 100644
--- a/src/shared.ts
+++ b/src/shared.ts
@@ -12,6 +12,13 @@ export enum UserStatus {
     SignedOut = 2,
 }
 
+export const loginArgsMapping: Map<string, string> = new Map([
+    ["LeetCode", "-l"],
+    ["Cookie", "-c"],
+    ["GitHub", "-g"],
+    ["LinkedIn", "-i"],
+]);
+
 export const languages: string[] = [
     "bash",
     "c",

From 9017eda6f6ee2476e0da9318b0485bb7f34f39b0 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Sun, 12 Jan 2020 17:15:00 +0800
Subject: [PATCH 47/92] Refine the result parsing logic (#501)

---
 package-lock.json      | 18 +++++++++---------
 package.json           |  2 +-
 src/leetCodeManager.ts | 33 +++++++++++++++++----------------
 3 files changed, 27 insertions(+), 26 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 029e6498..4c5bf850 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -518,9 +518,9 @@
             "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
         },
         "escodegen": {
-            "version": "1.12.0",
-            "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.0.tgz",
-            "integrity": "sha512-TuA+EhsanGcme5T3R0L80u4t8CpbXQjegRmf7+FPTJrtCTErXFeelblRgHQa1FofEzqYYJmJ/OqjTwREp9qgmg==",
+            "version": "1.12.1",
+            "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.1.tgz",
+            "integrity": "sha512-Q8t2YZ+0e0pc7NRVj3B4tSQ9rim1oi4Fh46k2xhJ2qOiEwhQfdjyEQddWdj7ZFaKmU+5104vn1qrcjEPWq+bgQ==",
             "optional": true,
             "requires": {
                 "esprima": "^3.1.3",
@@ -1284,9 +1284,9 @@
             "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg=="
         },
         "p-limit": {
-            "version": "2.2.1",
-            "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
-            "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
+            "version": "2.2.2",
+            "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
+            "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
             "requires": {
                 "p-try": "^2.0.0"
             }
@@ -1797,9 +1797,9 @@
             }
         },
         "vsc-leetcode-cli": {
-            "version": "2.6.19",
-            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.6.19.tgz",
-            "integrity": "sha512-xvfdNe98N/mPR7VLCg1z0J5pn6QBVfI9kPqxFt6tZEIQNMeHrPlG6L5JA0LDJNVSCDWOyDsT77w3spA533XFPg==",
+            "version": "2.6.22",
+            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.6.22.tgz",
+            "integrity": "sha512-/mKAQtwabtzZfbQlJO9k9qotx7qgtDFZnZ6TkO3NrfUyne2jTXLzDBN+/66fcXUyX5fpxKYBx81icChGRnT7CQ==",
             "requires": {
                 "ansi-styles": "3.2.1",
                 "cheerio": "0.20.0",
diff --git a/package.json b/package.json
index 743b2803..315f86eb 100644
--- a/package.json
+++ b/package.json
@@ -683,6 +683,6 @@
         "markdown-it": "^8.4.2",
         "require-from-string": "^2.0.2",
         "unescape-js": "^1.1.1",
-        "vsc-leetcode-cli": "2.6.20"
+        "vsc-leetcode-cli": "2.6.22"
     }
 }
diff --git a/src/leetCodeManager.ts b/src/leetCodeManager.ts
index 25439048..27a17103 100644
--- a/src/leetCodeManager.ts
+++ b/src/leetCodeManager.ts
@@ -14,6 +14,8 @@ import * as wsl from "./utils/wslUtils";
 class LeetCodeManager extends EventEmitter {
     private currentUser: string | undefined;
     private userStatus: UserStatus;
+    private readonly successRegex: RegExp = /(?:.*)Successfully .*login as (.*)/i;
+    private readonly failRegex: RegExp = /.*\[ERROR\].*/i;
 
     constructor() {
         super();
@@ -42,11 +44,6 @@ class LeetCodeManager extends EventEmitter {
                 detail: "Use LeetCode account to login",
                 value: "LeetCode",
             },
-            {
-                label: "LeetCode Cookie",
-                detail: "Use LeetCode cookie copied from browser to login",
-                value: "Cookie",
-            },
             {
                 label: "Third-Party: GitHub",
                 detail: "Use GitHub account to login",
@@ -57,6 +54,11 @@ class LeetCodeManager extends EventEmitter {
                 detail: "Use LinkedIn account to login",
                 value: "LinkedIn",
             },
+            {
+                label: "LeetCode Cookie",
+                detail: "Use LeetCode cookie copied from browser to login",
+                value: "Cookie",
+            },
         );
         const choice: IQuickItemEx<string> | undefined = await vscode.window.showQuickPick(picks);
         if (!choice) {
@@ -87,6 +89,7 @@ class LeetCodeManager extends EventEmitter {
                     if (data.includes("twoFactorCode")) {
                         const twoFactor: string | undefined = await vscode.window.showInputBox({
                             prompt: "Enter two-factor code.",
+                            ignoreFocusOut: true,
                             validateInput: (s: string): string | undefined => s && s.trim() ? undefined : "The input must not be empty",
                         });
                         if (!twoFactor) {
@@ -94,13 +97,14 @@ class LeetCodeManager extends EventEmitter {
                             return resolve(undefined);
                         }
                         childProc.stdin.write(`${twoFactor}\n`);
+                    }
+                    const successMatch: RegExpMatchArray | null = data.match(this.successRegex);
+                    if (successMatch && successMatch[1]) {
                         childProc.stdin.end();
-                    } else {
-                        const match: RegExpMatchArray | null = data.match(/(?:.*)Successfully .*login as (.*)/i);
-                        if (match && match[1]) {
-                            childProc.stdin.end();
-                            return resolve(match[1]);
-                        }
+                        return resolve(successMatch[1]);
+                    } else if (data.match(this.failRegex)) {
+                        childProc.stdin.end();
+                        return reject(new Error("Faile to login"));
                     }
                 });
 
@@ -109,6 +113,7 @@ class LeetCodeManager extends EventEmitter {
                 childProc.on("error", reject);
                 const name: string | undefined = await vscode.window.showInputBox({
                     prompt: "Enter username or E-mail.",
+                    ignoreFocusOut: true,
                     validateInput: (s: string): string | undefined => s && s.trim() ? undefined : "The input must not be empty",
                 });
                 if (!name) {
@@ -119,6 +124,7 @@ class LeetCodeManager extends EventEmitter {
                 const pwd: string | undefined = await vscode.window.showInputBox({
                     prompt: isByCookie ? "Enter cookie" : "Enter password.",
                     password: true,
+                    ignoreFocusOut: true,
                     validateInput: (s: string): string | undefined => s ? undefined : isByCookie ? "Cookie must not be empty" : "Password must not be empty",
                 });
                 if (!pwd) {
@@ -126,11 +132,6 @@ class LeetCodeManager extends EventEmitter {
                     return resolve(undefined);
                 }
                 childProc.stdin.write(`${pwd}\n`);
-                childProc.on("close", (code: number) => {
-                    if (code !== 0) {
-                        reject(new Error("Failed to login."));
-                    }
-                });
             });
             if (userName) {
                 vscode.window.showInformationMessage(`Successfully ${inMessage}.`);

From 6efb683df281479622b9efb426d183f0a843efa6 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Sun, 12 Jan 2020 19:22:56 +0800
Subject: [PATCH 48/92] Prepare for 0.16.0 (#502)

---
 CHANGELOG.md         | 4 ++++
 README.md            | 8 +++-----
 docs/README_zh-CN.md | 9 ++++-----
 package-lock.json    | 2 +-
 package.json         | 2 +-
 5 files changed, 13 insertions(+), 12 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 78bab546..6a57ff0f 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,10 @@ All notable changes to the "leetcode" extension will be documented in this file.
 
 Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
 
+## [0.16.0]
+### Added
+- Support GitHub login and LinkedIn login [PR#496](https://github.com/jdneo/vscode-leetcode/pull/496)
+
 ## [0.15.8]
 ### Added
 - Add a new command `Sign In by Cookie` to workaround the issue that [users cannot login to LeetCode](https://github.com/jdneo/vscode-leetcode/issues/478). Please check the [workaround steps](https://github.com/jdneo/vscode-leetcode/tree/master#%EF%B8%8F-attention-%EF%B8%8F--workaround-to-login-to-leetcode-endpoint) for more details!
diff --git a/README.md b/README.md
index 1d8d21f3..454a2d46 100644
--- a/README.md
+++ b/README.md
@@ -27,11 +27,9 @@
 
 Recently we observed that [the extension cannot login to leetcode.com endpoint anymore](https://github.com/jdneo/vscode-leetcode/issues/478). The root cause of this issue is that leetcode.com changed its login mechanism and so far there is no ideal way to fix that issue.
 
-Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround which can somehow mitigate this by using the cookie to login. Here are the steps about what you should do if you want to login to `leetcode.com` endpoint using cookie:
-1. Logout from the extension
-2. Make sure current active endpoint is `leetcode.com` (Not leetcode-cn.com)
-3. Copy the cookie as mentioned [here](https://github.com/jdneo/vscode-leetcode/issues/478#issuecomment-560395305)
-4. Trigger the command `Sign In by Cookie` to login through the copied cookie.
+Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround which can somehow mitigate this. Now you can simply click the `Sign In` button and then select `Third Party` login or `Cookie` login.
+
+> Note: If you want to use third-party login(**Recommended**), please make sure your account has been connected to the thrid-party. If you want to use `Cookie` login, click [here](https://github.com/jdneo/vscode-leetcode/issues/478#issuecomment-564757098) to see the steps.
 
 ## Requirements
 - [VS Code 1.30.1+](https://code.visualstudio.com/)
diff --git a/docs/README_zh-CN.md b/docs/README_zh-CN.md
index 23faf30c..d6b3b8f4 100644
--- a/docs/README_zh-CN.md
+++ b/docs/README_zh-CN.md
@@ -27,11 +27,10 @@
 
 近期我们发现插件出现了[无法登录 leetcode.com 节点的问题](https://github.com/jdneo/vscode-leetcode/issues/478)。原因是因为近期 leetcode.com 改变了登录机制,目前我们暂时没有找到解决该问题的完美解决方案。
 
-感谢 [@yihong0618](https://github.com/yihong0618) 提供了一个通过 cookie 登录的临时解决办法。你可以参考如下步骤实现通过 cookie 登录 `leetcode.com`:
-1. 登出账户
-2. 确保当前激活的节点为 `leetcode.com` (而非 leetcode-cn.com)
-3. 按照这里的方法,[从浏览器中拷贝 cookie](https://github.com/jdneo/vscode-leetcode/issues/478#issuecomment-560395305)
-4. 使用命令 `Sign In by Cookie` 登录。
+感谢 [@yihong0618](https://github.com/yihong0618) 提供了一个临时解决办法。现在你可以直接点击登录按钮并选择第三方登录或者 `Cookie` 登录。
+
+
+> 注意:如果你希望使用第三方登录(**推荐**),请确保你的账户已经与第三方账户连接。如果你希望通过 `Cookie` 登录,请点击[该连接](https://github.com/jdneo/vscode-leetcode/issues/478#issuecomment-564757098)查看登录步骤。
 
 ## 运行条件
 - [VS Code 1.23.0+](https://code.visualstudio.com/)
diff --git a/package-lock.json b/package-lock.json
index 4c5bf850..1c03578e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
 {
     "name": "vscode-leetcode",
-    "version": "0.15.8",
+    "version": "0.16.0",
     "lockfileVersion": 1,
     "requires": true,
     "dependencies": {
diff --git a/package.json b/package.json
index 315f86eb..ea64b44d 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
     "name": "vscode-leetcode",
     "displayName": "LeetCode",
     "description": "Solve LeetCode problems in VS Code",
-    "version": "0.15.8",
+    "version": "0.16.0",
     "author": "Sheng Chen",
     "publisher": "shengchen",
     "license": "MIT",

From 1c4a39ef0db9febeb3320c8f7a701e50374c10a2 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Thu, 13 Feb 2020 15:45:17 +0800
Subject: [PATCH 49/92] Add more information for login (#508)

---
 src/leetCodeManager.ts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/leetCodeManager.ts b/src/leetCodeManager.ts
index 27a17103..44be87a9 100644
--- a/src/leetCodeManager.ts
+++ b/src/leetCodeManager.ts
@@ -41,7 +41,7 @@ class LeetCodeManager extends EventEmitter {
         picks.push(
             {
                 label: "LeetCode Account",
-                detail: "Use LeetCode account to login",
+                detail: "Use LeetCode account to login (US endpoint is not supported)",
                 value: "LeetCode",
             },
             {

From 1a129db5c569be16b184f5e045679cb1037ad374 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Fri, 14 Feb 2020 09:56:48 +0800
Subject: [PATCH 50/92] feat: Can open the problem file directly (#511)

---
 src/utils/workspaceUtils.ts | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/utils/workspaceUtils.ts b/src/utils/workspaceUtils.ts
index b77fc3c7..c129f8db 100644
--- a/src/utils/workspaceUtils.ts
+++ b/src/utils/workspaceUtils.ts
@@ -29,14 +29,17 @@ export async function selectWorkspaceFolder(): Promise<string> {
     if (needAsk) {
         const choice: string | undefined = await vscode.window.showQuickPick(
             [
+                OpenOption.justOpenFile,
                 OpenOption.openInCurrentWindow,
                 OpenOption.openInNewWindow,
                 OpenOption.addToWorkspace,
             ],
-            { placeHolder: "Select how you would like to open your workspace folder" },
+            { placeHolder: "The LeetCode workspace folder is not opened in VS Code, would you like to open it?" },
         );
 
         switch (choice) {
+            case OpenOption.justOpenFile:
+                return workspaceFolderSetting;
             case OpenOption.openInCurrentWindow:
                 await vscode.commands.executeCommand("vscode.openFolder", vscode.Uri.file(workspaceFolderSetting), false);
                 return "";
@@ -117,6 +120,7 @@ async function determineLeetCodeFolder(): Promise<string> {
 }
 
 enum OpenOption {
+    justOpenFile = "Just open the problem file",
     openInCurrentWindow = "Open in current window",
     openInNewWindow = "Open in new window",
     addToWorkspace = "Add to workspace",

From d7e4c10d39c5480145f19fb8f3cd4408562e5070 Mon Sep 17 00:00:00 2001
From: LinkeyLeo <LinkeyLeo@outlook.com>
Date: Sat, 22 Feb 2020 12:28:02 +0800
Subject: [PATCH 51/92] bugfix: Correctly parse the WSL path to Windows path
 (#510)

---
 src/leetCodeExecutor.ts | 17 ++++-------------
 src/utils/wslUtils.ts   |  5 ++++-
 2 files changed, 8 insertions(+), 14 deletions(-)

diff --git a/src/leetCodeExecutor.ts b/src/leetCodeExecutor.ts
index ce4a84e8..271ca9a4 100644
--- a/src/leetCodeExecutor.ts
+++ b/src/leetCodeExecutor.ts
@@ -14,13 +14,11 @@ import { toWslPath, useWsl } from "./utils/wslUtils";
 
 class LeetCodeExecutor implements Disposable {
     private leetCodeRootPath: string;
-    private leetCodeRootPathInWsl: string;
     private nodeExecutable: string;
     private configurationChangeListener: Disposable;
 
     constructor() {
         this.leetCodeRootPath = path.join(__dirname, "..", "..", "node_modules", "vsc-leetcode-cli");
-        this.leetCodeRootPathInWsl = "";
         this.nodeExecutable = this.getNodePath();
         this.configurationChangeListener = workspace.onDidChangeConfiguration((event: ConfigurationChangeEvent) => {
             if (event.affectsConfiguration("leetcode.nodePath")) {
@@ -29,18 +27,11 @@ class LeetCodeExecutor implements Disposable {
         }, this);
     }
 
-    public async getLeetCodeRootPath(): Promise<string> { // not wrapped by ""
+    public async getLeetCodeBinaryPath(): Promise<string> {
         if (wsl.useWsl()) {
-            if (!this.leetCodeRootPathInWsl) {
-                this.leetCodeRootPathInWsl = `${await wsl.toWslPath(this.leetCodeRootPath)}`;
-            }
-            return `${this.leetCodeRootPathInWsl}`;
+            return `${await wsl.toWslPath(`"${path.join(this.leetCodeRootPath, "bin", "leetcode")}"`)}`;
         }
-        return `${this.leetCodeRootPath}`;
-    }
-
-    public async getLeetCodeBinaryPath(): Promise<string> { // wrapped by ""
-        return `"${path.join(await this.getLeetCodeRootPath(), "bin", "leetcode")}"`;
+        return `"${path.join(this.leetCodeRootPath, "bin", "leetcode")}"`;
     }
 
     public async meetRequirements(): Promise<boolean> {
@@ -168,7 +159,7 @@ class LeetCodeExecutor implements Disposable {
 
     public async getCompaniesAndTags(): Promise<{ companies: { [key: string]: string[] }, tags: { [key: string]: string[] } }> {
         // preprocess the plugin source
-        const companiesTagsPath: string = path.join(await leetCodeExecutor.getLeetCodeRootPath(), "lib", "plugins", "company.js");
+        const companiesTagsPath: string = path.join(this.leetCodeRootPath, "lib", "plugins", "company.js");
         const companiesTagsSrc: string = (await fse.readFile(companiesTagsPath, "utf8")).replace(
             "module.exports = plugin",
             "module.exports = { COMPONIES, TAGS }",
diff --git a/src/utils/wslUtils.ts b/src/utils/wslUtils.ts
index d496b038..16d83cde 100644
--- a/src/utils/wslUtils.ts
+++ b/src/utils/wslUtils.ts
@@ -15,5 +15,8 @@ export async function toWslPath(path: string): Promise<string> {
 }
 
 export async function toWinPath(path: string): Promise<string> {
-    return (await executeCommand("wsl", ["wslpath", "-w", `"${path}"`])).trim();
+    if (path.startsWith("\\mnt\\")) {
+        return (await executeCommand("wsl", ["wslpath", "-w", `"${path.replace(/\\/g, "/").substr(0, 6)}"`])).trim() + path.substr(7);
+    }
+    return (await executeCommand("wsl", ["wslpath", "-w", "/"])).trim() + path;
 }

From 63589211e9a9aadd99134c407961c81225d98ec2 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Sat, 22 Feb 2020 12:50:30 +0800
Subject: [PATCH 52/92] chore: Reference the VS Code icons (#517)

---
 package-lock.json            | 221 ++---------------------------------
 package.json                 |  28 ++---
 resources/dark/endpoint.svg  |   3 -
 resources/dark/refresh.svg   |   4 -
 resources/dark/search.svg    |   3 -
 resources/dark/signin.svg    |   3 -
 resources/light/endpoint.svg |   3 -
 resources/light/refresh.svg  |   4 -
 resources/light/search.svg   |   3 -
 resources/light/signin.svg   |   3 -
 10 files changed, 15 insertions(+), 260 deletions(-)
 delete mode 100644 resources/dark/endpoint.svg
 delete mode 100644 resources/dark/refresh.svg
 delete mode 100644 resources/dark/search.svg
 delete mode 100644 resources/dark/signin.svg
 delete mode 100644 resources/light/endpoint.svg
 delete mode 100644 resources/light/refresh.svg
 delete mode 100644 resources/light/search.svg
 delete mode 100644 resources/light/signin.svg

diff --git a/package-lock.json b/package-lock.json
index 1c03578e..db2741ae 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -58,6 +58,12 @@
             "integrity": "sha512-5vE9WoOOC9/DoD3Zj53UISpM+5tSvh8k0mL4fe2zFI6vO715/W4IQ3EdVUrWVMrFi1/NZhyMvm2iKsDFkEGddQ==",
             "dev": true
         },
+        "@types/vscode": {
+            "version": "1.42.0",
+            "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.42.0.tgz",
+            "integrity": "sha512-ds6TceMsh77Fs0Mq0Vap6Y72JbGWB8Bay4DrnJlf5d9ui2RSe1wis13oQm+XhguOeH1HUfLGzaDAoupTUtgabw==",
+            "dev": true
+        },
         "abab": {
             "version": "1.0.4",
             "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz",
@@ -79,15 +85,6 @@
                 "acorn": "^2.1.0"
             }
         },
-        "agent-base": {
-            "version": "4.2.1",
-            "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz",
-            "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==",
-            "dev": true,
-            "requires": {
-                "es6-promisify": "^5.0.0"
-            }
-        },
         "ajv": {
             "version": "6.9.1",
             "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz",
@@ -218,18 +215,6 @@
                 "concat-map": "0.0.1"
             }
         },
-        "browser-stdout": {
-            "version": "1.3.0",
-            "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz",
-            "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=",
-            "dev": true
-        },
-        "buffer-from": {
-            "version": "1.1.1",
-            "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
-            "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
-            "dev": true
-        },
         "builtin-modules": {
             "version": "1.1.1",
             "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
@@ -400,15 +385,6 @@
                 "assert-plus": "^1.0.0"
             }
         },
-        "debug": {
-            "version": "3.1.0",
-            "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
-            "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
-            "dev": true,
-            "requires": {
-                "ms": "2.0.0"
-            }
-        },
         "decamelize": {
             "version": "1.2.0",
             "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
@@ -497,21 +473,6 @@
             "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
             "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
         },
-        "es6-promise": {
-            "version": "4.2.6",
-            "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.6.tgz",
-            "integrity": "sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q==",
-            "dev": true
-        },
-        "es6-promisify": {
-            "version": "5.0.0",
-            "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
-            "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
-            "dev": true,
-            "requires": {
-                "es6-promise": "^4.0.3"
-            }
-        },
         "escape-string-regexp": {
             "version": "1.0.5",
             "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
@@ -669,12 +630,6 @@
             "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
             "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA=="
         },
-        "growl": {
-            "version": "1.10.3",
-            "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.3.tgz",
-            "integrity": "sha512-hKlsbA5Vu3xsh1Cg3J7jSmX/WaW6A5oBeqzM88oNbCRQFz+zUaXm6yxS4RVytp1scBoJzSYl4YAEOQIt6O8V1Q==",
-            "dev": true
-        },
         "har-schema": {
             "version": "2.0.0",
             "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
@@ -732,16 +687,6 @@
                 }
             }
         },
-        "http-proxy-agent": {
-            "version": "2.1.0",
-            "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz",
-            "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==",
-            "dev": true,
-            "requires": {
-                "agent-base": "4",
-                "debug": "3.1.0"
-            }
-        },
         "http-signature": {
             "version": "1.2.0",
             "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
@@ -752,27 +697,6 @@
                 "sshpk": "^1.7.0"
             }
         },
-        "https-proxy-agent": {
-            "version": "2.2.4",
-            "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz",
-            "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==",
-            "dev": true,
-            "requires": {
-                "agent-base": "^4.3.0",
-                "debug": "^3.1.0"
-            },
-            "dependencies": {
-                "agent-base": {
-                    "version": "4.3.0",
-                    "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz",
-                    "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==",
-                    "dev": true,
-                    "requires": {
-                        "es6-promisify": "^5.0.0"
-                    }
-                }
-            }
-        },
         "i": {
             "version": "0.3.6",
             "resolved": "https://registry.npmjs.org/i/-/i-0.3.6.tgz",
@@ -1050,84 +974,11 @@
                 "minimist": "0.0.8"
             }
         },
-        "mocha": {
-            "version": "4.1.0",
-            "resolved": "https://registry.npmjs.org/mocha/-/mocha-4.1.0.tgz",
-            "integrity": "sha512-0RVnjg1HJsXY2YFDoTNzcc1NKhYuXKRrBAG2gDygmJJA136Cs2QlRliZG1mA0ap7cuaT30mw16luAeln+4RiNA==",
-            "dev": true,
-            "requires": {
-                "browser-stdout": "1.3.0",
-                "commander": "2.11.0",
-                "debug": "3.1.0",
-                "diff": "3.3.1",
-                "escape-string-regexp": "1.0.5",
-                "glob": "7.1.2",
-                "growl": "1.10.3",
-                "he": "1.1.1",
-                "mkdirp": "0.5.1",
-                "supports-color": "4.4.0"
-            },
-            "dependencies": {
-                "commander": {
-                    "version": "2.11.0",
-                    "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz",
-                    "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==",
-                    "dev": true
-                },
-                "diff": {
-                    "version": "3.3.1",
-                    "resolved": "https://registry.npmjs.org/diff/-/diff-3.3.1.tgz",
-                    "integrity": "sha512-MKPHZDMB0o6yHyDryUOScqZibp914ksXwAMYMTHj6KO8UeKsRYNJD3oNCKjTqZon+V488P7N/HzXF8t7ZR95ww==",
-                    "dev": true
-                },
-                "glob": {
-                    "version": "7.1.2",
-                    "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz",
-                    "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==",
-                    "dev": true,
-                    "requires": {
-                        "fs.realpath": "^1.0.0",
-                        "inflight": "^1.0.4",
-                        "inherits": "2",
-                        "minimatch": "^3.0.4",
-                        "once": "^1.3.0",
-                        "path-is-absolute": "^1.0.0"
-                    }
-                },
-                "has-flag": {
-                    "version": "2.0.0",
-                    "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
-                    "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=",
-                    "dev": true
-                },
-                "he": {
-                    "version": "1.1.1",
-                    "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz",
-                    "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=",
-                    "dev": true
-                },
-                "supports-color": {
-                    "version": "4.4.0",
-                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.4.0.tgz",
-                    "integrity": "sha512-rKC3+DyXWgK0ZLKwmRsrkyHVZAjNkfzeehuFWdGGcqGDTZFH73+RH6S/RDAAxl9GusSjZSUWYLmT9N5pzXFOXQ==",
-                    "dev": true,
-                    "requires": {
-                        "has-flag": "^2.0.0"
-                    }
-                }
-            }
-        },
         "moment": {
             "version": "2.24.0",
             "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz",
             "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg=="
         },
-        "ms": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
-            "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
-            "dev": true
-        },
         "mute-stream": {
             "version": "0.0.8",
             "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
@@ -1384,12 +1235,6 @@
             "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
             "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
         },
-        "querystringify": {
-            "version": "2.1.1",
-            "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.1.1.tgz",
-            "integrity": "sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA==",
-            "dev": true
-        },
         "read": {
             "version": "1.0.7",
             "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
@@ -1467,12 +1312,6 @@
             "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
             "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
         },
-        "requires-port": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
-            "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=",
-            "dev": true
-        },
         "resolve": {
             "version": "1.10.0",
             "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz",
@@ -1556,17 +1395,8 @@
         "source-map": {
             "version": "0.6.1",
             "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-            "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
-        },
-        "source-map-support": {
-            "version": "0.5.12",
-            "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz",
-            "integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==",
-            "dev": true,
-            "requires": {
-                "buffer-from": "^1.0.0",
-                "source-map": "^0.6.0"
-            }
+            "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+            "optional": true
         },
         "sprintf-js": {
             "version": "1.0.3",
@@ -1751,16 +1581,6 @@
                 "punycode": "^2.1.0"
             }
         },
-        "url-parse": {
-            "version": "1.4.6",
-            "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.6.tgz",
-            "integrity": "sha512-/B8AD9iQ01seoXmXf9z/MjLZQIdOoYl/+gvsQF6+mpnxaTfG9P7srYaiqaDMyKkR36XMXfhqSHss5MyFAO8lew==",
-            "dev": true,
-            "requires": {
-                "querystringify": "^2.0.0",
-                "requires-port": "^1.0.0"
-            }
-        },
         "utile": {
             "version": "0.3.0",
             "resolved": "https://registry.npmjs.org/utile/-/utile-0.3.0.tgz",
@@ -1816,31 +1636,6 @@
                 "yargs": "12.0.4"
             }
         },
-        "vscode": {
-            "version": "1.1.33",
-            "resolved": "https://registry.npmjs.org/vscode/-/vscode-1.1.33.tgz",
-            "integrity": "sha512-sXedp2oF6y4ZvqrrFiZpeMzaCLSWV+PpYkIxjG/iYquNZ9KrLL2LujltGxPLvzn49xu2sZkyC+avVNFgcJD1Iw==",
-            "dev": true,
-            "requires": {
-                "glob": "^7.1.2",
-                "mocha": "^4.0.1",
-                "request": "^2.88.0",
-                "semver": "^5.4.1",
-                "source-map-support": "^0.5.0",
-                "url-parse": "^1.4.4",
-                "vscode-test": "^0.1.4"
-            }
-        },
-        "vscode-test": {
-            "version": "0.1.5",
-            "resolved": "https://registry.npmjs.org/vscode-test/-/vscode-test-0.1.5.tgz",
-            "integrity": "sha512-s+lbF1Dtasc0yXVB9iQTexBe2JK6HJAUJe3fWezHKIjq+xRw5ZwCMEMBaonFIPy7s95qg2HPTRDR5W4h4kbxGw==",
-            "dev": true,
-            "requires": {
-                "http-proxy-agent": "^2.1.0",
-                "https-proxy-agent": "^2.2.1"
-            }
-        },
         "wcwidth": {
             "version": "1.0.1",
             "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
diff --git a/package.json b/package.json
index ea64b44d..9ec411af 100644
--- a/package.json
+++ b/package.json
@@ -8,7 +8,7 @@
     "license": "MIT",
     "icon": "resources/LeetCode.png",
     "engines": {
-        "vscode": "^1.30.1"
+        "vscode": "^1.42.0"
     },
     "repository": {
         "type": "git",
@@ -52,19 +52,13 @@
                 "command": "leetcode.toggleLeetCodeCn",
                 "title": "Switch Endpoint",
                 "category": "LeetCode",
-                "icon": {
-                    "light": "resources/light/endpoint.svg",
-                    "dark": "resources/dark/endpoint.svg"
-                }
+                "icon": "$(globe)"
             },
             {
                 "command": "leetcode.signin",
                 "title": "Sign In",
                 "category": "LeetCode",
-                "icon": {
-                    "light": "resources/light/signin.svg",
-                    "dark": "resources/dark/signin.svg"
-                }
+                "icon": "$(sign-in)"
             },
             {
                 "command": "leetcode.signout",
@@ -80,10 +74,7 @@
                 "command": "leetcode.refreshExplorer",
                 "title": "Refresh",
                 "category": "LeetCode",
-                "icon": {
-                    "light": "resources/light/refresh.svg",
-                    "dark": "resources/dark/refresh.svg"
-                }
+                "icon": "$(refresh)"
             },
             {
                 "command": "leetcode.pickOne",
@@ -104,10 +95,7 @@
                 "command": "leetcode.searchProblem",
                 "title": "Search Problem",
                 "category": "LeetCode",
-                "icon": {
-                    "light": "resources/light/search.svg",
-                    "dark": "resources/dark/search.svg"
-                }
+                "icon": "$(search)"
             },
             {
                 "command": "leetcode.showSolution",
@@ -660,8 +648,6 @@
         "vscode:prepublish": "npm run compile",
         "compile": "tsc -p ./",
         "watch": "tsc -watch -p ./",
-        "postinstall": "node ./node_modules/vscode/bin/install",
-        "test": "npm run compile && node ./node_modules/vscode/bin/test",
         "lint": "tslint --project tsconfig.json -e src/*.d.ts -t verbose"
     },
     "devDependencies": {
@@ -671,10 +657,10 @@
         "@types/markdown-it": "0.0.7",
         "@types/mocha": "^2.2.42",
         "@types/node": "^7.0.43",
+        "@types/vscode": "1.42.0",
         "@types/require-from-string": "^1.2.0",
         "tslint": "^5.9.1",
-        "typescript": "^2.6.1",
-        "vscode": "^1.1.33"
+        "typescript": "^2.6.1"
     },
     "dependencies": {
         "fs-extra": "^6.0.1",
diff --git a/resources/dark/endpoint.svg b/resources/dark/endpoint.svg
deleted file mode 100644
index 1ff60a53..00000000
--- a/resources/dark/endpoint.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path fill-rule="evenodd" clip-rule="evenodd" d="M8.5 1C9.78557 1 11.0423 1.38123 12.1112 2.09546C13.1801 2.80969 14.0132 3.82483 14.5052 5.01257C14.8972 5.95898 15.0586 6.98108 14.9811 7.99524C14.8962 9.10645 14.5267 10.1801 13.9046 11.1112C13.1903 12.1802 12.1752 13.0133 10.9874 13.5052C9.79973 13.9972 8.4928 14.126 7.23192 13.8751C5.97104 13.6243 4.81285 13.0052 3.90381 12.0962C2.99476 11.1871 2.3757 10.0289 2.12489 8.76807C1.8741 7.5072 2.00282 6.20032 2.49478 5.01257C2.98675 3.82483 3.81987 2.80969 4.88879 2.09546C5.95772 1.38123 7.21443 1 8.5 1ZM13.394 5C12.7527 3.75281 11.6613 2.79626 10.3412 2.32373C10.7845 3.16357 11.106 4.0647 11.294 5H13.394ZM13.9765 7.99524C13.9918 7.83081 13.9997 7.66553 14 7.5C13.999 6.99255 13.9273 6.48767 13.787 6H11.445C11.477 6.33105 11.5 6.66406 11.5 7C11.4997 7.12598 11.4971 7.25195 11.4921 7.37769C11.4917 7.38623 11.4914 7.39417 11.4911 7.40271C11.4834 7.58289 11.4709 7.76331 11.4536 7.94263C11.4192 8.29749 11.366 8.65039 11.294 9H13.787C13.8815 8.67139 13.9449 8.33496 13.9765 7.99524ZM10.4408 7.99524C10.4428 7.97815 10.4447 7.96106 10.4466 7.94397C10.4808 7.63074 10.4987 7.31567 10.5 7C10.4933 6.66553 10.4679 6.33167 10.424 6H6.576C6.53207 6.33167 6.5067 6.66553 6.5 7C6.50274 7.67334 6.5809 8.34412 6.733 9H10.267C10.3439 8.66833 10.4019 8.33289 10.4408 7.99524ZM10.249 5C10.1607 4.60352 10.0465 4.21399 9.90597 3.83447C9.67117 3.2019 9.36551 2.59644 8.994 2.03003C8.83 2.01599 8.666 2 8.5 2C8.39551 2 8.29182 2.00635 8.18843 2.01453C8.12755 2.01929 8.06677 2.02478 8.00599 2.03003L8 2.03918C7.40887 2.94299 6.98573 3.9458 6.75101 5H10.249ZM5.70601 5C5.89779 4.0647 6.22313 3.16174 6.672 2.31897C5.34599 2.78979 4.24946 3.74866 3.606 5H5.70601ZM3.213 6C3.07269 6.48767 3.00101 6.99255 3 7.5C3.00101 8.00745 3.07269 8.51233 3.213 9H5.70601C5.57043 8.34192 5.50142 7.67188 5.5 7C5.5 6.66406 5.52301 6.33105 5.55501 6H3.213ZM5.96701 10H3.60701C3.98501 10.7384 4.52472 11.382 5.18594 11.8829C5.84715 12.3838 6.61285 12.729 7.42601 12.8931C6.78598 12.0142 6.2932 11.0371 5.96701 10ZM8.5 12.644C9.13943 11.8531 9.63927 10.959 9.97799 10H7.022C7.36075 10.959 7.86058 11.8531 8.5 12.644ZM11.033 10C10.7068 11.0371 10.214 12.0142 9.574 12.8931C10.3872 12.729 11.1528 12.3838 11.8141 11.8829C12.4753 11.382 13.015 10.7384 13.393 10H11.033Z" fill="#C5C5C5"/>
-</svg>
diff --git a/resources/dark/refresh.svg b/resources/dark/refresh.svg
deleted file mode 100644
index 0442b2af..00000000
--- a/resources/dark/refresh.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path fill-rule="evenodd" clip-rule="evenodd" d="M5.56253 2.5158C3.46348 3.45013 2 5.55417 2 8.00002C2 11.3137 4.68629 14 8 14C11.3137 14 14 11.3137 14 8.00002C14 5.32522 12.2497 3.05922 9.83199 2.28485L9.52968 3.23835C11.5429 3.88457 13 5.77213 13 8.00002C13 10.7614 10.7614 13 8 13C5.23858 13 3 10.7614 3 8.00002C3 6.31107 3.83742 4.8177 5.11969 3.91248L5.56253 2.5158Z" fill="#C5C5C5"/>
-<path fill-rule="evenodd" clip-rule="evenodd" d="M5 3H2V2H5.5L6 2.5V6H5V3Z" fill="#C5C5C5"/>
-</svg>
diff --git a/resources/dark/search.svg b/resources/dark/search.svg
deleted file mode 100644
index e329b2d7..00000000
--- a/resources/dark/search.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M15.25 1.02546e-06C13.6605 -0.000791296 12.1046 0.457574 10.7694 1.32007C9.43422 2.18256 8.37657 3.4124 7.72375 4.8617C7.07094 6.31099 6.85077 7.91801 7.0896 9.4895C7.32843 11.061 8.01604 12.5301 9.06995 13.72L1 22.88L2.12 23.88L10.17 14.76C11.2055 15.5693 12.4192 16.1196 13.7103 16.365C15.0014 16.6104 16.3325 16.5437 17.5927 16.1707C18.8528 15.7976 20.0055 15.1288 20.955 14.2201C21.9044 13.3114 22.623 12.1891 23.0509 10.9465C23.4789 9.70396 23.6038 8.37703 23.4153 7.07642C23.2267 5.77581 22.7302 4.53915 21.967 3.46924C21.2039 2.39933 20.1962 1.52711 19.0278 0.925416C17.8595 0.323719 16.5642 0.00991516 15.25 0.0100108V1.02546e-06ZM15.25 15C13.915 15 12.6099 14.6041 11.4999 13.8624C10.3898 13.1207 9.52469 12.0665 9.01379 10.8331C8.5029 9.59973 8.36919 8.24248 8.62964 6.93311C8.89009 5.62373 9.53305 4.42106 10.4771 3.47705C11.4211 2.53305 12.6237 1.89009 13.9331 1.62964C15.2425 1.36919 16.5997 1.5029 17.8331 2.01379C19.0665 2.52469 20.1207 3.38985 20.8624 4.49988C21.6041 5.60991 22 6.91498 22 8.25C22 10.0402 21.2888 11.7571 20.0229 13.023C18.7571 14.2888 17.0402 15 15.25 15V15Z" fill="#C5C5C5"/>
-</svg>
diff --git a/resources/dark/signin.svg b/resources/dark/signin.svg
deleted file mode 100644
index 2b96bb18..00000000
--- a/resources/dark/signin.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path fill-rule="evenodd" clip-rule="evenodd" d="M11.02 3.77L11.03 3.76L12.02 4.75V2.5L11.52 2H2.52001L2.01001 2.5V2.99301L2 3.00003V13.29L2.36 13.75L7.36 15.47L8 15V14H11.52L12.02 13.5V11.25L11.02 12.25V13H8V4.71003L7.67 4.25003L4.03619 3H7.01001H11.02V3.77ZM7 14.28L3 12.94V3.72003L7 5.06003V14.28ZM10.09 7.53005H15.06V8.53005H10.13L11.72 10.1301L11.01 10.8301L8.53998 8.37005V7.66005L11.03 5.18005L11.73 5.88005L10.09 7.53005Z" fill="#C5C5C5"/>
-</svg>
diff --git a/resources/light/endpoint.svg b/resources/light/endpoint.svg
deleted file mode 100644
index 91ad34f8..00000000
--- a/resources/light/endpoint.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path fill-rule="evenodd" clip-rule="evenodd" d="M8.5 1C9.78557 1 11.0423 1.38123 12.1112 2.09546C13.1801 2.80969 14.0132 3.82483 14.5052 5.01257C14.8972 5.95898 15.0586 6.98108 14.9811 7.99524C14.8962 9.10645 14.5267 10.1801 13.9046 11.1112C13.1903 12.1802 12.1752 13.0133 10.9874 13.5052C9.79973 13.9972 8.4928 14.126 7.23192 13.8751C5.97104 13.6243 4.81285 13.0052 3.90381 12.0962C2.99476 11.1871 2.3757 10.0289 2.12489 8.76807C1.8741 7.5072 2.00282 6.20032 2.49478 5.01257C2.98675 3.82483 3.81987 2.80969 4.88879 2.09546C5.95772 1.38123 7.21443 1 8.5 1ZM13.394 5C12.7527 3.75281 11.6613 2.79626 10.3412 2.32373C10.7845 3.16357 11.106 4.0647 11.294 5H13.394ZM13.9765 7.99524C13.9918 7.83081 13.9997 7.66553 14 7.5C13.999 6.99255 13.9273 6.48767 13.787 6H11.445C11.477 6.33105 11.5 6.66406 11.5 7C11.4997 7.12598 11.4971 7.25195 11.4921 7.37769C11.4917 7.38623 11.4914 7.39417 11.4911 7.40271C11.4834 7.58289 11.4709 7.76331 11.4536 7.94263C11.4192 8.29749 11.366 8.65039 11.294 9H13.787C13.8815 8.67139 13.9449 8.33496 13.9765 7.99524ZM10.4408 7.99524C10.4428 7.97815 10.4447 7.96106 10.4466 7.94397C10.4808 7.63074 10.4987 7.31567 10.5 7C10.4933 6.66553 10.4679 6.33167 10.424 6H6.576C6.53207 6.33167 6.5067 6.66553 6.5 7C6.50274 7.67334 6.5809 8.34412 6.733 9H10.267C10.3439 8.66833 10.4019 8.33289 10.4408 7.99524ZM10.249 5C10.1607 4.60352 10.0465 4.21399 9.90597 3.83447C9.67117 3.2019 9.36551 2.59644 8.994 2.03003C8.83 2.01599 8.666 2 8.5 2C8.39551 2 8.29182 2.00635 8.18843 2.01453C8.12755 2.01929 8.06677 2.02478 8.00599 2.03003L8 2.03918C7.40887 2.94299 6.98573 3.9458 6.75101 5H10.249ZM5.70601 5C5.89779 4.0647 6.22313 3.16174 6.672 2.31897C5.34599 2.78979 4.24946 3.74866 3.606 5H5.70601ZM3.213 6C3.07269 6.48767 3.00101 6.99255 3 7.5C3.00101 8.00745 3.07269 8.51233 3.213 9H5.70601C5.57043 8.34192 5.50142 7.67188 5.5 7C5.5 6.66406 5.52301 6.33105 5.55501 6H3.213ZM5.96701 10H3.60701C3.98501 10.7384 4.52472 11.382 5.18594 11.8829C5.84715 12.3838 6.61285 12.729 7.42601 12.8931C6.78598 12.0142 6.2932 11.0371 5.96701 10ZM8.5 12.644C9.13943 11.8531 9.63927 10.959 9.97799 10H7.022C7.36075 10.959 7.86058 11.8531 8.5 12.644ZM11.033 10C10.7068 11.0371 10.214 12.0142 9.574 12.8931C10.3872 12.729 11.1528 12.3838 11.8141 11.8829C12.4753 11.382 13.015 10.7384 13.393 10H11.033Z" fill="#424242"/>
-</svg>
diff --git a/resources/light/refresh.svg b/resources/light/refresh.svg
deleted file mode 100644
index 8ade09df..00000000
--- a/resources/light/refresh.svg
+++ /dev/null
@@ -1,4 +0,0 @@
-<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path fill-rule="evenodd" clip-rule="evenodd" d="M5.56253 2.5158C3.46348 3.45013 2 5.55417 2 8.00002C2 11.3137 4.68629 14 8 14C11.3137 14 14 11.3137 14 8.00002C14 5.32522 12.2497 3.05922 9.83199 2.28485L9.52968 3.23835C11.5429 3.88457 13 5.77213 13 8.00002C13 10.7614 10.7614 13 8 13C5.23858 13 3 10.7614 3 8.00002C3 6.31107 3.83742 4.8177 5.11969 3.91248L5.56253 2.5158Z" fill="#424242"/>
-<path fill-rule="evenodd" clip-rule="evenodd" d="M5 3H2V2H5.5L6 2.5V6H5V3Z" fill="#424242"/>
-</svg>
diff --git a/resources/light/search.svg b/resources/light/search.svg
deleted file mode 100644
index fa629e10..00000000
--- a/resources/light/search.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M15.25 1.02546e-06C13.6605 -0.000791296 12.1046 0.457574 10.7694 1.32007C9.43422 2.18256 8.37657 3.4124 7.72375 4.8617C7.07094 6.31099 6.85077 7.91801 7.0896 9.4895C7.32843 11.061 8.01604 12.5301 9.06995 13.72L1 22.88L2.12 23.88L10.17 14.76C11.2055 15.5693 12.4192 16.1196 13.7103 16.365C15.0014 16.6104 16.3325 16.5437 17.5927 16.1707C18.8528 15.7976 20.0055 15.1288 20.955 14.2201C21.9044 13.3114 22.623 12.1891 23.0509 10.9465C23.4789 9.70396 23.6038 8.37703 23.4153 7.07642C23.2267 5.77581 22.7302 4.53915 21.967 3.46924C21.2039 2.39933 20.1962 1.52711 19.0278 0.925416C17.8595 0.323719 16.5642 0.00991516 15.25 0.0100108V1.02546e-06ZM15.25 15C13.915 15 12.6099 14.6041 11.4999 13.8624C10.3898 13.1207 9.52469 12.0665 9.01379 10.8331C8.5029 9.59973 8.36919 8.24248 8.62964 6.93311C8.89009 5.62373 9.53305 4.42106 10.4771 3.47705C11.4211 2.53305 12.6237 1.89009 13.9331 1.62964C15.2425 1.36919 16.5997 1.5029 17.8331 2.01379C19.0665 2.52469 20.1207 3.38985 20.8624 4.49988C21.6041 5.60991 22 6.91498 22 8.25C22 10.0402 21.2888 11.7571 20.0229 13.023C18.7571 14.2888 17.0402 15 15.25 15V15Z" fill="#424242"/>
-</svg>
diff --git a/resources/light/signin.svg b/resources/light/signin.svg
deleted file mode 100644
index c7033f31..00000000
--- a/resources/light/signin.svg
+++ /dev/null
@@ -1,3 +0,0 @@
-<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path fill-rule="evenodd" clip-rule="evenodd" d="M11.02 3.77L11.03 3.76L12.02 4.75V2.5L11.52 2H2.52001L2.01001 2.5V2.99301L2 3.00003V13.29L2.36 13.75L7.36 15.47L8 15V14H11.52L12.02 13.5V11.25L11.02 12.25V13H8V4.71003L7.67 4.25003L4.03619 3H7.01001H11.02V3.77ZM7 14.28L3 12.94V3.72003L7 5.06003V14.28ZM10.09 7.53005H15.06V8.53005H10.13L11.72 10.1301L11.01 10.8301L8.53998 8.37005V7.66005L11.03 5.18005L11.73 5.88005L10.09 7.53005Z" fill="#424242"/>
-</svg>

From d160d1ffccf31c270233a2d602b4d0563ffdd6cc Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Sat, 22 Feb 2020 14:04:53 +0800
Subject: [PATCH 53/92] chore: Prepare for 0.16.1 (#518)

---
 CHANGELOG.md      | 7 +++++++
 package-lock.json | 2 +-
 package.json      | 2 +-
 3 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6a57ff0f..bb9c73be 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,13 @@ All notable changes to the "leetcode" extension will be documented in this file.
 
 Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
 
+## [0.16.1]
+### Added
+- Can show the problem in current workspace even if it's not a LeetCode workspace [#373](https://github.com/jdneo/vscode-leetcode/issues/373)
+
+### Fixed
+[Bugs fixed](https://github.com/jdneo/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.16.1+is%3Aclosed+label%3Abug)
+
 ## [0.16.0]
 ### Added
 - Support GitHub login and LinkedIn login [PR#496](https://github.com/jdneo/vscode-leetcode/pull/496)
diff --git a/package-lock.json b/package-lock.json
index db2741ae..0a555853 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
 {
     "name": "vscode-leetcode",
-    "version": "0.16.0",
+    "version": "0.16.1",
     "lockfileVersion": 1,
     "requires": true,
     "dependencies": {
diff --git a/package.json b/package.json
index 9ec411af..59c5927b 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
     "name": "vscode-leetcode",
     "displayName": "LeetCode",
     "description": "Solve LeetCode problems in VS Code",
-    "version": "0.16.0",
+    "version": "0.16.1",
     "author": "Sheng Chen",
     "publisher": "shengchen",
     "license": "MIT",

From ac9df4d03ec4509310f89bdb7128da2077a9de15 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Sun, 23 Feb 2020 12:04:55 +0800
Subject: [PATCH 54/92] Better config how to show the problem description
 (#519)

---
 package.json              | 19 ++++++++++++++++++-
 src/commands/show.ts      | 26 +++++++++++++++-----------
 src/leetCodeExecutor.ts   |  4 ++--
 src/shared.ts             |  7 +++++++
 src/utils/settingUtils.ts | 39 +++++++++++++++++++++++++++++++++++++++
 5 files changed, 81 insertions(+), 14 deletions(-)

diff --git a/package.json b/package.json
index 59c5927b..6397ef3a 100644
--- a/package.json
+++ b/package.json
@@ -300,11 +300,28 @@
                         "scope": "application",
                         "description": "Default language for solving the problems."
                     },
+                    "leetcode.showDescription": {
+                        "type": "string",
+                        "default": "In Webview",
+                        "enum": [
+                            "In Webview",
+                            "In File Comment",
+                            "Both",
+                            "None"
+                        ],
+                        "enumDescriptions": [
+                            "Show the problem description in a new webview window",
+                            "Show the problem description in the file's comment"
+                        ],
+                        "scope": "application",
+                        "description": "Specify where to show the description."
+                    },
                     "leetcode.showCommentDescription": {
                         "type": "boolean",
                         "default": false,
                         "scope": "application",
-                        "description": "Include problem description in comments."
+                        "description": "[Deprecated] Include problem description in comments.",
+                        "deprecationMessage": "This setting will be deprecated in 0.17.0, please use 'leetcode.showDescription' instead"
                     },
                     "leetcode.hint.setDefaultLanguage": {
                         "type": "boolean",
diff --git a/src/commands/show.ts b/src/commands/show.ts
index 3de4f89a..1265e6f7 100644
--- a/src/commands/show.ts
+++ b/src/commands/show.ts
@@ -12,6 +12,8 @@ import { leetCodeExecutor } from "../leetCodeExecutor";
 import { leetCodeManager } from "../leetCodeManager";
 import { IProblem, IQuickItemEx, languages, ProblemState } from "../shared";
 import { genFileExt, genFileName, getNodeIdFromFile } from "../utils/problemUtils";
+import * as settingUtils from "../utils/settingUtils";
+import { IDescriptionConfiguration } from "../utils/settingUtils";
 import { DialogOptions, DialogType, openSettingsEditor, promptForOpenOutputChannel, promptForSignIn, promptHintMessage } from "../utils/uiUtils";
 import { getActiveFilePath, selectWorkspaceFolder } from "../utils/workspaceUtils";
 import * as wsl from "../utils/wslUtils";
@@ -166,28 +168,30 @@ async function showProblemInternal(node: IProblem): Promise<void> {
 
         finalPath = wsl.useWsl() ? await wsl.toWinPath(finalPath) : finalPath;
 
-        await leetCodeExecutor.showProblem(node, language, finalPath, leetCodeConfig.get<boolean>("showCommentDescription"));
-        await Promise.all([
+        const descriptionConfig: IDescriptionConfiguration = settingUtils.getDescriptionConfiguration();
+        await leetCodeExecutor.showProblem(node, language, finalPath, descriptionConfig.showInComment);
+        const promises: any[] = [
             vscode.window.showTextDocument(vscode.Uri.file(finalPath), { preview: false, viewColumn: vscode.ViewColumn.One }),
-            movePreviewAsideIfNeeded(node),
             promptHintMessage(
                 "hint.commentDescription",
-                'You can generate the code file with problem description in the comments by enabling "leetcode.showCommentDescription".',
+                'You can config how to show the problem description through "leetcode.showDescription".',
                 "Open settings",
-                (): Promise<any> => openSettingsEditor("leetcode.showCommentDescription"),
+                (): Promise<any> => openSettingsEditor("leetcode.showDescription"),
             ),
-        ]);
+        ];
+        if (descriptionConfig.showInWebview) {
+            promises.push(showDescriptionView(node));
+        }
+
+        await Promise.all(promises);
     } catch (error) {
         await promptForOpenOutputChannel(`${error} Please open the output channel for details.`, DialogType.error);
     }
 }
 
-async function movePreviewAsideIfNeeded(node: IProblem): Promise<void> {
-    if (vscode.workspace.getConfiguration("leetcode").get<boolean>("enableSideMode", true)) {
-        return previewProblem(node, true);
-    }
+async function showDescriptionView(node: IProblem): Promise<void> {
+    return previewProblem(node, vscode.workspace.getConfiguration("leetcode").get<boolean>("enableSideMode", true));
 }
-
 async function parseProblemsToPicks(p: Promise<IProblem[]>): Promise<Array<IQuickItemEx<IProblem>>> {
     return new Promise(async (resolve: (res: Array<IQuickItemEx<IProblem>>) => void): Promise<void> => {
         const picks: Array<IQuickItemEx<IProblem>> = (await p).map((problem: IProblem) => Object.assign({}, {
diff --git a/src/leetCodeExecutor.ts b/src/leetCodeExecutor.ts
index 271ca9a4..4c0aa312 100644
--- a/src/leetCodeExecutor.ts
+++ b/src/leetCodeExecutor.ts
@@ -86,8 +86,8 @@ class LeetCodeExecutor implements Disposable {
         );
     }
 
-    public async showProblem(problemNode: IProblem, language: string, filePath: string, detailed: boolean = false): Promise<void> {
-        const templateType: string = detailed ? "-cx" : "-c";
+    public async showProblem(problemNode: IProblem, language: string, filePath: string, showDescriptionInComment: boolean = false): Promise<void> {
+        const templateType: string = showDescriptionInComment ? "-cx" : "-c";
 
         if (!await fse.pathExists(filePath)) {
             await fse.createFile(filePath);
diff --git a/src/shared.ts b/src/shared.ts
index 5f1039e4..d9d156d8 100644
--- a/src/shared.ts
+++ b/src/shared.ts
@@ -105,3 +105,10 @@ export const supportedPlugins: string[] = [
     "solution.discuss",
     "leetcode.cn",
 ];
+
+export enum DescriptionConfiguration {
+    InWebView = "In Webview",
+    InFileComment = "In File Comment",
+    Both = "Both",
+    None = "None",
+}
diff --git a/src/utils/settingUtils.ts b/src/utils/settingUtils.ts
index 388f31b8..8c94a95f 100644
--- a/src/utils/settingUtils.ts
+++ b/src/utils/settingUtils.ts
@@ -2,6 +2,7 @@
 // Licensed under the MIT license.
 
 import { workspace, WorkspaceConfiguration } from "vscode";
+import { DescriptionConfiguration } from "../shared";
 
 export function getWorkspaceConfiguration(): WorkspaceConfiguration {
     return workspace.getConfiguration("leetcode");
@@ -18,3 +19,41 @@ export function getWorkspaceFolder(): string {
 export function getEditorShortcuts(): string[] {
     return getWorkspaceConfiguration().get<string[]>("editor.shortcuts", ["submit", "test"]);
 }
+
+export function getDescriptionConfiguration(): IDescriptionConfiguration {
+    const setting: string = getWorkspaceConfiguration().get<string>("showDescription", DescriptionConfiguration.InWebView);
+    const config: IDescriptionConfiguration = {
+        showInComment: false,
+        showInWebview: true,
+    };
+    switch (setting) {
+        case DescriptionConfiguration.Both:
+            config.showInComment = true;
+            config.showInWebview = true;
+            break;
+        case DescriptionConfiguration.None:
+            config.showInComment = false;
+            config.showInWebview = false;
+            break;
+        case DescriptionConfiguration.InFileComment:
+            config.showInComment = true;
+            config.showInWebview = false;
+            break;
+        case DescriptionConfiguration.InWebView:
+            config.showInComment = false;
+            config.showInWebview = true;
+            break;
+    }
+
+    // To be compatible with the deprecated setting:
+    if (getWorkspaceConfiguration().get<boolean>("showCommentDescription")) {
+        config.showInComment = true;
+    }
+
+    return config;
+}
+
+export interface IDescriptionConfiguration {
+    showInComment: boolean;
+    showInWebview: boolean;
+}

From 15c4216badd3080c0845d51ed71e786b6003895e Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Sun, 23 Feb 2020 13:33:45 +0800
Subject: [PATCH 55/92] Remove the deprecated setting: leetcode.enableShortcuts
 (#520)

---
 README.md                          |  1 -
 docs/README_zh-CN.md               |  1 -
 package.json                       |  6 ------
 src/codelens/CodeLensController.ts | 22 +++-------------------
 4 files changed, 3 insertions(+), 27 deletions(-)

diff --git a/README.md b/README.md
index 454a2d46..b5067515 100644
--- a/README.md
+++ b/README.md
@@ -129,7 +129,6 @@ Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround wh
 | `leetcode.filePath`                                                                     | Specify the relative path under the workspace and the file name to save the problem files. More details can be found [here](https://github.com/jdneo/vscode-leetcode/wiki/Customize-the-Relative-Folder-and-the-File-Name-of-the-Problem-File).                                                                                                                                                                                   |                    |
 | **[Deprecated] Use `leetcode.filePath` instead** ~~`leetcode.outputFolder`~~            | ~~Specify the relative path to save the problem files. Besides using customized path, there are also several reserved words which can be used here: <ul><li>`${tag}`: Categorize the problem according to their tags.<li>`${language}`: Categorize the problem according to their language.</li><li>`${difficulty}`: Categorize the problem according to their difficulty.</li></ul>For example: `problem-${tag}-${difficulty}`~~ | ~~N/A~~            |
 | `leetcode.enableStatusBar`                                                              | Specify whether the LeetCode status bar will be shown or not.                                                                                                                                                                                                                                                                                                                                                                     | `true`             |
-| **[Deprecated] Use `leetcode.editor.shortcuts` instead** ~~`leetcode.enableShortcuts`~~ | ~~Specify whether the submit and test shortcuts in editor or not.~~                                                                                                                                                                                                                                                                                                                                                               | ~~`true`~~         |
 | `leetcode.editor.shortcuts`                                                             | Specify the customized shorcuts in editors. Supported values are: `submit`, `test`, `solution` and `description`.                                                                                                                                                                                                                                                                                                                 | `["submit, test"]` |
 | `leetcode.enableSideMode`                                                               | Specify whether `preview`, `solution` and `submission` tab should be grouped into the second editor column when solving a problem.                                                                                                                                                                                                                                                                                                | `true`             |
 | `leetcode.nodePath`                                                                     | Specify the `Node.js` executable path. for example, C:\Program Files\nodejs\node.exe                                                                                                                                                                                                                                                                                                                                              | `node`             |
diff --git a/docs/README_zh-CN.md b/docs/README_zh-CN.md
index d6b3b8f4..d69c62a7 100644
--- a/docs/README_zh-CN.md
+++ b/docs/README_zh-CN.md
@@ -130,7 +130,6 @@
 | `leetcode.filePath`                                                                | 指定生成题目文件的相对文件夹路径名和文件名。点击查看[更多详细用法](https://github.com/jdneo/vscode-leetcode/wiki/%E8%87%AA%E5%AE%9A%E4%B9%89%E9%A2%98%E7%9B%AE%E6%96%87%E4%BB%B6%E7%9A%84%E7%9B%B8%E5%AF%B9%E6%96%87%E4%BB%B6%E5%A4%B9%E8%B7%AF%E5%BE%84%E5%92%8C%E6%96%87%E4%BB%B6%E5%90%8D)。 |                    |
 | **[Deprecated] 请使用 `leetcode.filePath`** ~~`leetcode.outputFolder`~~            | ~~指定保存文件时所用的相对文件夹路径。除了用户自定义路径外,也可以使用保留项,包括:<ul><li>`${tag}`: 根据题目的类别进行分类。<li>`${language}`: 根据题目的语言进行分类。</li><li>`${difficulty}`: 根据题目的难度进行分类。</li></ul>例如:`problem-${tag}-${difficulty}`~~                     | ~~N/A~~            |
 | `leetcode.enableStatusBar`                                                         | 指定是否在 VS Code 下方显示插件状态栏。                                                                                                                                                                                                                                                         | `true`             |
-| **[Deprecated] 请使用 `leetcode.editor.shortcuts`** ~~`leetcode.enableShortcuts`~~ | ~~指定是否在 VS Code 编辑文件下方显示提交和测试的快捷按钮。~~                                                                                                                                                                                                                                   | ~~`true`~~         |
 | `leetcode.editor.shortcuts`                                                        | 指定在编辑器内所自定义的快捷方式。可用的快捷方式有: `submit`, `test`, `solution`, `description`。                                                                                                                                                                                               | `["submit, test"]` |
 | `leetcode.enableSideMode`                                                          | 指定在解决一道题时,是否将`问题预览`、`高票答案`与`提交结果`窗口集中在编辑器的第二栏。                                                                                                                                                                                                          | `true`             |
 | `leetcode.nodePath`                                                                | 指定 `Node.js` 可执行文件的路径。如:C:\Program Files\nodejs\node.exe                                                                                                                                                                                                                           | `node`             |
diff --git a/package.json b/package.json
index 6397ef3a..cc7b9eb1 100644
--- a/package.json
+++ b/package.json
@@ -621,12 +621,6 @@
                         "scope": "application",
                         "description": "Show the LeetCode status bar or not."
                     },
-                    "leetcode.enableShortcuts": {
-                        "type": "boolean",
-                        "default": true,
-                        "scope": "application",
-                        "description": "[Deprecated] Show the submit and test shortcuts in editor or not."
-                    },
                     "leetcode.editor.shortcuts": {
                         "type": "array",
                         "default": [
diff --git a/src/codelens/CodeLensController.ts b/src/codelens/CodeLensController.ts
index 9373df27..8e2fa3c9 100644
--- a/src/codelens/CodeLensController.ts
+++ b/src/codelens/CodeLensController.ts
@@ -1,7 +1,7 @@
 // Copyright (c) jdneo. All rights reserved.
 // Licensed under the MIT license.
 
-import { ConfigurationChangeEvent, Disposable, languages, workspace, WorkspaceConfiguration } from "vscode";
+import { ConfigurationChangeEvent, Disposable, languages, workspace } from "vscode";
 import { CustomCodeLensProvider } from "./CustomCodeLensProvider";
 
 class CodeLensController implements Disposable {
@@ -13,14 +13,12 @@ class CodeLensController implements Disposable {
         this.internalProvider = new CustomCodeLensProvider();
 
         this.configurationChangeListener = workspace.onDidChangeConfiguration((event: ConfigurationChangeEvent) => {
-            if (event.affectsConfiguration("leetcode.enableShortcuts")) {
-                this.setCodeLensVisibility();
-            } else if (event.affectsConfiguration("leetcode.editor.shortcuts")) {
+            if (event.affectsConfiguration("leetcode.editor.shortcuts")) {
                 this.internalProvider.refresh();
             }
         }, this);
 
-        this.setCodeLensVisibility();
+        this.registeredProvider = languages.registerCodeLensProvider({ scheme: "file" }, this.internalProvider);
     }
 
     public dispose(): void {
@@ -29,20 +27,6 @@ class CodeLensController implements Disposable {
         }
         this.configurationChangeListener.dispose();
     }
-
-    private setCodeLensVisibility(): void {
-        if (this.isShortcutsEnabled() && !this.registeredProvider) {
-            this.registeredProvider = languages.registerCodeLensProvider({ scheme: "file" }, this.internalProvider);
-        } else if (!this.isShortcutsEnabled() && this.registeredProvider) {
-            this.registeredProvider.dispose();
-            this.registeredProvider = undefined;
-        }
-    }
-
-    private isShortcutsEnabled(): boolean {
-        const configuration: WorkspaceConfiguration = workspace.getConfiguration();
-        return configuration.get<boolean>("leetcode.enableShortcuts", true);
-    }
 }
 
 export const codeLensController: CodeLensController = new CodeLensController();

From bedd69307944795846db5995167cdb709398758d Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Sun, 23 Feb 2020 14:02:08 +0800
Subject: [PATCH 56/92] Remove the deprecated setting: leetcode.outputFolder
 (#521)

---
 README.md            | 1 -
 docs/README_zh-CN.md | 1 -
 package.json         | 5 -----
 src/commands/show.ts | 4 +---
 4 files changed, 1 insertion(+), 10 deletions(-)

diff --git a/README.md b/README.md
index b5067515..fecddd1b 100644
--- a/README.md
+++ b/README.md
@@ -127,7 +127,6 @@ Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround wh
 | `leetcode.endpoint`                                                                     | Specify the active endpoint. Supported endpoints are: `leetcode`, `leetcode-cn`                                                                                                                                                                                                                                                                                                                                                   | `leetcode`         |
 | `leetcode.workspaceFolder`                                                              | Specify the path of the workspace folder to store the problem files.                                                                                                                                                                                                                                                                                                                                                              | `""`               |
 | `leetcode.filePath`                                                                     | Specify the relative path under the workspace and the file name to save the problem files. More details can be found [here](https://github.com/jdneo/vscode-leetcode/wiki/Customize-the-Relative-Folder-and-the-File-Name-of-the-Problem-File).                                                                                                                                                                                   |                    |
-| **[Deprecated] Use `leetcode.filePath` instead** ~~`leetcode.outputFolder`~~            | ~~Specify the relative path to save the problem files. Besides using customized path, there are also several reserved words which can be used here: <ul><li>`${tag}`: Categorize the problem according to their tags.<li>`${language}`: Categorize the problem according to their language.</li><li>`${difficulty}`: Categorize the problem according to their difficulty.</li></ul>For example: `problem-${tag}-${difficulty}`~~ | ~~N/A~~            |
 | `leetcode.enableStatusBar`                                                              | Specify whether the LeetCode status bar will be shown or not.                                                                                                                                                                                                                                                                                                                                                                     | `true`             |
 | `leetcode.editor.shortcuts`                                                             | Specify the customized shorcuts in editors. Supported values are: `submit`, `test`, `solution` and `description`.                                                                                                                                                                                                                                                                                                                 | `["submit, test"]` |
 | `leetcode.enableSideMode`                                                               | Specify whether `preview`, `solution` and `submission` tab should be grouped into the second editor column when solving a problem.                                                                                                                                                                                                                                                                                                | `true`             |
diff --git a/docs/README_zh-CN.md b/docs/README_zh-CN.md
index d69c62a7..8aced3a8 100644
--- a/docs/README_zh-CN.md
+++ b/docs/README_zh-CN.md
@@ -128,7 +128,6 @@
 | `leetcode.endpoint`                                                                | 指定使用的终端,可用终端有:`leetcode`, `leetcode-cn`                                                                                                                                                                                                                                           | `leetcode`         |
 | `leetcode.workspaceFolder`                                                         | 指定保存文件的工作区目录                                                                                                                                                                                                                                                                        | `""`               |
 | `leetcode.filePath`                                                                | 指定生成题目文件的相对文件夹路径名和文件名。点击查看[更多详细用法](https://github.com/jdneo/vscode-leetcode/wiki/%E8%87%AA%E5%AE%9A%E4%B9%89%E9%A2%98%E7%9B%AE%E6%96%87%E4%BB%B6%E7%9A%84%E7%9B%B8%E5%AF%B9%E6%96%87%E4%BB%B6%E5%A4%B9%E8%B7%AF%E5%BE%84%E5%92%8C%E6%96%87%E4%BB%B6%E5%90%8D)。 |                    |
-| **[Deprecated] 请使用 `leetcode.filePath`** ~~`leetcode.outputFolder`~~            | ~~指定保存文件时所用的相对文件夹路径。除了用户自定义路径外,也可以使用保留项,包括:<ul><li>`${tag}`: 根据题目的类别进行分类。<li>`${language}`: 根据题目的语言进行分类。</li><li>`${difficulty}`: 根据题目的难度进行分类。</li></ul>例如:`problem-${tag}-${difficulty}`~~                     | ~~N/A~~            |
 | `leetcode.enableStatusBar`                                                         | 指定是否在 VS Code 下方显示插件状态栏。                                                                                                                                                                                                                                                         | `true`             |
 | `leetcode.editor.shortcuts`                                                        | 指定在编辑器内所自定义的快捷方式。可用的快捷方式有: `submit`, `test`, `solution`, `description`。                                                                                                                                                                                               | `["submit, test"]` |
 | `leetcode.enableSideMode`                                                          | 指定在解决一道题时,是否将`问题预览`、`高票答案`与`提交结果`窗口集中在编辑器的第二栏。                                                                                                                                                                                                          | `true`             |
diff --git a/package.json b/package.json
index cc7b9eb1..ddc54134 100644
--- a/package.json
+++ b/package.json
@@ -369,11 +369,6 @@
                         "description": "The path of the workspace folder to store the problem files.",
                         "default": ""
                     },
-                    "leetcode.outputFolder": {
-                        "type": "string",
-                        "scope": "application",
-                        "description": "[Deprecated] The output folder to save the problem files."
-                    },
                     "leetcode.filePath": {
                         "type": "object",
                         "scope": "application",
diff --git a/src/commands/show.ts b/src/commands/show.ts
index 1265e6f7..70474426 100644
--- a/src/commands/show.ts
+++ b/src/commands/show.ts
@@ -144,10 +144,8 @@ async function showProblemInternal(node: IProblem): Promise<void> {
             return;
         }
 
-        const outputFolder: string = leetCodeConfig.get<string>("outputFolder", "").trim();
-
         const fileFolder: string = leetCodeConfig
-            .get<string>(`filePath.${language}.folder`, leetCodeConfig.get<string>(`filePath.default.folder`, outputFolder))
+            .get<string>(`filePath.${language}.folder`, leetCodeConfig.get<string>(`filePath.default.folder`, ""))
             .trim();
         const fileName: string = leetCodeConfig
             .get<string>(

From 1835d07495513e6603b721033b28a24ceb75e651 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Sat, 18 Apr 2020 18:20:31 +0800
Subject: [PATCH 57/92] Prepare for 0.16.2 (#541)

---
 CHANGELOG.md      |   9 ++++
 package-lock.json | 123 ++++++++++++++++++++++++++--------------------
 package.json      |   4 +-
 3 files changed, 81 insertions(+), 55 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index bb9c73be..93ccefa0 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,15 @@ All notable changes to the "leetcode" extension will be documented in this file.
 
 Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
 
+## [0.16.2]
+### Added
+- New Category: `Concurrency` [CLI#42](https://github.com/leetcode-tools/leetcode-cli/pull/42)
+- New configuration to better configure how to show the description [#310](https://github.com/jdneo/vscode-leetcode/issues/310)
+
+### Removed
+- Removed the deprecated setting `leetcode.enableShortcuts` [PR#520](https://github.com/jdneo/vscode-leetcode/pull/520)
+- Removed the deprecated setting `leetcode.outputFolder` [PR#521](https://github.com/jdneo/vscode-leetcode/pull/521)
+
 ## [0.16.1]
 ### Added
 - Can show the problem in current workspace even if it's not a LeetCode workspace [#373](https://github.com/jdneo/vscode-leetcode/issues/373)
diff --git a/package-lock.json b/package-lock.json
index 0a555853..0283fca9 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
 {
     "name": "vscode-leetcode",
-    "version": "0.16.1",
+    "version": "0.16.2",
     "lockfileVersion": 1,
     "requires": true,
     "dependencies": {
@@ -86,11 +86,11 @@
             }
         },
         "ajv": {
-            "version": "6.9.1",
-            "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.9.1.tgz",
-            "integrity": "sha512-XDN92U311aINL77ieWHmqCcNlwjoP5cHXDxIxbf2MaPYuCXOHS7gHH8jktxeK5omgd52XbSTX6a4Piwd1pQmzA==",
+            "version": "6.12.0",
+            "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
+            "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
             "requires": {
-                "fast-deep-equal": "^2.0.1",
+                "fast-deep-equal": "^3.1.1",
                 "fast-json-stable-stringify": "^2.0.0",
                 "json-schema-traverse": "^0.4.1",
                 "uri-js": "^4.2.2"
@@ -146,9 +146,9 @@
             "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
         },
         "aws4": {
-            "version": "1.8.0",
-            "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
-            "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="
+            "version": "1.9.1",
+            "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz",
+            "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug=="
         },
         "babel-code-frame": {
             "version": "6.26.0",
@@ -306,9 +306,9 @@
             "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="
         },
         "combined-stream": {
-            "version": "1.0.7",
-            "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
-            "integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
+            "version": "1.0.8",
+            "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+            "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
             "requires": {
                 "delayed-stream": "~1.0.0"
             }
@@ -479,12 +479,12 @@
             "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
         },
         "escodegen": {
-            "version": "1.12.1",
-            "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.12.1.tgz",
-            "integrity": "sha512-Q8t2YZ+0e0pc7NRVj3B4tSQ9rim1oi4Fh46k2xhJ2qOiEwhQfdjyEQddWdj7ZFaKmU+5104vn1qrcjEPWq+bgQ==",
+            "version": "1.14.1",
+            "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz",
+            "integrity": "sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==",
             "optional": true,
             "requires": {
-                "esprima": "^3.1.3",
+                "esprima": "^4.0.1",
                 "estraverse": "^4.2.0",
                 "esutils": "^2.0.2",
                 "optionator": "^0.8.1",
@@ -492,9 +492,9 @@
             }
         },
         "esprima": {
-            "version": "3.1.3",
-            "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
-            "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=",
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+            "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
             "optional": true
         },
         "estraverse": {
@@ -538,14 +538,14 @@
             "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A="
         },
         "fast-deep-equal": {
-            "version": "2.0.1",
-            "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz",
-            "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk="
+            "version": "3.1.1",
+            "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
+            "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA=="
         },
         "fast-json-stable-stringify": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
-            "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+            "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
         },
         "fast-levenshtein": {
             "version": "2.0.6",
@@ -936,16 +936,16 @@
             }
         },
         "mime-db": {
-            "version": "1.38.0",
-            "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz",
-            "integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg=="
+            "version": "1.43.0",
+            "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
+            "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ=="
         },
         "mime-types": {
-            "version": "2.1.22",
-            "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz",
-            "integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==",
+            "version": "2.1.26",
+            "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
+            "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
             "requires": {
-                "mime-db": "~1.38.0"
+                "mime-db": "1.43.0"
             }
         },
         "mimic-fn": {
@@ -967,11 +967,18 @@
             "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
         },
         "mkdirp": {
-            "version": "0.5.1",
-            "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
-            "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+            "version": "0.5.5",
+            "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+            "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
             "requires": {
-                "minimist": "0.0.8"
+                "minimist": "^1.2.5"
+            },
+            "dependencies": {
+                "minimist": {
+                    "version": "1.2.5",
+                    "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+                    "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
+                }
             }
         },
         "moment": {
@@ -1135,9 +1142,9 @@
             "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg=="
         },
         "p-limit": {
-            "version": "2.2.2",
-            "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.2.tgz",
-            "integrity": "sha512-WGR+xHecKTr7EbUEhyLSh5Dube9JtdiG78ufaeLxTgpudf/20KqyMioIUZJAezlTIi6evxuoUs9YXc11cU+yzQ==",
+            "version": "2.3.0",
+            "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+            "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
             "requires": {
                 "p-try": "^2.0.0"
             }
@@ -1212,9 +1219,9 @@
             }
         },
         "psl": {
-            "version": "1.1.31",
-            "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz",
-            "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw=="
+            "version": "1.8.0",
+            "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
+            "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
         },
         "pump": {
             "version": "3.0.0",
@@ -1344,9 +1351,9 @@
             }
         },
         "safe-buffer": {
-            "version": "5.1.2",
-            "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
-            "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
+            "version": "5.2.0",
+            "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
+            "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg=="
         },
         "safer-buffer": {
             "version": "2.1.2",
@@ -1388,9 +1395,9 @@
             "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
         },
         "signal-exit": {
-            "version": "3.0.2",
-            "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz",
-            "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
+            "version": "3.0.3",
+            "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
+            "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
         },
         "source-map": {
             "version": "0.6.1",
@@ -1602,9 +1609,9 @@
             }
         },
         "uuid": {
-            "version": "3.3.2",
-            "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
-            "integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
+            "version": "3.4.0",
+            "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+            "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
         },
         "verror": {
             "version": "1.10.0",
@@ -1617,9 +1624,9 @@
             }
         },
         "vsc-leetcode-cli": {
-            "version": "2.6.22",
-            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.6.22.tgz",
-            "integrity": "sha512-/mKAQtwabtzZfbQlJO9k9qotx7qgtDFZnZ6TkO3NrfUyne2jTXLzDBN+/66fcXUyX5fpxKYBx81icChGRnT7CQ==",
+            "version": "2.6.23",
+            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.6.23.tgz",
+            "integrity": "sha512-icSErC6SFhtR9wNs00yv4UO7MktGgRFKwvNwl5L3Fprchr/iK6C09iUdn60ZsKcKsfTm0eBoLmvSTHZCHM2wXQ==",
             "requires": {
                 "ansi-styles": "3.2.1",
                 "cheerio": "0.20.0",
@@ -1634,6 +1641,16 @@
                 "underscore": "1.9.1",
                 "wordwrap": "1.0.0",
                 "yargs": "12.0.4"
+            },
+            "dependencies": {
+                "mkdirp": {
+                    "version": "0.5.1",
+                    "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
+                    "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
+                    "requires": {
+                        "minimist": "0.0.8"
+                    }
+                }
             }
         },
         "wcwidth": {
diff --git a/package.json b/package.json
index ddc54134..933ce6b6 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
     "name": "vscode-leetcode",
     "displayName": "LeetCode",
     "description": "Solve LeetCode problems in VS Code",
-    "version": "0.16.1",
+    "version": "0.16.2",
     "author": "Sheng Chen",
     "publisher": "shengchen",
     "license": "MIT",
@@ -675,6 +675,6 @@
         "markdown-it": "^8.4.2",
         "require-from-string": "^2.0.2",
         "unescape-js": "^1.1.1",
-        "vsc-leetcode-cli": "2.6.22"
+        "vsc-leetcode-cli": "2.6.23"
     }
 }

From 082876628ceb7b07806c07b6b457014397a98b65 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Wed, 20 May 2020 19:41:37 +0800
Subject: [PATCH 58/92] Update third party notice

---
 thirdpartynotice.txt | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/thirdpartynotice.txt b/thirdpartynotice.txt
index 1f33cded..93c1b0f0 100644
--- a/thirdpartynotice.txt
+++ b/thirdpartynotice.txt
@@ -11,6 +11,7 @@ are grateful to these developers for their contribution to open source.
 4. lodash (https://github.com/lodash/lodash)
 5. markdown-it (https://github.com/markdown-it/markdown-it)
 6. leetcode-cli (https://github.com/skygragon/leetcode-cli)
+7. unescape-js (https://github.com/iamakulov/unescape-js)
 
 fs-extra NOTICES BEGIN HERE
 =============================
@@ -205,3 +206,31 @@ SOFTWARE.
 
 END OF leetcode-cli NOTICES AND INFORMATION
 ==================================
+
+unescape-js NOTICES BEGIN HERE
+=============================
+
+The MIT License (MIT)
+
+Copyright (c) Ivan Akulov <mail@iamakulov.com> (http://iamakulov.com)
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+END OF unescape-js NOTICES AND INFORMATION
+==================================

From 9bf587782fc086ce75fa677ff199f764d939244b Mon Sep 17 00:00:00 2001
From: Jerry Zou <jerry.zry@outlook.com>
Date: Thu, 28 May 2020 14:22:57 +0800
Subject: [PATCH 59/92] chore: replace resources (#561)

---
 resources/LeetCode.png      | Bin 15437 -> 7031 bytes
 resources/LeetCode.svg      |  12 +++++-------
 resources/check.png         | Bin 3057 -> 235 bytes
 resources/dark/dislike.png  | Bin 700 -> 364 bytes
 resources/dark/like.png     | Bin 472 -> 498 bytes
 resources/light/dislike.png | Bin 599 -> 368 bytes
 resources/light/like.png    | Bin 418 -> 521 bytes
 resources/lock.png          | Bin 3160 -> 387 bytes
 resources/x.png             | Bin 3109 -> 225 bytes
 9 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/resources/LeetCode.png b/resources/LeetCode.png
index d068e69789afa0277908230fc9f89c106f5c5487..35461b5fe8c8e60fdd6c1d043047bbaff46b8f54 100644
GIT binary patch
literal 7031
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
V*?5*yDenLP002ovPDHLkV1ldwNeBP{

literal 15437
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%0Ao`s
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
D)Sv-e

diff --git a/resources/LeetCode.svg b/resources/LeetCode.svg
index a3bac1f0..3a80c1b4 100644
--- a/resources/LeetCode.svg
+++ b/resources/LeetCode.svg
@@ -1,11 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<svg width="15px" height="16px" viewBox="0 0 15 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-    <!-- Generator: Sketch 57 (83077) - https://sketch.com -->
-    <title>Combined Shape</title>
-    <desc>Created with Sketch.</desc>
-    <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
-        <g id="Artboard" transform="translate(-439.000000, -612.000000)" fill="#303133" fill-rule="nonzero">
-            <path d="M448.617144,612.16769 C448.808341,612.363282 448.826418,612.663731 448.673533,612.879152 L448.608191,612.955578 L446.15,615.357 L449.894886,619.007259 C450.093972,619.194817 450.124399,619.494266 449.98051,619.715797 L449.918369,619.794848 C449.707367,620.01882 449.354751,620.029333 449.13078,619.818331 L449.13078,619.818331 L445.354,616.136 L440.170212,621.203943 C440.111737,621.261104 440.099007,621.347469 440.132652,621.417331 L440.166592,621.46592 L445.358074,626.829135 C445.415144,626.888093 445.501806,626.90111 445.571922,626.867432 L445.620685,626.833408 L445.623532,626.830592 L449.13805,623.278672 C449.354479,623.05994 449.707246,623.058073 449.925978,623.274502 C450.120407,623.466883 450.143485,623.766988 449.994209,623.984926 L449.930149,624.06243 L446.415631,627.61435 L446.395701,627.634062 C445.914207,628.100138 445.16516,628.119545 444.661422,627.700626 L444.55742,627.604151 L439.365938,622.240936 C438.901478,621.761111 438.880378,621.015175 439.29562,620.511206 L439.391276,620.407102 L447.829256,612.158737 C448.049297,611.94364 448.402047,611.947648 448.617144,612.16769 Z M446.514534,621 L453.485466,621 C453.769635,621 454,621.223858 454,621.5 C454,621.74546 453.817984,621.949608 453.577954,621.991944 L453.485466,622 L446.514534,622 C446.230365,622 446,621.776142 446,621.5 C446,621.25454 446.182016,621.050392 446.422046,621.008056 L446.514534,621 L453.485466,621 Z" id="Combined-Shape"></path>
+<svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <title>LeetCode</title>
+    <g id="LeetCode" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="lc(1)-copy" transform="translate(1.000000, 0.000000)" fill="#303133" fill-rule="nonzero">
+            <path d="M6.88695652,15.9652174 C5.94782609,15.9652174 5.04347826,15.6173913 4.3826087,14.9565217 L1.39130435,12 C1.28695652,11.8956522 1.1826087,11.7913043 1.11304348,11.6869565 C0.417391304,10.8173913 0.139130435,9.70434783 0.382608696,8.66086957 C0.452173913,8.4173913 0.52173913,8.20869565 0.626086957,8 L0.660869565,7.89565217 L0.695652174,7.82608696 L0.730434783,7.75652174 C0.8,7.65217391 0.869565217,7.51304348 0.973913043,7.40869565 C1.04347826,7.33913043 1.11304348,7.23478261 1.1826087,7.16521739 L7.6173913,0.243478261 C7.72173913,0.139130435 7.86086957,0.0695652174 8.03478261,0.0695652174 C8.17391304,0.0695652174 8.31304348,0.139130435 8.4173913,0.208695652 C8.66086957,0.417391304 8.66086957,0.8 8.45217391,1.00869565 L6.53913043,3.06086957 L7.26956522,3.16521739 C7.93043478,3.26956522 8.52173913,3.51304348 9.00869565,3.93043478 L11.4434783,5.91304348 C11.6869565,6.12173913 11.7217391,6.46956522 11.5130435,6.71304348 C11.4086957,6.85217391 11.2347826,6.92173913 11.0608696,6.92173913 C10.9217391,6.92173913 10.8173913,6.88695652 10.7130435,6.7826087 L8.27826087,4.8 C7.82608696,4.45217391 7.23478261,4.24347826 6.60869565,4.24347826 C5.84347826,4.24347826 5.11304348,4.52173913 4.66086957,5.00869565 L1.9826087,7.86086957 C1.42608696,8.48695652 1.25217391,9.35652174 1.56521739,10.1913043 L1.6,10.2956522 C1.73913043,10.6086957 1.94782609,10.9217391 2.19130435,11.1652174 C2.19130435,11.1652174 5.14782609,14.0521739 5.1826087,14.0869565 C5.63478261,14.5391304 6.26086957,14.7826087 6.92173913,14.7826087 C7.5826087,14.7826087 8.20869565,14.5391304 8.66086957,14.0521739 L10.3304348,12.3826087 C10.4347826,12.2782609 10.573913,12.2086957 10.7478261,12.2086957 C10.8869565,12.2086957 11.026087,12.2782609 11.1652174,12.3826087 C11.373913,12.5913043 11.373913,12.973913 11.1652174,13.1826087 L9.49565217,14.8521739 C8.76521739,15.5826087 7.86086957,15.9652174 6.88695652,15.9652174 Z M5.9826087,10.0869565 C5.66956522,10.0869565 5.42608696,9.84347826 5.42608696,9.53043478 C5.42608696,9.2173913 5.66956522,8.97391304 5.9826087,8.97391304 L13.0434783,8.97391304 C13.3565217,8.97391304 13.6,9.2173913 13.6,9.53043478 C13.6,9.84347826 13.3913043,10.0869565 13.0782609,10.0869565 L5.9826087,10.0869565 Z" id="Shape"></path>
         </g>
     </g>
 </svg>
\ No newline at end of file
diff --git a/resources/check.png b/resources/check.png
index ad7077dffcfe6bd7ae200c13b983e982e1b6160d..84d2d1007e2fec3b72d5157ea6b530444dc24518 100644
GIT binary patch
delta 219
zcmew;{+e-uL_G^L0|P^2NcwRg#ggvm>&U>cv7h@-A}f&3SRCZ;#IWw1%u66gF~BFp
z)hDwsa=S*<4)vIwT9Mn;BX_6+$>`l6GHX9b<hOiSC{Qt1NswPKLrS;f*Z4=8-+3zb
z8|(p!26?(ThG?8mPLOD6Fy-`h$dc3wnO}G{$b@w@%LNe~l`zKT7PFX^sj{t5+pw<4
z&DfE91<O$`wFN>U+FPbcEZWtW87e+YddmgblP${{8V}YiSj@!mT3F0^OSh*d(0B$<
LS3j3^P6<r_wu?&B

literal 3057
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

diff --git a/resources/dark/dislike.png b/resources/dark/dislike.png
index 4a4fe0202483583ef0d5278b9be337aca5ce2a96..47f17c57de149b767426486c1c7891ebb80bc36e 100644
GIT binary patch
delta 348
zcmdnP`i5zOWIZzj1B1(wu46!oCEd~2k%3`jKlh(RRv@3TILO_JVcj{Imq3ndfKQ04
zPiEnP0|yQsJP0I#VE_L8$BrEXGR~Yi0~GxK|36R!$b~3?un!+T3}gVop+kotjMhD_
zj6eg$N`m}?8S1+t-rsvGw3gMD@t}|P?(%%el%M7`2Xof#11eeU>EaktaqH|vPrkzn
zJPc>|v2ObOf4Ny`Z&Qcv*BO?Pvo=~X<R4<I{Bi#UzvP<*&a1@TZmbr0X1)Bv@106+
zUYDQ!{1&ZxbJq4Qz9~l&R`PJOwQ_T@&Ehs;>*Bt$UtCCBg~u;c&%*FT%ml{5E#((Z
zSU>%Kr(WzJkNHJGewP;?QokHsoYgA*&6daIVzuDIlPR;zgeR=wJHP&b;mat~b(en#
c*zD=!7ZFj7&)WKz7wBFFPgg&ebxsLQ0BrT76aWAK

delta 687
zcmV;g0#N<z0=xx~8Gi%-007x@vVQ;o00Lr5M??VshmXv^0007YNkl<ZNXPAz%S+Tz
z6vyxQm?U~pSfZKI-w+igG}WRog4*<0R!~;kC_-CCMGz(tEkhDg49i6k76YPlKj-I<
z9^g<|q%JbcMK%sOqI6o!Z~V>6$3V;OZ}q$Pp3gbwd(J(^{C{8na%qvAly1hDlOOgK
zr^02alW-ZQdCdfKjPcAK*P=Y;wiXx7_{QakF~-PI#xqZ>(_fQoK8`ZXS*JQ0w6$Ec
zqbO>xa|1;g;exG=2AyhYU<Bn`211K)QC{|~_V>bNwuxC3W!5(O=@`QrdQc=S5l)~C
zr<*62?Bf@c?0?PPch}lc)E@IMcB67GpRhJ$LwWblqdfH^7(<=vLMql@gYwk}%%JYd
zLIBTKppx(b!)Rnzfj#qxFFv3drL(ZM>nOH|{fsseL*>k32AMU=shBjNOh*nbWG<H(
z>Z_cOcoQFNQ+8qQER2xLD9T5t!izVGqP8*n+D(+1w13P}{;r`Y6DaRxLvJ~Q-k;hl
z%RqSMmz-+(jN<YRWvH)`t9cL_pg9u}E|C`~({{Hp9zv69MD{R)ayz@e0q$lZqCvV)
z;x^<Vh9XtQP{$N1E%{m`2jP~|i4sdj;dzgvJkUV?F3UlLOQano#!h35p^i9eALgA)
zDTK77BY%3!lhQ@1j4_7Id_v_-Wc^~j9^f9z_wXuXoC*eg>C)sJc)M;<guP{V7~@nB
zO?jt|sWds4iXxdkQIy~AmU-zsIR~~%0;OlkS0{%gfl9lxpEydZZ9|FK5KmBk%C==Z
zT<Rr(@(1N{M{!57ZS($?XKsu!a)4=+F1Iu}2`FeqnT%{NV0=(dXEf*!6S<%A{uffP
V3>enx1@-^{002ovPDHLkV1l;*McDuV

diff --git a/resources/dark/like.png b/resources/dark/like.png
index 613fccd4a02d9c514bfab713760aaf1c768432e3..d77896123ed59a02c35564e57d46c80e2878b7c4 100644
GIT binary patch
literal 498
zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtmSN`?>!lvI6;x#X;^)
z4C~IxyaaM`0(?STeKHI8@85s)=usef;J|@{2M+?tQ>RV=NeBRnL!{s&oN?&TA)p!{
z_v+QFKn6rFkc22WdGaKX0pUVOtNbrvKzo%-g8YIRo(k-V)cV7A|AX(hO{?pZPnYK(
zl<9iQJl)*ZOr%fvqFtxkj~fB)K;>UOT^vIyZk?TQb6T^40BfLNLGSNrwqO7Mw@`0O
z^hvoF?C<)W)o=R`wL`Aw9(x~;)O+au`x+C^_ilmdbqpE#x9iqc7<yPngl;X6Y1lI{
z_<)zeNi}x9Lq%QzpEP%cEb#hUveLuP?81SYuP)A5eAU<_Oqt`ZK|R~V&}PBtvZpO4
z#5+7<wtQmM`tIbt?0fCpi&46YciDq9)*cJ^S*P&t>z&-Uxx05-ACa8tUF~hka(CN(
z)_{C&))^JW_Z<xPofUEXBrwgLY2v>byBMnWzLM1_n=M)Wz>3>2zA>)CgFRuE2+zt7
tmqgb*nfs&vO2fwMe_y0teDwMU<2GHfpSosUPk{lz;OXk;vd$@?2>=Tb^e_Mb

delta 457
zcmV;)0XF{f1K0zQ8Gi%-007x@vVQ;o00Lr5M??VshmXv^0004zNkl<ZNQv!`u}&0G
z6o!W_$VP*9bQ|_LtiZx-Ln4hzi6#P)_yW=rtPmv-^%*RHj;Ptj-SeHzHWt(ih08`8
zuo(y>zs0N$12Z_Y8Y}->-E+_P-E(gc{LkNvN<Qt|bUE{{_J4tydim!`z05;C@{KdP
zY}tL4QgEx%Mv2w)yFm~HK1DBiVy(v5WxR*z@VHgk9kwb9wvUi4v5XLVJhAHTaI4~T
z>>&;k3YBOhc0P^7wR+hWIYo$5dlo+@2)My}gr9o|4-lR6coe_Q5r<4%thaC4KC*jp
z<2Lfyw2!rM8-Gu&&m%VD3A(6NNo&kXV+`>n7M!5=wIYJg*O4E`f(~llDk5M4(TTUK
zh<AkqJIL04Z5yL}NB$@;?z4z6@oPSZ2%EJ$c(dlm$evy(+e$t~vqp$`kv7<K#EDH_
zg>xqp&!gz$s~XB^&=4=P6@C15CVsUd7oM%?<8OY8M?wmJl~feMFDv@^+uV3kF%TXp
zSVx3}i1osFq_8zK(Cx9pH+*AYJW~7-{!j7)D@0%2sNNKS00000NkvXXu0mjfTy@rt

diff --git a/resources/light/dislike.png b/resources/light/dislike.png
index b514f0f3223cdc878233d86e4427ac161b65ee05..4ced195dcf60ed39d75d30df3d82b5b843cb6c03 100644
GIT binary patch
literal 368
zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtmSN`?>!lvI6;x#X;^)
z4C~IxyaaMQ0(?STeKHHx)z$6o?SZ74nwplD7LWu2O-)S*1Hv{pHwP*J0-!jMgiFEM
zr+f?^0L>IH3GxeO@L?&xC)D-McEiEl+H8{1=J~5qeumaW-(~#=RI=F9#WAGf*4c@k
ze1{cy80K!6u_49($AACXtK3wtOshIGN9U{rr{uhr!sB=9kJZ`D$=ve!C)3)UUfu6+
z?!L9!=YdJ$%&XV)XQpc3Q;=V<FySN<H>)ET6KfQg39AO{kN4bhTsExBMdpaOXm&X8
z?2%s}P=4<HMmw?QrmnBo*9S~?dhOg)z0vG9XH?ExU4xPcld=Owd|&<xs#wk4ysUKI
elbELCADKQ%sQvU*-`)gtE`z75pUXO@geCx}d3?42

delta 585
zcmV-P0=E6|0@nnP8Gi%-007x@vVQ;o00Lr5M??VshmXv^0006INkl<ZNXPBe-)qfr
z9LMp;b~u&{5tbRt-yp=w!3B}x#*a&spSL27OChCMl1nX$ny?#b`~g^^wrFHrnBfAm
zY-{p%alSj}?Cdz(%B9cu>h=D7UeC|_{rc3G|LdQwN_({F^?%D}5A9Wz+o`h8BVYW|
z>z-XIOWEsnh%sNE?O=z#qMav}jkos+Jr1aoR`00yLOA2B5Z*bWURs?)-U%PaA}VzV
z4^$V_s+=++gb|Ge<1kyh@VIc0-9pb8dv<N`-8bvU)#rFG?93P1go7o6&B&Cj9~SQB
zWv@^-r59T!e1FKxVPWQ!05gQ4yzCLyObJlwy0>}RB(zQmK+3kfSg2pvU)E4vM&Xb!
zX!Bp~$8}qrQ;WQGs`$voGKk|sc%>%kw@V0(#mCMG!-bP2>$DKQ2rtaHKxd-DiOC?c
z_G9Y25js2<x-E9H6rw^?5n`JA!l1Pzh)B{{XIQvU+<!xbOGSvZJHmiWg6LL@20w)6
zQh|*}OxG&(CtYN39}uppDE(yP5!2if`mF{H283&+|4XBY<}ru`Np!VfiPyq2^C*Y7
zEPOHxH98BT%g6cD-13O?R-r~$?)C;h3gVowi|q7W!cR+c(T&Er+>p>d5rD0Rgj+Tm
z5L(<2`a)&g7QR|BF@P<Ggx|tVDJeG+HAy>cGAP_J9i+4f->jUhJ=;aAbWWvQ8NK}v
Xli1|nJR2A100000NkvXXu0mjf^gbip

diff --git a/resources/light/like.png b/resources/light/like.png
index 0f7081d2a74f7186174e7495b02d9eb2456ab686..92b845de5dfcb57cf04356fe45ceb742c1f6ed1e 100644
GIT binary patch
literal 521
zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtmSN`?>!lvI6;x#X;^)
z4C~IxyaaMe1AIbUeKHF*H8s`L)a>l+3=Iu|41IllAPE8L>grlrT0k~X4Ui3F07(b~
zt^mkbvt|v1i!2CNrlFyM%m%8_i*5G+IzX)?$S;_|`~U~*6M=hw-g{|v*;cHL5>EcQ
zTPBF{&Gd#XeP{DeUes9`Ti_sksNE3gd<IV!$B>F!XD3GT9Wvl?xooEB`O?c<{G0Fl
zf9@_*1e9(u8^oWVwNdr<qxoA-?e^Fg=oY*0*T&Bh2`91?U*#}#e7>O1lYev7CO+Sf
zU(FBvE0h<Ve5IoPP2<_)>vfk^Ic_peC_CA$-MlvT0SkNk#A_1|GtZIPw&Bz18qTP8
zDOIs07y5KQ1}Pl-#d&<`0l~M6eT}|PKE{8~(VV{|z#`^wrJTj#Ux$A`$U0c+9Umht
zHNPxa`iyCX*oxd2`Jy6@cker_Z?5CrZue$_?u{?OOU0soZZ73aDdI|Zu-xr4pK-cJ
z#|x&Ey)(3B8wyPfmLvt<p5(bSKEuwXvFz>XNtJp>@4w`Xo+z>9;nc8Qz|dpxboFyt
I=akR{0K<H|bpQYW

delta 403
zcmV;E0c`$>1fm0w8Gi%-007x@vVQ;o00Lr5M??VshmXv^00047Nkl<ZNXPAwJx&5q
z7)1{hglN>xj=(ysz{1d&XyZ?*CW4x{0d0*|iV}#r1`DMl>H;+EVW1F+Hfl2vNUp_8
z90nMiL1X1N)xF=GGkI^|e|~kstWu&*hZpWxBl@+8vd%rPbbqLG!!qGPc!COYJq;EB
zSftUjc_iMCHxL$^#E6h!hZ;g0aEK69wn-2nMwTk#*{ujuL6n*3>Z0t^Mu;|hUB`h*
zZV?aN2U$T_F5Jv4@4S)f>!+w8mYkx5$PB#LB*}sO7UJ58bwn)CAB!WNoY+E)1rm%S
znohJ3Gl2vtgn#A49O5dFpp3{nahearhHpHBu-&(oMcAZ$;c1$P-QN1xry`AwI2p7$
zLbRA4iqCoDeiR1J5%PK=#OV-)!Oy+%;R;{4x5D5T-{VGc)}si7_bUv3=^uA1M#7Dv
xfUvO<h2XeR<k4tfcN9g6qvJ;LBm6Js6PRC@{a13X<O~1+002ovPDHLkV1kB1yCMJp

diff --git a/resources/lock.png b/resources/lock.png
index 8c6fa7fdd7ed8ddc9a2a74ce1828c13817c0102d..c9ce37743fdaad8553a9f718caa761235b8d94aa 100644
GIT binary patch
literal 387
zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyEa{HEjtmSN`?>!lvI6;x#X;^)
z4C~IxyaaMQ0(?STeKHIGFP8kjQ0)KJ(EqFD|1S~)u@{NM7?LmsOnjjPSOJhL0a6B1
z43fI{TKqK7O!1N+zhDNNOU#^yo`kIa;#SqWs3;-+?`9Llojcw;iEafd+2-lu7*cWT
z?4;X#hZF=@xmme%_l7_J|34&iszB`Q89yG_OxSEWS>RCE|F)MU9J`F?{|eo_IDF@Q
zCYJ2WJ3E_N@7;O-@}O5O_jTpi1)?n+uRORGDSS!jOIaY!!hfFQU-rVzdyVxB=Z-I1
z@tU=9={cu%kLj$v9p?`9oS4IEbgtU{S?q?F`foZ7mSx%qe%o%YerUq7hb{%H)=izv
zGE;}e#c5-X(zY9Bokj1LDa06rvbve-YXtx8kiKK3)WUUseJ#)j44$rjF6*2UngHQL
Bs0jc7

literal 3160
zcmV-e45#ynP)<h;3K|Lk000e1NJLTq001BW001Be1^@s6b9#F800009a7bBm000XU
z000XU0RWnu7ytkYO=&|zP*7-ZbZ>KLZ*U+<Lqi~Na&Km7Y-Iodc-oy)cUY767Czti
zWe-+D*zmEJY=HnGBdiF>5Lu!Sk^o_Z5E4Meg@_7P6crJiNL9pw)e1<Rh~l6qxMx9%
zh+2zPTsZC@+^4mDdhhM+``7!t=bY#K&Uw!dfDsZVk>;Xm069{HJUZAPk55R%$-RIA
z6-eL&AQ0xu!e<4=008g<d3b(wus{3(uWtYX0C3eVBofEr|AV?vCRYF;kpSQ#66Xs6
zkWv81E>y@A0LT~suv4>S3ILP<0Bm`DLLvaF4FK%)Nj?Pt*r}7;7Xa9z9H|HZjR63e
zC`Tj$K)V27Re@400>HumpsYY5E(E}?0f1SyGDiY{y#)Yvj#!WnKwtoXnL;eg03bL5
z07D)V%>y7z1E4U{zu>7~aD})?0RX_umCct+(lZpemCzb@^6=o|A>zVpu|i=NDG+7}
z<RYAxn<EoQ=L1a63;+Nc`O(4tI6si*=H%h#X6J10^u?n7Yw&L(J|Xen{=AF=1OO0D
z&+pn_<>l4`aK{0#b-!z=TL9Wt0BGO&T{GJWpjryhdijfaIQ&2!o}p04JRKYg3k&Tf
zVxhe-<BLB3GvROGi+=X}Kpy_vdhh^onn0PYz@vlxaba$Du2PQY%LGC(ZujRS{>O!X
z{f;To;xw^bEES6JSc$k$B2CA6xl)ltA<32E66t?3@gJ7`36pmX0IY^jz)rRYwaaY4
ze(nJRiw;=Qb^t(r^DT@T3y}a2XEZW-_W%Hszxj_qD**t_m!#tW0KDiJT&R>6OvVTR
z07RgHDzHHZ48atvzz&?j9lXF70$~P3Knx_nJP<+#<bWIsp%|7y8C1YJ*aWq(0~(+a
zn&A+%!7(@u=im}tf$MM=24EPT!Wg`U2?RmN2oqr;I*1Wsj@Tm32p5@-1R`NbG?IX%
zAnAw{Q6k02a-;&OLTZs+NF(wsauhj@TtNDe+sGg?iu{VaM=_LvvQY!n0(C&Ss2>`N
z#-MZ2bTkiLfR>_b(HgWKJ%F~Nr_oF3b#wrIijHG|(J>BYjM-sajE6;FiC7vY#};Gd
zST$CUHDeuEH+B^pz@B062qXfFfD`NpUW5?BY=V%GM_5c)L#QR}BeW8_2v-S%gfYS=
zB9o|3v?Y2H`NVi)I<b&gMyw|8As!)~C0-{E6JL`^Bo4`v<W349C6F>n3rTB8+ej^>
zQ=~r95NVuDChL%G$=>7$vVg20myx%S50Foi`^m%Pw-h?Xh~i8Mq9jtJloCocWk2Nv
zrJpiFnV_ms&8eQ$2&#xWpIS+6pmtC%Q-`S&G<BLK&6^fO%cL!%)zF%0XKD9nFX?o;
z3EhJpMVHW*(rf4k>F4Q#^mhymh7E(qNMa}%YZ-ePrx>>xFPTiH1=E+A$W$=bG8>s^
zm=Bn5Rah$aDtr}@$`X}2l~$F0mFKEdRdZE8)p@E5RI61Ft6o-prbbn>P~)iy)E2AN
zsU20jsWz_8Qg>31P|s0cqrPALg8E|(vWA65poU1JRAaZs8I2(p#xiB`SVGovRs-uS
zYnV-9TeA7=Om+qP8+I>yOjAR1s%ETak!GFdam@h^#<Ae=IoX^_&LPeX&U-BbEk7->
z)@rS0t$wXH+Irf)+G6c;?H29p+V6F6oj{!|o%K3xI`?%6x;DB|x`n#ib<gTP(_`y-
z=?V49^$zLX(MR=d^rQ6`>hIR?(H}Q3Gzd138Ei2)WAMz7W9Vy`X}HnwgyE<W%V@fh
z#Au_@NuwvYChmu4<285}K4z?M9Ad0A-euftJYiyKGTWrYq{ZaEDb18?nr6Duw9|CV
z%*ZU<tk|r{?2b9roNJz8zS+Fn{EdaBMV!S-i#ChLmfDtl%LSHAmiMffRz6mFR`pib
ztVz~f>n!VS)>mv$8&{hQn>w4zwy3R}t;BYlZQm5)6pty=DfLrs+A-|>><a9f>;~;Q
z_F?uV_HFjh9n2gO9o9Q^JA86<b<B2baJ=iJ;WWdk#HqvSS7#e%p>v({H5aB!kjoO6
zc9$1ZZKsN-Zl8L~mE{`ly3)1N^`o1+o7}D0ZPeY&J;i;i`%NyJ8_8Y6J?}yE@b_5a
zam?eLr<<q3^N{B+UUpttUi-ZsPqUmRp4KpJ$lJtQ;JwRxU^+fMW%|zP13tz+0-t)H
zhrXu1BHul}BYxI?nSKZSp8Grc%l(h|zu|fE7V%C6U;)7a<pI5c8iBI|YXctynFOT=
zH3f|Yy9O@|J{3X?2@P2va+7bs7xEkVV>8@mESk|3$_SkmS{wQ>%qC18))9_|&j{ZT
zes8AvOzF(F2#DZEY>2oYX&IRp`F#{ADl)1r>QS^)ba8a|EY_^#S^H<bj`5GFjJZ48
zYPNEAXRK;$Qfy=Fo4A0us<?r8hxkSDmlAXnBnj<_<iyy-J&EIU0_SX+Go0j_RF-sO
zuI1dKxfkZ?&dZ*6JXtkakbF3Wm=c$=KjniULQpRlPvxg>O&t^Rgqwv=MZThqqEWH8
zxJo>d=ABlR_Bh=;eM9<ahEGOy#xn^|QY(3p8Irjp^G#Mn*50ho*>Tw|Ih34~oTE|=
zX_mAr*D$vzw@+p(E0Yc6dFE}(8<U61_v9n_bMxC3Y=unGqqI`4P!1MMFQ_YcTNqn-
zxJbQ7TGTV&X8!8=BMX8Se7%scP`I$O*tmFE@!%rAMY|Rwi&GbOE-_tFx@351@X~$D
zXv?ye{ZQgqQdRP5dED}jQiIZ^r9&%%S2UHWl*!9(uJl^DV-;bQWL58Km(^QVe<~N1
zU#xJfsIK_1M!4qUS59BmeD!&4+S=Yqx61A7Nb98QZmjoNzpqNYYC+Y|hVTuo8}W_h
z8((co-gKdQYW0rIw9U%R12tha?OV*YtlRRTHly}>oqt`+R{gE3x4zjX+Sb3_cYE^=
zgB=w+-tUy`ytONMS8KgRef4hA?t<Nq8e$u|zvh13xJP$S#h#CQrF#eVMeplsbZ>0j
zufM;t32jm~jUGrkaOInTZ`zyfns>EuS}G30LFK_G-==(f<51|K&cocp&EJ`SxAh3?
zNO>#LI=^+SEu(FqJ)ynt=!~PC9bO$rzPJB=?=j<Jb;mW2SDv7qC_VA{<bspqr(~y|
zolZYJ)S29Q_e}hmYh6)Yy=Ozuo<A3K?o78|_sR3#=Z{_Rym0g)_hQ>6w@a-(u02P7
zaQ)#(uUl{HW%tYNS3ItC^iAtK(eKlL`f9+{bJzISE?u8_z3;~C8@FyI-5j_jy7l;W
z_U#vU3hqqYU3!mrul&B+{ptt$59)uk{;_4iZQ%G|z+lhASr6|H35TBkl>gI*;nGLU
zN7W-nBaM%pA0HbH8olyl&XeJ%vZoWz%6?Y=dFykl=imL}`%BMQ{Mhgd`HRoLu6e2R
za__6DuR6yg#~-}Tc|Gx_{H@O0eebyMy5GmWADJlpK>kqk(fVV@r_fLLKIeS?{4e)}
z^ZO;zpECde00d`2O+f$vv5tKEQIh}w03c&XQcVB=dL;k=fP(-4`Tqa_faw4Lbua(`
z>R<o>I+y?e7jKeZ#YO-C0d+}4K~#9!?3cl9!Y~wuzf={u_UvBT4ax?v0Rs?;Oh7vU
zVS=_36y)B^1~38}G#7Ht)xD&bhlCtMoRA7c`6WwMEWh{V`9147D2jqz1wlZSj8+f8
z80Y~{*76!y0q<dyrS{&Ezq$ZMt5@I|KfQ%f_R<P~(drIZI{vsyYoH%SS?&V3sbQ#z
zb7aqQ-=Y_Qgx%$Q1;jvKMl9b-5MraG$|I13`*!S&!zi2W0UiM#j-|)WaFf=Jz_^Zc
z09lKDZ2186?64nlZb7UnY<U6LXFsozfb$AlwW?sNv}Oq&R1*Mig;91|03Vgg@aOZs
z_)CYK;U+k%2wVYfJu*2s#(~kQxE{e}0vN3lqg5dzIYk5}yK`yT{#Oo6cjw!tv-Nx6
z!2OT_$>mpp(Q0r+r3{(?*k?Iu0wH@Q6}Fu@umDC@ANOUnY9rzcp9oA{q%A17D#r~V
yFWP>~5V^b$Q?DeHX0i*+js(fYMt5I>`a1x0J&7!?`0$<p0000<MNUMnLSTYkr1{YR

diff --git a/resources/x.png b/resources/x.png
index 57709cdb580bc338e2177c7c7785c4a6997df556..64a5fc7e256d3d3b99fbe980942af7da049bffc1 100644
GIT binary patch
delta 209
zcmZ1~@sM$XL_G^L0|P^2NcwRg#ggvm>&U>cv7h@-A}f&3SRCZ;#IWw1%u66gD8MJg
z)hDy?y}Qc?cbAVIuAh9|-n%=$$uG$S%CeRO`2{ni%=Ojy+;-&)P$0(B#W6(Vd~(79
z@dBfU3um+f7_T~T=t{AO8t{rT1okXE7{GWeV1t)XV28yVPEj`v#~_Ah3fc_Xj)4q8
zO^X<ou!J%$W7s9e<9u=L(E^EGmkn*&AJ+CT9O7`g#mq3XMkIKSNy=NGMGT&<elF{r
G5}E*S6-5dF

literal 3109
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


From 672de39302def1c85e10a6293a394853ca355c74 Mon Sep 17 00:00:00 2001
From: yihong <zouzou0208@gmail.com>
Date: Tue, 2 Jun 2020 22:00:33 +0800
Subject: [PATCH 60/92] Update README_zh-CN.md (#566)

* Update README_zh-CN.md

* Update README_zh-CN.md
---
 docs/README_zh-CN.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docs/README_zh-CN.md b/docs/README_zh-CN.md
index 8aced3a8..59b62e3f 100644
--- a/docs/README_zh-CN.md
+++ b/docs/README_zh-CN.md
@@ -34,7 +34,7 @@
 
 ## 运行条件
 - [VS Code 1.23.0+](https://code.visualstudio.com/)
-- [Node.js 8+](https://nodejs.org)
+- [Node.js 10+](https://nodejs.org)
     > 注意:请确保`Node`在`PATH`环境变量中。您也可以通过设定 `leetcode.nodePath` 选项来指定 `Node.js` 可执行文件的路径。
 
 ## 快速开始

From a11fb1d857f3f019ba6060b85eb85716f1b4ece4 Mon Sep 17 00:00:00 2001
From: yihong <zouzou0208@gmail.com>
Date: Tue, 2 Jun 2020 22:00:49 +0800
Subject: [PATCH 61/92] Update README.md (#565)

* Update README.md

* Update README.md
---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index fecddd1b..7bc7decb 100644
--- a/README.md
+++ b/README.md
@@ -33,7 +33,7 @@ Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround wh
 
 ## Requirements
 - [VS Code 1.30.1+](https://code.visualstudio.com/)
-- [Node.js 8+](https://nodejs.org)
+- [Node.js 10+](https://nodejs.org)
     > NOTE: Please make sure that `Node` is in your `PATH` environment variable. You can also use the setting `leetcode.nodePath` to specify the location of your `Node.js` executable.
 
 ## Quick Start

From d1307f1d27e0bd48e61397d2e4a85b5bc708299d Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Thu, 4 Jun 2020 16:33:34 +0800
Subject: [PATCH 62/92] chore: Update badge urls (#569)

---
 README.md            | 12 ++++++------
 docs/README_zh-CN.md | 12 ++++++------
 2 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/README.md b/README.md
index 7bc7decb..164da0bf 100644
--- a/README.md
+++ b/README.md
@@ -3,20 +3,20 @@
 > Solve LeetCode problems in VS Code
 
 <p align="center">
-  <img src="https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/resources/LeetCode.png" alt="">
+  <img src="https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/resources/LeetCode.png" alt="">
 </p>
 <p align="center">
-  <a href="https://travis-ci.org/jdneo/vscode-leetcode">
-    <img src="https://img.shields.io/travis/jdneo/vscode-leetcode.svg?style=flat-square" alt="">
+  <a href="https://travis-ci.org/LeetCode-OpenSource/vscode-leetcode">
+    <img src="https://img.shields.io/travis/LeetCode-OpenSource/vscode-leetcode.svg?style=flat-square" alt="">
   </a>
   <a href="https://gitter.im/vscode-leetcode/Lobby">
-    <img src="https://img.shields.io/gitter/room/jdneo/vscode-leetcode.svg?style=flat-square" alt="">
+    <img src="https://img.shields.io/gitter/room/LeetCode-OpenSource/vscode-leetcode.svg?style=flat-square" alt="">
   </a>
   <a href="https://marketplace.visualstudio.com/items?itemName=shengchen.vscode-leetcode">
     <img src="https://img.shields.io/visual-studio-marketplace/d/shengchen.vscode-leetcode.svg?style=flat-square" alt="">
   </a>
-  <a href="https://github.com/jdneo/vscode-leetcode/blob/master/LICENSE">
-    <img src="https://img.shields.io/github/license/jdneo/vscode-leetcode.svg?style=flat-square" alt="">
+  <a href="https://github.com/LeetCode-OpenSource/vscode-leetcode/blob/master/LICENSE">
+    <img src="https://img.shields.io/github/license/LeetCode-OpenSource/vscode-leetcode.svg?style=flat-square" alt="">
   </a>
 </p>
 
diff --git a/docs/README_zh-CN.md b/docs/README_zh-CN.md
index 59b62e3f..8a2a191f 100644
--- a/docs/README_zh-CN.md
+++ b/docs/README_zh-CN.md
@@ -3,20 +3,20 @@
 > 在 VS Code 中练习 LeetCode
 
 <p align="center">
-  <img src="https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/resources/LeetCode.png" alt="">
+  <img src="https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/resources/LeetCode.png" alt="">
 </p>
 <p align="center">
-  <a href="https://travis-ci.org/jdneo/vscode-leetcode">
-    <img src="https://img.shields.io/travis/jdneo/vscode-leetcode.svg?style=flat-square" alt="">
+  <a href="https://travis-ci.org/LeetCode-OpenSource/vscode-leetcode">
+    <img src="https://img.shields.io/travis/LeetCode-OpenSource/vscode-leetcode.svg?style=flat-square" alt="">
   </a>
   <a href="https://gitter.im/vscode-leetcode/Lobby">
-    <img src="https://img.shields.io/gitter/room/jdneo/vscode-leetcode.svg?style=flat-square" alt="">
+    <img src="https://img.shields.io/gitter/room/LeetCode-OpenSource/vscode-leetcode.svg?style=flat-square" alt="">
   </a>
   <a href="https://marketplace.visualstudio.com/items?itemName=shengchen.vscode-leetcode">
     <img src="https://img.shields.io/visual-studio-marketplace/d/shengchen.vscode-leetcode.svg?style=flat-square" alt="">
   </a>
-  <a href="https://github.com/jdneo/vscode-leetcode/blob/master/LICENSE">
-    <img src="https://img.shields.io/github/license/jdneo/vscode-leetcode.svg?style=flat-square" alt="">
+  <a href="https://github.com/LeetCode-OpenSource/vscode-leetcode/blob/master/LICENSE">
+    <img src="https://img.shields.io/github/license/LeetCode-OpenSource/vscode-leetcode.svg?style=flat-square" alt="">
   </a>
 </p>
 

From 7705ce717207bf2203dca2eacebc8b9c2013f26f Mon Sep 17 00:00:00 2001
From: Nathan Esau <nathanesau1@gmail.com>
Date: Sat, 27 Jun 2020 04:03:17 -0400
Subject: [PATCH 63/92] Add ts support (#573)

---
 README.md            |   2 +-
 docs/README_zh-CN.md |   2 +-
 package-lock.json    | 422 +++++++++++++++----------------------------
 package.json         |   5 +-
 src/shared.ts        |   2 +
 5 files changed, 152 insertions(+), 281 deletions(-)

diff --git a/README.md b/README.md
index 164da0bf..07b9b68b 100644
--- a/README.md
+++ b/README.md
@@ -122,7 +122,7 @@ Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround wh
 | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ |
 | `leetcode.hideSolved`                                                                   | Specify to hide the solved problems or not                                                                                                                                                                                                                                                                                                                                                                                        | `false`            |
 | `leetcode.showLocked`                                                                   | Specify to show the locked problems or not. Only Premium users could open the locked problems                                                                                                                                                                                                                                                                                                                                     | `false`            |
-| `leetcode.defaultLanguage`                                                              | Specify the default language used to solve the problem. Supported languages are: `bash`, `c`, `cpp`, `csharp`, `golang`, `java`, `javascript`, `kotlin`, `mysql`, `php`, `python`,`python3`,`ruby`,`rust`, `scala`,`swift`                                                                                                                                                                                                        | `N/A`              |
+| `leetcode.defaultLanguage`                                                              | Specify the default language used to solve the problem. Supported languages are: `bash`, `c`, `cpp`, `csharp`, `golang`, `java`, `javascript`, `kotlin`, `mysql`, `php`, `python`,`python3`,`ruby`,`rust`, `scala`, `swift`, `typescript`                                                                                                                                                                                                        | `N/A`              |
 | `leetcode.useWsl`                                                                       | Specify whether to use WSL or not                                                                                                                                                                                                                                                                                                                                                                                                 | `false`            |
 | `leetcode.endpoint`                                                                     | Specify the active endpoint. Supported endpoints are: `leetcode`, `leetcode-cn`                                                                                                                                                                                                                                                                                                                                                   | `leetcode`         |
 | `leetcode.workspaceFolder`                                                              | Specify the path of the workspace folder to store the problem files.                                                                                                                                                                                                                                                                                                                                                              | `""`               |
diff --git a/docs/README_zh-CN.md b/docs/README_zh-CN.md
index 8a2a191f..194c43d7 100644
--- a/docs/README_zh-CN.md
+++ b/docs/README_zh-CN.md
@@ -123,7 +123,7 @@
 | ---------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ |
 | `leetcode.hideSolved`                                                              | 指定是否要隐藏已解决的问题                                                                                                                                                                                                                                                                      | `false`            |
 | `leetcode.showLocked`                                                              | 指定是否显示付费题目,只有付费账户才可以打开付费题目                                                                                                                                                                                                                                            | `false`            |
-| `leetcode.defaultLanguage`                                                         | 指定答题时使用的默认语言,可选语言有:`bash`, `c`, `cpp`, `csharp`, `golang`, `java`, `javascript`, `kotlin`, `mysql`, `php`, `python`,`python3`,`ruby`, `rust`, `scala`,`swift`                                                                                                                | `N/A`              |
+| `leetcode.defaultLanguage`                                                         | 指定答题时使用的默认语言,可选语言有:`bash`, `c`, `cpp`, `csharp`, `golang`, `java`, `javascript`, `kotlin`, `mysql`, `php`, `python`,`python3`,`ruby`, `rust`, `scala`, `swift`, `typescript`                                                                                                                | `N/A`              |
 | `leetcode.useWsl`                                                                  | 指定是否启用 WSL                                                                                                                                                                                                                                                                                | `false`            |
 | `leetcode.endpoint`                                                                | 指定使用的终端,可用终端有:`leetcode`, `leetcode-cn`                                                                                                                                                                                                                                           | `leetcode`         |
 | `leetcode.workspaceFolder`                                                         | 指定保存文件的工作区目录                                                                                                                                                                                                                                                                        | `""`               |
diff --git a/package-lock.json b/package-lock.json
index 0283fca9..1144cdac 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -4,6 +4,11 @@
     "lockfileVersion": 1,
     "requires": true,
     "dependencies": {
+        "@types/color-name": {
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
+            "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ=="
+        },
         "@types/fs-extra": {
             "version": "5.0.0",
             "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.0.tgz",
@@ -86,9 +91,9 @@
             }
         },
         "ajv": {
-            "version": "6.12.0",
-            "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.0.tgz",
-            "integrity": "sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw==",
+            "version": "6.12.2",
+            "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
+            "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
             "requires": {
                 "fast-deep-equal": "^3.1.1",
                 "fast-json-stable-stringify": "^2.0.0",
@@ -146,9 +151,9 @@
             "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
         },
         "aws4": {
-            "version": "1.9.1",
-            "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.9.1.tgz",
-            "integrity": "sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug=="
+            "version": "1.10.0",
+            "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz",
+            "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA=="
         },
         "babel-code-frame": {
             "version": "6.26.0",
@@ -329,18 +334,6 @@
             "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
             "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
         },
-        "cross-spawn": {
-            "version": "6.0.5",
-            "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
-            "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
-            "requires": {
-                "nice-try": "^1.0.4",
-                "path-key": "^2.0.1",
-                "semver": "^5.5.0",
-                "shebang-command": "^1.2.0",
-                "which": "^1.2.9"
-            }
-        },
         "css-select": {
             "version": "1.2.0",
             "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
@@ -460,13 +453,10 @@
                 "safer-buffer": "^2.1.0"
             }
         },
-        "end-of-stream": {
-            "version": "1.4.4",
-            "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
-            "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
-            "requires": {
-                "once": "^1.4.0"
-            }
+        "emoji-regex": {
+            "version": "8.0.0",
+            "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+            "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
         },
         "entities": {
             "version": "1.1.2",
@@ -479,9 +469,9 @@
             "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
         },
         "escodegen": {
-            "version": "1.14.1",
-            "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz",
-            "integrity": "sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==",
+            "version": "1.14.3",
+            "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
+            "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
             "optional": true,
             "requires": {
                 "esprima": "^4.0.1",
@@ -508,20 +498,6 @@
             "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
             "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="
         },
-        "execa": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
-            "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
-            "requires": {
-                "cross-spawn": "^6.0.0",
-                "get-stream": "^4.0.0",
-                "is-stream": "^1.1.0",
-                "npm-run-path": "^2.0.0",
-                "p-finally": "^1.0.0",
-                "signal-exit": "^3.0.0",
-                "strip-eof": "^1.0.0"
-            }
-        },
         "extend": {
             "version": "3.0.2",
             "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
@@ -538,9 +514,9 @@
             "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A="
         },
         "fast-deep-equal": {
-            "version": "3.1.1",
-            "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz",
-            "integrity": "sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA=="
+            "version": "3.1.3",
+            "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+            "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
         },
         "fast-json-stable-stringify": {
             "version": "2.1.0",
@@ -554,11 +530,12 @@
             "optional": true
         },
         "find-up": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
-            "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+            "version": "4.1.0",
+            "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+            "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
             "requires": {
-                "locate-path": "^3.0.0"
+                "locate-path": "^5.0.0",
+                "path-exists": "^4.0.0"
             }
         },
         "forever-agent": {
@@ -592,17 +569,9 @@
             "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
         },
         "get-caller-file": {
-            "version": "1.0.3",
-            "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
-            "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="
-        },
-        "get-stream": {
-            "version": "4.1.0",
-            "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
-            "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
-            "requires": {
-                "pump": "^3.0.0"
-            }
+            "version": "2.0.5",
+            "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+            "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
         },
         "getpass": {
             "version": "0.1.7",
@@ -734,11 +703,6 @@
                 "number-is-nan": "^1.0.0"
             }
         },
-        "is-stream": {
-            "version": "1.1.0",
-            "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
-            "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
-        },
         "is-typedarray": {
             "version": "1.0.0",
             "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
@@ -749,11 +713,6 @@
             "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
             "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
         },
-        "isexe": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
-            "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
-        },
         "isstream": {
             "version": "0.1.2",
             "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
@@ -872,12 +831,11 @@
             }
         },
         "locate-path": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
-            "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+            "version": "5.0.0",
+            "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+            "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
             "requires": {
-                "p-locate": "^3.0.0",
-                "path-exists": "^3.0.0"
+                "p-locate": "^4.1.0"
             }
         },
         "lodash": {
@@ -893,14 +851,6 @@
                 "chalk": "^2.0.1"
             }
         },
-        "map-age-cleaner": {
-            "version": "0.1.3",
-            "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
-            "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
-            "requires": {
-                "p-defer": "^1.0.0"
-            }
-        },
         "markdown-it": {
             "version": "8.4.2",
             "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz",
@@ -918,34 +868,17 @@
             "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
             "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4="
         },
-        "mem": {
-            "version": "4.3.0",
-            "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
-            "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
-            "requires": {
-                "map-age-cleaner": "^0.1.1",
-                "mimic-fn": "^2.0.0",
-                "p-is-promise": "^2.0.0"
-            },
-            "dependencies": {
-                "mimic-fn": {
-                    "version": "2.1.0",
-                    "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
-                    "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
-                }
-            }
-        },
         "mime-db": {
-            "version": "1.43.0",
-            "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz",
-            "integrity": "sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ=="
+            "version": "1.44.0",
+            "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
+            "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="
         },
         "mime-types": {
-            "version": "2.1.26",
-            "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz",
-            "integrity": "sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ==",
+            "version": "2.1.27",
+            "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
+            "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
             "requires": {
-                "mime-db": "1.43.0"
+                "mime-db": "1.44.0"
             }
         },
         "mimic-fn": {
@@ -962,29 +895,19 @@
             }
         },
         "minimist": {
-            "version": "0.0.8",
-            "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
-            "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0="
+            "version": "1.2.5",
+            "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+            "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
         },
         "mkdirp": {
-            "version": "0.5.5",
-            "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
-            "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
-            "requires": {
-                "minimist": "^1.2.5"
-            },
-            "dependencies": {
-                "minimist": {
-                    "version": "1.2.5",
-                    "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
-                    "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
-                }
-            }
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+            "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
         },
         "moment": {
-            "version": "2.24.0",
-            "resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz",
-            "integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg=="
+            "version": "2.27.0",
+            "resolved": "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz",
+            "integrity": "sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ=="
         },
         "mute-stream": {
             "version": "0.0.8",
@@ -1023,19 +946,6 @@
             "resolved": "https://registry.npmjs.org/ncp/-/ncp-1.0.1.tgz",
             "integrity": "sha1-0VNn5cuHQyuhF9K/gP30Wuz7QkY="
         },
-        "nice-try": {
-            "version": "1.0.5",
-            "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
-            "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ=="
-        },
-        "npm-run-path": {
-            "version": "2.0.2",
-            "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
-            "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=",
-            "requires": {
-                "path-key": "^2.0.0"
-            }
-        },
         "nth-check": {
             "version": "1.0.2",
             "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
@@ -1126,21 +1036,6 @@
                 "lcid": "^1.0.0"
             }
         },
-        "p-defer": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
-            "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww="
-        },
-        "p-finally": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
-            "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4="
-        },
-        "p-is-promise": {
-            "version": "2.1.0",
-            "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
-            "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg=="
-        },
         "p-limit": {
             "version": "2.3.0",
             "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
@@ -1150,11 +1045,11 @@
             }
         },
         "p-locate": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
-            "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+            "version": "4.1.0",
+            "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+            "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
             "requires": {
-                "p-limit": "^2.0.0"
+                "p-limit": "^2.2.0"
             }
         },
         "p-try": {
@@ -1169,20 +1064,15 @@
             "optional": true
         },
         "path-exists": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
-            "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+            "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
         },
         "path-is-absolute": {
             "version": "1.0.1",
             "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
             "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
         },
-        "path-key": {
-            "version": "2.0.1",
-            "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
-            "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A="
-        },
         "path-parse": {
             "version": "1.0.6",
             "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
@@ -1223,15 +1113,6 @@
             "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
             "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
         },
-        "pump": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
-            "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
-            "requires": {
-                "end-of-stream": "^1.1.0",
-                "once": "^1.3.1"
-            }
-        },
         "punycode": {
             "version": "2.1.1",
             "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
@@ -1315,9 +1196,9 @@
             "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="
         },
         "require-main-filename": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
-            "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+            "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
         },
         "resolve": {
             "version": "1.10.0",
@@ -1351,9 +1232,9 @@
             }
         },
         "safe-buffer": {
-            "version": "5.2.0",
-            "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.0.tgz",
-            "integrity": "sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg=="
+            "version": "5.2.1",
+            "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+            "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
         },
         "safer-buffer": {
             "version": "2.1.2",
@@ -1374,26 +1255,14 @@
         "semver": {
             "version": "5.6.0",
             "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
-            "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg=="
+            "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
+            "dev": true
         },
         "set-blocking": {
             "version": "2.0.0",
             "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
             "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
         },
-        "shebang-command": {
-            "version": "1.2.0",
-            "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
-            "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=",
-            "requires": {
-                "shebang-regex": "^1.0.0"
-            }
-        },
-        "shebang-regex": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
-            "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM="
-        },
         "signal-exit": {
             "version": "3.0.3",
             "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
@@ -1459,11 +1328,6 @@
                 "ansi-regex": "^2.0.0"
             }
         },
-        "strip-eof": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
-            "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="
-        },
         "supports-color": {
             "version": "5.5.0",
             "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
@@ -1605,6 +1469,14 @@
                     "version": "0.9.2",
                     "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
                     "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0="
+                },
+                "mkdirp": {
+                    "version": "0.5.5",
+                    "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+                    "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+                    "requires": {
+                        "minimist": "^1.2.5"
+                    }
                 }
             }
         },
@@ -1624,14 +1496,14 @@
             }
         },
         "vsc-leetcode-cli": {
-            "version": "2.6.23",
-            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.6.23.tgz",
-            "integrity": "sha512-icSErC6SFhtR9wNs00yv4UO7MktGgRFKwvNwl5L3Fprchr/iK6C09iUdn60ZsKcKsfTm0eBoLmvSTHZCHM2wXQ==",
+            "version": "2.7.0",
+            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.7.0.tgz",
+            "integrity": "sha512-y0VEcdv1j61hblxBMQWGqdKC4TgGm9tu+9lvoMXz4RaDzwkmzfFpNMo32tMrJGiP23kk+IiXz6r41M1vcL2OlQ==",
             "requires": {
                 "ansi-styles": "3.2.1",
                 "cheerio": "0.20.0",
                 "he": "1.2.0",
-                "mkdirp": "0.5.1",
+                "mkdirp": "^1.0.4",
                 "moment": "^2.20.1",
                 "nconf": "0.10.0",
                 "ora": "3.0.0",
@@ -1640,17 +1512,7 @@
                 "supports-color": "5.5.0",
                 "underscore": "1.9.1",
                 "wordwrap": "1.0.0",
-                "yargs": "12.0.4"
-            },
-            "dependencies": {
-                "mkdirp": {
-                    "version": "0.5.1",
-                    "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
-                    "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
-                    "requires": {
-                        "minimist": "0.0.8"
-                    }
-                }
+                "yargs": "^15.3.1"
             }
         },
         "wcwidth": {
@@ -1676,14 +1538,6 @@
                 "tr46": "~0.0.1"
             }
         },
-        "which": {
-            "version": "1.3.1",
-            "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
-            "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
-            "requires": {
-                "isexe": "^2.0.0"
-            }
-        },
         "which-module": {
             "version": "2.0.0",
             "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
@@ -1762,90 +1616,104 @@
             "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE="
         },
         "yargs": {
-            "version": "12.0.4",
-            "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.4.tgz",
-            "integrity": "sha512-f5esswlPO351AnejaO2A1ZZr0zesz19RehQKwiRDqWtrraWrJy16tsUIKgDXFMVytvNOHPVmTiaTh3wO67I0fQ==",
+            "version": "15.3.1",
+            "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz",
+            "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==",
             "requires": {
-                "cliui": "^4.0.0",
+                "cliui": "^6.0.0",
                 "decamelize": "^1.2.0",
-                "find-up": "^3.0.0",
-                "get-caller-file": "^1.0.1",
-                "os-locale": "^3.0.0",
+                "find-up": "^4.1.0",
+                "get-caller-file": "^2.0.1",
                 "require-directory": "^2.1.1",
-                "require-main-filename": "^1.0.1",
+                "require-main-filename": "^2.0.0",
                 "set-blocking": "^2.0.0",
-                "string-width": "^2.0.0",
+                "string-width": "^4.2.0",
                 "which-module": "^2.0.0",
-                "y18n": "^3.2.1 || ^4.0.0",
-                "yargs-parser": "^11.1.0"
+                "y18n": "^4.0.0",
+                "yargs-parser": "^18.1.1"
             },
             "dependencies": {
                 "ansi-regex": {
-                    "version": "3.0.0",
-                    "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
-                    "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
+                    "version": "5.0.0",
+                    "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+                    "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
+                },
+                "ansi-styles": {
+                    "version": "4.2.1",
+                    "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+                    "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+                    "requires": {
+                        "@types/color-name": "^1.1.1",
+                        "color-convert": "^2.0.1"
+                    }
                 },
                 "cliui": {
-                    "version": "4.1.0",
-                    "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
-                    "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
+                    "version": "6.0.0",
+                    "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+                    "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
                     "requires": {
-                        "string-width": "^2.1.1",
-                        "strip-ansi": "^4.0.0",
-                        "wrap-ansi": "^2.0.0"
+                        "string-width": "^4.2.0",
+                        "strip-ansi": "^6.0.0",
+                        "wrap-ansi": "^6.2.0"
                     }
                 },
-                "invert-kv": {
-                    "version": "2.0.0",
-                    "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
-                    "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA=="
+                "color-convert": {
+                    "version": "2.0.1",
+                    "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+                    "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+                    "requires": {
+                        "color-name": "~1.1.4"
+                    }
+                },
+                "color-name": {
+                    "version": "1.1.4",
+                    "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+                    "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
                 },
                 "is-fullwidth-code-point": {
-                    "version": "2.0.0",
-                    "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
-                    "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
+                    "version": "3.0.0",
+                    "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+                    "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
                 },
-                "lcid": {
-                    "version": "2.0.0",
-                    "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
-                    "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
+                "string-width": {
+                    "version": "4.2.0",
+                    "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+                    "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
                     "requires": {
-                        "invert-kv": "^2.0.0"
+                        "emoji-regex": "^8.0.0",
+                        "is-fullwidth-code-point": "^3.0.0",
+                        "strip-ansi": "^6.0.0"
                     }
                 },
-                "os-locale": {
-                    "version": "3.1.0",
-                    "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
-                    "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
+                "strip-ansi": {
+                    "version": "6.0.0",
+                    "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+                    "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
                     "requires": {
-                        "execa": "^1.0.0",
-                        "lcid": "^2.0.0",
-                        "mem": "^4.0.0"
+                        "ansi-regex": "^5.0.0"
                     }
                 },
-                "string-width": {
-                    "version": "2.1.1",
-                    "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
-                    "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+                "wrap-ansi": {
+                    "version": "6.2.0",
+                    "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+                    "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
                     "requires": {
-                        "is-fullwidth-code-point": "^2.0.0",
-                        "strip-ansi": "^4.0.0"
+                        "ansi-styles": "^4.0.0",
+                        "string-width": "^4.1.0",
+                        "strip-ansi": "^6.0.0"
                     }
                 },
-                "strip-ansi": {
+                "y18n": {
                     "version": "4.0.0",
-                    "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
-                    "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
-                    "requires": {
-                        "ansi-regex": "^3.0.0"
-                    }
+                    "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+                    "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="
                 }
             }
         },
         "yargs-parser": {
-            "version": "11.1.1",
-            "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz",
-            "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==",
+            "version": "18.1.3",
+            "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+            "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
             "requires": {
                 "camelcase": "^5.0.0",
                 "decamelize": "^1.2.0"
diff --git a/package.json b/package.json
index 933ce6b6..1a7c206c 100644
--- a/package.json
+++ b/package.json
@@ -295,7 +295,8 @@
                             "ruby",
                             "rust",
                             "scala",
-                            "swift"
+                            "swift",
+                            "typescript"
                         ],
                         "scope": "application",
                         "description": "Default language for solving the problems."
@@ -675,6 +676,6 @@
         "markdown-it": "^8.4.2",
         "require-from-string": "^2.0.2",
         "unescape-js": "^1.1.1",
-        "vsc-leetcode-cli": "2.6.23"
+        "vsc-leetcode-cli": "2.7.0"
     }
 }
diff --git a/src/shared.ts b/src/shared.ts
index d9d156d8..9b6a749a 100644
--- a/src/shared.ts
+++ b/src/shared.ts
@@ -36,6 +36,7 @@ export const languages: string[] = [
     "rust",
     "scala",
     "swift",
+    "typescript",
 ];
 
 export const langExt: Map<string, string> = new Map([
@@ -55,6 +56,7 @@ export const langExt: Map<string, string> = new Map([
     ["rust", "rs"],
     ["scala", "scala"],
     ["swift", "swift"],
+    ["typescript", "ts"],
 ]);
 
 export enum ProblemState {

From 75051806161e02c5071d29f99e3fe6f062d45f60 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Sat, 27 Jun 2020 16:26:30 +0800
Subject: [PATCH 64/92] Prepare for 0.17.0 (#586)

* Prepare for 0.17.0

* Update marketplace URL
---
 CHANGELOG.md         | 7 +++++++
 README.md            | 4 ++--
 docs/README_zh-CN.md | 4 ++--
 package-lock.json    | 2 +-
 package.json         | 4 ++--
 5 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 93ccefa0..ffa84ef5 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,13 @@ All notable changes to the "leetcode" extension will be documented in this file.
 
 Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
 
+## [0.17.0]
+### Added
+- Add TypeScript support [#560](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/560)
+
+### Changed
+- Update the UI resources [PR#561](https://github.com/LeetCode-OpenSource/vscode-leetcode/pull/561)
+
 ## [0.16.2]
 ### Added
 - New Category: `Concurrency` [CLI#42](https://github.com/leetcode-tools/leetcode-cli/pull/42)
diff --git a/README.md b/README.md
index 07b9b68b..4cbf9b6f 100644
--- a/README.md
+++ b/README.md
@@ -12,8 +12,8 @@
   <a href="https://gitter.im/vscode-leetcode/Lobby">
     <img src="https://img.shields.io/gitter/room/LeetCode-OpenSource/vscode-leetcode.svg?style=flat-square" alt="">
   </a>
-  <a href="https://marketplace.visualstudio.com/items?itemName=shengchen.vscode-leetcode">
-    <img src="https://img.shields.io/visual-studio-marketplace/d/shengchen.vscode-leetcode.svg?style=flat-square" alt="">
+  <a href="https://marketplace.visualstudio.com/items?itemName=LeetCode.vscode-leetcode">
+    <img src="https://img.shields.io/visual-studio-marketplace/d/LeetCode.vscode-leetcode.svg?style=flat-square" alt="">
   </a>
   <a href="https://github.com/LeetCode-OpenSource/vscode-leetcode/blob/master/LICENSE">
     <img src="https://img.shields.io/github/license/LeetCode-OpenSource/vscode-leetcode.svg?style=flat-square" alt="">
diff --git a/docs/README_zh-CN.md b/docs/README_zh-CN.md
index 194c43d7..89d7d10f 100644
--- a/docs/README_zh-CN.md
+++ b/docs/README_zh-CN.md
@@ -12,8 +12,8 @@
   <a href="https://gitter.im/vscode-leetcode/Lobby">
     <img src="https://img.shields.io/gitter/room/LeetCode-OpenSource/vscode-leetcode.svg?style=flat-square" alt="">
   </a>
-  <a href="https://marketplace.visualstudio.com/items?itemName=shengchen.vscode-leetcode">
-    <img src="https://img.shields.io/visual-studio-marketplace/d/shengchen.vscode-leetcode.svg?style=flat-square" alt="">
+  <a href="https://marketplace.visualstudio.com/items?itemName=LeetCode.vscode-leetcode">
+    <img src="https://img.shields.io/visual-studio-marketplace/d/LeetCode.vscode-leetcode.svg?style=flat-square" alt="">
   </a>
   <a href="https://github.com/LeetCode-OpenSource/vscode-leetcode/blob/master/LICENSE">
     <img src="https://img.shields.io/github/license/LeetCode-OpenSource/vscode-leetcode.svg?style=flat-square" alt="">
diff --git a/package-lock.json b/package-lock.json
index 1144cdac..2332f2e1 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
 {
     "name": "vscode-leetcode",
-    "version": "0.16.2",
+    "version": "0.17.0",
     "lockfileVersion": 1,
     "requires": true,
     "dependencies": {
diff --git a/package.json b/package.json
index 1a7c206c..90d6f0e1 100644
--- a/package.json
+++ b/package.json
@@ -2,9 +2,9 @@
     "name": "vscode-leetcode",
     "displayName": "LeetCode",
     "description": "Solve LeetCode problems in VS Code",
-    "version": "0.16.2",
+    "version": "0.17.0",
     "author": "Sheng Chen",
-    "publisher": "shengchen",
+    "publisher": "LeetCode",
     "license": "MIT",
     "icon": "resources/LeetCode.png",
     "engines": {

From 7aeb97eecbf3362c0331faf8c3840a56d66f00d9 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Mon, 29 Jun 2020 10:52:04 +0800
Subject: [PATCH 65/92] Update the URLs (#587)

---
 .github/ISSUE_TEMPLATE/question.md |   6 +-
 ACKNOWLEDGEMENTS.md                |  38 +++----
 CHANGELOG.md                       | 160 ++++++++++++++---------------
 README.md                          |  34 +++---
 docs/README_zh-CN.md               |  34 +++---
 package.json                       |   4 +-
 6 files changed, 138 insertions(+), 138 deletions(-)

diff --git a/.github/ISSUE_TEMPLATE/question.md b/.github/ISSUE_TEMPLATE/question.md
index 6253f0a4..c697e09a 100644
--- a/.github/ISSUE_TEMPLATE/question.md
+++ b/.github/ISSUE_TEMPLATE/question.md
@@ -3,11 +3,11 @@ name: 💬 Questions / Help
 about: If you have questions, please check our documents first
 ---
 
-Before you submit an question we recommend you to check out the [DOCUMENT](https://github.com/jdneo/vscode-leetcode/blob/master/README.md) first.
+Before you submit an question we recommend you to check out the [DOCUMENT](https://github.com/LeetCode-OpenSource/vscode-leetcode/blob/master/README.md) first.
 
 You can also find more information in:
-- [TROUBLESHOOTING](https://github.com/jdneo/vscode-leetcode/wiki/Troubleshooting)
-- [FAQ](https://github.com/jdneo/vscode-leetcode/wiki/FAQ)
+- [TROUBLESHOOTING](https://github.com/LeetCode-OpenSource/vscode-leetcode/wiki/Troubleshooting)
+- [FAQ](https://github.com/LeetCode-OpenSource/vscode-leetcode/wiki/FAQ)
 
 ## 💬 Questions and Help
 
diff --git a/ACKNOWLEDGEMENTS.md b/ACKNOWLEDGEMENTS.md
index 8f9ea9ce..6c7758be 100644
--- a/ACKNOWLEDGEMENTS.md
+++ b/ACKNOWLEDGEMENTS.md
@@ -3,22 +3,22 @@
 A big thanks to the following individuals for contributing:
 
 - [@JIEJIAN21](https://github.com/JIEJIAN21) - thanks for logo and icon design
-- [@TsFreddie](https://github.com/TsFreddie) — [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=TsFreddie)
-- [@ntt2k](https://github.com/ntt2k) — [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=ntt2k)
-- [@purocean](https://github.com/purocean) — [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=purocean)
-- [@Xeonacid](https://github.com/Xeonacid) — [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=Xeonacid)
-- [@Himself65](https://github.com/Himself65) — [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=Himself65)
-- [@Vigilans](https://github.com/Vigilans) — [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=Vigilans)
-- [@ringcrl](https://github.com/ringcrl) — [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=ringcrl)
-- [@pujiaxun](https://github.com/pujiaxun) — [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=pujiaxun)
-- [@edvardchen](https://github.com/edvardchen) — [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=edvardchen)
-- [@poppinlp](https://github.com/poppinlp) — [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=poppinlp)
-- [@xuzaixian](https://github.com/xuzaixian) — [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=xuzaixian)
-- [@ZainChen](https://github.com/ZainChen) — [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=ZainChen)
-- [@houtianze](https://github.com/houtianze) — [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=houtianze)
-- [@magic-akari](https://github.com/magic-akari) - [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=magic-akari)
-- [@SF-Zhou](https://github.com/SF-Zhou) - [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=SF-Zhou)
-- [@fuafa](https://github.com/fuafa) - [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=fuafa)
-- [@iFun](https://github.com/iFun) - [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=iFun)
-- [@hologerry](https://github.com/hologerry) - [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=hologerry)
-- [@yihong0618](https://github.com/yihong0618) - [contributions](https://github.com/jdneo/vscode-leetcode/commits?author=yihong0618)
+- [@TsFreddie](https://github.com/TsFreddie) — [contributions](https://github.com/LeetCode-OpenSource/vscode-leetcode/commits?author=TsFreddie)
+- [@ntt2k](https://github.com/ntt2k) — [contributions](https://github.com/LeetCode-OpenSource/vscode-leetcode/commits?author=ntt2k)
+- [@purocean](https://github.com/purocean) — [contributions](https://github.com/LeetCode-OpenSource/vscode-leetcode/commits?author=purocean)
+- [@Xeonacid](https://github.com/Xeonacid) — [contributions](https://github.com/LeetCode-OpenSource/vscode-leetcode/commits?author=Xeonacid)
+- [@Himself65](https://github.com/Himself65) — [contributions](https://github.com/LeetCode-OpenSource/vscode-leetcode/commits?author=Himself65)
+- [@Vigilans](https://github.com/Vigilans) — [contributions](https://github.com/LeetCode-OpenSource/vscode-leetcode/commits?author=Vigilans)
+- [@ringcrl](https://github.com/ringcrl) — [contributions](https://github.com/LeetCode-OpenSource/vscode-leetcode/commits?author=ringcrl)
+- [@pujiaxun](https://github.com/pujiaxun) — [contributions](https://github.com/LeetCode-OpenSource/vscode-leetcode/commits?author=pujiaxun)
+- [@edvardchen](https://github.com/edvardchen) — [contributions](https://github.com/LeetCode-OpenSource/vscode-leetcode/commits?author=edvardchen)
+- [@poppinlp](https://github.com/poppinlp) — [contributions](https://github.com/LeetCode-OpenSource/vscode-leetcode/commits?author=poppinlp)
+- [@xuzaixian](https://github.com/xuzaixian) — [contributions](https://github.com/LeetCode-OpenSource/vscode-leetcode/commits?author=xuzaixian)
+- [@ZainChen](https://github.com/ZainChen) — [contributions](https://github.com/LeetCode-OpenSource/vscode-leetcode/commits?author=ZainChen)
+- [@houtianze](https://github.com/houtianze) — [contributions](https://github.com/LeetCode-OpenSource/vscode-leetcode/commits?author=houtianze)
+- [@magic-akari](https://github.com/magic-akari) - [contributions](https://github.com/LeetCode-OpenSource/vscode-leetcode/commits?author=magic-akari)
+- [@SF-Zhou](https://github.com/SF-Zhou) - [contributions](https://github.com/LeetCode-OpenSource/vscode-leetcode/commits?author=SF-Zhou)
+- [@fuafa](https://github.com/fuafa) - [contributions](https://github.com/LeetCode-OpenSource/vscode-leetcode/commits?author=fuafa)
+- [@iFun](https://github.com/iFun) - [contributions](https://github.com/LeetCode-OpenSource/vscode-leetcode/commits?author=iFun)
+- [@hologerry](https://github.com/hologerry) - [contributions](https://github.com/LeetCode-OpenSource/vscode-leetcode/commits?author=hologerry)
+- [@yihong0618](https://github.com/yihong0618) - [contributions](https://github.com/LeetCode-OpenSource/vscode-leetcode/commits?author=yihong0618)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ffa84ef5..22a3fc38 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -13,117 +13,117 @@ Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how
 ## [0.16.2]
 ### Added
 - New Category: `Concurrency` [CLI#42](https://github.com/leetcode-tools/leetcode-cli/pull/42)
-- New configuration to better configure how to show the description [#310](https://github.com/jdneo/vscode-leetcode/issues/310)
+- New configuration to better configure how to show the description [#310](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/310)
 
 ### Removed
-- Removed the deprecated setting `leetcode.enableShortcuts` [PR#520](https://github.com/jdneo/vscode-leetcode/pull/520)
-- Removed the deprecated setting `leetcode.outputFolder` [PR#521](https://github.com/jdneo/vscode-leetcode/pull/521)
+- Removed the deprecated setting `leetcode.enableShortcuts` [PR#520](https://github.com/LeetCode-OpenSource/vscode-leetcode/pull/520)
+- Removed the deprecated setting `leetcode.outputFolder` [PR#521](https://github.com/LeetCode-OpenSource/vscode-leetcode/pull/521)
 
 ## [0.16.1]
 ### Added
-- Can show the problem in current workspace even if it's not a LeetCode workspace [#373](https://github.com/jdneo/vscode-leetcode/issues/373)
+- Can show the problem in current workspace even if it's not a LeetCode workspace [#373](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/373)
 
 ### Fixed
-[Bugs fixed](https://github.com/jdneo/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.16.1+is%3Aclosed+label%3Abug)
+[Bugs fixed](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.16.1+is%3Aclosed+label%3Abug)
 
 ## [0.16.0]
 ### Added
-- Support GitHub login and LinkedIn login [PR#496](https://github.com/jdneo/vscode-leetcode/pull/496)
+- Support GitHub login and LinkedIn login [PR#496](https://github.com/LeetCode-OpenSource/vscode-leetcode/pull/496)
 
 ## [0.15.8]
 ### Added
-- Add a new command `Sign In by Cookie` to workaround the issue that [users cannot login to LeetCode](https://github.com/jdneo/vscode-leetcode/issues/478). Please check the [workaround steps](https://github.com/jdneo/vscode-leetcode/tree/master#%EF%B8%8F-attention-%EF%B8%8F--workaround-to-login-to-leetcode-endpoint) for more details!
+- Add a new command `Sign In by Cookie` to workaround the issue that [users cannot login to LeetCode](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/478). Please check the [workaround steps](https://github.com/LeetCode-OpenSource/vscode-leetcode/tree/master#%EF%B8%8F-attention-%EF%B8%8F--workaround-to-login-to-leetcode-endpoint) for more details!
 
 ### Changed
-- Update the explorer icons to be align with the VS Code design [#460](https://github.com/jdneo/vscode-leetcode/issues/460)
+- Update the explorer icons to be align with the VS Code design [#460](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/460)
 
 ## [0.15.7]
 ### Fixed
-[Bugs fixed](https://github.com/jdneo/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.15.7+is%3Aclosed+label%3Abug)
+[Bugs fixed](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.15.7+is%3Aclosed+label%3Abug)
 
 ## [0.15.6]
 ### Added
-- Add a link to the solution page [#424](https://github.com/jdneo/vscode-leetcode/issues/424)
+- Add a link to the solution page [#424](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/424)
 
 ### Fixed
-[Bugs fixed](https://github.com/jdneo/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.15.6+is%3Aclosed+label%3Abug)
+[Bugs fixed](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.15.6+is%3Aclosed+label%3Abug)
 
 ## [0.15.5]
 ### Added
-- Add a link to the discussion page [#420](https://github.com/jdneo/vscode-leetcode/issues/420)
+- Add a link to the discussion page [#420](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/420)
 
 ### Fixed
-[Bugs fixed](https://github.com/jdneo/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.15.5+is%3Aclosed+label%3Abug)
+[Bugs fixed](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.15.5+is%3Aclosed+label%3Abug)
 
 ## [0.15.4]
 ### Added
-- Add a new setting `leetcode.filePath`. Now users can use this setting to dynamicly specify the relative folder name and file name. [#PR380](https://github.com/jdneo/vscode-leetcode/pull/380)
+- Add a new setting `leetcode.filePath`. Now users can use this setting to dynamicly specify the relative folder name and file name. [#PR380](https://github.com/LeetCode-OpenSource/vscode-leetcode/pull/380)
 
 ### Fixed
-- Missing language `Rust` in the supported language list. [#PR412](https://github.com/jdneo/vscode-leetcode/pull/412)
-- Cannot show output when the answer is wrong. [#414](https://github.com/jdneo/vscode-leetcode/issues/414)
+- Missing language `Rust` in the supported language list. [#PR412](https://github.com/LeetCode-OpenSource/vscode-leetcode/pull/412)
+- Cannot show output when the answer is wrong. [#414](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/414)
 
 ## [0.15.3]
 ### Added
-- Support `Pick One` [#263](https://github.com/jdneo/vscode-leetcode/issues/263)
-- Support toggling the favorite problems [#378](https://github.com/jdneo/vscode-leetcode/issues/378)
+- Support `Pick One` [#263](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/263)
+- Support toggling the favorite problems [#378](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/378)
 
 ### Changed
-- Update the activity bar icon [#395](https://github.com/jdneo/vscode-leetcode/issues/263)
+- Update the activity bar icon [#395](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/263)
 
 ### Fixed
-[Bugs fixed](https://github.com/jdneo/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.15.3+is%3Aclosed+label%3Abug)
+[Bugs fixed](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.15.3+is%3Aclosed+label%3Abug)
 
 ## [0.15.2]
 ### Added
-- Prompt to open the workspace for LeetCode [#130](https://github.com/jdneo/vscode-leetcode/issues/130)
-- Support deleting sessions [#198](https://github.com/jdneo/vscode-leetcode/issues/130)
+- Prompt to open the workspace for LeetCode [#130](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/130)
+- Support deleting sessions [#198](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/130)
 
 ### Fixed
-[Bugs fixed](https://github.com/jdneo/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.15.2+is%3Aclosed+label%3Abug)
+[Bugs fixed](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.15.2+is%3Aclosed+label%3Abug)
 
 ## [0.15.1]
 ### Fixed
-[Bugs fixed](https://github.com/jdneo/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.15.1+is%3Aclosed+label%3Abug)
+[Bugs fixed](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.15.1+is%3Aclosed+label%3Abug)
 
 ## [0.15.0]
 ### Added
-- Auto refresh the explorer after submitting [#91](https://github.com/jdneo/vscode-leetcode/issues/91)
-- Add a editor shortcut `Description` to show the problem description [#286](https://github.com/jdneo/vscode-leetcode/issues/286)
-- Support customizing the shortcuts in editor [#335](https://github.com/jdneo/vscode-leetcode/issues/335)
+- Auto refresh the explorer after submitting [#91](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/91)
+- Add a editor shortcut `Description` to show the problem description [#286](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/286)
+- Support customizing the shortcuts in editor [#335](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/335)
 
 ### Fixed
-[Bugs fixed](https://github.com/jdneo/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.15.0+is%3Aclosed+label%3Abug)
+[Bugs fixed](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.15.0+is%3Aclosed+label%3Abug)
 
 ## [0.14.3]
 ### Added
-- Support interpolation for `leetcode.outputFolder` settings [#151](https://github.com/jdneo/vscode-leetcode/issues/151)
+- Support interpolation for `leetcode.outputFolder` settings [#151](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/151)
 
 ### Fixed
-[Bugs fixed](https://github.com/jdneo/vscode-leetcode/issues?q=is%3Aissue+is%3Aclosed+milestone%3A0.14.3+label%3Abug)
+[Bugs fixed](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues?q=is%3Aissue+is%3Aclosed+milestone%3A0.14.3+label%3Abug)
 
 ## [0.14.2]
 ### Added
-- Add the `All` category in the LeetCode Explorer [#184](https://github.com/jdneo/vscode-leetcode/issues/184)
-- Add shortcuts for `Show top voted solution` [#269](https://github.com/jdneo/vscode-leetcode/issues/269)
+- Add the `All` category in the LeetCode Explorer [#184](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/184)
+- Add shortcuts for `Show top voted solution` [#269](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/269)
 
 ### Fixed
-[Bugs fixed](https://github.com/jdneo/vscode-leetcode/issues?q=is%3Aissue+is%3Aclosed+label%3Abug+milestone%3A0.14.2)
+[Bugs fixed](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues?q=is%3Aissue+is%3Aclosed+label%3Abug+milestone%3A0.14.2)
 
 ## [0.14.1]
 ### Added
-- Add setting `leetcode.showCommentDescription` to specify whether including the problem description in comments or not [#287](https://github.com/jdneo/vscode-leetcode/issues/287)
+- Add setting `leetcode.showCommentDescription` to specify whether including the problem description in comments or not [#287](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/287)
 
 ## [0.14.0]
 ### Added
-- Add setting `leetcode.enableShortcuts` to specify whether to show the submit/test shortcuts in editor [#146](https://github.com/jdneo/vscode-leetcode/issues/146)
-- Add `Like` and `Dislike` counts in the problem description [#267](https://github.com/jdneo/vscode-leetcode/issues/267)
+- Add setting `leetcode.enableShortcuts` to specify whether to show the submit/test shortcuts in editor [#146](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/146)
+- Add `Like` and `Dislike` counts in the problem description [#267](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/267)
 
 ### Changed
 - Improve the `Preview`, `Result` and `Solution` views
 
 ### Fixed
-[Bugs fixed](https://github.com/jdneo/vscode-leetcode/issues?q=is%3Aissue+label%3Abug+is%3Aclosed+milestone%3A0.14.0)
+[Bugs fixed](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues?q=is%3Aissue+label%3Abug+is%3Aclosed+milestone%3A0.14.0)
 
 ## [0.13.3]
 ### Fixed
@@ -131,51 +131,51 @@ Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how
 
 ## [0.13.2]
 ### Added
-- Add a setting `leetcode.enableStatusBar` to specify whether the LeetCode status bar will be shown or not [#156](https://github.com/jdneo/vscode-leetcode/issues/156)
-- Add a setting `leetcode.nodePath` to specify the `Node.js` executable path [#227](https://github.com/jdneo/vscode-leetcode/issues/227)
+- Add a setting `leetcode.enableStatusBar` to specify whether the LeetCode status bar will be shown or not [#156](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/156)
+- Add a setting `leetcode.nodePath` to specify the `Node.js` executable path [#227](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/227)
 
 ### Changed
-- Update the activity bar icon, See: [#225](https://github.com/jdneo/vscode-leetcode/pull/225)
+- Update the activity bar icon, See: [#225](https://github.com/LeetCode-OpenSource/vscode-leetcode/pull/225)
 
 ### Fixed
-[Bugs fixed](https://github.com/jdneo/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.13.2+is%3Aclosed+label%3Abug)
+[Bugs fixed](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.13.2+is%3Aclosed+label%3Abug)
 
 ## [0.13.1]
 ### Fixed
-[Bugs fixed](https://github.com/jdneo/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.13.1+is%3Aclosed+label%3Abug)
+[Bugs fixed](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.13.1+is%3Aclosed+label%3Abug)
 
 ## [0.13.0]
 ### Added
-- Preview the problem description [#131](https://github.com/jdneo/vscode-leetcode/issues/131)
-- Show top voted solution [#193](https://github.com/jdneo/vscode-leetcode/pull/193)
-- Add `collapse all` for the explorer [#197](https://github.com/jdneo/vscode-leetcode/pull/197)
+- Preview the problem description [#131](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/131)
+- Show top voted solution [#193](https://github.com/LeetCode-OpenSource/vscode-leetcode/pull/193)
+- Add `collapse all` for the explorer [#197](https://github.com/LeetCode-OpenSource/vscode-leetcode/pull/197)
 
 ### Fixed
-[Bugs fixed](https://github.com/jdneo/vscode-leetcode/issues?q=is%3Aissue+is%3Aclosed+milestone%3A0.13.0+label%3Abug)
+[Bugs fixed](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues?q=is%3Aissue+is%3Aclosed+milestone%3A0.13.0+label%3Abug)
 
 ## [0.12.0]
 ### Added
-- Add new command `LeetCode: Switch Default Language` to support switching the default language [#115](https://github.com/jdneo/vscode-leetcode/issues/115)
-- Support `PHP` and `Rust` ([#83](https://github.com/jdneo/vscode-leetcode/issues/83), [#103](https://github.com/jdneo/vscode-leetcode/issues/103))
+- Add new command `LeetCode: Switch Default Language` to support switching the default language [#115](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/115)
+- Support `PHP` and `Rust` ([#83](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/83), [#103](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/103))
 
 ### Fixed
-- Cannot retrieve time and memory result [#105](https://github.com/jdneo/vscode-leetcode/issues/105)
-- Power operator displays in a wrong way [#74](https://github.com/jdneo/vscode-leetcode/issues/74)
+- Cannot retrieve time and memory result [#105](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/105)
+- Power operator displays in a wrong way [#74](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/74)
 
 ## [0.11.0]
 ### Added
-- Add new setting: `leetcode.outputFolder` to customize the sub-directory to save the files generated by 'Show Problem' [#119](https://github.com/jdneo/vscode-leetcode/issues/119)
-- Add tooltips for sub-category nodes in LeetCode Explorer [#143](https://github.com/jdneo/vscode-leetcode/pull/143)
+- Add new setting: `leetcode.outputFolder` to customize the sub-directory to save the files generated by 'Show Problem' [#119](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/119)
+- Add tooltips for sub-category nodes in LeetCode Explorer [#143](https://github.com/LeetCode-OpenSource/vscode-leetcode/pull/143)
 
 ### Changed
-- Now when triggering 'Show Problem', the extension will not generate a new file if it already exists [#59](https://github.com/jdneo/vscode-leetcode/issues/59)
+- Now when triggering 'Show Problem', the extension will not generate a new file if it already exists [#59](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/59)
 
 ### Fixed
-- Log in timeout when proxy is enabled [#117](https://github.com/jdneo/vscode-leetcode/issues/117)
+- Log in timeout when proxy is enabled [#117](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/117)
 
 ## [0.10.2]
 ### Fixed
-- Test cases cannot have double quotes [#60](https://github.com/jdneo/vscode-leetcode/issues/60)
+- Test cases cannot have double quotes [#60](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/60)
 
 ## [0.10.1]
 ### Changed
@@ -183,13 +183,13 @@ Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how
 
 ## [0.10.0]
 ### Added
-- Add an extension setting to hide solved problems [#95](https://github.com/jdneo/vscode-leetcode/issues/95)
-- Support categorize problems by company, tag, difficulty and favorite [#67](https://github.com/jdneo/vscode-leetcode/issues/67)
+- Add an extension setting to hide solved problems [#95](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/95)
+- Support categorize problems by company, tag, difficulty and favorite [#67](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/67)
 
 ## [0.9.0]
 ### Changed
-- Improve the experience of switching endpoint [#85](https://github.com/jdneo/vscode-leetcode/issues/85)
-- Use web view to show the result page [#76](https://github.com/jdneo/vscode-leetcode/issues/76)
+- Improve the experience of switching endpoint [#85](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/85)
+- Use web view to show the result page [#76](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/76)
 
 
 ## [0.8.2]
@@ -197,7 +197,7 @@ Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how
 - Add Code Lens for submitting the answer to LeetCode
 
 ### Fixed
-- Fix the bug that the extension could not automatically sign in [#72](https://github.com/jdneo/vscode-leetcode/issues/72)
+- Fix the bug that the extension could not automatically sign in [#72](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/72)
 
 ## [0.8.1]
 ### Changed
@@ -205,67 +205,67 @@ Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how
 
 ## [0.8.0]
 ### Added
-- Support LeetCode CN [#50](https://github.com/jdneo/vscode-leetcode/issues/50)
-- Support Windows Subsystem for Linux [#47](https://github.com/jdneo/vscode-leetcode/issues/47)
+- Support LeetCode CN [#50](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/50)
+- Support Windows Subsystem for Linux [#47](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/47)
 
 ## [0.7.0]
 ### Added
-- Add spinner when submitting code [#43](https://github.com/jdneo/vscode-leetcode/issues/43)
+- Add spinner when submitting code [#43](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/43)
 
 ## [0.6.1]
 ### Added
-- Add Sign in action into LeetCode Explorer title area [#25](https://github.com/jdneo/vscode-leetcode/issues/25)
+- Add Sign in action into LeetCode Explorer title area [#25](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/25)
 
 ## [0.6.0]
 ### Changed
-- Move LeetCode explorer into activity bar [#39](https://github.com/jdneo/vscode-leetcode/issues/39)
+- Move LeetCode explorer into activity bar [#39](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/39)
 
 ### Added
-- Support trigger test & submit in the editor [#37](https://github.com/jdneo/vscode-leetcode/issues/37)
+- Support trigger test & submit in the editor [#37](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/37)
 
 ### Fixed
-- Fix the bug that cannot show problem [#41](https://github.com/jdneo/vscode-leetcode/issues/41)
+- Fix the bug that cannot show problem [#41](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/41)
 
 ## [0.5.1]
 ### Fixed
-- Fix the bug when user's path contains white spaces [#34](https://github.com/jdneo/vscode-leetcode/issues/34)
+- Fix the bug when user's path contains white spaces [#34](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/34)
 
 ## [0.5.0]
 ### Added
-- Support submit and test solution files from the file explorer in VS Code ([#24](https://github.com/jdneo/vscode-leetcode/issues/24), [#26](https://github.com/jdneo/vscode-leetcode/issues/26))
+- Support submit and test solution files from the file explorer in VS Code ([#24](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/24), [#26](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/26))
 
 ## [0.4.0]
 ### Added
-- Support locked problem [#20](https://github.com/jdneo/vscode-leetcode/issues/20)
+- Support locked problem [#20](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/20)
 
 ### Changed
-- Simplify the command 'LeetCode: Test Current File' to 'LeetCode: Test' [#18](https://github.com/jdneo/vscode-leetcode/issues/18)
-- Will automatically save current file when 'LeetCode: Test' command is triggered [#17](https://github.com/jdneo/vscode-leetcode/issues/17)
+- Simplify the command 'LeetCode: Test Current File' to 'LeetCode: Test' [#18](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/18)
+- Will automatically save current file when 'LeetCode: Test' command is triggered [#17](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/17)
 
 ## [0.3.0]
 ### Added
-- Test current solution file [#15](https://github.com/jdneo/vscode-leetcode/issues/15)
+- Test current solution file [#15](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/15)
 
 ## [0.2.1]
 ### Fixed
-- Fix the wrong icon bug in LeetCode Explorer [#9](https://github.com/jdneo/vscode-leetcode/issues/9)
-- Fix the switch session bug when login session is expired [#12](https://github.com/jdneo/vscode-leetcode/issues/12)
+- Fix the wrong icon bug in LeetCode Explorer [#9](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/9)
+- Fix the switch session bug when login session is expired [#12](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/12)
 
 ## [0.2.0]
 ### Added
-- Support setting the default language to solve problems [#5](https://github.com/jdneo/vscode-leetcode/issues/5)
+- Support setting the default language to solve problems [#5](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/5)
 
 ### Fixed
-- When user cancels login, no further actions will happen [#10](https://github.com/jdneo/vscode-leetcode/issues/10)
+- When user cancels login, no further actions will happen [#10](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/10)
 
 ## [0.1.2]
 ### Fixed
-- Fix the duplicated nodes in LeetCode Explorer bug [#6](https://github.com/jdneo/vscode-leetcode/issues/6)
+- Fix the duplicated nodes in LeetCode Explorer bug [#6](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/6)
 
 ## [0.1.1]
 ### Fixed
-- Fix a bug in LeetCode Explorer [#3](https://github.com/jdneo/vscode-leetcode/issues/3)
-- Remove the show problem command from command palette [#4](https://github.com/jdneo/vscode-leetcode/issues/4)
+- Fix a bug in LeetCode Explorer [#3](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/3)
+- Remove the show problem command from command palette [#4](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/4)
 
 ## [0.1.0]
 ### Added
diff --git a/README.md b/README.md
index 4cbf9b6f..490db51e 100644
--- a/README.md
+++ b/README.md
@@ -20,16 +20,16 @@
   </a>
 </p>
 
-- English Document | [中文文档](https://github.com/jdneo/vscode-leetcode/blob/master/docs/README_zh-CN.md)
+- English Document | [中文文档](https://github.com/LeetCode-OpenSource/vscode-leetcode/blob/master/docs/README_zh-CN.md)
 
 ## ❗️ Attention ❗️- Workaround to login to LeetCode endpoint
 > Note: If you are using `leetcode-cn.com`, you can just ignore this section.
 
-Recently we observed that [the extension cannot login to leetcode.com endpoint anymore](https://github.com/jdneo/vscode-leetcode/issues/478). The root cause of this issue is that leetcode.com changed its login mechanism and so far there is no ideal way to fix that issue.
+Recently we observed that [the extension cannot login to leetcode.com endpoint anymore](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/478). The root cause of this issue is that leetcode.com changed its login mechanism and so far there is no ideal way to fix that issue.
 
 Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround which can somehow mitigate this. Now you can simply click the `Sign In` button and then select `Third Party` login or `Cookie` login.
 
-> Note: If you want to use third-party login(**Recommended**), please make sure your account has been connected to the thrid-party. If you want to use `Cookie` login, click [here](https://github.com/jdneo/vscode-leetcode/issues/478#issuecomment-564757098) to see the steps.
+> Note: If you want to use third-party login(**Recommended**), please make sure your account has been connected to the thrid-party. If you want to use `Cookie` login, click [here](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/478#issuecomment-564757098) to see the steps.
 
 ## Requirements
 - [VS Code 1.30.1+](https://code.visualstudio.com/)
@@ -38,13 +38,13 @@ Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround wh
 
 ## Quick Start
 
-![demo](https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/docs/gifs/demo.gif)
+![demo](https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/gifs/demo.gif)
 
 ## Features
 
 ### Sign In/Out
 <p align="center">
-  <img src="https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/docs/imgs/sign_in.png" alt="Sign in" />
+  <img src="https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/sign_in.png" alt="Sign in" />
 </p>
 
 - Simply click `Sign in to LeetCode` in the `LeetCode Explorer` will let you **sign in** with your LeetCode account.
@@ -56,10 +56,10 @@ Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround wh
 
 ### Switch Endpoint
 <p align="center">
-  <img src="https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/docs/imgs/endpoint.png" alt="Switch Endpoint" />
+  <img src="https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/endpoint.png" alt="Switch Endpoint" />
 </p>
 
-- By clicking the button ![btn_endpoint](https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/docs/imgs/btn_endpoint.png) at the **explorer's navigation bar**, you can switch between different endpoints.
+- By clicking the button ![btn_endpoint](https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/btn_endpoint.png) at the **explorer's navigation bar**, you can switch between different endpoints.
 
 - The supported endpoints are:
   - **leetcode.com**
@@ -71,7 +71,7 @@ Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround wh
 
 ### Pick a Problem
 <p align="center">
-  <img src="https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/docs/imgs/pick_problem.png" alt="Pick a Problem" />
+  <img src="https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/pick_problem.png" alt="Pick a Problem" />
 </p>
 
 - Directly click on the problem or right click the problem in the `LeetCode Explorer` and select `Preview Problem` to see the problem description.
@@ -87,7 +87,7 @@ Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround wh
 
 ### Editor Shortcuts
 <p align="center">
-  <img src="https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/docs/imgs/shortcuts.png" alt="Editor Shortcuts" />
+  <img src="https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/shortcuts.png" alt="Editor Shortcuts" />
 </p>
 
 - The extension supports 4 editor shortcuts (aka Code Lens):
@@ -102,16 +102,16 @@ Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround wh
 
 ### Search problems by Keywords
 <p align="center">
-  <img src="https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/docs/imgs/search.png" alt="Search problems by Keywords" />
+  <img src="https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/search.png" alt="Search problems by Keywords" />
 </p>
 
-- By clicking the button ![btn_search](https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/docs/imgs/btn_search.png) at the **explorer's navigation bar**, you can search the problems by keywords.
+- By clicking the button ![btn_search](https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/btn_search.png) at the **explorer's navigation bar**, you can search the problems by keywords.
 
 ---
 
 ### Manage Session
 <p align="center">
-  <img src="https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/docs/imgs/session.png" alt="Manage Session" />
+  <img src="https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/session.png" alt="Manage Session" />
 </p>
 
 - To manage your LeetCode sessions, just clicking the `LeetCode: ***` at the bottom of the status bar. You can **switch** between sessions or **create**, **delete** a session.
@@ -126,7 +126,7 @@ Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround wh
 | `leetcode.useWsl`                                                                       | Specify whether to use WSL or not                                                                                                                                                                                                                                                                                                                                                                                                 | `false`            |
 | `leetcode.endpoint`                                                                     | Specify the active endpoint. Supported endpoints are: `leetcode`, `leetcode-cn`                                                                                                                                                                                                                                                                                                                                                   | `leetcode`         |
 | `leetcode.workspaceFolder`                                                              | Specify the path of the workspace folder to store the problem files.                                                                                                                                                                                                                                                                                                                                                              | `""`               |
-| `leetcode.filePath`                                                                     | Specify the relative path under the workspace and the file name to save the problem files. More details can be found [here](https://github.com/jdneo/vscode-leetcode/wiki/Customize-the-Relative-Folder-and-the-File-Name-of-the-Problem-File).                                                                                                                                                                                   |                    |
+| `leetcode.filePath`                                                                     | Specify the relative path under the workspace and the file name to save the problem files. More details can be found [here](https://github.com/LeetCode-OpenSource/vscode-leetcode/wiki/Customize-the-Relative-Folder-and-the-File-Name-of-the-Problem-File).                                                                                                                                                                                   |                    |
 | `leetcode.enableStatusBar`                                                              | Specify whether the LeetCode status bar will be shown or not.                                                                                                                                                                                                                                                                                                                                                                     | `true`             |
 | `leetcode.editor.shortcuts`                                                             | Specify the customized shorcuts in editors. Supported values are: `submit`, `test`, `solution` and `description`.                                                                                                                                                                                                                                                                                                                 | `["submit, test"]` |
 | `leetcode.enableSideMode`                                                               | Specify whether `preview`, `solution` and `submission` tab should be grouped into the second editor column when solving a problem.                                                                                                                                                                                                                                                                                                | `true`             |
@@ -135,15 +135,15 @@ Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround wh
 
 ## Want Help?
 
-When you meet any problem, you can check out the [Troubleshooting](https://github.com/jdneo/vscode-leetcode/wiki/Troubleshooting) and [FAQ](https://github.com/jdneo/vscode-leetcode/wiki/FAQ) first.
+When you meet any problem, you can check out the [Troubleshooting](https://github.com/LeetCode-OpenSource/vscode-leetcode/wiki/Troubleshooting) and [FAQ](https://github.com/LeetCode-OpenSource/vscode-leetcode/wiki/FAQ) first.
 
-If your problem still cannot be addressed, feel free to reach us in the [Gitter Channel](https://gitter.im/vscode-leetcode/Lobby) or [file an issue](https://github.com/jdneo/vscode-leetcode/issues/new/choose).
+If your problem still cannot be addressed, feel free to reach us in the [Gitter Channel](https://gitter.im/vscode-leetcode/Lobby) or [file an issue](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/new/choose).
 
 ## Release Notes
 
-Refer to [CHANGELOG](https://github.com/jdneo/vscode-leetcode/blob/master/CHANGELOG.md)
+Refer to [CHANGELOG](https://github.com/LeetCode-OpenSource/vscode-leetcode/blob/master/CHANGELOG.md)
 
 ## Acknowledgement
 
 - This extension is based on [@skygragon](https://github.com/skygragon)'s [leetcode-cli](https://github.com/skygragon/leetcode-cli) open source project.
-- Special thanks to our [contributors](https://github.com/jdneo/vscode-leetcode/blob/master/ACKNOWLEDGEMENTS.md).
+- Special thanks to our [contributors](https://github.com/LeetCode-OpenSource/vscode-leetcode/blob/master/ACKNOWLEDGEMENTS.md).
diff --git a/docs/README_zh-CN.md b/docs/README_zh-CN.md
index 89d7d10f..6972902d 100644
--- a/docs/README_zh-CN.md
+++ b/docs/README_zh-CN.md
@@ -20,17 +20,17 @@
   </a>
 </p>
 
-- [English Document](https://github.com/jdneo/vscode-leetcode#requirements) | 中文文档
+- [English Document](https://github.com/LeetCode-OpenSource/vscode-leetcode#requirements) | 中文文档
 
 ## ❗️ 注意 ❗️- 无法登录 LeetCode 节点的临时解决办法
 > 注意:如果使用的是 `leetcode-cn.com` 账户,可以跳过此段落。
 
-近期我们发现插件出现了[无法登录 leetcode.com 节点的问题](https://github.com/jdneo/vscode-leetcode/issues/478)。原因是因为近期 leetcode.com 改变了登录机制,目前我们暂时没有找到解决该问题的完美解决方案。
+近期我们发现插件出现了[无法登录 leetcode.com 节点的问题](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/478)。原因是因为近期 leetcode.com 改变了登录机制,目前我们暂时没有找到解决该问题的完美解决方案。
 
 感谢 [@yihong0618](https://github.com/yihong0618) 提供了一个临时解决办法。现在你可以直接点击登录按钮并选择第三方登录或者 `Cookie` 登录。
 
 
-> 注意:如果你希望使用第三方登录(**推荐**),请确保你的账户已经与第三方账户连接。如果你希望通过 `Cookie` 登录,请点击[该连接](https://github.com/jdneo/vscode-leetcode/issues/478#issuecomment-564757098)查看登录步骤。
+> 注意:如果你希望使用第三方登录(**推荐**),请确保你的账户已经与第三方账户连接。如果你希望通过 `Cookie` 登录,请点击[该连接](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/478#issuecomment-564757098)查看登录步骤。
 
 ## 运行条件
 - [VS Code 1.23.0+](https://code.visualstudio.com/)
@@ -39,13 +39,13 @@
 
 ## 快速开始
 
-![demo](https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/docs/gifs/demo.gif)
+![demo](https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/gifs/demo.gif)
 
 ## 功能
 
 ### 登入登出
 <p align="center">
-  <img src="https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/docs/imgs/sign_in.png" alt="登入登出" />
+  <img src="https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/sign_in.png" alt="登入登出" />
 </p>
 
 - 点击 `LeetCode Explorer` 中的 `Sign in to LeetCode` 即可登入。
@@ -57,10 +57,10 @@
 
 ### 切换 LeetCode 版本
 <p align="center">
-  <img src="https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/docs/imgs/endpoint.png" alt="切换 LeetCode 版本" />
+  <img src="https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/endpoint.png" alt="切换 LeetCode 版本" />
 </p>
 
-- LeetCode 目前有**英文版**和**中文版**两种版本。点击 `LeetCode Explorer` 导航栏中的 ![btn_endpoint](https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/docs/imgs/btn_endpoint.png) 按钮可切换版本。
+- LeetCode 目前有**英文版**和**中文版**两种版本。点击 `LeetCode Explorer` 导航栏中的 ![btn_endpoint](https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/btn_endpoint.png) 按钮可切换版本。
 
 - 目前可切换的版本有:
   - **leetcode.com**
@@ -72,7 +72,7 @@
 
 ### 选择题目
 <p align="center">
-  <img src="https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/docs/imgs/pick_problem.png" alt="选择题目" />
+  <img src="https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/pick_problem.png" alt="选择题目" />
 </p>
 
 - 直接点击题目或者在 `LeetCode Explorer` 中**右键**题目并选择 `Preview Problem` 可查看题目描述
@@ -88,7 +88,7 @@
 
 ### 编辑器快捷方式
 <p align="center">
-  <img src="https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/docs/imgs/shortcuts.png" alt="Editor Shortcuts" />
+  <img src="https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/shortcuts.png" alt="Editor Shortcuts" />
 </p>
 
 - 插件会在编辑区域内支持四种不同的快捷方式(Code Lens):
@@ -103,16 +103,16 @@
 
 ### 通过关键字搜索题目
 <p align="center">
-  <img src="https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/docs/imgs/search.png" alt="通过关键字搜索题目" />
+  <img src="https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/search.png" alt="通过关键字搜索题目" />
 </p>
 
-- 点击 `LeetCode Explorer` 导航栏中的 ![btn_search](https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/docs/imgs/btn_search.png) 按钮可按照关键字搜索题目。
+- 点击 `LeetCode Explorer` 导航栏中的 ![btn_search](https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/btn_search.png) 按钮可按照关键字搜索题目。
 
 ---
 
 ### 管理存档
 <p align="center">
-  <img src="https://raw.githubusercontent.com/jdneo/vscode-leetcode/master/docs/imgs/session.png" alt="管理存档" />
+  <img src="https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/session.png" alt="管理存档" />
 </p>
 
 - 点击位于 VS Code 底部状态栏的 `LeetCode: ***` 管理 `LeetCode 存档`。你可以**切换**存档或者**创建**,**删除**存档。
@@ -127,7 +127,7 @@
 | `leetcode.useWsl`                                                                  | 指定是否启用 WSL                                                                                                                                                                                                                                                                                | `false`            |
 | `leetcode.endpoint`                                                                | 指定使用的终端,可用终端有:`leetcode`, `leetcode-cn`                                                                                                                                                                                                                                           | `leetcode`         |
 | `leetcode.workspaceFolder`                                                         | 指定保存文件的工作区目录                                                                                                                                                                                                                                                                        | `""`               |
-| `leetcode.filePath`                                                                | 指定生成题目文件的相对文件夹路径名和文件名。点击查看[更多详细用法](https://github.com/jdneo/vscode-leetcode/wiki/%E8%87%AA%E5%AE%9A%E4%B9%89%E9%A2%98%E7%9B%AE%E6%96%87%E4%BB%B6%E7%9A%84%E7%9B%B8%E5%AF%B9%E6%96%87%E4%BB%B6%E5%A4%B9%E8%B7%AF%E5%BE%84%E5%92%8C%E6%96%87%E4%BB%B6%E5%90%8D)。 |                    |
+| `leetcode.filePath`                                                                | 指定生成题目文件的相对文件夹路径名和文件名。点击查看[更多详细用法](https://github.com/LeetCode-OpenSource/vscode-leetcode/wiki/%E8%87%AA%E5%AE%9A%E4%B9%89%E9%A2%98%E7%9B%AE%E6%96%87%E4%BB%B6%E7%9A%84%E7%9B%B8%E5%AF%B9%E6%96%87%E4%BB%B6%E5%A4%B9%E8%B7%AF%E5%BE%84%E5%92%8C%E6%96%87%E4%BB%B6%E5%90%8D)。 |                    |
 | `leetcode.enableStatusBar`                                                         | 指定是否在 VS Code 下方显示插件状态栏。                                                                                                                                                                                                                                                         | `true`             |
 | `leetcode.editor.shortcuts`                                                        | 指定在编辑器内所自定义的快捷方式。可用的快捷方式有: `submit`, `test`, `solution`, `description`。                                                                                                                                                                                               | `["submit, test"]` |
 | `leetcode.enableSideMode`                                                          | 指定在解决一道题时,是否将`问题预览`、`高票答案`与`提交结果`窗口集中在编辑器的第二栏。                                                                                                                                                                                                          | `true`             |
@@ -135,15 +135,15 @@
 | `leetcode.showCommentDescription`                                                  | 指定是否要在注释中显示题干。                                                                                                                                                                                                                                                                    | `false`            |
 
 ## 需要帮助?
-在遇到任何问题时,可以先查看一下[疑难解答](https://github.com/jdneo/vscode-leetcode/wiki/%E7%96%91%E9%9A%BE%E8%A7%A3%E7%AD%94)以及[常见问题](https://github.com/jdneo/vscode-leetcode/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)寻求帮助。
+在遇到任何问题时,可以先查看一下[疑难解答](https://github.com/LeetCode-OpenSource/vscode-leetcode/wiki/%E7%96%91%E9%9A%BE%E8%A7%A3%E7%AD%94)以及[常见问题](https://github.com/LeetCode-OpenSource/vscode-leetcode/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)寻求帮助。
 
-如果您的问题依然没有解决,可以在 [Gitter Channel](https://gitter.im/vscode-leetcode/Lobby) 联系我们,或者您也可以[记录一个新的 issue](https://github.com/jdneo/vscode-leetcode/issues/new/choose)。
+如果您的问题依然没有解决,可以在 [Gitter Channel](https://gitter.im/vscode-leetcode/Lobby) 联系我们,或者您也可以[记录一个新的 issue](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/new/choose)。
 
 ## 更新日志
 
-请参考[更新日志](https://github.com/jdneo/vscode-leetcode/blob/master/CHANGELOG.md)
+请参考[更新日志](https://github.com/LeetCode-OpenSource/vscode-leetcode/blob/master/CHANGELOG.md)
 
 ## 鸣谢
 
 - 本插件基于[@skygragon](https://github.com/skygragon)的[leetcode-cli](https://github.com/skygragon/leetcode-cli)开源项目制作。
-- 特别鸣谢这些[贡献者们](https://github.com/jdneo/vscode-leetcode/blob/master/ACKNOWLEDGEMENTS.md)。
+- 特别鸣谢这些[贡献者们](https://github.com/LeetCode-OpenSource/vscode-leetcode/blob/master/ACKNOWLEDGEMENTS.md)。
diff --git a/package.json b/package.json
index 90d6f0e1..b6164f17 100644
--- a/package.json
+++ b/package.json
@@ -12,9 +12,9 @@
     },
     "repository": {
         "type": "git",
-        "url": "https://github.com/jdneo/vscode-leetcode"
+        "url": "https://github.com/LeetCode-OpenSource/vscode-leetcode"
     },
-    "homepage": "https://github.com/jdneo/vscode-leetcode/blob/master/README.md",
+    "homepage": "https://github.com/LeetCode-OpenSource/vscode-leetcode/blob/master/README.md",
     "categories": [
         "Other",
         "Snippets"

From 7bc6d6ca55954b3d53cfc1481ea4fdc1303d21b1 Mon Sep 17 00:00:00 2001
From: Jerry Zou <jerry.zry@outlook.com>
Date: Thu, 2 Jul 2020 12:16:37 +0800
Subject: [PATCH 66/92] chore: update copyright parts of license (#592)

---
 LICENSE | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/LICENSE b/LICENSE
index 4401d6f6..fffb65eb 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,7 @@
 MIT License
 
-Copyright (c) 2018 jdneo
+Copyright (c) 2020-present 力扣
+Copyright (c) 2018-2019 jdneo
 
 Permission is hereby granted, free of charge, to any person obtaining a copy
 of this software and associated documentation files (the "Software"), to deal

From ade48fbbea9fd55bff628fe95e948c4d694871e1 Mon Sep 17 00:00:00 2001
From: yihong <zouzou0208@gmail.com>
Date: Tue, 21 Jul 2020 11:29:12 +0800
Subject: [PATCH 67/92] add: star command in shortcuts (#601)

---
 README.md                              |  5 +++--
 docs/README_zh-CN.md                   |  5 +++--
 package.json                           |  8 ++++++++
 src/codelens/CodeLensController.ts     |  4 ++--
 src/codelens/CustomCodeLensProvider.ts | 19 ++++++++++++++++++-
 src/commands/star.ts                   | 12 ++++++++++--
 src/utils/settingUtils.ts              |  5 +++++
 7 files changed, 49 insertions(+), 9 deletions(-)

diff --git a/README.md b/README.md
index 490db51e..3396d0c7 100644
--- a/README.md
+++ b/README.md
@@ -90,9 +90,10 @@ Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround wh
   <img src="https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/shortcuts.png" alt="Editor Shortcuts" />
 </p>
 
-- The extension supports 4 editor shortcuts (aka Code Lens):
+- The extension supports 5 editor shortcuts (aka Code Lens):
   - `Submit`: Submit your answer to LeetCode.
   - `Test`: Test your answer with customized test cases.
+  - `Star/Unstar`: Star or unstar the current problem.
   - `Solution`: Show the top voted solution for the current problem.
   - `Description`: Show the problem description page.
 
@@ -128,7 +129,7 @@ Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround wh
 | `leetcode.workspaceFolder`                                                              | Specify the path of the workspace folder to store the problem files.                                                                                                                                                                                                                                                                                                                                                              | `""`               |
 | `leetcode.filePath`                                                                     | Specify the relative path under the workspace and the file name to save the problem files. More details can be found [here](https://github.com/LeetCode-OpenSource/vscode-leetcode/wiki/Customize-the-Relative-Folder-and-the-File-Name-of-the-Problem-File).                                                                                                                                                                                   |                    |
 | `leetcode.enableStatusBar`                                                              | Specify whether the LeetCode status bar will be shown or not.                                                                                                                                                                                                                                                                                                                                                                     | `true`             |
-| `leetcode.editor.shortcuts`                                                             | Specify the customized shorcuts in editors. Supported values are: `submit`, `test`, `solution` and `description`.                                                                                                                                                                                                                                                                                                                 | `["submit, test"]` |
+| `leetcode.editor.shortcuts`                                                             | Specify the customized shorcuts in editors. Supported values are: `submit`, `test`, `star`, `solution` and `description`.                                                                                                                                                                                                                                                                                                                 | `["submit, test"]` |
 | `leetcode.enableSideMode`                                                               | Specify whether `preview`, `solution` and `submission` tab should be grouped into the second editor column when solving a problem.                                                                                                                                                                                                                                                                                                | `true`             |
 | `leetcode.nodePath`                                                                     | Specify the `Node.js` executable path. for example, C:\Program Files\nodejs\node.exe                                                                                                                                                                                                                                                                                                                                              | `node`             |
 | `leetcode.showCommentDescription`                                                       | Specify whether to include the problem description in the comments                                                                                                                                                                                                                                                                                                                                                                | `false`            |
diff --git a/docs/README_zh-CN.md b/docs/README_zh-CN.md
index 6972902d..608c6226 100644
--- a/docs/README_zh-CN.md
+++ b/docs/README_zh-CN.md
@@ -91,9 +91,10 @@
   <img src="https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/shortcuts.png" alt="Editor Shortcuts" />
 </p>
 
-- 插件会在编辑区域内支持四种不同的快捷方式(Code Lens):
+- 插件会在编辑区域内支持五种不同的快捷方式(Code Lens):
   - `Submit`: 提交你的答案至 LeetCode;
   - `Test`: 用给定的测试用例测试你的答案;
+  - `Star`: 收藏或取消收藏该问题;
   - `Solution`: 显示该问题的高票解答;
   - `Description`: 显示该问题的题目描述。
 
@@ -129,7 +130,7 @@
 | `leetcode.workspaceFolder`                                                         | 指定保存文件的工作区目录                                                                                                                                                                                                                                                                        | `""`               |
 | `leetcode.filePath`                                                                | 指定生成题目文件的相对文件夹路径名和文件名。点击查看[更多详细用法](https://github.com/LeetCode-OpenSource/vscode-leetcode/wiki/%E8%87%AA%E5%AE%9A%E4%B9%89%E9%A2%98%E7%9B%AE%E6%96%87%E4%BB%B6%E7%9A%84%E7%9B%B8%E5%AF%B9%E6%96%87%E4%BB%B6%E5%A4%B9%E8%B7%AF%E5%BE%84%E5%92%8C%E6%96%87%E4%BB%B6%E5%90%8D)。 |                    |
 | `leetcode.enableStatusBar`                                                         | 指定是否在 VS Code 下方显示插件状态栏。                                                                                                                                                                                                                                                         | `true`             |
-| `leetcode.editor.shortcuts`                                                        | 指定在编辑器内所自定义的快捷方式。可用的快捷方式有: `submit`, `test`, `solution`, `description`。                                                                                                                                                                                               | `["submit, test"]` |
+| `leetcode.editor.shortcuts`                                                        | 指定在编辑器内所自定义的快捷方式。可用的快捷方式有: `submit`, `test`, `star`, `solution`, `description`。                                                                                                                                                                                               | `["submit, test"]` |
 | `leetcode.enableSideMode`                                                          | 指定在解决一道题时,是否将`问题预览`、`高票答案`与`提交结果`窗口集中在编辑器的第二栏。                                                                                                                                                                                                          | `true`             |
 | `leetcode.nodePath`                                                                | 指定 `Node.js` 可执行文件的路径。如:C:\Program Files\nodejs\node.exe                                                                                                                                                                                                                           | `node`             |
 | `leetcode.showCommentDescription`                                                  | 指定是否要在注释中显示题干。                                                                                                                                                                                                                                                                    | `false`            |
diff --git a/package.json b/package.json
index b6164f17..81a8536b 100644
--- a/package.json
+++ b/package.json
@@ -629,8 +629,16 @@
                             "enum": [
                                 "submit",
                                 "test",
+                                "star",
                                 "solution",
                                 "description"
+                            ],
+                            "enumDescriptions": [
+                                "Submit your answer to LeetCode.",
+                                "Test your answer with customized test cases.",
+                                "Star or unstar the current problem.",
+                                "Show the top voted solution for the current problem.",
+                                "Show the problem description page."
                             ]
                         },
                         "description": "Customize the shorcuts in editors."
diff --git a/src/codelens/CodeLensController.ts b/src/codelens/CodeLensController.ts
index 8e2fa3c9..b41f28f0 100644
--- a/src/codelens/CodeLensController.ts
+++ b/src/codelens/CodeLensController.ts
@@ -2,7 +2,7 @@
 // Licensed under the MIT license.
 
 import { ConfigurationChangeEvent, Disposable, languages, workspace } from "vscode";
-import { CustomCodeLensProvider } from "./CustomCodeLensProvider";
+import { customCodeLensProvider, CustomCodeLensProvider } from "./CustomCodeLensProvider";
 
 class CodeLensController implements Disposable {
     private internalProvider: CustomCodeLensProvider;
@@ -10,7 +10,7 @@ class CodeLensController implements Disposable {
     private configurationChangeListener: Disposable;
 
     constructor() {
-        this.internalProvider = new CustomCodeLensProvider();
+        this.internalProvider = customCodeLensProvider;
 
         this.configurationChangeListener = workspace.onDidChangeConfiguration((event: ConfigurationChangeEvent) => {
             if (event.affectsConfiguration("leetcode.editor.shortcuts")) {
diff --git a/src/codelens/CustomCodeLensProvider.ts b/src/codelens/CustomCodeLensProvider.ts
index 4764e999..4b9b6491 100644
--- a/src/codelens/CustomCodeLensProvider.ts
+++ b/src/codelens/CustomCodeLensProvider.ts
@@ -2,6 +2,8 @@
 // Licensed under the MIT license.
 
 import * as vscode from "vscode";
+import { explorerNodeManager } from "../explorer/explorerNodeManager";
+import { LeetCodeNode } from "../explorer/LeetCodeNode";
 import { getEditorShortcuts } from "../utils/settingUtils";
 
 export class CustomCodeLensProvider implements vscode.CodeLensProvider {
@@ -23,10 +25,15 @@ export class CustomCodeLensProvider implements vscode.CodeLensProvider {
         }
 
         const content: string = document.getText();
-        const matchResult: RegExpMatchArray | null = content.match(/@lc app=.* id=.* lang=.*/);
+        const matchResult: RegExpMatchArray | null = content.match(/@lc app=.* id=(.*) lang=.*/);
         if (!matchResult) {
             return undefined;
         }
+        const nodeId: string | undefined = matchResult[1];
+        let node: LeetCodeNode | undefined;
+        if (nodeId) {
+            node = explorerNodeManager.getNodeById(nodeId);
+        }
 
         let codeLensLine: number = document.lineCount - 1;
         for (let i: number = document.lineCount - 1; i >= 0; i--) {
@@ -56,6 +63,14 @@ export class CustomCodeLensProvider implements vscode.CodeLensProvider {
             }));
         }
 
+        if (shortcuts.indexOf("star") >= 0 && node) {
+            codeLens.push(new vscode.CodeLens(range, {
+                title: node.isFavorite ? "Unstar" : "Star",
+                command: node.isFavorite ? "leetcode.removeFavorite" : "leetcode.addFavorite",
+                arguments: [node],
+            }));
+        }
+
         if (shortcuts.indexOf("solution") >= 0) {
             codeLens.push(new vscode.CodeLens(range, {
                 title: "Solution",
@@ -75,3 +90,5 @@ export class CustomCodeLensProvider implements vscode.CodeLensProvider {
         return codeLens;
     }
 }
+
+export const customCodeLensProvider: CustomCodeLensProvider = new CustomCodeLensProvider();
diff --git a/src/commands/star.ts b/src/commands/star.ts
index baae0b07..36611499 100644
--- a/src/commands/star.ts
+++ b/src/commands/star.ts
@@ -2,15 +2,20 @@
 // Copyright (c) jdneo. All rights reserved.
 // Licensed under the MIT license.
 
+import { customCodeLensProvider } from "../codelens/CustomCodeLensProvider";
 import { LeetCodeNode } from "../explorer/LeetCodeNode";
 import { leetCodeTreeDataProvider } from "../explorer/LeetCodeTreeDataProvider";
 import { leetCodeExecutor } from "../leetCodeExecutor";
+import { hasStarShortcut } from "../utils/settingUtils";
 import { DialogType, promptForOpenOutputChannel } from "../utils/uiUtils";
 
 export async function addFavorite(node: LeetCodeNode): Promise<void> {
     try {
         await leetCodeExecutor.toggleFavorite(node, true);
-        leetCodeTreeDataProvider.refresh();
+        await leetCodeTreeDataProvider.refresh();
+        if (hasStarShortcut()) {
+            customCodeLensProvider.refresh();
+        }
     } catch (error) {
         await promptForOpenOutputChannel("Failed to add the problem to favorite. Please open the output channel for details.", DialogType.error);
     }
@@ -19,7 +24,10 @@ export async function addFavorite(node: LeetCodeNode): Promise<void> {
 export async function removeFavorite(node: LeetCodeNode): Promise<void> {
     try {
         await leetCodeExecutor.toggleFavorite(node, false);
-        leetCodeTreeDataProvider.refresh();
+        await leetCodeTreeDataProvider.refresh();
+        if (hasStarShortcut()) {
+            customCodeLensProvider.refresh();
+        }
     } catch (error) {
         await promptForOpenOutputChannel("Failed to remove the problem from favorite. Please open the output channel for details.", DialogType.error);
     }
diff --git a/src/utils/settingUtils.ts b/src/utils/settingUtils.ts
index 8c94a95f..207604fa 100644
--- a/src/utils/settingUtils.ts
+++ b/src/utils/settingUtils.ts
@@ -20,6 +20,11 @@ export function getEditorShortcuts(): string[] {
     return getWorkspaceConfiguration().get<string[]>("editor.shortcuts", ["submit", "test"]);
 }
 
+export function hasStarShortcut(): boolean {
+    const shortcuts: string[] = getWorkspaceConfiguration().get<string[]>("editor.shortcuts", ["submit", "test"]);
+    return shortcuts.indexOf("star") >= 0;
+}
+
 export function getDescriptionConfiguration(): IDescriptionConfiguration {
     const setting: string = getWorkspaceConfiguration().get<string>("showDescription", DescriptionConfiguration.InWebView);
     const config: IDescriptionConfiguration = {

From 5fa449e58f6e198ddb4fd481490c1ddc050dacb4 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Tue, 21 Jul 2020 12:35:27 +0800
Subject: [PATCH 68/92] chore(deps): bump lodash from 4.17.13 to 4.17.19 (#597)

Bumps [lodash](https://github.com/lodash/lodash) from 4.17.13 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.13...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
 package-lock.json | 6 +++---
 package.json      | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 2332f2e1..f378577b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -839,9 +839,9 @@
             }
         },
         "lodash": {
-            "version": "4.17.13",
-            "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.13.tgz",
-            "integrity": "sha512-vm3/XWXfWtRua0FkUyEHBZy8kCPjErNBT9fJx8Zvs+U6zjqPbTUOpkaoum3O5uiA8sm+yNMHXfYkTUHFoMxFNA=="
+            "version": "4.17.19",
+            "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+            "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ=="
         },
         "log-symbols": {
             "version": "2.2.0",
diff --git a/package.json b/package.json
index 81a8536b..b1759a52 100644
--- a/package.json
+++ b/package.json
@@ -680,7 +680,7 @@
     "dependencies": {
         "fs-extra": "^6.0.1",
         "highlight.js": "^9.15.6",
-        "lodash": "^4.17.13",
+        "lodash": "^4.17.19",
         "markdown-it": "^8.4.2",
         "require-from-string": "^2.0.2",
         "unescape-js": "^1.1.1",

From 1893d34a64c567cbfb7a2872b59e0f88e8910347 Mon Sep 17 00:00:00 2001
From: yihong <zouzou0208@gmail.com>
Date: Thu, 23 Jul 2020 16:20:01 +0800
Subject: [PATCH 69/92] fix: #593 by adding global flag to remove cache (#602)

---
 src/extension.ts        |  2 +-
 src/leetCodeExecutor.ts | 25 +++++++++++++++++++++----
 src/shared.ts           |  2 ++
 3 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/src/extension.ts b/src/extension.ts
index 9bb3ad41..5bd026f1 100644
--- a/src/extension.ts
+++ b/src/extension.ts
@@ -26,7 +26,7 @@ import { markdownEngine } from "./webview/markdownEngine";
 
 export async function activate(context: vscode.ExtensionContext): Promise<void> {
     try {
-        if (!await leetCodeExecutor.meetRequirements()) {
+        if (!await leetCodeExecutor.meetRequirements(context)) {
             throw new Error("The environment doesn't meet requirements.");
         }
 
diff --git a/src/leetCodeExecutor.ts b/src/leetCodeExecutor.ts
index 4c0aa312..5157b6c1 100644
--- a/src/leetCodeExecutor.ts
+++ b/src/leetCodeExecutor.ts
@@ -3,10 +3,12 @@
 
 import * as cp from "child_process";
 import * as fse from "fs-extra";
+import * as os from "os";
 import * as path from "path";
 import * as requireFromString from "require-from-string";
+import { ExtensionContext } from "vscode";
 import { ConfigurationChangeEvent, Disposable, MessageItem, window, workspace, WorkspaceConfiguration } from "vscode";
-import { Endpoint, IProblem, supportedPlugins } from "./shared";
+import { Endpoint, IProblem, leetcodeHasInited, supportedPlugins } from "./shared";
 import { executeCommand, executeCommandWithProgress } from "./utils/cpUtils";
 import { DialogOptions, openUrl } from "./utils/uiUtils";
 import * as wsl from "./utils/wslUtils";
@@ -34,7 +36,11 @@ class LeetCodeExecutor implements Disposable {
         return `"${path.join(this.leetCodeRootPath, "bin", "leetcode")}"`;
     }
 
-    public async meetRequirements(): Promise<boolean> {
+    public async meetRequirements(context: ExtensionContext): Promise<boolean> {
+        const hasInited: boolean | undefined = context.globalState.get(leetcodeHasInited);
+        if (!hasInited) {
+            await this.removeOldCache();
+        }
         if (this.nodeExecutable !== "node") {
             if (!await fse.pathExists(this.nodeExecutable)) {
                 throw new Error(`The Node.js executable does not exist on path ${this.nodeExecutable}`);
@@ -60,10 +66,13 @@ class LeetCodeExecutor implements Disposable {
         for (const plugin of supportedPlugins) {
             try { // Check plugin
                 await this.executeCommandEx(this.nodeExecutable, [await this.getLeetCodeBinaryPath(), "plugin", "-e", plugin]);
-            } catch (error) { // Download plugin and activate
+            } catch (error) { // Remove old cache that may cause the error download plugin and activate
+                await this.removeOldCache();
                 await this.executeCommandEx(this.nodeExecutable, [await this.getLeetCodeBinaryPath(), "plugin", "-i", plugin]);
             }
         }
+        // Set the global state HasInited true to skip delete old cache after init
+        context.globalState.update(leetcodeHasInited, true);
         return true;
     }
 
@@ -76,7 +85,7 @@ class LeetCodeExecutor implements Disposable {
     }
 
     public async signOut(): Promise<string> {
-        return await await this.executeCommandEx(this.nodeExecutable, [await this.getLeetCodeBinaryPath(), "user", "-L"]);
+        return await this.executeCommandEx(this.nodeExecutable, [await this.getLeetCodeBinaryPath(), "user", "-L"]);
     }
 
     public async listProblems(showLocked: boolean): Promise<string> {
@@ -194,6 +203,14 @@ class LeetCodeExecutor implements Disposable {
         }
         return await executeCommandWithProgress(message, command, args, options);
     }
+
+    private async removeOldCache(): Promise<void> {
+        const oldPath: string = path.join(os.homedir(), ".lc");
+        if (await fse.pathExists(oldPath)) {
+            await fse.remove(oldPath);
+        }
+    }
+
 }
 
 export const leetCodeExecutor: LeetCodeExecutor = new LeetCodeExecutor();
diff --git a/src/shared.ts b/src/shared.ts
index 9b6a749a..e09943f8 100644
--- a/src/shared.ts
+++ b/src/shared.ts
@@ -114,3 +114,5 @@ export enum DescriptionConfiguration {
     Both = "Both",
     None = "None",
 }
+
+export const leetcodeHasInited: string = "leetcode.hasInited";

From 4c0d59a4a5400cb490ff575931b94b620815f694 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 11 Dec 2020 11:05:35 +0800
Subject: [PATCH 70/92] chore(deps): bump ini from 1.3.5 to 1.3.7 (#656)

Bumps [ini](https://github.com/isaacs/ini) from 1.3.5 to 1.3.7.
- [Release notes](https://github.com/isaacs/ini/releases)
- [Commits](https://github.com/isaacs/ini/compare/v1.3.5...v1.3.7)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
 package-lock.json | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index f378577b..50c5fbc2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -686,9 +686,9 @@
             "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
         },
         "ini": {
-            "version": "1.3.5",
-            "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
-            "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
+            "version": "1.3.7",
+            "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz",
+            "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ=="
         },
         "invert-kv": {
             "version": "1.0.0",

From 172c87817e834e6250229cd130037d791a83dd53 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Mon, 31 May 2021 11:26:49 +0800
Subject: [PATCH 71/92] chore: Use GitHub Actions for CI (#709)

---
 .github/workflows/build.yml | 71 +++++++++++++++++++++++++++++++++++++
 .travis.yml                 | 19 ----------
 .vscodeignore               |  1 -
 README.md                   |  4 +--
 docs/README_zh-CN.md        |  4 +--
 5 files changed, 75 insertions(+), 24 deletions(-)
 create mode 100644 .github/workflows/build.yml
 delete mode 100644 .travis.yml

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 00000000..1df11a00
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,71 @@
+name: CI
+
+on:
+  push:
+    branches: [ master ]
+  pull_request:
+    branches: [ master ]
+
+jobs:
+  linux:
+    name: Linux
+    runs-on: ubuntu-latest
+    timeout-minutes: 30
+    steps:
+    - uses: actions/checkout@v2
+
+    - name: Setup Node.js environment
+      uses: actions/setup-node@v2
+      with:
+        node-version: 12
+
+    - name: Install Node.js modules
+      run: npm install
+
+    - name: Lint
+      run: npm run lint
+
+    - name: VSCE Packge
+      run: npx vsce package
+
+  windows:
+    name: Windows
+    runs-on: windows-latest
+    timeout-minutes: 30
+    steps:
+    - uses: actions/checkout@v2
+
+    - name: Setup Node.js environment
+      uses: actions/setup-node@v2
+      with:
+        node-version: 12
+
+    - name: Install Node.js modules
+      run: npm install
+
+    - name: Lint
+      run: npm run lint
+
+    - name: VSCE Packge
+      run: npx vsce package
+
+  darwin:
+    name: macOS
+    runs-on: macos-latest
+    timeout-minutes: 30
+    steps:
+    - uses: actions/checkout@v2
+
+    - name: Setup Node.js environment
+      uses: actions/setup-node@v2
+      with:
+        node-version: 12
+
+    - name: Install Node.js modules
+      run: npm install
+
+    - name: Lint
+      run: npm run lint
+
+    - name: VSCE Packge
+      run: npx vsce package
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 6bbae841..00000000
--- a/.travis.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-language: node_js
-
-node_js:
-  - 'lts/*'
-
-before_install:
-  - if [ $TRAVIS_OS_NAME == "linux" ]; then
-      export CXX="g++-4.9" CC="gcc-4.9" DISPLAY=:99.0;
-      sh -e /etc/init.d/xvfb start;
-      sleep 3;
-    fi
-
-install:
-  - npm install -g vsce
-  - npm install
-
-script:
-  - npm run lint
-  - vsce package
diff --git a/.vscodeignore b/.vscodeignore
index 8cdceec0..7a04907d 100644
--- a/.vscodeignore
+++ b/.vscodeignore
@@ -5,7 +5,6 @@ test/**
 src/**
 **/*.map
 .gitignore
-.travis.yml
 package-lock.json
 tsconfig.json
 tslint.json
diff --git a/README.md b/README.md
index 3396d0c7..b432be98 100644
--- a/README.md
+++ b/README.md
@@ -6,8 +6,8 @@
   <img src="https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/resources/LeetCode.png" alt="">
 </p>
 <p align="center">
-  <a href="https://travis-ci.org/LeetCode-OpenSource/vscode-leetcode">
-    <img src="https://img.shields.io/travis/LeetCode-OpenSource/vscode-leetcode.svg?style=flat-square" alt="">
+  <a href="https://github.com/LeetCode-OpenSource/vscode-leetcode/actions?query=workflow%3ACI+branch%3Amaster">
+    <img src="https://img.shields.io/github/workflow/status/LeetCode-OpenSource/vscode-leetcode/CI/master?style=flat-square" alt="">
   </a>
   <a href="https://gitter.im/vscode-leetcode/Lobby">
     <img src="https://img.shields.io/gitter/room/LeetCode-OpenSource/vscode-leetcode.svg?style=flat-square" alt="">
diff --git a/docs/README_zh-CN.md b/docs/README_zh-CN.md
index 608c6226..e4760015 100644
--- a/docs/README_zh-CN.md
+++ b/docs/README_zh-CN.md
@@ -6,8 +6,8 @@
   <img src="https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/resources/LeetCode.png" alt="">
 </p>
 <p align="center">
-  <a href="https://travis-ci.org/LeetCode-OpenSource/vscode-leetcode">
-    <img src="https://img.shields.io/travis/LeetCode-OpenSource/vscode-leetcode.svg?style=flat-square" alt="">
+  <a href="https://github.com/LeetCode-OpenSource/vscode-leetcode/actions?query=workflow%3ACI+branch%3Amaster">
+    <img src="https://img.shields.io/github/workflow/status/LeetCode-OpenSource/vscode-leetcode/CI/master?style=flat-square" alt="">
   </a>
   <a href="https://gitter.im/vscode-leetcode/Lobby">
     <img src="https://img.shields.io/gitter/room/LeetCode-OpenSource/vscode-leetcode.svg?style=flat-square" alt="">

From 6b95d5c015d90008f9d99001ac0655ef82e4d30f Mon Sep 17 00:00:00 2001
From: Tejasvi S Tomar <45873379+tejasvi@users.noreply.github.com>
Date: Mon, 31 May 2021 09:01:16 +0530
Subject: [PATCH 72/92] chore: Fix typo (#694)

Co-authored-by: Sheng Chen <sheche@microsoft.com>
---
 README.md    | 2 +-
 package.json | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/README.md b/README.md
index b432be98..35fd0cad 100644
--- a/README.md
+++ b/README.md
@@ -129,7 +129,7 @@ Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround wh
 | `leetcode.workspaceFolder`                                                              | Specify the path of the workspace folder to store the problem files.                                                                                                                                                                                                                                                                                                                                                              | `""`               |
 | `leetcode.filePath`                                                                     | Specify the relative path under the workspace and the file name to save the problem files. More details can be found [here](https://github.com/LeetCode-OpenSource/vscode-leetcode/wiki/Customize-the-Relative-Folder-and-the-File-Name-of-the-Problem-File).                                                                                                                                                                                   |                    |
 | `leetcode.enableStatusBar`                                                              | Specify whether the LeetCode status bar will be shown or not.                                                                                                                                                                                                                                                                                                                                                                     | `true`             |
-| `leetcode.editor.shortcuts`                                                             | Specify the customized shorcuts in editors. Supported values are: `submit`, `test`, `star`, `solution` and `description`.                                                                                                                                                                                                                                                                                                                 | `["submit, test"]` |
+| `leetcode.editor.shortcuts`                                                             | Specify the customized shortcuts in editors. Supported values are: `submit`, `test`, `star`, `solution` and `description`.                                                                                                                                                                                                                                                                                                                 | `["submit, test"]` |
 | `leetcode.enableSideMode`                                                               | Specify whether `preview`, `solution` and `submission` tab should be grouped into the second editor column when solving a problem.                                                                                                                                                                                                                                                                                                | `true`             |
 | `leetcode.nodePath`                                                                     | Specify the `Node.js` executable path. for example, C:\Program Files\nodejs\node.exe                                                                                                                                                                                                                                                                                                                                              | `node`             |
 | `leetcode.showCommentDescription`                                                       | Specify whether to include the problem description in the comments                                                                                                                                                                                                                                                                                                                                                                | `false`            |
diff --git a/package.json b/package.json
index b1759a52..4a2ef54a 100644
--- a/package.json
+++ b/package.json
@@ -641,7 +641,7 @@
                                 "Show the problem description page."
                             ]
                         },
-                        "description": "Customize the shorcuts in editors."
+                        "description": "Customize the shortcuts in editors."
                     },
                     "leetcode.enableSideMode": {
                         "type": "boolean",

From 0fcf9f1f404f2af10c0917db46c399af5049c3ee Mon Sep 17 00:00:00 2001
From: Zhizhang Deng <reg@2011ysyb.com>
Date: Mon, 31 May 2021 01:40:04 -0400
Subject: [PATCH 73/92] feat: Added an option to disable endpoint translation
 (#690)

Co-authored-by: Sheng Chen <sheche@microsoft.com>
---
 package-lock.json         | 2154 ++++++++++++++++++++++++++++++++++++-
 package.json              |   10 +-
 src/commands/list.ts      |    4 +-
 src/commands/show.ts      |   11 +-
 src/leetCodeExecutor.ts   |   54 +-
 src/utils/settingUtils.ts |    4 +
 6 files changed, 2209 insertions(+), 28 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 50c5fbc2..4afd04fd 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,8 +1,2141 @@
 {
     "name": "vscode-leetcode",
     "version": "0.17.0",
-    "lockfileVersion": 1,
+    "lockfileVersion": 2,
     "requires": true,
+    "packages": {
+        "": {
+            "version": "0.17.0",
+            "license": "MIT",
+            "dependencies": {
+                "fs-extra": "^6.0.1",
+                "highlight.js": "^9.15.6",
+                "lodash": "^4.17.19",
+                "markdown-it": "^8.4.2",
+                "require-from-string": "^2.0.2",
+                "unescape-js": "^1.1.1",
+                "vsc-leetcode-cli": "^2.8.0"
+            },
+            "devDependencies": {
+                "@types/fs-extra": "5.0.0",
+                "@types/highlight.js": "^9.12.3",
+                "@types/lodash": "^4.14.123",
+                "@types/markdown-it": "0.0.7",
+                "@types/mocha": "^2.2.42",
+                "@types/node": "^7.0.43",
+                "@types/require-from-string": "^1.2.0",
+                "@types/vscode": "1.42.0",
+                "tslint": "^5.9.1",
+                "typescript": "^2.6.1"
+            },
+            "engines": {
+                "vscode": "^1.42.0"
+            }
+        },
+        "node_modules/@types/color-name": {
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
+            "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ=="
+        },
+        "node_modules/@types/fs-extra": {
+            "version": "5.0.0",
+            "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.0.tgz",
+            "integrity": "sha512-qtxDULQKUenuaDLW003CgC+0T0eiAfH3BrH+vSt87GLzbz5EZ6Ox6mv9rMttvhDOatbb9nYh0E1m7ydoYwUrAg==",
+            "dev": true,
+            "dependencies": {
+                "@types/node": "*"
+            }
+        },
+        "node_modules/@types/highlight.js": {
+            "version": "9.12.3",
+            "resolved": "https://registry.npmjs.org/@types/highlight.js/-/highlight.js-9.12.3.tgz",
+            "integrity": "sha512-pGF/zvYOACZ/gLGWdQH8zSwteQS1epp68yRcVLJMgUck/MjEn/FBYmPub9pXT8C1e4a8YZfHo1CKyV8q1vKUnQ==",
+            "dev": true
+        },
+        "node_modules/@types/linkify-it": {
+            "version": "2.0.4",
+            "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-2.0.4.tgz",
+            "integrity": "sha512-9o5piu3tP6DwqT+Cyf7S3BitsTc6Cl0pCPKUhIE5hzQbtueiBXdtBipTLLvaGfT11/8XHRmsagu4YfBesTaiCA==",
+            "dev": true
+        },
+        "node_modules/@types/lodash": {
+            "version": "4.14.123",
+            "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.123.tgz",
+            "integrity": "sha512-pQvPkc4Nltyx7G1Ww45OjVqUsJP4UsZm+GWJpigXgkikZqJgRm4c48g027o6tdgubWHwFRF15iFd+Y4Pmqv6+Q==",
+            "dev": true
+        },
+        "node_modules/@types/markdown-it": {
+            "version": "0.0.7",
+            "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-0.0.7.tgz",
+            "integrity": "sha512-WyL6pa76ollQFQNEaLVa41ZUUvDvPY+qAUmlsphnrpL6I9p1m868b26FyeoOmo7X3/Ta/S9WKXcEYXUSHnxoVQ==",
+            "dev": true,
+            "dependencies": {
+                "@types/linkify-it": "*"
+            }
+        },
+        "node_modules/@types/mocha": {
+            "version": "2.2.48",
+            "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-2.2.48.tgz",
+            "integrity": "sha512-nlK/iyETgafGli8Zh9zJVCTicvU3iajSkRwOh3Hhiva598CMqNJ4NcVCGMTGKpGpTYj/9R8RLzS9NAykSSCqGw==",
+            "dev": true
+        },
+        "node_modules/@types/node": {
+            "version": "7.10.3",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-7.10.3.tgz",
+            "integrity": "sha512-HeyK+csRk7Khhg9krpMGJeT9pLzjsmiJFHYRzYpPv/dQ5tPclQsbvceiX/HKynRt/9lMLorWUYTbBHC3hRI4sg==",
+            "dev": true
+        },
+        "node_modules/@types/require-from-string": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/@types/require-from-string/-/require-from-string-1.2.0.tgz",
+            "integrity": "sha512-5vE9WoOOC9/DoD3Zj53UISpM+5tSvh8k0mL4fe2zFI6vO715/W4IQ3EdVUrWVMrFi1/NZhyMvm2iKsDFkEGddQ==",
+            "dev": true
+        },
+        "node_modules/@types/vscode": {
+            "version": "1.42.0",
+            "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.42.0.tgz",
+            "integrity": "sha512-ds6TceMsh77Fs0Mq0Vap6Y72JbGWB8Bay4DrnJlf5d9ui2RSe1wis13oQm+XhguOeH1HUfLGzaDAoupTUtgabw==",
+            "dev": true
+        },
+        "node_modules/abab": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz",
+            "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=",
+            "optional": true
+        },
+        "node_modules/acorn": {
+            "version": "2.7.0",
+            "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz",
+            "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=",
+            "optional": true,
+            "bin": {
+                "acorn": "bin/acorn"
+            },
+            "engines": {
+                "node": ">=0.4.0"
+            }
+        },
+        "node_modules/acorn-globals": {
+            "version": "1.0.9",
+            "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz",
+            "integrity": "sha1-VbtemGkVB7dFedBRNBMhfDgMVM8=",
+            "optional": true,
+            "dependencies": {
+                "acorn": "^2.1.0"
+            }
+        },
+        "node_modules/ajv": {
+            "version": "6.12.2",
+            "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
+            "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
+            "dependencies": {
+                "fast-deep-equal": "^3.1.1",
+                "fast-json-stable-stringify": "^2.0.0",
+                "json-schema-traverse": "^0.4.1",
+                "uri-js": "^4.2.2"
+            }
+        },
+        "node_modules/ansi-regex": {
+            "version": "2.1.1",
+            "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+            "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/ansi-styles": {
+            "version": "3.2.1",
+            "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+            "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+            "dependencies": {
+                "color-convert": "^1.9.0"
+            },
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/argparse": {
+            "version": "1.0.10",
+            "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+            "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+            "dependencies": {
+                "sprintf-js": "~1.0.2"
+            }
+        },
+        "node_modules/asn1": {
+            "version": "0.2.4",
+            "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
+            "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
+            "dependencies": {
+                "safer-buffer": "~2.1.0"
+            }
+        },
+        "node_modules/assert-plus": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+            "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+            "engines": {
+                "node": ">=0.8"
+            }
+        },
+        "node_modules/async": {
+            "version": "1.5.2",
+            "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+            "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
+        },
+        "node_modules/asynckit": {
+            "version": "0.4.0",
+            "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+            "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+        },
+        "node_modules/aws-sign2": {
+            "version": "0.7.0",
+            "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+            "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
+            "engines": {
+                "node": "*"
+            }
+        },
+        "node_modules/aws4": {
+            "version": "1.10.0",
+            "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz",
+            "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA=="
+        },
+        "node_modules/babel-code-frame": {
+            "version": "6.26.0",
+            "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
+            "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
+            "dev": true,
+            "dependencies": {
+                "chalk": "^1.1.3",
+                "esutils": "^2.0.2",
+                "js-tokens": "^3.0.2"
+            }
+        },
+        "node_modules/babel-code-frame/node_modules/ansi-styles": {
+            "version": "2.2.1",
+            "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
+            "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
+            "dev": true,
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/babel-code-frame/node_modules/chalk": {
+            "version": "1.1.3",
+            "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
+            "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
+            "dev": true,
+            "dependencies": {
+                "ansi-styles": "^2.2.1",
+                "escape-string-regexp": "^1.0.2",
+                "has-ansi": "^2.0.0",
+                "strip-ansi": "^3.0.0",
+                "supports-color": "^2.0.0"
+            },
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/babel-code-frame/node_modules/supports-color": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
+            "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
+            "dev": true,
+            "engines": {
+                "node": ">=0.8.0"
+            }
+        },
+        "node_modules/balanced-match": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
+            "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+        },
+        "node_modules/bcrypt-pbkdf": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+            "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+            "dependencies": {
+                "tweetnacl": "^0.14.3"
+            }
+        },
+        "node_modules/boolbase": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+            "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
+        },
+        "node_modules/brace-expansion": {
+            "version": "1.1.11",
+            "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+            "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+            "dependencies": {
+                "balanced-match": "^1.0.0",
+                "concat-map": "0.0.1"
+            }
+        },
+        "node_modules/builtin-modules": {
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+            "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
+            "dev": true,
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/camelcase": {
+            "version": "2.1.1",
+            "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+            "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/caseless": {
+            "version": "0.12.0",
+            "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+            "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
+        },
+        "node_modules/chalk": {
+            "version": "2.4.2",
+            "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+            "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+            "dependencies": {
+                "ansi-styles": "^3.2.1",
+                "escape-string-regexp": "^1.0.5",
+                "supports-color": "^5.3.0"
+            },
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/cheerio": {
+            "version": "0.20.0",
+            "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.20.0.tgz",
+            "integrity": "sha1-XHEPK6uVZTJyhCugHG6mGzVF7DU=",
+            "dependencies": {
+                "css-select": "~1.2.0",
+                "dom-serializer": "~0.1.0",
+                "entities": "~1.1.1",
+                "htmlparser2": "~3.8.1",
+                "lodash": "^4.1.0"
+            },
+            "engines": {
+                "node": ">= 0.6"
+            },
+            "optionalDependencies": {
+                "jsdom": "^7.0.2"
+            }
+        },
+        "node_modules/cli-cursor": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+            "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+            "dependencies": {
+                "restore-cursor": "^2.0.0"
+            },
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/cli-spinners": {
+            "version": "1.3.1",
+            "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz",
+            "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==",
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/cliui": {
+            "version": "3.2.0",
+            "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
+            "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+            "dependencies": {
+                "string-width": "^1.0.1",
+                "strip-ansi": "^3.0.1",
+                "wrap-ansi": "^2.0.0"
+            }
+        },
+        "node_modules/clone": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+            "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
+            "engines": {
+                "node": ">=0.8"
+            }
+        },
+        "node_modules/code-point-at": {
+            "version": "1.1.0",
+            "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+            "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/color-convert": {
+            "version": "1.9.3",
+            "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+            "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+            "dependencies": {
+                "color-name": "1.1.3"
+            }
+        },
+        "node_modules/color-name": {
+            "version": "1.1.3",
+            "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+            "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+        },
+        "node_modules/colors": {
+            "version": "1.4.0",
+            "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
+            "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
+            "engines": {
+                "node": ">=0.1.90"
+            }
+        },
+        "node_modules/combined-stream": {
+            "version": "1.0.8",
+            "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+            "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+            "dependencies": {
+                "delayed-stream": "~1.0.0"
+            },
+            "engines": {
+                "node": ">= 0.8"
+            }
+        },
+        "node_modules/commander": {
+            "version": "2.19.0",
+            "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz",
+            "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==",
+            "dev": true
+        },
+        "node_modules/concat-map": {
+            "version": "0.0.1",
+            "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+            "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+        },
+        "node_modules/core-util-is": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+            "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+        },
+        "node_modules/css-select": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
+            "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
+            "dependencies": {
+                "boolbase": "~1.0.0",
+                "css-what": "2.1",
+                "domutils": "1.5.1",
+                "nth-check": "~1.0.1"
+            }
+        },
+        "node_modules/css-what": {
+            "version": "2.1.3",
+            "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
+            "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==",
+            "engines": {
+                "node": "*"
+            }
+        },
+        "node_modules/cssom": {
+            "version": "0.3.8",
+            "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
+            "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
+            "optional": true
+        },
+        "node_modules/cssstyle": {
+            "version": "0.2.37",
+            "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz",
+            "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=",
+            "optional": true,
+            "dependencies": {
+                "cssom": "0.3.x"
+            }
+        },
+        "node_modules/cycle": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz",
+            "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=",
+            "engines": {
+                "node": ">=0.4.0"
+            }
+        },
+        "node_modules/dashdash": {
+            "version": "1.14.1",
+            "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+            "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+            "dependencies": {
+                "assert-plus": "^1.0.0"
+            },
+            "engines": {
+                "node": ">=0.10"
+            }
+        },
+        "node_modules/decamelize": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+            "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/deep-equal": {
+            "version": "0.2.2",
+            "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-0.2.2.tgz",
+            "integrity": "sha1-hLdFiW80xoTpjyzg5Cq69Du6AX0="
+        },
+        "node_modules/deep-is": {
+            "version": "0.1.3",
+            "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+            "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
+            "optional": true
+        },
+        "node_modules/defaults": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
+            "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
+            "dependencies": {
+                "clone": "^1.0.2"
+            }
+        },
+        "node_modules/delayed-stream": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+            "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+            "engines": {
+                "node": ">=0.4.0"
+            }
+        },
+        "node_modules/diff": {
+            "version": "3.5.0",
+            "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
+            "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
+            "dev": true,
+            "engines": {
+                "node": ">=0.3.1"
+            }
+        },
+        "node_modules/dom-serializer": {
+            "version": "0.1.1",
+            "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz",
+            "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==",
+            "dependencies": {
+                "domelementtype": "^1.3.0",
+                "entities": "^1.1.1"
+            }
+        },
+        "node_modules/domelementtype": {
+            "version": "1.3.1",
+            "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
+            "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
+        },
+        "node_modules/domhandler": {
+            "version": "2.3.0",
+            "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz",
+            "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=",
+            "dependencies": {
+                "domelementtype": "1"
+            }
+        },
+        "node_modules/domutils": {
+            "version": "1.5.1",
+            "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+            "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
+            "dependencies": {
+                "dom-serializer": "0",
+                "domelementtype": "1"
+            }
+        },
+        "node_modules/ecc-jsbn": {
+            "version": "0.1.2",
+            "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+            "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+            "dependencies": {
+                "jsbn": "~0.1.0",
+                "safer-buffer": "^2.1.0"
+            }
+        },
+        "node_modules/emoji-regex": {
+            "version": "8.0.0",
+            "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+            "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+        },
+        "node_modules/entities": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
+            "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
+        },
+        "node_modules/escape-string-regexp": {
+            "version": "1.0.5",
+            "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+            "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+            "engines": {
+                "node": ">=0.8.0"
+            }
+        },
+        "node_modules/escodegen": {
+            "version": "1.14.3",
+            "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
+            "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
+            "optional": true,
+            "dependencies": {
+                "esprima": "^4.0.1",
+                "estraverse": "^4.2.0",
+                "esutils": "^2.0.2",
+                "optionator": "^0.8.1",
+                "source-map": "~0.6.1"
+            },
+            "bin": {
+                "escodegen": "bin/escodegen.js",
+                "esgenerate": "bin/esgenerate.js"
+            },
+            "engines": {
+                "node": ">=4.0"
+            }
+        },
+        "node_modules/esprima": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+            "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+            "optional": true,
+            "bin": {
+                "esparse": "bin/esparse.js",
+                "esvalidate": "bin/esvalidate.js"
+            },
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/estraverse": {
+            "version": "4.3.0",
+            "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+            "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+            "optional": true,
+            "engines": {
+                "node": ">=4.0"
+            }
+        },
+        "node_modules/esutils": {
+            "version": "2.0.2",
+            "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
+            "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
+            "devOptional": true,
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/extend": {
+            "version": "3.0.2",
+            "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+            "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+        },
+        "node_modules/extsprintf": {
+            "version": "1.3.0",
+            "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+            "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+            "engines": [
+                "node >=0.6.0"
+            ]
+        },
+        "node_modules/eyes": {
+            "version": "0.1.8",
+            "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
+            "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=",
+            "engines": {
+                "node": "> 0.1.90"
+            }
+        },
+        "node_modules/fast-deep-equal": {
+            "version": "3.1.3",
+            "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+            "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+        },
+        "node_modules/fast-json-stable-stringify": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+            "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
+        },
+        "node_modules/fast-levenshtein": {
+            "version": "2.0.6",
+            "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+            "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+            "optional": true
+        },
+        "node_modules/find-up": {
+            "version": "4.1.0",
+            "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+            "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+            "dependencies": {
+                "locate-path": "^5.0.0",
+                "path-exists": "^4.0.0"
+            },
+            "engines": {
+                "node": ">=8"
+            }
+        },
+        "node_modules/forever-agent": {
+            "version": "0.6.1",
+            "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+            "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+            "engines": {
+                "node": "*"
+            }
+        },
+        "node_modules/form-data": {
+            "version": "2.3.3",
+            "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+            "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+            "dependencies": {
+                "asynckit": "^0.4.0",
+                "combined-stream": "^1.0.6",
+                "mime-types": "^2.1.12"
+            },
+            "engines": {
+                "node": ">= 0.12"
+            }
+        },
+        "node_modules/fs-extra": {
+            "version": "6.0.1",
+            "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz",
+            "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==",
+            "dependencies": {
+                "graceful-fs": "^4.1.2",
+                "jsonfile": "^4.0.0",
+                "universalify": "^0.1.0"
+            }
+        },
+        "node_modules/fs.realpath": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+            "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+        },
+        "node_modules/get-caller-file": {
+            "version": "2.0.5",
+            "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+            "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+            "engines": {
+                "node": "6.* || 8.* || >= 10.*"
+            }
+        },
+        "node_modules/getpass": {
+            "version": "0.1.7",
+            "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+            "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+            "dependencies": {
+                "assert-plus": "^1.0.0"
+            }
+        },
+        "node_modules/glob": {
+            "version": "7.1.3",
+            "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
+            "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+            "dependencies": {
+                "fs.realpath": "^1.0.0",
+                "inflight": "^1.0.4",
+                "inherits": "2",
+                "minimatch": "^3.0.4",
+                "once": "^1.3.0",
+                "path-is-absolute": "^1.0.0"
+            },
+            "engines": {
+                "node": "*"
+            }
+        },
+        "node_modules/graceful-fs": {
+            "version": "4.1.15",
+            "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
+            "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA=="
+        },
+        "node_modules/har-schema": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+            "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/har-validator": {
+            "version": "5.1.3",
+            "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
+            "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
+            "dependencies": {
+                "ajv": "^6.5.5",
+                "har-schema": "^2.0.0"
+            },
+            "engines": {
+                "node": ">=6"
+            }
+        },
+        "node_modules/has-ansi": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
+            "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+            "dev": true,
+            "dependencies": {
+                "ansi-regex": "^2.0.0"
+            },
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/has-flag": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+            "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/he": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+            "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+            "bin": {
+                "he": "bin/he"
+            }
+        },
+        "node_modules/highlight.js": {
+            "version": "9.15.6",
+            "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.6.tgz",
+            "integrity": "sha512-zozTAWM1D6sozHo8kqhfYgsac+B+q0PmsjXeyDrYIHHcBN0zTVT66+s2GW1GZv7DbyaROdLXKdabwS/WqPyIdQ==",
+            "engines": {
+                "node": "*"
+            }
+        },
+        "node_modules/htmlparser2": {
+            "version": "3.8.3",
+            "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
+            "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=",
+            "dependencies": {
+                "domelementtype": "1",
+                "domhandler": "2.3",
+                "domutils": "1.5",
+                "entities": "1.0",
+                "readable-stream": "1.1"
+            }
+        },
+        "node_modules/htmlparser2/node_modules/entities": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
+            "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY="
+        },
+        "node_modules/http-signature": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+            "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+            "dependencies": {
+                "assert-plus": "^1.0.0",
+                "jsprim": "^1.2.2",
+                "sshpk": "^1.7.0"
+            },
+            "engines": {
+                "node": ">=0.8",
+                "npm": ">=1.3.7"
+            }
+        },
+        "node_modules/i": {
+            "version": "0.3.6",
+            "resolved": "https://registry.npmjs.org/i/-/i-0.3.6.tgz",
+            "integrity": "sha1-2WyScyB28HJxG2sQ/X1PZa2O4j0=",
+            "engines": {
+                "node": ">=0.4"
+            }
+        },
+        "node_modules/inflight": {
+            "version": "1.0.6",
+            "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+            "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+            "dependencies": {
+                "once": "^1.3.0",
+                "wrappy": "1"
+            }
+        },
+        "node_modules/inherits": {
+            "version": "2.0.3",
+            "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+            "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+        },
+        "node_modules/ini": {
+            "version": "1.3.7",
+            "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz",
+            "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ=="
+        },
+        "node_modules/invert-kv": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
+            "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/is-fullwidth-code-point": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+            "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
+            "dependencies": {
+                "number-is-nan": "^1.0.0"
+            },
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/is-typedarray": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+            "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
+        },
+        "node_modules/isarray": {
+            "version": "0.0.1",
+            "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+            "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+        },
+        "node_modules/isstream": {
+            "version": "0.1.2",
+            "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+            "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
+        },
+        "node_modules/js-tokens": {
+            "version": "3.0.2",
+            "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
+            "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+            "dev": true
+        },
+        "node_modules/js-yaml": {
+            "version": "3.13.1",
+            "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
+            "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
+            "dev": true,
+            "dependencies": {
+                "argparse": "^1.0.7",
+                "esprima": "^4.0.0"
+            },
+            "bin": {
+                "js-yaml": "bin/js-yaml.js"
+            }
+        },
+        "node_modules/js-yaml/node_modules/esprima": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+            "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+            "dev": true,
+            "bin": {
+                "esparse": "bin/esparse.js",
+                "esvalidate": "bin/esvalidate.js"
+            },
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/jsbn": {
+            "version": "0.1.1",
+            "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+            "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
+        },
+        "node_modules/jsdom": {
+            "version": "7.2.2",
+            "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-7.2.2.tgz",
+            "integrity": "sha1-QLQCdwwr2iNGkJa+6Rq2deOx/G4=",
+            "optional": true,
+            "dependencies": {
+                "abab": "^1.0.0",
+                "acorn": "^2.4.0",
+                "acorn-globals": "^1.0.4",
+                "cssom": ">= 0.3.0 < 0.4.0",
+                "cssstyle": ">= 0.2.29 < 0.3.0",
+                "escodegen": "^1.6.1",
+                "nwmatcher": ">= 1.3.7 < 2.0.0",
+                "parse5": "^1.5.1",
+                "request": "^2.55.0",
+                "sax": "^1.1.4",
+                "symbol-tree": ">= 3.1.0 < 4.0.0",
+                "tough-cookie": "^2.2.0",
+                "webidl-conversions": "^2.0.0",
+                "whatwg-url-compat": "~0.6.5",
+                "xml-name-validator": ">= 2.0.1 < 3.0.0"
+            }
+        },
+        "node_modules/json-schema": {
+            "version": "0.2.3",
+            "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+            "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
+        },
+        "node_modules/json-schema-traverse": {
+            "version": "0.4.1",
+            "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+            "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+        },
+        "node_modules/json-stringify-safe": {
+            "version": "5.0.1",
+            "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+            "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
+        },
+        "node_modules/jsonfile": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+            "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+            "dependencies": {
+                "graceful-fs": "^4.1.6"
+            }
+        },
+        "node_modules/jsprim": {
+            "version": "1.4.1",
+            "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+            "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+            "engines": [
+                "node >=0.6.0"
+            ],
+            "dependencies": {
+                "assert-plus": "1.0.0",
+                "extsprintf": "1.3.0",
+                "json-schema": "0.2.3",
+                "verror": "1.10.0"
+            }
+        },
+        "node_modules/lcid": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
+            "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
+            "dependencies": {
+                "invert-kv": "^1.0.0"
+            },
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/levn": {
+            "version": "0.3.0",
+            "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+            "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+            "optional": true,
+            "dependencies": {
+                "prelude-ls": "~1.1.2",
+                "type-check": "~0.3.2"
+            },
+            "engines": {
+                "node": ">= 0.8.0"
+            }
+        },
+        "node_modules/linkify-it": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.1.0.tgz",
+            "integrity": "sha512-4REs8/062kV2DSHxNfq5183zrqXMl7WP0WzABH9IeJI+NLm429FgE1PDecltYfnOoFDFlZGh2T8PfZn0r+GTRg==",
+            "dependencies": {
+                "uc.micro": "^1.0.1"
+            }
+        },
+        "node_modules/locate-path": {
+            "version": "5.0.0",
+            "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+            "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+            "dependencies": {
+                "p-locate": "^4.1.0"
+            },
+            "engines": {
+                "node": ">=8"
+            }
+        },
+        "node_modules/lodash": {
+            "version": "4.17.19",
+            "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
+            "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ=="
+        },
+        "node_modules/log-symbols": {
+            "version": "2.2.0",
+            "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
+            "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
+            "dependencies": {
+                "chalk": "^2.0.1"
+            },
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/markdown-it": {
+            "version": "8.4.2",
+            "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz",
+            "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==",
+            "dependencies": {
+                "argparse": "^1.0.7",
+                "entities": "~1.1.1",
+                "linkify-it": "^2.0.0",
+                "mdurl": "^1.0.1",
+                "uc.micro": "^1.0.5"
+            },
+            "bin": {
+                "markdown-it": "bin/markdown-it.js"
+            }
+        },
+        "node_modules/mdurl": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
+            "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4="
+        },
+        "node_modules/mime-db": {
+            "version": "1.44.0",
+            "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
+            "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==",
+            "engines": {
+                "node": ">= 0.6"
+            }
+        },
+        "node_modules/mime-types": {
+            "version": "2.1.27",
+            "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
+            "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
+            "dependencies": {
+                "mime-db": "1.44.0"
+            },
+            "engines": {
+                "node": ">= 0.6"
+            }
+        },
+        "node_modules/mimic-fn": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+            "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/minimatch": {
+            "version": "3.0.4",
+            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+            "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+            "dependencies": {
+                "brace-expansion": "^1.1.7"
+            },
+            "engines": {
+                "node": "*"
+            }
+        },
+        "node_modules/minimist": {
+            "version": "1.2.5",
+            "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+            "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
+        },
+        "node_modules/mkdirp": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+            "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+            "bin": {
+                "mkdirp": "bin/cmd.js"
+            },
+            "engines": {
+                "node": ">=10"
+            }
+        },
+        "node_modules/moment": {
+            "version": "2.27.0",
+            "resolved": "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz",
+            "integrity": "sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==",
+            "engines": {
+                "node": "*"
+            }
+        },
+        "node_modules/mute-stream": {
+            "version": "0.0.8",
+            "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
+            "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="
+        },
+        "node_modules/nconf": {
+            "version": "0.10.0",
+            "resolved": "https://registry.npmjs.org/nconf/-/nconf-0.10.0.tgz",
+            "integrity": "sha512-fKiXMQrpP7CYWJQzKkPPx9hPgmq+YLDyxcG9N8RpiE9FoCkCbzD0NyW0YhE3xn3Aupe7nnDeIx4PFzYehpHT9Q==",
+            "dependencies": {
+                "async": "^1.4.0",
+                "ini": "^1.3.0",
+                "secure-keys": "^1.0.0",
+                "yargs": "^3.19.0"
+            },
+            "engines": {
+                "node": ">= 0.4.0"
+            }
+        },
+        "node_modules/nconf/node_modules/yargs": {
+            "version": "3.32.0",
+            "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz",
+            "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=",
+            "dependencies": {
+                "camelcase": "^2.0.1",
+                "cliui": "^3.0.3",
+                "decamelize": "^1.1.1",
+                "os-locale": "^1.4.0",
+                "string-width": "^1.0.1",
+                "window-size": "^0.1.4",
+                "y18n": "^3.2.0"
+            }
+        },
+        "node_modules/ncp": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/ncp/-/ncp-1.0.1.tgz",
+            "integrity": "sha1-0VNn5cuHQyuhF9K/gP30Wuz7QkY=",
+            "bin": {
+                "ncp": "bin/ncp"
+            }
+        },
+        "node_modules/nth-check": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
+            "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
+            "dependencies": {
+                "boolbase": "~1.0.0"
+            }
+        },
+        "node_modules/number-is-nan": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+            "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/nwmatcher": {
+            "version": "1.4.4",
+            "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz",
+            "integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==",
+            "optional": true
+        },
+        "node_modules/oauth-sign": {
+            "version": "0.9.0",
+            "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+            "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
+            "engines": {
+                "node": "*"
+            }
+        },
+        "node_modules/once": {
+            "version": "1.4.0",
+            "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+            "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+            "dependencies": {
+                "wrappy": "1"
+            }
+        },
+        "node_modules/onetime": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+            "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+            "dependencies": {
+                "mimic-fn": "^1.0.0"
+            },
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/optionator": {
+            "version": "0.8.3",
+            "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+            "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+            "optional": true,
+            "dependencies": {
+                "deep-is": "~0.1.3",
+                "fast-levenshtein": "~2.0.6",
+                "levn": "~0.3.0",
+                "prelude-ls": "~1.1.2",
+                "type-check": "~0.3.2",
+                "word-wrap": "~1.2.3"
+            },
+            "engines": {
+                "node": ">= 0.8.0"
+            }
+        },
+        "node_modules/ora": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/ora/-/ora-3.0.0.tgz",
+            "integrity": "sha512-LBS97LFe2RV6GJmXBi6OKcETKyklHNMV0xw7BtsVn2MlsgsydyZetSCbCANr+PFLmDyv4KV88nn0eCKza665Mg==",
+            "dependencies": {
+                "chalk": "^2.3.1",
+                "cli-cursor": "^2.1.0",
+                "cli-spinners": "^1.1.0",
+                "log-symbols": "^2.2.0",
+                "strip-ansi": "^4.0.0",
+                "wcwidth": "^1.0.1"
+            },
+            "engines": {
+                "node": ">=6"
+            }
+        },
+        "node_modules/ora/node_modules/ansi-regex": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+            "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/ora/node_modules/strip-ansi": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+            "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+            "dependencies": {
+                "ansi-regex": "^3.0.0"
+            },
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/os-locale": {
+            "version": "1.4.0",
+            "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
+            "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
+            "dependencies": {
+                "lcid": "^1.0.0"
+            },
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/p-limit": {
+            "version": "2.3.0",
+            "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+            "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+            "dependencies": {
+                "p-try": "^2.0.0"
+            },
+            "engines": {
+                "node": ">=6"
+            }
+        },
+        "node_modules/p-locate": {
+            "version": "4.1.0",
+            "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+            "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+            "dependencies": {
+                "p-limit": "^2.2.0"
+            },
+            "engines": {
+                "node": ">=8"
+            }
+        },
+        "node_modules/p-try": {
+            "version": "2.2.0",
+            "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+            "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+            "engines": {
+                "node": ">=6"
+            }
+        },
+        "node_modules/parse5": {
+            "version": "1.5.1",
+            "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz",
+            "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=",
+            "optional": true
+        },
+        "node_modules/path-exists": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+            "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+            "engines": {
+                "node": ">=8"
+            }
+        },
+        "node_modules/path-is-absolute": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+            "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/path-parse": {
+            "version": "1.0.6",
+            "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
+            "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+            "dev": true
+        },
+        "node_modules/performance-now": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+            "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
+        },
+        "node_modules/pkginfo": {
+            "version": "0.4.1",
+            "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz",
+            "integrity": "sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=",
+            "engines": {
+                "node": ">= 0.4.0"
+            }
+        },
+        "node_modules/prelude-ls": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+            "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
+            "optional": true,
+            "engines": {
+                "node": ">= 0.8.0"
+            }
+        },
+        "node_modules/prompt": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.0.0.tgz",
+            "integrity": "sha1-jlcSPDlquYiJf7Mn/Trtw+c15P4=",
+            "dependencies": {
+                "colors": "^1.1.2",
+                "pkginfo": "0.x.x",
+                "read": "1.0.x",
+                "revalidator": "0.1.x",
+                "utile": "0.3.x",
+                "winston": "2.1.x"
+            },
+            "engines": {
+                "node": ">= 0.6.6"
+            }
+        },
+        "node_modules/psl": {
+            "version": "1.8.0",
+            "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
+            "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
+        },
+        "node_modules/punycode": {
+            "version": "2.1.1",
+            "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+            "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+            "engines": {
+                "node": ">=6"
+            }
+        },
+        "node_modules/qs": {
+            "version": "6.5.2",
+            "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+            "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
+            "engines": {
+                "node": ">=0.6"
+            }
+        },
+        "node_modules/read": {
+            "version": "1.0.7",
+            "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
+            "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=",
+            "dependencies": {
+                "mute-stream": "~0.0.4"
+            },
+            "engines": {
+                "node": ">=0.8"
+            }
+        },
+        "node_modules/readable-stream": {
+            "version": "1.1.14",
+            "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+            "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+            "dependencies": {
+                "core-util-is": "~1.0.0",
+                "inherits": "~2.0.1",
+                "isarray": "0.0.1",
+                "string_decoder": "~0.10.x"
+            }
+        },
+        "node_modules/request": {
+            "version": "2.88.0",
+            "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
+            "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
+            "dependencies": {
+                "aws-sign2": "~0.7.0",
+                "aws4": "^1.8.0",
+                "caseless": "~0.12.0",
+                "combined-stream": "~1.0.6",
+                "extend": "~3.0.2",
+                "forever-agent": "~0.6.1",
+                "form-data": "~2.3.2",
+                "har-validator": "~5.1.0",
+                "http-signature": "~1.2.0",
+                "is-typedarray": "~1.0.0",
+                "isstream": "~0.1.2",
+                "json-stringify-safe": "~5.0.1",
+                "mime-types": "~2.1.19",
+                "oauth-sign": "~0.9.0",
+                "performance-now": "^2.1.0",
+                "qs": "~6.5.2",
+                "safe-buffer": "^5.1.2",
+                "tough-cookie": "~2.4.3",
+                "tunnel-agent": "^0.6.0",
+                "uuid": "^3.3.2"
+            },
+            "engines": {
+                "node": ">= 4"
+            }
+        },
+        "node_modules/request/node_modules/punycode": {
+            "version": "1.4.1",
+            "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+            "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
+        },
+        "node_modules/request/node_modules/tough-cookie": {
+            "version": "2.4.3",
+            "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
+            "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
+            "dependencies": {
+                "psl": "^1.1.24",
+                "punycode": "^1.4.1"
+            },
+            "engines": {
+                "node": ">=0.8"
+            }
+        },
+        "node_modules/require-directory": {
+            "version": "2.1.1",
+            "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+            "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/require-from-string": {
+            "version": "2.0.2",
+            "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+            "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/require-main-filename": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+            "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
+        },
+        "node_modules/resolve": {
+            "version": "1.10.0",
+            "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz",
+            "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==",
+            "dev": true,
+            "dependencies": {
+                "path-parse": "^1.0.6"
+            }
+        },
+        "node_modules/restore-cursor": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+            "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+            "dependencies": {
+                "onetime": "^2.0.0",
+                "signal-exit": "^3.0.2"
+            },
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/revalidator": {
+            "version": "0.1.8",
+            "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz",
+            "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=",
+            "engines": {
+                "node": ">= 0.4.0"
+            }
+        },
+        "node_modules/rimraf": {
+            "version": "2.7.1",
+            "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+            "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+            "dependencies": {
+                "glob": "^7.1.3"
+            },
+            "bin": {
+                "rimraf": "bin.js"
+            }
+        },
+        "node_modules/safe-buffer": {
+            "version": "5.2.1",
+            "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+            "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+        },
+        "node_modules/safer-buffer": {
+            "version": "2.1.2",
+            "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+            "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+        },
+        "node_modules/sax": {
+            "version": "1.2.4",
+            "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+            "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
+            "optional": true
+        },
+        "node_modules/secure-keys": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/secure-keys/-/secure-keys-1.0.0.tgz",
+            "integrity": "sha1-8MgtmKOxOah3aogIBQuCRDEIf8o="
+        },
+        "node_modules/semver": {
+            "version": "5.6.0",
+            "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
+            "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
+            "dev": true,
+            "bin": {
+                "semver": "bin/semver"
+            }
+        },
+        "node_modules/set-blocking": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+            "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
+        },
+        "node_modules/signal-exit": {
+            "version": "3.0.3",
+            "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
+            "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
+        },
+        "node_modules/source-map": {
+            "version": "0.6.1",
+            "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+            "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+            "optional": true,
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/sprintf-js": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+            "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
+        },
+        "node_modules/sshpk": {
+            "version": "1.16.1",
+            "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
+            "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
+            "dependencies": {
+                "asn1": "~0.2.3",
+                "assert-plus": "^1.0.0",
+                "bcrypt-pbkdf": "^1.0.0",
+                "dashdash": "^1.12.0",
+                "ecc-jsbn": "~0.1.1",
+                "getpass": "^0.1.1",
+                "jsbn": "~0.1.0",
+                "safer-buffer": "^2.0.2",
+                "tweetnacl": "~0.14.0"
+            },
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/stack-trace": {
+            "version": "0.0.10",
+            "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
+            "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=",
+            "engines": {
+                "node": "*"
+            }
+        },
+        "node_modules/string_decoder": {
+            "version": "0.10.31",
+            "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+            "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+        },
+        "node_modules/string-width": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+            "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+            "dependencies": {
+                "code-point-at": "^1.0.0",
+                "is-fullwidth-code-point": "^1.0.0",
+                "strip-ansi": "^3.0.0"
+            },
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/string.fromcodepoint": {
+            "version": "0.2.1",
+            "resolved": "https://registry.npmjs.org/string.fromcodepoint/-/string.fromcodepoint-0.2.1.tgz",
+            "integrity": "sha1-jZeDM8C8klOPUPOD5IiPPlYZ1lM="
+        },
+        "node_modules/strip-ansi": {
+            "version": "3.0.1",
+            "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+            "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+            "dependencies": {
+                "ansi-regex": "^2.0.0"
+            },
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/supports-color": {
+            "version": "5.5.0",
+            "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+            "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+            "dependencies": {
+                "has-flag": "^3.0.0"
+            },
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/symbol-tree": {
+            "version": "3.2.4",
+            "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
+            "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
+            "optional": true
+        },
+        "node_modules/tough-cookie": {
+            "version": "2.5.0",
+            "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
+            "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
+            "optional": true,
+            "dependencies": {
+                "psl": "^1.1.28",
+                "punycode": "^2.1.1"
+            },
+            "engines": {
+                "node": ">=0.8"
+            }
+        },
+        "node_modules/tr46": {
+            "version": "0.0.3",
+            "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+            "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=",
+            "optional": true
+        },
+        "node_modules/tslib": {
+            "version": "1.9.3",
+            "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
+            "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
+            "dev": true
+        },
+        "node_modules/tslint": {
+            "version": "5.12.1",
+            "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.12.1.tgz",
+            "integrity": "sha512-sfodBHOucFg6egff8d1BvuofoOQ/nOeYNfbp7LDlKBcLNrL3lmS5zoiDGyOMdT7YsEXAwWpTdAHwOGOc8eRZAw==",
+            "dev": true,
+            "dependencies": {
+                "babel-code-frame": "^6.22.0",
+                "builtin-modules": "^1.1.1",
+                "chalk": "^2.3.0",
+                "commander": "^2.12.1",
+                "diff": "^3.2.0",
+                "glob": "^7.1.1",
+                "js-yaml": "^3.7.0",
+                "minimatch": "^3.0.4",
+                "resolve": "^1.3.2",
+                "semver": "^5.3.0",
+                "tslib": "^1.8.0",
+                "tsutils": "^2.27.2"
+            },
+            "bin": {
+                "tslint": "bin/tslint"
+            },
+            "engines": {
+                "node": ">=4.8.0"
+            }
+        },
+        "node_modules/tsutils": {
+            "version": "2.29.0",
+            "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
+            "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
+            "dev": true,
+            "dependencies": {
+                "tslib": "^1.8.1"
+            }
+        },
+        "node_modules/tunnel-agent": {
+            "version": "0.6.0",
+            "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+            "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+            "dependencies": {
+                "safe-buffer": "^5.0.1"
+            },
+            "engines": {
+                "node": "*"
+            }
+        },
+        "node_modules/tweetnacl": {
+            "version": "0.14.5",
+            "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+            "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
+        },
+        "node_modules/type-check": {
+            "version": "0.3.2",
+            "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+            "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+            "optional": true,
+            "dependencies": {
+                "prelude-ls": "~1.1.2"
+            },
+            "engines": {
+                "node": ">= 0.8.0"
+            }
+        },
+        "node_modules/typescript": {
+            "version": "2.9.2",
+            "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz",
+            "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==",
+            "dev": true,
+            "bin": {
+                "tsc": "bin/tsc",
+                "tsserver": "bin/tsserver"
+            },
+            "engines": {
+                "node": ">=4.2.0"
+            }
+        },
+        "node_modules/uc.micro": {
+            "version": "1.0.6",
+            "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
+            "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA=="
+        },
+        "node_modules/underscore": {
+            "version": "1.9.1",
+            "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz",
+            "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg=="
+        },
+        "node_modules/unescape-js": {
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/unescape-js/-/unescape-js-1.1.1.tgz",
+            "integrity": "sha512-2/6CdybfFt9fzYJhCD6SHfBnqCGNfjhMwPK9Pf+sJRloa/WmyAmxdBVOslOIYkvSIRKX+9xGePF5t1tugtZ63g==",
+            "dependencies": {
+                "string.fromcodepoint": "^0.2.1"
+            }
+        },
+        "node_modules/universalify": {
+            "version": "0.1.2",
+            "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+            "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
+            "engines": {
+                "node": ">= 4.0.0"
+            }
+        },
+        "node_modules/uri-js": {
+            "version": "4.2.2",
+            "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
+            "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+            "dependencies": {
+                "punycode": "^2.1.0"
+            }
+        },
+        "node_modules/utile": {
+            "version": "0.3.0",
+            "resolved": "https://registry.npmjs.org/utile/-/utile-0.3.0.tgz",
+            "integrity": "sha1-E1LDQOuCDk2N26A5pPv6oy7U7zo=",
+            "dependencies": {
+                "async": "~0.9.0",
+                "deep-equal": "~0.2.1",
+                "i": "0.3.x",
+                "mkdirp": "0.x.x",
+                "ncp": "1.0.x",
+                "rimraf": "2.x.x"
+            },
+            "engines": {
+                "node": ">= 0.8.0"
+            }
+        },
+        "node_modules/utile/node_modules/async": {
+            "version": "0.9.2",
+            "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
+            "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0="
+        },
+        "node_modules/utile/node_modules/mkdirp": {
+            "version": "0.5.5",
+            "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+            "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+            "dependencies": {
+                "minimist": "^1.2.5"
+            },
+            "bin": {
+                "mkdirp": "bin/cmd.js"
+            }
+        },
+        "node_modules/uuid": {
+            "version": "3.4.0",
+            "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+            "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+            "bin": {
+                "uuid": "bin/uuid"
+            }
+        },
+        "node_modules/verror": {
+            "version": "1.10.0",
+            "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+            "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+            "engines": [
+                "node >=0.6.0"
+            ],
+            "dependencies": {
+                "assert-plus": "^1.0.0",
+                "core-util-is": "1.0.2",
+                "extsprintf": "^1.2.0"
+            }
+        },
+        "node_modules/vsc-leetcode-cli": {
+            "version": "2.8.0",
+            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.8.0.tgz",
+            "integrity": "sha512-KcFzpk3OZ+wUCoeK1yjBK0hYpJItYd8WFC7pQfE1zxJGjQs4tUvadLI5imKfRjw5NicjNRFnVpVv6N7ig7ik4A==",
+            "dependencies": {
+                "ansi-styles": "3.2.1",
+                "cheerio": "0.20.0",
+                "he": "1.2.0",
+                "mkdirp": "^1.0.4",
+                "moment": "^2.20.1",
+                "nconf": "0.10.0",
+                "ora": "3.0.0",
+                "prompt": "1.0.0",
+                "request": "2.88.0",
+                "supports-color": "5.5.0",
+                "underscore": "1.9.1",
+                "wordwrap": "1.0.0",
+                "yargs": "^15.3.1"
+            },
+            "bin": {
+                "leetcode": "bin/leetcode"
+            },
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/wcwidth": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
+            "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=",
+            "dependencies": {
+                "defaults": "^1.0.3"
+            }
+        },
+        "node_modules/webidl-conversions": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-2.0.1.tgz",
+            "integrity": "sha1-O/glj30xjHRDw28uFpQCoaZwNQY=",
+            "optional": true
+        },
+        "node_modules/whatwg-url-compat": {
+            "version": "0.6.5",
+            "resolved": "https://registry.npmjs.org/whatwg-url-compat/-/whatwg-url-compat-0.6.5.tgz",
+            "integrity": "sha1-AImBEa9om7CXVBzVpFymyHmERb8=",
+            "optional": true,
+            "dependencies": {
+                "tr46": "~0.0.1"
+            }
+        },
+        "node_modules/which-module": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+            "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
+        },
+        "node_modules/window-size": {
+            "version": "0.1.4",
+            "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz",
+            "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=",
+            "bin": {
+                "window-size": "cli.js"
+            },
+            "engines": {
+                "node": ">= 0.10.0"
+            }
+        },
+        "node_modules/winston": {
+            "version": "2.1.1",
+            "resolved": "https://registry.npmjs.org/winston/-/winston-2.1.1.tgz",
+            "integrity": "sha1-PJNJ0ZYgf9G9/51LxD73JRDjoS4=",
+            "dependencies": {
+                "async": "~1.0.0",
+                "colors": "1.0.x",
+                "cycle": "1.0.x",
+                "eyes": "0.1.x",
+                "isstream": "0.1.x",
+                "pkginfo": "0.3.x",
+                "stack-trace": "0.0.x"
+            },
+            "engines": {
+                "node": ">= 0.8.0"
+            }
+        },
+        "node_modules/winston/node_modules/async": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz",
+            "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k="
+        },
+        "node_modules/winston/node_modules/colors": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
+            "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=",
+            "engines": {
+                "node": ">=0.1.90"
+            }
+        },
+        "node_modules/winston/node_modules/pkginfo": {
+            "version": "0.3.1",
+            "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz",
+            "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=",
+            "engines": {
+                "node": ">= 0.4.0"
+            }
+        },
+        "node_modules/word-wrap": {
+            "version": "1.2.3",
+            "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+            "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+            "optional": true,
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/wordwrap": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+            "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="
+        },
+        "node_modules/wrap-ansi": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+            "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+            "dependencies": {
+                "string-width": "^1.0.1",
+                "strip-ansi": "^3.0.1"
+            },
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/wrappy": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+            "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+        },
+        "node_modules/xml-name-validator": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz",
+            "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=",
+            "optional": true
+        },
+        "node_modules/y18n": {
+            "version": "3.2.1",
+            "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
+            "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE="
+        },
+        "node_modules/yargs": {
+            "version": "15.3.1",
+            "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz",
+            "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==",
+            "dependencies": {
+                "cliui": "^6.0.0",
+                "decamelize": "^1.2.0",
+                "find-up": "^4.1.0",
+                "get-caller-file": "^2.0.1",
+                "require-directory": "^2.1.1",
+                "require-main-filename": "^2.0.0",
+                "set-blocking": "^2.0.0",
+                "string-width": "^4.2.0",
+                "which-module": "^2.0.0",
+                "y18n": "^4.0.0",
+                "yargs-parser": "^18.1.1"
+            },
+            "engines": {
+                "node": ">=8"
+            }
+        },
+        "node_modules/yargs-parser": {
+            "version": "18.1.3",
+            "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+            "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+            "dependencies": {
+                "camelcase": "^5.0.0",
+                "decamelize": "^1.2.0"
+            },
+            "engines": {
+                "node": ">=6"
+            }
+        },
+        "node_modules/yargs-parser/node_modules/camelcase": {
+            "version": "5.3.1",
+            "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+            "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+            "engines": {
+                "node": ">=6"
+            }
+        },
+        "node_modules/yargs/node_modules/ansi-regex": {
+            "version": "5.0.0",
+            "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
+            "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
+            "engines": {
+                "node": ">=8"
+            }
+        },
+        "node_modules/yargs/node_modules/ansi-styles": {
+            "version": "4.2.1",
+            "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
+            "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+            "dependencies": {
+                "@types/color-name": "^1.1.1",
+                "color-convert": "^2.0.1"
+            },
+            "engines": {
+                "node": ">=8"
+            }
+        },
+        "node_modules/yargs/node_modules/cliui": {
+            "version": "6.0.0",
+            "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+            "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+            "dependencies": {
+                "string-width": "^4.2.0",
+                "strip-ansi": "^6.0.0",
+                "wrap-ansi": "^6.2.0"
+            }
+        },
+        "node_modules/yargs/node_modules/color-convert": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+            "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+            "dependencies": {
+                "color-name": "~1.1.4"
+            },
+            "engines": {
+                "node": ">=7.0.0"
+            }
+        },
+        "node_modules/yargs/node_modules/color-name": {
+            "version": "1.1.4",
+            "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+            "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+        },
+        "node_modules/yargs/node_modules/is-fullwidth-code-point": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+            "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+            "engines": {
+                "node": ">=8"
+            }
+        },
+        "node_modules/yargs/node_modules/string-width": {
+            "version": "4.2.0",
+            "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
+            "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+            "dependencies": {
+                "emoji-regex": "^8.0.0",
+                "is-fullwidth-code-point": "^3.0.0",
+                "strip-ansi": "^6.0.0"
+            },
+            "engines": {
+                "node": ">=8"
+            }
+        },
+        "node_modules/yargs/node_modules/strip-ansi": {
+            "version": "6.0.0",
+            "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
+            "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
+            "dependencies": {
+                "ansi-regex": "^5.0.0"
+            },
+            "engines": {
+                "node": ">=8"
+            }
+        },
+        "node_modules/yargs/node_modules/wrap-ansi": {
+            "version": "6.2.0",
+            "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+            "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+            "dependencies": {
+                "ansi-styles": "^4.0.0",
+                "string-width": "^4.1.0",
+                "strip-ansi": "^6.0.0"
+            },
+            "engines": {
+                "node": ">=8"
+            }
+        },
+        "node_modules/yargs/node_modules/y18n": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
+            "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="
+        }
+    },
     "dependencies": {
         "@types/color-name": {
             "version": "1.1.1",
@@ -496,7 +2629,8 @@
         "esutils": {
             "version": "2.0.2",
             "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
-            "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="
+            "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
+            "devOptional": true
         },
         "extend": {
             "version": "3.0.2",
@@ -1300,6 +3434,11 @@
             "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
             "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA="
         },
+        "string_decoder": {
+            "version": "0.10.31",
+            "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+            "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+        },
         "string-width": {
             "version": "1.0.2",
             "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
@@ -1315,11 +3454,6 @@
             "resolved": "https://registry.npmjs.org/string.fromcodepoint/-/string.fromcodepoint-0.2.1.tgz",
             "integrity": "sha1-jZeDM8C8klOPUPOD5IiPPlYZ1lM="
         },
-        "string_decoder": {
-            "version": "0.10.31",
-            "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
-            "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
-        },
         "strip-ansi": {
             "version": "3.0.1",
             "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
@@ -1496,9 +3630,9 @@
             }
         },
         "vsc-leetcode-cli": {
-            "version": "2.7.0",
-            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.7.0.tgz",
-            "integrity": "sha512-y0VEcdv1j61hblxBMQWGqdKC4TgGm9tu+9lvoMXz4RaDzwkmzfFpNMo32tMrJGiP23kk+IiXz6r41M1vcL2OlQ==",
+            "version": "2.8.0",
+            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.8.0.tgz",
+            "integrity": "sha512-KcFzpk3OZ+wUCoeK1yjBK0hYpJItYd8WFC7pQfE1zxJGjQs4tUvadLI5imKfRjw5NicjNRFnVpVv6N7ig7ik4A==",
             "requires": {
                 "ansi-styles": "3.2.1",
                 "cheerio": "0.20.0",
diff --git a/package.json b/package.json
index 4a2ef54a..58e99198 100644
--- a/package.json
+++ b/package.json
@@ -364,6 +364,12 @@
                         ],
                         "description": "Endpoint of the user account."
                     },
+                    "leetcode.useEndpointTranslation": {
+                        "type": "boolean",
+                        "default": true,
+                        "scope": "application",
+                        "description": "Use endpoint's translation (if available)"
+                    },
                     "leetcode.workspaceFolder": {
                         "type": "string",
                         "scope": "application",
@@ -672,8 +678,8 @@
         "@types/markdown-it": "0.0.7",
         "@types/mocha": "^2.2.42",
         "@types/node": "^7.0.43",
-        "@types/vscode": "1.42.0",
         "@types/require-from-string": "^1.2.0",
+        "@types/vscode": "1.42.0",
         "tslint": "^5.9.1",
         "typescript": "^2.6.1"
     },
@@ -684,6 +690,6 @@
         "markdown-it": "^8.4.2",
         "require-from-string": "^2.0.2",
         "unescape-js": "^1.1.1",
-        "vsc-leetcode-cli": "2.7.0"
+        "vsc-leetcode-cli": "2.8.0"
     }
 }
diff --git a/src/commands/list.ts b/src/commands/list.ts
index 5cb44137..7e7b36a7 100644
--- a/src/commands/list.ts
+++ b/src/commands/list.ts
@@ -5,6 +5,7 @@ import * as vscode from "vscode";
 import { leetCodeExecutor } from "../leetCodeExecutor";
 import { leetCodeManager } from "../leetCodeManager";
 import { IProblem, ProblemState, UserStatus } from "../shared";
+import * as settingUtils from "../utils/settingUtils";
 import { DialogType, promptForOpenOutputChannel } from "../utils/uiUtils";
 
 export async function listProblems(): Promise<IProblem[]> {
@@ -14,7 +15,8 @@ export async function listProblems(): Promise<IProblem[]> {
         }
         const leetCodeConfig: vscode.WorkspaceConfiguration = vscode.workspace.getConfiguration("leetcode");
         const showLocked: boolean = !!leetCodeConfig.get<boolean>("showLocked");
-        const result: string = await leetCodeExecutor.listProblems(showLocked);
+        const useEndpointTranslation: boolean = settingUtils.shouldUseEndpointTranslation();
+        const result: string = await leetCodeExecutor.listProblems(showLocked, useEndpointTranslation);
         const problems: IProblem[] = [];
         const lines: string[] = result.split("\n");
         const reg: RegExp = /^(.)\s(.{1,2})\s(.)\s\[\s*(\d*)\s*\]\s*(.*)\s*(Easy|Medium|Hard)\s*\((\s*\d+\.\d+ %)\)/;
diff --git a/src/commands/show.ts b/src/commands/show.ts
index 70474426..3aebce8f 100644
--- a/src/commands/show.ts
+++ b/src/commands/show.ts
@@ -41,8 +41,8 @@ export async function previewProblem(input: IProblem | vscode.Uri, isSideMode: b
     } else {
         node = input;
     }
-
-    const descString: string = await leetCodeExecutor.getDescription(node.id);
+    const needTranslation: boolean = settingUtils.shouldUseEndpointTranslation();
+    const descString: string = await leetCodeExecutor.getDescription(node.id, needTranslation);
     leetCodePreviewProvider.show(descString, node, isSideMode);
 }
 
@@ -97,7 +97,8 @@ export async function showSolution(input: LeetCodeNode | vscode.Uri): Promise<vo
         return;
     }
     try {
-        const solution: string = await leetCodeExecutor.showSolution(problemInput, language);
+        const needTranslation: boolean = settingUtils.shouldUseEndpointTranslation();
+        const solution: string = await leetCodeExecutor.showSolution(problemInput, language, needTranslation);
         leetCodeSolutionProvider.show(unescapeJS(solution));
     } catch (error) {
         leetCodeChannel.appendLine(error.toString());
@@ -167,7 +168,9 @@ async function showProblemInternal(node: IProblem): Promise<void> {
         finalPath = wsl.useWsl() ? await wsl.toWinPath(finalPath) : finalPath;
 
         const descriptionConfig: IDescriptionConfiguration = settingUtils.getDescriptionConfiguration();
-        await leetCodeExecutor.showProblem(node, language, finalPath, descriptionConfig.showInComment);
+        const needTranslation: boolean = settingUtils.shouldUseEndpointTranslation();
+
+        await leetCodeExecutor.showProblem(node, language, finalPath, descriptionConfig.showInComment, needTranslation);
         const promises: any[] = [
             vscode.window.showTextDocument(vscode.Uri.file(finalPath), { preview: false, viewColumn: vscode.ViewColumn.One }),
             promptHintMessage(
diff --git a/src/leetCodeExecutor.ts b/src/leetCodeExecutor.ts
index 5157b6c1..d2332c7a 100644
--- a/src/leetCodeExecutor.ts
+++ b/src/leetCodeExecutor.ts
@@ -88,30 +88,62 @@ class LeetCodeExecutor implements Disposable {
         return await this.executeCommandEx(this.nodeExecutable, [await this.getLeetCodeBinaryPath(), "user", "-L"]);
     }
 
-    public async listProblems(showLocked: boolean): Promise<string> {
-        return await this.executeCommandEx(this.nodeExecutable, showLocked ?
-            [await this.getLeetCodeBinaryPath(), "list"] :
-            [await this.getLeetCodeBinaryPath(), "list", "-q", "L"],
-        );
+    public async listProblems(showLocked: boolean, needTranslation: boolean): Promise<string> {
+        const cmd: string[] = [await this.getLeetCodeBinaryPath(), "list"];
+        if (!needTranslation) {
+            cmd.push("-T"); // use -T to prevent translation
+        }
+        if (!showLocked) {
+            cmd.push("-q");
+            cmd.push("L");
+        }
+        return await this.executeCommandEx(this.nodeExecutable, cmd);
     }
 
-    public async showProblem(problemNode: IProblem, language: string, filePath: string, showDescriptionInComment: boolean = false): Promise<void> {
+    public async showProblem(problemNode: IProblem, language: string, filePath: string, showDescriptionInComment: boolean = false, needTranslation: boolean): Promise<void> {
         const templateType: string = showDescriptionInComment ? "-cx" : "-c";
+        const cmd: string[] = [await this.getLeetCodeBinaryPath(), "show", problemNode.id, templateType, "-l", language];
+
+        if (!needTranslation) {
+            cmd.push("-T"); // use -T to force English version
+        }
 
         if (!await fse.pathExists(filePath)) {
             await fse.createFile(filePath);
-            const codeTemplate: string = await this.executeCommandWithProgressEx("Fetching problem data...", this.nodeExecutable, [await this.getLeetCodeBinaryPath(), "show", problemNode.id, templateType, "-l", language]);
+            const codeTemplate: string = await this.executeCommandWithProgressEx("Fetching problem data...", this.nodeExecutable, cmd);
             await fse.writeFile(filePath, codeTemplate);
         }
     }
 
-    public async showSolution(input: string, language: string): Promise<string> {
-        const solution: string = await this.executeCommandWithProgressEx("Fetching top voted solution from discussions...", this.nodeExecutable, [await this.getLeetCodeBinaryPath(), "show", input, "--solution", "-l", language]);
+    /**
+     * This function returns solution of a problem identified by input
+     *
+     * @remarks
+     * Even though this function takes the needTranslation flag, it is important to note
+     * that as of vsc-leetcode-cli 2.8.0, leetcode-cli doesn't support querying solution
+     * on CN endpoint yet. So this flag doesn't have any effect right now.
+     *
+     * @param input - parameter to pass to cli that can identify a problem
+     * @param language - the source code language of the solution desired
+     * @param needTranslation - whether or not to use endPoint translation on solution query
+     * @returns promise of the solution string
+     */
+    public async showSolution(input: string, language: string, needTranslation: boolean): Promise<string> {
+        // solution don't support translation
+        const cmd: string[] = [await this.getLeetCodeBinaryPath(), "show", input, "--solution", "-l", language];
+        if (!needTranslation) {
+            cmd.push("-T");
+        }
+        const solution: string = await this.executeCommandWithProgressEx("Fetching top voted solution from discussions...", this.nodeExecutable, cmd);
         return solution;
     }
 
-    public async getDescription(problemNodeId: string): Promise<string> {
-        return await this.executeCommandWithProgressEx("Fetching problem description...", this.nodeExecutable, [await this.getLeetCodeBinaryPath(), "show", problemNodeId, "-x"]);
+    public async getDescription(problemNodeId: string, needTranslation: boolean): Promise<string> {
+        const cmd: string[] = [await this.getLeetCodeBinaryPath(), "show", problemNodeId, "-x"];
+        if (!needTranslation) {
+            cmd.push("-T");
+        }
+        return await this.executeCommandWithProgressEx("Fetching problem description...", this.nodeExecutable, cmd);
     }
 
     public async listSessions(): Promise<string> {
diff --git a/src/utils/settingUtils.ts b/src/utils/settingUtils.ts
index 207604fa..7b6eb6c2 100644
--- a/src/utils/settingUtils.ts
+++ b/src/utils/settingUtils.ts
@@ -25,6 +25,10 @@ export function hasStarShortcut(): boolean {
     return shortcuts.indexOf("star") >= 0;
 }
 
+export function shouldUseEndpointTranslation(): boolean {
+    return getWorkspaceConfiguration().get<boolean>("useEndpointTranslation", true);
+}
+
 export function getDescriptionConfiguration(): IDescriptionConfiguration {
     const setting: string = getWorkspaceConfiguration().get<string>("showDescription", DescriptionConfiguration.InWebView);
     const config: IDescriptionConfiguration = {

From ff46c33772441a076ae0008c83b9531f58a57e98 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Thu, 3 Jun 2021 10:30:26 +0800
Subject: [PATCH 74/92] chore: Update npm modules (#710)

---
 package-lock.json                         | 2521 ++-------------------
 package.json                              |   19 +-
 src/leetCodeManager.ts                    |   14 +-
 src/utils/cpUtils.ts                      |    6 +-
 src/webview/leetCodePreviewProvider.ts    |    2 -
 src/webview/leetCodeSolutionProvider.ts   |    1 -
 src/webview/leetCodeSubmissionProvider.ts |    1 -
 7 files changed, 211 insertions(+), 2353 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 4afd04fd..e4980605 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,2172 +1,54 @@
 {
     "name": "vscode-leetcode",
     "version": "0.17.0",
-    "lockfileVersion": 2,
+    "lockfileVersion": 1,
     "requires": true,
-    "packages": {
-        "": {
-            "version": "0.17.0",
-            "license": "MIT",
-            "dependencies": {
-                "fs-extra": "^6.0.1",
-                "highlight.js": "^9.15.6",
-                "lodash": "^4.17.19",
-                "markdown-it": "^8.4.2",
-                "require-from-string": "^2.0.2",
-                "unescape-js": "^1.1.1",
-                "vsc-leetcode-cli": "^2.8.0"
-            },
-            "devDependencies": {
-                "@types/fs-extra": "5.0.0",
-                "@types/highlight.js": "^9.12.3",
-                "@types/lodash": "^4.14.123",
-                "@types/markdown-it": "0.0.7",
-                "@types/mocha": "^2.2.42",
-                "@types/node": "^7.0.43",
-                "@types/require-from-string": "^1.2.0",
-                "@types/vscode": "1.42.0",
-                "tslint": "^5.9.1",
-                "typescript": "^2.6.1"
-            },
-            "engines": {
-                "vscode": "^1.42.0"
-            }
-        },
-        "node_modules/@types/color-name": {
-            "version": "1.1.1",
-            "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
-            "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ=="
-        },
-        "node_modules/@types/fs-extra": {
-            "version": "5.0.0",
-            "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.0.tgz",
-            "integrity": "sha512-qtxDULQKUenuaDLW003CgC+0T0eiAfH3BrH+vSt87GLzbz5EZ6Ox6mv9rMttvhDOatbb9nYh0E1m7ydoYwUrAg==",
-            "dev": true,
-            "dependencies": {
-                "@types/node": "*"
-            }
-        },
-        "node_modules/@types/highlight.js": {
-            "version": "9.12.3",
-            "resolved": "https://registry.npmjs.org/@types/highlight.js/-/highlight.js-9.12.3.tgz",
-            "integrity": "sha512-pGF/zvYOACZ/gLGWdQH8zSwteQS1epp68yRcVLJMgUck/MjEn/FBYmPub9pXT8C1e4a8YZfHo1CKyV8q1vKUnQ==",
-            "dev": true
-        },
-        "node_modules/@types/linkify-it": {
-            "version": "2.0.4",
-            "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-2.0.4.tgz",
-            "integrity": "sha512-9o5piu3tP6DwqT+Cyf7S3BitsTc6Cl0pCPKUhIE5hzQbtueiBXdtBipTLLvaGfT11/8XHRmsagu4YfBesTaiCA==",
-            "dev": true
-        },
-        "node_modules/@types/lodash": {
-            "version": "4.14.123",
-            "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.123.tgz",
-            "integrity": "sha512-pQvPkc4Nltyx7G1Ww45OjVqUsJP4UsZm+GWJpigXgkikZqJgRm4c48g027o6tdgubWHwFRF15iFd+Y4Pmqv6+Q==",
-            "dev": true
-        },
-        "node_modules/@types/markdown-it": {
-            "version": "0.0.7",
-            "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-0.0.7.tgz",
-            "integrity": "sha512-WyL6pa76ollQFQNEaLVa41ZUUvDvPY+qAUmlsphnrpL6I9p1m868b26FyeoOmo7X3/Ta/S9WKXcEYXUSHnxoVQ==",
-            "dev": true,
-            "dependencies": {
-                "@types/linkify-it": "*"
-            }
-        },
-        "node_modules/@types/mocha": {
-            "version": "2.2.48",
-            "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-2.2.48.tgz",
-            "integrity": "sha512-nlK/iyETgafGli8Zh9zJVCTicvU3iajSkRwOh3Hhiva598CMqNJ4NcVCGMTGKpGpTYj/9R8RLzS9NAykSSCqGw==",
-            "dev": true
-        },
-        "node_modules/@types/node": {
-            "version": "7.10.3",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-7.10.3.tgz",
-            "integrity": "sha512-HeyK+csRk7Khhg9krpMGJeT9pLzjsmiJFHYRzYpPv/dQ5tPclQsbvceiX/HKynRt/9lMLorWUYTbBHC3hRI4sg==",
-            "dev": true
-        },
-        "node_modules/@types/require-from-string": {
-            "version": "1.2.0",
-            "resolved": "https://registry.npmjs.org/@types/require-from-string/-/require-from-string-1.2.0.tgz",
-            "integrity": "sha512-5vE9WoOOC9/DoD3Zj53UISpM+5tSvh8k0mL4fe2zFI6vO715/W4IQ3EdVUrWVMrFi1/NZhyMvm2iKsDFkEGddQ==",
-            "dev": true
-        },
-        "node_modules/@types/vscode": {
-            "version": "1.42.0",
-            "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.42.0.tgz",
-            "integrity": "sha512-ds6TceMsh77Fs0Mq0Vap6Y72JbGWB8Bay4DrnJlf5d9ui2RSe1wis13oQm+XhguOeH1HUfLGzaDAoupTUtgabw==",
-            "dev": true
-        },
-        "node_modules/abab": {
-            "version": "1.0.4",
-            "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz",
-            "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=",
-            "optional": true
-        },
-        "node_modules/acorn": {
-            "version": "2.7.0",
-            "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz",
-            "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=",
-            "optional": true,
-            "bin": {
-                "acorn": "bin/acorn"
-            },
-            "engines": {
-                "node": ">=0.4.0"
-            }
-        },
-        "node_modules/acorn-globals": {
-            "version": "1.0.9",
-            "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz",
-            "integrity": "sha1-VbtemGkVB7dFedBRNBMhfDgMVM8=",
-            "optional": true,
-            "dependencies": {
-                "acorn": "^2.1.0"
-            }
-        },
-        "node_modules/ajv": {
-            "version": "6.12.2",
-            "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
-            "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
-            "dependencies": {
-                "fast-deep-equal": "^3.1.1",
-                "fast-json-stable-stringify": "^2.0.0",
-                "json-schema-traverse": "^0.4.1",
-                "uri-js": "^4.2.2"
-            }
-        },
-        "node_modules/ansi-regex": {
-            "version": "2.1.1",
-            "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
-            "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
-            "engines": {
-                "node": ">=0.10.0"
-            }
-        },
-        "node_modules/ansi-styles": {
-            "version": "3.2.1",
-            "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
-            "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
-            "dependencies": {
-                "color-convert": "^1.9.0"
-            },
-            "engines": {
-                "node": ">=4"
-            }
-        },
-        "node_modules/argparse": {
-            "version": "1.0.10",
-            "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
-            "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
-            "dependencies": {
-                "sprintf-js": "~1.0.2"
-            }
-        },
-        "node_modules/asn1": {
-            "version": "0.2.4",
-            "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
-            "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
-            "dependencies": {
-                "safer-buffer": "~2.1.0"
-            }
-        },
-        "node_modules/assert-plus": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
-            "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
-            "engines": {
-                "node": ">=0.8"
-            }
-        },
-        "node_modules/async": {
-            "version": "1.5.2",
-            "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
-            "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
-        },
-        "node_modules/asynckit": {
-            "version": "0.4.0",
-            "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
-            "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
-        },
-        "node_modules/aws-sign2": {
-            "version": "0.7.0",
-            "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
-            "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
-            "engines": {
-                "node": "*"
-            }
-        },
-        "node_modules/aws4": {
-            "version": "1.10.0",
-            "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz",
-            "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA=="
-        },
-        "node_modules/babel-code-frame": {
-            "version": "6.26.0",
-            "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
-            "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
-            "dev": true,
-            "dependencies": {
-                "chalk": "^1.1.3",
-                "esutils": "^2.0.2",
-                "js-tokens": "^3.0.2"
-            }
-        },
-        "node_modules/babel-code-frame/node_modules/ansi-styles": {
-            "version": "2.2.1",
-            "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
-            "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-            "dev": true,
-            "engines": {
-                "node": ">=0.10.0"
-            }
-        },
-        "node_modules/babel-code-frame/node_modules/chalk": {
-            "version": "1.1.3",
-            "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
-            "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-            "dev": true,
-            "dependencies": {
-                "ansi-styles": "^2.2.1",
-                "escape-string-regexp": "^1.0.2",
-                "has-ansi": "^2.0.0",
-                "strip-ansi": "^3.0.0",
-                "supports-color": "^2.0.0"
-            },
-            "engines": {
-                "node": ">=0.10.0"
-            }
-        },
-        "node_modules/babel-code-frame/node_modules/supports-color": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
-            "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-            "dev": true,
-            "engines": {
-                "node": ">=0.8.0"
-            }
-        },
-        "node_modules/balanced-match": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
-            "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
-        },
-        "node_modules/bcrypt-pbkdf": {
-            "version": "1.0.2",
-            "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
-            "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
-            "dependencies": {
-                "tweetnacl": "^0.14.3"
-            }
-        },
-        "node_modules/boolbase": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
-            "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
-        },
-        "node_modules/brace-expansion": {
-            "version": "1.1.11",
-            "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
-            "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
-            "dependencies": {
-                "balanced-match": "^1.0.0",
-                "concat-map": "0.0.1"
-            }
-        },
-        "node_modules/builtin-modules": {
-            "version": "1.1.1",
-            "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
-            "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
-            "dev": true,
-            "engines": {
-                "node": ">=0.10.0"
-            }
-        },
-        "node_modules/camelcase": {
-            "version": "2.1.1",
-            "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
-            "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
-            "engines": {
-                "node": ">=0.10.0"
-            }
-        },
-        "node_modules/caseless": {
-            "version": "0.12.0",
-            "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
-            "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
-        },
-        "node_modules/chalk": {
-            "version": "2.4.2",
-            "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
-            "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
-            "dependencies": {
-                "ansi-styles": "^3.2.1",
-                "escape-string-regexp": "^1.0.5",
-                "supports-color": "^5.3.0"
-            },
-            "engines": {
-                "node": ">=4"
-            }
-        },
-        "node_modules/cheerio": {
-            "version": "0.20.0",
-            "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.20.0.tgz",
-            "integrity": "sha1-XHEPK6uVZTJyhCugHG6mGzVF7DU=",
-            "dependencies": {
-                "css-select": "~1.2.0",
-                "dom-serializer": "~0.1.0",
-                "entities": "~1.1.1",
-                "htmlparser2": "~3.8.1",
-                "lodash": "^4.1.0"
-            },
-            "engines": {
-                "node": ">= 0.6"
-            },
-            "optionalDependencies": {
-                "jsdom": "^7.0.2"
-            }
-        },
-        "node_modules/cli-cursor": {
-            "version": "2.1.0",
-            "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
-            "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
-            "dependencies": {
-                "restore-cursor": "^2.0.0"
-            },
-            "engines": {
-                "node": ">=4"
-            }
-        },
-        "node_modules/cli-spinners": {
-            "version": "1.3.1",
-            "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz",
-            "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==",
-            "engines": {
-                "node": ">=4"
-            }
-        },
-        "node_modules/cliui": {
-            "version": "3.2.0",
-            "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
-            "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
-            "dependencies": {
-                "string-width": "^1.0.1",
-                "strip-ansi": "^3.0.1",
-                "wrap-ansi": "^2.0.0"
-            }
-        },
-        "node_modules/clone": {
-            "version": "1.0.4",
-            "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
-            "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
-            "engines": {
-                "node": ">=0.8"
-            }
-        },
-        "node_modules/code-point-at": {
-            "version": "1.1.0",
-            "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
-            "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=",
-            "engines": {
-                "node": ">=0.10.0"
-            }
-        },
-        "node_modules/color-convert": {
-            "version": "1.9.3",
-            "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
-            "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
-            "dependencies": {
-                "color-name": "1.1.3"
-            }
-        },
-        "node_modules/color-name": {
-            "version": "1.1.3",
-            "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
-            "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
-        },
-        "node_modules/colors": {
-            "version": "1.4.0",
-            "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
-            "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
-            "engines": {
-                "node": ">=0.1.90"
-            }
-        },
-        "node_modules/combined-stream": {
-            "version": "1.0.8",
-            "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
-            "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
-            "dependencies": {
-                "delayed-stream": "~1.0.0"
-            },
-            "engines": {
-                "node": ">= 0.8"
-            }
-        },
-        "node_modules/commander": {
-            "version": "2.19.0",
-            "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz",
-            "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==",
-            "dev": true
-        },
-        "node_modules/concat-map": {
-            "version": "0.0.1",
-            "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
-            "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
-        },
-        "node_modules/core-util-is": {
-            "version": "1.0.2",
-            "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
-            "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
-        },
-        "node_modules/css-select": {
-            "version": "1.2.0",
-            "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
-            "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
-            "dependencies": {
-                "boolbase": "~1.0.0",
-                "css-what": "2.1",
-                "domutils": "1.5.1",
-                "nth-check": "~1.0.1"
-            }
-        },
-        "node_modules/css-what": {
-            "version": "2.1.3",
-            "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
-            "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==",
-            "engines": {
-                "node": "*"
-            }
-        },
-        "node_modules/cssom": {
-            "version": "0.3.8",
-            "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
-            "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
-            "optional": true
-        },
-        "node_modules/cssstyle": {
-            "version": "0.2.37",
-            "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz",
-            "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=",
-            "optional": true,
-            "dependencies": {
-                "cssom": "0.3.x"
-            }
-        },
-        "node_modules/cycle": {
-            "version": "1.0.3",
-            "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz",
-            "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=",
-            "engines": {
-                "node": ">=0.4.0"
-            }
-        },
-        "node_modules/dashdash": {
-            "version": "1.14.1",
-            "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
-            "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
-            "dependencies": {
-                "assert-plus": "^1.0.0"
-            },
-            "engines": {
-                "node": ">=0.10"
-            }
-        },
-        "node_modules/decamelize": {
-            "version": "1.2.0",
-            "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
-            "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
-            "engines": {
-                "node": ">=0.10.0"
-            }
-        },
-        "node_modules/deep-equal": {
-            "version": "0.2.2",
-            "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-0.2.2.tgz",
-            "integrity": "sha1-hLdFiW80xoTpjyzg5Cq69Du6AX0="
-        },
-        "node_modules/deep-is": {
-            "version": "0.1.3",
-            "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
-            "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
-            "optional": true
-        },
-        "node_modules/defaults": {
-            "version": "1.0.3",
-            "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
-            "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
-            "dependencies": {
-                "clone": "^1.0.2"
-            }
-        },
-        "node_modules/delayed-stream": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
-            "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
-            "engines": {
-                "node": ">=0.4.0"
-            }
-        },
-        "node_modules/diff": {
-            "version": "3.5.0",
-            "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
-            "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
-            "dev": true,
-            "engines": {
-                "node": ">=0.3.1"
-            }
-        },
-        "node_modules/dom-serializer": {
-            "version": "0.1.1",
-            "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz",
-            "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==",
-            "dependencies": {
-                "domelementtype": "^1.3.0",
-                "entities": "^1.1.1"
-            }
-        },
-        "node_modules/domelementtype": {
-            "version": "1.3.1",
-            "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
-            "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
-        },
-        "node_modules/domhandler": {
-            "version": "2.3.0",
-            "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz",
-            "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=",
-            "dependencies": {
-                "domelementtype": "1"
-            }
-        },
-        "node_modules/domutils": {
-            "version": "1.5.1",
-            "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
-            "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
-            "dependencies": {
-                "dom-serializer": "0",
-                "domelementtype": "1"
-            }
-        },
-        "node_modules/ecc-jsbn": {
-            "version": "0.1.2",
-            "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
-            "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
-            "dependencies": {
-                "jsbn": "~0.1.0",
-                "safer-buffer": "^2.1.0"
-            }
-        },
-        "node_modules/emoji-regex": {
-            "version": "8.0.0",
-            "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
-            "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
-        },
-        "node_modules/entities": {
-            "version": "1.1.2",
-            "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
-            "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
-        },
-        "node_modules/escape-string-regexp": {
-            "version": "1.0.5",
-            "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-            "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
-            "engines": {
-                "node": ">=0.8.0"
-            }
-        },
-        "node_modules/escodegen": {
-            "version": "1.14.3",
-            "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
-            "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
-            "optional": true,
-            "dependencies": {
-                "esprima": "^4.0.1",
-                "estraverse": "^4.2.0",
-                "esutils": "^2.0.2",
-                "optionator": "^0.8.1",
-                "source-map": "~0.6.1"
-            },
-            "bin": {
-                "escodegen": "bin/escodegen.js",
-                "esgenerate": "bin/esgenerate.js"
-            },
-            "engines": {
-                "node": ">=4.0"
-            }
-        },
-        "node_modules/esprima": {
-            "version": "4.0.1",
-            "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
-            "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
-            "optional": true,
-            "bin": {
-                "esparse": "bin/esparse.js",
-                "esvalidate": "bin/esvalidate.js"
-            },
-            "engines": {
-                "node": ">=4"
-            }
-        },
-        "node_modules/estraverse": {
-            "version": "4.3.0",
-            "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
-            "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
-            "optional": true,
-            "engines": {
-                "node": ">=4.0"
-            }
-        },
-        "node_modules/esutils": {
-            "version": "2.0.2",
-            "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
-            "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
-            "devOptional": true,
-            "engines": {
-                "node": ">=0.10.0"
-            }
-        },
-        "node_modules/extend": {
-            "version": "3.0.2",
-            "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
-            "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
-        },
-        "node_modules/extsprintf": {
-            "version": "1.3.0",
-            "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
-            "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
-            "engines": [
-                "node >=0.6.0"
-            ]
-        },
-        "node_modules/eyes": {
-            "version": "0.1.8",
-            "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
-            "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=",
-            "engines": {
-                "node": "> 0.1.90"
-            }
-        },
-        "node_modules/fast-deep-equal": {
-            "version": "3.1.3",
-            "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
-            "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
-        },
-        "node_modules/fast-json-stable-stringify": {
-            "version": "2.1.0",
-            "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
-            "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
-        },
-        "node_modules/fast-levenshtein": {
-            "version": "2.0.6",
-            "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
-            "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
-            "optional": true
-        },
-        "node_modules/find-up": {
-            "version": "4.1.0",
-            "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
-            "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
-            "dependencies": {
-                "locate-path": "^5.0.0",
-                "path-exists": "^4.0.0"
-            },
-            "engines": {
-                "node": ">=8"
-            }
-        },
-        "node_modules/forever-agent": {
-            "version": "0.6.1",
-            "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
-            "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
-            "engines": {
-                "node": "*"
-            }
-        },
-        "node_modules/form-data": {
-            "version": "2.3.3",
-            "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
-            "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
-            "dependencies": {
-                "asynckit": "^0.4.0",
-                "combined-stream": "^1.0.6",
-                "mime-types": "^2.1.12"
-            },
-            "engines": {
-                "node": ">= 0.12"
-            }
-        },
-        "node_modules/fs-extra": {
-            "version": "6.0.1",
-            "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz",
-            "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==",
-            "dependencies": {
-                "graceful-fs": "^4.1.2",
-                "jsonfile": "^4.0.0",
-                "universalify": "^0.1.0"
-            }
-        },
-        "node_modules/fs.realpath": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
-            "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
-        },
-        "node_modules/get-caller-file": {
-            "version": "2.0.5",
-            "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
-            "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
-            "engines": {
-                "node": "6.* || 8.* || >= 10.*"
-            }
-        },
-        "node_modules/getpass": {
-            "version": "0.1.7",
-            "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
-            "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
-            "dependencies": {
-                "assert-plus": "^1.0.0"
-            }
-        },
-        "node_modules/glob": {
-            "version": "7.1.3",
-            "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
-            "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
-            "dependencies": {
-                "fs.realpath": "^1.0.0",
-                "inflight": "^1.0.4",
-                "inherits": "2",
-                "minimatch": "^3.0.4",
-                "once": "^1.3.0",
-                "path-is-absolute": "^1.0.0"
-            },
-            "engines": {
-                "node": "*"
-            }
-        },
-        "node_modules/graceful-fs": {
-            "version": "4.1.15",
-            "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
-            "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA=="
-        },
-        "node_modules/har-schema": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
-            "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
-            "engines": {
-                "node": ">=4"
-            }
-        },
-        "node_modules/har-validator": {
-            "version": "5.1.3",
-            "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
-            "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
-            "dependencies": {
-                "ajv": "^6.5.5",
-                "har-schema": "^2.0.0"
-            },
-            "engines": {
-                "node": ">=6"
-            }
-        },
-        "node_modules/has-ansi": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
-            "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
-            "dev": true,
-            "dependencies": {
-                "ansi-regex": "^2.0.0"
-            },
-            "engines": {
-                "node": ">=0.10.0"
-            }
-        },
-        "node_modules/has-flag": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-            "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
-            "engines": {
-                "node": ">=4"
-            }
-        },
-        "node_modules/he": {
-            "version": "1.2.0",
-            "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
-            "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
-            "bin": {
-                "he": "bin/he"
-            }
-        },
-        "node_modules/highlight.js": {
-            "version": "9.15.6",
-            "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.6.tgz",
-            "integrity": "sha512-zozTAWM1D6sozHo8kqhfYgsac+B+q0PmsjXeyDrYIHHcBN0zTVT66+s2GW1GZv7DbyaROdLXKdabwS/WqPyIdQ==",
-            "engines": {
-                "node": "*"
-            }
-        },
-        "node_modules/htmlparser2": {
-            "version": "3.8.3",
-            "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
-            "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=",
-            "dependencies": {
-                "domelementtype": "1",
-                "domhandler": "2.3",
-                "domutils": "1.5",
-                "entities": "1.0",
-                "readable-stream": "1.1"
-            }
-        },
-        "node_modules/htmlparser2/node_modules/entities": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
-            "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY="
-        },
-        "node_modules/http-signature": {
-            "version": "1.2.0",
-            "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
-            "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
-            "dependencies": {
-                "assert-plus": "^1.0.0",
-                "jsprim": "^1.2.2",
-                "sshpk": "^1.7.0"
-            },
-            "engines": {
-                "node": ">=0.8",
-                "npm": ">=1.3.7"
-            }
-        },
-        "node_modules/i": {
-            "version": "0.3.6",
-            "resolved": "https://registry.npmjs.org/i/-/i-0.3.6.tgz",
-            "integrity": "sha1-2WyScyB28HJxG2sQ/X1PZa2O4j0=",
-            "engines": {
-                "node": ">=0.4"
-            }
-        },
-        "node_modules/inflight": {
-            "version": "1.0.6",
-            "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
-            "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
-            "dependencies": {
-                "once": "^1.3.0",
-                "wrappy": "1"
-            }
-        },
-        "node_modules/inherits": {
-            "version": "2.0.3",
-            "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
-            "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
-        },
-        "node_modules/ini": {
-            "version": "1.3.7",
-            "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz",
-            "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ=="
-        },
-        "node_modules/invert-kv": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
-            "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
-            "engines": {
-                "node": ">=0.10.0"
-            }
-        },
-        "node_modules/is-fullwidth-code-point": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
-            "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
-            "dependencies": {
-                "number-is-nan": "^1.0.0"
-            },
-            "engines": {
-                "node": ">=0.10.0"
-            }
-        },
-        "node_modules/is-typedarray": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
-            "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
-        },
-        "node_modules/isarray": {
-            "version": "0.0.1",
-            "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
-            "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
-        },
-        "node_modules/isstream": {
-            "version": "0.1.2",
-            "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
-            "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
-        },
-        "node_modules/js-tokens": {
-            "version": "3.0.2",
-            "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
-            "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
-            "dev": true
-        },
-        "node_modules/js-yaml": {
-            "version": "3.13.1",
-            "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
-            "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
-            "dev": true,
-            "dependencies": {
-                "argparse": "^1.0.7",
-                "esprima": "^4.0.0"
-            },
-            "bin": {
-                "js-yaml": "bin/js-yaml.js"
-            }
-        },
-        "node_modules/js-yaml/node_modules/esprima": {
-            "version": "4.0.1",
-            "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
-            "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
-            "dev": true,
-            "bin": {
-                "esparse": "bin/esparse.js",
-                "esvalidate": "bin/esvalidate.js"
-            },
-            "engines": {
-                "node": ">=4"
-            }
-        },
-        "node_modules/jsbn": {
-            "version": "0.1.1",
-            "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
-            "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
-        },
-        "node_modules/jsdom": {
-            "version": "7.2.2",
-            "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-7.2.2.tgz",
-            "integrity": "sha1-QLQCdwwr2iNGkJa+6Rq2deOx/G4=",
-            "optional": true,
-            "dependencies": {
-                "abab": "^1.0.0",
-                "acorn": "^2.4.0",
-                "acorn-globals": "^1.0.4",
-                "cssom": ">= 0.3.0 < 0.4.0",
-                "cssstyle": ">= 0.2.29 < 0.3.0",
-                "escodegen": "^1.6.1",
-                "nwmatcher": ">= 1.3.7 < 2.0.0",
-                "parse5": "^1.5.1",
-                "request": "^2.55.0",
-                "sax": "^1.1.4",
-                "symbol-tree": ">= 3.1.0 < 4.0.0",
-                "tough-cookie": "^2.2.0",
-                "webidl-conversions": "^2.0.0",
-                "whatwg-url-compat": "~0.6.5",
-                "xml-name-validator": ">= 2.0.1 < 3.0.0"
-            }
-        },
-        "node_modules/json-schema": {
-            "version": "0.2.3",
-            "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
-            "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
-        },
-        "node_modules/json-schema-traverse": {
-            "version": "0.4.1",
-            "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
-            "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
-        },
-        "node_modules/json-stringify-safe": {
-            "version": "5.0.1",
-            "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
-            "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
-        },
-        "node_modules/jsonfile": {
-            "version": "4.0.0",
-            "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
-            "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
-            "dependencies": {
-                "graceful-fs": "^4.1.6"
-            }
-        },
-        "node_modules/jsprim": {
-            "version": "1.4.1",
-            "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
-            "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
-            "engines": [
-                "node >=0.6.0"
-            ],
-            "dependencies": {
-                "assert-plus": "1.0.0",
-                "extsprintf": "1.3.0",
-                "json-schema": "0.2.3",
-                "verror": "1.10.0"
-            }
-        },
-        "node_modules/lcid": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
-            "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
-            "dependencies": {
-                "invert-kv": "^1.0.0"
-            },
-            "engines": {
-                "node": ">=0.10.0"
-            }
-        },
-        "node_modules/levn": {
-            "version": "0.3.0",
-            "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
-            "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
-            "optional": true,
-            "dependencies": {
-                "prelude-ls": "~1.1.2",
-                "type-check": "~0.3.2"
-            },
-            "engines": {
-                "node": ">= 0.8.0"
-            }
-        },
-        "node_modules/linkify-it": {
-            "version": "2.1.0",
-            "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.1.0.tgz",
-            "integrity": "sha512-4REs8/062kV2DSHxNfq5183zrqXMl7WP0WzABH9IeJI+NLm429FgE1PDecltYfnOoFDFlZGh2T8PfZn0r+GTRg==",
-            "dependencies": {
-                "uc.micro": "^1.0.1"
-            }
-        },
-        "node_modules/locate-path": {
-            "version": "5.0.0",
-            "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
-            "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
-            "dependencies": {
-                "p-locate": "^4.1.0"
-            },
-            "engines": {
-                "node": ">=8"
-            }
-        },
-        "node_modules/lodash": {
-            "version": "4.17.19",
-            "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
-            "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ=="
-        },
-        "node_modules/log-symbols": {
-            "version": "2.2.0",
-            "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
-            "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
-            "dependencies": {
-                "chalk": "^2.0.1"
-            },
-            "engines": {
-                "node": ">=4"
-            }
-        },
-        "node_modules/markdown-it": {
-            "version": "8.4.2",
-            "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz",
-            "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==",
-            "dependencies": {
-                "argparse": "^1.0.7",
-                "entities": "~1.1.1",
-                "linkify-it": "^2.0.0",
-                "mdurl": "^1.0.1",
-                "uc.micro": "^1.0.5"
-            },
-            "bin": {
-                "markdown-it": "bin/markdown-it.js"
-            }
-        },
-        "node_modules/mdurl": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
-            "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4="
-        },
-        "node_modules/mime-db": {
-            "version": "1.44.0",
-            "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
-            "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==",
-            "engines": {
-                "node": ">= 0.6"
-            }
-        },
-        "node_modules/mime-types": {
-            "version": "2.1.27",
-            "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
-            "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
-            "dependencies": {
-                "mime-db": "1.44.0"
-            },
-            "engines": {
-                "node": ">= 0.6"
-            }
-        },
-        "node_modules/mimic-fn": {
-            "version": "1.2.0",
-            "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
-            "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
-            "engines": {
-                "node": ">=4"
-            }
-        },
-        "node_modules/minimatch": {
-            "version": "3.0.4",
-            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
-            "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
-            "dependencies": {
-                "brace-expansion": "^1.1.7"
-            },
-            "engines": {
-                "node": "*"
-            }
-        },
-        "node_modules/minimist": {
-            "version": "1.2.5",
-            "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
-            "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
-        },
-        "node_modules/mkdirp": {
-            "version": "1.0.4",
-            "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
-            "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
-            "bin": {
-                "mkdirp": "bin/cmd.js"
-            },
-            "engines": {
-                "node": ">=10"
-            }
-        },
-        "node_modules/moment": {
-            "version": "2.27.0",
-            "resolved": "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz",
-            "integrity": "sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ==",
-            "engines": {
-                "node": "*"
-            }
-        },
-        "node_modules/mute-stream": {
-            "version": "0.0.8",
-            "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
-            "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="
-        },
-        "node_modules/nconf": {
-            "version": "0.10.0",
-            "resolved": "https://registry.npmjs.org/nconf/-/nconf-0.10.0.tgz",
-            "integrity": "sha512-fKiXMQrpP7CYWJQzKkPPx9hPgmq+YLDyxcG9N8RpiE9FoCkCbzD0NyW0YhE3xn3Aupe7nnDeIx4PFzYehpHT9Q==",
-            "dependencies": {
-                "async": "^1.4.0",
-                "ini": "^1.3.0",
-                "secure-keys": "^1.0.0",
-                "yargs": "^3.19.0"
-            },
-            "engines": {
-                "node": ">= 0.4.0"
-            }
-        },
-        "node_modules/nconf/node_modules/yargs": {
-            "version": "3.32.0",
-            "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz",
-            "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=",
-            "dependencies": {
-                "camelcase": "^2.0.1",
-                "cliui": "^3.0.3",
-                "decamelize": "^1.1.1",
-                "os-locale": "^1.4.0",
-                "string-width": "^1.0.1",
-                "window-size": "^0.1.4",
-                "y18n": "^3.2.0"
-            }
-        },
-        "node_modules/ncp": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/ncp/-/ncp-1.0.1.tgz",
-            "integrity": "sha1-0VNn5cuHQyuhF9K/gP30Wuz7QkY=",
-            "bin": {
-                "ncp": "bin/ncp"
-            }
-        },
-        "node_modules/nth-check": {
-            "version": "1.0.2",
-            "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
-            "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
-            "dependencies": {
-                "boolbase": "~1.0.0"
-            }
-        },
-        "node_modules/number-is-nan": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
-            "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=",
-            "engines": {
-                "node": ">=0.10.0"
-            }
-        },
-        "node_modules/nwmatcher": {
-            "version": "1.4.4",
-            "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz",
-            "integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==",
-            "optional": true
-        },
-        "node_modules/oauth-sign": {
-            "version": "0.9.0",
-            "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
-            "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
-            "engines": {
-                "node": "*"
-            }
-        },
-        "node_modules/once": {
-            "version": "1.4.0",
-            "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
-            "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
-            "dependencies": {
-                "wrappy": "1"
-            }
-        },
-        "node_modules/onetime": {
-            "version": "2.0.1",
-            "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
-            "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
-            "dependencies": {
-                "mimic-fn": "^1.0.0"
-            },
-            "engines": {
-                "node": ">=4"
-            }
-        },
-        "node_modules/optionator": {
-            "version": "0.8.3",
-            "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
-            "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
-            "optional": true,
-            "dependencies": {
-                "deep-is": "~0.1.3",
-                "fast-levenshtein": "~2.0.6",
-                "levn": "~0.3.0",
-                "prelude-ls": "~1.1.2",
-                "type-check": "~0.3.2",
-                "word-wrap": "~1.2.3"
-            },
-            "engines": {
-                "node": ">= 0.8.0"
-            }
-        },
-        "node_modules/ora": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/ora/-/ora-3.0.0.tgz",
-            "integrity": "sha512-LBS97LFe2RV6GJmXBi6OKcETKyklHNMV0xw7BtsVn2MlsgsydyZetSCbCANr+PFLmDyv4KV88nn0eCKza665Mg==",
-            "dependencies": {
-                "chalk": "^2.3.1",
-                "cli-cursor": "^2.1.0",
-                "cli-spinners": "^1.1.0",
-                "log-symbols": "^2.2.0",
-                "strip-ansi": "^4.0.0",
-                "wcwidth": "^1.0.1"
-            },
-            "engines": {
-                "node": ">=6"
-            }
-        },
-        "node_modules/ora/node_modules/ansi-regex": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
-            "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
-            "engines": {
-                "node": ">=4"
-            }
-        },
-        "node_modules/ora/node_modules/strip-ansi": {
-            "version": "4.0.0",
-            "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
-            "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
-            "dependencies": {
-                "ansi-regex": "^3.0.0"
-            },
-            "engines": {
-                "node": ">=4"
-            }
-        },
-        "node_modules/os-locale": {
-            "version": "1.4.0",
-            "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
-            "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
-            "dependencies": {
-                "lcid": "^1.0.0"
-            },
-            "engines": {
-                "node": ">=0.10.0"
-            }
-        },
-        "node_modules/p-limit": {
-            "version": "2.3.0",
-            "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
-            "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
-            "dependencies": {
-                "p-try": "^2.0.0"
-            },
-            "engines": {
-                "node": ">=6"
-            }
-        },
-        "node_modules/p-locate": {
-            "version": "4.1.0",
-            "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
-            "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
-            "dependencies": {
-                "p-limit": "^2.2.0"
-            },
-            "engines": {
-                "node": ">=8"
-            }
-        },
-        "node_modules/p-try": {
-            "version": "2.2.0",
-            "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
-            "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
-            "engines": {
-                "node": ">=6"
-            }
-        },
-        "node_modules/parse5": {
-            "version": "1.5.1",
-            "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz",
-            "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=",
-            "optional": true
-        },
-        "node_modules/path-exists": {
-            "version": "4.0.0",
-            "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
-            "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
-            "engines": {
-                "node": ">=8"
-            }
-        },
-        "node_modules/path-is-absolute": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
-            "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
-            "engines": {
-                "node": ">=0.10.0"
-            }
-        },
-        "node_modules/path-parse": {
-            "version": "1.0.6",
-            "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
-            "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
-            "dev": true
-        },
-        "node_modules/performance-now": {
-            "version": "2.1.0",
-            "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
-            "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
-        },
-        "node_modules/pkginfo": {
-            "version": "0.4.1",
-            "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz",
-            "integrity": "sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=",
-            "engines": {
-                "node": ">= 0.4.0"
-            }
-        },
-        "node_modules/prelude-ls": {
-            "version": "1.1.2",
-            "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
-            "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
-            "optional": true,
-            "engines": {
-                "node": ">= 0.8.0"
-            }
-        },
-        "node_modules/prompt": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.0.0.tgz",
-            "integrity": "sha1-jlcSPDlquYiJf7Mn/Trtw+c15P4=",
-            "dependencies": {
-                "colors": "^1.1.2",
-                "pkginfo": "0.x.x",
-                "read": "1.0.x",
-                "revalidator": "0.1.x",
-                "utile": "0.3.x",
-                "winston": "2.1.x"
-            },
-            "engines": {
-                "node": ">= 0.6.6"
-            }
-        },
-        "node_modules/psl": {
-            "version": "1.8.0",
-            "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
-            "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
-        },
-        "node_modules/punycode": {
-            "version": "2.1.1",
-            "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
-            "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
-            "engines": {
-                "node": ">=6"
-            }
-        },
-        "node_modules/qs": {
-            "version": "6.5.2",
-            "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
-            "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
-            "engines": {
-                "node": ">=0.6"
-            }
-        },
-        "node_modules/read": {
-            "version": "1.0.7",
-            "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
-            "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=",
-            "dependencies": {
-                "mute-stream": "~0.0.4"
-            },
-            "engines": {
-                "node": ">=0.8"
-            }
-        },
-        "node_modules/readable-stream": {
-            "version": "1.1.14",
-            "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
-            "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
-            "dependencies": {
-                "core-util-is": "~1.0.0",
-                "inherits": "~2.0.1",
-                "isarray": "0.0.1",
-                "string_decoder": "~0.10.x"
-            }
-        },
-        "node_modules/request": {
-            "version": "2.88.0",
-            "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
-            "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
-            "dependencies": {
-                "aws-sign2": "~0.7.0",
-                "aws4": "^1.8.0",
-                "caseless": "~0.12.0",
-                "combined-stream": "~1.0.6",
-                "extend": "~3.0.2",
-                "forever-agent": "~0.6.1",
-                "form-data": "~2.3.2",
-                "har-validator": "~5.1.0",
-                "http-signature": "~1.2.0",
-                "is-typedarray": "~1.0.0",
-                "isstream": "~0.1.2",
-                "json-stringify-safe": "~5.0.1",
-                "mime-types": "~2.1.19",
-                "oauth-sign": "~0.9.0",
-                "performance-now": "^2.1.0",
-                "qs": "~6.5.2",
-                "safe-buffer": "^5.1.2",
-                "tough-cookie": "~2.4.3",
-                "tunnel-agent": "^0.6.0",
-                "uuid": "^3.3.2"
-            },
-            "engines": {
-                "node": ">= 4"
-            }
-        },
-        "node_modules/request/node_modules/punycode": {
-            "version": "1.4.1",
-            "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
-            "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
-        },
-        "node_modules/request/node_modules/tough-cookie": {
-            "version": "2.4.3",
-            "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
-            "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
-            "dependencies": {
-                "psl": "^1.1.24",
-                "punycode": "^1.4.1"
-            },
-            "engines": {
-                "node": ">=0.8"
-            }
-        },
-        "node_modules/require-directory": {
-            "version": "2.1.1",
-            "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
-            "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
-            "engines": {
-                "node": ">=0.10.0"
-            }
-        },
-        "node_modules/require-from-string": {
-            "version": "2.0.2",
-            "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
-            "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
-            "engines": {
-                "node": ">=0.10.0"
-            }
-        },
-        "node_modules/require-main-filename": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
-            "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
-        },
-        "node_modules/resolve": {
-            "version": "1.10.0",
-            "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz",
-            "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==",
-            "dev": true,
-            "dependencies": {
-                "path-parse": "^1.0.6"
-            }
-        },
-        "node_modules/restore-cursor": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
-            "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
-            "dependencies": {
-                "onetime": "^2.0.0",
-                "signal-exit": "^3.0.2"
-            },
-            "engines": {
-                "node": ">=4"
-            }
-        },
-        "node_modules/revalidator": {
-            "version": "0.1.8",
-            "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz",
-            "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=",
-            "engines": {
-                "node": ">= 0.4.0"
-            }
-        },
-        "node_modules/rimraf": {
-            "version": "2.7.1",
-            "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
-            "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
-            "dependencies": {
-                "glob": "^7.1.3"
-            },
-            "bin": {
-                "rimraf": "bin.js"
-            }
-        },
-        "node_modules/safe-buffer": {
-            "version": "5.2.1",
-            "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
-            "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
-        },
-        "node_modules/safer-buffer": {
-            "version": "2.1.2",
-            "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
-            "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
-        },
-        "node_modules/sax": {
-            "version": "1.2.4",
-            "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
-            "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
-            "optional": true
-        },
-        "node_modules/secure-keys": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/secure-keys/-/secure-keys-1.0.0.tgz",
-            "integrity": "sha1-8MgtmKOxOah3aogIBQuCRDEIf8o="
-        },
-        "node_modules/semver": {
-            "version": "5.6.0",
-            "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
-            "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
-            "dev": true,
-            "bin": {
-                "semver": "bin/semver"
-            }
-        },
-        "node_modules/set-blocking": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
-            "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
-        },
-        "node_modules/signal-exit": {
-            "version": "3.0.3",
-            "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
-            "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
-        },
-        "node_modules/source-map": {
-            "version": "0.6.1",
-            "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
-            "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
-            "optional": true,
-            "engines": {
-                "node": ">=0.10.0"
-            }
-        },
-        "node_modules/sprintf-js": {
-            "version": "1.0.3",
-            "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
-            "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
-        },
-        "node_modules/sshpk": {
-            "version": "1.16.1",
-            "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
-            "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
-            "dependencies": {
-                "asn1": "~0.2.3",
-                "assert-plus": "^1.0.0",
-                "bcrypt-pbkdf": "^1.0.0",
-                "dashdash": "^1.12.0",
-                "ecc-jsbn": "~0.1.1",
-                "getpass": "^0.1.1",
-                "jsbn": "~0.1.0",
-                "safer-buffer": "^2.0.2",
-                "tweetnacl": "~0.14.0"
-            },
-            "engines": {
-                "node": ">=0.10.0"
-            }
-        },
-        "node_modules/stack-trace": {
-            "version": "0.0.10",
-            "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
-            "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=",
-            "engines": {
-                "node": "*"
-            }
-        },
-        "node_modules/string_decoder": {
-            "version": "0.10.31",
-            "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
-            "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
-        },
-        "node_modules/string-width": {
-            "version": "1.0.2",
-            "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
-            "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
-            "dependencies": {
-                "code-point-at": "^1.0.0",
-                "is-fullwidth-code-point": "^1.0.0",
-                "strip-ansi": "^3.0.0"
-            },
-            "engines": {
-                "node": ">=0.10.0"
-            }
-        },
-        "node_modules/string.fromcodepoint": {
-            "version": "0.2.1",
-            "resolved": "https://registry.npmjs.org/string.fromcodepoint/-/string.fromcodepoint-0.2.1.tgz",
-            "integrity": "sha1-jZeDM8C8klOPUPOD5IiPPlYZ1lM="
-        },
-        "node_modules/strip-ansi": {
-            "version": "3.0.1",
-            "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
-            "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
-            "dependencies": {
-                "ansi-regex": "^2.0.0"
-            },
-            "engines": {
-                "node": ">=0.10.0"
-            }
-        },
-        "node_modules/supports-color": {
-            "version": "5.5.0",
-            "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-            "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-            "dependencies": {
-                "has-flag": "^3.0.0"
-            },
-            "engines": {
-                "node": ">=4"
-            }
-        },
-        "node_modules/symbol-tree": {
-            "version": "3.2.4",
-            "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
-            "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
-            "optional": true
-        },
-        "node_modules/tough-cookie": {
-            "version": "2.5.0",
-            "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
-            "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
-            "optional": true,
-            "dependencies": {
-                "psl": "^1.1.28",
-                "punycode": "^2.1.1"
-            },
-            "engines": {
-                "node": ">=0.8"
-            }
-        },
-        "node_modules/tr46": {
-            "version": "0.0.3",
-            "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
-            "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=",
-            "optional": true
-        },
-        "node_modules/tslib": {
-            "version": "1.9.3",
-            "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
-            "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
-            "dev": true
-        },
-        "node_modules/tslint": {
-            "version": "5.12.1",
-            "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.12.1.tgz",
-            "integrity": "sha512-sfodBHOucFg6egff8d1BvuofoOQ/nOeYNfbp7LDlKBcLNrL3lmS5zoiDGyOMdT7YsEXAwWpTdAHwOGOc8eRZAw==",
-            "dev": true,
-            "dependencies": {
-                "babel-code-frame": "^6.22.0",
-                "builtin-modules": "^1.1.1",
-                "chalk": "^2.3.0",
-                "commander": "^2.12.1",
-                "diff": "^3.2.0",
-                "glob": "^7.1.1",
-                "js-yaml": "^3.7.0",
-                "minimatch": "^3.0.4",
-                "resolve": "^1.3.2",
-                "semver": "^5.3.0",
-                "tslib": "^1.8.0",
-                "tsutils": "^2.27.2"
-            },
-            "bin": {
-                "tslint": "bin/tslint"
-            },
-            "engines": {
-                "node": ">=4.8.0"
-            }
-        },
-        "node_modules/tsutils": {
-            "version": "2.29.0",
-            "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
-            "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
-            "dev": true,
-            "dependencies": {
-                "tslib": "^1.8.1"
-            }
-        },
-        "node_modules/tunnel-agent": {
-            "version": "0.6.0",
-            "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
-            "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
-            "dependencies": {
-                "safe-buffer": "^5.0.1"
-            },
-            "engines": {
-                "node": "*"
-            }
-        },
-        "node_modules/tweetnacl": {
-            "version": "0.14.5",
-            "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
-            "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
-        },
-        "node_modules/type-check": {
-            "version": "0.3.2",
-            "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
-            "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
-            "optional": true,
-            "dependencies": {
-                "prelude-ls": "~1.1.2"
-            },
-            "engines": {
-                "node": ">= 0.8.0"
-            }
-        },
-        "node_modules/typescript": {
-            "version": "2.9.2",
-            "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz",
-            "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==",
-            "dev": true,
-            "bin": {
-                "tsc": "bin/tsc",
-                "tsserver": "bin/tsserver"
-            },
-            "engines": {
-                "node": ">=4.2.0"
-            }
-        },
-        "node_modules/uc.micro": {
-            "version": "1.0.6",
-            "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
-            "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA=="
-        },
-        "node_modules/underscore": {
-            "version": "1.9.1",
-            "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz",
-            "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg=="
-        },
-        "node_modules/unescape-js": {
-            "version": "1.1.1",
-            "resolved": "https://registry.npmjs.org/unescape-js/-/unescape-js-1.1.1.tgz",
-            "integrity": "sha512-2/6CdybfFt9fzYJhCD6SHfBnqCGNfjhMwPK9Pf+sJRloa/WmyAmxdBVOslOIYkvSIRKX+9xGePF5t1tugtZ63g==",
-            "dependencies": {
-                "string.fromcodepoint": "^0.2.1"
-            }
-        },
-        "node_modules/universalify": {
-            "version": "0.1.2",
-            "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
-            "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
-            "engines": {
-                "node": ">= 4.0.0"
-            }
-        },
-        "node_modules/uri-js": {
-            "version": "4.2.2",
-            "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
-            "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
-            "dependencies": {
-                "punycode": "^2.1.0"
-            }
-        },
-        "node_modules/utile": {
-            "version": "0.3.0",
-            "resolved": "https://registry.npmjs.org/utile/-/utile-0.3.0.tgz",
-            "integrity": "sha1-E1LDQOuCDk2N26A5pPv6oy7U7zo=",
-            "dependencies": {
-                "async": "~0.9.0",
-                "deep-equal": "~0.2.1",
-                "i": "0.3.x",
-                "mkdirp": "0.x.x",
-                "ncp": "1.0.x",
-                "rimraf": "2.x.x"
-            },
-            "engines": {
-                "node": ">= 0.8.0"
-            }
-        },
-        "node_modules/utile/node_modules/async": {
-            "version": "0.9.2",
-            "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
-            "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0="
-        },
-        "node_modules/utile/node_modules/mkdirp": {
-            "version": "0.5.5",
-            "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
-            "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
-            "dependencies": {
-                "minimist": "^1.2.5"
-            },
-            "bin": {
-                "mkdirp": "bin/cmd.js"
-            }
-        },
-        "node_modules/uuid": {
-            "version": "3.4.0",
-            "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
-            "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
-            "bin": {
-                "uuid": "bin/uuid"
-            }
-        },
-        "node_modules/verror": {
-            "version": "1.10.0",
-            "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
-            "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
-            "engines": [
-                "node >=0.6.0"
-            ],
-            "dependencies": {
-                "assert-plus": "^1.0.0",
-                "core-util-is": "1.0.2",
-                "extsprintf": "^1.2.0"
-            }
-        },
-        "node_modules/vsc-leetcode-cli": {
-            "version": "2.8.0",
-            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.8.0.tgz",
-            "integrity": "sha512-KcFzpk3OZ+wUCoeK1yjBK0hYpJItYd8WFC7pQfE1zxJGjQs4tUvadLI5imKfRjw5NicjNRFnVpVv6N7ig7ik4A==",
-            "dependencies": {
-                "ansi-styles": "3.2.1",
-                "cheerio": "0.20.0",
-                "he": "1.2.0",
-                "mkdirp": "^1.0.4",
-                "moment": "^2.20.1",
-                "nconf": "0.10.0",
-                "ora": "3.0.0",
-                "prompt": "1.0.0",
-                "request": "2.88.0",
-                "supports-color": "5.5.0",
-                "underscore": "1.9.1",
-                "wordwrap": "1.0.0",
-                "yargs": "^15.3.1"
-            },
-            "bin": {
-                "leetcode": "bin/leetcode"
-            },
-            "engines": {
-                "node": ">=4"
-            }
-        },
-        "node_modules/wcwidth": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
-            "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=",
-            "dependencies": {
-                "defaults": "^1.0.3"
-            }
-        },
-        "node_modules/webidl-conversions": {
-            "version": "2.0.1",
-            "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-2.0.1.tgz",
-            "integrity": "sha1-O/glj30xjHRDw28uFpQCoaZwNQY=",
-            "optional": true
-        },
-        "node_modules/whatwg-url-compat": {
-            "version": "0.6.5",
-            "resolved": "https://registry.npmjs.org/whatwg-url-compat/-/whatwg-url-compat-0.6.5.tgz",
-            "integrity": "sha1-AImBEa9om7CXVBzVpFymyHmERb8=",
-            "optional": true,
-            "dependencies": {
-                "tr46": "~0.0.1"
-            }
-        },
-        "node_modules/which-module": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
-            "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
-        },
-        "node_modules/window-size": {
-            "version": "0.1.4",
-            "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz",
-            "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=",
-            "bin": {
-                "window-size": "cli.js"
-            },
-            "engines": {
-                "node": ">= 0.10.0"
-            }
-        },
-        "node_modules/winston": {
-            "version": "2.1.1",
-            "resolved": "https://registry.npmjs.org/winston/-/winston-2.1.1.tgz",
-            "integrity": "sha1-PJNJ0ZYgf9G9/51LxD73JRDjoS4=",
-            "dependencies": {
-                "async": "~1.0.0",
-                "colors": "1.0.x",
-                "cycle": "1.0.x",
-                "eyes": "0.1.x",
-                "isstream": "0.1.x",
-                "pkginfo": "0.3.x",
-                "stack-trace": "0.0.x"
-            },
-            "engines": {
-                "node": ">= 0.8.0"
-            }
-        },
-        "node_modules/winston/node_modules/async": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz",
-            "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k="
-        },
-        "node_modules/winston/node_modules/colors": {
-            "version": "1.0.3",
-            "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
-            "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=",
-            "engines": {
-                "node": ">=0.1.90"
-            }
-        },
-        "node_modules/winston/node_modules/pkginfo": {
-            "version": "0.3.1",
-            "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz",
-            "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=",
-            "engines": {
-                "node": ">= 0.4.0"
-            }
-        },
-        "node_modules/word-wrap": {
-            "version": "1.2.3",
-            "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
-            "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
-            "optional": true,
-            "engines": {
-                "node": ">=0.10.0"
-            }
-        },
-        "node_modules/wordwrap": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
-            "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="
-        },
-        "node_modules/wrap-ansi": {
-            "version": "2.1.0",
-            "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
-            "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
-            "dependencies": {
-                "string-width": "^1.0.1",
-                "strip-ansi": "^3.0.1"
-            },
-            "engines": {
-                "node": ">=0.10.0"
-            }
-        },
-        "node_modules/wrappy": {
-            "version": "1.0.2",
-            "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
-            "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
-        },
-        "node_modules/xml-name-validator": {
-            "version": "2.0.1",
-            "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz",
-            "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=",
-            "optional": true
-        },
-        "node_modules/y18n": {
-            "version": "3.2.1",
-            "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
-            "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE="
-        },
-        "node_modules/yargs": {
-            "version": "15.3.1",
-            "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz",
-            "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==",
-            "dependencies": {
-                "cliui": "^6.0.0",
-                "decamelize": "^1.2.0",
-                "find-up": "^4.1.0",
-                "get-caller-file": "^2.0.1",
-                "require-directory": "^2.1.1",
-                "require-main-filename": "^2.0.0",
-                "set-blocking": "^2.0.0",
-                "string-width": "^4.2.0",
-                "which-module": "^2.0.0",
-                "y18n": "^4.0.0",
-                "yargs-parser": "^18.1.1"
-            },
-            "engines": {
-                "node": ">=8"
-            }
-        },
-        "node_modules/yargs-parser": {
-            "version": "18.1.3",
-            "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
-            "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
-            "dependencies": {
-                "camelcase": "^5.0.0",
-                "decamelize": "^1.2.0"
-            },
-            "engines": {
-                "node": ">=6"
-            }
-        },
-        "node_modules/yargs-parser/node_modules/camelcase": {
-            "version": "5.3.1",
-            "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
-            "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
-            "engines": {
-                "node": ">=6"
-            }
-        },
-        "node_modules/yargs/node_modules/ansi-regex": {
-            "version": "5.0.0",
-            "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
-            "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
-            "engines": {
-                "node": ">=8"
-            }
-        },
-        "node_modules/yargs/node_modules/ansi-styles": {
-            "version": "4.2.1",
-            "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
-            "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
-            "dependencies": {
-                "@types/color-name": "^1.1.1",
-                "color-convert": "^2.0.1"
-            },
-            "engines": {
-                "node": ">=8"
-            }
-        },
-        "node_modules/yargs/node_modules/cliui": {
-            "version": "6.0.0",
-            "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
-            "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
-            "dependencies": {
-                "string-width": "^4.2.0",
-                "strip-ansi": "^6.0.0",
-                "wrap-ansi": "^6.2.0"
-            }
-        },
-        "node_modules/yargs/node_modules/color-convert": {
-            "version": "2.0.1",
-            "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
-            "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-            "dependencies": {
-                "color-name": "~1.1.4"
-            },
-            "engines": {
-                "node": ">=7.0.0"
-            }
-        },
-        "node_modules/yargs/node_modules/color-name": {
-            "version": "1.1.4",
-            "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
-            "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
-        },
-        "node_modules/yargs/node_modules/is-fullwidth-code-point": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
-            "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
-            "engines": {
-                "node": ">=8"
-            }
-        },
-        "node_modules/yargs/node_modules/string-width": {
-            "version": "4.2.0",
-            "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
-            "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
-            "dependencies": {
-                "emoji-regex": "^8.0.0",
-                "is-fullwidth-code-point": "^3.0.0",
-                "strip-ansi": "^6.0.0"
-            },
-            "engines": {
-                "node": ">=8"
+    "dependencies": {
+        "@babel/code-frame": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz",
+            "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==",
+            "dev": true,
+            "requires": {
+                "@babel/highlight": "^7.12.13"
             }
         },
-        "node_modules/yargs/node_modules/strip-ansi": {
-            "version": "6.0.0",
-            "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
-            "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
-            "dependencies": {
-                "ansi-regex": "^5.0.0"
-            },
-            "engines": {
-                "node": ">=8"
-            }
+        "@babel/helper-validator-identifier": {
+            "version": "7.14.0",
+            "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz",
+            "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==",
+            "dev": true
         },
-        "node_modules/yargs/node_modules/wrap-ansi": {
-            "version": "6.2.0",
-            "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
-            "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
-            "dependencies": {
-                "ansi-styles": "^4.0.0",
-                "string-width": "^4.1.0",
-                "strip-ansi": "^6.0.0"
-            },
-            "engines": {
-                "node": ">=8"
+        "@babel/highlight": {
+            "version": "7.14.0",
+            "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz",
+            "integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==",
+            "dev": true,
+            "requires": {
+                "@babel/helper-validator-identifier": "^7.14.0",
+                "chalk": "^2.0.0",
+                "js-tokens": "^4.0.0"
             }
         },
-        "node_modules/yargs/node_modules/y18n": {
-            "version": "4.0.0",
-            "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
-            "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="
-        }
-    },
-    "dependencies": {
-        "@types/color-name": {
-            "version": "1.1.1",
-            "resolved": "https://registry.npmjs.org/@types/color-name/-/color-name-1.1.1.tgz",
-            "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ=="
-        },
         "@types/fs-extra": {
-            "version": "5.0.0",
-            "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.0.tgz",
-            "integrity": "sha512-qtxDULQKUenuaDLW003CgC+0T0eiAfH3BrH+vSt87GLzbz5EZ6Ox6mv9rMttvhDOatbb9nYh0E1m7ydoYwUrAg==",
+            "version": "9.0.11",
+            "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.11.tgz",
+            "integrity": "sha512-mZsifGG4QeQ7hlkhO56u7zt/ycBgGxSVsFI/6lGTU34VtwkiqrrSDgw0+ygs8kFGWcXnFQWMrzF2h7TtDFNixA==",
             "dev": true,
             "requires": {
                 "@types/node": "*"
             }
         },
-        "@types/highlight.js": {
-            "version": "9.12.3",
-            "resolved": "https://registry.npmjs.org/@types/highlight.js/-/highlight.js-9.12.3.tgz",
-            "integrity": "sha512-pGF/zvYOACZ/gLGWdQH8zSwteQS1epp68yRcVLJMgUck/MjEn/FBYmPub9pXT8C1e4a8YZfHo1CKyV8q1vKUnQ==",
-            "dev": true
-        },
         "@types/linkify-it": {
-            "version": "2.0.4",
-            "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-2.0.4.tgz",
-            "integrity": "sha512-9o5piu3tP6DwqT+Cyf7S3BitsTc6Cl0pCPKUhIE5hzQbtueiBXdtBipTLLvaGfT11/8XHRmsagu4YfBesTaiCA==",
+            "version": "3.0.1",
+            "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.1.tgz",
+            "integrity": "sha512-pQv3Sygwxxh6jYQzXaiyWDAHevJqWtqDUv6t11Sa9CPGiXny66II7Pl6PR8QO5OVysD6HYOkHMeBgIjLnk9SkQ==",
             "dev": true
         },
         "@types/lodash": {
-            "version": "4.14.123",
-            "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.123.tgz",
-            "integrity": "sha512-pQvPkc4Nltyx7G1Ww45OjVqUsJP4UsZm+GWJpigXgkikZqJgRm4c48g027o6tdgubWHwFRF15iFd+Y4Pmqv6+Q==",
+            "version": "4.14.170",
+            "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.170.tgz",
+            "integrity": "sha512-bpcvu/MKHHeYX+qeEN8GE7DIravODWdACVA1ctevD8CN24RhPZIKMn9ntfAsrvLfSX3cR5RrBKAbYm9bGs0A+Q==",
             "dev": true
         },
         "@types/markdown-it": {
@@ -2185,9 +67,9 @@
             "dev": true
         },
         "@types/node": {
-            "version": "7.10.3",
-            "resolved": "https://registry.npmjs.org/@types/node/-/node-7.10.3.tgz",
-            "integrity": "sha512-HeyK+csRk7Khhg9krpMGJeT9pLzjsmiJFHYRzYpPv/dQ5tPclQsbvceiX/HKynRt/9lMLorWUYTbBHC3hRI4sg==",
+            "version": "14.17.1",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.1.tgz",
+            "integrity": "sha512-/tpUyFD7meeooTRwl3sYlihx2BrJE7q9XF71EguPFIySj9B7qgnRtHsHTho+0AUm4m1SvWGm6uSncrR94q6Vtw==",
             "dev": true
         },
         "@types/require-from-string": {
@@ -2224,9 +106,9 @@
             }
         },
         "ajv": {
-            "version": "6.12.2",
-            "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.2.tgz",
-            "integrity": "sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ==",
+            "version": "6.12.6",
+            "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+            "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
             "requires": {
                 "fast-deep-equal": "^3.1.1",
                 "fast-json-stable-stringify": "^2.0.0",
@@ -2284,52 +166,14 @@
             "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
         },
         "aws4": {
-            "version": "1.10.0",
-            "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz",
-            "integrity": "sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA=="
-        },
-        "babel-code-frame": {
-            "version": "6.26.0",
-            "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
-            "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
-            "dev": true,
-            "requires": {
-                "chalk": "^1.1.3",
-                "esutils": "^2.0.2",
-                "js-tokens": "^3.0.2"
-            },
-            "dependencies": {
-                "ansi-styles": {
-                    "version": "2.2.1",
-                    "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
-                    "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
-                    "dev": true
-                },
-                "chalk": {
-                    "version": "1.1.3",
-                    "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
-                    "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
-                    "dev": true,
-                    "requires": {
-                        "ansi-styles": "^2.2.1",
-                        "escape-string-regexp": "^1.0.2",
-                        "has-ansi": "^2.0.0",
-                        "strip-ansi": "^3.0.0",
-                        "supports-color": "^2.0.0"
-                    }
-                },
-                "supports-color": {
-                    "version": "2.0.0",
-                    "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
-                    "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
-                    "dev": true
-                }
-            }
+            "version": "1.11.0",
+            "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
+            "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
         },
         "balanced-match": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
-            "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+            "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
         },
         "bcrypt-pbkdf": {
             "version": "1.0.2",
@@ -2452,9 +296,9 @@
             }
         },
         "commander": {
-            "version": "2.19.0",
-            "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz",
-            "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==",
+            "version": "2.20.3",
+            "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+            "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
             "dev": true
         },
         "concat-map": {
@@ -2541,9 +385,9 @@
             "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
         },
         "diff": {
-            "version": "3.5.0",
-            "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
-            "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
+            "version": "4.0.2",
+            "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
+            "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
             "dev": true
         },
         "dom-serializer": {
@@ -2617,8 +461,7 @@
         "esprima": {
             "version": "4.0.1",
             "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
-            "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
-            "optional": true
+            "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
         },
         "estraverse": {
             "version": "4.3.0",
@@ -2627,10 +470,10 @@
             "optional": true
         },
         "esutils": {
-            "version": "2.0.2",
-            "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
-            "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
-            "devOptional": true
+            "version": "2.0.3",
+            "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+            "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+            "optional": true
         },
         "extend": {
             "version": "3.0.2",
@@ -2688,13 +531,13 @@
             }
         },
         "fs-extra": {
-            "version": "6.0.1",
-            "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz",
-            "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==",
+            "version": "10.0.0",
+            "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz",
+            "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==",
             "requires": {
-                "graceful-fs": "^4.1.2",
-                "jsonfile": "^4.0.0",
-                "universalify": "^0.1.0"
+                "graceful-fs": "^4.2.0",
+                "jsonfile": "^6.0.1",
+                "universalify": "^2.0.0"
             }
         },
         "fs.realpath": {
@@ -2702,6 +545,12 @@
             "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
             "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
         },
+        "function-bind": {
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+            "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+            "dev": true
+        },
         "get-caller-file": {
             "version": "2.0.5",
             "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
@@ -2716,9 +565,9 @@
             }
         },
         "glob": {
-            "version": "7.1.3",
-            "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
-            "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
+            "version": "7.1.7",
+            "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
+            "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
             "requires": {
                 "fs.realpath": "^1.0.0",
                 "inflight": "^1.0.4",
@@ -2729,9 +578,9 @@
             }
         },
         "graceful-fs": {
-            "version": "4.1.15",
-            "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.15.tgz",
-            "integrity": "sha512-6uHUhOPEBgQ24HM+r6b/QwWfZq+yiFcipKFrOFiBEnWdy5sdzYoi+pJeQaPI5qOLRFqWmAXUPQNsielzdLoecA=="
+            "version": "4.2.6",
+            "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
+            "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ=="
         },
         "har-schema": {
             "version": "2.0.0",
@@ -2739,21 +588,21 @@
             "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
         },
         "har-validator": {
-            "version": "5.1.3",
-            "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
-            "integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
+            "version": "5.1.5",
+            "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
+            "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
             "requires": {
-                "ajv": "^6.5.5",
+                "ajv": "^6.12.3",
                 "har-schema": "^2.0.0"
             }
         },
-        "has-ansi": {
-            "version": "2.0.0",
-            "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
-            "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
+        "has": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+            "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
             "dev": true,
             "requires": {
-                "ansi-regex": "^2.0.0"
+                "function-bind": "^1.1.1"
             }
         },
         "has-flag": {
@@ -2767,9 +616,9 @@
             "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
         },
         "highlight.js": {
-            "version": "9.15.6",
-            "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.15.6.tgz",
-            "integrity": "sha512-zozTAWM1D6sozHo8kqhfYgsac+B+q0PmsjXeyDrYIHHcBN0zTVT66+s2GW1GZv7DbyaROdLXKdabwS/WqPyIdQ=="
+            "version": "10.7.2",
+            "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.2.tgz",
+            "integrity": "sha512-oFLl873u4usRM9K63j4ME9u3etNF0PLiJhSQ8rdfuL51Wn3zkD6drf9ZW0dOzjnZI22YYG24z30JcmfCZjMgYg=="
         },
         "htmlparser2": {
             "version": "3.8.3",
@@ -2815,20 +664,29 @@
             }
         },
         "inherits": {
-            "version": "2.0.3",
-            "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
-            "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
+            "version": "2.0.4",
+            "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+            "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
         },
         "ini": {
-            "version": "1.3.7",
-            "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz",
-            "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ=="
+            "version": "1.3.8",
+            "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+            "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
         },
         "invert-kv": {
             "version": "1.0.0",
             "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
             "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
         },
+        "is-core-module": {
+            "version": "2.4.0",
+            "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz",
+            "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==",
+            "dev": true,
+            "requires": {
+                "has": "^1.0.3"
+            }
+        },
         "is-fullwidth-code-point": {
             "version": "1.0.0",
             "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
@@ -2853,27 +711,19 @@
             "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
         },
         "js-tokens": {
-            "version": "3.0.2",
-            "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
-            "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+            "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
             "dev": true
         },
         "js-yaml": {
-            "version": "3.13.1",
-            "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
-            "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
+            "version": "3.14.1",
+            "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+            "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
             "dev": true,
             "requires": {
                 "argparse": "^1.0.7",
                 "esprima": "^4.0.0"
-            },
-            "dependencies": {
-                "esprima": {
-                    "version": "4.0.1",
-                    "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
-                    "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
-                    "dev": true
-                }
             }
         },
         "jsbn": {
@@ -2920,11 +770,12 @@
             "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
         },
         "jsonfile": {
-            "version": "4.0.0",
-            "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
-            "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
+            "version": "6.1.0",
+            "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+            "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
             "requires": {
-                "graceful-fs": "^4.1.6"
+                "graceful-fs": "^4.1.6",
+                "universalify": "^2.0.0"
             }
         },
         "jsprim": {
@@ -2957,9 +808,9 @@
             }
         },
         "linkify-it": {
-            "version": "2.1.0",
-            "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.1.0.tgz",
-            "integrity": "sha512-4REs8/062kV2DSHxNfq5183zrqXMl7WP0WzABH9IeJI+NLm429FgE1PDecltYfnOoFDFlZGh2T8PfZn0r+GTRg==",
+            "version": "2.2.0",
+            "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz",
+            "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==",
             "requires": {
                 "uc.micro": "^1.0.1"
             }
@@ -2973,9 +824,9 @@
             }
         },
         "lodash": {
-            "version": "4.17.19",
-            "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
-            "integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ=="
+            "version": "4.17.21",
+            "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+            "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
         },
         "log-symbols": {
             "version": "2.2.0",
@@ -3003,16 +854,16 @@
             "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4="
         },
         "mime-db": {
-            "version": "1.44.0",
-            "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
-            "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="
+            "version": "1.47.0",
+            "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz",
+            "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw=="
         },
         "mime-types": {
-            "version": "2.1.27",
-            "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
-            "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
+            "version": "2.1.30",
+            "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz",
+            "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==",
             "requires": {
-                "mime-db": "1.44.0"
+                "mime-db": "1.47.0"
             }
         },
         "mimic-fn": {
@@ -3039,9 +890,9 @@
             "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
         },
         "moment": {
-            "version": "2.27.0",
-            "resolved": "https://registry.npmjs.org/moment/-/moment-2.27.0.tgz",
-            "integrity": "sha512-al0MUK7cpIcglMv3YF13qSgdAIqxHTO7brRtaz3DlSULbqfazqkc5kEjNrLDOM7fsjshoFIihnU8snrP7zUvhQ=="
+            "version": "2.29.1",
+            "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
+            "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ=="
         },
         "mute-stream": {
             "version": "0.0.8",
@@ -3208,9 +1059,9 @@
             "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
         },
         "path-parse": {
-            "version": "1.0.6",
-            "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
-            "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
+            "version": "1.0.7",
+            "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+            "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
             "dev": true
         },
         "performance-now": {
@@ -3335,11 +1186,12 @@
             "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
         },
         "resolve": {
-            "version": "1.10.0",
-            "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz",
-            "integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==",
+            "version": "1.20.0",
+            "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
+            "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
             "dev": true,
             "requires": {
+                "is-core-module": "^2.2.0",
                 "path-parse": "^1.0.6"
             }
         },
@@ -3387,9 +1239,9 @@
             "integrity": "sha1-8MgtmKOxOah3aogIBQuCRDEIf8o="
         },
         "semver": {
-            "version": "5.6.0",
-            "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz",
-            "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==",
+            "version": "5.7.1",
+            "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+            "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
             "dev": true
         },
         "set-blocking": {
@@ -3434,11 +1286,6 @@
             "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
             "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA="
         },
-        "string_decoder": {
-            "version": "0.10.31",
-            "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
-            "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
-        },
         "string-width": {
             "version": "1.0.2",
             "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
@@ -3454,6 +1301,11 @@
             "resolved": "https://registry.npmjs.org/string.fromcodepoint/-/string.fromcodepoint-0.2.1.tgz",
             "integrity": "sha1-jZeDM8C8klOPUPOD5IiPPlYZ1lM="
         },
+        "string_decoder": {
+            "version": "0.10.31",
+            "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+            "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+        },
         "strip-ansi": {
             "version": "3.0.1",
             "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
@@ -3493,29 +1345,41 @@
             "optional": true
         },
         "tslib": {
-            "version": "1.9.3",
-            "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
-            "integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==",
+            "version": "1.14.1",
+            "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+            "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
             "dev": true
         },
         "tslint": {
-            "version": "5.12.1",
-            "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.12.1.tgz",
-            "integrity": "sha512-sfodBHOucFg6egff8d1BvuofoOQ/nOeYNfbp7LDlKBcLNrL3lmS5zoiDGyOMdT7YsEXAwWpTdAHwOGOc8eRZAw==",
+            "version": "5.20.1",
+            "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz",
+            "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==",
             "dev": true,
             "requires": {
-                "babel-code-frame": "^6.22.0",
+                "@babel/code-frame": "^7.0.0",
                 "builtin-modules": "^1.1.1",
                 "chalk": "^2.3.0",
                 "commander": "^2.12.1",
-                "diff": "^3.2.0",
+                "diff": "^4.0.1",
                 "glob": "^7.1.1",
-                "js-yaml": "^3.7.0",
+                "js-yaml": "^3.13.1",
                 "minimatch": "^3.0.4",
+                "mkdirp": "^0.5.1",
                 "resolve": "^1.3.2",
                 "semver": "^5.3.0",
                 "tslib": "^1.8.0",
-                "tsutils": "^2.27.2"
+                "tsutils": "^2.29.0"
+            },
+            "dependencies": {
+                "mkdirp": {
+                    "version": "0.5.5",
+                    "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+                    "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+                    "dev": true,
+                    "requires": {
+                        "minimist": "^1.2.5"
+                    }
+                }
             }
         },
         "tsutils": {
@@ -3550,9 +1414,9 @@
             }
         },
         "typescript": {
-            "version": "2.9.2",
-            "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz",
-            "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==",
+            "version": "4.3.2",
+            "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.2.tgz",
+            "integrity": "sha512-zZ4hShnmnoVnAHpVHWpTcxdv7dWP60S2FsydQLV8V5PbS3FifjWFFRiHSWpDJahly88PRyV5teTSLoq4eG7mKw==",
             "dev": true
         },
         "uc.micro": {
@@ -3566,22 +1430,22 @@
             "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg=="
         },
         "unescape-js": {
-            "version": "1.1.1",
-            "resolved": "https://registry.npmjs.org/unescape-js/-/unescape-js-1.1.1.tgz",
-            "integrity": "sha512-2/6CdybfFt9fzYJhCD6SHfBnqCGNfjhMwPK9Pf+sJRloa/WmyAmxdBVOslOIYkvSIRKX+9xGePF5t1tugtZ63g==",
+            "version": "1.1.4",
+            "resolved": "https://registry.npmjs.org/unescape-js/-/unescape-js-1.1.4.tgz",
+            "integrity": "sha512-42SD8NOQEhdYntEiUQdYq/1V/YHwr1HLwlHuTJB5InVVdOSbgI6xu8jK5q65yIzuFCfczzyDF/7hbGzVbyCw0g==",
             "requires": {
                 "string.fromcodepoint": "^0.2.1"
             }
         },
         "universalify": {
-            "version": "0.1.2",
-            "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
-            "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
+            "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ=="
         },
         "uri-js": {
-            "version": "4.2.2",
-            "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz",
-            "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==",
+            "version": "4.4.1",
+            "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+            "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
             "requires": {
                 "punycode": "^2.1.0"
             }
@@ -3745,14 +1609,14 @@
             "optional": true
         },
         "y18n": {
-            "version": "3.2.1",
-            "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
-            "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE="
+            "version": "3.2.2",
+            "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz",
+            "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ=="
         },
         "yargs": {
-            "version": "15.3.1",
-            "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz",
-            "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==",
+            "version": "15.4.1",
+            "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
+            "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
             "requires": {
                 "cliui": "^6.0.0",
                 "decamelize": "^1.2.0",
@@ -3764,7 +1628,7 @@
                 "string-width": "^4.2.0",
                 "which-module": "^2.0.0",
                 "y18n": "^4.0.0",
-                "yargs-parser": "^18.1.1"
+                "yargs-parser": "^18.1.2"
             },
             "dependencies": {
                 "ansi-regex": {
@@ -3773,11 +1637,10 @@
                     "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
                 },
                 "ansi-styles": {
-                    "version": "4.2.1",
-                    "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
-                    "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
+                    "version": "4.3.0",
+                    "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+                    "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
                     "requires": {
-                        "@types/color-name": "^1.1.1",
                         "color-convert": "^2.0.1"
                     }
                 },
@@ -3810,9 +1673,9 @@
                     "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
                 },
                 "string-width": {
-                    "version": "4.2.0",
-                    "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
-                    "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
+                    "version": "4.2.2",
+                    "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
+                    "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
                     "requires": {
                         "emoji-regex": "^8.0.0",
                         "is-fullwidth-code-point": "^3.0.0",
@@ -3838,9 +1701,9 @@
                     }
                 },
                 "y18n": {
-                    "version": "4.0.0",
-                    "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
-                    "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="
+                    "version": "4.0.3",
+                    "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
+                    "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
                 }
             }
         },
diff --git a/package.json b/package.json
index 58e99198..22e91b40 100644
--- a/package.json
+++ b/package.json
@@ -672,24 +672,23 @@
         "lint": "tslint --project tsconfig.json -e src/*.d.ts -t verbose"
     },
     "devDependencies": {
-        "@types/fs-extra": "5.0.0",
-        "@types/highlight.js": "^9.12.3",
-        "@types/lodash": "^4.14.123",
+        "@types/fs-extra": "^9.0.11",
+        "@types/lodash": "^4.14.170",
         "@types/markdown-it": "0.0.7",
         "@types/mocha": "^2.2.42",
-        "@types/node": "^7.0.43",
+        "@types/node": "^14.14.33",
         "@types/require-from-string": "^1.2.0",
         "@types/vscode": "1.42.0",
-        "tslint": "^5.9.1",
-        "typescript": "^2.6.1"
+        "tslint": "^5.20.1",
+        "typescript": "^4.3.2"
     },
     "dependencies": {
-        "fs-extra": "^6.0.1",
-        "highlight.js": "^9.15.6",
-        "lodash": "^4.17.19",
+        "fs-extra": "^10.0.0",
+        "highlight.js": "^10.7.2",
+        "lodash": "^4.17.21",
         "markdown-it": "^8.4.2",
         "require-from-string": "^2.0.2",
-        "unescape-js": "^1.1.1",
+        "unescape-js": "^1.1.4",
         "vsc-leetcode-cli": "2.8.0"
     }
 }
diff --git a/src/leetCodeManager.ts b/src/leetCodeManager.ts
index 44be87a9..089390d3 100644
--- a/src/leetCodeManager.ts
+++ b/src/leetCodeManager.ts
@@ -83,7 +83,7 @@ class LeetCodeManager extends EventEmitter {
                         env: createEnvOption(),
                     });
 
-                childProc.stdout.on("data", async (data: string | Buffer) => {
+                childProc.stdout?.on("data", async (data: string | Buffer) => {
                     data = data.toString();
                     leetCodeChannel.append(data);
                     if (data.includes("twoFactorCode")) {
@@ -96,19 +96,19 @@ class LeetCodeManager extends EventEmitter {
                             childProc.kill();
                             return resolve(undefined);
                         }
-                        childProc.stdin.write(`${twoFactor}\n`);
+                        childProc.stdin?.write(`${twoFactor}\n`);
                     }
                     const successMatch: RegExpMatchArray | null = data.match(this.successRegex);
                     if (successMatch && successMatch[1]) {
-                        childProc.stdin.end();
+                        childProc.stdin?.end();
                         return resolve(successMatch[1]);
                     } else if (data.match(this.failRegex)) {
-                        childProc.stdin.end();
+                        childProc.stdin?.end();
                         return reject(new Error("Faile to login"));
                     }
                 });
 
-                childProc.stderr.on("data", (data: string | Buffer) => leetCodeChannel.append(data.toString()));
+                childProc.stderr?.on("data", (data: string | Buffer) => leetCodeChannel.append(data.toString()));
 
                 childProc.on("error", reject);
                 const name: string | undefined = await vscode.window.showInputBox({
@@ -120,7 +120,7 @@ class LeetCodeManager extends EventEmitter {
                     childProc.kill();
                     return resolve(undefined);
                 }
-                childProc.stdin.write(`${name}\n`);
+                childProc.stdin?.write(`${name}\n`);
                 const pwd: string | undefined = await vscode.window.showInputBox({
                     prompt: isByCookie ? "Enter cookie" : "Enter password.",
                     password: true,
@@ -131,7 +131,7 @@ class LeetCodeManager extends EventEmitter {
                     childProc.kill();
                     return resolve(undefined);
                 }
-                childProc.stdin.write(`${pwd}\n`);
+                childProc.stdin?.write(`${pwd}\n`);
             });
             if (userName) {
                 vscode.window.showInformationMessage(`Successfully ${inMessage}.`);
diff --git a/src/utils/cpUtils.ts b/src/utils/cpUtils.ts
index 59e907b6..c71ae61c 100644
--- a/src/utils/cpUtils.ts
+++ b/src/utils/cpUtils.ts
@@ -15,13 +15,13 @@ export async function executeCommand(command: string, args: string[], options: c
 
         const childProc: cp.ChildProcess = cp.spawn(command, args, { ...options, env: createEnvOption() });
 
-        childProc.stdout.on("data", (data: string | Buffer) => {
+        childProc.stdout?.on("data", (data: string | Buffer) => {
             data = data.toString();
             result = result.concat(data);
             leetCodeChannel.append(data);
         });
 
-        childProc.stderr.on("data", (data: string | Buffer) => leetCodeChannel.append(data.toString()));
+        childProc.stderr?.on("data", (data: string | Buffer) => leetCodeChannel.append(data.toString()));
 
         childProc.on("error", reject);
 
@@ -42,7 +42,7 @@ export async function executeCommand(command: string, args: string[], options: c
 export async function executeCommandWithProgress(message: string, command: string, args: string[], options: cp.SpawnOptions = { shell: true }): Promise<string> {
     let result: string = "";
     await vscode.window.withProgress({ location: vscode.ProgressLocation.Notification }, async (p: vscode.Progress<{}>) => {
-        return new Promise(async (resolve: () => void, reject: (e: Error) => void): Promise<void> => {
+        return new Promise<void>(async (resolve: () => void, reject: (e: Error) => void): Promise<void> => {
             p.report({ message });
             try {
                 result = await executeCommand(command, args, options);
diff --git a/src/webview/leetCodePreviewProvider.ts b/src/webview/leetCodePreviewProvider.ts
index fba17728..78b40991 100644
--- a/src/webview/leetCodePreviewProvider.ts
+++ b/src/webview/leetCodePreviewProvider.ts
@@ -130,8 +130,6 @@ class LeetCodePreviewProvider extends LeetCodeWebview {
 
     protected onDidDisposeWebview(): void {
         super.onDidDisposeWebview();
-        delete this.node;
-        delete this.description;
         this.sideMode = false;
     }
 
diff --git a/src/webview/leetCodeSolutionProvider.ts b/src/webview/leetCodeSolutionProvider.ts
index d888b3bd..1fad6e22 100644
--- a/src/webview/leetCodeSolutionProvider.ts
+++ b/src/webview/leetCodeSolutionProvider.ts
@@ -64,7 +64,6 @@ class LeetCodeSolutionProvider extends LeetCodeWebview {
 
     protected onDidDisposeWebview(): void {
         super.onDidDisposeWebview();
-        delete this.solution;
     }
 
     private parseSolution(raw: string): Solution {
diff --git a/src/webview/leetCodeSubmissionProvider.ts b/src/webview/leetCodeSubmissionProvider.ts
index f4f18fd4..62d07291 100644
--- a/src/webview/leetCodeSubmissionProvider.ts
+++ b/src/webview/leetCodeSubmissionProvider.ts
@@ -59,7 +59,6 @@ class LeetCodeSubmissionProvider extends LeetCodeWebview {
 
     protected onDidDisposeWebview(): void {
         super.onDidDisposeWebview();
-        delete this.result;
     }
 
     private async showKeybindingsHint(): Promise<void> {

From ce928666ef555a95394b9bca661bfb47d74a06c0 Mon Sep 17 00:00:00 2001
From: Peng-Yu Chen <walkccray@gmail.com>
Date: Wed, 2 Jun 2021 22:34:21 -0400
Subject: [PATCH 75/92] docs: Update README.md (#637)

Co-authored-by: Sheng Chen <sheche@microsoft.com>
---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 35fd0cad..173371f6 100644
--- a/README.md
+++ b/README.md
@@ -29,7 +29,7 @@ Recently we observed that [the extension cannot login to leetcode.com endpoint a
 
 Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround which can somehow mitigate this. Now you can simply click the `Sign In` button and then select `Third Party` login or `Cookie` login.
 
-> Note: If you want to use third-party login(**Recommended**), please make sure your account has been connected to the thrid-party. If you want to use `Cookie` login, click [here](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/478#issuecomment-564757098) to see the steps.
+> Note: If you want to use third-party login(**Recommended**), please make sure your account has been connected to the third-party. If you want to use `Cookie` login, click [here](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/478#issuecomment-564757098) to see the steps.
 
 ## Requirements
 - [VS Code 1.30.1+](https://code.visualstudio.com/)

From 45ae2451a51f3f5475952200475fb8ff6655b9f2 Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Tue, 8 Jun 2021 13:50:58 +0800
Subject: [PATCH 76/92] feat: Move leetcode commands into submenu (#712)

---
 package-lock.json                        |  6 +++---
 package.json                             | 15 +++++++++++++--
 src/explorer/LeetCodeTreeDataProvider.ts |  2 +-
 src/utils/workspaceUtils.ts              |  5 ++---
 4 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index e4980605..f29605ac 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -79,9 +79,9 @@
             "dev": true
         },
         "@types/vscode": {
-            "version": "1.42.0",
-            "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.42.0.tgz",
-            "integrity": "sha512-ds6TceMsh77Fs0Mq0Vap6Y72JbGWB8Bay4DrnJlf5d9ui2RSe1wis13oQm+XhguOeH1HUfLGzaDAoupTUtgabw==",
+            "version": "1.50.0",
+            "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.50.0.tgz",
+            "integrity": "sha512-QnIeyi4L2DiD9M2bAQKRzT/EQvc80qP9UL6JD5TiLlNRL1khIDg4ej4mDSRbtFrDAsRntFI1RhMvdomUThMsqg==",
             "dev": true
         },
         "abab": {
diff --git a/package.json b/package.json
index 22e91b40..ea24e2dd 100644
--- a/package.json
+++ b/package.json
@@ -8,7 +8,7 @@
     "license": "MIT",
     "icon": "resources/LeetCode.png",
     "engines": {
-        "vscode": "^1.42.0"
+        "vscode": "^1.50.0"
     },
     "repository": {
         "type": "git",
@@ -243,6 +243,11 @@
                 }
             ],
             "editor/context": [
+                {
+                    "submenu": "leetcode.editorAction"
+                }
+            ],
+            "leetcode.editorAction": [
                 {
                     "command": "leetcode.testSolution",
                     "group": "leetcode@1"
@@ -261,6 +266,12 @@
                 }
             ]
         },
+        "submenus": [
+            {
+                "id": "leetcode.editorAction",
+                "label": "LeetCode"
+            }
+        ],
         "configuration": [
             {
                 "title": "LeetCode",
@@ -678,7 +689,7 @@
         "@types/mocha": "^2.2.42",
         "@types/node": "^14.14.33",
         "@types/require-from-string": "^1.2.0",
-        "@types/vscode": "1.42.0",
+        "@types/vscode": "1.50.0",
         "tslint": "^5.20.1",
         "typescript": "^4.3.2"
     },
diff --git a/src/explorer/LeetCodeTreeDataProvider.ts b/src/explorer/LeetCodeTreeDataProvider.ts
index 69445bbb..2bfbe497 100644
--- a/src/explorer/LeetCodeTreeDataProvider.ts
+++ b/src/explorer/LeetCodeTreeDataProvider.ts
@@ -23,7 +23,7 @@ export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCod
 
     public async refresh(): Promise<void> {
         await explorerNodeManager.refreshCache();
-        this.onDidChangeTreeDataEvent.fire();
+        this.onDidChangeTreeDataEvent.fire(null);
     }
 
     public getTreeItem(element: LeetCodeNode): vscode.TreeItem | Thenable<vscode.TreeItem> {
diff --git a/src/utils/workspaceUtils.ts b/src/utils/workspaceUtils.ts
index c129f8db..81072be7 100644
--- a/src/utils/workspaceUtils.ts
+++ b/src/utils/workspaceUtils.ts
@@ -18,9 +18,8 @@ export async function selectWorkspaceFolder(): Promise<string> {
             return workspaceFolderSetting;
         }
     }
-    const workspaceFolders: vscode.WorkspaceFolder[] = vscode.workspace.workspaceFolders || [];
     let needAsk: boolean = true;
-    for (const folder of workspaceFolders) {
+    for (const folder of vscode.workspace.workspaceFolders || []) {
         if (isSubFolder(folder.uri.fsPath, workspaceFolderSetting)) {
             needAsk = false;
         }
@@ -47,7 +46,7 @@ export async function selectWorkspaceFolder(): Promise<string> {
                 await vscode.commands.executeCommand("vscode.openFolder", vscode.Uri.file(workspaceFolderSetting), true);
                 return "";
             case OpenOption.addToWorkspace:
-                vscode.workspace.updateWorkspaceFolders(workspaceFolders.length, 0, { uri: vscode.Uri.file(workspaceFolderSetting) });
+                vscode.workspace.updateWorkspaceFolders(vscode.workspace.workspaceFolders?.length ?? 0, 0, { uri: vscode.Uri.file(workspaceFolderSetting) });
                 break;
             default:
                 return "";

From 802dc405aa061d5dc286de86088bb2f7a332db3f Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Tue, 8 Jun 2021 14:18:56 +0800
Subject: [PATCH 77/92] fix: Folder not exist when select the workspace folder
 (#713)

---
 src/utils/workspaceUtils.ts | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/src/utils/workspaceUtils.ts b/src/utils/workspaceUtils.ts
index 81072be7..48105d5a 100644
--- a/src/utils/workspaceUtils.ts
+++ b/src/utils/workspaceUtils.ts
@@ -1,6 +1,7 @@
 // Copyright (c) jdneo. All rights reserved.
 // Licensed under the MIT license.
 
+import * as fse from "fs-extra";
 import * as os from "os";
 import * as path from "path";
 import * as vscode from "vscode";
@@ -19,6 +20,7 @@ export async function selectWorkspaceFolder(): Promise<string> {
         }
     }
     let needAsk: boolean = true;
+    await fse.ensureDir(workspaceFolderSetting);
     for (const folder of vscode.workspace.workspaceFolders || []) {
         if (isSubFolder(folder.uri.fsPath, workspaceFolderSetting)) {
             needAsk = false;
@@ -36,6 +38,7 @@ export async function selectWorkspaceFolder(): Promise<string> {
             { placeHolder: "The LeetCode workspace folder is not opened in VS Code, would you like to open it?" },
         );
 
+        // Todo: generate file first
         switch (choice) {
             case OpenOption.justOpenFile:
                 return workspaceFolderSetting;

From adf255c5dbb6e440536697ef3e436a6c484385fe Mon Sep 17 00:00:00 2001
From: Sheng Chen <sheche@microsoft.com>
Date: Tue, 8 Jun 2021 14:49:24 +0800
Subject: [PATCH 78/92] chore: Prepare for 0.18.0 (#714)

---
 CHANGELOG.md         | 11 +++++++++++
 README.md            |  1 +
 docs/README_zh-CN.md |  1 +
 package-lock.json    |  2 +-
 package.json         |  2 +-
 5 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 22a3fc38..0de174fc 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,17 @@ All notable changes to the "leetcode" extension will be documented in this file.
 
 Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
 
+## [0.18.0]
+### Added
+- Add `star` command in shortcuts [PR#601](https://github.com/LeetCode-OpenSource/vscode-leetcode/pull/601)
+- Add an option to disable endpoint translation [#389](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/389)
+
+### Changed
+- LeetCode actions are moved into sub-menu: `LeetCode` in the editor context menu. [PR#712](https://github.com/LeetCode-OpenSource/vscode-leetcode/pull/712)
+
+### Fixed
+[Bugs fixed](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues?q=is%3Aissue+milestone%3A0.18.0+is%3Aclosed+label%3Abug)
+
 ## [0.17.0]
 ### Added
 - Add TypeScript support [#560](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/560)
diff --git a/README.md b/README.md
index 173371f6..249e20bd 100644
--- a/README.md
+++ b/README.md
@@ -133,6 +133,7 @@ Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround wh
 | `leetcode.enableSideMode`                                                               | Specify whether `preview`, `solution` and `submission` tab should be grouped into the second editor column when solving a problem.                                                                                                                                                                                                                                                                                                | `true`             |
 | `leetcode.nodePath`                                                                     | Specify the `Node.js` executable path. for example, C:\Program Files\nodejs\node.exe                                                                                                                                                                                                                                                                                                                                              | `node`             |
 | `leetcode.showCommentDescription`                                                       | Specify whether to include the problem description in the comments                                                                                                                                                                                                                                                                                                                                                                | `false`            |
+| `leetcode.useEndpointTranslation`                                                       | Use endpoint's translation (if available)                                                                                                                                                                                                                                                                                                                                                                | `true`            |
 
 ## Want Help?
 
diff --git a/docs/README_zh-CN.md b/docs/README_zh-CN.md
index e4760015..71ed04b6 100644
--- a/docs/README_zh-CN.md
+++ b/docs/README_zh-CN.md
@@ -134,6 +134,7 @@
 | `leetcode.enableSideMode`                                                          | 指定在解决一道题时,是否将`问题预览`、`高票答案`与`提交结果`窗口集中在编辑器的第二栏。                                                                                                                                                                                                          | `true`             |
 | `leetcode.nodePath`                                                                | 指定 `Node.js` 可执行文件的路径。如:C:\Program Files\nodejs\node.exe                                                                                                                                                                                                                           | `node`             |
 | `leetcode.showCommentDescription`                                                  | 指定是否要在注释中显示题干。                                                                                                                                                                                                                                                                    | `false`            |
+| `leetcode.useEndpointTranslation`                                                       | 是否显示翻译版本内容。                                                                                                                                                                                                                                                                                                                                                                | `true`            |
 
 ## 需要帮助?
 在遇到任何问题时,可以先查看一下[疑难解答](https://github.com/LeetCode-OpenSource/vscode-leetcode/wiki/%E7%96%91%E9%9A%BE%E8%A7%A3%E7%AD%94)以及[常见问题](https://github.com/LeetCode-OpenSource/vscode-leetcode/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)寻求帮助。
diff --git a/package-lock.json b/package-lock.json
index f29605ac..75694f3b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
 {
     "name": "vscode-leetcode",
-    "version": "0.17.0",
+    "version": "0.18.0",
     "lockfileVersion": 1,
     "requires": true,
     "dependencies": {
diff --git a/package.json b/package.json
index ea24e2dd..cad81253 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
     "name": "vscode-leetcode",
     "displayName": "LeetCode",
     "description": "Solve LeetCode problems in VS Code",
-    "version": "0.17.0",
+    "version": "0.18.0",
     "author": "Sheng Chen",
     "publisher": "LeetCode",
     "license": "MIT",

From e93bb6e4cb46b1019d1624c313d93cad2598b27d Mon Sep 17 00:00:00 2001
From: Abhishek Kathuria <anshkathuria@gmail.com>
Date: Thu, 19 Aug 2021 21:43:28 -0700
Subject: [PATCH 79/92] feat: Add difficulty badge to problems in explorer tree
 (#727)

---
 README.md                                     | 32 ++++++++-------
 package-lock.json                             |  6 +--
 package.json                                  | 10 ++++-
 src/explorer/LeetCodeNode.ts                  | 11 ++++-
 src/explorer/LeetCodeTreeDataProvider.ts      |  1 +
 .../LeetCodeTreeItemDecorationProvider.ts     | 40 +++++++++++++++++++
 src/extension.ts                              |  2 +
 7 files changed, 81 insertions(+), 21 deletions(-)
 create mode 100644 src/explorer/LeetCodeTreeItemDecorationProvider.ts

diff --git a/README.md b/README.md
index 249e20bd..8292a79f 100644
--- a/README.md
+++ b/README.md
@@ -119,21 +119,23 @@ Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround wh
 
 
 ## Settings
-| Setting Name                                                                            | Description                                                                                                                                                                                                                                                                                                                                                                                                                       | Default Value      |
-| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ |
-| `leetcode.hideSolved`                                                                   | Specify to hide the solved problems or not                                                                                                                                                                                                                                                                                                                                                                                        | `false`            |
-| `leetcode.showLocked`                                                                   | Specify to show the locked problems or not. Only Premium users could open the locked problems                                                                                                                                                                                                                                                                                                                                     | `false`            |
-| `leetcode.defaultLanguage`                                                              | Specify the default language used to solve the problem. Supported languages are: `bash`, `c`, `cpp`, `csharp`, `golang`, `java`, `javascript`, `kotlin`, `mysql`, `php`, `python`,`python3`,`ruby`,`rust`, `scala`, `swift`, `typescript`                                                                                                                                                                                                        | `N/A`              |
-| `leetcode.useWsl`                                                                       | Specify whether to use WSL or not                                                                                                                                                                                                                                                                                                                                                                                                 | `false`            |
-| `leetcode.endpoint`                                                                     | Specify the active endpoint. Supported endpoints are: `leetcode`, `leetcode-cn`                                                                                                                                                                                                                                                                                                                                                   | `leetcode`         |
-| `leetcode.workspaceFolder`                                                              | Specify the path of the workspace folder to store the problem files.                                                                                                                                                                                                                                                                                                                                                              | `""`               |
-| `leetcode.filePath`                                                                     | Specify the relative path under the workspace and the file name to save the problem files. More details can be found [here](https://github.com/LeetCode-OpenSource/vscode-leetcode/wiki/Customize-the-Relative-Folder-and-the-File-Name-of-the-Problem-File).                                                                                                                                                                                   |                    |
-| `leetcode.enableStatusBar`                                                              | Specify whether the LeetCode status bar will be shown or not.                                                                                                                                                                                                                                                                                                                                                                     | `true`             |
-| `leetcode.editor.shortcuts`                                                             | Specify the customized shortcuts in editors. Supported values are: `submit`, `test`, `star`, `solution` and `description`.                                                                                                                                                                                                                                                                                                                 | `["submit, test"]` |
-| `leetcode.enableSideMode`                                                               | Specify whether `preview`, `solution` and `submission` tab should be grouped into the second editor column when solving a problem.                                                                                                                                                                                                                                                                                                | `true`             |
-| `leetcode.nodePath`                                                                     | Specify the `Node.js` executable path. for example, C:\Program Files\nodejs\node.exe                                                                                                                                                                                                                                                                                                                                              | `node`             |
-| `leetcode.showCommentDescription`                                                       | Specify whether to include the problem description in the comments                                                                                                                                                                                                                                                                                                                                                                | `false`            |
-| `leetcode.useEndpointTranslation`                                                       | Use endpoint's translation (if available)                                                                                                                                                                                                                                                                                                                                                                | `true`            |
+
+| Setting Name                      | Description                                                                                                                                                                                                                                                   | Default Value      |
+| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ |
+| `leetcode.hideSolved`             | Specify to hide the solved problems or not                                                                                                                                                                                                                    | `false`            |
+| `leetcode.showLocked`             | Specify to show the locked problems or not. Only Premium users could open the locked problems                                                                                                                                                                 | `false`            |
+| `leetcode.defaultLanguage`        | Specify the default language used to solve the problem. Supported languages are: `bash`, `c`, `cpp`, `csharp`, `golang`, `java`, `javascript`, `kotlin`, `mysql`, `php`, `python`,`python3`,`ruby`,`rust`, `scala`, `swift`, `typescript`                     | `N/A`              |
+| `leetcode.useWsl`                 | Specify whether to use WSL or not                                                                                                                                                                                                                             | `false`            |
+| `leetcode.endpoint`               | Specify the active endpoint. Supported endpoints are: `leetcode`, `leetcode-cn`                                                                                                                                                                               | `leetcode`         |
+| `leetcode.workspaceFolder`        | Specify the path of the workspace folder to store the problem files.                                                                                                                                                                                          | `""`               |
+| `leetcode.filePath`               | Specify the relative path under the workspace and the file name to save the problem files. More details can be found [here](https://github.com/LeetCode-OpenSource/vscode-leetcode/wiki/Customize-the-Relative-Folder-and-the-File-Name-of-the-Problem-File). |                    |
+| `leetcode.enableStatusBar`        | Specify whether the LeetCode status bar will be shown or not.                                                                                                                                                                                                 | `true`             |
+| `leetcode.editor.shortcuts`       | Specify the customized shortcuts in editors. Supported values are: `submit`, `test`, `star`, `solution` and `description`.                                                                                                                                    | `["submit, test"]` |
+| `leetcode.enableSideMode`         | Specify whether `preview`, `solution` and `submission` tab should be grouped into the second editor column when solving a problem.                                                                                                                            | `true`             |
+| `leetcode.nodePath`               | Specify the `Node.js` executable path. for example, C:\Program Files\nodejs\node.exe                                                                                                                                                                          | `node`             |
+| `leetcode.showCommentDescription` | Specify whether to include the problem description in the comments                                                                                                                                                                                            | `false`            |
+| `leetcode.useEndpointTranslation` | Use endpoint's translation (if available)                                                                                                                                                                                                                     | `true`             |
+| `leetcode.colorizeProblems`       | Add difficulty badge and colorize problems files in explorer tree                                                                                                                                                                                             | `true`             |
 
 ## Want Help?
 
diff --git a/package-lock.json b/package-lock.json
index 75694f3b..4ab065af 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -79,9 +79,9 @@
             "dev": true
         },
         "@types/vscode": {
-            "version": "1.50.0",
-            "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.50.0.tgz",
-            "integrity": "sha512-QnIeyi4L2DiD9M2bAQKRzT/EQvc80qP9UL6JD5TiLlNRL1khIDg4ej4mDSRbtFrDAsRntFI1RhMvdomUThMsqg==",
+            "version": "1.57.0",
+            "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.57.0.tgz",
+            "integrity": "sha512-FeznBFtIDCWRluojTsi9c3LLcCHOXP5etQfBK42+ixo1CoEAchkw39tuui9zomjZuKfUVL33KZUDIwHZ/xvOkQ==",
             "dev": true
         },
         "abab": {
diff --git a/package.json b/package.json
index cad81253..7ecd780a 100644
--- a/package.json
+++ b/package.json
@@ -8,7 +8,7 @@
     "license": "MIT",
     "icon": "resources/LeetCode.png",
     "engines": {
-        "vscode": "^1.50.0"
+        "vscode": "^1.57.0"
     },
     "repository": {
         "type": "git",
@@ -671,6 +671,12 @@
                         "default": "node",
                         "scope": "application",
                         "description": "The Node.js executable path. for example, C:\\Program Files\\nodejs\\node.exe"
+                    },
+                    "leetcode.colorizeProblems": {
+                        "type": "boolean",
+                        "default": true,
+                        "scope": "application",
+                        "description": "Add difficulty badge and colorize problems files in explorer tree."
                     }
                 }
             }
@@ -689,7 +695,7 @@
         "@types/mocha": "^2.2.42",
         "@types/node": "^14.14.33",
         "@types/require-from-string": "^1.2.0",
-        "@types/vscode": "1.50.0",
+        "@types/vscode": "1.57.0",
         "tslint": "^5.20.1",
         "typescript": "^4.3.2"
     },
diff --git a/src/explorer/LeetCodeNode.ts b/src/explorer/LeetCodeNode.ts
index 67aad324..c8540887 100644
--- a/src/explorer/LeetCodeNode.ts
+++ b/src/explorer/LeetCodeNode.ts
@@ -1,7 +1,7 @@
 // Copyright (c) jdneo. All rights reserved.
 // Licensed under the MIT license.
 
-import { Command } from "vscode";
+import { Command, Uri } from "vscode";
 import { IProblem, ProblemState } from "../shared";
 
 export class LeetCodeNode {
@@ -55,4 +55,13 @@ export class LeetCodeNode {
         };
     }
 
+    public get uri(): Uri {
+        return Uri.from({
+            scheme: "leetcode",
+            authority: this.isProblem ? "problems" : "tree-node",
+            path: `/${this.id}`, // path must begin with slash /
+            query: `difficulty=${this.difficulty}`,
+        });
+    }
+
 }
diff --git a/src/explorer/LeetCodeTreeDataProvider.ts b/src/explorer/LeetCodeTreeDataProvider.ts
index 2bfbe497..4764934a 100644
--- a/src/explorer/LeetCodeTreeDataProvider.ts
+++ b/src/explorer/LeetCodeTreeDataProvider.ts
@@ -51,6 +51,7 @@ export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCod
             collapsibleState: element.isProblem ? vscode.TreeItemCollapsibleState.None : vscode.TreeItemCollapsibleState.Collapsed,
             iconPath: this.parseIconPathFromProblemState(element),
             command: element.isProblem ? element.previewCommand : undefined,
+            resourceUri: element.uri,
             contextValue,
         };
     }
diff --git a/src/explorer/LeetCodeTreeItemDecorationProvider.ts b/src/explorer/LeetCodeTreeItemDecorationProvider.ts
new file mode 100644
index 00000000..103ce2d9
--- /dev/null
+++ b/src/explorer/LeetCodeTreeItemDecorationProvider.ts
@@ -0,0 +1,40 @@
+import { URLSearchParams } from "url";
+import { FileDecoration, FileDecorationProvider, ProviderResult, ThemeColor, Uri, workspace, WorkspaceConfiguration } from "vscode";
+
+export class LeetCodeTreeItemDecorationProvider implements FileDecorationProvider {
+    private readonly DIFFICULTY_BADGE_LABEL: { [key: string]: string } = {
+        easy: "E",
+        medium: "M",
+        hard: "H",
+    };
+
+    private readonly ITEM_COLOR: { [key: string]: ThemeColor } = {
+        easy: new ThemeColor("charts.green"),
+        medium: new ThemeColor("charts.yellow"),
+        hard: new ThemeColor("charts.red"),
+    };
+
+    public provideFileDecoration(uri: Uri): ProviderResult<FileDecoration>  {
+        if (!this.isDifficultyBadgeEnabled()) {
+            return;
+        }
+
+        if (uri.scheme !== "leetcode" && uri.authority !== "problems") {
+            return;
+        }
+
+        const params: URLSearchParams = new URLSearchParams(uri.query);
+        const difficulty: string = params.get("difficulty")!.toLowerCase();
+        return {
+            badge: this.DIFFICULTY_BADGE_LABEL[difficulty],
+            color: this.ITEM_COLOR[difficulty],
+        };
+    }
+
+    private isDifficultyBadgeEnabled(): boolean {
+        const configuration: WorkspaceConfiguration = workspace.getConfiguration();
+        return configuration.get<boolean>("leetcode.colorizeProblems", false);
+    }
+}
+
+export const leetCodeTreeItemDecorationProvider: LeetCodeTreeItemDecorationProvider = new LeetCodeTreeItemDecorationProvider();
diff --git a/src/extension.ts b/src/extension.ts
index 5bd026f1..102c245f 100644
--- a/src/extension.ts
+++ b/src/extension.ts
@@ -14,6 +14,7 @@ import * as test from "./commands/test";
 import { explorerNodeManager } from "./explorer/explorerNodeManager";
 import { LeetCodeNode } from "./explorer/LeetCodeNode";
 import { leetCodeTreeDataProvider } from "./explorer/LeetCodeTreeDataProvider";
+import { leetCodeTreeItemDecorationProvider } from "./explorer/LeetCodeTreeItemDecorationProvider";
 import { leetCodeChannel } from "./leetCodeChannel";
 import { leetCodeExecutor } from "./leetCodeExecutor";
 import { leetCodeManager } from "./leetCodeManager";
@@ -47,6 +48,7 @@ export async function activate(context: vscode.ExtensionContext): Promise<void>
             markdownEngine,
             codeLensController,
             explorerNodeManager,
+            vscode.window.registerFileDecorationProvider(leetCodeTreeItemDecorationProvider),
             vscode.window.createTreeView("leetCodeExplorer", { treeDataProvider: leetCodeTreeDataProvider, showCollapseAll: true }),
             vscode.commands.registerCommand("leetcode.deleteCache", () => cache.deleteCache()),
             vscode.commands.registerCommand("leetcode.toggleLeetCodeCn", () => plugin.switchEndpoint()),

From de1dc4161b497b4f76faad2363abab0104a75373 Mon Sep 17 00:00:00 2001
From: Abhishek Kathuria <anshkathuria@gmail.com>
Date: Fri, 20 Aug 2021 19:42:58 -0700
Subject: [PATCH 80/92] feat: Add support for sorting problems by acceptance
 rate (#728)

---
 README.md                           |  1 +
 package.json                        | 23 ++++++++++++++++++
 src/commands/plugin.ts              | 36 ++++++++++++++++++++++++++++-
 src/explorer/LeetCodeNode.ts        |  4 ++++
 src/explorer/explorerNodeManager.ts | 20 ++++++++++++----
 src/extension.ts                    |  1 +
 src/shared.ts                       |  8 +++++++
 7 files changed, 88 insertions(+), 5 deletions(-)

diff --git a/README.md b/README.md
index 8292a79f..ac752c73 100644
--- a/README.md
+++ b/README.md
@@ -136,6 +136,7 @@ Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround wh
 | `leetcode.showCommentDescription` | Specify whether to include the problem description in the comments                                                                                                                                                                                            | `false`            |
 | `leetcode.useEndpointTranslation` | Use endpoint's translation (if available)                                                                                                                                                                                                                     | `true`             |
 | `leetcode.colorizeProblems`       | Add difficulty badge and colorize problems files in explorer tree                                                                                                                                                                                             | `true`             |
+| `leetcode.problems.sortStrategy`  | Specify sorting strategy for problems list                                                                                                                                                                                                                    | `None`             |
 
 ## Want Help?
 
diff --git a/package.json b/package.json
index 7ecd780a..bcdb5c02 100644
--- a/package.json
+++ b/package.json
@@ -38,6 +38,7 @@
         "onCommand:leetcode.testSolution",
         "onCommand:leetcode.submitSolution",
         "onCommand:leetcode.switchDefaultLanguage",
+        "onCommand:leetcode.problems.sort",
         "onView:leetCodeExplorer"
     ],
     "main": "./out/src/extension",
@@ -134,6 +135,12 @@
                 "command": "leetcode.switchDefaultLanguage",
                 "title": "Switch Default Language",
                 "category": "LeetCode"
+            },
+            {
+                "command": "leetcode.problems.sort",
+                "title": "Sort Problems",
+                "category": "LeetCode",
+                "icon": "$(sort-precedence)"
             }
         ],
         "viewsContainers": {
@@ -179,6 +186,11 @@
                     "command": "leetcode.pickOne",
                     "when": "view == leetCodeExplorer",
                     "group": "overflow@0"
+                },
+                {
+                    "command": "leetcode.problems.sort",
+                    "when": "view == leetCodeExplorer",
+                    "group": "overflow@1"
                 }
             ],
             "view/item/context": [
@@ -677,6 +689,17 @@
                         "default": true,
                         "scope": "application",
                         "description": "Add difficulty badge and colorize problems files in explorer tree."
+                    },
+                    "leetcode.problems.sortStrategy": {
+                        "type": "string",
+                        "default": "None",
+                        "scope": "application",
+                        "enum": [
+                            "None",
+                            "Acceptance Rate (Ascending)",
+                            "Acceptance Rate (Descending)"
+                        ],
+                        "description": "Sorting strategy for problems list."
                     }
                 }
             }
diff --git a/src/commands/plugin.ts b/src/commands/plugin.ts
index 481bd6dd..040f8321 100644
--- a/src/commands/plugin.ts
+++ b/src/commands/plugin.ts
@@ -2,9 +2,10 @@
 // Licensed under the MIT license.
 
 import * as vscode from "vscode";
+import { leetCodeTreeDataProvider } from "../explorer/LeetCodeTreeDataProvider";
 import { leetCodeExecutor } from "../leetCodeExecutor";
 import { IQuickItemEx } from "../shared";
-import { Endpoint } from "../shared";
+import { Endpoint, SortingStrategy } from "../shared";
 import { DialogType, promptForOpenOutputChannel, promptForSignIn } from "../utils/uiUtils";
 import { deleteCache } from "./cache";
 
@@ -52,3 +53,36 @@ export function getLeetCodeEndpoint(): string {
     const leetCodeConfig: vscode.WorkspaceConfiguration = vscode.workspace.getConfiguration("leetcode");
     return leetCodeConfig.get<string>("endpoint", Endpoint.LeetCode);
 }
+
+const SORT_ORDER: SortingStrategy[] = [
+    SortingStrategy.None,
+    SortingStrategy.AcceptanceRateAsc,
+    SortingStrategy.AcceptanceRateDesc,
+];
+
+export async function switchSortingStrategy(): Promise<void> {
+    const currentStrategy: SortingStrategy = getSortingStrategy();
+    const picks: Array<IQuickItemEx<string>> = [];
+    picks.push(
+        ...SORT_ORDER.map((s: SortingStrategy) => {
+            return {
+                label: `${currentStrategy === s ? "$(check)" : "    "} ${s}`,
+                value: s,
+            };
+        }),
+    );
+
+    const choice: IQuickItemEx<string> | undefined = await vscode.window.showQuickPick(picks);
+    if (!choice || choice.value === currentStrategy) {
+        return;
+    }
+
+    const leetCodeConfig: vscode.WorkspaceConfiguration = vscode.workspace.getConfiguration("leetcode");
+    await leetCodeConfig.update("problems.sortStrategy", choice.value, true);
+    await leetCodeTreeDataProvider.refresh();
+}
+
+export function getSortingStrategy(): SortingStrategy {
+    const leetCodeConfig: vscode.WorkspaceConfiguration = vscode.workspace.getConfiguration("leetcode");
+    return leetCodeConfig.get<SortingStrategy>("problems.sortStrategy", SortingStrategy.None);
+}
diff --git a/src/explorer/LeetCodeNode.ts b/src/explorer/LeetCodeNode.ts
index c8540887..3d2cc74f 100644
--- a/src/explorer/LeetCodeNode.ts
+++ b/src/explorer/LeetCodeNode.ts
@@ -55,6 +55,10 @@ export class LeetCodeNode {
         };
     }
 
+    public get acceptanceRate(): number {
+        return Number(this.passRate.slice(0, -1).trim());
+    }
+
     public get uri(): Uri {
         return Uri.from({
             scheme: "leetcode",
diff --git a/src/explorer/explorerNodeManager.ts b/src/explorer/explorerNodeManager.ts
index 95053263..a04ad55c 100644
--- a/src/explorer/explorerNodeManager.ts
+++ b/src/explorer/explorerNodeManager.ts
@@ -4,7 +4,8 @@
 import * as _ from "lodash";
 import { Disposable } from "vscode";
 import * as list from "../commands/list";
-import { Category, defaultProblem, ProblemState } from "../shared";
+import { getSortingStrategy } from "../commands/plugin";
+import { Category, defaultProblem, ProblemState, SortingStrategy } from "../shared";
 import { shouldHideSolvedProblem } from "../utils/settingUtils";
 import { LeetCodeNode } from "./LeetCodeNode";
 
@@ -56,7 +57,9 @@ class ExplorerNodeManager implements Disposable {
     }
 
     public getAllNodes(): LeetCodeNode[] {
-        return Array.from(this.explorerNodeMap.values());
+        return this.applySortingStrategy(
+            Array.from(this.explorerNodeMap.values()),
+        );
     }
 
     public getAllDifficultyNodes(): LeetCodeNode[] {
@@ -114,7 +117,7 @@ class ExplorerNodeManager implements Disposable {
                 res.push(node);
             }
         }
-        return res;
+        return this.applySortingStrategy(res);
     }
 
     public getChildrenNodesById(id: string): LeetCodeNode[] {
@@ -142,7 +145,7 @@ class ExplorerNodeManager implements Disposable {
                     break;
             }
         }
-        return res;
+        return this.applySortingStrategy(res);
     }
 
     public dispose(): void {
@@ -186,6 +189,15 @@ class ExplorerNodeManager implements Disposable {
                 break;
         }
     }
+
+    private applySortingStrategy(nodes: LeetCodeNode[]): LeetCodeNode[] {
+        const strategy: SortingStrategy = getSortingStrategy();
+        switch (strategy) {
+            case SortingStrategy.AcceptanceRateAsc: return nodes.sort((x: LeetCodeNode, y: LeetCodeNode) => Number(x.acceptanceRate) - Number(y.acceptanceRate));
+            case SortingStrategy.AcceptanceRateDesc: return nodes.sort((x: LeetCodeNode, y: LeetCodeNode) => Number(y.acceptanceRate) - Number(x.acceptanceRate));
+            default: return nodes;
+        }
+    }
 }
 
 export const explorerNodeManager: ExplorerNodeManager = new ExplorerNodeManager();
diff --git a/src/extension.ts b/src/extension.ts
index 102c245f..dfd91683 100644
--- a/src/extension.ts
+++ b/src/extension.ts
@@ -66,6 +66,7 @@ export async function activate(context: vscode.ExtensionContext): Promise<void>
             vscode.commands.registerCommand("leetcode.switchDefaultLanguage", () => switchDefaultLanguage()),
             vscode.commands.registerCommand("leetcode.addFavorite", (node: LeetCodeNode) => star.addFavorite(node)),
             vscode.commands.registerCommand("leetcode.removeFavorite", (node: LeetCodeNode) => star.removeFavorite(node)),
+            vscode.commands.registerCommand("leetcode.problems.sort", () => plugin.switchSortingStrategy()),
         );
 
         await leetCodeExecutor.switchEndpoint(plugin.getLeetCodeEndpoint());
diff --git a/src/shared.ts b/src/shared.ts
index e09943f8..84b529cc 100644
--- a/src/shared.ts
+++ b/src/shared.ts
@@ -116,3 +116,11 @@ export enum DescriptionConfiguration {
 }
 
 export const leetcodeHasInited: string = "leetcode.hasInited";
+
+export enum SortingStrategy {
+    None = "None",
+    AcceptanceRateAsc = "Acceptance Rate (Ascending)",
+    AcceptanceRateDesc = "Acceptance Rate (Descending)",
+    FrequencyAsc = "Frequency (Ascending)",
+    FrequencyDesc = "Frequency (Descending)",
+}

From b7638bb26308ebfc6c0ab9b655cbfe7ae9097f18 Mon Sep 17 00:00:00 2001
From: Miloas <0x9357@gmail.com>
Date: Mon, 9 May 2022 18:06:56 +0800
Subject: [PATCH 81/92] fix: update cn domain (#800)

* fix: update cn domain

* fix(ci): upgrade node to 14

* chore: bump cli
---
 .github/workflows/build.yml |   70 +-
 README.md                   |    4 +-
 docs/README_zh-CN.md        |    4 +-
 package-lock.json           | 2353 +++++++++++++++++++++++++++++++++--
 package.json                |    2 +-
 src/commands/plugin.ts      |    2 +-
 src/utils/uiUtils.ts        |    2 +-
 7 files changed, 2262 insertions(+), 175 deletions(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 1df11a00..2bdeaa49 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -2,9 +2,9 @@ name: CI
 
 on:
   push:
-    branches: [ master ]
+    branches: [master]
   pull_request:
-    branches: [ master ]
+    branches: [master]
 
 jobs:
   linux:
@@ -12,60 +12,60 @@ jobs:
     runs-on: ubuntu-latest
     timeout-minutes: 30
     steps:
-    - uses: actions/checkout@v2
+      - uses: actions/checkout@v2
 
-    - name: Setup Node.js environment
-      uses: actions/setup-node@v2
-      with:
-        node-version: 12
+      - name: Setup Node.js environment
+        uses: actions/setup-node@v2
+        with:
+          node-version: 14
 
-    - name: Install Node.js modules
-      run: npm install
+      - name: Install Node.js modules
+        run: npm install
 
-    - name: Lint
-      run: npm run lint
+      - name: Lint
+        run: npm run lint
 
-    - name: VSCE Packge
-      run: npx vsce package
+      - name: VSCE Packge
+        run: npx vsce package
 
   windows:
     name: Windows
     runs-on: windows-latest
     timeout-minutes: 30
     steps:
-    - uses: actions/checkout@v2
+      - uses: actions/checkout@v2
 
-    - name: Setup Node.js environment
-      uses: actions/setup-node@v2
-      with:
-        node-version: 12
+      - name: Setup Node.js environment
+        uses: actions/setup-node@v2
+        with:
+          node-version: 14
 
-    - name: Install Node.js modules
-      run: npm install
+      - name: Install Node.js modules
+        run: npm install
 
-    - name: Lint
-      run: npm run lint
+      - name: Lint
+        run: npm run lint
 
-    - name: VSCE Packge
-      run: npx vsce package
+      - name: VSCE Packge
+        run: npx vsce package
 
   darwin:
     name: macOS
     runs-on: macos-latest
     timeout-minutes: 30
     steps:
-    - uses: actions/checkout@v2
+      - uses: actions/checkout@v2
 
-    - name: Setup Node.js environment
-      uses: actions/setup-node@v2
-      with:
-        node-version: 12
+      - name: Setup Node.js environment
+        uses: actions/setup-node@v2
+        with:
+          node-version: 14
 
-    - name: Install Node.js modules
-      run: npm install
+      - name: Install Node.js modules
+        run: npm install
 
-    - name: Lint
-      run: npm run lint
+      - name: Lint
+        run: npm run lint
 
-    - name: VSCE Packge
-      run: npx vsce package
+      - name: VSCE Packge
+        run: npx vsce package
diff --git a/README.md b/README.md
index ac752c73..cfe37701 100644
--- a/README.md
+++ b/README.md
@@ -23,7 +23,7 @@
 - English Document | [中文文档](https://github.com/LeetCode-OpenSource/vscode-leetcode/blob/master/docs/README_zh-CN.md)
 
 ## ❗️ Attention ❗️- Workaround to login to LeetCode endpoint
-> Note: If you are using `leetcode-cn.com`, you can just ignore this section.
+> Note: If you are using `leetcode.cn`, you can just ignore this section.
 
 Recently we observed that [the extension cannot login to leetcode.com endpoint anymore](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/478). The root cause of this issue is that leetcode.com changed its login mechanism and so far there is no ideal way to fix that issue.
 
@@ -63,7 +63,7 @@ Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround wh
 
 - The supported endpoints are:
   - **leetcode.com**
-  - **leetcode-cn.com**
+  - **leetcode.cn**
 
   > Note: The accounts of different endpoints are **not** shared. Please make sure you are using the right endpoint. The extension will use `leetcode.com` by default.
 
diff --git a/docs/README_zh-CN.md b/docs/README_zh-CN.md
index 71ed04b6..ad4c9a74 100644
--- a/docs/README_zh-CN.md
+++ b/docs/README_zh-CN.md
@@ -23,7 +23,7 @@
 - [English Document](https://github.com/LeetCode-OpenSource/vscode-leetcode#requirements) | 中文文档
 
 ## ❗️ 注意 ❗️- 无法登录 LeetCode 节点的临时解决办法
-> 注意:如果使用的是 `leetcode-cn.com` 账户,可以跳过此段落。
+> 注意:如果使用的是 `leetcode.cn` 账户,可以跳过此段落。
 
 近期我们发现插件出现了[无法登录 leetcode.com 节点的问题](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/478)。原因是因为近期 leetcode.com 改变了登录机制,目前我们暂时没有找到解决该问题的完美解决方案。
 
@@ -64,7 +64,7 @@
 
 - 目前可切换的版本有:
   - **leetcode.com**
-  - **leetcode-cn.com**
+  - **leetcode.cn**
 
   > 注意:两种版本的 LeetCode 账户并**不通用**,请确保当前激活的版本是正确的。插件默认激活的是**英文版**。
 
diff --git a/package-lock.json b/package-lock.json
index 4ab065af..fe9c5d7f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,8 +1,2132 @@
 {
     "name": "vscode-leetcode",
     "version": "0.18.0",
-    "lockfileVersion": 1,
+    "lockfileVersion": 2,
     "requires": true,
+    "packages": {
+        "": {
+            "name": "vscode-leetcode",
+            "version": "0.18.0",
+            "license": "MIT",
+            "dependencies": {
+                "fs-extra": "^10.0.0",
+                "highlight.js": "^10.7.2",
+                "lodash": "^4.17.21",
+                "markdown-it": "^8.4.2",
+                "require-from-string": "^2.0.2",
+                "unescape-js": "^1.1.4",
+                "vsc-leetcode-cli": "2.8.1"
+            },
+            "devDependencies": {
+                "@types/fs-extra": "^9.0.11",
+                "@types/lodash": "^4.14.170",
+                "@types/markdown-it": "0.0.7",
+                "@types/mocha": "^2.2.42",
+                "@types/node": "^14.14.33",
+                "@types/require-from-string": "^1.2.0",
+                "@types/vscode": "1.57.0",
+                "tslint": "^5.20.1",
+                "typescript": "^4.3.2"
+            },
+            "engines": {
+                "vscode": "^1.57.0"
+            }
+        },
+        "node_modules/@babel/code-frame": {
+            "version": "7.12.13",
+            "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz",
+            "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==",
+            "dev": true,
+            "dependencies": {
+                "@babel/highlight": "^7.12.13"
+            }
+        },
+        "node_modules/@babel/helper-validator-identifier": {
+            "version": "7.14.0",
+            "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz",
+            "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==",
+            "dev": true
+        },
+        "node_modules/@babel/highlight": {
+            "version": "7.14.0",
+            "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz",
+            "integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==",
+            "dev": true,
+            "dependencies": {
+                "@babel/helper-validator-identifier": "^7.14.0",
+                "chalk": "^2.0.0",
+                "js-tokens": "^4.0.0"
+            }
+        },
+        "node_modules/@types/fs-extra": {
+            "version": "9.0.11",
+            "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.11.tgz",
+            "integrity": "sha512-mZsifGG4QeQ7hlkhO56u7zt/ycBgGxSVsFI/6lGTU34VtwkiqrrSDgw0+ygs8kFGWcXnFQWMrzF2h7TtDFNixA==",
+            "dev": true,
+            "dependencies": {
+                "@types/node": "*"
+            }
+        },
+        "node_modules/@types/linkify-it": {
+            "version": "3.0.1",
+            "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.1.tgz",
+            "integrity": "sha512-pQv3Sygwxxh6jYQzXaiyWDAHevJqWtqDUv6t11Sa9CPGiXny66II7Pl6PR8QO5OVysD6HYOkHMeBgIjLnk9SkQ==",
+            "dev": true
+        },
+        "node_modules/@types/lodash": {
+            "version": "4.14.170",
+            "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.170.tgz",
+            "integrity": "sha512-bpcvu/MKHHeYX+qeEN8GE7DIravODWdACVA1ctevD8CN24RhPZIKMn9ntfAsrvLfSX3cR5RrBKAbYm9bGs0A+Q==",
+            "dev": true
+        },
+        "node_modules/@types/markdown-it": {
+            "version": "0.0.7",
+            "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-0.0.7.tgz",
+            "integrity": "sha512-WyL6pa76ollQFQNEaLVa41ZUUvDvPY+qAUmlsphnrpL6I9p1m868b26FyeoOmo7X3/Ta/S9WKXcEYXUSHnxoVQ==",
+            "dev": true,
+            "dependencies": {
+                "@types/linkify-it": "*"
+            }
+        },
+        "node_modules/@types/mocha": {
+            "version": "2.2.48",
+            "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-2.2.48.tgz",
+            "integrity": "sha512-nlK/iyETgafGli8Zh9zJVCTicvU3iajSkRwOh3Hhiva598CMqNJ4NcVCGMTGKpGpTYj/9R8RLzS9NAykSSCqGw==",
+            "dev": true
+        },
+        "node_modules/@types/node": {
+            "version": "14.17.1",
+            "resolved": "https://registry.npmjs.org/@types/node/-/node-14.17.1.tgz",
+            "integrity": "sha512-/tpUyFD7meeooTRwl3sYlihx2BrJE7q9XF71EguPFIySj9B7qgnRtHsHTho+0AUm4m1SvWGm6uSncrR94q6Vtw==",
+            "dev": true
+        },
+        "node_modules/@types/require-from-string": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/@types/require-from-string/-/require-from-string-1.2.0.tgz",
+            "integrity": "sha512-5vE9WoOOC9/DoD3Zj53UISpM+5tSvh8k0mL4fe2zFI6vO715/W4IQ3EdVUrWVMrFi1/NZhyMvm2iKsDFkEGddQ==",
+            "dev": true
+        },
+        "node_modules/@types/vscode": {
+            "version": "1.57.0",
+            "resolved": "https://registry.npmjs.org/@types/vscode/-/vscode-1.57.0.tgz",
+            "integrity": "sha512-FeznBFtIDCWRluojTsi9c3LLcCHOXP5etQfBK42+ixo1CoEAchkw39tuui9zomjZuKfUVL33KZUDIwHZ/xvOkQ==",
+            "dev": true
+        },
+        "node_modules/abab": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz",
+            "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=",
+            "optional": true
+        },
+        "node_modules/acorn": {
+            "version": "2.7.0",
+            "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz",
+            "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=",
+            "optional": true,
+            "bin": {
+                "acorn": "bin/acorn"
+            },
+            "engines": {
+                "node": ">=0.4.0"
+            }
+        },
+        "node_modules/acorn-globals": {
+            "version": "1.0.9",
+            "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz",
+            "integrity": "sha1-VbtemGkVB7dFedBRNBMhfDgMVM8=",
+            "optional": true,
+            "dependencies": {
+                "acorn": "^2.1.0"
+            }
+        },
+        "node_modules/ajv": {
+            "version": "6.12.6",
+            "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+            "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+            "dependencies": {
+                "fast-deep-equal": "^3.1.1",
+                "fast-json-stable-stringify": "^2.0.0",
+                "json-schema-traverse": "^0.4.1",
+                "uri-js": "^4.2.2"
+            },
+            "funding": {
+                "type": "github",
+                "url": "https://github.com/sponsors/epoberezkin"
+            }
+        },
+        "node_modules/ansi-regex": {
+            "version": "5.0.1",
+            "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+            "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+            "engines": {
+                "node": ">=8"
+            }
+        },
+        "node_modules/ansi-styles": {
+            "version": "3.2.1",
+            "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+            "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+            "dependencies": {
+                "color-convert": "^1.9.0"
+            },
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/argparse": {
+            "version": "1.0.10",
+            "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+            "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+            "dependencies": {
+                "sprintf-js": "~1.0.2"
+            }
+        },
+        "node_modules/asn1": {
+            "version": "0.2.4",
+            "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
+            "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
+            "dependencies": {
+                "safer-buffer": "~2.1.0"
+            }
+        },
+        "node_modules/assert-plus": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+            "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=",
+            "engines": {
+                "node": ">=0.8"
+            }
+        },
+        "node_modules/async": {
+            "version": "1.5.2",
+            "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+            "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
+        },
+        "node_modules/asynckit": {
+            "version": "0.4.0",
+            "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+            "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
+        },
+        "node_modules/aws-sign2": {
+            "version": "0.7.0",
+            "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+            "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=",
+            "engines": {
+                "node": "*"
+            }
+        },
+        "node_modules/aws4": {
+            "version": "1.11.0",
+            "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
+            "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
+        },
+        "node_modules/balanced-match": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+            "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
+        },
+        "node_modules/bcrypt-pbkdf": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+            "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
+            "dependencies": {
+                "tweetnacl": "^0.14.3"
+            }
+        },
+        "node_modules/boolbase": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
+            "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
+        },
+        "node_modules/brace-expansion": {
+            "version": "1.1.11",
+            "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+            "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
+            "dependencies": {
+                "balanced-match": "^1.0.0",
+                "concat-map": "0.0.1"
+            }
+        },
+        "node_modules/builtin-modules": {
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz",
+            "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
+            "dev": true,
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/caseless": {
+            "version": "0.12.0",
+            "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+            "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
+        },
+        "node_modules/chalk": {
+            "version": "2.4.2",
+            "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+            "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+            "dependencies": {
+                "ansi-styles": "^3.2.1",
+                "escape-string-regexp": "^1.0.5",
+                "supports-color": "^5.3.0"
+            },
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/cheerio": {
+            "version": "0.20.0",
+            "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.20.0.tgz",
+            "integrity": "sha1-XHEPK6uVZTJyhCugHG6mGzVF7DU=",
+            "dependencies": {
+                "css-select": "~1.2.0",
+                "dom-serializer": "~0.1.0",
+                "entities": "~1.1.1",
+                "htmlparser2": "~3.8.1",
+                "lodash": "^4.1.0"
+            },
+            "engines": {
+                "node": ">= 0.6"
+            },
+            "optionalDependencies": {
+                "jsdom": "^7.0.2"
+            }
+        },
+        "node_modules/cli-cursor": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
+            "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
+            "dependencies": {
+                "restore-cursor": "^2.0.0"
+            },
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/cli-spinners": {
+            "version": "1.3.1",
+            "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-1.3.1.tgz",
+            "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg==",
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/cliui": {
+            "version": "7.0.4",
+            "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+            "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
+            "dependencies": {
+                "string-width": "^4.2.0",
+                "strip-ansi": "^6.0.0",
+                "wrap-ansi": "^7.0.0"
+            }
+        },
+        "node_modules/clone": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
+            "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
+            "engines": {
+                "node": ">=0.8"
+            }
+        },
+        "node_modules/color-convert": {
+            "version": "1.9.3",
+            "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+            "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+            "dependencies": {
+                "color-name": "1.1.3"
+            }
+        },
+        "node_modules/color-name": {
+            "version": "1.1.3",
+            "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+            "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
+        },
+        "node_modules/colors": {
+            "version": "1.4.0",
+            "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
+            "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
+            "engines": {
+                "node": ">=0.1.90"
+            }
+        },
+        "node_modules/combined-stream": {
+            "version": "1.0.8",
+            "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+            "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+            "dependencies": {
+                "delayed-stream": "~1.0.0"
+            },
+            "engines": {
+                "node": ">= 0.8"
+            }
+        },
+        "node_modules/commander": {
+            "version": "2.20.3",
+            "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+            "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+            "dev": true
+        },
+        "node_modules/concat-map": {
+            "version": "0.0.1",
+            "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+            "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
+        },
+        "node_modules/core-util-is": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+            "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
+        },
+        "node_modules/css-select": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/css-select/-/css-select-1.2.0.tgz",
+            "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=",
+            "dependencies": {
+                "boolbase": "~1.0.0",
+                "css-what": "2.1",
+                "domutils": "1.5.1",
+                "nth-check": "~1.0.1"
+            }
+        },
+        "node_modules/css-what": {
+            "version": "2.1.3",
+            "resolved": "https://registry.npmjs.org/css-what/-/css-what-2.1.3.tgz",
+            "integrity": "sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==",
+            "engines": {
+                "node": "*"
+            }
+        },
+        "node_modules/cssom": {
+            "version": "0.3.8",
+            "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz",
+            "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==",
+            "optional": true
+        },
+        "node_modules/cssstyle": {
+            "version": "0.2.37",
+            "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz",
+            "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=",
+            "optional": true,
+            "dependencies": {
+                "cssom": "0.3.x"
+            }
+        },
+        "node_modules/cycle": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz",
+            "integrity": "sha1-IegLK+hYD5i0aPN5QwZisEbDStI=",
+            "engines": {
+                "node": ">=0.4.0"
+            }
+        },
+        "node_modules/dashdash": {
+            "version": "1.14.1",
+            "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+            "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
+            "dependencies": {
+                "assert-plus": "^1.0.0"
+            },
+            "engines": {
+                "node": ">=0.10"
+            }
+        },
+        "node_modules/decamelize": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+            "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/deep-equal": {
+            "version": "0.2.2",
+            "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-0.2.2.tgz",
+            "integrity": "sha1-hLdFiW80xoTpjyzg5Cq69Du6AX0="
+        },
+        "node_modules/deep-is": {
+            "version": "0.1.3",
+            "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
+            "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=",
+            "optional": true
+        },
+        "node_modules/defaults": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
+            "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
+            "dependencies": {
+                "clone": "^1.0.2"
+            }
+        },
+        "node_modules/delayed-stream": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+            "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
+            "engines": {
+                "node": ">=0.4.0"
+            }
+        },
+        "node_modules/diff": {
+            "version": "4.0.2",
+            "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
+            "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+            "dev": true,
+            "engines": {
+                "node": ">=0.3.1"
+            }
+        },
+        "node_modules/dom-serializer": {
+            "version": "0.1.1",
+            "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.1.1.tgz",
+            "integrity": "sha512-l0IU0pPzLWSHBcieZbpOKgkIn3ts3vAh7ZuFyXNwJxJXk/c4Gwj9xaTJwIDVQCXawWD0qb3IzMGH5rglQaO0XA==",
+            "dependencies": {
+                "domelementtype": "^1.3.0",
+                "entities": "^1.1.1"
+            }
+        },
+        "node_modules/domelementtype": {
+            "version": "1.3.1",
+            "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz",
+            "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w=="
+        },
+        "node_modules/domhandler": {
+            "version": "2.3.0",
+            "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.3.0.tgz",
+            "integrity": "sha1-LeWaCCLVAn+r/28DLCsloqir5zg=",
+            "dependencies": {
+                "domelementtype": "1"
+            }
+        },
+        "node_modules/domutils": {
+            "version": "1.5.1",
+            "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.5.1.tgz",
+            "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=",
+            "dependencies": {
+                "dom-serializer": "0",
+                "domelementtype": "1"
+            }
+        },
+        "node_modules/ecc-jsbn": {
+            "version": "0.1.2",
+            "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+            "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
+            "dependencies": {
+                "jsbn": "~0.1.0",
+                "safer-buffer": "^2.1.0"
+            }
+        },
+        "node_modules/emoji-regex": {
+            "version": "8.0.0",
+            "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+            "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+        },
+        "node_modules/entities": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
+            "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
+        },
+        "node_modules/escalade": {
+            "version": "3.1.1",
+            "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+            "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
+            "engines": {
+                "node": ">=6"
+            }
+        },
+        "node_modules/escape-string-regexp": {
+            "version": "1.0.5",
+            "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+            "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+            "engines": {
+                "node": ">=0.8.0"
+            }
+        },
+        "node_modules/escodegen": {
+            "version": "1.14.3",
+            "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
+            "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
+            "optional": true,
+            "dependencies": {
+                "esprima": "^4.0.1",
+                "estraverse": "^4.2.0",
+                "esutils": "^2.0.2",
+                "optionator": "^0.8.1"
+            },
+            "bin": {
+                "escodegen": "bin/escodegen.js",
+                "esgenerate": "bin/esgenerate.js"
+            },
+            "engines": {
+                "node": ">=4.0"
+            },
+            "optionalDependencies": {
+                "source-map": "~0.6.1"
+            }
+        },
+        "node_modules/esprima": {
+            "version": "4.0.1",
+            "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+            "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+            "devOptional": true,
+            "bin": {
+                "esparse": "bin/esparse.js",
+                "esvalidate": "bin/esvalidate.js"
+            },
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/estraverse": {
+            "version": "4.3.0",
+            "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+            "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
+            "optional": true,
+            "engines": {
+                "node": ">=4.0"
+            }
+        },
+        "node_modules/esutils": {
+            "version": "2.0.3",
+            "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+            "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+            "optional": true,
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/extend": {
+            "version": "3.0.2",
+            "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+            "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
+        },
+        "node_modules/extsprintf": {
+            "version": "1.3.0",
+            "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+            "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=",
+            "engines": [
+                "node >=0.6.0"
+            ]
+        },
+        "node_modules/eyes": {
+            "version": "0.1.8",
+            "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
+            "integrity": "sha1-Ys8SAjTGg3hdkCNIqADvPgzCC8A=",
+            "engines": {
+                "node": "> 0.1.90"
+            }
+        },
+        "node_modules/fast-deep-equal": {
+            "version": "3.1.3",
+            "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+            "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
+        },
+        "node_modules/fast-json-stable-stringify": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+            "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
+        },
+        "node_modules/fast-levenshtein": {
+            "version": "2.0.6",
+            "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+            "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
+            "optional": true
+        },
+        "node_modules/find-up": {
+            "version": "4.1.0",
+            "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+            "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+            "dependencies": {
+                "locate-path": "^5.0.0",
+                "path-exists": "^4.0.0"
+            },
+            "engines": {
+                "node": ">=8"
+            }
+        },
+        "node_modules/forever-agent": {
+            "version": "0.6.1",
+            "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+            "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=",
+            "engines": {
+                "node": "*"
+            }
+        },
+        "node_modules/form-data": {
+            "version": "2.3.3",
+            "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+            "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
+            "dependencies": {
+                "asynckit": "^0.4.0",
+                "combined-stream": "^1.0.6",
+                "mime-types": "^2.1.12"
+            },
+            "engines": {
+                "node": ">= 0.12"
+            }
+        },
+        "node_modules/fs-extra": {
+            "version": "10.0.0",
+            "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz",
+            "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==",
+            "dependencies": {
+                "graceful-fs": "^4.2.0",
+                "jsonfile": "^6.0.1",
+                "universalify": "^2.0.0"
+            },
+            "engines": {
+                "node": ">=12"
+            }
+        },
+        "node_modules/fs.realpath": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+            "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
+        },
+        "node_modules/function-bind": {
+            "version": "1.1.1",
+            "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+            "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
+            "dev": true
+        },
+        "node_modules/get-caller-file": {
+            "version": "2.0.5",
+            "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+            "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+            "engines": {
+                "node": "6.* || 8.* || >= 10.*"
+            }
+        },
+        "node_modules/getpass": {
+            "version": "0.1.7",
+            "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+            "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
+            "dependencies": {
+                "assert-plus": "^1.0.0"
+            }
+        },
+        "node_modules/glob": {
+            "version": "7.1.7",
+            "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
+            "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
+            "dependencies": {
+                "fs.realpath": "^1.0.0",
+                "inflight": "^1.0.4",
+                "inherits": "2",
+                "minimatch": "^3.0.4",
+                "once": "^1.3.0",
+                "path-is-absolute": "^1.0.0"
+            },
+            "engines": {
+                "node": "*"
+            },
+            "funding": {
+                "url": "https://github.com/sponsors/isaacs"
+            }
+        },
+        "node_modules/graceful-fs": {
+            "version": "4.2.6",
+            "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz",
+            "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ=="
+        },
+        "node_modules/har-schema": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+            "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=",
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/har-validator": {
+            "version": "5.1.5",
+            "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
+            "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
+            "deprecated": "this library is no longer supported",
+            "dependencies": {
+                "ajv": "^6.12.3",
+                "har-schema": "^2.0.0"
+            },
+            "engines": {
+                "node": ">=6"
+            }
+        },
+        "node_modules/has": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+            "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
+            "dev": true,
+            "dependencies": {
+                "function-bind": "^1.1.1"
+            },
+            "engines": {
+                "node": ">= 0.4.0"
+            }
+        },
+        "node_modules/has-flag": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+            "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/he": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+            "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
+            "bin": {
+                "he": "bin/he"
+            }
+        },
+        "node_modules/highlight.js": {
+            "version": "10.7.2",
+            "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.7.2.tgz",
+            "integrity": "sha512-oFLl873u4usRM9K63j4ME9u3etNF0PLiJhSQ8rdfuL51Wn3zkD6drf9ZW0dOzjnZI22YYG24z30JcmfCZjMgYg==",
+            "engines": {
+                "node": "*"
+            }
+        },
+        "node_modules/htmlparser2": {
+            "version": "3.8.3",
+            "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.8.3.tgz",
+            "integrity": "sha1-mWwosZFRaovoZQGn15dX5ccMEGg=",
+            "dependencies": {
+                "domelementtype": "1",
+                "domhandler": "2.3",
+                "domutils": "1.5",
+                "entities": "1.0",
+                "readable-stream": "1.1"
+            }
+        },
+        "node_modules/htmlparser2/node_modules/entities": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/entities/-/entities-1.0.0.tgz",
+            "integrity": "sha1-sph6o4ITR/zeZCsk/fyeT7cSvyY="
+        },
+        "node_modules/http-signature": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+            "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
+            "dependencies": {
+                "assert-plus": "^1.0.0",
+                "jsprim": "^1.2.2",
+                "sshpk": "^1.7.0"
+            },
+            "engines": {
+                "node": ">=0.8",
+                "npm": ">=1.3.7"
+            }
+        },
+        "node_modules/i": {
+            "version": "0.3.6",
+            "resolved": "https://registry.npmjs.org/i/-/i-0.3.6.tgz",
+            "integrity": "sha1-2WyScyB28HJxG2sQ/X1PZa2O4j0=",
+            "engines": {
+                "node": ">=0.4"
+            }
+        },
+        "node_modules/inflight": {
+            "version": "1.0.6",
+            "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+            "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
+            "dependencies": {
+                "once": "^1.3.0",
+                "wrappy": "1"
+            }
+        },
+        "node_modules/inherits": {
+            "version": "2.0.4",
+            "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+            "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
+        },
+        "node_modules/ini": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
+            "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==",
+            "engines": {
+                "node": ">=10"
+            }
+        },
+        "node_modules/is-core-module": {
+            "version": "2.4.0",
+            "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz",
+            "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==",
+            "dev": true,
+            "dependencies": {
+                "has": "^1.0.3"
+            },
+            "funding": {
+                "url": "https://github.com/sponsors/ljharb"
+            }
+        },
+        "node_modules/is-fullwidth-code-point": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+            "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+            "engines": {
+                "node": ">=8"
+            }
+        },
+        "node_modules/is-typedarray": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+            "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
+        },
+        "node_modules/isarray": {
+            "version": "0.0.1",
+            "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
+            "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
+        },
+        "node_modules/isstream": {
+            "version": "0.1.2",
+            "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+            "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
+        },
+        "node_modules/js-tokens": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+            "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+            "dev": true
+        },
+        "node_modules/js-yaml": {
+            "version": "3.14.1",
+            "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+            "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+            "dev": true,
+            "dependencies": {
+                "argparse": "^1.0.7",
+                "esprima": "^4.0.0"
+            },
+            "bin": {
+                "js-yaml": "bin/js-yaml.js"
+            }
+        },
+        "node_modules/jsbn": {
+            "version": "0.1.1",
+            "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+            "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
+        },
+        "node_modules/jsdom": {
+            "version": "7.2.2",
+            "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-7.2.2.tgz",
+            "integrity": "sha1-QLQCdwwr2iNGkJa+6Rq2deOx/G4=",
+            "optional": true,
+            "dependencies": {
+                "abab": "^1.0.0",
+                "acorn": "^2.4.0",
+                "acorn-globals": "^1.0.4",
+                "cssom": ">= 0.3.0 < 0.4.0",
+                "cssstyle": ">= 0.2.29 < 0.3.0",
+                "escodegen": "^1.6.1",
+                "nwmatcher": ">= 1.3.7 < 2.0.0",
+                "parse5": "^1.5.1",
+                "request": "^2.55.0",
+                "sax": "^1.1.4",
+                "symbol-tree": ">= 3.1.0 < 4.0.0",
+                "tough-cookie": "^2.2.0",
+                "webidl-conversions": "^2.0.0",
+                "whatwg-url-compat": "~0.6.5",
+                "xml-name-validator": ">= 2.0.1 < 3.0.0"
+            }
+        },
+        "node_modules/json-schema": {
+            "version": "0.2.3",
+            "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
+            "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
+        },
+        "node_modules/json-schema-traverse": {
+            "version": "0.4.1",
+            "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+            "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
+        },
+        "node_modules/json-stringify-safe": {
+            "version": "5.0.1",
+            "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+            "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
+        },
+        "node_modules/jsonfile": {
+            "version": "6.1.0",
+            "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
+            "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
+            "dependencies": {
+                "universalify": "^2.0.0"
+            },
+            "optionalDependencies": {
+                "graceful-fs": "^4.1.6"
+            }
+        },
+        "node_modules/jsprim": {
+            "version": "1.4.1",
+            "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
+            "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
+            "engines": [
+                "node >=0.6.0"
+            ],
+            "dependencies": {
+                "assert-plus": "1.0.0",
+                "extsprintf": "1.3.0",
+                "json-schema": "0.2.3",
+                "verror": "1.10.0"
+            }
+        },
+        "node_modules/levn": {
+            "version": "0.3.0",
+            "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+            "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=",
+            "optional": true,
+            "dependencies": {
+                "prelude-ls": "~1.1.2",
+                "type-check": "~0.3.2"
+            },
+            "engines": {
+                "node": ">= 0.8.0"
+            }
+        },
+        "node_modules/linkify-it": {
+            "version": "2.2.0",
+            "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz",
+            "integrity": "sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==",
+            "dependencies": {
+                "uc.micro": "^1.0.1"
+            }
+        },
+        "node_modules/locate-path": {
+            "version": "5.0.0",
+            "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+            "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+            "dependencies": {
+                "p-locate": "^4.1.0"
+            },
+            "engines": {
+                "node": ">=8"
+            }
+        },
+        "node_modules/lodash": {
+            "version": "4.17.21",
+            "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+            "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="
+        },
+        "node_modules/log-symbols": {
+            "version": "2.2.0",
+            "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
+            "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
+            "dependencies": {
+                "chalk": "^2.0.1"
+            },
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/markdown-it": {
+            "version": "8.4.2",
+            "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-8.4.2.tgz",
+            "integrity": "sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==",
+            "dependencies": {
+                "argparse": "^1.0.7",
+                "entities": "~1.1.1",
+                "linkify-it": "^2.0.0",
+                "mdurl": "^1.0.1",
+                "uc.micro": "^1.0.5"
+            },
+            "bin": {
+                "markdown-it": "bin/markdown-it.js"
+            }
+        },
+        "node_modules/mdurl": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
+            "integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4="
+        },
+        "node_modules/mime-db": {
+            "version": "1.47.0",
+            "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.47.0.tgz",
+            "integrity": "sha512-QBmA/G2y+IfeS4oktet3qRZ+P5kPhCKRXxXnQEudYqUaEioAU1/Lq2us3D/t1Jfo4hE9REQPrbB7K5sOczJVIw==",
+            "engines": {
+                "node": ">= 0.6"
+            }
+        },
+        "node_modules/mime-types": {
+            "version": "2.1.30",
+            "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.30.tgz",
+            "integrity": "sha512-crmjA4bLtR8m9qLpHvgxSChT+XoSlZi8J4n/aIdn3z92e/U47Z0V/yl+Wh9W046GgFVAmoNR/fmdbZYcSSIUeg==",
+            "dependencies": {
+                "mime-db": "1.47.0"
+            },
+            "engines": {
+                "node": ">= 0.6"
+            }
+        },
+        "node_modules/mimic-fn": {
+            "version": "1.2.0",
+            "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
+            "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/minimatch": {
+            "version": "3.0.4",
+            "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
+            "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+            "dependencies": {
+                "brace-expansion": "^1.1.7"
+            },
+            "engines": {
+                "node": "*"
+            }
+        },
+        "node_modules/minimist": {
+            "version": "1.2.5",
+            "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
+            "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
+        },
+        "node_modules/mkdirp": {
+            "version": "1.0.4",
+            "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+            "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+            "bin": {
+                "mkdirp": "bin/cmd.js"
+            },
+            "engines": {
+                "node": ">=10"
+            }
+        },
+        "node_modules/moment": {
+            "version": "2.29.1",
+            "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
+            "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==",
+            "engines": {
+                "node": "*"
+            }
+        },
+        "node_modules/mute-stream": {
+            "version": "0.0.8",
+            "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
+            "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="
+        },
+        "node_modules/nconf": {
+            "version": "0.11.4",
+            "resolved": "https://registry.npmjs.org/nconf/-/nconf-0.11.4.tgz",
+            "integrity": "sha512-YaDR846q11JnG1vTrhJ0QIlhiGY6+W1bgWtReG9SS3vkTl3AoNwFvUItdhG6/ZjGCfWpUVuRTNEBTDAQ3nWhGw==",
+            "dependencies": {
+                "async": "^1.4.0",
+                "ini": "^2.0.0",
+                "secure-keys": "^1.0.0",
+                "yargs": "^16.1.1"
+            },
+            "engines": {
+                "node": ">= 0.4.0"
+            }
+        },
+        "node_modules/nconf/node_modules/yargs": {
+            "version": "16.2.0",
+            "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+            "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
+            "dependencies": {
+                "cliui": "^7.0.2",
+                "escalade": "^3.1.1",
+                "get-caller-file": "^2.0.5",
+                "require-directory": "^2.1.1",
+                "string-width": "^4.2.0",
+                "y18n": "^5.0.5",
+                "yargs-parser": "^20.2.2"
+            },
+            "engines": {
+                "node": ">=10"
+            }
+        },
+        "node_modules/nconf/node_modules/yargs-parser": {
+            "version": "20.2.9",
+            "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+            "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==",
+            "engines": {
+                "node": ">=10"
+            }
+        },
+        "node_modules/ncp": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/ncp/-/ncp-1.0.1.tgz",
+            "integrity": "sha1-0VNn5cuHQyuhF9K/gP30Wuz7QkY=",
+            "bin": {
+                "ncp": "bin/ncp"
+            }
+        },
+        "node_modules/nth-check": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz",
+            "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==",
+            "dependencies": {
+                "boolbase": "~1.0.0"
+            }
+        },
+        "node_modules/nwmatcher": {
+            "version": "1.4.4",
+            "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz",
+            "integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==",
+            "optional": true
+        },
+        "node_modules/oauth-sign": {
+            "version": "0.9.0",
+            "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+            "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
+            "engines": {
+                "node": "*"
+            }
+        },
+        "node_modules/once": {
+            "version": "1.4.0",
+            "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+            "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
+            "dependencies": {
+                "wrappy": "1"
+            }
+        },
+        "node_modules/onetime": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
+            "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
+            "dependencies": {
+                "mimic-fn": "^1.0.0"
+            },
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/optionator": {
+            "version": "0.8.3",
+            "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+            "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
+            "optional": true,
+            "dependencies": {
+                "deep-is": "~0.1.3",
+                "fast-levenshtein": "~2.0.6",
+                "levn": "~0.3.0",
+                "prelude-ls": "~1.1.2",
+                "type-check": "~0.3.2",
+                "word-wrap": "~1.2.3"
+            },
+            "engines": {
+                "node": ">= 0.8.0"
+            }
+        },
+        "node_modules/ora": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/ora/-/ora-3.0.0.tgz",
+            "integrity": "sha512-LBS97LFe2RV6GJmXBi6OKcETKyklHNMV0xw7BtsVn2MlsgsydyZetSCbCANr+PFLmDyv4KV88nn0eCKza665Mg==",
+            "dependencies": {
+                "chalk": "^2.3.1",
+                "cli-cursor": "^2.1.0",
+                "cli-spinners": "^1.1.0",
+                "log-symbols": "^2.2.0",
+                "strip-ansi": "^4.0.0",
+                "wcwidth": "^1.0.1"
+            },
+            "engines": {
+                "node": ">=6"
+            }
+        },
+        "node_modules/ora/node_modules/ansi-regex": {
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
+            "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/ora/node_modules/strip-ansi": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+            "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+            "dependencies": {
+                "ansi-regex": "^3.0.0"
+            },
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/p-limit": {
+            "version": "2.3.0",
+            "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+            "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+            "dependencies": {
+                "p-try": "^2.0.0"
+            },
+            "engines": {
+                "node": ">=6"
+            },
+            "funding": {
+                "url": "https://github.com/sponsors/sindresorhus"
+            }
+        },
+        "node_modules/p-locate": {
+            "version": "4.1.0",
+            "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+            "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+            "dependencies": {
+                "p-limit": "^2.2.0"
+            },
+            "engines": {
+                "node": ">=8"
+            }
+        },
+        "node_modules/p-try": {
+            "version": "2.2.0",
+            "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+            "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+            "engines": {
+                "node": ">=6"
+            }
+        },
+        "node_modules/parse5": {
+            "version": "1.5.1",
+            "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz",
+            "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=",
+            "optional": true
+        },
+        "node_modules/path-exists": {
+            "version": "4.0.0",
+            "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+            "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+            "engines": {
+                "node": ">=8"
+            }
+        },
+        "node_modules/path-is-absolute": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+            "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/path-parse": {
+            "version": "1.0.7",
+            "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+            "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+            "dev": true
+        },
+        "node_modules/performance-now": {
+            "version": "2.1.0",
+            "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+            "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
+        },
+        "node_modules/pkginfo": {
+            "version": "0.4.1",
+            "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.4.1.tgz",
+            "integrity": "sha1-tUGO8EOd5UJfxJlQQtztFPsqhP8=",
+            "engines": {
+                "node": ">= 0.4.0"
+            }
+        },
+        "node_modules/prelude-ls": {
+            "version": "1.1.2",
+            "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+            "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
+            "optional": true,
+            "engines": {
+                "node": ">= 0.8.0"
+            }
+        },
+        "node_modules/prompt": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/prompt/-/prompt-1.0.0.tgz",
+            "integrity": "sha1-jlcSPDlquYiJf7Mn/Trtw+c15P4=",
+            "dependencies": {
+                "colors": "^1.1.2",
+                "pkginfo": "0.x.x",
+                "read": "1.0.x",
+                "revalidator": "0.1.x",
+                "utile": "0.3.x",
+                "winston": "2.1.x"
+            },
+            "engines": {
+                "node": ">= 0.6.6"
+            }
+        },
+        "node_modules/psl": {
+            "version": "1.8.0",
+            "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
+            "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
+        },
+        "node_modules/punycode": {
+            "version": "2.1.1",
+            "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+            "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
+            "engines": {
+                "node": ">=6"
+            }
+        },
+        "node_modules/qs": {
+            "version": "6.5.2",
+            "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
+            "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
+            "engines": {
+                "node": ">=0.6"
+            }
+        },
+        "node_modules/read": {
+            "version": "1.0.7",
+            "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
+            "integrity": "sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ=",
+            "dependencies": {
+                "mute-stream": "~0.0.4"
+            },
+            "engines": {
+                "node": ">=0.8"
+            }
+        },
+        "node_modules/readable-stream": {
+            "version": "1.1.14",
+            "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
+            "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=",
+            "dependencies": {
+                "core-util-is": "~1.0.0",
+                "inherits": "~2.0.1",
+                "isarray": "0.0.1",
+                "string_decoder": "~0.10.x"
+            }
+        },
+        "node_modules/request": {
+            "version": "2.88.0",
+            "resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
+            "integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
+            "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142",
+            "dependencies": {
+                "aws-sign2": "~0.7.0",
+                "aws4": "^1.8.0",
+                "caseless": "~0.12.0",
+                "combined-stream": "~1.0.6",
+                "extend": "~3.0.2",
+                "forever-agent": "~0.6.1",
+                "form-data": "~2.3.2",
+                "har-validator": "~5.1.0",
+                "http-signature": "~1.2.0",
+                "is-typedarray": "~1.0.0",
+                "isstream": "~0.1.2",
+                "json-stringify-safe": "~5.0.1",
+                "mime-types": "~2.1.19",
+                "oauth-sign": "~0.9.0",
+                "performance-now": "^2.1.0",
+                "qs": "~6.5.2",
+                "safe-buffer": "^5.1.2",
+                "tough-cookie": "~2.4.3",
+                "tunnel-agent": "^0.6.0",
+                "uuid": "^3.3.2"
+            },
+            "engines": {
+                "node": ">= 4"
+            }
+        },
+        "node_modules/request/node_modules/punycode": {
+            "version": "1.4.1",
+            "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
+            "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4="
+        },
+        "node_modules/request/node_modules/tough-cookie": {
+            "version": "2.4.3",
+            "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
+            "integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
+            "dependencies": {
+                "psl": "^1.1.24",
+                "punycode": "^1.4.1"
+            },
+            "engines": {
+                "node": ">=0.8"
+            }
+        },
+        "node_modules/require-directory": {
+            "version": "2.1.1",
+            "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+            "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/require-from-string": {
+            "version": "2.0.2",
+            "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+            "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/require-main-filename": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
+            "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
+        },
+        "node_modules/resolve": {
+            "version": "1.20.0",
+            "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
+            "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
+            "dev": true,
+            "dependencies": {
+                "is-core-module": "^2.2.0",
+                "path-parse": "^1.0.6"
+            },
+            "funding": {
+                "url": "https://github.com/sponsors/ljharb"
+            }
+        },
+        "node_modules/restore-cursor": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
+            "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
+            "dependencies": {
+                "onetime": "^2.0.0",
+                "signal-exit": "^3.0.2"
+            },
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/revalidator": {
+            "version": "0.1.8",
+            "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz",
+            "integrity": "sha1-/s5hv6DBtSoga9axgZgYS91SOjs=",
+            "engines": {
+                "node": ">= 0.4.0"
+            }
+        },
+        "node_modules/rimraf": {
+            "version": "2.7.1",
+            "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+            "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+            "dependencies": {
+                "glob": "^7.1.3"
+            },
+            "bin": {
+                "rimraf": "bin.js"
+            }
+        },
+        "node_modules/safe-buffer": {
+            "version": "5.2.1",
+            "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+            "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+            "funding": [
+                {
+                    "type": "github",
+                    "url": "https://github.com/sponsors/feross"
+                },
+                {
+                    "type": "patreon",
+                    "url": "https://www.patreon.com/feross"
+                },
+                {
+                    "type": "consulting",
+                    "url": "https://feross.org/support"
+                }
+            ]
+        },
+        "node_modules/safer-buffer": {
+            "version": "2.1.2",
+            "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+            "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
+        },
+        "node_modules/sax": {
+            "version": "1.2.4",
+            "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz",
+            "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==",
+            "optional": true
+        },
+        "node_modules/secure-keys": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/secure-keys/-/secure-keys-1.0.0.tgz",
+            "integrity": "sha1-8MgtmKOxOah3aogIBQuCRDEIf8o="
+        },
+        "node_modules/semver": {
+            "version": "5.7.1",
+            "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+            "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
+            "dev": true,
+            "bin": {
+                "semver": "bin/semver"
+            }
+        },
+        "node_modules/set-blocking": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+            "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
+        },
+        "node_modules/signal-exit": {
+            "version": "3.0.3",
+            "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
+            "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
+        },
+        "node_modules/source-map": {
+            "version": "0.6.1",
+            "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+            "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+            "optional": true,
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/sprintf-js": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+            "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw="
+        },
+        "node_modules/sshpk": {
+            "version": "1.16.1",
+            "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
+            "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
+            "dependencies": {
+                "asn1": "~0.2.3",
+                "assert-plus": "^1.0.0",
+                "bcrypt-pbkdf": "^1.0.0",
+                "dashdash": "^1.12.0",
+                "ecc-jsbn": "~0.1.1",
+                "getpass": "^0.1.1",
+                "jsbn": "~0.1.0",
+                "safer-buffer": "^2.0.2",
+                "tweetnacl": "~0.14.0"
+            },
+            "bin": {
+                "sshpk-conv": "bin/sshpk-conv",
+                "sshpk-sign": "bin/sshpk-sign",
+                "sshpk-verify": "bin/sshpk-verify"
+            },
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/stack-trace": {
+            "version": "0.0.10",
+            "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
+            "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=",
+            "engines": {
+                "node": "*"
+            }
+        },
+        "node_modules/string_decoder": {
+            "version": "0.10.31",
+            "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+            "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+        },
+        "node_modules/string-width": {
+            "version": "4.2.3",
+            "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+            "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+            "dependencies": {
+                "emoji-regex": "^8.0.0",
+                "is-fullwidth-code-point": "^3.0.0",
+                "strip-ansi": "^6.0.1"
+            },
+            "engines": {
+                "node": ">=8"
+            }
+        },
+        "node_modules/string.fromcodepoint": {
+            "version": "0.2.1",
+            "resolved": "https://registry.npmjs.org/string.fromcodepoint/-/string.fromcodepoint-0.2.1.tgz",
+            "integrity": "sha1-jZeDM8C8klOPUPOD5IiPPlYZ1lM="
+        },
+        "node_modules/strip-ansi": {
+            "version": "6.0.1",
+            "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+            "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+            "dependencies": {
+                "ansi-regex": "^5.0.1"
+            },
+            "engines": {
+                "node": ">=8"
+            }
+        },
+        "node_modules/supports-color": {
+            "version": "5.5.0",
+            "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+            "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+            "dependencies": {
+                "has-flag": "^3.0.0"
+            },
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/symbol-tree": {
+            "version": "3.2.4",
+            "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz",
+            "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==",
+            "optional": true
+        },
+        "node_modules/tough-cookie": {
+            "version": "2.5.0",
+            "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
+            "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
+            "optional": true,
+            "dependencies": {
+                "psl": "^1.1.28",
+                "punycode": "^2.1.1"
+            },
+            "engines": {
+                "node": ">=0.8"
+            }
+        },
+        "node_modules/tr46": {
+            "version": "0.0.3",
+            "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+            "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=",
+            "optional": true
+        },
+        "node_modules/tslib": {
+            "version": "1.14.1",
+            "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+            "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+            "dev": true
+        },
+        "node_modules/tslint": {
+            "version": "5.20.1",
+            "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz",
+            "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==",
+            "dev": true,
+            "dependencies": {
+                "@babel/code-frame": "^7.0.0",
+                "builtin-modules": "^1.1.1",
+                "chalk": "^2.3.0",
+                "commander": "^2.12.1",
+                "diff": "^4.0.1",
+                "glob": "^7.1.1",
+                "js-yaml": "^3.13.1",
+                "minimatch": "^3.0.4",
+                "mkdirp": "^0.5.1",
+                "resolve": "^1.3.2",
+                "semver": "^5.3.0",
+                "tslib": "^1.8.0",
+                "tsutils": "^2.29.0"
+            },
+            "bin": {
+                "tslint": "bin/tslint"
+            },
+            "engines": {
+                "node": ">=4.8.0"
+            },
+            "peerDependencies": {
+                "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev"
+            }
+        },
+        "node_modules/tslint/node_modules/mkdirp": {
+            "version": "0.5.5",
+            "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+            "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+            "dev": true,
+            "dependencies": {
+                "minimist": "^1.2.5"
+            },
+            "bin": {
+                "mkdirp": "bin/cmd.js"
+            }
+        },
+        "node_modules/tsutils": {
+            "version": "2.29.0",
+            "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
+            "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
+            "dev": true,
+            "dependencies": {
+                "tslib": "^1.8.1"
+            },
+            "peerDependencies": {
+                "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev"
+            }
+        },
+        "node_modules/tunnel-agent": {
+            "version": "0.6.0",
+            "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+            "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
+            "dependencies": {
+                "safe-buffer": "^5.0.1"
+            },
+            "engines": {
+                "node": "*"
+            }
+        },
+        "node_modules/tweetnacl": {
+            "version": "0.14.5",
+            "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+            "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
+        },
+        "node_modules/type-check": {
+            "version": "0.3.2",
+            "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+            "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=",
+            "optional": true,
+            "dependencies": {
+                "prelude-ls": "~1.1.2"
+            },
+            "engines": {
+                "node": ">= 0.8.0"
+            }
+        },
+        "node_modules/typescript": {
+            "version": "4.3.2",
+            "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.3.2.tgz",
+            "integrity": "sha512-zZ4hShnmnoVnAHpVHWpTcxdv7dWP60S2FsydQLV8V5PbS3FifjWFFRiHSWpDJahly88PRyV5teTSLoq4eG7mKw==",
+            "dev": true,
+            "bin": {
+                "tsc": "bin/tsc",
+                "tsserver": "bin/tsserver"
+            },
+            "engines": {
+                "node": ">=4.2.0"
+            }
+        },
+        "node_modules/uc.micro": {
+            "version": "1.0.6",
+            "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz",
+            "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA=="
+        },
+        "node_modules/underscore": {
+            "version": "1.9.1",
+            "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz",
+            "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg=="
+        },
+        "node_modules/unescape-js": {
+            "version": "1.1.4",
+            "resolved": "https://registry.npmjs.org/unescape-js/-/unescape-js-1.1.4.tgz",
+            "integrity": "sha512-42SD8NOQEhdYntEiUQdYq/1V/YHwr1HLwlHuTJB5InVVdOSbgI6xu8jK5q65yIzuFCfczzyDF/7hbGzVbyCw0g==",
+            "dependencies": {
+                "string.fromcodepoint": "^0.2.1"
+            }
+        },
+        "node_modules/universalify": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
+            "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
+            "engines": {
+                "node": ">= 10.0.0"
+            }
+        },
+        "node_modules/uri-js": {
+            "version": "4.4.1",
+            "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+            "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+            "dependencies": {
+                "punycode": "^2.1.0"
+            }
+        },
+        "node_modules/utile": {
+            "version": "0.3.0",
+            "resolved": "https://registry.npmjs.org/utile/-/utile-0.3.0.tgz",
+            "integrity": "sha1-E1LDQOuCDk2N26A5pPv6oy7U7zo=",
+            "dependencies": {
+                "async": "~0.9.0",
+                "deep-equal": "~0.2.1",
+                "i": "0.3.x",
+                "mkdirp": "0.x.x",
+                "ncp": "1.0.x",
+                "rimraf": "2.x.x"
+            },
+            "engines": {
+                "node": ">= 0.8.0"
+            }
+        },
+        "node_modules/utile/node_modules/async": {
+            "version": "0.9.2",
+            "resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
+            "integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0="
+        },
+        "node_modules/utile/node_modules/mkdirp": {
+            "version": "0.5.5",
+            "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
+            "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
+            "dependencies": {
+                "minimist": "^1.2.5"
+            },
+            "bin": {
+                "mkdirp": "bin/cmd.js"
+            }
+        },
+        "node_modules/uuid": {
+            "version": "3.4.0",
+            "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+            "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
+            "deprecated": "Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.",
+            "bin": {
+                "uuid": "bin/uuid"
+            }
+        },
+        "node_modules/verror": {
+            "version": "1.10.0",
+            "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+            "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
+            "engines": [
+                "node >=0.6.0"
+            ],
+            "dependencies": {
+                "assert-plus": "^1.0.0",
+                "core-util-is": "1.0.2",
+                "extsprintf": "^1.2.0"
+            }
+        },
+        "node_modules/vsc-leetcode-cli": {
+            "version": "2.8.1",
+            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.8.1.tgz",
+            "integrity": "sha512-C5q5wGeedHKJzs53/jrVWEeobRteB/libKrVHmLqE3zraKJBgteUN4LUNEYrAjU9O6yxgj/NPEWOLoEdRhwATw==",
+            "dependencies": {
+                "ansi-styles": "3.2.1",
+                "cheerio": "0.20.0",
+                "he": "1.2.0",
+                "mkdirp": "^1.0.4",
+                "moment": "^2.29.1",
+                "nconf": "^0.11.2",
+                "ora": "3.0.0",
+                "prompt": "1.0.0",
+                "request": "2.88.0",
+                "supports-color": "5.5.0",
+                "underscore": "1.9.1",
+                "wordwrap": "1.0.0",
+                "yargs": "^15.4.1"
+            },
+            "bin": {
+                "leetcode": "bin/leetcode"
+            },
+            "engines": {
+                "node": ">=4"
+            }
+        },
+        "node_modules/wcwidth": {
+            "version": "1.0.1",
+            "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
+            "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=",
+            "dependencies": {
+                "defaults": "^1.0.3"
+            }
+        },
+        "node_modules/webidl-conversions": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-2.0.1.tgz",
+            "integrity": "sha1-O/glj30xjHRDw28uFpQCoaZwNQY=",
+            "optional": true
+        },
+        "node_modules/whatwg-url-compat": {
+            "version": "0.6.5",
+            "resolved": "https://registry.npmjs.org/whatwg-url-compat/-/whatwg-url-compat-0.6.5.tgz",
+            "integrity": "sha1-AImBEa9om7CXVBzVpFymyHmERb8=",
+            "optional": true,
+            "dependencies": {
+                "tr46": "~0.0.1"
+            }
+        },
+        "node_modules/which-module": {
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+            "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
+        },
+        "node_modules/winston": {
+            "version": "2.1.1",
+            "resolved": "https://registry.npmjs.org/winston/-/winston-2.1.1.tgz",
+            "integrity": "sha1-PJNJ0ZYgf9G9/51LxD73JRDjoS4=",
+            "dependencies": {
+                "async": "~1.0.0",
+                "colors": "1.0.x",
+                "cycle": "1.0.x",
+                "eyes": "0.1.x",
+                "isstream": "0.1.x",
+                "pkginfo": "0.3.x",
+                "stack-trace": "0.0.x"
+            },
+            "engines": {
+                "node": ">= 0.8.0"
+            }
+        },
+        "node_modules/winston/node_modules/async": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/async/-/async-1.0.0.tgz",
+            "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k="
+        },
+        "node_modules/winston/node_modules/colors": {
+            "version": "1.0.3",
+            "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
+            "integrity": "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=",
+            "engines": {
+                "node": ">=0.1.90"
+            }
+        },
+        "node_modules/winston/node_modules/pkginfo": {
+            "version": "0.3.1",
+            "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz",
+            "integrity": "sha1-Wyn2qB9wcXFC4J52W76rl7T4HiE=",
+            "engines": {
+                "node": ">= 0.4.0"
+            }
+        },
+        "node_modules/word-wrap": {
+            "version": "1.2.3",
+            "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+            "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
+            "optional": true,
+            "engines": {
+                "node": ">=0.10.0"
+            }
+        },
+        "node_modules/wordwrap": {
+            "version": "1.0.0",
+            "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+            "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="
+        },
+        "node_modules/wrap-ansi": {
+            "version": "7.0.0",
+            "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+            "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+            "dependencies": {
+                "ansi-styles": "^4.0.0",
+                "string-width": "^4.1.0",
+                "strip-ansi": "^6.0.0"
+            },
+            "engines": {
+                "node": ">=10"
+            },
+            "funding": {
+                "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+            }
+        },
+        "node_modules/wrap-ansi/node_modules/ansi-styles": {
+            "version": "4.3.0",
+            "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+            "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+            "dependencies": {
+                "color-convert": "^2.0.1"
+            },
+            "engines": {
+                "node": ">=8"
+            },
+            "funding": {
+                "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+            }
+        },
+        "node_modules/wrap-ansi/node_modules/color-convert": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+            "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+            "dependencies": {
+                "color-name": "~1.1.4"
+            },
+            "engines": {
+                "node": ">=7.0.0"
+            }
+        },
+        "node_modules/wrap-ansi/node_modules/color-name": {
+            "version": "1.1.4",
+            "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+            "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+        },
+        "node_modules/wrappy": {
+            "version": "1.0.2",
+            "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+            "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
+        },
+        "node_modules/xml-name-validator": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz",
+            "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=",
+            "optional": true
+        },
+        "node_modules/y18n": {
+            "version": "5.0.8",
+            "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+            "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+            "engines": {
+                "node": ">=10"
+            }
+        },
+        "node_modules/yargs": {
+            "version": "15.4.1",
+            "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz",
+            "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==",
+            "dependencies": {
+                "cliui": "^6.0.0",
+                "decamelize": "^1.2.0",
+                "find-up": "^4.1.0",
+                "get-caller-file": "^2.0.1",
+                "require-directory": "^2.1.1",
+                "require-main-filename": "^2.0.0",
+                "set-blocking": "^2.0.0",
+                "string-width": "^4.2.0",
+                "which-module": "^2.0.0",
+                "y18n": "^4.0.0",
+                "yargs-parser": "^18.1.2"
+            },
+            "engines": {
+                "node": ">=8"
+            }
+        },
+        "node_modules/yargs-parser": {
+            "version": "18.1.3",
+            "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz",
+            "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==",
+            "dependencies": {
+                "camelcase": "^5.0.0",
+                "decamelize": "^1.2.0"
+            },
+            "engines": {
+                "node": ">=6"
+            }
+        },
+        "node_modules/yargs-parser/node_modules/camelcase": {
+            "version": "5.3.1",
+            "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+            "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+            "engines": {
+                "node": ">=6"
+            }
+        },
+        "node_modules/yargs/node_modules/ansi-styles": {
+            "version": "4.3.0",
+            "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+            "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+            "dependencies": {
+                "color-convert": "^2.0.1"
+            },
+            "engines": {
+                "node": ">=8"
+            },
+            "funding": {
+                "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+            }
+        },
+        "node_modules/yargs/node_modules/cliui": {
+            "version": "6.0.0",
+            "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
+            "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==",
+            "dependencies": {
+                "string-width": "^4.2.0",
+                "strip-ansi": "^6.0.0",
+                "wrap-ansi": "^6.2.0"
+            }
+        },
+        "node_modules/yargs/node_modules/color-convert": {
+            "version": "2.0.1",
+            "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+            "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+            "dependencies": {
+                "color-name": "~1.1.4"
+            },
+            "engines": {
+                "node": ">=7.0.0"
+            }
+        },
+        "node_modules/yargs/node_modules/color-name": {
+            "version": "1.1.4",
+            "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+            "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+        },
+        "node_modules/yargs/node_modules/wrap-ansi": {
+            "version": "6.2.0",
+            "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+            "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
+            "dependencies": {
+                "ansi-styles": "^4.0.0",
+                "string-width": "^4.1.0",
+                "strip-ansi": "^6.0.0"
+            },
+            "engines": {
+                "node": ">=8"
+            }
+        },
+        "node_modules/yargs/node_modules/y18n": {
+            "version": "4.0.3",
+            "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
+            "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
+        }
+    },
     "dependencies": {
         "@babel/code-frame": {
             "version": "7.12.13",
@@ -117,9 +2241,9 @@
             }
         },
         "ansi-regex": {
-            "version": "2.1.1",
-            "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
-            "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
+            "version": "5.0.1",
+            "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+            "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
         },
         "ansi-styles": {
             "version": "3.2.1",
@@ -203,11 +2327,6 @@
             "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=",
             "dev": true
         },
-        "camelcase": {
-            "version": "2.1.1",
-            "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
-            "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8="
-        },
         "caseless": {
             "version": "0.12.0",
             "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
@@ -250,13 +2369,13 @@
             "integrity": "sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg=="
         },
         "cliui": {
-            "version": "3.2.0",
-            "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
-            "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
+            "version": "7.0.4",
+            "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz",
+            "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==",
             "requires": {
-                "string-width": "^1.0.1",
-                "strip-ansi": "^3.0.1",
-                "wrap-ansi": "^2.0.0"
+                "string-width": "^4.2.0",
+                "strip-ansi": "^6.0.0",
+                "wrap-ansi": "^7.0.0"
             }
         },
         "clone": {
@@ -264,11 +2383,6 @@
             "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
             "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4="
         },
-        "code-point-at": {
-            "version": "1.1.0",
-            "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
-            "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
-        },
         "color-convert": {
             "version": "1.9.3",
             "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
@@ -440,6 +2554,11 @@
             "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz",
             "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="
         },
+        "escalade": {
+            "version": "3.1.1",
+            "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+            "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
+        },
         "escape-string-regexp": {
             "version": "1.0.5",
             "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
@@ -461,7 +2580,8 @@
         "esprima": {
             "version": "4.0.1",
             "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
-            "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="
+            "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+            "devOptional": true
         },
         "estraverse": {
             "version": "4.3.0",
@@ -669,14 +2789,9 @@
             "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
         },
         "ini": {
-            "version": "1.3.8",
-            "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
-            "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
-        },
-        "invert-kv": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
-            "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
+            "version": "2.0.0",
+            "resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
+            "integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA=="
         },
         "is-core-module": {
             "version": "2.4.0",
@@ -688,12 +2803,9 @@
             }
         },
         "is-fullwidth-code-point": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
-            "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
-            "requires": {
-                "number-is-nan": "^1.0.0"
-            }
+            "version": "3.0.0",
+            "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+            "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
         },
         "is-typedarray": {
             "version": "1.0.0",
@@ -789,14 +2901,6 @@
                 "verror": "1.10.0"
             }
         },
-        "lcid": {
-            "version": "1.0.0",
-            "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
-            "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
-            "requires": {
-                "invert-kv": "^1.0.0"
-            }
-        },
         "levn": {
             "version": "0.3.0",
             "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
@@ -900,29 +3004,34 @@
             "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="
         },
         "nconf": {
-            "version": "0.10.0",
-            "resolved": "https://registry.npmjs.org/nconf/-/nconf-0.10.0.tgz",
-            "integrity": "sha512-fKiXMQrpP7CYWJQzKkPPx9hPgmq+YLDyxcG9N8RpiE9FoCkCbzD0NyW0YhE3xn3Aupe7nnDeIx4PFzYehpHT9Q==",
+            "version": "0.11.4",
+            "resolved": "https://registry.npmjs.org/nconf/-/nconf-0.11.4.tgz",
+            "integrity": "sha512-YaDR846q11JnG1vTrhJ0QIlhiGY6+W1bgWtReG9SS3vkTl3AoNwFvUItdhG6/ZjGCfWpUVuRTNEBTDAQ3nWhGw==",
             "requires": {
                 "async": "^1.4.0",
-                "ini": "^1.3.0",
+                "ini": "^2.0.0",
                 "secure-keys": "^1.0.0",
-                "yargs": "^3.19.0"
+                "yargs": "^16.1.1"
             },
             "dependencies": {
                 "yargs": {
-                    "version": "3.32.0",
-                    "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz",
-                    "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=",
+                    "version": "16.2.0",
+                    "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+                    "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
                     "requires": {
-                        "camelcase": "^2.0.1",
-                        "cliui": "^3.0.3",
-                        "decamelize": "^1.1.1",
-                        "os-locale": "^1.4.0",
-                        "string-width": "^1.0.1",
-                        "window-size": "^0.1.4",
-                        "y18n": "^3.2.0"
+                        "cliui": "^7.0.2",
+                        "escalade": "^3.1.1",
+                        "get-caller-file": "^2.0.5",
+                        "require-directory": "^2.1.1",
+                        "string-width": "^4.2.0",
+                        "y18n": "^5.0.5",
+                        "yargs-parser": "^20.2.2"
                     }
+                },
+                "yargs-parser": {
+                    "version": "20.2.9",
+                    "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz",
+                    "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w=="
                 }
             }
         },
@@ -939,11 +3048,6 @@
                 "boolbase": "~1.0.0"
             }
         },
-        "number-is-nan": {
-            "version": "1.0.1",
-            "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
-            "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
-        },
         "nwmatcher": {
             "version": "1.4.4",
             "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz",
@@ -1013,14 +3117,6 @@
                 }
             }
         },
-        "os-locale": {
-            "version": "1.4.0",
-            "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
-            "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
-            "requires": {
-                "lcid": "^1.0.0"
-            }
-        },
         "p-limit": {
             "version": "2.3.0",
             "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
@@ -1286,14 +3382,19 @@
             "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
             "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA="
         },
+        "string_decoder": {
+            "version": "0.10.31",
+            "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
+            "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
+        },
         "string-width": {
-            "version": "1.0.2",
-            "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
-            "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
+            "version": "4.2.3",
+            "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+            "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
             "requires": {
-                "code-point-at": "^1.0.0",
-                "is-fullwidth-code-point": "^1.0.0",
-                "strip-ansi": "^3.0.0"
+                "emoji-regex": "^8.0.0",
+                "is-fullwidth-code-point": "^3.0.0",
+                "strip-ansi": "^6.0.1"
             }
         },
         "string.fromcodepoint": {
@@ -1301,17 +3402,12 @@
             "resolved": "https://registry.npmjs.org/string.fromcodepoint/-/string.fromcodepoint-0.2.1.tgz",
             "integrity": "sha1-jZeDM8C8klOPUPOD5IiPPlYZ1lM="
         },
-        "string_decoder": {
-            "version": "0.10.31",
-            "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
-            "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
-        },
         "strip-ansi": {
-            "version": "3.0.1",
-            "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
-            "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
+            "version": "6.0.1",
+            "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+            "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
             "requires": {
-                "ansi-regex": "^2.0.0"
+                "ansi-regex": "^5.0.1"
             }
         },
         "supports-color": {
@@ -1494,23 +3590,23 @@
             }
         },
         "vsc-leetcode-cli": {
-            "version": "2.8.0",
-            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.8.0.tgz",
-            "integrity": "sha512-KcFzpk3OZ+wUCoeK1yjBK0hYpJItYd8WFC7pQfE1zxJGjQs4tUvadLI5imKfRjw5NicjNRFnVpVv6N7ig7ik4A==",
+            "version": "2.8.1",
+            "resolved": "https://registry.npmjs.org/vsc-leetcode-cli/-/vsc-leetcode-cli-2.8.1.tgz",
+            "integrity": "sha512-C5q5wGeedHKJzs53/jrVWEeobRteB/libKrVHmLqE3zraKJBgteUN4LUNEYrAjU9O6yxgj/NPEWOLoEdRhwATw==",
             "requires": {
                 "ansi-styles": "3.2.1",
                 "cheerio": "0.20.0",
                 "he": "1.2.0",
                 "mkdirp": "^1.0.4",
-                "moment": "^2.20.1",
-                "nconf": "0.10.0",
+                "moment": "^2.29.1",
+                "nconf": "^0.11.2",
                 "ora": "3.0.0",
                 "prompt": "1.0.0",
                 "request": "2.88.0",
                 "supports-color": "5.5.0",
                 "underscore": "1.9.1",
                 "wordwrap": "1.0.0",
-                "yargs": "^15.3.1"
+                "yargs": "^15.4.1"
             }
         },
         "wcwidth": {
@@ -1541,11 +3637,6 @@
             "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
             "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
         },
-        "window-size": {
-            "version": "0.1.4",
-            "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz",
-            "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY="
-        },
         "winston": {
             "version": "2.1.1",
             "resolved": "https://registry.npmjs.org/winston/-/winston-2.1.1.tgz",
@@ -1589,12 +3680,36 @@
             "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus="
         },
         "wrap-ansi": {
-            "version": "2.1.0",
-            "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
-            "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+            "version": "7.0.0",
+            "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+            "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
             "requires": {
-                "string-width": "^1.0.1",
-                "strip-ansi": "^3.0.1"
+                "ansi-styles": "^4.0.0",
+                "string-width": "^4.1.0",
+                "strip-ansi": "^6.0.0"
+            },
+            "dependencies": {
+                "ansi-styles": {
+                    "version": "4.3.0",
+                    "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+                    "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+                    "requires": {
+                        "color-convert": "^2.0.1"
+                    }
+                },
+                "color-convert": {
+                    "version": "2.0.1",
+                    "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+                    "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+                    "requires": {
+                        "color-name": "~1.1.4"
+                    }
+                },
+                "color-name": {
+                    "version": "1.1.4",
+                    "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+                    "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
+                }
             }
         },
         "wrappy": {
@@ -1609,9 +3724,9 @@
             "optional": true
         },
         "y18n": {
-            "version": "3.2.2",
-            "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz",
-            "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ=="
+            "version": "5.0.8",
+            "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+            "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
         },
         "yargs": {
             "version": "15.4.1",
@@ -1631,11 +3746,6 @@
                 "yargs-parser": "^18.1.2"
             },
             "dependencies": {
-                "ansi-regex": {
-                    "version": "5.0.0",
-                    "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
-                    "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
-                },
                 "ansi-styles": {
                     "version": "4.3.0",
                     "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@@ -1667,29 +3777,6 @@
                     "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
                     "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
                 },
-                "is-fullwidth-code-point": {
-                    "version": "3.0.0",
-                    "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
-                    "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
-                },
-                "string-width": {
-                    "version": "4.2.2",
-                    "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz",
-                    "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==",
-                    "requires": {
-                        "emoji-regex": "^8.0.0",
-                        "is-fullwidth-code-point": "^3.0.0",
-                        "strip-ansi": "^6.0.0"
-                    }
-                },
-                "strip-ansi": {
-                    "version": "6.0.0",
-                    "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
-                    "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
-                    "requires": {
-                        "ansi-regex": "^5.0.0"
-                    }
-                },
                 "wrap-ansi": {
                     "version": "6.2.0",
                     "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
diff --git a/package.json b/package.json
index bcdb5c02..1bb764f3 100644
--- a/package.json
+++ b/package.json
@@ -729,6 +729,6 @@
         "markdown-it": "^8.4.2",
         "require-from-string": "^2.0.2",
         "unescape-js": "^1.1.4",
-        "vsc-leetcode-cli": "2.8.0"
+        "vsc-leetcode-cli": "2.8.1"
     }
 }
diff --git a/src/commands/plugin.ts b/src/commands/plugin.ts
index 040f8321..d2ed4b6c 100644
--- a/src/commands/plugin.ts
+++ b/src/commands/plugin.ts
@@ -21,7 +21,7 @@ export async function switchEndpoint(): Promise<void> {
         },
         {
             label: `${isCnEnabled ? "$(check) " : ""}力扣`,
-            description: "leetcode-cn.com",
+            description: "leetcode.cn",
             detail: `启用中国版 LeetCode`,
             value: Endpoint.LeetCodeCN,
         },
diff --git a/src/utils/uiUtils.ts b/src/utils/uiUtils.ts
index 53275fa0..9e251a55 100644
--- a/src/utils/uiUtils.ts
+++ b/src/utils/uiUtils.ts
@@ -48,7 +48,7 @@ export async function promptForSignIn(): Promise<void> {
             break;
         case DialogOptions.singUp:
             if (getLeetCodeEndpoint()) {
-                openUrl("https://leetcode-cn.com");
+                openUrl("https://leetcode.cn");
             } else {
                 openUrl("https://leetcode.com");
             }

From 8d191f96f826aaad5865593552cecb87b816ef41 Mon Sep 17 00:00:00 2001
From: Miloas <qiyu.null@gmail.com>
Date: Mon, 9 May 2022 18:07:24 +0800
Subject: [PATCH 82/92] 0.18.1

---
 package-lock.json | 4 ++--
 package.json      | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index fe9c5d7f..51c317cb 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
 {
     "name": "vscode-leetcode",
-    "version": "0.18.0",
+    "version": "0.18.1",
     "lockfileVersion": 2,
     "requires": true,
     "packages": {
         "": {
             "name": "vscode-leetcode",
-            "version": "0.18.0",
+            "version": "0.18.1",
             "license": "MIT",
             "dependencies": {
                 "fs-extra": "^10.0.0",
diff --git a/package.json b/package.json
index 1bb764f3..db0d475a 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
     "name": "vscode-leetcode",
     "displayName": "LeetCode",
     "description": "Solve LeetCode problems in VS Code",
-    "version": "0.18.0",
+    "version": "0.18.1",
     "author": "Sheng Chen",
     "publisher": "LeetCode",
     "license": "MIT",

From 4f8c777eab170636fa0869dc8c7f4af7a4be8d2d Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 9 May 2022 18:18:42 +0800
Subject: [PATCH 83/92] chore(deps): bump ansi-regex from 3.0.0 to 3.0.1 (#805)

Bumps [ansi-regex](https://github.com/chalk/ansi-regex) from 3.0.0 to 3.0.1.
- [Release notes](https://github.com/chalk/ansi-regex/releases)
- [Commits](https://github.com/chalk/ansi-regex/compare/v3.0.0...v3.0.1)

---
updated-dependencies:
- dependency-name: ansi-regex
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
 package-lock.json | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 51c317cb..27452c04 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1224,9 +1224,9 @@
             }
         },
         "node_modules/ora/node_modules/ansi-regex": {
-            "version": "3.0.0",
-            "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
-            "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
+            "version": "3.0.1",
+            "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz",
+            "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==",
             "engines": {
                 "node": ">=4"
             }
@@ -3103,9 +3103,9 @@
             },
             "dependencies": {
                 "ansi-regex": {
-                    "version": "3.0.0",
-                    "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
-                    "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
+                    "version": "3.0.1",
+                    "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz",
+                    "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw=="
                 },
                 "strip-ansi": {
                     "version": "4.0.0",

From a68f93551231f30ff5153d8588fbbe2db53410c7 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 9 May 2022 18:18:58 +0800
Subject: [PATCH 84/92] chore(deps): bump minimist from 1.2.5 to 1.2.6 (#788)

Bumps [minimist](https://github.com/substack/minimist) from 1.2.5 to 1.2.6.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.5...1.2.6)

---
updated-dependencies:
- dependency-name: minimist
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
 package-lock.json | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 27452c04..72b2ae44 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1074,9 +1074,9 @@
             }
         },
         "node_modules/minimist": {
-            "version": "1.2.5",
-            "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
-            "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
+            "version": "1.2.6",
+            "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
+            "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
         },
         "node_modules/mkdirp": {
             "version": "1.0.4",
@@ -2984,9 +2984,9 @@
             }
         },
         "minimist": {
-            "version": "1.2.5",
-            "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
-            "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
+            "version": "1.2.6",
+            "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
+            "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
         },
         "mkdirp": {
             "version": "1.0.4",

From 2afb9065f3de4a6bb94b3955c2c44fcb4a30bd32 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 9 May 2022 18:19:15 +0800
Subject: [PATCH 85/92] chore(deps): bump i from 0.3.6 to 0.3.7 (#743)

Bumps [i](https://github.com/pksunkara/inflect) from 0.3.6 to 0.3.7.
- [Release notes](https://github.com/pksunkara/inflect/releases)
- [Commits](https://github.com/pksunkara/inflect/compare/v0.3.6...v0.3.7)

---
updated-dependencies:
- dependency-name: i
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
 package-lock.json | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 72b2ae44..667367a3 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -816,9 +816,9 @@
             }
         },
         "node_modules/i": {
-            "version": "0.3.6",
-            "resolved": "https://registry.npmjs.org/i/-/i-0.3.6.tgz",
-            "integrity": "sha1-2WyScyB28HJxG2sQ/X1PZa2O4j0=",
+            "version": "0.3.7",
+            "resolved": "https://registry.npmjs.org/i/-/i-0.3.7.tgz",
+            "integrity": "sha512-FYz4wlXgkQwIPqhzC5TdNMLSE5+GS1IIDJZY/1ZiEPCT2S3COUVZeT5OW4BmW4r5LHLQuOosSwsvnroG9GR59Q==",
             "engines": {
                 "node": ">=0.4"
             }
@@ -2770,9 +2770,9 @@
             }
         },
         "i": {
-            "version": "0.3.6",
-            "resolved": "https://registry.npmjs.org/i/-/i-0.3.6.tgz",
-            "integrity": "sha1-2WyScyB28HJxG2sQ/X1PZa2O4j0="
+            "version": "0.3.7",
+            "resolved": "https://registry.npmjs.org/i/-/i-0.3.7.tgz",
+            "integrity": "sha512-FYz4wlXgkQwIPqhzC5TdNMLSE5+GS1IIDJZY/1ZiEPCT2S3COUVZeT5OW4BmW4r5LHLQuOosSwsvnroG9GR59Q=="
         },
         "inflight": {
             "version": "1.0.6",

From d713ad5ff5b12977a2cce485d7688f99966fb628 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Mon, 9 May 2022 18:22:22 +0800
Subject: [PATCH 86/92] chore(deps): bump moment from 2.29.1 to 2.29.3 (#806)

Bumps [moment](https://github.com/moment/moment) from 2.29.1 to 2.29.3.
- [Release notes](https://github.com/moment/moment/releases)
- [Changelog](https://github.com/moment/moment/blob/2.29.3/CHANGELOG.md)
- [Commits](https://github.com/moment/moment/compare/2.29.1...2.29.3)

---
updated-dependencies:
- dependency-name: moment
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
---
 package-lock.json | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 667367a3..76397db2 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1090,9 +1090,9 @@
             }
         },
         "node_modules/moment": {
-            "version": "2.29.1",
-            "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
-            "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ==",
+            "version": "2.29.3",
+            "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz",
+            "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==",
             "engines": {
                 "node": "*"
             }
@@ -2994,9 +2994,9 @@
             "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
         },
         "moment": {
-            "version": "2.29.1",
-            "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
-            "integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ=="
+            "version": "2.29.3",
+            "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz",
+            "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw=="
         },
         "mute-stream": {
             "version": "0.0.8",

From 71264faf1ed6de25e60a39efbf73239fd3434353 Mon Sep 17 00:00:00 2001
From: leo <467512138@qq.com>
Date: Wed, 15 May 2024 16:36:57 +0800
Subject: [PATCH 87/92] feat: change login way and add tracking logic option
 (#944)

fix: resolve UAT issues

fix: update action

feat: add login progress

fix: change function name

Co-authored-by: leo.zhao<zale0201@gmail.com>
---
 .vscode/settings.json                    |   7 +-
 README.md                                |  16 +-
 docs/README_zh-CN.md                     |  49 ++++---
 package-lock.json                        |  74 ++++++++++
 package.json                             |  26 ++--
 src/commands/list.ts                     |   6 +-
 src/commands/show.ts                     |  93 +++++++-----
 src/explorer/LeetCodeTreeDataProvider.ts |  41 ++++--
 src/extension.ts                         |  42 +++++-
 src/globalState.ts                       |  55 +++++++
 src/leetCodeManager.ts                   | 177 ++++++++++-------------
 src/request/query-user-data.ts           |  25 ++++
 src/shared.ts                            |  40 ++++-
 src/utils/httpUtils.ts                   |  28 ++++
 src/utils/toolUtils.ts                   |  26 ++++
 src/utils/trackingUtils.ts               | 130 +++++++++++++++++
 src/webview/leetCodePreviewProvider.ts   |  72 +++++----
 17 files changed, 670 insertions(+), 237 deletions(-)
 create mode 100644 src/globalState.ts
 create mode 100644 src/request/query-user-data.ts
 create mode 100644 src/utils/httpUtils.ts
 create mode 100644 src/utils/toolUtils.ts
 create mode 100644 src/utils/trackingUtils.ts

diff --git a/.vscode/settings.json b/.vscode/settings.json
index a2d0a8b1..b5f72312 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -10,5 +10,8 @@
         ".vscode-test": true
     },
     "tslint.autoFixOnSave": true,
-    "tslint.ignoreDefinitionFiles": true
-}
\ No newline at end of file
+    "tslint.ignoreDefinitionFiles": true,
+    "prettier.tabWidth": 4,
+    "prettier.useTabs": false,
+    "prettier.printWidth": 150
+}
diff --git a/README.md b/README.md
index cfe37701..623e95f2 100644
--- a/README.md
+++ b/README.md
@@ -23,6 +23,7 @@
 - English Document | [中文文档](https://github.com/LeetCode-OpenSource/vscode-leetcode/blob/master/docs/README_zh-CN.md)
 
 ## ❗️ Attention ❗️- Workaround to login to LeetCode endpoint
+
 > Note: If you are using `leetcode.cn`, you can just ignore this section.
 
 Recently we observed that [the extension cannot login to leetcode.com endpoint anymore](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/478). The root cause of this issue is that leetcode.com changed its login mechanism and so far there is no ideal way to fix that issue.
@@ -32,9 +33,10 @@ Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround wh
 > Note: If you want to use third-party login(**Recommended**), please make sure your account has been connected to the third-party. If you want to use `Cookie` login, click [here](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/478#issuecomment-564757098) to see the steps.
 
 ## Requirements
+
 - [VS Code 1.30.1+](https://code.visualstudio.com/)
 - [Node.js 10+](https://nodejs.org)
-    > NOTE: Please make sure that `Node` is in your `PATH` environment variable. You can also use the setting `leetcode.nodePath` to specify the location of your `Node.js` executable.
+  > NOTE: Please make sure that `Node` is in your `PATH` environment variable. You can also use the setting `leetcode.nodePath` to specify the location of your `Node.js` executable.
 
 ## Quick Start
 
@@ -43,6 +45,7 @@ Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround wh
 ## Features
 
 ### Sign In/Out
+
 <p align="center">
   <img src="https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/sign_in.png" alt="Sign in" />
 </p>
@@ -52,9 +55,11 @@ Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround wh
 - You can also use the following command to sign in/out:
   - **LeetCode: Sign in**
   - **LeetCode: Sign out**
+
 ---
 
 ### Switch Endpoint
+
 <p align="center">
   <img src="https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/endpoint.png" alt="Switch Endpoint" />
 </p>
@@ -62,6 +67,7 @@ Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround wh
 - By clicking the button ![btn_endpoint](https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/btn_endpoint.png) at the **explorer's navigation bar**, you can switch between different endpoints.
 
 - The supported endpoints are:
+
   - **leetcode.com**
   - **leetcode.cn**
 
@@ -70,6 +76,7 @@ Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround wh
 ---
 
 ### Pick a Problem
+
 <p align="center">
   <img src="https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/pick_problem.png" alt="Pick a Problem" />
 </p>
@@ -86,11 +93,13 @@ Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround wh
 ---
 
 ### Editor Shortcuts
+
 <p align="center">
   <img src="https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/shortcuts.png" alt="Editor Shortcuts" />
 </p>
 
 - The extension supports 5 editor shortcuts (aka Code Lens):
+
   - `Submit`: Submit your answer to LeetCode.
   - `Test`: Test your answer with customized test cases.
   - `Star/Unstar`: Star or unstar the current problem.
@@ -102,6 +111,7 @@ Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround wh
 ---
 
 ### Search problems by Keywords
+
 <p align="center">
   <img src="https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/search.png" alt="Search problems by Keywords" />
 </p>
@@ -111,19 +121,18 @@ Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround wh
 ---
 
 ### Manage Session
+
 <p align="center">
   <img src="https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/session.png" alt="Manage Session" />
 </p>
 
 - To manage your LeetCode sessions, just clicking the `LeetCode: ***` at the bottom of the status bar. You can **switch** between sessions or **create**, **delete** a session.
 
-
 ## Settings
 
 | Setting Name                      | Description                                                                                                                                                                                                                                                   | Default Value      |
 | --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ |
 | `leetcode.hideSolved`             | Specify to hide the solved problems or not                                                                                                                                                                                                                    | `false`            |
-| `leetcode.showLocked`             | Specify to show the locked problems or not. Only Premium users could open the locked problems                                                                                                                                                                 | `false`            |
 | `leetcode.defaultLanguage`        | Specify the default language used to solve the problem. Supported languages are: `bash`, `c`, `cpp`, `csharp`, `golang`, `java`, `javascript`, `kotlin`, `mysql`, `php`, `python`,`python3`,`ruby`,`rust`, `scala`, `swift`, `typescript`                     | `N/A`              |
 | `leetcode.useWsl`                 | Specify whether to use WSL or not                                                                                                                                                                                                                             | `false`            |
 | `leetcode.endpoint`               | Specify the active endpoint. Supported endpoints are: `leetcode`, `leetcode-cn`                                                                                                                                                                               | `leetcode`         |
@@ -137,6 +146,7 @@ Thanks for [@yihong0618](https://github.com/yihong0618) provided a workaround wh
 | `leetcode.useEndpointTranslation` | Use endpoint's translation (if available)                                                                                                                                                                                                                     | `true`             |
 | `leetcode.colorizeProblems`       | Add difficulty badge and colorize problems files in explorer tree                                                                                                                                                                                             | `true`             |
 | `leetcode.problems.sortStrategy`  | Specify sorting strategy for problems list                                                                                                                                                                                                                    | `None`             |
+| `leetcode.allowReportData`        | Allow LeetCode to report anonymous usage data to improve the product. list                                                                                                                                                                                    | `true`             |
 
 ## Want Help?
 
diff --git a/docs/README_zh-CN.md b/docs/README_zh-CN.md
index ad4c9a74..caf110bf 100644
--- a/docs/README_zh-CN.md
+++ b/docs/README_zh-CN.md
@@ -23,19 +23,20 @@
 - [English Document](https://github.com/LeetCode-OpenSource/vscode-leetcode#requirements) | 中文文档
 
 ## ❗️ 注意 ❗️- 无法登录 LeetCode 节点的临时解决办法
+
 > 注意:如果使用的是 `leetcode.cn` 账户,可以跳过此段落。
 
 近期我们发现插件出现了[无法登录 leetcode.com 节点的问题](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/478)。原因是因为近期 leetcode.com 改变了登录机制,目前我们暂时没有找到解决该问题的完美解决方案。
 
 感谢 [@yihong0618](https://github.com/yihong0618) 提供了一个临时解决办法。现在你可以直接点击登录按钮并选择第三方登录或者 `Cookie` 登录。
 
-
 > 注意:如果你希望使用第三方登录(**推荐**),请确保你的账户已经与第三方账户连接。如果你希望通过 `Cookie` 登录,请点击[该连接](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/478#issuecomment-564757098)查看登录步骤。
 
 ## 运行条件
+
 - [VS Code 1.23.0+](https://code.visualstudio.com/)
 - [Node.js 10+](https://nodejs.org)
-    > 注意:请确保`Node`在`PATH`环境变量中。您也可以通过设定 `leetcode.nodePath` 选项来指定 `Node.js` 可执行文件的路径。
+  > 注意:请确保`Node`在`PATH`环境变量中。您也可以通过设定 `leetcode.nodePath` 选项来指定 `Node.js` 可执行文件的路径。
 
 ## 快速开始
 
@@ -44,18 +45,21 @@
 ## 功能
 
 ### 登入登出
+
 <p align="center">
   <img src="https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/sign_in.png" alt="登入登出" />
 </p>
 
 - 点击 `LeetCode Explorer` 中的 `Sign in to LeetCode` 即可登入。
 
-- 你也可以使用下来命令登入或利用cookie登入或登出:
+- 你也可以使用下来命令登入或利用 cookie 登入或登出:
   - **LeetCode: Sign in**
   - **LeetCode: Sign out**
+
 ---
 
 ### 切换 LeetCode 版本
+
 <p align="center">
   <img src="https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/endpoint.png" alt="切换 LeetCode 版本" />
 </p>
@@ -63,6 +67,7 @@
 - LeetCode 目前有**英文版**和**中文版**两种版本。点击 `LeetCode Explorer` 导航栏中的 ![btn_endpoint](https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/btn_endpoint.png) 按钮可切换版本。
 
 - 目前可切换的版本有:
+
   - **leetcode.com**
   - **leetcode.cn**
 
@@ -71,6 +76,7 @@
 ---
 
 ### 选择题目
+
 <p align="center">
   <img src="https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/pick_problem.png" alt="选择题目" />
 </p>
@@ -87,11 +93,13 @@
 ---
 
 ### 编辑器快捷方式
+
 <p align="center">
   <img src="https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/shortcuts.png" alt="Editor Shortcuts" />
 </p>
 
 - 插件会在编辑区域内支持五种不同的快捷方式(Code Lens):
+
   - `Submit`: 提交你的答案至 LeetCode;
   - `Test`: 用给定的测试用例测试你的答案;
   - `Star`: 收藏或取消收藏该问题;
@@ -103,6 +111,7 @@
 ---
 
 ### 通过关键字搜索题目
+
 <p align="center">
   <img src="https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/search.png" alt="通过关键字搜索题目" />
 </p>
@@ -112,31 +121,33 @@
 ---
 
 ### 管理存档
+
 <p align="center">
   <img src="https://raw.githubusercontent.com/LeetCode-OpenSource/vscode-leetcode/master/docs/imgs/session.png" alt="管理存档" />
 </p>
 
 - 点击位于 VS Code 底部状态栏的 `LeetCode: ***` 管理 `LeetCode 存档`。你可以**切换**存档或者**创建**,**删除**存档。
 
-
 ## 插件配置项
-| 配置项名称                                                                         | 描述                                                                                                                                                                                                                                                                                            | 默认值             |
-| ---------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ |
-| `leetcode.hideSolved`                                                              | 指定是否要隐藏已解决的问题                                                                                                                                                                                                                                                                      | `false`            |
-| `leetcode.showLocked`                                                              | 指定是否显示付费题目,只有付费账户才可以打开付费题目                                                                                                                                                                                                                                            | `false`            |
-| `leetcode.defaultLanguage`                                                         | 指定答题时使用的默认语言,可选语言有:`bash`, `c`, `cpp`, `csharp`, `golang`, `java`, `javascript`, `kotlin`, `mysql`, `php`, `python`,`python3`,`ruby`, `rust`, `scala`, `swift`, `typescript`                                                                                                                | `N/A`              |
-| `leetcode.useWsl`                                                                  | 指定是否启用 WSL                                                                                                                                                                                                                                                                                | `false`            |
-| `leetcode.endpoint`                                                                | 指定使用的终端,可用终端有:`leetcode`, `leetcode-cn`                                                                                                                                                                                                                                           | `leetcode`         |
-| `leetcode.workspaceFolder`                                                         | 指定保存文件的工作区目录                                                                                                                                                                                                                                                                        | `""`               |
-| `leetcode.filePath`                                                                | 指定生成题目文件的相对文件夹路径名和文件名。点击查看[更多详细用法](https://github.com/LeetCode-OpenSource/vscode-leetcode/wiki/%E8%87%AA%E5%AE%9A%E4%B9%89%E9%A2%98%E7%9B%AE%E6%96%87%E4%BB%B6%E7%9A%84%E7%9B%B8%E5%AF%B9%E6%96%87%E4%BB%B6%E5%A4%B9%E8%B7%AF%E5%BE%84%E5%92%8C%E6%96%87%E4%BB%B6%E5%90%8D)。 |                    |
-| `leetcode.enableStatusBar`                                                         | 指定是否在 VS Code 下方显示插件状态栏。                                                                                                                                                                                                                                                         | `true`             |
-| `leetcode.editor.shortcuts`                                                        | 指定在编辑器内所自定义的快捷方式。可用的快捷方式有: `submit`, `test`, `star`, `solution`, `description`。                                                                                                                                                                                               | `["submit, test"]` |
-| `leetcode.enableSideMode`                                                          | 指定在解决一道题时,是否将`问题预览`、`高票答案`与`提交结果`窗口集中在编辑器的第二栏。                                                                                                                                                                                                          | `true`             |
-| `leetcode.nodePath`                                                                | 指定 `Node.js` 可执行文件的路径。如:C:\Program Files\nodejs\node.exe                                                                                                                                                                                                                           | `node`             |
-| `leetcode.showCommentDescription`                                                  | 指定是否要在注释中显示题干。                                                                                                                                                                                                                                                                    | `false`            |
-| `leetcode.useEndpointTranslation`                                                       | 是否显示翻译版本内容。                                                                                                                                                                                                                                                                                                                                                                | `true`            |
+
+| 配置项名称                        | 描述                                                                                                                                                                                                                                                                                                          | 默认值             |
+| --------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------ |
+| `leetcode.hideSolved`             | 指定是否要隐藏已解决的问题                                                                                                                                                                                                                                                                                    | `false`            |
+| `leetcode.defaultLanguage`        | 指定答题时使用的默认语言,可选语言有:`bash`, `c`, `cpp`, `csharp`, `golang`, `java`, `javascript`, `kotlin`, `mysql`, `php`, `python`,`python3`,`ruby`, `rust`, `scala`, `swift`, `typescript`                                                                                                               | `N/A`              |
+| `leetcode.useWsl`                 | 指定是否启用 WSL                                                                                                                                                                                                                                                                                              | `false`            |
+| `leetcode.endpoint`               | 指定使用的终端,可用终端有:`leetcode`, `leetcode-cn`                                                                                                                                                                                                                                                         | `leetcode`         |
+| `leetcode.workspaceFolder`        | 指定保存文件的工作区目录                                                                                                                                                                                                                                                                                      | `""`               |
+| `leetcode.filePath`               | 指定生成题目文件的相对文件夹路径名和文件名。点击查看[更多详细用法](https://github.com/LeetCode-OpenSource/vscode-leetcode/wiki/%E8%87%AA%E5%AE%9A%E4%B9%89%E9%A2%98%E7%9B%AE%E6%96%87%E4%BB%B6%E7%9A%84%E7%9B%B8%E5%AF%B9%E6%96%87%E4%BB%B6%E5%A4%B9%E8%B7%AF%E5%BE%84%E5%92%8C%E6%96%87%E4%BB%B6%E5%90%8D)。 |                    |
+| `leetcode.enableStatusBar`        | 指定是否在 VS Code 下方显示插件状态栏。                                                                                                                                                                                                                                                                       | `true`             |
+| `leetcode.editor.shortcuts`       | 指定在编辑器内所自定义的快捷方式。可用的快捷方式有: `submit`, `test`, `star`, `solution`, `description`。                                                                                                                                                                                                     | `["submit, test"]` |
+| `leetcode.enableSideMode`         | 指定在解决一道题时,是否将`问题预览`、`高票答案`与`提交结果`窗口集中在编辑器的第二栏。                                                                                                                                                                                                                        | `true`             |
+| `leetcode.nodePath`               | 指定 `Node.js` 可执行文件的路径。如:C:\Program Files\nodejs\node.exe                                                                                                                                                                                                                                         | `node`             |
+| `leetcode.showCommentDescription` | 指定是否要在注释中显示题干。                                                                                                                                                                                                                                                                                  | `false`            |
+| `leetcode.useEndpointTranslation` | 是否显示翻译版本内容。                                                                                                                                                                                                                                                                                        | `true`             |
+| `leetcode.allowReportData`        | 为了更好的产品体验允许上报用户埋数据                                                                                                                                                                                                                                                                          | `true`             |
 
 ## 需要帮助?
+
 在遇到任何问题时,可以先查看一下[疑难解答](https://github.com/LeetCode-OpenSource/vscode-leetcode/wiki/%E7%96%91%E9%9A%BE%E8%A7%A3%E7%AD%94)以及[常见问题](https://github.com/LeetCode-OpenSource/vscode-leetcode/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98)寻求帮助。
 
 如果您的问题依然没有解决,可以在 [Gitter Channel](https://gitter.im/vscode-leetcode/Lobby) 联系我们,或者您也可以[记录一个新的 issue](https://github.com/LeetCode-OpenSource/vscode-leetcode/issues/new/choose)。
diff --git a/package-lock.json b/package-lock.json
index 76397db2..2ac17cf5 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,6 +9,7 @@
             "version": "0.18.1",
             "license": "MIT",
             "dependencies": {
+                "axios": "^1.6.8",
                 "fs-extra": "^10.0.0",
                 "highlight.js": "^10.7.2",
                 "lodash": "^4.17.21",
@@ -220,6 +221,29 @@
             "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
             "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
         },
+        "node_modules/axios": {
+            "version": "1.6.8",
+            "resolved": "https://r.cnpmjs.org/axios/-/axios-1.6.8.tgz",
+            "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==",
+            "dependencies": {
+                "follow-redirects": "^1.15.6",
+                "form-data": "^4.0.0",
+                "proxy-from-env": "^1.1.0"
+            }
+        },
+        "node_modules/axios/node_modules/form-data": {
+            "version": "4.0.0",
+            "resolved": "https://r2.cnpmjs.org/form-data/-/form-data-4.0.0.tgz",
+            "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+            "dependencies": {
+                "asynckit": "^0.4.0",
+                "combined-stream": "^1.0.8",
+                "mime-types": "^2.1.12"
+            },
+            "engines": {
+                "node": ">= 6"
+            }
+        },
         "node_modules/balanced-match": {
             "version": "1.0.2",
             "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
@@ -642,6 +666,19 @@
                 "node": ">=8"
             }
         },
+        "node_modules/follow-redirects": {
+            "version": "1.15.6",
+            "resolved": "https://r.cnpmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
+            "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
+            "engines": {
+                "node": ">=4.0"
+            },
+            "peerDependenciesMeta": {
+                "debug": {
+                    "optional": true
+                }
+            }
+        },
         "node_modules/forever-agent": {
             "version": "0.6.1",
             "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
@@ -1341,6 +1378,11 @@
                 "node": ">= 0.6.6"
             }
         },
+        "node_modules/proxy-from-env": {
+            "version": "1.1.0",
+            "resolved": "https://r2.cnpmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+            "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+        },
         "node_modules/psl": {
             "version": "1.8.0",
             "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
@@ -2294,6 +2336,28 @@
             "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
             "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA=="
         },
+        "axios": {
+            "version": "1.6.8",
+            "resolved": "https://r.cnpmjs.org/axios/-/axios-1.6.8.tgz",
+            "integrity": "sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==",
+            "requires": {
+                "follow-redirects": "^1.15.6",
+                "form-data": "^4.0.0",
+                "proxy-from-env": "^1.1.0"
+            },
+            "dependencies": {
+                "form-data": {
+                    "version": "4.0.0",
+                    "resolved": "https://r2.cnpmjs.org/form-data/-/form-data-4.0.0.tgz",
+                    "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==",
+                    "requires": {
+                        "asynckit": "^0.4.0",
+                        "combined-stream": "^1.0.8",
+                        "mime-types": "^2.1.12"
+                    }
+                }
+            }
+        },
         "balanced-match": {
             "version": "1.0.2",
             "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
@@ -2635,6 +2699,11 @@
                 "path-exists": "^4.0.0"
             }
         },
+        "follow-redirects": {
+            "version": "1.15.6",
+            "resolved": "https://r.cnpmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
+            "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA=="
+        },
         "forever-agent": {
             "version": "0.6.1",
             "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
@@ -3189,6 +3258,11 @@
                 "winston": "2.1.x"
             }
         },
+        "proxy-from-env": {
+            "version": "1.1.0",
+            "resolved": "https://r2.cnpmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+            "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+        },
         "psl": {
             "version": "1.8.0",
             "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
diff --git a/package.json b/package.json
index db0d475a..702956c1 100644
--- a/package.json
+++ b/package.json
@@ -2,8 +2,8 @@
     "name": "vscode-leetcode",
     "displayName": "LeetCode",
     "description": "Solve LeetCode problems in VS Code",
-    "version": "0.18.1",
-    "author": "Sheng Chen",
+    "version": "0.18.2",
+    "author": "LeetCode",
     "publisher": "LeetCode",
     "license": "MIT",
     "icon": "resources/LeetCode.png",
@@ -182,15 +182,20 @@
                     "when": "view == leetCodeExplorer",
                     "group": "navigation@3"
                 },
+                {
+                    "command": "leetcode.signout",
+                    "when": "view == leetCodeExplorer",
+                    "group": "overflow@1"
+                },
                 {
                     "command": "leetcode.pickOne",
                     "when": "view == leetCodeExplorer",
-                    "group": "overflow@0"
+                    "group": "overflow@2"
                 },
                 {
                     "command": "leetcode.problems.sort",
                     "when": "view == leetCodeExplorer",
-                    "group": "overflow@1"
+                    "group": "overflow@3"
                 }
             ],
             "view/item/context": [
@@ -294,12 +299,6 @@
                         "scope": "application",
                         "description": "Hide solved problems."
                     },
-                    "leetcode.showLocked": {
-                        "type": "boolean",
-                        "default": false,
-                        "scope": "application",
-                        "description": "Show locked problems."
-                    },
                     "leetcode.defaultLanguage": {
                         "type": "string",
                         "enum": [
@@ -700,6 +699,12 @@
                             "Acceptance Rate (Descending)"
                         ],
                         "description": "Sorting strategy for problems list."
+                    },
+                    "leetcode.allowReportData": {
+                        "type": "boolean",
+                        "default": true,
+                        "scope": "application",
+                        "description": "Allow LeetCode to report anonymous usage data to improve the product."
                     }
                 }
             }
@@ -723,6 +728,7 @@
         "typescript": "^4.3.2"
     },
     "dependencies": {
+        "axios": "^1.6.8",
         "fs-extra": "^10.0.0",
         "highlight.js": "^10.7.2",
         "lodash": "^4.17.21",
diff --git a/src/commands/list.ts b/src/commands/list.ts
index 7e7b36a7..3ebe236a 100644
--- a/src/commands/list.ts
+++ b/src/commands/list.ts
@@ -1,7 +1,6 @@
 // Copyright (c) jdneo. All rights reserved.
 // Licensed under the MIT license.
 
-import * as vscode from "vscode";
 import { leetCodeExecutor } from "../leetCodeExecutor";
 import { leetCodeManager } from "../leetCodeManager";
 import { IProblem, ProblemState, UserStatus } from "../shared";
@@ -13,10 +12,9 @@ export async function listProblems(): Promise<IProblem[]> {
         if (leetCodeManager.getStatus() === UserStatus.SignedOut) {
             return [];
         }
-        const leetCodeConfig: vscode.WorkspaceConfiguration = vscode.workspace.getConfiguration("leetcode");
-        const showLocked: boolean = !!leetCodeConfig.get<boolean>("showLocked");
+
         const useEndpointTranslation: boolean = settingUtils.shouldUseEndpointTranslation();
-        const result: string = await leetCodeExecutor.listProblems(showLocked, useEndpointTranslation);
+        const result: string = await leetCodeExecutor.listProblems(true, useEndpointTranslation);
         const problems: IProblem[] = [];
         const lines: string[] = result.split("\n");
         const reg: RegExp = /^(.)\s(.{1,2})\s(.)\s\[\s*(\d*)\s*\]\s*(.*)\s*(Easy|Medium|Hard)\s*\((\s*\d+\.\d+ %)\)/;
diff --git a/src/commands/show.ts b/src/commands/show.ts
index 3aebce8f..eccf5571 100644
--- a/src/commands/show.ts
+++ b/src/commands/show.ts
@@ -10,19 +10,30 @@ import { LeetCodeNode } from "../explorer/LeetCodeNode";
 import { leetCodeChannel } from "../leetCodeChannel";
 import { leetCodeExecutor } from "../leetCodeExecutor";
 import { leetCodeManager } from "../leetCodeManager";
-import { IProblem, IQuickItemEx, languages, ProblemState } from "../shared";
+import { Endpoint, IProblem, IQuickItemEx, languages, PREMIUM_URL_CN, PREMIUM_URL_GLOBAL, ProblemState } from "../shared";
 import { genFileExt, genFileName, getNodeIdFromFile } from "../utils/problemUtils";
 import * as settingUtils from "../utils/settingUtils";
 import { IDescriptionConfiguration } from "../utils/settingUtils";
-import { DialogOptions, DialogType, openSettingsEditor, promptForOpenOutputChannel, promptForSignIn, promptHintMessage } from "../utils/uiUtils";
+import {
+    DialogOptions,
+    DialogType,
+    openSettingsEditor,
+    openUrl,
+    promptForOpenOutputChannel,
+    promptForSignIn,
+    promptHintMessage,
+} from "../utils/uiUtils";
 import { getActiveFilePath, selectWorkspaceFolder } from "../utils/workspaceUtils";
 import * as wsl from "../utils/wslUtils";
 import { leetCodePreviewProvider } from "../webview/leetCodePreviewProvider";
 import { leetCodeSolutionProvider } from "../webview/leetCodeSolutionProvider";
 import * as list from "./list";
+import { getLeetCodeEndpoint } from "./plugin";
+import { globalState } from "../globalState";
 
 export async function previewProblem(input: IProblem | vscode.Uri, isSideMode: boolean = false): Promise<void> {
     let node: IProblem;
+
     if (input instanceof vscode.Uri) {
         const activeFilePath: string = input.fsPath;
         const id: string = await getNodeIdFromFile(activeFilePath);
@@ -40,7 +51,14 @@ export async function previewProblem(input: IProblem | vscode.Uri, isSideMode: b
         isSideMode = true;
     } else {
         node = input;
+        const { isPremium } = globalState.getUserStatus() ?? {};
+        if (input.locked && !isPremium) {
+            const url = getLeetCodeEndpoint() === Endpoint.LeetCode ? PREMIUM_URL_GLOBAL : PREMIUM_URL_CN;
+            openUrl(url);
+            return;
+        }
     }
+
     const needTranslation: boolean = settingUtils.shouldUseEndpointTranslation();
     const descString: string = await leetCodeExecutor.getDescription(node.id, needTranslation);
     leetCodePreviewProvider.show(descString, node, isSideMode);
@@ -64,13 +82,10 @@ export async function searchProblem(): Promise<void> {
         promptForSignIn();
         return;
     }
-    const choice: IQuickItemEx<IProblem> | undefined = await vscode.window.showQuickPick(
-        parseProblemsToPicks(list.listProblems()),
-        {
-            matchOnDetail: true,
-            placeHolder: "Select one problem",
-        },
-    );
+    const choice: IQuickItemEx<IProblem> | undefined = await vscode.window.showQuickPick(parseProblemsToPicks(list.listProblems()), {
+        matchOnDetail: true,
+        placeHolder: "Select one problem",
+    });
     if (!choice) {
         return;
     }
@@ -79,11 +94,14 @@ export async function searchProblem(): Promise<void> {
 
 export async function showSolution(input: LeetCodeNode | vscode.Uri): Promise<void> {
     let problemInput: string | undefined;
-    if (input instanceof LeetCodeNode) { // Triggerred from explorer
+    if (input instanceof LeetCodeNode) {
+        // Triggerred from explorer
         problemInput = input.id;
-    } else if (input instanceof vscode.Uri) { // Triggerred from Code Lens/context menu
+    } else if (input instanceof vscode.Uri) {
+        // Triggerred from Code Lens/context menu
         problemInput = `"${input.fsPath}"`;
-    } else if (!input) { // Triggerred from command
+    } else if (!input) {
+        // Triggerred from command
         problemInput = await getActiveFilePath();
     }
 
@@ -112,7 +130,12 @@ async function fetchProblemLanguage(): Promise<string | undefined> {
     if (defaultLanguage && languages.indexOf(defaultLanguage) < 0) {
         defaultLanguage = undefined;
     }
-    const language: string | undefined = defaultLanguage || await vscode.window.showQuickPick(languages, { placeHolder: "Select the language you want to use", ignoreFocusOut: true });
+    const language: string | undefined =
+        defaultLanguage ||
+        (await vscode.window.showQuickPick(languages, {
+            placeHolder: "Select the language you want to use",
+            ignoreFocusOut: true,
+        }));
     // fire-and-forget default language query
     (async (): Promise<void> => {
         if (language && !defaultLanguage && leetCodeConfig.get<boolean>("hint.setDefaultLanguage")) {
@@ -120,7 +143,7 @@ async function fetchProblemLanguage(): Promise<string | undefined> {
                 `Would you like to set '${language}' as your default language?`,
                 DialogOptions.yes,
                 DialogOptions.no,
-                DialogOptions.never,
+                DialogOptions.never
             );
             if (choice === DialogOptions.yes) {
                 leetCodeConfig.update("defaultLanguage", language, true /* UserSetting */);
@@ -149,10 +172,7 @@ async function showProblemInternal(node: IProblem): Promise<void> {
             .get<string>(`filePath.${language}.folder`, leetCodeConfig.get<string>(`filePath.default.folder`, ""))
             .trim();
         const fileName: string = leetCodeConfig
-            .get<string>(
-                `filePath.${language}.filename`,
-                leetCodeConfig.get<string>(`filePath.default.filename`) || genFileName(node, language),
-            )
+            .get<string>(`filePath.${language}.filename`, leetCodeConfig.get<string>(`filePath.default.filename`) || genFileName(node, language))
             .trim();
 
         let finalPath: string = path.join(workspaceFolder, fileFolder, fileName);
@@ -172,12 +192,15 @@ async function showProblemInternal(node: IProblem): Promise<void> {
 
         await leetCodeExecutor.showProblem(node, language, finalPath, descriptionConfig.showInComment, needTranslation);
         const promises: any[] = [
-            vscode.window.showTextDocument(vscode.Uri.file(finalPath), { preview: false, viewColumn: vscode.ViewColumn.One }),
+            vscode.window.showTextDocument(vscode.Uri.file(finalPath), {
+                preview: false,
+                viewColumn: vscode.ViewColumn.One,
+            }),
             promptHintMessage(
                 "hint.commentDescription",
                 'You can config how to show the problem description through "leetcode.showDescription".',
                 "Open settings",
-                (): Promise<any> => openSettingsEditor("leetcode.showDescription"),
+                (): Promise<any> => openSettingsEditor("leetcode.showDescription")
             ),
         ];
         if (descriptionConfig.showInWebview) {
@@ -195,12 +218,17 @@ async function showDescriptionView(node: IProblem): Promise<void> {
 }
 async function parseProblemsToPicks(p: Promise<IProblem[]>): Promise<Array<IQuickItemEx<IProblem>>> {
     return new Promise(async (resolve: (res: Array<IQuickItemEx<IProblem>>) => void): Promise<void> => {
-        const picks: Array<IQuickItemEx<IProblem>> = (await p).map((problem: IProblem) => Object.assign({}, {
-            label: `${parseProblemDecorator(problem.state, problem.locked)}${problem.id}.${problem.name}`,
-            description: "",
-            detail: `AC rate: ${problem.passRate}, Difficulty: ${problem.difficulty}`,
-            value: problem,
-        }));
+        const picks: Array<IQuickItemEx<IProblem>> = (await p).map((problem: IProblem) =>
+            Object.assign(
+                {},
+                {
+                    label: `${parseProblemDecorator(problem.state, problem.locked)}${problem.id}.${problem.name}`,
+                    description: "",
+                    detail: `AC rate: ${problem.passRate}, Difficulty: ${problem.difficulty}`,
+                    value: problem,
+                }
+            )
+        );
         resolve(picks);
     });
 }
@@ -266,14 +294,11 @@ async function resolveTagForProblem(problem: IProblem): Promise<string | undefin
     if (problem.tags.length === 1) {
         return problem.tags[0];
     }
-    return await vscode.window.showQuickPick(
-        problem.tags,
-        {
-            matchOnDetail: true,
-            placeHolder: "Multiple tags available, please select one",
-            ignoreFocusOut: true,
-        },
-    );
+    return await vscode.window.showQuickPick(problem.tags, {
+        matchOnDetail: true,
+        placeHolder: "Multiple tags available, please select one",
+        ignoreFocusOut: true,
+    });
 }
 
 async function resolveCompanyForProblem(problem: IProblem): Promise<string | undefined> {
diff --git a/src/explorer/LeetCodeTreeDataProvider.ts b/src/explorer/LeetCodeTreeDataProvider.ts
index 4764934a..9c298944 100644
--- a/src/explorer/LeetCodeTreeDataProvider.ts
+++ b/src/explorer/LeetCodeTreeDataProvider.ts
@@ -8,12 +8,14 @@ import { leetCodeManager } from "../leetCodeManager";
 import { Category, defaultProblem, ProblemState } from "../shared";
 import { explorerNodeManager } from "./explorerNodeManager";
 import { LeetCodeNode } from "./LeetCodeNode";
+import { globalState } from "../globalState";
 
 export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCodeNode> {
-
     private context: vscode.ExtensionContext;
 
-    private onDidChangeTreeDataEvent: vscode.EventEmitter<LeetCodeNode | undefined | null> = new vscode.EventEmitter<LeetCodeNode | undefined | null>();
+    private onDidChangeTreeDataEvent: vscode.EventEmitter<LeetCodeNode | undefined | null> = new vscode.EventEmitter<
+        LeetCodeNode | undefined | null
+    >();
     // tslint:disable-next-line:member-ordering
     public readonly onDidChangeTreeData: vscode.Event<any> = this.onDidChangeTreeDataEvent.event;
 
@@ -46,7 +48,7 @@ export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCod
         }
 
         return {
-            label: element.isProblem ? `[${element.id}] ${element.name}` : element.name,
+            label: element.isProblem ? `[${element.id}] ${element.name}` + this.parsePremiumUnLockIconPath(element) : element.name,
             tooltip: this.getSubCategoryTooltip(element),
             collapsibleState: element.isProblem ? vscode.TreeItemCollapsibleState.None : vscode.TreeItemCollapsibleState.Collapsed,
             iconPath: this.parseIconPathFromProblemState(element),
@@ -59,16 +61,20 @@ export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCod
     public getChildren(element?: LeetCodeNode | undefined): vscode.ProviderResult<LeetCodeNode[]> {
         if (!leetCodeManager.getUser()) {
             return [
-                new LeetCodeNode(Object.assign({}, defaultProblem, {
-                    id: "notSignIn",
-                    name: "Sign in to LeetCode",
-                }), false),
+                new LeetCodeNode(
+                    Object.assign({}, defaultProblem, {
+                        id: "notSignIn",
+                        name: "Sign in to LeetCode",
+                    }),
+                    false
+                ),
             ];
         }
-        if (!element) { // Root view
+        if (!element) {
+            // Root view
             return explorerNodeManager.getRootNodes();
         } else {
-            switch (element.id) { // First-level
+            switch (element.id) {
                 case Category.All:
                     return explorerNodeManager.getAllNodes();
                 case Category.Favorite:
@@ -92,13 +98,14 @@ export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCod
         if (!element.isProblem) {
             return "";
         }
+        const { isPremium } = globalState.getUserStatus() ?? {};
         switch (element.state) {
             case ProblemState.AC:
                 return this.context.asAbsolutePath(path.join("resources", "check.png"));
             case ProblemState.NotAC:
                 return this.context.asAbsolutePath(path.join("resources", "x.png"));
             case ProblemState.Unknown:
-                if (element.locked) {
+                if (element.locked && !isPremium) {
                     return this.context.asAbsolutePath(path.join("resources", "lock.png"));
                 }
                 return this.context.asAbsolutePath(path.join("resources", "blank.png"));
@@ -107,6 +114,14 @@ export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCod
         }
     }
 
+    private parsePremiumUnLockIconPath(element: LeetCodeNode): string {
+        const { isPremium } = globalState.getUserStatus() ?? {};
+        if (isPremium && element.locked) {
+            return "  🔓";
+        }
+        return "";
+    }
+
     private getSubCategoryTooltip(element: LeetCodeNode): string {
         // return '' unless it is a sub-category node
         if (element.isProblem || element.id === "ROOT" || element.id in Category) {
@@ -130,11 +145,7 @@ export class LeetCodeTreeDataProvider implements vscode.TreeDataProvider<LeetCod
             }
         }
 
-        return [
-            `AC: ${acceptedNum}`,
-            `Failed: ${failedNum}`,
-            `Total: ${childernNodes.length}`,
-        ].join(os.EOL);
+        return [`AC: ${acceptedNum}`, `Failed: ${failedNum}`, `Total: ${childernNodes.length}`].join(os.EOL);
     }
 }
 
diff --git a/src/extension.ts b/src/extension.ts
index dfd91683..439673f8 100644
--- a/src/extension.ts
+++ b/src/extension.ts
@@ -24,10 +24,12 @@ import { leetCodePreviewProvider } from "./webview/leetCodePreviewProvider";
 import { leetCodeSolutionProvider } from "./webview/leetCodeSolutionProvider";
 import { leetCodeSubmissionProvider } from "./webview/leetCodeSubmissionProvider";
 import { markdownEngine } from "./webview/markdownEngine";
+import TrackData from "./utils/trackingUtils";
+import { globalState } from "./globalState";
 
 export async function activate(context: vscode.ExtensionContext): Promise<void> {
     try {
-        if (!await leetCodeExecutor.meetRequirements(context)) {
+        if (!(await leetCodeExecutor.meetRequirements(context))) {
             throw new Error("The environment doesn't meet requirements.");
         }
 
@@ -37,6 +39,7 @@ export async function activate(context: vscode.ExtensionContext): Promise<void>
         });
 
         leetCodeTreeDataProvider.initialize(context);
+        globalState.initialize(context);
 
         context.subscriptions.push(
             leetCodeStatusBarController,
@@ -55,22 +58,51 @@ export async function activate(context: vscode.ExtensionContext): Promise<void>
             vscode.commands.registerCommand("leetcode.signin", () => leetCodeManager.signIn()),
             vscode.commands.registerCommand("leetcode.signout", () => leetCodeManager.signOut()),
             vscode.commands.registerCommand("leetcode.manageSessions", () => session.manageSessions()),
-            vscode.commands.registerCommand("leetcode.previewProblem", (node: LeetCodeNode) => show.previewProblem(node)),
+            vscode.commands.registerCommand("leetcode.previewProblem", (node: LeetCodeNode) => {
+                TrackData.report({
+                    event_key: `vscode_open_problem`,
+                    type: "click",
+                    extra: JSON.stringify({
+                        problem_id: node.id,
+                        problem_name: node.name,
+                    }),
+                });
+                show.previewProblem(node);
+            }),
             vscode.commands.registerCommand("leetcode.showProblem", (node: LeetCodeNode) => show.showProblem(node)),
             vscode.commands.registerCommand("leetcode.pickOne", () => show.pickOne()),
             vscode.commands.registerCommand("leetcode.searchProblem", () => show.searchProblem()),
             vscode.commands.registerCommand("leetcode.showSolution", (input: LeetCodeNode | vscode.Uri) => show.showSolution(input)),
             vscode.commands.registerCommand("leetcode.refreshExplorer", () => leetCodeTreeDataProvider.refresh()),
-            vscode.commands.registerCommand("leetcode.testSolution", (uri?: vscode.Uri) => test.testSolution(uri)),
-            vscode.commands.registerCommand("leetcode.submitSolution", (uri?: vscode.Uri) => submit.submitSolution(uri)),
+            vscode.commands.registerCommand("leetcode.testSolution", (uri?: vscode.Uri) => {
+                TrackData.report({
+                    event_key: `vscode_runCode`,
+                    type: "click",
+                    extra: JSON.stringify({
+                        path: uri?.path,
+                    }),
+                });
+                return test.testSolution(uri);
+            }),
+            vscode.commands.registerCommand("leetcode.submitSolution", (uri?: vscode.Uri) => {
+                TrackData.report({
+                    event_key: `vscode_submit`,
+                    type: "click",
+                    extra: JSON.stringify({
+                        path: uri?.path,
+                    }),
+                });
+                return submit.submitSolution(uri);
+            }),
             vscode.commands.registerCommand("leetcode.switchDefaultLanguage", () => switchDefaultLanguage()),
             vscode.commands.registerCommand("leetcode.addFavorite", (node: LeetCodeNode) => star.addFavorite(node)),
             vscode.commands.registerCommand("leetcode.removeFavorite", (node: LeetCodeNode) => star.removeFavorite(node)),
-            vscode.commands.registerCommand("leetcode.problems.sort", () => plugin.switchSortingStrategy()),
+            vscode.commands.registerCommand("leetcode.problems.sort", () => plugin.switchSortingStrategy())
         );
 
         await leetCodeExecutor.switchEndpoint(plugin.getLeetCodeEndpoint());
         await leetCodeManager.getLoginStatus();
+        vscode.window.registerUriHandler({ handleUri: leetCodeManager.handleUriSignIn });
     } catch (error) {
         leetCodeChannel.appendLine(error.toString());
         promptForOpenOutputChannel("Extension initialization failed. Please open output channel for details.", DialogType.error);
diff --git a/src/globalState.ts b/src/globalState.ts
new file mode 100644
index 00000000..49d38421
--- /dev/null
+++ b/src/globalState.ts
@@ -0,0 +1,55 @@
+// Copyright (c) leo.zhao. All rights reserved.
+// Licensed under the MIT license.
+
+import * as vscode from "vscode";
+
+const CookieKey = "leetcode-cookie";
+const UserStatusKey = "leetcode-user-status";
+
+export type UserDataType = {
+    isSignedIn: boolean;
+    isPremium: boolean;
+    username: string;
+    avatar: string;
+    isVerified?: boolean;
+};
+
+class GlobalState {
+    private context: vscode.ExtensionContext;
+    private _state: vscode.Memento;
+    private _cookie: string;
+    private _userStatus: UserDataType;
+
+    public initialize(context: vscode.ExtensionContext): void {
+        this.context = context;
+        this._state = this.context.globalState;
+    }
+
+    public setCookie(cookie: string): any {
+        this._cookie = cookie;
+        return this._state.update(CookieKey, this._cookie);
+    }
+    public getCookie(): string | undefined {
+        return this._cookie ?? this._state.get(CookieKey);
+    }
+
+    public setUserStatus(userStatus: UserDataType): any {
+        this._userStatus = userStatus;
+        return this._state.update(UserStatusKey, this._userStatus);
+    }
+
+    public getUserStatus(): UserDataType | undefined {
+        return this._userStatus ?? this._state.get(UserStatusKey);
+    }
+
+    public removeCookie(): void {
+        this._state.update(CookieKey, undefined);
+    }
+
+    public removeAll(): void {
+        this._state.update(CookieKey, undefined);
+        this._state.update(UserStatusKey, undefined);
+    }
+}
+
+export const globalState: GlobalState = new GlobalState();
diff --git a/src/leetCodeManager.ts b/src/leetCodeManager.ts
index 089390d3..1b2d4af2 100644
--- a/src/leetCodeManager.ts
+++ b/src/leetCodeManager.ts
@@ -6,10 +6,14 @@ import { EventEmitter } from "events";
 import * as vscode from "vscode";
 import { leetCodeChannel } from "./leetCodeChannel";
 import { leetCodeExecutor } from "./leetCodeExecutor";
-import { IQuickItemEx, loginArgsMapping, UserStatus } from "./shared";
+import { Endpoint, loginArgsMapping, urls, urlsCn, UserStatus } from "./shared";
 import { createEnvOption } from "./utils/cpUtils";
-import { DialogType, promptForOpenOutputChannel } from "./utils/uiUtils";
+import { DialogType, openUrl, promptForOpenOutputChannel } from "./utils/uiUtils";
 import * as wsl from "./utils/wslUtils";
+import { getLeetCodeEndpoint } from "./commands/plugin";
+import { globalState } from "./globalState";
+import { queryUserData } from "./request/query-user-data";
+import { parseQuery, sleep } from "./utils/toolUtils";
 
 class LeetCodeManager extends EventEmitter {
     private currentUser: string | undefined;
@@ -21,6 +25,7 @@ class LeetCodeManager extends EventEmitter {
         super();
         this.currentUser = undefined;
         this.userStatus = UserStatus.SignedOut;
+        this.handleUriSignIn = this.handleUriSignIn.bind(this);
     }
 
     public async getLoginStatus(): Promise<void> {
@@ -31,118 +36,40 @@ class LeetCodeManager extends EventEmitter {
         } catch (error) {
             this.currentUser = undefined;
             this.userStatus = UserStatus.SignedOut;
+            globalState.removeAll();
         } finally {
             this.emit("statusChanged");
         }
     }
 
-    public async signIn(): Promise<void> {
-        const picks: Array<IQuickItemEx<string>> = [];
-        picks.push(
-            {
-                label: "LeetCode Account",
-                detail: "Use LeetCode account to login (US endpoint is not supported)",
-                value: "LeetCode",
-            },
-            {
-                label: "Third-Party: GitHub",
-                detail: "Use GitHub account to login",
-                value: "GitHub",
-            },
-            {
-                label: "Third-Party: LinkedIn",
-                detail: "Use LinkedIn account to login",
-                value: "LinkedIn",
-            },
-            {
-                label: "LeetCode Cookie",
-                detail: "Use LeetCode cookie copied from browser to login",
-                value: "Cookie",
-            },
-        );
-        const choice: IQuickItemEx<string> | undefined = await vscode.window.showQuickPick(picks);
-        if (!choice) {
-            return;
-        }
-        const loginMethod: string = choice.value;
-        const commandArg: string | undefined = loginArgsMapping.get(loginMethod);
-        if (!commandArg) {
-            throw new Error(`The login method "${loginMethod}" is not supported.`);
-        }
-        const isByCookie: boolean = loginMethod === "Cookie";
-        const inMessage: string = isByCookie ? "sign in by cookie" : "sign in";
+    public async handleUriSignIn(uri: vscode.Uri): Promise<void> {
         try {
-            const userName: string | undefined = await new Promise(async (resolve: (res: string | undefined) => void, reject: (e: Error) => void): Promise<void> => {
-
-                const leetCodeBinaryPath: string = await leetCodeExecutor.getLeetCodeBinaryPath();
-
-                const childProc: cp.ChildProcess = wsl.useWsl()
-                    ? cp.spawn("wsl", [leetCodeExecutor.node, leetCodeBinaryPath, "user", commandArg], { shell: true })
-                    : cp.spawn(leetCodeExecutor.node, [leetCodeBinaryPath, "user", commandArg], {
-                        shell: true,
-                        env: createEnvOption(),
-                    });
-
-                childProc.stdout?.on("data", async (data: string | Buffer) => {
-                    data = data.toString();
-                    leetCodeChannel.append(data);
-                    if (data.includes("twoFactorCode")) {
-                        const twoFactor: string | undefined = await vscode.window.showInputBox({
-                            prompt: "Enter two-factor code.",
-                            ignoreFocusOut: true,
-                            validateInput: (s: string): string | undefined => s && s.trim() ? undefined : "The input must not be empty",
-                        });
-                        if (!twoFactor) {
-                            childProc.kill();
-                            return resolve(undefined);
-                        }
-                        childProc.stdin?.write(`${twoFactor}\n`);
-                    }
-                    const successMatch: RegExpMatchArray | null = data.match(this.successRegex);
-                    if (successMatch && successMatch[1]) {
-                        childProc.stdin?.end();
-                        return resolve(successMatch[1]);
-                    } else if (data.match(this.failRegex)) {
-                        childProc.stdin?.end();
-                        return reject(new Error("Faile to login"));
-                    }
-                });
-
-                childProc.stderr?.on("data", (data: string | Buffer) => leetCodeChannel.append(data.toString()));
-
-                childProc.on("error", reject);
-                const name: string | undefined = await vscode.window.showInputBox({
-                    prompt: "Enter username or E-mail.",
-                    ignoreFocusOut: true,
-                    validateInput: (s: string): string | undefined => s && s.trim() ? undefined : "The input must not be empty",
-                });
-                if (!name) {
-                    childProc.kill();
-                    return resolve(undefined);
+            await vscode.window.withProgress({ location: vscode.ProgressLocation.Notification }, async (progress: vscode.Progress<{}>) => {
+                progress.report({ message: "Fetching user data..." });
+                const queryParams = parseQuery(uri.query);
+                const cookie = queryParams["cookie"];
+                if (!cookie) {
+                    promptForOpenOutputChannel(`Failed to get cookie. Please log in again`, DialogType.error);
+                    return;
                 }
-                childProc.stdin?.write(`${name}\n`);
-                const pwd: string | undefined = await vscode.window.showInputBox({
-                    prompt: isByCookie ? "Enter cookie" : "Enter password.",
-                    password: true,
-                    ignoreFocusOut: true,
-                    validateInput: (s: string): string | undefined => s ? undefined : isByCookie ? "Cookie must not be empty" : "Password must not be empty",
-                });
-                if (!pwd) {
-                    childProc.kill();
-                    return resolve(undefined);
+                globalState.setCookie(cookie);
+                const data = await queryUserData();
+                globalState.setUserStatus(data);
+                await this.setCookieToCli(cookie, data.username);
+                if (data.username) {
+                    vscode.window.showInformationMessage(`Successfully ${data.username}.`);
+                    this.currentUser = data.username;
+                    this.userStatus = UserStatus.SignedIn;
+                    this.emit("statusChanged");
                 }
-                childProc.stdin?.write(`${pwd}\n`);
             });
-            if (userName) {
-                vscode.window.showInformationMessage(`Successfully ${inMessage}.`);
-                this.currentUser = userName;
-                this.userStatus = UserStatus.SignedIn;
-                this.emit("statusChanged");
-            }
         } catch (error) {
-            promptForOpenOutputChannel(`Failed to ${inMessage}. Please open the output channel for details`, DialogType.error);
+            promptForOpenOutputChannel(`Failed to log in. Please open the output channel for details`, DialogType.error);
         }
+    }
 
+    public async signIn(): Promise<void> {
+        openUrl(this.getAuthLoginUrl());
     }
 
     public async signOut(): Promise<void> {
@@ -151,6 +78,7 @@ class LeetCodeManager extends EventEmitter {
             vscode.window.showInformationMessage("Successfully signed out.");
             this.currentUser = undefined;
             this.userStatus = UserStatus.SignedOut;
+            globalState.removeAll();
             this.emit("statusChanged");
         } catch (error) {
             // swallow the error when sign out.
@@ -174,6 +102,51 @@ class LeetCodeManager extends EventEmitter {
 
         return "Unknown";
     }
+
+    public getAuthLoginUrl(): string {
+        switch (getLeetCodeEndpoint()) {
+            case Endpoint.LeetCodeCN:
+                return urlsCn.authLoginUrl;
+            case Endpoint.LeetCode:
+            default:
+                return urls.authLoginUrl;
+        }
+    }
+
+    public setCookieToCli(cookie: string, name: string): Promise<void> {
+        return new Promise(async (resolve: (res: void) => void, reject: (e: Error) => void) => {
+            const leetCodeBinaryPath: string = await leetCodeExecutor.getLeetCodeBinaryPath();
+
+            const childProc: cp.ChildProcess = wsl.useWsl()
+                ? cp.spawn("wsl", [leetCodeExecutor.node, leetCodeBinaryPath, "user", loginArgsMapping.get("Cookie") ?? ""], {
+                      shell: true,
+                  })
+                : cp.spawn(leetCodeExecutor.node, [leetCodeBinaryPath, "user", loginArgsMapping.get("Cookie") ?? ""], {
+                      shell: true,
+                      env: createEnvOption(),
+                  });
+
+            childProc.stdout?.on("data", async (data: string | Buffer) => {
+                data = data.toString();
+                leetCodeChannel.append(data);
+                const successMatch: RegExpMatchArray | null = data.match(this.successRegex);
+                if (successMatch && successMatch[1]) {
+                    childProc.stdin?.end();
+                    return resolve();
+                } else if (data.match(this.failRegex)) {
+                    childProc.stdin?.end();
+                    return reject(new Error("Faile to login"));
+                }
+            });
+
+            childProc.stderr?.on("data", (data: string | Buffer) => leetCodeChannel.append(data.toString()));
+
+            childProc.on("error", reject);
+            childProc.stdin?.write(`${name}\n`);
+            await sleep(800);
+            childProc.stdin?.write(`${cookie}\n`);
+        });
+    }
 }
 
 export const leetCodeManager: LeetCodeManager = new LeetCodeManager();
diff --git a/src/request/query-user-data.ts b/src/request/query-user-data.ts
new file mode 100644
index 00000000..ffcca1e1
--- /dev/null
+++ b/src/request/query-user-data.ts
@@ -0,0 +1,25 @@
+import { UserDataType } from "../globalState";
+import { getUrl } from "../shared";
+import { LcAxios } from "../utils/httpUtils";
+
+const graphqlStr = `
+    query globalData {
+        userStatus {
+            isPremium
+            isVerified
+            username
+            avatar
+            isSignedIn
+        }
+    }
+`;
+
+export const queryUserData = async (): Promise<UserDataType> => {
+    return LcAxios(getUrl("userGraphql"), {
+        method: "POST",
+        data: {
+            query: graphqlStr,
+            variables: {},
+        },
+    }).then((res) => res.data.data.userStatus);
+};
diff --git a/src/shared.ts b/src/shared.ts
index 84b529cc..8c6a825a 100644
--- a/src/shared.ts
+++ b/src/shared.ts
@@ -63,6 +63,7 @@ export enum ProblemState {
     AC = 1,
     NotAC = 2,
     Unknown = 3,
+    Locked = 4,
 }
 
 export enum Endpoint {
@@ -102,11 +103,7 @@ export enum Category {
     Favorite = "Favorite",
 }
 
-export const supportedPlugins: string[] = [
-    "company",
-    "solution.discuss",
-    "leetcode.cn",
-];
+export const supportedPlugins: string[] = ["company", "solution.discuss", "leetcode.cn"];
 
 export enum DescriptionConfiguration {
     InWebView = "In Webview",
@@ -124,3 +121,36 @@ export enum SortingStrategy {
     FrequencyAsc = "Frequency (Ascending)",
     FrequencyDesc = "Frequency (Descending)",
 }
+
+export const PREMIUM_URL_CN = "https://leetcode.cn/premium-payment/?source=vscode";
+export const PREMIUM_URL_GLOBAL = "https://leetcode.com/subscribe/?ref=lp_pl&source=vscode";
+
+export const urls = {
+    // base urls
+    base: "https://leetcode.com",
+    graphql: "https://leetcode.com/graphql",
+    userGraphql: "https://leetcode.com/graphql",
+    login: "https://leetcode.com/accounts/login/",
+    authLoginUrl: "https://leetcode.com/authorize-login/vscode/?path=leetcode.vscode-leetcode",
+};
+
+export const urlsCn = {
+    // base urls
+    base: "https://leetcode.cn",
+    graphql: "https://leetcode.cn/graphql",
+    userGraphql: "https://leetcode.cn/graphql/noj-go/",
+    login: "https://leetcode.cn/accounts/login/",
+    authLoginUrl: "https://leetcode.cn/authorize-login/vscode/?path=leetcode.vscode-leetcode",
+};
+
+export const getUrl = (key: string) => {
+    const leetCodeConfig: vscode.WorkspaceConfiguration = vscode.workspace.getConfiguration("leetcode");
+    const point = leetCodeConfig.get<string>("endpoint", Endpoint.LeetCode);
+    switch (point) {
+        case Endpoint.LeetCodeCN:
+            return urlsCn[key];
+        case Endpoint.LeetCode:
+        default:
+            return urls[key];
+    }
+};
diff --git a/src/utils/httpUtils.ts b/src/utils/httpUtils.ts
new file mode 100644
index 00000000..aa6e205d
--- /dev/null
+++ b/src/utils/httpUtils.ts
@@ -0,0 +1,28 @@
+import axios, { AxiosRequestConfig, AxiosPromise } from "axios";
+import { omit } from "lodash";
+import { globalState } from "../globalState";
+import { DialogType, promptForOpenOutputChannel } from "./uiUtils";
+
+const referer = "vscode-lc-extension";
+
+export function LcAxios<T = any>(path: string, settings?: AxiosRequestConfig): AxiosPromise<T> {
+    const cookie = globalState.getCookie();
+    if (!cookie) {
+        promptForOpenOutputChannel(
+            `Failed to obtain the cookie. Please log in again.`,
+            DialogType.error
+        );
+        return Promise.reject("Failed to obtain the cookie.");
+    }
+    return axios(path, {
+        headers: {
+            referer: referer,
+            "content-type": "application/json",
+            cookie,
+            ...(settings && settings.headers),
+        },
+        xsrfCookieName: "csrftoken",
+        xsrfHeaderName: "X-CSRFToken",
+        ...(settings && omit(settings, "headers")),
+    });
+}
diff --git a/src/utils/toolUtils.ts b/src/utils/toolUtils.ts
new file mode 100644
index 00000000..6437226d
--- /dev/null
+++ b/src/utils/toolUtils.ts
@@ -0,0 +1,26 @@
+export function sleep(ms) {
+    return new Promise((resolve) => setTimeout(resolve, ms));
+}
+
+export function parseQuery(query: string): { [key: string]: string } {
+    const queryObject: { [key: string]: string } = {};
+
+    if (!query) {
+        return queryObject;
+    }
+
+    let keyValuePairs = query.split("&");
+    keyValuePairs.forEach((pair) => {
+        const firstEqualsIndex = pair.indexOf("=");
+        if (firstEqualsIndex !== -1) {
+            const key = pair.substring(0, firstEqualsIndex);
+            const value = pair.substring(firstEqualsIndex + 1);
+            queryObject[decodeURIComponent(key)] = decodeURIComponent(value);
+        } else {
+            // If no equals sign is found, treat the whole string as key with empty value
+            queryObject[decodeURIComponent(pair)] = "";
+        }
+    });
+
+    return queryObject;
+}
diff --git a/src/utils/trackingUtils.ts b/src/utils/trackingUtils.ts
new file mode 100644
index 00000000..4333bfae
--- /dev/null
+++ b/src/utils/trackingUtils.ts
@@ -0,0 +1,130 @@
+import * as vscode from "vscode";
+import axios from "axios";
+import { getLeetCodeEndpoint } from "../commands/plugin";
+import { Endpoint } from "../shared";
+import { leetCodeManager } from "../leetCodeManager";
+
+const getTimeZone = (): string => {
+    const endPoint: string = getLeetCodeEndpoint();
+    if (endPoint === Endpoint.LeetCodeCN) {
+        return "Asia/Shanghai";
+    } else {
+        return "UTC";
+    }
+};
+
+interface IReportData {
+    event_key: string;
+    type?: "click" | "expose" | string;
+    anonymous_id?: string;
+    tid?: number;
+    ename?: string; // event name
+    href?: string;
+    referer?: string;
+    extra?: string;
+    target?: string;
+}
+
+interface ITrackData {
+    reportCache: IReportData[];
+    isSubmit: boolean;
+    report: (reportItems: IReportData | IReportData[]) => void;
+    submitReport: (useSendBeason: boolean) => Promise<void>;
+    reportUrl: string;
+}
+
+const testReportUrl = "https://analysis.lingkou.xyz/i/event";
+const prodReportUrl = "https://analysis.leetcode.cn/i/event";
+
+function getReportUrl() {
+    if (process.env.NODE_ENV === "production") {
+        return prodReportUrl;
+    } else {
+        return testReportUrl;
+    }
+}
+
+const _charStr = "abacdefghjklmnopqrstuvwxyzABCDEFGHJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_+=";
+
+function RandomIndex(min: number, max: number, i: number) {
+    let index = Math.floor(Math.random() * (max - min + 1) + min);
+    const numStart = _charStr.length - 10;
+    if (i === 0 && index >= numStart) {
+        index = RandomIndex(min, max, i);
+    }
+    return index;
+}
+
+function getRandomString(len: number) {
+    const min = 0;
+    const max = _charStr.length - 1;
+    let _str = "";
+    len = len || 15;
+    for (let i = 0, index; i < len; i++) {
+        index = RandomIndex(min, max, i);
+        _str += _charStr[index];
+    }
+    return _str;
+}
+
+function getAllowReportDataConfig() {
+    const leetCodeConfig = vscode.workspace.getConfiguration("leetcode");
+    const allowReportData = !!leetCodeConfig.get<boolean>("allowReportData");
+    return allowReportData;
+}
+
+class TrackData implements ITrackData {
+    public reportCache: IReportData[] = [];
+
+    public isSubmit: boolean = false;
+
+    public reportUrl: string = getReportUrl();
+
+    private sendTimer: NodeJS.Timeout | undefined;
+
+    public report = (reportItems: IReportData | IReportData[]) => {
+        if (!getAllowReportDataConfig()) return;
+
+        this.sendTimer && clearTimeout(this.sendTimer);
+
+        if (!Array.isArray(reportItems)) {
+            reportItems = [reportItems];
+        }
+        let randomId = getRandomString(60);
+        reportItems.forEach((item) => {
+            this.reportCache.push({
+                ...item,
+                referer: "vscode",
+                target: leetCodeManager.getUser() ?? "",
+                anonymous_id: item.anonymous_id ?? (randomId as string),
+            });
+        });
+        this.sendTimer = setTimeout(this.submitReport, 800);
+    };
+
+    public submitReport = async () => {
+        if (!getAllowReportDataConfig()) return;
+        const dataList = JSON.stringify(this.reportCache);
+
+        if (!this.reportCache.length || this.isSubmit) {
+            return;
+        }
+        this.reportCache = [];
+        try {
+            this.isSubmit = true;
+            axios.defaults.withCredentials = true;
+            await axios.post(this.reportUrl, `dataList=${encodeURIComponent(dataList)}`, {
+                headers: {
+                    "Content-Type": "application/x-www-form-urlencoded",
+                    "x-timezone": getTimeZone(),
+                },
+            });
+        } catch (e) {
+            this.reportCache = this.reportCache.concat(JSON.parse(dataList));
+        } finally {
+            this.isSubmit = false;
+        }
+    };
+}
+
+export default new TrackData();
diff --git a/src/webview/leetCodePreviewProvider.ts b/src/webview/leetCodePreviewProvider.ts
index 78b40991..86060de5 100644
--- a/src/webview/leetCodePreviewProvider.ts
+++ b/src/webview/leetCodePreviewProvider.ts
@@ -8,7 +8,6 @@ import { ILeetCodeWebviewOption, LeetCodeWebview } from "./LeetCodeWebview";
 import { markdownEngine } from "./markdownEngine";
 
 class LeetCodePreviewProvider extends LeetCodeWebview {
-
     protected readonly viewType: string = "leetcode.preview";
     private node: IProblem;
     private description: IDescription;
@@ -23,11 +22,6 @@ class LeetCodePreviewProvider extends LeetCodeWebview {
         this.node = node;
         this.sideMode = isSideMode;
         this.showWebviewInternal();
-        // Comment out this operation since it sometimes may cause the webview become empty.
-        // Waiting for the progress of the VS Code side issue: https://github.com/microsoft/vscode/issues/3742
-        // if (this.sideMode) {
-        //     this.hideSideBar(); // For better view area
-        // }
     }
 
     protected getWebviewOption(): ILeetCodeWebviewOption {
@@ -46,7 +40,7 @@ class LeetCodePreviewProvider extends LeetCodeWebview {
     }
 
     protected getWebviewContent(): string {
-        const button: { element: string, script: string, style: string } = {
+        const button: { element: string; script: string; style: string } = {
             element: `<button id="solve">Code Now</button>`,
             script: `const button = document.getElementById('solve');
                     button.onclick = () => vscode.postMessage({
@@ -73,32 +67,26 @@ class LeetCodePreviewProvider extends LeetCodeWebview {
         };
         const { title, url, category, difficulty, likes, dislikes, body } = this.description;
         const head: string = markdownEngine.render(`# [${title}](${url})`);
-        const info: string = markdownEngine.render([
-            `| Category | Difficulty | Likes | Dislikes |`,
-            `| :------: | :--------: | :---: | :------: |`,
-            `| ${category} | ${difficulty} | ${likes} | ${dislikes} |`,
-        ].join("\n"));
+        const info: string = markdownEngine.render(
+            [
+                `| Category | Difficulty | Likes | Dislikes |`,
+                `| :------: | :--------: | :---: | :------: |`,
+                `| ${category} | ${difficulty} | ${likes} | ${dislikes} |`,
+            ].join("\n")
+        );
         const tags: string = [
             `<details>`,
             `<summary><strong>Tags</strong></summary>`,
-            markdownEngine.render(
-                this.description.tags
-                    .map((t: string) => `[\`${t}\`](https://leetcode.com/tag/${t})`)
-                    .join(" | "),
-            ),
+            markdownEngine.render(this.description.tags.map((t: string) => `[\`${t}\`](${this.getTagLink(t)})`).join(" | ")),
             `</details>`,
         ].join("\n");
         const companies: string = [
             `<details>`,
             `<summary><strong>Companies</strong></summary>`,
-            markdownEngine.render(
-                this.description.companies
-                    .map((c: string) => `\`${c}\``)
-                    .join(" | "),
-            ),
+            markdownEngine.render(this.description.companies.map((c: string) => `\`${c}\``).join(" | ")),
             `</details>`,
         ].join("\n");
-        const links: string = markdownEngine.render(`[Discussion](${this.getDiscussionLink(url)}) | [Solution](${this.getSolutionLink(url)})`);
+        const links: string = markdownEngine.render(`[Submissions](${this.getSubmissionsLink(url)}) | [Solution](${this.getSolutionsLink(url)})`);
         return `
             <!DOCTYPE html>
             <html>
@@ -149,18 +137,23 @@ class LeetCodePreviewProvider extends LeetCodeWebview {
 
     private parseDescription(descString: string, problem: IProblem): IDescription {
         const [
-            /* title */, ,
-            url, ,
-            /* tags */, ,
-            /* langs */, ,
-            category,
+            ,
+            ,
+            /* title */ url,
+            ,
+            ,
+            ,
+            ,
+            ,
+            /* tags */ /* langs */ category,
             difficulty,
             likes,
             dislikes,
-            /* accepted */,
-            /* submissions */,
-            /* testcase */, ,
-            ...body
+            ,
+            ,
+            ,
+            ,
+            /* accepted */ /* submissions */ /* testcase */ ...body
         ] = descString.split("\n");
         return {
             title: problem.name,
@@ -175,19 +168,22 @@ class LeetCodePreviewProvider extends LeetCodeWebview {
         };
     }
 
-    private getDiscussionLink(url: string): string {
+    private getTagLink(tag: string): string {
         const endPoint: string = getLeetCodeEndpoint();
         if (endPoint === Endpoint.LeetCodeCN) {
-            return url.replace("/description/", "/comments/");
+            return `https://leetcode.cn/tag/${tag}?source=vscode`;
         } else if (endPoint === Endpoint.LeetCode) {
-            return url.replace("/description/", "/discuss/?currentPage=1&orderBy=most_votes&query=");
+            return `https://leetcode.com/tag/${tag}?source=vscode`;
         }
 
-        return "https://leetcode.com";
+        return "https://leetcode.com?source=vscode";
     }
 
-    private getSolutionLink(url: string): string {
-        return url.replace("/description/", "/solution/");
+    private getSolutionsLink(url: string): string {
+        return url.replace("/description/", "/solutions/") + "?source=vscode";
+    }
+    private getSubmissionsLink(url: string): string {
+        return url.replace("/description/", "/submissions/") + "?source=vscode";
     }
 }
 

From b495812689351b5bdd043187ed143968510d799a Mon Sep 17 00:00:00 2001
From: tomoyachen <42526054+tomoyachen@users.noreply.github.com>
Date: Fri, 26 Jul 2024 15:43:28 +0800
Subject: [PATCH 88/92] fix: fix login issue in VS Code Insiders (#966) (#968)

ogin issue on VS Code Insiders #968
---
 src/shared.ts | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/shared.ts b/src/shared.ts
index 8c6a825a..2301f7f6 100644
--- a/src/shared.ts
+++ b/src/shared.ts
@@ -125,13 +125,15 @@ export enum SortingStrategy {
 export const PREMIUM_URL_CN = "https://leetcode.cn/premium-payment/?source=vscode";
 export const PREMIUM_URL_GLOBAL = "https://leetcode.com/subscribe/?ref=lp_pl&source=vscode";
 
+const protocol = vscode.env.appName.includes('Insiders') ? "vscode-insiders" : "vscode"
+
 export const urls = {
     // base urls
     base: "https://leetcode.com",
     graphql: "https://leetcode.com/graphql",
     userGraphql: "https://leetcode.com/graphql",
     login: "https://leetcode.com/accounts/login/",
-    authLoginUrl: "https://leetcode.com/authorize-login/vscode/?path=leetcode.vscode-leetcode",
+    authLoginUrl: `https://leetcode.com/authorize-login/${protocol}/?path=leetcode.vscode-leetcode`,
 };
 
 export const urlsCn = {
@@ -140,7 +142,7 @@ export const urlsCn = {
     graphql: "https://leetcode.cn/graphql",
     userGraphql: "https://leetcode.cn/graphql/noj-go/",
     login: "https://leetcode.cn/accounts/login/",
-    authLoginUrl: "https://leetcode.cn/authorize-login/vscode/?path=leetcode.vscode-leetcode",
+    authLoginUrl: `https://leetcode.cn/authorize-login/${protocol}/?path=leetcode.vscode-leetcode`,
 };
 
 export const getUrl = (key: string) => {

From bbc041da250ccd2032d36318de2e71bc76e60ca6 Mon Sep 17 00:00:00 2001
From: tomoyachen <42526054+tomoyachen@users.noreply.github.com>
Date: Tue, 30 Jul 2024 14:15:10 +0800
Subject: [PATCH 89/92] feat: re-add cookie-based login method (#969)

* feat: re-add cookie-based login method

* chore: optimize tslint config

* chore : change build.yml

---------

Co-authored-by: leo.zhao <zale0201@gmail.com>
---
 .github/workflows/build.yml | 21 ----------
 .vscode/settings.json       |  2 +-
 src/leetCodeManager.ts      | 83 ++++++++++++++++++++++++++++++-------
 src/utils/httpUtils.ts      |  2 +-
 src/utils/toolUtils.ts      |  2 +-
 src/utils/trackingUtils.ts  |  2 +-
 tslint.json                 | 44 ++++++++------------
 7 files changed, 89 insertions(+), 67 deletions(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 2bdeaa49..dd9a1c24 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -48,24 +48,3 @@ jobs:
 
       - name: VSCE Packge
         run: npx vsce package
-
-  darwin:
-    name: macOS
-    runs-on: macos-latest
-    timeout-minutes: 30
-    steps:
-      - uses: actions/checkout@v2
-
-      - name: Setup Node.js environment
-        uses: actions/setup-node@v2
-        with:
-          node-version: 14
-
-      - name: Install Node.js modules
-        run: npm install
-
-      - name: Lint
-        run: npm run lint
-
-      - name: VSCE Packge
-        run: npx vsce package
diff --git a/.vscode/settings.json b/.vscode/settings.json
index b5f72312..5e5ca483 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -1,5 +1,5 @@
 {
-    "editor.formatOnSave": true,
+    "editor.formatOnSave": false,
     "editor.insertSpaces": true,
     "editor.tabSize": 4,
     "files.insertFinalNewline": true,
diff --git a/src/leetCodeManager.ts b/src/leetCodeManager.ts
index 1b2d4af2..16ec3782 100644
--- a/src/leetCodeManager.ts
+++ b/src/leetCodeManager.ts
@@ -6,14 +6,14 @@ import { EventEmitter } from "events";
 import * as vscode from "vscode";
 import { leetCodeChannel } from "./leetCodeChannel";
 import { leetCodeExecutor } from "./leetCodeExecutor";
-import { Endpoint, loginArgsMapping, urls, urlsCn, UserStatus } from "./shared";
+import { Endpoint, IQuickItemEx, loginArgsMapping, urls, urlsCn, UserStatus } from "./shared";
 import { createEnvOption } from "./utils/cpUtils";
 import { DialogType, openUrl, promptForOpenOutputChannel } from "./utils/uiUtils";
 import * as wsl from "./utils/wslUtils";
 import { getLeetCodeEndpoint } from "./commands/plugin";
 import { globalState } from "./globalState";
 import { queryUserData } from "./request/query-user-data";
-import { parseQuery, sleep } from "./utils/toolUtils";
+import { parseQuery } from "./utils/toolUtils";
 
 class LeetCodeManager extends EventEmitter {
     private currentUser: string | undefined;
@@ -42,6 +42,19 @@ class LeetCodeManager extends EventEmitter {
         }
     }
 
+    private async updateUserStatusWithCookie(cookie: string): Promise<void> {
+        globalState.setCookie(cookie);
+        const data = await queryUserData();
+        globalState.setUserStatus(data);
+        await this.setCookieToCli(cookie, data.username);
+        if (data.username) {
+            vscode.window.showInformationMessage(`Successfully ${data.username}.`);
+            this.currentUser = data.username;
+            this.userStatus = UserStatus.SignedIn;
+            this.emit("statusChanged");
+        }
+    }
+
     public async handleUriSignIn(uri: vscode.Uri): Promise<void> {
         try {
             await vscode.window.withProgress({ location: vscode.ProgressLocation.Notification }, async (progress: vscode.Progress<{}>) => {
@@ -52,24 +65,61 @@ class LeetCodeManager extends EventEmitter {
                     promptForOpenOutputChannel(`Failed to get cookie. Please log in again`, DialogType.error);
                     return;
                 }
-                globalState.setCookie(cookie);
-                const data = await queryUserData();
-                globalState.setUserStatus(data);
-                await this.setCookieToCli(cookie, data.username);
-                if (data.username) {
-                    vscode.window.showInformationMessage(`Successfully ${data.username}.`);
-                    this.currentUser = data.username;
-                    this.userStatus = UserStatus.SignedIn;
-                    this.emit("statusChanged");
-                }
+
+                await this.updateUserStatusWithCookie(cookie)
+
             });
         } catch (error) {
             promptForOpenOutputChannel(`Failed to log in. Please open the output channel for details`, DialogType.error);
         }
     }
 
+    public async handleInputCookieSignIn(): Promise<void> {
+        const cookie: string | undefined = await vscode.window.showInputBox({
+            prompt: 'Enter LeetCode Cookie',
+            password: true,
+            ignoreFocusOut: true,
+            validateInput: (s: string): string | undefined =>
+                s ? undefined : 'Cookie must not be empty',
+        })
+
+        await this.updateUserStatusWithCookie(cookie || '')
+    }
+
     public async signIn(): Promise<void> {
-        openUrl(this.getAuthLoginUrl());
+        const picks: Array<IQuickItemEx<string>> = []
+        picks.push(
+            {
+                label: 'Web Authorization',
+                detail: 'Open browser to authorize login on the website',
+                value: 'WebAuth',
+                description: '[Recommended]'
+            },
+            {
+                label: 'LeetCode Cookie',
+                detail: 'Use LeetCode cookie copied from browser to login',
+                value: 'Cookie',
+            }
+        )
+
+        const choice: IQuickItemEx<string> | undefined = await vscode.window.showQuickPick(picks)
+        if (!choice) {
+            return
+        }
+        const loginMethod: string = choice.value
+
+        if (loginMethod === 'WebAuth') {
+            openUrl(this.getAuthLoginUrl())
+            return
+        }
+
+        try {
+            await vscode.window.withProgress({ location: vscode.ProgressLocation.Notification, title: "Fetching user data..." }, async () => {
+                await this.handleInputCookieSignIn()
+            });
+        } catch (error) {
+            promptForOpenOutputChannel(`Failed to log in. Please open the output channel for details`, DialogType.error);
+        }
     }
 
     public async signOut(): Promise<void> {
@@ -136,15 +186,16 @@ class LeetCodeManager extends EventEmitter {
                 } else if (data.match(this.failRegex)) {
                     childProc.stdin?.end();
                     return reject(new Error("Faile to login"));
+                } else if (data.match(/login: /)) {
+                    childProc.stdin?.write(`${name}\n`);
+                } else if (data.match(/cookie: /)) {
+                    childProc.stdin?.write(`${cookie}\n`);
                 }
             });
 
             childProc.stderr?.on("data", (data: string | Buffer) => leetCodeChannel.append(data.toString()));
 
             childProc.on("error", reject);
-            childProc.stdin?.write(`${name}\n`);
-            await sleep(800);
-            childProc.stdin?.write(`${cookie}\n`);
         });
     }
 }
diff --git a/src/utils/httpUtils.ts b/src/utils/httpUtils.ts
index aa6e205d..b7771734 100644
--- a/src/utils/httpUtils.ts
+++ b/src/utils/httpUtils.ts
@@ -16,7 +16,7 @@ export function LcAxios<T = any>(path: string, settings?: AxiosRequestConfig): A
     }
     return axios(path, {
         headers: {
-            referer: referer,
+            referer,
             "content-type": "application/json",
             cookie,
             ...(settings && settings.headers),
diff --git a/src/utils/toolUtils.ts b/src/utils/toolUtils.ts
index 6437226d..ce37e185 100644
--- a/src/utils/toolUtils.ts
+++ b/src/utils/toolUtils.ts
@@ -9,7 +9,7 @@ export function parseQuery(query: string): { [key: string]: string } {
         return queryObject;
     }
 
-    let keyValuePairs = query.split("&");
+    const keyValuePairs = query.split("&");
     keyValuePairs.forEach((pair) => {
         const firstEqualsIndex = pair.indexOf("=");
         if (firstEqualsIndex !== -1) {
diff --git a/src/utils/trackingUtils.ts b/src/utils/trackingUtils.ts
index 4333bfae..56b1a6fb 100644
--- a/src/utils/trackingUtils.ts
+++ b/src/utils/trackingUtils.ts
@@ -90,7 +90,7 @@ class TrackData implements ITrackData {
         if (!Array.isArray(reportItems)) {
             reportItems = [reportItems];
         }
-        let randomId = getRandomString(60);
+        const randomId = getRandomString(60);
         reportItems.forEach((item) => {
             this.reportCache.push({
                 ...item,
diff --git a/tslint.json b/tslint.json
index 34776be7..a686a2c7 100644
--- a/tslint.json
+++ b/tslint.json
@@ -1,36 +1,28 @@
 {
     "defaultSeverity": "error",
-    "extends": [
-        "tslint:recommended"
-    ],
+    "extends": ["tslint:recommended"],
     "jsRules": {},
     "rules": {
-        "forin": false,
         "object-literal-sort-keys": false,
-        "indent": [
-            true,
-            "spaces"
-        ],
+        "ordered-imports": [false],
+        "indent": [true, "spaces"],
         "no-string-literal": false,
         "no-namespace": false,
-        "max-line-length": [
-            false,
-            120
-        ],
-        "typedef": [
-            true,
-            "call-signature",
-            "arrow-call-signature",
-            "parameter",
-            "arrow-parameter",
-            "property-declaration",
-            "variable-declaration",
-            "member-variable-declaration"
-        ],
-        "variable-name": [
-            true,
-            "allow-leading-underscore"
-        ]
+        "max-line-length": [false, 120],
+        "typedef": false,
+        "no-implicit-dependencies": [true, ["vscode"]],
+        "trailing-comma": false,
+        "no-any": false,
+        "object-literal-key-quotes": [true, "consistent-as-needed"],
+        "prefer-object-spread": false,
+        "no-unnecessary-await": false,
+        "semicolon": [false],
+        "quotemark": [false],
+        "member-ordering": [false],
+        "variable-name": [false],
+        "curly": false,
+        "interface-over-type-literal": [false],
+        "no-unused-expression": false
     },
     "rulesDirectory": []
 }

From 67101c96dc41feee1700bee854642037734511b1 Mon Sep 17 00:00:00 2001
From: "leo.zhao" <zale0201@gmail.com>
Date: Tue, 30 Jul 2024 14:34:46 +0800
Subject: [PATCH 90/92] chore(package.json): add build and publish for vscode
 in scripts config

---
 package.json | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/package.json b/package.json
index 702956c1..b270a2d3 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
     "name": "vscode-leetcode",
     "displayName": "LeetCode",
     "description": "Solve LeetCode problems in VS Code",
-    "version": "0.18.2",
+    "version": "0.18.3",
     "author": "LeetCode",
     "publisher": "LeetCode",
     "license": "MIT",
@@ -714,7 +714,9 @@
         "vscode:prepublish": "npm run compile",
         "compile": "tsc -p ./",
         "watch": "tsc -watch -p ./",
-        "lint": "tslint --project tsconfig.json -e src/*.d.ts -t verbose"
+        "lint": "tslint --project tsconfig.json -e src/*.d.ts -t verbose",
+        "build": "vsce package",
+        "vs-publish": "vsce publish"
     },
     "devDependencies": {
         "@types/fs-extra": "^9.0.11",

From 6f4292544185b0406673bf2669747aa72dcdc49a Mon Sep 17 00:00:00 2001
From: "leo.zhao" <zale0201@gmail.com>
Date: Tue, 30 Jul 2024 15:18:15 +0800
Subject: [PATCH 91/92] chore: add change log

---
 CHANGELOG.md | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0de174fc..a7d482aa 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,18 @@ All notable changes to the "leetcode" extension will be documented in this file.
 
 Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
 
+## [0.18.3]
+### Added
+- re-add cookie-based login method  [PR#969](https://github.com/LeetCode-OpenSource/vscode-leetcode/pull/969)
+
+## [0.18.2]
+### Fixed
+- fix login issue on VS Code Insiders  [PR#968](https://github.com/LeetCode-OpenSource/vscode-leetcode/pull/968)
+
+## [0.18.1]
+### Changed
+- change login way and add tracking logic option [PR#944](https://github.com/LeetCode-OpenSource/vscode-leetcode/pull/944)
+
 ## [0.18.0]
 ### Added
 - Add `star` command in shortcuts [PR#601](https://github.com/LeetCode-OpenSource/vscode-leetcode/pull/601)

From 586b3e45fe0af299775436f2e8ea2a6ed5cdb8c6 Mon Sep 17 00:00:00 2001
From: "leo.zhao" <zale0201@gmail.com>
Date: Fri, 13 Sep 2024 14:47:56 +0800
Subject: [PATCH 92/92] fix: change graphql api path

---
 CHANGELOG.md  | 4 ++++
 package.json  | 2 +-
 src/shared.ts | 2 +-
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index a7d482aa..b9d7d46e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,6 +3,10 @@ All notable changes to the "leetcode" extension will be documented in this file.
 
 Check [Keep a Changelog](http://keepachangelog.com/) for recommendations on how to structure this file.
 
+## [0.18.4]
+### Added
+- change graphql path
+
 ## [0.18.3]
 ### Added
 - re-add cookie-based login method  [PR#969](https://github.com/LeetCode-OpenSource/vscode-leetcode/pull/969)
diff --git a/package.json b/package.json
index b270a2d3..53552b74 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
     "name": "vscode-leetcode",
     "displayName": "LeetCode",
     "description": "Solve LeetCode problems in VS Code",
-    "version": "0.18.3",
+    "version": "0.18.4",
     "author": "LeetCode",
     "publisher": "LeetCode",
     "license": "MIT",
diff --git a/src/shared.ts b/src/shared.ts
index 2301f7f6..e8b59d89 100644
--- a/src/shared.ts
+++ b/src/shared.ts
@@ -140,7 +140,7 @@ export const urlsCn = {
     // base urls
     base: "https://leetcode.cn",
     graphql: "https://leetcode.cn/graphql",
-    userGraphql: "https://leetcode.cn/graphql/noj-go/",
+    userGraphql: "https://leetcode.cn/graphql/",
     login: "https://leetcode.cn/accounts/login/",
     authLoginUrl: `https://leetcode.cn/authorize-login/${protocol}/?path=leetcode.vscode-leetcode`,
 };