diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 48402586..a42781da 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -1,67 +1,76 @@
 name: Release
 
 on:
+  workflow_dispatch:
+    inputs:
+      version:
+        description: 'Release version'
+        required: true
   push:
     tags:
-      - 'v*.*'
+      - 'v6.*'
 
 jobs:
   greet:
     runs-on: ubuntu-latest
 
     steps:
-    - name: Checkout
-      uses: actions/checkout@v2
-    
-    - name: Set LD_VERSION
-      run: echo ::set-env name=LD_VERSION::${GITHUB_REF#refs/*/v}
-    
-    - name: Set up JDK 1.8
-      uses: actions/setup-java@v1
-      with:
-        java-version: 1.8
-    
-    - name: Grant execute permission for gradlew
-      run: chmod +x gradlew
-    
-    - name: Build the plugin
-      run: ./gradlew buildPlugin
-      env:
-        LD_VERSION: ${{ env.LD_VERSION }} 
-    
-    - name: Verify plugin
-      id: verify
-      uses: ChrisCarini/intellij-platform-plugin-verifier-action@latest
-      with:
-        ide-versions: |
-          ideaIC:2019.3
-          ideaIC:2020.1
-          ideaIC:2020.2
-          ideaIC:LATEST-EAP-SNAPSHOT
-    
-    - name: Print verify contents
-      run: |
-        echo "The log file path is: ${{steps.verify.outputs.verification-output-log-filename}}" ;
-        cat ${{steps.verify.outputs.verification-output-log-filename}}
-    
-    - name: Create Release
-      id: create_release
-      uses: actions/create-release@v1
-      env:
-        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-      with:
-        tag_name: ${{ github.ref }}
-        release_name: ${{ github.ref }}
-        draft: true
-        prerelease: false
-    
-    - name: Upload Release Asset
-      id: upload-release-asset 
-      uses: actions/upload-release-asset@v1
-      env:
-        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-      with:
-        upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps 
-        asset_path: ./build/distributions/leetcode-editor-${{ env.LD_VERSION }}.zip
-        asset_name: leetcode-editor-${{ env.LD_VERSION }}.zip
-        asset_content_type: application/zip      
+      - name: Checkout
+        uses: actions/checkout@v2
+
+      - name: Set LD_VERSION
+        if: ${{ github.event_name == 'push'}}
+        run: echo "LD_VERSION=${GITHUB_REF#refs/*/v}" >> $GITHUB_ENV
+      - name: Set LD_VERSION
+        if: ${{ github.event_name == 'workflow_dispatch'}}
+        run: echo "LD_VERSION=${{ github.event.inputs.version }}" >> $GITHUB_ENV
+
+      - name: Set up JDK 1.8
+        uses: actions/setup-java@v1
+        with:
+          java-version: 1.8
+
+      - name: Grant execute permission for gradlew
+        run: chmod +x gradlew
+
+      - name: Build the plugin
+        run: ./gradlew buildPlugin
+        env:
+          LD_VERSION: ${{ env.LD_VERSION }}
+
+      - name: Verify plugin
+        id: verify
+        uses: ChrisCarini/intellij-platform-plugin-verifier-action@v1.0.5
+        with:
+          failure-levels: |
+            INVALID_PLUGIN
+          ide-versions: |
+            ideaIC:2021.1
+            ideaIC:LATEST-EAP-SNAPSHOT
+
+      - name: Print verify contents
+        run: |
+          echo "The log file path is: ${{steps.verify.outputs.verification-output-log-filename}}" ;
+          cat ${{steps.verify.outputs.verification-output-log-filename}}
+
+      - name: Create Release
+        id: create_release
+        uses: actions/create-release@v1
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+        with:
+          tag_name: v${{ env.LD_VERSION }}
+          release_name: v${{ env.LD_VERSION }}
+          draft: true
+          prerelease: false
+
+      - name: Upload Release Asset
+        id: upload-release-asset
+        uses: actions/upload-release-asset@v1
+        env:
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+        with:
+          upload_url: ${{ steps.create_release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps
+          asset_path: ./build/distributions/leetcode-editor-${{ env.LD_VERSION }}.zip
+          asset_name: leetcode-editor-${{ env.LD_VERSION }}.zip
+          asset_content_type: application/zip      
diff --git a/build.gradle b/build.gradle
index 5735e127..5d03b9f0 100644
--- a/build.gradle
+++ b/build.gradle
@@ -5,7 +5,7 @@ plugins {
 }
 
 group 'com.shuzijun.leetcode'
-version (System.getenv('LD_VERSION')==null ? "6.9":System.getenv('LD_VERSION')) + (project.build_env.isEmpty() ? "" : "-") + project.build_env
+version (System.getenv('LD_VERSION')==null ? "6.11":System.getenv('LD_VERSION')) + (project.build_env.isEmpty() ? "" : "-") + project.build_env
 
 sourceCompatibility = 1.8
 targetCompatibility = 1.8
diff --git a/src/main/java/com/shuzijun/leetcode/plugin/actions/toolbar/DonateAction.java b/src/main/java/com/shuzijun/leetcode/plugin/actions/toolbar/DonateAction.java
new file mode 100644
index 00000000..08f7c9df
--- /dev/null
+++ b/src/main/java/com/shuzijun/leetcode/plugin/actions/toolbar/DonateAction.java
@@ -0,0 +1,16 @@
+package com.shuzijun.leetcode.plugin.actions.toolbar;
+
+import com.intellij.ide.BrowserUtil;
+import com.intellij.openapi.actionSystem.AnAction;
+import com.intellij.openapi.actionSystem.AnActionEvent;
+
+/**
+ * @author shuzijun
+ */
+public class DonateAction extends AnAction {
+    @Override
+    public void actionPerformed(AnActionEvent anActionEvent) {
+        BrowserUtil.browse("https://shuzijun.cn/donate.html");
+    }
+
+}
diff --git a/src/main/java/com/shuzijun/leetcode/plugin/manager/QuestionManager.java b/src/main/java/com/shuzijun/leetcode/plugin/manager/QuestionManager.java
index f9bbfbfa..ce928d31 100644
--- a/src/main/java/com/shuzijun/leetcode/plugin/manager/QuestionManager.java
+++ b/src/main/java/com/shuzijun/leetcode/plugin/manager/QuestionManager.java
@@ -251,6 +251,10 @@ public int compare(Question arg0, Question arg1) {
                         return -1;
                     } else if (frontendId1.equals(dayQuestion)) {
                         return 1;
+                    } else if (StringUtils.isBlank(frontendId0)) {
+                        return 1;
+                    } else if (StringUtils.isBlank(frontendId1)) {
+                        return -1;
                     } else if (StringUtils.isNumeric(frontendId0) && StringUtils.isNumeric(frontendId1)) {
                         return Integer.valueOf(frontendId0).compareTo(Integer.valueOf(frontendId1));
                     } else if (StringUtils.isNumeric(frontendId0)) {
diff --git a/src/main/java/com/shuzijun/leetcode/plugin/model/Question.java b/src/main/java/com/shuzijun/leetcode/plugin/model/Question.java
index 240f13ec..ebc258fa 100644
--- a/src/main/java/com/shuzijun/leetcode/plugin/model/Question.java
+++ b/src/main/java/com/shuzijun/leetcode/plugin/model/Question.java
@@ -197,11 +197,11 @@ public String toString() {
         StringBuffer sb = new StringBuffer();
 
 
-        if ("notac".equals(status)) {
+        if ("notac".equalsIgnoreCase(status)) {
             sb.append("❓");
-        } else if ("ac".equals(status)) {
+        } else if ("ac".equalsIgnoreCase(status)) {
             sb.append("✔");
-        } else if ("lock".equals(status)) {
+        } else if ("lock".equalsIgnoreCase(status)) {
             sb.append(" $ ");
         } else if (leaf && level != null) {
             sb.append("   ");
diff --git a/src/main/java/com/shuzijun/leetcode/plugin/utils/MTAUtils.java b/src/main/java/com/shuzijun/leetcode/plugin/utils/MTAUtils.java
index a4906516..e702810b 100644
--- a/src/main/java/com/shuzijun/leetcode/plugin/utils/MTAUtils.java
+++ b/src/main/java/com/shuzijun/leetcode/plugin/utils/MTAUtils.java
@@ -1,11 +1,11 @@
 package com.shuzijun.leetcode.plugin.utils;
 
-import com.intellij.ide.plugins.PluginManager;
+import com.intellij.ide.plugins.PluginManagerCore;
 import com.intellij.openapi.extensions.PluginId;
 import com.intellij.openapi.util.SystemInfo;
+import com.intellij.util.io.HttpRequests;
 import com.shuzijun.leetcode.plugin.model.Config;
 import com.shuzijun.leetcode.plugin.model.Constant;
-import com.shuzijun.leetcode.plugin.utils.io.HttpRequests;
 import org.apache.http.client.utils.URIBuilder;
 
 import java.awt.*;
@@ -20,9 +20,9 @@
  */
 public class MTAUtils {
 
-    private static String URL = "http://pingtcss.qq.com/pingd";
-    private static String SID = "500676642";
-    private static String SI = getI("s");
+    private static String URL = "https://hm.baidu.com/hm.gif";
+    private static String SID = "153b08575197a6f136f1fe02dd507c1e";
+    private static String SI = String.valueOf(System.currentTimeMillis() / 1000);
     private static String version = null;
     private static String userAgent = null;
 
@@ -61,8 +61,7 @@ public ClickTask(Config config, String actionsId) {
         public void run() {
             try {
                 if (version == null) {
-                    version = PluginManager.getPlugin(PluginId.getId(Constant.PLUGIN_ID)).getVersion()
-                            .replace("v", "").replaceAll("-|_", ".");
+                    version = PluginManagerCore.getPlugin(PluginId.getId(Constant.PLUGIN_ID)).getVersion();
                 }
                 if (userAgent == null) {
                     if (SystemInfo.OS_NAME.toUpperCase().contains("MAC")) {
@@ -76,26 +75,31 @@ public void run() {
                 Dimension screensize = Toolkit.getDefaultToolkit().getScreenSize();
                 Calendar calendar = Calendar.getInstance();
                 URI uri = new URIBuilder(URL)
-                        .setParameter("dm", "127.0.0.1")
-                        .setParameter("pvi", config.getId())
-                        .setParameter("si", SI)
-                        .setParameter("url", "/" + actionsId)
-                        .setParameter("arg", "")
-                        .setParameter("ty", "0")
-                        .setParameter("rdm", "")
-                        .setParameter("rurl", "")
-                        .setParameter("rarg", "")
-                        .setParameter("adt", version)
-                        .setParameter("r2", SID)
-                        .setParameter("scr", (int)screensize.getWidth() + "x" + (int)screensize.getHeight())
-                        .setParameter("scl", Toolkit.getDefaultToolkit().getScreenResolution() + "-bit")
-                        .setParameter("lg", Locale.getDefault().toString().replace("_", "-").toLowerCase())
-                        .setParameter("tz", -(calendar.get(Calendar.ZONE_OFFSET) + calendar.get(Calendar.DST_OFFSET)) / 60000 / 60 + "")
-                        .setParameter("ext", "version=2.0.14")
-                        .setParameter("random", System.currentTimeMillis() + "")
+                        .setParameter("hca", config.getId())
+                        .setParameter("cc", "1")
+                        .setParameter("cf", version)
+                        .setParameter("ck", "0")
+                        .setParameter("cl", Toolkit.getDefaultToolkit().getScreenResolution() + "-bit")
+                        .setParameter("ds", (int)screensize.getWidth() + "x" + (int)screensize.getHeight())
+                        .setParameter("vl", "")
+                        .setParameter("ep", "3392,2371")
+                        .setParameter("ep", "3")
+                        .setParameter("ja", "0")
+                        .setParameter("ln", Locale.getDefault().toString().replace("_", "-").toLowerCase())
+                        .setParameter("lo", "0")
+                        .setParameter("lt", SI)
+                        .setParameter("rnd", String.valueOf(System.currentTimeMillis() / 1000))
+                        .setParameter("si", SID)
+                        .setParameter("v", "1.2.92")
+                        .setParameter("lv", "2")
+                        .setParameter("sn", "44949")
+                        .setParameter("r", "0")
+                        .setParameter("ww", String.valueOf((int)screensize.getWidth()))
+                        .setParameter("u", "http://leetcode-editor.shuzijun.cn/" + actionsId )
                         .build();
-
-                HttpRequests.request(uri.toURL().toString()).userAgent(userAgent).tryConnect();
+                HttpRequests.request(uri.toURL().toString()).userAgent(userAgent).tuner(connection -> {
+                    connection.addRequestProperty("Cookie", "HMACCOUNT=" + config.getId() + ";" + "HMACCOUNT_BFESS" + config.getId());
+                }).tryConnect();
 
             } catch (Exception e) {
             }
diff --git a/src/main/java/com/shuzijun/leetcode/plugin/utils/URLUtils.java b/src/main/java/com/shuzijun/leetcode/plugin/utils/URLUtils.java
index 08112ca5..7b686450 100644
--- a/src/main/java/com/shuzijun/leetcode/plugin/utils/URLUtils.java
+++ b/src/main/java/com/shuzijun/leetcode/plugin/utils/URLUtils.java
@@ -9,7 +9,7 @@
 public class URLUtils {
 
     public static final String leetcode = "leetcode.com";
-    public static final String leetcodecn = "leetcode-cn.com";
+    public static final String leetcodecn = "leetcode.cn";
 
     private static String leetcodeUrl = "https://";
     private static String leetcodeLogin = "/accounts/login/";
diff --git a/src/main/java/com/shuzijun/leetcode/plugin/window/HttpLogin.java b/src/main/java/com/shuzijun/leetcode/plugin/window/HttpLogin.java
index af92e6e6..1acda977 100644
--- a/src/main/java/com/shuzijun/leetcode/plugin/window/HttpLogin.java
+++ b/src/main/java/com/shuzijun/leetcode/plugin/window/HttpLogin.java
@@ -38,7 +38,7 @@ public static boolean ajaxLogin(Config config, JTree tree, Project project) {
 
         try {
             HttpEntity ent = MultipartEntityBuilder.create()
-                    .addTextBody("csrfmiddlewaretoken", HttpRequestUtils.getToken())
+                    .addTextBody("csrfmiddlewaretoken", HttpRequestUtils.getToken() == null ? "": HttpRequestUtils.getToken())
                     .addTextBody("login", config.getLoginName())
                     .addTextBody("password", PersistentConfig.getInstance().getPassword())
                     .addTextBody("next", "/problems")
diff --git a/src/main/java/icons/LeetCodeEditorIcons.java b/src/main/java/icons/LeetCodeEditorIcons.java
index 5aeccb81..b1247813 100644
--- a/src/main/java/icons/LeetCodeEditorIcons.java
+++ b/src/main/java/icons/LeetCodeEditorIcons.java
@@ -34,5 +34,6 @@ public interface LeetCodeEditorIcons {
     Icon SOLUTION = IconLoader.getIcon("/icons/solution.png");
     Icon SUBMIT = IconLoader.getIcon("/icons/submit.png");
     Icon TIME = IconLoader.getIcon("/icons/time.png");
+    Icon DONATE = IconLoader.getIcon("/icons/donate.png");
 
 }
diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml
index 573ad62a..ac8589ae 100644
--- a/src/main/resources/META-INF/plugin.xml
+++ b/src/main/resources/META-INF/plugin.xml
@@ -117,6 +117,12 @@
 
     <change-notes><![CDATA[
          <ul>
+            <li>v6.11<br>
+               1.修改域名.<br>
+            </li>
+            <li>v6.11<br>
+               1.domain name change.<br>
+            </li>
             <li>v6.9<br>
                1.修复兼容性.<br>
             </li>
@@ -510,6 +516,9 @@
             <reference id="leetcode.ConfigAction"/>
             <reference id="leetcode.ClearAllAction"/>
             <reference id="leetcode.HelpAction"/>
+            <action id="leetcode.DonateAction" class="com.shuzijun.leetcode.plugin.actions.toolbar.DonateAction"
+                    text="Donate" description="Donate" icon="LeetCodeEditorIcons.DONATE">
+            </action>
         </group>
 
         <group id="leetcode.NavigatorActionsMenu">
diff --git a/src/main/resources/icons/donate.png b/src/main/resources/icons/donate.png
new file mode 100644
index 00000000..9b8cdbd4
Binary files /dev/null and b/src/main/resources/icons/donate.png differ
diff --git a/src/main/resources/icons/donate.svg b/src/main/resources/icons/donate.svg
new file mode 100644
index 00000000..12d7a55e
--- /dev/null
+++ b/src/main/resources/icons/donate.svg
@@ -0,0 +1,7 @@
+<svg class="icon" version="1.1" xmlns="http://www.w3.org/2000/svg"
+     width="16" height="16">
+    <g transform="scale(0.015625)">
+        <path fill="#6E6E6E" d="M526.528 165.76c116.906667-86.314667 282.474667-76.544 388.352 29.333333 114.474667 114.474667 116.821333 299.221333 5.333333 416.917334l-5.333333 5.461333-301.696 301.696c-48.149333 48.128-125.461333 50.112-176.810667 4.010667l-4.224-4.010667L130.453333 617.472c-116.629333-116.650667-116.629333-305.749333 0-422.4 105.664-105.664 271.232-115.776 388.629334-29.013333l3.541333 2.666666z m165.162667 319.082667l-2.346667 2.154666-143.829333 143.850667a42.666667 42.666667 0 0 0 58.026666 62.506667l2.304-2.176 143.850667-143.829334a42.666667 42.666667 0 0 0-58.005333-62.506666z"
+        ></path>
+    </g>
+</svg>
\ No newline at end of file
diff --git a/src/main/resources/icons/donate_dark.png b/src/main/resources/icons/donate_dark.png
new file mode 100644
index 00000000..ec806aef
Binary files /dev/null and b/src/main/resources/icons/donate_dark.png differ
diff --git a/src/main/resources/icons/donate_dark.svg b/src/main/resources/icons/donate_dark.svg
new file mode 100644
index 00000000..94c63af4
--- /dev/null
+++ b/src/main/resources/icons/donate_dark.svg
@@ -0,0 +1,7 @@
+<svg class="icon" version="1.1" xmlns="http://www.w3.org/2000/svg"
+     width="16" height="16">
+    <g transform="scale(0.015625)">
+        <path fill="#AFB1B3" d="M526.528 165.76c116.906667-86.314667 282.474667-76.544 388.352 29.333333 114.474667 114.474667 116.821333 299.221333 5.333333 416.917334l-5.333333 5.461333-301.696 301.696c-48.149333 48.128-125.461333 50.112-176.810667 4.010667l-4.224-4.010667L130.453333 617.472c-116.629333-116.650667-116.629333-305.749333 0-422.4 105.664-105.664 271.232-115.776 388.629334-29.013333l3.541333 2.666666z m165.162667 319.082667l-2.346667 2.154666-143.829333 143.850667a42.666667 42.666667 0 0 0 58.026666 62.506667l2.304-2.176 143.850667-143.829334a42.666667 42.666667 0 0 0-58.005333-62.506666z"
+        ></path>
+    </g>
+</svg>
\ No newline at end of file
