[
  {
    "path": ".github/ISSUE_TEMPLATE/--issue--.md",
    "content": "---\nname: 问答issue模板\nabout: Describe this issue template's purpose here.\ntitle: ''\nlabels: ''\nassignees: ''\n\n---\n\nissue应该包含一个简单明了的issue标题和一段帮助其他人理解问题的问题详情，阐述你对问题的思考。\n\n> 举例：\n>   issue标题：ABCD（AI、Blockchain、Cloud、BigData）战略中区块链怎样成为ACD的基石？\n>  issue详情：ABCD（AI、Blockchain、Cloud、BigData）是数字经济中常常被提及的战略。区块链目前还存在性能受限、普及率低等问题，但其能建立去点对点信任的特性让其在数字经济中具有广泛的应用场景。区块链作为ACD的基石的过程中，会遇到哪些必须要解决的问题，会带来哪些机遇？\n"
  },
  {
    "path": ".github/workflows/gePagesDeployment.yml",
    "content": "name: gitee Pages\n\non: \n  push:\n    branches: \n      - master\n\njobs:\n  build-deploy:\n    runs-on: ubuntu-18.04\n    steps:\n      - uses: actions/checkout@v1  # v2 does not have submodules option now\n        # with:\n        #   submodules: true\n\n      - name: Setup Hugo\n        uses: peaceiris/actions-hugo@v2\n        with:\n          hugo-version: 'latest'\n          extended: true\n          \n      - name: Add Parameters\n        run: echo -e '[[params.social]] \\n icon = \"ti-github\" \\n link = \"https://gitee.com/taibiaoguo/blockchain101\"' >> config.toml\n\n      - name: Build\n        run: hugo --minify -b https://taibiaoguo.gitee.io/blockchain101/\n\n      - name: Deploy\n        uses: peaceiris/actions-gh-pages@v3\n        with:\n          deploy_key: ${{ secrets.GHPAGES_ACTIONS_DEPLOY_KEY }}\n          publish_branch: ge-pages\n          publish_dir: ./public\n          user_name: ${{ secrets.USERNAME }}\n          user_email: ${{ secrets.EMAILADDRESS }}\n"
  },
  {
    "path": ".github/workflows/ghPagesDeployment.yml",
    "content": "name: github Pages\n\non: \n  push:\n    branches: \n      - master\n\njobs:\n  build-deploy:\n    runs-on: ubuntu-18.04\n    steps:\n      - uses: actions/checkout@v1  # v2 does not have submodules option now\n        # with:\n        #   submodules: true\n\n      - name: Setup Hugo\n        uses: peaceiris/actions-hugo@v2\n        with:\n          hugo-version: 'latest'\n          extended: true\n            \n      - name: Add Parameters\n        run: echo -e '[[params.social]] \\n icon = \"ti-github\" \\n link = \"https://github.com/taibiaoguo/blockchain101\"' >> config.toml \n\n      - name: Build\n        run: hugo --minify -b https://taibiaoguo.github.io/blockchain101/\n\n      - name: Deploy\n        uses: peaceiris/actions-gh-pages@v3\n        with:\n          deploy_key: ${{ secrets.GHPAGES_ACTIONS_DEPLOY_KEY }}\n          publish_branch: gh-pages\n          publish_dir: ./public\n          user_name: ${{ secrets.USERNAME }}\n          user_email: ${{ secrets.EMAILADDRESS }}\n"
  },
  {
    "path": ".gitignore",
    "content": "## Core latex/pdflatex auxiliary files:\n*.aux\n*.lof\n*.log\n*.lot\n*.fls\n*.out\n*.toc\n*.fmt\n*.fot\n*.cb\n*.cb2\n.*.lb\n\n## Intermediate documents:\n*.dvi\n*.xdv\n*-converted-to.*\n# these rules might exclude image files for figures etc.\n# *.ps\n# *.eps\n# *.pdf\n\n## Generated if empty string is given at \"Please type another file name for output:\"\n.pdf\n\n## Bibliography auxiliary files (bibtex/biblatex/biber):\n*.bbl\n*.bcf\n*.blg\n*-blx.aux\n*-blx.bib\n*.run.xml\n\n## Build tool auxiliary files:\n*.fdb_latexmk\n*.synctex\n*.synctex(busy)\n*.synctex.gz\n*.synctex.gz(busy)\n*.pdfsync\n\n## Auxiliary and intermediate files from other packages:\n# algorithms\n*.alg\n*.loa\n\n# achemso\nacs-*.bib\n\n# amsthm\n*.thm\n\n# beamer\n*.nav\n*.pre\n*.snm\n*.vrb\n\n# changes\n*.soc\n\n# cprotect\n*.cpt\n\n# elsarticle (documentclass of Elsevier journals)\n*.spl\n\n# endnotes\n*.ent\n\n# fixme\n*.lox\n\n# feynmf/feynmp\n*.mf\n*.mp\n*.t[1-9]\n*.t[1-9][0-9]\n*.tfm\n\n#(r)(e)ledmac/(r)(e)ledpar\n*.end\n*.?end\n*.[1-9]\n*.[1-9][0-9]\n*.[1-9][0-9][0-9]\n*.[1-9]R\n*.[1-9][0-9]R\n*.[1-9][0-9][0-9]R\n*.eledsec[1-9]\n*.eledsec[1-9]R\n*.eledsec[1-9][0-9]\n*.eledsec[1-9][0-9]R\n*.eledsec[1-9][0-9][0-9]\n*.eledsec[1-9][0-9][0-9]R\n\n# glossaries\n*.acn\n*.acr\n*.glg\n*.glo\n*.gls\n*.glsdefs\n\n# gnuplottex\n*-gnuplottex-*\n\n# gregoriotex\n*.gaux\n*.gtex\n\n# htlatex\n*.4ct\n*.4tc\n*.idv\n*.lg\n*.trc\n*.xref\n\n# hyperref\n*.brf\n\n# knitr\n*-concordance.tex\n# TODO Comment the next line if you want to keep your tikz graphics files\n*.tikz\n*-tikzDictionary\n\n# listings\n*.lol\n\n# makeidx\n*.idx\n*.ilg\n*.ind\n*.ist\n\n# minitoc\n*.maf\n*.mlf\n*.mlt\n*.mtc[0-9]*\n*.slf[0-9]*\n*.slt[0-9]*\n*.stc[0-9]*\n\n# minted\n_minted*\n*.pyg\n\n# morewrites\n*.mw\n\n# nomencl\n*.nlg\n*.nlo\n*.nls\n\n# pax\n*.pax\n\n# pdfpcnotes\n*.pdfpc\n\n# sagetex\n*.sagetex.sage\n*.sagetex.py\n*.sagetex.scmd\n\n# scrwfile\n*.wrt\n\n# sympy\n*.sout\n*.sympy\nsympy-plots-for-*.tex/\n\n# pdfcomment\n*.upa\n*.upb\n\n# pythontex\n*.pytxcode\npythontex-files-*/\n\n# thmtools\n*.loe\n\n# TikZ & PGF\n*.dpth\n*.md5\n*.auxlock\n\n# todonotes\n*.tdo\n\n# easy-todo\n*.lod\n\n# xmpincl\n*.xmpi\n\n# xindy\n*.xdy\n\n# xypic precompiled matrices\n*.xyc\n\n# endfloat\n*.ttt\n*.fff\n\n# Latexian\nTSWLatexianTemp*\n\n## Editors:\n# WinEdt\n*.bak\n*.sav\n\n# Texpad\n.texpadtmp\n\n# Kile\n*.backup\n\n# KBibTeX\n*~[0-9]*\n\n# auto folder when using emacs and auctex\n./auto/*\n*.el\n\n# expex forward references with \\gathertags\n*-tags.tex\n\n# standalone packages\n*.sta\n\n# generated if using elsarticle.cls\n*.spl\n*.DS_Store\n"
  },
  {
    "path": "LICENSE",
    "content": "blockchain101 (c) by Taibiao Guo.\n\nblockchain101 is licensed under a\nCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.\n\nYou should have received a copy of the license along with this\nwork. If not, see <http://creativecommons.org/licenses/by-nc-sa/4.0/>.\n"
  },
  {
    "path": "README.md",
    "content": "# 区块链技术及应用发展（blockchain101）\n\n[课程主页镜像|加速国内访问](https://taibiaoguo.gitee.io/blockchain101/)\n\n[课程主页](https://taibiaoguo.github.io/blockchain101/)\n\n---\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\"><img alt=\"知识共享许可协议\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png\" /></a><br />本作品采用<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\">知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议</a>进行许可。\n"
  },
  {
    "path": "config.toml",
    "content": "############################ Default configuration #########################\n# baseURL = \"https://blockchain101.linkroom.club/blockchain101/\"\nlanguageCode = \"zh-cn\"\n# site title \ntitle = \"区块链技术及应用发展 | Blockchain 101\"\n# theme\ntheme = \"northendlab\"\n# post pagination\npaginate = \"5\"\n# post excerpt\nsummaryLength = \"10\"\n# disqus short name\ndisqusShortname = \"\" # get your shortname form here : https://disqus.com\n\n[outputs]\nhome = [\"HTML\", \"AMP\", \"RSS\", \"JSON\"]\n\n########################## Plugings ######################################\n\n# css plugins\n[[params.plugins.css]]\nlink = \"plugins/bootstrap/bootstrap.min.css\"\n[[params.plugins.css]]\nlink = \"plugins/themify-icons/themify-icons.css\"\n\n# js plugins\n[[params.plugins.js]]\nlink = \"plugins/jQuery/jquery.min.js\"\n[[params.plugins.js]]\nlink = \"plugins/bootstrap/bootstrap.min.js\"\n[[params.plugins.js]]\nlink = \"plugins/search/fuse.min.js\"\n[[params.plugins.js]]\nlink = \"plugins/search/mark.js\"\n[[params.plugins.js]]\nlink = \"plugins/search/search.js\"\n\n\n########################### Navigation ###################################\n\n# main menu\n#[[menu.main]]\n#URL = \"contact\"\n#name = \"Contact\"\n#weight = 1\n#\n#[[menu.main]]\n#URL = \"tools\"\n#name = \"tools\"\n#weight = 2\n\n######################### Default Parameters ###########################\n[params]\n# home\nhome = \"Home\"\n# logo\nlogo = \"images/logo.svg\"\n# meta data\nauthor = \"TaibiaoGuo\"\ndescription = \"This is meta description\"\n# google tag manager\ngoogle_tag_manager = \"\tGTM-M88J7C2\" # your id\n# google analitycs ID\ngoogle_analitycs_id = \"UA-158584793-2\" # your id\n# contact form action\ncontact_form_action = \"#\" # contact form works with : https://formspree.io\n# copyright\ncopyright = \"&copy; 2020 [TaibiaoGuo](https://www.taibiaoguo.com/about/) All Rights Reserved\"\n\n# preloader\n[params.preloader]\nenable = true\npreloader = \"images/logo.svg\" # use png, jpg, svg or gif format\n\n# search\n[params.search]\nenable = true\n\n\n####################### banner #######################################\n[params.banner]\nbgImage = \"images/banner/banner-bg.svg\"\ntitle = \"区块链应用及技术发展 <br> Blockchain 101\"\nimage = \"images/banner/illustration.svg\"\n\n\n######################## call to action ###############################\n[params.cta]\nenable = true\nimage = \"images/hugo-muscot.svg\"\ntitle = \"2019-2020春季学期课程安排\"\ndescription = \"由于疫情，部分课程内容将使用线上MOOC内容代替；大纲为初稿，后续会根据课堂反馈和学生意见进行调整，欢迎指正。\"\n[params.cta.button]\nenable = true\nlabel = \"点击查看详情\"\nlink = \"https://taibiaoguo.gitee.io/blockchain101/2019-2020-spring-class-schedule/\"\n\n\n############################## Social Site ##########################\n# [[params.social]]\n# icon = \"ti-github\" # themify icon pack https://themify.me/themify-icons\n# link = \"https://gitee.com/taibiaoguo/blockchain101\"\n"
  },
  {
    "path": "content/2019-2020-01-plan.md",
    "content": "+++\ntitle = \"第1周课程安排\"\ndate = 2020-02-16T01:00:00Z\ndescription = \"2019-2020春季学期第1周课程安排\"\ncategories = [\"2019-2020春季学期\",\"课程安排\"]\ntype = \"post\"\n+++\n> 文末有彩蛋🥚\n\n>拓展阅读（供学有余力的同学）： **Abstract** Blockchain is an emerging decentralized architecture and distributed computing paradigm underlying Bitcoin and other cryptocurrencies, and has recently attracted intensive attention from governments, financial institutions, hightech enterprises, and the capital markets....\n> [袁勇, and 王飞跃. \"区块链技术发展现状与展望.\"自动化学报.2016.](http://www.cicpa.org.cn/Column/hyxxhckzl/xxjsyqy/qyjs/201708/W020170802480892964816.pdf) 👈点此阅读\n\n### 本周课程☠️截止日期☠️\n北京时间 2020年2月23日 23:59:59\n\n### 本周学习目标\n- 了解区块链概念\n- 了解区块链的社会意义\n- 了解区块链的主要应用场景\n\n### 学习方式\n登陆中国大学MOOC，学习[《区块链技术与应用》](https://www.icourse163.org/course/SWJTU-1207109825) `第一部分 区块链概论` 👈[点我访问](https://www.icourse163.org/course/SWJTU-1207109825)\n\n- 第一部分：区块链概论\n - 1.1 区块链与智能社会\n - 1.2 区块链概念与体系\n - 1.3 区块链的哲学意义\n - 1.4 区块链的社会学意义\n - 1.5 区块链应用综述\n\n### 作业及提交方式\n\n完成`第一部分 区块链概论`课后习题`区块链概论测验`，在截止日期前通过QQ群的`作业`功能提交课后习题`区块链概论测验`提交后批改页面的完整截图。\n\n### 彩蛋\n\n每一位同学都将收到阿里半年的公网服务器一台（800RMB，可免费升至1年），来方便各位同学学习本课程和理解区块链知识，最近将发放给大家。\n\n---\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\"><img alt=\"知识共享许可协议\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png\" /></a><br />本作品采用<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\">知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议</a>进行许可。\n"
  },
  {
    "path": "content/2019-2020-02-plan.md",
    "content": "+++\ntitle = \"第2周课程安排\"\ndate = 2020-02-25T01:00:00Z\ndescription = \"2019-2020春季学期第2周课程安排\"\ncategories = [\"2019-2020春季学期\",\"课程安排\"]\ntype = \"post\"\n+++\n\n>拓展阅读（供学有余力的同学）： **Abstract** Ethereum is an open source, public, blockchain-based distributed computing platform and operating system featuring smart contract (scripting) functionality. It supports a modified version of Nakamoto consensus via transaction-based state transitions.....\n> [以太坊Wiki](https://github.com/ethereum/wiki/wiki) 👈点此阅读\n\n### 本周课程截止日期\n北京时间 2020年3月1日(周日) 23:59:59\n\n### 本周学习目标\n从区块链的技术特征出发，分别从数字资产、商业模式、经济组织、存证、自动合约、物联网、数据共享与确权等角度分节阐述区块链的应用领域、方法及原理。\n\n### 学习方式\n登陆中国大学MOOC，学习[《区块链技术与应用》](https://www.icourse163.org/course/SWJTU-1207109825?tid=1207475232) `第二部分 区块链的应用` 👉[点我访问](https://www.icourse163.org/course/SWJTU-1207109825?tid=1207475232)\n\n- 区块链的应用\n  - 2.1 资产及其区块链化\n  - 2.2 商业模式及区块链\n  - 2.3 区块链与经济组织\n  - 2.4 区块链存证\n  - 2.5 自动合约\n  - 2.6 区块链与物联网\n  - 2.7 数据共享与数据确权\n\n> 提示：若有同学发现无法学习，请按下图提示，切换至**第一次开课**，进行学习：\n>\n>  {{< figure src=\"/blockchain101/images/post/2019-2020-02-plan/swithSection.png\"  alt=\"\" width=\"100%\"  >}}\n\n### 作业及提交方式\n\n完成`第二部分 区块链的应用`课后习题`区块链的应用`，👉[点我访问](https://www.icourse163.org/learn/SWJTU-1207109825?tid=1207475232#/learn/quiz?id=1221314402)，在截止日期前通过QQ群的`作业`功能提交课后习题区块链的应用测试答案提交后的**批改页面的完整截图**。\n\n### 阿里云ECS兑换\n现已将阿里云ECS的兑换码通过QQ私信分发给QQ群内的同学，本学期课程实验将通过阿里云ECS进行，请大家课后花时间进行阿里云注册和认证等工作，并启动阿里云ECS的实例(操作系统选择: ubuntu 18.04)。\n\n兑换流程已做成图文教程，有需要的同学请参见  👉[阿里云ECS操作指南]({{< ref \"content/2019-2020-others-01.md\" >}})。\n\n---\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\"><img alt=\"知识共享许可协议\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png\" /></a><br />本作品采用<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\">知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议</a>进行许可。\n"
  },
  {
    "path": "content/2019-2020-03-plan.md",
    "content": "+++\ntitle = \"第3周课程安排\"\ndate = 2020-03-04T01:00:00Z\ndescription = \"2019-2020春季学期第3周课程安排\"\ncategories = [\"2019-2020春季学期\",\"课程安排\"]\ntype = \"post\"\n+++\n\n### 本周课程截止日期\n北京时间 2020年3月11日(下周三) 23:59:59\n\n### 本周学习目标\n本章从区块链的技术架构出发，分节阐述区块链的工作原理，包括分布式帐本与加密帐户、去中心化与P2P通信、共识计算与激励机制、智能合约与去中心化应用等内容。\n\n### 学习方式\n登陆中国大学MOOC，学习[《区块链技术与应用》](https://www.icourse163.org/course/SWJTU-1207109825?tid=1207475232) `第三部分 区块链的技术原理` 👉[点我访问](https://www.icourse163.org/learn/SWJTU-1207109825?tid=1207475232#/learn/content?type=detail&id=1213229096)\n\n- 区块链的技术原理\n  - 3.1 区块链的技术架构\n  - 3.2 分布式账本与加密帐户\n  - 3.3 去中心化与P2P通信\n  - 3.4 共识计算与激励机制\n  - 3.5 智能合约与去中心化应用\n\n> 提示：若有同学发现无法学习，请按下图提示，切换至**第一次开课**，进行学习：\n>\n>  {{< figure src=\"/blockchain101/images/post/2019-2020-02-plan/swithSection.png\"  alt=\"\" width=\"100%\"  >}}\n\n### 作业及提交方式\n\n完成`第三部分 区块链的技术原理`课后习题`区块链的技术原理`，👉[点我访问](https://www.icourse163.org/learn/SWJTU-1207109825?tid=1207475232#/learn/quiz?id=1221338412)，在截止日期前通过QQ群的`作业`功能提交课后习题区块链的应用测试答案提交后的**批改页面的完整截图**。\n\n### 阿里云ECS兑换\n现已将阿里云ECS的兑换码通过QQ私信分发给QQ群内的同学，本学期课程实验将通过阿里云ECS进行，请大家课后花时间进行阿里云注册和认证等工作，并启动阿里云ECS的实例(操作系统选择: ubuntu 18.04)。\n\n兑换流程已做成图文教程，有需要的同学请参见  👉[阿里云ECS操作指南]({{< ref \"content/2019-2020-others-01.md\" >}})。\n\n---\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\"><img alt=\"知识共享许可协议\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png\" /></a><br />本作品采用<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\">知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议</a>进行许可。\n"
  },
  {
    "path": "content/2019-2020-04-plan.md",
    "content": "+++\ntitle = \"第4周课程安排\"\ndate = 2020-03-01T01:00:00Z\ndescription = \"2019-2020春季学期第4周课程安排\"\ncategories = [\"2019-2020春季学期\",\"课程安排\"]\ntype = \"post\"\n+++\n\n### 本周课程截止日期\n北京时间 2020年3月18日(下周三) 23:59:59\n\n### 本周学习目标\n本章从区块链的技术架构出发，分节阐述区块链的工作原理，包括分布式帐本与加密帐户、去中心化与P2P通信、共识计算与激励机制、智能合约与去中心化应用等内容。\n\n### 学习方式\n登陆中国大学MOOC，学习[《区块链技术与应用》](https://www.icourse163.org/course/SWJTU-1207109825?tid=1207475232) `第四部分 典型区块链架构` 👉[点我访问](https://www.icourse163.org/learn/SWJTU-1207109825?tid=1207475232#/learn/content?type=detail&id=1213245003)\n\n- 典型区块链架构\n  - 3.1 比特币：开启区块链的江湖\n  - 3.2 以太坊：夯实区块链的地基\n  - 3.3 超级账本：互联网巨头们的区块链避难所\n\n> 提示：若有同学发现无法学习，请按下图提示，切换至**第一次开课**，进行学习：\n>\n>  {{< figure src=\"/blockchain101/images/post/2019-2020-02-plan/swithSection.png\"  alt=\"\" width=\"100%\"  >}}\n\n### 作业及提交方式\n\n完成`第四部分 典型区块链架构`课后习题`典型区块链架构`，👉[点我访问](https://www.icourse163.org/learn/SWJTU-1207109825?tid=1207475232#/learn/quiz?id=1221331408)，在截止日期前通过QQ群的`作业`功能提交课后习题区块链的应用测试答案提交后的**批改页面的完整截图**。\n\n### 课程通告\n下周开始将使用QQ群直播授课，上课时间为每周四晚7点-晚10点，请同学们做好准备，尽快注册阿里云ECS。\n\n无法使用电脑的同学暂时通过手机QQ进行学习，使用阿里云手机APP完成作业。\n\n---\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\"><img alt=\"知识共享许可协议\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png\" /></a><br />本作品采用<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\">知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议</a>进行许可。\n"
  },
  {
    "path": "content/2019-2020-07-ipfs.md",
    "content": "+++\ntitle = \"IPFS实验教程\"\ndate = 2020-04-01T01:00:00Z\ndescription = \"IPFS实验教程\"\ncategories = [\"Aliyun\"]\ntype = \"post\"\n+++\n\n本实验是分布式系统小节的实验，具体内容：\n* 实验1、启动IPFS节点；\n* 实验2、熟悉IPFS的界面\n* 实验3、上传文件到IPFS节点；\n* 实验4、从其他节点获取到文件信息；\n\n## 实验1、启动IPFS节点\n> 请先确定已经开放了阿里云的端口，否则无法通过浏览器访问你的IPFS节点，开放阿里云服务器端口的方法见[课程主页对应的文章](https://taibiaoguo.github.io/blockchain101/2019-2020-tools-aliyun-ports/)。\n\n复制下面的命令到服务器的终端执行：\n```\n/bin/bash -c \"$(curl -fsSL https://raw.githubusercontent.com/TaibiaoGuo/blockchain101/experiment/ipfs/start.sh)\"\n```\n\n## 实验2、熟悉IPFS界面\n完成实验1后，通过浏览器可以访问你的IPFS节点的网页端界面，地址为`http://你的公网IP:5001/webui`\n\n熟悉一下所有的功能\n\n## 实验3、上传文件到IPFS节点\n在你的IPFS节点网页端，即`http://你的公网IP:5001/webui`\n\n点击菜单中的`文件`,会出现文件界面，点击界面的`添加`,选择一个本机的文件上传到IPFS网络中\n> 注意：IPFS是公开网络，请不要上传私密内容\n\n稍等片刻，在文件界面就可以看到你的文件了\n\n## 实验4、从其他节点获取到文件信息\n在你的IPFS节点网页端，即`http://你的公网IP:5001/webui`\n\n最上方的输入框中输入任意一个文件哈希，就会通过IPFS网络请求文件，如果是视频、图片、文字等可以在线预览的文件类型，就可以直接在网页端观看，其他类型的文件需要下载到本地。\n\n但是，这个功能因为众所周知的网络原因很大概率（80%）用不了。\n\n## 其他\n实验完成后，你可以选择删除ipfs容器，在服务器终端执行下面的命令：\n```\ndocker rm -f ipfs\n```\n\n---\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\"><img alt=\"知识共享许可协议\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png\" /></a><br />本作品采用<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\">知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议</a>进行许可。\n"
  },
  {
    "path": "content/2019-2020-others-01.md",
    "content": "+++\ntitle = \"阿里云ECS开通教程\"\ndate = 2020-02-26T01:00:00Z\ndescription = \"2019-2020春季学期阿里云ECS开通教程\"\ncategories = [\"2019-2020春季学期\",\"课程工具\"]\ntype = \"post\"\n+++\n\n## 总览\n课程使用了Linux发行版本 `Ubuntu 18.04` 作为课程的标准实验环境。\n\n如果你选修了湖南工商大学区块链X课程，那么你将领取到一台2核4GB的阿里云ECS实例，请参照`在阿里云上部署标准实验环境`进行操作，如果你未选修本门课程，请参照`在个人PC上部署标准实验环境`进行操作。\n\n## 在阿里云上部署标准实验环境\n\n#### 1. 兑换ECS实例\na. 访问阿里云兑换页面，输入`兑换码`，点击立即领取，获取ECS实例。\n> 如果之前未使用过阿里云，则还需要完成学生认证等步骤。因为安全问题，兑换流程不在此公布。\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-02-others-01/alicloudGetECS.png\"  alt=\"\" width=\"100%\"  >}}\n\nb. 在ECS实例领取过程中，将ECS实例的操作系统从默认的`Centos 7.4 64位` 修改为我们需要的 `Ubuntu 18.04`版本，其他选项保持默认即可。\n> 若选错操作系统，后续可以在`控制台`随时更改。\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-02-others-01/alicloudSwitchOS.png\"  alt=\"\" width=\"100%\"  >}}\n\nc. 支付（0元）完成后，会显示“恭喜，支付成功！”，点击`管理控制台`界面会跳转到ECS实例的控制台界面。\n\n控制界面中，可以看到服务器的公网IP及运行状态等关键信息，点击相应按钮，还可以查看CPU、网络等负载情况。有兴趣的同学请自行查阅阿里云的帮助文档。\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-02-others-01/alicloudECSPannel.png\"  alt=\"\" width=\"100%\"  >}}\n\n#### 2. 重置密码\na. 为了登陆ECS实例，我们需要重置ECS初始密码，此部分操作细节请参见阿里云帮助文档[重置密码](https://help.aliyun.com/document_detail/25439.html)部分。\n> 重置密码首先需要**停止**ECS实例。\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-02-others-01/alicloudChangePassword.png\"  alt=\"\" width=\"100%\"  >}}\n\nb. 重置密码并启动ECS实例后，就可以通过远程桌面工具`VNC`或者安全终端工具`SSH`等访问ECS实例了。\n\n#### 3. 登陆ECS实例\na. 在`管理控制台`，实例处选择`远程连接`的`Workbench`\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-02-others-01/alicloudRemoteLogin.png\"  alt=\"\" width=\"100%\"  >}}\n\nb. 在`workbench`中输入用户名`root`及密码，其他默认，即可通过`SSH`的方式登陆阿里云ECS实例中。\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-02-others-01/alicloudSSH.png\"  alt=\"\" width=\"100%\"  >}}\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-02-others-01/alicloudSSH2.png\"  alt=\"\" width=\"100%\"  >}}\n\n> 实际生产过程中，很少使用网页版SSH登陆服务器，多采用终端程序`SSH`或者SSH管理程序（如`XShell`）等登陆服务器,并使用密钥代替密码。如有兴趣，请下载对应软件对服务器进行管理。本课程收集了部分软件，见[SSH](https://github.com/TaibiaoGuo/blockchain101/wiki/_ssh)部分。\n\n## 在个人PC上部署标准实验环境\n- 所需软件：\n  - `VirtualBox V6.1`\n  - `Ubuntu 18.04镜像`\n  - `XShell V5`\n\n- 个人PC最低配置：\n  - 操作系统 `64位操作系统`\n  - 硬盘剩余容量 `>=20GB`\n  - 内存大小 `>=4GB`\n  - 处理器 `>=2逻辑核心`\n"
  },
  {
    "path": "content/2019-2020-spring-class-schedule.md",
    "content": "+++\ntitle = \"2019-2020春季学期课程安排\"\ndate = 2020-02-15T01:00:00Z\ndescription = \"2019-2020春季学期课程安排\"\ncategories = [\"2019-2020春季学期\"]\ntype = \"post\"\n\n+++\n> 推荐阅读：[Gartner 2019 Hype Cycle Shows Most Blockchain Technologies Are Still Five to 10 Years Away From Transformational Impact](https://www.gartner.com/en/newsroom/press-releases/2019-10-08-gartner-2019-hype-cycle-shows-most-blockchain-technologies-are-still-five-to-10-years-away-from-transformational-impact) \n>\n> “Blockchain technologies have not yet lived up to the hype and most enterprise blockchain projects are stuck in experimentation mode,” said Avivah Litan, distinguished analyst and research vice president at Gartner... \n\n### 课程内容\n\n区块链是面向未来数字化社会的新一代信息技术。习近平总书记在中央政治局第十八次集体学习时将区块链定义为“我国自主创新的重要突破口”。 本课程将系统介绍区块链原理和应用,让学生对区块链有整体的了解。\n\n课程设计目标是帮助学生树立分布式整体性世界观，教学大纲将涵盖围绕区块链，通过应用密码学、分布式系统基础、博弈论的基础知识，把区块链作为分布式整体世界观最前沿的创新应用进行系统讲解。课程还将引入区块链智能合约的概念，帮助学生理解区块链编程的理念和应用的方法。\n\n| 周 | 教学形式 | 授课主题 | 课时标题 |\n| --- | --- | --- | --- |\n| 1 | 面授 | 简介 | 《区块链应用场景和前景》 |\n| 1| 面授|简介|《区块链发展方向和著名成果简述》 |\n| 2 | 面授 | 博弈论基础 | 《谁在推动区块链系统运行》 |\n| 2| 面授| 监管合规 | 《如何&quot;一夜暴富&quot;》 |\n| 3 | 面授 | 密码学基础 | 《非对称加密、Hash、Merkle树和区块的概念》 |\n|3 |实验 | 密码学基础|《实验：openssl、区块生成》 |\n| 4 | 面授 | 分布式基础 | 《P2P网络原理和应用》 |\n|4 |实验 |分布式基础| 《实验：DHT网络》 |\n| 5 | 面授 | 分布式基础|《分布式共识算法概述》 |\n|5 |实验 |分布式基础| 《实验：共识算法》 |\n| 6 | 面授 | 区块链系统 | 《以太坊及其系统架构设计简述》 |\n|6 |实验|区块链系统 | 《实验：以太坊联盟链部署》 |\n| 7 | 面授 | 智能合约 | 《以太坊智能合约原理及语法1》 |\n| 7|面授|智能合约|《以太坊智能合约语法2》 |\n| 8 | 实验 |智能合约 |《实验：以太坊智能合约开发IDE介绍》 |\n|8 |实验|智能合约|《实验：以太坊智能合约部署和调用》 |\n| 9 | 实验 | 应用开发 | 《实验：博客框架部署及使用》 |\n| 9|实验|应用开发|《实验：部署自己的博客系统》 |\n| 10 |实验|应用开发| 《实验：编写数字积分打赏合约》 |\n| 10|实验|应用开发|《实验：区块链浏览器使用介绍》 |\n| 11 | 实验|应用开发|《实验：制作一个数字积分打赏插件》 |\n| 11| 实验|应用开发|《实验：将付费阅读博客部署到公有云平台》 |\n| 12 | 其他 | 结课答疑 | 结课答疑 |\n\n### 学分与成绩标准\n本课程学分2分，课程总分为100分，具体如下：\n- 平时成绩44分：\n    - 课堂考勤20分。考勤抽查，一次未到扣5分，最多扣20分；\n    - 课后作业24分。按作业要求，在每次作业截止时间前提交有效，共12次，一次作业2分；\n- 课堂讨论26分。在12周课程结束前，通过`课堂讨论区`（[点我进入](https://github.com/TaibiaoGuo/blockchain101/issues)）的`Issues`面板提出问题或回复其他人的问题均可得分，禁止灌水，本环节稍后将提供简易指南。其中，每提出一个有效问题3分，最多9分；每产生一个有效回复3分，最多15分；关注一波不迷路，关注（Star）本课程对应Github项目`blockchain101`2分[点我直达](https://github.com/TaibiaoGuo/blockchain101/)。为方便统计，提问和回答必须在正文末尾新起一行附上**名字最后一位 学号后三位**，如：`婷019`才算有效。课堂讨论溢出得分最多可抵扣5分课堂考勤扣分🚀；\n- 结课成果30分。可自由通过成果展示、结课论文、PPT展示等多种方式完成结课成果，老师将根据成果水平进行评分。\n\n### 开课时间及讲师\n讲师：郭泰彪\n\n开课时间： 2019-2020 下学期 1-12周 周四晚\n\n办公室： 科技楼205办公室\n\n办公时间： 周一至周五 9:00 - 11:30 3:00 - 5：00\n\n### 课程形式\n该课程的学习包括：\n* 阅读和评论：对于每周的课程，我们都会为您事先安排阅读任务。您应该在上课前一天完成阅读并评论材料；\n* 小组形式： 本课程老师与学生在课堂会积极互动，各位可以在课堂上积极提出关键的概念，想法和直觉，并共同处理困难的资料；\n* 习题集： 每周的课程将会有5道习题，每周习题会在附在课程资料中，习题需要在每周日12:00前通过中国大学MOOC发送给老师。\n\n### 课程目标\n在课程结束时，希望大家都能：\n* 可以向其他人解释区块链的概念和应用场景；\n* 熟悉区块链的现状和未来发展方向；\n* 拥有一个基于区块链的个人博客系统；\n* 能够利用搜索引擎、学术论文、博客、论坛等途径对区块链进行深入学习。\n\n### 提问方式\n如果您在本课程学习过程中有任何不明白的地方，可以通过课程QQ群、中国大学MOOC讨论区、Github Issue的方式进行提问，鼓励使用Github Issue的方式进行提问。\n\n### 教材\n本课程采用我校陈晓红院士编写的《区块链应用及技术发展》（清华大学出版社）作为主要教材，并辅以相关电子资料。当您在学习时，请不吝提出更正和修改建议！\n\n您可能还需要了解以下参考书籍，这些书籍都可以在网上商城购买和本校图书馆借阅：\n熊丽兵 《精通以太坊智能合约开发》 电子工业出版社 ISBN：9787121349515\n\n### 课程赞助商\n\n 湖南高校区块链实验室；阿里云；中国大学MOOC\n\n---\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\"><img alt=\"知识共享许可协议\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png\" /></a><br />本作品采用<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\">知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议</a>进行许可。\n"
  },
  {
    "path": "content/2019-2020-tools-aliyun-ports.md",
    "content": "+++\ntitle = \"阿里云开放端口教程\"\ndate = 2020-04-01T01:00:00Z\ndescription = \"阿里云开放端口教程\"\ncategories = [\"Aliyun\",\"IPFS\"]\ntype = \"post\"\n+++\n\n本指南用于在开放阿里云服务器的端口，以供其他用户访问。\n\n因为安全策略，大部分端口默认是无法通过服务器的公网IP进行访问的，本实验课需要使用外网端口，因此需要同学们按照下面的设置打开你的外网端口。\n\n访问地址 https://ecs.console.aliyun.com/ 进入阿里云ECS的控制台。在菜单找到`本实例安全组`\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-aliyun-ports/01.png\"  alt=\"\" width=\"100%\"  >}}\n\n点击`本实例安全组`，点击右侧的`配置规则`\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-aliyun-ports/02.png\"  alt=\"\" width=\"100%\"  >}}\n\n点击`本实例安全组`，点击右侧的`配置规则`\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-aliyun-ports/03.png\"  alt=\"\" width=\"100%\"  >}}\n\n在跳转的新页面点击`添加安全组规则`，在弹框内输入以下配置：\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-aliyun-ports/04.png\"  alt=\"\" width=\"100%\"  >}}\n\n文字版本参考：\n```\n规则方向：入网方向\n授权策略：允许\n协议类型：自定义TCP\n端口范围：1/20000\n优先级：1\n授权类型：IPV4类型地址访问\n授权对象：0.0.0.0/0\n```\n\n输入完成后，点击`确认`即完成设置。\n\n---\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\"><img alt=\"知识共享许可协议\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png\" /></a><br />本作品采用<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\">知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议</a>进行许可。\n"
  },
  {
    "path": "content/2019-2020-tools-docker.md",
    "content": "+++\ntitle = \"Docker使用帮助\"\ndate = 2020-03-12T01:00:00Z\ndescription = \"Docker使用帮助\"\ncategories = [\"Docker\"]\ntype = \"post\"\n+++\n\n在本课程的实验课程代码和工具都使用docker进行了打包，以方便学习和复现。\n\n#### 名词解释\n本文中出现的你可能不理解的名词的简单说明\n\n| 名词 | 解释 |\n| --- | --- |\n| docker | 为我们课堂提供可重复实验的统一环境的一个软件 |\n| 容器 | 类似于虚拟机的虚拟化技术 |\n| 镜像 | 打包好的容器 |\n| 镜像仓库 | 存放制作好的镜像的服务 |\n| 仓库镜像 | 镜像仓库的镜像可以加速镜像的下载速度 |\n\n### docker命令备忘\n下面列表中的命令囊括了你在课程中所需的所有命令：\n```\ndocker pull [容器名]        # 从仓库拉取一个容器\ndocker run [镜像名称]       # 启动容器\ndocker ps                   # 列出正在运行的容器\ndocker ps -a                # 列出所有容器（包含已停止的） \ndocker stop [容器ID]        # 停止一个容器\ndocker rm [容器ID]          # 删除一个容器（需要先停止容器）\ndocker images               # 列出所有镜像\ndocker login [账号] [仓库]    # 登陆阿里云镜像仓库\n```\n\n### docker按照方法\n\n请访问 [Docker安装指南]({{< ref \"content/2019-2020-tools-install-docker.md\" >}})。\n---\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\"><img alt=\"知识共享许可协议\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png\" /></a><br />本作品采用<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\">知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议</a>进行许可。\n"
  },
  {
    "path": "content/2019-2020-tools-install-docker.md",
    "content": "+++\ntitle = \"Docker安装指南\"\ndate = 2020-03-17T01:00:00Z\ndescription = \"Docker安装指南\"\ncategories = [\"Docker\"]\ntype = \"post\"\n+++\n\n本指南用于在阿里云服务器上安装Docker\n\n> 判断是否成功安装docker的方法，在SSH中输入下面的命令\n> 并按`回车`或`return`执行命令，如果出现`blockchain 101`的字符画（手机显示可能会错位），则表示docker安装成功。若未成功，则根据你使用的设备，按照 `一、PC端安装步骤总览` 或 `二、手机端安装步骤总览` 中任意一个来完成docker的安装。\n\n```\ndocker run --rm registry.cn-shenzhen.aliyuncs.com/blockchain101/hello_blockchain\n```\n\n### 一、PC端安装步骤总览\n> 手机端和网页端访问的是同一台服务器，两种安装方式只需要按照流程执行一种即可。\n\n#### 1、安装前检查清单\n\n 已经兑换了阿里云服务器\n\n#### 2、重装阿里云服务器操作系统\n\n> 为了避免不必要的错误，因此这里直接让大家重装阿里云的操作系统\n\n**2.1 登陆阿里云官网**\n\n访问阿里云官方网站 https://www.aliyun.com/ 并登陆阿里云官网\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/2-1-1.png\"  alt=\"\" width=\"100%\"  >}}\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/2-1-2.png\"  alt=\"\" width=\"100%\"  >}}\n\n**2.2 进入阿里云控制面板** \n\n点击`控制台`进入控制台页面\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/2-2-1.png\"  alt=\"\" width=\"100%\"  >}}\n\n在控制台页面的`已开通的云产品`中找到`云服务器ECS`，点击进入云服务器页面\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/2-2-2.png\"  alt=\"\" width=\"100%\"  >}}\n\n在云服务器页面中找到`实例ID`列表,点击你的实例的ID进入云服务器的实例详情页\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/2-2-3.png\"  alt=\"\" width=\"100%\"  >}}\n\n**2.3 停止实例**\n在实例详情页面中找到`停止`按钮，点击\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/2-3-1.png\"  alt=\"\" width=\"100%\"  >}}\n\n在弹出的选择框中分别选择`强制停止`、`确定要强制停止`、`确定`\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/2-3-2.png\"  alt=\"\" width=\"100%\"  >}}\n\n等待实例停止\n\n**2.4 更换操作系统**\n\n实例停止后，找到实例详情页面中的`配置信息`，点击，在下拉列表中点击`更换操作系统`\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/2-4-1.png\"  alt=\"\" width=\"100%\"  >}}\n\n在弹框中选择 `确定，更换操作系统`\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/2-4-2.png\"  alt=\"\" width=\"100%\"  >}}\n\n在新的页面中在`公共镜像`下拉菜单中选择`Ubuntu`和`18.04 64位`\n\n在`安全设置`中选择`自定义密码`\n\n在`登陆密码`设置一个服务器密码\n\n点击`确认`\n\n在弹出框中获取`手机验证码`、输入得到的手机验证码、`确认`\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/2-4-3.png\"  alt=\"\" width=\"100%\"  >}}\n\n在弹出的框中选择`返回实例列表`并等待服务器启动完成\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/2-4-5.png\"  alt=\"\" width=\"100%\"  >}}\n\n#### 3、通过网页版SSH连接服务器\n\n在服务器自动启动完成后，在`实例列表`中选择你的服务器的`远程连接`\n\n**3.1 远程连接服务器**\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/3-1-1.png\"  alt=\"\" width=\"100%\"  >}}\n\n确定`连接协议`是`SSH`\n\n在`用户名`处输入`root`\n\n在`密码`处输入你在步骤`2.4`设置的密码\n\n点击 `确定`\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/3-1-2.png\"  alt=\"\" width=\"100%\"  >}}\n\n#### 4、执行安装docker命令\n\n**4.1 执行安装docker命令**\n\n粘贴下面的命令到SSH中，按回车键执行\n> 网页版中可以使用组合键 `ctrl`+`v`进行粘贴\n\n```\ncurl -sSL https://get.daocloud.io/docker -o d.sh && chmod +x d.sh && ./d.sh --mirror Aliyun && rm d.sh\n```\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/4-1-1.png\"  alt=\"\" width=\"100%\"  >}}\n\n**4.2 等待命令执行完毕**\n\n命令执行时间大约为2-5分钟，当出现如图所示的标志时表示命令执行结束了\n> 如果命令长时间不结束，则可能是你的安装命令输入错误了，按组合键`ctrl`+`c`终止命令的执行\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/4-1-2.png\"  alt=\"\" width=\"100%\"  >}}\n\n#### 5、检查Docker是否安装成功\n\n**5.1 执行测试命令**\n\n粘贴下面的命令到SSH中，按回车键执行\n> 网页版中可以使用组合键 `ctrl`+`v`进行粘贴\n\n```\ndocker run --rm registry.cn-shenzhen.aliyuncs.com/blockchain101/hello_blockchain\n```\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/4-2-1.png\"  alt=\"\" width=\"100%\"  >}}\n\n**5.2 通过运行结果判断是否成功**\n\n运行成功时，会出现blockchain 101 的字符画，否则表示安装失败\n\n若安装失败，关闭所有网页，重新打开，从步骤`1.1`重新走整个流程\n\n若多次安装失败，请联系老师。\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/4-2-2.png\"  alt=\"\" width=\"100%\"  >}}\n\n#### 6、关闭网页\n`5.2`成功后，即可关闭网页离开。\n\n> docker安装完成后无需在每次访问服务器时执行 `4.1 docker安装`，只需要安装一次，除非docker损坏（可通过`5.1`进行判断）。\n>\n> 手机端和网页端访问的是同一台服务器，两种安装方式只需要按照流程执行一种即可。\n\n\n### 二、手机端安装步骤总览\n> 手机端和网页端访问的是同一台服务器，两种安装方式只需要按照流程执行一种即可。\n\n#### 1、安装前检查清单\n\n - 已经兑换了阿里云服务器\n - 手机下载了阿里云APP\n - 手机下载了支付宝APP\n - 使用手机自带的浏览器打开本页面（不要使用QQ内置浏览器等打开本页面，因为QQ屏蔽了支付宝）\n\n #### 2、访问阿里云官网和登陆\n\n **2.1 访问阿里云官网**\n 粘贴下面的网址到手机浏览器地址栏访问阿里云ECS服务器控制台，进行阿里云的登陆界面\n\n ```\n https://ecs.console.aliyun.com/#/home\n ```\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3723.png\"  alt=\"\" width=\"100%\"  >}}\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3724.png\"  alt=\"\" width=\"100%\"  >}}\n\n **2.2 使用支付宝登陆阿里云**\n\n在支付宝中`确认登陆`后，支付宝会跳转到`云服务器管理控制台`\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3725.png\"  alt=\"\" width=\"100%\"  >}}\n\n #### 3、重装阿里云服务器操作系统\n\n  在支付宝跳转的`云服务器管理控制台`中执行`一、PC端安装步骤总览`的步骤`2.3 停止实例` 和 `2.4 更换操作系统`\n\n  执行完后就可以关闭支付宝了\n\n #### 4、访问服务器\n\n **4.1 打开阿里云APP**\n\n 打开阿里云APP，切换到`产品控制台`\n\n {{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3726.png\"  alt=\"\" width=\"100%\"  >}}\n\n {{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3727.png\"  alt=\"\" width=\"100%\"  >}}\n\n **4.2 删除之前的SSH连接**\n将之前的SSH配置删除，如果没有请直接跳到步骤`4.3`\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3734.png\"  alt=\"\" width=\"100%\"  >}}\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3735.png\"  alt=\"\" width=\"100%\"  >}}\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3736.png\"  alt=\"\" width=\"100%\"  >}}\n\n**4.3 打开SSH工具**\n依次点击右上方`+`、`从我的ECS中选择`\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3728.png\"  alt=\"\" width=\"100%\"  >}}\n\n点击列表以弹出下拉框\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3729.png\"  alt=\"\" width=\"100%\"  >}}\n\n根据你主机所在的地域在地域列表里寻找一下主机（比如截图中在深圳）\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3730.png\"  alt=\"\" width=\"100%\"  >}}\n\n找到后，`选中主机`并点击`确定`\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3731.png\"  alt=\"\" width=\"100%\"  >}}\n\n**4.4 添加主机并连接**\n\n在`登陆名`处输入`root`,在`密码`处输入之前步骤设置的密码，点击`确认连接`\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3732.png\"  alt=\"\" width=\"100%\"  >}}\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3733.png\"  alt=\"\" width=\"100%\"  >}}\n\n #### 5、执行安装命令\n\n **5.1 执行安装命令**\n\n连上服务器后，复制下面的命令，`粘贴`到SSH中，按`换行`键或`return`键执行\n\n```\ncurl -sSL https://get.daocloud.io/docker -o d.sh && chmod +x d.sh && ./d.sh --mirror Aliyun && rm d.sh\n```\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3737.png\"  alt=\"\" width=\"100%\"  >}}\n\n执行完成后，重新出现类似`root@sdhkshdfksh:~#`的输出，表示可以继续执行下一行命令\n\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3738.png\"  alt=\"\" width=\"100%\"  >}}\n\n**5.2 等待命令执行完毕**\n\n命令执行时间大约为2-5分钟，当出现如图所示的标志时表示命令执行结束了\n\n> 如果命令长时间（5分钟以上）不结束，则可能是你的安装命令输入错误了，按组合键`ctrl`+`c`终止命令的执行（先按`ctrl`,然后按`c`即可）\n\n #### 6、执行测试命令\n\n **6.1 执行命令**\n复制下面的命令，`粘贴`到SSH中，按`换行`键或`return`键执行，时间大概5-10s\n\n```\ndocker run --rm registry.cn-shenzhen.aliyuncs.com/blockchain101/hello_blockchain\n```\n\n**6.2 执行成功的截图**\n如果执行成功，显示blockchain101（手机端因为屏幕过窄因此可能显示得很乱）\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3739.png\"  alt=\"\" width=\"100%\"  >}}\n\n{{< figure src=\"/blockchain101/images/post/2019-2020-tools-install-docker/IMG_3740.png\"  alt=\"\" width=\"100%\"  >}}\n\n\n #### 7、退出阿里云APP\n\n 成功后，直接退出阿里云APP即可。\n\n\n### 三、可选（不执行不影响本课程学习）\n因为众所周知的网络原因，我在从 hub.docker.com 中拉取镜像时常会因为网络故障出现失败，这时我们需要为docker添加仓库镜像，分别复制以下命令到终端并按回车执行：\n```\nsudo mkdir -p /etc/docker\n```\n```\nsudo tee /etc/docker/daemon.json <<-'EOF'\n{\n  \"registry-mirrors\": [\n    \"https://dockerhub.azk8s.cn\",\n    \"https://hub-mirror.c.163.com\"\n  ]\n}\nEOF\n```\n```\nsudo systemctl daemon-reload\n```\n```\nsudo systemctl restart docker\n```\n\n---\n<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\"><img alt=\"知识共享许可协议\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png\" /></a><br />本作品采用<a rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\">知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议</a>进行许可。\n"
  },
  {
    "path": "content/contact/_index.md",
    "content": "---\ntitle: \"Contact Us\"\ndraft: false\ndescription : \"this is meta description\"\nimage: \"images/contact.svg\"\n---\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labor."
  },
  {
    "path": "content/search/_index.md",
    "content": "---\ntitle: \"Search Result\"\ndraft: false\ndescription : \"this is meta description\"\n---"
  },
  {
    "path": "content/tools/_index.md",
    "content": "---\ntitle: \"Tools\"\ndraft: false\ndescription : \"this is meta description\"\n---"
  },
  {
    "path": "data/tools.yml",
    "content": "tools:\n# tool category\n- title: Dev Tools\n  tool:\n  # tool loop in tool category\n  - name: Git\n    image: \"/images/tools/Git.png\"\n    link: https://git-scm.com/\n  # tool loop in tool category\n  - name: Atom\n    image: \"/images/tools/Atom.png\"\n    link: https://atom.io/\n  # tool loop in tool category\n  - name: Notepad ++\n    image: \"/images/tools/Notepad.png\"\n    link: https://notepad-plus-plus.org/\n  # tool loop in tool category\n  - name: Sublime Text\n    image: \"/images/tools/sublime.png\"\n    link: https://www.sublimetext.com/\n  # tool loop in tool category\n  - name: Visual Studio Code\n    image: \"/images/tools/vs-code.png\"\n    link: https://code.visualstudio.com/\n\n\n# tool category\n- title: Design Tools\n  tool:\n  # tool loop in tool category\n  - name: Sketch\n    image: \"/images/tools/sketch.png\"\n    link: https://www.sketch.com/\n  # tool loop in tool category\n  - name: Adobe Illustrator\n    image: \"/images/tools/illustrator.png\"\n    link: https://www.adobe.com/products/illustrator.html\n  # tool loop in tool category\n  - name: Invision\n    image: \"/images/tools/invision.png\"\n    link: https://www.invisionapp.com/studio\n  # tool loop in tool category\n  - name: Adobe XD\n    image: \"/images/tools/xd.png\"\n    link: https://www.adobe.com/products/xd.html\n  # tool loop in tool category\n  - name: Figma\n    image: \"/images/tools/figma.png\"\n    link: https://www.figma.com/\n\n\n# tool category\n- title: Digital Marketing Tools\n  tool:\n  # tool loop in tool category\n  - name: Mailchimp\n    image: \"/images/tools/MailChimp.jpg\"\n    link: https://mailchimp.com/\n  # tool loop in tool category\n  - name: Buffer\n    image: \"/images/tools/Buffer.jpg\"\n    link: https://buffer.com/\n  # tool loop in tool category\n  - name: Bitly Link\n    image: \"/images/tools/Bitly.jpg\"\n    link: https://bitly.com/\n  # tool loop in tool category\n  - name: Hotjar\n    image: \"/images/tools/Hotjar.jpg\"\n    link: https://www.hotjar.com/\n  # tool loop in tool category\n  - name: Ahrefs\n    image: \"/images/tools/Ahrefs.jpg\"\n    link: https://ahrefs.com/\n  # tool loop in tool category\n  - name: Google Trends\n    image: \"/images/tools/GoogleTrends.jpg\"\n    link: https://trends.google.com/trends/\n  # tool loop in tool category\n  - name: Google Analytics\n    image: \"/images/tools/Google-Analytics.jpg\"\n    link: https://analytics.google.com/analytics/web\n"
  },
  {
    "path": "resources/_gen/assets/scss/scss/style.scss_b95b077eb505d5c0aff8055eaced30ad.content",
    "content": "/*!------------------------------------------------------------------\n[MAIN STYLESHEET]\nPROJECT: Project Name\nVERSION: Versoin Number\n-------------------------------------------------------------------*/@import \"https://fonts.googleapis.com/css?family=Muli:300,400,600,700&display=swap\";body{line-height:1.5;font-family:muli,sans-serif;-webkit-font-smoothing:antialiased;font-size:15px;color:#666}p,.paragraph{font-weight:400;color:#666;font-size:18px;line-height:1.7;font-family:muli,sans-serif}a{color:#e8505b}a:hover{color:#e8505b}h1,h2,h3,h4,h5,h6{color:#222;font-family:muli,sans-serif;font-weight:600;line-height:1.2}h1 a:hover,h2 a:hover,h3 a:hover,h4 a:hover,h5 a:hover,h6 a:hover{text-decoration:none}h1,.h1{font-size:50px}h2,.h2{font-size:40px}h3,.h3{font-size:30px}h4,.h4{font-size:26px}h5,.h5{font-size:20px}h6,.h6{font-size:16px}.btn{font-size:16px;font-family:muli,sans-serif;text-transform:capitalize;padding:12px 20px;border-radius:5px;border:1px solid;position:relative;z-index:1;transition:.2s ease}.btn:hover,.btn:active,.btn:focus{outline:0;box-shadow:none!important}.btn-sm{font-size:15px;padding:6px 10px}.btn-primary{background:#e8505b;color:#fff;border-color:#e8505b}.btn-primary:active,.btn-primary:hover,.btn-primary.focus,.btn-primary.active{background:#e8505b!important;border-color:#e8505b!important}.btn-outline-primary{background:0 0;color:#e8505b;border-color:#e8505b}.btn-outline-primary:active,.btn-outline-primary:hover,.btn-outline-primary.focus,.btn-outline-primary.active{background:#e8505b!important;border-color:#e8505b!important;color:#fff}.btn-transparent{background:0 0;color:#e8505b;border:0;border-bottom:1px solid #e8505b;border-radius:0;padding:2px}.btn-transparent:active,.btn-transparent:hover,.btn-transparent.focus,.btn-transparent.active{background:0 0}body{background-color:#fff;overflow-x:hidden}::selection{background:#ee7d85;color:#fff}.preloader{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#fff;z-index:9999;display:flex;align-items:center;justify-content:center}img{vertical-align:middle;border:0}a,button,select{cursor:pointer;transition:.2s ease}a:focus,button:focus,select:focus{outline:0}.slick-slide{outline:0}.section{padding-top:80px;padding-bottom:80px}.bg-cover{background-size:cover;background-position:50%;background-repeat:no-repeat}.border-primary{border-color:#acb9c4!important}.overlay{position:relative}.overlay::before{position:absolute;content:'';height:100%;width:100%;top:0;left:0;background:#000;opacity:.5}.outline-0{outline:0!important}.d-unset{display:unset!important}.bg-primary{background:#e8505b!important}.bg-secondary{background:#9ac4f8!important}.bg-light{background:#f8f8f8!important}.text-primary{color:#e8505b!important}a.text-primary:hover{color:#e8505b!important}.text-color{color:#666}.mb-10{margin-bottom:10px!important}.mb-20{margin-bottom:20px!important}.mb-30{margin-bottom:30px!important}.mb-40{margin-bottom:40px!important}.mb-50{margin-bottom:50px!important}.mb-60{margin-bottom:60px!important}.mb-70{margin-bottom:70px!important}.mb-80{margin-bottom:80px!important}.mb-90{margin-bottom:90px!important}.mb-100{margin-bottom:100px!important}.zindex-1{z-index:1}.overflow-hidden{overflow:hidden}.shadow,.nav-tab .nav-link.active{box-shadow:0 10px 30px 0 rgba(68,74,102,.1)!important}.form-control{height:50px;line-height:50px}.form-control:focus{outline:0;box-shadow:none;border-color:#e8505b}textarea.form-control{height:150px}.page-link:focus{box-shadow:none}.navigation{transition:.3s ease}@media(max-width:991px){.navigation.fixed-top{position:sticky!important}}@media(max-width:991px){.navigation{background:#fff}}.nav-bg{background-color:#fff;box-shadow:0 0 10px rgba(0,0,0,.161)}.nav-item{margin:0}.nav-item .nav-link{text-transform:capitalize}.navbar-light .navbar-nav .nav-link{color:#222}.navbar-light .navbar-nav .nav-link:hover{color:#e8505b}.navbar-expand-lg .navbar-nav .nav-link{padding:20px}.search-btn{border:0;background:0 0}.search-wrapper{position:absolute;top:0;left:0;right:0;height:100%;z-index:2;visibility:hidden;transition:.2s ease;opacity:0}.search-wrapper.open{visibility:visible;opacity:1}.search-box{height:100%;width:100%;border:0;background:#fff;font-size:20px;padding:0}.search-box:focus{box-shadow:none!important;outline:0}.search-close{position:absolute;right:5px;top:50%;transform:translateY(-50%);border:0;background:0 0;page-break-after:10px;font-size:20px}.banner{padding:220px 0 120px;position:relative}@media(max-width:1200px){.banner{padding:150px 0 100px}}@media(max-width:991px){.banner{padding:100px 0 0}}.banner .illustration{position:absolute;bottom:0;right:30px}@media(max-width:1600px){.banner .illustration{max-width:600px}}@media(max-width:991px){.banner .illustration{display:none}}.banner .illustration-mobile{display:none}@media(max-width:991px){.banner .illustration-mobile{display:block}}.block{padding:60px 60px 40px}.author-thumb{height:300px;width:300px;object-fit:cover}.pagination{justify-content:center}.pagination .page-item .page-link{display:inline-block;width:40px;height:40px;text-align:center;color:#666;border:0;border-radius:5px}.pagination .page-item .page-link:hover{background:#e8505b;color:#fff}.pagination .page-item.active .page-link{background:#e8505b;color:#fff}.post-title:hover{text-decoration:underline}.post-meta{color:#999}.post-meta a{color:inherit}.post-meta a:hover{color:#e8505b}.content *{margin-bottom:20px}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{margin-bottom:10px}.content ol{padding-left:20px}.content ul{padding-left:0}.content ul li{position:relative;padding-left:20px;margin-bottom:15px;list-style-type:none}.content ul li::before{position:absolute;content:\"\\e71b\";font-family:themify;font-size:14px;left:0;top:1px;color:#e8505b;transition:.3s ease}.content table{text-align:left;width:100%;max-width:100%;margin-bottom:1rem;border:1px solid #dee2e6}.content table th,.content table td{padding:.75rem;vertical-align:top;border:1px solid #dee2e6}.content table thead{background:#f3f3f3}.content table tbody{background:#f8f8f8}.content table tbody td{text-align:left!important}.content blockquote{padding:20px;background:#f8f8f8;border-left:3px solid #e8505b}.content blockquote p{margin-bottom:0;color:#222;font-style:italic!important}.content pre{padding:10px 20px;background:#f8f8f8}.content pre code{border:0;background:0 0;padding:0}.content a{color:#e8505b}.content a:hover{text-decoration:underline}.content code{padding:3px 5px;background:#f8f8f8;border:1px solid #acb9c4;border-radius:3px;color:#222}.social-icon a{height:45px;width:45px;border:1px solid #e8505b;border-radius:50%;line-height:45px;text-align:center;display:block;color:#e8505b}.social-icon a:hover{background:#e8505b;color:#fff}.nav-tab .nav-link{padding:15px;color:#666;border-radius:5px}.nav-tab .nav-link.active{color:#fff;background:#e8505b}"
  },
  {
    "path": "resources/_gen/assets/scss/scss/style.scss_b95b077eb505d5c0aff8055eaced30ad.json",
    "content": "{\"Target\":\"scss/style.min.css\",\"MediaType\":\"text/css\",\"Data\":{}}"
  },
  {
    "path": "themes/northendlab/LICENSE",
    "content": "The MIT License (MIT)\n\nCopyright (c) 2019 gethugothemes.com\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
  },
  {
    "path": "themes/northendlab/README.md",
    "content": "# Easy Setup (Hugo + Netlify + Forestry)\nBuild your website with northendlab hugo theme by following this easy steps (No Coding Required)\n\n<a href=\"http://bit.ly/meghna-hugo-installation\" target=\"_blank\" title=\"meghna hugo installation\" rel=\"nofollow\"><img width=\"100%\" src=\"https://user-images.githubusercontent.com/37659754/70844354-4028be00-1e6a-11ea-8d84-02e9a25e7db8.png\"></a>\n\nIn this tutorial we will show you to make your website live without buying any hosting and touching a single line of code. We made this tutorial based on [meghna hugo](https://github.com/themefisher/meghna-hugo) but you can setup everithing like this.\n\n### What you need !!\n\n1. Git acccount (Ex: Github, Gitlab etc ) . In our case we use github.\n2. [Netlify](https://bit.ly/netlify-account) account to host files and add custom domain .\n3. [Forestry](https://bit.ly/forestry-account) account to maintain whole project without code.\n\n\n### Step 1 : Fork or Clone repository\n\nFirst we will fork this [northendlab hugo](https://github.com/themefisher/northendlab-hugo) template.\n\n### Step 2 : Add your repository in Forestry\n\nGo to your [forestry](https://bit.ly/forestry-account)  account and click on `import your site now`. declare your config.toml file [`exampleSite`] and fill up basic settings .\n\n**Or just click this button for one click installation** [![import to forestry](https://assets.forestry.io/import-to-forestryK.svg)](https://app.forestry.io/quick-start?repo=themefisher/northendlab-hugo&engine=hugo&version=0.60.1&config=exampleSite)\n\nNow mark everything as done, then go to configuration to change the base url . You can put any url but this have to similar as netlify . So for now put a name which you are going to put in netlify as netlify subdomain.\n\n### Step 3 : Setup and host website with Netlify\n\nHere comes the last step . Go to your [netlify](https://bit.ly/netlify-account) account and click add new site . Choose your git repository to import your website in netlify .  And now you can see the forked `northendlab hugo` theme. select it and follow the steps. Then go to `site settings` for change the site name and put your subdoamin name here what you puted on forestry as base url. save it and go to `deploy` from top menu, Wait a while and click on `site preview` or just simply go to the subdomain you puted as base url. **BOOM! Your site is live.** Now you can go to forestry and add, remove or customize every setting and content.\n\n> If you face any issue regarding the installation feel free to onen [open a new issue](https://github.com/themefisher/northendlab-hugo/issues)\n\n## Table of Contents\n\n- [Demo](#demo)\n- [Installation](#installation)\n- [Main Features](#main-features)\n- [Reporting Issues](#reporting-issues)\n- [Technical Support or Questions](#technical-support-or-questions)\n- [More Hugo Themes](https://gethugothemes.com/shop/)\n\n## Demo\n\n| Author  | Contact  | Search  | Tools  |\n|---|---|---|---|\n| ![author](https://user-images.githubusercontent.com/37659754/69005991-8cf4a400-0953-11ea-8dd7-b9a7819803a4.png) | ![contact](https://user-images.githubusercontent.com/37659754/69005990-8bc37700-0953-11ea-8189-3e8cb62b45bd.png) | ![search](https://user-images.githubusercontent.com/37659754/69005992-8cf4a400-0953-11ea-8349-e4f55ae123a5.png) | ![tools](https://user-images.githubusercontent.com/37659754/69005993-8d8d3a80-0953-11ea-965a-d30c3f71dfa2.png) |\n\n**The images are only for demonstration purpose, Please don't use those images.**\n\n[Live Demo](http://demo.themefisher.com/northendlab-hugo/).\n\n\n## Installation\nAt the top we have shown an easy hugo installation. but still if you think you want to go with the traditional way then use the following commands:\n\n```\n$ git clone git@github.com:themefisher/northendlab-hugo.git\n$ cd northendlab-hugo/exampleSite/\n$ hugo server --themesDir ../..\n```\n\n## Main features\n\n- Bootstrap 4 Powered\n- Google Analytics\n- SEO Friendly\n- Multiple Author\n- Contact Page\n- Search Item\n- Responsive Ready\n\n## Reporting Issues\n\nWe use GitHub Issues as the official bug tracker for the Navigator Template. Please Search [existing issues](https://github.com/themefisher/northendlab-hugo/issues). It’s possible someone has already reported the same problem.\nIf your problem or idea is not addressed yet, [open a new issue](https://github.com/themefisher/northendlab-hugo/issues)\n\n## Technical Support or Questions\n\nIf you have questions or need help integrating the product please [contact us](mailto:themefisher@gmail.com) instead of opening an issue.  \n\n## Hire Us\nWe are available for Hiring of your next HUGO project. Drop Us a mail [themefisher@gmail.com](mailto:themefisher@gmail.com)\n\n## Premium Themes\n\n| [![Mega-Bundle-HUGO](https://gethugothemes.com/wp-content/uploads/edd/2019/09/Mega-Bundle-HUGO.png)](https://themefisher.com/products/hugo-mega-bundle/) | [![revolve](https://gethugothemes.com/wp-content/uploads/edd/2019/11/revolve.jpg)](https://gethugothemes.com/products/revolve-hugo/) | [![Liva](https://gethugothemes.com/wp-content/uploads/edd/2019/11/liva.png)](https://gethugothemes.com/products/liva-hugo/) |\n|:---:|:---:|:---:|\n| **Hugo Mega Bundle**  | **Revolve**  | **Liva**  |\n| [![northendlab](https://gethugothemes.com/wp-content/uploads/2019/11/Blogplate-Blog-Template.png)](https://gethugothemes.com/products/northendlab/) | [![Influencer](https://gethugothemes.com/wp-content/uploads/2019/11/Influencer.png)](https://gethugothemes.com/products/influencer-hugo/) | [![Kross](https://gethugothemes.com/wp-content/uploads/edd/2019/07/kross-portfolio-template.jpg)](https://gethugothemes.com/products/kross-hugo-theme/) |\n| **Northendlab** | **Influencer** | **Kross** |\n| [![Biztrox](https://gethugothemes.com/wp-content/uploads/2019/12/Biztrox.png)](https://gethugothemes.com/products/hugo-business-theme/) | [![Parsa](https://gethugothemes.com/wp-content/uploads/edd/2019/07/parsa-768x576.jpg)](https://gethugothemes.com/products/parsa-hugo-theme/) | [![all](https://gethugothemes.com/wp-content/uploads/2019/12/get-more-hugo-themes.png)](https://gethugothemes.com/shop/) |\n| **Biztrox** | **Parsa** | **More Hugo Themes** |"
  },
  {
    "path": "themes/northendlab/archetypes/default.md",
    "content": "+++\n+++\n"
  },
  {
    "path": "themes/northendlab/assets/js/script.js",
    "content": "(function ($) {\n  'use strict';\n\n  // Preloader js    \n  $(window).on('load', function () {\n    $('.preloader').fadeOut(100);\n  });\n\n  // navigation\n  $(window).scroll(function () {\n    if ($('.navigation').offset().top > 1) {\n      $('.navigation').addClass('nav-bg');\n    } else {\n      $('.navigation').removeClass('nav-bg');\n    }\n  });\n\n  //  Search Form Open\n  $('#searchOpen').on('click', function () {\n    $('.search-wrapper').addClass('open');\n  });\n  $('#searchClose').on('click', function () {\n    $('.search-wrapper').removeClass('open');\n  });\n\n})(jQuery);"
  },
  {
    "path": "themes/northendlab/assets/scss/_buttons.scss",
    "content": "/* Button style */\n.btn {\n  font-size: 16px;\n  font-family: $primary-font;\n  text-transform: capitalize;\n  padding: 12px 20px;\n  border-radius: 5px;\n  border: 1px solid;\n  position: relative;\n  z-index: 1;\n  transition: .2s ease;\n\n  &:hover,\n  &:active,\n  &:focus {\n    outline: 0;\n    box-shadow: none !important;\n  }\n}\n\n.btn-sm{\n  font-size: 15px;\n  padding: 6px 10px;\n}\n\n.btn-primary {\n  background: $primary-color;\n  color: $white;\n  border-color: $primary-color;\n\n  &:active,\n  &:hover,\n  &.focus,\n  &.active {\n    background: $primary-color !important;\n    border-color: $primary-color !important;\n  }\n}\n\n.btn-outline-primary {\n  background: transparent;\n  color: $primary-color;\n  border-color: $primary-color;\n\n  &:active,\n  &:hover,\n  &.focus,\n  &.active {\n    background: $primary-color !important;\n    border-color: $primary-color !important;\n    color: $white;\n  }\n}\n\n\n.btn-transparent {\n  background: transparent;\n  color: $primary-color;\n  border: 0;\n  border-bottom: 1px solid $primary-color;\n  border-radius: 0;\n  padding: 2px;\n\n  &:active,\n  &:hover,\n  &.focus,\n  &.active {\n    background: transparent;\n  }\n}"
  },
  {
    "path": "themes/northendlab/assets/scss/_common.scss",
    "content": "body {\n  background-color: $body-color;\n  overflow-x: hidden;\n}\n\n::selection {\n  background: lighten($color: $primary-color, $amount: 10);\n  color: $white;\n}\n\n/* preloader */\n\n.preloader {\n  position: fixed;\n  top: 0;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  background-color: #fff;\n  z-index: 9999;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n\nimg {\n  vertical-align: middle;\n  border: 0;\n}\n\na,\nbutton,\nselect {\n  cursor: pointer;\n  transition: .2s ease;\n\n  &:focus {\n    outline: 0;\n  }\n}\n\n.slick-slide {\n  outline: 0;\n}\n\n.section {\n  padding-top: 80px;\n  padding-bottom: 80px;\n}\n\n.bg-cover {\n  background-size: cover;\n  background-position: center center;\n  background-repeat: no-repeat;\n}\n\n.border-primary {\n  border-color: $border-color !important;\n}\n\n/* overlay */\n\n.overlay {\n  position: relative;\n\n  &::before {\n    position: absolute;\n    content: '';\n    height: 100%;\n    width: 100%;\n    top: 0;\n    left: 0;\n    background: $black;\n    opacity: .5;\n  }\n}\n\n.outline-0 {\n  outline: 0 !important;\n}\n\n.d-unset {\n  display: unset !important;\n}\n\n.bg-primary {\n  background: $primary-color !important;\n}\n\n.bg-secondary {\n  background: $secondary-color !important;\n}\n\n.bg-light{\n  background: $light !important;\n}\n\n.text-primary {\n  color: $primary-color !important;\n}\n\na.text-primary:hover {\n  color: $primary-color !important;\n}\n\n.text-color {\n  color: $text-color;\n}\n\n.mb-10 {\n  margin-bottom: 10px !important;\n}\n\n.mb-20 {\n  margin-bottom: 20px !important;\n}\n\n.mb-30 {\n  margin-bottom: 30px !important;\n}\n\n.mb-40 {\n  margin-bottom: 40px !important;\n}\n\n.mb-50 {\n  margin-bottom: 50px !important;\n}\n\n.mb-60 {\n  margin-bottom: 60px !important;\n}\n\n.mb-70 {\n  margin-bottom: 70px !important;\n}\n\n.mb-80 {\n  margin-bottom: 80px !important;\n}\n\n.mb-90 {\n  margin-bottom: 90px !important;\n}\n\n.mb-100 {\n  margin-bottom: 100px !important;\n}\n\n.zindex-1 {\n  z-index: 1;\n}\n\n.overflow-hidden {\n  overflow: hidden;\n}\n\n.shadow {\n  box-shadow: 0 10px 30px 0 rgba(68,74,102,.1) !important;\n}\n\n.form-control{\n  height: 50px;\n  line-height: 50px;\n  &:focus{\n    outline: 0;\n    box-shadow: none;\n    border-color: $primary-color;\n  }\n}\n\ntextarea.form-control{\n  height: 150px;\n}\n\n.page-link:focus{\n  box-shadow: none;\n}"
  },
  {
    "path": "themes/northendlab/assets/scss/_mixins.scss",
    "content": "@mixin mobile-xs{\n  @media(max-width:400px){\n    @content;\n  }\n}\n@mixin mobile{\n  @media(max-width:575px){\n    @content;\n  }\n}\n@mixin tablet{\n  @media(max-width:767px){\n    @content;\n  }\n}\n@mixin desktop{\n  @media(max-width:991px){\n    @content;\n  }\n}\n@mixin desktop-lg{\n  @media(max-width:1200px){\n    @content;\n  }\n}\n@mixin desktop-xl{\n  @media(max-width:1600px){\n    @content;\n  }\n}\n\n@mixin size($size){\n  width: $size; height: $size;\n}"
  },
  {
    "path": "themes/northendlab/assets/scss/_typography.scss",
    "content": "/*  typography */\n@import url('https://fonts.googleapis.com/css?family=Muli:300,400,600,700&display=swap');\n\nbody {\n  line-height: 1.5;\n  font-family: $primary-font;\n  -webkit-font-smoothing: antialiased;\n  font-size: 15px;\n  color: $text-color;\n}\n\np, .paragraph {\n  font-weight: 400;\n  color: $text-color;\n  font-size: 18px;\n  line-height: 1.7;\n  font-family: $primary-font;\n}\n\n\na {\n  color: $primary-color;\n  &:hover{\n    color: $primary-color;\n  }\n}\n\nh1,h2,h3,h4,h5,h6 {\n  color: $text-color-dark;\n  font-family: $primary-font;\n  font-weight: 600;\n  line-height: 1.2;\n  a{\n    &:hover{\n      text-decoration: none;\n    }\n  }\n}\n\nh1, .h1{\n  font-size: 50px;\n}\n\nh2, .h2{\n  font-size: 40px;\n}\n\nh3, .h3{\n  font-size: 30px;\n}\n\nh4, .h4{\n  font-size: 26px;\n}\n\nh5, .h5{\n  font-size: 20px;\n}\n\nh6, .h6{\n  font-size: 16px;\n}\n"
  },
  {
    "path": "themes/northendlab/assets/scss/_variables.scss",
    "content": "// Color Variables\n$primary-color: #E8505B;\n$secondary-color: #9AC4F8;\n$text-color: #666666;\n$text-color-dark: #222222;\n$body-color: #fff;\n$border-color: #ACB9C4;\n$black: #000;\n$white: #fff;\n$light: #F8F8F8;\n\n// Font Variables\n$primary-font: 'Muli', sans-serif;\n$icon-font: 'themify';"
  },
  {
    "path": "themes/northendlab/assets/scss/style.scss",
    "content": "/*!------------------------------------------------------------------\n[MAIN STYLESHEET]\n\nPROJECT:\tProject Name\nVERSION:\tVersoin Number\n-------------------------------------------------------------------*/\n\n/*------------------------------------------------------------------\n[TABLE OF CONTENTS]\n-------------------------------------------------------------------*/\n\n@import 'variables';\n\n@import 'mixins';\n\n@import 'typography';\n\n@import 'buttons';\n\n@import 'common';\n\n@import 'templates/navigation.scss';\n\n@import 'templates/main.scss';"
  },
  {
    "path": "themes/northendlab/assets/scss/templates/_main.scss",
    "content": "/* body */\n/* body {\n  background-image: url(../images/backgrounds/pattern.png);\n} */\n\n/* banner */\n.banner {\n  padding: 220px 0 120px;\n  position: relative;\n  @include desktop-lg {\n    padding: 150px 0 100px;\n  }\n  @include desktop {\n    padding: 100px 0 0;\n  }\n\n  .illustration {\n    position: absolute;\n    bottom: 0;\n    right: 30px;\n    @include desktop-xl {\n      max-width: 600px;\n    }\n    @include desktop {\n      display: none;\n    }\n  }\n  .illustration-mobile{\n    display: none;\n    @include desktop {\n      display: block;\n    }\n  }\n}\n\n/* blog */\n.block {\n  padding: 60px 60px 40px;\n}\n\n.author-thumb{\n  height: 300px;\n  width: 300px;\n  object-fit: cover;\n}\n\n/* pagination */\n.pagination {\n  justify-content: center;\n\n  .page-item {\n\n    .page-link {\n      display: inline-block;\n      width: 40px;\n      height: 40px;\n      text-align: center;\n      color: $text-color;\n      border: 0;\n      border-radius: 5px;\n\n      &:hover {\n        background: $primary-color;\n        color: $white;\n      }\n    }\n\n    &.active {\n      .page-link {\n        background: $primary-color;\n        color: $white;\n      }\n    }\n  }\n}\n.post-title:hover{\n  text-decoration: underline;\n}\n.post-meta{\n  color: #999;\n  a{\n    color: inherit;\n    &:hover{\n      color: $primary-color;\n    }\n  }\n}\n\n\n.content {\n  * {\n    margin-bottom: 20px;\n  }\n\n  h1,\n  h2,\n  h3,\n  h4,\n  h5,\n  h6 {\n    margin-bottom: 10px;\n  }\n\n  ol {\n    padding-left: 20px;\n  }\n\n  ul {\n    padding-left: 0;\n\n    li {\n      position: relative;\n      padding-left: 20px;\n      margin-bottom: 15px;\n      list-style-type: none;\n\n      &::before {\n        position: absolute;\n        content: \"\\e71b\";\n        font-family: $icon-font;\n        font-size: 14px;\n        left: 0;\n        top: 1px;\n        color: $primary-color;\n        transition: .3s ease;\n      }\n    }\n  }\n\n  table {\n    text-align: left;\n    width: 100%;\n    max-width: 100%;\n    margin-bottom: 1rem;\n\n    border: 1px solid #dee2e6;\n\n    th,\n    td {\n      padding: .75rem;\n      vertical-align: top;\n      border: 1px solid #dee2e6\n    }\n\n    thead {\n      background: darken($color: $light, $amount: 2);\n    }\n\n    tbody {\n      background: $light;\n\n      td {\n        text-align: left !important;\n      }\n    }\n  }\n\n\n  blockquote {\n    padding: 20px;\n    background: $light;\n    border-left: 3px solid $primary-color;\n\n    p {\n      margin-bottom: 0;\n      color: $text-color-dark;\n      font-style: italic !important;\n    }\n  }\n\n\n  pre {\n    padding: 10px 20px;\n    background: $light;\n\n    code {\n      border: 0;\n      background: transparent;\n      padding: 0;\n    }\n  }\n\n  a {\n    color: $primary-color;\n\n    &:hover {\n      text-decoration: underline;\n    }\n  }\n\n  code {\n    padding: 3px 5px;\n    background: $light;\n    border: 1px solid $border-color;\n    border-radius: 3px;\n    color: $text-color-dark;\n  }\n\n}\n\n/* social icon */\n.social-icon{\n  a{\n    height: 45px;\n    width: 45px;\n    border: 1px solid $primary-color;\n    border-radius: 50%;\n    line-height: 45px;\n    text-align: center;\n    display: block;\n    color: $primary-color;\n    &:hover{\n      background: $primary-color;\n      color: $white;\n    }\n  }\n}\n\n/* nav tab */\n.nav-tab{\n  .nav-link{\n    padding: 15px;\n    color: $text-color;\n    border-radius: 5px;\n    &.active{\n      @extend .shadow;\n      color: $white;\n      background: $primary-color;\n    }\n  }\n}"
  },
  {
    "path": "themes/northendlab/assets/scss/templates/_navigation.scss",
    "content": ".navigation {\n  transition: .3s ease;\n  &.fixed-top{\n    @include desktop {\n      position: sticky !important;\n    }\n  }\n  @include desktop {\n    background: $white;\n  }\n}\n\n.nav-bg {\n  background-color: $white;\n  box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.161);\n}\n\n.nav-item{\n  margin: 0;\n\n  .nav-link{\n    text-transform: capitalize;\n  }\n}\n\n.navbar-light .navbar-nav .nav-link {\n  color: $text-color-dark;\n  &:hover{\n    color: $primary-color;\n  }\n}\n\n.navbar-expand-lg .navbar-nav .nav-link {\n  padding: 20px;\n}\n\n\n/* search */\n.search-btn {\n  border: 0;\n  background: transparent;\n}\n\n.search-wrapper {\n  position: absolute;\n  top: 0;\n  left: 0;\n  right: 0;\n  height: 100%;\n  z-index: 2;\n  visibility: hidden;\n  transition: .2s ease;\n  opacity: 0;\n\n  &.open {\n    visibility: visible;\n    opacity: 1;\n  }\n}\n\n.search-box {\n  height: 100%;\n  width: 100%;\n  border: 0;\n  background: $white;\n  font-size: 20px;\n  padding: 0;\n\n  &:focus {\n    box-shadow: none !important;\n    outline: 0;\n  }\n}\n\n.search-close {\n  position: absolute;\n  right: 5px;\n  top: 50%;\n  transform: translateY(-50%);\n  border: 0;\n  background: transparent;\n  page-break-after: 10px;\n  font-size: 20px;\n}"
  },
  {
    "path": "themes/northendlab/exampleSite/.forestry/front_matter/templates/author.yml",
    "content": "---\nlabel: Author\nhide_body: false\nfields:\n- type: text\n  name: title\n  label: title\n- type: text\n  name: description\n  label: description\n- type: file\n  name: image\n  label: image\npages:\n- content/author/hasan-muhammad-mehedi.md\n- content/author/mehedi.md\n"
  },
  {
    "path": "themes/northendlab/exampleSite/.forestry/front_matter/templates/post.yml",
    "content": "---\nlabel: Post\nhide_body: false\nfields:\n- type: text\n  name: title\n  label: title\n- type: datetime\n  name: date\n  label: date\n- type: file\n  name: image\n  label: image\n- type: text\n  name: author\n  label: author\n- type: text\n  name: description\n  label: description\n- type: list\n  name: categories\n  label: categories\n- type: text\n  name: type\n  label: type\n  default: post\npages:\n- content/the-terms-everybody-should-know-before-starting-seo.md\n- content/what-tools-you-are-using-for-website-analytics.md\n"
  },
  {
    "path": "themes/northendlab/exampleSite/.forestry/front_matter/templates/tools.yml",
    "content": "---\nlabel: Tools\nhide_body: true\nfields:\n- type: field_group_list\n  name: tools\n  label: tools\n  fields:\n  - type: text\n    name: title\n    label: title\n  - type: field_group_list\n    name: tool\n    label: tool\n    fields:\n    - type: text\n      name: name\n      label: name\n    - type: file\n      name: image\n      label: image\n    - type: text\n      name: link\n      label: link\npages:\n- data/tools.yml\n"
  },
  {
    "path": "themes/northendlab/exampleSite/.forestry/settings.yml",
    "content": "---\nnew_page_extension: md\nauto_deploy: false\nadmin_path: ''\nwebhook_url: \nsections:\n- type: directory\n  path: exampleSite/content\n  label: Post\n  create: documents\n  match: \"*\"\n  templates:\n  - post\n- type: directory\n  path: exampleSite/data\n  label: Tools\n  create: documents\n  match: \"**/*\"\n  new_doc_ext: yml\n  templates:\n  - tools\n- type: directory\n  path: exampleSite/content/author\n  label: Author\n  create: documents\n  match: \"**/*\"\n  templates:\n  - author\n- type: document\n  path: exampleSite/documentation\n  label: Documentation\n- type: directory\n  path: exampleSite/content/contact\n  label: Contact\n  create: all\n  match: \"**/*\"\n- type: directory\n  path: exampleSite/\n  label: Configuration\n  create: all\n  match: \"*.toml\"\n  new_doc_ext: toml\nupload_dir: exampleSite/static/images\npublic_path: \"/images\"\nfront_matter_path: ''\nuse_front_matter_path: false\nfile_template: \":filename:\"\nbuild:\n  preview_env:\n  - HUGO_ENV=staging\n  - HUGO_VERSION=0.58.2\n  preview_output_directory: public\n  preview_docker_image: forestryio/hugo:latest\n  mount_path: \"/srv\"\n  working_dir: \"/srv\"\n  instant_preview_command: hugo server -D -E -F --port 8080 --bind 0.0.0.0 --renderToDisk\n    -d public\nversion: 0.58.2\n"
  },
  {
    "path": "themes/northendlab/exampleSite/config.toml",
    "content": "############################ Default configuration #########################\nbaseURL = \"https://examplesite.com/\"\nlanguageCode = \"en-us\"\n# site title \ntitle = \"Northendlab | Blog Template\"\n# theme\ntheme = \"northendlab-hugo\"\n# post pagination\npaginate = \"5\"\n# post excerpt\nsummaryLength = \"10\"\n# disqus short name\ndisqusShortname = \"\" # get your shortname form here : https://disqus.com\n\n[outputs]\nhome = [\"HTML\", \"AMP\", \"RSS\", \"JSON\"]\n\n########################## Plugings ######################################\n\n# css plugins\n[[params.plugins.css]]\nlink = \"plugins/bootstrap/bootstrap.min.css\"\n[[params.plugins.css]]\nlink = \"plugins/themify-icons/themify-icons.css\"\n\n# js plugins\n[[params.plugins.js]]\nlink = \"plugins/jQuery/jquery.min.js\"\n[[params.plugins.js]]\nlink = \"plugins/bootstrap/bootstrap.min.js\"\n[[params.plugins.js]]\nlink = \"plugins/search/fuse.min.js\"\n[[params.plugins.js]]\nlink = \"plugins/search/mark.js\"\n[[params.plugins.js]]\nlink = \"plugins/search/search.js\"\n\n\n########################### Navigation ###################################\n\n# main menu\n[[menu.main]]\nURL = \"contact\"\nname = \"Contact\"\nweight = 1\n\n[[menu.main]]\nURL = \"tools\"\nname = \"tools\"\nweight = 2\n\n# footer menu\n[[menu.footer]]\nURL = \"contact\"\nname = \"Contact\"\nweight = 1\n\n[[menu.footer]]\nURL = \"tools\"\nname = \"tools\"\nweight = 2\n\n\n######################### Default Parameters ###########################\n[params]\n# home\nhome = \"Home\"\n# logo\nlogo = \"images/logo.svg\"\n# meta data\nauthor = \"Themefisher\"\ndescription = \"This is meta description\"\n# google tag manager\ngoogle_tag_manager = \"\" # your id\n# google analitycs ID\ngoogle_analitycs_id = \"\" # your id\n# contact form action\ncontact_form_action = \"#\" # contact form works with : https://formspree.io\n# copyright\ncopyright = \"&copy; 2019 [Gethugothemes](https://gethugothemes.com) All Rights Reserved\"\n\n# preloader\n[params.preloader]\nenable = true\npreloader = \"\" # use png, jpg, svg or gif format\n\n# search\n[params.search]\nenable = true\n\n\n####################### banner #######################################\n[params.banner]\nbgImage = \"images/banner/banner-bg.svg\"\ntitle = \"Hi, I'm John Smith Doe. <br> I help people make the  worlds best software\"\nimage = \"images/banner/illustration.svg\"\n\n\n######################## call to action ###############################\n[params.cta]\nenable = true\nimage = \"images/hugo-muscot.svg\"\ntitle = \"Get the best hugo templates\"\ndescription = \"Fusce condimentum nunc ac nisi vulputate fringilla. Donec lacinia congue felis in faucibus.\"\n[params.cta.button]\nenable = true\nlabel = \"Visit Here\"\nlink = \"https://gethugothemes.com/shop/\"\n\n\n############################## Social Site ##########################\n[[params.social]]\nicon = \"ti-facebook\" # themify icon pack https://themify.me/themify-icons\nlink = \"#\"\n[[params.social]]\nicon = \"ti-twitter-alt\" # themify icon pack https://themify.me/themify-icons\nlink = \"#\"\n[[params.social]]\nicon = \"ti-github\" # themify icon pack https://themify.me/themify-icons\nlink = \"#\"\n[[params.social]]\nicon = \"ti-linkedin\" # themify icon pack https://themify.me/themify-icons\nlink = \"#\""
  },
  {
    "path": "themes/northendlab/exampleSite/content/author/john-doe.md",
    "content": "+++\ntitle = \"John Doe\"\nimage = \"/images/author/john-doe.jpg\"\ndescription = \"Front end developer\"\n+++\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
  },
  {
    "path": "themes/northendlab/exampleSite/content/author/mark-dinn.md",
    "content": "+++\ntitle = \"Mark Dinn\"\nimage = \"/images/author/mark-dinn.jpg\"\ndescription = \"This is meta description\"\n+++\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
  },
  {
    "path": "themes/northendlab/exampleSite/content/contact/_index.md",
    "content": "---\ntitle: \"Contact Us\"\ndraft: false\ndescription : \"this is meta description\"\nimage: \"images/contact.svg\"\n---\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labor."
  },
  {
    "path": "themes/northendlab/exampleSite/content/my-awesome-blog-post-2.md",
    "content": "+++\ntitle = \"My awesome second blog post\"\nimage = \"/images/post/post-2.jpg\"\nauthor = \"John Doe\"\ndate = 2019-11-07T05:00:00Z\ndescription = \"This is meta description\"\ncategories = [\"Design Tools\"]\ntype = \"post\"\n\n+++\nAre you Developer and recently started your own business and Already made a website to ensure online presence and wants to reach more people. but you are not getting as much as response from your targeted customer or you are unable to reach them. SEO(Search engine optimization)is the cheapest way to reach your customer or client. After 2000 the Internet is more easy access to common people and most of the netizens to find out information search on google/yahoo/bing like a search engine. So if your site ranks at the top of the SERP for your target keywords then sure you will get more valuable traffic to your site and it will help you a lot to grow your business.\n\nAbove Paragraph, you see SERP or Keywords that are common SEO Term so Before starting learning SEO let's learn the term used by the SEO expert. It will smoothen your learning journey. Or if you are wishing to hire an SEO guy it will help you his task he/she doing and understand he/she going on the right path. So not making delay let dive…\n\n**Algorithm:** “Algorithm is a process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer.” It is its definition. In SEO we basically mean A very sophisticated and complex program used by the search engine to find out data and indexing it, And when a user gives a data query this program also decides the best result to place in the SERP in order. All search engines use multiple algorithms combination on their data collection and result giving process in different stages.\n\n**Algorithm Change:** All the search engine service providers always try to give the best results to their users. So they always working on updating, refreshing or making and implementing new algorithms. The search engine service provider never revealed the exact date of rolling out any updates or new algorithms to make an effective date. Normally they give a boundary of time like this week or this month, we are going to rolling out a major update or applying new this algorithm. They give this new algorithm a name and they always call it by the given name. Like, google spider, Google panda, etc. Most of the time After one to two week we can see and understand the update or change impact but sometimes it also happens quicker also.\n\n* Algorithm Update: Search Engines regularly making minor changes in their system they normally don’t give an official announcement. But SEO related blogs and journals give the news what the changes made. So Keep update regular visit this industry-related community is important. And when the Major update come You must observe your ranking behavior and if you find you've got the penalty then quickly take necessary step undereating the guidelines given by search engine company.\n\n* Algorithm Refresh: Search engine operator after a regular interval re-run the existing algorithm to find out the new spammer.\n\n* New Algorithm: Improving search quality google and other search engines regularly bringing new algorithms. All new algorithm has its special purpose to serve in the total search engine working process."
  },
  {
    "path": "themes/northendlab/exampleSite/content/my-awesome-blog-post-3.md",
    "content": "+++\ntitle = \"My awesome second blog post\"\nimage = \"/images/post/post-1.jpg\"\nauthor = \"Mark Dinn\"\ndate = 2019-11-07T05:00:00Z\ndescription = \"This is meta description\"\ncategories = [\"Development Tools\"]\ntype = \"post\"\n\n+++\nAre you Developer and recently started your own business and Already made a website to ensure online presence and wants to reach more people. but you are not getting as much as response from your targeted customer or you are unable to reach them. SEO(Search engine optimization)is the cheapest way to reach your customer or client. After 2000 the Internet is more easy access to common people and most of the netizens to find out information search on google/yahoo/bing like a search engine. So if your site ranks at the top of the SERP for your target keywords then sure you will get more valuable traffic to your site and it will help you a lot to grow your business.\n\nAbove Paragraph, you see SERP or Keywords that are common SEO Term so Before starting learning SEO let's learn the term used by the SEO expert. It will smoothen your learning journey. Or if you are wishing to hire an SEO guy it will help you his task he/she doing and understand he/she going on the right path. So not making delay let dive…\n\n**Algorithm:** “Algorithm is a process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer.” It is its definition. In SEO we basically mean A very sophisticated and complex program used by the search engine to find out data and indexing it, And when a user gives a data query this program also decides the best result to place in the SERP in order. All search engines use multiple algorithms combination on their data collection and result giving process in different stages.\n\n**Algorithm Change:** All the search engine service providers always try to give the best results to their users. So they always working on updating, refreshing or making and implementing new algorithms. The search engine service provider never revealed the exact date of rolling out any updates or new algorithms to make an effective date. Normally they give a boundary of time like this week or this month, we are going to rolling out a major update or applying new this algorithm. They give this new algorithm a name and they always call it by the given name. Like, google spider, Google panda, etc. Most of the time After one to two week we can see and understand the update or change impact but sometimes it also happens quicker also.\n\n* Algorithm Update: Search Engines regularly making minor changes in their system they normally don’t give an official announcement. But SEO related blogs and journals give the news what the changes made. So Keep update regular visit this industry-related community is important. And when the Major update come You must observe your ranking behavior and if you find you've got the penalty then quickly take necessary step undereating the guidelines given by search engine company.\n\n* Algorithm Refresh: Search engine operator after a regular interval re-run the existing algorithm to find out the new spammer.\n\n* New Algorithm: Improving search quality google and other search engines regularly bringing new algorithms. All new algorithm has its special purpose to serve in the total search engine working process."
  },
  {
    "path": "themes/northendlab/exampleSite/content/my-awesome-blog-post-4.md",
    "content": "+++\ntitle = \"My awesome second blog post\"\nimage = \"/images/post/post-3.jpg\"\nauthor = \"John Doe\"\ndate = 2019-11-07T05:00:00Z\ndescription = \"This is meta description\"\ncategories = [\"Hugo\"]\ntype = \"post\"\n\n+++\nAre you Developer and recently started your own business and Already made a website to ensure online presence and wants to reach more people. but you are not getting as much as response from your targeted customer or you are unable to reach them. SEO(Search engine optimization)is the cheapest way to reach your customer or client. After 2000 the Internet is more easy access to common people and most of the netizens to find out information search on google/yahoo/bing like a search engine. So if your site ranks at the top of the SERP for your target keywords then sure you will get more valuable traffic to your site and it will help you a lot to grow your business.\n\nAbove Paragraph, you see SERP or Keywords that are common SEO Term so Before starting learning SEO let's learn the term used by the SEO expert. It will smoothen your learning journey. Or if you are wishing to hire an SEO guy it will help you his task he/she doing and understand he/she going on the right path. So not making delay let dive…\n\n**Algorithm:** “Algorithm is a process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer.” It is its definition. In SEO we basically mean A very sophisticated and complex program used by the search engine to find out data and indexing it, And when a user gives a data query this program also decides the best result to place in the SERP in order. All search engines use multiple algorithms combination on their data collection and result giving process in different stages.\n\n**Algorithm Change:** All the search engine service providers always try to give the best results to their users. So they always working on updating, refreshing or making and implementing new algorithms. The search engine service provider never revealed the exact date of rolling out any updates or new algorithms to make an effective date. Normally they give a boundary of time like this week or this month, we are going to rolling out a major update or applying new this algorithm. They give this new algorithm a name and they always call it by the given name. Like, google spider, Google panda, etc. Most of the time After one to two week we can see and understand the update or change impact but sometimes it also happens quicker also.\n\n* Algorithm Update: Search Engines regularly making minor changes in their system they normally don’t give an official announcement. But SEO related blogs and journals give the news what the changes made. So Keep update regular visit this industry-related community is important. And when the Major update come You must observe your ranking behavior and if you find you've got the penalty then quickly take necessary step undereating the guidelines given by search engine company.\n\n* Algorithm Refresh: Search engine operator after a regular interval re-run the existing algorithm to find out the new spammer.\n\n* New Algorithm: Improving search quality google and other search engines regularly bringing new algorithms. All new algorithm has its special purpose to serve in the total search engine working process."
  },
  {
    "path": "themes/northendlab/exampleSite/content/my-awesome-blog-post-5.md",
    "content": "+++\ntitle = \"My awesome second blog post\"\nimage = \"/images/post/post-3.jpg\"\nauthor = \"Mark Dinn\"\ndate = 2019-11-07T05:00:00Z\ndescription = \"This is meta description\"\ncategories = [\"Hugo\"]\ntype = \"post\"\n\n+++\nAre you Developer and recently started your own business and Already made a website to ensure online presence and wants to reach more people. but you are not getting as much as response from your targeted customer or you are unable to reach them. SEO(Search engine optimization)is the cheapest way to reach your customer or client. After 2000 the Internet is more easy access to common people and most of the netizens to find out information search on google/yahoo/bing like a search engine. So if your site ranks at the top of the SERP for your target keywords then sure you will get more valuable traffic to your site and it will help you a lot to grow your business.\n\nAbove Paragraph, you see SERP or Keywords that are common SEO Term so Before starting learning SEO let's learn the term used by the SEO expert. It will smoothen your learning journey. Or if you are wishing to hire an SEO guy it will help you his task he/she doing and understand he/she going on the right path. So not making delay let dive…\n\n**Algorithm:** “Algorithm is a process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer.” It is its definition. In SEO we basically mean A very sophisticated and complex program used by the search engine to find out data and indexing it, And when a user gives a data query this program also decides the best result to place in the SERP in order. All search engines use multiple algorithms combination on their data collection and result giving process in different stages.\n\n**Algorithm Change:** All the search engine service providers always try to give the best results to their users. So they always working on updating, refreshing or making and implementing new algorithms. The search engine service provider never revealed the exact date of rolling out any updates or new algorithms to make an effective date. Normally they give a boundary of time like this week or this month, we are going to rolling out a major update or applying new this algorithm. They give this new algorithm a name and they always call it by the given name. Like, google spider, Google panda, etc. Most of the time After one to two week we can see and understand the update or change impact but sometimes it also happens quicker also.\n\n* Algorithm Update: Search Engines regularly making minor changes in their system they normally don’t give an official announcement. But SEO related blogs and journals give the news what the changes made. So Keep update regular visit this industry-related community is important. And when the Major update come You must observe your ranking behavior and if you find you've got the penalty then quickly take necessary step undereating the guidelines given by search engine company.\n\n* Algorithm Refresh: Search engine operator after a regular interval re-run the existing algorithm to find out the new spammer.\n\n* New Algorithm: Improving search quality google and other search engines regularly bringing new algorithms. All new algorithm has its special purpose to serve in the total search engine working process."
  },
  {
    "path": "themes/northendlab/exampleSite/content/my-awesome-blog-post-6.md",
    "content": "+++\ntitle = \"My awesome second blog post\"\nimage = \"/images/post/post-1.jpg\"\nauthor = \"John Doe\"\ndate = 2019-11-07T05:00:00Z\ndescription = \"This is meta description\"\ncategories = [\"Development Tools\"]\ntype = \"post\"\n\n+++\nAre you Developer and recently started your own business and Already made a website to ensure online presence and wants to reach more people. but you are not getting as much as response from your targeted customer or you are unable to reach them. SEO(Search engine optimization)is the cheapest way to reach your customer or client. After 2000 the Internet is more easy access to common people and most of the netizens to find out information search on google/yahoo/bing like a search engine. So if your site ranks at the top of the SERP for your target keywords then sure you will get more valuable traffic to your site and it will help you a lot to grow your business.\n\nAbove Paragraph, you see SERP or Keywords that are common SEO Term so Before starting learning SEO let's learn the term used by the SEO expert. It will smoothen your learning journey. Or if you are wishing to hire an SEO guy it will help you his task he/she doing and understand he/she going on the right path. So not making delay let dive…\n\n**Algorithm:** “Algorithm is a process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer.” It is its definition. In SEO we basically mean A very sophisticated and complex program used by the search engine to find out data and indexing it, And when a user gives a data query this program also decides the best result to place in the SERP in order. All search engines use multiple algorithms combination on their data collection and result giving process in different stages.\n\n**Algorithm Change:** All the search engine service providers always try to give the best results to their users. So they always working on updating, refreshing or making and implementing new algorithms. The search engine service provider never revealed the exact date of rolling out any updates or new algorithms to make an effective date. Normally they give a boundary of time like this week or this month, we are going to rolling out a major update or applying new this algorithm. They give this new algorithm a name and they always call it by the given name. Like, google spider, Google panda, etc. Most of the time After one to two week we can see and understand the update or change impact but sometimes it also happens quicker also.\n\n* Algorithm Update: Search Engines regularly making minor changes in their system they normally don’t give an official announcement. But SEO related blogs and journals give the news what the changes made. So Keep update regular visit this industry-related community is important. And when the Major update come You must observe your ranking behavior and if you find you've got the penalty then quickly take necessary step undereating the guidelines given by search engine company.\n\n* Algorithm Refresh: Search engine operator after a regular interval re-run the existing algorithm to find out the new spammer.\n\n* New Algorithm: Improving search quality google and other search engines regularly bringing new algorithms. All new algorithm has its special purpose to serve in the total search engine working process."
  },
  {
    "path": "themes/northendlab/exampleSite/content/my-awesome-blog-post.1.md",
    "content": "+++\ntitle = \"My awesome blog post\"\nimage = \"/images/post/post-3.jpg\"\nauthor = \"John Doe\"\ndate = 2019-11-07T05:00:00Z\ndescription = \"This is meta description\"\ncategories = [\"SEO Learning\"]\ntype = \"post\"\n\n+++\nAre you Developer and recently started your own business and Already made a website to ensure online presence and wants to reach more people. but you are not getting as much as response from your targeted customer or you are unable to reach them. SEO(Search engine optimization)is the cheapest way to reach your customer or client. After 2000 the Internet is more easy access to common people and most of the netizens to find out information search on google/yahoo/bing like a search engine. So if your site ranks at the top of the SERP for your target keywords then sure you will get more valuable traffic to your site and it will help you a lot to grow your business.\n\nAbove Paragraph, you see SERP or Keywords that are common SEO Term so Before starting learning SEO let's learn the term used by the SEO expert. It will smoothen your learning journey. Or if you are wishing to hire an SEO guy it will help you his task he/she doing and understand he/she going on the right path. So not making delay let dive…\n\n**Algorithm:** “Algorithm is a process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer.” It is its definition. In SEO we basically mean A very sophisticated and complex program used by the search engine to find out data and indexing it, And when a user gives a data query this program also decides the best result to place in the SERP in order. All search engines use multiple algorithms combination on their data collection and result giving process in different stages.\n\n**Algorithm Change:** All the search engine service providers always try to give the best results to their users. So they always working on updating, refreshing or making and implementing new algorithms. The search engine service provider never revealed the exact date of rolling out any updates or new algorithms to make an effective date. Normally they give a boundary of time like this week or this month, we are going to rolling out a major update or applying new this algorithm. They give this new algorithm a name and they always call it by the given name. Like, google spider, Google panda, etc. Most of the time After one to two week we can see and understand the update or change impact but sometimes it also happens quicker also.\n\n* Algorithm Update: Search Engines regularly making minor changes in their system they normally don’t give an official announcement. But SEO related blogs and journals give the news what the changes made. So Keep update regular visit this industry-related community is important. And when the Major update come You must observe your ranking behavior and if you find you've got the penalty then quickly take necessary step undereating the guidelines given by search engine company.\n\n* Algorithm Refresh: Search engine operator after a regular interval re-run the existing algorithm to find out the new spammer.\n\n* New Algorithm: Improving search quality google and other search engines regularly bringing new algorithms. All new algorithm has its special purpose to serve in the total search engine working process."
  },
  {
    "path": "themes/northendlab/exampleSite/content/my-awesome-blog-post.2.md",
    "content": "+++\ntitle = \"My awesome blog post\"\nimage = \"/images/post/post-2.jpg\"\nauthor = \"Mark Dinn\"\ndate = 2019-11-07T05:00:00Z\ndescription = \"This is meta description\"\ncategories = [\"Meta Data\"]\ntype = \"post\"\n\n+++\nAre you Developer and recently started your own business and Already made a website to ensure online presence and wants to reach more people. but you are not getting as much as response from your targeted customer or you are unable to reach them. SEO(Search engine optimization)is the cheapest way to reach your customer or client. After 2000 the Internet is more easy access to common people and most of the netizens to find out information search on google/yahoo/bing like a search engine. So if your site ranks at the top of the SERP for your target keywords then sure you will get more valuable traffic to your site and it will help you a lot to grow your business.\n\nAbove Paragraph, you see SERP or Keywords that are common SEO Term so Before starting learning SEO let's learn the term used by the SEO expert. It will smoothen your learning journey. Or if you are wishing to hire an SEO guy it will help you his task he/she doing and understand he/she going on the right path. So not making delay let dive…\n\n**Algorithm:** “Algorithm is a process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer.” It is its definition. In SEO we basically mean A very sophisticated and complex program used by the search engine to find out data and indexing it, And when a user gives a data query this program also decides the best result to place in the SERP in order. All search engines use multiple algorithms combination on their data collection and result giving process in different stages.\n\n**Algorithm Change:** All the search engine service providers always try to give the best results to their users. So they always working on updating, refreshing or making and implementing new algorithms. The search engine service provider never revealed the exact date of rolling out any updates or new algorithms to make an effective date. Normally they give a boundary of time like this week or this month, we are going to rolling out a major update or applying new this algorithm. They give this new algorithm a name and they always call it by the given name. Like, google spider, Google panda, etc. Most of the time After one to two week we can see and understand the update or change impact but sometimes it also happens quicker also.\n\n* Algorithm Update: Search Engines regularly making minor changes in their system they normally don’t give an official announcement. But SEO related blogs and journals give the news what the changes made. So Keep update regular visit this industry-related community is important. And when the Major update come You must observe your ranking behavior and if you find you've got the penalty then quickly take necessary step undereating the guidelines given by search engine company.\n\n* Algorithm Refresh: Search engine operator after a regular interval re-run the existing algorithm to find out the new spammer.\n\n* New Algorithm: Improving search quality google and other search engines regularly bringing new algorithms. All new algorithm has its special purpose to serve in the total search engine working process."
  },
  {
    "path": "themes/northendlab/exampleSite/content/my-awesome-blog-post.3.md",
    "content": "+++\ntitle = \"My awesome blog post\"\nimage = \"/images/post/post-3.jpg\"\nauthor = \"John Doe\"\ndate = 2019-11-07T05:00:00Z\ndescription = \"This is meta description\"\ncategories = [\"Hugo\"]\ntype = \"post\"\n\n+++\nAre you Developer and recently started your own business and Already made a website to ensure online presence and wants to reach more people. but you are not getting as much as response from your targeted customer or you are unable to reach them. SEO(Search engine optimization)is the cheapest way to reach your customer or client. After 2000 the Internet is more easy access to common people and most of the netizens to find out information search on google/yahoo/bing like a search engine. So if your site ranks at the top of the SERP for your target keywords then sure you will get more valuable traffic to your site and it will help you a lot to grow your business.\n\nAbove Paragraph, you see SERP or Keywords that are common SEO Term so Before starting learning SEO let's learn the term used by the SEO expert. It will smoothen your learning journey. Or if you are wishing to hire an SEO guy it will help you his task he/she doing and understand he/she going on the right path. So not making delay let dive…\n\n**Algorithm:** “Algorithm is a process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer.” It is its definition. In SEO we basically mean A very sophisticated and complex program used by the search engine to find out data and indexing it, And when a user gives a data query this program also decides the best result to place in the SERP in order. All search engines use multiple algorithms combination on their data collection and result giving process in different stages.\n\n**Algorithm Change:** All the search engine service providers always try to give the best results to their users. So they always working on updating, refreshing or making and implementing new algorithms. The search engine service provider never revealed the exact date of rolling out any updates or new algorithms to make an effective date. Normally they give a boundary of time like this week or this month, we are going to rolling out a major update or applying new this algorithm. They give this new algorithm a name and they always call it by the given name. Like, google spider, Google panda, etc. Most of the time After one to two week we can see and understand the update or change impact but sometimes it also happens quicker also.\n\n* Algorithm Update: Search Engines regularly making minor changes in their system they normally don’t give an official announcement. But SEO related blogs and journals give the news what the changes made. So Keep update regular visit this industry-related community is important. And when the Major update come You must observe your ranking behavior and if you find you've got the penalty then quickly take necessary step undereating the guidelines given by search engine company.\n\n* Algorithm Refresh: Search engine operator after a regular interval re-run the existing algorithm to find out the new spammer.\n\n* New Algorithm: Improving search quality google and other search engines regularly bringing new algorithms. All new algorithm has its special purpose to serve in the total search engine working process."
  },
  {
    "path": "themes/northendlab/exampleSite/content/my-awesome-blog-post.4.md",
    "content": "+++\ntitle = \"My awesome blog post\"\nimage = \"/images/post/post-1.jpg\"\nauthor = \"Mark Dinn\"\ndate = 2019-11-07T05:00:00Z\ndescription = \"This is meta description\"\ncategories = [\"Hugo\"]\ntype = \"post\"\n\n+++\nAre you Developer and recently started your own business and Already made a website to ensure online presence and wants to reach more people. but you are not getting as much as response from your targeted customer or you are unable to reach them. SEO(Search engine optimization)is the cheapest way to reach your customer or client. After 2000 the Internet is more easy access to common people and most of the netizens to find out information search on google/yahoo/bing like a search engine. So if your site ranks at the top of the SERP for your target keywords then sure you will get more valuable traffic to your site and it will help you a lot to grow your business.\n\nAbove Paragraph, you see SERP or Keywords that are common SEO Term so Before starting learning SEO let's learn the term used by the SEO expert. It will smoothen your learning journey. Or if you are wishing to hire an SEO guy it will help you his task he/she doing and understand he/she going on the right path. So not making delay let dive…\n\n**Algorithm:** “Algorithm is a process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer.” It is its definition. In SEO we basically mean A very sophisticated and complex program used by the search engine to find out data and indexing it, And when a user gives a data query this program also decides the best result to place in the SERP in order. All search engines use multiple algorithms combination on their data collection and result giving process in different stages.\n\n**Algorithm Change:** All the search engine service providers always try to give the best results to their users. So they always working on updating, refreshing or making and implementing new algorithms. The search engine service provider never revealed the exact date of rolling out any updates or new algorithms to make an effective date. Normally they give a boundary of time like this week or this month, we are going to rolling out a major update or applying new this algorithm. They give this new algorithm a name and they always call it by the given name. Like, google spider, Google panda, etc. Most of the time After one to two week we can see and understand the update or change impact but sometimes it also happens quicker also.\n\n* Algorithm Update: Search Engines regularly making minor changes in their system they normally don’t give an official announcement. But SEO related blogs and journals give the news what the changes made. So Keep update regular visit this industry-related community is important. And when the Major update come You must observe your ranking behavior and if you find you've got the penalty then quickly take necessary step undereating the guidelines given by search engine company.\n\n* Algorithm Refresh: Search engine operator after a regular interval re-run the existing algorithm to find out the new spammer.\n\n* New Algorithm: Improving search quality google and other search engines regularly bringing new algorithms. All new algorithm has its special purpose to serve in the total search engine working process."
  },
  {
    "path": "themes/northendlab/exampleSite/content/my-awesome-blog-post.md",
    "content": "+++\ntitle = \"My awesome blog post\"\nimage = \"/images/post/post-1.jpg\"\nauthor = \"Mark Dinn\"\ndate = 2019-11-07T05:00:00Z\ndescription = \"This is meta description\"\ncategories = [\"Meta Data\"]\ntype = \"post\"\n\n+++\nAre you Developer and recently started your own business and Already made a website to ensure online presence and wants to reach more people. but you are not getting as much as response from your targeted customer or you are unable to reach them. SEO(Search engine optimization)is the cheapest way to reach your customer or client. After 2000 the Internet is more easy access to common people and most of the netizens to find out information search on google/yahoo/bing like a search engine. So if your site ranks at the top of the SERP for your target keywords then sure you will get more valuable traffic to your site and it will help you a lot to grow your business.\n\nAbove Paragraph, you see SERP or Keywords that are common SEO Term so Before starting learning SEO let's learn the term used by the SEO expert. It will smoothen your learning journey. Or if you are wishing to hire an SEO guy it will help you his task he/she doing and understand he/she going on the right path. So not making delay let dive…\n\n**Algorithm:** “Algorithm is a process or set of rules to be followed in calculations or other problem-solving operations, especially by a computer.” It is its definition. In SEO we basically mean A very sophisticated and complex program used by the search engine to find out data and indexing it, And when a user gives a data query this program also decides the best result to place in the SERP in order. All search engines use multiple algorithms combination on their data collection and result giving process in different stages.\n\n**Algorithm Change:** All the search engine service providers always try to give the best results to their users. So they always working on updating, refreshing or making and implementing new algorithms. The search engine service provider never revealed the exact date of rolling out any updates or new algorithms to make an effective date. Normally they give a boundary of time like this week or this month, we are going to rolling out a major update or applying new this algorithm. They give this new algorithm a name and they always call it by the given name. Like, google spider, Google panda, etc. Most of the time After one to two week we can see and understand the update or change impact but sometimes it also happens quicker also.\n\n* Algorithm Update: Search Engines regularly making minor changes in their system they normally don’t give an official announcement. But SEO related blogs and journals give the news what the changes made. So Keep update regular visit this industry-related community is important. And when the Major update come You must observe your ranking behavior and if you find you've got the penalty then quickly take necessary step undereating the guidelines given by search engine company.\n\n* Algorithm Refresh: Search engine operator after a regular interval re-run the existing algorithm to find out the new spammer.\n\n* New Algorithm: Improving search quality google and other search engines regularly bringing new algorithms. All new algorithm has its special purpose to serve in the total search engine working process."
  },
  {
    "path": "themes/northendlab/exampleSite/content/search/_index.md",
    "content": "---\ntitle: \"Search Result\"\ndraft: false\ndescription : \"this is meta description\"\n---"
  },
  {
    "path": "themes/northendlab/exampleSite/content/tools/_index.md",
    "content": "---\ntitle: \"Tools\"\ndraft: false\ndescription : \"this is meta description\"\n---"
  },
  {
    "path": "themes/northendlab/exampleSite/data/tools.yml",
    "content": "tools:\n# tool category\n- title: Dev Tools\n  tool:\n  # tool loop in tool category\n  - name: Git\n    image: \"/images/tools/Git.png\"\n    link: https://git-scm.com/\n  # tool loop in tool category\n  - name: Atom\n    image: \"/images/tools/Atom.png\"\n    link: https://atom.io/\n  # tool loop in tool category\n  - name: Notepad ++\n    image: \"/images/tools/Notepad.png\"\n    link: https://notepad-plus-plus.org/\n  # tool loop in tool category\n  - name: Sublime Text\n    image: \"/images/tools/sublime.png\"\n    link: https://www.sublimetext.com/\n  # tool loop in tool category\n  - name: Visual Studio Code\n    image: \"/images/tools/vs-code.png\"\n    link: https://code.visualstudio.com/\n\n\n# tool category\n- title: Design Tools\n  tool:\n  # tool loop in tool category\n  - name: Sketch\n    image: \"/images/tools/sketch.png\"\n    link: https://www.sketch.com/\n  # tool loop in tool category\n  - name: Adobe Illustrator\n    image: \"/images/tools/illustrator.png\"\n    link: https://www.adobe.com/products/illustrator.html\n  # tool loop in tool category\n  - name: Invision\n    image: \"/images/tools/invision.png\"\n    link: https://www.invisionapp.com/studio\n  # tool loop in tool category\n  - name: Adobe XD\n    image: \"/images/tools/xd.png\"\n    link: https://www.adobe.com/products/xd.html\n  # tool loop in tool category\n  - name: Figma\n    image: \"/images/tools/figma.png\"\n    link: https://www.figma.com/\n\n\n# tool category\n- title: Digital Marketing Tools\n  tool:\n  # tool loop in tool category\n  - name: Mailchimp\n    image: \"/images/tools/MailChimp.jpg\"\n    link: https://mailchimp.com/\n  # tool loop in tool category\n  - name: Buffer\n    image: \"/images/tools/Buffer.jpg\"\n    link: https://buffer.com/\n  # tool loop in tool category\n  - name: Bitly Link\n    image: \"/images/tools/Bitly.jpg\"\n    link: https://bitly.com/\n  # tool loop in tool category\n  - name: Hotjar\n    image: \"/images/tools/Hotjar.jpg\"\n    link: https://www.hotjar.com/\n  # tool loop in tool category\n  - name: Ahrefs\n    image: \"/images/tools/Ahrefs.jpg\"\n    link: https://ahrefs.com/\n  # tool loop in tool category\n  - name: Google Trends\n    image: \"/images/tools/GoogleTrends.jpg\"\n    link: https://trends.google.com/trends/\n  # tool loop in tool category\n  - name: Google Analytics\n    image: \"/images/tools/Google-Analytics.jpg\"\n    link: https://analytics.google.com/analytics/web\n"
  },
  {
    "path": "themes/northendlab/exampleSite/resources/_gen/assets/scss/scss/style.scss_b95b077eb505d5c0aff8055eaced30ad.content",
    "content": "/*!------------------------------------------------------------------\n[MAIN STYLESHEET]\nPROJECT: Project Name\nVERSION: Versoin Number\n-------------------------------------------------------------------*/@import \"https://fonts.googleapis.com/css?family=Muli:300,400,600,700&display=swap\";body{line-height:1.5;font-family:muli,sans-serif;-webkit-font-smoothing:antialiased;font-size:15px;color:#666}p,.paragraph{font-weight:400;color:#666;font-size:18px;line-height:1.7;font-family:muli,sans-serif}a{color:#e8505b}a:hover{color:#e8505b}h1,h2,h3,h4,h5,h6{color:#222;font-family:muli,sans-serif;font-weight:600;line-height:1.2}h1 a:hover,h2 a:hover,h3 a:hover,h4 a:hover,h5 a:hover,h6 a:hover{text-decoration:none}h1,.h1{font-size:50px}h2,.h2{font-size:40px}h3,.h3{font-size:30px}h4,.h4{font-size:26px}h5,.h5{font-size:20px}h6,.h6{font-size:16px}.btn{font-size:16px;font-family:muli,sans-serif;text-transform:capitalize;padding:12px 20px;border-radius:5px;border:1px solid;position:relative;z-index:1;transition:.2s ease}.btn:hover,.btn:active,.btn:focus{outline:0;box-shadow:none!important}.btn-sm{font-size:15px;padding:6px 10px}.btn-primary{background:#e8505b;color:#fff;border-color:#e8505b}.btn-primary:active,.btn-primary:hover,.btn-primary.focus,.btn-primary.active{background:#e8505b!important;border-color:#e8505b!important}.btn-outline-primary{background:0 0;color:#e8505b;border-color:#e8505b}.btn-outline-primary:active,.btn-outline-primary:hover,.btn-outline-primary.focus,.btn-outline-primary.active{background:#e8505b!important;border-color:#e8505b!important;color:#fff}.btn-transparent{background:0 0;color:#e8505b;border:0;border-bottom:1px solid #e8505b;border-radius:0;padding:2px}.btn-transparent:active,.btn-transparent:hover,.btn-transparent.focus,.btn-transparent.active{background:0 0}body{background-color:#fff;overflow-x:hidden}::selection{background:#ee7d85;color:#fff}.preloader{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#fff;z-index:9999;display:flex;align-items:center;justify-content:center}img{vertical-align:middle;border:0}a,button,select{cursor:pointer;transition:.2s ease}a:focus,button:focus,select:focus{outline:0}.slick-slide{outline:0}.section{padding-top:80px;padding-bottom:80px}.bg-cover{background-size:cover;background-position:50%;background-repeat:no-repeat}.border-primary{border-color:#acb9c4!important}.overlay{position:relative}.overlay::before{position:absolute;content:'';height:100%;width:100%;top:0;left:0;background:#000;opacity:.5}.outline-0{outline:0!important}.d-unset{display:unset!important}.bg-primary{background:#e8505b!important}.bg-secondary{background:#9ac4f8!important}.bg-light{background:#f8f8f8!important}.text-primary{color:#e8505b!important}a.text-primary:hover{color:#e8505b!important}.text-color{color:#666}.mb-10{margin-bottom:10px!important}.mb-20{margin-bottom:20px!important}.mb-30{margin-bottom:30px!important}.mb-40{margin-bottom:40px!important}.mb-50{margin-bottom:50px!important}.mb-60{margin-bottom:60px!important}.mb-70{margin-bottom:70px!important}.mb-80{margin-bottom:80px!important}.mb-90{margin-bottom:90px!important}.mb-100{margin-bottom:100px!important}.zindex-1{z-index:1}.overflow-hidden{overflow:hidden}.shadow,.nav-tab .nav-link.active{box-shadow:0 10px 30px 0 rgba(68,74,102,.1)!important}.form-control{height:50px;line-height:50px}.form-control:focus{outline:0;box-shadow:none;border-color:#e8505b}textarea.form-control{height:150px}.page-link:focus{box-shadow:none}.navigation{transition:.3s ease}@media(max-width:991px){.navigation.fixed-top{position:sticky!important}}@media(max-width:991px){.navigation{background:#fff}}.nav-bg{background-color:#fff;box-shadow:0 0 10px rgba(0,0,0,.161)}.nav-item{margin:0}.nav-item .nav-link{text-transform:capitalize}.navbar-light .navbar-nav .nav-link{color:#222}.navbar-light .navbar-nav .nav-link:hover{color:#e8505b}.navbar-expand-lg .navbar-nav .nav-link{padding:20px}.search-btn{border:0;background:0 0}.search-wrapper{position:absolute;top:0;left:0;right:0;height:100%;z-index:2;visibility:hidden;transition:.2s ease;opacity:0}.search-wrapper.open{visibility:visible;opacity:1}.search-box{height:100%;width:100%;border:0;background:#fff;font-size:20px;padding:0}.search-box:focus{box-shadow:none!important;outline:0}.search-close{position:absolute;right:5px;top:50%;transform:translateY(-50%);border:0;background:0 0;page-break-after:10px;font-size:20px}.banner{padding:220px 0 120px;position:relative}@media(max-width:1200px){.banner{padding:150px 0 100px}}@media(max-width:991px){.banner{padding:100px 0 0}}.banner .illustration{position:absolute;bottom:0;right:30px}@media(max-width:1600px){.banner .illustration{max-width:600px}}@media(max-width:991px){.banner .illustration{display:none}}.banner .illustration-mobile{display:none}@media(max-width:991px){.banner .illustration-mobile{display:block}}.block{padding:60px 60px 40px}.author-thumb{height:300px;width:300px;object-fit:cover}.pagination{justify-content:center}.pagination .page-item .page-link{display:inline-block;width:40px;height:40px;text-align:center;color:#666;border:0;border-radius:5px}.pagination .page-item .page-link:hover{background:#e8505b;color:#fff}.pagination .page-item.active .page-link{background:#e8505b;color:#fff}.post-title:hover{text-decoration:underline}.post-meta{color:#999}.post-meta a{color:inherit}.post-meta a:hover{color:#e8505b}.content *{margin-bottom:20px}.content h1,.content h2,.content h3,.content h4,.content h5,.content h6{margin-bottom:10px}.content ol{padding-left:20px}.content ul{padding-left:0}.content ul li{position:relative;padding-left:20px;margin-bottom:15px;list-style-type:none}.content ul li::before{position:absolute;content:\"\\e71b\";font-family:themify;font-size:14px;left:0;top:1px;color:#e8505b;transition:.3s ease}.content table{text-align:left;width:100%;max-width:100%;margin-bottom:1rem;border:1px solid #dee2e6}.content table th,.content table td{padding:.75rem;vertical-align:top;border:1px solid #dee2e6}.content table thead{background:#f3f3f3}.content table tbody{background:#f8f8f8}.content table tbody td{text-align:left!important}.content blockquote{padding:20px;background:#f8f8f8;border-left:3px solid #e8505b}.content blockquote p{margin-bottom:0;color:#222;font-style:italic!important}.content pre{padding:10px 20px;background:#f8f8f8}.content pre code{border:0;background:0 0;padding:0}.content a{color:#e8505b}.content a:hover{text-decoration:underline}.content code{padding:3px 5px;background:#f8f8f8;border:1px solid #acb9c4;border-radius:3px;color:#222}.social-icon a{height:45px;width:45px;border:1px solid #e8505b;border-radius:50%;line-height:45px;text-align:center;display:block;color:#e8505b}.social-icon a:hover{background:#e8505b;color:#fff}.nav-tab .nav-link{padding:15px;color:#666;border-radius:5px}.nav-tab .nav-link.active{color:#fff;background:#e8505b}"
  },
  {
    "path": "themes/northendlab/exampleSite/resources/_gen/assets/scss/scss/style.scss_b95b077eb505d5c0aff8055eaced30ad.json",
    "content": "{\"Target\":\"scss/style.min.css\",\"MediaType\":\"text/css\",\"Data\":{}}"
  },
  {
    "path": "themes/northendlab/layouts/404.html",
    "content": "{{ define \"main\" }}\n\n<div class=\"text-center section\">\n  <h1 class=\"display-1\">404</h1>\n  <h2>Page Not Found!</h2>\n</div>\n\n{{ end }}"
  },
  {
    "path": "themes/northendlab/layouts/_default/article.html",
    "content": "<article class=\"mb-5\">\n  <h2 class=\"h4\"><a class=\"post-title\" href=\"{{ .Permalink }}\">{{ .Title | markdownify }}</a></h2>\n  <div class=\"mb-3 post-meta\">\n    <a href=\"{{ `author/` | relLangURL }}{{ .Params.Author | urlize | lower }}\">{{ .Params.Author | title | humanize }}</a>,\n    {{ .PublishDate.Format \"02/06/2006\" }}, {{ range .Params.Categories }}\n    <a href=\"{{ `categories/` | relLangURL }}{{ . | urlize | lower }}\">{{ . | title | humanize }}</a>\n    {{ end }}\n  </div>\n  <p>{{.Summary}}</p>\n  <a href=\"{{ .Permalink }}\" class=\"btn btn-sm btn-transparent pl-0\">read more</a>\n</article>"
  },
  {
    "path": "themes/northendlab/layouts/_default/baseof.html",
    "content": "<!DOCTYPE html>\n<html lang=\"{{ with .Site.LanguageCode }}{{ . }}{{ else }}en-US{{ end }}\">\n{{- partial \"head.html\" . -}}\n\n<body>\n    <!-- Google Tag Manager (noscript) -->\n    <noscript><iframe src=\"https://www.googletagmanager.com/ns.html?id={{ .Site.Params.googleTagManager }}\" height=\"0\" width=\"0\" style=\"display:none;visibility:hidden\"></iframe></noscript>\n    <!-- End Google Tag Manager (noscript) -->\n    {{- partial \"preloader.html\" . -}}\n    {{- partial \"header.html\" . -}}\n    {{ if not .IsHome }} <div class=\"py-5 d-none d-lg-block\"></div> {{ end }}\n    {{- block \"main\" . }}\n    {{- end }}\n    {{- partial \"footer.html\" . -}}\n</body>\n\n</html>"
  },
  {
    "path": "themes/northendlab/layouts/_default/index.json",
    "content": "{{- $.Scratch.Add \"index\" slice -}}\n{{- range .Site.RegularPages -}}\n    {{- $.Scratch.Add \"index\" (dict \"title\" .Title \"tags\" .Params.tags \"categories\" .Params.categories \"contents\" .Plain \"permalink\" .Permalink) -}}\n{{- end -}}\n{{- $.Scratch.Get \"index\" | jsonify -}}"
  },
  {
    "path": "themes/northendlab/layouts/_default/list.html",
    "content": "{{ define \"main\" }}\n\n<!-- blog -->\n<section class=\"section\">\n  <div class=\"container\">\n    <div class=\"row\">\n      <div class=\"col-lg-8 mx-auto px-0\">\n        <h2 class=\"mb-4\">Posts are showing from <span class=\"text-primary\">{{ .Title }}</span> categories</h2>\n        <div class=\"bg-white shadow block\">\n          {{ $paginator := .Paginate (where .Data.Pages \"Type\" \"post\") }}\n          {{ range $paginator.Pages }}\n          {{ .Render \"article\" }}\n          {{ end }}\n          <!-- pagination -->\n          <div class=\"mt-5\">\n            {{\"<!-- pagination -->\" | safeHTML }}\n            {{ $paginator := .Paginator }}\n            <!-- Number of links either side of the current page. -->\n            {{ $adjacent_links := 2 }}\n            <!-- $max_links = ($adjacent_links * 2) + 1 -->\n            {{ $max_links := (add (mul $adjacent_links 2) 1) }}\n            <!-- $lower_limit = $adjacent_links + 1 -->\n            {{ $lower_limit := (add $adjacent_links 1) }}\n            <!-- $upper_limit = $paginator.TotalPages - $adjacent_links -->\n            {{ $upper_limit := (sub $paginator.TotalPages $adjacent_links) }}\n            <!-- If there's more than one page. -->\n            {{ if gt $paginator.TotalPages 1 }}\n            <nav aria-label=\"Page navigation\">\n              <ul class=\"pagination justify-content-center align-items-center\">\n                <!-- Previous page. -->\n                {{ if $paginator.HasPrev }}\n                <li class=\"page-item\">\n                  <a href=\"{{ $paginator.Prev.URL }}\" class=\"page-link\">\n                    &laquo;\n                  </a>\n                </li>\n                {{ end }}\n                <!-- Page numbers. -->\n                {{ range $paginator.Pagers }}\n                {{ $.Scratch.Set \"page_number_flag\" false }}\n                <!-- Advanced page numbers. -->\n                {{ if gt $paginator.TotalPages $max_links }}\n                <!-- Lower limit pages. -->\n                <!-- If the user is on a page which is in the lower limit.  -->\n                {{ if le $paginator.PageNumber $lower_limit }}\n                <!-- If the current loop page is less than max_links. -->\n                {{ if le .PageNumber $max_links }}\n                {{ $.Scratch.Set \"page_number_flag\" true }}\n                {{ end }}\n                <!-- Upper limit pages. -->\n                <!-- If the user is on a page which is in the upper limit. -->\n                {{ else if ge $paginator.PageNumber $upper_limit }}\n                <!-- If the current loop page is greater than total pages minus $max_links -->\n                {{ if gt .PageNumber (sub $paginator.TotalPages $max_links) }}\n                {{ $.Scratch.Set \"page_number_flag\" true }}\n                {{ end }}\n                <!-- Middle pages. -->\n                {{ else }}\n                {{ if and ( ge .PageNumber (sub $paginator.PageNumber $adjacent_links) ) ( le .PageNumber (add $paginator.PageNumber $adjacent_links) ) }}\n                {{ $.Scratch.Set \"page_number_flag\" true }}\n                {{ end }}\n                {{ end }}\n                <!-- Simple page numbers. -->\n                {{ else }}\n                {{ $.Scratch.Set \"page_number_flag\" true }}\n                {{ end }}\n                <!-- Output page numbers. -->\n                {{ if eq ($.Scratch.Get \"page_number_flag\") true }}\n                <li class=\"page-item{{ if eq . $paginator }} page-item active {{ end }}\">\n                  <a href=\"{{ .URL }}\" class=\"page-link\">\n                    {{ .PageNumber }}\n                  </a>\n                </li>\n                {{ end }}\n                {{ end }}\n                <!-- Next page. -->\n                {{ if $paginator.HasNext }}\n                <li class=\"page-item\">\n                  <a href=\"{{ $paginator.Next.URL }}\" class=\"page-link\">\n                    &raquo;\n                  </a>\n                </li>\n                {{ end }}\n              </ul>\n            </nav>\n            {{ end }}\n            {{\"<!-- /pagination -->\" | safeHTML }}\n          </div>\n        </div>\n      </div>\n    </div>\n</section>\n<!-- /blog -->\n\n{{ end }}"
  },
  {
    "path": "themes/northendlab/layouts/_default/single.html",
    "content": "{{ define \"main\" }}\n\n<section class=\"section\">\n  <div class=\"container\">\n    <div class=\"row\">\n      <div class=\"col-lg-8 mx-auto block shadow mb-5\">\n        <h2>{{ .Title | markdownify }}</h2>\n        <div class=\"mb-3 post-meta\">\n          <a href=\"{{ `author/` | relLangURL }}{{ .Params.Author | urlize | lower }}\">{{ .Params.Author | title | humanize }}</a>,\n          {{ .PublishDate.Format \"02/06/2006\" }}, {{ range .Params.Categories }}\n          <a href=\"{{ `categories/` | relLangURL }}{{ . | urlize | lower }}\">{{ . | title | humanize }}</a>\n          {{ end }}\n        </div>\n        {{ if .Params.Image }}\n        <img src=\"{{ .Params.Image | relURL }}\" class=\"img-fluid w-100 mb-4\" alt=\"{{ .Title | markdownify }}\">\n        {{ end }}\n        <div class=\"content mb-5\">\n          {{ .Content }}\n        </div>\n      </div>\n      {{ if .Site.DisqusShortname}}\n      <div class=\"col-lg-8 mx-auto block shadow\">\n        <!-- comments -->\n        {{ template \"_internal/disqus.html\" . }}\n      </div>\n      {{ end }}\n    </div>\n  </div>\n</section>\n\n{{ end }}"
  },
  {
    "path": "themes/northendlab/layouts/author/single.html",
    "content": "{{ define \"main\" }}\n\n<section class=\"section pb-0\">\n  <div class=\"container\">\n    <div class=\"row\">\n      <div class=\"col-lg-8 mx-auto text-center block shadow\">\n        <img src=\"{{ .Params.Image | relURL }}\" alt=\"\" class=\"img-fluid d-block mx-auto rounded-circle mb-4 author-thumb\">\n        <h4>{{ .Title | markdownify }}</h4>\n        <div class=\"content\">\n          {{ .Content }}\n        </div>\n      </div>\n    </div>\n  </div>\n</section>\n\n<!-- blog -->\n<section class=\"section\">\n  <div class=\"container\">\n    <div class=\"row\">\n      <div class=\"col-lg-8 mx-auto px-0\">\n        <h2 class=\"mb-4\">Post by author</h2>\n        <div class=\"bg-white shadow block\">\n          {{ $name:= .Title }}\n          {{ range where .Site.RegularPages \"Params.author\" $name }}\n          {{ .Render \"article\" }}\n          {{ end }}\n        </div>\n      </div>\n    </div>\n  </div>\n</section>\n<!-- /blog -->\n\n{{ end }}"
  },
  {
    "path": "themes/northendlab/layouts/contact/list.html",
    "content": "{{ define \"main\" }}\n\n<section class=\"section\">\n  <div class=\"container\">\n    <div class=\"row justify-content-between\">\n      <div class=\"col-lg-5\">\n        <h2 class=\"mb-4\">{{ .Title | markdownify }}</h2>\n        <div class=\"content\">{{ .Content }}</div>\n        <form method=\"POST\" action=\"{{ .Site.Params.contact_form_action | safeURL}}\" class=\"row\">\n          <div class=\"col-md-6\">\n            <input type=\"text\" class=\"form-control mb-4\" placeholder=\"Name\" name=\"name\" id=\"name\">\n          </div>\n          <div class=\"col-md-6\">\n            <input type=\"email\" class=\"form-control mb-4\" placeholder=\"Email\" name=\"email\" id=\"email\">\n          </div>\n          <div class=\"col-12\">\n            <input type=\"text\" class=\"form-control mb-4\" placeholder=\"Subject\" name=\"subject\" id=\"subject\">\n          </div>\n          <div class=\"col-12\">\n            <textarea name=\"message\" id=\"message\" class=\"form-control mb-4\" placeholder=\"Type You Message Here\"\n              rows=\"5\"></textarea>\n          </div>\n          <div class=\"col-12\">\n            <button class=\"btn btn-primary btn-block\" type=\"submit\">Send</button>\n          </div>\n        </form>\n      </div>\n      <div class=\"col-lg-6 text-md-right\">\n        <img class=\"img-fluid\" src=\"{{ .Params.Image | relURL }}\" alt=\"\">\n      </div>\n    </div>\n  </div>\n</section>\n\n{{ end }}"
  },
  {
    "path": "themes/northendlab/layouts/index.html",
    "content": "{{ define \"main\" }}\n\n<!-- banner -->\n<section class=\"banner bg-cover\" style=\"background-image: url('{{ .Site.Params.banner.bgImage | relURL }}');\">\n  <img src=\"{{ .Site.Params.banner.image | relURL }}\" class=\"img-fluid illustration\" alt=\"\">\n  <div class=\"container\">\n    <div class=\"row\">\n      <div class=\"col-lg-6 mb-5 mb-lg-0\">\n        <h2>{{ .Site.Params.banner.title | markdownify }}</h2>\n      </div>\n      <div class=\"col-lg-6 illustration-mobile\">\n        <img src=\"{{ .Site.Params.banner.image | relURL }}\" class=\"img-fluid\" alt=\"\">\n      </div>\n    </div>\n  </div>\n</section>\n<!-- /banner -->\n\n\n<!-- cta -->\n{{ if .Site.Params.cta.enable }}\n<section class=\"section pt-0\">\n  <div class=\"container\">\n    <div class=\"row\">\n      <div class=\"col-lg-8 mx-auto\">\n        <div class=\"row shadow bg-white p-5\">\n          <div class=\"col-md-4 text-center text-md-left mb-4 mb-lg-0\">\n            <img src=\"{{ .Site.Params.cta.image | relURL }}\" class=\"mr-4\" alt=\"...\"></div>\n          <div class=\"col-md-8 text-center text-md-left\">\n            <h3 class=\"mt-0\">{{ .Site.Params.cta.title | markdownify }}</h3>\n            <p>{{ .Site.Params.cta.description | markdownify }}</p>\n            {{ if .Site.Params.cta.button.enable }}\n            <a href=\"{{ .Site.Params.cta.button.link | absURL }}\"\n              class=\"btn btn-primary\">{{ .Site.Params.cta.button.label }}</a>\n            {{ end }}\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</section>\n{{ end }}\n<!-- /cta -->\n\n<!-- blog -->\n<section class=\"section\">\n  <div class=\"container\">\n    <div class=\"row\">\n      <div class=\"col-lg-8 mx-auto px-0\">\n        <div class=\"bg-white shadow block\">\n          {{ $paginator := .Paginate (where .Site.RegularPages \"Type\" \"post\") }}\n          {{ range $paginator.Pages }}\n          {{ .Render \"article\" }}\n          {{ end }}\n          <!-- pagination -->\n          <div class=\"mt-5\">\n            {{\"<!-- pagination -->\" | safeHTML }}\n            {{ $paginator := .Paginator }}\n            <!-- Number of links either side of the current page. -->\n            {{ $adjacent_links := 2 }}\n            <!-- $max_links = ($adjacent_links * 2) + 1 -->\n            {{ $max_links := (add (mul $adjacent_links 2) 1) }}\n            <!-- $lower_limit = $adjacent_links + 1 -->\n            {{ $lower_limit := (add $adjacent_links 1) }}\n            <!-- $upper_limit = $paginator.TotalPages - $adjacent_links -->\n            {{ $upper_limit := (sub $paginator.TotalPages $adjacent_links) }}\n            <!-- If there's more than one page. -->\n            {{ if gt $paginator.TotalPages 1 }}\n            <nav aria-label=\"Page navigation\">\n              <ul class=\"pagination justify-content-center align-items-center\">\n                <!-- Previous page. -->\n                {{ if $paginator.HasPrev }}\n                <li class=\"page-item\">\n                  <a href=\"{{ $paginator.Prev.URL }}\" class=\"page-link\">\n                    &laquo;\n                  </a>\n                </li>\n                {{ end }}\n                <!-- Page numbers. -->\n                {{ range $paginator.Pagers }}\n                {{ $.Scratch.Set \"page_number_flag\" false }}\n                <!-- Advanced page numbers. -->\n                {{ if gt $paginator.TotalPages $max_links }}\n                <!-- Lower limit pages. -->\n                <!-- If the user is on a page which is in the lower limit.  -->\n                {{ if le $paginator.PageNumber $lower_limit }}\n                <!-- If the current loop page is less than max_links. -->\n                {{ if le .PageNumber $max_links }}\n                {{ $.Scratch.Set \"page_number_flag\" true }}\n                {{ end }}\n                <!-- Upper limit pages. -->\n                <!-- If the user is on a page which is in the upper limit. -->\n                {{ else if ge $paginator.PageNumber $upper_limit }}\n                <!-- If the current loop page is greater than total pages minus $max_links -->\n                {{ if gt .PageNumber (sub $paginator.TotalPages $max_links) }}\n                {{ $.Scratch.Set \"page_number_flag\" true }}\n                {{ end }}\n                <!-- Middle pages. -->\n                {{ else }}\n                {{ if and ( ge .PageNumber (sub $paginator.PageNumber $adjacent_links) ) ( le .PageNumber (add $paginator.PageNumber $adjacent_links) ) }}\n                {{ $.Scratch.Set \"page_number_flag\" true }}\n                {{ end }}\n                {{ end }}\n                <!-- Simple page numbers. -->\n                {{ else }}\n                {{ $.Scratch.Set \"page_number_flag\" true }}\n                {{ end }}\n                <!-- Output page numbers. -->\n                {{ if eq ($.Scratch.Get \"page_number_flag\") true }}\n                <li class=\"page-item{{ if eq . $paginator }} page-item active {{ end }}\">\n                  <a href=\"{{ .URL }}\" class=\"page-link\">\n                    {{ .PageNumber }}\n                  </a>\n                </li>\n                {{ end }}\n                {{ end }}\n                <!-- Next page. -->\n                {{ if $paginator.HasNext }}\n                <li class=\"page-item\">\n                  <a href=\"{{ $paginator.Next.URL }}\" class=\"page-link\">\n                    &raquo;\n                  </a>\n                </li>\n                {{ end }}\n              </ul>\n            </nav>\n            {{ end }}\n            {{\"<!-- /pagination -->\" | safeHTML }}\n          </div>\n        </div>\n      </div>\n    </div>\n  </div>\n</section>\n<!-- /blog -->\n\n{{ end }}\n"
  },
  {
    "path": "themes/northendlab/layouts/partials/footer.html",
    "content": "<!-- footer -->\n<footer class=\"py-4 bg-light border-top\">\n  <div class=\"container\">\n    <div class=\"row justify-content-between align-items-center\">\n      <div class=\"col-lg-4 text-center text-lg-left mb-4 mb-lg-0\">\n        <a href=\"{{ .Site.BaseURL }}\" class=\"d-block pb-3\"><img src=\"{{ .Site.Params.logo | relURL }}\" class=\"img-fluid\" alt=\"{{ .Site.Title }}\"></a>\n      </div>\n      <div class=\"col-lg-4 text-center mb-4 mb-lg-0\">\n        <ul class=\"list-inline mb-0\">\n          {{ range .Site.Menus.footer }}\n          <li class=\"list-inline-item\"><a class=\"text-dark d-block p-2\" href=\"{{ .URL | absURL }}\">{{ .Name }}</a></li>\n          {{ end }}\n        </ul>\n      </div>\n      <div class=\"col-lg-4 text-lg-right text-center mb-4 mb-lg-0\">\n        <ul class=\"list-inline social-icon mb-0\">\n          {{ range .Site.Params.social }}\n          <li class=\"list-inline-item\"><a href=\"{{ .link | safeURL }}\"><i class=\"{{ .icon }}\"></i></a></li>\n          {{ end }}\n        </ul>\n      </div>\n    </div>\n    <div class=\"text-center mt-4\">\n      <span>{{ .Site.Params.copyright | markdownify }}</span>\n    </div>\n  </div>\n</footer>\n<!-- /footer -->\n\n<!-- search index -->\n{{ if .Site.Params.search.enable }}\n<script>\n  var indexURL = {{ \"index.json\" | absURL }}\n</script>\n{{ end }}\n\n{{ \"<!-- JS Plugins -->\" | safeHTML }}\n{{ range .Site.Params.plugins.js}}\n<script src=\"{{ .link | absURL }}\"></script>\n{{ end }}\n\n{{ \"<!-- Main Script -->\" | safeHTML }}\n{{ $script := resources.Get \"js/script.js\" | minify}}\n<script src=\"{{ $script.Permalink }}\"></script>\n\n{{ \"<!-- google analitycs -->\" | safeHTML }}\n{{ with .Site.Params.google_analitycs_id }}\n<script>\n  (function (i, s, o, g, r, a, m) {\n    i['GoogleAnalyticsObject'] = r;\n    i[r] = i[r] || function () {\n      (i[r].q = i[r].q || []).push(arguments)\n    }, i[r].l = 1 * new Date();\n    a = s.createElement(o),\n      m = s.getElementsByTagName(o)[0];\n    a.async = 1;\n    a.src = g;\n    m.parentNode.insertBefore(a, m)\n  })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga');\n  ga('create', '{{ . }}', 'auto');\n  ga('send', 'pageview');\n</script>\n{{ end }}"
  },
  {
    "path": "themes/northendlab/layouts/partials/head.html",
    "content": "<head>\n  <meta charset=\"utf-8\">\n  <title>{{ .Title }}</title>\n\n  {{ \"<!-- mobile responsive meta -->\" | safeHTML }}\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1, maximum-scale=1\">\n  <meta name=\"description\"\n    content=\"{{ with .Description }}{{ . }}{{ else }}{{ with .Site.Params.description }}{{ . }}{{ end }}{{ end }}\">\n  {{ with .Site.Params.author }}\n  <meta name=\"author\" content=\"{{ . }}\">{{ end }}\n  {{ hugo.Generator }}\n\n  {{ \"<!-- plugins -->\" | safeHTML }}\n  {{ range .Site.Params.plugins.css }}\n  <link rel=\"stylesheet\" href=\"{{ .link | absURL }} \">\n  {{ end }}\n\n  {{ \"<!-- Main Stylesheet -->\" | safeHTML }}\n  {{ $styles := resources.Get \"scss/style.scss\" | toCSS | minify }}\n  <link rel=\"stylesheet\" href=\"{{ $styles.Permalink }}\" media=\"screen\">\n\n  {{ \"<!--Favicon-->\" | safeHTML }}\n  <link rel=\"shortcut icon\" href=\"{{ `images/favicon.png` | absURL }} \" type=\"image/x-icon\">\n  <link rel=\"icon\" href=\"{{ `images/favicon.png` | absURL }} \" type=\"image/x-icon\">\n\n  <!-- Google Tag Manager -->\n  {{ with .Site.Params.google_tag_manager}}\n  <script>\n    (function (w, d, s, l, i) {\n      w[l] = w[l] || [];\n      w[l].push({\n        'gtm.start': new Date().getTime(),\n        event: 'gtm.js'\n      });\n      var f = d.getElementsByTagName(s)[0],\n        j = d.createElement(s),\n        dl = l != 'dataLayer' ? '&l=' + l : '';\n      j.async = true;\n      j.src =\n        'https://www.googletagmanager.com/gtm.js?id=' + i + dl;\n      f.parentNode.insertBefore(j, f);\n    })(window, document, 'script', 'dataLayer', '{{ . }}');\n  </script>\n  {{ end }}\n  <!-- End Google Tag Manager -->\n\n</head>"
  },
  {
    "path": "themes/northendlab/layouts/partials/header.html",
    "content": "{{ \"<!-- navigation -->\" | safeHTML }}\n<header class=\"fixed-top navigation\">\n  <div class=\"container\">\n    <!-- navbar -->\n    <nav class=\"navbar navbar-expand-lg navbar-light bg-transparent\">\n      <a class=\"navbar-brand\"href=\"{{ .Site.BaseURL }}\"><img class=\"img-fluid\" src=\"{{ .Site.Params.logo | relURL }}\" alt=\"{{ .Site.Title }}\"></a>\n      <button class=\"navbar-toggler border-0\" type=\"button\" data-toggle=\"collapse\" data-target=\"#navigation\">\n        <i class=\"ti-menu h3\"></i>\n      </button>\n\n      <div class=\"collapse navbar-collapse text-center\" id=\"navigation\">\n        <ul class=\"navbar-nav ml-auto\">\n          <li class=\"nav-item\">\n            <a class=\"nav-link\" href=\"{{ .Site.BaseURL }}\">{{ with .Site.Params.Home }} {{ . }} {{ end }}</a>\n          </li>\n          {{ range .Site.Menus.main }}\n            {{ if .HasChildren }}\n            <li class=\"nav-item dropdown\">\n              <a class=\"nav-link dropdown-toggle\" href=\"#\" role=\"button\" data-toggle=\"dropdown\" aria-haspopup=\"true\"\n                aria-expanded=\"false\">\n                {{ .Name }}\n              </a>\n              <div class=\"dropdown-menu\">\n                {{ range .Children }}\n                <a class=\"dropdown-item\" href=\"{{ .URL | absURL }}\">{{ .Name }}</a>\n                {{ end }}\n              </div>\n            </li>\n            {{ else }}\n            <li class=\"nav-item\">\n              <a class=\"nav-link\" href=\"{{ .URL | absURL }}\">{{ .Name }}</a>\n            </li>\n            {{ end }}\n          {{ end }}\n        </ul>\n        {{ if .Site.Params.search.enable }}\n        {{ \"<!-- search -->\" | safeHTML }}\n        <div class=\"search\">\n          <button id=\"searchOpen\" class=\"search-btn\"><i class=\"ti-search\"></i></button>\n          <div class=\"search-wrapper\">\n            <form action=\"{{ .Site.BaseURL }}/search\" class=\"h-100\">\n              <input class=\"search-box px-4\" id=\"search-query\" name=\"s\" type=\"search\" placeholder=\"Type & Hit Enter...\">\n            </form>\n            <button id=\"searchClose\" class=\"search-close\"><i class=\"ti-close text-dark\"></i></button>\n          </div>\n        </div>\n        {{ end }}\n      </div>\n    </nav>\n  </div>\n</header>\n{{ \"<!-- /navigation -->\" | safeHTML }}"
  },
  {
    "path": "themes/northendlab/layouts/partials/preloader.html",
    "content": "{{ if .Site.Params.preloader.enable }}\n{{ \"<!-- preloader start -->\" | safeHTML }}\n<div class=\"preloader\">\n  {{ if ne .Site.Params.preloader.preloader \"\" }}\n  <img src=\"{{ .Site.Params.preloader.preloader | relURL }} \" alt=\"preloader\">\n  {{ end }}\n</div>\n{{ \"<!-- preloader end -->\" | safeHTML }}\n{{ end }}"
  },
  {
    "path": "themes/northendlab/layouts/search/list.html",
    "content": "{{ define \"main\" }}\n\n<section class=\"section\">\n  <div class=\"container\">\n    <div class=\"row justify-content-center\">\n      <div class=\"col-lg-8\">\n        <h2>Search result for\n          <span class=\"text-primary\">\n            <script>\n              var str = (window.location.search).substr(3);\n              var result = str.replace(\"+\", \" \");\n              document.write(result);\n            </script>\n          </span>\n        </h2>\n        <div class=\"block shadow\">\n          <div id=\"search-results\"></div>\n          <script id=\"search-result-template\" type=\"text/x-js-template\">\n            <div class=\"py-4 border-bottom\" id=\"summary-${key}\">\n              <h4><a href=\"${link}\">${title}</a></h4>\n              <p>${snippet}</p>\n              ${ isset tags }<p>Tags: ${tags}</p>${ end }\n              ${ isset categories }<p>Categories: ${categories}</p>${ end }\n            </div>\n        </script>\n        </div>\n      </div>\n    </div>\n  </div>\n</section>\n\n{{ end }}"
  },
  {
    "path": "themes/northendlab/layouts/tools/list.html",
    "content": "{{ define \"main\" }}\n\n<section class=\"section\">\n  <div class=\"container\">\n    <div class=\"row\">\n      <div class=\"col-3\">\n        <div class=\"nav nav-tab flex-column\" role=\"tablist\" aria-orientation=\"vertical\">\n          {{ range $index, $elemen:= .Site.Data.tools.tools }}\n          <a class=\"nav-link {{ if eq $index 0}} active {{ end }}\" data-toggle=\"pill\" href=\"#{{.title | urlize}}\" role=\"tab\">{{ .title }}</a>\n          {{ end }}\n        </div>\n      </div>\n      <div class=\"col-9\">\n        <div class=\"tab-content\">\n          {{ range $index, $elemen:= .Site.Data.tools.tools }}\n          <div class=\"tab-pane fade {{ if eq $index 0}} show active {{ end }}\" id=\"{{.title | urlize}}\" role=\"tabpanel\">\n            <div class=\"row\">\n              {{ range .tool}}\n              <div class=\"col-md-6 mb-4\">\n                <div class=\"card border-0 shadow\">\n                  <img src=\"{{ .image | relURL }}\" alt=\"{{ .name | markdownify }}\" class=\"card-img-top\">\n                  <div class=\"card-body\">\n                    <h4 class=\"h5 mb-4\"><a class=\"text-dark\" href=\"{{ .link | safeURL }}\">{{ .name | markdownify }}</a></h4>\n                    <a href=\"{{ .link | safeURL }}\" class=\"btn btn-primary\">Visit Site</a>\n                  </div>\n                </div>\n              </div>\n              {{ end }}\n            </div>\n          </div>\n          {{ end }}\n        </div>\n      </div>\n    </div>\n  </div>\n</section>\n\n{{ end }}"
  },
  {
    "path": "themes/northendlab/static/.htaccess",
    "content": "<IfModule mod_deflate.c>\nAddOutputFilterByType DEFLATE text/plain\nAddOutputFilterByType DEFLATE text/html\nAddOutputFilterByType DEFLATE text/xml\nAddOutputFilterByType DEFLATE text/css\nAddOutputFilterByType DEFLATE application/xml\nAddOutputFilterByType DEFLATE application/xhtml+xml\nAddOutputFilterByType DEFLATE application/rss+xml\nAddOutputFilterByType DEFLATE application/javascript\nAddOutputFilterByType DEFLATE application/x-javascript\nAddOutputFilterByType DEFLATE image/jpg\nAddOutputFilterByType DEFLATE image/png\nAddOutputFilterByType DEFLATE image/gif\nAddOutputFilterByType DEFLATE image/jpeg\nAddOutputFilterByType DEFLATE image/svg+xml\n</IfModule>"
  },
  {
    "path": "themes/northendlab/static/plugins/search/mark.js",
    "content": "/*!***************************************************\n* mark.js v8.11.1\n* https://markjs.io/\n* Copyright (c) 2014–2018, Julian Kühnel\n* Released under the MIT license https://git.io/vwTVl\n*****************************************************/\n!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t(require(\"jquery\")):\"function\"==typeof define&&define.amd?define([\"jquery\"],t):e.Mark=t(e.jQuery)}(this,function(e){\"use strict\";e=e&&e.hasOwnProperty(\"default\")?e.default:e;var t=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},n=function(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")},r=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o=function(){function e(t){var r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:5e3;n(this,e),this.ctx=t,this.iframes=r,this.exclude=i,this.iframesTimeout=o}return r(e,[{key:\"getContexts\",value:function(){var e=[];return(void 0!==this.ctx&&this.ctx?NodeList.prototype.isPrototypeOf(this.ctx)?Array.prototype.slice.call(this.ctx):Array.isArray(this.ctx)?this.ctx:\"string\"==typeof this.ctx?Array.prototype.slice.call(document.querySelectorAll(this.ctx)):[this.ctx]:[]).forEach(function(t){var n=e.filter(function(e){return e.contains(t)}).length>0;-1!==e.indexOf(t)||n||e.push(t)}),e}},{key:\"getIframeContents\",value:function(e,t){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},r=void 0;try{var i=e.contentWindow;if(r=i.document,!i||!r)throw new Error(\"iframe inaccessible\")}catch(e){n()}r&&t(r)}},{key:\"isIframeBlank\",value:function(e){var t=e.getAttribute(\"src\").trim();return\"about:blank\"===e.contentWindow.location.href&&\"about:blank\"!==t&&t}},{key:\"observeIframeLoad\",value:function(e,t,n){var r=this,i=!1,o=null,a=function a(){if(!i){i=!0,clearTimeout(o);try{r.isIframeBlank(e)||(e.removeEventListener(\"load\",a),r.getIframeContents(e,t,n))}catch(e){n()}}};e.addEventListener(\"load\",a),o=setTimeout(a,this.iframesTimeout)}},{key:\"onIframeReady\",value:function(e,t,n){try{\"complete\"===e.contentWindow.document.readyState?this.isIframeBlank(e)?this.observeIframeLoad(e,t,n):this.getIframeContents(e,t,n):this.observeIframeLoad(e,t,n)}catch(e){n()}}},{key:\"waitForIframes\",value:function(e,t){var n=this,r=0;this.forEachIframe(e,function(){return!0},function(e){r++,n.waitForIframes(e.querySelector(\"html\"),function(){--r||t()})},function(e){e||t()})}},{key:\"forEachIframe\",value:function(t,n,r){var i=this,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},a=t.querySelectorAll(\"iframe\"),s=a.length,c=0;a=Array.prototype.slice.call(a);var u=function(){--s<=0&&o(c)};s||u(),a.forEach(function(t){e.matches(t,i.exclude)?u():i.onIframeReady(t,function(e){n(t)&&(c++,r(e)),u()},u)})}},{key:\"createIterator\",value:function(e,t,n){return document.createNodeIterator(e,t,n,!1)}},{key:\"createInstanceOnIframe\",value:function(t){return new e(t.querySelector(\"html\"),this.iframes)}},{key:\"compareNodeIframe\",value:function(e,t,n){if(e.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_PRECEDING){if(null===t)return!0;if(t.compareDocumentPosition(n)&Node.DOCUMENT_POSITION_FOLLOWING)return!0}return!1}},{key:\"getIteratorNode\",value:function(e){var t=e.previousNode();return{prevNode:t,node:null===t?e.nextNode():e.nextNode()&&e.nextNode()}}},{key:\"checkIframeFilter\",value:function(e,t,n,r){var i=!1,o=!1;return r.forEach(function(e,t){e.val===n&&(i=t,o=e.handled)}),this.compareNodeIframe(e,t,n)?(!1!==i||o?!1===i||o||(r[i].handled=!0):r.push({val:n,handled:!0}),!0):(!1===i&&r.push({val:n,handled:!1}),!1)}},{key:\"handleOpenIframes\",value:function(e,t,n,r){var i=this;e.forEach(function(e){e.handled||i.getIframeContents(e.val,function(e){i.createInstanceOnIframe(e).forEachNode(t,n,r)})})}},{key:\"iterateThroughNodes\",value:function(e,t,n,r,i){for(var o,a=this,s=this.createIterator(t,e,r),c=[],u=[],l=void 0,h=void 0;void 0,o=a.getIteratorNode(s),h=o.prevNode,l=o.node;)this.iframes&&this.forEachIframe(t,function(e){return a.checkIframeFilter(l,h,e,c)},function(t){a.createInstanceOnIframe(t).forEachNode(e,function(e){return u.push(e)},r)}),u.push(l);u.forEach(function(e){n(e)}),this.iframes&&this.handleOpenIframes(c,e,n,r),i()}},{key:\"forEachNode\",value:function(e,t,n){var r=this,i=arguments.length>3&&void 0!==arguments[3]?arguments[3]:function(){},o=this.getContexts(),a=o.length;a||i(),o.forEach(function(o){var s=function(){r.iterateThroughNodes(e,o,t,n,function(){--a<=0&&i()})};r.iframes?r.waitForIframes(o,s):s()})}}],[{key:\"matches\",value:function(e,t){var n=\"string\"==typeof t?[t]:t,r=e.matches||e.matchesSelector||e.msMatchesSelector||e.mozMatchesSelector||e.oMatchesSelector||e.webkitMatchesSelector;if(r){var i=!1;return n.every(function(t){return!r.call(e,t)||(i=!0,!1)}),i}return!1}}]),e}(),a=function(){function e(t){n(this,e),this.ctx=t,this.ie=!1;var r=window.navigator.userAgent;(r.indexOf(\"MSIE\")>-1||r.indexOf(\"Trident\")>-1)&&(this.ie=!0)}return r(e,[{key:\"log\",value:function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"debug\",r=this.opt.log;this.opt.debug&&\"object\"===(void 0===r?\"undefined\":t(r))&&\"function\"==typeof r[n]&&r[n](\"mark.js: \"+e)}},{key:\"escapeStr\",value:function(e){return e.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g,\"\\\\$&\")}},{key:\"createRegExp\",value:function(e){return\"disabled\"!==this.opt.wildcards&&(e=this.setupWildcardsRegExp(e)),e=this.escapeStr(e),Object.keys(this.opt.synonyms).length&&(e=this.createSynonymsRegExp(e)),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),this.opt.diacritics&&(e=this.createDiacriticsRegExp(e)),e=this.createMergedBlanksRegExp(e),(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.createJoinersRegExp(e)),\"disabled\"!==this.opt.wildcards&&(e=this.createWildcardsRegExp(e)),e=this.createAccuracyRegExp(e)}},{key:\"createSynonymsRegExp\",value:function(e){var t=this.opt.synonyms,n=this.opt.caseSensitive?\"\":\"i\",r=this.opt.ignoreJoiners||this.opt.ignorePunctuation.length?\"\\0\":\"\";for(var i in t)if(t.hasOwnProperty(i)){var o=t[i],a=\"disabled\"!==this.opt.wildcards?this.setupWildcardsRegExp(i):this.escapeStr(i),s=\"disabled\"!==this.opt.wildcards?this.setupWildcardsRegExp(o):this.escapeStr(o);\"\"!==a&&\"\"!==s&&(e=e.replace(new RegExp(\"(\"+this.escapeStr(a)+\"|\"+this.escapeStr(s)+\")\",\"gm\"+n),r+\"(\"+this.processSynomyms(a)+\"|\"+this.processSynomyms(s)+\")\"+r))}return e}},{key:\"processSynomyms\",value:function(e){return(this.opt.ignoreJoiners||this.opt.ignorePunctuation.length)&&(e=this.setupIgnoreJoinersRegExp(e)),e}},{key:\"setupWildcardsRegExp\",value:function(e){return(e=e.replace(/(?:\\\\)*\\?/g,function(e){return\"\\\\\"===e.charAt(0)?\"?\":\"\u0001\"})).replace(/(?:\\\\)*\\*/g,function(e){return\"\\\\\"===e.charAt(0)?\"*\":\"\u0002\"})}},{key:\"createWildcardsRegExp\",value:function(e){var t=\"withSpaces\"===this.opt.wildcards;return e.replace(/\\u0001/g,t?\"[\\\\S\\\\s]?\":\"\\\\S?\").replace(/\\u0002/g,t?\"[\\\\S\\\\s]*?\":\"\\\\S*\")}},{key:\"setupIgnoreJoinersRegExp\",value:function(e){return e.replace(/[^(|)\\\\]/g,function(e,t,n){var r=n.charAt(t+1);return/[(|)\\\\]/.test(r)||\"\"===r?e:e+\"\\0\"})}},{key:\"createJoinersRegExp\",value:function(e){var t=[],n=this.opt.ignorePunctuation;return Array.isArray(n)&&n.length&&t.push(this.escapeStr(n.join(\"\"))),this.opt.ignoreJoiners&&t.push(\"\\\\u00ad\\\\u200b\\\\u200c\\\\u200d\"),t.length?e.split(/\\u0000+/).join(\"[\"+t.join(\"\")+\"]*\"):e}},{key:\"createDiacriticsRegExp\",value:function(e){var t=this.opt.caseSensitive?\"\":\"i\",n=this.opt.caseSensitive?[\"aàáảãạăằắẳẵặâầấẩẫậäåāą\",\"AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ\",\"cçćč\",\"CÇĆČ\",\"dđď\",\"DĐĎ\",\"eèéẻẽẹêềếểễệëěēę\",\"EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ\",\"iìíỉĩịîïī\",\"IÌÍỈĨỊÎÏĪ\",\"lł\",\"LŁ\",\"nñňń\",\"NÑŇŃ\",\"oòóỏõọôồốổỗộơởỡớờợöøō\",\"OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ\",\"rř\",\"RŘ\",\"sšśșş\",\"SŠŚȘŞ\",\"tťțţ\",\"TŤȚŢ\",\"uùúủũụưừứửữựûüůū\",\"UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ\",\"yýỳỷỹỵÿ\",\"YÝỲỶỸỴŸ\",\"zžżź\",\"ZŽŻŹ\"]:[\"aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ\",\"cçćčCÇĆČ\",\"dđďDĐĎ\",\"eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ\",\"iìíỉĩịîïīIÌÍỈĨỊÎÏĪ\",\"lłLŁ\",\"nñňńNÑŇŃ\",\"oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ\",\"rřRŘ\",\"sšśșşSŠŚȘŞ\",\"tťțţTŤȚŢ\",\"uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ\",\"yýỳỷỹỵÿYÝỲỶỸỴŸ\",\"zžżźZŽŻŹ\"],r=[];return e.split(\"\").forEach(function(i){n.every(function(n){if(-1!==n.indexOf(i)){if(r.indexOf(n)>-1)return!1;e=e.replace(new RegExp(\"[\"+n+\"]\",\"gm\"+t),\"[\"+n+\"]\"),r.push(n)}return!0})}),e}},{key:\"createMergedBlanksRegExp\",value:function(e){return e.replace(/[\\s]+/gim,\"[\\\\s]+\")}},{key:\"createAccuracyRegExp\",value:function(e){var t=this,n=this.opt.accuracy,r=\"string\"==typeof n?n:n.value,i=\"\";switch((\"string\"==typeof n?[]:n.limiters).forEach(function(e){i+=\"|\"+t.escapeStr(e)}),r){case\"partially\":default:return\"()(\"+e+\")\";case\"complementary\":return\"()([^\"+(i=\"\\\\s\"+(i||this.escapeStr(\"!\\\"#$%&'()*+,-./:;<=>?@[\\\\]^_`{|}~¡¿\")))+\"]*\"+e+\"[^\"+i+\"]*)\";case\"exactly\":return\"(^|\\\\s\"+i+\")(\"+e+\")(?=$|\\\\s\"+i+\")\"}}},{key:\"getSeparatedKeywords\",value:function(e){var t=this,n=[];return e.forEach(function(e){t.opt.separateWordSearch?e.split(\" \").forEach(function(e){e.trim()&&-1===n.indexOf(e)&&n.push(e)}):e.trim()&&-1===n.indexOf(e)&&n.push(e)}),{keywords:n.sort(function(e,t){return t.length-e.length}),length:n.length}}},{key:\"isNumeric\",value:function(e){return Number(parseFloat(e))==e}},{key:\"checkRanges\",value:function(e){var t=this;if(!Array.isArray(e)||\"[object Object]\"!==Object.prototype.toString.call(e[0]))return this.log(\"markRanges() will only accept an array of objects\"),this.opt.noMatch(e),[];var n=[],r=0;return e.sort(function(e,t){return e.start-t.start}).forEach(function(e){var i=t.callNoMatchOnInvalidRanges(e,r),o=i.start,a=i.end;i.valid&&(e.start=o,e.length=a-o,n.push(e),r=a)}),n}},{key:\"callNoMatchOnInvalidRanges\",value:function(e,t){var n=void 0,r=void 0,i=!1;return e&&void 0!==e.start?(r=(n=parseInt(e.start,10))+parseInt(e.length,10),this.isNumeric(e.start)&&this.isNumeric(e.length)&&r-t>0&&r-n>0?i=!0:(this.log(\"Ignoring invalid or overlapping range: \"+JSON.stringify(e)),this.opt.noMatch(e))):(this.log(\"Ignoring invalid range: \"+JSON.stringify(e)),this.opt.noMatch(e)),{start:n,end:r,valid:i}}},{key:\"checkWhitespaceRanges\",value:function(e,t,n){var r=void 0,i=!0,o=n.length,a=t-o,s=parseInt(e.start,10)-a;return(r=(s=s>o?o:s)+parseInt(e.length,10))>o&&(r=o,this.log(\"End range automatically set to the max value of \"+o)),s<0||r-s<0||s>o||r>o?(i=!1,this.log(\"Invalid range: \"+JSON.stringify(e)),this.opt.noMatch(e)):\"\"===n.substring(s,r).replace(/\\s+/g,\"\")&&(i=!1,this.log(\"Skipping whitespace only range: \"+JSON.stringify(e)),this.opt.noMatch(e)),{start:s,end:r,valid:i}}},{key:\"getTextNodes\",value:function(e){var t=this,n=\"\",r=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,function(e){r.push({start:n.length,end:(n+=e.textContent).length,node:e})},function(e){return t.matchesExclude(e.parentNode)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},function(){e({value:n,nodes:r})})}},{key:\"matchesExclude\",value:function(e){return o.matches(e,this.opt.exclude.concat([\"script\",\"style\",\"title\",\"head\",\"html\"]))}},{key:\"wrapRangeInTextNode\",value:function(e,t,n){var r=this.opt.element?this.opt.element:\"mark\",i=e.splitText(t),o=i.splitText(n-t),a=document.createElement(r);return a.setAttribute(\"data-markjs\",\"true\"),this.opt.className&&a.setAttribute(\"class\",this.opt.className),a.textContent=i.textContent,i.parentNode.replaceChild(a,i),o}},{key:\"wrapRangeInMappedTextNode\",value:function(e,t,n,r,i){var o=this;e.nodes.every(function(a,s){var c=e.nodes[s+1];if(void 0===c||c.start>t){if(!r(a.node))return!1;var u=t-a.start,l=(n>a.end?a.end:n)-a.start,h=e.value.substr(0,a.start),f=e.value.substr(l+a.start);if(a.node=o.wrapRangeInTextNode(a.node,u,l),e.value=h+f,e.nodes.forEach(function(t,n){n>=s&&(e.nodes[n].start>0&&n!==s&&(e.nodes[n].start-=l),e.nodes[n].end-=l)}),n-=l,i(a.node.previousSibling,a.start),!(n>a.end))return!1;t=a.end}return!0})}},{key:\"wrapMatches\",value:function(e,t,n,r,i){var o=this,a=0===t?0:t+1;this.getTextNodes(function(t){t.nodes.forEach(function(t){t=t.node;for(var i=void 0;null!==(i=e.exec(t.textContent))&&\"\"!==i[a];)if(n(i[a],t)){var s=i.index;if(0!==a)for(var c=1;c<a;c++)s+=i[c].length;t=o.wrapRangeInTextNode(t,s,s+i[a].length),r(t.previousSibling),e.lastIndex=0}}),i()})}},{key:\"wrapMatchesAcrossElements\",value:function(e,t,n,r,i){var o=this,a=0===t?0:t+1;this.getTextNodes(function(t){for(var s=void 0;null!==(s=e.exec(t.value))&&\"\"!==s[a];){var c=s.index;if(0!==a)for(var u=1;u<a;u++)c+=s[u].length;var l=c+s[a].length;o.wrapRangeInMappedTextNode(t,c,l,function(e){return n(s[a],e)},function(t,n){e.lastIndex=n,r(t)})}i()})}},{key:\"wrapRangeFromIndex\",value:function(e,t,n,r){var i=this;this.getTextNodes(function(o){var a=o.value.length;e.forEach(function(e,r){var s=i.checkWhitespaceRanges(e,a,o.value),c=s.start,u=s.end;s.valid&&i.wrapRangeInMappedTextNode(o,c,u,function(n){return t(n,e,o.value.substring(c,u),r)},function(t){n(t,e)})}),r()})}},{key:\"unwrapMatches\",value:function(e){for(var t=e.parentNode,n=document.createDocumentFragment();e.firstChild;)n.appendChild(e.removeChild(e.firstChild));t.replaceChild(n,e),this.ie?this.normalizeTextNode(t):t.normalize()}},{key:\"normalizeTextNode\",value:function(e){if(e){if(3===e.nodeType)for(;e.nextSibling&&3===e.nextSibling.nodeType;)e.nodeValue+=e.nextSibling.nodeValue,e.parentNode.removeChild(e.nextSibling);else this.normalizeTextNode(e.firstChild);this.normalizeTextNode(e.nextSibling)}}},{key:\"markRegExp\",value:function(e,t){var n=this;this.opt=t,this.log('Searching with expression \"'+e+'\"');var r=0,i=\"wrapMatches\";this.opt.acrossElements&&(i=\"wrapMatchesAcrossElements\"),this[i](e,this.opt.ignoreGroups,function(e,t){return n.opt.filter(t,e,r)},function(e){r++,n.opt.each(e)},function(){0===r&&n.opt.noMatch(e),n.opt.done(r)})}},{key:\"mark\",value:function(e,t){var n=this;this.opt=t;var r=0,i=\"wrapMatches\",o=this.getSeparatedKeywords(\"string\"==typeof e?[e]:e),a=o.keywords,s=o.length,c=this.opt.caseSensitive?\"\":\"i\";this.opt.acrossElements&&(i=\"wrapMatchesAcrossElements\"),0===s?this.opt.done(r):function e(t){var o=new RegExp(n.createRegExp(t),\"gm\"+c),u=0;n.log('Searching with expression \"'+o+'\"'),n[i](o,1,function(e,i){return n.opt.filter(i,t,r,u)},function(e){u++,r++,n.opt.each(e)},function(){0===u&&n.opt.noMatch(t),a[s-1]===t?n.opt.done(r):e(a[a.indexOf(t)+1])})}(a[0])}},{key:\"markRanges\",value:function(e,t){var n=this;this.opt=t;var r=0,i=this.checkRanges(e);i&&i.length?(this.log(\"Starting to mark with the following ranges: \"+JSON.stringify(i)),this.wrapRangeFromIndex(i,function(e,t,r,i){return n.opt.filter(e,t,r,i)},function(e,t){r++,n.opt.each(e,t)},function(){n.opt.done(r)})):this.opt.done(r)}},{key:\"unmark\",value:function(e){var t=this;this.opt=e;var n=this.opt.element?this.opt.element:\"*\";n+=\"[data-markjs]\",this.opt.className&&(n+=\".\"+this.opt.className),this.log('Removal selector \"'+n+'\"'),this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT,function(e){t.unwrapMatches(e)},function(e){var r=o.matches(e,n),i=t.matchesExclude(e);return!r||i?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT},this.opt.done)}},{key:\"opt\",set:function(e){this._opt=i({},{element:\"\",className:\"\",exclude:[],iframes:!1,iframesTimeout:5e3,separateWordSearch:!0,diacritics:!0,synonyms:{},accuracy:\"partially\",acrossElements:!1,caseSensitive:!1,ignoreJoiners:!1,ignoreGroups:0,ignorePunctuation:[],wildcards:\"disabled\",each:function(){},noMatch:function(){},filter:function(){return!0},done:function(){},debug:!1,log:window.console},e)},get:function(){return this._opt}},{key:\"iterator\",get:function(){return new o(this.ctx,this.opt.iframes,this.opt.exclude,this.opt.iframesTimeout)}}]),e}();return e.fn.mark=function(e,t){return new a(this.get()).mark(e,t),this},e.fn.markRegExp=function(e,t){return new a(this.get()).markRegExp(e,t),this},e.fn.markRanges=function(e,t){return new a(this.get()).markRanges(e,t),this},e.fn.unmark=function(e){return new a(this.get()).unmark(e),this},e});\n"
  },
  {
    "path": "themes/northendlab/static/plugins/search/search.js",
    "content": "summaryInclude=60;\nvar fuseOptions = {\n  shouldSort: true,\n  includeMatches: true,\n  threshold: 0.0,\n  tokenize:true,\n  location: 0,\n  distance: 100,\n  maxPatternLength: 32,\n  minMatchCharLength: 1,\n  keys: [\n    {name:\"title\",weight:0.8},\n    {name:\"contents\",weight:0.5},\n    {name:\"tags\",weight:0.3},\n    {name:\"categories\",weight:0.3}\n  ]\n};\n\n\nvar searchQuery = param(\"s\");\nif(searchQuery){\n  $(\"#search-query\").val(searchQuery);\n  executeSearch(searchQuery);\n}\n\n\n\nfunction executeSearch(searchQuery){\n  $.getJSON( indexURL, function( data ) {\n    var pages = data;\n    var fuse = new Fuse(pages, fuseOptions);\n    var result = fuse.search(searchQuery);\n    console.log({\"matches\":result});\n    if(result.length > 0){\n      populateResults(result);\n    }else{\n      $('#search-results').append(\"<div class=\\\"text-center\\\"><img class=\\\"img-fluid mb-5\\\" src=\\\"https://user-images.githubusercontent.com/37659754/64060567-7cece400-cbf0-11e9-9cf9-abac3543ec1f.png\\\"><h3>No Search Found</h3></div>\");\n    }\n  });\n}\n\nfunction populateResults(result){\n  $.each(result,function(key,value){\n    var contents= value.item.contents;\n    var snippet = \"\";\n    var snippetHighlights=[];\n    var tags =[];\n    if( fuseOptions.tokenize ){\n      snippetHighlights.push(searchQuery);\n    }else{\n      $.each(value.matches,function(matchKey,mvalue){\n        if(mvalue.key == \"tags\" || mvalue.key == \"categories\" ){\n          snippetHighlights.push(mvalue.value);\n        }else if(mvalue.key == \"contents\"){\n          start = mvalue.indices[0][0]-summaryInclude>0?mvalue.indices[0][0]-summaryInclude:0;\n          end = mvalue.indices[0][1]+summaryInclude<contents.length?mvalue.indices[0][1]+summaryInclude:contents.length;\n          snippet += contents.substring(start,end);\n          snippetHighlights.push(mvalue.value.substring(mvalue.indices[0][0],mvalue.indices[0][1]-mvalue.indices[0][0]+1));\n        }\n      });\n    }\n\n    if(snippet.length<1){\n      snippet += contents.substring(0,summaryInclude*2);\n    }\n    //pull template from hugo templarte definition\n    var templateDefinition = $('#search-result-template').html();\n    //replace values\n    var output = render(templateDefinition,{key:key,title:value.item.title,link:value.item.permalink,tags:value.item.tags,categories:value.item.categories,snippet:snippet});\n    $('#search-results').append(output);\n\n    $.each(snippetHighlights,function(snipkey,snipvalue){\n      $(\"#summary-\"+key).mark(snipvalue);\n    });\n\n  });\n}\n\nfunction param(name) {\n    return decodeURIComponent((location.search.split(name + '=')[1] || '').split('&')[0]).replace(/\\+/g, ' ');\n}\n\nfunction render(templateString, data) {\n  var conditionalMatches,conditionalPattern,copy;\n  conditionalPattern = /\\$\\{\\s*isset ([a-zA-Z]*) \\s*\\}(.*)\\$\\{\\s*end\\s*}/g;\n  //since loop below depends on re.lastInxdex, we use a copy to capture any manipulations whilst inside the loop\n  copy = templateString;\n  while ((conditionalMatches = conditionalPattern.exec(templateString)) !== null) {\n    if(data[conditionalMatches[1]]){\n      //valid key, remove conditionals, leave contents.\n      copy = copy.replace(conditionalMatches[0],conditionalMatches[2]);\n    }else{\n      //not valid, remove entire section\n      copy = copy.replace(conditionalMatches[0],'');\n    }\n  }\n  templateString = copy;\n  //now any conditionals removed we can do simple substitution\n  var key, find, re;\n  for (key in data) {\n    find = '\\\\$\\\\{\\\\s*' + key + '\\\\s*\\\\}';\n    re = new RegExp(find, 'g');\n    templateString = templateString.replace(re, data[key]);\n  }\n  return templateString;\n}\n"
  },
  {
    "path": "themes/northendlab/static/plugins/themify-icons/themify-icons.css",
    "content": "@font-face{font-family:themify;src:url(fonts/themify.eot?-fvbane);src:url(fonts/themify.eot?#iefix-fvbane) format('embedded-opentype'),url(fonts/themify.woff?-fvbane) format('woff'),url(fonts/themify.ttf?-fvbane) format('truetype'),url(fonts/themify.svg?-fvbane#themify) format('svg');font-weight:400;font-style:normal}[class*=\" ti-\"],[class^=ti-]{font-family:themify;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ti-wand:before{content:\"\\e600\"}.ti-volume:before{content:\"\\e601\"}.ti-user:before{content:\"\\e602\"}.ti-unlock:before{content:\"\\e603\"}.ti-unlink:before{content:\"\\e604\"}.ti-trash:before{content:\"\\e605\"}.ti-thought:before{content:\"\\e606\"}.ti-target:before{content:\"\\e607\"}.ti-tag:before{content:\"\\e608\"}.ti-tablet:before{content:\"\\e609\"}.ti-star:before{content:\"\\e60a\"}.ti-spray:before{content:\"\\e60b\"}.ti-signal:before{content:\"\\e60c\"}.ti-shopping-cart:before{content:\"\\e60d\"}.ti-shopping-cart-full:before{content:\"\\e60e\"}.ti-settings:before{content:\"\\e60f\"}.ti-search:before{content:\"\\e610\"}.ti-zoom-in:before{content:\"\\e611\"}.ti-zoom-out:before{content:\"\\e612\"}.ti-cut:before{content:\"\\e613\"}.ti-ruler:before{content:\"\\e614\"}.ti-ruler-pencil:before{content:\"\\e615\"}.ti-ruler-alt:before{content:\"\\e616\"}.ti-bookmark:before{content:\"\\e617\"}.ti-bookmark-alt:before{content:\"\\e618\"}.ti-reload:before{content:\"\\e619\"}.ti-plus:before{content:\"\\e61a\"}.ti-pin:before{content:\"\\e61b\"}.ti-pencil:before{content:\"\\e61c\"}.ti-pencil-alt:before{content:\"\\e61d\"}.ti-paint-roller:before{content:\"\\e61e\"}.ti-paint-bucket:before{content:\"\\e61f\"}.ti-na:before{content:\"\\e620\"}.ti-mobile:before{content:\"\\e621\"}.ti-minus:before{content:\"\\e622\"}.ti-medall:before{content:\"\\e623\"}.ti-medall-alt:before{content:\"\\e624\"}.ti-marker:before{content:\"\\e625\"}.ti-marker-alt:before{content:\"\\e626\"}.ti-arrow-up:before{content:\"\\e627\"}.ti-arrow-right:before{content:\"\\e628\"}.ti-arrow-left:before{content:\"\\e629\"}.ti-arrow-down:before{content:\"\\e62a\"}.ti-lock:before{content:\"\\e62b\"}.ti-location-arrow:before{content:\"\\e62c\"}.ti-link:before{content:\"\\e62d\"}.ti-layout:before{content:\"\\e62e\"}.ti-layers:before{content:\"\\e62f\"}.ti-layers-alt:before{content:\"\\e630\"}.ti-key:before{content:\"\\e631\"}.ti-import:before{content:\"\\e632\"}.ti-image:before{content:\"\\e633\"}.ti-heart:before{content:\"\\e634\"}.ti-heart-broken:before{content:\"\\e635\"}.ti-hand-stop:before{content:\"\\e636\"}.ti-hand-open:before{content:\"\\e637\"}.ti-hand-drag:before{content:\"\\e638\"}.ti-folder:before{content:\"\\e639\"}.ti-flag:before{content:\"\\e63a\"}.ti-flag-alt:before{content:\"\\e63b\"}.ti-flag-alt-2:before{content:\"\\e63c\"}.ti-eye:before{content:\"\\e63d\"}.ti-export:before{content:\"\\e63e\"}.ti-exchange-vertical:before{content:\"\\e63f\"}.ti-desktop:before{content:\"\\e640\"}.ti-cup:before{content:\"\\e641\"}.ti-crown:before{content:\"\\e642\"}.ti-comments:before{content:\"\\e643\"}.ti-comment:before{content:\"\\e644\"}.ti-comment-alt:before{content:\"\\e645\"}.ti-close:before{content:\"\\e646\"}.ti-clip:before{content:\"\\e647\"}.ti-angle-up:before{content:\"\\e648\"}.ti-angle-right:before{content:\"\\e649\"}.ti-angle-left:before{content:\"\\e64a\"}.ti-angle-down:before{content:\"\\e64b\"}.ti-check:before{content:\"\\e64c\"}.ti-check-box:before{content:\"\\e64d\"}.ti-camera:before{content:\"\\e64e\"}.ti-announcement:before{content:\"\\e64f\"}.ti-brush:before{content:\"\\e650\"}.ti-briefcase:before{content:\"\\e651\"}.ti-bolt:before{content:\"\\e652\"}.ti-bolt-alt:before{content:\"\\e653\"}.ti-blackboard:before{content:\"\\e654\"}.ti-bag:before{content:\"\\e655\"}.ti-move:before{content:\"\\e656\"}.ti-arrows-vertical:before{content:\"\\e657\"}.ti-arrows-horizontal:before{content:\"\\e658\"}.ti-fullscreen:before{content:\"\\e659\"}.ti-arrow-top-right:before{content:\"\\e65a\"}.ti-arrow-top-left:before{content:\"\\e65b\"}.ti-arrow-circle-up:before{content:\"\\e65c\"}.ti-arrow-circle-right:before{content:\"\\e65d\"}.ti-arrow-circle-left:before{content:\"\\e65e\"}.ti-arrow-circle-down:before{content:\"\\e65f\"}.ti-angle-double-up:before{content:\"\\e660\"}.ti-angle-double-right:before{content:\"\\e661\"}.ti-angle-double-left:before{content:\"\\e662\"}.ti-angle-double-down:before{content:\"\\e663\"}.ti-zip:before{content:\"\\e664\"}.ti-world:before{content:\"\\e665\"}.ti-wheelchair:before{content:\"\\e666\"}.ti-view-list:before{content:\"\\e667\"}.ti-view-list-alt:before{content:\"\\e668\"}.ti-view-grid:before{content:\"\\e669\"}.ti-uppercase:before{content:\"\\e66a\"}.ti-upload:before{content:\"\\e66b\"}.ti-underline:before{content:\"\\e66c\"}.ti-truck:before{content:\"\\e66d\"}.ti-timer:before{content:\"\\e66e\"}.ti-ticket:before{content:\"\\e66f\"}.ti-thumb-up:before{content:\"\\e670\"}.ti-thumb-down:before{content:\"\\e671\"}.ti-text:before{content:\"\\e672\"}.ti-stats-up:before{content:\"\\e673\"}.ti-stats-down:before{content:\"\\e674\"}.ti-split-v:before{content:\"\\e675\"}.ti-split-h:before{content:\"\\e676\"}.ti-smallcap:before{content:\"\\e677\"}.ti-shine:before{content:\"\\e678\"}.ti-shift-right:before{content:\"\\e679\"}.ti-shift-left:before{content:\"\\e67a\"}.ti-shield:before{content:\"\\e67b\"}.ti-notepad:before{content:\"\\e67c\"}.ti-server:before{content:\"\\e67d\"}.ti-quote-right:before{content:\"\\e67e\"}.ti-quote-left:before{content:\"\\e67f\"}.ti-pulse:before{content:\"\\e680\"}.ti-printer:before{content:\"\\e681\"}.ti-power-off:before{content:\"\\e682\"}.ti-plug:before{content:\"\\e683\"}.ti-pie-chart:before{content:\"\\e684\"}.ti-paragraph:before{content:\"\\e685\"}.ti-panel:before{content:\"\\e686\"}.ti-package:before{content:\"\\e687\"}.ti-music:before{content:\"\\e688\"}.ti-music-alt:before{content:\"\\e689\"}.ti-mouse:before{content:\"\\e68a\"}.ti-mouse-alt:before{content:\"\\e68b\"}.ti-money:before{content:\"\\e68c\"}.ti-microphone:before{content:\"\\e68d\"}.ti-menu:before{content:\"\\e68e\"}.ti-menu-alt:before{content:\"\\e68f\"}.ti-map:before{content:\"\\e690\"}.ti-map-alt:before{content:\"\\e691\"}.ti-loop:before{content:\"\\e692\"}.ti-location-pin:before{content:\"\\e693\"}.ti-list:before{content:\"\\e694\"}.ti-light-bulb:before{content:\"\\e695\"}.ti-Italic:before{content:\"\\e696\"}.ti-info:before{content:\"\\e697\"}.ti-infinite:before{content:\"\\e698\"}.ti-id-badge:before{content:\"\\e699\"}.ti-hummer:before{content:\"\\e69a\"}.ti-home:before{content:\"\\e69b\"}.ti-help:before{content:\"\\e69c\"}.ti-headphone:before{content:\"\\e69d\"}.ti-harddrives:before{content:\"\\e69e\"}.ti-harddrive:before{content:\"\\e69f\"}.ti-gift:before{content:\"\\e6a0\"}.ti-game:before{content:\"\\e6a1\"}.ti-filter:before{content:\"\\e6a2\"}.ti-files:before{content:\"\\e6a3\"}.ti-file:before{content:\"\\e6a4\"}.ti-eraser:before{content:\"\\e6a5\"}.ti-envelope:before{content:\"\\e6a6\"}.ti-download:before{content:\"\\e6a7\"}.ti-direction:before{content:\"\\e6a8\"}.ti-direction-alt:before{content:\"\\e6a9\"}.ti-dashboard:before{content:\"\\e6aa\"}.ti-control-stop:before{content:\"\\e6ab\"}.ti-control-shuffle:before{content:\"\\e6ac\"}.ti-control-play:before{content:\"\\e6ad\"}.ti-control-pause:before{content:\"\\e6ae\"}.ti-control-forward:before{content:\"\\e6af\"}.ti-control-backward:before{content:\"\\e6b0\"}.ti-cloud:before{content:\"\\e6b1\"}.ti-cloud-up:before{content:\"\\e6b2\"}.ti-cloud-down:before{content:\"\\e6b3\"}.ti-clipboard:before{content:\"\\e6b4\"}.ti-car:before{content:\"\\e6b5\"}.ti-calendar:before{content:\"\\e6b6\"}.ti-book:before{content:\"\\e6b7\"}.ti-bell:before{content:\"\\e6b8\"}.ti-basketball:before{content:\"\\e6b9\"}.ti-bar-chart:before{content:\"\\e6ba\"}.ti-bar-chart-alt:before{content:\"\\e6bb\"}.ti-back-right:before{content:\"\\e6bc\"}.ti-back-left:before{content:\"\\e6bd\"}.ti-arrows-corner:before{content:\"\\e6be\"}.ti-archive:before{content:\"\\e6bf\"}.ti-anchor:before{content:\"\\e6c0\"}.ti-align-right:before{content:\"\\e6c1\"}.ti-align-left:before{content:\"\\e6c2\"}.ti-align-justify:before{content:\"\\e6c3\"}.ti-align-center:before{content:\"\\e6c4\"}.ti-alert:before{content:\"\\e6c5\"}.ti-alarm-clock:before{content:\"\\e6c6\"}.ti-agenda:before{content:\"\\e6c7\"}.ti-write:before{content:\"\\e6c8\"}.ti-window:before{content:\"\\e6c9\"}.ti-widgetized:before{content:\"\\e6ca\"}.ti-widget:before{content:\"\\e6cb\"}.ti-widget-alt:before{content:\"\\e6cc\"}.ti-wallet:before{content:\"\\e6cd\"}.ti-video-clapper:before{content:\"\\e6ce\"}.ti-video-camera:before{content:\"\\e6cf\"}.ti-vector:before{content:\"\\e6d0\"}.ti-themify-logo:before{content:\"\\e6d1\"}.ti-themify-favicon:before{content:\"\\e6d2\"}.ti-themify-favicon-alt:before{content:\"\\e6d3\"}.ti-support:before{content:\"\\e6d4\"}.ti-stamp:before{content:\"\\e6d5\"}.ti-split-v-alt:before{content:\"\\e6d6\"}.ti-slice:before{content:\"\\e6d7\"}.ti-shortcode:before{content:\"\\e6d8\"}.ti-shift-right-alt:before{content:\"\\e6d9\"}.ti-shift-left-alt:before{content:\"\\e6da\"}.ti-ruler-alt-2:before{content:\"\\e6db\"}.ti-receipt:before{content:\"\\e6dc\"}.ti-pin2:before{content:\"\\e6dd\"}.ti-pin-alt:before{content:\"\\e6de\"}.ti-pencil-alt2:before{content:\"\\e6df\"}.ti-palette:before{content:\"\\e6e0\"}.ti-more:before{content:\"\\e6e1\"}.ti-more-alt:before{content:\"\\e6e2\"}.ti-microphone-alt:before{content:\"\\e6e3\"}.ti-magnet:before{content:\"\\e6e4\"}.ti-line-double:before{content:\"\\e6e5\"}.ti-line-dotted:before{content:\"\\e6e6\"}.ti-line-dashed:before{content:\"\\e6e7\"}.ti-layout-width-full:before{content:\"\\e6e8\"}.ti-layout-width-default:before{content:\"\\e6e9\"}.ti-layout-width-default-alt:before{content:\"\\e6ea\"}.ti-layout-tab:before{content:\"\\e6eb\"}.ti-layout-tab-window:before{content:\"\\e6ec\"}.ti-layout-tab-v:before{content:\"\\e6ed\"}.ti-layout-tab-min:before{content:\"\\e6ee\"}.ti-layout-slider:before{content:\"\\e6ef\"}.ti-layout-slider-alt:before{content:\"\\e6f0\"}.ti-layout-sidebar-right:before{content:\"\\e6f1\"}.ti-layout-sidebar-none:before{content:\"\\e6f2\"}.ti-layout-sidebar-left:before{content:\"\\e6f3\"}.ti-layout-placeholder:before{content:\"\\e6f4\"}.ti-layout-menu:before{content:\"\\e6f5\"}.ti-layout-menu-v:before{content:\"\\e6f6\"}.ti-layout-menu-separated:before{content:\"\\e6f7\"}.ti-layout-menu-full:before{content:\"\\e6f8\"}.ti-layout-media-right-alt:before{content:\"\\e6f9\"}.ti-layout-media-right:before{content:\"\\e6fa\"}.ti-layout-media-overlay:before{content:\"\\e6fb\"}.ti-layout-media-overlay-alt:before{content:\"\\e6fc\"}.ti-layout-media-overlay-alt-2:before{content:\"\\e6fd\"}.ti-layout-media-left-alt:before{content:\"\\e6fe\"}.ti-layout-media-left:before{content:\"\\e6ff\"}.ti-layout-media-center-alt:before{content:\"\\e700\"}.ti-layout-media-center:before{content:\"\\e701\"}.ti-layout-list-thumb:before{content:\"\\e702\"}.ti-layout-list-thumb-alt:before{content:\"\\e703\"}.ti-layout-list-post:before{content:\"\\e704\"}.ti-layout-list-large-image:before{content:\"\\e705\"}.ti-layout-line-solid:before{content:\"\\e706\"}.ti-layout-grid4:before{content:\"\\e707\"}.ti-layout-grid3:before{content:\"\\e708\"}.ti-layout-grid2:before{content:\"\\e709\"}.ti-layout-grid2-thumb:before{content:\"\\e70a\"}.ti-layout-cta-right:before{content:\"\\e70b\"}.ti-layout-cta-left:before{content:\"\\e70c\"}.ti-layout-cta-center:before{content:\"\\e70d\"}.ti-layout-cta-btn-right:before{content:\"\\e70e\"}.ti-layout-cta-btn-left:before{content:\"\\e70f\"}.ti-layout-column4:before{content:\"\\e710\"}.ti-layout-column3:before{content:\"\\e711\"}.ti-layout-column2:before{content:\"\\e712\"}.ti-layout-accordion-separated:before{content:\"\\e713\"}.ti-layout-accordion-merged:before{content:\"\\e714\"}.ti-layout-accordion-list:before{content:\"\\e715\"}.ti-ink-pen:before{content:\"\\e716\"}.ti-info-alt:before{content:\"\\e717\"}.ti-help-alt:before{content:\"\\e718\"}.ti-headphone-alt:before{content:\"\\e719\"}.ti-hand-point-up:before{content:\"\\e71a\"}.ti-hand-point-right:before{content:\"\\e71b\"}.ti-hand-point-left:before{content:\"\\e71c\"}.ti-hand-point-down:before{content:\"\\e71d\"}.ti-gallery:before{content:\"\\e71e\"}.ti-face-smile:before{content:\"\\e71f\"}.ti-face-sad:before{content:\"\\e720\"}.ti-credit-card:before{content:\"\\e721\"}.ti-control-skip-forward:before{content:\"\\e722\"}.ti-control-skip-backward:before{content:\"\\e723\"}.ti-control-record:before{content:\"\\e724\"}.ti-control-eject:before{content:\"\\e725\"}.ti-comments-smiley:before{content:\"\\e726\"}.ti-brush-alt:before{content:\"\\e727\"}.ti-youtube:before{content:\"\\e728\"}.ti-vimeo:before{content:\"\\e729\"}.ti-twitter:before{content:\"\\e72a\"}.ti-time:before{content:\"\\e72b\"}.ti-tumblr:before{content:\"\\e72c\"}.ti-skype:before{content:\"\\e72d\"}.ti-share:before{content:\"\\e72e\"}.ti-share-alt:before{content:\"\\e72f\"}.ti-rocket:before{content:\"\\e730\"}.ti-pinterest:before{content:\"\\e731\"}.ti-new-window:before{content:\"\\e732\"}.ti-microsoft:before{content:\"\\e733\"}.ti-list-ol:before{content:\"\\e734\"}.ti-linkedin:before{content:\"\\e735\"}.ti-layout-sidebar-2:before{content:\"\\e736\"}.ti-layout-grid4-alt:before{content:\"\\e737\"}.ti-layout-grid3-alt:before{content:\"\\e738\"}.ti-layout-grid2-alt:before{content:\"\\e739\"}.ti-layout-column4-alt:before{content:\"\\e73a\"}.ti-layout-column3-alt:before{content:\"\\e73b\"}.ti-layout-column2-alt:before{content:\"\\e73c\"}.ti-instagram:before{content:\"\\e73d\"}.ti-google:before{content:\"\\e73e\"}.ti-github:before{content:\"\\e73f\"}.ti-flickr:before{content:\"\\e740\"}.ti-facebook:before{content:\"\\e741\"}.ti-dropbox:before{content:\"\\e742\"}.ti-dribbble:before{content:\"\\e743\"}.ti-apple:before{content:\"\\e744\"}.ti-android:before{content:\"\\e745\"}.ti-save:before{content:\"\\e746\"}.ti-save-alt:before{content:\"\\e747\"}.ti-yahoo:before{content:\"\\e748\"}.ti-wordpress:before{content:\"\\e749\"}.ti-vimeo-alt:before{content:\"\\e74a\"}.ti-twitter-alt:before{content:\"\\e74b\"}.ti-tumblr-alt:before{content:\"\\e74c\"}.ti-trello:before{content:\"\\e74d\"}.ti-stack-overflow:before{content:\"\\e74e\"}.ti-soundcloud:before{content:\"\\e74f\"}.ti-sharethis:before{content:\"\\e750\"}.ti-sharethis-alt:before{content:\"\\e751\"}.ti-reddit:before{content:\"\\e752\"}.ti-pinterest-alt:before{content:\"\\e753\"}.ti-microsoft-alt:before{content:\"\\e754\"}.ti-linux:before{content:\"\\e755\"}.ti-jsfiddle:before{content:\"\\e756\"}.ti-joomla:before{content:\"\\e757\"}.ti-html5:before{content:\"\\e758\"}.ti-flickr-alt:before{content:\"\\e759\"}.ti-email:before{content:\"\\e75a\"}.ti-drupal:before{content:\"\\e75b\"}.ti-dropbox-alt:before{content:\"\\e75c\"}.ti-css3:before{content:\"\\e75d\"}.ti-rss:before{content:\"\\e75e\"}.ti-rss-alt:before{content:\"\\e75f\"}"
  }
]